From 638c7d3eb9f49bc0ff6cb0d4eda492d2e64c4ca7 Mon Sep 17 00:00:00 2001 From: "Greg K." Date: Wed, 11 Jun 2025 01:44:13 -0700 Subject: [PATCH] support for execute code plugin --- main.js | 133 +++++++++++++++++++------------ src/ApplyStyling.ts | 6 +- src/EditingView.ts | 30 +++++-- src/Parsing/CodeblockParsing.ts | 13 +-- src/Parsing/InlineCodeParsing.ts | 2 +- src/ReadingView.ts | 19 ++++- 6 files changed, 137 insertions(+), 66 deletions(-) diff --git a/main.js b/main.js index ac0fdd8..06db480 100644 --- a/main.js +++ b/main.js @@ -5767,10 +5767,8 @@ function styleThemeSettings(themeSettings, currentTheme) { } ${((_a2 = THEME_STYLES == null ? void 0 : THEME_STYLES[currentTheme]) == null ? void 0 : _a2.border) ? ` .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container { - --code-styler-header-border:` + //@ts-expect-error Does Exist - THEME_STYLES[currentTheme].border.style + `; - --header-separator-width-padding: calc(var(--header-separator-width) - ` + //@ts-expect-error Does Exist - THEME_STYLES[currentTheme].border.size + `px); + --code-styler-header-border:` + THEME_STYLES[currentTheme].border.style + `; + --header-separator-width-padding: calc(var(--header-separator-width) - ` + THEME_STYLES[currentTheme].border.size + `px); --folded-bottom-border: var(--code-styler-header-border); } ` : ""} @@ -5798,8 +5796,7 @@ function styleLanguageColours(themeSettings, redirectLanguages, currentTheme) { if ((_e = THEME_STYLES == null ? void 0 : THEME_STYLES[currentTheme]) == null ? void 0 : _e.border) { result += ` .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container.language-${languageName} { - --language-border-width: ${//@ts-expect-error Does exist - themeSettings.advanced.languageBorderColour ? themeSettings.advanced.languageBorderWidth + THEME_STYLES[currentTheme].border.size : 0}px; + --language-border-width: ${themeSettings.advanced.languageBorderColour ? themeSettings.advanced.languageBorderWidth + THEME_STYLES[currentTheme].border.size : 0}px; }`; } } @@ -7499,7 +7496,6 @@ function stringify2(values) { } // node_modules/hastscript/lib/create-h.js -var buttonTypes = /* @__PURE__ */ new Set(["button", "menu", "reset", "submit"]); var own2 = {}.hasOwnProperty; function createH(schema, defaultTagName, caseSensitive) { const adjust = caseSensitive && createAdjustMap(caseSensitive); @@ -7519,15 +7515,15 @@ function createH(schema, defaultTagName, caseSensitive) { if (adjust && own2.call(adjust, node.tagName)) { node.tagName = adjust[node.tagName]; } - if (isProperties(properties, node.tagName)) { + if (isChild(properties)) { + children.unshift(properties); + } else { let key2; for (key2 in properties) { if (own2.call(properties, key2)) { addProperty(schema, node.properties, key2, properties[key2]); } } - } else { - children.unshift(properties); } } while (++index2 < children.length) { @@ -7541,20 +7537,35 @@ function createH(schema, defaultTagName, caseSensitive) { } return h3; } -function isProperties(value, name) { - if (value === null || value === void 0 || typeof value !== "object" || Array.isArray(value)) { - return false; - } - if (name === "input" || !value.type || typeof value.type !== "string") { +function isChild(value) { + if (value === null || typeof value !== "object" || Array.isArray(value)) { return true; } - if ("children" in value && Array.isArray(value.children)) { - return false; + if (typeof value.type !== "string") return false; + const record = ( + /** @type {Record} */ + value + ); + const keys = Object.keys(value); + for (const key2 of keys) { + const value2 = record[key2]; + if (value2 && typeof value2 === "object") { + if (!Array.isArray(value2)) return true; + const list = ( + /** @type {Array} */ + value2 + ); + for (const item of list) { + if (typeof item !== "number" && typeof item !== "string") { + return true; + } + } + } } - if (name === "button") { - return buttonTypes.has(value.type.toLowerCase()); + if ("children" in value && Array.isArray(value.children)) { + return true; } - return !("value" in value); + return false; } function addProperty(schema, properties, key2, value) { const info = find(schema, key2); @@ -7775,7 +7786,7 @@ function one(state, node) { switch (node.nodeName) { case "#comment": { const reference = ( - /** @type {P5Comment} */ + /** @type {DefaultTreeAdapterMap['commentNode']} */ node ); result = { type: "comment", value: reference.data }; @@ -7785,7 +7796,7 @@ function one(state, node) { case "#document": case "#document-fragment": { const reference = ( - /** @type {P5Document | P5DocumentFragment} */ + /** @type {DefaultTreeAdapterMap['document'] | DefaultTreeAdapterMap['documentFragment']} */ node ); const quirksMode = "mode" in reference ? reference.mode === "quirks" || reference.mode === "limited-quirks" : false; @@ -7795,10 +7806,10 @@ function one(state, node) { data: { quirksMode } }; if (state.file && state.location) { - const doc = String(state.file); - const loc = location(doc); + const document2 = String(state.file); + const loc = location(document2); const start = loc.toPoint(0); - const end = loc.toPoint(doc.length); + const end = loc.toPoint(document2.length); ok2(start, "expected `start`"); ok2(end, "expected `end`"); result.position = { start, end }; @@ -7807,7 +7818,7 @@ function one(state, node) { } case "#documentType": { const reference = ( - /** @type {P5DocumentType} */ + /** @type {DefaultTreeAdapterMap['documentType']} */ node ); result = { type: "doctype" }; @@ -7816,7 +7827,7 @@ function one(state, node) { } case "#text": { const reference = ( - /** @type {P5Text} */ + /** @type {DefaultTreeAdapterMap['textNode']} */ node ); result = { type: "text", value: reference.value }; @@ -7826,7 +7837,7 @@ function one(state, node) { // Element. default: { const reference = ( - /** @type {P5Element} */ + /** @type {DefaultTreeAdapterMap['element']} */ node ); result = element(state, reference); @@ -7850,20 +7861,20 @@ function element(state, node) { const schema = state.schema; state.schema = node.namespaceURI === webNamespaces.svg ? svg2 : html2; let index2 = -1; - const props = {}; + const properties = {}; while (++index2 < node.attrs.length) { const attribute = node.attrs[index2]; const name = (attribute.prefix ? attribute.prefix + ":" : "") + attribute.name; if (!own3.call(proto, name)) { - props[name] = attribute.value; + properties[name] = attribute.value; } } - const fn = state.schema.space === "svg" ? s2 : h2; - const result = fn(node.tagName, props, all(state, node.childNodes)); + const x2 = state.schema.space === "svg" ? s2 : h2; + const result = x2(node.tagName, properties, all(state, node.childNodes)); patch(state, node, result); if (result.tagName === "template") { const reference = ( - /** @type {P5Template} */ + /** @type {DefaultTreeAdapterMap['template']} */ node ); const pos = reference.sourceCodeLocation; @@ -7898,12 +7909,12 @@ function createLocation(state, node, location2) { result.end = Object.assign({}, tail.position.end); } if (state.verbose) { - const props = {}; + const properties = {}; let key2; if (location2.attrs) { for (key2 in location2.attrs) { if (own3.call(location2.attrs, key2)) { - props[find(state.schema, key2).property] = position( + properties[find(state.schema, key2).property] = position( location2.attrs[key2] ); } @@ -7914,7 +7925,7 @@ function createLocation(state, node, location2) { const closing2 = location2.endTag ? position(location2.endTag) : void 0; const data = { opening: opening2 }; if (closing2) data.closing = closing2; - data.properties = props; + data.properties = properties; node.data = { position: data }; } } @@ -18021,7 +18032,7 @@ function serializeAttribute(state, key2, value) { let result; if (info.overloadedBoolean && (value === info.attribute || value === "")) { value = true; - } else if (info.boolean || info.overloadedBoolean && typeof value !== "string") { + } else if ((info.boolean || info.overloadedBoolean) && (typeof value !== "string" || value === info.attribute || value === "")) { value = Boolean(value); } if (value === null || value === void 0 || value === false || typeof value === "number" && Number.isNaN(value)) { @@ -18187,7 +18198,7 @@ function parseInlineCodeParameters(parameterLine) { } function parseInlineCodeParameterString(parameterString, inlineCodeParameters) { if (parameterString.startsWith("title:") || parameterString.startsWith("title=")) { - const titleMatch = /(["']?)([^\1]+)\1/.exec(parameterString.slice("title:".length)); + const titleMatch = /(["']?)([^"']+)\1/.exec(parameterString.slice("title:".length)); if (titleMatch) inlineCodeParameters.title = titleMatch[2].trim().replace(/\\{/g, "{"); } else if (parameterString === "icon" || parameterString.startsWith("icon:") && parameterString.toLowerCase() === "icon:true") @@ -18221,7 +18232,7 @@ function createTitleContainer(codeblockParameters, themeSettings, sourcePath, pl const title = codeblockParameters.title || (codeblockParameters.fold.enabled ? codeblockParameters.fold.placeholder || themeSettings.header.foldPlaceholder || FOLD_PLACEHOLDER : ""); if (codeblockParameters.reference === "") titleContainer.innerText = title; - else if (/^(?:https?|file):\/\//.test(codeblockParameters.reference)) + else if (/^(?:https?|file|zotero):\/\//.test(codeblockParameters.reference)) import_obsidian4.MarkdownRenderer.render(plugin.app, `[${title}](${codeblockParameters.reference})`, titleContainer, sourcePath, plugin); else import_obsidian4.MarkdownRenderer.render(plugin.app, `[[${codeblockParameters.reference}|${title}]]`, titleContainer, sourcePath, plugin); @@ -18411,7 +18422,16 @@ async function renderSettings(codeblockPreElements, sourcePath, plugin) { await remakeCodeblocks(codeblockPreElements, codeblocksParameters, sourcePath, true, false, plugin); } async function renderDocument(codeblockPreElements, sourcePath, cache, editingEmbeds, printing, plugin) { - const codeblocksParameters = await getCodeblocksParameters(sourcePath, cache, plugin, editingEmbeds); + let codeblocksParameters = await getCodeblocksParameters(sourcePath, cache, plugin, editingEmbeds); + if (codeblocksParameters.length !== codeblockPreElements.length) { + codeblocksParameters = codeblockPreElements.map((preElement) => { + const codeElement = preElement.querySelector("code"); + const classList = Array.from((codeElement == null ? void 0 : codeElement.classList) || []); + const languageClass = classList.find((cls) => cls.startsWith("language-")); + const language = languageClass ? languageClass.replace("language-", "") : ""; + return parseCodeblockParameters(`${language}`, plugin.settings.currentTheme); + }); + } await remakeCodeblocks(codeblockPreElements, codeblocksParameters, sourcePath, !printing, true, plugin); } async function retriggerProcessor(element3, context, plugin, editingEmbeds) { @@ -19010,9 +19030,11 @@ function pluginAdjustExecuteCode(codeblockParameters, plugins, codeblockLines) { return codeblockParameters; } function pluginAdjustExecuteCodeRun(codeblockParameters, plugin, plugins) { - if ("execute-code" in plugins) { - if (EXECUTE_CODE_SUPPORTED_LANGUAGES.includes(codeblockParameters.language.slice(4)) && !isCodeblockIgnored(codeblockParameters.language, plugin.settings.processedCodeblocksWhitelist)) - codeblockParameters.language = codeblockParameters.language.slice(4); + if (/run-\w*/.test(codeblockParameters.language)) { + const baseLanguage = codeblockParameters.language.slice(4); + if (EXECUTE_CODE_SUPPORTED_LANGUAGES.includes(baseLanguage) && !isCodeblockIgnored(codeblockParameters.language, plugin.settings.processedCodeblocksWhitelist)) { + codeblockParameters.language = baseLanguage; + } } return codeblockParameters; } @@ -19033,7 +19055,7 @@ function parseCodeblockParameterString(parameterString, codeblockParameters, the addHighlights(parameterString, codeblockParameters, theme); } function manageTitle(parameterString, codeblockParameters) { - const titleMatch = /(["']?)([^\1]+)\1/.exec(parameterString.slice("title:".length)); + const titleMatch = /(["']?)([^"']+)\1/.exec(parameterString.slice("title:".length)); if (titleMatch) codeblockParameters.title = titleMatch[2].trim(); parameterString = parameterString.slice("title:".length); @@ -19078,7 +19100,7 @@ function manageFolding(parameterString, codeblockParameters) { placeholder: "" }; } else { - const foldPlaceholderMatch = /(["']?)([^\1]+)\1/.exec(parameterString.slice("fold:".length)); + const foldPlaceholderMatch = /(["']?)([^"']+)\1/.exec(parameterString.slice("fold:".length)); if (foldPlaceholderMatch) { codeblockParameters.fold = { enabled: true, @@ -19583,6 +19605,12 @@ function createCodeblockCodeMirrorExtensions(settings, plugin) { if (syntaxNode.type.name.includes("HyperMD-codeblock-begin")) { const startLine = state.doc.lineAt(syntaxNode.from); codeblockParameters = parseCodeblockParameters(trimParameterLine(startLine.text.toString()), settings.currentTheme); + if (/run-\w*/.test(codeblockParameters.language)) { + const baseLanguage = codeblockParameters.language.slice(4); + if (EXECUTE_CODE_SUPPORTED_LANGUAGES.includes(baseLanguage)) { + codeblockParameters.language = baseLanguage; + } + } if (!isLanguageIgnored(codeblockParameters.language, settings.excludedLanguages) && !isCodeblockIgnored(codeblockParameters.language, settings.processedCodeblocksWhitelist) && !codeblockParameters.ignore) { if (!SPECIAL_LANGUAGES.some((regExp) => new RegExp(regExp).test(codeblockParameters.language))) builder.add(startLine.from, startLine.from, import_view.Decoration.widget({ widget: new HeaderWidget(codeblockParameters, foldValue(startLine.from, codeblockParameters.fold.enabled), settings.currentTheme.settings, sourcePath, plugin), block: true, side: -1 })); @@ -19608,7 +19636,8 @@ function createCodeblockCodeMirrorExtensions(settings, plugin) { maxLineNum = foldEnd2.to - foldStart2.from - 1 + codeblockParameters.lineNumbers.offset; }); const lineNumberMargin = maxLineNum.toString().length > 2 ? maxLineNum.toString().length * state.field(charWidthState) : void 0; - builder.add(foldStart.from, foldStart.from, import_view.Decoration.line({ attributes: { style: `--line-number-gutter-width: ${lineNumberMargin ? lineNumberMargin + "px" : "calc(var(--line-number-gutter-min-width) - 12px)"};`, class: "code-styler-line" + (["^$"].concat(SPECIAL_LANGUAGES).some((regExp) => new RegExp(regExp).test(codeblockParameters.language)) ? "" : ` language-${codeblockParameters.language}`) } })); + const effectiveLanguage = codeblockParameters.language; + builder.add(foldStart.from, foldStart.from, import_view.Decoration.line({ attributes: { style: `--line-number-gutter-width: ${lineNumberMargin ? lineNumberMargin + "px" : "calc(var(--line-number-gutter-min-width) - 12px)"};`, class: "code-styler-line" + (["^$"].concat(SPECIAL_LANGUAGES).some((regExp) => new RegExp(regExp).test(effectiveLanguage)) ? "" : ` language-${effectiveLanguage}`) } })); if (showLineNumbers) builder.add(foldStart.from, foldStart.from, import_view.Decoration.widget({ widget: new LineNumberWidget(0, codeblockParameters, maxLineNum, true) })); for (let i2 = foldStart.number + 1; i2 <= state.doc.lines; i2++) { @@ -19620,15 +19649,20 @@ function createCodeblockCodeMirrorExtensions(settings, plugin) { foldEnd = line; break; } - builder.add(line.from, line.from, import_view.Decoration.line({ attributes: { style: `--line-number-gutter-width: ${lineNumberMargin ? lineNumberMargin + "px" : "calc(var(--line-number-gutter-min-width) - 12px)"};`, class: (SPECIAL_LANGUAGES.some((regExp) => new RegExp(regExp).test(iter.value.spec.widget.codeblockParameters.language)) ? "code-styler-line" : getLineClass(codeblockParameters, i2 - foldStart.number, line.text).join(" ")) + (["^$"].concat(SPECIAL_LANGUAGES).some((regExp) => new RegExp(regExp).test(codeblockParameters.language)) ? "" : ` language-${codeblockParameters.language}`) } })); + const lineClasses = SPECIAL_LANGUAGES.some((regExp) => new RegExp(regExp).test(effectiveLanguage)) ? "code-styler-line" : getLineClass(codeblockParameters, i2 - foldStart.number, line.text).join(" "); + const languageClass = ["^$"].concat(SPECIAL_LANGUAGES).some((regExp) => new RegExp(regExp).test(effectiveLanguage)) ? "" : ` language-${effectiveLanguage}`; + builder.add(line.from, line.from, import_view.Decoration.line({ attributes: { + style: `--line-number-gutter-width: ${lineNumberMargin ? lineNumberMargin + "px" : "calc(var(--line-number-gutter-min-width) - 12px)"};`, + class: lineClasses + languageClass + } })); if (showLineNumbers) builder.add(line.from, line.from, import_view.Decoration.widget({ widget: new LineNumberWidget(i2 - foldStart.number, codeblockParameters, maxLineNum) })); - if (codeblockParameters.language === "markdown") + if (effectiveLanguage === "markdown") continue; convertCommentLinks2(state, line, sourcePath, builder, sourceMode); } if (foldEnd !== null) { - builder.add(foldEnd.from, foldEnd.from, import_view.Decoration.line({ attributes: { style: `--line-number-gutter-width: ${lineNumberMargin ? lineNumberMargin + "px" : "calc(var(--line-number-gutter-min-width) - 12px)"};`, class: "code-styler-line" + (["^$"].concat(SPECIAL_LANGUAGES).some((regExp) => new RegExp(regExp).test(codeblockParameters.language)) ? "" : ` language-${codeblockParameters.language}`) } })); + builder.add(foldEnd.from, foldEnd.from, import_view.Decoration.line({ attributes: { style: `--line-number-gutter-width: ${lineNumberMargin ? lineNumberMargin + "px" : "calc(var(--line-number-gutter-min-width) - 12px)"};`, class: "code-styler-line" + (["^$"].concat(SPECIAL_LANGUAGES).some((regExp) => new RegExp(regExp).test(effectiveLanguage)) ? "" : ` language-${effectiveLanguage}`) } })); if (showLineNumbers) builder.add(foldEnd.from, foldEnd.from, import_view.Decoration.widget({ widget: new LineNumberWidget(0, codeblockParameters, maxLineNum, true) })); } @@ -19988,4 +20022,3 @@ var CodeStylerPlugin = class extends import_obsidian9.Plugin { @simonwep/pickr/dist/pickr.min.js: (*! Pickr 1.9.1 MIT | https://github.com/Simonwep/pickr *) */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovd2VicGFjay9ib290c3RyYXAiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovc3JjL2pzL3V0aWxzL3V0aWxzLmpzIiwgIm5vZGVfbW9kdWxlcy9Ac2ltb253ZXAvcGlja3IvZGlzdC93ZWJwYWNrOi9zcmMvanMvdXRpbHMvY29sb3IuanMiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3NyYy9qcy91dGlscy9oc3ZhY29sb3IuanMiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3NyYy9qcy9saWJzL21vdmVhYmxlLmpzIiwgIm5vZGVfbW9kdWxlcy9Ac2ltb253ZXAvcGlja3IvZGlzdC93ZWJwYWNrOi9zcmMvanMvbGlicy9zZWxlY3RhYmxlLmpzIiwgIm5vZGVfbW9kdWxlcy9Ac2ltb253ZXAvcGlja3IvZGlzdC93ZWJwYWNrOi9zcmMvanMvdGVtcGxhdGUuanMiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L25vZGVfbW9kdWxlcy8ucG5wbS9uYW5vcG9wQDIuNC4yL25vZGVfbW9kdWxlcy9uYW5vcG9wL2Rpc3QvbmFub3BvcC5tanMiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3NyYy9qcy9waWNrci5qcyIsICJub2RlX21vZHVsZXMvanNvbjUvZGlzdC9pbmRleC5qcyIsICJzcmMvbWFpbi50cyIsICJzcmMvU2V0dGluZ3MudHMiLCAic3JjL1NldHRpbmdzVGFiLnRzIiwgIm5vZGVfbW9kdWxlcy9jb2xvcnRyYW5zbGF0b3IvZXNtL2luZGV4LmpzIiwgInNyYy9BcHBseVN0eWxpbmcudHMiLCAic3JjL0VkaXRpbmdWaWV3LnRzIiwgInNyYy9QYXJzaW5nL0NvZGVibG9ja1BhcnNpbmcudHMiLCAic3JjL0V4dGVybmFsL0V4ZWN1dGVDb2RlL0NvZGVCbG9ja0FyZ3MudHMiLCAic3JjL1JlZmVyZW5jaW5nLnRzIiwgInNyYy9QYXJzaW5nL1JlZmVyZW5jZVBhcnNpbmcudHMiLCAic3JjL1JlYWRpbmdWaWV3LnRzIiwgIm5vZGVfbW9kdWxlcy91bmlzdC11dGlsLWlzL2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvdW5pc3QtdXRpbC12aXNpdC1wYXJlbnRzL2xpYi9jb2xvci5qcyIsICJub2RlX21vZHVsZXMvdW5pc3QtdXRpbC12aXNpdC1wYXJlbnRzL2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvZGV2bG9wL2xpYi9kZWZhdWx0LmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9zY2hlbWEuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL21lcmdlLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvbm9ybWFsaXplLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9pbmZvLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC90eXBlcy5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3V0aWwvZGVmaW5lZC1pbmZvLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9jcmVhdGUuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi94bGluay5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3htbC5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3V0aWwvY2FzZS1zZW5zaXRpdmUtdHJhbnNmb3JtLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9jYXNlLWluc2Vuc2l0aXZlLXRyYW5zZm9ybS5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3htbG5zLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvYXJpYS5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL2h0bWwuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi9zdmcuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi9maW5kLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvY29tbWEtc2VwYXJhdGVkLXRva2Vucy9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXBhcnNlLXNlbGVjdG9yL2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvc3BhY2Utc2VwYXJhdGVkLXRva2Vucy9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvaGFzdHNjcmlwdC9saWIvY3JlYXRlLWguanMiLCAibm9kZV9tb2R1bGVzL2hhc3RzY3JpcHQvbGliL3N2Zy1jYXNlLXNlbnNpdGl2ZS10YWctbmFtZXMuanMiLCAibm9kZV9tb2R1bGVzL2hhc3RzY3JpcHQvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy92ZmlsZS1sb2NhdGlvbi9saWIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL3dlYi1uYW1lc3BhY2VzL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtZnJvbS1wYXJzZTUvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC9jb21tb24vdW5pY29kZS5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvY29tbW9uL2Vycm9yLWNvZGVzLmpzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC90b2tlbml6ZXIvcHJlcHJvY2Vzc29yLmpzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC9jb21tb24vdG9rZW4uanMiLCAibm9kZV9tb2R1bGVzL2VudGl0aWVzL2xpYi9lc20vZ2VuZXJhdGVkL2dlbmVyYXRlZC9kZWNvZGUtZGF0YS1odG1sLnRzIiwgIm5vZGVfbW9kdWxlcy9lbnRpdGllcy9saWIvZXNtL2dlbmVyYXRlZC9nZW5lcmF0ZWQvZGVjb2RlLWRhdGEteG1sLnRzIiwgIm5vZGVfbW9kdWxlcy9lbnRpdGllcy9saWIvZXNtL2RlY29kZV9jb2RlcG9pbnQudHMiLCAibm9kZV9tb2R1bGVzL2VudGl0aWVzL2xpYi9lc20vZGVjb2RlLnRzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC9jb21tb24vaHRtbC5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvdG9rZW5pemVyL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC9wYXJzZXIvb3Blbi1lbGVtZW50LXN0YWNrLmpzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC9wYXJzZXIvZm9ybWF0dGluZy1lbGVtZW50LWxpc3QuanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L3RyZWUtYWRhcHRlcnMvZGVmYXVsdC5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvY29tbW9uL2RvY3R5cGUuanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L2NvbW1vbi9mb3JlaWduLWNvbnRlbnQuanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L3BhcnNlci9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvZW50aXRpZXMvbGliL2VzbS9lc2NhcGUudHMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L3NlcmlhbGl6ZXIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy91bmlzdC11dGlsLXN0cmluZ2lmeS1wb3NpdGlvbi9saWIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL3ZmaWxlLW1lc3NhZ2UvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy92ZmlsZS9saWIvbWlucGF0aC5icm93c2VyLmpzIiwgIm5vZGVfbW9kdWxlcy92ZmlsZS9saWIvbWlucHJvYy5icm93c2VyLmpzIiwgIm5vZGVfbW9kdWxlcy92ZmlsZS9saWIvbWludXJsLnNoYXJlZC5qcyIsICJub2RlX21vZHVsZXMvdmZpbGUvbGliL21pbnVybC5icm93c2VyLmpzIiwgIm5vZGVfbW9kdWxlcy92ZmlsZS9saWIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1mcm9tLWh0bWwvbGliL2Vycm9ycy5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLWZyb20taHRtbC9saWIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2h0bWwtdm9pZC1lbGVtZW50cy9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvendpdGNoL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL2NvcmUuanMiLCAibm9kZV9tb2R1bGVzL3N0cmluZ2lmeS1lbnRpdGllcy9saWIvdXRpbC90by1oZXhhZGVjaW1hbC5qcyIsICJub2RlX21vZHVsZXMvc3RyaW5naWZ5LWVudGl0aWVzL2xpYi91dGlsL3RvLWRlY2ltYWwuanMiLCAibm9kZV9tb2R1bGVzL2NoYXJhY3Rlci1lbnRpdGllcy1sZWdhY3kvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2NoYXJhY3Rlci1lbnRpdGllcy1odG1sNC9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvc3RyaW5naWZ5LWVudGl0aWVzL2xpYi9jb25zdGFudC9kYW5nZXJvdXMuanMiLCAibm9kZV9tb2R1bGVzL3N0cmluZ2lmeS1lbnRpdGllcy9saWIvdXRpbC90by1uYW1lZC5qcyIsICJub2RlX21vZHVsZXMvc3RyaW5naWZ5LWVudGl0aWVzL2xpYi91dGlsL2Zvcm1hdC1zbWFydC5qcyIsICJub2RlX21vZHVsZXMvc3RyaW5naWZ5LWVudGl0aWVzL2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL2hhbmRsZS9jb21tZW50LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaGFuZGxlL2RvY3R5cGUuanMiLCAibm9kZV9tb2R1bGVzL2Njb3VudC9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXdoaXRlc3BhY2UvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvb21pc3Npb24vdXRpbC9zaWJsaW5ncy5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL29taXNzaW9uL29taXNzaW9uLmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvb21pc3Npb24vY2xvc2luZy5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL29taXNzaW9uL29wZW5pbmcuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9oYW5kbGUvZWxlbWVudC5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL2hhbmRsZS90ZXh0LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaGFuZGxlL3Jhdy5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL2hhbmRsZS9yb290LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaGFuZGxlL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaW5kZXguanMiLCAic3JjL1BhcnNpbmcvSW5saW5lQ29kZVBhcnNpbmcudHMiLCAic3JjL0NvZGVibG9ja0RlY29yYXRpbmcudHMiLCAic3JjL1N5bnRheEhpZ2hsaWdodGluZy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wiUGlja3JcIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1wiUGlja3JcIl0gPSBmYWN0b3J5KCk7XG59KShzZWxmLCAoKSA9PiB7XG5yZXR1cm4gIiwgIi8vIFRoZSByZXF1aXJlIHNjb3BlXG52YXIgX193ZWJwYWNrX3JlcXVpcmVfXyA9IHt9O1xuXG4iLCAiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwgIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCAiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwgIi8qIGVzbGludC1kaXNhYmxlIHByZWZlci1yZXN0LXBhcmFtcyAqL1xuZnVuY3Rpb24gZXZlbnRMaXN0ZW5lcihtZXRob2QsIGVsZW1lbnRzLCBldmVudHMsIGZuLCBvcHRpb25zID0ge30pIHtcblxuICAgIC8vIE5vcm1hbGl6ZSBhcnJheVxuICAgIGlmIChlbGVtZW50cyBpbnN0YW5jZW9mIEhUTUxDb2xsZWN0aW9uIHx8IGVsZW1lbnRzIGluc3RhbmNlb2YgTm9kZUxpc3QpIHtcbiAgICAgICAgZWxlbWVudHMgPSBBcnJheS5mcm9tKGVsZW1lbnRzKTtcbiAgICB9IGVsc2UgaWYgKCFBcnJheS5pc0FycmF5KGVsZW1lbnRzKSkge1xuICAgICAgICBlbGVtZW50cyA9IFtlbGVtZW50c107XG4gICAgfVxuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGV2ZW50cykpIHtcbiAgICAgICAgZXZlbnRzID0gW2V2ZW50c107XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBlbCBvZiBlbGVtZW50cykge1xuICAgICAgICBmb3IgKGNvbnN0IGV2IG9mIGV2ZW50cykge1xuICAgICAgICAgICAgZWxbbWV0aG9kXShldiwgZm4sIHtjYXB0dXJlOiBmYWxzZSwgLi4ub3B0aW9uc30pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7XG59XG5cbi8qKlxuICogQWRkIGV2ZW50KHMpIHRvIGVsZW1lbnQocykuXG4gKiBAcGFyYW0gZWxlbWVudHMgRE9NLUVsZW1lbnRzXG4gKiBAcGFyYW0gZXZlbnRzIEV2ZW50IG5hbWVzXG4gKiBAcGFyYW0gZm4gQ2FsbGJhY2tcbiAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbmFsIG9wdGlvbnNcbiAqIEByZXR1cm4gQXJyYXkgcGFzc2VkIGFyZ3VtZW50c1xuICovXG5leHBvcnQgY29uc3Qgb24gPSBldmVudExpc3RlbmVyLmJpbmQobnVsbCwgJ2FkZEV2ZW50TGlzdGVuZXInKTtcblxuLyoqXG4gKiBSZW1vdmUgZXZlbnQocykgZnJvbSBlbGVtZW50KHMpLlxuICogQHBhcmFtIGVsZW1lbnRzIERPTS1FbGVtZW50c1xuICogQHBhcmFtIGV2ZW50cyBFdmVudCBuYW1lc1xuICogQHBhcmFtIGZuIENhbGxiYWNrXG4gKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25hbCBvcHRpb25zXG4gKiBAcmV0dXJuIEFycmF5IHBhc3NlZCBhcmd1bWVudHNcbiAqL1xuZXhwb3J0IGNvbnN0IG9mZiA9IGV2ZW50TGlzdGVuZXIuYmluZChudWxsLCAncmVtb3ZlRXZlbnRMaXN0ZW5lcicpO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gRE9NLUVsZW1lbnQgb3V0IG9mIGEgc3RyaW5nIChTaW5nbGUgZWxlbWVudCkuXG4gKiBAcGFyYW0gaHRtbCBIVE1MIHJlcHJlc2VudGluZyBhIHNpbmdsZSBlbGVtZW50XG4gKiBAcmV0dXJucyB7RWxlbWVudCB8IG51bGx9IFRoZSBlbGVtZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRWxlbWVudEZyb21TdHJpbmcoaHRtbCkge1xuICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGRpdi5pbm5lckhUTUwgPSBodG1sLnRyaW0oKTtcbiAgICByZXR1cm4gZGl2LmZpcnN0RWxlbWVudENoaWxkO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgaHRtbCBlbGVtZW50LCBldmVyeSBlbGVtZW50IHdoaWNoIGhhc1xuICogYSAnOnJlZicgYXR0cmlidXRlIHdpbGwgYmUgc2F2ZWQgaW4gYSBvYmplY3QgKHdoaWNoIHdpbGwgYmUgcmV0dXJuZWQpXG4gKiB3aGVyZSB0aGUgdmFsdWUgb2YgJzpyZWYnIGlzIHRoZSBvYmplY3Qta2V5IGFuZCB0aGUgdmFsdWUgdGhlIEhUTUxFbGVtZW50LlxuICpcbiAqIEl0J3MgcG9zc2libGUgdG8gY3JlYXRlIGEgaGllcmFyY2h5IGlmIHlvdSBhZGQgYSAnOm9iaicgYXR0cmlidXRlLiBFdmVyeVxuICogc2libGluZyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBvYmplY3Qgd2hpY2ggd2lsbCBnZXQgdGhlIG5hbWUgZnJvbSB0aGUgJ2RhdGEtY29uJyBhdHRyaWJ1dGUuXG4gKlxuICogSWYgeW91IHdhbnQgdG8gY3JlYXRlIGFuIEFycmF5IG91dCBvZiBtdWx0aXBsZSBlbGVtZW50cywgeW91IGNhbiB1c2UgdGhlICc6YXJyJyBhdHRyaWJ1dGUsXG4gKiB0aGUgdmFsdWUgZGVmaW5lcyB0aGUga2V5IGFuZCBhbGwgZWxlbWVudHMsIHdoaWNoIGhhcyB0aGUgc2FtZSBwYXJlbnQgYW5kIHRoZSBzYW1lICdkYXRhLWFycicgYXR0cmlidXRlLFxuICogd291bGQgYmUgYWRkZWQgdG8gaXQuXG4gKlxuICogQHBhcmFtIHN0ciAtIFRoZSBIVE1MIFN0cmluZy5cbiAqL1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRnJvbVRlbXBsYXRlKHN0cikge1xuXG4gICAgLy8gUmVtb3ZlcyBhbiBhdHRyaWJ1dGUgZnJvbSBhIEhUTUxFbGVtZW50IGFuZCByZXR1cm5zIHRoZSB2YWx1ZS5cbiAgICBjb25zdCByZW1vdmVBdHRyaWJ1dGUgPSAoZWwsIG5hbWUpID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBlbC5nZXRBdHRyaWJ1dGUobmFtZSk7XG4gICAgICAgIGVsLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH07XG5cbiAgICAvLyBSZWN1cnNpdmUgZnVuY3Rpb24gdG8gcmVzb2x2ZSB0ZW1wbGF0ZVxuICAgIGNvbnN0IHJlc29sdmUgPSAoZWxlbWVudCwgYmFzZSA9IHt9KSA9PiB7XG5cbiAgICAgICAgLy8gQ2hlY2sga2V5IGFuZCBjb250YWluZXIgYXR0cmlidXRlXG4gICAgICAgIGNvbnN0IGNvbiA9IHJlbW92ZUF0dHJpYnV0ZShlbGVtZW50LCAnOm9iaicpO1xuICAgICAgICBjb25zdCBrZXkgPSByZW1vdmVBdHRyaWJ1dGUoZWxlbWVudCwgJzpyZWYnKTtcbiAgICAgICAgY29uc3Qgc3VidHJlZSA9IGNvbiA/IChiYXNlW2Nvbl0gPSB7fSkgOiBiYXNlO1xuXG4gICAgICAgIC8vIENoZWNrIGFuZCBzYXZlIGVsZW1lbnRcbiAgICAgICAga2V5ICYmIChiYXNlW2tleV0gPSBlbGVtZW50KTtcbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBBcnJheS5mcm9tKGVsZW1lbnQuY2hpbGRyZW4pKSB7XG4gICAgICAgICAgICBjb25zdCBhcnIgPSByZW1vdmVBdHRyaWJ1dGUoY2hpbGQsICc6YXJyJyk7XG4gICAgICAgICAgICBjb25zdCBzdWIgPSByZXNvbHZlKGNoaWxkLCBhcnIgPyB7fSA6IHN1YnRyZWUpO1xuXG4gICAgICAgICAgICBpZiAoYXJyKSB7XG5cbiAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGVyZSBpcyBhbHJlYWR5IGFuIGFycmF5IGFuZCBhZGQgZWxlbWVudFxuICAgICAgICAgICAgICAgIChzdWJ0cmVlW2Fycl0gfHwgKHN1YnRyZWVbYXJyXSA9IFtdKSlcbiAgICAgICAgICAgICAgICAgICAgLnB1c2goT2JqZWN0LmtleXMoc3ViKS5sZW5ndGggPyBzdWIgOiBjaGlsZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYmFzZTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlc29sdmUoY3JlYXRlRWxlbWVudEZyb21TdHJpbmcoc3RyKSk7XG59XG5cbi8qKlxuICogUG9seWZpbGwgZm9yIHNhZmFyaSAmIGZpcmVmb3ggZm9yIHRoZSBldmVudFBhdGggZXZlbnQgcHJvcGVydHkuXG4gKiBAcGFyYW0gZXZ0IFRoZSBldmVudCBvYmplY3QuXG4gKiBAcmV0dXJuIFtTdHJpbmddIGV2ZW50IHBhdGguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBldmVudFBhdGgoZXZ0KSB7XG4gICAgbGV0IHBhdGggPSBldnQucGF0aCB8fCAoZXZ0LmNvbXBvc2VkUGF0aCAmJiBldnQuY29tcG9zZWRQYXRoKCkpO1xuICAgIGlmIChwYXRoKSB7XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgIH1cblxuICAgIGxldCBlbCA9IGV2dC50YXJnZXQucGFyZW50RWxlbWVudDtcbiAgICBwYXRoID0gW2V2dC50YXJnZXQsIGVsXTtcbiAgICB3aGlsZSAoZWwgPSBlbC5wYXJlbnRFbGVtZW50KSB7XG4gICAgICAgIHBhdGgucHVzaChlbCk7XG4gICAgfVxuXG4gICAgcGF0aC5wdXNoKGRvY3VtZW50LCB3aW5kb3cpO1xuICAgIHJldHVybiBwYXRoO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIGEgSFRNTEVsZW1lbnQgYnkgcXVlcnkuXG4gKiBAcGFyYW0gdmFsXG4gKiBAcmV0dXJucyB7bnVsbHxEb2N1bWVudHxFbGVtZW50fVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUVsZW1lbnQodmFsKSB7XG4gICAgaWYgKHZhbCBpbnN0YW5jZW9mIEVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHZhbDtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB2YWwuc3BsaXQoLz4+L2cpLnJlZHVjZSgocHYsIGN2LCBjaSwgYSkgPT4ge1xuICAgICAgICAgICAgcHYgPSBwdi5xdWVyeVNlbGVjdG9yKGN2KTtcbiAgICAgICAgICAgIHJldHVybiBjaSA8IGEubGVuZ3RoIC0gMSA/IHB2LnNoYWRvd1Jvb3QgOiBwdjtcbiAgICAgICAgfSwgZG9jdW1lbnQpO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgdGhlIGFiaWxpdHkgdG8gY2hhbmdlIG51bWJlcnMgaW4gYW4gaW5wdXQgZmllbGQgd2l0aCB0aGUgc2Nyb2xsLXdoZWVsLlxuICogQHBhcmFtIGVsXG4gKiBAcGFyYW0gbWFwcGVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGp1c3RhYmxlSW5wdXROdW1iZXJzKGVsLCBtYXBwZXIgPSB2ID0+IHYpIHtcblxuICAgIGZ1bmN0aW9uIGhhbmRsZVNjcm9sbChlKSB7XG4gICAgICAgIGNvbnN0IGluYyA9IChbMC4wMDEsIDAuMDEsIDAuMV0pW051bWJlcihlLnNoaWZ0S2V5IHx8IGUuY3RybEtleSAqIDIpXSAqIChlLmRlbHRhWSA8IDAgPyAxIDogLTEpO1xuXG4gICAgICAgIGxldCBpbmRleCA9IDA7XG4gICAgICAgIGxldCBvZmYgPSBlbC5zZWxlY3Rpb25TdGFydDtcbiAgICAgICAgZWwudmFsdWUgPSBlbC52YWx1ZS5yZXBsYWNlKC9bXFxkLl0rL2csICh2LCBpKSA9PiB7XG5cbiAgICAgICAgICAgIC8vIENoZWNrIGlmIG51bWJlciBpcyBpbiBjdXJzb3IgcmFuZ2UgYW5kIGluY3JlYXNlIGl0XG4gICAgICAgICAgICBpZiAoaSA8PSBvZmYgJiYgaSArIHYubGVuZ3RoID49IG9mZikge1xuICAgICAgICAgICAgICAgIG9mZiA9IGk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1hcHBlcihOdW1iZXIodiksIGluYywgaW5kZXgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbmRleCsrO1xuICAgICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGVsLmZvY3VzKCk7XG4gICAgICAgIGVsLnNldFNlbGVjdGlvblJhbmdlKG9mZiwgb2ZmKTtcblxuICAgICAgICAvLyBQcmV2ZW50IGRlZmF1bHQgYW5kIHRyaWdnZXIgaW5wdXQgZXZlbnRcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBlbC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnKSk7XG4gICAgfVxuXG4gICAgLy8gQmluZCBldmVudHNcbiAgICBvbihlbCwgJ2ZvY3VzJywgKCkgPT4gb24od2luZG93LCAnd2hlZWwnLCBoYW5kbGVTY3JvbGwsIHtwYXNzaXZlOiBmYWxzZX0pKTtcbiAgICBvbihlbCwgJ2JsdXInLCAoKSA9PiBvZmYod2luZG93LCAnd2hlZWwnLCBoYW5kbGVTY3JvbGwpKTtcbn1cbiIsICIvLyBTaG9ydGhhbmRzXG5jb25zdCB7bWluLCBtYXgsIGZsb29yLCByb3VuZH0gPSBNYXRoO1xuXG4vKipcbiAqIFRyaWVzIHRvIGNvbnZlcnQgYSBjb2xvciBuYW1lIHRvIHJnYi9hIGhleCByZXByZXNlbnRhdGlvblxuICogQHBhcmFtIG5hbWVcbiAqIEByZXR1cm5zIHtzdHJpbmcgfCBDYW52YXNHcmFkaWVudCB8IENhbnZhc1BhdHRlcm59XG4gKi9cbmZ1bmN0aW9uIHN0YW5kYXJkaXplQ29sb3IobmFtZSkge1xuXG4gICAgLy8gU2luY2UgaW52YWxpZCBjb2xvcidzIHdpbGwgYmUgcGFyc2VkIGFzIGJsYWNrLCBmaWx0ZXIgdGhlbSBvdXRcbiAgICBpZiAobmFtZS50b0xvd2VyQ2FzZSgpID09PSAnYmxhY2snKSB7XG4gICAgICAgIHJldHVybiAnIzAwMCc7XG4gICAgfVxuXG4gICAgY29uc3QgY3R4ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJykuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICBjdHguZmlsbFN0eWxlID0gbmFtZTtcbiAgICByZXR1cm4gY3R4LmZpbGxTdHlsZSA9PT0gJyMwMDAnID8gbnVsbCA6IGN0eC5maWxsU3R5bGU7XG59XG5cbi8qKlxuICogQ29udmVydCBIU1Ygc3BlY3RydW0gdG8gUkdCLlxuICogQHBhcmFtIGggSHVlXG4gKiBAcGFyYW0gcyBTYXR1cmF0aW9uXG4gKiBAcGFyYW0gdiBWYWx1ZVxuICogQHJldHVybnMge251bWJlcltdfSBBcnJheSB3aXRoIHJnYiB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoc3ZUb1JnYihoLCBzLCB2KSB7XG4gICAgaCA9IChoIC8gMzYwKSAqIDY7XG4gICAgcyAvPSAxMDA7XG4gICAgdiAvPSAxMDA7XG5cbiAgICBjb25zdCBpID0gZmxvb3IoaCk7XG5cbiAgICBjb25zdCBmID0gaCAtIGk7XG4gICAgY29uc3QgcCA9IHYgKiAoMSAtIHMpO1xuICAgIGNvbnN0IHEgPSB2ICogKDEgLSBmICogcyk7XG4gICAgY29uc3QgdCA9IHYgKiAoMSAtICgxIC0gZikgKiBzKTtcblxuICAgIGNvbnN0IG1vZCA9IGkgJSA2O1xuICAgIGNvbnN0IHIgPSBbdiwgcSwgcCwgcCwgdCwgdl1bbW9kXTtcbiAgICBjb25zdCBnID0gW3QsIHYsIHYsIHEsIHAsIHBdW21vZF07XG4gICAgY29uc3QgYiA9IFtwLCBwLCB0LCB2LCB2LCBxXVttb2RdO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgICAgciAqIDI1NSxcbiAgICAgICAgZyAqIDI1NSxcbiAgICAgICAgYiAqIDI1NVxuICAgIF07XG59XG5cbi8qKlxuICogQ29udmVydCBIU1Ygc3BlY3RydW0gdG8gSGV4LlxuICogQHBhcmFtIGggSHVlXG4gKiBAcGFyYW0gcyBTYXR1cmF0aW9uXG4gKiBAcGFyYW0gdiBWYWx1ZVxuICogQHJldHVybnMge3N0cmluZ1tdfSBIZXggdmFsdWVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoc3ZUb0hleChoLCBzLCB2KSB7XG4gICAgcmV0dXJuIGhzdlRvUmdiKGgsIHMsIHYpLm1hcCh2ID0+XG4gICAgICAgIHJvdW5kKHYpLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCAnMCcpXG4gICAgKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IEhTViBzcGVjdHJ1bSB0byBDTVlLLlxuICogQHBhcmFtIGggSHVlXG4gKiBAcGFyYW0gcyBTYXR1cmF0aW9uXG4gKiBAcGFyYW0gdiBWYWx1ZVxuICogQHJldHVybnMge251bWJlcltdfSBDTVlLIHZhbHVlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gaHN2VG9DbXlrKGgsIHMsIHYpIHtcbiAgICBjb25zdCByZ2IgPSBoc3ZUb1JnYihoLCBzLCB2KTtcbiAgICBjb25zdCByID0gcmdiWzBdIC8gMjU1O1xuICAgIGNvbnN0IGcgPSByZ2JbMV0gLyAyNTU7XG4gICAgY29uc3QgYiA9IHJnYlsyXSAvIDI1NTtcblxuICAgIGNvbnN0IGsgPSBtaW4oMSAtIHIsIDEgLSBnLCAxIC0gYik7XG4gICAgY29uc3QgYyA9IGsgPT09IDEgPyAwIDogKDEgLSByIC0gaykgLyAoMSAtIGspO1xuICAgIGNvbnN0IG0gPSBrID09PSAxID8gMCA6ICgxIC0gZyAtIGspIC8gKDEgLSBrKTtcbiAgICBjb25zdCB5ID0gayA9PT0gMSA/IDAgOiAoMSAtIGIgLSBrKSAvICgxIC0gayk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgICBjICogMTAwLFxuICAgICAgICBtICogMTAwLFxuICAgICAgICB5ICogMTAwLFxuICAgICAgICBrICogMTAwXG4gICAgXTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IEhTViBzcGVjdHJ1bSB0byBIU0wuXG4gKiBAcGFyYW0gaCBIdWVcbiAqIEBwYXJhbSBzIFNhdHVyYXRpb25cbiAqIEBwYXJhbSB2IFZhbHVlXG4gKiBAcmV0dXJucyB7bnVtYmVyW119IEhTTCB2YWx1ZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhzdlRvSHNsKGgsIHMsIHYpIHtcbiAgICBzIC89IDEwMDtcbiAgICB2IC89IDEwMDtcblxuICAgIGNvbnN0IGwgPSAoMiAtIHMpICogdiAvIDI7XG5cbiAgICBpZiAobCAhPT0gMCkge1xuICAgICAgICBpZiAobCA9PT0gMSkge1xuICAgICAgICAgICAgcyA9IDA7XG4gICAgICAgIH0gZWxzZSBpZiAobCA8IDAuNSkge1xuICAgICAgICAgICAgcyA9IHMgKiB2IC8gKGwgKiAyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHMgPSBzICogdiAvICgyIC0gbCAqIDIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIFtcbiAgICAgICAgaCxcbiAgICAgICAgcyAqIDEwMCxcbiAgICAgICAgbCAqIDEwMFxuICAgIF07XG59XG5cbi8qKlxuICogQ29udmVydCBSR0IgdG8gSFNWLlxuICogQHBhcmFtIHIgUmVkXG4gKiBAcGFyYW0gZyBHcmVlblxuICogQHBhcmFtIGIgQmx1ZVxuICogQHJldHVybiB7bnVtYmVyW119IEhTViB2YWx1ZXMuXG4gKi9cbmZ1bmN0aW9uIHJnYlRvSHN2KHIsIGcsIGIpIHtcbiAgICByIC89IDI1NTtcbiAgICBnIC89IDI1NTtcbiAgICBiIC89IDI1NTtcblxuICAgIGNvbnN0IG1pblZhbCA9IG1pbihyLCBnLCBiKTtcbiAgICBjb25zdCBtYXhWYWwgPSBtYXgociwgZywgYik7XG4gICAgY29uc3QgZGVsdGEgPSBtYXhWYWwgLSBtaW5WYWw7XG5cbiAgICBsZXQgaCwgcztcbiAgICBjb25zdCB2ID0gbWF4VmFsO1xuICAgIGlmIChkZWx0YSA9PT0gMCkge1xuICAgICAgICBoID0gcyA9IDA7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcyA9IGRlbHRhIC8gbWF4VmFsO1xuICAgICAgICBjb25zdCBkciA9ICgoKG1heFZhbCAtIHIpIC8gNikgKyAoZGVsdGEgLyAyKSkgLyBkZWx0YTtcbiAgICAgICAgY29uc3QgZGcgPSAoKChtYXhWYWwgLSBnKSAvIDYpICsgKGRlbHRhIC8gMikpIC8gZGVsdGE7XG4gICAgICAgIGNvbnN0IGRiID0gKCgobWF4VmFsIC0gYikgLyA2KSArIChkZWx0YSAvIDIpKSAvIGRlbHRhO1xuXG4gICAgICAgIGlmIChyID09PSBtYXhWYWwpIHtcbiAgICAgICAgICAgIGggPSBkYiAtIGRnO1xuICAgICAgICB9IGVsc2UgaWYgKGcgPT09IG1heFZhbCkge1xuICAgICAgICAgICAgaCA9ICgxIC8gMykgKyBkciAtIGRiO1xuICAgICAgICB9IGVsc2UgaWYgKGIgPT09IG1heFZhbCkge1xuICAgICAgICAgICAgaCA9ICgyIC8gMykgKyBkZyAtIGRyO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGggPCAwKSB7XG4gICAgICAgICAgICBoICs9IDE7XG4gICAgICAgIH0gZWxzZSBpZiAoaCA+IDEpIHtcbiAgICAgICAgICAgIGggLT0gMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBbXG4gICAgICAgIGggKiAzNjAsXG4gICAgICAgIHMgKiAxMDAsXG4gICAgICAgIHYgKiAxMDBcbiAgICBdO1xufVxuXG4vKipcbiAqIENvbnZlcnQgQ01ZSyB0byBIU1YuXG4gKiBAcGFyYW0gYyBDeWFuXG4gKiBAcGFyYW0gbSBNYWdlbnRhXG4gKiBAcGFyYW0geSBZZWxsb3dcbiAqIEBwYXJhbSBrIEtleSAoQmxhY2spXG4gKiBAcmV0dXJuIHtudW1iZXJbXX0gSFNWIHZhbHVlcy5cbiAqL1xuZnVuY3Rpb24gY215a1RvSHN2KGMsIG0sIHksIGspIHtcbiAgICBjIC89IDEwMDtcbiAgICBtIC89IDEwMDtcbiAgICB5IC89IDEwMDtcbiAgICBrIC89IDEwMDtcblxuICAgIGNvbnN0IHIgPSAoMSAtIG1pbigxLCBjICogKDEgLSBrKSArIGspKSAqIDI1NTtcbiAgICBjb25zdCBnID0gKDEgLSBtaW4oMSwgbSAqICgxIC0gaykgKyBrKSkgKiAyNTU7XG4gICAgY29uc3QgYiA9ICgxIC0gbWluKDEsIHkgKiAoMSAtIGspICsgaykpICogMjU1O1xuXG4gICAgcmV0dXJuIFsuLi5yZ2JUb0hzdihyLCBnLCBiKV07XG59XG5cbi8qKlxuICogQ29udmVydCBIU0wgdG8gSFNWLlxuICogQHBhcmFtIGggSHVlXG4gKiBAcGFyYW0gcyBTYXR1cmF0aW9uXG4gKiBAcGFyYW0gbCBMaWdodG5lc3NcbiAqIEByZXR1cm4ge251bWJlcltdfSBIU1YgdmFsdWVzLlxuICovXG5mdW5jdGlvbiBoc2xUb0hzdihoLCBzLCBsKSB7XG4gICAgcyAvPSAxMDA7XG4gICAgbCAvPSAxMDA7XG4gICAgcyAqPSBsIDwgMC41ID8gbCA6IDEgLSBsO1xuXG4gICAgY29uc3QgbnMgPSAoMiAqIHMgLyAobCArIHMpKSAqIDEwMDtcbiAgICBjb25zdCB2ID0gKGwgKyBzKSAqIDEwMDtcbiAgICByZXR1cm4gW2gsIGlzTmFOKG5zKSA/IDAgOiBucywgdl07XG59XG5cbi8qKlxuICogQ29udmVydCBIRVggdG8gSFNWLlxuICogQHBhcmFtIGhleCBIZXhhZGVjaW1hbCBzdHJpbmcgb2YgcmdiIGNvbG9ycywgY2FuIGhhdmUgbGVuZ3RoIDMgb3IgNi5cbiAqIEByZXR1cm4ge251bWJlcltdfSBIU1YgdmFsdWVzLlxuICovXG5mdW5jdGlvbiBoZXhUb0hzdihoZXgpIHtcbiAgICByZXR1cm4gcmdiVG9Ic3YoLi4uaGV4Lm1hdGNoKC8uezJ9L2cpLm1hcCh2ID0+IHBhcnNlSW50KHYsIDE2KSkpO1xufVxuXG4vKipcbiAqIFRyeSdzIHRvIHBhcnNlIGEgc3RyaW5nIHdoaWNoIHJlcHJlc2VudHMgYSBjb2xvciB0byBhIEhTViBhcnJheS5cbiAqIEN1cnJlbnQgc3VwcG9ydGVkIHR5cGVzIGFyZSBjbXlrLCByZ2JhLCBoc2xhIGFuZCBoZXhhZGVjaW1hbC5cbiAqIEBwYXJhbSBzdHJcbiAqIEByZXR1cm4geyp9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVRvSFNWQShzdHIpIHtcblxuICAgIC8vIENoZWNrIGlmIHN0cmluZyBpcyBhIGNvbG9yLW5hbWVcbiAgICBzdHIgPSBzdHIubWF0Y2goL15bYS16QS1aXSskLykgPyBzdGFuZGFyZGl6ZUNvbG9yKHN0cikgOiBzdHI7XG5cbiAgICAvLyBSZWd1bGFyIGV4cHJlc3Npb25zIHRvIG1hdGNoIGRpZmZlcmVudCB0eXBlcyBvZiBjb2xvciByZXByZXNlbnRpb25cbiAgICBjb25zdCByZWdleCA9IHtcbiAgICAgICAgY215azogL15jbXlrXFxEKyhbXFxkLl0rKVxcRCsoW1xcZC5dKylcXEQrKFtcXGQuXSspXFxEKyhbXFxkLl0rKS9pLFxuICAgICAgICByZ2JhOiAvXnJnYmE/XFxEKyhbXFxkLl0rKSglPylcXEQrKFtcXGQuXSspKCU/KVxcRCsoW1xcZC5dKykoJT8pXFxEKj8oKFtcXGQuXSspKCU/KXwkKS9pLFxuICAgICAgICBoc2xhOiAvXmhzbGE/XFxEKyhbXFxkLl0rKVxcRCsoW1xcZC5dKylcXEQrKFtcXGQuXSspXFxEKj8oKFtcXGQuXSspKCU/KXwkKS9pLFxuICAgICAgICBoc3ZhOiAvXmhzdmE/XFxEKyhbXFxkLl0rKVxcRCsoW1xcZC5dKylcXEQrKFtcXGQuXSspXFxEKj8oKFtcXGQuXSspKCU/KXwkKS9pLFxuICAgICAgICBoZXhhOiAvXiM/KChbXFxkQS1GYS1mXXszLDR9KXwoW1xcZEEtRmEtZl17Nn0pfChbXFxkQS1GYS1mXXs4fSkpJC9pXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFRha2VzIGFuIEFycmF5IG9mIGFueSB0eXBlLCBjb252ZXJ0IHN0cmluZ3Mgd2hpY2ggcmVwcmVzZW50c1xuICAgICAqIGEgbnVtYmVyIHRvIGEgbnVtYmVyIGFuIGFueXRoaW5nIGVsc2UgdG8gdW5kZWZpbmVkLlxuICAgICAqIEBwYXJhbSBhcnJheVxuICAgICAqIEByZXR1cm4geyp9XG4gICAgICovXG4gICAgY29uc3QgbnVtYXJpemUgPSBhcnJheSA9PiBhcnJheS5tYXAodiA9PiAvXih8XFxkKylcXC5cXGQrfFxcZCskLy50ZXN0KHYpID8gTnVtYmVyKHYpIDogdW5kZWZpbmVkKTtcblxuICAgIGxldCBtYXRjaDtcbiAgICBpbnZhbGlkOiBmb3IgKGNvbnN0IHR5cGUgaW4gcmVnZXgpIHtcblxuICAgICAgICAvLyBDaGVjayBpZiBjdXJyZW50IHNjaGVtZSBwYXNzZWRcbiAgICAgICAgaWYgKCEobWF0Y2ggPSByZWdleFt0eXBlXS5leGVjKHN0cikpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRyeSB0byBjb252ZXJ0XG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnY215ayc6IHtcbiAgICAgICAgICAgICAgICBjb25zdCBbLCBjLCBtLCB5LCBrXSA9IG51bWFyaXplKG1hdGNoKTtcblxuICAgICAgICAgICAgICAgIGlmIChjID4gMTAwIHx8IG0gPiAxMDAgfHwgeSA+IDEwMCB8fCBrID4gMTAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrIGludmFsaWQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZXM6IGNteWtUb0hzdihjLCBtLCB5LCBrKSwgdHlwZX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdyZ2JhJzoge1xuICAgICAgICAgICAgICAgIGxldCBbLCByLCAsIGcsICwgYiwgLCAsIGFdID0gbnVtYXJpemUobWF0Y2gpO1xuXG4gICAgICAgICAgICAgICAgciA9IG1hdGNoWzJdID09PSAnJScgPyAociAvIDEwMCkgKiAyNTUgOiByO1xuICAgICAgICAgICAgICAgIGcgPSBtYXRjaFs0XSA9PT0gJyUnID8gKGcgLyAxMDApICogMjU1IDogZztcbiAgICAgICAgICAgICAgICBiID0gbWF0Y2hbNl0gPT09ICclJyA/IChiIC8gMTAwKSAqIDI1NSA6IGI7XG4gICAgICAgICAgICAgICAgYSA9IG1hdGNoWzldID09PSAnJScgPyAoYSAvIDEwMCkgOiBhO1xuXG4gICAgICAgICAgICAgICAgaWYgKHIgPiAyNTUgfHwgZyA+IDI1NSB8fCBiID4gMjU1IHx8IGEgPCAwIHx8IGEgPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrIGludmFsaWQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZXM6IFsuLi5yZ2JUb0hzdihyLCBnLCBiKSwgYV0sIGEsIHR5cGV9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnaGV4YSc6IHtcbiAgICAgICAgICAgICAgICBsZXQgWywgaGV4XSA9IG1hdGNoO1xuXG4gICAgICAgICAgICAgICAgaWYgKGhleC5sZW5ndGggPT09IDQgfHwgaGV4Lmxlbmd0aCA9PT0gMykge1xuICAgICAgICAgICAgICAgICAgICBoZXggPSBoZXguc3BsaXQoJycpLm1hcCh2ID0+IHYgKyB2KS5qb2luKCcnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCByYXcgPSBoZXguc3Vic3RyaW5nKDAsIDYpO1xuICAgICAgICAgICAgICAgIGxldCBhID0gaGV4LnN1YnN0cmluZyg2KTtcblxuICAgICAgICAgICAgICAgIC8vIENvbnZlcnQgMCAtIDI1NSB0byAwIC0gMSBmb3Igb3BhY2l0eVxuICAgICAgICAgICAgICAgIGEgPSBhID8gKHBhcnNlSW50KGEsIDE2KSAvIDI1NSkgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlczogWy4uLmhleFRvSHN2KHJhdyksIGFdLCBhLCB0eXBlfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2hzbGEnOiB7XG4gICAgICAgICAgICAgICAgbGV0IFssIGgsIHMsIGwsICwgYV0gPSBudW1hcml6ZShtYXRjaCk7XG4gICAgICAgICAgICAgICAgYSA9IG1hdGNoWzZdID09PSAnJScgPyAoYSAvIDEwMCkgOiBhO1xuXG4gICAgICAgICAgICAgICAgaWYgKGggPiAzNjAgfHwgcyA+IDEwMCB8fCBsID4gMTAwIHx8IGEgPCAwIHx8IGEgPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrIGludmFsaWQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZXM6IFsuLi5oc2xUb0hzdihoLCBzLCBsKSwgYV0sIGEsIHR5cGV9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnaHN2YSc6IHtcbiAgICAgICAgICAgICAgICBsZXQgWywgaCwgcywgdiwgLCBhXSA9IG51bWFyaXplKG1hdGNoKTtcbiAgICAgICAgICAgICAgICBhID0gbWF0Y2hbNl0gPT09ICclJyA/IChhIC8gMTAwKSA6IGE7XG5cbiAgICAgICAgICAgICAgICBpZiAoaCA+IDM2MCB8fCBzID4gMTAwIHx8IHYgPiAxMDAgfHwgYSA8IDAgfHwgYSA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWsgaW52YWxpZDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlczogW2gsIHMsIHYsIGFdLCBhLCB0eXBlfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7dmFsdWVzOiBudWxsLCB0eXBlOiBudWxsfTtcbn1cbiIsICJpbXBvcnQge2hzdlRvQ215aywgaHN2VG9IZXgsIGhzdlRvSHNsLCBoc3ZUb1JnYn0gZnJvbSAnLi9jb2xvcic7XG5cbi8qKlxuICogU2ltcGxlIGNsYXNzIHdoaWNoIGhvbGRzIHRoZSBwcm9wZXJ0aWVzXG4gKiBvZiB0aGUgY29sb3IgcmVwcmVzZW50aW9uIG1vZGVsIGhzbGEgKGh1ZSBzYXR1cmF0aW9uIGxpZ2h0bmVzcyBhbHBoYSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEhTVmFDb2xvcihoID0gMCwgcyA9IDAsIHYgPSAwLCBhID0gMSkge1xuICAgIGNvbnN0IG1hcHBlciA9IChvcmlnaW5hbCwgbmV4dCkgPT4gKHByZWNpc2lvbiA9IC0xKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0KH5wcmVjaXNpb24gPyBvcmlnaW5hbC5tYXAodiA9PiBOdW1iZXIodi50b0ZpeGVkKHByZWNpc2lvbikpKSA6IG9yaWdpbmFsKTtcbiAgICB9O1xuXG4gICAgY29uc3QgdGhhdCA9IHtcbiAgICAgICAgaCwgcywgdiwgYSxcblxuICAgICAgICB0b0hTVkEoKSB7XG4gICAgICAgICAgICBjb25zdCBoc3ZhID0gW3RoYXQuaCwgdGhhdC5zLCB0aGF0LnYsIHRoYXQuYV07XG4gICAgICAgICAgICBoc3ZhLnRvU3RyaW5nID0gbWFwcGVyKGhzdmEsIGFyciA9PiBgaHN2YSgke2FyclswXX0sICR7YXJyWzFdfSUsICR7YXJyWzJdfSUsICR7dGhhdC5hfSlgKTtcbiAgICAgICAgICAgIHJldHVybiBoc3ZhO1xuICAgICAgICB9LFxuXG4gICAgICAgIHRvSFNMQSgpIHtcbiAgICAgICAgICAgIGNvbnN0IGhzbGEgPSBbLi4uaHN2VG9Ic2wodGhhdC5oLCB0aGF0LnMsIHRoYXQudiksIHRoYXQuYV07XG4gICAgICAgICAgICBoc2xhLnRvU3RyaW5nID0gbWFwcGVyKGhzbGEsIGFyciA9PiBgaHNsYSgke2FyclswXX0sICR7YXJyWzFdfSUsICR7YXJyWzJdfSUsICR7dGhhdC5hfSlgKTtcbiAgICAgICAgICAgIHJldHVybiBoc2xhO1xuICAgICAgICB9LFxuXG4gICAgICAgIHRvUkdCQSgpIHtcbiAgICAgICAgICAgIGNvbnN0IHJnYmEgPSBbLi4uaHN2VG9SZ2IodGhhdC5oLCB0aGF0LnMsIHRoYXQudiksIHRoYXQuYV07XG4gICAgICAgICAgICByZ2JhLnRvU3RyaW5nID0gbWFwcGVyKHJnYmEsIGFyciA9PiBgcmdiYSgke2FyclswXX0sICR7YXJyWzFdfSwgJHthcnJbMl19LCAke3RoYXQuYX0pYCk7XG4gICAgICAgICAgICByZXR1cm4gcmdiYTtcbiAgICAgICAgfSxcblxuICAgICAgICB0b0NNWUsoKSB7XG4gICAgICAgICAgICBjb25zdCBjbXlrID0gaHN2VG9DbXlrKHRoYXQuaCwgdGhhdC5zLCB0aGF0LnYpO1xuICAgICAgICAgICAgY215ay50b1N0cmluZyA9IG1hcHBlcihjbXlrLCBhcnIgPT4gYGNteWsoJHthcnJbMF19JSwgJHthcnJbMV19JSwgJHthcnJbMl19JSwgJHthcnJbM119JSlgKTtcbiAgICAgICAgICAgIHJldHVybiBjbXlrO1xuICAgICAgICB9LFxuXG4gICAgICAgIHRvSEVYQSgpIHtcbiAgICAgICAgICAgIGNvbnN0IGhleCA9IGhzdlRvSGV4KHRoYXQuaCwgdGhhdC5zLCB0aGF0LnYpO1xuXG4gICAgICAgICAgICAvLyBDaGVjayBpZiBhbHBoYSBjaGFubmVsIG1ha2Ugc2Vuc2UsIGNvbnZlcnQgaXQgdG8gMjU1IG51bWJlciBzcGFjZSwgY29udmVydFxuICAgICAgICAgICAgLy8gVG8gaGV4IGFuZCBwYWQgaXQgd2l0aCB6ZXJvcyBpZiBuZWVkZXQuXG4gICAgICAgICAgICBjb25zdCBhbHBoYSA9IHRoYXQuYSA+PSAxID8gJycgOiBOdW1iZXIoKHRoYXQuYSAqIDI1NSkudG9GaXhlZCgwKSlcbiAgICAgICAgICAgICAgICAudG9TdHJpbmcoMTYpXG4gICAgICAgICAgICAgICAgLnRvVXBwZXJDYXNlKCkucGFkU3RhcnQoMiwgJzAnKTtcblxuICAgICAgICAgICAgYWxwaGEgJiYgaGV4LnB1c2goYWxwaGEpO1xuICAgICAgICAgICAgaGV4LnRvU3RyaW5nID0gKCkgPT4gYCMke2hleC5qb2luKCcnKS50b1VwcGVyQ2FzZSgpfWA7XG4gICAgICAgICAgICByZXR1cm4gaGV4O1xuICAgICAgICB9LFxuXG4gICAgICAgIGNsb25lOiAoKSA9PiBIU1ZhQ29sb3IodGhhdC5oLCB0aGF0LnMsIHRoYXQudiwgdGhhdC5hKVxuICAgIH07XG5cbiAgICByZXR1cm4gdGhhdDtcbn1cbiIsICJpbXBvcnQgKiBhcyBfIGZyb20gJy4uL3V0aWxzL3V0aWxzJztcblxuY29uc3QgY2xhbXAgPSB2ID0+IE1hdGgubWF4KE1hdGgubWluKHYsIDEpLCAwKTtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE1vdmVhYmxlKG9wdCkge1xuXG4gICAgY29uc3QgdGhhdCA9IHtcblxuICAgICAgICAvLyBBc3NpZ24gZGVmYXVsdCB2YWx1ZXNcbiAgICAgICAgb3B0aW9uczogT2JqZWN0LmFzc2lnbih7XG4gICAgICAgICAgICBsb2NrOiBudWxsLFxuICAgICAgICAgICAgb25jaGFuZ2U6ICgpID0+IDAsXG4gICAgICAgICAgICBvbnN0b3A6ICgpID0+IDBcbiAgICAgICAgfSwgb3B0KSxcblxuICAgICAgICBfa2V5Ym9hcmQoZSkge1xuICAgICAgICAgICAgY29uc3Qge29wdGlvbnN9ID0gdGhhdDtcbiAgICAgICAgICAgIGNvbnN0IHt0eXBlLCBrZXl9ID0gZTtcblxuICAgICAgICAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSBNb3ZhYmxlIGlzIGZvY3VzZWQgYW5kIHRoZW4gbW92ZSBpdCBiYXNlZCBvbiBhcnJvdyBrZXkgaW5wdXRzXG4gICAgICAgICAgICAvLyBGb3IgaW1wcm92ZWQgYWNjZXNzaWJpbGl0eVxuICAgICAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IG9wdGlvbnMud3JhcHBlcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHtsb2NrfSA9IHRoYXQub3B0aW9ucztcbiAgICAgICAgICAgICAgICBjb25zdCB1cCA9IGtleSA9PT0gJ0Fycm93VXAnO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJpZ2h0ID0ga2V5ID09PSAnQXJyb3dSaWdodCc7XG4gICAgICAgICAgICAgICAgY29uc3QgZG93biA9IGtleSA9PT0gJ0Fycm93RG93bic7XG4gICAgICAgICAgICAgICAgY29uc3QgbGVmdCA9IGtleSA9PT0gJ0Fycm93TGVmdCc7XG5cbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gJ2tleWRvd24nICYmICh1cCB8fCByaWdodCB8fCBkb3duIHx8IGxlZnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCB4bSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGxldCB5bSA9IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGxvY2sgPT09ICd2Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgeG0gPSAodXAgfHwgcmlnaHQpID8gMSA6IC0xO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxvY2sgPT09ICdoJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgeG0gPSAodXAgfHwgcmlnaHQpID8gLTEgOiAxO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgeW0gPSB1cCA/IC0xIDogKGRvd24gPyAxIDogMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB4bSA9IGxlZnQgPyAtMSA6IChyaWdodCA/IDEgOiAwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoYXQudXBkYXRlKFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhbXAodGhhdC5jYWNoZS54ICsgKDAuMDEgKiB4bSkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhbXAodGhhdC5jYWNoZS55ICsgKDAuMDEgKiB5bSkpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtleS5zdGFydHNXaXRoKCdBcnJvdycpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQub3B0aW9ucy5vbnN0b3AoKTtcbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBfdGFwc3RhcnQoZXZ0KSB7XG4gICAgICAgICAgICBfLm9uKGRvY3VtZW50LCBbJ21vdXNldXAnLCAndG91Y2hlbmQnLCAndG91Y2hjYW5jZWwnXSwgdGhhdC5fdGFwc3RvcCk7XG4gICAgICAgICAgICBfLm9uKGRvY3VtZW50LCBbJ21vdXNlbW92ZScsICd0b3VjaG1vdmUnXSwgdGhhdC5fdGFwbW92ZSk7XG5cbiAgICAgICAgICAgIGlmIChldnQuY2FuY2VsYWJsZSkge1xuICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBUcmlnZ2VyXG4gICAgICAgICAgICB0aGF0Ll90YXBtb3ZlKGV2dCk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgX3RhcG1vdmUoZXZ0KSB7XG4gICAgICAgICAgICBjb25zdCB7b3B0aW9ucywgY2FjaGV9ID0gdGhhdDtcbiAgICAgICAgICAgIGNvbnN0IHtsb2NrLCBlbGVtZW50LCB3cmFwcGVyfSA9IG9wdGlvbnM7XG4gICAgICAgICAgICBjb25zdCBiID0gd3JhcHBlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICAgICAgbGV0IHggPSAwLCB5ID0gMDtcbiAgICAgICAgICAgIGlmIChldnQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0b3VjaCA9IGV2dCAmJiBldnQudG91Y2hlcyAmJiBldnQudG91Y2hlc1swXTtcbiAgICAgICAgICAgICAgICB4ID0gZXZ0ID8gKHRvdWNoIHx8IGV2dCkuY2xpZW50WCA6IDA7XG4gICAgICAgICAgICAgICAgeSA9IGV2dCA/ICh0b3VjaCB8fCBldnQpLmNsaWVudFkgOiAwO1xuXG4gICAgICAgICAgICAgICAgLy8gUmVzZXQgdG8gYm91bmRzXG4gICAgICAgICAgICAgICAgaWYgKHggPCBiLmxlZnQpIHtcbiAgICAgICAgICAgICAgICAgICAgeCA9IGIubGVmdDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHggPiBiLmxlZnQgKyBiLndpZHRoKSB7XG4gICAgICAgICAgICAgICAgICAgIHggPSBiLmxlZnQgKyBiLndpZHRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoeSA8IGIudG9wKSB7XG4gICAgICAgICAgICAgICAgICAgIHkgPSBiLnRvcDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHkgPiBiLnRvcCArIGIuaGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIHkgPSBiLnRvcCArIGIuaGVpZ2h0O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIE5vcm1hbGl6ZVxuICAgICAgICAgICAgICAgIHggLT0gYi5sZWZ0O1xuICAgICAgICAgICAgICAgIHkgLT0gYi50b3A7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNhY2hlKSB7XG4gICAgICAgICAgICAgICAgeCA9IGNhY2hlLnggKiBiLndpZHRoO1xuICAgICAgICAgICAgICAgIHkgPSBjYWNoZS55ICogYi5oZWlnaHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChsb2NrICE9PSAnaCcpIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50LnN0eWxlLmxlZnQgPSBgY2FsYygke3ggLyBiLndpZHRoICogMTAwfSUgLSAke2VsZW1lbnQub2Zmc2V0V2lkdGggLyAyfXB4KWA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChsb2NrICE9PSAndicpIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50LnN0eWxlLnRvcCA9IGBjYWxjKCR7eSAvIGIuaGVpZ2h0ICogMTAwfSUgLSAke2VsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMn1weClgO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGF0LmNhY2hlID0ge3g6IHggLyBiLndpZHRoLCB5OiB5IC8gYi5oZWlnaHR9O1xuICAgICAgICAgICAgY29uc3QgY3ggPSBjbGFtcCh4IC8gYi53aWR0aCk7XG4gICAgICAgICAgICBjb25zdCBjeSA9IGNsYW1wKHkgLyBiLmhlaWdodCk7XG5cbiAgICAgICAgICAgIHN3aXRjaCAobG9jaykge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3YnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5vbmNoYW5nZShjeCk7XG4gICAgICAgICAgICAgICAgY2FzZSAnaCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLm9uY2hhbmdlKGN5KTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5vbmNoYW5nZShjeCwgY3kpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIF90YXBzdG9wKCkge1xuICAgICAgICAgICAgdGhhdC5vcHRpb25zLm9uc3RvcCgpO1xuICAgICAgICAgICAgXy5vZmYoZG9jdW1lbnQsIFsnbW91c2V1cCcsICd0b3VjaGVuZCcsICd0b3VjaGNhbmNlbCddLCB0aGF0Ll90YXBzdG9wKTtcbiAgICAgICAgICAgIF8ub2ZmKGRvY3VtZW50LCBbJ21vdXNlbW92ZScsICd0b3VjaG1vdmUnXSwgdGhhdC5fdGFwbW92ZSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgdHJpZ2dlcigpIHtcbiAgICAgICAgICAgIHRoYXQuX3RhcG1vdmUoKTtcbiAgICAgICAgfSxcblxuICAgICAgICB1cGRhdGUoeCA9IDAsIHkgPSAwKSB7XG4gICAgICAgICAgICBjb25zdCB7bGVmdCwgdG9wLCB3aWR0aCwgaGVpZ2h0fSA9IHRoYXQub3B0aW9ucy53cmFwcGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmxvY2sgPT09ICdoJykge1xuICAgICAgICAgICAgICAgIHkgPSB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGF0Ll90YXBtb3ZlKHtcbiAgICAgICAgICAgICAgICBjbGllbnRYOiBsZWZ0ICsgd2lkdGggKiB4LFxuICAgICAgICAgICAgICAgIGNsaWVudFk6IHRvcCArIGhlaWdodCAqIHlcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuXG4gICAgICAgIGRlc3Ryb3koKSB7XG4gICAgICAgICAgICBjb25zdCB7b3B0aW9ucywgX3RhcHN0YXJ0LCBfa2V5Ym9hcmR9ID0gdGhhdDtcbiAgICAgICAgICAgIF8ub2ZmKGRvY3VtZW50LCBbJ2tleWRvd24nLCAna2V5dXAnXSwgX2tleWJvYXJkKTtcbiAgICAgICAgICAgIF8ub2ZmKFtvcHRpb25zLndyYXBwZXIsIG9wdGlvbnMuZWxlbWVudF0sICdtb3VzZWRvd24nLCBfdGFwc3RhcnQpO1xuICAgICAgICAgICAgXy5vZmYoW29wdGlvbnMud3JhcHBlciwgb3B0aW9ucy5lbGVtZW50XSwgJ3RvdWNoc3RhcnQnLCBfdGFwc3RhcnQsIHtcbiAgICAgICAgICAgICAgICBwYXNzaXZlOiBmYWxzZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLy8gSW5pdGlsaXplXG4gICAgY29uc3Qge29wdGlvbnMsIF90YXBzdGFydCwgX2tleWJvYXJkfSA9IHRoYXQ7XG4gICAgXy5vbihbb3B0aW9ucy53cmFwcGVyLCBvcHRpb25zLmVsZW1lbnRdLCAnbW91c2Vkb3duJywgX3RhcHN0YXJ0KTtcbiAgICBfLm9uKFtvcHRpb25zLndyYXBwZXIsIG9wdGlvbnMuZWxlbWVudF0sICd0b3VjaHN0YXJ0JywgX3RhcHN0YXJ0LCB7XG4gICAgICAgIHBhc3NpdmU6IGZhbHNlXG4gICAgfSk7XG5cbiAgICBfLm9uKGRvY3VtZW50LCBbJ2tleWRvd24nLCAna2V5dXAnXSwgX2tleWJvYXJkKTtcblxuICAgIHJldHVybiB0aGF0O1xufVxuIiwgImltcG9ydCAqIGFzIF8gZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBTZWxlY3RhYmxlKG9wdCA9IHt9KSB7XG4gICAgb3B0ID0gT2JqZWN0LmFzc2lnbih7XG4gICAgICAgIG9uY2hhbmdlOiAoKSA9PiAwLFxuICAgICAgICBjbGFzc05hbWU6ICcnLFxuICAgICAgICBlbGVtZW50czogW11cbiAgICB9LCBvcHQpO1xuXG4gICAgY29uc3Qgb25UYXAgPSBfLm9uKG9wdC5lbGVtZW50cywgJ2NsaWNrJywgZXZ0ID0+IHtcbiAgICAgICAgb3B0LmVsZW1lbnRzLmZvckVhY2goZSA9PlxuICAgICAgICAgICAgZS5jbGFzc0xpc3RbZXZ0LnRhcmdldCA9PT0gZSA/ICdhZGQnIDogJ3JlbW92ZSddKG9wdC5jbGFzc05hbWUpXG4gICAgICAgICk7XG5cbiAgICAgICAgb3B0Lm9uY2hhbmdlKGV2dCk7XG5cbiAgICAgICAgLy8gRml4IGZvciBodHRwczovL2dpdGh1Yi5jb20vU2ltb253ZXAvcGlja3IvaXNzdWVzLzI0M1xuICAgICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBkZXN0cm95OiAoKSA9PiBfLm9mZiguLi5vblRhcClcbiAgICB9O1xufVxuIiwgImltcG9ydCAqIGFzIF8gZnJvbSAnLi91dGlscy91dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGluc3RhbmNlID0+IHtcblxuICAgIGNvbnN0IHtcbiAgICAgICAgY29tcG9uZW50cyxcbiAgICAgICAgdXNlQXNCdXR0b24sXG4gICAgICAgIGlubGluZSxcbiAgICAgICAgYXBwQ2xhc3MsXG4gICAgICAgIHRoZW1lLFxuICAgICAgICBsb2NrT3BhY2l0eVxuICAgIH0gPSBpbnN0YW5jZS5vcHRpb25zO1xuXG4gICAgLy8gVXRpbHNcbiAgICBjb25zdCBoaWRkZW4gPSBjb24gPT4gY29uID8gJycgOiAnc3R5bGU9XCJkaXNwbGF5Om5vbmVcIiBoaWRkZW4nO1xuICAgIGNvbnN0IHQgPSBzdHIgPT4gaW5zdGFuY2UuX3Qoc3RyKTtcblxuICAgIGNvbnN0IHJvb3QgPSBfLmNyZWF0ZUZyb21UZW1wbGF0ZShgXG4gICAgICA8ZGl2IDpyZWY9XCJyb290XCIgY2xhc3M9XCJwaWNrclwiPlxuXG4gICAgICAgICR7dXNlQXNCdXR0b24gPyAnJyA6ICc8YnV0dG9uIHR5cGU9XCJidXR0b25cIiA6cmVmPVwiYnV0dG9uXCIgY2xhc3M9XCJwY3ItYnV0dG9uXCI+PC9idXR0b24+J31cblxuICAgICAgICA8ZGl2IDpyZWY9XCJhcHBcIiBjbGFzcz1cInBjci1hcHAgJHthcHBDbGFzcyB8fCAnJ31cIiBkYXRhLXRoZW1lPVwiJHt0aGVtZX1cIiAke2lubGluZSA/ICdzdHlsZT1cInBvc2l0aW9uOiB1bnNldFwiJyA6ICcnfSBhcmlhLWxhYmVsPVwiJHt0KCd1aTpkaWFsb2cnLCAnY29sb3IgcGlja2VyIGRpYWxvZycpfVwiIHJvbGU9XCJ3aW5kb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicGNyLXNlbGVjdGlvblwiICR7aGlkZGVuKGNvbXBvbmVudHMucGFsZXR0ZSl9PlxuICAgICAgICAgICAgPGRpdiA6b2JqPVwicHJldmlld1wiIGNsYXNzPVwicGNyLWNvbG9yLXByZXZpZXdcIiAke2hpZGRlbihjb21wb25lbnRzLnByZXZpZXcpfT5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgOnJlZj1cImxhc3RDb2xvclwiIGNsYXNzPVwicGNyLWxhc3QtY29sb3JcIiBhcmlhLWxhYmVsPVwiJHt0KCdidG46bGFzdC1jb2xvcicpfVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgICA8ZGl2IDpyZWY9XCJjdXJyZW50Q29sb3JcIiBjbGFzcz1cInBjci1jdXJyZW50LWNvbG9yXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiA6b2JqPVwicGFsZXR0ZVwiIGNsYXNzPVwicGNyLWNvbG9yLXBhbGV0dGVcIj5cbiAgICAgICAgICAgICAgPGRpdiA6cmVmPVwicGlja2VyXCIgY2xhc3M9XCJwY3ItcGlja2VyXCI+PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgOnJlZj1cInBhbGV0dGVcIiBjbGFzcz1cInBjci1wYWxldHRlXCIgdGFiaW5kZXg9XCIwXCIgYXJpYS1sYWJlbD1cIiR7dCgnYXJpYTpwYWxldHRlJyl9XCIgcm9sZT1cImxpc3Rib3hcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IDpvYmo9XCJodWVcIiBjbGFzcz1cInBjci1jb2xvci1jaG9vc2VyXCIgJHtoaWRkZW4oY29tcG9uZW50cy5odWUpfT5cbiAgICAgICAgICAgICAgPGRpdiA6cmVmPVwicGlja2VyXCIgY2xhc3M9XCJwY3ItcGlja2VyXCI+PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgOnJlZj1cInNsaWRlclwiIGNsYXNzPVwicGNyLWh1ZSBwY3Itc2xpZGVyXCIgdGFiaW5kZXg9XCIwXCIgYXJpYS1sYWJlbD1cIiR7dCgnYXJpYTpodWUnKX1cIiByb2xlPVwic2xpZGVyXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiA6b2JqPVwib3BhY2l0eVwiIGNsYXNzPVwicGNyLWNvbG9yLW9wYWNpdHlcIiAke2hpZGRlbihjb21wb25lbnRzLm9wYWNpdHkpfT5cbiAgICAgICAgICAgICAgPGRpdiA6cmVmPVwicGlja2VyXCIgY2xhc3M9XCJwY3ItcGlja2VyXCI+PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgOnJlZj1cInNsaWRlclwiIGNsYXNzPVwicGNyLW9wYWNpdHkgcGNyLXNsaWRlclwiIHRhYmluZGV4PVwiMFwiIGFyaWEtbGFiZWw9XCIke3QoJ2FyaWE6b3BhY2l0eScsICdvcGFjaXR5IHNlbGVjdGlvbiBzbGlkZXInKX1cIiByb2xlPVwic2xpZGVyXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwY3Itc3dhdGNoZXMgJHtjb21wb25lbnRzLnBhbGV0dGUgPyAnJyA6ICdwY3ItbGFzdCd9XCIgOnJlZj1cInN3YXRjaGVzXCI+PC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IDpvYmo9XCJpbnRlcmFjdGlvblwiIGNsYXNzPVwicGNyLWludGVyYWN0aW9uXCIgJHtoaWRkZW4oT2JqZWN0LmtleXMoY29tcG9uZW50cy5pbnRlcmFjdGlvbikubGVuZ3RoKX0+XG4gICAgICAgICAgICA8aW5wdXQgOnJlZj1cInJlc3VsdFwiIGNsYXNzPVwicGNyLXJlc3VsdFwiIHR5cGU9XCJ0ZXh0XCIgc3BlbGxjaGVjaz1cImZhbHNlXCIgJHtoaWRkZW4oY29tcG9uZW50cy5pbnRlcmFjdGlvbi5pbnB1dCl9IGFyaWEtbGFiZWw9XCIke3QoJ2FyaWE6aW5wdXQnLCAnY29sb3IgaW5wdXQgZmllbGQnKX1cIj5cblxuICAgICAgICAgICAgPGlucHV0IDphcnI9XCJvcHRpb25zXCIgY2xhc3M9XCJwY3ItdHlwZVwiIGRhdGEtdHlwZT1cIkhFWEFcIiB2YWx1ZT1cIiR7bG9ja09wYWNpdHkgPyAnSEVYJyA6ICdIRVhBJ31cIiB0eXBlPVwiYnV0dG9uXCIgJHtoaWRkZW4oY29tcG9uZW50cy5pbnRlcmFjdGlvbi5oZXgpfT5cbiAgICAgICAgICAgIDxpbnB1dCA6YXJyPVwib3B0aW9uc1wiIGNsYXNzPVwicGNyLXR5cGVcIiBkYXRhLXR5cGU9XCJSR0JBXCIgdmFsdWU9XCIke2xvY2tPcGFjaXR5ID8gJ1JHQicgOiAnUkdCQSd9XCIgdHlwZT1cImJ1dHRvblwiICR7aGlkZGVuKGNvbXBvbmVudHMuaW50ZXJhY3Rpb24ucmdiYSl9PlxuICAgICAgICAgICAgPGlucHV0IDphcnI9XCJvcHRpb25zXCIgY2xhc3M9XCJwY3ItdHlwZVwiIGRhdGEtdHlwZT1cIkhTTEFcIiB2YWx1ZT1cIiR7bG9ja09wYWNpdHkgPyAnSFNMJyA6ICdIU0xBJ31cIiB0eXBlPVwiYnV0dG9uXCIgJHtoaWRkZW4oY29tcG9uZW50cy5pbnRlcmFjdGlvbi5oc2xhKX0+XG4gICAgICAgICAgICA8aW5wdXQgOmFycj1cIm9wdGlvbnNcIiBjbGFzcz1cInBjci10eXBlXCIgZGF0YS10eXBlPVwiSFNWQVwiIHZhbHVlPVwiJHtsb2NrT3BhY2l0eSA/ICdIU1YnIDogJ0hTVkEnfVwiIHR5cGU9XCJidXR0b25cIiAke2hpZGRlbihjb21wb25lbnRzLmludGVyYWN0aW9uLmhzdmEpfT5cbiAgICAgICAgICAgIDxpbnB1dCA6YXJyPVwib3B0aW9uc1wiIGNsYXNzPVwicGNyLXR5cGVcIiBkYXRhLXR5cGU9XCJDTVlLXCIgdmFsdWU9XCJDTVlLXCIgdHlwZT1cImJ1dHRvblwiICR7aGlkZGVuKGNvbXBvbmVudHMuaW50ZXJhY3Rpb24uY215ayl9PlxuXG4gICAgICAgICAgICA8aW5wdXQgOnJlZj1cInNhdmVcIiBjbGFzcz1cInBjci1zYXZlXCIgdmFsdWU9XCIke3QoJ2J0bjpzYXZlJyl9XCIgdHlwZT1cImJ1dHRvblwiICR7aGlkZGVuKGNvbXBvbmVudHMuaW50ZXJhY3Rpb24uc2F2ZSl9IGFyaWEtbGFiZWw9XCIke3QoJ2FyaWE6YnRuOnNhdmUnKX1cIj5cbiAgICAgICAgICAgIDxpbnB1dCA6cmVmPVwiY2FuY2VsXCIgY2xhc3M9XCJwY3ItY2FuY2VsXCIgdmFsdWU9XCIke3QoJ2J0bjpjYW5jZWwnKX1cIiB0eXBlPVwiYnV0dG9uXCIgJHtoaWRkZW4oY29tcG9uZW50cy5pbnRlcmFjdGlvbi5jYW5jZWwpfSBhcmlhLWxhYmVsPVwiJHt0KCdhcmlhOmJ0bjpjYW5jZWwnKX1cIj5cbiAgICAgICAgICAgIDxpbnB1dCA6cmVmPVwiY2xlYXJcIiBjbGFzcz1cInBjci1jbGVhclwiIHZhbHVlPVwiJHt0KCdidG46Y2xlYXInKX1cIiB0eXBlPVwiYnV0dG9uXCIgJHtoaWRkZW4oY29tcG9uZW50cy5pbnRlcmFjdGlvbi5jbGVhcil9IGFyaWEtbGFiZWw9XCIke3QoJ2FyaWE6YnRuOmNsZWFyJyl9XCI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYCk7XG5cbiAgICBjb25zdCBpbnQgPSByb290LmludGVyYWN0aW9uO1xuXG4gICAgLy8gU2VsZWN0IG9wdGlvbiB3aGljaCBpcyBub3QgaGlkZGVuXG4gICAgaW50Lm9wdGlvbnMuZmluZChvID0+ICFvLmhpZGRlbiAmJiAhby5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKSk7XG5cbiAgICAvLyBBcHBlbmQgbWV0aG9kIHRvIGZpbmQgY3VycmVudGx5IGFjdGl2ZSBvcHRpb25cbiAgICBpbnQudHlwZSA9ICgpID0+IGludC5vcHRpb25zLmZpbmQoZSA9PiBlLmNsYXNzTGlzdC5jb250YWlucygnYWN0aXZlJykpO1xuICAgIHJldHVybiByb290O1xufTtcbiIsICIvKiEgTmFub1BvcCAyLjQuMiBNSVQgfCBodHRwczovL2dpdGh1Yi5jb20vU2ltb253ZXAvbmFub3BvcCAqL1xuY29uc3QgTiA9IFwiMi40LjJcIiwgSSA9IHtcbiAgdmFyaWFudEZsaXBPcmRlcjogeyBzdGFydDogXCJzbWVcIiwgbWlkZGxlOiBcIm1zZVwiLCBlbmQ6IFwiZW1zXCIgfSxcbiAgcG9zaXRpb25GbGlwT3JkZXI6IHsgdG9wOiBcInRicmxcIiwgcmlnaHQ6IFwicmx0YlwiLCBib3R0b206IFwiYnRybFwiLCBsZWZ0OiBcImxyYnRcIiB9LFxuICBwb3NpdGlvbjogXCJib3R0b21cIixcbiAgbWFyZ2luOiA4LFxuICBwYWRkaW5nOiAwXG59LCBKID0gKG4sIGksIG0pID0+IHtcbiAgY29uc3Qge1xuICAgIGNvbnRhaW5lcjogcixcbiAgICBhcnJvdzogYSxcbiAgICBtYXJnaW46IGUsXG4gICAgcGFkZGluZzogbCxcbiAgICBwb3NpdGlvbjogVixcbiAgICB2YXJpYW50RmxpcE9yZGVyOiBDLFxuICAgIHBvc2l0aW9uRmxpcE9yZGVyOiBNXG4gIH0gPSB7XG4gICAgY29udGFpbmVyOiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXG4gICAgLi4uSSxcbiAgICAuLi5tXG4gIH0sIHsgbGVmdDogRiwgdG9wOiBLIH0gPSBpLnN0eWxlO1xuICBpLnN0eWxlLmxlZnQgPSBcIjBcIiwgaS5zdHlsZS50b3AgPSBcIjBcIjtcbiAgY29uc3QgdCA9IG4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksIG8gPSBpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLCBQID0ge1xuICAgIHQ6IHQudG9wIC0gby5oZWlnaHQgLSBlLFxuICAgIGI6IHQuYm90dG9tICsgZSxcbiAgICByOiB0LnJpZ2h0ICsgZSxcbiAgICBsOiB0LmxlZnQgLSBvLndpZHRoIC0gZVxuICB9LCBSID0ge1xuICAgIHZzOiB0LmxlZnQsXG4gICAgdm06IHQubGVmdCArIHQud2lkdGggLyAyIC0gby53aWR0aCAvIDIsXG4gICAgdmU6IHQubGVmdCArIHQud2lkdGggLSBvLndpZHRoLFxuICAgIGhzOiB0LnRvcCxcbiAgICBobTogdC5ib3R0b20gLSB0LmhlaWdodCAvIDIgLSBvLmhlaWdodCAvIDIsXG4gICAgaGU6IHQuYm90dG9tIC0gby5oZWlnaHRcbiAgfSwgWyQsIEUgPSBcIm1pZGRsZVwiXSA9IFYuc3BsaXQoXCItXCIpLCBMID0gTVskXSwgaiA9IENbRV0sIHsgdG9wOiB5LCBsZWZ0OiB4LCBib3R0b206IEIsIHJpZ2h0OiBPIH0gPSByO1xuICBmb3IgKGNvbnN0IGMgb2YgTCkge1xuICAgIGNvbnN0IHMgPSBjID09PSBcInRcIiB8fCBjID09PSBcImJcIjtcbiAgICBsZXQgcCA9IFBbY107XG4gICAgY29uc3QgW2QsIGddID0gcyA/IFtcInRvcFwiLCBcImxlZnRcIl0gOiBbXCJsZWZ0XCIsIFwidG9wXCJdLCBbdSwgdl0gPSBzID8gW28uaGVpZ2h0LCBvLndpZHRoXSA6IFtvLndpZHRoLCBvLmhlaWdodF0sIFt6LCBUXSA9IHMgPyBbQiwgT10gOiBbTywgQl0sIFtILCBrXSA9IHMgPyBbeSwgeF0gOiBbeCwgeV07XG4gICAgaWYgKCEocCA8IEggfHwgcCArIHUgKyBsID4geikpXG4gICAgICBmb3IgKGNvbnN0IGIgb2Ygaikge1xuICAgICAgICBsZXQgZiA9IFJbKHMgPyBcInZcIiA6IFwiaFwiKSArIGJdO1xuICAgICAgICBpZiAoIShmIDwgayB8fCBmICsgdiArIGwgPiBUKSkge1xuICAgICAgICAgIGlmIChmIC09IG9bZ10sIHAgLT0gb1tkXSwgaS5zdHlsZVtnXSA9IGAke2Z9cHhgLCBpLnN0eWxlW2RdID0gYCR7cH1weGAsIGEpIHtcbiAgICAgICAgICAgIGNvbnN0IHcgPSBzID8gdC53aWR0aCAvIDIgOiB0LmhlaWdodCAvIDIsIGggPSB2IC8gMiwgUyA9IHcgPiBoLCBxID0ge1xuICAgICAgICAgICAgICBzOiBTID8gaCA6IHcsXG4gICAgICAgICAgICAgIG06IGgsXG4gICAgICAgICAgICAgIGU6IFMgPyBoIDogdiAtIHdcbiAgICAgICAgICAgIH0sIEEgPSB7XG4gICAgICAgICAgICAgIHQ6IHUsXG4gICAgICAgICAgICAgIGI6IDAsXG4gICAgICAgICAgICAgIHI6IDAsXG4gICAgICAgICAgICAgIGw6IHVcbiAgICAgICAgICAgIH0sIEQgPSBmICsgcVtiXSwgRyA9IHAgKyBBW2NdO1xuICAgICAgICAgICAgYS5zdHlsZVtnXSA9IGAke0R9cHhgLCBhLnN0eWxlW2RdID0gYCR7R31weGA7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBjICsgYjtcbiAgICAgICAgfVxuICAgICAgfVxuICB9XG4gIHJldHVybiBpLnN0eWxlLmxlZnQgPSBGLCBpLnN0eWxlLnRvcCA9IEssIG51bGw7XG59LCBRID0gKG4sIGksIG0pID0+IHtcbiAgY29uc3QgciA9IHR5cGVvZiBuID09IFwib2JqZWN0XCIgJiYgIShuIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpID8gbiA6IHsgcmVmZXJlbmNlOiBuLCBwb3BwZXI6IGksIC4uLm0gfTtcbiAgcmV0dXJuIHtcbiAgICAvKipcbiAgICAgKiBSZXBvc2l0aW9ucyB0aGUgY3VycmVudCBwb3BwZXIuXG4gICAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uYWwgb3B0aW9ucyB3aGljaCBnZXQgbWVyZ2VkIHdpdGggdGhlIGN1cnJlbnQgb25lcy5cbiAgICAgKi9cbiAgICB1cGRhdGUoYSA9IHIpIHtcbiAgICAgIGNvbnN0IHsgcmVmZXJlbmNlOiBlLCBwb3BwZXI6IGwgfSA9IE9iamVjdC5hc3NpZ24ociwgYSk7XG4gICAgICBpZiAoIWwgfHwgIWUpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlBvcHBlci0gb3IgcmVmZXJlbmNlLWVsZW1lbnQgbWlzc2luZy5cIik7XG4gICAgICByZXR1cm4gSihlLCBsLCByKTtcbiAgICB9XG4gIH07XG59O1xuZXhwb3J0IHtcbiAgUSBhcyBjcmVhdGVQb3BwZXIsXG4gIEkgYXMgZGVmYXVsdHMsXG4gIEogYXMgcmVwb3NpdGlvbixcbiAgTiBhcyB2ZXJzaW9uXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bmFub3BvcC5tanMubWFwXG4iLCAiaW1wb3J0ICogYXMgXyBmcm9tICcuL3V0aWxzL3V0aWxzJztcbmltcG9ydCB7cGFyc2VUb0hTVkF9IGZyb20gJy4vdXRpbHMvY29sb3InO1xuaW1wb3J0IHtIU1ZhQ29sb3J9IGZyb20gJy4vdXRpbHMvaHN2YWNvbG9yJztcbmltcG9ydCBNb3ZlYWJsZSBmcm9tICcuL2xpYnMvbW92ZWFibGUnO1xuaW1wb3J0IFNlbGVjdGFibGUgZnJvbSAnLi9saWJzL3NlbGVjdGFibGUnO1xuaW1wb3J0IGJ1aWxkUGlja3IgZnJvbSAnLi90ZW1wbGF0ZSc7XG5pbXBvcnQge2NyZWF0ZVBvcHBlcn0gZnJvbSAnbmFub3BvcCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBpY2tyIHtcblxuICAgIC8vIEV4cG9zZSBwaWNrciB1dGlsc1xuICAgIHN0YXRpYyB1dGlscyA9IF87XG5cbiAgICAvLyBBc3NpZ24gdmVyc2lvbiBhbmQgZXhwb3J0XG4gICAgc3RhdGljIHZlcnNpb24gPSBWRVJTSU9OO1xuXG4gICAgLy8gRGVmYXVsdCBzdHJpbmdzXG4gICAgc3RhdGljIEkxOE5fREVGQVVMVFMgPSB7XG5cbiAgICAgICAgLy8gU3RyaW5ncyB2aXNpYmxlIGluIHRoZSBVSVxuICAgICAgICAndWk6ZGlhbG9nJzogJ2NvbG9yIHBpY2tlciBkaWFsb2cnLFxuICAgICAgICAnYnRuOnRvZ2dsZSc6ICd0b2dnbGUgY29sb3IgcGlja2VyIGRpYWxvZycsXG4gICAgICAgICdidG46c3dhdGNoJzogJ2NvbG9yIHN3YXRjaCcsXG4gICAgICAgICdidG46bGFzdC1jb2xvcic6ICd1c2UgcHJldmlvdXMgY29sb3InLFxuICAgICAgICAnYnRuOnNhdmUnOiAnU2F2ZScsXG4gICAgICAgICdidG46Y2FuY2VsJzogJ0NhbmNlbCcsXG4gICAgICAgICdidG46Y2xlYXInOiAnQ2xlYXInLFxuXG4gICAgICAgIC8vIFN0cmluZ3MgdXNlZCBmb3IgYXJpYS1sYWJlbHNcbiAgICAgICAgJ2FyaWE6YnRuOnNhdmUnOiAnc2F2ZSBhbmQgY2xvc2UnLFxuICAgICAgICAnYXJpYTpidG46Y2FuY2VsJzogJ2NhbmNlbCBhbmQgY2xvc2UnLFxuICAgICAgICAnYXJpYTpidG46Y2xlYXInOiAnY2xlYXIgYW5kIGNsb3NlJyxcbiAgICAgICAgJ2FyaWE6aW5wdXQnOiAnY29sb3IgaW5wdXQgZmllbGQnLFxuICAgICAgICAnYXJpYTpwYWxldHRlJzogJ2NvbG9yIHNlbGVjdGlvbiBhcmVhJyxcbiAgICAgICAgJ2FyaWE6aHVlJzogJ2h1ZSBzZWxlY3Rpb24gc2xpZGVyJyxcbiAgICAgICAgJ2FyaWE6b3BhY2l0eSc6ICdzZWxlY3Rpb24gc2xpZGVyJ1xuICAgIH07XG5cbiAgICAvLyBEZWZhdWx0IG9wdGlvbnNcbiAgICBzdGF0aWMgREVGQVVMVF9PUFRJT05TID0ge1xuICAgICAgICBhcHBDbGFzczogbnVsbCxcbiAgICAgICAgdGhlbWU6ICdjbGFzc2ljJyxcbiAgICAgICAgdXNlQXNCdXR0b246IGZhbHNlLFxuICAgICAgICBwYWRkaW5nOiA4LFxuICAgICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgICAgIGNvbXBhcmlzb246IHRydWUsXG4gICAgICAgIGNsb3NlT25TY3JvbGw6IGZhbHNlLFxuICAgICAgICBvdXRwdXRQcmVjaXNpb246IDAsXG4gICAgICAgIGxvY2tPcGFjaXR5OiBmYWxzZSxcbiAgICAgICAgYXV0b1JlcG9zaXRpb246IHRydWUsXG4gICAgICAgIGNvbnRhaW5lcjogJ2JvZHknLFxuXG4gICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgIGludGVyYWN0aW9uOiB7fVxuICAgICAgICB9LFxuXG4gICAgICAgIGkxOG46IHt9LFxuICAgICAgICBzd2F0Y2hlczogbnVsbCxcbiAgICAgICAgaW5saW5lOiBmYWxzZSxcbiAgICAgICAgc2xpZGVyczogbnVsbCxcblxuICAgICAgICBkZWZhdWx0OiAnIzQyNDQ1YScsXG4gICAgICAgIGRlZmF1bHRSZXByZXNlbnRhdGlvbjogbnVsbCxcbiAgICAgICAgcG9zaXRpb246ICdib3R0b20tbWlkZGxlJyxcbiAgICAgICAgYWRqdXN0YWJsZU51bWJlcnM6IHRydWUsXG4gICAgICAgIHNob3dBbHdheXM6IGZhbHNlLFxuXG4gICAgICAgIGNsb3NlV2l0aEtleTogJ0VzY2FwZSdcbiAgICB9O1xuXG4gICAgLy8gV2lsbCBiZSB1c2VkIHRvIHByZXZlbnQgc3BlY2lmaWMgYWN0aW9ucyBkdXJpbmcgaW5pdGlsaXphdGlvblxuICAgIF9pbml0aWFsaXppbmdBY3RpdmUgPSB0cnVlO1xuXG4gICAgLy8gSWYgdGhlIGN1cnJlbnQgY29sb3IgdmFsdWUgc2hvdWxkIGJlIHJlY2FsY3VsYXRlZFxuICAgIF9yZWNhbGMgPSB0cnVlO1xuXG4gICAgLy8gUG9zaXRpb25pbmcgZW5naW5lIGFuZCBET00tVHJlZVxuICAgIF9uYW5vcG9wID0gbnVsbDtcbiAgICBfcm9vdCA9IG51bGw7XG5cbiAgICAvLyBDdXJyZW50IGFuZCBsYXN0IGNvbG9yIGZvciBjb21wYXJpc29uXG4gICAgX2NvbG9yID0gSFNWYUNvbG9yKCk7XG4gICAgX2xhc3RDb2xvciA9IEhTVmFDb2xvcigpO1xuICAgIF9zd2F0Y2hDb2xvcnMgPSBbXTtcblxuICAgIC8vIEFuaW1hdGlvbiBmcmFtZSB1c2VkIGZvciBzZXR1cC5cbiAgICAvLyBXaWxsIGJlIGNhbmNlbGxlZCBpbiBjYXNlIG9mIGRlc3RydWN0aW9uLlxuICAgIF9zZXR1cEFuaW1hdGlvbkZyYW1lID0gbnVsbDtcblxuICAgIC8vIEV2ZW5saXN0ZW5lciBuYW1lOiBbY2FsbGJhY2tzXVxuICAgIF9ldmVudExpc3RlbmVyID0ge1xuICAgICAgICBpbml0OiBbXSxcbiAgICAgICAgc2F2ZTogW10sXG4gICAgICAgIGhpZGU6IFtdLFxuICAgICAgICBzaG93OiBbXSxcbiAgICAgICAgY2xlYXI6IFtdLFxuICAgICAgICBjaGFuZ2U6IFtdLFxuICAgICAgICBjaGFuZ2VzdG9wOiBbXSxcbiAgICAgICAgY2FuY2VsOiBbXSxcbiAgICAgICAgc3dhdGNoc2VsZWN0OiBbXVxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3RvcihvcHQpIHtcblxuICAgICAgICAvLyBBc3NpZ24gZGVmYXVsdCB2YWx1ZXNcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0ID0gT2JqZWN0LmFzc2lnbih7Li4uUGlja3IuREVGQVVMVF9PUFRJT05TfSwgb3B0KTtcblxuICAgICAgICBjb25zdCB7c3dhdGNoZXMsIGNvbXBvbmVudHMsIHRoZW1lLCBzbGlkZXJzLCBsb2NrT3BhY2l0eSwgcGFkZGluZ30gPSBvcHQ7XG5cbiAgICAgICAgaWYgKFsnbmFubycsICdtb25vbGl0aCddLmluY2x1ZGVzKHRoZW1lKSAmJiAhc2xpZGVycykge1xuICAgICAgICAgICAgb3B0LnNsaWRlcnMgPSAnaCc7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBpbnRlcmFjdGlvbiBzZWN0aW9uXG4gICAgICAgIGlmICghY29tcG9uZW50cy5pbnRlcmFjdGlvbikge1xuICAgICAgICAgICAgY29tcG9uZW50cy5pbnRlcmFjdGlvbiA9IHt9O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT3ZlcndyaXRlIHBhbGV0dGUgaWYgcHJldmlldywgb3BhY2l0eSBvciBodWUgYXJlIHRydWVcbiAgICAgICAgY29uc3Qge3ByZXZpZXcsIG9wYWNpdHksIGh1ZSwgcGFsZXR0ZX0gPSBjb21wb25lbnRzO1xuICAgICAgICBjb21wb25lbnRzLm9wYWNpdHkgPSAoIWxvY2tPcGFjaXR5ICYmIG9wYWNpdHkpO1xuICAgICAgICBjb21wb25lbnRzLnBhbGV0dGUgPSBwYWxldHRlIHx8IHByZXZpZXcgfHwgb3BhY2l0eSB8fCBodWU7XG5cbiAgICAgICAgLy8gSW5pdGlhbGl6ZSBwaWNrZXJcbiAgICAgICAgdGhpcy5fcHJlQnVpbGQoKTtcbiAgICAgICAgdGhpcy5fYnVpbGRDb21wb25lbnRzKCk7XG4gICAgICAgIHRoaXMuX2JpbmRFdmVudHMoKTtcbiAgICAgICAgdGhpcy5fZmluYWxCdWlsZCgpO1xuXG4gICAgICAgIC8vIEFwcGVuZCBwcmUtZGVmaW5lZCBzd2F0Y2ggY29sb3JzXG4gICAgICAgIGlmIChzd2F0Y2hlcyAmJiBzd2F0Y2hlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHN3YXRjaGVzLmZvckVhY2goY29sb3IgPT4gdGhpcy5hZGRTd2F0Y2goY29sb3IpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEluaXRpYWxpemUgcG9zaXRpb25pbmcgZW5naW5lXG4gICAgICAgIGNvbnN0IHtidXR0b24sIGFwcH0gPSB0aGlzLl9yb290O1xuICAgICAgICB0aGlzLl9uYW5vcG9wID0gY3JlYXRlUG9wcGVyKGJ1dHRvbiwgYXBwLCB7XG4gICAgICAgICAgICBtYXJnaW46IHBhZGRpbmdcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gSW5pdGlhbGl6ZSBhY2Nlc3NpYmlsaXR5XG4gICAgICAgIGJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ3JvbGUnLCAnYnV0dG9uJyk7XG4gICAgICAgIGJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCB0aGlzLl90KCdidG46dG9nZ2xlJykpO1xuXG4gICAgICAgIC8vIEluaXRpbGl6YXRpb24gaXMgZmluaXNoLCBwaWNrciBpcyB2aXNpYmxlIGFuZCByZWFkeSBmb3IgdXNhZ2VcbiAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgIHRoaXMuX3NldHVwQW5pbWF0aW9uRnJhbWUgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKGZ1bmN0aW9uIGNiKCkge1xuXG4gICAgICAgICAgICAvLyBUT0RPOiBQZXJmb3JtYW5jZSBpc3N1ZSBkdWUgdG8gaGlnaCBjYWxsLXJhdGU/XG4gICAgICAgICAgICBpZiAoIWFwcC5vZmZzZXRXaWR0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBBcHBseSBkZWZhdWx0IGNvbG9yXG4gICAgICAgICAgICB0aGF0LnNldENvbG9yKG9wdC5kZWZhdWx0KTtcbiAgICAgICAgICAgIHRoYXQuX3JlUG9zaXRpb25pbmdQaWNrZXIoKTtcblxuICAgICAgICAgICAgLy8gSW5pdGlhbGl6ZSBjb2xvciByZXByZXNlbnRhdGlvblxuICAgICAgICAgICAgaWYgKG9wdC5kZWZhdWx0UmVwcmVzZW50YXRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGF0Ll9yZXByZXNlbnRhdGlvbiA9IG9wdC5kZWZhdWx0UmVwcmVzZW50YXRpb247XG4gICAgICAgICAgICAgICAgdGhhdC5zZXRDb2xvclJlcHJlc2VudGF0aW9uKHRoYXQuX3JlcHJlc2VudGF0aW9uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gU2hvdyBwaWNrciBpZiBsb2NrZWRcbiAgICAgICAgICAgIGlmIChvcHQuc2hvd0Fsd2F5cykge1xuICAgICAgICAgICAgICAgIHRoYXQuc2hvdygpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBJbml0aWFsaXphdGlvbiBpcyBkb25lIC0gcGlja3IgaXMgdXNhYmxlLCBmaXJlIGluaXQgZXZlbnRcbiAgICAgICAgICAgIHRoYXQuX2luaXRpYWxpemluZ0FjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhhdC5fZW1pdCgnaW5pdCcpO1xuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIGluc3RhbmNlIHZpYSBtZXRob2RcbiAgICBzdGF0aWMgY3JlYXRlID0gb3B0aW9ucyA9PiBuZXcgUGlja3Iob3B0aW9ucyk7XG5cbiAgICAvLyBEb2VzIG9ubHkgdGhlIGFic29sdXRseSBiYXNpYyB0aGluZyB0byBpbml0aWFsaXplIHRoZSBjb21wb25lbnRzXG4gICAgX3ByZUJ1aWxkKCkge1xuICAgICAgICBjb25zdCB7b3B0aW9uc30gPSB0aGlzO1xuXG4gICAgICAgIC8vIFJlc29sdmUgZWxlbWVudHNcbiAgICAgICAgZm9yIChjb25zdCB0eXBlIG9mIFsnZWwnLCAnY29udGFpbmVyJ10pIHtcbiAgICAgICAgICAgIG9wdGlvbnNbdHlwZV0gPSBfLnJlc29sdmVFbGVtZW50KG9wdGlvbnNbdHlwZV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ3JlYXRlIGVsZW1lbnQgYW5kIGFwcGVuZCBpdCB0byBib2R5IHRvXG4gICAgICAgIC8vIFByZXZlbnQgaW5pdGlhbGl6YXRpb24gZXJyb3JzXG4gICAgICAgIHRoaXMuX3Jvb3QgPSBidWlsZFBpY2tyKHRoaXMpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIGEgY3VzdG9tIGJ1dHRvbiBpcyB1c2VkXG4gICAgICAgIGlmIChvcHRpb25zLnVzZUFzQnV0dG9uKSB7XG4gICAgICAgICAgICB0aGlzLl9yb290LmJ1dHRvbiA9IG9wdGlvbnMuZWw7IC8vIFJlcGxhY2UgYnV0dG9uIHdpdGggY3VzdG9taXplZCBidXR0b25cbiAgICAgICAgfVxuXG4gICAgICAgIG9wdGlvbnMuY29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuX3Jvb3Qucm9vdCk7XG4gICAgfVxuXG4gICAgX2ZpbmFsQnVpbGQoKSB7XG4gICAgICAgIGNvbnN0IG9wdCA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgY29uc3Qgcm9vdCA9IHRoaXMuX3Jvb3Q7XG5cbiAgICAgICAgLy8gUmVtb3ZlIGZyb20gYm9keVxuICAgICAgICBvcHQuY29udGFpbmVyLnJlbW92ZUNoaWxkKHJvb3Qucm9vdCk7XG5cbiAgICAgICAgaWYgKG9wdC5pbmxpbmUpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IG9wdC5lbC5wYXJlbnRFbGVtZW50O1xuXG4gICAgICAgICAgICBpZiAob3B0LmVsLm5leHRTaWJsaW5nKSB7XG4gICAgICAgICAgICAgICAgcGFyZW50Lmluc2VydEJlZm9yZShyb290LmFwcCwgb3B0LmVsLm5leHRTaWJsaW5nKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGFyZW50LmFwcGVuZENoaWxkKHJvb3QuYXBwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9wdC5jb250YWluZXIuYXBwZW5kQ2hpbGQocm9vdC5hcHApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRG9uJ3QgcmVwbGFjZSB0aGUgdGhlIGVsZW1lbnQgaWYgYSBjdXN0b20gYnV0dG9uIGlzIHVzZWRcbiAgICAgICAgaWYgKCFvcHQudXNlQXNCdXR0b24pIHtcblxuICAgICAgICAgICAgLy8gUmVwbGFjZSBlbGVtZW50IHdpdGggYWN0dWFsIGNvbG9yLXBpY2tlclxuICAgICAgICAgICAgb3B0LmVsLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKHJvb3Qucm9vdCwgb3B0LmVsKTtcbiAgICAgICAgfSBlbHNlIGlmIChvcHQuaW5saW5lKSB7XG4gICAgICAgICAgICBvcHQuZWwucmVtb3ZlKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBpZiBpdCBzaG91bGQgYmUgaW1tZWRpYXRseSBkaXNhYmxlZFxuICAgICAgICBpZiAob3B0LmRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENoZWNrIGlmIGNvbG9yIGNvbXBhcmlzb24gaXMgZGlzYWJsZWQsIGlmIHllcyAtIHJlbW92ZSB0cmFuc2l0aW9ucyBzbyBldmVyeXRoaW5nIGtlZXBzIHNtb290aGx5XG4gICAgICAgIGlmICghb3B0LmNvbXBhcmlzb24pIHtcbiAgICAgICAgICAgIHJvb3QuYnV0dG9uLnN0eWxlLnRyYW5zaXRpb24gPSAnbm9uZSc7XG5cbiAgICAgICAgICAgIGlmICghb3B0LnVzZUFzQnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgcm9vdC5wcmV2aWV3Lmxhc3RDb2xvci5zdHlsZS50cmFuc2l0aW9uID0gJ25vbmUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgfVxuXG4gICAgX2J1aWxkQ29tcG9uZW50cygpIHtcblxuICAgICAgICAvLyBJbnN0YW5jZSByZWZlcmVuY2VcbiAgICAgICAgY29uc3QgaW5zdCA9IHRoaXM7XG4gICAgICAgIGNvbnN0IGNzID0gdGhpcy5vcHRpb25zLmNvbXBvbmVudHM7XG4gICAgICAgIGNvbnN0IHNsaWRlcnMgPSAoaW5zdC5vcHRpb25zLnNsaWRlcnMgfHwgJ3YnKS5yZXBlYXQoMik7XG4gICAgICAgIGNvbnN0IFtzbywgc2hdID0gc2xpZGVycy5tYXRjaCgvXlt2aF0rJC9nKSA/IHNsaWRlcnMgOiBbXTtcblxuICAgICAgICAvLyBSZS1hc3NpZ24gaWYgbnVsbFxuICAgICAgICBjb25zdCBnZXRDb2xvciA9ICgpID0+XG4gICAgICAgICAgICB0aGlzLl9jb2xvciB8fCAodGhpcy5fY29sb3IgPSB0aGlzLl9sYXN0Q29sb3IuY2xvbmUoKSk7XG5cbiAgICAgICAgY29uc3QgY29tcG9uZW50cyA9IHtcblxuICAgICAgICAgICAgcGFsZXR0ZTogTW92ZWFibGUoe1xuICAgICAgICAgICAgICAgIGVsZW1lbnQ6IGluc3QuX3Jvb3QucGFsZXR0ZS5waWNrZXIsXG4gICAgICAgICAgICAgICAgd3JhcHBlcjogaW5zdC5fcm9vdC5wYWxldHRlLnBhbGV0dGUsXG5cbiAgICAgICAgICAgICAgICBvbnN0b3A6ICgpID0+IGluc3QuX2VtaXQoJ2NoYW5nZXN0b3AnLCAnc2xpZGVyJywgaW5zdCksXG4gICAgICAgICAgICAgICAgb25jaGFuZ2UoeCwgeSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNzLnBhbGV0dGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbG9yID0gZ2V0Q29sb3IoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qge19yb290LCBvcHRpb25zfSA9IGluc3Q7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHtsYXN0Q29sb3IsIGN1cnJlbnRDb2xvcn0gPSBfcm9vdC5wcmV2aWV3O1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgaW5wdXQgZmllbGQgb25seSBpZiB0aGUgdXNlciBpcyBjdXJyZW50bHkgbm90IHR5cGluZ1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5zdC5fcmVjYWxjKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBzYXR1cmF0aW9uIGJhc2VkIG9uIHRoZSBwb3NpdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IucyA9IHggKiAxMDA7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yLnYgPSAxMDAgLSB5ICogMTAwO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBQcmV2ZW50IGZhbGxpbmcgdW5kZXIgemVyb1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IudiA8IDAgPyBjb2xvci52ID0gMCA6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbnN0Ll91cGRhdGVPdXRwdXQoJ3NsaWRlcicpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gU2V0IHBpY2tlciBhbmQgZ3JhZGllbnQgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3NzUkdCYVN0cmluZyA9IGNvbG9yLnRvUkdCQSgpLnRvU3RyaW5nKDApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZCA9IGNzc1JHQmFTdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JhcHBlci5zdHlsZS5iYWNrZ3JvdW5kID0gYFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgcmdiYSgwLCAwLCAwLCAke2NvbG9yLmF9KSwgdHJhbnNwYXJlbnQpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIGhzbGEoJHtjb2xvci5ofSwgMTAwJSwgNTAlLCAke2NvbG9yLmF9KSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAke2NvbG9yLmF9KSlcbiAgICAgICAgICAgICAgICAgICAgYDtcblxuICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiBjb2xvciBpcyBsb2NrZWRcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFvcHRpb25zLmNvbXBhcmlzb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9yb290LmJ1dHRvbi5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wY3ItY29sb3InLCBjc3NSR0JhU3RyaW5nKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHVzZXIgY2hhbmdlcyB0aGUgY29sb3IsIHJlbW92ZSB0aGUgY2xlYXJlZCBpY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBfcm9vdC5idXR0b24uY2xhc3NMaXN0LnJlbW92ZSgnY2xlYXInKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghb3B0aW9ucy51c2VBc0J1dHRvbiAmJiAhaW5zdC5fbGFzdENvbG9yKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFwcGx5IGNvbG9yIHRvIGJvdGggdGhlIGxhc3QgYW5kIGN1cnJlbnQgY29sb3Igc2luY2UgdGhlIGN1cnJlbnQgc3RhdGUgaXMgY2xlYXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFzdENvbG9yLnN0eWxlLnNldFByb3BlcnR5KCctLXBjci1jb2xvcicsIGNzc1JHQmFTdHJpbmcpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlcmUncyBhIHN3YXRjaCB3aGljaCBjb2xvciBtYXRjaGVzIHRoZSBjdXJyZW50IG9uZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoZXhhID0gY29sb3IudG9IRVhBKCkudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCB7ZWwsIGNvbG9yfSBvZiBpbnN0Ll9zd2F0Y2hDb2xvcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsLmNsYXNzTGlzdFtoZXhhID09PSBjb2xvci50b0hFWEEoKS50b1N0cmluZygpID8gJ2FkZCcgOiAncmVtb3ZlJ10oJ3Bjci1hY3RpdmUnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8vIENoYW5nZSBjdXJyZW50IGNvbG9yXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDb2xvci5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wY3ItY29sb3InLCBjc3NSR0JhU3RyaW5nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcblxuICAgICAgICAgICAgaHVlOiBNb3ZlYWJsZSh7XG4gICAgICAgICAgICAgICAgbG9jazogc2ggPT09ICd2JyA/ICdoJyA6ICd2JyxcbiAgICAgICAgICAgICAgICBlbGVtZW50OiBpbnN0Ll9yb290Lmh1ZS5waWNrZXIsXG4gICAgICAgICAgICAgICAgd3JhcHBlcjogaW5zdC5fcm9vdC5odWUuc2xpZGVyLFxuXG4gICAgICAgICAgICAgICAgb25zdG9wOiAoKSA9PiBpbnN0Ll9lbWl0KCdjaGFuZ2VzdG9wJywgJ3NsaWRlcicsIGluc3QpLFxuICAgICAgICAgICAgICAgIG9uY2hhbmdlKHYpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjcy5odWUgfHwgIWNzLnBhbGV0dGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbG9yID0gZ2V0Q29sb3IoKTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBDYWxjdWxhdGUgaHVlXG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnN0Ll9yZWNhbGMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yLmggPSB2ICogMzYwO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gVXBkYXRlIGNvbG9yXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBgaHNsKCR7Y29sb3IuaH0sIDEwMCUsIDUwJSlgO1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRzLnBhbGV0dGUudHJpZ2dlcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgICBvcGFjaXR5OiBNb3ZlYWJsZSh7XG4gICAgICAgICAgICAgICAgbG9jazogc28gPT09ICd2JyA/ICdoJyA6ICd2JyxcbiAgICAgICAgICAgICAgICBlbGVtZW50OiBpbnN0Ll9yb290Lm9wYWNpdHkucGlja2VyLFxuICAgICAgICAgICAgICAgIHdyYXBwZXI6IGluc3QuX3Jvb3Qub3BhY2l0eS5zbGlkZXIsXG5cbiAgICAgICAgICAgICAgICBvbnN0b3A6ICgpID0+IGluc3QuX2VtaXQoJ2NoYW5nZXN0b3AnLCAnc2xpZGVyJywgaW5zdCksXG4gICAgICAgICAgICAgICAgb25jaGFuZ2Uodikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNzLm9wYWNpdHkgfHwgIWNzLnBhbGV0dGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbG9yID0gZ2V0Q29sb3IoKTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBDYWxjdWxhdGUgb3BhY2l0eVxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5zdC5fcmVjYWxjKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvci5hID0gTWF0aC5yb3VuZCh2ICogMWUyKSAvIDEwMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBjb2xvclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZCA9IGByZ2JhKDAsIDAsIDAsICR7Y29sb3IuYX0pYDtcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50cy5wYWxldHRlLnRyaWdnZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcblxuICAgICAgICAgICAgc2VsZWN0YWJsZTogU2VsZWN0YWJsZSh7XG4gICAgICAgICAgICAgICAgZWxlbWVudHM6IGluc3QuX3Jvb3QuaW50ZXJhY3Rpb24ub3B0aW9ucyxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdhY3RpdmUnLFxuXG4gICAgICAgICAgICAgICAgb25jaGFuZ2UoZSkge1xuICAgICAgICAgICAgICAgICAgICBpbnN0Ll9yZXByZXNlbnRhdGlvbiA9IGUudGFyZ2V0LmdldEF0dHJpYnV0ZSgnZGF0YS10eXBlJykudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgaW5zdC5fcmVjYWxjICYmIGluc3QuX3VwZGF0ZU91dHB1dCgnc3dhdGNoJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLl9jb21wb25lbnRzID0gY29tcG9uZW50cztcbiAgICB9XG5cbiAgICBfYmluZEV2ZW50cygpIHtcbiAgICAgICAgY29uc3Qge19yb290LCBvcHRpb25zfSA9IHRoaXM7XG5cbiAgICAgICAgY29uc3QgZXZlbnRCaW5kaW5ncyA9IFtcblxuICAgICAgICAgICAgLy8gQ2xlYXIgY29sb3JcbiAgICAgICAgICAgIF8ub24oX3Jvb3QuaW50ZXJhY3Rpb24uY2xlYXIsICdjbGljaycsICgpID0+IHRoaXMuX2NsZWFyQ29sb3IoKSksXG5cbiAgICAgICAgICAgIC8vIFNlbGVjdCBsYXN0IGNvbG9yIG9uIGNsaWNrXG4gICAgICAgICAgICBfLm9uKFtcbiAgICAgICAgICAgICAgICBfcm9vdC5pbnRlcmFjdGlvbi5jYW5jZWwsXG4gICAgICAgICAgICAgICAgX3Jvb3QucHJldmlldy5sYXN0Q29sb3JcbiAgICAgICAgICAgIF0sICdjbGljaycsICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEhTVkEoLi4uKHRoaXMuX2xhc3RDb2xvciB8fCB0aGlzLl9jb2xvcikudG9IU1ZBKCksIHRydWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXQoJ2NhbmNlbCcpO1xuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgICAgIC8vIFNhdmUgY29sb3JcbiAgICAgICAgICAgIF8ub24oX3Jvb3QuaW50ZXJhY3Rpb24uc2F2ZSwgJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgICF0aGlzLmFwcGx5Q29sb3IoKSAmJiAhb3B0aW9ucy5zaG93QWx3YXlzICYmIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgICAgIC8vIFVzZXIgaW5wdXRcbiAgICAgICAgICAgIF8ub24oX3Jvb3QuaW50ZXJhY3Rpb24ucmVzdWx0LCBbJ2tleXVwJywgJ2lucHV0J10sIGUgPT4ge1xuXG4gICAgICAgICAgICAgICAgLy8gRmlyZSBsaXN0ZW5lciBpZiBpbml0aWFsaXphdGlvbiBpcyBmaW5pc2ggYW5kIGNoYW5nZWQgY29sb3Igd2FzIHZhbGlkXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2V0Q29sb3IoZS50YXJnZXQudmFsdWUsIHRydWUpICYmICF0aGlzLl9pbml0aWFsaXppbmdBY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdCgnY2hhbmdlJywgdGhpcy5fY29sb3IsICdpbnB1dCcsIHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0KCdjaGFuZ2VzdG9wJywgJ2lucHV0JywgdGhpcyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgICAvLyBEZXRlY3QgdXNlciBpbnB1dCBhbmQgZGlzYWJsZSBhdXRvLXJlY2FsY3VsYXRpb25cbiAgICAgICAgICAgIF8ub24oX3Jvb3QuaW50ZXJhY3Rpb24ucmVzdWx0LCBbJ2ZvY3VzJywgJ2JsdXInXSwgZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVjYWxjID0gZS50eXBlID09PSAnYmx1cic7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVjYWxjICYmIHRoaXMuX3VwZGF0ZU91dHB1dChudWxsKTtcbiAgICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgICAvLyBDYW5jZWwgaW5wdXQgZGV0ZWN0aW9uIG9uIGNvbG9yIGNoYW5nZVxuICAgICAgICAgICAgXy5vbihbXG4gICAgICAgICAgICAgICAgX3Jvb3QucGFsZXR0ZS5wYWxldHRlLFxuICAgICAgICAgICAgICAgIF9yb290LnBhbGV0dGUucGlja2VyLFxuICAgICAgICAgICAgICAgIF9yb290Lmh1ZS5zbGlkZXIsXG4gICAgICAgICAgICAgICAgX3Jvb3QuaHVlLnBpY2tlcixcbiAgICAgICAgICAgICAgICBfcm9vdC5vcGFjaXR5LnNsaWRlcixcbiAgICAgICAgICAgICAgICBfcm9vdC5vcGFjaXR5LnBpY2tlclxuICAgICAgICAgICAgXSwgWydtb3VzZWRvd24nLCAndG91Y2hzdGFydCddLCAoKSA9PiB0aGlzLl9yZWNhbGMgPSB0cnVlLCB7cGFzc2l2ZTogdHJ1ZX0pXG4gICAgICAgIF07XG5cbiAgICAgICAgLy8gUHJvdmlkZSBoaWRpbmcgLyBzaG93aW5nIGFiaWxpdGllcyBvbmx5IGlmIHNob3dBbHdheXMgaXMgZmFsc2VcbiAgICAgICAgaWYgKCFvcHRpb25zLnNob3dBbHdheXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNrID0gb3B0aW9ucy5jbG9zZVdpdGhLZXk7XG5cbiAgICAgICAgICAgIGV2ZW50QmluZGluZ3MucHVzaChcblxuICAgICAgICAgICAgICAgIC8vIFNhdmUgYW5kIGhpZGUgLyBzaG93IHBpY2tlclxuICAgICAgICAgICAgICAgIF8ub24oX3Jvb3QuYnV0dG9uLCAnY2xpY2snLCAoKSA9PiB0aGlzLmlzT3BlbigpID8gdGhpcy5oaWRlKCkgOiB0aGlzLnNob3coKSksXG5cbiAgICAgICAgICAgICAgICAvLyBDbG9zZSB3aXRoIGVzY2FwZSBrZXlcbiAgICAgICAgICAgICAgICBfLm9uKGRvY3VtZW50LCAna2V5dXAnLCBlID0+IHRoaXMuaXNPcGVuKCkgJiYgKGUua2V5ID09PSBjayB8fCBlLmNvZGUgPT09IGNrKSAmJiB0aGlzLmhpZGUoKSksXG5cbiAgICAgICAgICAgICAgICAvLyBDYW5jZWwgc2VsZWN0aW5nIGlmIHRoZSB1c2VyIHRhcHMgYmVoaW5kIHRoZSBjb2xvciBwaWNrZXJcbiAgICAgICAgICAgICAgICBfLm9uKGRvY3VtZW50LCBbJ3RvdWNoc3RhcnQnLCAnbW91c2Vkb3duJ10sIGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc09wZW4oKSAmJiAhXy5ldmVudFBhdGgoZSkuc29tZShlbCA9PiBlbCA9PT0gX3Jvb3QuYXBwIHx8IGVsID09PSBfcm9vdC5idXR0b24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIHtjYXB0dXJlOiB0cnVlfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBNYWtlIGlucHV0IGFkanVzdGFibGUgaWYgZW5hYmxlZFxuICAgICAgICBpZiAob3B0aW9ucy5hZGp1c3RhYmxlTnVtYmVycykge1xuICAgICAgICAgICAgY29uc3QgcmFuZ2VzID0ge1xuICAgICAgICAgICAgICAgIHJnYmE6IFsyNTUsIDI1NSwgMjU1LCAxXSxcbiAgICAgICAgICAgICAgICBoc3ZhOiBbMzYwLCAxMDAsIDEwMCwgMV0sXG4gICAgICAgICAgICAgICAgaHNsYTogWzM2MCwgMTAwLCAxMDAsIDFdLFxuICAgICAgICAgICAgICAgIGNteWs6IFsxMDAsIDEwMCwgMTAwLCAxMDBdXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBfLmFkanVzdGFibGVJbnB1dE51bWJlcnMoX3Jvb3QuaW50ZXJhY3Rpb24ucmVzdWx0LCAobywgc3RlcCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByYW5nZSA9IHJhbmdlc1t0aGlzLmdldENvbG9yUmVwcmVzZW50YXRpb24oKS50b0xvd2VyQ2FzZSgpXTtcblxuICAgICAgICAgICAgICAgIGlmIChyYW5nZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXggPSByYW5nZVtpbmRleF07XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIG5leHQgcmVhc29uYWJsZSBudW1iZXJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbnYgPSBvICsgKG1heCA+PSAxMDAgPyBzdGVwICogMTAwMCA6IHN0ZXApO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIEFwcGx5IHJhbmdlIG9mIHplcm8gdXAgdG8gbWF4LCBmaXggZmxvYXRpbmctcG9pbnQgaXNzdWVzXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudiA8PSAwID8gMCA6IE51bWJlcigobnYgPCBtYXggPyBudiA6IG1heCkudG9QcmVjaXNpb24oMykpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBvO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy5hdXRvUmVwb3NpdGlvbiAmJiAhb3B0aW9ucy5pbmxpbmUpIHtcbiAgICAgICAgICAgIGxldCB0aW1lb3V0ID0gbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuXG4gICAgICAgICAgICAvLyBSZS1jYWxjIHBvc2l0aW9uIG9uIHdpbmRvdyByZXNpemUsIHNjcm9sbCBhbmQgd2hlZWxcbiAgICAgICAgICAgIGV2ZW50QmluZGluZ3MucHVzaChcbiAgICAgICAgICAgICAgICBfLm9uKHdpbmRvdywgWydzY3JvbGwnLCAncmVzaXplJ10sICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQuaXNPcGVuKCkpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMuY2xvc2VPblNjcm9sbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGltZW91dCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRpbWVvdXQgPSBudWxsLCAxMDApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVXBkYXRlIHBvc2l0aW9uIG9uIGV2ZXJ5IGZyYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uIHJzKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9yZVBvc2l0aW9uaW5nUGlja2VyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aW1lb3V0ICE9PSBudWxsKSAmJiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUocnMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGltZW91dCA9IG51bGwsIDEwMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCB7Y2FwdHVyZTogdHJ1ZX0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2F2ZSBiaW5kaW5nc1xuICAgICAgICB0aGlzLl9ldmVudEJpbmRpbmdzID0gZXZlbnRCaW5kaW5ncztcbiAgICB9XG5cbiAgICBfcmVQb3NpdGlvbmluZ1BpY2tlcigpIHtcbiAgICAgICAgY29uc3Qge29wdGlvbnN9ID0gdGhpcztcblxuICAgICAgICAvLyBObyByZXBvc2l0aW9uaW5nIG5lZWRlZCBpZiBpbmxpbmVcbiAgICAgICAgaWYgKCFvcHRpb25zLmlubGluZSkge1xuICAgICAgICAgICAgY29uc3Qgc3VjY2VzcyA9IHRoaXMuX25hbm9wb3AudXBkYXRlKHtcbiAgICAgICAgICAgICAgICBjb250YWluZXI6IGRvY3VtZW50LmJvZHkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IG9wdGlvbnMucG9zaXRpb25cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbCA9IHRoaXMuX3Jvb3QuYXBwO1xuICAgICAgICAgICAgICAgIGNvbnN0IGViID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgZWwuc3R5bGUudG9wID0gYCR7KHdpbmRvdy5pbm5lckhlaWdodCAtIGViLmhlaWdodCkgLyAyfXB4YDtcbiAgICAgICAgICAgICAgICBlbC5zdHlsZS5sZWZ0ID0gYCR7KHdpbmRvdy5pbm5lcldpZHRoIC0gZWIud2lkdGgpIC8gMn1weGA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBfdXBkYXRlT3V0cHV0KGV2ZW50U291cmNlKSB7XG4gICAgICAgIGNvbnN0IHtfcm9vdCwgX2NvbG9yLCBvcHRpb25zfSA9IHRoaXM7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgY29tcG9uZW50IGlzIHByZXNlbnRcbiAgICAgICAgaWYgKF9yb290LmludGVyYWN0aW9uLnR5cGUoKSkge1xuXG4gICAgICAgICAgICAvLyBDb25zdHJ1Y3QgZnVuY3Rpb24gbmFtZSBhbmQgY2FsbCBpZiBwcmVzZW50XG4gICAgICAgICAgICBjb25zdCBtZXRob2QgPSBgdG8ke19yb290LmludGVyYWN0aW9uLnR5cGUoKS5nZXRBdHRyaWJ1dGUoJ2RhdGEtdHlwZScpfWA7XG4gICAgICAgICAgICBfcm9vdC5pbnRlcmFjdGlvbi5yZXN1bHQudmFsdWUgPSB0eXBlb2YgX2NvbG9yW21ldGhvZF0gPT09ICdmdW5jdGlvbicgP1xuICAgICAgICAgICAgICAgIF9jb2xvclttZXRob2RdKCkudG9TdHJpbmcob3B0aW9ucy5vdXRwdXRQcmVjaXNpb24pIDogJyc7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGaXJlIGxpc3RlbmVyIGlmIGluaXRpYWxpemF0aW9uIGlzIGZpbmlzaFxuICAgICAgICBpZiAoIXRoaXMuX2luaXRpYWxpemluZ0FjdGl2ZSAmJiB0aGlzLl9yZWNhbGMpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXQoJ2NoYW5nZScsIF9jb2xvciwgZXZlbnRTb3VyY2UsIHRoaXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgX2NsZWFyQ29sb3Ioc2lsZW50ID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3Qge19yb290LCBvcHRpb25zfSA9IHRoaXM7XG5cbiAgICAgICAgLy8gQ2hhbmdlIG9ubHkgdGhlIGJ1dHRvbiBjb2xvciBpZiBpdCBpc24ndCBjdXN0b21pemVkXG4gICAgICAgIGlmICghb3B0aW9ucy51c2VBc0J1dHRvbikge1xuICAgICAgICAgICAgX3Jvb3QuYnV0dG9uLnN0eWxlLnNldFByb3BlcnR5KCctLXBjci1jb2xvcicsICdyZ2JhKDAsIDAsIDAsIDAuMTUpJyk7XG4gICAgICAgIH1cblxuICAgICAgICBfcm9vdC5idXR0b24uY2xhc3NMaXN0LmFkZCgnY2xlYXInKTtcblxuICAgICAgICBpZiAoIW9wdGlvbnMuc2hvd0Fsd2F5cykge1xuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9sYXN0Q29sb3IgPSBudWxsO1xuICAgICAgICBpZiAoIXRoaXMuX2luaXRpYWxpemluZ0FjdGl2ZSAmJiAhc2lsZW50KSB7XG5cbiAgICAgICAgICAgIC8vIEZpcmUgbGlzdGVuZXJcbiAgICAgICAgICAgIHRoaXMuX2VtaXQoJ3NhdmUnLCBudWxsKTtcbiAgICAgICAgICAgIHRoaXMuX2VtaXQoJ2NsZWFyJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBfcGFyc2VMb2NhbENvbG9yKHN0cikge1xuICAgICAgICBjb25zdCB7dmFsdWVzLCB0eXBlLCBhfSA9IHBhcnNlVG9IU1ZBKHN0cik7XG4gICAgICAgIGNvbnN0IHtsb2NrT3BhY2l0eX0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgIGNvbnN0IGFscGhhTWFrZXNBQ2hhbmdlID0gYSAhPT0gdW5kZWZpbmVkICYmIGEgIT09IDE7XG5cbiAgICAgICAgLy8gSWYgbm8gb3BhY2l0eSBpcyBhcHBsaWVkLCBhZGQgdW5kZWZpbmVkIGF0IHRoZSB2ZXJ5IGVuZCB3aGljaCBnZXRzXG4gICAgICAgIC8vIFNldCB0byAxIGluIHNldEhTVkFcbiAgICAgICAgaWYgKHZhbHVlcyAmJiB2YWx1ZXMubGVuZ3RoID09PSAzKSB7XG4gICAgICAgICAgICB2YWx1ZXNbM10gPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdmFsdWVzOiAoIXZhbHVlcyB8fCAobG9ja09wYWNpdHkgJiYgYWxwaGFNYWtlc0FDaGFuZ2UpKSA/IG51bGwgOiB2YWx1ZXMsXG4gICAgICAgICAgICB0eXBlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgX3Qoa2V5KSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuaTE4bltrZXldIHx8IFBpY2tyLkkxOE5fREVGQVVMVFNba2V5XTtcbiAgICB9XG5cbiAgICBfZW1pdChldmVudCwgLi4uYXJncykge1xuICAgICAgICB0aGlzLl9ldmVudExpc3RlbmVyW2V2ZW50XS5mb3JFYWNoKGNiID0+IGNiKC4uLmFyZ3MsIHRoaXMpKTtcbiAgICB9XG5cbiAgICBvbihldmVudCwgY2IpIHtcbiAgICAgICAgdGhpcy5fZXZlbnRMaXN0ZW5lcltldmVudF0ucHVzaChjYik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIG9mZihldmVudCwgY2IpIHtcbiAgICAgICAgY29uc3QgY2FsbEJhY2tzID0gKHRoaXMuX2V2ZW50TGlzdGVuZXJbZXZlbnRdIHx8IFtdKTtcbiAgICAgICAgY29uc3QgaW5kZXggPSBjYWxsQmFja3MuaW5kZXhPZihjYik7XG5cbiAgICAgICAgaWYgKH5pbmRleCkge1xuICAgICAgICAgICAgY2FsbEJhY2tzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBcHBlbmRzIGEgY29sb3IgdG8gdGhlIHN3YXRjaCBwYWxldHRlXG4gICAgICogQHBhcmFtIGNvbG9yXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAgICovXG4gICAgYWRkU3dhdGNoKGNvbG9yKSB7XG4gICAgICAgIGNvbnN0IHt2YWx1ZXN9ID0gdGhpcy5fcGFyc2VMb2NhbENvbG9yKGNvbG9yKTtcblxuICAgICAgICBpZiAodmFsdWVzKSB7XG4gICAgICAgICAgICBjb25zdCB7X3N3YXRjaENvbG9ycywgX3Jvb3R9ID0gdGhpcztcbiAgICAgICAgICAgIGNvbnN0IGNvbG9yID0gSFNWYUNvbG9yKC4uLnZhbHVlcyk7XG5cbiAgICAgICAgICAgIC8vIENyZWF0ZSBuZXcgc3dhdGNoIEhUTUxFbGVtZW50XG4gICAgICAgICAgICBjb25zdCBlbCA9IF8uY3JlYXRlRWxlbWVudEZyb21TdHJpbmcoXG4gICAgICAgICAgICAgICAgYDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHN0eWxlPVwiLS1wY3ItY29sb3I6ICR7Y29sb3IudG9SR0JBKCkudG9TdHJpbmcoMCl9XCIgYXJpYS1sYWJlbD1cIiR7dGhpcy5fdCgnYnRuOnN3YXRjaCcpfVwiLz5gXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAvLyBBcHBlbmQgZWxlbWVudCBhbmQgc2F2ZSBzd2F0Y2ggZGF0YVxuICAgICAgICAgICAgX3Jvb3Quc3dhdGNoZXMuYXBwZW5kQ2hpbGQoZWwpO1xuICAgICAgICAgICAgX3N3YXRjaENvbG9ycy5wdXNoKHtlbCwgY29sb3J9KTtcblxuICAgICAgICAgICAgLy8gQmluZCBldmVudFxuICAgICAgICAgICAgdGhpcy5fZXZlbnRCaW5kaW5ncy5wdXNoKFxuICAgICAgICAgICAgICAgIF8ub24oZWwsICdjbGljaycsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRIU1ZBKC4uLmNvbG9yLnRvSFNWQSgpLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdCgnc3dhdGNoc2VsZWN0JywgY29sb3IpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0KCdjaGFuZ2UnLCBjb2xvciwgJ3N3YXRjaCcsIHRoaXMpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGEgc3dhdGNoIGNvbG9yIGJ5IGl0J3MgaW5kZXhcbiAgICAgKiBAcGFyYW0gaW5kZXhcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICByZW1vdmVTd2F0Y2goaW5kZXgpIHtcbiAgICAgICAgY29uc3Qgc3dhdGNoQ29sb3IgPSB0aGlzLl9zd2F0Y2hDb2xvcnNbaW5kZXhdO1xuXG4gICAgICAgIC8vIENoZWNrIHN3YXRjaCBkYXRhXG4gICAgICAgIGlmIChzd2F0Y2hDb2xvcikge1xuICAgICAgICAgICAgY29uc3Qge2VsfSA9IHN3YXRjaENvbG9yO1xuXG4gICAgICAgICAgICAvLyBSZW1vdmUgSFRNTCBjaGlsZCBhbmQgc3dhdGNoIGRhdGFcbiAgICAgICAgICAgIHRoaXMuX3Jvb3Quc3dhdGNoZXMucmVtb3ZlQ2hpbGQoZWwpO1xuICAgICAgICAgICAgdGhpcy5fc3dhdGNoQ29sb3JzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBhcHBseUNvbG9yKHNpbGVudCA9IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IHtwcmV2aWV3LCBidXR0b259ID0gdGhpcy5fcm9vdDtcblxuICAgICAgICAvLyBDaGFuZ2UgcHJldmlldyBhbmQgY3VycmVudCBjb2xvclxuICAgICAgICBjb25zdCBjc3NSR0JhU3RyaW5nID0gdGhpcy5fY29sb3IudG9SR0JBKCkudG9TdHJpbmcoMCk7XG4gICAgICAgIHByZXZpZXcubGFzdENvbG9yLnN0eWxlLnNldFByb3BlcnR5KCctLXBjci1jb2xvcicsIGNzc1JHQmFTdHJpbmcpO1xuXG4gICAgICAgIC8vIENoYW5nZSBvbmx5IHRoZSBidXR0b24gY29sb3IgaWYgaXQgaXNuJ3QgY3VzdG9taXplZFxuICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy51c2VBc0J1dHRvbikge1xuICAgICAgICAgICAgYnV0dG9uLnN0eWxlLnNldFByb3BlcnR5KCctLXBjci1jb2xvcicsIGNzc1JHQmFTdHJpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVXNlciBjaGFuZ2VkIHRoZSBjb2xvciBzbyByZW1vdmUgdGhlIGNsZWFyIGNsYXNcbiAgICAgICAgYnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoJ2NsZWFyJyk7XG5cbiAgICAgICAgLy8gU2F2ZSBsYXN0IGNvbG9yXG4gICAgICAgIHRoaXMuX2xhc3RDb2xvciA9IHRoaXMuX2NvbG9yLmNsb25lKCk7XG5cbiAgICAgICAgLy8gRmlyZSBsaXN0ZW5lclxuICAgICAgICBpZiAoIXRoaXMuX2luaXRpYWxpemluZ0FjdGl2ZSAmJiAhc2lsZW50KSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0KCdzYXZlJywgdGhpcy5fY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVzdHJveSdzIGFsbCBmdW5jdGlvbmFsaXR5c1xuICAgICAqL1xuICAgIGRlc3Ryb3koKSB7XG5cbiAgICAgICAgLy8gQ2FuY2VsIHNldHVwLWZyYW1lIGlmIHNldFxuICAgICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9zZXR1cEFuaW1hdGlvbkZyYW1lKTtcblxuICAgICAgICAvLyBVbmJpbmQgZXZlbnRzXG4gICAgICAgIHRoaXMuX2V2ZW50QmluZGluZ3MuZm9yRWFjaChhcmdzID0+IF8ub2ZmKC4uLmFyZ3MpKTtcblxuICAgICAgICAvLyBEZXN0cm95IHN1Yi1jb21wb25lbnRzXG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMuX2NvbXBvbmVudHMpXG4gICAgICAgICAgICAuZm9yRWFjaChrZXkgPT4gdGhpcy5fY29tcG9uZW50c1trZXldLmRlc3Ryb3koKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVzdHJveSdzIGFsbCBmdW5jdGlvbmFsaXR5cyBhbmQgcmVtb3Zlc1xuICAgICAqIHRoZSBwaWNrciBlbGVtZW50LlxuICAgICAqL1xuICAgIGRlc3Ryb3lBbmRSZW1vdmUoKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgICBjb25zdCB7cm9vdCwgYXBwfSA9IHRoaXMuX3Jvb3Q7XG5cbiAgICAgICAgLy8gUmVtb3ZlIGVsZW1lbnRcbiAgICAgICAgaWYgKHJvb3QucGFyZW50RWxlbWVudCkge1xuICAgICAgICAgICAgcm9vdC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHJvb3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmVtb3ZlIC5wY3ItYXBwXG4gICAgICAgIGFwcC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKGFwcCk7XG5cbiAgICAgICAgLy8gVGhlcmUgYXJlIHJlZmVyZW5jZXMgdG8gdmFyaW91cyBET00gZWxlbWVudHMgc3RvcmVkIGluIHRoZSBwaWNrciBpbnN0YW5jZVxuICAgICAgICAvLyBUaGlzIGNsZWFucyBhbGwgb2YgdGhlbSB0byBhdm9pZCBkZXRhY2hlZCBET01zXG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMpXG4gICAgICAgICAgICAuZm9yRWFjaChrZXkgPT4gdGhpc1trZXldID0gbnVsbCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGlkZXMgdGhlIGNvbG9yLXBpY2tlciB1aS5cbiAgICAgKi9cbiAgICBoaWRlKCkge1xuICAgICAgICBpZiAodGhpcy5pc09wZW4oKSkge1xuICAgICAgICAgICAgdGhpcy5fcm9vdC5hcHAuY2xhc3NMaXN0LnJlbW92ZSgndmlzaWJsZScpO1xuICAgICAgICAgICAgdGhpcy5fZW1pdCgnaGlkZScpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvd3MgdGhlIGNvbG9yLXBpY2tlciB1aS5cbiAgICAgKi9cbiAgICBzaG93KCkge1xuICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy5kaXNhYmxlZCAmJiAhdGhpcy5pc09wZW4oKSkge1xuICAgICAgICAgICAgdGhpcy5fcm9vdC5hcHAuY2xhc3NMaXN0LmFkZCgndmlzaWJsZScpO1xuICAgICAgICAgICAgdGhpcy5fcmVQb3NpdGlvbmluZ1BpY2tlcigpO1xuICAgICAgICAgICAgdGhpcy5fZW1pdCgnc2hvdycsIHRoaXMuX2NvbG9yKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm4ge2Jvb2xlYW59IElmIHRoZSBjb2xvciBwaWNrZXIgaXMgY3VycmVudGx5IG9wZW5cbiAgICAgKi9cbiAgICBpc09wZW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yb290LmFwcC5jbGFzc0xpc3QuY29udGFpbnMoJ3Zpc2libGUnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgYSBzcGVjaWZpYyBjb2xvci5cbiAgICAgKiBAcGFyYW0gaCBIdWVcbiAgICAgKiBAcGFyYW0gcyBTYXR1cmF0aW9uXG4gICAgICogQHBhcmFtIHYgVmFsdWVcbiAgICAgKiBAcGFyYW0gYSBBbHBoYSBjaGFubmVsICgwIC0gMSlcbiAgICAgKiBAcGFyYW0gc2lsZW50IElmIHRoZSBidXR0b24gc2hvdWxkIG5vdCBjaGFuZ2UgdGhlIGNvbG9yXG4gICAgICogQHJldHVybiBib29sZWFuIGlmIHRoZSBjb2xvciBoYXMgYmVlbiBhY2NlcHRlZFxuICAgICAqL1xuICAgIHNldEhTVkEoaCA9IDM2MCwgcyA9IDAsIHYgPSAwLCBhID0gMSwgc2lsZW50ID0gZmFsc2UpIHtcblxuICAgICAgICAvLyBEZWFjdGl2YXRlIGNvbG9yIGNhbGN1bGF0aW9uXG4gICAgICAgIGNvbnN0IHJlY2FsYyA9IHRoaXMuX3JlY2FsYzsgLy8gU2F2ZSBzdGF0ZVxuICAgICAgICB0aGlzLl9yZWNhbGMgPSBmYWxzZTtcblxuICAgICAgICAvLyBWYWxpZGF0ZSBpbnB1dFxuICAgICAgICBpZiAoaCA8IDAgfHwgaCA+IDM2MCB8fCBzIDwgMCB8fCBzID4gMTAwIHx8IHYgPCAwIHx8IHYgPiAxMDAgfHwgYSA8IDAgfHwgYSA+IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE92ZXJyaWRlIGN1cnJlbnQgY29sb3IgYW5kIHJlLWFjdGl2ZSBjb2xvciBjYWxjdWxhdGlvblxuICAgICAgICB0aGlzLl9jb2xvciA9IEhTVmFDb2xvcihoLCBzLCB2LCBhKTtcblxuICAgICAgICAvLyBVcGRhdGUgc2xpZGVyIGFuZCBwYWxldHRlXG4gICAgICAgIGNvbnN0IHtodWUsIG9wYWNpdHksIHBhbGV0dGV9ID0gdGhpcy5fY29tcG9uZW50cztcbiAgICAgICAgaHVlLnVwZGF0ZSgoaCAvIDM2MCkpO1xuICAgICAgICBvcGFjaXR5LnVwZGF0ZShhKTtcbiAgICAgICAgcGFsZXR0ZS51cGRhdGUocyAvIDEwMCwgMSAtICh2IC8gMTAwKSk7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgY2FsbCBpcyBzaWxlbnRcbiAgICAgICAgaWYgKCFzaWxlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwbHlDb2xvcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVXBkYXRlIG91dHB1dCBpZiByZWNhbGN1bGF0aW9uIGlzIGVuYWJsZWRcbiAgICAgICAgaWYgKHJlY2FsYykge1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlT3V0cHV0KCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZXN0b3JlIG9sZCBzdGF0ZVxuICAgICAgICB0aGlzLl9yZWNhbGMgPSByZWNhbGM7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRyaWVzIHRvIHBhcnNlIGEgc3RyaW5nIHdoaWNoIHJlcHJlc2VudHMgYSBjb2xvci5cbiAgICAgKiBFeGFtcGxlczogI2ZmZlxuICAgICAqICAgICAgICAgICByZ2IgMTAgMTAgMjAwXG4gICAgICogICAgICAgICAgIGhzdmEgMTAgMjAgNSAwLjVcbiAgICAgKiBAcGFyYW0gc3RyaW5nXG4gICAgICogQHBhcmFtIHNpbGVudFxuICAgICAqL1xuICAgIHNldENvbG9yKHN0cmluZywgc2lsZW50ID0gZmFsc2UpIHtcblxuICAgICAgICAvLyBDaGVjayBpZiBudWxsXG4gICAgICAgIGlmIChzdHJpbmcgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuX2NsZWFyQ29sb3Ioc2lsZW50KTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qge3ZhbHVlcywgdHlwZX0gPSB0aGlzLl9wYXJzZUxvY2FsQ29sb3Ioc3RyaW5nKTtcblxuICAgICAgICAvLyBDaGVjayBpZiBjb2xvciBpcyBva1xuICAgICAgICBpZiAodmFsdWVzKSB7XG5cbiAgICAgICAgICAgIC8vIENoYW5nZSBzZWxlY3RlZCBjb2xvciBmb3JtYXRcbiAgICAgICAgICAgIGNvbnN0IHV0eXBlID0gdHlwZS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgY29uc3Qge29wdGlvbnN9ID0gdGhpcy5fcm9vdC5pbnRlcmFjdGlvbjtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IG9wdGlvbnMuZmluZChlbCA9PiBlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtdHlwZScpID09PSB1dHlwZSk7XG5cbiAgICAgICAgICAgIC8vIEF1dG8gc2VsZWN0IG9ubHkgaWYgbm90IGhpZGRlblxuICAgICAgICAgICAgaWYgKHRhcmdldCAmJiAhdGFyZ2V0LmhpZGRlbikge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZWwgb2Ygb3B0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICBlbC5jbGFzc0xpc3RbZWwgPT09IHRhcmdldCA/ICdhZGQnIDogJ3JlbW92ZSddKCdhY3RpdmUnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFVwZGF0ZSBjb2xvciAoZmlyZXMgJ3NhdmUnIGV2ZW50IGlmIHNpbGVudCBpcyAnZmFsc2UnKVxuICAgICAgICAgICAgaWYgKCF0aGlzLnNldEhTVkEoLi4udmFsdWVzLCBzaWxlbnQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBVcGRhdGUgcmVwcmVzZW50YXRpb24gKGZpcmVzICdjaGFuZ2UnIGV2ZW50KVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2V0Q29sb3JSZXByZXNlbnRhdGlvbih1dHlwZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlcyB0aGUgY29sb3IgX3JlcHJlc2VudGF0aW9uLlxuICAgICAqIEFsbG93ZWQgdmFsdWVzIGFyZSBIRVgsIFJHQiwgSFNWLCBIU0wgYW5kIENNWUtcbiAgICAgKiBAcGFyYW0gdHlwZVxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBpZiB0aGUgc2VsZWN0ZWQgdHlwZSB3YXMgdmFsaWQuXG4gICAgICovXG4gICAgc2V0Q29sb3JSZXByZXNlbnRhdGlvbih0eXBlKSB7XG5cbiAgICAgICAgLy8gRm9yY2UgdXBwZXJjYXNlIHRvIGFsbG93IGEgY2FzZS1zZW5zaXRpdiBjb21wYXJpc29uXG4gICAgICAgIHR5cGUgPSB0eXBlLnRvVXBwZXJDYXNlKCk7XG5cbiAgICAgICAgLy8gRmluZCBidXR0b24gd2l0aCBnaXZlbiB0eXBlIGFuZCB0cmlnZ2VyIGNsaWNrIGV2ZW50XG4gICAgICAgIHJldHVybiAhIXRoaXMuX3Jvb3QuaW50ZXJhY3Rpb24ub3B0aW9uc1xuICAgICAgICAgICAgLmZpbmQodiA9PiB2LmdldEF0dHJpYnV0ZSgnZGF0YS10eXBlJykuc3RhcnRzV2l0aCh0eXBlKSAmJiAhdi5jbGljaygpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGNvbG9yIHJlcHJlc2VudGFpb24uIFNlZSBzZXRDb2xvclJlcHJlc2VudGF0aW9uXG4gICAgICogQHJldHVybnMgeyp9XG4gICAgICovXG4gICAgZ2V0Q29sb3JSZXByZXNlbnRhdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlcHJlc2VudGF0aW9uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIEhTVmFDb2xvciBDdXJyZW50IEhTVmFDb2xvciBvYmplY3QuXG4gICAgICovXG4gICAgZ2V0Q29sb3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb2xvcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgY29sb3IuXG4gICAgICogQHJldHVybnMge3thLCB0b0hTVkEsIHRvSEVYQSwgcywgdiwgaCwgY2xvbmUsIHRvQ01ZSywgdG9IU0xBLCB0b1JHQkF9fVxuICAgICAqL1xuICAgIGdldFNlbGVjdGVkQ29sb3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sYXN0Q29sb3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHJldHVybnMgVGhlIHJvb3QgSFRNTEVsZW1lbnQgd2l0aCBhbGwgaGlzIGNvbXBvbmVudHMuXG4gICAgICovXG4gICAgZ2V0Um9vdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3Q7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGlzYWJsZSBwaWNrclxuICAgICAqL1xuICAgIGRpc2FibGUoKSB7XG4gICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICB0aGlzLm9wdGlvbnMuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLl9yb290LmJ1dHRvbi5jbGFzc0xpc3QuYWRkKCdkaXNhYmxlZCcpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFbmFibGUgcGlja3JcbiAgICAgKi9cbiAgICBlbmFibGUoKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucy5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9yb290LmJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCdkaXNhYmxlZCcpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59XG4iLCAiKGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcblx0dHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnID8gbW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCkgOlxuXHR0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoZmFjdG9yeSkgOlxuXHQoZ2xvYmFsLkpTT041ID0gZmFjdG9yeSgpKTtcbn0odGhpcywgKGZ1bmN0aW9uICgpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cdGZ1bmN0aW9uIGNyZWF0ZUNvbW1vbmpzTW9kdWxlKGZuLCBtb2R1bGUpIHtcblx0XHRyZXR1cm4gbW9kdWxlID0geyBleHBvcnRzOiB7fSB9LCBmbihtb2R1bGUsIG1vZHVsZS5leHBvcnRzKSwgbW9kdWxlLmV4cG9ydHM7XG5cdH1cblxuXHR2YXIgX2dsb2JhbCA9IGNyZWF0ZUNvbW1vbmpzTW9kdWxlKGZ1bmN0aW9uIChtb2R1bGUpIHtcblx0Ly8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzg2I2lzc3VlY29tbWVudC0xMTU3NTkwMjhcblx0dmFyIGdsb2JhbCA9IG1vZHVsZS5leHBvcnRzID0gdHlwZW9mIHdpbmRvdyAhPSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuTWF0aCA9PSBNYXRoXG5cdCAgPyB3aW5kb3cgOiB0eXBlb2Ygc2VsZiAhPSAndW5kZWZpbmVkJyAmJiBzZWxmLk1hdGggPT0gTWF0aCA/IHNlbGZcblx0ICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmV3LWZ1bmNcblx0ICA6IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG5cdGlmICh0eXBlb2YgX19nID09ICdudW1iZXInKSB7IF9fZyA9IGdsb2JhbDsgfSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG5cdH0pO1xuXG5cdHZhciBfY29yZSA9IGNyZWF0ZUNvbW1vbmpzTW9kdWxlKGZ1bmN0aW9uIChtb2R1bGUpIHtcblx0dmFyIGNvcmUgPSBtb2R1bGUuZXhwb3J0cyA9IHsgdmVyc2lvbjogJzIuNi41JyB9O1xuXHRpZiAodHlwZW9mIF9fZSA9PSAnbnVtYmVyJykgeyBfX2UgPSBjb3JlOyB9IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZWZcblx0fSk7XG5cdHZhciBfY29yZV8xID0gX2NvcmUudmVyc2lvbjtcblxuXHR2YXIgX2lzT2JqZWN0ID0gZnVuY3Rpb24gKGl0KSB7XG5cdCAgcmV0dXJuIHR5cGVvZiBpdCA9PT0gJ29iamVjdCcgPyBpdCAhPT0gbnVsbCA6IHR5cGVvZiBpdCA9PT0gJ2Z1bmN0aW9uJztcblx0fTtcblxuXHR2YXIgX2FuT2JqZWN0ID0gZnVuY3Rpb24gKGl0KSB7XG5cdCAgaWYgKCFfaXNPYmplY3QoaXQpKSB7IHRocm93IFR5cGVFcnJvcihpdCArICcgaXMgbm90IGFuIG9iamVjdCEnKTsgfVxuXHQgIHJldHVybiBpdDtcblx0fTtcblxuXHR2YXIgX2ZhaWxzID0gZnVuY3Rpb24gKGV4ZWMpIHtcblx0ICB0cnkge1xuXHQgICAgcmV0dXJuICEhZXhlYygpO1xuXHQgIH0gY2F0Y2ggKGUpIHtcblx0ICAgIHJldHVybiB0cnVlO1xuXHQgIH1cblx0fTtcblxuXHQvLyBUaGFuaydzIElFOCBmb3IgaGlzIGZ1bm55IGRlZmluZVByb3BlcnR5XG5cdHZhciBfZGVzY3JpcHRvcnMgPSAhX2ZhaWxzKGZ1bmN0aW9uICgpIHtcblx0ICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnYScsIHsgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiA3OyB9IH0pLmEgIT0gNztcblx0fSk7XG5cblx0dmFyIGRvY3VtZW50ID0gX2dsb2JhbC5kb2N1bWVudDtcblx0Ly8gdHlwZW9mIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgaXMgJ29iamVjdCcgaW4gb2xkIElFXG5cdHZhciBpcyA9IF9pc09iamVjdChkb2N1bWVudCkgJiYgX2lzT2JqZWN0KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpO1xuXHR2YXIgX2RvbUNyZWF0ZSA9IGZ1bmN0aW9uIChpdCkge1xuXHQgIHJldHVybiBpcyA/IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoaXQpIDoge307XG5cdH07XG5cblx0dmFyIF9pZThEb21EZWZpbmUgPSAhX2Rlc2NyaXB0b3JzICYmICFfZmFpbHMoZnVuY3Rpb24gKCkge1xuXHQgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoX2RvbUNyZWF0ZSgnZGl2JyksICdhJywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSkuYSAhPSA3O1xuXHR9KTtcblxuXHQvLyA3LjEuMSBUb1ByaW1pdGl2ZShpbnB1dCBbLCBQcmVmZXJyZWRUeXBlXSlcblxuXHQvLyBpbnN0ZWFkIG9mIHRoZSBFUzYgc3BlYyB2ZXJzaW9uLCB3ZSBkaWRuJ3QgaW1wbGVtZW50IEBAdG9QcmltaXRpdmUgY2FzZVxuXHQvLyBhbmQgdGhlIHNlY29uZCBhcmd1bWVudCAtIGZsYWcgLSBwcmVmZXJyZWQgdHlwZSBpcyBhIHN0cmluZ1xuXHR2YXIgX3RvUHJpbWl0aXZlID0gZnVuY3Rpb24gKGl0LCBTKSB7XG5cdCAgaWYgKCFfaXNPYmplY3QoaXQpKSB7IHJldHVybiBpdDsgfVxuXHQgIHZhciBmbiwgdmFsO1xuXHQgIGlmIChTICYmIHR5cGVvZiAoZm4gPSBpdC50b1N0cmluZykgPT0gJ2Z1bmN0aW9uJyAmJiAhX2lzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgeyByZXR1cm4gdmFsOyB9XG5cdCAgaWYgKHR5cGVvZiAoZm4gPSBpdC52YWx1ZU9mKSA9PSAnZnVuY3Rpb24nICYmICFfaXNPYmplY3QodmFsID0gZm4uY2FsbChpdCkpKSB7IHJldHVybiB2YWw7IH1cblx0ICBpZiAoIVMgJiYgdHlwZW9mIChmbiA9IGl0LnRvU3RyaW5nKSA9PSAnZnVuY3Rpb24nICYmICFfaXNPYmplY3QodmFsID0gZm4uY2FsbChpdCkpKSB7IHJldHVybiB2YWw7IH1cblx0ICB0aHJvdyBUeXBlRXJyb3IoXCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWVcIik7XG5cdH07XG5cblx0dmFyIGRQID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xuXG5cdHZhciBmID0gX2Rlc2NyaXB0b3JzID8gT2JqZWN0LmRlZmluZVByb3BlcnR5IDogZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcykge1xuXHQgIF9hbk9iamVjdChPKTtcblx0ICBQID0gX3RvUHJpbWl0aXZlKFAsIHRydWUpO1xuXHQgIF9hbk9iamVjdChBdHRyaWJ1dGVzKTtcblx0ICBpZiAoX2llOERvbURlZmluZSkgeyB0cnkge1xuXHQgICAgcmV0dXJuIGRQKE8sIFAsIEF0dHJpYnV0ZXMpO1xuXHQgIH0gY2F0Y2ggKGUpIHsgLyogZW1wdHkgKi8gfSB9XG5cdCAgaWYgKCdnZXQnIGluIEF0dHJpYnV0ZXMgfHwgJ3NldCcgaW4gQXR0cmlidXRlcykgeyB0aHJvdyBUeXBlRXJyb3IoJ0FjY2Vzc29ycyBub3Qgc3VwcG9ydGVkIScpOyB9XG5cdCAgaWYgKCd2YWx1ZScgaW4gQXR0cmlidXRlcykgeyBPW1BdID0gQXR0cmlidXRlcy52YWx1ZTsgfVxuXHQgIHJldHVybiBPO1xuXHR9O1xuXG5cdHZhciBfb2JqZWN0RHAgPSB7XG5cdFx0ZjogZlxuXHR9O1xuXG5cdHZhciBfcHJvcGVydHlEZXNjID0gZnVuY3Rpb24gKGJpdG1hcCwgdmFsdWUpIHtcblx0ICByZXR1cm4ge1xuXHQgICAgZW51bWVyYWJsZTogIShiaXRtYXAgJiAxKSxcblx0ICAgIGNvbmZpZ3VyYWJsZTogIShiaXRtYXAgJiAyKSxcblx0ICAgIHdyaXRhYmxlOiAhKGJpdG1hcCAmIDQpLFxuXHQgICAgdmFsdWU6IHZhbHVlXG5cdCAgfTtcblx0fTtcblxuXHR2YXIgX2hpZGUgPSBfZGVzY3JpcHRvcnMgPyBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG5cdCAgcmV0dXJuIF9vYmplY3REcC5mKG9iamVjdCwga2V5LCBfcHJvcGVydHlEZXNjKDEsIHZhbHVlKSk7XG5cdH0gOiBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG5cdCAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcblx0ICByZXR1cm4gb2JqZWN0O1xuXHR9O1xuXG5cdHZhciBoYXNPd25Qcm9wZXJ0eSA9IHt9Lmhhc093blByb3BlcnR5O1xuXHR2YXIgX2hhcyA9IGZ1bmN0aW9uIChpdCwga2V5KSB7XG5cdCAgcmV0dXJuIGhhc093blByb3BlcnR5LmNhbGwoaXQsIGtleSk7XG5cdH07XG5cblx0dmFyIGlkID0gMDtcblx0dmFyIHB4ID0gTWF0aC5yYW5kb20oKTtcblx0dmFyIF91aWQgPSBmdW5jdGlvbiAoa2V5KSB7XG5cdCAgcmV0dXJuICdTeW1ib2woJy5jb25jYXQoa2V5ID09PSB1bmRlZmluZWQgPyAnJyA6IGtleSwgJylfJywgKCsraWQgKyBweCkudG9TdHJpbmcoMzYpKTtcblx0fTtcblxuXHR2YXIgX2xpYnJhcnkgPSBmYWxzZTtcblxuXHR2YXIgX3NoYXJlZCA9IGNyZWF0ZUNvbW1vbmpzTW9kdWxlKGZ1bmN0aW9uIChtb2R1bGUpIHtcblx0dmFyIFNIQVJFRCA9ICdfX2NvcmUtanNfc2hhcmVkX18nO1xuXHR2YXIgc3RvcmUgPSBfZ2xvYmFsW1NIQVJFRF0gfHwgKF9nbG9iYWxbU0hBUkVEXSA9IHt9KTtcblxuXHQobW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuXHQgIHJldHVybiBzdG9yZVtrZXldIHx8IChzdG9yZVtrZXldID0gdmFsdWUgIT09IHVuZGVmaW5lZCA/IHZhbHVlIDoge30pO1xuXHR9KSgndmVyc2lvbnMnLCBbXSkucHVzaCh7XG5cdCAgdmVyc2lvbjogX2NvcmUudmVyc2lvbixcblx0ICBtb2RlOiBfbGlicmFyeSA/ICdwdXJlJyA6ICdnbG9iYWwnLFxuXHQgIGNvcHlyaWdodDogJ1x1MDBBOSAyMDE5IERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpJ1xuXHR9KTtcblx0fSk7XG5cblx0dmFyIF9mdW5jdGlvblRvU3RyaW5nID0gX3NoYXJlZCgnbmF0aXZlLWZ1bmN0aW9uLXRvLXN0cmluZycsIEZ1bmN0aW9uLnRvU3RyaW5nKTtcblxuXHR2YXIgX3JlZGVmaW5lID0gY3JlYXRlQ29tbW9uanNNb2R1bGUoZnVuY3Rpb24gKG1vZHVsZSkge1xuXHR2YXIgU1JDID0gX3VpZCgnc3JjJyk7XG5cblx0dmFyIFRPX1NUUklORyA9ICd0b1N0cmluZyc7XG5cdHZhciBUUEwgPSAoJycgKyBfZnVuY3Rpb25Ub1N0cmluZykuc3BsaXQoVE9fU1RSSU5HKTtcblxuXHRfY29yZS5pbnNwZWN0U291cmNlID0gZnVuY3Rpb24gKGl0KSB7XG5cdCAgcmV0dXJuIF9mdW5jdGlvblRvU3RyaW5nLmNhbGwoaXQpO1xuXHR9O1xuXG5cdChtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChPLCBrZXksIHZhbCwgc2FmZSkge1xuXHQgIHZhciBpc0Z1bmN0aW9uID0gdHlwZW9mIHZhbCA9PSAnZnVuY3Rpb24nO1xuXHQgIGlmIChpc0Z1bmN0aW9uKSB7IF9oYXModmFsLCAnbmFtZScpIHx8IF9oaWRlKHZhbCwgJ25hbWUnLCBrZXkpOyB9XG5cdCAgaWYgKE9ba2V5XSA9PT0gdmFsKSB7IHJldHVybjsgfVxuXHQgIGlmIChpc0Z1bmN0aW9uKSB7IF9oYXModmFsLCBTUkMpIHx8IF9oaWRlKHZhbCwgU1JDLCBPW2tleV0gPyAnJyArIE9ba2V5XSA6IFRQTC5qb2luKFN0cmluZyhrZXkpKSk7IH1cblx0ICBpZiAoTyA9PT0gX2dsb2JhbCkge1xuXHQgICAgT1trZXldID0gdmFsO1xuXHQgIH0gZWxzZSBpZiAoIXNhZmUpIHtcblx0ICAgIGRlbGV0ZSBPW2tleV07XG5cdCAgICBfaGlkZShPLCBrZXksIHZhbCk7XG5cdCAgfSBlbHNlIGlmIChPW2tleV0pIHtcblx0ICAgIE9ba2V5XSA9IHZhbDtcblx0ICB9IGVsc2Uge1xuXHQgICAgX2hpZGUoTywga2V5LCB2YWwpO1xuXHQgIH1cblx0Ly8gYWRkIGZha2UgRnVuY3Rpb24jdG9TdHJpbmcgZm9yIGNvcnJlY3Qgd29yayB3cmFwcGVkIG1ldGhvZHMgLyBjb25zdHJ1Y3RvcnMgd2l0aCBtZXRob2RzIGxpa2UgTG9EYXNoIGlzTmF0aXZlXG5cdH0pKEZ1bmN0aW9uLnByb3RvdHlwZSwgVE9fU1RSSU5HLCBmdW5jdGlvbiB0b1N0cmluZygpIHtcblx0ICByZXR1cm4gdHlwZW9mIHRoaXMgPT0gJ2Z1bmN0aW9uJyAmJiB0aGlzW1NSQ10gfHwgX2Z1bmN0aW9uVG9TdHJpbmcuY2FsbCh0aGlzKTtcblx0fSk7XG5cdH0pO1xuXG5cdHZhciBfYUZ1bmN0aW9uID0gZnVuY3Rpb24gKGl0KSB7XG5cdCAgaWYgKHR5cGVvZiBpdCAhPSAnZnVuY3Rpb24nKSB7IHRocm93IFR5cGVFcnJvcihpdCArICcgaXMgbm90IGEgZnVuY3Rpb24hJyk7IH1cblx0ICByZXR1cm4gaXQ7XG5cdH07XG5cblx0Ly8gb3B0aW9uYWwgLyBzaW1wbGUgY29udGV4dCBiaW5kaW5nXG5cblx0dmFyIF9jdHggPSBmdW5jdGlvbiAoZm4sIHRoYXQsIGxlbmd0aCkge1xuXHQgIF9hRnVuY3Rpb24oZm4pO1xuXHQgIGlmICh0aGF0ID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIGZuOyB9XG5cdCAgc3dpdGNoIChsZW5ndGgpIHtcblx0ICAgIGNhc2UgMTogcmV0dXJuIGZ1bmN0aW9uIChhKSB7XG5cdCAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEpO1xuXHQgICAgfTtcblx0ICAgIGNhc2UgMjogcmV0dXJuIGZ1bmN0aW9uIChhLCBiKSB7XG5cdCAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIpO1xuXHQgICAgfTtcblx0ICAgIGNhc2UgMzogcmV0dXJuIGZ1bmN0aW9uIChhLCBiLCBjKSB7XG5cdCAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIsIGMpO1xuXHQgICAgfTtcblx0ICB9XG5cdCAgcmV0dXJuIGZ1bmN0aW9uICgvKiAuLi5hcmdzICovKSB7XG5cdCAgICByZXR1cm4gZm4uYXBwbHkodGhhdCwgYXJndW1lbnRzKTtcblx0ICB9O1xuXHR9O1xuXG5cdHZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJztcblxuXHR2YXIgJGV4cG9ydCA9IGZ1bmN0aW9uICh0eXBlLCBuYW1lLCBzb3VyY2UpIHtcblx0ICB2YXIgSVNfRk9SQ0VEID0gdHlwZSAmICRleHBvcnQuRjtcblx0ICB2YXIgSVNfR0xPQkFMID0gdHlwZSAmICRleHBvcnQuRztcblx0ICB2YXIgSVNfU1RBVElDID0gdHlwZSAmICRleHBvcnQuUztcblx0ICB2YXIgSVNfUFJPVE8gPSB0eXBlICYgJGV4cG9ydC5QO1xuXHQgIHZhciBJU19CSU5EID0gdHlwZSAmICRleHBvcnQuQjtcblx0ICB2YXIgdGFyZ2V0ID0gSVNfR0xPQkFMID8gX2dsb2JhbCA6IElTX1NUQVRJQyA/IF9nbG9iYWxbbmFtZV0gfHwgKF9nbG9iYWxbbmFtZV0gPSB7fSkgOiAoX2dsb2JhbFtuYW1lXSB8fCB7fSlbUFJPVE9UWVBFXTtcblx0ICB2YXIgZXhwb3J0cyA9IElTX0dMT0JBTCA/IF9jb3JlIDogX2NvcmVbbmFtZV0gfHwgKF9jb3JlW25hbWVdID0ge30pO1xuXHQgIHZhciBleHBQcm90byA9IGV4cG9ydHNbUFJPVE9UWVBFXSB8fCAoZXhwb3J0c1tQUk9UT1RZUEVdID0ge30pO1xuXHQgIHZhciBrZXksIG93biwgb3V0LCBleHA7XG5cdCAgaWYgKElTX0dMT0JBTCkgeyBzb3VyY2UgPSBuYW1lOyB9XG5cdCAgZm9yIChrZXkgaW4gc291cmNlKSB7XG5cdCAgICAvLyBjb250YWlucyBpbiBuYXRpdmVcblx0ICAgIG93biA9ICFJU19GT1JDRUQgJiYgdGFyZ2V0ICYmIHRhcmdldFtrZXldICE9PSB1bmRlZmluZWQ7XG5cdCAgICAvLyBleHBvcnQgbmF0aXZlIG9yIHBhc3NlZFxuXHQgICAgb3V0ID0gKG93biA/IHRhcmdldCA6IHNvdXJjZSlba2V5XTtcblx0ICAgIC8vIGJpbmQgdGltZXJzIHRvIGdsb2JhbCBmb3IgY2FsbCBmcm9tIGV4cG9ydCBjb250ZXh0XG5cdCAgICBleHAgPSBJU19CSU5EICYmIG93biA/IF9jdHgob3V0LCBfZ2xvYmFsKSA6IElTX1BST1RPICYmIHR5cGVvZiBvdXQgPT0gJ2Z1bmN0aW9uJyA/IF9jdHgoRnVuY3Rpb24uY2FsbCwgb3V0KSA6IG91dDtcblx0ICAgIC8vIGV4dGVuZCBnbG9iYWxcblx0ICAgIGlmICh0YXJnZXQpIHsgX3JlZGVmaW5lKHRhcmdldCwga2V5LCBvdXQsIHR5cGUgJiAkZXhwb3J0LlUpOyB9XG5cdCAgICAvLyBleHBvcnRcblx0ICAgIGlmIChleHBvcnRzW2tleV0gIT0gb3V0KSB7IF9oaWRlKGV4cG9ydHMsIGtleSwgZXhwKTsgfVxuXHQgICAgaWYgKElTX1BST1RPICYmIGV4cFByb3RvW2tleV0gIT0gb3V0KSB7IGV4cFByb3RvW2tleV0gPSBvdXQ7IH1cblx0ICB9XG5cdH07XG5cdF9nbG9iYWwuY29yZSA9IF9jb3JlO1xuXHQvLyB0eXBlIGJpdG1hcFxuXHQkZXhwb3J0LkYgPSAxOyAgIC8vIGZvcmNlZFxuXHQkZXhwb3J0LkcgPSAyOyAgIC8vIGdsb2JhbFxuXHQkZXhwb3J0LlMgPSA0OyAgIC8vIHN0YXRpY1xuXHQkZXhwb3J0LlAgPSA4OyAgIC8vIHByb3RvXG5cdCRleHBvcnQuQiA9IDE2OyAgLy8gYmluZFxuXHQkZXhwb3J0LlcgPSAzMjsgIC8vIHdyYXBcblx0JGV4cG9ydC5VID0gNjQ7ICAvLyBzYWZlXG5cdCRleHBvcnQuUiA9IDEyODsgLy8gcmVhbCBwcm90byBtZXRob2QgZm9yIGBsaWJyYXJ5YFxuXHR2YXIgX2V4cG9ydCA9ICRleHBvcnQ7XG5cblx0Ly8gNy4xLjQgVG9JbnRlZ2VyXG5cdHZhciBjZWlsID0gTWF0aC5jZWlsO1xuXHR2YXIgZmxvb3IgPSBNYXRoLmZsb29yO1xuXHR2YXIgX3RvSW50ZWdlciA9IGZ1bmN0aW9uIChpdCkge1xuXHQgIHJldHVybiBpc05hTihpdCA9ICtpdCkgPyAwIDogKGl0ID4gMCA/IGZsb29yIDogY2VpbCkoaXQpO1xuXHR9O1xuXG5cdC8vIDcuMi4xIFJlcXVpcmVPYmplY3RDb2VyY2libGUoYXJndW1lbnQpXG5cdHZhciBfZGVmaW5lZCA9IGZ1bmN0aW9uIChpdCkge1xuXHQgIGlmIChpdCA9PSB1bmRlZmluZWQpIHsgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIFwiICsgaXQpOyB9XG5cdCAgcmV0dXJuIGl0O1xuXHR9O1xuXG5cdC8vIHRydWUgIC0+IFN0cmluZyNhdFxuXHQvLyBmYWxzZSAtPiBTdHJpbmcjY29kZVBvaW50QXRcblx0dmFyIF9zdHJpbmdBdCA9IGZ1bmN0aW9uIChUT19TVFJJTkcpIHtcblx0ICByZXR1cm4gZnVuY3Rpb24gKHRoYXQsIHBvcykge1xuXHQgICAgdmFyIHMgPSBTdHJpbmcoX2RlZmluZWQodGhhdCkpO1xuXHQgICAgdmFyIGkgPSBfdG9JbnRlZ2VyKHBvcyk7XG5cdCAgICB2YXIgbCA9IHMubGVuZ3RoO1xuXHQgICAgdmFyIGEsIGI7XG5cdCAgICBpZiAoaSA8IDAgfHwgaSA+PSBsKSB7IHJldHVybiBUT19TVFJJTkcgPyAnJyA6IHVuZGVmaW5lZDsgfVxuXHQgICAgYSA9IHMuY2hhckNvZGVBdChpKTtcblx0ICAgIHJldHVybiBhIDwgMHhkODAwIHx8IGEgPiAweGRiZmYgfHwgaSArIDEgPT09IGwgfHwgKGIgPSBzLmNoYXJDb2RlQXQoaSArIDEpKSA8IDB4ZGMwMCB8fCBiID4gMHhkZmZmXG5cdCAgICAgID8gVE9fU1RSSU5HID8gcy5jaGFyQXQoaSkgOiBhXG5cdCAgICAgIDogVE9fU1RSSU5HID8gcy5zbGljZShpLCBpICsgMikgOiAoYSAtIDB4ZDgwMCA8PCAxMCkgKyAoYiAtIDB4ZGMwMCkgKyAweDEwMDAwO1xuXHQgIH07XG5cdH07XG5cblx0dmFyICRhdCA9IF9zdHJpbmdBdChmYWxzZSk7XG5cdF9leHBvcnQoX2V4cG9ydC5QLCAnU3RyaW5nJywge1xuXHQgIC8vIDIxLjEuMy4zIFN0cmluZy5wcm90b3R5cGUuY29kZVBvaW50QXQocG9zKVxuXHQgIGNvZGVQb2ludEF0OiBmdW5jdGlvbiBjb2RlUG9pbnRBdChwb3MpIHtcblx0ICAgIHJldHVybiAkYXQodGhpcywgcG9zKTtcblx0ICB9XG5cdH0pO1xuXG5cdHZhciBjb2RlUG9pbnRBdCA9IF9jb3JlLlN0cmluZy5jb2RlUG9pbnRBdDtcblxuXHR2YXIgbWF4ID0gTWF0aC5tYXg7XG5cdHZhciBtaW4gPSBNYXRoLm1pbjtcblx0dmFyIF90b0Fic29sdXRlSW5kZXggPSBmdW5jdGlvbiAoaW5kZXgsIGxlbmd0aCkge1xuXHQgIGluZGV4ID0gX3RvSW50ZWdlcihpbmRleCk7XG5cdCAgcmV0dXJuIGluZGV4IDwgMCA/IG1heChpbmRleCArIGxlbmd0aCwgMCkgOiBtaW4oaW5kZXgsIGxlbmd0aCk7XG5cdH07XG5cblx0dmFyIGZyb21DaGFyQ29kZSA9IFN0cmluZy5mcm9tQ2hhckNvZGU7XG5cdHZhciAkZnJvbUNvZGVQb2ludCA9IFN0cmluZy5mcm9tQ29kZVBvaW50O1xuXG5cdC8vIGxlbmd0aCBzaG91bGQgYmUgMSwgb2xkIEZGIHByb2JsZW1cblx0X2V4cG9ydChfZXhwb3J0LlMgKyBfZXhwb3J0LkYgKiAoISEkZnJvbUNvZGVQb2ludCAmJiAkZnJvbUNvZGVQb2ludC5sZW5ndGggIT0gMSksICdTdHJpbmcnLCB7XG5cdCAgLy8gMjEuMS4yLjIgU3RyaW5nLmZyb21Db2RlUG9pbnQoLi4uY29kZVBvaW50cylcblx0ICBmcm9tQ29kZVBvaW50OiBmdW5jdGlvbiBmcm9tQ29kZVBvaW50KHgpIHtcblx0ICAgIHZhciBhcmd1bWVudHMkMSA9IGFyZ3VtZW50cztcblx0IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW51c2VkLXZhcnNcblx0ICAgIHZhciByZXMgPSBbXTtcblx0ICAgIHZhciBhTGVuID0gYXJndW1lbnRzLmxlbmd0aDtcblx0ICAgIHZhciBpID0gMDtcblx0ICAgIHZhciBjb2RlO1xuXHQgICAgd2hpbGUgKGFMZW4gPiBpKSB7XG5cdCAgICAgIGNvZGUgPSArYXJndW1lbnRzJDFbaSsrXTtcblx0ICAgICAgaWYgKF90b0Fic29sdXRlSW5kZXgoY29kZSwgMHgxMGZmZmYpICE9PSBjb2RlKSB7IHRocm93IFJhbmdlRXJyb3IoY29kZSArICcgaXMgbm90IGEgdmFsaWQgY29kZSBwb2ludCcpOyB9XG5cdCAgICAgIHJlcy5wdXNoKGNvZGUgPCAweDEwMDAwXG5cdCAgICAgICAgPyBmcm9tQ2hhckNvZGUoY29kZSlcblx0ICAgICAgICA6IGZyb21DaGFyQ29kZSgoKGNvZGUgLT0gMHgxMDAwMCkgPj4gMTApICsgMHhkODAwLCBjb2RlICUgMHg0MDAgKyAweGRjMDApXG5cdCAgICAgICk7XG5cdCAgICB9IHJldHVybiByZXMuam9pbignJyk7XG5cdCAgfVxuXHR9KTtcblxuXHR2YXIgZnJvbUNvZGVQb2ludCA9IF9jb3JlLlN0cmluZy5mcm9tQ29kZVBvaW50O1xuXG5cdC8vIFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmlsZS4gRG8gbm90IGVkaXQuXG5cdHZhciBTcGFjZV9TZXBhcmF0b3IgPSAvW1xcdTE2ODBcXHUyMDAwLVxcdTIwMEFcXHUyMDJGXFx1MjA1RlxcdTMwMDBdLztcblx0dmFyIElEX1N0YXJ0ID0gL1tcXHhBQVxceEI1XFx4QkFcXHhDMC1cXHhENlxceEQ4LVxceEY2XFx4RjgtXFx1MDJDMVxcdTAyQzYtXFx1MDJEMVxcdTAyRTAtXFx1MDJFNFxcdTAyRUNcXHUwMkVFXFx1MDM3MC1cXHUwMzc0XFx1MDM3NlxcdTAzNzdcXHUwMzdBLVxcdTAzN0RcXHUwMzdGXFx1MDM4NlxcdTAzODgtXFx1MDM4QVxcdTAzOENcXHUwMzhFLVxcdTAzQTFcXHUwM0EzLVxcdTAzRjVcXHUwM0Y3LVxcdTA0ODFcXHUwNDhBLVxcdTA1MkZcXHUwNTMxLVxcdTA1NTZcXHUwNTU5XFx1MDU2MS1cXHUwNTg3XFx1MDVEMC1cXHUwNUVBXFx1MDVGMC1cXHUwNUYyXFx1MDYyMC1cXHUwNjRBXFx1MDY2RVxcdTA2NkZcXHUwNjcxLVxcdTA2RDNcXHUwNkQ1XFx1MDZFNVxcdTA2RTZcXHUwNkVFXFx1MDZFRlxcdTA2RkEtXFx1MDZGQ1xcdTA2RkZcXHUwNzEwXFx1MDcxMi1cXHUwNzJGXFx1MDc0RC1cXHUwN0E1XFx1MDdCMVxcdTA3Q0EtXFx1MDdFQVxcdTA3RjRcXHUwN0Y1XFx1MDdGQVxcdTA4MDAtXFx1MDgxNVxcdTA4MUFcXHUwODI0XFx1MDgyOFxcdTA4NDAtXFx1MDg1OFxcdTA4NjAtXFx1MDg2QVxcdTA4QTAtXFx1MDhCNFxcdTA4QjYtXFx1MDhCRFxcdTA5MDQtXFx1MDkzOVxcdTA5M0RcXHUwOTUwXFx1MDk1OC1cXHUwOTYxXFx1MDk3MS1cXHUwOTgwXFx1MDk4NS1cXHUwOThDXFx1MDk4RlxcdTA5OTBcXHUwOTkzLVxcdTA5QThcXHUwOUFBLVxcdTA5QjBcXHUwOUIyXFx1MDlCNi1cXHUwOUI5XFx1MDlCRFxcdTA5Q0VcXHUwOURDXFx1MDlERFxcdTA5REYtXFx1MDlFMVxcdTA5RjBcXHUwOUYxXFx1MDlGQ1xcdTBBMDUtXFx1MEEwQVxcdTBBMEZcXHUwQTEwXFx1MEExMy1cXHUwQTI4XFx1MEEyQS1cXHUwQTMwXFx1MEEzMlxcdTBBMzNcXHUwQTM1XFx1MEEzNlxcdTBBMzhcXHUwQTM5XFx1MEE1OS1cXHUwQTVDXFx1MEE1RVxcdTBBNzItXFx1MEE3NFxcdTBBODUtXFx1MEE4RFxcdTBBOEYtXFx1MEE5MVxcdTBBOTMtXFx1MEFBOFxcdTBBQUEtXFx1MEFCMFxcdTBBQjJcXHUwQUIzXFx1MEFCNS1cXHUwQUI5XFx1MEFCRFxcdTBBRDBcXHUwQUUwXFx1MEFFMVxcdTBBRjlcXHUwQjA1LVxcdTBCMENcXHUwQjBGXFx1MEIxMFxcdTBCMTMtXFx1MEIyOFxcdTBCMkEtXFx1MEIzMFxcdTBCMzJcXHUwQjMzXFx1MEIzNS1cXHUwQjM5XFx1MEIzRFxcdTBCNUNcXHUwQjVEXFx1MEI1Ri1cXHUwQjYxXFx1MEI3MVxcdTBCODNcXHUwQjg1LVxcdTBCOEFcXHUwQjhFLVxcdTBCOTBcXHUwQjkyLVxcdTBCOTVcXHUwQjk5XFx1MEI5QVxcdTBCOUNcXHUwQjlFXFx1MEI5RlxcdTBCQTNcXHUwQkE0XFx1MEJBOC1cXHUwQkFBXFx1MEJBRS1cXHUwQkI5XFx1MEJEMFxcdTBDMDUtXFx1MEMwQ1xcdTBDMEUtXFx1MEMxMFxcdTBDMTItXFx1MEMyOFxcdTBDMkEtXFx1MEMzOVxcdTBDM0RcXHUwQzU4LVxcdTBDNUFcXHUwQzYwXFx1MEM2MVxcdTBDODBcXHUwQzg1LVxcdTBDOENcXHUwQzhFLVxcdTBDOTBcXHUwQzkyLVxcdTBDQThcXHUwQ0FBLVxcdTBDQjNcXHUwQ0I1LVxcdTBDQjlcXHUwQ0JEXFx1MENERVxcdTBDRTBcXHUwQ0UxXFx1MENGMVxcdTBDRjJcXHUwRDA1LVxcdTBEMENcXHUwRDBFLVxcdTBEMTBcXHUwRDEyLVxcdTBEM0FcXHUwRDNEXFx1MEQ0RVxcdTBENTQtXFx1MEQ1NlxcdTBENUYtXFx1MEQ2MVxcdTBEN0EtXFx1MEQ3RlxcdTBEODUtXFx1MEQ5NlxcdTBEOUEtXFx1MERCMVxcdTBEQjMtXFx1MERCQlxcdTBEQkRcXHUwREMwLVxcdTBEQzZcXHUwRTAxLVxcdTBFMzBcXHUwRTMyXFx1MEUzM1xcdTBFNDAtXFx1MEU0NlxcdTBFODFcXHUwRTgyXFx1MEU4NFxcdTBFODdcXHUwRTg4XFx1MEU4QVxcdTBFOERcXHUwRTk0LVxcdTBFOTdcXHUwRTk5LVxcdTBFOUZcXHUwRUExLVxcdTBFQTNcXHUwRUE1XFx1MEVBN1xcdTBFQUFcXHUwRUFCXFx1MEVBRC1cXHUwRUIwXFx1MEVCMlxcdTBFQjNcXHUwRUJEXFx1MEVDMC1cXHUwRUM0XFx1MEVDNlxcdTBFREMtXFx1MEVERlxcdTBGMDBcXHUwRjQwLVxcdTBGNDdcXHUwRjQ5LVxcdTBGNkNcXHUwRjg4LVxcdTBGOENcXHUxMDAwLVxcdTEwMkFcXHUxMDNGXFx1MTA1MC1cXHUxMDU1XFx1MTA1QS1cXHUxMDVEXFx1MTA2MVxcdTEwNjVcXHUxMDY2XFx1MTA2RS1cXHUxMDcwXFx1MTA3NS1cXHUxMDgxXFx1MTA4RVxcdTEwQTAtXFx1MTBDNVxcdTEwQzdcXHUxMENEXFx1MTBEMC1cXHUxMEZBXFx1MTBGQy1cXHUxMjQ4XFx1MTI0QS1cXHUxMjREXFx1MTI1MC1cXHUxMjU2XFx1MTI1OFxcdTEyNUEtXFx1MTI1RFxcdTEyNjAtXFx1MTI4OFxcdTEyOEEtXFx1MTI4RFxcdTEyOTAtXFx1MTJCMFxcdTEyQjItXFx1MTJCNVxcdTEyQjgtXFx1MTJCRVxcdTEyQzBcXHUxMkMyLVxcdTEyQzVcXHUxMkM4LVxcdTEyRDZcXHUxMkQ4LVxcdTEzMTBcXHUxMzEyLVxcdTEzMTVcXHUxMzE4LVxcdTEzNUFcXHUxMzgwLVxcdTEzOEZcXHUxM0EwLVxcdTEzRjVcXHUxM0Y4LVxcdTEzRkRcXHUxNDAxLVxcdTE2NkNcXHUxNjZGLVxcdTE2N0ZcXHUxNjgxLVxcdTE2OUFcXHUxNkEwLVxcdTE2RUFcXHUxNkVFLVxcdTE2RjhcXHUxNzAwLVxcdTE3MENcXHUxNzBFLVxcdTE3MTFcXHUxNzIwLVxcdTE3MzFcXHUxNzQwLVxcdTE3NTFcXHUxNzYwLVxcdTE3NkNcXHUxNzZFLVxcdTE3NzBcXHUxNzgwLVxcdTE3QjNcXHUxN0Q3XFx1MTdEQ1xcdTE4MjAtXFx1MTg3N1xcdTE4ODAtXFx1MTg4NFxcdTE4ODctXFx1MThBOFxcdTE4QUFcXHUxOEIwLVxcdTE4RjVcXHUxOTAwLVxcdTE5MUVcXHUxOTUwLVxcdTE5NkRcXHUxOTcwLVxcdTE5NzRcXHUxOTgwLVxcdTE5QUJcXHUxOUIwLVxcdTE5QzlcXHUxQTAwLVxcdTFBMTZcXHUxQTIwLVxcdTFBNTRcXHUxQUE3XFx1MUIwNS1cXHUxQjMzXFx1MUI0NS1cXHUxQjRCXFx1MUI4My1cXHUxQkEwXFx1MUJBRVxcdTFCQUZcXHUxQkJBLVxcdTFCRTVcXHUxQzAwLVxcdTFDMjNcXHUxQzRELVxcdTFDNEZcXHUxQzVBLVxcdTFDN0RcXHUxQzgwLVxcdTFDODhcXHUxQ0U5LVxcdTFDRUNcXHUxQ0VFLVxcdTFDRjFcXHUxQ0Y1XFx1MUNGNlxcdTFEMDAtXFx1MURCRlxcdTFFMDAtXFx1MUYxNVxcdTFGMTgtXFx1MUYxRFxcdTFGMjAtXFx1MUY0NVxcdTFGNDgtXFx1MUY0RFxcdTFGNTAtXFx1MUY1N1xcdTFGNTlcXHUxRjVCXFx1MUY1RFxcdTFGNUYtXFx1MUY3RFxcdTFGODAtXFx1MUZCNFxcdTFGQjYtXFx1MUZCQ1xcdTFGQkVcXHUxRkMyLVxcdTFGQzRcXHUxRkM2LVxcdTFGQ0NcXHUxRkQwLVxcdTFGRDNcXHUxRkQ2LVxcdTFGREJcXHUxRkUwLVxcdTFGRUNcXHUxRkYyLVxcdTFGRjRcXHUxRkY2LVxcdTFGRkNcXHUyMDcxXFx1MjA3RlxcdTIwOTAtXFx1MjA5Q1xcdTIxMDJcXHUyMTA3XFx1MjEwQS1cXHUyMTEzXFx1MjExNVxcdTIxMTktXFx1MjExRFxcdTIxMjRcXHUyMTI2XFx1MjEyOFxcdTIxMkEtXFx1MjEyRFxcdTIxMkYtXFx1MjEzOVxcdTIxM0MtXFx1MjEzRlxcdTIxNDUtXFx1MjE0OVxcdTIxNEVcXHUyMTYwLVxcdTIxODhcXHUyQzAwLVxcdTJDMkVcXHUyQzMwLVxcdTJDNUVcXHUyQzYwLVxcdTJDRTRcXHUyQ0VCLVxcdTJDRUVcXHUyQ0YyXFx1MkNGM1xcdTJEMDAtXFx1MkQyNVxcdTJEMjdcXHUyRDJEXFx1MkQzMC1cXHUyRDY3XFx1MkQ2RlxcdTJEODAtXFx1MkQ5NlxcdTJEQTAtXFx1MkRBNlxcdTJEQTgtXFx1MkRBRVxcdTJEQjAtXFx1MkRCNlxcdTJEQjgtXFx1MkRCRVxcdTJEQzAtXFx1MkRDNlxcdTJEQzgtXFx1MkRDRVxcdTJERDAtXFx1MkRENlxcdTJERDgtXFx1MkRERVxcdTJFMkZcXHUzMDA1LVxcdTMwMDdcXHUzMDIxLVxcdTMwMjlcXHUzMDMxLVxcdTMwMzVcXHUzMDM4LVxcdTMwM0NcXHUzMDQxLVxcdTMwOTZcXHUzMDlELVxcdTMwOUZcXHUzMEExLVxcdTMwRkFcXHUzMEZDLVxcdTMwRkZcXHUzMTA1LVxcdTMxMkVcXHUzMTMxLVxcdTMxOEVcXHUzMUEwLVxcdTMxQkFcXHUzMUYwLVxcdTMxRkZcXHUzNDAwLVxcdTREQjVcXHU0RTAwLVxcdTlGRUFcXHVBMDAwLVxcdUE0OENcXHVBNEQwLVxcdUE0RkRcXHVBNTAwLVxcdUE2MENcXHVBNjEwLVxcdUE2MUZcXHVBNjJBXFx1QTYyQlxcdUE2NDAtXFx1QTY2RVxcdUE2N0YtXFx1QTY5RFxcdUE2QTAtXFx1QTZFRlxcdUE3MTctXFx1QTcxRlxcdUE3MjItXFx1QTc4OFxcdUE3OEItXFx1QTdBRVxcdUE3QjAtXFx1QTdCN1xcdUE3RjctXFx1QTgwMVxcdUE4MDMtXFx1QTgwNVxcdUE4MDctXFx1QTgwQVxcdUE4MEMtXFx1QTgyMlxcdUE4NDAtXFx1QTg3M1xcdUE4ODItXFx1QThCM1xcdUE4RjItXFx1QThGN1xcdUE4RkJcXHVBOEZEXFx1QTkwQS1cXHVBOTI1XFx1QTkzMC1cXHVBOTQ2XFx1QTk2MC1cXHVBOTdDXFx1QTk4NC1cXHVBOUIyXFx1QTlDRlxcdUE5RTAtXFx1QTlFNFxcdUE5RTYtXFx1QTlFRlxcdUE5RkEtXFx1QTlGRVxcdUFBMDAtXFx1QUEyOFxcdUFBNDAtXFx1QUE0MlxcdUFBNDQtXFx1QUE0QlxcdUFBNjAtXFx1QUE3NlxcdUFBN0FcXHVBQTdFLVxcdUFBQUZcXHVBQUIxXFx1QUFCNVxcdUFBQjZcXHVBQUI5LVxcdUFBQkRcXHVBQUMwXFx1QUFDMlxcdUFBREItXFx1QUFERFxcdUFBRTAtXFx1QUFFQVxcdUFBRjItXFx1QUFGNFxcdUFCMDEtXFx1QUIwNlxcdUFCMDktXFx1QUIwRVxcdUFCMTEtXFx1QUIxNlxcdUFCMjAtXFx1QUIyNlxcdUFCMjgtXFx1QUIyRVxcdUFCMzAtXFx1QUI1QVxcdUFCNUMtXFx1QUI2NVxcdUFCNzAtXFx1QUJFMlxcdUFDMDAtXFx1RDdBM1xcdUQ3QjAtXFx1RDdDNlxcdUQ3Q0ItXFx1RDdGQlxcdUY5MDAtXFx1RkE2RFxcdUZBNzAtXFx1RkFEOVxcdUZCMDAtXFx1RkIwNlxcdUZCMTMtXFx1RkIxN1xcdUZCMURcXHVGQjFGLVxcdUZCMjhcXHVGQjJBLVxcdUZCMzZcXHVGQjM4LVxcdUZCM0NcXHVGQjNFXFx1RkI0MFxcdUZCNDFcXHVGQjQzXFx1RkI0NFxcdUZCNDYtXFx1RkJCMVxcdUZCRDMtXFx1RkQzRFxcdUZENTAtXFx1RkQ4RlxcdUZEOTItXFx1RkRDN1xcdUZERjAtXFx1RkRGQlxcdUZFNzAtXFx1RkU3NFxcdUZFNzYtXFx1RkVGQ1xcdUZGMjEtXFx1RkYzQVxcdUZGNDEtXFx1RkY1QVxcdUZGNjYtXFx1RkZCRVxcdUZGQzItXFx1RkZDN1xcdUZGQ0EtXFx1RkZDRlxcdUZGRDItXFx1RkZEN1xcdUZGREEtXFx1RkZEQ118XFx1RDgwMFtcXHVEQzAwLVxcdURDMEJcXHVEQzBELVxcdURDMjZcXHVEQzI4LVxcdURDM0FcXHVEQzNDXFx1REMzRFxcdURDM0YtXFx1REM0RFxcdURDNTAtXFx1REM1RFxcdURDODAtXFx1RENGQVxcdURENDAtXFx1REQ3NFxcdURFODAtXFx1REU5Q1xcdURFQTAtXFx1REVEMFxcdURGMDAtXFx1REYxRlxcdURGMkQtXFx1REY0QVxcdURGNTAtXFx1REY3NVxcdURGODAtXFx1REY5RFxcdURGQTAtXFx1REZDM1xcdURGQzgtXFx1REZDRlxcdURGRDEtXFx1REZENV18XFx1RDgwMVtcXHVEQzAwLVxcdURDOURcXHVEQ0IwLVxcdURDRDNcXHVEQ0Q4LVxcdURDRkJcXHVERDAwLVxcdUREMjdcXHVERDMwLVxcdURENjNcXHVERTAwLVxcdURGMzZcXHVERjQwLVxcdURGNTVcXHVERjYwLVxcdURGNjddfFxcdUQ4MDJbXFx1REMwMC1cXHVEQzA1XFx1REMwOFxcdURDMEEtXFx1REMzNVxcdURDMzdcXHVEQzM4XFx1REMzQ1xcdURDM0YtXFx1REM1NVxcdURDNjAtXFx1REM3NlxcdURDODAtXFx1REM5RVxcdURDRTAtXFx1RENGMlxcdURDRjRcXHVEQ0Y1XFx1REQwMC1cXHVERDE1XFx1REQyMC1cXHVERDM5XFx1REQ4MC1cXHVEREI3XFx1RERCRVxcdUREQkZcXHVERTAwXFx1REUxMC1cXHVERTEzXFx1REUxNS1cXHVERTE3XFx1REUxOS1cXHVERTMzXFx1REU2MC1cXHVERTdDXFx1REU4MC1cXHVERTlDXFx1REVDMC1cXHVERUM3XFx1REVDOS1cXHVERUU0XFx1REYwMC1cXHVERjM1XFx1REY0MC1cXHVERjU1XFx1REY2MC1cXHVERjcyXFx1REY4MC1cXHVERjkxXXxcXHVEODAzW1xcdURDMDAtXFx1REM0OFxcdURDODAtXFx1RENCMlxcdURDQzAtXFx1RENGMl18XFx1RDgwNFtcXHVEQzAzLVxcdURDMzdcXHVEQzgzLVxcdURDQUZcXHVEQ0QwLVxcdURDRThcXHVERDAzLVxcdUREMjZcXHVERDUwLVxcdURENzJcXHVERDc2XFx1REQ4My1cXHVEREIyXFx1RERDMS1cXHVEREM0XFx1REREQVxcdURERENcXHVERTAwLVxcdURFMTFcXHVERTEzLVxcdURFMkJcXHVERTgwLVxcdURFODZcXHVERTg4XFx1REU4QS1cXHVERThEXFx1REU4Ri1cXHVERTlEXFx1REU5Ri1cXHVERUE4XFx1REVCMC1cXHVERURFXFx1REYwNS1cXHVERjBDXFx1REYwRlxcdURGMTBcXHVERjEzLVxcdURGMjhcXHVERjJBLVxcdURGMzBcXHVERjMyXFx1REYzM1xcdURGMzUtXFx1REYzOVxcdURGM0RcXHVERjUwXFx1REY1RC1cXHVERjYxXXxcXHVEODA1W1xcdURDMDAtXFx1REMzNFxcdURDNDctXFx1REM0QVxcdURDODAtXFx1RENBRlxcdURDQzRcXHVEQ0M1XFx1RENDN1xcdUREODAtXFx1RERBRVxcdURERDgtXFx1REREQlxcdURFMDAtXFx1REUyRlxcdURFNDRcXHVERTgwLVxcdURFQUFcXHVERjAwLVxcdURGMTldfFxcdUQ4MDZbXFx1RENBMC1cXHVEQ0RGXFx1RENGRlxcdURFMDBcXHVERTBCLVxcdURFMzJcXHVERTNBXFx1REU1MFxcdURFNUMtXFx1REU4M1xcdURFODYtXFx1REU4OVxcdURFQzAtXFx1REVGOF18XFx1RDgwN1tcXHVEQzAwLVxcdURDMDhcXHVEQzBBLVxcdURDMkVcXHVEQzQwXFx1REM3Mi1cXHVEQzhGXFx1REQwMC1cXHVERDA2XFx1REQwOFxcdUREMDlcXHVERDBCLVxcdUREMzBcXHVERDQ2XXxcXHVEODA4W1xcdURDMDAtXFx1REY5OV18XFx1RDgwOVtcXHVEQzAwLVxcdURDNkVcXHVEQzgwLVxcdURENDNdfFtcXHVEODBDXFx1RDgxQy1cXHVEODIwXFx1RDg0MC1cXHVEODY4XFx1RDg2QS1cXHVEODZDXFx1RDg2Ri1cXHVEODcyXFx1RDg3NC1cXHVEODc5XVtcXHVEQzAwLVxcdURGRkZdfFxcdUQ4MERbXFx1REMwMC1cXHVEQzJFXXxcXHVEODExW1xcdURDMDAtXFx1REU0Nl18XFx1RDgxQVtcXHVEQzAwLVxcdURFMzhcXHVERTQwLVxcdURFNUVcXHVERUQwLVxcdURFRURcXHVERjAwLVxcdURGMkZcXHVERjQwLVxcdURGNDNcXHVERjYzLVxcdURGNzdcXHVERjdELVxcdURGOEZdfFxcdUQ4MUJbXFx1REYwMC1cXHVERjQ0XFx1REY1MFxcdURGOTMtXFx1REY5RlxcdURGRTBcXHVERkUxXXxcXHVEODIxW1xcdURDMDAtXFx1REZFQ118XFx1RDgyMltcXHVEQzAwLVxcdURFRjJdfFxcdUQ4MkNbXFx1REMwMC1cXHVERDFFXFx1REQ3MC1cXHVERUZCXXxcXHVEODJGW1xcdURDMDAtXFx1REM2QVxcdURDNzAtXFx1REM3Q1xcdURDODAtXFx1REM4OFxcdURDOTAtXFx1REM5OV18XFx1RDgzNVtcXHVEQzAwLVxcdURDNTRcXHVEQzU2LVxcdURDOUNcXHVEQzlFXFx1REM5RlxcdURDQTJcXHVEQ0E1XFx1RENBNlxcdURDQTktXFx1RENBQ1xcdURDQUUtXFx1RENCOVxcdURDQkJcXHVEQ0JELVxcdURDQzNcXHVEQ0M1LVxcdUREMDVcXHVERDA3LVxcdUREMEFcXHVERDBELVxcdUREMTRcXHVERDE2LVxcdUREMUNcXHVERDFFLVxcdUREMzlcXHVERDNCLVxcdUREM0VcXHVERDQwLVxcdURENDRcXHVERDQ2XFx1REQ0QS1cXHVERDUwXFx1REQ1Mi1cXHVERUE1XFx1REVBOC1cXHVERUMwXFx1REVDMi1cXHVERURBXFx1REVEQy1cXHVERUZBXFx1REVGQy1cXHVERjE0XFx1REYxNi1cXHVERjM0XFx1REYzNi1cXHVERjRFXFx1REY1MC1cXHVERjZFXFx1REY3MC1cXHVERjg4XFx1REY4QS1cXHVERkE4XFx1REZBQS1cXHVERkMyXFx1REZDNC1cXHVERkNCXXxcXHVEODNBW1xcdURDMDAtXFx1RENDNFxcdUREMDAtXFx1REQ0M118XFx1RDgzQltcXHVERTAwLVxcdURFMDNcXHVERTA1LVxcdURFMUZcXHVERTIxXFx1REUyMlxcdURFMjRcXHVERTI3XFx1REUyOS1cXHVERTMyXFx1REUzNC1cXHVERTM3XFx1REUzOVxcdURFM0JcXHVERTQyXFx1REU0N1xcdURFNDlcXHVERTRCXFx1REU0RC1cXHVERTRGXFx1REU1MVxcdURFNTJcXHVERTU0XFx1REU1N1xcdURFNTlcXHVERTVCXFx1REU1RFxcdURFNUZcXHVERTYxXFx1REU2MlxcdURFNjRcXHVERTY3LVxcdURFNkFcXHVERTZDLVxcdURFNzJcXHVERTc0LVxcdURFNzdcXHVERTc5LVxcdURFN0NcXHVERTdFXFx1REU4MC1cXHVERTg5XFx1REU4Qi1cXHVERTlCXFx1REVBMS1cXHVERUEzXFx1REVBNS1cXHVERUE5XFx1REVBQi1cXHVERUJCXXxcXHVEODY5W1xcdURDMDAtXFx1REVENlxcdURGMDAtXFx1REZGRl18XFx1RDg2RFtcXHVEQzAwLVxcdURGMzRcXHVERjQwLVxcdURGRkZdfFxcdUQ4NkVbXFx1REMwMC1cXHVEQzFEXFx1REMyMC1cXHVERkZGXXxcXHVEODczW1xcdURDMDAtXFx1REVBMVxcdURFQjAtXFx1REZGRl18XFx1RDg3QVtcXHVEQzAwLVxcdURGRTBdfFxcdUQ4N0VbXFx1REMwMC1cXHVERTFEXS87XG5cdHZhciBJRF9Db250aW51ZSA9IC9bXFx4QUFcXHhCNVxceEJBXFx4QzAtXFx4RDZcXHhEOC1cXHhGNlxceEY4LVxcdTAyQzFcXHUwMkM2LVxcdTAyRDFcXHUwMkUwLVxcdTAyRTRcXHUwMkVDXFx1MDJFRVxcdTAzMDAtXFx1MDM3NFxcdTAzNzZcXHUwMzc3XFx1MDM3QS1cXHUwMzdEXFx1MDM3RlxcdTAzODZcXHUwMzg4LVxcdTAzOEFcXHUwMzhDXFx1MDM4RS1cXHUwM0ExXFx1MDNBMy1cXHUwM0Y1XFx1MDNGNy1cXHUwNDgxXFx1MDQ4My1cXHUwNDg3XFx1MDQ4QS1cXHUwNTJGXFx1MDUzMS1cXHUwNTU2XFx1MDU1OVxcdTA1NjEtXFx1MDU4N1xcdTA1OTEtXFx1MDVCRFxcdTA1QkZcXHUwNUMxXFx1MDVDMlxcdTA1QzRcXHUwNUM1XFx1MDVDN1xcdTA1RDAtXFx1MDVFQVxcdTA1RjAtXFx1MDVGMlxcdTA2MTAtXFx1MDYxQVxcdTA2MjAtXFx1MDY2OVxcdTA2NkUtXFx1MDZEM1xcdTA2RDUtXFx1MDZEQ1xcdTA2REYtXFx1MDZFOFxcdTA2RUEtXFx1MDZGQ1xcdTA2RkZcXHUwNzEwLVxcdTA3NEFcXHUwNzRELVxcdTA3QjFcXHUwN0MwLVxcdTA3RjVcXHUwN0ZBXFx1MDgwMC1cXHUwODJEXFx1MDg0MC1cXHUwODVCXFx1MDg2MC1cXHUwODZBXFx1MDhBMC1cXHUwOEI0XFx1MDhCNi1cXHUwOEJEXFx1MDhENC1cXHUwOEUxXFx1MDhFMy1cXHUwOTYzXFx1MDk2Ni1cXHUwOTZGXFx1MDk3MS1cXHUwOTgzXFx1MDk4NS1cXHUwOThDXFx1MDk4RlxcdTA5OTBcXHUwOTkzLVxcdTA5QThcXHUwOUFBLVxcdTA5QjBcXHUwOUIyXFx1MDlCNi1cXHUwOUI5XFx1MDlCQy1cXHUwOUM0XFx1MDlDN1xcdTA5QzhcXHUwOUNCLVxcdTA5Q0VcXHUwOUQ3XFx1MDlEQ1xcdTA5RERcXHUwOURGLVxcdTA5RTNcXHUwOUU2LVxcdTA5RjFcXHUwOUZDXFx1MEEwMS1cXHUwQTAzXFx1MEEwNS1cXHUwQTBBXFx1MEEwRlxcdTBBMTBcXHUwQTEzLVxcdTBBMjhcXHUwQTJBLVxcdTBBMzBcXHUwQTMyXFx1MEEzM1xcdTBBMzVcXHUwQTM2XFx1MEEzOFxcdTBBMzlcXHUwQTNDXFx1MEEzRS1cXHUwQTQyXFx1MEE0N1xcdTBBNDhcXHUwQTRCLVxcdTBBNERcXHUwQTUxXFx1MEE1OS1cXHUwQTVDXFx1MEE1RVxcdTBBNjYtXFx1MEE3NVxcdTBBODEtXFx1MEE4M1xcdTBBODUtXFx1MEE4RFxcdTBBOEYtXFx1MEE5MVxcdTBBOTMtXFx1MEFBOFxcdTBBQUEtXFx1MEFCMFxcdTBBQjJcXHUwQUIzXFx1MEFCNS1cXHUwQUI5XFx1MEFCQy1cXHUwQUM1XFx1MEFDNy1cXHUwQUM5XFx1MEFDQi1cXHUwQUNEXFx1MEFEMFxcdTBBRTAtXFx1MEFFM1xcdTBBRTYtXFx1MEFFRlxcdTBBRjktXFx1MEFGRlxcdTBCMDEtXFx1MEIwM1xcdTBCMDUtXFx1MEIwQ1xcdTBCMEZcXHUwQjEwXFx1MEIxMy1cXHUwQjI4XFx1MEIyQS1cXHUwQjMwXFx1MEIzMlxcdTBCMzNcXHUwQjM1LVxcdTBCMzlcXHUwQjNDLVxcdTBCNDRcXHUwQjQ3XFx1MEI0OFxcdTBCNEItXFx1MEI0RFxcdTBCNTZcXHUwQjU3XFx1MEI1Q1xcdTBCNURcXHUwQjVGLVxcdTBCNjNcXHUwQjY2LVxcdTBCNkZcXHUwQjcxXFx1MEI4MlxcdTBCODNcXHUwQjg1LVxcdTBCOEFcXHUwQjhFLVxcdTBCOTBcXHUwQjkyLVxcdTBCOTVcXHUwQjk5XFx1MEI5QVxcdTBCOUNcXHUwQjlFXFx1MEI5RlxcdTBCQTNcXHUwQkE0XFx1MEJBOC1cXHUwQkFBXFx1MEJBRS1cXHUwQkI5XFx1MEJCRS1cXHUwQkMyXFx1MEJDNi1cXHUwQkM4XFx1MEJDQS1cXHUwQkNEXFx1MEJEMFxcdTBCRDdcXHUwQkU2LVxcdTBCRUZcXHUwQzAwLVxcdTBDMDNcXHUwQzA1LVxcdTBDMENcXHUwQzBFLVxcdTBDMTBcXHUwQzEyLVxcdTBDMjhcXHUwQzJBLVxcdTBDMzlcXHUwQzNELVxcdTBDNDRcXHUwQzQ2LVxcdTBDNDhcXHUwQzRBLVxcdTBDNERcXHUwQzU1XFx1MEM1NlxcdTBDNTgtXFx1MEM1QVxcdTBDNjAtXFx1MEM2M1xcdTBDNjYtXFx1MEM2RlxcdTBDODAtXFx1MEM4M1xcdTBDODUtXFx1MEM4Q1xcdTBDOEUtXFx1MEM5MFxcdTBDOTItXFx1MENBOFxcdTBDQUEtXFx1MENCM1xcdTBDQjUtXFx1MENCOVxcdTBDQkMtXFx1MENDNFxcdTBDQzYtXFx1MENDOFxcdTBDQ0EtXFx1MENDRFxcdTBDRDVcXHUwQ0Q2XFx1MENERVxcdTBDRTAtXFx1MENFM1xcdTBDRTYtXFx1MENFRlxcdTBDRjFcXHUwQ0YyXFx1MEQwMC1cXHUwRDAzXFx1MEQwNS1cXHUwRDBDXFx1MEQwRS1cXHUwRDEwXFx1MEQxMi1cXHUwRDQ0XFx1MEQ0Ni1cXHUwRDQ4XFx1MEQ0QS1cXHUwRDRFXFx1MEQ1NC1cXHUwRDU3XFx1MEQ1Ri1cXHUwRDYzXFx1MEQ2Ni1cXHUwRDZGXFx1MEQ3QS1cXHUwRDdGXFx1MEQ4MlxcdTBEODNcXHUwRDg1LVxcdTBEOTZcXHUwRDlBLVxcdTBEQjFcXHUwREIzLVxcdTBEQkJcXHUwREJEXFx1MERDMC1cXHUwREM2XFx1MERDQVxcdTBEQ0YtXFx1MERENFxcdTBERDZcXHUwREQ4LVxcdTBEREZcXHUwREU2LVxcdTBERUZcXHUwREYyXFx1MERGM1xcdTBFMDEtXFx1MEUzQVxcdTBFNDAtXFx1MEU0RVxcdTBFNTAtXFx1MEU1OVxcdTBFODFcXHUwRTgyXFx1MEU4NFxcdTBFODdcXHUwRTg4XFx1MEU4QVxcdTBFOERcXHUwRTk0LVxcdTBFOTdcXHUwRTk5LVxcdTBFOUZcXHUwRUExLVxcdTBFQTNcXHUwRUE1XFx1MEVBN1xcdTBFQUFcXHUwRUFCXFx1MEVBRC1cXHUwRUI5XFx1MEVCQi1cXHUwRUJEXFx1MEVDMC1cXHUwRUM0XFx1MEVDNlxcdTBFQzgtXFx1MEVDRFxcdTBFRDAtXFx1MEVEOVxcdTBFREMtXFx1MEVERlxcdTBGMDBcXHUwRjE4XFx1MEYxOVxcdTBGMjAtXFx1MEYyOVxcdTBGMzVcXHUwRjM3XFx1MEYzOVxcdTBGM0UtXFx1MEY0N1xcdTBGNDktXFx1MEY2Q1xcdTBGNzEtXFx1MEY4NFxcdTBGODYtXFx1MEY5N1xcdTBGOTktXFx1MEZCQ1xcdTBGQzZcXHUxMDAwLVxcdTEwNDlcXHUxMDUwLVxcdTEwOURcXHUxMEEwLVxcdTEwQzVcXHUxMEM3XFx1MTBDRFxcdTEwRDAtXFx1MTBGQVxcdTEwRkMtXFx1MTI0OFxcdTEyNEEtXFx1MTI0RFxcdTEyNTAtXFx1MTI1NlxcdTEyNThcXHUxMjVBLVxcdTEyNURcXHUxMjYwLVxcdTEyODhcXHUxMjhBLVxcdTEyOERcXHUxMjkwLVxcdTEyQjBcXHUxMkIyLVxcdTEyQjVcXHUxMkI4LVxcdTEyQkVcXHUxMkMwXFx1MTJDMi1cXHUxMkM1XFx1MTJDOC1cXHUxMkQ2XFx1MTJEOC1cXHUxMzEwXFx1MTMxMi1cXHUxMzE1XFx1MTMxOC1cXHUxMzVBXFx1MTM1RC1cXHUxMzVGXFx1MTM4MC1cXHUxMzhGXFx1MTNBMC1cXHUxM0Y1XFx1MTNGOC1cXHUxM0ZEXFx1MTQwMS1cXHUxNjZDXFx1MTY2Ri1cXHUxNjdGXFx1MTY4MS1cXHUxNjlBXFx1MTZBMC1cXHUxNkVBXFx1MTZFRS1cXHUxNkY4XFx1MTcwMC1cXHUxNzBDXFx1MTcwRS1cXHUxNzE0XFx1MTcyMC1cXHUxNzM0XFx1MTc0MC1cXHUxNzUzXFx1MTc2MC1cXHUxNzZDXFx1MTc2RS1cXHUxNzcwXFx1MTc3MlxcdTE3NzNcXHUxNzgwLVxcdTE3RDNcXHUxN0Q3XFx1MTdEQ1xcdTE3RERcXHUxN0UwLVxcdTE3RTlcXHUxODBCLVxcdTE4MERcXHUxODEwLVxcdTE4MTlcXHUxODIwLVxcdTE4NzdcXHUxODgwLVxcdTE4QUFcXHUxOEIwLVxcdTE4RjVcXHUxOTAwLVxcdTE5MUVcXHUxOTIwLVxcdTE5MkJcXHUxOTMwLVxcdTE5M0JcXHUxOTQ2LVxcdTE5NkRcXHUxOTcwLVxcdTE5NzRcXHUxOTgwLVxcdTE5QUJcXHUxOUIwLVxcdTE5QzlcXHUxOUQwLVxcdTE5RDlcXHUxQTAwLVxcdTFBMUJcXHUxQTIwLVxcdTFBNUVcXHUxQTYwLVxcdTFBN0NcXHUxQTdGLVxcdTFBODlcXHUxQTkwLVxcdTFBOTlcXHUxQUE3XFx1MUFCMC1cXHUxQUJEXFx1MUIwMC1cXHUxQjRCXFx1MUI1MC1cXHUxQjU5XFx1MUI2Qi1cXHUxQjczXFx1MUI4MC1cXHUxQkYzXFx1MUMwMC1cXHUxQzM3XFx1MUM0MC1cXHUxQzQ5XFx1MUM0RC1cXHUxQzdEXFx1MUM4MC1cXHUxQzg4XFx1MUNEMC1cXHUxQ0QyXFx1MUNENC1cXHUxQ0Y5XFx1MUQwMC1cXHUxREY5XFx1MURGQi1cXHUxRjE1XFx1MUYxOC1cXHUxRjFEXFx1MUYyMC1cXHUxRjQ1XFx1MUY0OC1cXHUxRjREXFx1MUY1MC1cXHUxRjU3XFx1MUY1OVxcdTFGNUJcXHUxRjVEXFx1MUY1Ri1cXHUxRjdEXFx1MUY4MC1cXHUxRkI0XFx1MUZCNi1cXHUxRkJDXFx1MUZCRVxcdTFGQzItXFx1MUZDNFxcdTFGQzYtXFx1MUZDQ1xcdTFGRDAtXFx1MUZEM1xcdTFGRDYtXFx1MUZEQlxcdTFGRTAtXFx1MUZFQ1xcdTFGRjItXFx1MUZGNFxcdTFGRjYtXFx1MUZGQ1xcdTIwM0ZcXHUyMDQwXFx1MjA1NFxcdTIwNzFcXHUyMDdGXFx1MjA5MC1cXHUyMDlDXFx1MjBEMC1cXHUyMERDXFx1MjBFMVxcdTIwRTUtXFx1MjBGMFxcdTIxMDJcXHUyMTA3XFx1MjEwQS1cXHUyMTEzXFx1MjExNVxcdTIxMTktXFx1MjExRFxcdTIxMjRcXHUyMTI2XFx1MjEyOFxcdTIxMkEtXFx1MjEyRFxcdTIxMkYtXFx1MjEzOVxcdTIxM0MtXFx1MjEzRlxcdTIxNDUtXFx1MjE0OVxcdTIxNEVcXHUyMTYwLVxcdTIxODhcXHUyQzAwLVxcdTJDMkVcXHUyQzMwLVxcdTJDNUVcXHUyQzYwLVxcdTJDRTRcXHUyQ0VCLVxcdTJDRjNcXHUyRDAwLVxcdTJEMjVcXHUyRDI3XFx1MkQyRFxcdTJEMzAtXFx1MkQ2N1xcdTJENkZcXHUyRDdGLVxcdTJEOTZcXHUyREEwLVxcdTJEQTZcXHUyREE4LVxcdTJEQUVcXHUyREIwLVxcdTJEQjZcXHUyREI4LVxcdTJEQkVcXHUyREMwLVxcdTJEQzZcXHUyREM4LVxcdTJEQ0VcXHUyREQwLVxcdTJERDZcXHUyREQ4LVxcdTJEREVcXHUyREUwLVxcdTJERkZcXHUyRTJGXFx1MzAwNS1cXHUzMDA3XFx1MzAyMS1cXHUzMDJGXFx1MzAzMS1cXHUzMDM1XFx1MzAzOC1cXHUzMDNDXFx1MzA0MS1cXHUzMDk2XFx1MzA5OVxcdTMwOUFcXHUzMDlELVxcdTMwOUZcXHUzMEExLVxcdTMwRkFcXHUzMEZDLVxcdTMwRkZcXHUzMTA1LVxcdTMxMkVcXHUzMTMxLVxcdTMxOEVcXHUzMUEwLVxcdTMxQkFcXHUzMUYwLVxcdTMxRkZcXHUzNDAwLVxcdTREQjVcXHU0RTAwLVxcdTlGRUFcXHVBMDAwLVxcdUE0OENcXHVBNEQwLVxcdUE0RkRcXHVBNTAwLVxcdUE2MENcXHVBNjEwLVxcdUE2MkJcXHVBNjQwLVxcdUE2NkZcXHVBNjc0LVxcdUE2N0RcXHVBNjdGLVxcdUE2RjFcXHVBNzE3LVxcdUE3MUZcXHVBNzIyLVxcdUE3ODhcXHVBNzhCLVxcdUE3QUVcXHVBN0IwLVxcdUE3QjdcXHVBN0Y3LVxcdUE4MjdcXHVBODQwLVxcdUE4NzNcXHVBODgwLVxcdUE4QzVcXHVBOEQwLVxcdUE4RDlcXHVBOEUwLVxcdUE4RjdcXHVBOEZCXFx1QThGRFxcdUE5MDAtXFx1QTkyRFxcdUE5MzAtXFx1QTk1M1xcdUE5NjAtXFx1QTk3Q1xcdUE5ODAtXFx1QTlDMFxcdUE5Q0YtXFx1QTlEOVxcdUE5RTAtXFx1QTlGRVxcdUFBMDAtXFx1QUEzNlxcdUFBNDAtXFx1QUE0RFxcdUFBNTAtXFx1QUE1OVxcdUFBNjAtXFx1QUE3NlxcdUFBN0EtXFx1QUFDMlxcdUFBREItXFx1QUFERFxcdUFBRTAtXFx1QUFFRlxcdUFBRjItXFx1QUFGNlxcdUFCMDEtXFx1QUIwNlxcdUFCMDktXFx1QUIwRVxcdUFCMTEtXFx1QUIxNlxcdUFCMjAtXFx1QUIyNlxcdUFCMjgtXFx1QUIyRVxcdUFCMzAtXFx1QUI1QVxcdUFCNUMtXFx1QUI2NVxcdUFCNzAtXFx1QUJFQVxcdUFCRUNcXHVBQkVEXFx1QUJGMC1cXHVBQkY5XFx1QUMwMC1cXHVEN0EzXFx1RDdCMC1cXHVEN0M2XFx1RDdDQi1cXHVEN0ZCXFx1RjkwMC1cXHVGQTZEXFx1RkE3MC1cXHVGQUQ5XFx1RkIwMC1cXHVGQjA2XFx1RkIxMy1cXHVGQjE3XFx1RkIxRC1cXHVGQjI4XFx1RkIyQS1cXHVGQjM2XFx1RkIzOC1cXHVGQjNDXFx1RkIzRVxcdUZCNDBcXHVGQjQxXFx1RkI0M1xcdUZCNDRcXHVGQjQ2LVxcdUZCQjFcXHVGQkQzLVxcdUZEM0RcXHVGRDUwLVxcdUZEOEZcXHVGRDkyLVxcdUZEQzdcXHVGREYwLVxcdUZERkJcXHVGRTAwLVxcdUZFMEZcXHVGRTIwLVxcdUZFMkZcXHVGRTMzXFx1RkUzNFxcdUZFNEQtXFx1RkU0RlxcdUZFNzAtXFx1RkU3NFxcdUZFNzYtXFx1RkVGQ1xcdUZGMTAtXFx1RkYxOVxcdUZGMjEtXFx1RkYzQVxcdUZGM0ZcXHVGRjQxLVxcdUZGNUFcXHVGRjY2LVxcdUZGQkVcXHVGRkMyLVxcdUZGQzdcXHVGRkNBLVxcdUZGQ0ZcXHVGRkQyLVxcdUZGRDdcXHVGRkRBLVxcdUZGRENdfFxcdUQ4MDBbXFx1REMwMC1cXHVEQzBCXFx1REMwRC1cXHVEQzI2XFx1REMyOC1cXHVEQzNBXFx1REMzQ1xcdURDM0RcXHVEQzNGLVxcdURDNERcXHVEQzUwLVxcdURDNURcXHVEQzgwLVxcdURDRkFcXHVERDQwLVxcdURENzRcXHVEREZEXFx1REU4MC1cXHVERTlDXFx1REVBMC1cXHVERUQwXFx1REVFMFxcdURGMDAtXFx1REYxRlxcdURGMkQtXFx1REY0QVxcdURGNTAtXFx1REY3QVxcdURGODAtXFx1REY5RFxcdURGQTAtXFx1REZDM1xcdURGQzgtXFx1REZDRlxcdURGRDEtXFx1REZENV18XFx1RDgwMVtcXHVEQzAwLVxcdURDOURcXHVEQ0EwLVxcdURDQTlcXHVEQ0IwLVxcdURDRDNcXHVEQ0Q4LVxcdURDRkJcXHVERDAwLVxcdUREMjdcXHVERDMwLVxcdURENjNcXHVERTAwLVxcdURGMzZcXHVERjQwLVxcdURGNTVcXHVERjYwLVxcdURGNjddfFxcdUQ4MDJbXFx1REMwMC1cXHVEQzA1XFx1REMwOFxcdURDMEEtXFx1REMzNVxcdURDMzdcXHVEQzM4XFx1REMzQ1xcdURDM0YtXFx1REM1NVxcdURDNjAtXFx1REM3NlxcdURDODAtXFx1REM5RVxcdURDRTAtXFx1RENGMlxcdURDRjRcXHVEQ0Y1XFx1REQwMC1cXHVERDE1XFx1REQyMC1cXHVERDM5XFx1REQ4MC1cXHVEREI3XFx1RERCRVxcdUREQkZcXHVERTAwLVxcdURFMDNcXHVERTA1XFx1REUwNlxcdURFMEMtXFx1REUxM1xcdURFMTUtXFx1REUxN1xcdURFMTktXFx1REUzM1xcdURFMzgtXFx1REUzQVxcdURFM0ZcXHVERTYwLVxcdURFN0NcXHVERTgwLVxcdURFOUNcXHVERUMwLVxcdURFQzdcXHVERUM5LVxcdURFRTZcXHVERjAwLVxcdURGMzVcXHVERjQwLVxcdURGNTVcXHVERjYwLVxcdURGNzJcXHVERjgwLVxcdURGOTFdfFxcdUQ4MDNbXFx1REMwMC1cXHVEQzQ4XFx1REM4MC1cXHVEQ0IyXFx1RENDMC1cXHVEQ0YyXXxcXHVEODA0W1xcdURDMDAtXFx1REM0NlxcdURDNjYtXFx1REM2RlxcdURDN0YtXFx1RENCQVxcdURDRDAtXFx1RENFOFxcdURDRjAtXFx1RENGOVxcdUREMDAtXFx1REQzNFxcdUREMzYtXFx1REQzRlxcdURENTAtXFx1REQ3M1xcdURENzZcXHVERDgwLVxcdUREQzRcXHVERENBLVxcdUREQ0NcXHVEREQwLVxcdUREREFcXHVERERDXFx1REUwMC1cXHVERTExXFx1REUxMy1cXHVERTM3XFx1REUzRVxcdURFODAtXFx1REU4NlxcdURFODhcXHVERThBLVxcdURFOERcXHVERThGLVxcdURFOURcXHVERTlGLVxcdURFQThcXHVERUIwLVxcdURFRUFcXHVERUYwLVxcdURFRjlcXHVERjAwLVxcdURGMDNcXHVERjA1LVxcdURGMENcXHVERjBGXFx1REYxMFxcdURGMTMtXFx1REYyOFxcdURGMkEtXFx1REYzMFxcdURGMzJcXHVERjMzXFx1REYzNS1cXHVERjM5XFx1REYzQy1cXHVERjQ0XFx1REY0N1xcdURGNDhcXHVERjRCLVxcdURGNERcXHVERjUwXFx1REY1N1xcdURGNUQtXFx1REY2M1xcdURGNjYtXFx1REY2Q1xcdURGNzAtXFx1REY3NF18XFx1RDgwNVtcXHVEQzAwLVxcdURDNEFcXHVEQzUwLVxcdURDNTlcXHVEQzgwLVxcdURDQzVcXHVEQ0M3XFx1RENEMC1cXHVEQ0Q5XFx1REQ4MC1cXHVEREI1XFx1RERCOC1cXHVEREMwXFx1REREOC1cXHVEREREXFx1REUwMC1cXHVERTQwXFx1REU0NFxcdURFNTAtXFx1REU1OVxcdURFODAtXFx1REVCN1xcdURFQzAtXFx1REVDOVxcdURGMDAtXFx1REYxOVxcdURGMUQtXFx1REYyQlxcdURGMzAtXFx1REYzOV18XFx1RDgwNltcXHVEQ0EwLVxcdURDRTlcXHVEQ0ZGXFx1REUwMC1cXHVERTNFXFx1REU0N1xcdURFNTAtXFx1REU4M1xcdURFODYtXFx1REU5OVxcdURFQzAtXFx1REVGOF18XFx1RDgwN1tcXHVEQzAwLVxcdURDMDhcXHVEQzBBLVxcdURDMzZcXHVEQzM4LVxcdURDNDBcXHVEQzUwLVxcdURDNTlcXHVEQzcyLVxcdURDOEZcXHVEQzkyLVxcdURDQTdcXHVEQ0E5LVxcdURDQjZcXHVERDAwLVxcdUREMDZcXHVERDA4XFx1REQwOVxcdUREMEItXFx1REQzNlxcdUREM0FcXHVERDNDXFx1REQzRFxcdUREM0YtXFx1REQ0N1xcdURENTAtXFx1REQ1OV18XFx1RDgwOFtcXHVEQzAwLVxcdURGOTldfFxcdUQ4MDlbXFx1REMwMC1cXHVEQzZFXFx1REM4MC1cXHVERDQzXXxbXFx1RDgwQ1xcdUQ4MUMtXFx1RDgyMFxcdUQ4NDAtXFx1RDg2OFxcdUQ4NkEtXFx1RDg2Q1xcdUQ4NkYtXFx1RDg3MlxcdUQ4NzQtXFx1RDg3OV1bXFx1REMwMC1cXHVERkZGXXxcXHVEODBEW1xcdURDMDAtXFx1REMyRV18XFx1RDgxMVtcXHVEQzAwLVxcdURFNDZdfFxcdUQ4MUFbXFx1REMwMC1cXHVERTM4XFx1REU0MC1cXHVERTVFXFx1REU2MC1cXHVERTY5XFx1REVEMC1cXHVERUVEXFx1REVGMC1cXHVERUY0XFx1REYwMC1cXHVERjM2XFx1REY0MC1cXHVERjQzXFx1REY1MC1cXHVERjU5XFx1REY2My1cXHVERjc3XFx1REY3RC1cXHVERjhGXXxcXHVEODFCW1xcdURGMDAtXFx1REY0NFxcdURGNTAtXFx1REY3RVxcdURGOEYtXFx1REY5RlxcdURGRTBcXHVERkUxXXxcXHVEODIxW1xcdURDMDAtXFx1REZFQ118XFx1RDgyMltcXHVEQzAwLVxcdURFRjJdfFxcdUQ4MkNbXFx1REMwMC1cXHVERDFFXFx1REQ3MC1cXHVERUZCXXxcXHVEODJGW1xcdURDMDAtXFx1REM2QVxcdURDNzAtXFx1REM3Q1xcdURDODAtXFx1REM4OFxcdURDOTAtXFx1REM5OVxcdURDOURcXHVEQzlFXXxcXHVEODM0W1xcdURENjUtXFx1REQ2OVxcdURENkQtXFx1REQ3MlxcdUREN0ItXFx1REQ4MlxcdUREODUtXFx1REQ4QlxcdUREQUEtXFx1RERBRFxcdURFNDItXFx1REU0NF18XFx1RDgzNVtcXHVEQzAwLVxcdURDNTRcXHVEQzU2LVxcdURDOUNcXHVEQzlFXFx1REM5RlxcdURDQTJcXHVEQ0E1XFx1RENBNlxcdURDQTktXFx1RENBQ1xcdURDQUUtXFx1RENCOVxcdURDQkJcXHVEQ0JELVxcdURDQzNcXHVEQ0M1LVxcdUREMDVcXHVERDA3LVxcdUREMEFcXHVERDBELVxcdUREMTRcXHVERDE2LVxcdUREMUNcXHVERDFFLVxcdUREMzlcXHVERDNCLVxcdUREM0VcXHVERDQwLVxcdURENDRcXHVERDQ2XFx1REQ0QS1cXHVERDUwXFx1REQ1Mi1cXHVERUE1XFx1REVBOC1cXHVERUMwXFx1REVDMi1cXHVERURBXFx1REVEQy1cXHVERUZBXFx1REVGQy1cXHVERjE0XFx1REYxNi1cXHVERjM0XFx1REYzNi1cXHVERjRFXFx1REY1MC1cXHVERjZFXFx1REY3MC1cXHVERjg4XFx1REY4QS1cXHVERkE4XFx1REZBQS1cXHVERkMyXFx1REZDNC1cXHVERkNCXFx1REZDRS1cXHVERkZGXXxcXHVEODM2W1xcdURFMDAtXFx1REUzNlxcdURFM0ItXFx1REU2Q1xcdURFNzVcXHVERTg0XFx1REU5Qi1cXHVERTlGXFx1REVBMS1cXHVERUFGXXxcXHVEODM4W1xcdURDMDAtXFx1REMwNlxcdURDMDgtXFx1REMxOFxcdURDMUItXFx1REMyMVxcdURDMjNcXHVEQzI0XFx1REMyNi1cXHVEQzJBXXxcXHVEODNBW1xcdURDMDAtXFx1RENDNFxcdURDRDAtXFx1RENENlxcdUREMDAtXFx1REQ0QVxcdURENTAtXFx1REQ1OV18XFx1RDgzQltcXHVERTAwLVxcdURFMDNcXHVERTA1LVxcdURFMUZcXHVERTIxXFx1REUyMlxcdURFMjRcXHVERTI3XFx1REUyOS1cXHVERTMyXFx1REUzNC1cXHVERTM3XFx1REUzOVxcdURFM0JcXHVERTQyXFx1REU0N1xcdURFNDlcXHVERTRCXFx1REU0RC1cXHVERTRGXFx1REU1MVxcdURFNTJcXHVERTU0XFx1REU1N1xcdURFNTlcXHVERTVCXFx1REU1RFxcdURFNUZcXHVERTYxXFx1REU2MlxcdURFNjRcXHVERTY3LVxcdURFNkFcXHVERTZDLVxcdURFNzJcXHVERTc0LVxcdURFNzdcXHVERTc5LVxcdURFN0NcXHVERTdFXFx1REU4MC1cXHVERTg5XFx1REU4Qi1cXHVERTlCXFx1REVBMS1cXHVERUEzXFx1REVBNS1cXHVERUE5XFx1REVBQi1cXHVERUJCXXxcXHVEODY5W1xcdURDMDAtXFx1REVENlxcdURGMDAtXFx1REZGRl18XFx1RDg2RFtcXHVEQzAwLVxcdURGMzRcXHVERjQwLVxcdURGRkZdfFxcdUQ4NkVbXFx1REMwMC1cXHVEQzFEXFx1REMyMC1cXHVERkZGXXxcXHVEODczW1xcdURDMDAtXFx1REVBMVxcdURFQjAtXFx1REZGRl18XFx1RDg3QVtcXHVEQzAwLVxcdURGRTBdfFxcdUQ4N0VbXFx1REMwMC1cXHVERTFEXXxcXHVEQjQwW1xcdUREMDAtXFx1RERFRl0vO1xuXG5cdHZhciB1bmljb2RlID0ge1xuXHRcdFNwYWNlX1NlcGFyYXRvcjogU3BhY2VfU2VwYXJhdG9yLFxuXHRcdElEX1N0YXJ0OiBJRF9TdGFydCxcblx0XHRJRF9Db250aW51ZTogSURfQ29udGludWVcblx0fTtcblxuXHR2YXIgdXRpbCA9IHtcblx0ICAgIGlzU3BhY2VTZXBhcmF0b3I6IGZ1bmN0aW9uIGlzU3BhY2VTZXBhcmF0b3IgKGMpIHtcblx0ICAgICAgICByZXR1cm4gdHlwZW9mIGMgPT09ICdzdHJpbmcnICYmIHVuaWNvZGUuU3BhY2VfU2VwYXJhdG9yLnRlc3QoYylcblx0ICAgIH0sXG5cblx0ICAgIGlzSWRTdGFydENoYXI6IGZ1bmN0aW9uIGlzSWRTdGFydENoYXIgKGMpIHtcblx0ICAgICAgICByZXR1cm4gdHlwZW9mIGMgPT09ICdzdHJpbmcnICYmIChcblx0ICAgICAgICAgICAgKGMgPj0gJ2EnICYmIGMgPD0gJ3onKSB8fFxuXHQgICAgICAgIChjID49ICdBJyAmJiBjIDw9ICdaJykgfHxcblx0ICAgICAgICAoYyA9PT0gJyQnKSB8fCAoYyA9PT0gJ18nKSB8fFxuXHQgICAgICAgIHVuaWNvZGUuSURfU3RhcnQudGVzdChjKVxuXHQgICAgICAgIClcblx0ICAgIH0sXG5cblx0ICAgIGlzSWRDb250aW51ZUNoYXI6IGZ1bmN0aW9uIGlzSWRDb250aW51ZUNoYXIgKGMpIHtcblx0ICAgICAgICByZXR1cm4gdHlwZW9mIGMgPT09ICdzdHJpbmcnICYmIChcblx0ICAgICAgICAgICAgKGMgPj0gJ2EnICYmIGMgPD0gJ3onKSB8fFxuXHQgICAgICAgIChjID49ICdBJyAmJiBjIDw9ICdaJykgfHxcblx0ICAgICAgICAoYyA+PSAnMCcgJiYgYyA8PSAnOScpIHx8XG5cdCAgICAgICAgKGMgPT09ICckJykgfHwgKGMgPT09ICdfJykgfHxcblx0ICAgICAgICAoYyA9PT0gJ1xcdTIwMEMnKSB8fCAoYyA9PT0gJ1xcdTIwMEQnKSB8fFxuXHQgICAgICAgIHVuaWNvZGUuSURfQ29udGludWUudGVzdChjKVxuXHQgICAgICAgIClcblx0ICAgIH0sXG5cblx0ICAgIGlzRGlnaXQ6IGZ1bmN0aW9uIGlzRGlnaXQgKGMpIHtcblx0ICAgICAgICByZXR1cm4gdHlwZW9mIGMgPT09ICdzdHJpbmcnICYmIC9bMC05XS8udGVzdChjKVxuXHQgICAgfSxcblxuXHQgICAgaXNIZXhEaWdpdDogZnVuY3Rpb24gaXNIZXhEaWdpdCAoYykge1xuXHQgICAgICAgIHJldHVybiB0eXBlb2YgYyA9PT0gJ3N0cmluZycgJiYgL1swLTlBLUZhLWZdLy50ZXN0KGMpXG5cdCAgICB9LFxuXHR9O1xuXG5cdHZhciBzb3VyY2U7XG5cdHZhciBwYXJzZVN0YXRlO1xuXHR2YXIgc3RhY2s7XG5cdHZhciBwb3M7XG5cdHZhciBsaW5lO1xuXHR2YXIgY29sdW1uO1xuXHR2YXIgdG9rZW47XG5cdHZhciBrZXk7XG5cdHZhciByb290O1xuXG5cdHZhciBwYXJzZSA9IGZ1bmN0aW9uIHBhcnNlICh0ZXh0LCByZXZpdmVyKSB7XG5cdCAgICBzb3VyY2UgPSBTdHJpbmcodGV4dCk7XG5cdCAgICBwYXJzZVN0YXRlID0gJ3N0YXJ0Jztcblx0ICAgIHN0YWNrID0gW107XG5cdCAgICBwb3MgPSAwO1xuXHQgICAgbGluZSA9IDE7XG5cdCAgICBjb2x1bW4gPSAwO1xuXHQgICAgdG9rZW4gPSB1bmRlZmluZWQ7XG5cdCAgICBrZXkgPSB1bmRlZmluZWQ7XG5cdCAgICByb290ID0gdW5kZWZpbmVkO1xuXG5cdCAgICBkbyB7XG5cdCAgICAgICAgdG9rZW4gPSBsZXgoKTtcblxuXHQgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZS5cblx0ICAgICAgICAvLyBpZiAoIXBhcnNlU3RhdGVzW3BhcnNlU3RhdGVdKSB7XG5cdCAgICAgICAgLy8gICAgIHRocm93IGludmFsaWRQYXJzZVN0YXRlKClcblx0ICAgICAgICAvLyB9XG5cblx0ICAgICAgICBwYXJzZVN0YXRlc1twYXJzZVN0YXRlXSgpO1xuXHQgICAgfSB3aGlsZSAodG9rZW4udHlwZSAhPT0gJ2VvZicpXG5cblx0ICAgIGlmICh0eXBlb2YgcmV2aXZlciA9PT0gJ2Z1bmN0aW9uJykge1xuXHQgICAgICAgIHJldHVybiBpbnRlcm5hbGl6ZSh7Jyc6IHJvb3R9LCAnJywgcmV2aXZlcilcblx0ICAgIH1cblxuXHQgICAgcmV0dXJuIHJvb3Rcblx0fTtcblxuXHRmdW5jdGlvbiBpbnRlcm5hbGl6ZSAoaG9sZGVyLCBuYW1lLCByZXZpdmVyKSB7XG5cdCAgICB2YXIgdmFsdWUgPSBob2xkZXJbbmFtZV07XG5cdCAgICBpZiAodmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG5cdCAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG5cdCAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcblx0ICAgICAgICAgICAgICAgIHZhciBrZXkgPSBTdHJpbmcoaSk7XG5cdCAgICAgICAgICAgICAgICB2YXIgcmVwbGFjZW1lbnQgPSBpbnRlcm5hbGl6ZSh2YWx1ZSwga2V5LCByZXZpdmVyKTtcblx0ICAgICAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9PT0gdW5kZWZpbmVkKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHZhbHVlW2tleV07XG5cdCAgICAgICAgICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2YWx1ZSwga2V5LCB7XG5cdCAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiByZXBsYWNlbWVudCxcblx0ICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG5cdCAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG5cdCAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcblx0ICAgICAgICAgICAgICAgICAgICB9KTtcblx0ICAgICAgICAgICAgICAgIH1cblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgIGZvciAodmFyIGtleSQxIGluIHZhbHVlKSB7XG5cdCAgICAgICAgICAgICAgICB2YXIgcmVwbGFjZW1lbnQkMSA9IGludGVybmFsaXplKHZhbHVlLCBrZXkkMSwgcmV2aXZlcik7XG5cdCAgICAgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQkMSA9PT0gdW5kZWZpbmVkKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHZhbHVlW2tleSQxXTtcblx0ICAgICAgICAgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHZhbHVlLCBrZXkkMSwge1xuXHQgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcmVwbGFjZW1lbnQkMSxcblx0ICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG5cdCAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG5cdCAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcblx0ICAgICAgICAgICAgICAgICAgICB9KTtcblx0ICAgICAgICAgICAgICAgIH1cblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH1cblx0ICAgIH1cblxuXHQgICAgcmV0dXJuIHJldml2ZXIuY2FsbChob2xkZXIsIG5hbWUsIHZhbHVlKVxuXHR9XG5cblx0dmFyIGxleFN0YXRlO1xuXHR2YXIgYnVmZmVyO1xuXHR2YXIgZG91YmxlUXVvdGU7XG5cdHZhciBzaWduO1xuXHR2YXIgYztcblxuXHRmdW5jdGlvbiBsZXggKCkge1xuXHQgICAgbGV4U3RhdGUgPSAnZGVmYXVsdCc7XG5cdCAgICBidWZmZXIgPSAnJztcblx0ICAgIGRvdWJsZVF1b3RlID0gZmFsc2U7XG5cdCAgICBzaWduID0gMTtcblxuXHQgICAgZm9yICg7Oykge1xuXHQgICAgICAgIGMgPSBwZWVrKCk7XG5cblx0ICAgICAgICAvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUuXG5cdCAgICAgICAgLy8gaWYgKCFsZXhTdGF0ZXNbbGV4U3RhdGVdKSB7XG5cdCAgICAgICAgLy8gICAgIHRocm93IGludmFsaWRMZXhTdGF0ZShsZXhTdGF0ZSlcblx0ICAgICAgICAvLyB9XG5cblx0ICAgICAgICB2YXIgdG9rZW4gPSBsZXhTdGF0ZXNbbGV4U3RhdGVdKCk7XG5cdCAgICAgICAgaWYgKHRva2VuKSB7XG5cdCAgICAgICAgICAgIHJldHVybiB0b2tlblxuXHQgICAgICAgIH1cblx0ICAgIH1cblx0fVxuXG5cdGZ1bmN0aW9uIHBlZWsgKCkge1xuXHQgICAgaWYgKHNvdXJjZVtwb3NdKSB7XG5cdCAgICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ29kZVBvaW50KHNvdXJjZS5jb2RlUG9pbnRBdChwb3MpKVxuXHQgICAgfVxuXHR9XG5cblx0ZnVuY3Rpb24gcmVhZCAoKSB7XG5cdCAgICB2YXIgYyA9IHBlZWsoKTtcblxuXHQgICAgaWYgKGMgPT09ICdcXG4nKSB7XG5cdCAgICAgICAgbGluZSsrO1xuXHQgICAgICAgIGNvbHVtbiA9IDA7XG5cdCAgICB9IGVsc2UgaWYgKGMpIHtcblx0ICAgICAgICBjb2x1bW4gKz0gYy5sZW5ndGg7XG5cdCAgICB9IGVsc2Uge1xuXHQgICAgICAgIGNvbHVtbisrO1xuXHQgICAgfVxuXG5cdCAgICBpZiAoYykge1xuXHQgICAgICAgIHBvcyArPSBjLmxlbmd0aDtcblx0ICAgIH1cblxuXHQgICAgcmV0dXJuIGNcblx0fVxuXG5cdHZhciBsZXhTdGF0ZXMgPSB7XG5cdCAgICBkZWZhdWx0OiBmdW5jdGlvbiBkZWZhdWx0JDEgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJ1xcdCc6XG5cdCAgICAgICAgY2FzZSAnXFx2Jzpcblx0ICAgICAgICBjYXNlICdcXGYnOlxuXHQgICAgICAgIGNhc2UgJyAnOlxuXHQgICAgICAgIGNhc2UgJ1xcdTAwQTAnOlxuXHQgICAgICAgIGNhc2UgJ1xcdUZFRkYnOlxuXHQgICAgICAgIGNhc2UgJ1xcbic6XG5cdCAgICAgICAgY2FzZSAnXFxyJzpcblx0ICAgICAgICBjYXNlICdcXHUyMDI4Jzpcblx0ICAgICAgICBjYXNlICdcXHUyMDI5Jzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJy8nOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2NvbW1lbnQnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgdW5kZWZpbmVkOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbignZW9mJylcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAodXRpbC5pc1NwYWNlU2VwYXJhdG9yKGMpKSB7XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlLlxuXHQgICAgICAgIC8vIGlmICghbGV4U3RhdGVzW3BhcnNlU3RhdGVdKSB7XG5cdCAgICAgICAgLy8gICAgIHRocm93IGludmFsaWRMZXhTdGF0ZShwYXJzZVN0YXRlKVxuXHQgICAgICAgIC8vIH1cblxuXHQgICAgICAgIHJldHVybiBsZXhTdGF0ZXNbcGFyc2VTdGF0ZV0oKVxuXHQgICAgfSxcblxuXHQgICAgY29tbWVudDogZnVuY3Rpb24gY29tbWVudCAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnKic6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnbXVsdGlMaW5lQ29tbWVudCc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnLyc6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnc2luZ2xlTGluZUNvbW1lbnQnO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXG5cdCAgICBtdWx0aUxpbmVDb21tZW50OiBmdW5jdGlvbiBtdWx0aUxpbmVDb21tZW50ICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICcqJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdtdWx0aUxpbmVDb21tZW50QXN0ZXJpc2snO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgdW5kZWZpbmVkOlxuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgfSxcblxuXHQgICAgbXVsdGlMaW5lQ29tbWVudEFzdGVyaXNrOiBmdW5jdGlvbiBtdWx0aUxpbmVDb21tZW50QXN0ZXJpc2sgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJyonOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnLyc6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVmYXVsdCc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgbGV4U3RhdGUgPSAnbXVsdGlMaW5lQ29tbWVudCc7XG5cdCAgICB9LFxuXG5cdCAgICBzaW5nbGVMaW5lQ29tbWVudDogZnVuY3Rpb24gc2luZ2xlTGluZUNvbW1lbnQgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJ1xcbic6XG5cdCAgICAgICAgY2FzZSAnXFxyJzpcblx0ICAgICAgICBjYXNlICdcXHUyMDI4Jzpcblx0ICAgICAgICBjYXNlICdcXHUyMDI5Jzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWZhdWx0Jztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlIHVuZGVmaW5lZDpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ2VvZicpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgfSxcblxuXHQgICAgdmFsdWU6IGZ1bmN0aW9uIHZhbHVlICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICd7Jzpcblx0ICAgICAgICBjYXNlICdbJzpcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdwdW5jdHVhdG9yJywgcmVhZCgpKVxuXG5cdCAgICAgICAgY2FzZSAnbic6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGl0ZXJhbCgndWxsJyk7XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbignbnVsbCcsIG51bGwpXG5cblx0ICAgICAgICBjYXNlICd0Jzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsaXRlcmFsKCdydWUnKTtcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdib29sZWFuJywgdHJ1ZSlcblxuXHQgICAgICAgIGNhc2UgJ2YnOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxpdGVyYWwoJ2Fsc2UnKTtcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdib29sZWFuJywgZmFsc2UpXG5cblx0ICAgICAgICBjYXNlICctJzpcblx0ICAgICAgICBjYXNlICcrJzpcblx0ICAgICAgICAgICAgaWYgKHJlYWQoKSA9PT0gJy0nKSB7XG5cdCAgICAgICAgICAgICAgICBzaWduID0gLTE7XG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdzaWduJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICcuJzpcblx0ICAgICAgICAgICAgYnVmZmVyID0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsUG9pbnRMZWFkaW5nJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICcwJzpcblx0ICAgICAgICAgICAgYnVmZmVyID0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICd6ZXJvJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICcxJzpcblx0ICAgICAgICBjYXNlICcyJzpcblx0ICAgICAgICBjYXNlICczJzpcblx0ICAgICAgICBjYXNlICc0Jzpcblx0ICAgICAgICBjYXNlICc1Jzpcblx0ICAgICAgICBjYXNlICc2Jzpcblx0ICAgICAgICBjYXNlICc3Jzpcblx0ICAgICAgICBjYXNlICc4Jzpcblx0ICAgICAgICBjYXNlICc5Jzpcblx0ICAgICAgICAgICAgYnVmZmVyID0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsSW50ZWdlcic7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnSSc6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGl0ZXJhbCgnbmZpbml0eScpO1xuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ251bWVyaWMnLCBJbmZpbml0eSlcblxuXHQgICAgICAgIGNhc2UgJ04nOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxpdGVyYWwoJ2FOJyk7XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbignbnVtZXJpYycsIE5hTilcblxuXHQgICAgICAgIGNhc2UgJ1wiJzpcblx0ICAgICAgICBjYXNlIFwiJ1wiOlxuXHQgICAgICAgICAgICBkb3VibGVRdW90ZSA9IChyZWFkKCkgPT09ICdcIicpO1xuXHQgICAgICAgICAgICBidWZmZXIgPSAnJztcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnc3RyaW5nJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfSxcblxuXHQgICAgaWRlbnRpZmllck5hbWVTdGFydEVzY2FwZTogZnVuY3Rpb24gaWRlbnRpZmllck5hbWVTdGFydEVzY2FwZSAoKSB7XG5cdCAgICAgICAgaWYgKGMgIT09ICd1Jykge1xuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIHZhciB1ID0gdW5pY29kZUVzY2FwZSgpO1xuXHQgICAgICAgIHN3aXRjaCAodSkge1xuXHQgICAgICAgIGNhc2UgJyQnOlxuXHQgICAgICAgIGNhc2UgJ18nOlxuXHQgICAgICAgICAgICBicmVha1xuXG5cdCAgICAgICAgZGVmYXVsdDpcblx0ICAgICAgICAgICAgaWYgKCF1dGlsLmlzSWRTdGFydENoYXIodSkpIHtcblx0ICAgICAgICAgICAgICAgIHRocm93IGludmFsaWRJZGVudGlmaWVyKClcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIGJyZWFrXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgYnVmZmVyICs9IHU7XG5cdCAgICAgICAgbGV4U3RhdGUgPSAnaWRlbnRpZmllck5hbWUnO1xuXHQgICAgfSxcblxuXHQgICAgaWRlbnRpZmllck5hbWU6IGZ1bmN0aW9uIGlkZW50aWZpZXJOYW1lICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICckJzpcblx0ICAgICAgICBjYXNlICdfJzpcblx0ICAgICAgICBjYXNlICdcXHUyMDBDJzpcblx0ICAgICAgICBjYXNlICdcXHUyMDBEJzpcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICdcXFxcJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdpZGVudGlmaWVyTmFtZUVzY2FwZSc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh1dGlsLmlzSWRDb250aW51ZUNoYXIoYykpIHtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdpZGVudGlmaWVyJywgYnVmZmVyKVxuXHQgICAgfSxcblxuXHQgICAgaWRlbnRpZmllck5hbWVFc2NhcGU6IGZ1bmN0aW9uIGlkZW50aWZpZXJOYW1lRXNjYXBlICgpIHtcblx0ICAgICAgICBpZiAoYyAhPT0gJ3UnKSB7XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgdmFyIHUgPSB1bmljb2RlRXNjYXBlKCk7XG5cdCAgICAgICAgc3dpdGNoICh1KSB7XG5cdCAgICAgICAgY2FzZSAnJCc6XG5cdCAgICAgICAgY2FzZSAnXyc6XG5cdCAgICAgICAgY2FzZSAnXFx1MjAwQyc6XG5cdCAgICAgICAgY2FzZSAnXFx1MjAwRCc6XG5cdCAgICAgICAgICAgIGJyZWFrXG5cblx0ICAgICAgICBkZWZhdWx0OlxuXHQgICAgICAgICAgICBpZiAoIXV0aWwuaXNJZENvbnRpbnVlQ2hhcih1KSkge1xuXHQgICAgICAgICAgICAgICAgdGhyb3cgaW52YWxpZElkZW50aWZpZXIoKVxuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgYnJlYWtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBidWZmZXIgKz0gdTtcblx0ICAgICAgICBsZXhTdGF0ZSA9ICdpZGVudGlmaWVyTmFtZSc7XG5cdCAgICB9LFxuXG5cdCAgICBzaWduOiBmdW5jdGlvbiBzaWduJDEgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJy4nOlxuXHQgICAgICAgICAgICBidWZmZXIgPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxQb2ludExlYWRpbmcnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJzAnOlxuXHQgICAgICAgICAgICBidWZmZXIgPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ3plcm8nO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJzEnOlxuXHQgICAgICAgIGNhc2UgJzInOlxuXHQgICAgICAgIGNhc2UgJzMnOlxuXHQgICAgICAgIGNhc2UgJzQnOlxuXHQgICAgICAgIGNhc2UgJzUnOlxuXHQgICAgICAgIGNhc2UgJzYnOlxuXHQgICAgICAgIGNhc2UgJzcnOlxuXHQgICAgICAgIGNhc2UgJzgnOlxuXHQgICAgICAgIGNhc2UgJzknOlxuXHQgICAgICAgICAgICBidWZmZXIgPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxJbnRlZ2VyJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICdJJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsaXRlcmFsKCduZmluaXR5Jyk7XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbignbnVtZXJpYycsIHNpZ24gKiBJbmZpbml0eSlcblxuXHQgICAgICAgIGNhc2UgJ04nOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxpdGVyYWwoJ2FOJyk7XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbignbnVtZXJpYycsIE5hTilcblx0ICAgICAgICB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXG5cdCAgICB6ZXJvOiBmdW5jdGlvbiB6ZXJvICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICcuJzpcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbFBvaW50Jztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICdlJzpcblx0ICAgICAgICBjYXNlICdFJzpcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbEV4cG9uZW50Jztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICd4Jzpcblx0ICAgICAgICBjYXNlICdYJzpcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnaGV4YWRlY2ltYWwnO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ251bWVyaWMnLCBzaWduICogMClcblx0ICAgIH0sXG5cblx0ICAgIGRlY2ltYWxJbnRlZ2VyOiBmdW5jdGlvbiBkZWNpbWFsSW50ZWdlciAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnLic6XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxQb2ludCc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnZSc6XG5cdCAgICAgICAgY2FzZSAnRSc6XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxFeHBvbmVudCc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh1dGlsLmlzRGlnaXQoYykpIHtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdudW1lcmljJywgc2lnbiAqIE51bWJlcihidWZmZXIpKVxuXHQgICAgfSxcblxuXHQgICAgZGVjaW1hbFBvaW50TGVhZGluZzogZnVuY3Rpb24gZGVjaW1hbFBvaW50TGVhZGluZyAoKSB7XG5cdCAgICAgICAgaWYgKHV0aWwuaXNEaWdpdChjKSkge1xuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsRnJhY3Rpb24nO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXG5cdCAgICBkZWNpbWFsUG9pbnQ6IGZ1bmN0aW9uIGRlY2ltYWxQb2ludCAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnZSc6XG5cdCAgICAgICAgY2FzZSAnRSc6XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxFeHBvbmVudCc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh1dGlsLmlzRGlnaXQoYykpIHtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbEZyYWN0aW9uJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdudW1lcmljJywgc2lnbiAqIE51bWJlcihidWZmZXIpKVxuXHQgICAgfSxcblxuXHQgICAgZGVjaW1hbEZyYWN0aW9uOiBmdW5jdGlvbiBkZWNpbWFsRnJhY3Rpb24gKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJ2UnOlxuXHQgICAgICAgIGNhc2UgJ0UnOlxuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsRXhwb25lbnQnO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAodXRpbC5pc0RpZ2l0KGMpKSB7XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiBuZXdUb2tlbignbnVtZXJpYycsIHNpZ24gKiBOdW1iZXIoYnVmZmVyKSlcblx0ICAgIH0sXG5cblx0ICAgIGRlY2ltYWxFeHBvbmVudDogZnVuY3Rpb24gZGVjaW1hbEV4cG9uZW50ICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICcrJzpcblx0ICAgICAgICBjYXNlICctJzpcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbEV4cG9uZW50U2lnbic7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh1dGlsLmlzRGlnaXQoYykpIHtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbEV4cG9uZW50SW50ZWdlcic7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH0sXG5cblx0ICAgIGRlY2ltYWxFeHBvbmVudFNpZ246IGZ1bmN0aW9uIGRlY2ltYWxFeHBvbmVudFNpZ24gKCkge1xuXHQgICAgICAgIGlmICh1dGlsLmlzRGlnaXQoYykpIHtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbEV4cG9uZW50SW50ZWdlcic7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH0sXG5cblx0ICAgIGRlY2ltYWxFeHBvbmVudEludGVnZXI6IGZ1bmN0aW9uIGRlY2ltYWxFeHBvbmVudEludGVnZXIgKCkge1xuXHQgICAgICAgIGlmICh1dGlsLmlzRGlnaXQoYykpIHtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdudW1lcmljJywgc2lnbiAqIE51bWJlcihidWZmZXIpKVxuXHQgICAgfSxcblxuXHQgICAgaGV4YWRlY2ltYWw6IGZ1bmN0aW9uIGhleGFkZWNpbWFsICgpIHtcblx0ICAgICAgICBpZiAodXRpbC5pc0hleERpZ2l0KGMpKSB7XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2hleGFkZWNpbWFsSW50ZWdlcic7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH0sXG5cblx0ICAgIGhleGFkZWNpbWFsSW50ZWdlcjogZnVuY3Rpb24gaGV4YWRlY2ltYWxJbnRlZ2VyICgpIHtcblx0ICAgICAgICBpZiAodXRpbC5pc0hleERpZ2l0KGMpKSB7XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiBuZXdUb2tlbignbnVtZXJpYycsIHNpZ24gKiBOdW1iZXIoYnVmZmVyKSlcblx0ICAgIH0sXG5cblx0ICAgIHN0cmluZzogZnVuY3Rpb24gc3RyaW5nICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICdcXFxcJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBidWZmZXIgKz0gZXNjYXBlKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnXCInOlxuXHQgICAgICAgICAgICBpZiAoZG91YmxlUXVvdGUpIHtcblx0ICAgICAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbignc3RyaW5nJywgYnVmZmVyKVxuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlIFwiJ1wiOlxuXHQgICAgICAgICAgICBpZiAoIWRvdWJsZVF1b3RlKSB7XG5cdCAgICAgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ3N0cmluZycsIGJ1ZmZlcilcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnXFxuJzpcblx0ICAgICAgICBjYXNlICdcXHInOlxuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cblx0ICAgICAgICBjYXNlICdcXHUyMDI4Jzpcblx0ICAgICAgICBjYXNlICdcXHUyMDI5Jzpcblx0ICAgICAgICAgICAgc2VwYXJhdG9yQ2hhcihjKTtcblx0ICAgICAgICAgICAgYnJlYWtcblxuXHQgICAgICAgIGNhc2UgdW5kZWZpbmVkOlxuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgIH0sXG5cblx0ICAgIHN0YXJ0OiBmdW5jdGlvbiBzdGFydCAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAneyc6XG5cdCAgICAgICAgY2FzZSAnWyc6XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbigncHVuY3R1YXRvcicsIHJlYWQoKSlcblxuXHQgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSBzaW5jZSB0aGUgZGVmYXVsdCBsZXhTdGF0ZSBoYW5kbGVzIGVvZi5cblx0ICAgICAgICAvLyBjYXNlIHVuZGVmaW5lZDpcblx0ICAgICAgICAvLyAgICAgcmV0dXJuIG5ld1Rva2VuKCdlb2YnKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGxleFN0YXRlID0gJ3ZhbHVlJztcblx0ICAgIH0sXG5cblx0ICAgIGJlZm9yZVByb3BlcnR5TmFtZTogZnVuY3Rpb24gYmVmb3JlUHJvcGVydHlOYW1lICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICckJzpcblx0ICAgICAgICBjYXNlICdfJzpcblx0ICAgICAgICAgICAgYnVmZmVyID0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdpZGVudGlmaWVyTmFtZSc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnXFxcXCc6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnaWRlbnRpZmllck5hbWVTdGFydEVzY2FwZSc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnfSc6XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbigncHVuY3R1YXRvcicsIHJlYWQoKSlcblxuXHQgICAgICAgIGNhc2UgJ1wiJzpcblx0ICAgICAgICBjYXNlIFwiJ1wiOlxuXHQgICAgICAgICAgICBkb3VibGVRdW90ZSA9IChyZWFkKCkgPT09ICdcIicpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdzdHJpbmcnO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAodXRpbC5pc0lkU3RhcnRDaGFyKGMpKSB7XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2lkZW50aWZpZXJOYW1lJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfSxcblxuXHQgICAgYWZ0ZXJQcm9wZXJ0eU5hbWU6IGZ1bmN0aW9uIGFmdGVyUHJvcGVydHlOYW1lICgpIHtcblx0ICAgICAgICBpZiAoYyA9PT0gJzonKSB7XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbigncHVuY3R1YXRvcicsIHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXG5cdCAgICBiZWZvcmVQcm9wZXJ0eVZhbHVlOiBmdW5jdGlvbiBiZWZvcmVQcm9wZXJ0eVZhbHVlICgpIHtcblx0ICAgICAgICBsZXhTdGF0ZSA9ICd2YWx1ZSc7XG5cdCAgICB9LFxuXG5cdCAgICBhZnRlclByb3BlcnR5VmFsdWU6IGZ1bmN0aW9uIGFmdGVyUHJvcGVydHlWYWx1ZSAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnLCc6XG5cdCAgICAgICAgY2FzZSAnfSc6XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbigncHVuY3R1YXRvcicsIHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXG5cdCAgICBiZWZvcmVBcnJheVZhbHVlOiBmdW5jdGlvbiBiZWZvcmVBcnJheVZhbHVlICgpIHtcblx0ICAgICAgICBpZiAoYyA9PT0gJ10nKSB7XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbigncHVuY3R1YXRvcicsIHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBsZXhTdGF0ZSA9ICd2YWx1ZSc7XG5cdCAgICB9LFxuXG5cdCAgICBhZnRlckFycmF5VmFsdWU6IGZ1bmN0aW9uIGFmdGVyQXJyYXlWYWx1ZSAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnLCc6XG5cdCAgICAgICAgY2FzZSAnXSc6XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbigncHVuY3R1YXRvcicsIHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXG5cdCAgICBlbmQ6IGZ1bmN0aW9uIGVuZCAoKSB7XG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlIHNpbmNlIGl0J3MgaGFuZGxlZCBieSB0aGUgZGVmYXVsdCBsZXhTdGF0ZS5cblx0ICAgICAgICAvLyBpZiAoYyA9PT0gdW5kZWZpbmVkKSB7XG5cdCAgICAgICAgLy8gICAgIHJlYWQoKVxuXHQgICAgICAgIC8vICAgICByZXR1cm4gbmV3VG9rZW4oJ2VvZicpXG5cdCAgICAgICAgLy8gfVxuXG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfSxcblx0fTtcblxuXHRmdW5jdGlvbiBuZXdUb2tlbiAodHlwZSwgdmFsdWUpIHtcblx0ICAgIHJldHVybiB7XG5cdCAgICAgICAgdHlwZTogdHlwZSxcblx0ICAgICAgICB2YWx1ZTogdmFsdWUsXG5cdCAgICAgICAgbGluZTogbGluZSxcblx0ICAgICAgICBjb2x1bW46IGNvbHVtbixcblx0ICAgIH1cblx0fVxuXG5cdGZ1bmN0aW9uIGxpdGVyYWwgKHMpIHtcblx0ICAgIGZvciAodmFyIGkgPSAwLCBsaXN0ID0gczsgaSA8IGxpc3QubGVuZ3RoOyBpICs9IDEpIHtcblx0ICAgICAgICB2YXIgYyA9IGxpc3RbaV07XG5cblx0ICAgICAgICB2YXIgcCA9IHBlZWsoKTtcblxuXHQgICAgICAgIGlmIChwICE9PSBjKSB7XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZWFkKCk7XG5cdCAgICB9XG5cdH1cblxuXHRmdW5jdGlvbiBlc2NhcGUgKCkge1xuXHQgICAgdmFyIGMgPSBwZWVrKCk7XG5cdCAgICBzd2l0Y2ggKGMpIHtcblx0ICAgIGNhc2UgJ2InOlxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICByZXR1cm4gJ1xcYidcblxuXHQgICAgY2FzZSAnZic6XG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIHJldHVybiAnXFxmJ1xuXG5cdCAgICBjYXNlICduJzpcblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgcmV0dXJuICdcXG4nXG5cblx0ICAgIGNhc2UgJ3InOlxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICByZXR1cm4gJ1xccidcblxuXHQgICAgY2FzZSAndCc6XG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIHJldHVybiAnXFx0J1xuXG5cdCAgICBjYXNlICd2Jzpcblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgcmV0dXJuICdcXHYnXG5cblx0ICAgIGNhc2UgJzAnOlxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICBpZiAodXRpbC5pc0RpZ2l0KHBlZWsoKSkpIHtcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiAnXFwwJ1xuXG5cdCAgICBjYXNlICd4Jzpcblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgcmV0dXJuIGhleEVzY2FwZSgpXG5cblx0ICAgIGNhc2UgJ3UnOlxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICByZXR1cm4gdW5pY29kZUVzY2FwZSgpXG5cblx0ICAgIGNhc2UgJ1xcbic6XG5cdCAgICBjYXNlICdcXHUyMDI4Jzpcblx0ICAgIGNhc2UgJ1xcdTIwMjknOlxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICByZXR1cm4gJydcblxuXHQgICAgY2FzZSAnXFxyJzpcblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgaWYgKHBlZWsoKSA9PT0gJ1xcbicpIHtcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiAnJ1xuXG5cdCAgICBjYXNlICcxJzpcblx0ICAgIGNhc2UgJzInOlxuXHQgICAgY2FzZSAnMyc6XG5cdCAgICBjYXNlICc0Jzpcblx0ICAgIGNhc2UgJzUnOlxuXHQgICAgY2FzZSAnNic6XG5cdCAgICBjYXNlICc3Jzpcblx0ICAgIGNhc2UgJzgnOlxuXHQgICAgY2FzZSAnOSc6XG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXG5cdCAgICBjYXNlIHVuZGVmaW5lZDpcblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9XG5cblx0ICAgIHJldHVybiByZWFkKClcblx0fVxuXG5cdGZ1bmN0aW9uIGhleEVzY2FwZSAoKSB7XG5cdCAgICB2YXIgYnVmZmVyID0gJyc7XG5cdCAgICB2YXIgYyA9IHBlZWsoKTtcblxuXHQgICAgaWYgKCF1dGlsLmlzSGV4RGlnaXQoYykpIHtcblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9XG5cblx0ICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cblx0ICAgIGMgPSBwZWVrKCk7XG5cdCAgICBpZiAoIXV0aWwuaXNIZXhEaWdpdChjKSkge1xuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH1cblxuXHQgICAgYnVmZmVyICs9IHJlYWQoKTtcblxuXHQgICAgcmV0dXJuIFN0cmluZy5mcm9tQ29kZVBvaW50KHBhcnNlSW50KGJ1ZmZlciwgMTYpKVxuXHR9XG5cblx0ZnVuY3Rpb24gdW5pY29kZUVzY2FwZSAoKSB7XG5cdCAgICB2YXIgYnVmZmVyID0gJyc7XG5cdCAgICB2YXIgY291bnQgPSA0O1xuXG5cdCAgICB3aGlsZSAoY291bnQtLSA+IDApIHtcblx0ICAgICAgICB2YXIgYyA9IHBlZWsoKTtcblx0ICAgICAgICBpZiAoIXV0aWwuaXNIZXhEaWdpdChjKSkge1xuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgIH1cblxuXHQgICAgcmV0dXJuIFN0cmluZy5mcm9tQ29kZVBvaW50KHBhcnNlSW50KGJ1ZmZlciwgMTYpKVxuXHR9XG5cblx0dmFyIHBhcnNlU3RhdGVzID0ge1xuXHQgICAgc3RhcnQ6IGZ1bmN0aW9uIHN0YXJ0ICgpIHtcblx0ICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gJ2VvZicpIHtcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZEVPRigpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcHVzaCgpO1xuXHQgICAgfSxcblxuXHQgICAgYmVmb3JlUHJvcGVydHlOYW1lOiBmdW5jdGlvbiBiZWZvcmVQcm9wZXJ0eU5hbWUgKCkge1xuXHQgICAgICAgIHN3aXRjaCAodG9rZW4udHlwZSkge1xuXHQgICAgICAgIGNhc2UgJ2lkZW50aWZpZXInOlxuXHQgICAgICAgIGNhc2UgJ3N0cmluZyc6XG5cdCAgICAgICAgICAgIGtleSA9IHRva2VuLnZhbHVlO1xuXHQgICAgICAgICAgICBwYXJzZVN0YXRlID0gJ2FmdGVyUHJvcGVydHlOYW1lJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICdwdW5jdHVhdG9yJzpcblx0ICAgICAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlIHNpbmNlIGl0J3MgaGFuZGxlZCBieSB0aGUgbGV4U3RhdGUuXG5cdCAgICAgICAgICAgIC8vIGlmICh0b2tlbi52YWx1ZSAhPT0gJ30nKSB7XG5cdCAgICAgICAgICAgIC8vICAgICB0aHJvdyBpbnZhbGlkVG9rZW4oKVxuXHQgICAgICAgICAgICAvLyB9XG5cblx0ICAgICAgICAgICAgcG9wKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnZW9mJzpcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZEVPRigpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlIHNpbmNlIGl0J3MgaGFuZGxlZCBieSB0aGUgbGV4U3RhdGUuXG5cdCAgICAgICAgLy8gdGhyb3cgaW52YWxpZFRva2VuKClcblx0ICAgIH0sXG5cblx0ICAgIGFmdGVyUHJvcGVydHlOYW1lOiBmdW5jdGlvbiBhZnRlclByb3BlcnR5TmFtZSAoKSB7XG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlIHNpbmNlIGl0J3MgaGFuZGxlZCBieSB0aGUgbGV4U3RhdGUuXG5cdCAgICAgICAgLy8gaWYgKHRva2VuLnR5cGUgIT09ICdwdW5jdHVhdG9yJyB8fCB0b2tlbi52YWx1ZSAhPT0gJzonKSB7XG5cdCAgICAgICAgLy8gICAgIHRocm93IGludmFsaWRUb2tlbigpXG5cdCAgICAgICAgLy8gfVxuXG5cdCAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09ICdlb2YnKSB7XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRFT0YoKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHBhcnNlU3RhdGUgPSAnYmVmb3JlUHJvcGVydHlWYWx1ZSc7XG5cdCAgICB9LFxuXG5cdCAgICBiZWZvcmVQcm9wZXJ0eVZhbHVlOiBmdW5jdGlvbiBiZWZvcmVQcm9wZXJ0eVZhbHVlICgpIHtcblx0ICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gJ2VvZicpIHtcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZEVPRigpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcHVzaCgpO1xuXHQgICAgfSxcblxuXHQgICAgYmVmb3JlQXJyYXlWYWx1ZTogZnVuY3Rpb24gYmVmb3JlQXJyYXlWYWx1ZSAoKSB7XG5cdCAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09ICdlb2YnKSB7XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRFT0YoKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh0b2tlbi50eXBlID09PSAncHVuY3R1YXRvcicgJiYgdG9rZW4udmFsdWUgPT09ICddJykge1xuXHQgICAgICAgICAgICBwb3AoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcHVzaCgpO1xuXHQgICAgfSxcblxuXHQgICAgYWZ0ZXJQcm9wZXJ0eVZhbHVlOiBmdW5jdGlvbiBhZnRlclByb3BlcnR5VmFsdWUgKCkge1xuXHQgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSBzaW5jZSBpdCdzIGhhbmRsZWQgYnkgdGhlIGxleFN0YXRlLlxuXHQgICAgICAgIC8vIGlmICh0b2tlbi50eXBlICE9PSAncHVuY3R1YXRvcicpIHtcblx0ICAgICAgICAvLyAgICAgdGhyb3cgaW52YWxpZFRva2VuKClcblx0ICAgICAgICAvLyB9XG5cblx0ICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gJ2VvZicpIHtcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZEVPRigpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgc3dpdGNoICh0b2tlbi52YWx1ZSkge1xuXHQgICAgICAgIGNhc2UgJywnOlxuXHQgICAgICAgICAgICBwYXJzZVN0YXRlID0gJ2JlZm9yZVByb3BlcnR5TmFtZSc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnfSc6XG5cdCAgICAgICAgICAgIHBvcCgpO1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSBzaW5jZSBpdCdzIGhhbmRsZWQgYnkgdGhlIGxleFN0YXRlLlxuXHQgICAgICAgIC8vIHRocm93IGludmFsaWRUb2tlbigpXG5cdCAgICB9LFxuXG5cdCAgICBhZnRlckFycmF5VmFsdWU6IGZ1bmN0aW9uIGFmdGVyQXJyYXlWYWx1ZSAoKSB7XG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlIHNpbmNlIGl0J3MgaGFuZGxlZCBieSB0aGUgbGV4U3RhdGUuXG5cdCAgICAgICAgLy8gaWYgKHRva2VuLnR5cGUgIT09ICdwdW5jdHVhdG9yJykge1xuXHQgICAgICAgIC8vICAgICB0aHJvdyBpbnZhbGlkVG9rZW4oKVxuXHQgICAgICAgIC8vIH1cblxuXHQgICAgICAgIGlmICh0b2tlbi50eXBlID09PSAnZW9mJykge1xuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkRU9GKClcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBzd2l0Y2ggKHRva2VuLnZhbHVlKSB7XG5cdCAgICAgICAgY2FzZSAnLCc6XG5cdCAgICAgICAgICAgIHBhcnNlU3RhdGUgPSAnYmVmb3JlQXJyYXlWYWx1ZSc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnXSc6XG5cdCAgICAgICAgICAgIHBvcCgpO1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSBzaW5jZSBpdCdzIGhhbmRsZWQgYnkgdGhlIGxleFN0YXRlLlxuXHQgICAgICAgIC8vIHRocm93IGludmFsaWRUb2tlbigpXG5cdCAgICB9LFxuXG5cdCAgICBlbmQ6IGZ1bmN0aW9uIGVuZCAoKSB7XG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlIHNpbmNlIGl0J3MgaGFuZGxlZCBieSB0aGUgbGV4U3RhdGUuXG5cdCAgICAgICAgLy8gaWYgKHRva2VuLnR5cGUgIT09ICdlb2YnKSB7XG5cdCAgICAgICAgLy8gICAgIHRocm93IGludmFsaWRUb2tlbigpXG5cdCAgICAgICAgLy8gfVxuXHQgICAgfSxcblx0fTtcblxuXHRmdW5jdGlvbiBwdXNoICgpIHtcblx0ICAgIHZhciB2YWx1ZTtcblxuXHQgICAgc3dpdGNoICh0b2tlbi50eXBlKSB7XG5cdCAgICBjYXNlICdwdW5jdHVhdG9yJzpcblx0ICAgICAgICBzd2l0Y2ggKHRva2VuLnZhbHVlKSB7XG5cdCAgICAgICAgY2FzZSAneyc6XG5cdCAgICAgICAgICAgIHZhbHVlID0ge307XG5cdCAgICAgICAgICAgIGJyZWFrXG5cblx0ICAgICAgICBjYXNlICdbJzpcblx0ICAgICAgICAgICAgdmFsdWUgPSBbXTtcblx0ICAgICAgICAgICAgYnJlYWtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBicmVha1xuXG5cdCAgICBjYXNlICdudWxsJzpcblx0ICAgIGNhc2UgJ2Jvb2xlYW4nOlxuXHQgICAgY2FzZSAnbnVtZXJpYyc6XG5cdCAgICBjYXNlICdzdHJpbmcnOlxuXHQgICAgICAgIHZhbHVlID0gdG9rZW4udmFsdWU7XG5cdCAgICAgICAgYnJlYWtcblxuXHQgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlLlxuXHQgICAgLy8gZGVmYXVsdDpcblx0ICAgIC8vICAgICB0aHJvdyBpbnZhbGlkVG9rZW4oKVxuXHQgICAgfVxuXG5cdCAgICBpZiAocm9vdCA9PT0gdW5kZWZpbmVkKSB7XG5cdCAgICAgICAgcm9vdCA9IHZhbHVlO1xuXHQgICAgfSBlbHNlIHtcblx0ICAgICAgICB2YXIgcGFyZW50ID0gc3RhY2tbc3RhY2subGVuZ3RoIC0gMV07XG5cdCAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocGFyZW50KSkge1xuXHQgICAgICAgICAgICBwYXJlbnQucHVzaCh2YWx1ZSk7XG5cdCAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHBhcmVudCwga2V5LCB7XG5cdCAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWUsXG5cdCAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcblx0ICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG5cdCAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG5cdCAgICAgICAgICAgIH0pO1xuXHQgICAgICAgIH1cblx0ICAgIH1cblxuXHQgICAgaWYgKHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcblx0ICAgICAgICBzdGFjay5wdXNoKHZhbHVlKTtcblxuXHQgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuXHQgICAgICAgICAgICBwYXJzZVN0YXRlID0gJ2JlZm9yZUFycmF5VmFsdWUnO1xuXHQgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgIHBhcnNlU3RhdGUgPSAnYmVmb3JlUHJvcGVydHlOYW1lJztcblx0ICAgICAgICB9XG5cdCAgICB9IGVsc2Uge1xuXHQgICAgICAgIHZhciBjdXJyZW50ID0gc3RhY2tbc3RhY2subGVuZ3RoIC0gMV07XG5cdCAgICAgICAgaWYgKGN1cnJlbnQgPT0gbnVsbCkge1xuXHQgICAgICAgICAgICBwYXJzZVN0YXRlID0gJ2VuZCc7XG5cdCAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGN1cnJlbnQpKSB7XG5cdCAgICAgICAgICAgIHBhcnNlU3RhdGUgPSAnYWZ0ZXJBcnJheVZhbHVlJztcblx0ICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICBwYXJzZVN0YXRlID0gJ2FmdGVyUHJvcGVydHlWYWx1ZSc7XG5cdCAgICAgICAgfVxuXHQgICAgfVxuXHR9XG5cblx0ZnVuY3Rpb24gcG9wICgpIHtcblx0ICAgIHN0YWNrLnBvcCgpO1xuXG5cdCAgICB2YXIgY3VycmVudCA9IHN0YWNrW3N0YWNrLmxlbmd0aCAtIDFdO1xuXHQgICAgaWYgKGN1cnJlbnQgPT0gbnVsbCkge1xuXHQgICAgICAgIHBhcnNlU3RhdGUgPSAnZW5kJztcblx0ICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShjdXJyZW50KSkge1xuXHQgICAgICAgIHBhcnNlU3RhdGUgPSAnYWZ0ZXJBcnJheVZhbHVlJztcblx0ICAgIH0gZWxzZSB7XG5cdCAgICAgICAgcGFyc2VTdGF0ZSA9ICdhZnRlclByb3BlcnR5VmFsdWUnO1xuXHQgICAgfVxuXHR9XG5cblx0Ly8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlLlxuXHQvLyBmdW5jdGlvbiBpbnZhbGlkUGFyc2VTdGF0ZSAoKSB7XG5cdC8vICAgICByZXR1cm4gbmV3IEVycm9yKGBKU09ONTogaW52YWxpZCBwYXJzZSBzdGF0ZSAnJHtwYXJzZVN0YXRlfSdgKVxuXHQvLyB9XG5cblx0Ly8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlLlxuXHQvLyBmdW5jdGlvbiBpbnZhbGlkTGV4U3RhdGUgKHN0YXRlKSB7XG5cdC8vICAgICByZXR1cm4gbmV3IEVycm9yKGBKU09ONTogaW52YWxpZCBsZXggc3RhdGUgJyR7c3RhdGV9J2ApXG5cdC8vIH1cblxuXHRmdW5jdGlvbiBpbnZhbGlkQ2hhciAoYykge1xuXHQgICAgaWYgKGMgPT09IHVuZGVmaW5lZCkge1xuXHQgICAgICAgIHJldHVybiBzeW50YXhFcnJvcigoXCJKU09ONTogaW52YWxpZCBlbmQgb2YgaW5wdXQgYXQgXCIgKyBsaW5lICsgXCI6XCIgKyBjb2x1bW4pKVxuXHQgICAgfVxuXG5cdCAgICByZXR1cm4gc3ludGF4RXJyb3IoKFwiSlNPTjU6IGludmFsaWQgY2hhcmFjdGVyICdcIiArIChmb3JtYXRDaGFyKGMpKSArIFwiJyBhdCBcIiArIGxpbmUgKyBcIjpcIiArIGNvbHVtbikpXG5cdH1cblxuXHRmdW5jdGlvbiBpbnZhbGlkRU9GICgpIHtcblx0ICAgIHJldHVybiBzeW50YXhFcnJvcigoXCJKU09ONTogaW52YWxpZCBlbmQgb2YgaW5wdXQgYXQgXCIgKyBsaW5lICsgXCI6XCIgKyBjb2x1bW4pKVxuXHR9XG5cblx0Ly8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlLlxuXHQvLyBmdW5jdGlvbiBpbnZhbGlkVG9rZW4gKCkge1xuXHQvLyAgICAgaWYgKHRva2VuLnR5cGUgPT09ICdlb2YnKSB7XG5cdC8vICAgICAgICAgcmV0dXJuIHN5bnRheEVycm9yKGBKU09ONTogaW52YWxpZCBlbmQgb2YgaW5wdXQgYXQgJHtsaW5lfToke2NvbHVtbn1gKVxuXHQvLyAgICAgfVxuXG5cdC8vICAgICBjb25zdCBjID0gU3RyaW5nLmZyb21Db2RlUG9pbnQodG9rZW4udmFsdWUuY29kZVBvaW50QXQoMCkpXG5cdC8vICAgICByZXR1cm4gc3ludGF4RXJyb3IoYEpTT041OiBpbnZhbGlkIGNoYXJhY3RlciAnJHtmb3JtYXRDaGFyKGMpfScgYXQgJHtsaW5lfToke2NvbHVtbn1gKVxuXHQvLyB9XG5cblx0ZnVuY3Rpb24gaW52YWxpZElkZW50aWZpZXIgKCkge1xuXHQgICAgY29sdW1uIC09IDU7XG5cdCAgICByZXR1cm4gc3ludGF4RXJyb3IoKFwiSlNPTjU6IGludmFsaWQgaWRlbnRpZmllciBjaGFyYWN0ZXIgYXQgXCIgKyBsaW5lICsgXCI6XCIgKyBjb2x1bW4pKVxuXHR9XG5cblx0ZnVuY3Rpb24gc2VwYXJhdG9yQ2hhciAoYykge1xuXHQgICAgY29uc29sZS53YXJuKChcIkpTT041OiAnXCIgKyAoZm9ybWF0Q2hhcihjKSkgKyBcIicgaW4gc3RyaW5ncyBpcyBub3QgdmFsaWQgRUNNQVNjcmlwdDsgY29uc2lkZXIgZXNjYXBpbmdcIikpO1xuXHR9XG5cblx0ZnVuY3Rpb24gZm9ybWF0Q2hhciAoYykge1xuXHQgICAgdmFyIHJlcGxhY2VtZW50cyA9IHtcblx0ICAgICAgICBcIidcIjogXCJcXFxcJ1wiLFxuXHQgICAgICAgICdcIic6ICdcXFxcXCInLFxuXHQgICAgICAgICdcXFxcJzogJ1xcXFxcXFxcJyxcblx0ICAgICAgICAnXFxiJzogJ1xcXFxiJyxcblx0ICAgICAgICAnXFxmJzogJ1xcXFxmJyxcblx0ICAgICAgICAnXFxuJzogJ1xcXFxuJyxcblx0ICAgICAgICAnXFxyJzogJ1xcXFxyJyxcblx0ICAgICAgICAnXFx0JzogJ1xcXFx0Jyxcblx0ICAgICAgICAnXFx2JzogJ1xcXFx2Jyxcblx0ICAgICAgICAnXFwwJzogJ1xcXFwwJyxcblx0ICAgICAgICAnXFx1MjAyOCc6ICdcXFxcdTIwMjgnLFxuXHQgICAgICAgICdcXHUyMDI5JzogJ1xcXFx1MjAyOScsXG5cdCAgICB9O1xuXG5cdCAgICBpZiAocmVwbGFjZW1lbnRzW2NdKSB7XG5cdCAgICAgICAgcmV0dXJuIHJlcGxhY2VtZW50c1tjXVxuXHQgICAgfVxuXG5cdCAgICBpZiAoYyA8ICcgJykge1xuXHQgICAgICAgIHZhciBoZXhTdHJpbmcgPSBjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpO1xuXHQgICAgICAgIHJldHVybiAnXFxcXHgnICsgKCcwMCcgKyBoZXhTdHJpbmcpLnN1YnN0cmluZyhoZXhTdHJpbmcubGVuZ3RoKVxuXHQgICAgfVxuXG5cdCAgICByZXR1cm4gY1xuXHR9XG5cblx0ZnVuY3Rpb24gc3ludGF4RXJyb3IgKG1lc3NhZ2UpIHtcblx0ICAgIHZhciBlcnIgPSBuZXcgU3ludGF4RXJyb3IobWVzc2FnZSk7XG5cdCAgICBlcnIubGluZU51bWJlciA9IGxpbmU7XG5cdCAgICBlcnIuY29sdW1uTnVtYmVyID0gY29sdW1uO1xuXHQgICAgcmV0dXJuIGVyclxuXHR9XG5cblx0dmFyIHN0cmluZ2lmeSA9IGZ1bmN0aW9uIHN0cmluZ2lmeSAodmFsdWUsIHJlcGxhY2VyLCBzcGFjZSkge1xuXHQgICAgdmFyIHN0YWNrID0gW107XG5cdCAgICB2YXIgaW5kZW50ID0gJyc7XG5cdCAgICB2YXIgcHJvcGVydHlMaXN0O1xuXHQgICAgdmFyIHJlcGxhY2VyRnVuYztcblx0ICAgIHZhciBnYXAgPSAnJztcblx0ICAgIHZhciBxdW90ZTtcblxuXHQgICAgaWYgKFxuXHQgICAgICAgIHJlcGxhY2VyICE9IG51bGwgJiZcblx0ICAgICAgICB0eXBlb2YgcmVwbGFjZXIgPT09ICdvYmplY3QnICYmXG5cdCAgICAgICAgIUFycmF5LmlzQXJyYXkocmVwbGFjZXIpXG5cdCAgICApIHtcblx0ICAgICAgICBzcGFjZSA9IHJlcGxhY2VyLnNwYWNlO1xuXHQgICAgICAgIHF1b3RlID0gcmVwbGFjZXIucXVvdGU7XG5cdCAgICAgICAgcmVwbGFjZXIgPSByZXBsYWNlci5yZXBsYWNlcjtcblx0ICAgIH1cblxuXHQgICAgaWYgKHR5cGVvZiByZXBsYWNlciA9PT0gJ2Z1bmN0aW9uJykge1xuXHQgICAgICAgIHJlcGxhY2VyRnVuYyA9IHJlcGxhY2VyO1xuXHQgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHJlcGxhY2VyKSkge1xuXHQgICAgICAgIHByb3BlcnR5TGlzdCA9IFtdO1xuXHQgICAgICAgIGZvciAodmFyIGkgPSAwLCBsaXN0ID0gcmVwbGFjZXI7IGkgPCBsaXN0Lmxlbmd0aDsgaSArPSAxKSB7XG5cdCAgICAgICAgICAgIHZhciB2ID0gbGlzdFtpXTtcblxuXHQgICAgICAgICAgICB2YXIgaXRlbSA9ICh2b2lkIDApO1xuXG5cdCAgICAgICAgICAgIGlmICh0eXBlb2YgdiA9PT0gJ3N0cmluZycpIHtcblx0ICAgICAgICAgICAgICAgIGl0ZW0gPSB2O1xuXHQgICAgICAgICAgICB9IGVsc2UgaWYgKFxuXHQgICAgICAgICAgICAgICAgdHlwZW9mIHYgPT09ICdudW1iZXInIHx8XG5cdCAgICAgICAgICAgICAgICB2IGluc3RhbmNlb2YgU3RyaW5nIHx8XG5cdCAgICAgICAgICAgICAgICB2IGluc3RhbmNlb2YgTnVtYmVyXG5cdCAgICAgICAgICAgICkge1xuXHQgICAgICAgICAgICAgICAgaXRlbSA9IFN0cmluZyh2KTtcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIGlmIChpdGVtICE9PSB1bmRlZmluZWQgJiYgcHJvcGVydHlMaXN0LmluZGV4T2YoaXRlbSkgPCAwKSB7XG5cdCAgICAgICAgICAgICAgICBwcm9wZXJ0eUxpc3QucHVzaChpdGVtKTtcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH1cblx0ICAgIH1cblxuXHQgICAgaWYgKHNwYWNlIGluc3RhbmNlb2YgTnVtYmVyKSB7XG5cdCAgICAgICAgc3BhY2UgPSBOdW1iZXIoc3BhY2UpO1xuXHQgICAgfSBlbHNlIGlmIChzcGFjZSBpbnN0YW5jZW9mIFN0cmluZykge1xuXHQgICAgICAgIHNwYWNlID0gU3RyaW5nKHNwYWNlKTtcblx0ICAgIH1cblxuXHQgICAgaWYgKHR5cGVvZiBzcGFjZSA9PT0gJ251bWJlcicpIHtcblx0ICAgICAgICBpZiAoc3BhY2UgPiAwKSB7XG5cdCAgICAgICAgICAgIHNwYWNlID0gTWF0aC5taW4oMTAsIE1hdGguZmxvb3Ioc3BhY2UpKTtcblx0ICAgICAgICAgICAgZ2FwID0gJyAgICAgICAgICAnLnN1YnN0cigwLCBzcGFjZSk7XG5cdCAgICAgICAgfVxuXHQgICAgfSBlbHNlIGlmICh0eXBlb2Ygc3BhY2UgPT09ICdzdHJpbmcnKSB7XG5cdCAgICAgICAgZ2FwID0gc3BhY2Uuc3Vic3RyKDAsIDEwKTtcblx0ICAgIH1cblxuXHQgICAgcmV0dXJuIHNlcmlhbGl6ZVByb3BlcnR5KCcnLCB7Jyc6IHZhbHVlfSlcblxuXHQgICAgZnVuY3Rpb24gc2VyaWFsaXplUHJvcGVydHkgKGtleSwgaG9sZGVyKSB7XG5cdCAgICAgICAgdmFyIHZhbHVlID0gaG9sZGVyW2tleV07XG5cdCAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcblx0ICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZS50b0pTT041ID09PSAnZnVuY3Rpb24nKSB7XG5cdCAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnRvSlNPTjUoa2V5KTtcblx0ICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUudG9KU09OID09PSAnZnVuY3Rpb24nKSB7XG5cdCAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnRvSlNPTihrZXkpO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHJlcGxhY2VyRnVuYykge1xuXHQgICAgICAgICAgICB2YWx1ZSA9IHJlcGxhY2VyRnVuYy5jYWxsKGhvbGRlciwga2V5LCB2YWx1ZSk7XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTnVtYmVyKSB7XG5cdCAgICAgICAgICAgIHZhbHVlID0gTnVtYmVyKHZhbHVlKTtcblx0ICAgICAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgU3RyaW5nKSB7XG5cdCAgICAgICAgICAgIHZhbHVlID0gU3RyaW5nKHZhbHVlKTtcblx0ICAgICAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgQm9vbGVhbikge1xuXHQgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnZhbHVlT2YoKTtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBzd2l0Y2ggKHZhbHVlKSB7XG5cdCAgICAgICAgY2FzZSBudWxsOiByZXR1cm4gJ251bGwnXG5cdCAgICAgICAgY2FzZSB0cnVlOiByZXR1cm4gJ3RydWUnXG5cdCAgICAgICAgY2FzZSBmYWxzZTogcmV0dXJuICdmYWxzZSdcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuXHQgICAgICAgICAgICByZXR1cm4gcXVvdGVTdHJpbmcodmFsdWUsIGZhbHNlKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG5cdCAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcblx0ICAgICAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpID8gc2VyaWFsaXplQXJyYXkodmFsdWUpIDogc2VyaWFsaXplT2JqZWN0KHZhbHVlKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiB1bmRlZmluZWRcblx0ICAgIH1cblxuXHQgICAgZnVuY3Rpb24gcXVvdGVTdHJpbmcgKHZhbHVlKSB7XG5cdCAgICAgICAgdmFyIHF1b3RlcyA9IHtcblx0ICAgICAgICAgICAgXCInXCI6IDAuMSxcblx0ICAgICAgICAgICAgJ1wiJzogMC4yLFxuXHQgICAgICAgIH07XG5cblx0ICAgICAgICB2YXIgcmVwbGFjZW1lbnRzID0ge1xuXHQgICAgICAgICAgICBcIidcIjogXCJcXFxcJ1wiLFxuXHQgICAgICAgICAgICAnXCInOiAnXFxcXFwiJyxcblx0ICAgICAgICAgICAgJ1xcXFwnOiAnXFxcXFxcXFwnLFxuXHQgICAgICAgICAgICAnXFxiJzogJ1xcXFxiJyxcblx0ICAgICAgICAgICAgJ1xcZic6ICdcXFxcZicsXG5cdCAgICAgICAgICAgICdcXG4nOiAnXFxcXG4nLFxuXHQgICAgICAgICAgICAnXFxyJzogJ1xcXFxyJyxcblx0ICAgICAgICAgICAgJ1xcdCc6ICdcXFxcdCcsXG5cdCAgICAgICAgICAgICdcXHYnOiAnXFxcXHYnLFxuXHQgICAgICAgICAgICAnXFwwJzogJ1xcXFwwJyxcblx0ICAgICAgICAgICAgJ1xcdTIwMjgnOiAnXFxcXHUyMDI4Jyxcblx0ICAgICAgICAgICAgJ1xcdTIwMjknOiAnXFxcXHUyMDI5Jyxcblx0ICAgICAgICB9O1xuXG5cdCAgICAgICAgdmFyIHByb2R1Y3QgPSAnJztcblxuXHQgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcblx0ICAgICAgICAgICAgdmFyIGMgPSB2YWx1ZVtpXTtcblx0ICAgICAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgICAgIGNhc2UgXCInXCI6XG5cdCAgICAgICAgICAgIGNhc2UgJ1wiJzpcblx0ICAgICAgICAgICAgICAgIHF1b3Rlc1tjXSsrO1xuXHQgICAgICAgICAgICAgICAgcHJvZHVjdCArPSBjO1xuXHQgICAgICAgICAgICAgICAgY29udGludWVcblxuXHQgICAgICAgICAgICBjYXNlICdcXDAnOlxuXHQgICAgICAgICAgICAgICAgaWYgKHV0aWwuaXNEaWdpdCh2YWx1ZVtpICsgMV0pKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgcHJvZHVjdCArPSAnXFxcXHgwMCc7XG5cdCAgICAgICAgICAgICAgICAgICAgY29udGludWVcblx0ICAgICAgICAgICAgICAgIH1cblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudHNbY10pIHtcblx0ICAgICAgICAgICAgICAgIHByb2R1Y3QgKz0gcmVwbGFjZW1lbnRzW2NdO1xuXHQgICAgICAgICAgICAgICAgY29udGludWVcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIGlmIChjIDwgJyAnKSB7XG5cdCAgICAgICAgICAgICAgICB2YXIgaGV4U3RyaW5nID0gYy5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KTtcblx0ICAgICAgICAgICAgICAgIHByb2R1Y3QgKz0gJ1xcXFx4JyArICgnMDAnICsgaGV4U3RyaW5nKS5zdWJzdHJpbmcoaGV4U3RyaW5nLmxlbmd0aCk7XG5cdCAgICAgICAgICAgICAgICBjb250aW51ZVxuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgcHJvZHVjdCArPSBjO1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHZhciBxdW90ZUNoYXIgPSBxdW90ZSB8fCBPYmplY3Qua2V5cyhxdW90ZXMpLnJlZHVjZShmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gKHF1b3Rlc1thXSA8IHF1b3Rlc1tiXSkgPyBhIDogYjsgfSk7XG5cblx0ICAgICAgICBwcm9kdWN0ID0gcHJvZHVjdC5yZXBsYWNlKG5ldyBSZWdFeHAocXVvdGVDaGFyLCAnZycpLCByZXBsYWNlbWVudHNbcXVvdGVDaGFyXSk7XG5cblx0ICAgICAgICByZXR1cm4gcXVvdGVDaGFyICsgcHJvZHVjdCArIHF1b3RlQ2hhclxuXHQgICAgfVxuXG5cdCAgICBmdW5jdGlvbiBzZXJpYWxpemVPYmplY3QgKHZhbHVlKSB7XG5cdCAgICAgICAgaWYgKHN0YWNrLmluZGV4T2YodmFsdWUpID49IDApIHtcblx0ICAgICAgICAgICAgdGhyb3cgVHlwZUVycm9yKCdDb252ZXJ0aW5nIGNpcmN1bGFyIHN0cnVjdHVyZSB0byBKU09ONScpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgc3RhY2sucHVzaCh2YWx1ZSk7XG5cblx0ICAgICAgICB2YXIgc3RlcGJhY2sgPSBpbmRlbnQ7XG5cdCAgICAgICAgaW5kZW50ID0gaW5kZW50ICsgZ2FwO1xuXG5cdCAgICAgICAgdmFyIGtleXMgPSBwcm9wZXJ0eUxpc3QgfHwgT2JqZWN0LmtleXModmFsdWUpO1xuXHQgICAgICAgIHZhciBwYXJ0aWFsID0gW107XG5cdCAgICAgICAgZm9yICh2YXIgaSA9IDAsIGxpc3QgPSBrZXlzOyBpIDwgbGlzdC5sZW5ndGg7IGkgKz0gMSkge1xuXHQgICAgICAgICAgICB2YXIga2V5ID0gbGlzdFtpXTtcblxuXHQgICAgICAgICAgICB2YXIgcHJvcGVydHlTdHJpbmcgPSBzZXJpYWxpemVQcm9wZXJ0eShrZXksIHZhbHVlKTtcblx0ICAgICAgICAgICAgaWYgKHByb3BlcnR5U3RyaW5nICE9PSB1bmRlZmluZWQpIHtcblx0ICAgICAgICAgICAgICAgIHZhciBtZW1iZXIgPSBzZXJpYWxpemVLZXkoa2V5KSArICc6Jztcblx0ICAgICAgICAgICAgICAgIGlmIChnYXAgIT09ICcnKSB7XG5cdCAgICAgICAgICAgICAgICAgICAgbWVtYmVyICs9ICcgJztcblx0ICAgICAgICAgICAgICAgIH1cblx0ICAgICAgICAgICAgICAgIG1lbWJlciArPSBwcm9wZXJ0eVN0cmluZztcblx0ICAgICAgICAgICAgICAgIHBhcnRpYWwucHVzaChtZW1iZXIpO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdmFyIGZpbmFsO1xuXHQgICAgICAgIGlmIChwYXJ0aWFsLmxlbmd0aCA9PT0gMCkge1xuXHQgICAgICAgICAgICBmaW5hbCA9ICd7fSc7XG5cdCAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgdmFyIHByb3BlcnRpZXM7XG5cdCAgICAgICAgICAgIGlmIChnYXAgPT09ICcnKSB7XG5cdCAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzID0gcGFydGlhbC5qb2luKCcsJyk7XG5cdCAgICAgICAgICAgICAgICBmaW5hbCA9ICd7JyArIHByb3BlcnRpZXMgKyAnfSc7XG5cdCAgICAgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgICAgICB2YXIgc2VwYXJhdG9yID0gJyxcXG4nICsgaW5kZW50O1xuXHQgICAgICAgICAgICAgICAgcHJvcGVydGllcyA9IHBhcnRpYWwuam9pbihzZXBhcmF0b3IpO1xuXHQgICAgICAgICAgICAgICAgZmluYWwgPSAne1xcbicgKyBpbmRlbnQgKyBwcm9wZXJ0aWVzICsgJyxcXG4nICsgc3RlcGJhY2sgKyAnfSc7XG5cdCAgICAgICAgICAgIH1cblx0ICAgICAgICB9XG5cblx0ICAgICAgICBzdGFjay5wb3AoKTtcblx0ICAgICAgICBpbmRlbnQgPSBzdGVwYmFjaztcblx0ICAgICAgICByZXR1cm4gZmluYWxcblx0ICAgIH1cblxuXHQgICAgZnVuY3Rpb24gc2VyaWFsaXplS2V5IChrZXkpIHtcblx0ICAgICAgICBpZiAoa2V5Lmxlbmd0aCA9PT0gMCkge1xuXHQgICAgICAgICAgICByZXR1cm4gcXVvdGVTdHJpbmcoa2V5LCB0cnVlKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHZhciBmaXJzdENoYXIgPSBTdHJpbmcuZnJvbUNvZGVQb2ludChrZXkuY29kZVBvaW50QXQoMCkpO1xuXHQgICAgICAgIGlmICghdXRpbC5pc0lkU3RhcnRDaGFyKGZpcnN0Q2hhcikpIHtcblx0ICAgICAgICAgICAgcmV0dXJuIHF1b3RlU3RyaW5nKGtleSwgdHJ1ZSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBmb3IgKHZhciBpID0gZmlyc3RDaGFyLmxlbmd0aDsgaSA8IGtleS5sZW5ndGg7IGkrKykge1xuXHQgICAgICAgICAgICBpZiAoIXV0aWwuaXNJZENvbnRpbnVlQ2hhcihTdHJpbmcuZnJvbUNvZGVQb2ludChrZXkuY29kZVBvaW50QXQoaSkpKSkge1xuXHQgICAgICAgICAgICAgICAgcmV0dXJuIHF1b3RlU3RyaW5nKGtleSwgdHJ1ZSlcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiBrZXlcblx0ICAgIH1cblxuXHQgICAgZnVuY3Rpb24gc2VyaWFsaXplQXJyYXkgKHZhbHVlKSB7XG5cdCAgICAgICAgaWYgKHN0YWNrLmluZGV4T2YodmFsdWUpID49IDApIHtcblx0ICAgICAgICAgICAgdGhyb3cgVHlwZUVycm9yKCdDb252ZXJ0aW5nIGNpcmN1bGFyIHN0cnVjdHVyZSB0byBKU09ONScpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgc3RhY2sucHVzaCh2YWx1ZSk7XG5cblx0ICAgICAgICB2YXIgc3RlcGJhY2sgPSBpbmRlbnQ7XG5cdCAgICAgICAgaW5kZW50ID0gaW5kZW50ICsgZ2FwO1xuXG5cdCAgICAgICAgdmFyIHBhcnRpYWwgPSBbXTtcblx0ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG5cdCAgICAgICAgICAgIHZhciBwcm9wZXJ0eVN0cmluZyA9IHNlcmlhbGl6ZVByb3BlcnR5KFN0cmluZyhpKSwgdmFsdWUpO1xuXHQgICAgICAgICAgICBwYXJ0aWFsLnB1c2goKHByb3BlcnR5U3RyaW5nICE9PSB1bmRlZmluZWQpID8gcHJvcGVydHlTdHJpbmcgOiAnbnVsbCcpO1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHZhciBmaW5hbDtcblx0ICAgICAgICBpZiAocGFydGlhbC5sZW5ndGggPT09IDApIHtcblx0ICAgICAgICAgICAgZmluYWwgPSAnW10nO1xuXHQgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgIGlmIChnYXAgPT09ICcnKSB7XG5cdCAgICAgICAgICAgICAgICB2YXIgcHJvcGVydGllcyA9IHBhcnRpYWwuam9pbignLCcpO1xuXHQgICAgICAgICAgICAgICAgZmluYWwgPSAnWycgKyBwcm9wZXJ0aWVzICsgJ10nO1xuXHQgICAgICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICAgICAgdmFyIHNlcGFyYXRvciA9ICcsXFxuJyArIGluZGVudDtcblx0ICAgICAgICAgICAgICAgIHZhciBwcm9wZXJ0aWVzJDEgPSBwYXJ0aWFsLmpvaW4oc2VwYXJhdG9yKTtcblx0ICAgICAgICAgICAgICAgIGZpbmFsID0gJ1tcXG4nICsgaW5kZW50ICsgcHJvcGVydGllcyQxICsgJyxcXG4nICsgc3RlcGJhY2sgKyAnXSc7XG5cdCAgICAgICAgICAgIH1cblx0ICAgICAgICB9XG5cblx0ICAgICAgICBzdGFjay5wb3AoKTtcblx0ICAgICAgICBpbmRlbnQgPSBzdGVwYmFjaztcblx0ICAgICAgICByZXR1cm4gZmluYWxcblx0ICAgIH1cblx0fTtcblxuXHR2YXIgSlNPTjUgPSB7XG5cdCAgICBwYXJzZTogcGFyc2UsXG5cdCAgICBzdHJpbmdpZnk6IHN0cmluZ2lmeSxcblx0fTtcblxuXHR2YXIgbGliID0gSlNPTjU7XG5cblx0dmFyIGVzNSA9IGxpYjtcblxuXHRyZXR1cm4gZXM1O1xuXG59KSkpO1xuIiwgImltcG9ydCB7IFBsdWdpbiwgTWFya2Rvd25WaWV3LCBXb3Jrc3BhY2VMZWFmIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7IGNvbnZlcnRTZXR0aW5ncywgREVGQVVMVF9TRVRUSU5HUywgTEFOR1VBR0VTLCBDb2RlU3R5bGVyU2V0dGluZ3MsIFJFRkVSRU5DRV9DT0RFQkxPQ0ssIEVYVEVSTkFMX1JFRkVSRU5DRV9QQVRILCBFWFRFUk5BTF9SRUZFUkVOQ0VfQ0FDSEUgfSBmcm9tIFwiLi9TZXR0aW5nc1wiO1xuaW1wb3J0IHsgU2V0dGluZ3NUYWIgfSBmcm9tIFwiLi9TZXR0aW5nc1RhYlwiO1xuaW1wb3J0IHsgcmVtb3ZlU3R5bGVzQW5kQ2xhc3NlcywgdXBkYXRlU3R5bGluZyB9IGZyb20gXCIuL0FwcGx5U3R5bGluZ1wiO1xuaW1wb3J0IHsgY3JlYXRlQ29kZWJsb2NrQ29kZU1pcnJvckV4dGVuc2lvbnMsIGVkaXRpbmdEb2N1bWVudEZvbGQgfSBmcm9tIFwiLi9FZGl0aW5nVmlld1wiO1xuaW1wb3J0IHsgZGVzdHJveVJlYWRpbmdNb2RlRWxlbWVudHMsIHJlYWRpbmdEb2N1bWVudEZvbGQsIGV4ZWN1dGVDb2RlTXV0YXRpb25PYnNlcnZlciwgcmVhZGluZ1ZpZXdDb2RlYmxvY2tEZWNvcmF0aW5nUG9zdFByb2Nlc3NvciwgcmVhZGluZ1ZpZXdJbmxpbmVEZWNvcmF0aW5nUG9zdFByb2Nlc3NvciB9IGZyb20gXCIuL1JlYWRpbmdWaWV3XCI7XG5pbXBvcnQgeyBjbGVhbkV4dGVybmFsUmVmZXJlbmNlZEZpbGVzLCByZWZlcmVuY2VDb2RlYmxvY2tQcm9jZXNzb3IsIHVwZGF0ZUV4dGVybmFsUmVmZXJlbmNlZEZpbGVzIH0gZnJvbSBcIi4vUmVmZXJlbmNpbmdcIjtcbmltcG9ydCB7IGFkZE1vZGVzLCByZW1vdmVNb2RlcyB9IGZyb20gXCIuL1N5bnRheEhpZ2hsaWdodGluZ1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb2RlU3R5bGVyUGx1Z2luIGV4dGVuZHMgUGx1Z2luIHtcblx0c2V0dGluZ3M6IENvZGVTdHlsZXJTZXR0aW5ncztcblx0ZXhlY3V0ZUNvZGVNdXRhdGlvbk9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyO1xuXHRsYW5ndWFnZUljb25zOiBSZWNvcmQ8c3RyaW5nLHN0cmluZz47XG5cdHNpemVzOiB7XG5cdFx0Zm9udDogc3RyaW5nO1xuXHRcdHpvb206IHN0cmluZztcblx0fTtcblxuXHRhc3luYyBvbmxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0YXdhaXQgdGhpcy5sb2FkU2V0dGluZ3MoKTsgLy8gTG9hZCBTZXR0aW5nc1xuXHRcdGNvbnN0IHNldHRpbmdzVGFiID0gbmV3IFNldHRpbmdzVGFiKHRoaXMuYXBwLHRoaXMpO1xuXHRcdHRoaXMuYWRkU2V0dGluZ1RhYihzZXR0aW5nc1RhYik7XG5cblx0XHRkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlclwiKTsgLy8gTG9hZCBTdHlsZXNcblx0XHR1cGRhdGVTdHlsaW5nKHRoaXMuc2V0dGluZ3MsdGhpcy5hcHApO1xuXG5cdFx0dGhpcy5sYW5ndWFnZUljb25zID0gT2JqZWN0LmtleXMoTEFOR1VBR0VTKS5yZWR1Y2UoKHJlc3VsdDoge1trZXk6IHN0cmluZ106IHN0cmluZ30sIGtleTogc3RyaW5nKSA9PiB7IC8vIExvYWQgSWNvbnNcblx0XHRcdGlmIChMQU5HVUFHRVNba2V5XT8uaWNvbilcblx0XHRcdFx0cmVzdWx0W2tleV0gPSBVUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKFtgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPiR7TEFOR1VBR0VTW2tleV0uaWNvbn08L3N2Zz5gXSwgeyB0eXBlOiBcImltYWdlL3N2Zyt4bWxcIiB9KSk7XG5cdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdH0se30pO1xuXHRcdHRoaXMuc2l6ZXMgPSB7XG5cdFx0XHRmb250OiBkb2N1bWVudC5ib2R5LmdldENzc1Byb3BlcnR5VmFsdWUoXCItLWZvbnQtdGV4dC1zaXplXCIpLFxuXHRcdFx0em9vbTogZG9jdW1lbnQuYm9keS5nZXRDc3NQcm9wZXJ0eVZhbHVlKFwiLS16b29tLWZhY3RvclwiKSxcblx0XHR9O1xuXG5cdFx0dGhpcy5leGVjdXRlQ29kZU11dGF0aW9uT2JzZXJ2ZXIgPSBleGVjdXRlQ29kZU11dGF0aW9uT2JzZXJ2ZXI7IC8vIEFkZCBleGVjdXRlIGNvZGUgbXV0YXRpb24gb2JzZXJ2ZXJcblxuXHRcdGFkZE1vZGVzKCk7XG5cdFx0dGhpcy5yZWdpc3Rlck1hcmtkb3duQ29kZUJsb2NrUHJvY2Vzc29yKFJFRkVSRU5DRV9DT0RFQkxPQ0ssIGFzeW5jIChzb3VyY2UsIGVsLCBjdHgpID0+IHsgYXdhaXQgcmVmZXJlbmNlQ29kZWJsb2NrUHJvY2Vzc29yKHNvdXJjZSwgZWwsIGN0eCwgdGhpcyk7fSk7XG5cblx0XHR0aGlzLnJlZ2lzdGVyTWFya2Rvd25Qb3N0UHJvY2Vzc29yKGFzeW5jIChlbCxjdHgpID0+IHthd2FpdCByZWFkaW5nVmlld0NvZGVibG9ja0RlY29yYXRpbmdQb3N0UHJvY2Vzc29yKGVsLGN0eCx0aGlzKTt9KTsgLy8gQWRkIGNvZGVibG9jayBkZWNvcmF0aW5nIG1hcmtkb3duUG9zdFByb2Nlc3NvclxuXHRcdHRoaXMucmVnaXN0ZXJNYXJrZG93blBvc3RQcm9jZXNzb3IoYXN5bmMgKGVsLGN0eCkgPT4ge2F3YWl0IHJlYWRpbmdWaWV3SW5saW5lRGVjb3JhdGluZ1Bvc3RQcm9jZXNzb3IoZWwsY3R4LHRoaXMpO30pOyAvLyBBZGQgaW5saW5lIGNvZGUgZGVjb3JhdGluZyBtYXJrZG93blBvc3RQcm9jZXNzb3JcblxuXHRcdHRoaXMucmVnaXN0ZXJFZGl0b3JFeHRlbnNpb24oY3JlYXRlQ29kZWJsb2NrQ29kZU1pcnJvckV4dGVuc2lvbnModGhpcy5zZXR0aW5ncyx0aGlzKSk7IC8vIEFkZCBjb2RlbWlycm9yIGV4dGVuc2lvbnNcblxuXHRcdGxldCB6b29tVGltZW91dDogTm9kZUpTLlRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT57fSk7XG5cdFx0dGhpcy5yZWdpc3RlckV2ZW50KHRoaXMuYXBwLndvcmtzcGFjZS5vbihcImNzcy1jaGFuZ2VcIiwoKT0+e1xuXHRcdFx0dXBkYXRlU3R5bGluZyh0aGlzLnNldHRpbmdzLHRoaXMuYXBwKTsgLy8gVXBkYXRlIHN0eWxpbmcgb24gY3NzIGNoYW5nZXNcblx0XHRcdGNvbnN0IGN1cnJlbnRGb250U2l6ZSA9IGRvY3VtZW50LmJvZHkuZ2V0Q3NzUHJvcGVydHlWYWx1ZShcIi0tZm9udC10ZXh0LXNpemVcIik7XG5cdFx0XHRpZiAodGhpcy5zaXplcy5mb250ICE9PSBjdXJyZW50Rm9udFNpemUpIHtcblx0XHRcdFx0dGhpcy5zaXplcy5mb250ID0gY3VycmVudEZvbnRTaXplO1xuXHRcdFx0XHRjbGVhclRpbWVvdXQoem9vbVRpbWVvdXQpO1xuXHRcdFx0XHR6b29tVGltZW91dCA9IHNldFRpbWVvdXQoKCk9Pntcblx0XHRcdFx0XHR0aGlzLnJlbmRlclJlYWRpbmdWaWV3KCk7IC8vIFJlLXJlbmRlciBvbiBmb250IHNpemUgY2hhbmdlc1xuXHRcdFx0XHR9LDEwMDApO1xuXHRcdFx0fVxuXHRcdH0sdGhpcykpO1xuXHRcdHRoaXMucmVnaXN0ZXJFdmVudCh0aGlzLmFwcC53b3Jrc3BhY2Uub24oXCJyZXNpemVcIiwoKT0+e1xuXHRcdFx0Y29uc3QgY3VycmVudFpvb21TaXplID0gZG9jdW1lbnQuYm9keS5nZXRDc3NQcm9wZXJ0eVZhbHVlKFwiLS16b29tLWZhY3RvclwiKTtcblx0XHRcdGlmICh0aGlzLnNpemVzLnpvb20gIT09IGN1cnJlbnRab29tU2l6ZSkge1xuXHRcdFx0XHR0aGlzLnNpemVzLnpvb20gPSBjdXJyZW50Wm9vbVNpemU7XG5cdFx0XHRcdGNsZWFyVGltZW91dCh6b29tVGltZW91dCk7XG5cdFx0XHRcdHpvb21UaW1lb3V0ID0gc2V0VGltZW91dCgoKT0+e1xuXHRcdFx0XHRcdHRoaXMucmVuZGVyUmVhZGluZ1ZpZXcoKTsgLy8gUmUtcmVuZGVyIG9uIHpvb20gY2hhbmdlc1xuXHRcdFx0XHR9LDEwMDApO1xuXHRcdFx0fVxuXHRcdH0sdGhpcykpO1xuXG5cdFx0dGhpcy5hZGRDb21tYW5kKHtpZDogXCJmb2xkLWFsbFwiLCBuYW1lOiBcIkZvbGQgYWxsIGNvZGVibG9ja3NcIiwgY2FsbGJhY2s6ICgpPT57XG5cdFx0XHRjb25zdCBhY3RpdmVWaWV3ID0gdGhpcy5hcHAud29ya3NwYWNlLmdldEFjdGl2ZVZpZXdPZlR5cGUoTWFya2Rvd25WaWV3KTtcblx0XHRcdGlmIChhY3RpdmVWaWV3KSB7XG5cdFx0XHRcdGlmIChhY3RpdmVWaWV3LmdldE1vZGUoKSA9PT0gXCJwcmV2aWV3XCIpXG5cdFx0XHRcdFx0cmVhZGluZ0RvY3VtZW50Rm9sZChhY3RpdmVWaWV3LmNvbnRlbnRFbCx0cnVlKTtcblx0XHRcdFx0ZWxzZSBpZiAoYWN0aXZlVmlldy5nZXRNb2RlKCkgPT09IFwic291cmNlXCIpXG5cdFx0XHRcdFx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0XHRcdFx0XHRlZGl0aW5nRG9jdW1lbnRGb2xkKGFjdGl2ZVZpZXcuZWRpdG9yLmNtLmRvY1ZpZXcudmlldyx0cnVlKTtcblx0XHRcdH1cblx0XHR9fSk7XG5cdFx0dGhpcy5hZGRDb21tYW5kKHtpZDogXCJ1bmZvbGQtYWxsXCIsIG5hbWU6IFwiVW5mb2xkIGFsbCBjb2RlYmxvY2tzXCIsIGNhbGxiYWNrOiAoKT0+e1xuXHRcdFx0Y29uc3QgYWN0aXZlVmlldyA9IHRoaXMuYXBwLndvcmtzcGFjZS5nZXRBY3RpdmVWaWV3T2ZUeXBlKE1hcmtkb3duVmlldyk7XG5cdFx0XHRpZiAoYWN0aXZlVmlldykge1xuXHRcdFx0XHRpZiAoYWN0aXZlVmlldy5nZXRNb2RlKCkgPT09IFwicHJldmlld1wiKVxuXHRcdFx0XHRcdHJlYWRpbmdEb2N1bWVudEZvbGQoYWN0aXZlVmlldy5jb250ZW50RWwsZmFsc2UpO1xuXHRcdFx0XHRlbHNlIGlmIChhY3RpdmVWaWV3LmdldE1vZGUoKSA9PT0gXCJzb3VyY2VcIilcblx0XHRcdFx0XHQvL0B0cy1leHBlY3QtZXJyb3IgVW5kb2N1bWVudGVkIE9ic2lkaWFuIEFQSVxuXHRcdFx0XHRcdGVkaXRpbmdEb2N1bWVudEZvbGQoYWN0aXZlVmlldy5lZGl0b3IuY20uZG9jVmlldy52aWV3LGZhbHNlKTtcblx0XHRcdH1cblx0XHR9fSk7XG5cdFx0dGhpcy5hZGRDb21tYW5kKHtpZDogXCJyZXNldC1hbGxcIiwgbmFtZTogXCJSZXNldCBmb2xkIHN0YXRlIGZvciBhbGwgY29kZWJsb2Nrc1wiLCBjYWxsYmFjazogKCk9Pntcblx0XHRcdGNvbnN0IGFjdGl2ZVZpZXcgPSB0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0QWN0aXZlVmlld09mVHlwZShNYXJrZG93blZpZXcpO1xuXHRcdFx0aWYgKGFjdGl2ZVZpZXcpIHtcblx0XHRcdFx0aWYgKGFjdGl2ZVZpZXcuZ2V0TW9kZSgpID09PSBcInByZXZpZXdcIilcblx0XHRcdFx0XHRyZWFkaW5nRG9jdW1lbnRGb2xkKGFjdGl2ZVZpZXcuY29udGVudEVsKTtcblx0XHRcdFx0ZWxzZSBpZiAoYWN0aXZlVmlldy5nZXRNb2RlKCkgPT09IFwic291cmNlXCIpXG5cdFx0XHRcdFx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0XHRcdFx0XHRlZGl0aW5nRG9jdW1lbnRGb2xkKGFjdGl2ZVZpZXcuZWRpdG9yLmNtLmRvY1ZpZXcudmlldyk7XG5cdFx0XHR9XG5cdFx0fX0pO1xuXHRcdHRoaXMuYWRkQ29tbWFuZCh7aWQ6IFwidXBkYXRlLXJlZmVyZW5jZXMtdmF1bHRcIiwgbmFtZTogXCJVcGRhdGUgYWxsIGV4dGVybmFsIHJlZmVyZW5jZXMgaW4gdmF1bHRcIiwgY2FsbGJhY2s6IGFzeW5jICgpPT57XG5cdFx0XHRhd2FpdCB1cGRhdGVFeHRlcm5hbFJlZmVyZW5jZWRGaWxlcyh0aGlzKTtcblx0XHR9fSk7XG5cdFx0dGhpcy5hZGRDb21tYW5kKHtpZDogXCJ1cGRhdGUtcmVmZXJlbmNlcy1wYWdlXCIsIG5hbWU6IFwiVXBkYXRlIGFsbCBleHRlcm5hbCByZWZlcmVuY2VzIGluIG5vdGVcIiwgY2FsbGJhY2s6IGFzeW5jICgpPT57XG5cdFx0XHRhd2FpdCB1cGRhdGVFeHRlcm5hbFJlZmVyZW5jZWRGaWxlcyh0aGlzLCB0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0QWN0aXZlRmlsZSgpPy5wYXRoKTtcblx0XHR9fSk7XG5cdFx0dGhpcy5hZGRDb21tYW5kKHtpZDogXCJjbGVhbi1yZWZlcmVuY2VzXCIsIG5hbWU6IFwiUmVtb3ZlIGFsbCB1bm5lZWRlZCBleHRlcm5hbCByZWZlcmVuY2VzXCIsIGNhbGxiYWNrOiBhc3luYyAoKT0+e1xuXHRcdFx0YXdhaXQgY2xlYW5FeHRlcm5hbFJlZmVyZW5jZWRGaWxlcyh0aGlzKTtcblx0XHR9fSk7XG5cblx0XHR0aGlzLmFwcC53b3Jrc3BhY2Uub25MYXlvdXRSZWFkeShhc3luYyAoKSA9PiB0aGlzLmluaXRpYWxpc2VPbkxheW91dCgpKTsgLy8gQWRkIGRlY29yYXRpb24gb24gZW5hYmxpbmcgb2YgcGx1Z2luXG5cblx0XHRjb25zb2xlLmxvZyhcIkxvYWRlZCBwbHVnaW46IENvZGUgU3R5bGVyXCIpO1xuXHR9XG5cblx0b251bmxvYWQoKTogdm9pZCB7XG5cdFx0cmVtb3ZlTW9kZXMoKTtcblx0XHR0aGlzLmV4ZWN1dGVDb2RlTXV0YXRpb25PYnNlcnZlci5kaXNjb25uZWN0KCk7XG5cdFx0cmVtb3ZlU3R5bGVzQW5kQ2xhc3NlcygpO1xuXHRcdGRlc3Ryb3lSZWFkaW5nTW9kZUVsZW1lbnRzKCk7XG5cdFx0Zm9yIChjb25zdCB1cmwgb2YgT2JqZWN0LnZhbHVlcyh0aGlzLmxhbmd1YWdlSWNvbnMpKSAvLyBVbmxvYWQgaWNvbnNcblx0XHRcdFVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcblx0XHRjb25zb2xlLmxvZyhcIlVubG9hZGVkIHBsdWdpbjogQ29kZSBTdHlsZXJcIik7XG5cdH1cblxuXHRhc3luYyBsb2FkU2V0dGluZ3MoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0dGhpcy5zZXR0aW5ncyA9IHsgLi4uc3RydWN0dXJlZENsb25lKERFRkFVTFRfU0VUVElOR1MpLCAuLi5jb252ZXJ0U2V0dGluZ3MoYXdhaXQgdGhpcy5sb2FkRGF0YSgpKSB9O1xuXHR9XG5cblx0YXN5bmMgc2F2ZVNldHRpbmdzKCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGF3YWl0IHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XG5cdFx0dGhpcy5hcHAud29ya3NwYWNlLnVwZGF0ZU9wdGlvbnMoKTtcblx0XHR1cGRhdGVTdHlsaW5nKHRoaXMuc2V0dGluZ3MsdGhpcy5hcHApO1xuXHR9XG5cblx0YXN5bmMgaW5pdGlhbGlzZU9uTGF5b3V0KCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGlmICghKGF3YWl0IHRoaXMuYXBwLnZhdWx0LmFkYXB0ZXIuZXhpc3RzKHRoaXMuYXBwLnZhdWx0LmNvbmZpZ0RpciArIEVYVEVSTkFMX1JFRkVSRU5DRV9QQVRIKSkpIHsvLyBDcmVhdGUgZm9sZGVyIGZvciBleHRlcm5hbCByZWZlcmVuY2VzXG5cdFx0XHRhd2FpdCB0aGlzLmFwcC52YXVsdC5hZGFwdGVyLm1rZGlyKHRoaXMuYXBwLnZhdWx0LmNvbmZpZ0RpciArIEVYVEVSTkFMX1JFRkVSRU5DRV9QQVRIKTtcblx0XHRcdGF3YWl0IHRoaXMuYXBwLnZhdWx0LmFkYXB0ZXIud3JpdGUodGhpcy5hcHAudmF1bHQuY29uZmlnRGlyICsgRVhURVJOQUxfUkVGRVJFTkNFX0NBQ0hFLCBKU09OLnN0cmluZ2lmeSh7fSkpO1xuXHRcdH1cblx0XHRpZiAodGhpcy5zZXR0aW5ncy5leHRlcm5hbFJlZmVyZW5jZVVwZGF0ZU9uTG9hZClcblx0XHRcdGF3YWl0IHVwZGF0ZUV4dGVybmFsUmVmZXJlbmNlZEZpbGVzKHRoaXMpO1xuXHRcdGVsc2Uge1xuXHRcdFx0YXdhaXQgY2xlYW5FeHRlcm5hbFJlZmVyZW5jZWRGaWxlcyh0aGlzKTtcblx0XHRcdHRoaXMucmVuZGVyUmVhZGluZ1ZpZXcoKTtcblx0XHR9XG5cdH1cblxuXHRyZW5kZXJSZWFkaW5nVmlldygpOiB2b2lkIHtcblx0XHR0aGlzLmFwcC53b3Jrc3BhY2UuaXRlcmF0ZVJvb3RMZWF2ZXMoKGxlYWY6IFdvcmtzcGFjZUxlYWYpID0+IHtcblx0XHRcdGlmIChsZWFmLnZpZXcgaW5zdGFuY2VvZiBNYXJrZG93blZpZXcgJiYgbGVhZi52aWV3LmdldE1vZGUoKSA9PT0gXCJwcmV2aWV3XCIpXG5cdFx0XHRcdGxlYWYudmlldy5wcmV2aWV3TW9kZS5yZXJlbmRlcih0cnVlKTtcblx0XHR9KTtcblx0fVxufVxuIiwgIi8vIFR5cGluZ1xuZXhwb3J0IHR5cGUgSEVYID0gYCMke3N0cmluZ31gO1xuZXhwb3J0IHR5cGUgQ1NTID0gYC0tJHtzdHJpbmd9YDtcbmV4cG9ydCB0eXBlIENvbG91ciA9IEhFWCB8IENTUztcbmV4cG9ydCB0eXBlIFBlcmNlbnRhZ2UgPSBgJHtudW1iZXJ9JWA7XG5leHBvcnQgdHlwZSBEaXNwbGF5ID0gXCJub25lXCIgfCBcImlmX2hlYWRlcl9zaG93blwiIHwgXCJhbHdheXNcIjtcblxuLy8gSW50ZXJmYWNlIENyZWF0aW9uXG5leHBvcnQgaW50ZXJmYWNlIENvZGVTdHlsZXJUaGVtZU1vZGVDb2xvdXJzIHtcblx0Y29kZWJsb2NrOiB7XG5cdFx0YmFja2dyb3VuZENvbG91cjogQ29sb3VyO1xuXHRcdHRleHRDb2xvdXI6IENvbG91cjtcblx0fSxcblx0Z3V0dGVyOiB7XG5cdFx0YmFja2dyb3VuZENvbG91cjogQ29sb3VyO1xuXHRcdHRleHRDb2xvdXI6IENvbG91cjtcblx0XHRhY3RpdmVUZXh0Q29sb3VyOiBDb2xvdXI7XG5cdH0sXG5cdGhlYWRlcjoge1xuXHRcdGJhY2tncm91bmRDb2xvdXI6IENvbG91cjtcblx0XHR0aXRsZToge1xuXHRcdFx0dGV4dENvbG91cjogQ29sb3VyO1xuXHRcdH0sXG5cdFx0bGFuZ3VhZ2VUYWc6IHtcblx0XHRcdGJhY2tncm91bmRDb2xvdXI6IENvbG91cjtcblx0XHRcdHRleHRDb2xvdXI6IENvbG91cjtcblx0XHR9LFxuXHRcdGV4dGVybmFsUmVmZXJlbmNlOiB7XG5cdFx0XHRkaXNwbGF5UmVwb3NpdG9yeUNvbG91cjogQ29sb3VyO1xuXHRcdFx0ZGlzcGxheVZlcnNpb25Db2xvdXI6IENvbG91cjtcblx0XHRcdGRpc3BsYXlUaW1lc3RhbXBDb2xvdXI6IENvbG91cjtcblx0XHR9XG5cdFx0bGluZUNvbG91cjogQ29sb3VyO1xuXHR9LFxuXHRoaWdobGlnaHRzOiB7XG5cdFx0YWN0aXZlQ29kZWJsb2NrTGluZUNvbG91cjogQ29sb3VyO1xuXHRcdGFjdGl2ZUVkaXRvckxpbmVDb2xvdXI6IENvbG91cjtcblx0XHRkZWZhdWx0Q29sb3VyOiBDb2xvdXI7XG5cdFx0YWx0ZXJuYXRpdmVIaWdobGlnaHRzOiBSZWNvcmQ8c3RyaW5nLENvbG91cj47XG5cdH0sXG5cdGlubGluZToge1xuXHRcdGJhY2tncm91bmRDb2xvdXI6IENvbG91cjtcblx0XHR0ZXh0Q29sb3VyOiBDb2xvdXI7XG5cdFx0YWN0aXZlVGV4dENvbG91cjogQ29sb3VyO1xuXHRcdHRpdGxlVGV4dENvbG91cjogQ29sb3VyXG5cdH1cblx0YWR2YW5jZWQ6IHtcblx0XHRidXR0b25Db2xvdXI6IENvbG91cjtcblx0XHRidXR0b25BY3RpdmVDb2xvdXI6IENvbG91cjtcblx0fVxufVxuZXhwb3J0IGludGVyZmFjZSBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncyB7XG5cdGNvZGVibG9jazoge1xuXHRcdGxpbmVOdW1iZXJzOiBib29sZWFuO1xuXHRcdHVud3JhcExpbmVzOiBib29sZWFuO1xuXHRcdHdyYXBMaW5lc0FjdGl2ZTogYm9vbGVhbjtcblx0XHRjdXJ2YXR1cmU6IG51bWJlcjtcblx0fSxcblx0Z3V0dGVyOiB7XG5cdFx0aGlnaGxpZ2h0OiBib29sZWFuO1xuXHRcdGFjdGl2ZUxpbmU6IGJvb2xlYW47XG5cdH0sXG5cdGhlYWRlcjoge1xuXHRcdHRpdGxlOiB7XG5cdFx0XHR0ZXh0Rm9udDogc3RyaW5nO1xuXHRcdFx0dGV4dEJvbGQ6IGJvb2xlYW47XG5cdFx0XHR0ZXh0SXRhbGljOiBib29sZWFuO1xuXHRcdH0sXG5cdFx0bGFuZ3VhZ2VUYWc6IHtcblx0XHRcdGRpc3BsYXk6IERpc3BsYXk7XG5cdFx0XHR0ZXh0Rm9udDogc3RyaW5nO1xuXHRcdFx0dGV4dEJvbGQ6IGJvb2xlYW47XG5cdFx0XHR0ZXh0SXRhbGljOiBib29sZWFuO1xuXHRcdH0sXG5cdFx0bGFuZ3VhZ2VJY29uOiB7XG5cdFx0XHRkaXNwbGF5OiBEaXNwbGF5O1xuXHRcdFx0ZGlzcGxheUNvbG91cjogYm9vbGVhbjtcblx0XHR9LFxuXHRcdGV4dGVybmFsUmVmZXJlbmNlOiB7XG5cdFx0XHRkaXNwbGF5UmVwb3NpdG9yeTogYm9vbGVhbjtcblx0XHRcdGRpc3BsYXlWZXJzaW9uOiBib29sZWFuO1xuXHRcdFx0ZGlzcGxheVRpbWVzdGFtcDogYm9vbGVhbjtcblx0XHR9XG5cdFx0Zm9udFNpemU6IG51bWJlcjtcblx0XHRmb2xkUGxhY2Vob2xkZXI6IHN0cmluZztcblx0fSxcblx0aGlnaGxpZ2h0czoge1xuXHRcdGFjdGl2ZUNvZGVibG9ja0xpbmU6IGJvb2xlYW47XG5cdFx0YWN0aXZlRWRpdG9yTGluZTogYm9vbGVhbjtcblx0fSxcblx0aW5saW5lOiB7XG5cdFx0c3ludGF4SGlnaGxpZ2h0OiBib29sZWFuO1xuXHRcdHN0eWxlOiBib29sZWFuO1xuXHRcdGZvbnRXZWlnaHQ6IG51bWJlcjtcblx0XHRjdXJ2YXR1cmU6IG51bWJlcjtcblx0XHRwYWRkaW5nVmVydGljYWw6IG51bWJlcjtcblx0XHRwYWRkaW5nSG9yaXpvbnRhbDogbnVtYmVyO1xuXHRcdG1hcmdpbkhvcml6b250YWw6IG51bWJlcjtcblx0XHR0aXRsZUZvbnRXZWlnaHQ6IG51bWJlcjtcblx0fSxcblx0YWR2YW5jZWQ6IHtcblx0XHRncmFkaWVudEhpZ2hsaWdodHM6IGJvb2xlYW47XG5cdFx0Z3JhZGllbnRIaWdobGlnaHRzQ29sb3VyU3RvcDogUGVyY2VudGFnZTtcblx0XHRsYW5ndWFnZUJvcmRlckNvbG91cjogYm9vbGVhbjtcblx0XHRsYW5ndWFnZUJvcmRlcldpZHRoOiBudW1iZXI7XG5cdFx0aWNvblNpemU6IG51bWJlcjtcblx0fTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZVN0eWxlclRoZW1lQ29sb3VycyB7XG5cdGxpZ2h0OiBDb2RlU3R5bGVyVGhlbWVNb2RlQ29sb3Vycztcblx0ZGFyazogQ29kZVN0eWxlclRoZW1lTW9kZUNvbG91cnM7XG59XG5leHBvcnQgaW50ZXJmYWNlIENvZGVTdHlsZXJUaGVtZSB7XG5cdHNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncztcblx0Y29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZVN0eWxlclNldHRpbmdzIHtcblx0dGhlbWVzOiBSZWNvcmQ8c3RyaW5nLENvZGVTdHlsZXJUaGVtZT47XG5cdHNlbGVjdGVkVGhlbWU6IHN0cmluZztcblx0Y3VycmVudFRoZW1lOiBDb2RlU3R5bGVyVGhlbWU7XG5cdG5ld1RoZW1lOiBzdHJpbmc7XG5cdG5ld0hpZ2hsaWdodDogc3RyaW5nO1xuXHRleGFtcGxlQ29kZWJsb2NrUGFyYW1ldGVyczogc3RyaW5nO1xuXHRleGFtcGxlQ29kZWJsb2NrQ29udGVudDogc3RyaW5nO1xuXHRleGFtcGxlSW5saW5lQ29kZTogc3RyaW5nO1xuXHRkZWNvcmF0ZVByaW50OiBib29sZWFuO1xuXHRleGNsdWRlZExhbmd1YWdlczogc3RyaW5nO1xuXHRleHRlcm5hbFJlZmVyZW5jZVVwZGF0ZU9uTG9hZDogYm9vbGVhbjtcblx0cHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdDogc3RyaW5nO1xuXHRyZWRpcmVjdExhbmd1YWdlczogUmVjb3JkPHN0cmluZyx7Y29sb3VyPzogQ29sb3VyLCBpY29uPzogc3RyaW5nfT47XG5cdHZlcnNpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYW5ndWFnZSB7XG5cdGljb24/OiBzdHJpbmc7XG5cdGNvbG91cj86IENvbG91cjtcblx0aW5saW5lQ29tbWVudD86IEFycmF5PHN0cmluZz47XG5cdGJsb2NrQ29tbWVudD86IEFycmF5PHtcblx0XHRvcGVuOiBzdHJpbmc7XG5cdFx0Y2xvc2U6IHN0cmluZztcblx0XHRjb250aW51YXRpb24/OiBzdHJpbmc7IC8vIERlZmF1bHQ6IE5vbmVcblx0XHRtdWx0aWxpbmU/OiBzdHJpbmc7IC8vIERlZmF1bHQ6IHRydWVcblx0fT47XG59XG5cbi8vIFRoZW1lIERlZmF1bHRzXG5jb25zdCBUSEVNRV9ERUZBVUxUX1NFVFRJTkdTOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncyA9IHtcblx0Y29kZWJsb2NrOiB7XG5cdFx0bGluZU51bWJlcnM6IHRydWUsXG5cdFx0dW53cmFwTGluZXM6IHRydWUsXG5cdFx0d3JhcExpbmVzQWN0aXZlOiBmYWxzZSxcblx0XHRjdXJ2YXR1cmU6IDQsXG5cdH0sXG5cdGd1dHRlcjoge1xuXHRcdGhpZ2hsaWdodDogdHJ1ZSxcblx0XHRhY3RpdmVMaW5lOiBmYWxzZSxcblx0fSxcblx0aGVhZGVyOiB7XG5cdFx0dGl0bGU6IHtcblx0XHRcdHRleHRGb250OiBcIlwiLFxuXHRcdFx0dGV4dEJvbGQ6IGZhbHNlLFxuXHRcdFx0dGV4dEl0YWxpYzogdHJ1ZSxcblx0XHR9LFxuXHRcdGxhbmd1YWdlVGFnOiB7XG5cdFx0XHRkaXNwbGF5OiBcIm5vbmVcIixcblx0XHRcdHRleHRGb250OiBcIlwiLFxuXHRcdFx0dGV4dEJvbGQ6IHRydWUsXG5cdFx0XHR0ZXh0SXRhbGljOiBmYWxzZSxcblx0XHR9LFxuXHRcdGxhbmd1YWdlSWNvbjoge1xuXHRcdFx0ZGlzcGxheTogXCJub25lXCIsXG5cdFx0XHRkaXNwbGF5Q29sb3VyOiB0cnVlLFxuXHRcdH0sXG5cdFx0ZXh0ZXJuYWxSZWZlcmVuY2U6IHtcblx0XHRcdGRpc3BsYXlSZXBvc2l0b3J5OiB0cnVlLFxuXHRcdFx0ZGlzcGxheVZlcnNpb246IHRydWUsXG5cdFx0XHRkaXNwbGF5VGltZXN0YW1wOiB0cnVlLFxuXHRcdH0sXG5cdFx0Zm9udFNpemU6IDE0LFxuXHRcdGZvbGRQbGFjZWhvbGRlcjogXCJcIixcblx0fSxcblx0aGlnaGxpZ2h0czoge1xuXHRcdGFjdGl2ZUNvZGVibG9ja0xpbmU6IGZhbHNlLFxuXHRcdGFjdGl2ZUVkaXRvckxpbmU6IGZhbHNlLFxuXHR9LFxuXHRpbmxpbmU6IHtcblx0XHRzeW50YXhIaWdobGlnaHQ6IHRydWUsXG5cdFx0c3R5bGU6IHRydWUsXG5cdFx0Zm9udFdlaWdodDogNCxcblx0XHRjdXJ2YXR1cmU6IDYsXG5cdFx0cGFkZGluZ1ZlcnRpY2FsOiA1LFxuXHRcdHBhZGRpbmdIb3Jpem9udGFsOiA1LFxuXHRcdG1hcmdpbkhvcml6b250YWw6IDAsXG5cdFx0dGl0bGVGb250V2VpZ2h0OiA4LFxuXHR9LFxuXHRhZHZhbmNlZDoge1xuXHRcdGdyYWRpZW50SGlnaGxpZ2h0czogZmFsc2UsXG5cdFx0Z3JhZGllbnRIaWdobGlnaHRzQ29sb3VyU3RvcDogXCI3MCVcIixcblx0XHRsYW5ndWFnZUJvcmRlckNvbG91cjogZmFsc2UsXG5cdFx0bGFuZ3VhZ2VCb3JkZXJXaWR0aDogNSxcblx0XHRpY29uU2l6ZTogMjgsXG5cdH0sXG59O1xuZXhwb3J0IGNvbnN0IFRIRU1FX0ZBTExCQUNLX0NPTE9VUlM6IENvZGVTdHlsZXJUaGVtZU1vZGVDb2xvdXJzID0ge1xuXHRjb2RlYmxvY2s6IHtcblx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIi0tY29kZS1iYWNrZ3JvdW5kXCIsXG5cdFx0dGV4dENvbG91cjogXCItLWNvZGUtbm9ybWFsXCIsXG5cdH0sXG5cdGd1dHRlcjoge1xuXHRcdGJhY2tncm91bmRDb2xvdXI6IFwiLS1jb2RlLWJhY2tncm91bmRcIixcblx0XHR0ZXh0Q29sb3VyOiBcIi0tdGV4dC1mYWludFwiLFxuXHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiLS10ZXh0LW11dGVkXCIsXG5cdH0sXG5cdGhlYWRlcjoge1xuXHRcdGJhY2tncm91bmRDb2xvdXI6IFwiLS1jb2RlLWJhY2tncm91bmRcIixcblx0XHR0aXRsZToge1xuXHRcdFx0dGV4dENvbG91cjogXCItLWNvZGUtY29tbWVudFwiLFxuXHRcdH0sXG5cdFx0bGFuZ3VhZ2VUYWc6IHtcblx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFwiLS1jb2RlLWJhY2tncm91bmRcIixcblx0XHRcdHRleHRDb2xvdXI6IFwiLS1jb2RlLWNvbW1lbnRcIixcblx0XHR9LFxuXHRcdGV4dGVybmFsUmVmZXJlbmNlOiB7XG5cdFx0XHRkaXNwbGF5UmVwb3NpdG9yeUNvbG91cjogXCIjMDBGRkZGXCIsXG5cdFx0XHRkaXNwbGF5VmVyc2lvbkNvbG91cjogXCIjRkYwMEZGXCIsXG5cdFx0XHRkaXNwbGF5VGltZXN0YW1wQ29sb3VyOiBcIiM4MDgwODBcIixcblx0XHR9LFxuXHRcdGxpbmVDb2xvdXI6IFwiLS1jb2xvci1iYXNlLTMwXCIsXG5cdH0sXG5cdGhpZ2hsaWdodHM6IHtcblx0XHRhY3RpdmVDb2RlYmxvY2tMaW5lQ29sb3VyOiBcIi0tY29sb3ItYmFzZS0zMFwiLFxuXHRcdGFjdGl2ZUVkaXRvckxpbmVDb2xvdXI6IFwiLS1jb2xvci1iYXNlLTIwXCIsXG5cdFx0ZGVmYXVsdENvbG91cjogXCItLXRleHQtaGlnaGxpZ2h0LWJnXCIsXG5cdFx0YWx0ZXJuYXRpdmVIaWdobGlnaHRzOiB7fSxcblx0fSxcblx0aW5saW5lOiB7XG5cdFx0YmFja2dyb3VuZENvbG91cjogXCItLWNvZGUtYmFja2dyb3VuZFwiLFxuXHRcdHRleHRDb2xvdXI6IFwiLS1jb2RlLW5vcm1hbFwiLFxuXHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiLS1jb2RlLW5vcm1hbFwiLFxuXHRcdHRpdGxlVGV4dENvbG91cjogXCItLWNvZGUtY29tbWVudFwiLFxuXHR9LFxuXHRhZHZhbmNlZDoge1xuXHRcdGJ1dHRvbkNvbG91cjogXCItLXRleHQtbXV0ZWRcIixcblx0XHRidXR0b25BY3RpdmVDb2xvdXI6IFwiLS10ZXh0LW5vcm1hbFwiLFxuXHR9XG59O1xuXG4vLyBDb2xvciBTY2hlbWVzXG5jb25zdCBTT0xBUklaRUQ6IFJlY29yZDxzdHJpbmcsQ29sb3VyPiA9IHtcblx0XCJiYXNlMDNcIjogXCIjMDAyYjM2XCIsXG5cdFwiYmFzZTAyXCI6IFwiIzA3MzY0MlwiLFxuXHRcImJhc2UwMVwiOiBcIiM1ODZlNzVcIixcblx0XCJiYXNlMDBcIjogXCIjNjU3YjgzXCIsXG5cdFwiYmFzZTBcIjogXCIjODM5NDk2XCIsXG5cdFwiYmFzZTFcIjogXCIjOTNhMWExXCIsXG5cdFwiYmFzZTJcIjogXCIjZWVlOGQ1XCIsXG5cdFwiYmFzZTNcIjogXCIjZmRmNmUzXCIsXG5cdFwieWVsbG93XCI6IFwiI2I1ODkwMFwiLFxuXHRcIm9yYW5nZVwiOiBcIiNjYjRiMTZcIixcblx0XCJyZWRcIjogXCIjZGMzMjJmXCIsXG5cdFwibWFnZW50YVwiOiBcIiNkMzM2ODJcIixcblx0XCJ2aW9sZXRcIjogXCIjNmM3MWM0XCIsXG5cdFwiYmx1ZVwiOiBcIiMyNjhiZDJcIixcblx0XCJjeWFuXCI6IFwiIzJhYTE5OFwiLFxuXHRcImdyZWVuXCI6IFwiIzg1OTkwMFwiLFxufTtcbi8vIGNvbnN0IENBVFBVQ0NJTjogUmVjb3JkPHN0cmluZyxDb2xvdXI+ID0ge1xuLy8gXHRsYXR0ZToge1xuLy8gXHRcdGJhY2tncm91bmRDb2xvcjogXCIjZWZmMWY1XCIsXG4vLyBcdFx0Zm9yZWdyb3VuZENvbG9yOiBcIiM0YzRmNjlcIixcbi8vIFx0XHRzZWxlY3Rpb25Db2xvcjogXCIjYWNiMGJlXCIsXG4vLyBcdFx0Y3Vyc29yQ29sb3I6IFwiI2RjOGE3OFwiLFxuLy8gXHRcdGN1cnNvckFjY2VudENvbG9yOiBcIiNlZmYxZjVcIixcbi8vIFx0XHRjb2xvcnM6IHtcbi8vIFx0XHRcdGJsYWNrOiBcIiM1YzVmNzdcIixcbi8vIFx0XHRcdGJsdWU6IFwiIzFlNjZmNVwiLFxuLy8gXHRcdFx0cmVkOiBcIiNkMjBmMzlcIixcbi8vIFx0XHRcdGdyZWVuOiBcIiM0MGEwMmJcIixcbi8vIFx0XHRcdHllbGxvdzogXCIjZGY4ZTFkXCIsXG4vLyBcdFx0XHRtYWdlbnRhOiBcIiNlYTc2Y2JcIixcbi8vIFx0XHRcdGN5YW46IFwiIzE3OTI5OVwiLFxuLy8gXHRcdFx0d2hpdGU6IFwiI2FjYjBiZVwiLFxuLy8gXHRcdFx0bGlnaHRCbGFjazogXCIjNmM2Zjg1XCIsXG4vLyBcdFx0XHRsaWdodFdoaXRlOiBcIiNiY2MwY2NcIixcbi8vIFx0XHRcdGxpZ2h0Qmx1ZTogXCIjMWU2NmY1XCIsXG4vLyBcdFx0XHRsaWdodFJlZDogXCIjZDIwZjM5XCIsXG4vLyBcdFx0XHRsaWdodEdyZWVuOiBcIiM0MGEwMmJcIixcbi8vIFx0XHRcdGxpZ2h0WWVsbG93OiBcIiNkZjhlMWRcIixcbi8vIFx0XHRcdGxpZ2h0TWFnZW50YTogXCIjZWE3NmNiXCIsXG4vLyBcdFx0XHRsaWdodEN5YW46IFwiIzE3OTI5OVwiLFxuLy8gXHRcdH0sXG4vLyBcdH0sXG4vLyBcdGZyYXBwXHUwMEU5OiB7XG4vLyBcdFx0YmFja2dyb3VuZENvbG9yOiBcIiMzMDM0NDZcIixcbi8vIFx0XHRmb3JlZ3JvdW5kQ29sb3I6IFwiI2M2ZDBmNVwiLFxuLy8gXHRcdHNlbGVjdGlvbkNvbG9yOiBcIiM2MjY4ODBcIixcbi8vIFx0XHRjdXJzb3JDb2xvcjogXCIjZjJkNWNmXCIsXG4vLyBcdFx0Y3Vyc29yQWNjZW50Q29sb3I6IFwiIzIzMjYzNFwiLFxuLy8gXHRcdGNvbG9yczoge1xuLy8gXHRcdFx0YmxhY2s6IFwiIzUxNTc2ZFwiLFxuLy8gXHRcdFx0Ymx1ZTogXCIjOGNhYWVlXCIsXG4vLyBcdFx0XHRyZWQ6IFwiI2U3ODI4NFwiLFxuLy8gXHRcdFx0Z3JlZW46IFwiI2E2ZDE4OVwiLFxuLy8gXHRcdFx0eWVsbG93OiBcIiNlNWM4OTBcIixcbi8vIFx0XHRcdG1hZ2VudGE6IFwiI2Y0YjhlNFwiLFxuLy8gXHRcdFx0Y3lhbjogXCIjODFjOGJlXCIsXG4vLyBcdFx0XHR3aGl0ZTogXCIjYjViZmUyXCIsXG4vLyBcdFx0XHRsaWdodEJsYWNrOiBcIiM2MjY4ODBcIixcbi8vIFx0XHRcdGxpZ2h0V2hpdGU6IFwiI2E1YWRjZVwiLFxuLy8gXHRcdFx0bGlnaHRCbHVlOiBcIiM4Y2FhZWVcIixcbi8vIFx0XHRcdGxpZ2h0UmVkOiBcIiNlNzgyODRcIixcbi8vIFx0XHRcdGxpZ2h0R3JlZW46IFwiI2E2ZDE4OVwiLFxuLy8gXHRcdFx0bGlnaHRZZWxsb3c6IFwiI2U1Yzg5MFwiLFxuLy8gXHRcdFx0bGlnaHRNYWdlbnRhOiBcIiNmNGI4ZTRcIixcbi8vIFx0XHRcdGxpZ2h0Q3lhbjogXCIjODFjOGJlXCIsXG4vLyBcdFx0fSxcbi8vIFx0fSxcbi8vIFx0bWFjY2hpYXRvOiB7XG4vLyBcdFx0YmFja2dyb3VuZENvbG9yOiBcIiMyNDI3M2FcIixcbi8vIFx0XHRmb3JlZ3JvdW5kQ29sb3I6IFwiI2NhZDNmNVwiLFxuLy8gXHRcdHNlbGVjdGlvbkNvbG9yOiBcIiM1YjYwNzhcIixcbi8vIFx0XHRjdXJzb3JDb2xvcjogXCIjZjRkYmQ2XCIsXG4vLyBcdFx0Y3Vyc29yQWNjZW50Q29sb3I6IFwiIzE4MTkyNlwiLFxuLy8gXHRcdGNvbG9yczoge1xuLy8gXHRcdFx0YmxhY2s6IFwiIzQ5NGQ2NFwiLFxuLy8gXHRcdFx0Ymx1ZTogXCIjOGFhZGY0XCIsXG4vLyBcdFx0XHRyZWQ6IFwiI2VkODc5NlwiLFxuLy8gXHRcdFx0Z3JlZW46IFwiI2E2ZGE5NVwiLFxuLy8gXHRcdFx0eWVsbG93OiBcIiNlZWQ0OWZcIixcbi8vIFx0XHRcdG1hZ2VudGE6IFwiI2Y1YmRlNlwiLFxuLy8gXHRcdFx0Y3lhbjogXCIjOGJkNWNhOGJkNWNhXCIsXG4vLyBcdFx0XHR3aGl0ZTogXCIjYjhjMGUwXCIsXG4vLyBcdFx0XHRsaWdodEJsYWNrOiBcIiM1YjYwNzhcIixcbi8vIFx0XHRcdGxpZ2h0V2hpdGU6IFwiI2E1YWRjYlwiLFxuLy8gXHRcdFx0bGlnaHRCbHVlOiBcIiM4YWFkZjRcIixcbi8vIFx0XHRcdGxpZ2h0UmVkOiBcIiNlZDg3OTZcIixcbi8vIFx0XHRcdGxpZ2h0R3JlZW46IFwiI2E2ZGE5NVwiLFxuLy8gXHRcdFx0bGlnaHRZZWxsb3c6IFwiI2VlZDQ5ZlwiLFxuLy8gXHRcdFx0bGlnaHRNYWdlbnRhOiBcIiNmNWJkZTZcIixcbi8vIFx0XHRcdGxpZ2h0Q3lhbjogXCIjOGJkNWNhXCIsXG4vLyBcdFx0fSxcbi8vIFx0fSxcbi8vIFx0bW9jaGE6IHtcbi8vIFx0XHRiYWNrZ3JvdW5kQ29sb3I6IFwiIzFlMWUyZVwiLFxuLy8gXHRcdGZvcmVncm91bmRDb2xvcjogXCIjY2RkNmY0XCIsXG4vLyBcdFx0c2VsZWN0aW9uQ29sb3I6IFwiIzU4NWI3MFwiLFxuLy8gXHRcdGN1cnNvckNvbG9yOiBcIiNmNWUwZGNcIixcbi8vIFx0XHRjdXJzb3JBY2NlbnRDb2xvcjogXCIjMTExMTFiXCIsXG4vLyBcdFx0Y29sb3JzOiB7XG4vLyBcdFx0XHRibGFjazogXCIjNDU0NzVBXCIsXG4vLyBcdFx0XHRibHVlOiBcIiM4OWI0ZmFcIixcbi8vIFx0XHRcdHJlZDogXCIjZjM4YmE4XCIsXG4vLyBcdFx0XHRncmVlbjogXCIjYTZlM2ExXCIsXG4vLyBcdFx0XHR5ZWxsb3c6IFwiI2Y5ZTJhZlwiLFxuLy8gXHRcdFx0bWFnZW50YTogXCIjZjVjMmU3XCIsXG4vLyBcdFx0XHRjeWFuOiBcIiM5NGUyZDVcIixcbi8vIFx0XHRcdHdoaXRlOiBcIiNiYWMyZGVcIixcbi8vIFx0XHRcdGxpZ2h0QmxhY2s6IFwiIzU4NWI3MFwiLFxuLy8gXHRcdFx0bGlnaHRXaGl0ZTogXCIjYTZhZGM4XCIsXG4vLyBcdFx0XHRsaWdodEJsdWU6IFwiIzg5YjRmYVwiLFxuLy8gXHRcdFx0bGlnaHRSZWQ6IFwiI2YzOGJhOFwiLFxuLy8gXHRcdFx0bGlnaHRHcmVlbjogXCIjYTZlM2ExXCIsXG4vLyBcdFx0XHRsaWdodFllbGxvdzogXCIjZjllMmFmXCIsXG4vLyBcdFx0XHRsaWdodE1hZ2VudGE6IFwiI2Y1YzJlN1wiLFxuLy8gXHRcdFx0bGlnaHRDeWFuOiBcIiM5NGUyZDVcIixcbi8vIFx0XHR9LFxuLy8gXHR9LFxuLy8gfTtcbi8vIGNvbnN0IEdSVVZCT1g6IFJlY29yZDxzdHJpbmcsQ29sb3VyPiA9IHtcbi8vIFx0ZGFyazBfaGFyZDogXCIjMWQyMDIxXCIsXG4vLyBcdGRhcmswOiBcIiMyODI4MjhcIixcbi8vIFx0ZGFyazBfc29mdDogXCIjMzIzMDJmXCIsXG4vLyBcdGRhcmsxOiBcIiMzYzM4MzZcIixcbi8vIFx0ZGFyazI6IFwiIzUwNDk0NVwiLFxuLy8gXHRkYXJrMzogXCIjNjY1YzU0XCIsXG4vLyBcdGRhcms0OiBcIiM3YzZmNjRcIixcblxuLy8gXHRncmF5XzI0NTogXCIjOTI4Mzc0XCIsXG4vLyBcdGdyYXlfMjQ0OiBcIiM5MjgzNzRcIixcblxuLy8gXHRsaWdodDBfaGFyZDogXCIjZjlmNWQ3XCIsXG4vLyBcdGxpZ2h0MDogXCIjZmJmMWM3XCIsXG4vLyBcdGxpZ2h0MF9zb2Z0OiBcIiNmMmU1YmNcIixcbi8vIFx0bGlnaHQxOiBcIiNlYmRiYjJcIixcbi8vIFx0bGlnaHQyOiBcIiNkNWM0YTFcIixcbi8vIFx0bGlnaHQzOiBcIiNiZGFlOTNcIixcbi8vIFx0bGlnaHQ0OiBcIiNhODk5ODRcIixcblxuLy8gXHRicmlnaHRfcmVkOiBcIiNmYjQ5MzRcIixcbi8vIFx0YnJpZ2h0X2dyZWVuOiBcIiNiOGJiMjZcIixcbi8vIFx0YnJpZ2h0X3llbGxvdzogXCIjZmFiZDJmXCIsXG4vLyBcdGJyaWdodF9ibHVlOiBcIiM4M2E1OThcIixcbi8vIFx0YnJpZ2h0X3B1cnBsZTogXCIjZDM4NjliXCIsXG4vLyBcdGJyaWdodF9hcXVhOiBcIiM4ZWMwN2NcIixcbi8vIFx0YnJpZ2h0X29yYW5nZTogXCIjZmU4MDE5XCIsXG5cbi8vIFx0bmV1dHJhbF9yZWQ6IFwiI2NjMjQxZFwiLFxuLy8gXHRuZXV0cmFsX2dyZWVuOiBcIiM5ODk3MWFcIixcbi8vIFx0bmV1dHJhbF95ZWxsb3c6IFwiI2Q3OTkyMVwiLFxuLy8gXHRuZXV0cmFsX2JsdWU6IFwiIzQ1ODU4OFwiLFxuLy8gXHRuZXV0cmFsX3B1cnBsZTogXCIjYjE2Mjg2XCIsXG4vLyBcdG5ldXRyYWxfYXF1YTogXCIjNjg5ZDZhXCIsXG4vLyBcdG5ldXRyYWxfb3JhbmdlOiBcIiNkNjVkMGVcIixcblxuLy8gXHRmYWRlZF9yZWQ6IFwiIzlkMDAwNlwiLFxuLy8gXHRmYWRlZF9ncmVlbjogXCIjNzk3NDBlXCIsXG4vLyBcdGZhZGVkX3llbGxvdzogXCIjYjU3NjE0XCIsXG4vLyBcdGZhZGVkX2JsdWU6IFwiIzA3NjY3OFwiLFxuLy8gXHRmYWRlZF9wdXJwbGU6IFwiIzhmM2Y3MVwiLFxuLy8gXHRmYWRlZF9hcXVhOiBcIiM0MjdiNThcIixcbi8vIFx0ZmFkZWRfb3JhbmdlOiBcIiNhZjNhMDNcIixcbi8vIH07XG4vLyBjb25zdCBOT1JEOiBSZWNvcmQ8c3RyaW5nLENvbG91cj4gPSB7XG5cbi8vIH07XG4vLyBjb25zdCBEUkFDVUxBOiBSZWNvcmQ8c3RyaW5nLENvbG91cj4gPSB7XG5cbi8vIH07XG5cbi8vIFRoZW1lIENyZWF0aW9uXG5jb25zdCBERUZBVUxUX1RIRU1FOiBDb2RlU3R5bGVyVGhlbWUgPSB7XG5cdHNldHRpbmdzOiBUSEVNRV9ERUZBVUxUX1NFVFRJTkdTLFxuXHRjb2xvdXJzOiB7XG5cdFx0bGlnaHQ6IFRIRU1FX0ZBTExCQUNLX0NPTE9VUlMsXG5cdFx0ZGFyazogVEhFTUVfRkFMTEJBQ0tfQ09MT1VSUyxcblx0fSxcbn07XG5jb25zdCBTT0xBUklaRURfVEhFTUU6IENvZGVTdHlsZXJUaGVtZSA9IHtcblx0c2V0dGluZ3M6IFRIRU1FX0RFRkFVTFRfU0VUVElOR1MsXG5cdGNvbG91cnM6IHtcblx0XHRsaWdodDoge1xuXHRcdFx0Y29kZWJsb2NrOiB7XG5cdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFNPTEFSSVpFRC5iYXNlMyxcblx0XHRcdFx0dGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG5cdFx0XHR9LFxuXHRcdFx0Z3V0dGVyOiB7XG5cdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFNPTEFSSVpFRC5iYXNlMixcblx0XHRcdFx0dGV4dENvbG91cjogXCIjNmM2YzZjXCIsXG5cdFx0XHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiIzhjOGM4Y1wiLFxuXHRcdFx0fSxcblx0XHRcdGhlYWRlcjoge1xuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIiNENUNDQjRcIixcblx0XHRcdFx0dGl0bGU6IHtcblx0XHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiM4NjY3MDRcIixcblx0XHRcdFx0fSxcblx0XHRcdFx0bGFuZ3VhZ2VUYWc6IHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIiNCOEI1QUFcIixcblx0XHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNDMjVGMzBcIixcblx0XHRcdFx0fSxcblx0XHRcdFx0ZXh0ZXJuYWxSZWZlcmVuY2U6IHtcblx0XHRcdFx0XHRkaXNwbGF5UmVwb3NpdG9yeUNvbG91cjogXCIjOTQxMTAwXCIsXG5cdFx0XHRcdFx0ZGlzcGxheVZlcnNpb25Db2xvdXI6IFwiI2ZmOTMwMFwiLFxuXHRcdFx0XHRcdGRpc3BsYXlUaW1lc3RhbXBDb2xvdXI6IFwiIzgwODA4MFwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRsaW5lQ29sb3VyOiBcIiNFREQ0ODlcIixcblx0XHRcdH0sXG5cdFx0XHRoaWdobGlnaHRzOiB7XG5cdFx0XHRcdGFjdGl2ZUNvZGVibG9ja0xpbmVDb2xvdXI6IFNPTEFSSVpFRC5iYXNlMixcblx0XHRcdFx0YWN0aXZlRWRpdG9yTGluZUNvbG91cjogXCIjNjA0NjA2MzNcIixcblx0XHRcdFx0ZGVmYXVsdENvbG91cjogXCIjRTlERkJBXCIsXG5cdFx0XHRcdGFsdGVybmF0aXZlSGlnaGxpZ2h0czoge30sXG5cdFx0XHR9LFxuXHRcdFx0aW5saW5lOiB7XG5cdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFNPTEFSSVpFRC5iYXNlMyxcblx0XHRcdFx0dGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG5cdFx0XHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiI2JhYmFiYVwiLFxuXHRcdFx0XHR0aXRsZVRleHRDb2xvdXI6IFwiI0MyNUYzMFwiLFxuXHRcdFx0fSxcblx0XHRcdGFkdmFuY2VkOiB7XG5cdFx0XHRcdGJ1dHRvbkNvbG91cjogXCItLXRleHQtbXV0ZWRcIixcblx0XHRcdFx0YnV0dG9uQWN0aXZlQ29sb3VyOiBcIi0tdGV4dC1ub3JtYWxcIixcblx0XHRcdH1cblx0XHR9LFxuXHRcdGRhcms6IHtcblx0XHRcdGNvZGVibG9jazoge1xuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBTT0xBUklaRUQuYmFzZTAzLFxuXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcblx0XHRcdH0sXG5cdFx0XHRndXR0ZXI6IHtcblx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogU09MQVJJWkVELmJhc2UwMixcblx0XHRcdFx0dGV4dENvbG91cjogXCIjNmM2YzZjXCIsXG5cdFx0XHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiIzRjNGM0Y1wiLFxuXHRcdFx0fSxcblx0XHRcdGhlYWRlcjoge1xuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIiMwYTQ1NTRcIixcblx0XHRcdFx0dGl0bGU6IHtcblx0XHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNkYWRhZGFcIixcblx0XHRcdFx0fSxcblx0XHRcdFx0bGFuZ3VhZ2VUYWc6IHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIiMwMDgwODBcIixcblx0XHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiMwMDAwMDBcIixcblx0XHRcdFx0fSxcblx0XHRcdFx0ZXh0ZXJuYWxSZWZlcmVuY2U6IHtcblx0XHRcdFx0XHRkaXNwbGF5UmVwb3NpdG9yeUNvbG91cjogXCIjMDBGRkZGXCIsXG5cdFx0XHRcdFx0ZGlzcGxheVZlcnNpb25Db2xvdXI6IFwiIzk0MzdmZlwiLFxuXHRcdFx0XHRcdGRpc3BsYXlUaW1lc3RhbXBDb2xvdXI6IFwiIzgwODA4MFwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRsaW5lQ29sb3VyOiBcIiM0NmNjZWRcIixcblx0XHRcdH0sXG5cdFx0XHRoaWdobGlnaHRzOiB7XG5cdFx0XHRcdGFjdGl2ZUNvZGVibG9ja0xpbmVDb2xvdXI6IFNPTEFSSVpFRC5iYXNlMDIsXG5cdFx0XHRcdGFjdGl2ZUVkaXRvckxpbmVDb2xvdXI6IFwiIzQ2OGVlYjMzXCIsXG5cdFx0XHRcdGRlZmF1bHRDb2xvdXI6IFwiIzA1NGI1Y1wiLFxuXHRcdFx0XHRhbHRlcm5hdGl2ZUhpZ2hsaWdodHM6IHt9LFxuXHRcdFx0fSxcblx0XHRcdGlubGluZToge1xuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBTT0xBUklaRUQuYmFzZTAzLFxuXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcblx0XHRcdFx0YWN0aXZlVGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG5cdFx0XHRcdHRpdGxlVGV4dENvbG91cjogXCIjMDAwMDAwXCIsXG5cdFx0XHR9LFxuXHRcdFx0YWR2YW5jZWQ6IHtcblx0XHRcdFx0YnV0dG9uQ29sb3VyOiBcIi0tdGV4dC1tdXRlZFwiLFxuXHRcdFx0XHRidXR0b25BY3RpdmVDb2xvdXI6IFwiLS10ZXh0LW5vcm1hbFwiLFxuXHRcdFx0fVxuXHRcdH0sXG5cdH0sXG59O1xuLy8gY29uc3QgTk9SRF9USEVNRSA9IHtcblxuLy8gfTtcbi8vIGNvbnN0IERSQUNVTEFfVEhFTUUgPSB7XG5cbi8vIH07XG4vLyBjb25zdCBDQVRQVUNDSU5fVEhFTUUgPSB7XG5cbi8vIH07XG4vLyBjb25zdCBHUlVWQk9YX1RIRU1FID0ge1xuLy8gXHRzZXR0aW5nczogVEhFTUVfREVGQVVMVF9TRVRUSU5HUyxcbi8vIFx0Y29sb3Vyczoge1xuLy8gXHRcdGxpZ2h0OiB7XG4vLyBcdFx0XHRjb2RlYmxvY2s6IHtcbi8vIFx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogR1JVVkJPWC5saWdodDAsXG4vLyBcdFx0XHRcdHRleHRDb2xvdXI6IFwiI2JhYmFiYVwiLFxuLy8gXHRcdFx0fSxcbi8vIFx0XHRcdGd1dHRlcjoge1xuLy8gXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBHUlVWQk9YLmxpZ2h0MSxcbi8vIFx0XHRcdFx0dGV4dENvbG91cjogXCIjNmM2YzZjXCIsXG4vLyBcdFx0XHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiIzhjOGM4Y1wiLFxuLy8gXHRcdFx0fSxcbi8vIFx0XHRcdGhlYWRlcjoge1xuLy8gXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIiNENUNDQjRcIixcbi8vIFx0XHRcdFx0dGl0bGU6IHtcbi8vIFx0XHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiM4NjY3MDRcIixcbi8vIFx0XHRcdFx0fSxcbi8vIFx0XHRcdFx0bGFuZ3VhZ2VUYWc6IHtcbi8vIFx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIiNCOEI1QUFcIixcbi8vIFx0XHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNDMjVGMzBcIixcbi8vIFx0XHRcdFx0fSxcbi8vIFx0XHRcdFx0bGluZUNvbG91cjogXCIjRURENDg5XCIsXG4vLyBcdFx0XHR9LFxuLy8gXHRcdFx0aGlnaGxpZ2h0czoge1xuLy8gXHRcdFx0XHRhY3RpdmVDb2RlYmxvY2tMaW5lQ29sb3VyOiBHUlVWQk9YLmxpZ2h0MSxcbi8vIFx0XHRcdFx0YWN0aXZlRWRpdG9yTGluZUNvbG91cjogXCIjNjA0NjA2MzNcIixcbi8vIFx0XHRcdFx0ZGVmYXVsdENvbG91cjogXCIjRTlERkJBXCIsXG4vLyBcdFx0XHRcdGFsdGVybmF0aXZlSGlnaGxpZ2h0czoge30sXG4vLyBcdFx0XHR9LFxuLy8gXHRcdFx0aW5saW5lOiB7XG4vLyBcdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IEdSVVZCT1gubGlnaHQwLFxuLy8gXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcbi8vIFx0XHRcdFx0YWN0aXZlVGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG4vLyBcdFx0XHRcdHRpdGxlVGV4dENvbG91cjogXCIjQzI1RjMwXCIsXG4vLyBcdFx0XHR9LFxuLy8gXHRcdFx0YWR2YW5jZWQ6IHtcbi8vIFx0XHRcdFx0YnV0dG9uQ29sb3VyOiBcIi0tdGV4dC1tdXRlZFwiLFxuLy8gXHRcdFx0XHRidXR0b25BY3RpdmVDb2xvdXI6IFwiLS10ZXh0LW5vcm1hbFwiLFxuLy8gXHRcdFx0fVxuLy8gXHRcdH0sXG4vLyBcdFx0ZGFyazoge1xuLy8gXHRcdFx0Y29kZWJsb2NrOiB7XG4vLyBcdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IEdSVVZCT1guZGFyazAsXG4vLyBcdFx0XHRcdHRleHRDb2xvdXI6IFwiI2JhYmFiYVwiLFxuLy8gXHRcdFx0fSxcbi8vIFx0XHRcdGd1dHRlcjoge1xuLy8gXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBHUlVWQk9YLmRhcmsxLFxuLy8gXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiM2YzZjNmNcIixcbi8vIFx0XHRcdFx0YWN0aXZlVGV4dENvbG91cjogXCIjNGM0YzRjXCIsXG4vLyBcdFx0XHR9LFxuLy8gXHRcdFx0aGVhZGVyOiB7XG4vLyBcdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFwiIzBhNDU1NFwiLFxuLy8gXHRcdFx0XHR0aXRsZToge1xuLy8gXHRcdFx0XHRcdHRleHRDb2xvdXI6IFwiI2RhZGFkYVwiLFxuLy8gXHRcdFx0XHR9LFxuLy8gXHRcdFx0XHRsYW5ndWFnZVRhZzoge1xuLy8gXHRcdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFwiIzAwODA4MFwiLFxuLy8gXHRcdFx0XHRcdHRleHRDb2xvdXI6IFwiIzAwMDAwMFwiLFxuLy8gXHRcdFx0XHR9LFxuLy8gXHRcdFx0XHRsaW5lQ29sb3VyOiBcIiM0NmNjZWRcIixcbi8vIFx0XHRcdH0sXG4vLyBcdFx0XHRoaWdobGlnaHRzOiB7XG4vLyBcdFx0XHRcdGFjdGl2ZUNvZGVibG9ja0xpbmVDb2xvdXI6IEdSVVZCT1guZGFyazEsXG4vLyBcdFx0XHRcdGFjdGl2ZUVkaXRvckxpbmVDb2xvdXI6IFwiIzQ2OGVlYjMzXCIsXG4vLyBcdFx0XHRcdGRlZmF1bHRDb2xvdXI6IFwiIzA1NGI1Y1wiLFxuLy8gXHRcdFx0XHRhbHRlcm5hdGl2ZUhpZ2hsaWdodHM6IHt9LFxuLy8gXHRcdFx0fSxcbi8vIFx0XHRcdGlubGluZToge1xuLy8gXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBHUlVWQk9YLmRhcmswLFxuLy8gXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcbi8vIFx0XHRcdFx0YWN0aXZlVGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG4vLyBcdFx0XHRcdHRpdGxlVGV4dENvbG91cjogXCIjMDAwMDAwXCIsXG4vLyBcdFx0XHR9LFxuLy8gXHRcdFx0YWR2YW5jZWQ6IHtcbi8vIFx0XHRcdFx0YnV0dG9uQ29sb3VyOiBcIi0tdGV4dC1tdXRlZFwiLFxuLy8gXHRcdFx0XHRidXR0b25BY3RpdmVDb2xvdXI6IFwiLS10ZXh0LW5vcm1hbFwiLFxuLy8gXHRcdFx0fVxuLy8gXHRcdH0sXG4vLyBcdH0sXG4vLyB9O1xuXG5leHBvcnQgY29uc3QgSU5CVUlMVF9USEVNRVM6IFJlY29yZDxzdHJpbmcsQ29kZVN0eWxlclRoZW1lPiA9IHtcblx0XCJEZWZhdWx0XCI6IERFRkFVTFRfVEhFTUUsXG5cdFwiU29sYXJpemVkXCI6IFNPTEFSSVpFRF9USEVNRSxcbn07XG5cbi8vIERlZmF1bHQgVmFsdWVzXG5leHBvcnQgY29uc3QgRVhBTVBMRV9DT0RFQkxPQ0tfUEFSQU1FVEVSUyA9IFwicHl0aG9uIHRpdGxlOmZvb1wiO1xuZXhwb3J0IGNvbnN0IEVYQU1QTEVfQ09ERUJMT0NLX0NPTlRFTlQgPSBcInByaW50KFxcXCJUaGlzIGxpbmUgaXMgdmVyeSBsb25nIGFuZCBzaG91bGQgYmUgdXNlZCBhcyBhbiBleGFtcGxlIGZvciBob3cgdGhlIHBsdWdpbiBkZWFscyB3aXRoIHdyYXBwaW5nIGFuZCB1bndyYXBwaW5nIHZlcnkgbG9uZyBsaW5lcyBnaXZlbiB0aGUgY2hvaWNlIG9mIGNvZGVibG9jayBwYXJhbWV0ZXJzIGFuZCBzZXR0aW5ncy5cXFwiKVxcbnByaW50KFxcXCJUaGlzIGxpbmUgaXMgaGlnaGxpZ2h0ZWQuXFxcIilcIjtcbmV4cG9ydCBjb25zdCBFWEFNUExFX0lOTElORV9DT0RFID0gXCJ7cHl0aG9uIGljb24gdGl0bGU6Zm9vfSBwcmludChcXFwiVGhpcyBpcyBpbmxpbmUgY29kZVxcXCIpXCI7XG5leHBvcnQgY29uc3QgRVhDTFVERURfTEFOR1VBR0VTID0gXCJhZC0qLCByZWZlcmVuY2VcIjtcbmV4cG9ydCBjb25zdCBXSElURUxJU1RfQ09ERUJMT0NLUyA9IFwicnVuLSosIGluY2x1ZGVcIjtcblxuLy8gUGx1Z2luIGRlZmF1bHQgc2V0dGluZ3NcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NFVFRJTkdTOiBDb2RlU3R5bGVyU2V0dGluZ3MgPSB7XG5cdHRoZW1lczogc3RydWN0dXJlZENsb25lKElOQlVJTFRfVEhFTUVTKSxcblx0c2VsZWN0ZWRUaGVtZTogXCJEZWZhdWx0XCIsXG5cdGN1cnJlbnRUaGVtZTogc3RydWN0dXJlZENsb25lKERFRkFVTFRfVEhFTUUpLFxuXHRuZXdUaGVtZTogXCJcIixcblx0bmV3SGlnaGxpZ2h0OiBcIlwiLFxuXHRleGFtcGxlQ29kZWJsb2NrUGFyYW1ldGVyczogRVhBTVBMRV9DT0RFQkxPQ0tfUEFSQU1FVEVSUyxcblx0ZXhhbXBsZUNvZGVibG9ja0NvbnRlbnQ6IEVYQU1QTEVfQ09ERUJMT0NLX0NPTlRFTlQsXG5cdGV4YW1wbGVJbmxpbmVDb2RlOiBFWEFNUExFX0lOTElORV9DT0RFLFxuXHRkZWNvcmF0ZVByaW50OiB0cnVlLFxuXHRleGNsdWRlZExhbmd1YWdlczogRVhDTFVERURfTEFOR1VBR0VTLFxuXHRleHRlcm5hbFJlZmVyZW5jZVVwZGF0ZU9uTG9hZDogZmFsc2UsXG5cdHByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3Q6IFdISVRFTElTVF9DT0RFQkxPQ0tTLFxuXHRyZWRpcmVjdExhbmd1YWdlczoge30sXG5cdHZlcnNpb246IFwiMS4xLjdcIixcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0U2V0dGluZ3Moc2V0dGluZ3M6IENvZGVTdHlsZXJTZXR0aW5ncyk6IENvZGVTdHlsZXJTZXR0aW5ncyB7XG5cdGlmICh0eXBlb2Ygc2V0dGluZ3M/LnZlcnNpb24gPT09IFwidW5kZWZpbmVkXCIpXG5cdFx0cmV0dXJuIHNldHRpbmdzQ2xlYXIoKTtcblx0d2hpbGUgKHNlbXZlck5ld2VyKERFRkFVTFRfU0VUVElOR1MudmVyc2lvbixzZXR0aW5ncy52ZXJzaW9uKSkge1xuXHRcdGlmIChzZXR0aW5ncy52ZXJzaW9uIGluIHNldHRpbmdzVXBkYXRlcnMpXG5cdFx0XHRzZXR0aW5ncyA9IHNldHRpbmdzVXBkYXRlcnNbc2V0dGluZ3MudmVyc2lvbl0oc2V0dGluZ3MpO1xuXHRcdGVsc2Vcblx0XHRcdHNldHRpbmdzID0gc2V0dGluZ3NDbGVhcigpO1xuXHR9XG5cdHJldHVybiBzZXR0aW5ncztcbn1cbmZ1bmN0aW9uIHNlbXZlck5ld2VyKG5ld1ZlcnNpb246IHN0cmluZywgb2xkVmVyc2lvbjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdHJldHVybiBuZXdWZXJzaW9uLmxvY2FsZUNvbXBhcmUob2xkVmVyc2lvbiwgdW5kZWZpbmVkLCB7IG51bWVyaWM6IHRydWUgfSkgPT09IDE7XG59XG5mdW5jdGlvbiBzZXR0aW5nc1ZlcnNpb25VcGRhdGUoc2V0dGluZ3M6IENvZGVTdHlsZXJTZXR0aW5ncywgdGhlbWVVcGRhdGVyOiAodGhlbWU6IENvZGVTdHlsZXJUaGVtZSk9PkNvZGVTdHlsZXJUaGVtZSA9ICh0aGVtZSk9PnRoZW1lLCBvdGhlclNldHRpbmdzVXBkYXRlcjogKHNldHRpbmdzOiBDb2RlU3R5bGVyU2V0dGluZ3MpPT5Db2RlU3R5bGVyU2V0dGluZ3MgPSAoc2V0dGluZ3MpPT5zZXR0aW5ncywgcmVkaXJlY3RMYW5ndWFnZXNVcGRhdGVyOiAocmVkaXJlY3RMYW5ndWFnZXM6IFJlY29yZDxzdHJpbmcse2NvbG91cj86IENvbG91ciwgaWNvbj86IHN0cmluZ30+KT0+UmVjb3JkPHN0cmluZyx7Y29sb3VyPzogQ29sb3VyLCBpY29uPzogc3RyaW5nfT4gPSAocmVkaXJlY3RMYW5ndWFnZXMpPT5yZWRpcmVjdExhbmd1YWdlcyk6IENvZGVTdHlsZXJTZXR0aW5ncyB7XG5cdGZvciAoY29uc3QgW25hbWUsIHRoZW1lXSBvZiBPYmplY3QuZW50cmllcyhzZXR0aW5ncy50aGVtZXMpKSB7XG5cdFx0c2V0dGluZ3MudGhlbWVzW25hbWVdID0gdGhlbWVVcGRhdGVyKHRoZW1lKTtcblx0fVxuXHRzZXR0aW5ncy5jdXJyZW50VGhlbWUgPSBzdHJ1Y3R1cmVkQ2xvbmUoc2V0dGluZ3MudGhlbWVzW3NldHRpbmdzLnNlbGVjdGVkVGhlbWVdKTtcblx0c2V0dGluZ3MucmVkaXJlY3RMYW5ndWFnZXMgPSByZWRpcmVjdExhbmd1YWdlc1VwZGF0ZXIoc2V0dGluZ3MucmVkaXJlY3RMYW5ndWFnZXMpO1xuXHRzZXR0aW5ncyA9IG90aGVyU2V0dGluZ3NVcGRhdGVyKHNldHRpbmdzKTtcblx0c2V0dGluZ3MudmVyc2lvbiA9IE9iamVjdC5rZXlzKHNldHRpbmdzVXBkYXRlcnMpLmZpbmQoKHZhbHVlLGluZGV4LGFycmF5KT0+YXJyYXk/LltpbmRleC0xXT09PXNldHRpbmdzLnZlcnNpb24pID8/IFwiMS4wLjBcIjtcblx0cmV0dXJuIHNldHRpbmdzO1xufVxuZnVuY3Rpb24gc2V0dGluZ3NQcmVzZXJ2ZShzZXR0aW5nczogQ29kZVN0eWxlclNldHRpbmdzKTogQ29kZVN0eWxlclNldHRpbmdzIHtcblx0c2V0dGluZ3MudmVyc2lvbiA9IE9iamVjdC5rZXlzKHNldHRpbmdzVXBkYXRlcnMpLmZpbmQoKHZhbHVlLGluZGV4LGFycmF5KT0+YXJyYXk/LltpbmRleC0xXT09PXNldHRpbmdzLnZlcnNpb24pID8/IFwiMS4wLjBcIjtcblx0cmV0dXJuIHNldHRpbmdzO1xufVxuZnVuY3Rpb24gc2V0dGluZ3NDbGVhcigpOiBDb2RlU3R5bGVyU2V0dGluZ3Mge1xuXHRyZXR1cm4gREVGQVVMVF9TRVRUSU5HUztcbn1cblxuY29uc3Qgc2V0dGluZ3NVcGRhdGVyczogUmVjb3JkPHN0cmluZywoc2V0dGluZ3M6IENvZGVTdHlsZXJTZXR0aW5ncyk9PkNvZGVTdHlsZXJTZXR0aW5ncz4gPSB7XG5cdFwiMS4wLjBcIjogc2V0dGluZ3NDbGVhcixcblx0XCIxLjAuMVwiOiBzZXR0aW5nc0NsZWFyLFxuXHRcIjEuMC4yXCI6IHNldHRpbmdzQ2xlYXIsXG5cdFwiMS4wLjNcIjogc2V0dGluZ3NDbGVhcixcblx0XCIxLjAuNFwiOiBzZXR0aW5nc0NsZWFyLFxuXHRcIjEuMC41XCI6IHNldHRpbmdzQ2xlYXIsXG5cdFwiMS4wLjZcIjogc2V0dGluZ3NDbGVhcixcblx0XCIxLjAuN1wiOiBzZXR0aW5nc1ByZXNlcnZlLFxuXHRcIjEuMC44XCI6IHNldHRpbmdzUHJlc2VydmUsXG5cdFwiMS4wLjlcIjogc2V0dGluZ3NQcmVzZXJ2ZSxcblx0XCIxLjAuMTBcIjogKHNldHRpbmdzKT0+c2V0dGluZ3NWZXJzaW9uVXBkYXRlKHNldHRpbmdzLCh0aGVtZSk9PnsgLy8gVG8gMS4wLjEwXG5cdFx0dGhlbWUuc2V0dGluZ3MuaW5saW5lLnN0eWxlID0gdHJ1ZTtcblx0XHRyZXR1cm4gdGhlbWU7XG5cdH0sKHNldHRpbmdzKT0+ey8vQHRzLWV4cGVjdC1lcnJvciBPbGRlciBpbnRlcmZhY2UgdmVyc2lvbnNcblx0XHRkZWxldGUgc2V0dGluZ3Muc3BlY2lhbExhbmd1YWdlcztcblx0XHRyZXR1cm4gc2V0dGluZ3M7XG5cdH0pLFxuXHRcIjEuMC4xMVwiOiBzZXR0aW5nc1ByZXNlcnZlLFxuXHRcIjEuMS4wXCI6IHNldHRpbmdzUHJlc2VydmUsXG5cdFwiMS4xLjFcIjogc2V0dGluZ3NQcmVzZXJ2ZSxcblx0XCIxLjEuMlwiOiBzZXR0aW5nc1ByZXNlcnZlLFxuXHRcIjEuMS4zXCI6IHNldHRpbmdzUHJlc2VydmUsXG5cdFwiMS4xLjRcIjogKHNldHRpbmdzKSA9PiBzZXR0aW5nc1ZlcnNpb25VcGRhdGUoc2V0dGluZ3MsKHRoZW1lKT0+eyAvLyBUbyAxLjEuNVxuXHRcdHRoZW1lLnNldHRpbmdzLmhlYWRlci5leHRlcm5hbFJlZmVyZW5jZSA9IHN0cnVjdHVyZWRDbG9uZShUSEVNRV9ERUZBVUxUX1NFVFRJTkdTLmhlYWRlci5leHRlcm5hbFJlZmVyZW5jZSk7XG5cdFx0dGhlbWUuY29sb3Vycy5saWdodC5oZWFkZXIuZXh0ZXJuYWxSZWZlcmVuY2UgPSBzdHJ1Y3R1cmVkQ2xvbmUoVEhFTUVfRkFMTEJBQ0tfQ09MT1VSUy5oZWFkZXIuZXh0ZXJuYWxSZWZlcmVuY2UpO1xuXHRcdHRoZW1lLmNvbG91cnMuZGFyay5oZWFkZXIuZXh0ZXJuYWxSZWZlcmVuY2UgPSBzdHJ1Y3R1cmVkQ2xvbmUoVEhFTUVfRkFMTEJBQ0tfQ09MT1VSUy5oZWFkZXIuZXh0ZXJuYWxSZWZlcmVuY2UpO1xuXHRcdHJldHVybiB0aGVtZTtcblx0fSwgKHNldHRpbmdzKSA9PiB7XG5cdFx0c2V0dGluZ3MuZXh0ZXJuYWxSZWZlcmVuY2VVcGRhdGVPbkxvYWQgPSBmYWxzZTtcblx0XHRyZXR1cm4gc2V0dGluZ3M7XG5cdH0pLFxuXHRcIjEuMS41XCI6IHNldHRpbmdzUHJlc2VydmUsXG5cdFwiMS4xLjZcIjogc2V0dGluZ3NQcmVzZXJ2ZSxcbn07XG5cbi8vIENvbnN0YW50c1xuZXhwb3J0IGNvbnN0IEZPTERfUExBQ0VIT0xERVIgPSBcIkZvbGRlZCBDb2RlXCI7XG5leHBvcnQgY29uc3QgUEFSQU1FVEVSUyA9IFtcInRpdGxlXCIsXCJmb2xkXCIsXCJsblwiLFwid3JhcFwiLFwidW53cmFwXCIsXCJpZ25vcmVcIl07XG5leHBvcnQgY29uc3QgVFJBTlNJVElPTl9MRU5HVEggPSAyNDA7IC8vIDI0MG1zXG5leHBvcnQgY29uc3QgU1BFQ0lBTF9MQU5HVUFHRVMgPSBbXCJecmVmZXJlbmNlJFwiLFwiXmZvb2Zvb1wiLFwiXnByZXZpZXckXCIsXCJeaW5jbHVkZSRcIixcIl5vdXRwdXQkXCIsXCJecnVuLS4rJFwiXTtcbmV4cG9ydCBjb25zdCBTRVRUSU5HU19TT1VSQ0VQQVRIX1BSRUZJWCA9IFwiQENvZGUtU3R5bGVyLVNldHRpbmdzOlwiO1xuZXhwb3J0IGNvbnN0IExPQ0FMX1BSRUZJWCA9IFwiQC9cIjtcbmV4cG9ydCBjb25zdCBSRUZFUkVOQ0VfQ09ERUJMT0NLID0gXCJyZWZlcmVuY2VcIjtcbmV4cG9ydCBjb25zdCBFWFRFUk5BTF9SRUZFUkVOQ0VfUEFUSCA9IFwiL3BsdWdpbnMvY29kZS1zdHlsZXIvcmVmZXJlbmNlLWZpbGVzL1wiO1xuZXhwb3J0IGNvbnN0IEVYVEVSTkFMX1JFRkVSRU5DRV9DQUNIRSA9IEVYVEVSTkFMX1JFRkVSRU5DRV9QQVRIICsgXCJjYWNoZS5qc29uXCI7XG5leHBvcnQgY29uc3QgRVhURVJOQUxfUkVGRVJFTkNFX0lORk9fU1VGRklYID0gXCItaW5mby5qc29uXCI7XG5leHBvcnQgY29uc3QgR0lUX0lDT05TOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuXHRcImJyYW5jaFwiOiBcIiYjeGUwYTA7XCIsXG5cdFwidHJlZVwiOiBcIiYjeGVhZmM7XCIsIC8vIGNvbW1pdFxufTtcbmV4cG9ydCBjb25zdCBTSVRFX0lDT05TOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuXHRcImdpdGh1YlwiOiBcIiYjeGYwOWI7XCIsXG5cdFwiZ2l0bGFiXCI6IFwiJiN4ZTY1YztcIixcblx0XCJiaXRidWNrZXRcIjogXCImI3hlNzAzO1wiLFxuXHRcInNvdXJjZWZvcmdlXCI6IFwiJiN4ZjAyMzg7XCIsXG5cdFwiZ2VuZXJpY1wiOiBcIiYjeGYwNTlmO1wiLFxufTtcbmV4cG9ydCBjb25zdCBTVEFNUF9JQ09OID0gXCImI3hmMDBmMDtcIjtcbmV4cG9ydCBjb25zdCBVUERBVEVfSUNPTiA9IFwiJiN4ZTM0ODtcIjtcblxuY29uc3QgUFJJU01fTEFOR1VBR0VTOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSA9IHsgLy8gUHJpc20gTGFuZ3VhZ2VzOiBodHRwczovL3ByaXNtanMuY29tL3BsdWdpbnMvc2hvdy1sYW5ndWFnZS9cblx0Ly8gXCJub25lXCI6IFwiUGxhaW4gdGV4dFwiLCAvLyBOT1RFOiBPYnNpZGlhbiB1c2VzIHRoaXMgZm9yIGNvZGVibG9ja3Mgd2l0aG91dCBsYW5ndWFnZSBuYW1lc1xuXHRcInBsYWluXCI6IFwiUGxhaW4gdGV4dFwiLFxuXHRcInBsYWludGV4dFwiOiBcIlBsYWluIHRleHRcIixcblx0XCJ0ZXh0XCI6IFwiUGxhaW4gdGV4dFwiLFxuXHRcInR4dFwiOiBcIlBsYWluIHRleHRcIixcblx0XCJodG1sXCI6IFwiSFRNTFwiLFxuXHRcInhtbFwiOiBcIlhNTFwiLFxuXHRcInN2Z1wiOiBcIlNWR1wiLFxuXHRcIm1hdGhtbFwiOiBcIk1hdGhNTFwiLFxuXHRcInNzbWxcIjogXCJTU01MXCIsXG5cdFwicnNzXCI6IFwiUlNTXCIsXG5cdFwiY3NzXCI6IFwiQ1NTXCIsXG5cdFwiY2xpa2VcIjogXCJDLWxpa2VcIixcblx0XCJqc1wiOiBcIkphdmFTY3JpcHRcIixcblx0XCJhYmFwXCI6IFwiQUJBUFwiLFxuXHRcImFibmZcIjogXCJBQk5GXCIsXG5cdFwiYWxcIjogXCJBTFwiLFxuXHRcImFudGxyNFwiOiBcIkFOVExSNFwiLFxuXHRcImc0XCI6IFwiQU5UTFI0XCIsXG5cdFwiYXBhY2hlY29uZlwiOiBcIkFwYWNoZSBDb25maWd1cmF0aW9uXCIsXG5cdFwiYXBsXCI6IFwiQVBMXCIsXG5cdFwiYXFsXCI6IFwiQVFMXCIsXG5cdFwiaW5vXCI6IFwiQXJkdWlub1wiLFxuXHRcImFyZmZcIjogXCJBUkZGXCIsXG5cdFwiYXJtYXNtXCI6IFwiQVJNIEFzc2VtYmx5XCIsXG5cdFwiYXJtLWFzbVwiOiBcIkFSTSBBc3NlbWJseVwiLFxuXHRcImFydFwiOiBcIkFydHVyb1wiLFxuXHRcImFzY2lpZG9jXCI6IFwiQXNjaWlEb2NcIixcblx0XCJhZG9jXCI6IFwiQXNjaWlEb2NcIixcblx0XCJhc3BuZXRcIjogXCJBU1AuTkVUIChDIylcIixcblx0XCJhc202NTAyXCI6IFwiNjUwMiBBc3NlbWJseVwiLFxuXHRcImFzbWF0bWVsXCI6IFwiQXRtZWwgQVZSIEFzc2VtYmx5XCIsXG5cdFwiYXV0b2hvdGtleVwiOiBcIkF1dG9Ib3RrZXlcIixcblx0XCJhdXRvaXRcIjogXCJBdXRvSXRcIixcblx0XCJhdmlzeW50aFwiOiBcIkF2aVN5bnRoXCIsXG5cdFwiYXZzXCI6IFwiQXZpU3ludGhcIixcblx0XCJhdnJvLWlkbFwiOiBcIkF2cm8gSURMXCIsXG5cdFwiYXZkbFwiOiBcIkF2cm8gSURMXCIsXG5cdFwiYXdrXCI6IFwiQVdLXCIsXG5cdFwiZ2F3a1wiOiBcIkdBV0tcIixcblx0XCJzaFwiOiBcIlNoZWxsXCIsXG5cdFwiYmFzaWNcIjogXCJCQVNJQ1wiLFxuXHRcImJiY29kZVwiOiBcIkJCY29kZVwiLFxuXHRcImJialwiOiBcIkJCalwiLFxuXHRcImJuZlwiOiBcIkJORlwiLFxuXHRcInJibmZcIjogXCJSQk5GXCIsXG5cdFwiYnFuXCI6IFwiQlFOXCIsXG5cdFwiYnNsXCI6IFwiQlNMICgxQzpFbnRlcnByaXNlKVwiLFxuXHRcIm9zY3JpcHRcIjogXCJPbmVTY3JpcHRcIixcblx0XCJjc2hhcnBcIjogXCJDI1wiLFxuXHRcImNzXCI6IFwiQyNcIixcblx0XCJkb3RuZXRcIjogXCJDI1wiLFxuXHRcImNwcFwiOiBcIkMrK1wiLFxuXHRcImNmc2NyaXB0XCI6IFwiQ0ZTY3JpcHRcIixcblx0XCJjZmNcIjogXCJDRlNjcmlwdFwiLFxuXHRcImNpbFwiOiBcIkNJTFwiLFxuXHRcImNpbGtjXCI6IFwiQ2lsay9DXCIsXG5cdFwiY2lsay1jXCI6IFwiQ2lsay9DXCIsXG5cdFwiY2lsa2NwcFwiOiBcIkNpbGsvQysrXCIsXG5cdFwiY2lsay1jcHBcIjogXCJDaWxrL0MrK1wiLFxuXHRcImNpbGtcIjogXCJDaWxrL0MrK1wiLFxuXHRcImNtYWtlXCI6IFwiQ01ha2VcIixcblx0XCJjb2JvbFwiOiBcIkNPQk9MXCIsXG5cdFwiY29mZmVlXCI6IFwiQ29mZmVlU2NyaXB0XCIsXG5cdFwiY29uY1wiOiBcIkNvbmN1cm5hc1wiLFxuXHRcImNzcFwiOiBcIkNvbnRlbnQtU2VjdXJpdHktUG9saWN5XCIsXG5cdFwiY3NzLWV4dHJhc1wiOiBcIkNTUyBFeHRyYXNcIixcblx0XCJjc3ZcIjogXCJDU1ZcIixcblx0XCJjdWVcIjogXCJDVUVcIixcblx0XCJkYXRhd2VhdmVcIjogXCJEYXRhV2VhdmVcIixcblx0XCJkYXhcIjogXCJEQVhcIixcblx0XCJkamFuZ29cIjogXCJEamFuZ28vSmluamEyXCIsXG5cdFwiamluamEyXCI6IFwiRGphbmdvL0ppbmphMlwiLFxuXHRcImRucy16b25lLWZpbGVcIjogXCJETlMgem9uZSBmaWxlXCIsXG5cdFwiZG5zLXpvbmVcIjogXCJETlMgem9uZSBmaWxlXCIsXG5cdFwiZG9ja2VyZmlsZVwiOiBcIkRvY2tlclwiLFxuXHRcImRvdFwiOiBcIkRPVCAoR3JhcGh2aXopXCIsXG5cdFwiZ3ZcIjogXCJET1QgKEdyYXBodml6KVwiLFxuXHRcImVibmZcIjogXCJFQk5GXCIsXG5cdFwiZWRpdG9yY29uZmlnXCI6IFwiRWRpdG9yQ29uZmlnXCIsXG5cdFwiZWpzXCI6IFwiRUpTXCIsXG5cdFwiZXRsdWFcIjogXCJFbWJlZGRlZCBMdWEgdGVtcGxhdGluZ1wiLFxuXHRcImVyYlwiOiBcIkVSQlwiLFxuXHRcImV4Y2VsLWZvcm11bGFcIjogXCJFeGNlbCBGb3JtdWxhXCIsXG5cdFwieGxzeFwiOiBcIkV4Y2VsIEZvcm11bGFcIixcblx0XCJ4bHNcIjogXCJFeGNlbCBGb3JtdWxhXCIsXG5cdFwiZnNoYXJwXCI6IFwiRiNcIixcblx0XCJmaXJlc3RvcmUtc2VjdXJpdHktcnVsZXNcIjogXCJGaXJlc3RvcmUgc2VjdXJpdHkgcnVsZXNcIixcblx0XCJmdGxcIjogXCJGcmVlTWFya2VyIFRlbXBsYXRlIExhbmd1YWdlXCIsXG5cdFwiZ21sXCI6IFwiR2FtZU1ha2VyIExhbmd1YWdlXCIsXG5cdFwiZ2FtZW1ha2VybGFuZ3VhZ2VcIjogXCJHYW1lTWFrZXIgTGFuZ3VhZ2VcIixcblx0XCJnYXBcIjogXCJHQVAgKENBUylcIixcblx0XCJnY29kZVwiOiBcIkctY29kZVwiLFxuXHRcImdkc2NyaXB0XCI6IFwiR0RTY3JpcHRcIixcblx0XCJnZWRjb21cIjogXCJHRURDT01cIixcblx0XCJnZXR0ZXh0XCI6IFwiZ2V0dGV4dFwiLFxuXHRcInBvXCI6IFwiZ2V0dGV4dFwiLFxuXHRcImdsc2xcIjogXCJHTFNMXCIsXG5cdFwiZ25cIjogXCJHTlwiLFxuXHRcImduaVwiOiBcIkdOXCIsXG5cdFwibGlua2VyLXNjcmlwdFwiOiBcIkdOVSBMaW5rZXIgU2NyaXB0XCIsXG5cdFwibGRcIjogXCJHTlUgTGlua2VyIFNjcmlwdFwiLFxuXHRcImdvLW1vZHVsZVwiOiBcIkdvIG1vZHVsZVwiLFxuXHRcImdvLW1vZFwiOiBcIkdvIG1vZHVsZVwiLFxuXHRcImdyYXBocWxcIjogXCJHcmFwaFFMXCIsXG5cdFwiaGJzXCI6IFwiSGFuZGxlYmFyc1wiLFxuXHRcImhzXCI6IFwiSGFza2VsbFwiLFxuXHRcImhjbFwiOiBcIkhDTFwiLFxuXHRcImhsc2xcIjogXCJITFNMXCIsXG5cdFwiaHR0cFwiOiBcIkhUVFBcIixcblx0XCJocGtwXCI6IFwiSFRUUCBQdWJsaWMtS2V5LVBpbnNcIixcblx0XCJoc3RzXCI6IFwiSFRUUCBTdHJpY3QtVHJhbnNwb3J0LVNlY3VyaXR5XCIsXG5cdFwiaWNoaWdvamFtXCI6IFwiSWNoaWdvSmFtXCIsXG5cdFwiaWN1LW1lc3NhZ2UtZm9ybWF0XCI6IFwiSUNVIE1lc3NhZ2UgRm9ybWF0XCIsXG5cdFwiaWRyXCI6IFwiSWRyaXNcIixcblx0XCJpZ25vcmVcIjogXCIuaWdub3JlXCIsXG5cdFwiZ2l0aWdub3JlXCI6IFwiLmdpdGlnbm9yZVwiLFxuXHRcImhnaWdub3JlXCI6IFwiLmhnaWdub3JlXCIsXG5cdFwibnBtaWdub3JlXCI6IFwiLm5wbWlnbm9yZVwiLFxuXHRcImluZm9ybTdcIjogXCJJbmZvcm0gN1wiLFxuXHRcImphdmFkb2NcIjogXCJKYXZhRG9jXCIsXG5cdFwiamF2YWRvY2xpa2VcIjogXCJKYXZhRG9jLWxpa2VcIixcblx0XCJqYXZhc3RhY2t0cmFjZVwiOiBcIkphdmEgc3RhY2sgdHJhY2VcIixcblx0XCJqcVwiOiBcIkpRXCIsXG5cdFwianNkb2NcIjogXCJKU0RvY1wiLFxuXHRcImpzLWV4dHJhc1wiOiBcIkpTIEV4dHJhc1wiLFxuXHRcImpzb25cIjogXCJKU09OXCIsXG5cdFwid2VibWFuaWZlc3RcIjogXCJXZWIgQXBwIE1hbmlmZXN0XCIsXG5cdFwianNvbjVcIjogXCJKU09ONVwiLFxuXHRcImpzb25wXCI6IFwiSlNPTlBcIixcblx0XCJqc3N0YWNrdHJhY2VcIjogXCJKUyBzdGFjayB0cmFjZVwiLFxuXHRcImpzLXRlbXBsYXRlc1wiOiBcIkpTIFRlbXBsYXRlc1wiLFxuXHRcImtlZXBhbGl2ZWRcIjogXCJLZWVwYWxpdmVkIENvbmZpZ3VyZVwiLFxuXHRcImt0c1wiOiBcIktvdGxpbiBTY3JpcHRcIixcblx0XCJrdFwiOiBcIktvdGxpblwiLFxuXHRcImt1bWlyXCI6IFwiS3VNaXIgKFx1MDQxQVx1MDQ0M1x1MDQxQ1x1MDQzOFx1MDQ0MClcIixcblx0XCJrdW1cIjogXCJLdU1pciAoXHUwNDFBXHUwNDQzXHUwNDFDXHUwNDM4XHUwNDQwKVwiLFxuXHRcImxhdGV4XCI6IFwiTGFUZVhcIixcblx0XCJ0ZXhcIjogXCJUZVhcIixcblx0XCJjb250ZXh0XCI6IFwiQ29uVGVYdFwiLFxuXHRcImxpbHlwb25kXCI6IFwiTGlseVBvbmRcIixcblx0XCJseVwiOiBcIkxpbHlQb25kXCIsXG5cdFwiZW1hY3NcIjogXCJMaXNwXCIsXG5cdFwiZWxpc3BcIjogXCJMaXNwXCIsXG5cdFwiZW1hY3MtbGlzcFwiOiBcIkxpc3BcIixcblx0XCJsbHZtXCI6IFwiTExWTSBJUlwiLFxuXHRcImxvZ1wiOiBcIkxvZyBmaWxlXCIsXG5cdFwibG9sY29kZVwiOiBcIkxPTENPREVcIixcblx0XCJtYWdtYVwiOiBcIk1hZ21hIChDQVMpXCIsXG5cdFwibWRcIjogXCJNYXJrZG93blwiLFxuXHRcIm1hcmt1cC10ZW1wbGF0aW5nXCI6IFwiTWFya3VwIHRlbXBsYXRpbmdcIixcblx0XCJtYXRsYWJcIjogXCJNQVRMQUJcIixcblx0XCJtYXhzY3JpcHRcIjogXCJNQVhTY3JpcHRcIixcblx0XCJtZWxcIjogXCJNRUxcIixcblx0XCJtZXRhZm9udFwiOiBcIk1FVEFGT05UXCIsXG5cdFwibW9uZ29kYlwiOiBcIk1vbmdvREJcIixcblx0XCJtb29uXCI6IFwiTW9vblNjcmlwdFwiLFxuXHRcIm4xcWxcIjogXCJOMVFMXCIsXG5cdFwibjRqc1wiOiBcIk40SlNcIixcblx0XCJuNGpzZFwiOiBcIk40SlNcIixcblx0XCJuYW5kMnRldHJpcy1oZGxcIjogXCJOYW5kIFRvIFRldHJpcyBIRExcIixcblx0XCJuYW5pc2NyaXB0XCI6IFwiTmFuaW5vdmVsIFNjcmlwdFwiLFxuXHRcIm5hbmlcIjogXCJOYW5pbm92ZWwgU2NyaXB0XCIsXG5cdFwibmFzbVwiOiBcIk5BU01cIixcblx0XCJuZW9uXCI6IFwiTkVPTlwiLFxuXHRcIm5naW54XCI6IFwibmdpbnhcIixcblx0XCJuc2lzXCI6IFwiTlNJU1wiLFxuXHRcIm9iamVjdGl2ZWNcIjogXCJPYmplY3RpdmUtQ1wiLFxuXHRcIm9iamNcIjogXCJPYmplY3RpdmUtQ1wiLFxuXHRcIm9jYW1sXCI6IFwiT0NhbWxcIixcblx0XCJvcGVuY2xcIjogXCJPcGVuQ0xcIixcblx0XCJvcGVucWFzbVwiOiBcIk9wZW5RYXNtXCIsXG5cdFwicWFzbVwiOiBcIk9wZW5RYXNtXCIsXG5cdFwicGFyaWdwXCI6IFwiUEFSSS9HUFwiLFxuXHRcIm9iamVjdHBhc2NhbFwiOiBcIk9iamVjdCBQYXNjYWxcIixcblx0XCJwc2xcIjogXCJQQVRST0wgU2NyaXB0aW5nIExhbmd1YWdlXCIsXG5cdFwicGNheGlzXCI6IFwiUEMtQXhpc1wiLFxuXHRcInB4XCI6IFwiUEMtQXhpc1wiLFxuXHRcInBlb3BsZWNvZGVcIjogXCJQZW9wbGVDb2RlXCIsXG5cdFwicGNvZGVcIjogXCJQZW9wbGVDb2RlXCIsXG5cdFwicGhwXCI6IFwiUEhQXCIsXG5cdFwicGhwZG9jXCI6IFwiUEhQRG9jXCIsXG5cdFwicGhwLWV4dHJhc1wiOiBcIlBIUCBFeHRyYXNcIixcblx0XCJwbGFudC11bWxcIjogXCJQbGFudFVNTFwiLFxuXHRcInBsYW50dW1sXCI6IFwiUGxhbnRVTUxcIixcblx0XCJwbHNxbFwiOiBcIlBML1NRTFwiLFxuXHRcInBvd2VycXVlcnlcIjogXCJQb3dlclF1ZXJ5XCIsXG5cdFwicHFcIjogXCJQb3dlclF1ZXJ5XCIsXG5cdFwibXNjcmlwdFwiOiBcIlBvd2VyUXVlcnlcIixcblx0XCJwb3dlcnNoZWxsXCI6IFwiUG93ZXJTaGVsbFwiLFxuXHRcInByb21xbFwiOiBcIlByb21RTFwiLFxuXHRcInByb3BlcnRpZXNcIjogXCIucHJvcGVydGllc1wiLFxuXHRcInByb3RvYnVmXCI6IFwiUHJvdG9jb2wgQnVmZmVyc1wiLFxuXHRcInB1cmViYXNpY1wiOiBcIlB1cmVCYXNpY1wiLFxuXHRcInBiZmFzbVwiOiBcIlB1cmVCYXNpY1wiLFxuXHRcInB1cnNcIjogXCJQdXJlU2NyaXB0XCIsXG5cdFwicHlcIjogXCJQeXRob25cIixcblx0XCJxc2hhcnBcIjogXCJRI1wiLFxuXHRcInFzXCI6IFwiUSNcIixcblx0XCJxXCI6IFwiUSAoa2RiKyBkYXRhYmFzZSlcIixcblx0XCJxbWxcIjogXCJRTUxcIixcblx0XCJya3RcIjogXCJSYWNrZXRcIixcblx0XCJjc2h0bWxcIjogXCJSYXpvciBDI1wiLFxuXHRcInJhem9yXCI6IFwiUmF6b3IgQyNcIixcblx0XCJqc3hcIjogXCJSZWFjdCBKU1hcIixcblx0XCJ0c3hcIjogXCJSZWFjdCBUU1hcIixcblx0XCJyZW5weVwiOiBcIlJlbidweVwiLFxuXHRcInJweVwiOiBcIlJlbidweVwiLFxuXHRcInJlc1wiOiBcIlJlU2NyaXB0XCIsXG5cdFwicmVzdFwiOiBcInJlU1QgKHJlU3RydWN0dXJlZFRleHQpXCIsXG5cdFwicm9ib3RmcmFtZXdvcmtcIjogXCJSb2JvdCBGcmFtZXdvcmtcIixcblx0XCJyb2JvdFwiOiBcIlJvYm90IEZyYW1ld29ya1wiLFxuXHRcInJiXCI6IFwiUnVieVwiLFxuXHRcInNhc1wiOiBcIlNBU1wiLFxuXHRcInNhc3NcIjogXCJTYXNzIChTYXNzKVwiLFxuXHRcInNjc3NcIjogXCJTYXNzIChTQ1NTKVwiLFxuXHRcInNoZWxsLXNlc3Npb25cIjogXCJTaGVsbCBzZXNzaW9uXCIsXG5cdFwic2gtc2Vzc2lvblwiOiBcIlNoZWxsIHNlc3Npb25cIixcblx0XCJzaGVsbHNlc3Npb25cIjogXCJTaGVsbCBzZXNzaW9uXCIsXG5cdFwic21sXCI6IFwiU01MXCIsXG5cdFwic21sbmpcIjogXCJTTUwvTkpcIixcblx0XCJzb2xpZGl0eVwiOiBcIlNvbGlkaXR5IChFdGhlcmV1bSlcIixcblx0XCJzb2xcIjogXCJTb2xpZGl0eSAoRXRoZXJldW0pXCIsXG5cdFwic29sdXRpb24tZmlsZVwiOiBcIlNvbHV0aW9uIGZpbGVcIixcblx0XCJzbG5cIjogXCJTb2x1dGlvbiBmaWxlXCIsXG5cdFwic295XCI6IFwiU295IChDbG9zdXJlIFRlbXBsYXRlKVwiLFxuXHRcInNwYXJxbFwiOiBcIlNQQVJRTFwiLFxuXHRcInJxXCI6IFwiU1BBUlFMXCIsXG5cdFwic3BsdW5rLXNwbFwiOiBcIlNwbHVuayBTUExcIixcblx0XCJzcWZcIjogXCJTUUY6IFN0YXR1cyBRdW8gRnVuY3Rpb24gKEFybWEgMylcIixcblx0XCJzcWxcIjogXCJTUUxcIixcblx0XCJzdGF0YVwiOiBcIlN0YXRhIEFkb1wiLFxuXHRcImllY3N0XCI6IFwiU3RydWN0dXJlZCBUZXh0IChJRUMgNjExMzEtMylcIixcblx0XCJzdXBlcmNvbGxpZGVyXCI6IFwiU3VwZXJDb2xsaWRlclwiLFxuXHRcInNjbGFuZ1wiOiBcIlN1cGVyQ29sbGlkZXJcIixcblx0XCJzeXN0ZW1kXCI6IFwiU3lzdGVtZCBjb25maWd1cmF0aW9uIGZpbGVcIixcblx0XCJ0NC10ZW1wbGF0aW5nXCI6IFwiVDQgdGVtcGxhdGluZ1wiLFxuXHRcInQ0LWNzXCI6IFwiVDQgVGV4dCBUZW1wbGF0ZXMgKEMjKVwiLFxuXHRcInQ0XCI6IFwiVDQgVGV4dCBUZW1wbGF0ZXMgKEMjKVwiLFxuXHRcInQ0LXZiXCI6IFwiVDQgVGV4dCBUZW1wbGF0ZXMgKFZCKVwiLFxuXHRcInRhcFwiOiBcIlRBUFwiLFxuXHRcInR0MlwiOiBcIlRlbXBsYXRlIFRvb2xraXQgMlwiLFxuXHRcInRvbWxcIjogXCJUT01MXCIsXG5cdFwidHJpY2tsZVwiOiBcInRyaWNrbGVcIixcblx0XCJ0cm95XCI6IFwidHJveVwiLFxuXHRcInRyaWdcIjogXCJUcmlHXCIsXG5cdFwidHNcIjogXCJUeXBlU2NyaXB0XCIsXG5cdFwidHNjb25maWdcIjogXCJUU0NvbmZpZ1wiLFxuXHRcInVzY3JpcHRcIjogXCJVbnJlYWxTY3JpcHRcIixcblx0XCJ1Y1wiOiBcIlVucmVhbFNjcmlwdFwiLFxuXHRcInVvcmF6b3JcIjogXCJVTyBSYXpvciBTY3JpcHRcIixcblx0XCJ1cmlcIjogXCJVUklcIixcblx0XCJ1cmxcIjogXCJVUkxcIixcblx0XCJ2Ym5ldFwiOiBcIlZCLk5ldFwiLFxuXHRcInZoZGxcIjogXCJWSERMXCIsXG5cdFwidmltXCI6IFwidmltXCIsXG5cdFwidmlzdWFsLWJhc2ljXCI6IFwiVmlzdWFsIEJhc2ljXCIsXG5cdFwidmJhXCI6IFwiVkJBXCIsXG5cdFwidmJcIjogXCJWaXN1YWwgQmFzaWNcIixcblx0XCJ3YXNtXCI6IFwiV2ViQXNzZW1ibHlcIixcblx0XCJ3ZWItaWRsXCI6IFwiV2ViIElETFwiLFxuXHRcIndlYmlkbFwiOiBcIldlYiBJRExcIixcblx0XCJ3Z3NsXCI6IFwiV0dTTFwiLFxuXHRcIndpa2lcIjogXCJXaWtpIG1hcmt1cFwiLFxuXHRcIndvbGZyYW1cIjogXCJXb2xmcmFtIGxhbmd1YWdlXCIsXG5cdFwibmJcIjogXCJNYXRoZW1hdGljYSBOb3RlYm9va1wiLFxuXHRcIndsXCI6IFwiV29sZnJhbSBsYW5ndWFnZVwiLFxuXHRcInhlb3JhY3ViZVwiOiBcIlhlb3JhQ3ViZVwiLFxuXHRcInhtbC1kb2NcIjogXCJYTUwgZG9jICgubmV0KVwiLFxuXHRcInhvam9cIjogXCJYb2pvIChSRUFMYmFzaWMpXCIsXG5cdFwieHF1ZXJ5XCI6IFwiWFF1ZXJ5XCIsXG5cdFwieWFtbFwiOiBcIllBTUxcIixcblx0XCJ5bWxcIjogXCJZQU1MXCIsXG5cdFwieWFuZ1wiOiBcIllBTkdcIixcbn07XG5jb25zdCBNQU5VQUxfUFJJU01fTEFOR1VBR0VTOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSA9IHsgLy8gTWFudWFsbHkgZ2VuZXJhdGVkIGxpc3QgZnJvbSBodHRwczovL3ByaXNtanMuY29tLyAgLSAgMjk3IGxhbmd1YWdlc1xuXHRcImNzc1wiOlwiQ1NTXCIsXG5cdFwiY2xpa2VcIjpcIkMtbGlrZVwiLFxuXHRcImphdmFzY3JpcHRcIjpcIkphdmFTY3JpcHRcIixcblx0XCJqc1wiOlwiSmF2YVNjcmlwdFwiLFxuXHRcImFiYXBcIjpcIkFCQVBcIixcblx0XCJhYm5mXCI6XCJBQk5GXCIsXG5cdFwiYWN0aW9uc2NyaXB0XCI6XCJBY3Rpb25TY3JpcHRcIixcblx0XCJhZGFcIjpcIkFkYVwiLFxuXHRcImFnZGFcIjpcIkFnZGFcIixcblx0XCJhbFwiOlwiQUxcIixcblx0XCJhbnRscjRcIjpcIkFOVExSNFwiLFxuXHRcImc0XCI6XCJBTlRMUjRcIixcblx0XCJhcGFjaGVjb25mXCI6XCJBcGFjaGUgQ29uZmlndXJhdGlvblwiLFxuXHRcImFwZXhcIjpcIkFwZXhcIixcblx0XCJhcGxcIjpcIkFQTFwiLFxuXHRcImFwcGxlc2NyaXB0XCI6XCJBcHBsZVNjcmlwdFwiLFxuXHRcImFxbFwiOlwiQVFMXCIsXG5cdFwiYXJkdWlub1wiOlwiQXJkdWlub1wiLFxuXHRcImlub1wiOlwiQXJkdWlub1wiLFxuXHRcImFyZmZcIjpcIkFSRkZcIixcblx0XCJhcm1hc21cIjpcIkFSTSBBc3NlbWJseVwiLFxuXHRcImFybS1hc21cIjpcIkFSTSBBc3NlbWJseVwiLFxuXHRcImFydHVyb1wiOlwiQXJ0dXJvXCIsXG5cdFwiYXJ0XCI6XCJBcnR1cm9cIixcblx0XCJhc2NpaWRvY1wiOlwiQXNjaWlEb2NcIixcblx0XCJhZG9jXCI6XCJBc2NpaURvY1wiLFxuXHRcImFzcG5ldFwiOlwiQVNQLk5FVCAoQyMpXCIsXG5cdFwiYXNtNjUwMlwiOlwiNjUwMiBBc3NlbWJseVwiLFxuXHRcImFzbWF0bWVsXCI6XCJBdG1lbCBBVlIgQXNzZW1ibHlcIixcblx0XCJhdXRvaG90a2V5XCI6XCJBdXRvSG90a2V5XCIsXG5cdFwiYXV0b2l0XCI6XCJBdXRvSXRcIixcblx0XCJhdmlzeW50aFwiOlwiQXZpU3ludGhcIixcblx0XCJhdnNcIjpcIkF2aVN5bnRoXCIsXG5cdFwiYXZyby1pZGxcIjpcIkF2cm8gSURMXCIsXG5cdFwiYXZkbFwiOlwiQXZybyBJRExcIixcblx0XCJhd2tcIjpcIkFXS1wiLFxuXHRcImdhd2tcIjpcIkdBV0tcIixcblx0XCJiYXNoXCI6XCJCYXNoXCIsXG5cdFwic2hcIjpcIlNoZWxsXCIsXG5cdFwic2hlbGxcIjpcIlNoZWxsXCIsXG5cdFwiYmFzaWNcIjpcIkJBU0lDXCIsXG5cdFwiYmF0Y2hcIjpcIkJhdGNoXCIsXG5cdFwiYmJjb2RlXCI6XCJCQmNvZGVcIixcblx0XCJzaG9ydGNvZGVcIjpcIkJCY29kZVwiLFxuXHRcImJialwiOlwiQkJqXCIsXG5cdFwiYmlyYlwiOlwiQmlyYlwiLFxuXHRcImJpc29uXCI6XCJCaXNvblwiLFxuXHRcImJuZlwiOlwiQk5GXCIsXG5cdFwicmJuZlwiOlwiQk5GXCIsXG5cdFwiYnFuXCI6XCJCUU5cIixcblx0XCJicmFpbmZ1Y2tcIjpcIkJyYWluZnVja1wiLFxuXHRcImJyaWdodHNjcmlwdFwiOlwiQnJpZ2h0U2NyaXB0XCIsXG5cdFwiYnJvXCI6XCJCcm9cIixcblx0XCJic2xcIjpcIkJTTCAoMUMpXCIsXG5cdFwib3NjcmlwdFwiOlwiQlNMICgxQylcIixcblx0XCJjXCI6XCJDXCIsXG5cdFwiY3NoYXJwXCI6XCJDI1wiLFxuXHRcImNzXCI6XCJDI1wiLFxuXHRcImRvdG5ldFwiOlwiQyNcIixcblx0XCJjcHBcIjpcIkMrK1wiLFxuXHRcImNmc2NyaXB0XCI6XCJDRlNjcmlwdFwiLFxuXHRcImNmY1wiOlwiQ0ZTY3JpcHRcIixcblx0XCJjaGFpc2NyaXB0XCI6XCJDaGFpU2NyaXB0XCIsXG5cdFwiY2lsXCI6XCJDSUxcIixcblx0XCJjaWxrY1wiOlwiQ2lsay9DXCIsXG5cdFwiY2lsay1jXCI6XCJDaWxrL0NcIixcblx0XCJjaWxrY3BwXCI6XCJDaWxrL0MrK1wiLFxuXHRcImNpbGstY3BwXCI6XCJDaWxrL0MrK1wiLFxuXHRcImNpbGtcIjpcIkNpbGsvQysrXCIsXG5cdFwiY2xvanVyZVwiOlwiQ2xvanVyZVwiLFxuXHRcImNtYWtlXCI6XCJDTWFrZVwiLFxuXHRcImNvYm9sXCI6XCJDT0JPTFwiLFxuXHRcImNvZmZlZXNjcmlwdFwiOlwiQ29mZmVlU2NyaXB0XCIsXG5cdFwiY29mZmVlXCI6XCJDb2ZmZWVTY3JpcHRcIixcblx0XCJjb25jdXJuYXNcIjpcIkNvbmN1cm5hc1wiLFxuXHRcImNvbmNcIjpcIkNvbmN1cm5hc1wiLFxuXHRcImNzcFwiOlwiQ29udGVudC1TZWN1cml0eS1Qb2xpY3lcIixcblx0XCJjb29rbGFuZ1wiOlwiQ29va2xhbmdcIixcblx0XCJjb3FcIjpcIkNvcVwiLFxuXHRcImNyeXN0YWxcIjpcIkNyeXN0YWxcIixcblx0XCJjc3MtZXh0cmFzXCI6XCJDU1MgRXh0cmFzXCIsXG5cdFwiY3N2XCI6XCJDU1ZcIixcblx0XCJjdWVcIjpcIkNVRVwiLFxuXHRcImN5cGhlclwiOlwiQ3lwaGVyXCIsXG5cdFwiZFwiOlwiRFwiLFxuXHRcImRhcnRcIjpcIkRhcnRcIixcblx0XCJkYXRhd2VhdmVcIjpcIkRhdGFXZWF2ZVwiLFxuXHRcImRheFwiOlwiREFYXCIsXG5cdFwiZGhhbGxcIjpcIkRoYWxsXCIsXG5cdFwiZGlmZlwiOlwiRGlmZlwiLFxuXHRcImRqYW5nb1wiOlwiRGphbmdvL0ppbmphMlwiLFxuXHRcImppbmphMlwiOlwiRGphbmdvL0ppbmphMlwiLFxuXHRcImRucy16b25lLWZpbGVcIjpcIkROUyB6b25lIGZpbGVcIixcblx0XCJkbnMtem9uZVwiOlwiRE5TIHpvbmUgZmlsZVwiLFxuXHRcImRvY2tlclwiOlwiRG9ja2VyXCIsXG5cdFwiZG9ja2VyZmlsZVwiOlwiRG9ja2VyXCIsXG5cdFwiZG90XCI6XCJET1QgKEdyYXBodml6KVwiLFxuXHRcImd2XCI6XCJET1QgKEdyYXBodml6KVwiLFxuXHRcImVibmZcIjpcIkVCTkZcIixcblx0XCJlZGl0b3Jjb25maWdcIjpcIkVkaXRvckNvbmZpZ1wiLFxuXHRcImVpZmZlbFwiOlwiRWlmZmVsXCIsXG5cdFwiZWpzXCI6XCJFSlNcIixcblx0XCJldGFcIjpcIkVKU1wiLFxuXHRcImVsaXhpclwiOlwiRWxpeGlyXCIsXG5cdFwiZWxtXCI6XCJFbG1cIixcblx0XCJldGx1YVwiOlwiRW1iZWRkZWQgTHVhIHRlbXBsYXRpbmdcIixcblx0XCJlcmJcIjpcIkVSQlwiLFxuXHRcImVybGFuZ1wiOlwiRXJsYW5nXCIsXG5cdFwiZXhjZWwtZm9ybXVsYVwiOlwiRXhjZWwgRm9ybXVsYVwiLFxuXHRcInhsc3hcIjpcIkV4Y2VsIEZvcm11bGFcIixcblx0XCJ4bHNcIjpcIkV4Y2VsIEZvcm11bGFcIixcblx0XCJmc2hhcnBcIjpcIkYjXCIsXG5cdFwiZmFjdG9yXCI6XCJGYWN0b3JcIixcblx0XCJmYWxzZVwiOlwiRmFsc2VcIixcblx0XCJmaXJlc3RvcmUtc2VjdXJpdHktcnVsZXNcIjpcIkZpcmVzdG9yZSBzZWN1cml0eSBydWxlc1wiLFxuXHRcImZsb3dcIjpcIkZsb3dcIixcblx0XCJmb3J0cmFuXCI6XCJGb3J0cmFuXCIsXG5cdFwiZnRsXCI6XCJGcmVlTWFya2VyIFRlbXBsYXRlIExhbmd1YWdlXCIsXG5cdFwiZ21sXCI6XCJHYW1lTWFrZXIgTGFuZ3VhZ2VcIixcblx0XCJnYW1lbWFrZXJsYW5ndWFnZVwiOlwiR2FtZU1ha2VyIExhbmd1YWdlXCIsXG5cdFwiZ2FwXCI6XCJHQVAgKENBUylcIixcblx0XCJnY29kZVwiOlwiRy1jb2RlXCIsXG5cdFwiZ2RzY3JpcHRcIjpcIkdEU2NyaXB0XCIsXG5cdFwiZ2VkY29tXCI6XCJHRURDT01cIixcblx0XCJnZXR0ZXh0XCI6XCJnZXR0ZXh0XCIsXG5cdFwicG9cIjpcImdldHRleHRcIixcblx0XCJnaGVya2luXCI6XCJHaGVya2luXCIsXG5cdFwiZ2l0XCI6XCJHaXRcIixcblx0XCJnbHNsXCI6XCJHTFNMXCIsXG5cdFwiZ25cIjpcIkdOXCIsXG5cdFwiZ25pXCI6XCJHTlwiLFxuXHRcImxpbmtlci1zY3JpcHRcIjpcIkdOVSBMaW5rZXIgU2NyaXB0XCIsXG5cdFwibGRcIjpcIkdOVSBMaW5rZXIgU2NyaXB0XCIsXG5cdFwiZ29cIjpcIkdvXCIsXG5cdFwiZ28tbW9kdWxlXCI6XCJHbyBtb2R1bGVcIixcblx0XCJnby1tb2RcIjpcIkdvIG1vZHVsZVwiLFxuXHRcImdyYWRsZVwiOlwiR3JhZGxlXCIsXG5cdFwiZ3JhcGhxbFwiOlwiR3JhcGhRTFwiLFxuXHRcImdyb292eVwiOlwiR3Jvb3Z5XCIsXG5cdFwiaGFtbFwiOlwiSGFtbFwiLFxuXHRcImhhbmRsZWJhcnNcIjpcIkhhbmRsZWJhcnNcIixcblx0XCJoYnNcIjpcIkhhbmRsZWJhcnNcIixcblx0XCJtdXN0YWNoZVwiOlwiSGFuZGxlYmFyc1wiLFxuXHRcImhhc2tlbGxcIjpcIkhhc2tlbGxcIixcblx0XCJoc1wiOlwiSGFza2VsbFwiLFxuXHRcImhheGVcIjpcIkhheGVcIixcblx0XCJoY2xcIjpcIkhDTFwiLFxuXHRcImhsc2xcIjpcIkhMU0xcIixcblx0XCJob29uXCI6XCJIb29uXCIsXG5cdFwiaHR0cFwiOlwiSFRUUFwiLFxuXHRcImhwa3BcIjpcIkhUVFAgUHVibGljLUtleS1QaW5zXCIsXG5cdFwiaHN0c1wiOlwiSFRUUCBTdHJpY3QtVHJhbnNwb3J0LVNlY3VyaXR5XCIsXG5cdFwiaWNoaWdvamFtXCI6XCJJY2hpZ29KYW1cIixcblx0XCJpY29uXCI6XCJJY29uXCIsXG5cdFwiaWN1LW1lc3NhZ2UtZm9ybWF0XCI6XCJJQ1UgTWVzc2FnZSBGb3JtYXRcIixcblx0XCJpZHJpc1wiOlwiSWRyaXNcIixcblx0XCJpZHJcIjpcIklkcmlzXCIsXG5cdFwiaW5mb3JtN1wiOlwiSW5mb3JtIDdcIixcblx0XCJpbmlcIjpcIkluaVwiLFxuXHRcImlvXCI6XCJJb1wiLFxuXHRcImpcIjpcIkpcIixcblx0XCJqYXZhXCI6XCJKYXZhXCIsXG5cdFwiamF2YWRvY1wiOlwiSmF2YURvY1wiLFxuXHRcImphdmFkb2NsaWtlXCI6XCJKYXZhRG9jLWxpa2VcIixcblx0XCJqYXZhc3RhY2t0cmFjZVwiOlwiSmF2YSBzdGFjayB0cmFjZVwiLFxuXHRcImpleGxcIjpcIkpleGxcIixcblx0XCJqb2xpZVwiOlwiSm9saWVcIixcblx0XCJqcVwiOlwiSlFcIixcblx0XCJqc2RvY1wiOlwiSlNEb2NcIixcblx0XCJqcy1leHRyYXNcIjpcIkpTIEV4dHJhc1wiLFxuXHRcImpzb25cIjpcIkpTT05cIixcblx0XCJ3ZWJtYW5pZmVzdFwiOlwiSlNPTlwiLFxuXHRcImpzb241XCI6XCJKU09ONVwiLFxuXHRcImpzb25wXCI6XCJKU09OUFwiLFxuXHRcImpzc3RhY2t0cmFjZVwiOlwiSlMgc3RhY2sgdHJhY2VcIixcblx0XCJqcy10ZW1wbGF0ZXNcIjpcIkpTIFRlbXBsYXRlc1wiLFxuXHRcImp1bGlhXCI6XCJKdWxpYVwiLFxuXHRcImtlZXBhbGl2ZWRcIjpcIktlZXBhbGl2ZWQgQ29uZmlndXJlXCIsXG5cdFwia2V5bWFuXCI6XCJLZXltYW5cIixcblx0XCJrb3RsaW5cIjpcIktvdGxpblwiLFxuXHRcImt0XCI6XCJLb3RsaW5cIixcblx0XCJrdHNcIjpcIktvdGxpblwiLFxuXHRcImt1bWlyXCI6XCJLdU1pciAoXHUwNDFBXHUwNDQzXHUwNDFDXHUwNDM4XHUwNDQwKVwiLFxuXHRcImt1bVwiOlwiS3VNaXIgKFx1MDQxQVx1MDQ0M1x1MDQxQ1x1MDQzOFx1MDQ0MClcIixcblx0XCJrdXN0b1wiOlwiS3VzdG9cIixcblx0XCJsYXRleFwiOlwiTGFUZVhcIixcblx0XCJ0ZXhcIjpcIkxhVGVYXCIsXG5cdFwiY29udGV4dFwiOlwiTGFUZVhcIixcblx0XCJsYXR0ZVwiOlwiTGF0dGVcIixcblx0XCJsZXNzXCI6XCJMZXNzXCIsXG5cdFwibGlseXBvbmRcIjpcIkxpbHlQb25kXCIsXG5cdFwibHlcIjpcIkxpbHlQb25kXCIsXG5cdFwibGlxdWlkXCI6XCJMaXF1aWRcIixcblx0XCJsaXNwXCI6XCJMaXNwXCIsXG5cdFwiZW1hY3NcIjpcIkxpc3BcIixcblx0XCJlbGlzcFwiOlwiTGlzcFwiLFxuXHRcImVtYWNzLWxpc3BcIjpcIkxpc3BcIixcblx0XCJsaXZlc2NyaXB0XCI6XCJMaXZlU2NyaXB0XCIsXG5cdFwibGx2bVwiOlwiTExWTSBJUlwiLFxuXHRcImxvZ1wiOlwiTG9nIGZpbGVcIixcblx0XCJsb2xjb2RlXCI6XCJMT0xDT0RFXCIsXG5cdFwibHVhXCI6XCJMdWFcIixcblx0XCJtYWdtYVwiOlwiTWFnbWEgKENBUylcIixcblx0XCJtYWtlZmlsZVwiOlwiTWFrZWZpbGVcIixcblx0XCJtYXJrZG93blwiOlwiTWFya2Rvd25cIixcblx0XCJtZFwiOlwiTWFya2Rvd25cIixcblx0XCJtYXJrdXAtdGVtcGxhdGluZ1wiOlwiTWFya3VwIHRlbXBsYXRpbmdcIixcblx0XCJtYXRhXCI6XCJNYXRhXCIsXG5cdFwibWF0bGFiXCI6XCJNQVRMQUJcIixcblx0XCJtYXhzY3JpcHRcIjpcIk1BWFNjcmlwdFwiLFxuXHRcIm1lbFwiOlwiTUVMXCIsXG5cdFwibWVybWFpZFwiOlwiTWVybWFpZFwiLFxuXHRcIm1ldGFmb250XCI6XCJNRVRBRk9OVFwiLFxuXHRcIm1pemFyXCI6XCJNaXphclwiLFxuXHRcIm1vbmdvZGJcIjpcIk1vbmdvREJcIixcblx0XCJtb25rZXlcIjpcIk1vbmtleVwiLFxuXHRcIm1vb25zY3JpcHRcIjpcIk1vb25TY3JpcHRcIixcblx0XCJtb29uXCI6XCJNb29uU2NyaXB0XCIsXG5cdFwibjFxbFwiOlwiTjFRTFwiLFxuXHRcIm40anNcIjpcIk40SlNcIixcblx0XCJuNGpzZFwiOlwiTjRKU1wiLFxuXHRcIm5hbmQydGV0cmlzLWhkbFwiOlwiTmFuZCBUbyBUZXRyaXMgSERMXCIsXG5cdFwibmFuaXNjcmlwdFwiOlwiTmFuaW5vdmVsIFNjcmlwdFwiLFxuXHRcIm5hbmlcIjpcIk5hbmlub3ZlbCBTY3JpcHRcIixcblx0XCJuYXNtXCI6XCJOQVNNXCIsXG5cdFwibmVvblwiOlwiTkVPTlwiLFxuXHRcIm5ldm9kXCI6XCJOZXZvZFwiLFxuXHRcIm5naW54XCI6XCJuZ2lueFwiLFxuXHRcIm5pbVwiOlwiTmltXCIsXG5cdFwibml4XCI6XCJOaXhcIixcblx0XCJuc2lzXCI6XCJOU0lTXCIsXG5cdFwib2JqZWN0aXZlY1wiOlwiT2JqZWN0aXZlLUNcIixcblx0XCJvYmpjXCI6XCJPYmplY3RpdmUtQ1wiLFxuXHRcIm9jYW1sXCI6XCJPQ2FtbFwiLFxuXHRcIm9kaW5cIjpcIk9kaW5cIixcblx0XCJvcGVuY2xcIjpcIk9wZW5DTFwiLFxuXHRcIm9wZW5xYXNtXCI6XCJPcGVuUWFzbVwiLFxuXHRcInFhc21cIjpcIk9wZW5RYXNtXCIsXG5cdFwib3pcIjpcIk96XCIsXG5cdFwicGFyaWdwXCI6XCJQQVJJL0dQXCIsXG5cdFwicGFyc2VyXCI6XCJQYXJzZXJcIixcblx0XCJwYXNjYWxcIjpcIlBhc2NhbFwiLFxuXHRcInBhc2NhbGlnb1wiOlwiUGFzY2FsaWdvXCIsXG5cdFwicHNsXCI6XCJQQVRST0wgU2NyaXB0aW5nIExhbmd1YWdlXCIsXG5cdFwicGNheGlzXCI6XCJQQy1BeGlzXCIsXG5cdFwicHhcIjpcIlBDLUF4aXNcIixcblx0XCJwZW9wbGVjb2RlXCI6XCJQZW9wbGVDb2RlXCIsXG5cdFwicGNvZGVcIjpcIlBlb3BsZUNvZGVcIixcblx0XCJwZXJsXCI6XCJQZXJsXCIsXG5cdFwicGhwXCI6XCJQSFBcIixcblx0XCJwaHBkb2NcIjpcIlBIUERvY1wiLFxuXHRcInBocC1leHRyYXNcIjpcIlBIUCBFeHRyYXNcIixcblx0XCJwbGFudC11bWxcIjpcIlBsYW50VU1MXCIsXG5cdFwicGxhbnR1bWxcIjpcIlBsYW50VU1MXCIsXG5cdFwicGxzcWxcIjpcIlBML1NRTFwiLFxuXHRcInBvd2VycXVlcnlcIjpcIlBvd2VyUXVlcnlcIixcblx0XCJwcVwiOlwiUG93ZXJRdWVyeVwiLFxuXHRcIm1zY3JpcHRcIjpcIlBvd2VyUXVlcnlcIixcblx0XCJwb3dlcnNoZWxsXCI6XCJQb3dlclNoZWxsXCIsXG5cdFwicHJvY2Vzc2luZ1wiOlwiUHJvY2Vzc2luZ1wiLFxuXHRcInByb2xvZ1wiOlwiUHJvbG9nXCIsXG5cdFwicHJvbXFsXCI6XCJQcm9tUUxcIixcblx0XCJwcm9wZXJ0aWVzXCI6XCIucHJvcGVydGllc1wiLFxuXHRcInByb3RvYnVmXCI6XCJQcm90b2NvbCBCdWZmZXJzXCIsXG5cdFwicHVnXCI6XCJQdWdcIixcblx0XCJwdXBwZXRcIjpcIlB1cHBldFwiLFxuXHRcInB1cmVcIjpcIlB1cmVcIixcblx0XCJwdXJlYmFzaWNcIjpcIlB1cmVCYXNpY1wiLFxuXHRcInBiZmFzbVwiOlwiUHVyZUJhc2ljXCIsXG5cdFwicHVyZXNjcmlwdFwiOlwiUHVyZVNjcmlwdFwiLFxuXHRcInB1cnNcIjpcIlB1cmVTY3JpcHRcIixcblx0XCJweXRob25cIjpcIlB5dGhvblwiLFxuXHRcInB5XCI6XCJQeXRob25cIixcblx0XCJxc2hhcnBcIjpcIlEjXCIsXG5cdFwicXNcIjpcIlEjXCIsXG5cdFwicVwiOlwiUSAoa2RiKyBkYXRhYmFzZSlcIixcblx0XCJxbWxcIjpcIlFNTFwiLFxuXHRcInFvcmVcIjpcIlFvcmVcIixcblx0XCJyXCI6XCJSXCIsXG5cdFwicmFja2V0XCI6XCJSYWNrZXRcIixcblx0XCJya3RcIjpcIlJhY2tldFwiLFxuXHRcImNzaHRtbFwiOlwiUmF6b3IgQyNcIixcblx0XCJqc3hcIjpcIlJlYWN0IEpTWFwiLFxuXHRcInRzeFwiOlwiUmVhY3QgVFNYXCIsXG5cdFwicmVhc29uXCI6XCJSZWFzb25cIixcblx0XCJyZWdleFwiOlwiUmVnZXhcIixcblx0XCJyZWdvXCI6XCJSZWdvXCIsXG5cdFwicmVucHlcIjpcIlJlbidweVwiLFxuXHRcInJweVwiOlwiUmVuJ3B5XCIsXG5cdFwicmVzY3JpcHRcIjpcIlJlU2NyaXB0XCIsXG5cdFwicmVzXCI6XCJSZVNjcmlwdFwiLFxuXHRcInJlc3RcIjpcInJlU1QgKHJlU3RydWN0dXJlZFRleHQpXCIsXG5cdFwicmlwXCI6XCJSaXBcIixcblx0XCJyb2JvY29uZlwiOlwiUm9ib2NvbmZcIixcblx0XCJyb2JvdGZyYW1ld29ya1wiOlwiUm9ib3QgRnJhbWV3b3JrXCIsXG5cdFwicm9ib3RcIjpcIlJvYm90IEZyYW1ld29ya1wiLFxuXHRcInJ1YnlcIjpcIlJ1YnlcIixcblx0XCJyYlwiOlwiUnVieVwiLFxuXHRcInJ1c3RcIjpcIlJ1c3RcIixcblx0XCJzYXNcIjpcIlNBU1wiLFxuXHRcInNhc3NcIjpcIlNhc3MgKFNhc3MpXCIsXG5cdFwic2Nzc1wiOlwiU2FzcyAoU0NTUylcIixcblx0XCJzY2FsYVwiOlwiU2NhbGFcIixcblx0XCJzY2hlbWVcIjpcIlNjaGVtZVwiLFxuXHRcInNoZWxsLXNlc3Npb25cIjpcIlNoZWxsIHNlc3Npb25cIixcblx0XCJzaC1zZXNzaW9uXCI6XCJTaGVsbCBzZXNzaW9uXCIsXG5cdFwic2hlbGxzZXNzaW9uXCI6XCJTaGVsbCBzZXNzaW9uXCIsXG5cdFwic21hbGlcIjpcIlNtYWxpXCIsXG5cdFwic21hbGx0YWxrXCI6XCJTbWFsbHRhbGtcIixcblx0XCJzbWFydHlcIjpcIlNtYXJ0eVwiLFxuXHRcInNtbFwiOlwiU01MXCIsXG5cdFwic21sbmpcIjpcIlNNTFwiLFxuXHRcInNvbGlkaXR5XCI6XCJTb2xpZGl0eSAoRXRoZXJldW0pXCIsXG5cdFwic29sXCI6XCJTb2xpZGl0eSAoRXRoZXJldW0pXCIsXG5cdFwic29sdXRpb24tZmlsZVwiOlwiU29sdXRpb24gZmlsZVwiLFxuXHRcInNsblwiOlwiU29sdXRpb24gZmlsZVwiLFxuXHRcInNveVwiOlwiU295IChDbG9zdXJlIFRlbXBsYXRlKVwiLFxuXHRcInNwYXJxbFwiOlwiU1BBUlFMXCIsXG5cdFwicnFcIjpcIlNQQVJRTFwiLFxuXHRcInNwbHVuay1zcGxcIjpcIlNwbHVuayBTUExcIixcblx0XCJzcWZcIjpcIlNRRlwiLFxuXHRcInNxbFwiOlwiU1FMXCIsXG5cdFwic3F1aXJyZWxcIjpcIlNxdWlycmVsXCIsXG5cdFwic3RhblwiOlwiU3RhblwiLFxuXHRcInN0YXRhXCI6XCJTdGF0YSBBZG9cIixcblx0XCJpZWNzdFwiOlwiU3RydWN0dXJlZCBUZXh0IChJRUMgNjExMzEtMylcIixcblx0XCJzdHlsdXNcIjpcIlN0eWx1c1wiLFxuXHRcInN1cGVyY29sbGlkZXJcIjpcIlN1cGVyQ29sbGlkZXJcIixcblx0XCJzY2xhbmdcIjpcIlN1cGVyQ29sbGlkZXJcIixcblx0XCJzd2lmdFwiOlwiU3dpZnRcIixcblx0XCJzeXN0ZW1kXCI6XCJTeXN0ZW1kIGNvbmZpZ3VyYXRpb24gZmlsZVwiLFxuXHRcInQ0LXRlbXBsYXRpbmdcIjpcIlQ0IHRlbXBsYXRpbmdcIixcblx0XCJ0NC1jc1wiOlwiVDQgVGV4dCBUZW1wbGF0ZXMgKEMjKVwiLFxuXHRcInQ0XCI6XCJUNCBUZXh0IFRlbXBsYXRlcyAoQyMpXCIsXG5cdFwidDQtdmJcIjpcIlQ0IFRleHQgVGVtcGxhdGVzIChWQilcIixcblx0XCJ0YXBcIjpcIlRBUFwiLFxuXHRcInRjbFwiOlwiVGNsXCIsXG5cdFwidHQyXCI6XCJUZW1wbGF0ZSBUb29sa2l0IDJcIixcblx0XCJ0ZXh0aWxlXCI6XCJUZXh0aWxlXCIsXG5cdFwidG9tbFwiOlwiVE9NTFwiLFxuXHRcInRyZW1vclwiOlwiVHJlbW9yXCIsXG5cdFwidHJpY2tsZVwiOlwiVHJlbW9yXCIsXG5cdFwidHJveVwiOlwiVHJlbW9yXCIsXG5cdFwidHVydGxlXCI6XCJUdXJ0bGVcIixcblx0XCJ0cmlnXCI6XCJUdXJ0bGVcIixcblx0XCJ0d2lnXCI6XCJUd2lnXCIsXG5cdFwidHlwZXNjcmlwdFwiOlwiVHlwZVNjcmlwdFwiLFxuXHRcInRzXCI6XCJUeXBlU2NyaXB0XCIsXG5cdFwidHlwb3NjcmlwdFwiOlwiVHlwb1NjcmlwdFwiLFxuXHRcInRzY29uZmlnXCI6XCJUU0NvbmZpZ1wiLFxuXHRcInVucmVhbHNjcmlwdFwiOlwiVW5yZWFsU2NyaXB0XCIsXG5cdFwidXNjcmlwdFwiOlwiVW5yZWFsU2NyaXB0XCIsXG5cdFwidWNcIjpcIlVucmVhbFNjcmlwdFwiLFxuXHRcInVvcmF6b3JcIjpcIlVPIFJhem9yIFNjcmlwdFwiLFxuXHRcInVyaVwiOlwiVVJJXCIsXG5cdFwidXJsXCI6XCJVUklcIixcblx0XCJ2XCI6XCJWXCIsXG5cdFwidmFsYVwiOlwiVmFsYVwiLFxuXHRcInZibmV0XCI6XCJWQi5OZXRcIixcblx0XCJ2ZWxvY2l0eVwiOlwiVmVsb2NpdHlcIixcblx0XCJ2ZXJpbG9nXCI6XCJWZXJpbG9nXCIsXG5cdFwidmhkbFwiOlwiVkhETFwiLFxuXHRcInZpbVwiOlwidmltXCIsXG5cdFwidmlzdWFsLWJhc2ljXCI6XCJWaXN1YWwgQmFzaWNcIixcblx0XCJ2YlwiOlwiVmlzdWFsIEJhc2ljXCIsXG5cdFwid2FycHNjcmlwdFwiOlwiV2FycFNjcmlwdFwiLFxuXHRcIndhc21cIjpcIldlYkFzc2VtYmx5XCIsXG5cdFwid2ViLWlkbFwiOlwiV2ViIElETFwiLFxuXHRcIndlYmlkbFwiOlwiV2ViIElETFwiLFxuXHRcIndnc2xcIjpcIldHU0xcIixcblx0XCJ3aWtpXCI6XCJXaWtpIG1hcmt1cFwiLFxuXHRcIndvbGZyYW1cIjpcIldvbGZyYW0gbGFuZ3VhZ2VcIixcblx0XCJtYXRoZW1hdGljYVwiOlwiV29sZnJhbSBsYW5ndWFnZVwiLFxuXHRcIm5iXCI6XCJXb2xmcmFtIGxhbmd1YWdlXCIsXG5cdFwid2xcIjpcIldvbGZyYW0gbGFuZ3VhZ2VcIixcblx0XCJ3cmVuXCI6XCJXcmVuXCIsXG5cdFwieGVvcmFcIjpcIlhlb3JhXCIsXG5cdFwieGVvcmFjdWJlXCI6XCJYZW9yYVwiLFxuXHRcInhtbC1kb2NcIjpcIlhNTCBkb2MgKC5uZXQpXCIsXG5cdFwieG9qb1wiOlwiWG9qbyAoUkVBTGJhc2ljKVwiLFxuXHRcInhxdWVyeVwiOlwiWFF1ZXJ5XCIsXG5cdFwieWFtbFwiOlwiWUFNTFwiLFxuXHRcInltbFwiOlwiWUFNTFwiLFxuXHRcInlhbmdcIjpcIllBTkdcIixcblx0XCJ6aWdcIjpcIlppZ1wiXG59O1xuY29uc3QgTUFOVUFMX0xBTkdVQUdFUzoge1trZXk6IHN0cmluZ106IHN0cmluZ30gPSB7IC8vIE1hbnVhbGx5IGNyZWF0ZWQgbGlzdFxuXHRcImZpc2hcIjpcIkZpc2hcIixcblx0XCJvY3RhdmVcIjpcIk9jdGF2ZVwiLFxuXHRcIm1heGltYVwiOlwiTWF4aW1hXCIsXG5cdFwibXlzcWxcIjpcIlNRTFwiLFxuXHRcInBvc3RncmVzcWxcIjpcIlNRTFwiLFxuXHRcInJzY3JpcHRcIjpcIlJcIixcblx0XCJzaGVsbHNjcmlwdFwiOlwiU2hlbGxcIixcblx0XCJzcWxpdGVcIjpcIlNRTFwiLFxuXHRcInpzaFwiOlwiWnNoXCIsXG59O1xuZXhwb3J0IGNvbnN0IExBTkdVQUdFX05BTUVTOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSA9IHsuLi5QUklTTV9MQU5HVUFHRVMsLi4uTUFOVUFMX1BSSVNNX0xBTkdVQUdFUywuLi5NQU5VQUxfTEFOR1VBR0VTfTtcblxuZXhwb3J0IGNvbnN0IExBTkdVQUdFUzoge1trZXk6IHN0cmluZ106IExhbmd1YWdlfSA9IHtcblx0XCIuZ2l0aWdub3JlXCI6IHtcblx0XHRjb2xvdXI6IFwiI2RkNGMzNVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTI5LjQ3MiwxNC43NTMsMTcuMjQ3LDIuNTI4YTEuOCwxLjgsMCwwLDAtMi41NSwwTDEyLjE1OCw1LjA2N2wzLjIyLDMuMjJhMi4xNDEsMi4xNDEsMCwwLDEsMi43MTIsMi43M2wzLjEsMy4xYTIuMTQzLDIuMTQzLDAsMSwxLTEuMjg1LDEuMjFsLTIuODk1LTIuODk1djcuNjE3YTIuMTQxLDIuMTQxLDAsMSwxLTEuNzY0LS4wNjJWMTIuM2EyLjE0NiwyLjE0NiwwLDAsMS0xLjE2NS0yLjgxNEwxMC45MTEsNi4zMTQsMi41MjgsMTQuN2ExLjgsMS44LDAsMCwwLDAsMi41NTFMMTQuNzUzLDI5LjQ3MmExLjgsMS44LDAsMCwwLDIuNTUsMEwyOS40NzIsMTcuM2ExLjgsMS44LDAsMCwwLDAtMi41NTFcXFwiIHN0eWxlPVxcXCJmaWxsOiNkZDRjMzVcXFwiLz48cGF0aCBkPVxcXCJNMTIuMTU4LDUuMDY3bDMuMjIsMy4yMmEyLjE0MSwyLjE0MSwwLDAsMSwyLjcxMiwyLjczbDMuMSwzLjFhMi4xNDMsMi4xNDMsMCwxLDEtMS4yODUsMS4yMWwtMi44OTUtMi44OTV2Ny42MTdhMi4xNDEsMi4xNDEsMCwxLDEtMS43NjQtLjA2MlYxMi4zYTIuMTQ2LDIuMTQ2LDAsMCwxLTEuMTY1LTIuODE0TDEwLjkxMSw2LjMxNFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcdGlubGluZUNvbW1lbnQ6IFtcblx0XHRcdFwiI1wiLFxuXHRcdF0sXG5cdH0sXG5cdFwiLmhnaWdub3JlXCI6IHtcblx0XHRjb2xvdXI6IFwiI2JmYmZiZlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTI4LjA0MiwyMy4xNzJjNC45ODktOC4zLTEuMDU0LTIxLjc1MS0xMi4xLTIwLjM4NEM1Ljk1NSw0LjAyMiw1Ljc5NCwxNC41MywxNC41OTMsMTcuMDI2YzcuNjE0LDIuMTYyLDEuNTczLDYuOTkyLDEuNzQ5LDEwLjIwOHM2LjYyLDQuMzgyLDExLjctNC4wNjNcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYjFiMWJcXFwiLz48Y2lyY2xlIGN4PVxcXCI5Ljc4NFxcXCIgY3k9XFxcIjI0LjI1N1xcXCIgcj1cXFwiNC4zMzJcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYjFiMWJcXFwiLz48Y2lyY2xlIGN4PVxcXCI0LjgzNVxcXCIgY3k9XFxcIjE1LjA5OVxcXCIgcj1cXFwiMi44MzVcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYjFiMWJcXFwiLz48cGF0aCBkPVxcXCJNMjguMjMxLDIyLjgzNWM0Ljk4OS04LjMtMS4wNTQtMjEuNzUxLTEyLjEtMjAuMzg0QzYuMTQ0LDMuNjg2LDUuOTgzLDE0LjE5NCwxNC43ODEsMTYuNjljNy42MTQsMi4xNjIsMS41NzMsNi45OTIsMS43NDksMTAuMjA4czYuNjIsNC4zODIsMTEuNy00LjA2M1xcXCIgc3R5bGU9XFxcImZpbGw6I2JmYmZiZlxcXCIvPjxjaXJjbGUgY3g9XFxcIjkuOTcyXFxcIiBjeT1cXFwiMjMuOTIxXFxcIiByPVxcXCI0LjMzMlxcXCIgc3R5bGU9XFxcImZpbGw6I2JmYmZiZlxcXCIvPjxjaXJjbGUgY3g9XFxcIjUuMDIzXFxcIiBjeT1cXFwiMTQuNzYyXFxcIiByPVxcXCIyLjgzNVxcXCIgc3R5bGU9XFxcImZpbGw6I2JmYmZiZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNy44MTEsMjguMTY4YS42NjkuNjY5LDAsMCwxLC42MzUtLjk5NCw3LDcsMCwwLDAsMy43LS43NDZjMy4yNDctMS44NDEsOC4yNDQtMTAuNyw1LjczMS0xNi4yODVBMTIuNzcsMTIuNzcsMCwwLDAsMjUuMDQ5LDUuN2MtLjIzNi0uMjQ5LS4xLS4yMzYuMDU5LS4xNTJhMTAuMDgsMTAuMDgsMCwwLDEsMi44NTcsMy42NzYsMTQuNTc4LDE0LjU3OCwwLDAsMSwxLjEsMTAuMjc5Yy0uNDk0LDEuODE3LTIuMiw1LjkyOC00LjY5MSw3LjcwNnMtNS40MjQsMi44LTYuNTYzLjk1NU0xNS41NDgsMTYuNjczYy0xLjctLjUtMy44OTQtMS4yMDgtNS4xNjMtMi44NjdBOC4wODgsOC4wODgsMCwwLDEsOC44NTQsMTAuNDljLS4wNDMtLjI3LS4wOC0uNSwwLS41NThhMjEuODgyLDIxLjg4MiwwLDAsMCwxLjY4OCwyLjcyMyw2LjQ4Nyw2LjQ4NywwLDAsMCwzLjUyNiwyLjI1NiwxMi4zODMsMTIuMzgzLDAsMCwxLDMuODY3LDEuMzdjLjczOS42MjkuOCwxLjk4OS41NTIsMi4xNDJzLS43NTktMS4xLTIuOTM4LTEuNzQ5bS04LjE1NSwxMC40YzMuMzY5LDMuMTIxLDguNDM5LTEuMTY2LDYuMjA3LTQuOTU0LS4yNTEtLjQyNS0uNTc2LS43NDktLjQ2OS0uNDIzLjcxNCwyLjE3OC4wNTQsMy45LTEuMTc2LDQuNzg4YTQuMDYzLDQuMDYzLDAsMCwxLTQuMTkyLjMyOGMtLjM5LS4yLS41NTEuMDkyLS4zNy4yNjFtLTMuOTMtMTAuMTZjLjAxOC4yLjI5Mi40NTguNzIyLjU3NmEyLjk2OSwyLjk2OSwwLDAsMCwyLjU1LS40MTMsMi43NTksMi43NTksMCwwLDAsLjgxLTMuNDUyYy0uMTcyLS4zMDgtLjQtLjUzMy0uMjE4LS4wNDFBMi42OCwyLjY4LDAsMCwxLDYuMTQ4LDE2LjUzYTIuNDM5LDIuNDM5LDAsMCwxLTIuMS4xNjRjLS4zOTEtLjExOS0uNi4wMTYtLjU4LjIyM1xcXCIvPjxwYXRoIGQ9XFxcIk0xOS4wNTYsMjguNDA3Yy0uMDMzLjM4OS40MTQuNDY2LDEuMDE2LjM3NmE2Ljc1NSw2Ljc1NSwwLDAsMCwyLjMxMy0uNjQ4LDkuNTQsOS41NCwwLDAsMCwzLjMxNC0yLjYzYzIuNjYyLTMuNDczLDMuNi03LjU4MiwzLjQ2LTguMTczQTE2LjE3MiwxNi4xNzIsMCwwLDEsMjcsMjIuNjkyYy0xLjg4OCwyLjk2OC0zLjI1Niw0LjU0OC02LjQxMyw1LjMxNC0uODc5LjIxMy0xLjQ4NS0uMTEyLTEuNTI5LjRtLTctMTMuNUE3Ljk2Nyw3Ljk2NywwLDAsMCwxNC42LDE2LjA4OWExMi4yLDEyLjIsMCwwLDEsMi45NiwxLjMxYy4zNzguMjUzLjYxOC44MTkuNjQyLjMxN3MtLjI4NS0uOTM0LS45NzYtMS4xNjRhMTUuMjc0LDE1LjI3NCwwLDAsMC0yLjAwOS0uNjc0Yy0uNDg1LS4xLTEuMjczLS4yODUtMS45NDktLjQ5My0uMzcxLS4xMTQtLjc0OC0uMzEzLTEuMjE0LS40ODNNMTAuMDM3LDI3LjcxOGMuNDI5LS4wOSwyLjkyNC0uNzM2LDMuNTEtMi43ODguMTgzLS42NC4yMTUtLjUxMS4xNjQtLjE2NWEzLjgsMy44LDAsMCwxLTMuMzU4LDMuMTIzYy0uMjg5LjAzLS42NjgtLjEtLjMxNS0uMTdNNS4wNDYsMTcuMmE3Ljk5MSw3Ljk5MSwwLDAsMCwxLjE5NS0uMzM2LDIuMzgzLDIuMzgzLDAsMCwwLDEuMjMyLTEuNzQxYy4wNjQtLjUwNS4wODMtLjM3OC4xMDktLjFhMi42MjcsMi42MjcsMCwwLDEtMi4xNDcsMi4zMjRjLS4yLjAyOC0uNTYuMDExLS4zODktLjE0M1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0yNy41NCwxNy40NDZjMi4xMjQtNi4xMjMtMi4zMjEtMTUuMzctMTEuMzE1LTE0LjI1OC04LjEyNiwxLTguMjU3LDkuNTU3LTEuMSwxMS41OSw4LjExMiwxLjIyOCwzLjIyNyw3LjM0NywyLjUzNSwxMC40MzMtLjYyMSwyLjc2Niw2LjU1NSwzLjIyMSw5Ljg3Ni03Ljc2NU03LjIxOSwyNi4yYTIuMDI4LDIuMDI4LDAsMCwxLDEuMzMyLjQ0MiwzLjUyNSwzLjUyNSwwLDAsMCwzLjc1NS0uOTgzQTQuMTU0LDQuMTU0LDAsMCwwLDEyLjg2OSwyMmMtLjgwNi0yLjMxOS00LjIyOS0yLjI3OC01Ljc1OC0uMzUzLTEuNjU0LDIuMTUtLjQsNC41MzkuMTA4LDQuNTQ4TTIuNjc2LDE1LjQ1MWExLjE2NiwxLjE2NiwwLDAsMCwuOTA4Ljg2M2MuNzMxLjEuODguNDM0LDEuNzQzLjI2M0EyLjQ2NCwyLjQ2NCwwLDAsMCw3LjEsMTQuOTE2YTEuNzcxLDEuNzcxLDAsMCwwLS44MjQtMi4xNCwyLjY4OSwyLjY4OSwwLDAsMC0zLjA0Ny4zNjMsMi4yNjMsMi4yNjMsMCwwLDAtLjU1OCwyLjMxMlxcXCIgc3R5bGU9XFxcImZpbGw6Izk5OVxcXCIvPjxwYXRoIGQ9XFxcIk0yMS45ODEsMjIuMjI4Yy0yLjItLjI3Mi01LjM2LDQuNjktMi4zNzgsNC4xMDloMGE1LjY0NSw1LjY0NSwwLDAsMCwzLjY4My0xLjkzMiwyMy4xMzYsMjMuMTM2LDAsMCwwLDQuMDU1LTcuMmMuNS0xLjg2MS4yNTEtNC43NDUtLjI2OS0yLjAzNi0uNTMzLDIuNzgxLTIuODkzLDcuMzM2LTUuMDkxLDcuMDY0TTEwLjUyMywyNi4zNjJBMi43NzgsMi43NzgsMCwwLDAsMTIuNSwyMi45OWMtLjE2NS0xLjI3Ni0uODYxLDEuNTg0LTIuMTUsMi4wMTItMS45NTMuNjQ4LTEuNzMzLDEuODYxLjE3NiwxLjM2MW0tNC45NzgtMTAuMmMuNjYzLS4xNzMsMS41NC0xLjA3NywxLjEtMS43NjctLjUzNy0uODUtMi4wMzMtLjEyMi0yLjA4NC44MjRzLjI3NywxLjEyNy45NzkuOTQzXFxcIiBzdHlsZT1cXFwiZmlsbDojZjNmM2YzXFxcIi8+XCIsXG5cdH0sXG5cdFwiLm5wbWlnbm9yZVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNjYjM4MzdcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yLDEwLjU1NUgzMHY5LjMzNUgxNnYxLjU1Nkg5Ljc3OFYxOS44ODlIMlptMS41NTYsNy43NzlINi42NjdWMTMuNjY2SDguMjIydjQuNjY3SDkuNzc4VjEyLjExMUgzLjU1NlptNy43NzgtNi4yMjN2Ny43NzloMy4xMTFWMTguMzM0aDMuMTExVjEyLjExMVptMy4xMTEsMS41NTZIMTZ2My4xMTJIMTQuNDQ0Wm00LjY2Ny0xLjU1NnY2LjIyM2gzLjExMVYxMy42NjZoMS41NTZ2NC42NjdoMS41NTZWMTMuNjY2aDEuNTU2djQuNjY3aDEuNTU2VjEyLjExMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjYjM4MzdcXFwiLz5cIixcblx0fSxcblx0XCIucHJvcGVydGllc1wiOiB7XG5cdFx0Y29sb3VyOiBcIiM5OWI4YzRcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yMy4yNjUsMjQuMzgxbC45LS44OTRjNC4xNjQuMTM2LDQuMjI4LS4wMSw0LjQxMS0uNDM4bDEuMTQ0LTIuNzg1TDI5LjgwNSwyMGwtLjA5My0uMjMxYy0uMDQ5LS4xMjItLjItLjQ4Ni0yLjgtMi45NjVWMTUuNWMzLTIuODksMi45MzYtMy4wMzgsMi43NjUtMy40NjFMMjguNTM4LDkuMjI1Yy0uMTcxLS40MjItLjIzNi0uNTg3LTQuMzctLjQ3NGwtLjktLjkzYTIwLjE2NiwyMC4xNjYsMCwwLDAtLjE0MS00LjEwNmwtLjExNi0uMjYzLTIuOTc0LTEuM2MtLjQzOC0uMi0uNTkyLS4yNzItMy40LDIuNzg2bC0xLjI2Mi0uMDE5Yy0yLjg5MS0zLjA4Ni0zLjAyOC0zLjAzLTMuNDYxLTIuODU1TDkuMTQ5LDMuMTgyYy0uNDMzLjE3NS0uNTg2LjIzNy0uNDE4LDQuNDM3bC0uODkzLjg5Yy00LjE2Mi0uMTM2LTQuMjI2LjAxMi00LjQwNy40MzhMMi4yODUsMTEuNzMzLDIuMTk1LDEybC4wOTQuMjMyYy4wNDkuMTIuMTk0LjQ4LDIuOCwyLjk2MmwwLDEuM2MtMywyLjg5LTIuOTM1LDMuMDM4LTIuNzYzLDMuNDYybDEuMTM4LDIuODE3Yy4xNzQuNDMxLjIzNi41ODQsNC4zNjkuNDc2bC45LjkzNWEyMC4yNDMsMjAuMjQzLDAsMCwwLC4xMzcsNC4xbC4xMTYuMjY1LDIuOTkzLDEuMzA4Yy40MzUuMTgyLjU4Ni4yNDcsMy4zODYtMi44bDEuMjYyLjAxNmMyLjg5NSwzLjA5LDMuMDQzLDMuMDMsMy40NjYsMi44NTlsMi43NTktMS4xMTVDMjMuMjg4LDI4LjY0NCwyMy40NCwyOC41ODMsMjMuMjY1LDI0LjM4MVpNMTEuNDA3LDE3Ljg1N2E0Ljk1Nyw0Ljk1NywwLDEsMSw2LjQ4OCwyLjgyNEE1LjAxNCw1LjAxNCwwLDAsMSwxMS40MDcsMTcuODU3WlxcXCIgc3R5bGU9XFxcImZpbGw6Izk5YjhjNFxcXCIvPlwiLFxuXHR9LFxuXHRcIjY1MDIgQXNzZW1ibHlcIjoge1xuXHRcdGNvbG91cjogXCIjMDAwMGJmXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCI4MzYuNjNcXFwiIHkxPVxcXCIzNi4yMDVcXFwiIHgyPVxcXCI4NDMuODAyXFxcIiB5Mj1cXFwiMTQuNDhcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoNTI1LjkyMiAzMC4yNDkpIHJvdGF0ZSgxODApIHNjYWxlKDAuNjA3IDAuNjA3KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjAuMjc1XFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9hc3NlbWJseTwvdGl0bGU+PHBhdGggZD1cXFwiTTE2LDJjLTEuMjQ2LDMuMDU2LTIsNS4wNTctMy4zOTEsOC4wMjJBMjEuODg0LDIxLjg4NCwwLDAsMCwxNi4yLDEzLjE1NmExNC44NTgsMTQuODU4LDAsMCwxLTQtMi4yODNDMTAuNDMsMTQuNTc5LDcuNjQ2LDE5Ljg1NSwyLDMwYzUuMTg2LTIuOTk0LDkuMDEyLTQuNjQ4LDEyLjY5MS00Ljk2NlYyNC4yaC0uODM0di0uODM3aC44MzRWMjQuMmgxLjY3NVYyMi41MjFIMTQuNjkxdi0uODM0aC0uODM0VjIwLjAxM2guODM0di0uODM0aDEuNjc1di44MzRIMTcuMnYuODM3aC0uODM3di0uODM3SDE0LjY5MXYxLjY3NWgxLjY3NXYuODM0SDE3LjJWMjQuMmgtLjgzN3YuNzgzYzMuOTguMSw4LjAwNiwxLjc3MiwxMy42MzQsNS4wMjEtLjg2My0xLjU4OS0xLjYzNi0zLjAyMS0yLjM3Mi00LjM4NWEyNS41MjYsMjUuNTI2LDAsMCwwLTQuODMzLTMuMzMzQTE0LjQzNiwxNC40MzYsMCwwLDEsMjYuNjUsMjMuOEMxOS4xNyw5Ljg3MiwxOC41NjUsOC4wMiwxNiwyWk0xMC41MTEsMTkuMTc5aDEuNjcxdi44MzRoLjgzN3Y1LjAyMWgtLjgzN1YyMi41MjFIMTAuNTExdjIuNTEySDkuNjczVjIwLjAxM2guODM3Wm0wLC44MzR2MS42NzVoMS42NzFWMjAuMDEzWm03LjUyNi0uODM0aC44Mzd2LjgzNGguODM3di44MzdoLjgzNHYtLjgzN2guODM3di0uODM0aC44Mzd2NS44NTVoLS44MzdWMjAuODVoLS44Mzd2LjgzN2gtLjgzNFYyMC44NWgtLjgzN3Y0LjE4NGgtLjgzN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDAwYmZcXFwiLz48cGF0aCBkPVxcXCJNMjMuODgxLDE4LjY0MmMtNi4wNjktOC4yMzctNy40NzYtMTQuODc2LTcuODMyLTE2LjQ2MUExNzUuMjE3LDE3NS4yMTcsMCwwLDAsMjMuODgxLDE4LjY0MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmY7ZmlsbC1vcGFjaXR5OjAuMTY1NjgwNDY4MDgyNDI4XFxcIi8+PHBhdGggZD1cXFwiTTE2LjA1MSwyLjEyLDE1LjYsMy4yMjdjLS4xNTkuMzkxLS4zMTEuNzY1LS40NjEsMS4xMzFzLS4zLjcyNC0uNDQ4LDEuMDc3LS4zLjctLjQ0OCwxLjA1My0uMy43MDYtLjQ2NSwxLjA2Ni0uMzI5LjcyOS0uNTA2LDEuMTExLS4zNjIuNzc4LS41NjEsMS4xOTNjLS4wMjguMDU3LS4wNjEuMTIzLS4wODkuMTgxQTIxLjg3MiwyMS44NzIsMCwwLDAsMTYuMiwxMy4xNTZhMTQuODc5LDE0Ljg3OSwwLDAsMS0zLjk4OS0yLjI3NmwtLjE0LjI4N2MtLjA2NS4xMzMtLjE0NC4yODMtLjIxMi40MmwtLjEwNi4yMTljLS44NzgsMS43OTMtMi4wMDYsMy45ODQtMy41MjQsNi44MjIsMy41NTEtMiw3LjM4MS00Ljg4NywxNC4zMzgtMi40LS4zNDktLjY2MS0uNjctMS4yOC0uOTcxLTEuODYzcy0uNTgxLTEuMTI4LS44NDEtMS42NDQtLjUtMS0uNzI1LTEuNDYzLS40MzMtLjktLjYyOS0xLjMxMy0uMzgtLjgxOC0uNTU0LTEuMi0uMzM5LS43NTQtLjUtMS4xMThTMTguMDQ3LDYuOSwxNy45LDYuNTQ2cy0uMjkxLS43MDktLjQzNC0xLjA2NmMtLjAzNi0uMDkxLS4wNzMtLjE4Ni0uMTA5LS4yNzdDMTYuOTQ5LDQuMjQ3LDE2LjUzNiwzLjI1OCwxNi4wNTEsMi4xMlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz5cIixcblx0fSxcblx0XCJBY3Rpb25TY3JpcHRcIjoge1xuXHRcdGNvbG91cjogXCIjYzQxNzE4XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMiwxNS4yODFjMS45MTgsMCwyLjExLTEuMDU1LDIuMTEtMS45MThhMTcuMTE5LDE3LjExOSwwLDAsMC0uMTkyLTIuMjA1LDE4LjcyMywxOC43MjMsMCwwLDEtLjE5Mi0yLjIwNWMwLTIuNCwxLjYzLTMuNDUyLDMuODM2LTMuNDUyaC41NzVWNi45MzhINy42NThjLTEuNTM0LDAtMi4xMS43NjctMi4xMSwyLjIwNWExNC40MTIsMTQuNDEyLDAsMCwwLC4xOTIsMS45MTgsMTQuMzA2LDE0LjMwNiwwLDAsMSwuMTkyLDIuMDE0YzAsMS43MjYtLjY3MSwyLjQ5My0xLjkxOCwyLjg3N3YuMWMxLjE1MS4yODgsMS45MTgsMS4xNTEsMS45MTgsMi44NzdhMTQuMzA2LDE0LjMwNiwwLDAsMS0uMTkyLDIuMDE0LDEzLDEzLDAsMCwwLS4xOTIsMS45MThjMCwxLjQzOC41NzUsMi4zLDIuMTEsMi4zaC40NzlWMjYuNkg3LjU2MmMtMi4yMDUsMC0zLjgzNi0uOTU5LTMuODM2LTMuNjQ0YTE4LjcyMywxOC43MjMsMCwwLDEsLjE5Mi0yLjIwNSwxNS42OCwxNS42OCwwLDAsMCwuMTkyLTIuMTFjMC0uODYzLS4yODgtMS45MTgtMi4xMS0xLjkxOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjNDE3MThcXFwiLz48cGF0aCBkPVxcXCJNOS40NzksMTguMDYyLDguMjMzLDIxLjhINi42TDEwLjYzLDkuOTExaDEuODIyTDE2LjQ3OSwyMS44SDE0Ljk0NUwxMy43LDE4LjA2MlptMy45MzItMS4xNTFMMTIuMjYsMTMuNDU5YTkuMzY0LDkuMzY0LDAsMCwxLS41NzUtMi4yMDVoMGMtLjE5Mi42NzEtLjM4NCwxLjQzOC0uNTc1LDIuMTFMOS45NTksMTYuODE1aDMuNDUyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2M0MTcxOFxcXCIvPjxwYXRoIGQ9XFxcIk0xNy45MTgsMTkuOTc5YTUuOTQxLDUuOTQxLDAsMCwwLDIuNzgxLjc2N2MxLjUzNCwwLDIuNDkzLS44NjMsMi40OTMtMi4wMTRzLS42NzEtMS43MjYtMi4yMDUtMi40Yy0xLjkxOC0uNjcxLTMuMTY0LTEuNzI2LTMuMTY0LTMuMzU2LDAtMS44MjIsMS41MzQtMy4yNiwzLjgzNi0zLjI2YTUuMTM1LDUuMTM1LDAsMCwxLDIuNTg5LjU3NWwtLjM4NCwxLjI0N2E1LjUxOSw1LjUxOSwwLDAsMC0yLjMtLjQ3OWMtMS42MywwLTIuMjA1Ljk1OS0yLjIwNSwxLjgyMiwwLDEuMTUxLjc2NywxLjYzLDIuNCwyLjMsMi4wMTQuNzY3LDMuMDY4LDEuNzI2LDMuMDY4LDMuNDUyLDAsMS44MjItMS4zNDIsMy40NTItNC4xMjMsMy40NTJhNS44MDcsNS44MDcsMCwwLDEtMy4wNjgtLjc2N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjNDE3MThcXFwiLz48cGF0aCBkPVxcXCJNMzAsMTYuNjIzYy0xLjkxOCwwLTIuMTEsMS4xNTEtMi4xMSwxLjkxOGExNS42OCwxNS42OCwwLDAsMCwuMTkyLDIuMTEsMTUuNzM4LDE1LjczOCwwLDAsMSwuMTkyLDIuMjA1YzAsMi42ODUtMS42MywzLjY0NC0zLjgzNiwzLjY0NGgtLjU3NVYyNS4wNjJoLjQ3OWMxLjQzOCwwLDIuMTEtLjg2MywyLjExLTIuM2ExMywxMywwLDAsMC0uMTkyLTEuOTE4LDE0LjMwNiwxNC4zMDYsMCwwLDEtLjE5Mi0yLjAxNGMwLTEuNzI2Ljc2Ny0yLjU4OSwxLjkxOC0yLjg3N3YtLjFjLTEuMTUxLS4yODgtMS45MTgtMS4xNTEtMS45MTgtMi44NzdhMTQuMzA2LDE0LjMwNiwwLDAsMSwuMTkyLTIuMDE0LDEzLDEzLDAsMCwwLC4xOTItMS45MThjMC0xLjQzOC0uNTc1LTIuMjA1LTIuMTEtMi4zaC0uNDc5VjUuNGguNTc1YzIuMjA1LDAsMy44MzYsMS4wNTUsMy44MzYsMy40NTJhMTcuMTE5LDE3LjExOSwwLDAsMS0uMTkyLDIuMjA1LDE3LjExOSwxNy4xMTksMCwwLDAtLjE5MiwyLjIwNWMwLC45NTkuMjg4LDEuOTE4LDIuMTEsMS45MThaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzQxNzE4XFxcIi8+XCIsXG5cdH0sXG5cdFwiQWRhXCI6IHtcblx0XHRjb2xvdXI6IFwiIzBmMjNjM1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTI0LjU1NCwyMC4wNzVjLjIwOS4yNywxLjM1Ni45NjEsMS4zNywxLjI0NmE2LjkyMSw2LjkyMSwwLDAsMC0xLjQtLjMyNGMtLjQ2OC0uMTQyLS45NTEtLjI5My0xLjQxMi0uNDhhOS4yLDkuMiwwLDAsMS0yLjM3NS0xLjNBMy4xNDYsMy4xNDYsMCwwLDEsMTkuMywxNi43NWExLjcyMiwxLjcyMiwwLDAsMSwxLjc2Ny0xLjgyMiwzLjU4NCwzLjU4NCwwLDAsMSwxLjU5My4zMjFjLjE0Ni4wNjYsMS4zMS42MDYsMS4yNTYuODA5YTUuNSw1LjUsMCwwLDAtMS40MS0uMTEyYy0uNjQ5LjI0NC0uNC44MjgtLjE2OCwxLjMxMWE3Ljg3Nyw3Ljg3NywwLDAsMCwxLjA3OCwxLjU1NEMyMy41OCwxOS4wMDUsMjQuMywyMC4wODIsMjQuNTU0LDIwLjA3NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwZjIzYzNcXFwiLz48cGF0aCBkPVxcXCJNMjQuMTQxLDE2LjI3NmMuMTI4LS41OS44MTktMS4zODQsMS4zNDQtLjc3M2E0LjIsNC4yLDAsMCwxLC41NzgsMS45MThjLjEyLjY1Ni4yLDEuMzI3LjI2MSwxLjk4Mi4wMzguMzc5LjM0LDEuNzk0LjEyMywyLjA3NWEyMy4yNCwyMy4yNCwwLDAsMS0yLjkyMi0yLjgzOCwzLjc2MywzLjc2MywwLDAsMS0uOTI1LTEuN0MyMi41LDE1Ljg2NywyMy40NzksMTYuMjEsMjQuMTQxLDE2LjI3NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTE5NzhcXFwiLz48cGF0aCBkPVxcXCJNMjYuMywxNy43ODFjLjE0MS0uNzMyLS40MDYtMi41OTItMS4wNjctMi45NDlhLjA2LjA2LDAsMCwwLC4wNDQtLjAwN2MtLjE1Ni0uNDQ0LTEuMzU5LDEuMTE2LTEuMjI4LDEuMTc0LS4zMTYtLjEzOC43NzQtMS45ODQuOTg4LTIuMTYuNy0uNTc4LDEuMzcyLS4wODYsMS44NDUuNTQzYTYuMDM2LDYuMDM2LDAsMCwxLC43MzMsNC40MzQsNC41LDQuNSwwLDAsMS0uNDIxLDEuMzEyYy0uMS4yMi0uNDUsMS4xLS42ODIsMS4xNzRBMTQuNzU0LDE0Ljc1NCwwLDAsMCwyNi4zLDE3Ljc4MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwZjIzYzNcXFwiLz48cGF0aCBkPVxcXCJNMy42ODcsOC40Yy4xNzktLjE4OC0uMDQxLTEuNTI3LjMyNC0xLjU0OC4yNjItLjAxNS41NTMsMS43NDEuNjI3LDEuOTY4YTkuMiw5LjIsMCwwLDAsMS4xMjcsMi4zMjksNy41MjksNy41MjksMCwwLDAsNC4wMTYsMi45NzgsNC41NSw0LjU1LDAsMCwwLDIuMzY2LjJjLjkzMS0uMjA4LDEuODItLjU3NywyLjc1Ny0uNzY1LDEuMzUtLjI3LDMuMzQyLS4zNTIsNC40MzguNjQ3LjcuNjQxLjM3Ni43Ni4wNDMsMS40MjFhMi40NDUsMi40NDUsMCwwLDAsLjE3OCwyLjU2MmMuMjM1LjM0MiwxLjAzMy44MjcuNjc1LDEuMDk0LS41NjcuNDI0LTEuMjc3LS40NTItMS42MzYtLjc3Ni0xLjQtMS4yNjQtMi43MTEtMS4zMTMtNC40OTItMS4wNzRhOC45ODcsOC45ODcsMCwwLDEtNC44ODMtLjcwOEE5LjQ2OSw5LjQ2OSwwLDAsMSwzLjY4Nyw4LjRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljk0MSwzMGEzLjYxNSwzLjYxNSwwLDAsMS0yLjMyNS0uODE3Yy40NjktLjA5MiwxLjAyMS4wMjUsMS41MDgtLjA0NGE5LjcsOS43LDAsMCwwLDEuNzU0LS40M0ExMC41MzcsMTAuNTM3LDAsMCwwLDIzLjksMjcuMTU1YTYuNTUsNi41NSwwLDAsMCwyLjc1Ny01LjIxNGMuMTQ5LS4wODguMzE2LDEuMDM0LjMxOSwxLjA5MWE1Ljc4OSw1Ljc4OSwwLDAsMS0uMTksMS43MjcsNi44NjcsNi44NjcsMCwwLDEtMS40MjMsMi43NzRBNy4yODYsNy4yODYsMCwwLDEsMTkuOTQxLDMwWlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0xOC45NjIsMTkuMTA5YTUuNzYsNS43NiwwLDAsMS0yLjA1Ljg1OSwxMy4zOCwxMy4zOCwwLDAsMS0yLjIyNC41NDksOC44NjEsOC44NjEsMCwwLDEtNC40MzUtLjUxLDkuOTM5LDkuOTM5LDAsMCwxLTMuODQ5LTIuNEM2LjA1MiwxNy4yNCw0LjMsMTUuMTksNC44NTYsMTQuNTU3Yy4yNDgtLjI4Mi44NzUuODQ2LDEsLjk5MmE1LDUsMCwwLDAsMS4zNTcsMS4xMSwxMC45MTcsMTAuOTE3LDAsMCwwLDQuMDM1LDEuNDU2LDYuNjkzLDYuNjkzLDAsMCwwLDIuMzQtLjA5NCwxMi43NDMsMTIuNzQzLDAsMCwxLDEuNjk0LS40ODUsNCw0LDAsMCwxLDIuMTEzLjQ1N0MxNy43MzksMTguMTYzLDE4LjkxOCwxOC43MzYsMTguOTYyLDE5LjEwOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMjguMzEzLDE1LjA3OGExOS4yNzcsMTkuMjc3LDAsMCwxLS40NTMsMy43NzRjLS4xNzYtLjI0Mi4wMTYtMS40NywwLTEuNzkyYTYuMDMyLDYuMDMyLDAsMCwwLS4zODQtMi4wODdBNC45MjUsNC45MjUsMCwwLDAsMjYuMSwxMy4zMTJhMTQuNzI4LDE0LjcyOCwwLDAsMS0xLjI3LTEuNTM2Yy0xLjgzNy0yLjM4Mi0zLjI0NS01LjIxMS0yLjktOC4zLjAzNC0uMzA4LjA2OS0xLjQ0OC40MTEtMS40NDUuMTUyLDAsLjI2NiwxLjU2MS4yOSwxLjcxOGExMi41MjcsMTIuNTI3LDAsMCwwLDEuMjI0LDQuMTE2Yy42NywxLjIyMiwxLjk0NywyLjAyMywyLjgyNSwzLjFBNi41NzksNi41NzksMCwwLDEsMjguMzEzLDE1LjA3OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTUuNywyNi45MzVhMTAuODQ1LDEwLjg0NSwwLDAsMCw2LjQzNi0uNjg3LDYuOTQxLDYuOTQxLDAsMCwwLDQuMjc4LTQuNDE4Yy4zMTkuMi0uMDQ4LDEuNTI5LS4xMjgsMS43ODFhNS43MjYsNS43MjYsMCwwLDEtMS4wMSwxLjgxMyw4LjkzMyw4LjkzMywwLDAsMS0zLjI1NywyLjUxNEMyMC4zMTYsMjguNzEsMTYuMzU3LDI5LjU5LDE1LjcsMjYuOTM1WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4xNTEsMTkuMzc2Yy4zNjcsMi4xMDctMi45NTcsMy4xMjQtNC40NzgsMy4yMTMtMS44NTkuMTEtNC45MjktLjI5Mi02LjA2LTIuMDMxLS42NzMtMS4wMzUuNzgxLS4wOSwxLjE4OC4wNThhOC42NjMsOC42NjMsMCwwLDAsMy4wNi41LDExLjYsMTEuNiwwLDAsMCwzLjMwNS0uNSwxMy43MjUsMTMuNzI1LDAsMCwwLDEuNTMzLS41NzZDMTgsMTkuOTA4LDE4LjgyMywxOS4zNDksMTkuMTUxLDE5LjM3NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMjQuMTQyLDIzLjQ2Yy40LS45NDUtMS44ODMtMS41NzgtMi40NDUtMS44NThhNC44NTcsNC44NTcsMCwwLDEtMS4zMTUtLjg2N2MtLjE4MS0uMTgxLS44NzItLjkyLS44MDctMS4yMTlhNC45MTIsNC45MTIsMCwwLDEsMS4wODctLjE3NSw1LjkzLDUuOTMsMCwwLDEsLjg1NS41ODgsMTAuMzIzLDEwLjMyMywwLDAsMCwuOTY0LjVBMTUuNjE1LDE1LjYxNSwwLDAsMCwyNC42LDIxLjJjLjMwOC4wOSwxLjU0OS4yMDgsMS43MjcuNDI4QzI2LjI4NywyMS45MjQsMjQuMzU3LDIzLjY0OSwyNC4xNDIsMjMuNDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTI2LjEsMjIuMTcyYy4yNjUuNDMtMS4wOCwxLjgzMS0xLjM2MywyLjEwNWE5LjM0LDkuMzQsMCwwLDEtMi41NjYsMS43MjgsNy43NDgsNy43NDgsMCwwLDEtMi41Ni43NTNjLS42NzkuMDU4LTEuOTY2LS4xMjQtMi4xNDEtLjk3OWE2Ljk1MSw2Ljk1MSwwLDAsMSwxLjE3Ny0uMDg2Yy40NjItLjA1OS45MjEtLjE0OSwxLjM3Ni0uMjQ2YTEzLjA2NSwxMy4wNjUsMCwwLDAsMi4xODQtLjY0NSwxMS41MDYsMTEuNTA2LDAsMCwwLDIuMDg0LTEuMTEsMTAuODcyLDEwLjg3MiwwLDAsMCwxLjA3OC0uODIyQzI1LjQ3NCwyMi43ODEsMjUuOTg2LDIyLjE2OCwyNi4xLDIyLjE3MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTguNzU4LDExLjk2NWMtLjEtMS4zMDgsMi42MTItMS4zLDMuMjcxLTEuMDkyYTUuOTc2LDUuOTc2LDAsMCwxLDIuOTgyLDIuNDc1Yy0xLjA4Mi44LTIuNDQ5LjA5NC0zLjMtLjY1NGE0LjMyNCw0LjMyNCwwLDAsMC0xLjQ4MS0xLjAyOUMxOS40MjEsMTEuNCwxOS40MTIsMTEuNzU5LDE4Ljc1OCwxMS45NjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTI1Ljc4MywxMy4zNDFjLS40NDQtLjAyOS0uMzE2LjA3MS0uNjQ3LS4yMTItLjM1OC0uMzA3LS42MTQtLjc5NS0uOTQ1LTEuMTQxLS41MzQtLjU1OC0xLjI0Mi0uODk1LTEuNzIzLTEuNDg1YTcuMjY5LDcuMjY5LDAsMCwxLTEuNjI0LTQuODQ4Yy4wMTgtMS40ODkuNDA3LjE4Ny41NTEuNjc1YTEyLjI3NiwxMi4yNzYsMCwwLDAsMS4xMjYsMi43MDgsNDYuMDU1LDQ2LjA1NSwwLDAsMCwzLjQsNC4zMjFDMjUuODgyLDEzLjM2MSwyNS44MjQsMTMuMzM4LDI1Ljc4MywxMy4zNDFaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTIwLjA2OCwxNC43NTZjLjAzMy0uNjI1LS45MTEtLjc5Mi0xLjIxMS0xLjQyLS4xNjQtLjM0My0uMjExLS41NjkuMDI5LS43LjA4Mi0uMDQ1LjM4My4wMTIuNS0uMDIuMjcxLS4wNzYuMzM1LS4yNzMuNTgxLS40QTEuMTkzLDEuMTkzLDAsMCwxLDIxLjYsMTMuMjM3LDEuODIxLDEuODIxLDAsMCwxLDIwLjA2OCwxNC43NTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTIwLjUsMTQuNzQ1YTEuOTMxLDEuOTMxLDAsMCwwLDEuMzIzLTEuN2MuNTI0LjEzOS45MjguNjU4LDEuNTIxLjc3MWEyLjU4NCwyLjU4NCwwLDAsMCwxLjAyOS0uMDE3Yy4yMDctLjA0NS41NC0uMjc0LjcyMS0uMjU5LS4wMzMuMTYzLS40NjQuNTQ2LS41NjUuNzE3YTQuMjQyLDQuMjQyLDAsMCwwLS4zODguOWMtLjIyOS43NDEtLjA2MS43MzktLjcwOS4zMTFhNC4yODQsNC4yODQsMCwwLDAtMS45NTctLjcyQzIxLjIwOSwxNC43MjIsMjAuNTk0LDE0Ljc2NywyMC41LDE0Ljc0NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTkuOTA1LDIwLjczNGEyLjAwOCwyLjAwOCwwLDAsMS0xLjQsMS43MTJjLS4yMDUuMDkxLTIuMDE4LjczMy0yLjAzMi4zNDgtLjAwNy0uMiwxLjYyNC0uOTU0LDEuODA5LTEuMTFhMy4zNTUsMy4zNTUsMCwwLDAsLjg2Ny0xLjA3MWMuMDU1LS4xMTIuMjMyLS45MjUuMjcxLS45NDNDMTkuNjQ0LDE5LjU2NCwxOS45MDgsMjAuNiwxOS45MDUsMjAuNzM0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0xMS4zNzMsMTIuNTMyYTEwLjYyNSwxMC42MjUsMCwwLDEsMy43MS0uOTE0LDEwLjI4MiwxMC4yODIsMCwwLDEsMS44NjUuMDI0Yy4zNjYuMDM5LDEuNDY5LjA1NCwxLjc0LjM0M2EuMjU1LjI1NSwwLDAsMS0uMjczLjE3M2MtLjAzNy4wNzcuMjUxLjM3MS4zLjQyNS0uMDM0LjAzNC0xLjQ0NS0uNC0xLjU3Mi0uNDI0YTEwLjYzMiwxMC42MzIsMCwwLDAtMi4yODItLjEzNCwxNiwxNiwwLDAsMC0xLjg0MS4xOTRBNi4yMjQsNi4yMjQsMCwwLDEsMTEuMzczLDEyLjUzMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMjIuNTEyLDEwLjczMWExLjg4OCwxLjg4OCwwLDAsMS0xLjUxNy0uNmMtLjI0Ny0uMzQ5LS43MzctMS42OTItLjM4NS0yLjAyMS4yMDktLjIuMzg0LjY2Mi40ODQuODQ2QTEwLjgyMiwxMC44MjIsMCwwLDAsMjIuNTEyLDEwLjczMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMjcuNzg4LDE5LjJhMTkuMjEyLDE5LjIxMiwwLDAsMS0uNzQ5LDMuMzEzYy0uMTczLS4wNzctLjI3NS0uNzc4LS41NjItLjk1YTQuMDcsNC4wNywwLDAsMCwuNzYtMS4xNTRDMjcuMzg5LDIwLjEwNywyNy41NCwxOS4zNjMsMjcuNzg4LDE5LjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljk4MSwxMS44NDNjLS4xMzIuMjY4LS45MzIsMS4xLTEuMTE4LjQ4MUMxOC43NTYsMTEuOTY4LDE5LjczOSwxMS40ODMsMTkuOTgxLDExLjg0M1ptLS43NDcuNDVjLjIyOC4wMDYuMDEyLS4yNDguMDEyLS4yNjZDMTkuMjQ1LDExLjk4NCwxOC44NzgsMTIuMjkzLDE5LjIzNCwxMi4yOTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCItLVwiLFxuXHRcdF0sXG5cdH0sXG5cdFwiQUxcIjoge1xuXHRcdGNvbG91cjogXCIjMmVhOThlXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTEuNjE2LDcuOTg2QTEuNTU5LDEuNTU5LDAsMCwwLDEwLjE2LDdIMTAuMWExLjU1OCwxLjU1OCwwLDAsMC0xLjQ1Ni45ODZMMiwyNUg1LjgwNmwxLjAxNS0yLjgzNGg2LjYyMUwxNC40NTcsMjVoMy44Wk03Ljk0NCwxOC45NTZsMi4xODgtNi4xMTEsMi4xODgsNi4xMTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMmVhOThlXFxcIi8+PHBhdGggZD1cXFwiTTIzLjgyOSwyMS42NzFWNy4xMjlIMjAuM1YyMi43NDdBMi4zNDYsMi4zNDYsMCwwLDAsMjIuNTcsMjVIMzBWMjEuNjcyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzJlYTk4ZVxcXCIvPlwiLFxuXHR9LFxuXHRcIkFOVExSNFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNlNDRhMzJcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xNC4xNzcsNy4yNzhhMi4wOCwyLjA4LDAsMCwxLDMuMDQxLS44QTMuNTcxLDMuNTcxLDAsMCwxLDE4LjIsOC4wMjJjMS4zNTYsMy4xMjIsMi45LDYuMTY1LDQuMTE5LDkuMzQ1LjY0NSwxLjUsMS40MjksMi45MzgsMS45OTQsNC40NjhhMS40NTUsMS40NTUsMCwwLDEtMi4yNTgsMS4zNzZjLTIuOC0xLjU3Mi01LjYyOC0zLjA5NC04LjM4NS00LjczMSwyLjAwOS4wMDgsNC4wMTgtLjAwOCw2LjAyNS4wMTNhMTkuNzA3LDE5LjcwNywwLDAsMC0xLjI4OC0yLjkxOGMtLjc4MS0xLjg1OC0xLjYtMy43LTIuMzU4LTUuNTY1YTkuNzgzLDkuNzgzLDAsMCwwLTEuMDMyLDIuMTI1Yy0xLjMsMy4xODItMi44Nyw2LjI0MS00LjEzNiw5LjQzNS0uMjgxLjU5LS40MjQsMS4zNDQtMS4wMzUsMS42OWExLjQ0NywxLjQ0NywwLDAsMS0yLjA5NC0uNzM4Yy0uMjQxLS42MS4xNTEtMS4yLjM4Mi0xLjc0My43NzktMS43MjUsMS42NDUtMy40MTMsMi4yODMtNS4yQzExLjY1LDEyLjgsMTIuOTE2LDEwLjA0MSwxNC4xNzcsNy4yNzhaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmVmZWZlXFxcIi8+PHBhdGggZD1cXFwiTTEzLjgxNywyLjJBMTMuOTIzLDEzLjkyMywwLDAsMSwyOS41MjYsMTIuNTQ5YTEzLjczMywxMy43MzMsMCwwLDEtMi4wODIsMTEuNTE5QTE0LjA3NCwxNC4wNzQsMCwwLDEsNy43MzgsMjcuMjkzYTEzLjg1MiwxMy44NTIsMCwwLDEtNS42MTUtOS40ODNBMTQuMTUyLDE0LjE1MiwwLDAsMSwzLjQ1MSw5Ljg1LDEzLjk2MSwxMy45NjEsMCwwLDEsMTMuODE3LDIuMm0uMzU5LDUuMDhjLTEuMjYxLDIuNzYyLTIuNTI2LDUuNTI1LTMuNzYyLDguMy0uNjM4LDEuNzg2LTEuNSwzLjQ3My0yLjI4Myw1LjItLjIzMS41NDItLjYyMywxLjEzMy0uMzgyLDEuNzQzYTEuNDQ3LDEuNDQ3LDAsMCwwLDIuMDk0LjczOGMuNjEtLjM0Ny43NTMtMS4xLDEuMDM1LTEuNjksMS4yNjYtMy4xOTQsMi44MzMtNi4yNTMsNC4xMzYtOS40MzVhOS43ODMsOS43ODMsMCwwLDEsMS4wMzItMi4xMjVjLjc1NiwxLjg2OCwxLjU3NywzLjcwNywyLjM1OCw1LjU2NWExOS43MDcsMTkuNzA3LDAsMCwxLDEuMjg4LDIuOTE4Yy0yLjAwNy0uMDItNC4wMTYtLjAwNS02LjAyNS0uMDEzLDIuNzU3LDEuNjM3LDUuNTg4LDMuMTU5LDguMzg1LDQuNzMxYTEuNDU1LDEuNDU1LDAsMCwwLDIuMjU4LTEuMzc2Yy0uNTY1LTEuNTI5LTEuMzQ5LTIuOTcxLTEuOTk0LTQuNDY4LTEuMjItMy4xNzktMi43NjItNi4yMjMtNC4xMTktOS4zNDVhMy41NzEsMy41NzEsMCwwLDAtLjk4Mi0xLjU0NEEyLjA4LDIuMDgsMCwwLDAsMTQuMTc3LDcuMjc4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2U0NGEzMlxcXCIvPlwiLFxuXHR9LFxuXHRcIkFwYWNoZSBDb25maWd1cmF0aW9uXCI6IHtcblx0XHRjb2xvdXI6IFwiI2M5MjAzN1wiLFxuXHRcdGljb246IFwiPGRlZnM+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+XCIsXG5cdH0sXG5cdFwiQXBleFwiOiB7XG5cdFx0Y29sb3VyOiBcIiMwZjliZDdcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xMy42NTIsOC4zMzhBNC45MDYsNC45MDYsMCwwLDEsMTcuMiw2LjgxNGE0Ljk1Nyw0Ljk1NywwLDAsMSw0LjMyLDIuNTYsNS45NzIsNS45NzIsMCwwLDEsMi40NDItLjUxOSw2LjA4OSw2LjA4OSwwLDEsMS0xLjE4OSwxMi4wNiw0LjQxMiw0LjQxMiwwLDAsMS01Ljc4MiwxLjgxNkE1LjAzNCw1LjAzNCwwLDAsMSw3LjYzNCwyMi41YTQuNjQ2LDQuNjQ2LDAsMCwxLS45Ni4xLDQuNzMyLDQuNzMyLDAsMCwxLTIuMzM3LTguODEyLDUuNDM4LDUuNDM4LDAsMCwxLDkuMzE1LTUuNDUzXFxcIiBzdHlsZT1cXFwiZmlsbDojMGY5YmQ3XFxcIi8+PHBhdGggZD1cXFwiTTI1LjM3NiwzMC45NjZoLS41NjFhNC42NTgsNC42NTgsMCwwLDEtMS4yODQtLjEzNywxLjksMS45LDAsMCwxLS44MTgtLjQ4MiwxLjcyNiwxLjcyNiwwLDAsMS0uNDU1LS44NDMsNi43Nyw2Ljc3LDAsMCwxLS4xMDYtMS40MTMsNS44ODksNS44ODksMCwwLDAtLjA4NC0xLjMzLDEsMSwwLDAsMC0uMy0uNTQ0LDEuMjIzLDEuMjIzLDAsMCwwLS42Ni0uMTc5bC0uMjM2LS4wMTRWMjQuMTQ1bC4yMzYtLjAxNGExLjQ4MiwxLjQ4MiwwLDAsMCwuNTQ5LS4xLjcwNi43MDYsMCwwLDAsLjI3My0uMjY0LDEuMzk0LDEuMzk0LDAsMCwwLC4xODEtLjUyOSw2LjY4Myw2LjY4MywwLDAsMCwuMDQ0LS45MzksOC4xMzIsOC4xMzIsMCwwLDEsLjExMi0xLjY0MywxLjcsMS43LDAsMCwxLC40NDgtLjg0MSwyLjE0NCwyLjE0NCwwLDAsMSwuOTA2LS40OTIsNC41MTQsNC41MTQsMCwwLDEsMS4yLS4xMTZoLjU2MXYxLjloLS4yNWEyLjU4OSwyLjU4OSwwLDAsMC0uNzQzLjA1Ni4yODQuMjg0LDAsMCwwLS4xNDguMTE3LjgzOS44MzksMCwwLDAtLjA1NC4zODZxMCwuMzcyLS4wNTMsMS40MTNhMy43NCwzLjc0LDAsMCwxLS4xNjYsMS4wMDksMS45NDUsMS45NDUsMCwwLDEtLjY5MywxLDIuMDEsMi4wMSwwLDAsMSwuNywxLjA0NCw0LjYyNyw0LjYyNywwLDAsMSwuMTYzLDEuMDc5Yy4wMjcuNjU3LjA0MSwxLjA3NC4wNDEsMS4yNTZhLjg3MS44NzEsMCwwLDAsLjA1Ny40MDhBLjM0My4zNDMsMCwwLDAsMjQuNCwyOWEyLjM4MiwyLjM4MiwwLDAsMCwuNzI4LjA2aC4yNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjEuMTE4LDI1Ljc4OFYyNC4zODJhMS43NTIsMS43NTIsMCwwLDAsLjY0NS0uMTI5LjkzNi45MzYsMCwwLDAsLjM3NS0uMzU0LDEuNjIxLDEuNjIxLDAsMCwwLC4yMTctLjYyNEE2Ljg4LDYuODgsMCwwLDAsMjIuNCwyMi4zYTgsOCwwLDAsMSwuMTA1LTEuNTg1LDEuNDU2LDEuNDU2LDAsMCwxLC4zODEtLjcyMSwxLjksMS45LDAsMCwxLC44LS40MzEsNC4zMzYsNC4zMzYsMCwwLDEsMS4xMjUtLjEwNWguMzExdjEuNGEyLjg3NiwyLjg3NiwwLDAsMC0uODM1LjA3My41My41MywwLDAsMC0uMjcyLjIyMywxLjA3OSwxLjA3OSwwLDAsMC0uMDg4LjUxM3EwLC4zNjktLjA1MywxLjRhMy41MzEsMy41MzEsMCwwLDEtLjE1Mi45NCwxLjkxOCwxLjkxOCwwLDAsMS0uMzEzLjU5NSwyLjQ3LDIuNDcsMCwwLDEtLjU4My40ODYsMi4wNDUsMi4wNDUsMCwwLDEsLjU2NS40NjYsMS44NjksMS44NjksMCwwLDEsLjMzNy42NDcsNC40MSw0LjQxLDAsMCwxLC4xNTIsMS4wMnEuMDQxLjk3My4wNDEsMS4yNDJhMS4xLDEuMSwwLDAsMCwuMDk0LjUzOS41ODQuNTg0LDAsMCwwLC4yODQuMjMxLDIuNjQ5LDIuNjQ5LDAsMCwwLC44MjMuMDc5djEuNDA2aC0uMzExQTQuNDc0LDQuNDc0LDAsMCwxLDIzLjYsMzAuNTlhMS42NDQsMS42NDQsMCwwLDEtLjcxMi0uNDE5LDEuNDc4LDEuNDc4LDAsMCwxLS4zOS0uNzI0LDYuNjIxLDYuNjIxLDAsMCwxLS4xLTEuMzU2LDYuMzc0LDYuMzc0LDAsMCwwLS4wOTQtMS40LDEuMjMyLDEuMjMyLDAsMCwwLS4zOS0uNjcxQTEuNDMxLDEuNDMxLDAsMCwwLDIxLjExOCwyNS43ODhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA3MmEwXFxcIi8+PHBhdGggZD1cXFwiTTI3LjAxMSwzMC45NjZIMjYuNDVWMjkuMDU5aC4yNUEyLjMyOSwyLjMyOSwwLDAsMCwyNy40MjYsMjlhLjMyMy4zMjMsMCwwLDAsLjE2NS0uMTI3LjgxMi44MTIsMCwwLDAsLjA1OC0uMzc5cTAtLjM2LjA1LTEuMzc1YTMuNzI1LDMuNzI1LDAsMCwxLC4xNzMtMS4wNDcsMi4yMjMsMi4yMjMsMCwwLDEsLjM4Ny0uNywyLjE0NSwyLjE0NSwwLDAsMSwuMy0uMjkyLDIuMTQxLDIuMTQxLDAsMCwxLS40LS40LDIuNjEyLDIuNjEyLDAsMCwxLS40MjEtMS4wOTIsMTcuNTI1LDE3LjUyNSwwLDAsMS0uMS0xLjg0MSwxLjM1NywxLjM1NywwLDAsMC0uMDUzLS40NzljLS4wMDgtLjAxNi0uMDMxLS4wNjItLjEzNi0uMTA2YTIuNTI0LDIuNTI0LDAsMCwwLS43NTctLjA2aC0uMjVWMTkuMmguNTYxYTQuNzkzLDQuNzkzLDAsMCwxLDEuMjgzLjEzMywxLjg0MSwxLjg0MSwwLDAsMSwuODE4LjQ4NSwxLjc4MSwxLjc4MSwwLDAsMSwuNDUzLjg0Myw2LjYsNi42LDAsMCwxLC4xMDksMS40MTQsNi4zNTksNi4zNTksMCwwLDAsLjA3OSwxLjMzNi45OTIuOTkyLDAsMCwwLC4zLjUzNywxLjIyNiwxLjIyNiwwLDAsMCwuNjY0LjE4bC4yMzYuMDE0djEuODc5bC0uMjM2LjAxNGExLjQ4MiwxLjQ4MiwwLDAsMC0uNTQ5LjEuNjg2LjY4NiwwLDAsMC0uMjcuMjYyLDEuNDg0LDEuNDg0LDAsMCwwLS4xODYuNTM0LDYuNzQzLDYuNzQzLDAsMCwwLS4wNDMuOTMxLDguMzgzLDguMzgzLDAsMCwxLS4xMDgsMS42NDQsMS42OTQsMS42OTQsMCwwLDEtLjQ0Ni44NDYsMi4xNDMsMi4xNDMsMCwwLDEtLjkxMy40OTJBNC41LDQuNSwwLDAsMSwyNy4wMTEsMzAuOTY2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0zMC43MDgsMjUuNzg4YTEuNzUyLDEuNzUyLDAsMCwwLS42NDUuMTI5LjkxOC45MTgsMCwwLDAtLjM3Mi4zNTQsMS43MjUsMS43MjUsMCwwLDAtLjIyLjYyNCw2LjgyLDYuODIsMCwwLDAtLjA0Ny45NzMsOC4yNyw4LjI3LDAsMCwxLS4xLDEuNTg4LDEuNDM5LDEuNDM5LDAsMCwxLS4zNzguNzI0LDEuOSwxLjksMCwwLDEtLjgwOS40MzEsNC4zMzYsNC4zMzYsMCwwLDEtMS4xMjUuMTA1SDI2LjdWMjkuMzFhMi42NTIsMi42NTIsMCwwLDAsLjgyLS4wNzlBLjU3Mi41NzIsMCwwLDAsMjcuOCwyOSwxLjA1LDEuMDUsMCwwLDAsMjcuOSwyOC41cTAtLjM1Ny4wNS0xLjM2NWEzLjUzLDMuNTMsMCwwLDEsLjE1OC0uOTc2LDEuOTc2LDEuOTc2LDAsMCwxLC4zNDMtLjYyMUEyLjAzOCwyLjAzOCwwLDAsMSwyOSwyNS4wODVhMi40MTYsMi40MTYsMCwwLDEtLjYzMy0uNTUxLDIuMzM5LDIuMzM5LDAsMCwxLS4zNzUtLjk4NCwxNy41NjQsMTcuNTY0LDAsMCwxLS4wOTQtMS44LDEuNTcxLDEuNTcxLDAsMCwwLS4wNzktLjU4Ni40ODcuNDg3LDAsMCwwLS4yNjQtLjIyNiwyLjgsMi44LDAsMCwwLS44NTMtLjA3OXYtMS40aC4zMTFhNC41NzYsNC41NzYsMCwwLDEsMS4yMTMuMTIzLDEuNTg3LDEuNTg3LDAsMCwxLC43MDkuNDE5LDEuNTI5LDEuNTI5LDAsMCwxLC4zOS43MjcsNi40MzYsNi40MzYsMCwwLDEsLjEsMS4zNTYsNi44NDIsNi44NDIsMCwwLDAsLjA4OCwxLjQsMS4yMjMsMS4yMjMsMCwwLDAsLjM5My42NzEsMS40NDcsMS40NDcsMCwwLDAsLjguMjMxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNzJhMFxcXCIvPlwiLFxuXHR9LFxuXHRcIkFQTFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNkMmQyZDJcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0zMCwyOC4yNzUsMTYsMiwyLDI4LjI3NUgxNC4xNjJWMzBoMy42NzZWMjguMjc1Wk0xNy44MzgsMjQuODI2VjEzLjE2MWw2LjIxNSwxMS42NjVabS05Ljg5MSwwLDYuMjE1LTExLjY2NVYyNC44MjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCJcdTIzNURcIixcblx0XHRdLFxuXHR9LFxuXHRcIkFwcGxlU2NyaXB0XCI6IHtcblx0XHRjb2xvdXI6IFwiI2E4YzJhYlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE3LjE4MSw0LjQzN0E1Ljk5Myw1Ljk5MywwLDAsMSwyMS41NzksMmE1Ljk3OSw1Ljk3OSwwLDAsMS0xLjQ0Nyw0LjQ3Niw0LjcyOSw0LjcyOSwwLDAsMS00LjE3LDEuOTYxQTUuMiw1LjIsMCwwLDEsMTcuMTgxLDQuNDM3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2E4YzJhYlxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4yLDEwLjAzNGMuOTQ2LDAsMi43LTEuMyw0Ljk4OS0xLjNhNi4yNDksNi4yNDksMCwwLDEsNS40ODQsMi44LDYuMDgsNi4wOCwwLDAsMC0zLjAyOCw1LjMsNi4yMzUsNi4yMzUsMCwwLDAsMy43NzIsNS43cy0yLjYzNyw3LjQyMi02LjIsNy40MjJjLTEuNjM2LDAtMi45MDgtMS4xLTQuNjMxLTEuMS0xLjc1NywwLTMuNSwxLjE0NC00LjYzNSwxLjE0NEM4LjcsMzAsNC41ODcsMjIuOTU5LDQuNTg3LDE3LjNjMC01LjU2OCwzLjQ3OC04LjQ4OSw2Ljc0LTguNDg5QzEzLjQ0OCw4LjgxMSwxNS4wOTMsMTAuMDM0LDE2LjIsMTAuMDM0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2E4YzJhYlxcXCIvPlwiLFxuXHRcdGlubGluZUNvbW1lbnQ6IFtcblx0XHRcdFwiLS1cIixcblx0XHRcdFwiI1wiLFxuXHRcdF0sXG5cdH0sXG5cdFwiQXJkdWlub1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMyZDkwOTRcIixcblx0XHRpY29uOiBcIjxkZWZzPjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiYVxcXCIgY3g9XFxcIjc2Ny4xNzlcXFwiIGN5PVxcXCI1MTY5LjU0M1xcXCIgcj1cXFwiMTQuOTg5XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC03MTguMTEyIC00OTUzLjkxNykgc2NhbGUoMC45NTUgMC45NjIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMzZiYWMwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMmQ5MDk0XFxcIi8+PC9yYWRpYWxHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9hcmR1aW5vPC90aXRsZT48cGF0aCBkPVxcXCJNMjkuNjQ1LDE1LjkyNUExMy43NywxMy43NywwLDEsMSwxNS44NzYsMi4wNTYsMTMuODE5LDEzLjgxOSwwLDAsMSwyOS42NDUsMTUuOTI1WlxcXCIgc3R5bGU9XFxcInN0cm9rZTojMDI3OTdlO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6MS4xMzY3MjI4NDU0OTY5MjY3cHg7ZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTEwLjU4MSwxMS42NDhjMi40MS0uMDc2LDMuMzU5LjgzNCw0LjYwNSwyLjA2OS4yODUuMjgyLjU3OS41OS45LjkyMWwuOTIyLS45OTFhNi4yMjMsNi4yMjMsMCwwLDEsMy4yNTYtMS45M2MxLjkzOS0uMjExLDMuMTE5LS4xMjIsNC4zMTEuODE0YTUuMDIzLDUuMDIzLDAsMCwxLDIuMjQ1LDMuOSw1LjY1Myw1LjY1MywwLDAsMS0zLjI1LDUuMTU2LDUuOTc1LDUuOTc1LDAsMCwxLTMuOTEzLjEzNSw3LjY1Niw3LjY1NiwwLDAsMS0zLjU0MS0yLjk4N2MtMS42NzgsMi4xNDItMy4xODcsMy4yNTMtNS4yMzUsMy4xNTUtNy40NTItLjM1NC02Ljg0Mi0xMC4wNzUtLjMtMTAuMjQ3Wm0xLjY1Nyw3Ljk5NGE5LjE5Myw5LjE5MywwLDAsMCwyLjg1Ni0yLjljLS43NC0xLjI0My0yLjIwOS0yLjgyNC0zLjQ1NS0zLjEzNGE0LjMyOCw0LjMyOCwwLDAsMC0zLjIyNC43NzcsMy4zODQsMy4zODQsMCwwLDAtLjc2MiwzLjY4NiwzLjY3NCwzLjY3NCwwLDAsMCw0LjU4NSwxLjU3Wm0tMi45OC0zLjQ4NywzLjI3OC4wMDV2MS4yMWwtMy4yODMuMDA1Wm0xMy40NDgsMy42QTMuODQzLDMuODQzLDAsMCwwLDI0LjkzNywxN2EzLjQ1OCwzLjQ1OCwwLDAsMC0xLjg2My0zLjEwOSwzLjY0OCwzLjY0OCwwLDAsMC00LjIuNzI4LDcuMzY0LDcuMzY0LDAsMCwwLTEuNjQ5LDIuMTUxQTguOTM2LDguOTM2LDAsMCwwLDE5LjIsMTkuMjUyLDQuMDIyLDQuMDIyLDAsMCwwLDIyLjcwNiwxOS43NTRabS0xLjk1NS0yLjM3Ni0xLjA4OC0uMDA4LDAtMS4yMTcsMS4wOTEsMFYxNS4wNzVsMS4xMDctLjAwOC0uMDA3LDEuMDkzLDEuMDg1LDB2MS4xNjVsLTEuMDIxLS4wMDh2MS4xMkgyMC43NTNaXFxcIiBzdHlsZT1cXFwic3Ryb2tlOiMwMDA7c3Ryb2tlLXdpZHRoOjAuMTIxMDMwOTY0ODA5Mjc0ODJweDtvcGFjaXR5OjAuMTY4MDk5OTk5NDI3Nzk1NDtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxwYXRoIGQ9XFxcIk00LjkxNywxNi4zMzdjMCw1LjM0OCw3LjM1NCw3LjM0LDEwLjk4NywxLjg5NCwzLjc2NSw1LjY0NywxMC44MjQsMy4yOCwxMC44MjQtMS45UzE5LjcsOC42NTYsMTUuOSwxNC40NDFjLTMuNi01LjcxOS0xMC45ODctMy40NTMtMTAuOTg3LDEuOVptMS45MzEsMGMwLTMuODYsNS40NTUtNS4wNzgsNy45OTIsMC0yLjU4OCw0Ljg4OS03Ljk5MiwzLjg1OS03Ljk5MiwwWm0xMC4xMTksMGMyLjI4Ni01LjE3OCw3Ljg4OS0zLjc1MSw3Ljg3Mi4wMDhTMTkuMTg2LDIxLjI3NywxNi45NjcsMTYuMzM3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjtzdHJva2U6IzAwMDtzdHJva2Utd2lkdGg6MC4yNDIwNjE5Mjk2MTg1NDk2NHB4XFxcIi8+PHJlY3QgeD1cXFwiOC44OThcXFwiIHk9XFxcIjE1Ljc5NVxcXCIgd2lkdGg9XFxcIjMuMjM3XFxcIiBoZWlnaHQ9XFxcIjEuMDY3XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMC42NDQgMTYuODQ2IDE5LjU3NiAxNi44NDYgMTkuNTc2IDE1LjcxMiAyMC42NDQgMTUuNzEyIDIwLjY0NCAxNC42NDQgMjEuNzc5IDE0LjY0NCAyMS43NzkgMTUuNzEyIDIyLjg0NyAxNS43MTIgMjIuODQ3IDE2Ljg0NiAyMS43NzkgMTYuODQ2IDIxLjc3OSAxNy45MTQgMjAuNjQ0IDE3LjkxNCAyMC42NDQgMTYuODQ2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdH0sXG5cdFwiQVJNIEFzc2VtYmx5XCI6IHtcblx0XHRjb2xvdXI6IFwiIzAwMDBiZlwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiODM2LjYzXFxcIiB5MT1cXFwiMzYuMjA1XFxcIiB4Mj1cXFwiODQzLjgwMlxcXCIgeTI9XFxcIjE0LjQ4XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDUyNS45MjIgMzAuMjQ5KSByb3RhdGUoMTgwKSBzY2FsZSgwLjYwNyAwLjYwNylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwLjI3NVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfYXNzZW1ibHk8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNiwyYy0xLjI0NiwzLjA1Ni0yLDUuMDU3LTMuMzkxLDguMDIyQTIxLjg4NCwyMS44ODQsMCwwLDAsMTYuMiwxMy4xNTZhMTQuODU4LDE0Ljg1OCwwLDAsMS00LTIuMjgzQzEwLjQzLDE0LjU3OSw3LjY0NiwxOS44NTUsMiwzMGM1LjE4Ni0yLjk5NCw5LjAxMi00LjY0OCwxMi42OTEtNC45NjZWMjQuMmgtLjgzNHYtLjgzN2guODM0VjI0LjJoMS42NzVWMjIuNTIxSDE0LjY5MXYtLjgzNGgtLjgzNFYyMC4wMTNoLjgzNHYtLjgzNGgxLjY3NXYuODM0SDE3LjJ2LjgzN2gtLjgzN3YtLjgzN0gxNC42OTF2MS42NzVoMS42NzV2LjgzNEgxNy4yVjI0LjJoLS44Mzd2Ljc4M2MzLjk4LjEsOC4wMDYsMS43NzIsMTMuNjM0LDUuMDIxLS44NjMtMS41ODktMS42MzYtMy4wMjEtMi4zNzItNC4zODVhMjUuNTI2LDI1LjUyNiwwLDAsMC00LjgzMy0zLjMzM0ExNC40MzYsMTQuNDM2LDAsMCwxLDI2LjY1LDIzLjhDMTkuMTcsOS44NzIsMTguNTY1LDguMDIsMTYsMlpNMTAuNTExLDE5LjE3OWgxLjY3MXYuODM0aC44Mzd2NS4wMjFoLS44MzdWMjIuNTIxSDEwLjUxMXYyLjUxMkg5LjY3M1YyMC4wMTNoLjgzN1ptMCwuODM0djEuNjc1aDEuNjcxVjIwLjAxM1ptNy41MjYtLjgzNGguODM3di44MzRoLjgzN3YuODM3aC44MzR2LS44MzdoLjgzN3YtLjgzNGguODM3djUuODU1aC0uODM3VjIwLjg1aC0uODM3di44MzdoLS44MzRWMjAuODVoLS44Mzd2NC4xODRoLS44MzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDAwMGJmXFxcIi8+PHBhdGggZD1cXFwiTTIzLjg4MSwxOC42NDJjLTYuMDY5LTguMjM3LTcuNDc2LTE0Ljg3Ni03LjgzMi0xNi40NjFBMTc1LjIxNywxNzUuMjE3LDAsMCwwLDIzLjg4MSwxOC42NDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmO2ZpbGwtb3BhY2l0eTowLjE2NTY4MDQ2ODA4MjQyOFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4wNTEsMi4xMiwxNS42LDMuMjI3Yy0uMTU5LjM5MS0uMzExLjc2NS0uNDYxLDEuMTMxcy0uMy43MjQtLjQ0OCwxLjA3Ny0uMy43LS40NDgsMS4wNTMtLjMuNzA2LS40NjUsMS4wNjYtLjMyOS43MjktLjUwNiwxLjExMS0uMzYyLjc3OC0uNTYxLDEuMTkzYy0uMDI4LjA1Ny0uMDYxLjEyMy0uMDg5LjE4MUEyMS44NzIsMjEuODcyLDAsMCwwLDE2LjIsMTMuMTU2YTE0Ljg3OSwxNC44NzksMCwwLDEtMy45ODktMi4yNzZsLS4xNC4yODdjLS4wNjUuMTMzLS4xNDQuMjgzLS4yMTIuNDJsLS4xMDYuMjE5Yy0uODc4LDEuNzkzLTIuMDA2LDMuOTg0LTMuNTI0LDYuODIyLDMuNTUxLTIsNy4zODEtNC44ODcsMTQuMzM4LTIuNC0uMzQ5LS42NjEtLjY3LTEuMjgtLjk3MS0xLjg2M3MtLjU4MS0xLjEyOC0uODQxLTEuNjQ0LS41LTEtLjcyNS0xLjQ2My0uNDMzLS45LS42MjktMS4zMTMtLjM4LS44MTgtLjU1NC0xLjItLjMzOS0uNzU0LS41LTEuMTE4UzE4LjA0Nyw2LjksMTcuOSw2LjU0NnMtLjI5MS0uNzA5LS40MzQtMS4wNjZjLS4wMzYtLjA5MS0uMDczLS4xODYtLjEwOS0uMjc3QzE2Ljk0OSw0LjI0NywxNi41MzYsMy4yNTgsMTYuMDUxLDIuMTJaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+XCIsXG5cdH0sXG5cdFwiQXNjaWlEb2NcIjoge1xuXHRcdGNvbG91cjogXCIjZTQwMDQ2XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMzAsMzBIMlYySDMwWlxcXCIgc3R5bGU9XFxcImZpbGw6I2U0MDA0NlxcXCIvPjxwYXRoIGQ9XFxcIk0yMy43MzEsMjQuODNhLjU4OS41ODksMCwwLDEtLjc2My0uMzM3TDE2LjcyNCw5LjI2OSwxMy45MywxNS45OWgxLjgzM2EuNTkuNTksMCwwLDEtLjAyNCwxLjE4SDguOWEuNTkuNTksMCwwLDEsLjAyNC0xLjE4aDMuNzI3bDAtLjAxM0wxNi4xODQsNy41YS41OTEuNTkxLDAsMCwxLC41MzMtLjM2M2gwYS41OTIuNTkyLDAsMCwxLC41NTcuMzY2bDYuNzg1LDE2LjU0Ni4wMDkuMDIxQS41OS41OSwwLDAsMSwyMy43MzEsMjQuODNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE0LjUxNiwxOC43OTFINy42NzlhLjU5LjU5LDAsMCwwLS4wMjQsMS4xOEgxMUw5LjMwOSwyNC4wNDNhLjU5LjU5LDAsMCwwLDEuMDg1LjQ2NGwwLS4wMTEsMS44NzUtNC41MDkuMDA1LS4wMTZoMi4yMTVhLjU5LjU5LDAsMCwwLC4wMjMtMS4xOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0fSxcblx0XCJBU1AuTkVUIChDIylcIjoge1xuXHRcdGNvbG91cjogXCIjMzNhOWRjXCIsXG5cdFx0aWNvbjogXCI8dGl0bGU+ZmlsZV90eXBlX2FzcHg8L3RpdGxlPjxwb2x5Z29uIHBvaW50cz1cXFwiMjIuNzUgMiA2LjM1IDIgNi4zNSAzMCAyOS42NSAzMCAyOS42NSA5IDIyLjc1IDJcXFwiIHN0eWxlPVxcXCJmaWxsOiNjNWM1YzVcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI3LjM1IDI3LjcgOC43NSAyNy43IDguNzUgNC4zIDIwLjQ1IDQuMyAyMC40NSAxMS4zIDI3LjQ1IDExLjMgMjcuNDUgMjcuNyAyNy4zNSAyNy43XFxcIiBzdHlsZT1cXFwiZmlsbDojZjVmNWY1XFxcIi8+PHBhdGggZD1cXFwiTTEyLjEsMzAuOTk0QTExLjA5NCwxMS4wOTQsMCwxLDEsMjMuMTk0LDE5LjksMTEuMTA2LDExLjEwNiwwLDAsMSwxMi4xLDMwLjk5NFptMC0yMC4zQTkuMiw5LjIsMCwxLDAsMjEuMywxOS45LDkuMjE2LDkuMjE2LDAsMCwwLDEyLjEsMTAuN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMzM2E5ZGNcXFwiLz48cmVjdCB4PVxcXCIyLjA5OVxcXCIgeT1cXFwiMTkuNDU1XFxcIiB3aWR0aD1cXFwiMjAuMDAzXFxcIiBoZWlnaHQ9XFxcIjAuODlcXFwiIHN0eWxlPVxcXCJmaWxsOiMzM2E5ZGM7c3Ryb2tlOiMzM2E5ZGM7c3Ryb2tlLW1pdGVybGltaXQ6MTBcXFwiLz48cGF0aCBkPVxcXCJNMTIuMzI1LDE1Ljc2M2EzMS45MywzMS45MywwLDAsMS04LjQ4NC0xLjExbC4yNDItLjgwN2EzMS4zNzQsMzEuMzc0LDAsMCwwLDE1Ljk5MiwwbC4yMzkuODA3QTI4LjA3NiwyOC4wNzYsMCwwLDEsMTIuMzI1LDE1Ljc2M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMzM2E5ZGM7c3Ryb2tlOiMzM2E5ZGM7c3Ryb2tlLW1pdGVybGltaXQ6MTBcXFwiLz48cGF0aCBkPVxcXCJNNC4xLDI1LjcyNGwtLjIzOS0uODA3YTMxLjY1MiwzMS42NTIsMCwwLDEsMTYuNDcyLDBsLS4yNDIuODA3QTMxLjM4LDMxLjM4LDAsMCwwLDQuMSwyNS43MjRaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzNhOWRjO3N0cm9rZTojMzNhOWRjO3N0cm9rZS1taXRlcmxpbWl0OjEwXFxcIi8+PHBhdGggZD1cXFwiTTguNTM2LDI5LjA1NUEyNS40MzgsMjUuNDM4LDAsMCwxLDgsMTAuNjA4bC43NzYuMzMxYTI0LjU1OCwyNC41NTgsMCwwLDAsLjUzMywxNy43ODNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzNhOWRjO3N0cm9rZTojMzNhOWRjO3N0cm9rZS1taXRlcmxpbWl0OjEwXFxcIi8+PHBhdGggZD1cXFwiTTE1LjYsMjkuMDU1bC0uNzc2LS4zMzNhMjQuNTU5LDI0LjU1OSwwLDAsMCwuNTMxLTE3Ljc4M2wuNzc2LS4zMzFBMjUuNDQzLDI1LjQ0MywwLDAsMSwxNS42LDI5LjA1NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzM2E5ZGM7c3Ryb2tlOiMzM2E5ZGM7c3Ryb2tlLW1pdGVybGltaXQ6MTBcXFwiLz48cmVjdCB4PVxcXCIxMS42NTVcXFwiIHk9XFxcIjkuODk4XFxcIiB3aWR0aD1cXFwiMC44ODlcXFwiIGhlaWdodD1cXFwiMjAuMzcxXFxcIiBzdHlsZT1cXFwiZmlsbDojMzNhOWRjO3N0cm9rZTojMzNhOWRjO3N0cm9rZS1taXRlcmxpbWl0OjEwXFxcIi8+XCIsXG5cdH0sXG5cdFwiQXV0b0hvdGtleVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNkOGQ4ZDhcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjU0LjYwNFxcXCIgeTE9XFxcIjE2OC4zODhcXFwiIHgyPVxcXCI1NC42MDRcXFwiIHkyPVxcXCIxOTQuODg1XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0zOC42MDQgLTE2NS42MzYpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZDhkOGQ4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTNhM2EzXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCI2OC43NTZcXFwiIHkxPVxcXCIyMDkuMTUyXFxcIiB4Mj1cXFwiOTEuNjM4XFxcIiB5Mj1cXFwiMjA5LjE1MlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtNTAuNjAxIC0xNTkuNDQ5KSBzY2FsZSgwLjgzMiAwLjgzNylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNkN2Q3ZDdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNVxcXCIgc3RvcC1jb2xvcj1cXFwiI2U3ZTdlN1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2Q3ZDdkN1xcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfYXV0b2hvdGtleTwvdGl0bGU+PHJlY3QgeD1cXFwiMlxcXCIgeT1cXFwiMi44MjRcXFwiIHdpZHRoPVxcXCIyOFxcXCIgaGVpZ2h0PVxcXCIyNi4zNTNcXFwiIHJ4PVxcXCIzLjA4OFxcXCIgcnk9XFxcIjMuMDg4XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTI2Ljg1NiwyOS4xODFINS4xNDRBMy4xNDgsMy4xNDgsMCwwLDEsMiwyNi4wMzdWNS45NjNBMy4xNDgsMy4xNDgsMCwwLDEsNS4xNDQsMi44MTlIMjYuODU2QTMuMTQ4LDMuMTQ4LDAsMCwxLDMwLDUuOTYzVjI2LjAzN0EzLjE0OCwzLjE0OCwwLDAsMSwyNi44NTYsMjkuMTgxWk01LjE0NCwyLjk2M2EzLDMsMCwwLDAtMywzaDBWMjYuMDM3YTMsMywwLDAsMCwzLDNIMjYuODU2YTMsMywwLDAsMCwzLTNWNS45NjNhMywzLDAsMCwwLTMtM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDhkOGRcXFwiLz48cmVjdCB4PVxcXCI0LjMxM1xcXCIgeT1cXFwiNC42NDFcXFwiIHdpZHRoPVxcXCIyMy4xNjlcXFwiIGhlaWdodD1cXFwiMjEuOTRcXFwiIHJ4PVxcXCIyLjU3MVxcXCIgcnk9XFxcIjIuNTcxXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTI0LjkxMSwyNi42NDFINi44ODRBMi42MzQsMi42MzQsMCwwLDEsNC4yNTMsMjQuMDFWNy4yMTJBMi42MzQsMi42MzQsMCwwLDEsNi44ODQsNC41ODFIMjQuOTExYTIuNjM0LDIuNjM0LDAsMCwxLDIuNjMxLDIuNjMxdjE2LjhBMi42MzQsMi42MzQsMCwwLDEsMjQuOTExLDI2LjY0MVpNNi44ODQsNC43QTIuNTE0LDIuNTE0LDAsMCwwLDQuMzczLDcuMjEydjE2LjhhMi41MTQsMi41MTQsMCwwLDAsMi41MTEsMi41MTFIMjQuOTExYTIuNTE0LDIuNTE0LDAsMCwwLDIuNTExLTIuNTExVjcuMjEyQTIuNTE0LDIuNTE0LDAsMCwwLDI0LjkxMSw0LjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjhmOGY4XFxcIi8+PHBhdGggZD1cXFwiTTYuMTQ1LDIzLjlsMi4zNDMtNi4xaC44N2wyLjUsNi4xaC0uOTJsLS43MTItMS44NDhINy42NzNMNywyMy45Wk03LjksMjEuNEg5Ljk3NGwtLjYzNy0xLjdxLS4yOTEtLjc3LS40MzMtMS4yNjVBNy43NzYsNy43NzYsMCwwLDEsOC41NzYsMTkuNlpcXFwiLz48cGF0aCBkPVxcXCJNMTMuNjA3LDIzLjlWMTcuOGguODA3djIuNWgzLjE3MVYxNy44aC44MDd2Ni4xaC0uODA3VjIxLjAyMWgtMy4xN1YyMy45WlxcXCIvPjxwYXRoIGQ9XFxcIk0yMC40NzgsMjMuOVYxNy44aC44MDd2My4wMjVsMy4wMy0zLjAyNWgxLjA5NEwyMi44NSwyMC4yNjcsMjUuNTIyLDIzLjlIMjQuNDU2bC0yLjE3Mi0zLjA4OC0xLC45NzRWMjMuOVpcXFwiLz5cIixcblx0fSxcblx0XCJBdXRvSXRcIjoge1xuXHRcdGNvbG91cjogXCIjNWQ4M2FjXCIsXG5cdFx0aWNvbjogXCI8Y2lyY2xlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjE2XFxcIiByPVxcXCIxMi41NTFcXFwiIHN0eWxlPVxcXCJmaWxsOiM1ZDgzYWNcXFwiLz48cGF0aCBkPVxcXCJNMiwxNkExNCwxNCwwLDEsMSwxNiwzMCwxNCwxNCwwLDAsMSwyLDE2Wk0xNiw0Ljc4OUExMS4yMTEsMTEuMjExLDAsMSwwLDI3LjIxMSwxNiwxMS4yMTEsMTEuMjExLDAsMCwwLDE2LDQuNzg5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2YwZjBmMFxcXCIvPjxwYXRoIGQ9XFxcIk0yNC41NzYsMjAuMTU2bC02LjQtOS4yNjRhMy4xMzEsMy4xMzEsMCwwLDAtLjgxOS0uODE5LDIuMzYsMi4zNiwwLDAsMC0yLjQ0Mi4wMjMsMy41NDMsMy41NDMsMCwwLDAtLjgxMi44TDcuNTMzLDIwLjE1NmgzLjc1Mmw0LjgwOC02LjgsMS44MzgsMi43MXEuMjYuMzY4LjU0NC43ODl0LjUuN3EtLjM2OC0uMDMxLS44NjUtLjAzMWgtMy41M2wtMS45MTQsMi42MzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjBmMGYwXFxcIi8+XCIsXG5cdH0sXG5cdFwiQXZybyBJRExcIjoge1xuXHRcdGNvbG91cjogXCIjMDA0MGZmXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMiwxMS42NDloLjAyNWE0Ljc4NSw0Ljc4NSwwLDAsMCwyLjkxMSwxLjMzNmMyLjMwOC4yMjEsNC41OS0uNDg1LDYuOS0uMzI2YTcuMDMsNy4wMywwLDAsMSwyLjY4LjY2NGMuNS0uMzE5Ljk4OS0uNjYyLDEuNDg2LS45ODkuNS4zMjcuOTg0LjY3NCwxLjQ4OC45ODlhNi44MzQsNi44MzQsMCwwLDEsMi40ODctLjY1YzEuOTk1LS4xNjcsMy45NjcuMzA4LDUuOTU3LjM1OWE1LjIsNS4yLDAsMCwwLDQuMDI2LTEuMzgzSDMwdi4yMzZjLS4xNzguNzQ3LS44ODIsMS4xNzYtMS4yODQsMS43OWE0Ljk0OCw0Ljk0OCwwLDAsMS0uNzMxLjc5MSwzLjgsMy44LDAsMCwxLS41NjUuNzQ4LDIuNTUxLDIuNTUxLDAsMCwwLS41OTQuNTQxLDIuMTgxLDIuMTgxLDAsMCwxLS45Ni43NDksMS4xNDksMS4xNDksMCwwLDEtLjU2NS41Niw2LjY5LDYuNjksMCwwLDEtMS45NC4xODRjLjcyMy41NDgsMS41LDEuMDIsMi4yNDYsMS41MzUuNzgyLjUxMywxLjU0LDEuMDYxLDIuMzI2LDEuNTY4SDQuMDg5YzEuNS0xLjA1OCwzLjA1Ny0yLjAzNSw0LjU1LTMuMUE2LjgsNi44LDAsMCwxLDYuNywxNy4wNjVhMS4xNTUsMS4xNTUsMCwwLDEtLjU2OS0uNTYyLDIuMjgsMi4yOCwwLDAsMS0xLjA0My0uODZjLS4yNjgtLjMtLjY3LS40NjYtLjg1My0uODQzLS4yLS40MzYtLjY1OC0uNjY0LS45MDktMS4wNjctLjQtLjY0Mi0xLjEzNy0xLjA3Ni0xLjMyNy0xLjg0NnYtLjIzOW0yLjkzOSw4LjUyOHExMS4wNTkuMDA5LDIyLjEyLDBjLTMuNjY4LTIuNTEtNy4zNzYtNC45NjEtMTEuMDU5LTcuNDQ4LTMuNjg0LDIuNDg3LTcuMzkyLDQuOTQxLTExLjA2MSw3LjQ0OU00LjE2NywxMy4yYTcuODQyLDcuODQyLDAsMCwwLDIuODQuNzMxYzEuMTYzLjEyMywyLjM0MS4wNDYsMy41LjIzNmEyLjcsMi43LDAsMCwxLDEuNjA3Ljc4MWMuNjU5LS40NTIsMS4zMzItLjg4NSwxLjk4Ny0xLjM0MmwuMDEyLS4wNjRhNS4yOTQsNS4yOTQsMCwwLDAtMS44NzctLjVjLTIuNjkzLS4zMTYtNS4zODcuNzEyLTguMDY3LjE2bTEzLjY1Mi4zNTZjLjY4OC40NjYsMS4zODIuOTI1LDIuMDcsMS4zOTJhMi40ODgsMi40ODgsMCwwLDEsMS4zLS43MTksMTkuODU5LDE5Ljg1OSwwLDAsMSwzLjEzNy0uMjQ4LDkuMTA1LDkuMTA1LDAsMCwwLDMuNS0uNzY4Yy0yLjU4Mi41LTUuMTY4LS40MDktNy43NjEtLjJhNi4yNTYsNi4yNTYsMCwwLDAtMi4yNDUuNTQ1TTMuMzM5LDEzLjE2NmE3LjI2NCw3LjI2NCwwLDAsMCwyLjcyMywxLjNjLS4yMTktLjE1My0uMzc2LS40MTYtLjY1Ny0uNDU3YTcuOTU1LDcuOTU1LDAsMCwxLTIuMDY2LS44NDRtMjMuMzMzLjgyNWMtLjMxNy4wMjMtLjUuMy0uNzMzLjQ3M2E3LjIzMiw3LjIzMiwwLDAsMCwyLjcyNC0xLjMsOC4xMDYsOC4xMDYsMCwwLDEtMS45OTEuODI0bS0yMi41LjEyNmE1LjEyMSw1LjEyMSwwLDAsMCwyLjU4OSwxLjFjLS4xMTUtLjEyOC0uMjA5LS4zMTItLjQtLjMzNGExMC40NTksMTAuNDU5LDAsMCwxLTIuMTktLjc3MW0yMS40NjcuNzY4Yy0uMTg5LjAyMi0uMjg0LjItLjM5NC4zMzZhNS4xODcsNS4xODcsMCwwLDAsMi42LTEuMTA5LDEwLjQ3NywxMC40NzcsMCwwLDEtMi4yLjc3M002LjMsMTQuMjA2YTMuMjQzLDMuMjQzLDAsMCwwLDIuNDQ1LjM1MmMtLjEtLjA4LS4xODEtLjIxNS0uMzI1LS4yMDZxLTEuMDYzLS4wNC0yLjEyLS4xNDZtMTcuMzUxLjEzOWMtLjE3MS0uMDE5LS4yOTEuMS0uNDA2LjIxMWEzLjEwOCwzLjEwOCwwLDAsMCwyLjQyLS4zNTJxLTEsLjExMi0yLjAxNC4xNDFtLTE2Ljc0MS41MzhhMy42NjksMy42NjksMCwwLDAsMi40ODIuMzE5LDEuMTA3LDEuMTA3LDAsMCwwLS4yODEtLjM3Niw1LjE1OCw1LjE1OCwwLDAsMS0yLjIuMDU3bTE1LjcuMzE4YTMuNjc4LDMuNjc4LDAsMCwwLDIuNDg3LS4zMTksNS4xMjcsNS4xMjcsMCwwLDEtMi4yLS4wNTcsMS4xLDEuMSwwLDAsMC0uMjgzLjM3Nk00LjgzOCwxNC45NzdhNC4xMSw0LjExLDAsMCwwLDIuMTMzLjg0MWMtLjA1Ny0uMDg0LS4xMTQtLjE2OC0uMTcxLS4yNTRhNi45NDgsNi45NDgsMCwwLDEtMS45NjItLjU4N20yMC4zNjEuNTg5LS4xNjkuMjUzYTQuMTQxLDQuMTQxLDAsMCwwLDIuMTM2LS44NDMsNy4wMTUsNy4wMTUsMCwwLDEtMS45NjcuNTltLTE4LjEtLjEzYS44LjgsMCwwLDAsLjUzNC4zMSw3LjU3OSw3LjU3OSwwLDAsMCwyLjAzNy0uMDczYy0uMDA5LS4wMy0uMDI3LS4wOS0uMDM2LS4xMi0uNDU3LS4wNTEtLjkyMy4wNzQtMS4zODUuMDQ3QTcuMDU0LDcuMDU0LDAsMCwxLDcuMSwxNS40MzdtMTYuMTkxLjE1MWE2LjI4LDYuMjgsMCwwLDAtLjkxMy0uMDQxbC0uMDQyLjEyNmE3LjQxNiw3LjQxNiwwLDAsMCwyLjA0NS4wNzIuNy43LDAsMCwwLC41MjItLjMzMSw0LjM0OSw0LjM0OSwwLDAsMS0xLjYxMy4xNzRtLTE3LjUyLjMyN2EzLjEyLDMuMTIsMCwwLDAsMS43NTQuNDgxYy0uMDY1LS4yNC0uMzM0LS4yLS41MjMtLjIzNi0uNDE5LS4wNDEtLjgxNi0uMTg2LTEuMjMxLS4yNDZNMjUsMTYuMTYzYy0uMTg4LjA0MS0uNDUyLS4wMDYtLjUyMS4yMzJhMi44NzQsMi44NzQsMCwwLDAsMS43MzItLjQ4MmMtLjQuMDc5LS44LjIwNy0xLjIxMS4yNTFNNy43MzUsMTYuMTE5YTEsMSwwLDAsMCwuNzg5LjI3NSw5LjMzMSw5LjMzMSwwLDAsMCwxLjMyNS0uMTU4Yy0uMDIxLS4wOTMtLjAwOS0uMjc4LS4xNjMtLjIyOGE5Ljk4Myw5Ljk4MywwLDAsMS0xLjk1MS4xMTFtMTQuNDE1LjExOGE4LjE1Nyw4LjE1NywwLDAsMCwxLjQxMi4xNTQuOS45LDAsMCwwLC43LS4yNzQsOS4zODcsOS4zODcsMCwwLDEtMS45MzQtLjExYy0uMTYtLjA2LS4xNTUuMTMyLS4xNzYuMjNtLTE1LjQzOC40NGExLjk2MiwxLjk2MiwwLDAsMCwxLjMuMTgxbC0uMDkxLS4xMjZjLS40LjAwNi0uODA3LS4wMjItMS4yMDktLjA1NW0xLjYxNS4wNDNhMS4wMywxLjAzLDAsMCwwLC43MTYuMjk0Yy4xNzktLjEyNS4zNTgtLjI1Mi41MzEtLjM4NmE1Ljc0Nyw1Ljc0NywwLDAsMS0xLjI0Ny4wOTJtMTQuMS0uMDkzYy4yMzcuMTQ0LjQ2Ny40NzcuNzgyLjM0NS4xNjYtLjA1LjM2OS0uMDg5LjQ2MS0uMjU3YTUuMjcxLDUuMjcxLDAsMCwxLTEuMjQzLS4wODhtMS43MTMuMjYzYTIuMDA3LDIuMDA3LDAsMCwwLDEuMTQ1LS4yMTMsMTAuMjY5LDEwLjI2OSwwLDAsMS0xLjE0NC4wNDlDMjMuOTkzLDE2LjY2NywyMy45ODQsMTYuOTYxLDI0LjEzOCwxNi44OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDQwZmZcXFwiLz48cGF0aCBkPVxcXCJNNy40MzUsMTguODg2UTExLjcxOSwxNi4wMTMsMTYsMTMuMTM3bDkuMyw2LjI0NGMuMjIxLjE0Ny40MzkuMy42NDguNDY0cS05Ljk0Ny0uMDEtMTkuODk0LDBjLjQ0My0uMzQ0LjkyLS42NCwxLjM4My0uOTU4bTguMjU1LTUuMDY2Yy0uNDU3LDEuODU5LS45MDcsMy43MTktMS4zNzUsNS41NzYuNTIuMDE1LDEuMDQxLjAxMiwxLjU2MiwwcS0uMDEzLTIuODQxLDAtNS42OGwtLjE4NC4xbS0yLjUsMS42ODRjLjI1NS44NTkuNDgsMS43MjguNzYzLDIuNTc5LjI4OS0xLjIzOC42LTIuNDcxLjktMy43MDctLjU1LjM4Ni0xLjExNC43NS0xLjY2OCwxLjEyOW0zLjM1Ny0uODczYy0uMDA2LjY4MiwwLDEuMzY0LDAsMi4wNDZhMi4xLDIuMSwwLDAsMCwxLjAxNC0uMjU0Yy4xOTMtLjE0NS4xLS40MDkuMDExLS41ODZhNC4yNzYsNC4yNzYsMCwwLDAtMS4wMjQtMS4yMDdNMTguMzI3LDE2LjRjLS4xLjU0NC0uNjY2Ljc5Mi0xLjE1MS45LjQ3NC43Ljk2LDEuMzg5LDEuNDE2LDIuMS40NjkuMDI0Ljk0LjAxMSwxLjQxMS4wMDlhMS42MzEsMS42MzEsMCwwLDEsLjE2LTIuOTc2Yy0uODM0LS42LTEuNy0xLjE0LTIuNTQ0LTEuNzI3LjM0OS41LjgzMSwxLjAzNy43MDgsMS43bS02LjgyMi4yNDJjLjI2Ny45MjEuNTI5LDEuODQ1Ljc5NCwyLjc2Ny40NCwwLC44OC4wMDgsMS4zMjEtLjAwNy0uMzM5LTEuMTYxLS42ODUtMi4zMTktMS4wMDktMy40ODQtLjM4NS4yMTUtLjczNy40ODItMS4xLjcyNG04LjguNDUyYS45NDYuOTQ2LDAsMCwwLC4wNTcsMS43Yy41MzMuMDkuODU1LS41MzMuNzc5LS45OS0uMDI2LS40LS40LS44NjEtLjgzNi0uNzE0TTcuNCwxOS40cTEuMzI0LjAxOCwyLjY1LDBjLjI1Ni0uNy40MTMtMS40NjguNjI5LTIuMi0xLjEuNzE1LTIuMTg3LDEuNDYxLTMuMjc5LDIuMTk0bTE0LjM3Ny0xLjlhMS42MTYsMS42MTYsMCwwLDEtLjg3NiwxLjljMS4yMzMuMDE4LDIuNDY1LjAxNSwzLjcsMC0uOTM0LS42NDQtMS44ODMtMS4yNjYtMi44MjItMS45bS01LjIyMy4xMTVjLS4wMS42LDAsMS4yLDAsMS44LjQxNSwwLC44MzEsMCwxLjI0OCwwLS40MTktLjYtLjgtMS4yMTktMS4yNDMtMS43OTRtLTUuNTQ2Ljk0MWguMzQ2Yy0uMDU1LS4xODctLjEwOC0uMzc2LS4xNjYtLjU2MmEzLjc1MSwzLjc1MSwwLDAsMC0uMTgxLjU2M20tLjE4LjY5M2MtLjAxNS4wNC0uMDQ1LjExOS0uMDYxLjE1OS4yNzUtLjAyNi41OS4wNzEuODQyLS4wNUMxMS40NTMsMTkuMTEyLDExLjA3NCwxOS4yNzUsMTAuODI2LDE5LjI0NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDQwZmZcXFwiLz5cIixcblx0fSxcblx0XCJBV0tcIjoge1xuXHRcdGNvbG91cjogXCIjZDJkMmQyXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjYuOTI1LDI3LjczN0MyMy40MzEsMjYuMSwyNC42MDYsMTQuNTg4LDEzLjgxLDguMzE5LDE0LjA4OSw1Ljc5MiwxNC43NTgtLjUsNy45NjEsMyw2Ljg0NSwzLjEyOCw0LjkwNywyLjMzMSw0LDQuODMxdi4xMTRDMTYuOTE4LDMuOS4wODgsMTAuNTMsMTYuNzUsMjUuODQ0Yy0uMzczLjE3Ni0uNjc0LS4zMjUtMS45Ny4xbC0uMDE0LjAxNmMtMS43MjIsMS4xMzUsMS45MzMuNzY4LDQuMTU0LDEuMjc0LTEuNjExLjQxNy01LjU5NC0xLjEzNy02LjMsMS42NDUuODc3LS4zNywxLC4zMjksMS4wNzYsMS4wNzdBMjYuMjc3LDI2LjI3NywwLDAsMSwyMi4zNzksMjcuNWMxLjEuMjg1LDQuMTE4LDIuMDQ5LDUuMTIyLjU1MUMyNy41MTksMjcuOTMsMjcuMjIxLDI3Ljg3NiwyNi45MjUsMjcuNzM3WlxcXCIvPjxwYXRoIGQ9XFxcIk0xMC40NDYsMi45N2wtLjEyMS4wODhhLjI2Ni4yNjYsMCwwLDAtLjAxMS4zNzcuMjExLjIxMSwwLDAsMCwuMDQ1LjAzOS40MTYuNDE2LDAsMCwwLC41MjEtLjA2My4yNjMuMjYzLDAsMCwwLC4wNzgtLjM2NGwtLjAxLS4wMTRjLS4wNzYtLjE0My0uMTYzLS4xNzctLjM0LS4xMjdDMTAuNTUzLDIuOTI1LDEwLjUsMi45NDYsMTAuNDQ2LDIuOTdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTE4LDI2LjM2OGMuMTUxLS4wNDEuMzE4LS44MjguMTc0LS45NDlBNi4yOSw2LjI5LDAsMCwwLDE5LjQsMjYuNDg1YzEuMDIzLDEuMDA3LDIuNjY1LS4wMzIsMy40ODIuNzU5YTEwLjczNiwxMC43MzYsMCwwLDAsMS45NTcsMS4wMjdjLS4xMzktLjE1MS0uMDI5LS4xNDQuMTc5LS4wMTEtLjEzLS4zMzgtNC40MjEtNS4xNTYtNS4yMjYtNy4xOC4wOTUuMjkzLTEuNjA4LS44MjQtMi4wNzYtMS40MTktLjAyOC4wNTYtLjA5Mi0uMjUxLS4yMjgtLjQzNC0uMDQxLjA1LS4yLS40MzMtLjMtLjcyOC4wMzcuMTg3LS40NjItLjUtLjY1LS44MTgtLjA1Ni4wOS0uNzE5LjM3Mi0uODA5LjI4Ni0uNzI5LS40LDIuNTI5LDQuMDY2LjEyMiwyLjU1OS42NzYuNjgzLjYxNC40LTEuMDk1LS44NTIuMzY0LjQ1Mi0uMzE3LjMxMi0xLjU1My0xLjUyMy4xODYuMi0uMjE4LS41NzYtLjIxOC0uNTc2YTIuNjkyLDIuNjkyLDAsMCwwLS4xMzMtLjQ4M2MtLjA1Ni0uMzItLjI0MS0uNzIzLS4xMi0uNjUtMS40NDQtMS41NTYsMS4zMTQtMy4zLjcxOS0zLjY3MS0uMTExLDAtLjAyNy4wMTctLjE1MS0uMTA2LS4wOSwwLS40NjguMjg1LS41ODctLjIzNC4wMDYuMTMyLS4wMzQuNDA2LS4xNTMtLjEtLjAyMy4wNTIuMDE1LjEtLjAzLjE0NS0uMjI1LS41NzYtLjc3Mi0xLjYtMS4yMTctMi41MzktLjE1OC4xNTUtLjEzOC0uMDc2LS4xOTMtMS4wOTIuMDUzLjE0NC0uMjI1LDEuOTIxLS4yLjEzLS4xMjguMDA3LjEwOCwxLjI1OC0uMzQzLjIxLS4xNDEuMDUtLjMwNS0uMzYzLS4zNDEtMS4xNzgtLjA0OC42MjMtLjI5LjE4Ny0uNS0uOTIzLS4yNjkuNTA4LTEuNiwxLjc0My0uMzMzLDcuNjIyLS4wNTMtLjMxMy4xODYuMzQxLjc1NSwyLjQyNy4wMjEtLjAzOS0uMDIyLS4wODMuMDM4LS4xMzFhNi4zMjQsNi4zMjQsMCwwLDAsLjY3NywxLjM2NWMuNTQ0LjY1OC45OTUsMi4wNzQuOCwxLjI3N2ExMS44NjcsMTEuODY3LDAsMCwwLDIuNTU0LDMuMjQ5QTM0LjQyMywzNC40MjMsMCwwLDAsMTgsMjYuMzY4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0xMC44MjMsMi41NTdhLjI5MS4yOTEsMCwwLDAtLjA1MS0uMDIyYy0uMjIxLS4wNC0uNDI5LjE1My0uNjU0LjAzMi0uMTQ1LjA4NS0uMjU3LS4wMzYtLjM3NS0uMDczYS4yMjQuMjI0LDAsMCwwLS4yLjAxNCw1LjgyMyw1LjgyMywwLDAsMC0uODE0LjU4MiwxLjAzNywxLjAzNywwLDAsMC0uMjczLjQ0OWMtLjAyMS4wNDgtLjAzNy4xMjYuMDUuMTM3YTIuMywyLjMsMCwwLDAsLjY4Mi4wNDVjLjE3Ny0uMDI4LjI3Ny0uMTUyLjQxOC0uMjIxYTEuMiwxLjIsMCwwLDAsLjU5Mi0uNjhjLjA2NC0uMTc1LjE2MS0uMTY3LjI4LS4yUzEwLjcsMi42MiwxMC44MjMsMi41NTdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTEwLjMyNSwzLjA1OGwuMTIxLS4wODhhLjExNy4xMTcsMCwwLDEsLjEyLjA2NGMuMDQ0LjEuMTA2LjExMi4xOTMuMDQ3LjAzMy0uMDI1LjA3MS0uMDU4LjExOC0uMDI3YS4xMTkuMTE5LDAsMCwxLC4wNDEuMTI4LjI3Ni4yNzYsMCwwLDEtLjE4Ny4yNDguMjY2LjI2NiwwLDAsMS0uMy0uMDNDMTAuMzQxLDMuMzA4LDEwLjI2LDMuMiwxMC4zMjUsMy4wNThaXFxcIi8+XCIsXG5cdH0sXG5cdFwiQmF0Y2hcIjoge1xuXHRcdGNvbG91cjogXCIjZDliNDAwXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjkuNCwyNy42SDIuNVY0LjVIMjkuNFptLTI1LjktMUgyOC40VjUuNUgzLjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI2LjA3NyAxOS4zMTYgNS41MjIgMTguNDg0IDEwLjM2NiAxNS4yNTUgNS40NzkgMTEuMTg0IDYuMTIgMTAuNDE2IDEyLjAzNSAxNS4zNDQgNi4wNzcgMTkuMzE2XFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+PHJlY3QgeD1cXFwiMTIuN1xcXCIgeT1cXFwiMTguMlxcXCIgd2lkdGg9XFxcIjcuOFxcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+PHJlY3QgeD1cXFwiMi41XFxcIiB5PVxcXCI1LjVcXFwiIHdpZHRoPVxcXCIyNi45XFxcIiBoZWlnaHQ9XFxcIjEuOVxcXCIgc3R5bGU9XFxcImZpbGw6I2Q5YjQwMFxcXCIvPlwiLFxuXHR9LFxuXHRcIkMjXCI6IHtcblx0XHRjb2xvdXI6IFwiIzM2ODgzMlwiLFxuXHRcdGljb246IFwiPHRpdGxlPmZpbGVfdHlwZV9jc2hhcnA8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xOS43OTIsNy4wNzFoMi41NTNWOS42MjRIMjQuOVY3LjA3MWgyLjU1MlY5LjYyNEgzMHYyLjU1MmgtMi41NXYyLjU1MUgzMFYxNy4yOEgyNy40NDl2Mi41NTJIMjQuOXYtMi41NWwtMi41NSwwLDAsMi41NTJIMTkuNzkzdi0yLjU1bC0yLjU1MywwVjE0LjcyNWgyLjU1M1YxMi4xNzlIMTcuMjRWOS42MjJoMi41NTRabTIuNTUzLDcuNjU4SDI0LjlWMTIuMTc2SDIyLjM0NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzNjg4MzJcXFwiLz48cGF0aCBkPVxcXCJNMTQuNjg5LDI0LjAxM2ExMC4yLDEwLjIsMCwwLDEtNC42NTMuOTE1LDcuNiw3LjYsMCwwLDEtNS44OS0yLjMzNkE4LjgzOSw4LjgzOSwwLDAsMSwyLDE2LjM2Nyw5LjQzNiw5LjQzNiwwLDAsMSw0LjQxMiw5LjY0OGE4LjE4MSw4LjE4MSwwLDAsMSw2LjI1OS0yLjU3NywxMS4xLDExLjEsMCwwLDEsNC4wMTguNjM4djMuNzQ1YTYuODEsNi44MSwwLDAsMC0zLjcyMy0xLjAzNiw0Ljc5Myw0Ljc5MywwLDAsMC0zLjcsMS41MjksNS44NzksNS44NzksMCwwLDAtMS40MDcsNC4xNDIsNS43NzQsNS43NzQsMCwwLDAsMS4zMjgsMy45OTIsNC41NTEsNC41NTEsMCwwLDAsMy41NzUsMS40ODcsNy4yODgsNy4yODgsMCwwLDAsMy45MjctMS4xMDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzY4ODMyXFxcIi8+XCIsXG5cdH0sXG5cdFwiQ1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMDVmOTFcIixcblx0XHRpY29uOiBcIjx0aXRsZT5maWxlX3R5cGVfYzwvdGl0bGU+PHBhdGggZD1cXFwiTTEwLjY3NiwxNS45NzNhMTAuMDUyLDEwLjA1MiwwLDAsMCwxLjE3NSw1LjE1MSw1LjQ0Niw1LjQ0NiwwLDAsMCw2LjMwNiwyLjQwOCw0LjI4NCw0LjI4NCwwLDAsMCwzLjA5LTMuNmMuMTA3LS42LjEwOS0uNjEuMTA5LS42MSwxLjczNy4yNTEsNC41MzcuNjU4LDYuMjc0LjkwNmwtLjExLjQ0YTExLjI1NiwxMS4yNTYsMCwwLDEtMi43LDUuMzksOS40MzksOS40MzksMCwwLDEtNS4zNjYsMi42ODgsMTQuNjEsMTQuNjEsMCwwLDEtOC4yNzctLjgxOUExMC4xNTEsMTAuMTUxLDAsMCwxLDUuNCwyMS42ODdhMTYuMjI1LDE2LjIyNSwwLDAsMSwuMDE5LTExLjQ1LDEwLjUzOCwxMC41MzgsMCwwLDEsOC45NjMtNy4wNTQsMTMuMzUzLDEzLjM1MywwLDAsMSw2LjY2Ni41NTUsOS41NzEsOS41NzEsMCwwLDEsNi4xNjcsNi45Yy4wOTQuMzUyLjExNC40MTcuMTE0LjQxNy0xLjkzMi4zNTEtNC4zMTkuOC02LjIzOCwxLjIxNS0uMzYyLTEuOTE1LTEuMjY1LTMuNDI4LTMuMi0zLjlhNS4yNjMsNS4yNjMsMCwwLDAtNi42MTYsMy41NywxMC40OSwxMC40OSwwLDAsMC0uMzg1LDEuNDM5QTEyLjMxLDEyLjMxLDAsMCwwLDEwLjY3NiwxNS45NzNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1ZjkxXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIvL1wiLFxuXHRcdF0sXG5cdH0sXG5cdFwiQysrXCI6IHtcblx0XHRjb2xvdXI6IFwiIzk4NGM5M1wiLFxuXHRcdGljb246IFwiPHRpdGxlPmZpbGVfdHlwZV9jcHA8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNC43NDIsMjQuMDQ3YTEwLjI0MiwxMC4yNDIsMCwwLDEtNC42NzMuOTE5QTcuNjI4LDcuNjI4LDAsMCwxLDQuMTU1LDIyLjYyLDguODc2LDguODc2LDAsMCwxLDIsMTYuMzY5LDkuNDc2LDkuNDc2LDAsMCwxLDQuNDIyLDkuNjIxYTguMjE2LDguMjE2LDAsMCwxLDYuMjg1LTIuNTg4LDExLjE1MSwxMS4xNTEsMCwwLDEsNC4wMzUuNjQxdjMuNzYxQTYuODM5LDYuODM5LDAsMCwwLDExLDEwLjM5NSw0LjgxMyw0LjgxMywwLDAsMCw3LjI4OCwxMS45M2E1LjksNS45LDAsMCwwLTEuNDEzLDQuMTU5QTUuOCw1LjgsMCwwLDAsNy4yMDksMjAuMWE0LjU3LDQuNTcsMCwwLDAsMy41OSwxLjQ5Myw3LjMxOSw3LjMxOSwwLDAsMCwzLjk0My0xLjExM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM5ODRjOTNcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE3LjExMiAxNC44MjkgMTcuMTEyIDEyLjQ4NSAxOS40NTYgMTIuNDg1IDE5LjQ1NiAxNC44MjkgMjEuOCAxNC44MjkgMjEuOCAxNy4xNzIgMTkuNDU2IDE3LjE3MiAxOS40NTYgMTkuNTE1IDE3LjExMiAxOS41MTUgMTcuMTEyIDE3LjE3MiAxNC43NyAxNy4xNzIgMTQuNzcgMTQuODI4IDE3LjExMiAxNC44MjlcXFwiIHN0eWxlPVxcXCJmaWxsOiM5ODRjOTNcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI1LjMxMyAxNC44MjkgMjUuMzEzIDEyLjQ4NSAyNy42NTcgMTIuNDg1IDI3LjY1NyAxNC44MjkgMzAgMTQuODI5IDMwIDE3LjE3MiAyNy42NTcgMTcuMTcyIDI3LjY1NyAxOS41MTUgMjUuMzEzIDE5LjUxNSAyNS4zMTMgMTcuMTcyIDIyLjk3MSAxNy4xNzIgMjIuOTcxIDE0LjgyOCAyNS4zMTMgMTQuODI5XFxcIiBzdHlsZT1cXFwiZmlsbDojOTg0YzkzXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIvL1wiLFxuXHRcdF0sXG5cdH0sXG5cdFwiQ2xvanVyZVwiOiB7XG5cdFx0Y29sb3VyOiBcIiM5MWRjNDdcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xNiwyQTE0LDE0LDAsMSwwLDMwLDE2LDE0LjAxNiwxNC4wMTYsMCwwLDAsMTYsMlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNS40ODgsMTYuMjUyYy0uMTI2LjI3My0uMjY1LjU3OS0uNDA4LjlBMjIuOTYzLDIyLjk2MywwLDAsMCwxMy44LDIwLjYwNWE1LjE4MSw1LjE4MSwwLDAsMC0uMTE5LDEuMTU1YzAsLjE3NC4wMDkuMzU2LjAyNC41NDJhNi42NTgsNi42NTgsMCwwLDAsNC40MTMuMDY3LDMuOTY2LDMuOTY2LDAsMCwxLS40NC0uNDY2Yy0uOS0xLjE0Ni0xLjQtMi44MjctMi4xOTQtNS42NTJcXFwiIHN0eWxlPVxcXCJmaWxsOiM5MWRjNDdcXFwiLz48cGF0aCBkPVxcXCJNMTIuMTY5LDEwLjU1NmE2LjY3Nyw2LjY3NywwLDAsMC0uMDc3LDEwLjg4MWMuNDExLTEuNzEsMS40NC0zLjI3NiwyLjk4My02LjQxNS0uMDkyLS4yNTItLjItLjUyNy0uMzEzLS44MTdhMTAuMjA3LDEwLjIwNywwLDAsMC0xLjYtMi44ODIsNC40MzksNC40MzksMCwwLDAtMS0uNzY3XFxcIiBzdHlsZT1cXFwiZmlsbDojOTFkYzQ3XFxcIi8+PHBhdGggZD1cXFwiTTIxLjg0LDIzLjdhMTAuODc3LDEwLjg3NywwLDAsMS0yLjI1Ny0uNDcxQTguMDM2LDguMDM2LDAsMCwxLDEwLjcxNiw5Ljk4MmE1LjksNS45LDAsMCwwLTEuNC0uMTcxYy0yLjM1OC4wMjItNC44NDgsMS4zMjctNS44ODQsNC44NTJhNi42MDYsNi42MDYsMCwwLDAtLjA3NCwxLjM2MSwxMi42NDksMTIuNjQ5LDAsMCwwLDIzLDcuMjc0LDE0LjczNywxNC43MzcsMCwwLDEtMy40NDguNDU5QTguODgxLDguODgxLDAsMCwxLDIxLjg0LDIzLjdcXFwiIHN0eWxlPVxcXCJmaWxsOiM2M2IxMzJcXFwiLz48cGF0aCBkPVxcXCJNMTkuNDYzLDIxLjI0NGEzLjUzLDMuNTMsMCwwLDAsLjUuMTcyQTYuNjksNi42OSwwLDAsMCwyMi43LDE2LjAyM2gwYTYuNjgxLDYuNjgxLDAsMCwwLTguNzktNi4zNDhjMS4zNTgsMS41NDgsMi4wMTEsMy43NjEsMi42NDMsNi4xODF2MHMuMi42NzMuNTQ3LDEuNTYyYTE1LjQzNCwxNS40MzQsMCwwLDAsMS4zNjMsMi43ODgsMi45MjQsMi45MjQsMCwwLDAsMSwxLjAzNlxcXCIgc3R5bGU9XFxcImZpbGw6IzkwYjRmZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4wMTMsMy4zNzJBMTIuNjMyLDEyLjYzMiwwLDAsMCw1LjczMSw4LjY1NmE2LjQyNSw2LjQyNSwwLDAsMSwzLjQ4LTEuMDA5LDYuOCw2LjgsMCwwLDEsMy4xODIuNzcyYy4xMzQuMDc3LjI2MS4xNi4zODYuMjQ2YTguMDM4LDguMDM4LDAsMCwxLDExLjI3Myw3LjM1OGgwYTguMDEzLDguMDEzLDAsMCwxLTIuMzkxLDUuNzE5LDkuODcxLDkuODcxLDAsMCwwLDEuMTQzLjA2NCw2LjI0LDYuMjQsMCwwLDAsNC4wNTEtMS4yNjMsNS4zNDgsNS4zNDgsMCwwLDAsMS43LTIuOTA2QTEyLjYzMiwxMi42MzIsMCwwLDAsMTYuMDEzLDMuMzcyXFxcIiBzdHlsZT1cXFwiZmlsbDojNTg4MWQ4XFxcIi8+XCIsXG5cdH0sXG5cdFwiQ01ha2VcIjoge1xuXHRcdGNvbG91cjogXCIjMDFhMzAwXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCI5Ljk1NVxcXCIgeTE9XFxcIjkuMDk2XFxcIiB4Mj1cXFwiMTYuNjhcXFwiIHkyPVxcXCIyMy4zMjRcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIDMyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzEwMTFhMVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzY5NjllMVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiMTYuMjMxXFxcIiB5MT1cXFwiMTkuNjU1XFxcIiB4Mj1cXFwiMjUuNjE4XFxcIiB5Mj1cXFwiMy43ODJcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIDMyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2I0MGUwZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmNTk1OVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJjXFxcIiB4MT1cXFwiMjEuNjYzXFxcIiB5MT1cXFwiNC44MjNcXFwiIHgyPVxcXCI4LjM4MVxcXCIgeTI9XFxcIjUuOTM4XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEsIDAsIDAsIC0xLCAwLCAzMilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMwMWEzMDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMwMWRmMDBcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZFxcXCIgeDE9XFxcIjE0LjY0M1xcXCIgeTE9XFxcIjguMzY4XFxcIiB4Mj1cXFwiMTQuNDcyXFxcIiB5Mj1cXFwiMTQuMTQ1XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEsIDAsIDAsIC0xLCAwLCAzMilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM4NDg0ODRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNkMmQyZDJcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2NtYWtlPC90aXRsZT48cGF0aCBkPVxcXCJNMTcuMjU3LDE2LjkxOSwyLjI0NiwyOS43NDksMTUuOTk0LDIuMjgzWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yLjI2MiwyOS43NjhsLS4wMzgtLjAzTDE2LjAxMiwyLjE5M2wuMDA4LjA4OEwxNy4yODMsMTYuOTNsLS4wMS4wMDhaTTE1Ljk3NywyLjM3NCwyLjMyNCwyOS42NDksMTcuMjMsMTYuOTA4WlxcXCIvPjxwYXRoIGQ9XFxcIk0xNy45NTIsMjQuOTMxLDE2LDIuMjgsMjkuNzY3LDI5Ljc1MVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMjkuODE4LDI5LjhsLS4wNjEtLjAyNUwxNy45MjksMjQuOTQ4bDAtLjAxNUwxNS45NzUsMi4yODJsLjA0Ny0uMDEzWk0xNy45NzYsMjQuOTEzLDI5LjcxNSwyOS43LDE2LjAzNiwyLjQwOFpcXFwiLz48cGF0aCBkPVxcXCJNMTEuMTYsMjIuMDk0bDE4LjYyMSw3LjY1NEgyLjI1WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNjKVxcXCIvPjxwYXRoIGQ9XFxcIk0yOS43ODEsMjkuNzczSDIuMTgzbC4wNTEtLjA0NCw4LjkyMS03LjY2NS4wMTQuMDA2LDE4LjYyMiw3LjY1NVptLTI3LjQ2NC0uMDVIMjkuNjU0bC0xOC40ODktNy42WlxcXCIvPjxwYXRoIGQ9XFxcIk0xMS4xODksMjIuMTEybDYuMDU5LTUuMTY4Ljg0Myw3Ljk4WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNkKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOC4xNDksMjVsLS4wNzctLjAzMi02Ljk3OC0yLjg0Miw2LjE5NC01LjI4My4wMS4wOTRabS02Ljg2NS0yLjksNi43NDgsMi43NDktLjgyNC03LjhaXFxcIi8+PHBhdGggZD1cXFwiTTI5LjcsMjkuOTExSDIuMjg1YS4yMjEuMjIxLDAsMCwxLS4xODItLjA4OC4yMjIuMjIyLDAsMCwxLC4wMjItLjJMMTUuODY0LDIuMTg3YS4xNjkuMTY5LDAsMCwxLC4xNC0uMWgwYS4xNTQuMTU0LDAsMCwxLC4xMy4wODVMMjkuODY3LDI5LjYwN2EuMjM4LjIzOCwwLDAsMSwuMDIuMjI2QS4yMTEuMjExLDAsMCwxLDI5LjcsMjkuOTExWm0tMjcuNDY4LS4xNmEuNDg0LjQ4NCwwLDAsMCwuMDU3LjAxMWgyNy40bC4wNzMtLjAwOWEuMjIxLjIyMSwwLDAsMC0uMDI4LS4wNzdMMTYsMi4yNDgsMTYsMi4yNiwyLjI2MSwyOS42ODRhLjI3OS4yNzksMCwwLDAtLjAyNS4wNjdaXFxcIi8+XCIsXG5cdH0sXG5cdFwiQ09CT0xcIjoge1xuXHRcdGNvbG91cjogXCIjMDA1Y2E1XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjIuMjQsNi41NDZhNC40NDksNC40NDksMCwwLDAsMS43NjUtMi41MjIsNC42MzYsNC42MzYsMCwwLDEtLjAxOCwyLjE1N2MtLjIyMy41ODItLjU2NywxLjEwNy0uODM0LDEuNjY5YTIxLjc3MiwyMS43NzIsMCwwLDEsNC41NTktMi45MzhDMjcuMjMsNi40LDI1Ljg5MSw3LjMsMjQuOTA3LDguNDQyYy4xOS40MDkuMjguOTg5LjgsMS4xMDlhNS4wMzYsNS4wMzYsMCwwLDAsMi41LjE1NWMuOTEyLS4zMTMsMS4zNDUtMS4yNTgsMS44LTIuMDM1VjkuMTRhMTUuNzM4LDE1LjczOCwwLDAsMS0uNTgyLDEuNzQ4Yy4yLjU0Ny40MDksMS4wOTIuNTgyLDEuNjQ3di45NTJjLS4yMTQuMzY4LS40NDIuNzI2LS42NjMsMS4wODlhNS4yOTMsNS4yOTMsMCwwLDAtMS4wNjgtMS4xNjIsNC4wMyw0LjAzLDAsMCwwLTEuODUxLS4xMjUsMy4yMTIsMy4yMTIsMCwwLDAsMi40MTMsMS40N2MtLjM1OS4zNy0uNjYzLjkxMi0xLjIzLjk2OS0xLjY0MS4yNDctMy4yMDctLjUwNS00LjgzOS0uNS0uMjgyLjAyLS43MDcuMDI0LS43ODUuMzcyLDAsLjczNS4yMTcsMS40NTMuMTksMi4xODgtLjA1OSwxLjI1OC0uNTEyLDIuNDY2LS41MjksMy43MjZhMTMuNzg1LDEzLjc4NSwwLDAsMCwuODM4LDMuNDQ4Yy0uNTIzLS4wNzctMS4wNDQtLjE2Ni0xLjU2Mi0uMjYtLjEuMjA4LS4xODQuNDItLjI2LjYzNEE0LjUxNCw0LjUxNCwwLDAsMCwyMS44LDI2LjUzMWMtLjA2MS4xMjctLjE4Mi4zODEtLjI0MS41MDhsLS41NzMuMTM4Yy0uMTMxLjI0Ny0uMjYzLjQ5Mi0uNC43MzlhNC40MjEsNC40MjEsMCwwLDAtMi4yLjA2MWMtLjQ2Ni0uMTg2LS45MjgtLjM3Ni0xLjM4OS0uNTY3YTUuOTM5LDUuOTM5LDAsMCwwLC40MDctMi4zMTVjLS4yODItLjk4Mi0xLjYtLjk4NC0yLTEuODc3YTYuMjMzLDYuMjMzLDAsMCwxLTEuMDIyLTIuODUxYy0uODIzLS40MzMtMS40NTUtMS4yMjEtMi40LTEuNC0uMDQ4LjQwOS0uMDgzLjgyLS4xNTMsMS4yMjdBNi4wMTUsNi4wMTUsMCwwLDEsMTAuNDgxLDIyLjZjLjAzOS40MjIuMDc5Ljg0Mi4xMiwxLjI2NS4zNDYuMzI0LjY5MS42NDgsMS4wMzMuOTc0YTkuNzUyLDkuNzUyLDAsMCwxLTEuNDI2LjcxMywxMS4xMTQsMTEuMTE0LDAsMCwxLTEuNjg3LjA3N2MtLjI1OC0uMjU0LS41MTgtLjUwOC0uNzc3LS43NjRhNC44NzEsNC44NzEsMCwwLDAsLjExNC0yLjYwOGMuMTcxLS40LjMyNi0uODEyLjQ3NS0xLjIyMWE1LjU2NSw1LjU2NSwwLDAsMS0zLjAxLjIwNiw1LjEyLDUuMTIsMCwwLDEtMy4yOS00LjMzLDMuODU5LDMuODU5LDAsMCwxLDEuNDA3LTMuMjY4QTYuNDEsNi40MSwwLDAsMCwzLjIsMTYuMjU5YTMuMDM4LDMuMDM4LDAsMCwwLDIuNSwyLjQ2NiwzLjQ2MiwzLjQ2MiwwLDAsMCwxLjk2LS42NDMsNy40OCw3LjQ4LDAsMCwxLC4zNjMtNC4xMzMsNS41MjQsNS41MjQsMCwwLDEsMy41ODYtMi42Niw0LjIzNSw0LjIzNSwwLDAsMCwyLjAxMS0xLjU2NiwxMC42NywxMC42NywwLDAsMSwxLjUyOS0xLjMzYy0uMjI4LS4yMTktLjQ1My0uNDQtLjY4LS42NTlBMi4xNTQsMi4xNTQsMCwwLDAsMTUuOSw2LjAyM2MxLjI4NC0uMywyLjU1MS0uNjYxLDMuODItMS4wMTFhMy43OTMsMy43OTMsMCwwLDAsMS40MTUuNjA2Yy4zMTcuMzQ2LjQ5NCwxLjE1NywxLjEuOTI4TTE4LjQ1OCwxOS45MDhjLjA0Mi43NjgtLjA0OCwxLjY2NS42NzQsMi4xNTUsMC0uNzU1LS4wNDYtMS41MDctLjEtMi4yNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDVjYTVcXFwiLz5cIixcblx0fSxcblx0XCJDb2ZmZWVTY3JpcHRcIjoge1xuXHRcdGNvbG91cjogXCIjNmY0ZTM3XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTMuMTE0LDUuNzI4Yy4wMjUuMTUzLS4wNTEuMjgtLjMwNi40MDhhMy40NTcsMy40NTcsMCwwLDAtMS42My0uMjI5Yy0uNjM3LjA1MS0xLjE3Mi4yNTUtMS4xLjY4OC4xLjQzMy43MTMuNjg4LDEuODA4LjU4NiwyLjY3NC0uMjI5LDIuNjQ5LTIuMDM4LDYuNTcxLTIuMzk0LDMuMDU2LS4yOCw0Ljc2My42NjIsNC45OTIsMS44MDguMTc4Ljg5MS0uNTYsMS43NTctMi43NzYsMS45MzYtMS45NjEuMTc4LTMuMTA3LS4zNTctMy4yMDktLjg5MS0uMDUxLS4yOC4xLS42ODgsMS4wNDQtLjc5LjEuNDMzLjYzNy44OTEsMS45MS43NjRDMjEuMzQxLDcuNTM2LDIyLjEsNy4yLDIyLDYuN2MtLjEtLjUzNS0xLjA3LS44NC0yLjYtLjcxMy0zLjEwNy4yOC0zLjg3MSwxLjk4Ny02LjUyLDIuMjE2QzExLDguMzc2LDkuNDcyLDcuNjg5LDkuMjY4LDYuNjdjLS4wNzYtLjM4Mi0uMDc2LTEuMjczLDEuOTEtMS40NTIsMS4wMTktLjA3NiwxLjgzNC4xLDEuOTM2LjUwOVpNMy4xODEsMTYuMzc0QTUuMjc5LDUuMjc5LDAsMCwwLDIuMDEsMTkuOTlhNC4yMDYsNC4yMDYsMCwwLDAsMS42NTUsMy4wNTYsNCw0LDAsMCwwLDMuMzYyLjc5LDExLjQzNCwxMS40MzQsMCwwLDAsMS41LS40ODQsNC4yMzgsNC4yMzgsMCwwLDEtMi43NTEtMS4wMTksNC4xMyw0LjEzLDAsMCwxLTEuNzMyLTIuODI3QTMuNzksMy43OSwwLDAsMSw0LjY1OCwxNi41LDMuOTc3LDMuOTc3LDAsMCwxLDcuNDA5LDE1YTQuODA2LDQuODA2LDAsMCwxLDMuMjA5Ljk0Miw2Ljk1LDYuOTUsMCwwLDAtLjg2Ni0uODY2LDQuMSw0LjEsMCwwLDAtMy40NjQtLjY4OCw1LjIsNS4yLDAsMCwwLTMuMTA3LDEuOTg3Wk0xNi44MzMsMTAuNDlBNDAuODM3LDQwLjgzNywwLDAsMSw4LjUsOS43QzYuMjM3LDkuMTQsNS4wNCw4LjUyOSw1LjA0LDcuNzRjMC0uMzMxLjE1My0uNjExLjYxMS0uOTQyLTEuNDI2LjU2LTIuMTksMS4wMTktMi4xOSwxLjczMi4wNzYuNzksMS4zNSwxLjU3OSwzLjk0OCwyLjE5YTM5LjQ0MywzOS40NDMsMCwwLDAsOS4zNDcuOTQyQTM4Ljk5MywzOC45OTMsMCwwLDAsMjYuMSwxMC43MmMyLjYtLjYxMSwzLjg0Ni0xLjQyNiwzLjg0Ni0yLjE5LDAtLjU2LS41Ni0xLjEtMS41NzktMS41YS44NjIuODYyLDAsMCwxLC40MDguNjg4YzAsLjc5LTEuMTcyLDEuNDI2LTMuNTQsMS45NjFBMzkuMzI0LDM5LjMyNCwwLDAsMSwxNi44MzMsMTAuNDlabTkuMzczLDIuMTlhNDIuMzE1LDQyLjMxNSwwLDAsMS05LjM0Ny45NDIsNDQuMTQ0LDQ0LjE0NCwwLDAsMS05LjQyNC0uOTQyYy0yLjE5LS41Ni0zLjM2Mi0xLjE3Mi0zLjc2OS0xLjgwOGEyMy4xODYsMjMuMTg2LDAsMCwwLDIuNiw3LjY0MWMuOTQyLDEuNDI2LDEuODg1LDIuNjc0LDIuODI3LDQuMDI0YTkuODgzLDkuODgzLDAsMCwxLC44NjYsMi4zNjksNC41NTksNC41NTksMCwwLDAsMi42LDEuNzMyLDEwLjYxMSwxMC42MTEsMCwwLDAsNC4xNzcuNjExaC4xNTNhMTEuODM5LDExLjgzOSwwLDAsMCw0LjMtLjYxMSw0Ljg2OSw0Ljg2OSwwLDAsMCwyLjUyMS0xLjczMmguMDc2YTkuNTkyLDkuNTkyLDAsMCwxLC43OS0yLjM2OWMuOTQyLTEuMzUsMS44ODUtMi42LDIuODI3LTQuMDI0QTI0LjYyLDI0LjYyLDAsMCwwLDMwLDEwLjg3MkMyOS40OTEsMTEuNTg1LDI4LjMxOSwxMi4yLDI2LjIwNSwxMi42ODFaXFxcIiBzdHlsZT1cXFwiZmlsbDojNmY0ZTM3XFxcIi8+XCIsXG5cdH0sXG5cdFwiQ3J5c3RhbFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNjOGM4YzhcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yOS45NDEsMTkuODE2LDE5LjgsMjkuOTI4Yy0uMDI4LjAyOC0uMDg1LjAyOC0uMTY5LjAyOEw1LjgsMjYuMjY3Yy0uMDI4LDAtLjA4NC0uMDI4LS4xMTMtLjExM0wyLDEyLjM1MmEuNDE5LjQxOSwwLDAsMSwuMDI4LS4xNjlMMTIuMTY4LDIuMDcyYy4wMjgtLjAyOC4wODQtLjAyOC4xNjktLjAyOGwxMy44MywzLjcxOGMuMDI4LDAsLjA4NC4wMjguMTEzLjExM2wzLjY5LDEzLjhDMzAuMDI2LDE5LjczMiwzMCwxOS43ODgsMjkuOTQxLDE5LjgxNlpNMTYuMzkzLDguODMyLDIuODE3LDEyLjQ5M3EtLjA0MiwwLDAsLjA4NEwxMi43NiwyMi41MmMuMDI4LjAyOC4wMjgsMCwuMDg0LDBMMTYuNTA2LDguOTcyQzE2LjQ0OSw4LjgzMiwxNi4zOTMsOC44MzIsMTYuMzkzLDguODMyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2M4YzhjOFxcXCIvPlwiLFxuXHR9LFxuXHRcIkNTU1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMxNTcyYjZcIixcblx0XHRpY29uOiBcIjxwb2x5Z29uIHBvaW50cz1cXFwiNS45MDIgMjcuMjAxIDMuNjU2IDIgMjguMzQ0IDIgMjYuMDk1IDI3LjE5NyAxNS45ODUgMzAgNS45MDIgMjcuMjAxXFxcIiBzdHlsZT1cXFwiZmlsbDojMTU3MmI2XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNiAyNy44NTggMjQuMTcgMjUuNTkzIDI2LjA5MiA0LjA2MSAxNiA0LjA2MSAxNiAyNy44NThcXFwiIHN0eWxlPVxcXCJmaWxsOiMzM2E5ZGNcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2IDEzLjE5MSAyMC4wOSAxMy4xOTEgMjAuMzcyIDEwLjAyNiAxNiAxMC4wMjYgMTYgNi45MzUgMTYuMDExIDYuOTM1IDIzLjc1IDYuOTM1IDIzLjY3NiA3Ljc2NCAyMi45MTcgMTYuMjgyIDE2IDE2LjI4MiAxNiAxMy4xOTFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2LjAxOSAyMS4yMTggMTYuMDA1IDIxLjIyMiAxMi41NjMgMjAuMjkyIDEyLjM0MyAxNy44MjcgMTAuNjcgMTcuODI3IDkuMjQgMTcuODI3IDkuNjczIDIyLjY4IDE2LjAwNCAyNC40MzggMTYuMDE5IDI0LjQzNCAxNi4wMTkgMjEuMjE4XFxcIiBzdHlsZT1cXFwiZmlsbDojZWJlYmViXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxOS44MjcgMTYuMTUxIDE5LjQ1NSAyMC4yOSAxNi4wMDggMjEuMjIgMTYuMDA4IDI0LjQzNiAyMi4zNDQgMjIuNjggMjIuMzkxIDIyLjE1OCAyMi45MjggMTYuMTUxIDE5LjgyNyAxNi4xNTFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2LjAxMSA2LjkzNSAxNi4wMTEgOC44NTUgMTYuMDExIDEwLjAxOCAxNi4wMTEgMTAuMDI2IDguNTU1IDEwLjAyNiA4LjU1NSAxMC4wMjYgOC41NDUgMTAuMDI2IDguNDgzIDkuMzMxIDguMzQyIDcuNzY0IDguMjY4IDYuOTM1IDE2LjAxMSA2LjkzNVxcXCIgc3R5bGU9XFxcImZpbGw6I2ViZWJlYlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYgMTMuMTkxIDE2IDE1LjExMSAxNiAxNi4yNzQgMTYgMTYuMjgyIDEyLjYxMSAxNi4yODIgMTIuNjExIDE2LjI4MiAxMi42MDEgMTYuMjgyIDEyLjUzOSAxNS41ODcgMTIuMzk5IDE0LjAyIDEyLjMyNSAxMy4xOTEgMTYgMTMuMTkxXFxcIiBzdHlsZT1cXFwiZmlsbDojZWJlYmViXFxcIi8+XCIsXG5cdH0sXG5cdFwiQ1NWXCI6IHtcblx0XHRjb2xvdXI6IFwiI2MyYzJjMlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTIyLjAzOCwySDYuMzc1YTEuNzU1LDEuNzU1LDAsMCwwLTEuNzUsMS43NXYyNC41QTEuNzU1LDEuNzU1LDAsMCwwLDYuMzc1LDMwaDE5LjI1YTEuNzU1LDEuNzU1LDAsMCwwLDEuNzUtMS43NVY2Ljg1NlptLjUyNSwyLjg0NCwxLjY2MywxLjUzMUgyMi41NjNaTTYuMzc1LDI4LjI1VjMuNzVIMjAuODEzVjguMTI1aDQuODEzVjI4LjI1WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxyZWN0IHg9XFxcIjguMTI1XFxcIiB5PVxcXCIxNS4wOTdcXFwiIHdpZHRoPVxcXCIxMy4wNzZcXFwiIGhlaWdodD1cXFwiMS43NVxcXCIgc3R5bGU9XFxcImZpbGw6IzgyOWVjMlxcXCIvPjxyZWN0IHg9XFxcIjguMTI1XFxcIiB5PVxcXCIyNC40MzlcXFwiIHdpZHRoPVxcXCI5Ljc2MlxcXCIgaGVpZ2h0PVxcXCIxLjc1XFxcIiBzdHlsZT1cXFwiZmlsbDojODI5ZWMyXFxcIi8+PHJlY3QgeD1cXFwiOC4xMjVcXFwiIHk9XFxcIjE5Ljc2M1xcXCIgd2lkdGg9XFxcIjE1Ljc1XFxcIiBoZWlnaHQ9XFxcIjEuNzVcXFwiIHN0eWxlPVxcXCJmaWxsOiM4MjllYzJcXFwiLz48cmVjdCB4PVxcXCI4LjEyNVxcXCIgeT1cXFwiMTAuMjNcXFwiIHdpZHRoPVxcXCIxNS43NVxcXCIgaGVpZ2h0PVxcXCIxLjc1XFxcIiBzdHlsZT1cXFwiZmlsbDojODI5ZWMyXFxcIi8+XCIsXG5cdH0sXG5cdFwiRFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNiMDM5MzFcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjE4NS40NTVcXFwiIHkxPVxcXCIxNjAxLjY0MVxcXCIgeDI9XFxcIjE4MS45NTVcXFwiIHkyPVxcXCIxNjMwLjIyNFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtNjIuNTIzIC02NjYuNjQ2KSBzY2FsZSgwLjQyNylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiMTc2LjEzNlxcXCIgeTE9XFxcIjE2MDAuNVxcXCIgeDI9XFxcIjE3Mi42MzZcXFwiIHkyPVxcXCIxNjI5LjA4M1xcXCIgeGxpbms6aHJlZj1cXFwiI2FcXFwiLz48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9kbGFuZzwvdGl0bGU+PHBhdGggZD1cXFwiTTMuOTc4LDE1LjQ2MiwzLjk2OSw4LjUwOUEuNTg4LjU4OCwwLDAsMSw0LjUsNy45NDdhLjY1OC42NTgsMCwwLDEsLjA3NiwwbDYuMDc0LS4wMDlhMTUuNywxNS43LDAsMCwxLDYuMDY3Ljk1LDguOSw4LjksMCwwLDEsMi4yNDQsMS4zNTksNC40NjksNC40NjksMCwwLDEsMi45NDYtMS4wODMsNC4xMSw0LjExLDAsMCwxLDQuMjc2LDMuOTJBNC4xMSw0LjExLDAsMCwxLDIxLjkwNywxN2MtLjA4OSwwLS4xNzctLjAwOC0uMjY1LS4wMTJhNi42MTcsNi42MTcsMCwwLDEtLjIzMi45NTMsODUuMzgzLDg1LjM4MywwLDAsMSw4LjU5LDIuNlYySDJWMTUuNFEyLjk5MiwxNS40MiwzLjk3OCwxNS40NjJabTIyLjgtNy45NDRhMS4zMiwxLjMyLDAsMCwxLDEuMzc0LDEuMjU5LDEuMzc5LDEuMzc5LDAsMCwxLTIuNzQ3LDBBMS4zMiwxLjMyLDAsMCwxLDI2Ljc4LDcuNTE3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2IwMzkzMVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy44NjEsMTUuNzg3YTQuMTE0LDQuMTE0LDAsMCwwLTEuNzQ4LTMuNDU4LDUuODE0LDUuODE0LDAsMCwwLTEuNTA4LS44MjIsNy4zNTQsNy4zNTQsMCwwLDAtMS42MjktLjQzOCwyMS42MjksMjEuNjI5LDAsMCwwLTIuNTg4LS4xbC0yLjYxOSwwLC4wMDYsNC43MzdhODguODI3LDg4LjgyNywwLDAsMSw5LjkxLDEuNDA4QTQuOTE5LDQuOTE5LDAsMCwwLDE3Ljg2MSwxNS43ODdaXFxcIiBzdHlsZT1cXFwiZmlsbDojYjAzOTMxXFxcIi8+PHBhdGggZD1cXFwiTTIwLjk5MywxOC45NzlhNy45MDYsNy45MDYsMCwwLDEtMi4xMjgsMi41ODIsOS43MzksOS43MzksMCwwLDEtMy4yNTYsMS43MSwxMS41NTgsMTEuNTU4LDAsMCwxLTEuOTcxLjQ3MmgtLjAxNWEzMS44NTcsMzEuODU3LDAsMCwxLTMuMzI2LjExMWwtNS42MjUuMDIyYS42MTYuNjE2LDAsMCwxLS42ODYtLjY4MWwtLjAxLTcuNzM0UTIuOTkyLDE1LjQyLDIsMTUuNFYzMEgzMFYyMC41NDRhODUuMzgzLDg1LjM4MywwLDAsMC04LjU5LTIuNkE2Ljk4NSw2Ljk4NSwwLDAsMSwyMC45OTMsMTguOTc5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2IwMzkzMVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC45OTMsMTguOTc5YTcuOTA2LDcuOTA2LDAsMCwxLTIuMTI4LDIuNTgyLDkuNzM5LDkuNzM5LDAsMCwxLTMuMjU2LDEuNzEsMTEuNTU4LDExLjU1OCwwLDAsMS0xLjk3MS40NzJoLS4wMTVhMzEuODU3LDMxLjg1NywwLDAsMS0zLjMyNi4xMTFsLTUuNjI1LjAyMmEuNjE2LjYxNiwwLDAsMS0uNjg2LS42ODFsLS4wMS03LjczNFEyLjk5MiwxNS40MiwyLDE1LjRWMzBIMzBWMjAuNTQ0YTg1LjM4Myw4NS4zODMsMCwwLDAtOC41OS0yLjZBNi45ODUsNi45ODUsMCwwLDEsMjAuOTkzLDE4Ljk3OVpcXFwiIHN0eWxlPVxcXCJvcGFjaXR5OjAuMzAwMDAwMDExOTIwOTI5O2lzb2xhdGlvbjppc29sYXRlO2ZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC40NzcsMjAuODM1YTE2LjAxNCwxNi4wMTQsMCwwLDAsMi44NzctLjIsNy42MzMsNy42MzMsMCwwLDAsMS42MjgtLjUsNS42MjgsNS42MjgsMCwwLDAsMS4xODctLjc0OCw0LjQ1Nyw0LjQ1NywwLDAsMCwxLjUxOC0yLjI3MSw4OC42OTEsODguNjkxLDAsMCwwLTkuOTEtMS40MDhsLjAwNiw1LjEzM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNiMDM5MzFcXFwiLz48cGF0aCBkPVxcXCJNMTAuNDc3LDIwLjgzNWExNi4wMTQsMTYuMDE0LDAsMCwwLDIuODc3LS4yLDcuNjMzLDcuNjMzLDAsMCwwLDEuNjI4LS41LDUuNjI4LDUuNjI4LDAsMCwwLDEuMTg3LS43NDgsNC40NTcsNC40NTcsMCwwLDAsMS41MTgtMi4yNzEsODguNjkxLDg4LjY5MSwwLDAsMC05LjkxLTEuNDA4bC4wMDYsNS4xMzNaXFxcIiBzdHlsZT1cXFwib3BhY2l0eTowLjMwMDAwMDAxMTkyMDkyOTtpc29sYXRpb246aXNvbGF0ZTtmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMjAuMzgzLDExLjc0NmE2Ljk5Myw2Ljk5MywwLDAsMSwxLjM2LDQuMTQ4LDYuNjE4LDYuNjE4LDAsMCwxLS4xLDEuMWMuMDg4LDAsLjE3Ni4wMTIuMjY1LjAxMmE0LjExLDQuMTEsMCwwLDAsNC4yNzYtMy45Miw0LjExLDQuMTEsMCwwLDAtNC4yNzYtMy45Miw0LjQ3LDQuNDcsMCwwLDAtMi45NDYsMS4wODNBOC4xMjMsOC4xMjMsMCwwLDEsMjAuMzgzLDExLjc0NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48ZWxsaXBzZSBjeD1cXFwiMjYuNzhcXFwiIGN5PVxcXCI4Ljc3N1xcXCIgcng9XFxcIjEuMzc0XFxcIiByeT1cXFwiMS4yNTlcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNNC42NzMsMjMuODc3bDUuNjI1LS4wMjJhMzEuODcxLDMxLjg3MSwwLDAsMCwzLjMyNi0uMTExaC4wMTVhMTEuNDksMTEuNDksMCwwLDAsMS45NzEtLjQ3Miw5LjczOSw5LjczOSwwLDAsMCwzLjI1Ni0xLjcxLDcuOTA2LDcuOTA2LDAsMCwwLDIuMTI4LTIuNTgyLDYuOTg1LDYuOTg1LDAsMCwwLC40MTctMS4wMzQsNy4wNTYsNy4wNTYsMCwwLDAsLjMzMi0yLjA1MSw2Ljk5Miw2Ljk5MiwwLDAsMC0xLjM2LTQuMTQ4LDguMSw4LjEsMCwwLDAtMS40MjEtMS41LDguODc4LDguODc4LDAsMCwwLTIuMjQ0LTEuMzU5LDE1LjY4NiwxNS42ODYsMCwwLDAtNi4wNjctLjk1bC02LjA3NC4wMDlhLjY1OC42NTgsMCwwLDAtLjA3NiwwLC41ODguNTg4LDAsMCwwLS41MzIuNTYybC4wMDksNi45NTIuMDEsNy43MzRBLjYxNi42MTYsMCwwLDAsNC42NzMsMjMuODc3Wm0zLjEtMTIuOTA4LDIuNjE5LDBhMjEuNjIzLDIxLjYyMywwLDAsMSwyLjU4OC4xLDcuMzU0LDcuMzU0LDAsMCwxLDEuNjI5LjQzOCw1LjgxNCw1LjgxNCwwLDAsMSwxLjUwOC44MjIsNC4xMTYsNC4xMTYsMCwwLDEsMS43NDgsMy40NTgsNC45MDUsNC45MDUsMCwwLDEtLjE3NSwxLjMyNyw0LjQ1Nyw0LjQ1NywwLDAsMS0xLjUxOCwyLjI3MSw1LjYxMyw1LjYxMywwLDAsMS0xLjE4Ny43NDgsNy42NjYsNy42NjYsMCwwLDEtMS42MjguNSwxNi4wMDksMTYuMDA5LDAsMCwxLTIuODc3LjJsLTIuNjk0LDAtLjAwNi01LjEzM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIi8vXCIsXG5cdFx0XSxcblx0fSxcblx0XCJEYXJ0XCI6IHtcblx0XHRjb2xvdXI6IFwiIzU4YjZmMFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE2LjczOSwyLjAzN2ExLjMxNCwxLjMxNCwwLDAsMC0uOTE2LjM3N2wtLjAxMy4wMUw3LjIyLDcuMzg5bDguNTY2LDguNTY2di4wMDZsMTAuMywxMC4zLDEuOTYzLTMuNTM2TDIwLjk2OCw1LjcyOGwtMy4zLTMuM2ExLjMwNywxLjMwNywwLDAsMC0uOTI3LS4zODhaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjZjM2ZhXFxcIi8+PHBhdGggZD1cXFwiTTcuMjUsNy4zNSwyLjI4OCwxNS45MzFsLS4wMS4wMTNhMS4zMjIsMS4zMjIsMCwwLDAtLjM3OC45MTksMS4zLDEuMywwLDAsMCwuMzg3LjkyNEw2LjQsMjEuOWwxNi4wODQsNi4zMjcsMy42MzYtMi4wMi0uMS0uMS0uMDI1LDAtMTAuMDgzLTEwLjFIMTUuOUw3LjI1LDcuMzVaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjE1ODk2XFxcIi8+PHBhdGggZD1cXFwiTTcuMTkyLDcuMzYybDguNzY0LDguNzczaC4wMTNsMTAuMDg3LDEwLjEsMy44MzktLjczMkwyOS45LDE0LjE0bC00LjA1NC0zLjk3M2E2LjUyMSw2LjUyMSwwLDAsMC0zLjYyNC0xLjYxNmwwLS4wNDRMNy4xOTIsNy4zNjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjM1OTk3XFxcIi8+PHBhdGggZD1cXFwiTTcuMjU2LDcuNDExbDguNzY4LDguNzY4di4wMTNMMjYuMTE2LDI2LjI4NGwtLjczNCwzLjgzOUgxNC4wMjJsLTMuOTcxLTQuMDU2YTYuNTIyLDYuNTIyLDAsMCwxLTEuNjE0LTMuNjI1bC0uMDQ0LDBMNy4yNTYsNy40MTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojNThiNmYwXFxcIi8+XCIsXG5cdH0sXG5cdFwiRGhhbGxcIjoge1xuXHRcdGNvbG91cjogXCIjYjdiN2I3XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTYsMi4wN0ExMy45MywxMy45MywwLDEsMSwyLDE2LDEzLjkzLDEzLjkzLDAsMCwxLDE2LDIuMDdaTTEzLjI4LDIyLjMyYTEuNDksMS40OSwwLDEsMS0xLDEuODNBMS40OSwxLjQ5LDAsMCwxLDEzLjI4LDIyLjMyWm04LTE1LjY4YS41My41MywwLDAsMSwuMzguNjYuNTIuNTIsMCwwLDEtLjY1LjM4bC0uNS0uMTNhNDIuNjcsNDIuNjcsMCwwLDAtLjM3LDcuMDdDMTguMDYsMTYuNDUsMTQuMzksMjIsMTQuMzksMjJsMS45My03LjE4YTEsMSwwLDAsMCwuODktLjY1LjkxLjkxLDAsMCwwLTEuNzUtLjQ3LDEsMSwwLDAsMCwuNDUsMUwxNCwyMS44NWE2OC4zOCw2OC4zOCwwLDAsMC0xLjM0LTkuMjUsMzQuMjgsMzQuMjgsMCwwLDAsMy4yMS02LjMxbC0uNS0uMTNBLjU1LjU1LDAsMCwxLDE1LDUuNWEuNTMuNTMsMCwwLDEsLjY2LS4zOGw1LjY4LDEuNTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojYjdiN2I3O2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+XCIsXG5cdH0sXG5cdFwiRGlmZlwiOiB7XG5cdFx0Y29sb3VyOiBcIiNjMDAwMDBcIixcblx0XHRpY29uOiBcIjxyZWN0IHg9XFxcIjYuOTc1XFxcIiB5PVxcXCIzXFxcIiB3aWR0aD1cXFwiMTguMDVcXFwiIGhlaWdodD1cXFwiNi4wMTdcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMDAwMDBcXFwiLz48cGF0aCBkPVxcXCJNMTIuOTkyLDEwLjk1djYuMDE3SDYuOTc1djYuMDE3aDYuMDE3VjI5aDYuMDE3VjIyLjk4M2g2LjAxN1YxNi45NjdIMTkuMDA4VjEwLjk1WlxcXCIgc3R5bGU9XFxcImZpbGw6Z3JlZW5cXFwiLz5cIixcblx0fSxcblx0XCJEamFuZ28vSmluamEyXCI6IHtcblx0XHRjb2xvdXI6IFwiI2ZmMDAwMFwiLFxuXHRcdGljb246IFwiPGRlZnM+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJhXFxcIiBjeD1cXFwiMTZcXFwiIGN5PVxcXCItMTE5LjI4M1xcXCIgcj1cXFwiMTMuNVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLCAwLCAwLCAtMC45NDUsIDAsIC05Ni43MzUpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNTc1NzU3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMmYyZjJmXFxcIi8+PC9yYWRpYWxHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9qaW5qYTwvdGl0bGU+PHBhdGggZD1cXFwiTTI5LjM0LDMuMjQxYTM4LjI3MSwzOC4yNzEsMCwwLDEtOS40NTEsMy4wNGMtNC4yNDEuNTUtMTIuMzI5LDEuMS0xMy45MzUuNzEyQTIzLjMsMjMuMywwLDAsMSwzLjIsNi4xNTFsLjMzNCwxLjEzMkwyLjUsOC4xODhsLjE4My4zMjMuNDI0LjAzMiwxLjMuMTYyLjE4My41ODIuNzI3LjA2Ni4zNjQsMS4yMjhzMS41NDQuMTMsMiwuMTMsMS4zNjMtLjA2NCwxLjM2My0uMDY0bC4wMy40ODUuMzM0LjA2NHYuNTVsLS43MjguNjQ4LjE4My4wMzJ2LjIyNWExNS44MTYsMTUuODE2LDAsMCwxLTIuMy4wMzRjLS42NjYtLjEtLjc4OC0uMS0uNzg4LS4xbC0uMDYuMDY0LS4wMy4yOTFoLjE1MWwuMDYsMS4yNjIsMy4zNjMtLjEzLS4yNDMsNC4zNjUtLjAzLjU0OS0yLjg0OC0uMTYyLS4wMy0xLjE2NGguNjM1bC4wNjEtLjQ1My41NzUtLjEzLjA5MS0uMTI4LTIuMTUxLS41MTgtMS42MzYuNDg1LjI3My4yMjdoLjI3M2wuMDMuMzg5LjU3NS4wMzJWMTguN2wtLjYzNS4xNjIuMTIxLjI1Ny4xNTEuMXYuODczaC4zOTR2NC4wNDFsLS42MzcuMS4wOTEsMS4xNjQuMzkzLjA2Ni0uMDYsMi42NTEsMS43MjcuMDMyLS4zNjQtMi42MTksMi42MDUtLjA2NC0uMTgxLDEuNDIyLS4yNDMsMSwyLjYzNS4wMzIuMDMtMi41ODYsMS44MTctLjE2Mi0uMDksMS42NDktLjA2MS45NjloMS41NDZsLS4wNjEtMi42NTEuMjEzLjAzNC4wNi0xLjI2MmgtLjI0M2wtLjA5LS41MThMMTMuOCwyMS45bC4wNi0xLjcxM2guMzMzVjE5LjE0OWwtLjQyNC4wMzIuMDYxLTEuMjIuNDkzLS4wNDkuMDIzLS40LjI4LS4wNDEuMjg3LS4yMThMMTMuMTg3LDE2LjlsLTEuNzEyLjM3OS4xNjcuMjc0LjE4MS0uMDE1LjIxMS0uMDA4LjAzOS41LjQ3Ny0uMDIzLjAwOSwxLjA4Mi0yLjA1My0uMDQ3LjA2OS0xLjE1Ni4wNjctMS4wNTFWMTUuNDU1TDEwLjcsMTRsNC4xMTEtLjIxLDQuODkyLS4yODIuMDQ2LjkyOS0uMTc0LDIuMjMxTDE5LjUsMTguNzQ0bC0xLjgtLjAzMi0uMDA5LTEuNDU1LjY2Ny0uMDI0LjAzLS40MTEuMjczLS4wNDEtLjAxNC0uMDgxLjI3My0uMDE1LjE1MS0uMkwxNy4wMzQsMTYsMTUsMTYuNDRsLjE0NC4yNTEuMjI3LS4wMTd2LjExNGguMjh2LjQ2bC42LjAwOC0uMDA3LDEuMjc3aC0uNjA1bC0uMDA5LjI5MS4yMTMuMDI0LS4wMjMsMS4xMDguNDQ3LjAyNC0uMDUzLDQuMzktLjU5MS4xMi4wMDcuMjFoLjIwNnYxLjEyNGguMzRsLS4wOSwxLjUzNkwxNS45NzQsMjguN2wyLjE1MS4wNTYtLjA2OS0xLjE2NC0uMTU4LS45NjktLjAzMS0uODQxLDEuODI2LS4wMzItLjA1MywxLjMtLjAwOSwxLjM3NCwxLjAzMS4wODEsMS40LS4wNTYuNDQtLjEzLS4yNDMtLjczNi0uMDYtMS4xNTYtLjExNC0uODI0LDEuNzQyLS4wNjQtLjA3NiwxLjAxLS4wMDcsMS41ODUuNy4wNjQuNjktLjAxNS4zMzMtLjEwNS0uMi0xLjVMMjUuMiwyNS40NDVsLjMtLjAzMkwyNS41LDI0LjRsLjA4My0uMDE3LS4wMTQtLjIxOGgtLjM0MWwtLjA2OS0uNzQ0TDI1LjEzLDIwLjJsLjI1Ny0uMDA4VjE5LjEzM2wuMTA3LjAxN3YtLjIxbC0uMzgtLjAzNC4wMDktMS4yMjguNjM1LS4wNTYtLjAzNy0uNDEzLjI4LS4wMjQtLjAxNi0uMDgxLjM3MS0uMTg2LTEuODg2LS4zNzktMS45MTYuMzg5LjEyMS4yMjYuMy0uMDI0LjAxNi4xaC4yNWwuMDE0LjQ4NS42MjEtLjAwOC4wNTMsMS4xODgtMi4yLS4wMTctLjI1Ny0xLjc4Ni0uMjA2LS45NDYtLjE2Ni0xLjcuMS0uOTkzLDQuMzc3LS4zMzIuMDE0LTEuNDc5LjIyLS4wNTYtLjAxNC0uMjI1LS4xNjctLjFzLTIuMzkzLjM1NS0zLjE1MS40MzZsLS4zNzEuMDQtLjAyMy0uMjc0LS45MDUtLjQ3NC4wMTEtLjU1Mi4zMTEtLjAwOS4wMjMtLjc1OWEyNC44MDcsMjQuODA3LDAsMCwwLDIuNTQ0LS4yODNjLjY4OS0uMTYyLDEuNjY2LS4zMjMsMS42NjYtLjMyM0wyNi4yLDcuODA5bC45MTctLjI2Ny4wNzYtLjIxLDIuMDc0LS41NzQuMjM2LS4xOTQtLjc4OC0xLjcyMi4wNzYtLjM4OS40LS4yMS4yODgtLjg4MVpNMTkuMzc0LDkuOGwtLjAxMS42MjYuNDcuMDItLjAzLjU5NC0uOTIxLjYtLjA1Ny4xNzQuMzcxLDAsMCwuMTQ2LTIuODE0LjEzNy4wMTktLjQxNi4xMjgtLjIwNy4wMDktLjEzMywwLS4yODYuMDgtLjE5LjAzLS4xNTR2LS4xMWwuMTIxLS40ODVabS01Ljg4NS41MzMtLjA2OS40MjEuMjIuMjU5LS4wMTQuNDUzLjIuMzE1LS4wNTMuMzcyLjE1MS4yMTgtMi44NzEuMTEzLS4wMDctLjEuMzMzLS4wNDEuMDE2LS4xMjItLjcyNy0uMzk1LS4wMzktLjYzMS4zNDgtLjAxNy4wMy0uNjhabTQuMjQ5LDkuNywxLjc0Mi4xMTNMMTkuNDIsMjIuNWwuMjI3LDEuOTIzTDE3LjgsMjQuMzU0Wm0tMTEuNjYzLjEsMi43ODguMTQ1TDguNjIsMjEuOXYxLjM1OWwuMi43NTktMi43MjcuMTNabTE3Ljg0My4wMTV2NC4wMWwtMS43NzIuMTMtLjA2MS0yLjExOC0uMi0xLjk3M1pNMTAuNSwyMC4yNGwyLjA2LjAwOC4wMjEsMy43MThMMTAuNjU3LDI0bC0uMS0xLjIwNS0uMDA3LTEuMlpcXFwiIHN0eWxlPVxcXCJzdHJva2U6cmVkO3N0cm9rZS13aWR0aDowLjVweDtmaWxsOnVybCgjYSlcXFwiLz5cIixcblx0fSxcblx0XCJEb2NrZXJcIjoge1xuXHRcdGNvbG91cjogXCIjMDA5NmU2XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTYuNTQsMTIuNjYzSDE5LjR2Mi45MjRoMS40NDZhNi4yNzIsNi4yNzIsMCwwLDAsMS45ODgtLjMzMyw1LjA5MSw1LjA5MSwwLDAsMCwuOTY2LS40MzYsMy41ODQsMy41ODQsMCwwLDEtLjY3LTEuODQ5LDMuOTA3LDMuOTA3LDAsMCwxLC43LTIuNzUzbC4zLS4zNDguMzU4LjI4OGE0LjU1OCw0LjU1OCwwLDAsMSwxLjc5NSwyLjg5Miw0LjM3NSw0LjM3NSwwLDAsMSwzLjMxOS4zMDlsLjM5My4yMjYtLjIwNy40YTQuMTQxLDQuMTQxLDAsMCwxLTQuMTU3LDEuOTgzYy0yLjQ4LDYuMTY4LTcuODcxLDkuMDg4LTE0LjQwOSw5LjA4OC0zLjM3OCwwLTYuNDc2LTEuMjYzLTguMjQxLTQuMjU5bC0uMDI5LS4wNDlMMi43LDIwLjIyN2E4LjMxNiw4LjMxNiwwLDAsMS0uNjU5LTQuMjA4bC4wNC0uNDMzSDQuNTI2VjEyLjY2M0g3LjM4N1Y5LjhoNS43MjFWNi45NDJIMTYuNTR2NS43MjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA5NmU2XFxcIi8+PHBhdGggZD1cXFwiTTEyLjAwNiwyNC41NjdhNi4wMjIsNi4wMjIsMCwwLDEtMy4xNC0zLjA4OSwxMC4zMjksMTAuMzI5LDAsMCwxLTIuMjY0LjM0M3EtLjUuMDI4LTEuMDQ1LjAyOC0uNjMyLDAtMS4zMzEtLjAzN2E5LjA1MSw5LjA1MSwwLDAsMCw3LDIuNzY5UTExLjYxOCwyNC41ODEsMTIuMDA2LDI0LjU2N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNNy4wOCwxMy4zNDZoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3SDYuN1YxMy4zNDZabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzY4LDBoLjJ2Mi4wNjdoLS4yVjEzLjM0NlpNNSwxMy4xNEg3LjQ4MnYyLjQ3OUg1Wm0yLjg1OS0yLjg2MWgyLjQ4djIuNDc5SDcuODYzWm0yLjA3Ny4yMDdoLjJ2Mi4wNjZoLS4yWm0tLjM3NiwwaC4ydjIuMDY2aC0uMlptLS4zNzYsMGguMnYyLjA2NmgtLjJWMTAuNDg2Wm0tLjM3NiwwaC4ydjIuMDY2aC0uMlptLS4zNzYsMGguMnYyLjA2NmgtLjJabS0uMzY4LDBoLjJ2Mi4wNjZoLS4yWm0tLjIwNywyLjY1M2gyLjQ4djIuNDhINy44NjNWMTMuMTRabTIuMDc3LjIwN2guMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlYxMy4zNDZabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNjgsMGguMnYyLjA2N2gtLjJabTIuNjU0LS4yMDdIMTMuMnYyLjQ4aC0yLjQ4VjEzLjE0Wm0yLjA3Ni4yMDdIMTN2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNjgsMGguMnYyLjA2N2gtLjJabS0uMjA2LTMuMDY3SDEzLjJ2Mi40NzloLTIuNDhWMTAuMjc5Wm0yLjA3Ni4yMDdIMTN2Mi4wNjZoLS4yWm0tLjM3NiwwaC4ydjIuMDY2aC0uMlptLS4zNzYsMGguMnYyLjA2NmgtLjJabS0uMzc2LDBoLjJ2Mi4wNjZoLS4yWm0tLjM3NiwwaC4ydjIuMDY2aC0uMlptLS4zNjgsMGguMnYyLjA2NmgtLjJabTIuNjU0LDIuNjUzaDIuNDc5djIuNDhoLTIuNDhWMTMuMTRabTIuMDc2LjIwN2guMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM2OCwwaC4xOTJ2Mi4wNjdoLS4yVjEzLjM0NlptLS4yMDYtMy4wNjdoMi40Nzl2Mi40NzloLTIuNDhWMTAuMjc5Wm0yLjA3Ni4yMDdoLjJ2Mi4wNjZoLS4yWm0tLjM3NiwwaC4ydjIuMDY2aC0uMlptLS4zNzYsMGguMnYyLjA2NmgtLjJabS0uMzc2LDBoLjJ2Mi4wNjZoLS4yWm0tLjM3NiwwaC4ydjIuMDY2aC0uMlptLS4zNjgsMGguMTkydjIuMDY2aC0uMlYxMC40ODZabS0uMjA2LTMuMDY3aDIuNDc5VjkuOWgtMi40OFY3LjQxOVptMi4wNzYuMjA2aC4yVjkuNjkxaC0uMlptLS4zNzYsMGguMlY5LjY5MWgtLjJabS0uMzc2LDBoLjJWOS42OTFoLS4yWm0tLjM3NiwwaC4yVjkuNjkxaC0uMlptLS4zNzYsMGguMlY5LjY5MWgtLjJabS0uMzY4LDBoLjE5MlY5LjY5MWgtLjJWNy42MjVabTIuNjU0LDUuNTE0aDIuNDc5djIuNDhoLTIuNDhWMTMuMTRabTIuMDc2LjIwN2guMTk1djIuMDY3aC0uMlYxMy4zNDZabS0uMzc2LDBoLjIwNnYyLjA2N2gtLjIwNlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMjA1VjEzLjM0NlptLS4zNjgsMGguMnYyLjA2N2gtLjE5NFYxMy4zNDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTEwLjE4OCwxOS42MzhhLjY4NC42ODQsMCwxLDEtLjY4NC42ODRBLjY4NC42ODQsMCwwLDEsMTAuMTg4LDE5LjYzOFptMCwuMTk0YS40ODkuNDg5LDAsMCwxLC4xNzcuMDMzLjIuMiwwLDEsMCwuMjc1LjI2OS40OS40OSwwLDEsMS0uNDUzLS4zWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIkRPVCAoR3JhcGh2aXopXCI6IHtcblx0XHRjb2xvdXI6IFwiIzRlZDFmOFwiLFxuXHRcdGljb246IFwiPHBvbHlnb24gcG9pbnRzPVxcXCIyMy45NDIgMzAgMTIuNjc5IDMwIDEuNDE3IDMwIDEuNDE3IDE2IDEuNDE3IDIgMTIuNjc5IDIgMjMuOTQyIDIgMjMuOTQyIDE2IDIzLjk0MiAzMFxcXCIgc3R5bGU9XFxcImZpbGw6I2U2ZTZlNlxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIzLjIwMlxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCI3LjQyXFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+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+PHBhdGggZD1cXFwiTTMwLjcxNywxNy44M2MuMTUxLjAyMy4yMzguMTU1LjI2Mi40YTQuNDM2LDQuNDM2LDAsMCwxLS4yMTMsMS4zODUsNC40MzQsNC40MzQsMCwwLDEtLjUwOSwxLjMwN2MtLjE0LjE5NS0uMjguMjYzLS40MjIuMjA3cy0uMjI2LS4yMi0uMjUtLjQ4OWE0LjE5NCw0LjE5NCwwLDAsMSwuMi0xLjMsNC4xNDMsNC4xNDMsMCwwLDEsLjQ5Mi0xLjI0MUMzMC40MiwxNy45LDMwLjU2NiwxNy44MDcsMzAuNzE3LDE3LjgzWm0tLjEzNy41MTNhLjEzMi4xMzIsMCwwLDAtLjExNS4wNTMuOC44LDAsMCwwLS4xMzMuMjQxLDcuNTg3LDcuNTg3LDAsMCwwLS4yNDQuNzkxLDcuNTM5LDcuNTM5LDAsMCwwLS4xOC43NzkuOTMuOTMsMCwwLDAtLjAwOS4zLjEzMS4xMzEsMCwwLDAsLjA3My4xLjEwOC4xMDgsMCwwLDAsLjExMS0uMDM5Ljc0Mi43NDIsMCwwLDAsLjEzMi0uMjM3LDcuOCw3LjgsMCwwLDAsLjI0OC0uODA2LDcuODM1LDcuODM1LDAsMCwwLC4xODUtLjguODg0Ljg4NCwwLDAsMCwuMDA4LS4zUTMwLjYzMywxOC4zNTMsMzAuNTgsMTguMzQzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZmY4MFxcXCIvPlwiLFxuXHR9LFxuXHRcIkVkaXRvckNvbmZpZ1wiOiB7XG5cdFx0Y29sb3VyOiBcIiNlM2UzZjhcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk04LjcwOSwxOC4zNTFhMS4yNjcsMS4yNjcsMCwwLDAsLjUzMi0xLjM3OUM4LjY5MiwxNy4yMDcsOC43MTgsMTcuNzQ5LDguNzA5LDE4LjM1MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlM2UzZjhcXFwiLz48cGF0aCBkPVxcXCJNMTQuOTI0LDE5Ljg1MmEuODcxLjg3MSwwLDAsMCwuNjItMS4xMzVBMS40MywxLjQzLDAsMCwwLDE0LjkyNCwxOS44NTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZTNlM2Y4XFxcIi8+PHBhdGggZD1cXFwiTTIuNzEzLDI3LjA3OWExLjUzOCwxLjUzOCwwLDAsMCwuNTI0LDEuMzUzYzEuNDE0Ljc5NCw2LjM3Mi4xNzUsOC4wNTYtLjJhMTQuOTk0LDE0Ljk5NCwwLDAsMCwyLjQyNi0xLjIxMywyMi42NDMsMjIuNjQzLDAsMCwwLDQuNzEzLTIuNTU3YzEuMDgyLS43OTQsMi44LTMuMDI5LDIuOTg1LTQuMzY0bC0xLjQ3NS0uMzMyYy0uMDM1LDEuNS0uMzc1LDEuODQyLTEuNzExLDIuMTkxYTEwLjY2MiwxMC42NjIsMCwwLDEtMy41Ny4xNCwzLjM2MiwzLjM2MiwwLDAsMS0yLjMxMy0xLjU2MmMtMS4wNjUtMS40MTQuMjM2LTIuNC0xLjQ0OS0yLjUtMS43NzIsMi4xNzMtNC45LjYxMS02LjI2Ny4zOTNhMzAuMDY2LDMwLjA2NiwwLDAsMC0xLjkzOCw3LjYsMi43NDgsMi43NDgsMCwwLDEsMi4xMzguMzIzYzIuNjg4LDEuMDM5LjM0LDEuOTU1LS43MzMsMS42ODVDMy4zNjgsMjcuODY0LDMuMTQxLDI3LjM4NCwyLjcxMywyNy4wNzlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmRmZGZkXFxcIi8+PHBhdGggZD1cXFwiTTYuMjMxLDE0LjUzN2ExMS41MzksMTEuNTM5LDAsMCwxLDIuOTg1LDEuMTI2YzEuNTEuNzUxLDEuNzgxLjY0NiwxLjkyLDEuNjkzLjAxNy4xOTItLjAxNy4zLjUzMi40NzEuOTI1LjI4OC0uNTMyLS4yMjcsMS45NDYtLjIxOEExNi42NCwxNi42NCwwLDAsMSwxOS41NTksMTguOWMuNDU0LjI4OC4zNjcuNjU1LDEuOS42MTFhMTguNzY3LDE4Ljc2NywwLDAsMC0xLjItNi4xNjJjLS44NjQtMi4wMDctMi4wMDctMi4zMTMtNC4zMzgtMy4wNjQtMS4zNjItLjQzNi01LjM1OS0uOTE2LTYuNi0uMTQ4LTEuMTYxLjcyNC0xLjM3OSwxLjU4OS0yLjQ2MSwzLjEwN0E1LjM2Niw1LjM2NiwwLDAsMCw2LjIzMSwxNC41MzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmRmZGZkXFxcIi8+PHBhdGggZD1cXFwiTTE1Ljg0LDE4LjI0NmMuODczLjM1OC0uMDQ0LDIuNjcxLTEuMjU3LDIuMTEyLS4zOTMtMS4xMDguNTQxLTEuNzM3Ljc5NC0yLjIzNGE4LjUxLDguNTEsMCwwLDAtMi40NjEtLjE0OGMtLjU3Ni4yMTgtLjcwNywxLjQ0OS0uNDEsMi4wMjUsMS40LDIuNzQxLDcuNTY3LDIuMTU2LDYuOTEzLjAyNi0uMjYyLS44NjQtLjUwNi0xLTEuMzg4LTEuM0E2Ljg4NSw2Ljg4NSwwLDAsMCwxNS44NCwxOC4yNDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmRmZGZkXFxcIi8+PHBhdGggZD1cXFwiTTQuODY5LDE3Ljk0MWMuNy42NzIsMi4yNzguNzc3LDMuMy44MjlDOC4zLDE3LjQxNyw4LjQxMywxNi40LDkuNSwxNi40ODNhMS42LDEuNiwwLDAsMS0uMzA1LDIuMTMsMS4zODYsMS4zODYsMCwwLDAsMS4zNjItMS43NjMsMTQuNTQyLDE0LjU0MiwwLDAsMC00LjQ2LTEuODk0QTkuNTA2LDkuNTA2LDAsMCwwLDQuODY5LDE3Ljk0MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZGZkZmRcXFwiLz48cGF0aCBkPVxcXCJNMy4yMjgsMjYuNTgxYy41NzYtLjA1MiwyLjA3Ny4zODQsMi4yLjg3M0M0LjQ5NCwyNy41NjgsMy4zMDcsMjcuNDgsMy4yMjgsMjYuNTgxWm0tLjUxNS41Yy40MjguMzA1LjY1NS43ODYsMS4zODguOTYsMS4wNzQuMjcxLDMuNDIxLS42NDYuNzMzLTEuNjg1QTIuNzQ4LDIuNzQ4LDAsMCwwLDIuNywyNi4wMzJhMzAuMDY2LDMwLjA2NiwwLDAsMSwxLjkzOC03LjZjMS4zNy4yMTgsNC40OTUsMS43ODEsNi4yNjctLjM5MywxLjY4NS4xLjM4NCwxLjA4MiwxLjQ0OSwyLjVBMy4zNjIsMy4zNjIsMCwwLDAsMTQuNjYyLDIyLjFhMTAuNjYyLDEwLjY2MiwwLDAsMCwzLjU3LS4xNGMxLjMzNS0uMzQ5LDEuNjc2LS42OSwxLjcxMS0yLjE5MWwxLjQ3NS4zMzJjLS4xODMsMS4zMzUtMS45LDMuNTctMi45ODUsNC4zNjRhMjIuNjQzLDIyLjY0MywwLDAsMS00LjcxMywyLjU1NywxNC45OTQsMTQuOTk0LDAsMCwxLTIuNDI2LDEuMjEzYy0xLjY4NS4zNzUtNi42NDIsMS04LjA1Ni4yQTEuNTM4LDEuNTM4LDAsMCwxLDIuNzEzLDI3LjA3OVptMTIuMjExLTcuMjI3YTEuNDMsMS40MywwLDAsMSwuNjItMS4xMzVBLjg3MS44NzEsMCwwLDEsMTQuOTI0LDE5Ljg1MlptLjkxNi0xLjYwNmE2Ljg4NSw2Ljg4NSwwLDAsMSwyLjE5MS40OGMuODgyLjMsMS4xMjYuNDM2LDEuMzg4LDEuMy42NTUsMi4xMy01LjUxNiwyLjcxNC02LjkxMy0uMDI2LS4zLS41NzYtLjE2Ni0xLjgwNy40MS0yLjAyNWE4LjUxLDguNTEsMCwwLDEsMi40NjEuMTQ4Yy0uMjUzLjUtMS4xODcsMS4xMjYtLjc5NCwyLjIzNEMxNS44LDIwLjkxNywxNi43MTMsMTguNiwxNS44NCwxOC4yNDZabS03LjEzMS4xYy4wMDktLjYtLjAxNy0xLjE0My41MzItMS4zNzlBMS4yNjcsMS4yNjcsMCwwLDEsOC43MDksMTguMzUxWm0tMy44NC0uNDFhOS41MDYsOS41MDYsMCwwLDEsMS4yMjItMi45ODUsMTQuNTQyLDE0LjU0MiwwLDAsMSw0LjQ2LDEuODk0QTEuMzg2LDEuMzg2LDAsMCwxLDkuMTksMTguNjEzYTEuNiwxLjYsMCwwLDAsLjMwNS0yLjEzYy0xLjA4Mi0uMDc5LTEuMi45MzQtMS4zMjcsMi4yODdDNy4xNDcsMTguNzE3LDUuNTY3LDE4LjYxMyw0Ljg2OSwxNy45NDFaTTQsMTcuMjQyYy0uMzIzLS44OS0uMzIzLTIuMjc4LDEuMDQ3LTIuMzkybC0uNywxLjk0NkM0LjE2MiwxNy4yMTYsNC4xNjIsMTcuMTIsNCwxNy4yNDJabTIuMjM0LTIuNzA2YTUuMzY2LDUuMzY2LDAsMCwxLC42MjgtMS4yOTJjMS4wODItMS41MTksMS4zLTIuMzgzLDIuNDYxLTMuMTA3LDEuMjM5LS43NjgsNS4yMzctLjI4OCw2LjYuMTQ4LDIuMzMuNzUxLDMuNDc0LDEuMDU2LDQuMzM4LDMuMDY0YTE4Ljc2NywxOC43NjcsMCwwLDEsMS4yLDYuMTYyYy0xLjUzNi4wNDQtMS40NDktLjMyMy0xLjktLjYxMWExNi42NCwxNi42NCwwLDAsMC01Ljk0NC0xLjI5MmMtMi40NzktLjAwOS0xLjAyMS41MDYtMS45NDYuMjE4LS41NS0uMTc1LS41MTUtLjI3OS0uNTMyLS40NzEtLjE0LTEuMDQ3LS40MS0uOTQzLTEuOTItMS42OTNBMTEuNTM5LDExLjUzOSwwLDAsMCw2LjIzMSwxNC41MzdabTE1LjQ0OS0uNDI4Yy0uMTY2LS41NS4xNC0uNTE1LjY3Mi0uODlhOS4wMjEsOS4wMjEsMCwwLDEsLjkyNS0uNjU1YzEuNDA1LS43ODYsNC4wMjQtLjkxNiw1LjE0MS4wMTdBMi40NzksMi40NzksMCwwLDEsMjkuNSwxNC42NWE1LjgzOCw1LjgzOCwwLDAsMS0yLjYxOCwzLjgzMiw1LjIxMyw1LjIxMywwLDAsMS00Ljc4MywxLjJjLS4xNTctLjM4NC0uMDM1LTIuODE5LS4yMTgtMy43MTgtLjE2Ni0uOC0uMDc5LS44OS4zODQtMS4zNywxLjM2Mi0xLjQxNCw0LjMxMi0yLjQ0NCw1Ljk4OC0xLjIzMS43MDcuNTI0LjUwNi43MjQuODczLDEuMTI2LjQ1NC0uNDg5LS4zOTMtMi4xMy0zLjUxNy0yLjAyNUMyMy40ODYsMTIuNTI5LDIyLjU3LDE0LjE4NywyMS42OCwxNC4xMDlaTTguOTcxLDkuMTQzYTguMDk0LDguMDk0LDAsMCwxLDIuMjc4LTQuNkMxMi42LDMuNSwxNC4wMTYsMi41MDksMTYuMDk0LDMuNjg3Yy41MTUuMjg4LjQ4OS40MzYuNTQxLDEuMTUyYTMuMzEyLDMuMzEyLDAsMCwxLS4xOTIsMS41Yy0xLjM3OSw0LjQ1MS0yLjUzMSwxLjg5NC02Ljk0OCwyLjk1YTYuMzc0LDYuMzc0LDAsMCwxLDIuMTIxLTMuNDEzYzEuMi0xLjE2MSwyLjA2LTEuOTExLDMuODU4LTEuNjY3YTEuODQyLDEuODQyLDAsMCwxLS4wNTIsMi4zMjJjLS44LDEuMjkyLTEsMS4yMTMtLjg4MiwyLjA5NS42MjgtLjE1Ny44Mi0uNzY4LDEuMTA4LTEuMzc5LDEuNzU0LTMuNjY2LS43OTQtNC4xMTEtMi4zNTctMy40MzlBMTAuMzcyLDEwLjM3MiwwLDAsMCw5Ljc2Niw3LjU1NGMtLjEyMi4yNDQtLjI1My41NTktLjM2Ny44MjlabTYuOTEzLjE4M0MxNi4wNjcsOC4yMzUsMTcuMTUsNy45NjQsMTcuMTUsNC42YzAtMS40NDktMS43ODEtMi43NDktNC4xMTEtMS43ODEtMiwuODItMi4zLDEuNDQ5LTMuMzY5LDMuMDU1LTEsMS41MTktLjk2OSwzLjE4Ni0xLjgzMyw0LjU5MS0uMjUzLjQtLjQ4LjU0MS0uNzU5Ljk0My0uMi4zLS4zNDkuNjcyLS41NSwxLjAyMUExMi45NCwxMi45NCwwLDAsMCw1LjM2NywxNC40Yy0xLjA0Ny4wMjYtMS45MjkuMDQ0LTIuMDM0LDEuMTI2LS4xNCwxLjQ4NC41NTksMS44NS41NTksMi40MDktLjAwOS42LTIuNDUzLDYuNjc3LTEuNzcyLDEwLjMuMTkyLDEsLjg0NywxLDEuODk0LDEuMTI2YTE3LjkzLDE3LjkzLDAsMCwwLDguMDU2LS43MDdsNC4xLTEuOTY0YTE4Ljg1LDE4Ljg1LDAsMCwwLDMuNTYxLTIuNSwxMi4zODMsMTIuMzgzLDAsMCwwLDEuMzA5LTEuNzE5LDMuMjEzLDMuMjEzLDAsMCwwLC44LTIuMjA4LDguNDczLDguNDczLDAsMCwxLDIuOTg1LDFjLS4wNjEuNi0uMzU4LjMxNC0uMzU4Ljg1NWExLjM1NSwxLjM1NSwwLDAsMCwxLjA0Ny0uODljLS4zNTgtLjUyNC0uNzMzLS40MzYtMS4yNDgtLjg1NWE4LjIxMiw4LjIxMiwwLDAsMSwxLjcxOS0uNzA3YzEuMjIyLS41MDYsMy4zMDgtMi4wNDIsMy44MjMtMy40MzlhNC40NDksNC40NDksMCwwLDAtLjU1OS0zLjczNiw1LjQ0NCw1LjQ0NCwwLDAsMC0zLjY0OC0xLjE2MWMtMS41OCwwLTMuMjEyLDEuMTM1LTQuNDg2LDEuNjIzLS40ODktLjQyOC0uNTI0LS45MTYtLjg4Mi0xLjM4OEExMi4yODEsMTIuMjgxLDAsMCwwLDE1Ljg4NCw5LjMyNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMjAyMDJcXFwiLz48cGF0aCBkPVxcXCJNMjEuNjgsMTQuMTA5Yy44OS4wNzksMS44MDctMS41OCwzLjkyOC0xLjY1LDMuMTI1LS4xLDMuOTcxLDEuNTM2LDMuNTE3LDIuMDI1LS4zNjctLjQtLjE2Ni0uNi0uODczLTEuMTI2LTEuNjc2LTEuMjEzLTQuNjI2LS4xODMtNS45ODgsMS4yMzEtLjQ2My40OC0uNTUuNTY3LS4zODQsMS4zNy4xODMuOS4wNjEsMy4zMzQuMjE4LDMuNzE4YTUuMjEzLDUuMjEzLDAsMCwwLDQuNzgzLTEuMkE1LjgzOCw1LjgzOCwwLDAsMCwyOS41LDE0LjY1YTIuNDc5LDIuNDc5LDAsMCwwLTEuMDgyLTIuMDY5Yy0xLjExNy0uOTM0LTMuNzM2LS44LTUuMTQxLS4wMTdhOS4wMjEsOS4wMjEsMCwwLDAtLjkyNS42NTVDMjEuODE5LDEzLjU5NCwyMS41MTQsMTMuNTU5LDIxLjY4LDE0LjEwOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZGYyZjJcXFwiLz48cGF0aCBkPVxcXCJNOC45NzEsOS4xNDMsOS40LDguMzgzYy4xMTMtLjI3MS4yNDQtLjU4NS4zNjctLjgyOUExMC4zNzIsMTAuMzcyLDAsMCwxLDEzLjI5MiwzLjgxYzEuNTYyLS42NzIsNC4xMTEtLjIyNywyLjM1NywzLjQzOS0uMjg4LjYxMS0uNDgsMS4yMjItMS4xMDgsMS4zNzktLjEyMi0uODgyLjA3OS0uOC44ODItMi4wOTVhMS44NDIsMS44NDIsMCwwLDAsLjA1Mi0yLjMyMmMtMS44LS4yNDQtMi42NjIuNTA2LTMuODU4LDEuNjY3QTYuMzc0LDYuMzc0LDAsMCwwLDkuNSw5LjI5MWM0LjQxNi0xLjA1Niw1LjU2OSwxLjUsNi45NDgtMi45NWEzLjMxMiwzLjMxMiwwLDAsMCwuMTkyLTEuNWMtLjA1Mi0uNzE2LS4wMjYtLjg2NC0uNTQxLTEuMTUyLTIuMDc3LTEuMTc4LTMuNDkxLS4xOTItNC44NDQuODU1QTguMDk0LDguMDk0LDAsMCwwLDguOTcxLDkuMTQzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZlZjNmM1xcXCIvPjxwYXRoIGQ9XFxcIk00LDE3LjI0MmMuMTY2LS4xMjIuMTY2LS4wMjYuMzQ5LS40NDVsLjctMS45NDZDMy42NzMsMTQuOTY0LDMuNjczLDE2LjM1Miw0LDE3LjI0MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZmVmZWZcXFwiLz48cGF0aCBkPVxcXCJNNS40MjgsMjcuNDU0Yy0uMTIyLS40ODktMS42MjMtLjkyNS0yLjItLjg3M0MzLjMwNywyNy40OCw0LjQ5NCwyNy41NjgsNS40MjgsMjcuNDU0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZjFmMVxcXCIvPlwiLFxuXHR9LFxuXHRcIkVKU1wiOiB7XG5cdFx0Y29sb3VyOiBcIiM5MGE5M2FcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yLDE3LjY3MlYxNC4zMjhsMTEuODYtNi4yVjExLjJMNS4xLDE1LjkzOWw4Ljc2Miw0LjgzNXYzLjFabTI3LjgxNC04Ljg4TDE5LjQ2NSwyMy4yMjlIMTUuOTEyTDI2LjI4MSw4Ljc5MVpNMjYuOTQ3LDIxLjVhLjc5NC43OTQsMCwwLDAsLjYxOS0uMjc4LDEuMDYxLDEuMDYxLDAsMCwwLC4yNDgtLjczMiwxLjE0MSwxLjE0MSwwLDAsMC0uMjQ4LS43NTMuNzY4Ljc2OCwwLDAsMC0xLjIxNywwLDEuMTQxLDEuMTQxLDAsMCwwLS4yNDguNzUzLDEuMDksMS4wOSwwLDAsMCwuMjM3LjczMkEuNzYzLjc2MywwLDAsMCwyNi45NDcsMjEuNVptMi4xODYsMS4wNDJhMy4yMzcsMy4yMzcsMCwwLDEtNC4zNTItLjAxLDIuODY0LDIuODY0LDAsMCwxLDAtNC4xLDMuMjIzLDMuMjIzLDAsMCwxLDQuMzUyLDBBMi43NzMsMi43NzMsMCwwLDEsMzAsMjAuNDg2LDIuNzQsMi43NCwwLDAsMSwyOS4xMzQsMjIuNTM4Wk0xOC44MjEsMTMuMDYxYS43OTQuNzk0LDAsMCwwLC42MTktLjI3OCwxLjA2MSwxLjA2MSwwLDAsMCwuMjQ4LS43MzIsMS4xNDEsMS4xNDEsMCwwLDAtLjI0OC0uNzUzLjc2OS43NjksMCwwLDAtMS4yMTcsMCwxLjE0MSwxLjE0MSwwLDAsMC0uMjQ4Ljc1MywxLjA5LDEuMDksMCwwLDAsLjIzNy43MzJBLjc2My43NjMsMCwwLDAsMTguODIxLDEzLjA2MVpNMjEuMDA3LDE0LjFhMy4yMzcsMy4yMzcsMCwwLDEtNC4zNTItLjAxLDIuODY0LDIuODY0LDAsMCwxLDAtNC4xLDMuMjIzLDMuMjIzLDAsMCwxLDQuMzUyLDAsMi43NzMsMi43NzMsMCwwLDEsLjg2NiwyLjA2M0EyLjc0LDIuNzQsMCwwLDEsMjEuMDA3LDE0LjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojOTBhOTNhXFxcIi8+XCIsXG5cdH0sXG5cdFwiRWxpeGlyXCI6IHtcblx0XHRjb2xvdXI6IFwiIzQ1MjQ1OVwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMTcuMjQ5XFxcIiB5MT1cXFwiLTMzNS41OTdcXFwiIHgyPVxcXCIxNC45NzNcXFwiIHkyPVxcXCItMzA5Ljk5NFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLCAwLCAwLCAtMSwgMCwgLTMwNilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4wMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2Y3ZjZmOFxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwLjA0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjA5XFxcIiBzdG9wLWNvbG9yPVxcXCIjYWE5Y2IzXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjAuMzlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMlxcXCIgc3RvcC1jb2xvcj1cXFwiIzZmNTY3ZVxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwLjY2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjMyXFxcIiBzdG9wLWNvbG9yPVxcXCIjNDUyNDU5XFxcIiBzdG9wLW9wYWNpdHk9XFxcIjAuODZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNVxcXCIgc3RvcC1jb2xvcj1cXFwiIzJkMDg0M1xcXCIgc3RvcC1vcGFjaXR5PVxcXCIwLjk3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMjYwMDNkXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9lbGl4aXI8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNy44LDguNTkxYzIuMDc5LDQuNTg0LDcuNjQsNi41LDcuMTQxLDEyLjQ3NC0uNTgyLDcuMDE3LTUuNTUxLDguNzg0LTguMzE2LDguOTA5YTguODE1LDguODE1LDAsMCwxLTkuNC03LjQ4NUM1LjYxOCwxNS4wNDYsMTIuNjU1LDMuNjMyLDE2LjcwOSwyQTE1LjA4MywxNS4wODMsMCwwLDAsMTcuOCw4LjU5MVptLS4xNjYsMTguODU3YS40MjMuNDIzLDAsMCwwLS4wNTctLjMyN2MtLjU5My0xLjEtNS44MS0xLjY0NS02LjkwNy0xLjc1MmE4LjI3Miw4LjI3MiwwLDAsMCwxLjYzNSwxLjMsNy43NjYsNy43NjYsMCwwLDAsMi44MTQsMS4wNDFDMTUuOTIyLDI3LjgzMSwxNy40NjcsMjcuOTMzLDE3LjYzNSwyNy40NDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojN2M2NDhmXFxcIi8+PGcgc3R5bGU9XFxcIm9wYWNpdHk6MC4yNVxcXCI+PHBhdGggZD1cXFwiTTE4LjI0OCwxMC42MThjNC40Nyw0LjgyMyw2LjQ0NSw0Ljk3OSw2LjIzNywxMC40NzgtLjI0OSw2LjQ3Ni00LjU0Myw4LjE5MS03LjA1OCw4LjQyLTQuMi41NTEtNy40OTUtMS41MjgtOC4zNTgtNS42ODZDNy4zMTIsMTcuMDYzLDEyLjk3OCw2LjAyMywxNi42MzcsNC4zNkExNS4zMjMsMTUuMzIzLDAsMCwwLDE4LjI1OCwxMC42WlxcXCIgc3R5bGU9XFxcImZpbGw6IzI2MDAzZFxcXCIvPjwvZz48ZyBzdHlsZT1cXFwib3BhY2l0eTowLjc1XFxcIj48cGF0aCBkPVxcXCJNMTcuMzg1LDkuOTIxQzIwLjM2OSwxNCwyNC4zMTksMTMuNywyNSwxOS42NDFjLjA5NCw2LjkyMy0zLjYsOS4yODMtNi4yMzcsOS45NDgtNC41LDEuMjc5LTguNTE0LS42NDUtMTAuMDk0LTUtMy4wMzUtNywyLjY1MS0xOC41MTQsNi4zMS0yMC45MTVhMTUuMDgzLDE1LjA4MywwLDAsMCwyLjM3LDYuMjM3WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjwvZz5cIixcblx0fSxcblx0XCJFbG1cIjoge1xuXHRcdGNvbG91cjogXCIjOGNkNjM2XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTYsMTYuNzY4LDIuNzY4LDMwSDI5LjIzMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM1ZmI0Y2JcXFwiLz48cGF0aCBkPVxcXCJNMjQuMTMsMjMuMzYyLDMwLDI5LjIzMlYxNy40OTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWVhNDAwXFxcIi8+PHBhdGggZD1cXFwiTTE1LjIzMiwxNiwyLDIuNzY4VjI5LjIzMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM1OTYyNzdcXFwiLz48cGF0aCBkPVxcXCJNMzAsMTQuNDQ4VjJIMTcuNTUyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzVmYjRjYlxcXCIvPjxwYXRoIGQ9XFxcIk0yMy4zOTIsOS4zNzZsNi41OTQsNi41OTQtNi42MjQsNi42MjRMMTYuNzY4LDE2Wk0yLjc2OCwyLDguODYzLDguMUgyMi4xMTFMMTYuMDE2LDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGNkNjM2XFxcIi8+PHBhdGggZD1cXFwiTTE2LDE1LjIzMmw2LjA1MS02LjA1MUg5Ljk0OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZWE0MDBcXFwiLz5cIixcblx0fSxcblx0XCJFUkJcIjoge1xuXHRcdGNvbG91cjogXCIjOTIxYTFlXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNNy4yNSwyNC43NWgxNy41TDEyLjUsMTIuNSw3LjI1LDE3Ljc1Wk0yLDMwSDMwVjJIMTZMMiwxNlptMjUuMzc1LTIuNjI1SDQuNjI1di0xMC41bDEyLjI1LTEyLjI1aDEwLjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojOTIxYTFlXFxcIi8+XCIsXG5cdH0sXG5cdFwiRXJsYW5nXCI6IHtcblx0XHRjb2xvdXI6IFwiI2EyMDAzZVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTYuMzg4LDIzLjg2N2ExMS4wMTIsMTEuMDEyLDAsMCwxLTMuNDQxLTguMjM0LDEwLjc2NSwxMC43NjUsMCwwLDEsMi44NjQtNy41SDJ2MTUuNzNabTIwLjA2NiwwYTE2LjQ0LDE2LjQ0LDAsMCwwLDIuNTM3LTMuMTM2bC00LjIxOC0xLjg3M2E4LjMwNiw4LjMwNiwwLDAsMS02LjY0MSw0LjEyYy00LjM1OS0uMDE0LTYuMDcyLTMuMzI5LTYuMDYzLTcuNTg0SDI4LjM2YTYuNDY1LDYuNDY1LDAsMCwwLDAtLjkzNSw5LjA1Nyw5LjA1NywwLDAsMC0yLjAyOS02LjMyNkgzMHYxNS43M0gyNi40NTZaTTEyLjMzMiwxMS43NDJhMy43MjMsMy43MjMsMCwwLDEsMy45LTMuMjMsMy4yOSwzLjI5LDAsMCwxLDMuNTMyLDMuMjNaXFxcIiBzdHlsZT1cXFwiZmlsbDojYTIwMDNlXFxcIi8+XCIsXG5cdH0sXG5cdFwiRiNcIjoge1xuXHRcdGNvbG91cjogXCIjMzc4YmJhXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMiwxNiwxNS4yODgsMi43MTJWOS4zNTZMOC42NDQsMTZsNi42NDQsNi42NDR2Ni42NDRaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzc4YmJhXFxcIi8+PHBhdGggZD1cXFwiTTEwLjU0MiwxNmw0Ljc0Ni00Ljc0NnY5LjQ5MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzNzhiYmFcXFwiLz48cGF0aCBkPVxcXCJNMzAsMTYsMTYuMjM3LDIuNzEyVjkuMzU2TDIyLjg4MSwxNmwtNi42NDQsNi42NDR2Ni42NDRaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzBiOWRiXFxcIi8+XCIsXG5cdH0sXG5cdFwiRmlyZXN0b3JlIHNlY3VyaXR5IHJ1bGVzXCI6IHtcblx0XHRjb2xvdXI6IFwiI2Y2ODIwY1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTUuOCwyNC42bC4xNy0uMjM3TDEzLjk5LDkuMTQ5bC4wMTctLjE2MS0zLjUzNS02LjY0YS42NTYuNjU2LDAsMCwwLTEuMjI3LjIwN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmMyNGFcXFwiLz48cGF0aCBkPVxcXCJNNS45LDI0LjQybC4xMjgtLjI1TDEzLjk2NSw5LjExNCwxMC40MzksMi40NDhhLjYuNiwwLDAsMC0xLjEzMy4yMDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZhNzEyXFxcIi8+PHBhdGggZD1cXFwiTTE2LjU4NCwxNC4wMWwyLjYzMi0yLjdMMTYuNTgzLDYuMjg5YS42NzguNjc4LDAsMCwwLTEuMTk1LDBMMTMuOTgxLDguOTcxVjkuMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNGJkNjJcXFwiLz48cGF0aCBkPVxcXCJNMTYuNTM3LDEzLjksMTkuMSwxMS4yOCwxNi41MzcsNi40YS41ODkuNTg5LDAsMCwwLTEuMDc0LS4wNDdMMTQuMDQ5LDkuMDgybC0uMDQyLjEzOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmE1MGVcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjUuODAyIDI0LjYwMSA1Ljg3OSAyNC41MjMgNi4xNTggMjQuNDEgMTYuNDE4IDE0LjE4OCAxNi41NDggMTMuODM0IDEzLjk4OSA4Ljk1NiA1LjgwMiAyNC42MDFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNjgyMGNcXFwiLz48cGF0aCBkPVxcXCJNMTYuOTEyLDI5Ljc1NiwyNi4yLDI0LjU3NywyMy41NDYsOC4yNDZBLjYzNS42MzUsMCwwLDAsMjIuNDcxLDcuOUw1LjgsMjQuNmw5LjIzMyw1LjE1NWExLjkyNywxLjkyNywwLDAsMCwxLjg3OCwwXFxcIiBzdHlsZT1cXFwiZmlsbDojZmRlMDY4XFxcIi8+PHBhdGggZD1cXFwiTTI2LjExNSwyNC41MzQsMjMuNDgzLDguMzI2YS41NTcuNTU3LDAsMCwwLS45NjctLjM1M0w1LjksMjQuNTY5bDkuMTMxLDUuMWExLjkxMiwxLjkxMiwwLDAsMCwxLjg2MywwWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZjY2EzZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNi45MTIsMjkuNmExLjkyNywxLjkyNywwLDAsMS0xLjg3OCwwTDUuODc2LDI0LjUyMiw1LjgsMjQuNmw5LjIzMyw1LjE1NWExLjkyNywxLjkyNywwLDAsMCwxLjg3OCwwTDI2LjIsMjQuNTc3bC0uMDIzLS4xNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZWFiMzdcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIzLjIwMSAxMyAxNS40MDUgMTYuNTM0IDE1LjQwNSAyNy42MDMgMjEuNjI1IDI0Ljc4NSAyMS42MjUgMzEgMzEgMjYuNzQzIDMxIDE2LjUzNCAyMy4yMDEgMTNcXFwiIHN0eWxlPVxcXCJmaWxsOiMyNTI1MjVcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIzLjIwMSAxNC43MyAxNi45ODUgMTcuNTQ5IDE2Ljk4NSAyMC4zMjcgMjMuMjAxIDE3LjUwNyAyOS40MjEgMjAuMzI3IDI5LjQyMSAxNy41NDkgMjMuMjAxIDE0LjczXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMy4yMDEgMTkuNTY0IDE2Ljk4NSAyMi4zODEgMTYuOTg1IDI1LjE1OCAyMy4yMDEgMjIuMzM3IDI5LjQyMSAyNS4xNTggMjkuNDIxIDIyLjM4MSAyMy4yMDEgMTkuNTY0XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyOC42MDYgMjYuMDk4IDI1LjU1MSAyNC43MTIgMjMuMjAxIDI1Ljc3OCAyMy4yMDEgMjguNTQ4IDI4LjYwNiAyNi4wOThcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0fSxcblx0XCJGbG93XCI6IHtcblx0XHRjb2xvdXI6IFwiI2ZmYjA0N1wiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTY3LjkwN1xcXCIgeTE9XFxcIi0zMDguNTUxXFxcIiB4Mj1cXFwiLTY3Ljg1N1xcXCIgeTI9XFxcIi0zMDguNTY0XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDg3LjgyMiwgMCwgMCwgLTg4LjUzMywgNTk4NC41MzIsIC0yNzI5MC42MTcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZkNDQxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZiMDQ3XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCItNjcuNjc0XFxcIiB5MT1cXFwiLTMxMC4xMjFcXFwiIHgyPVxcXCItNjcuNjQ3XFxcIiB5Mj1cXFwiLTMxMC4wNjNcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoODcuODIyLCAwLCAwLCAtODguNTMzLCA1OTY0LjY2NywgLTI3NDQzKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZDc1NFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmYjUzMlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJjXFxcIiB4MT1cXFwiLTY3LjAyOVxcXCIgeTE9XFxcIi0zMTAuOTFcXFwiIHgyPVxcXCItNjcuMDI5XFxcIiB5Mj1cXFwiLTMxMC44NlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg4Ny44MjIsIDAsIDAsIC04OC41MzMsIDU5MDIuOCwgLTI3NTE4LjczMylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmQ2NDJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmQ0NDFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmI1MzJcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZFxcXCIgeDE9XFxcIi02Ni4yNTJcXFwiIHkxPVxcXCItMzEwLjM3N1xcXCIgeDI9XFxcIi02Ni4zMlxcXCIgeTI9XFxcIi0zMTAuMzYyXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEwNi4xOTgsIDAsIDAsIC04OC41NTEsIDcwNDguNDI4LCAtMjc0NzQuMTY3KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZDQ0MVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmYTgyOVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfZmxvdzwvdGl0bGU+PHBhdGggZD1cXFwiTTIzLjQyNiwyOS40MVYyMi4xNzJoLTcuMThsNy4xOCw3LjIzOFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZGY1MTtmaWxsLW9wYWNpdHk6MC42OTk5OTk5ODgwNzkwNzFcXFwiLz48cGF0aCBkPVxcXCJNMjQuMjMxLDI1LjMwNlYxNy40NzdIMTYuNDY2bDcuNzY2LDcuODI5XFxcIiBzdHlsZT1cXFwiZmlsbDojZmY4OTAwO2ZpbGwtb3BhY2l0eTowLjY5OTk5OTk4ODA3OTA3MVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS41MTUsMjIuMTcxVjMwaDcuNzY2bC03Ljc2Ni03LjgyOVxcXCIgc3R5bGU9XFxcImZpbGwtb3BhY2l0eTowLjY5OTk5OTk4ODA3OTA3MTtmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMjIuNjA4LDE4VjExLjgwOUgxNi40NjZMMjIuNjA4LDE4XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZkZjRmO2ZpbGwtb3BhY2l0eTowLjY5OTk5OTk4ODA3OTA3MVxcXCIvPjxwYXRoIGQ9XFxcIk0yNS41MjQsMTYuNTI1VjguN0gxNy43NTlsNy43NjYsNy44MjlcXFwiIHN0eWxlPVxcXCJmaWxsLW9wYWNpdHk6MC43OTk5OTk5NTIzMTYyODQ7ZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTEyLjI4OCwyVjkuODI5aDcuNzY2TDEyLjI4OCwyXFxcIiBzdHlsZT1cXFwiZmlsbC1vcGFjaXR5OjAuODAwMDAwMDExOTIwOTI5O2ZpbGw6dXJsKCNjKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC4xMSwxNC4yNjJWNi40MzNINC43MTlsNy43MzIsNy44MywxLjY1OSwwXFxcIiBzdHlsZT1cXFwiZmlsbC1vcGFjaXR5OjAuODc5OTk5OTk1MjMxNjI4O2ZpbGw6dXJsKCNkKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC4xMSwyOS45NThWMjAuNDg3SDQuNzE5bDkuMzkxLDkuNDcxXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiNzAwO2ZpbGwtb3BhY2l0eTowLjY5OTk5OTk4ODA3OTA3MVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC4xMTIsMjIuMTE0VjE0LjI4NUg2LjM0Nmw3Ljc2Niw3LjgyOVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYjcwMDtmaWxsLW9wYWNpdHk6MC41XFxcIi8+PHBhdGggZD1cXFwiTTE2LjQ2NSwxMS44MDl2Ny44MjloNy43NjZsLTcuNzY2LTcuODI5XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZjZDI1O2ZpbGwtb3BhY2l0eTowLjY5OTk5OTk4ODA3OTA3MVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC4wOTIsMTIuNjkxVjQuODYySDYuMzI2bDcuNzY2LDcuODI5XFxcIiBzdHlsZT1cXFwiZmlsbDojZmY4OTAwO2ZpbGwtb3BhY2l0eTowLjcwMDAwMDA0NzY4MzcxNlxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4yNDYsMjIuMTcxVjMwaDcuNzY2bC03Ljc2Ni03LjgyOVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmODkwMDtmaWxsLW9wYWNpdHk6MC42OTk5OTk5ODgwNzkwNzFcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIxLjEyMiAyMi4xNzIgMTguNjA5IDE5LjYzOCAxNi40NjUgMTkuNjM4IDE2LjQ2NiAxMS44MDkgMjAuODQ3IDExLjgwOSAxOC44ODIgOS44MjkgMTQuMDkyIDkuODI5IDE0LjExIDE0LjI2MiAxNC4xMSAyMC40ODcgMTQuMTEgMzAgMTYuMjQ2IDMwIDE2LjI0NiAyMi4xNzIgMjEuMTIyIDIyLjE3MlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIkZvcnRyYW5cIjoge1xuXHRcdGNvbG91cjogXCIjNzM0Zjk2XCIsXG5cdFx0aWNvbjogXCI8ZyBpZD1cXFwiZzM3NjhcXFwiPjxyZWN0IGlkPVxcXCJyZWN0ODgxXFxcIiB4PVxcXCIyLjM0XFxcIiB5PVxcXCIyLjM0XFxcIiB3aWR0aD1cXFwiMjcuMzNcXFwiIGhlaWdodD1cXFwiMjcuMzNcXFwiIHJ4PVxcXCI1LjA4XFxcIiBzdHlsZT1cXFwiZmlsbDojNzM0Zjk2XFxcIi8+PHBhdGggaWQ9XFxcInBhdGgxNDEyXFxcIiBkPVxcXCJNNi4wNiwyNS41YzAtMS4wOSwwLTEuMTkuMS0xLjE5bDEuMjUtLjA2YzEsMCwxLjE4LS4wNiwxLjQyLS4xOWEuNzQuNzQsMCwwLDAsLjM5LS4zN2MuMTItLjIzLjEyLS4yOS4xMi03LjcyLDAtNywwLTcuNS0uMS03LjY3YTEuMDYsMS4wNiwwLDAsMC0uNjMtLjUsMTAuMjMsMTAuMjMsMCwwLDAtMS4zOC0uMWwtMS4xNywwVjUuMzJIMjUuOTR2OC44MkgyNC44OWE4LjU2LDguNTYsMCwwLDEtMS4yLS4wNWMtLjE0LDAtLjE1LS4wNS0uMjItLjk1YTEyLjczLDEyLjczLDAsMCwwLS4zNS0yLjQzLDMuMjIsMy4yMiwwLDAsMC0yLjYzLTIuODFjLS41Ny0uMS0zLjEtLjItNS4xOS0uMkgxMy44N3Y2LjYzbC43NSwwQTYuMzMsNi4zMywwLDAsMCwxNi40OSwxNGExLjg4LDEuODgsMCwwLDAsLjg5LS45MSw1Ljg2LDUuODYsMCwwLDAsLjM5LTEuNzVjMC0uMzMuMDgtLjY2LjEtLjczczAtLjEzLDEuMTgtLjEzSDIwLjJWMjEuMDZIMTcuODVsMC0uNjFhNy44NSw3Ljg1LDAsMCwwLS41NC0yLjY2Yy0uMzYtLjY4LTEuMDUtMS0yLjQ1LTEuMDhsLS43Ni0uMDctLjIsMCwwLDMuMzRjMCwzLjUxLDAsMy42NS4zLDMuOTRzLjQzLjMyLDMuMjIuNDJjLjA1LDAsLjA3LjI4LjA3LDEuMTl2MS4xOEg2LjA2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjwvZz5cIixcblx0fSxcblx0XCJGcmVlTWFya2VyIFRlbXBsYXRlIExhbmd1YWdlXCI6IHtcblx0XHRjb2xvdXI6IFwiIzAwNTBiMlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTI0LjAyMywyMC45LDI1LjQwOCwyM2w0LjYxNS03TDI1LjQwOCw5bC0xLjM4NSwyLjFMMjcuMjU1LDE2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNTBiMlxcXCIvPjxwYXRoIGQ9XFxcIk03Ljk3NywxMS4xLDYuNTkyLDksMS45NzcsMTZsNC42MTUsNywxLjM4NS0yLjFMNC43NDUsMTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1MGIyXFxcIi8+PHBhdGggZD1cXFwiTTEzLjAzNSw5aDIuOGwtLjQ5NCwyLjhoMi44TDE4LjYzNSw5aDIuOGwtLjQ5NCwyLjhoMi44bC0uNDk1LDIuOGgtMi44bC0uNDkzLDIuOGgyLjhsLS40OTQsMi44aC0yLjhMMTguOTY3LDIzaC0yLjhsLjQ5My0yLjgtMi44LDBMMTMuMzc1LDIzSDEwLjU2N2wuNDkzLTIuOC0yLjgsMCwuNDk0LTIuOGgyLjhsLjQ5My0yLjc5M2gtMi44TDkuNzQxLDExLjhoMi44Wm0xLjMxOSw4LjRoMi44bC40OTQtMi44aC0yLjhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1MGIyXFxcIi8+XCIsXG5cdH0sXG5cdFwiR2FtZU1ha2VyIExhbmd1YWdlXCI6IHtcblx0XHRjb2xvdXI6IFwiIzhiYzM0YVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE0LjIxNiwyNC4xNjdoLS45ODlhMy4yNCwzLjI0LDAsMCwxLTIuODExLTEuNjQ5TDYuNjY3LDE2bDQuNjgxLTguMTY3SDE2LjJsLTQuMzQsOC4xNzYuMDU3LjAzMkwxMy45MzYsMTkuNUgxNi44MlpNOC40NTUsMTAuNTM1bC0xLjI3LTIuMjFhMSwxLDAsMCwwLS44NTktLjQ5MkgybDQsNi45OTJaTTIxLjU0LDkuNDgyYTMuMjM5LDMuMjM5LDAsMCwwLTIuODEyLTEuNjQ5SDE3LjUyM0wxNS4wNDUsMTIuNUgxOC4wMkwyMC4wODMsMTZsLTQuNTMxLDguMTY3aDUuMDU2TDI1LjMzMywxNlpNMjYsMTcuMTcybC0yLjQ3LDQuMjcsMS4yODMsMi4yMzNhMSwxLDAsMCwwLC44NTkuNDkySDMwWlxcXCIgc3R5bGU9XFxcImZpbGw6IzhiYzM0YVxcXCIvPlwiLFxuXHR9LFxuXHRcIkctY29kZVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNiYTAwMDBcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xNy4zMzMsMTYuMzU2aDBMMTcuMzA5LDIwLjhsLTIuMS0xLjAxOC4wMjMtNC40MzdoMGwxMC41NTgtMy4wMzgsMi4xMDYsMS4wMTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGUwMDAwXFxcIi8+PHBhdGggZD1cXFwiTTI0LjQ5MiwxOC41NzZhMTQuOTA5LDE0LjkwOSwwLDAsMS0xLjM0MywzLjA3NCw3Ljg2LDcuODYsMCwwLDEtMS4zOSwxLjgyOSw2LjgsNi44LDAsMCwxLTEuNywxLjMyNCw3LjQwNSw3LjQwNSwwLDAsMS0yLjAwNi44NTUsNiw2LDAsMCwxLTMuMDcyLjIzQTQuNjY4LDQuNjY4LDAsMCwxLDEyLjQ0LDI0LjY0YTUuMzIyLDUuMzIyLDAsMCwxLS42MzYtLjYyOWwtLjUwOC0uMjQ0YTQuNzE3LDQuNzE3LDAsMCwwLC40NTcuMTgxLDUuNTIsNS41MiwwLDAsMS0xLjAxNS0xLjc1OCw4LjEzNSw4LjEzNSwwLDAsMS0uNDMtMS41MzNjLS4wMjMtLjEzMS0uMDQzLS4yMzktLjA2MS0uMzRhNy4yOTIsNy4yOTIsMCwwLDAsLjM3NywxLjM1NCw1LjgzNiw1LjgzNiwwLDAsMCwxLjYxNCwyLjMxOWMuMDYuMDU0LjEyNy4xLjE5LjE0OC4wNC4wMDguMDc4LjAyMi4xMTkuMDI5YTYuNDU0LDYuNDU0LDAsMCwwLDIuOTI4LS4yMTksOC40LDguNCwwLDAsMCwxLjkxLS44MDcsNy42NTgsNy42NTgsMCwwLDAsMS41ODktMS4yMjcsOC42NjIsOC42NjIsMCwwLDAsMS4yOS0xLjY5LDEyLjY2NywxMi42NjcsMCwwLDAsMS4wMTktMi4xOTRMMjMuMywxOWMuMDU2LS4xNTMuMDkxLS4yNTQuMDkxLS4yNTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGUwMDAwXFxcIi8+PHBhdGggZD1cXFwiTTI0LjUyNCw0LjAxM2ExMS42LDExLjYsMCwwLDAtNi41ODgtMS45OTQsMTMuOCwxMy44LDAsMCwwLTkuMzczLDQuODRBMTguMjQzLDE4LjI0MywwLDAsMCw0LDE4LjhjLjAyMSwzLjg1MSwxLjQ4MSw3LjgwNiw1LjExMiw5LjU3NWExMy41NjMsMTMuNTYzLDAsMCwwLDQuMTU5LDEuNTY0LDEyLjExNCwxMi4xMTQsMCwwLDAsNi44NjktMS41MjljLTIuNzM0LDEuMzMzLTYuMTIsMS45OTMtOC44OTQuNC0yLjY4OS0xLjU0My0zLjk4My00LjcyNC00LjIyMS03LjctLjUxMi02LjQsMy4xLTEzLjY0LDkuMTMyLTE2LjI4MSwzLjUxMi0xLjUzNyw3LjMwNy0xLjU4NSwxMC4yMzksMS4xQzI2LjcyNyw1LjI0NCwyNSw0LjMwNSwyNC41MjQsNC4wMTNabS0xNC4zNTksMjQuOC0uMTM4LS4wOTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGUwMDAwXFxcIi8+PHBhdGggZD1cXFwiTTIyLjUyOSwyNi43ODhjLTMuMDQ0LDIuNTgyLTcuOTIsNC4xNDktMTEuNTU0LDEuODU3QzcuMjQsMjYuMjg5LDYuNTMsMjEuMDg5LDcuMjEyLDE3LjA4M2ExNy4yMTgsMTcuMjE4LDAsMCwxLDYuNy0xMC45N2MzLjc3MS0yLjYzNiw4Ljg4LTMuNDksMTIuNDg5LS4xODJsLTIuMjcsMy4yOTFjLTIuNTEtMi4zNTUtNi4zLTEuOTU2LTguOTQ1LS4wNTJBMTIuNDM0LDEyLjQzNCwwLDAsMCwxMC41LDE2LjJjLS42NjIsMi42MjMtLjUsNi4wMTEsMS41LDguMDQ3LDIuMDg4LDIuMTI5LDUuMTEyLDIuMTE2LDcuNjU2LjhBMTAuMzM0LDEwLjMzNCwwLDAsMCwyNC41LDE4LjYzNkwxNy4zMDcsMjAuOGwuMDIyLTQuNDM4TDI3Ljg5LDEzLjMxOWwuMS44MDZoMEExNi42MjUsMTYuNjI1LDAsMCwxLDIyLjUyOSwyNi43ODhaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmEwMDAwXFxcIi8+XCIsXG5cdH0sXG5cdFwiR0RTY3JpcHRcIjoge1xuXHRcdGNvbG91cjogXCIjNDc4Y2JmXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjguMTY2LDIxLjAyOXYxLjY1MmEuMzc0LjM3NCwwLDAsMS0uMjYuMzU3bC0yLjYuODQxYS4zNjcuMzY3LDAsMCwxLS4zMzUtLjA1NC4zNzQuMzc0LDAsMCwxLS4xNTUtLjN2LTEuOGwtMi40MzguNDY0VjI0LjAyYS4zNzUuMzc1LDAsMCwxLS4zMjUuMzcxbC0zLjUyNS40ODNjLS4wMTYsMC0uMDM0LDAtLjA1MSwwQS4zNzQuMzc0LDAsMCwxLDE4LjEsMjQuNVYyMi41NTdsLTEuODE5LjAwOGgtLjI2N2wtMS44MTktLjAwOFYyNC41YS4zNzUuMzc1LDAsMCwxLS4zNzUuMzc2Yy0uMDE3LDAtLjAzNCwwLS4wNTIsMGwtMy41MjUtLjQ4M2EuMzc1LjM3NSwwLDAsMS0uMzI0LS4zNzFWMjIuMTg0bC0yLjQzOS0uNDY0djEuOGEuMzc0LjM3NCwwLDAsMS0uMTU0LjMuMzcuMzcsMCwwLDEtLjMzNi4wNTRsLTIuNi0uODQxYS4zNzQuMzc0LDAsMCwxLS4yNTktLjM1N1YyMS4wMjlsLTEuNjA4LS41NDFhNC41NTgsNC41NTgsMCwwLDAtLjEyNCwxLjA0YzAsNC4zMTcsNi4wODIsNy42NSwxMy42LDcuNjc0aC4wMTljNy41MTctLjAyNCwxMy42LTMuMzU2LDEzLjYtNy42NzRhNC41NCw0LjU0LDAsMCwwLS4xLS45NVpcXFwiIGZpbGw9XFxcIiM0NzhjYmZcXFwiLz48cGF0aCBkPVxcXCJNMy43MTEsMTMuMzczVjIwLjFsLjkwNy4zMDZhLjM3NC4zNzQsMCwwLDEsLjI1Ni4zNTV2MS42NWwxLjg1NS42VjIxLjI2N2EuMzc2LjM3NiwwLDAsMSwuNDQ1LS4zNjlsMy4xODkuNjA5YS4zNzQuMzc0LDAsMCwxLC4zMDUuMzY4djEuODE4bDIuNzc1LjM3OXYtMS44OWEuMzc0LjM3NCwwLDAsMSwuMzc2LS4zNzVoMGwyLjMyNy4wMDksMi4zMjYtLjAwOWEuMzc0LjM3NCwwLDAsMSwuMzc3LjM3NXYxLjg5bDIuNzc1LS4zNzlWMjEuODc0YS4zNzMuMzczLDAsMCwxLC4zLS4zNjhsMy4xODktLjYwOWEuMzc3LjM3NywwLDAsMSwuNDQ2LjM2OXYxLjc0MWwxLjg1NS0uNlYyMC43NmEuMzc0LjM3NCwwLDAsMSwuMjU1LS4zNTVsLjYxOC0uMjA4VjEzLjM3M2guMDE3QTI2Ljc5MiwyNi43OTIsMCwwLDAsMzAsMTAuOTMxYTE5LjAyLDE5LjAyLDAsMCwwLTIuNTA5LTMuMjg4QTI0LjUwNywyNC41MDcsMCwwLDAsMjUsOS4wOTFhMTMuMDEsMTMuMDEsMCwwLDAtMS4yNzktMS4wNTIsMTUuMzY1LDE1LjM2NSwwLDAsMC0xLjM3NS0uODk0LDI4LjM1MywyOC4zNTMsMCwwLDAsLjIzMi0zLjA3MUExNS45NjgsMTUuOTY4LDAsMCwwLDE4Ljg0NywyLjhhMjYuNDQsMjYuNDQsMCwwLDAtMS4zODUsMi43LDkuNDYsOS40NiwwLDAsMC0xLjQ1My0uMTE2aC0uMDE4YTkuNDU3LDkuNDU3LDAsMCwwLTEuNDU0LjExNiwyNi4yNzUsMjYuMjc1LDAsMCwwLTEuMzg1LTIuN0ExNS45NjEsMTUuOTYxLDAsMCwwLDkuNDIyLDQuMDc1YTI4LjE0MiwyOC4xNDIsMCwwLDAsLjIzMiwzLjA3MSwxNS4zMTIsMTUuMzEyLDAsMCwwLTEuMzc2Ljg5NEExMy4wNiwxMy4wNiwwLDAsMCw3LDkuMDkxYTI0LjU1MywyNC41NTMsMCwwLDAtMi40OS0xLjQ0OEExOS4wMiwxOS4wMiwwLDAsMCwyLDEwLjkzMWEyNi43OTIsMjYuNzkyLDAsMCwwLDEuNjk0LDIuNDQzWlxcXCIgZmlsbD1cXFwiIzQ3OGNiZlxcXCIvPjxwYXRoIGQ9XFxcIm0xMi40NjIgMTYuNmEyLjczOSAyLjczOSAwIDEgMS0yLjc0LTIuNzM4IDIuNzM5IDIuNzM5IDAgMCAxIDIuNzQgMi43MzhcXFwiIGZpbGw9XFxcIiNmZmZcXFwiLz48cGF0aCBkPVxcXCJtMTEuOCAxNi43NjRhMS44MTkgMS44MTkgMCAxIDEtMS44MTktMS44MTkgMS44MTcgMS44MTcgMCAwIDEgMS44MTkgMS44MTlcXFwiIGZpbGw9XFxcIiM0MTQwNDJcXFwiLz48cGF0aCBkPVxcXCJNMTYuMTY2LDE5LjU5YS44NDQuODQ0LDAsMCwxLS44ODItLjhWMTYuMjY3YS44ODYuODg2LDAsMCwxLDEuNzY0LDB2Mi41MjJhLjg0NS44NDUsMCwwLDEtLjg4My44XFxcIiBmaWxsPVxcXCIjZmZmXFxcIi8+PHBhdGggZD1cXFwibTE5Ljg3MSAxNi42YTIuNzM5IDIuNzM5IDAgMSAwIDIuNzQtMi43MzggMi43MzkgMi43MzkgMCAwIDAtMi43NCAyLjczOFxcXCIgZmlsbD1cXFwiI2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIm0yMC41MzEgMTYuNzY0YTEuODE4IDEuODE4IDAgMSAwIDEuODE3LTEuODE5IDEuODE3IDEuODE3IDAgMCAwLTEuODE3IDEuODE5XFxcIiBmaWxsPVxcXCIjNDE0MDQyXFxcIi8+XCIsXG5cdH0sXG5cdFwiR2l0XCI6IHtcblx0XHRjb2xvdXI6IFwiI2RkNGMzNVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTI5LjQ3MiwxNC43NTMsMTcuMjQ3LDIuNTI4YTEuOCwxLjgsMCwwLDAtMi41NSwwTDEyLjE1OCw1LjA2N2wzLjIyLDMuMjJhMi4xNDEsMi4xNDEsMCwwLDEsMi43MTIsMi43M2wzLjEsMy4xYTIuMTQzLDIuMTQzLDAsMSwxLTEuMjg1LDEuMjFsLTIuODk1LTIuODk1djcuNjE3YTIuMTQxLDIuMTQxLDAsMSwxLTEuNzY0LS4wNjJWMTIuM2EyLjE0NiwyLjE0NiwwLDAsMS0xLjE2NS0yLjgxNEwxMC45MTEsNi4zMTQsMi41MjgsMTQuN2ExLjgsMS44LDAsMCwwLDAsMi41NTFMMTQuNzUzLDI5LjQ3MmExLjgsMS44LDAsMCwwLDIuNTUsMEwyOS40NzIsMTcuM2ExLjgsMS44LDAsMCwwLDAtMi41NTFcXFwiIHN0eWxlPVxcXCJmaWxsOiNkZDRjMzVcXFwiLz48cGF0aCBkPVxcXCJNMTIuMTU4LDUuMDY3bDMuMjIsMy4yMmEyLjE0MSwyLjE0MSwwLDAsMSwyLjcxMiwyLjczbDMuMSwzLjFhMi4xNDMsMi4xNDMsMCwxLDEtMS4yODUsMS4yMWwtMi44OTUtMi44OTV2Ny42MTdhMi4xNDEsMi4xNDEsMCwxLDEtMS43NjQtLjA2MlYxMi4zYTIuMTQ2LDIuMTQ2LDAsMCwxLTEuMTY1LTIuODE0TDEwLjkxMSw2LjMxNFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIkdMU0xcIjoge1xuXHRcdGNvbG91cjogXCIjNDM4NmI1XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNNy43NzksMTguOTIzQTIuMzMzLDIuMzMzLDAsMCwxLDUuNCwxNy4xNmMuMzA2LDEuNDYyLDEuOTYxLDIuODkyLDcuMTgzLDMuNTI5YTE0LjIyOCwxNC4yMjgsMCwwLDAsOS4yMzItMS42MTJzLjczMy0uMzIyLjI5My4xNzZjMCwwLTMuMTA3LDIuODczLTkuMiwyLjlTMS45NywxOS4xMDcsMiwxNmMtLjAyOS0zLjEwNyw0LjgwNi02LjE4NSwxMC45LTYuMTU1czkuMiwyLjksOS4yLDIuOWMuNDQuNS0uMjkzLjE3Ni0uMjkzLjE3Ni0xLjA4NC0uNy00LjI4Ni0yLjA4OS05LjIzMi0xLjYxMi00Ljg2Ni40NjktNi40NTMsMi4xMjItNi45ODEsMy4yMzVhMy4yNTQsMy4yNTQsMCwwLDAtLjMxOCwxLjI0LDIuNDI0LDIuNDI0LDAsMCwxLDIuNS0yLjMxNkEyLjUwNywyLjUwNywwLDAsMSwxMC4zLDE2LjE5NSwyLjUwNiwyLjUwNiwwLDAsMSw3Ljc3OSwxOC45MlptMTkuNjQ3LTEuMDc0SDMwdi45MzdIMjYuMzQ0VjEzLjYwOWgxLjA4MnY0LjI0Wk0yMy40NTQsMTZoMi4xNjN2Mi43OTFIMjQuOWwtLjEwOC0uNjQ5YTEuOSwxLjksMCwwLDEtMS42MTQuNzg2LDIuNDE0LDIuNDE0LDAsMCwxLTIuMzc5LTIuNzExLDIuNDg1LDIuNDg1LDAsMCwxLDIuNTMxLTIuNzRBMi4wNTMsMi4wNTMsMCwwLDEsMjUuNiwxNS4yMTdIMjQuNTE1YTEuMTM2LDEuMTM2LDAsMCwwLTEuMTMyLS44NTFjLS43NzEsMC0xLjQ4NS41MzQtMS40ODUsMS44NiwwLDEuNDEzLjc3MSwxLjc4MSwxLjUwNiwxLjc4MWExLjI4LDEuMjgsMCwwLDAsMS4yNTQtMS4xMzloLTEuMlYxNlpNNy43ODEsMTQuMWExLjg2LDEuODYsMCwwLDAtMS44LDIuMTA1LDEuODYsMS44NiwwLDAsMCwxLjgsMi4xMDUsMS44NiwxLjg2LDAsMCwwLDEuOC0yLjEwNUExLjg2LDEuODYsMCwwLDAsNy43ODEsMTQuMVptMi45MTEsMS4zODNoLjUyNXYuNDY4aC4wMTNhMS4xMiwxLjEyLDAsMCwxLC45ODctLjU2MywxLjU2NSwxLjU2NSwwLDAsMSwxLjUwNiwxLjY3NywxLjY3NSwxLjY3NSwwLDAsMS0xLjU4MywxLjgyNCwxLDEsMCwwLDEtLjg4LS40NDNoLS4wMTNWMjAuMWgtLjU1N1YxNS40NzlaTTEyLjEsMTguNGMuNjA4LDAsMS4wMTktLjUyNywxLjAxOS0xLjI1NCwwLS40MjQtLjE3MS0xLjI2NC0xLjAzMi0xLjI2NC0uOCwwLS44OTMuODY3LS44OTMsMS40MDYsMCwuODguNTUxLDEuMTE0LjkwNSwxLjExNFptNS0uNjUyYTEuMzc4LDEuMzc4LDAsMCwxLTEuNDg4LDEuMTMzLDEuNDg3LDEuNDg3LDAsMCwxLTEuNDgyLTEuNjU4YzAtMS4wMjUuNDk0LTEuODQyLDEuNTg4LTEuODQyLjk1NiwwLDEuNDI0Ljc2LDEuNDI0LDEuOTMxSDE0LjcyMWMwLC42OS4zMjMsMS4wODkuOTYyLDEuMDg5YS44NDEuODQxLDAsMCwwLC44NTQtLjY1MkgxNy4xWm0tLjU5LS44OGMtLjAzMi0uNTEzLS4yNDctLjk4Ny0uOTI0LS45ODdhLjk3Mi45NzIsMCwwLDAtLjkxOC45ODdoMS44NDJabTMuNzEzLDEuOTE3aC0uNTU3VjE2Ljc1MWMwLS41NzYtLjE2NS0uODY3LS43MDktLjg2Ny0uMzE3LDAtLjg3NC4yLS44NzQsMS4xdjEuOGgtLjU1N1YxNS40NzloLjUyNXYuNDY4aC4wMTNhMS4yLDEuMiwwLDAsMSwxLS41NjMsMS4wNDYsMS4wNDYsMCwwLDEsMS4xNTgsMS4xNTJ2Mi4yNTNcXFwiIHN0eWxlPVxcXCJmaWxsOiM0Mzg2YjVcXFwiLz5cIixcblx0fSxcblx0XCJHbyBtb2R1bGVcIjoge1xuXHRcdGNvbG91cjogXCIjY2UzMjYyXCIsXG5cdFx0aWNvbjogXCI8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDI1NC41IDIyNVxcXCI+PHRpdGxlPmZpbGVfdHlwZV9nb19wYWNrYWdlPC90aXRsZT48cGF0aCBkPVxcXCJNNjEuOTQ5LDEzLjA2OGMxNi4wNi0uMTQ3LDMyLjE0MywwLDQ4LjIxMS0uMDYyLTMuODEsMTYuNDA4LTcuNDY2LDMyLjg2Mi0xMS4yNjEsNDkuMjc3SDI1LjU0OGMtMi4zMTksMC00LjYzNy4wNzctNi45NTYtLjA5M0MzMyw0NS43NzUsNDcuNTY2LDI5LjUsNjEuOTQ5LDEzLjA2OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMmU2YzlcXFwiLz48cGF0aCBkPVxcXCJNMTQzLjUwOSwxMy4wMTRoNDguMDcyYzE0LjQzNywxNi40MzEsMjkuMDEzLDMyLjcyMyw0My40MTEsNDkuMTc3LTkuMjc0LjE5My0xOC41NDksMC0yNy44MjMuMDg1SDE1NC42NTRDMTUxLjAwNiw0NS44MzcsMTQ3LjExMSwyOS40NiwxNDMuNTA5LDEzLjAxNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMmU2YzlcXFwiLz48cGF0aCBkPVxcXCJNMTEwLjE2LDEzLjAxNGgzMy4zNDljMy42LDE2LjQ0Niw3LjQ4OSwzMi44MjMsMTEuMTYsNDkuMjU0SDk4LjlDMTAyLjY5NCw0NS44NjgsMTA2LjM1LDI5LjQyMiwxMTAuMTYsMTMuMDE0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VmYzc1ZVxcXCIvPjxwYXRoIGQ9XFxcIk0xOC41OTIsNjIuMTgzYzIuMzE5LjE3LDQuNjM3LjA4NSw2Ljk1Ni4wOTNIOTguOXEwLDI2LjAyNi4wNTQsNTIuMDUyYTE4Ljg1NywxOC44NTcsMCwwLDAsMS45NzkuMTM5aDUyLjExNGExNC42OTMsMTQuNjkzLDAsMCwwLDEuNTQ2LS4xMDhjLjE0Ny0xNy4zNjYsMC0zNC43MzIuMDctNTIuMWg1Mi41MTZjOS4yNzQtLjA0NiwxOC41NDkuMTA4LDI3LjgyMy0uMDg1VjIxMi42MkgxOC42UTE4LjU5MiwxMzcuNDA1LDE4LjU5Miw2Mi4xODNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZTdiZjU1XFxcIi8+PHBhdGggZD1cXFwiTTk4LjksNjIuMjkxaDU1Ljc2OWMtLjA2MiwxNy4zNjYuMDg1LDM0LjczMi0uMDcsNTIuMS0uNTE4LjA1NC0xLjAzNi4wOTMtMS41NDYuMTA4SDEwMC45NGExOC44NTcsMTguODU3LDAsMCwxLTEuOTcxLS4xMzFDOTguODYxLDk2Ljk5Myw5OC45NjksNzkuNjM0LDk4LjksNjIuMjkxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2RiYjU1MVxcXCIvPjxyZWN0IHg9XFxcIjM0LjM4OVxcXCIgeT1cXFwiMTYzLjY4MlxcXCIgd2lkdGg9XFxcIjcyLjQxN1xcXCIgaGVpZ2h0PVxcXCIyNy44ODVcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMmYyZjJcXFwiLz48cGF0aCBkPVxcXCJNNjEuNDIyLDEzNy4wODVjLS4zODgsMC0uNDg3LS4xOTQtLjI5MS0uNDg3bDIuMDQxLTIuNjI1YTEuMzkzLDEuMzkzLDAsMCwxLDEuMDY5LS40ODdoMzQuN2MuMzg4LDAsLjQ4Ny4yOTEuMjkxLjU4NEw5Ny41ODIsMTM2LjZhMS40ODEsMS40ODEsMCwwLDEtLjk3Mi41ODRaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2UzMjYyXFxcIi8+PHBhdGggZD1cXFwiTTQ2Ljc0LDE0Ni4wMjhjLS4zODgsMC0uNDg3LS4xOTQtLjI5MS0uNDg3bDIuMDQxLTIuNjI1YTEuMzkzLDEuMzkzLDAsMCwxLDEuMDY5LS40ODdIOTMuODlhLjQ0Ny40NDcsMCwwLDEsLjQ4Ny41ODRsLS43NzgsMi4zMzNhLjg1Ljg1LDAsMCwxLS44NzUuNTg0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NlMzI2MlxcXCIvPjxwYXRoIGQ9XFxcIk03MC4yNjQsMTU0Ljk3MWMtLjM4OCwwLS40ODctLjI5MS0uMjkxLS41ODRsMS4zNTctMi40M2ExLjI4OSwxLjI4OSwwLDAsMSwuOTcyLS41ODRIOTEuNzQ3Yy4zODgsMCwuNTg0LjI5MS41ODQuNjgxbC0uMTk0LDIuMzMzYS43MzEuNzMxLDAsMCwxLS42ODEuNjgxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2NlMzI2MlxcXCIvPjxwYXRoIGQ9XFxcIk0xNzEuMTYzLDEzNS4zMzVjLTYuMTI0LDEuNTU2LTEwLjMsMi43MjItMTYuMzMsNC4yOC0xLjQ2Mi4zODgtMS41NTYuNDg3LTIuODE5LS45NzJhMTMuMDExLDEzLjAxMSwwLDAsMC00LjU2OS0zLjY5NGMtNi4xMjQtMy4wMTMtMTIuMDU0LTIuMTM4LTE3LjU5NCwxLjQ2MmEyMC42NzEsMjAuNjcxLDAsMCwwLTkuOTE4LDE4LjQ2OSwxNS4yNDIsMTUuMjQyLDAsMCwwLDEzLjEyMywxNS4yNjFjNi42MS44NzUsMTIuMTUxLTEuNDYyLDE2LjUyNS02LjQxNS44NzUtMS4wNjksMS42NTMtMi4yMzYsMi42MjUtMy42SDEzMy40NDZjLTIuMDQxLDAtMi41MjgtMS4yNjMtMS44NDctMi45MTYsMS4yNjMtMy4wMTMsMy42LTguMDY4LDQuOTU4LTEwLjZhMi42MjUsMi42MjUsMCwwLDEsMi40My0xLjU1NmgzNS4zODRjLS4xOTQsMi42MjUtLjE5NCw1LjI0OS0uNTg0LDcuODc0YTQxLjQ1Niw0MS40NTYsMCwwLDEtNy45NjcsMTkuMDQyYy02Ljk5NSw5LjIzNC0xNi4xMzYsMTQuOTctMjcuNywxNi41MjUtOS41MjYsMS4yNjMtMTguMzc0LS41ODQtMjYuMTQ4LTYuNDE1QTMwLjUzMywzMC41MzMsMCwwLDEsOTkuNjI1LDE2MC41MWMtMS4yNjMtMTAuNiwxLjg0Ny0yMC4xMjIsOC4yNjItMjguNDgxQTQzLjEzNyw0My4xMzcsMCwwLDEsMTM1LjEsMTE1LjIxMmM5LjEzNy0xLjY1MywxNy44ODYtLjU4NCwyNS43Niw0Ljc2M0EzMC40NzEsMzAuNDcxLDAsMCwxLDE3Mi4xNCwxMzMuNjhDMTcyLjcxOSwxMzQuNTU4LDE3Mi4zMywxMzUuMDQ0LDE3MS4xNjMsMTM1LjMzNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZTMyNjJcXFwiLz48cGF0aCBkPVxcXCJNMjAzLjMzOCwxODkuMDljLTguODQ2LS4xOTQtMTYuOTEzLTIuNzIyLTIzLjcxOS04LjU1NGEzMC40ODUsMzAuNDg1LDAsMCwxLTEwLjUtMTguNzYxYy0xLjc1LTEwLjk4NCwxLjI2My0yMC43LDcuODc0LTI5LjM1Niw3LjEtOS4zMzEsMTUuNjUxLTE0LjE5MiwyNy4yMTgtMTYuMjMzLDkuOTE4LTEuNzUsMTkuMjQ3LS43NzgsMjcuNyw0Ljk1OCw3LjY4LDUuMjQ5LDEyLjQ0MiwxMi4zNDUsMTMuNzA2LDIxLjY3NiwxLjY1MywxMy4xMjMtMi4xMzgsMjMuODE2LTExLjE3OSwzMi45NTNhNDQuNTQyLDQ0LjU0MiwwLDAsMS0yMy4zMjksMTIuNDQyQzIwOC40OSwxODguNywyMDUuODY2LDE4OC44LDIwMy4zMzgsMTg5LjA5Wm0yMy4xMzUtMzkuMjcxYTI3Ljk3OCwyNy45NzgsMCwwLDAtLjI5MS0zLjIwOCwxNi4wMTMsMTYuMDEzLDAsMCwwLTE4LjM3NS0xMy4yMzVxLS43MzQuMTE5LTEuNDU0LjMwNmMtOS4wNCwyLjA0MS0xNC44NzMsNy43NzctMTcuMDExLDE2LjkxM2ExNi4wMDksMTYuMDA5LDAsMCwwLDguOTQzLDE4LjM3NCwxNy44MiwxNy44MiwwLDAsMCwxNS44NDUtLjU4NGM3LjY3OS0zLjk4NSwxMS44NTktMTAuMjA2LDEyLjM0OC0xOC41NjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2UzMjYyXFxcIi8+PC9zdmc+XCIsXG5cdH0sXG5cdFwiR29cIjoge1xuXHRcdGNvbG91cjogXCIjMDBhY2Q3XCIsXG5cdFx0aWNvbjogXCI8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDI1NC41IDIyNVxcXCI+PHRpdGxlPmZpbGVfdHlwZV9nbzwvdGl0bGU+PHBhdGggZD1cXFwiTS00Ni45MjYsODljLS42MjEsMC0uNzc3LS4zMTEtLjQ2Ni0uNzc3bDMuMjYyLTQuMTk0YTIuMjI1LDIuMjI1LDAsMCwxLDEuNzA4LS43NzdIMTMuMDI2Yy42MjEsMCwuNzc3LjQ2Ni40NjYuOTMybC0yLjY0LDQuMDM4YTIuMzY3LDIuMzY3LDAsMCwxLTEuNTUzLjkzMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGFjZDdcXFwiLz48cGF0aCBkPVxcXCJNLTcwLjM3OSwxMDMuMjg1Yy0uNjIxLDAtLjc3Ny0uMzExLS40NjYtLjc3N2wzLjI2Mi00LjE5NGEyLjIyNSwyLjIyNSwwLDAsMSwxLjcwOC0uNzc3SDQuOTVhLjcxNC43MTQsMCwwLDEsLjc3Ny45MzJMNC40ODQsMTAyLjJhMS4zNTgsMS4zNTgsMCwwLDEtMS40LjkzMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGFjZDdcXFwiLz48cGF0aCBkPVxcXCJNLTMyLjc5MiwxMTcuNTc0Yy0uNjIxLDAtLjc3Ny0uNDY2LS40NjYtLjkzMmwyLjE3NC0zLjg4M2EyLjA2LDIuMDYsMCwwLDEsMS41NTMtLjkzMkgxLjUzM2MuNjIxLDAsLjkzMi40NjYuOTMyLDEuMDg3bC0uMzExLDMuNzI4YTEuMTY3LDEuMTY3LDAsMCwxLTEuMDg3LDEuMDg3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYWNkN1xcXCIvPjxwYXRoIGQ9XFxcIk0xMjguNDI2LDg2LjJjLTkuNzg1LDIuNDg1LTE2LjQ2NCw0LjM0OS0yNi4wOTMsNi44MzQtMi4zMy42MjEtMi40ODUuNzc3LTQuNS0xLjU1My0yLjMzLTIuNjQtNC4wMzgtNC4zNDktNy4zLTUuOS05Ljc4NS00LjgxNS0xOS4yNTktMy40MTctMjguMTEyLDIuMzMtMTAuNTYxLDYuODM0LTE2LDE2LjkyOS0xNS44NDIsMjkuNTEuMTU1LDEyLjQyNSw4LjcsMjIuNjc2LDIwLjk2OCwyNC4zODUsMTAuNTYxLDEuNCwxOS40MTQtMi4zMywyNi40LTEwLjI1MSwxLjQtMS43MDgsMi42NC0zLjU3Miw0LjE5NC01Ljc0N0g2OC4xNjNjLTMuMjYyLDAtNC4wMzgtMi4wMTktMi45NTEtNC42NTksMi4wMTktNC44MTUsNS43NDctMTIuODkxLDcuOTIxLTE2LjkyOWE0LjE5NCw0LjE5NCwwLDAsMSwzLjg4My0yLjQ4NWg1Ni41MzVjLS4zMTEsNC4xOTQtLjMxMSw4LjM4Ny0uOTMyLDEyLjU4MWE2Ni4yMzksNjYuMjM5LDAsMCwxLTEyLjczNiwzMC40NDJDMTA4LjcsMTU5LjUxLDk0LjEsMTY4LjY3Myw3NS42MTgsMTcxLjE1OGMtMTUuMjIxLDIuMDE5LTI5LjM1NS0uOTMyLTQxLjc4LTEwLjI1MWE0OC43ODUsNDguNzg1LDAsMCwxLTE5LjcyNS0zNC40OGMtMi4wMTktMTYuOTI5LDIuOTUxLTMyLjE1LDEzLjItNDUuNTA4QzM4LjM0Miw2Ni40NzUsNTIuOTQyLDU3LjMxMiw3MC44LDU0LjA1YzE0LjYtMi42NCwyOC41NzgtLjkzMiw0MS4xNTksNy42MWE0OC42ODYsNDguNjg2LDAsMCwxLDE4LjAxNywyMS45QzEzMC45MTEsODQuOTU4LDEzMC4yODksODUuNzM1LDEyOC40MjYsODYuMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGFjZDdcXFwiLz48cGF0aCBkPVxcXCJNMTc5LjgzNSwxNzIuMDljLTE0LjEzNC0uMzExLTI3LjAyNS00LjM0OS0zNy45LTEzLjY2OGE0OC43MTEsNDguNzExLDAsMCwxLTE2Ljc3NC0yOS45NzZjLTIuOC0xNy41NTEsMi4wMTktMzMuMDgyLDEyLjU4MS00Ni45MDUsMTEuMzM4LTE0LjkxLDI1LjAwNi0yMi42NzYsNDMuNDg4LTI1LjkzOCwxNS44NDItMi44LDMwLjc1My0xLjI0Myw0NC4yNjUsNy45MjEsMTIuMjcsOC4zODcsMTkuODgsMTkuNzI1LDIxLjksMzQuNjM1LDIuNjQsMjAuOTY4LTMuNDE3LDM4LjA1Mi0xNy44NjEsNTIuNjUyYTcxLjE3LDcxLjE3LDAsMCwxLTM3LjI3NiwxOS44OEMxODguMDY3LDE3MS40NjksMTgzLjg3NCwxNzEuNjI0LDE3OS44MzUsMTcyLjA5Wk0yMTYuOCwxMDkuMzQzYTQ0LjcsNDQuNywwLDAsMC0uNDY2LTUuMTI1Yy0yLjgtMTUuMzc2LTE2LjkyOS0yNC4wNzQtMzEuNjg0LTIwLjY1Ny0xNC40NDQsMy4yNjItMjMuNzYzLDEyLjQyNS0yNy4xOCwyNy4wMjVhMjUuNTc5LDI1LjU3OSwwLDAsMCwxNC4yODksMjkuMzU1YzguNTQyLDMuNzI4LDE3LjA4NSwzLjI2MiwyNS4zMTctLjkzMkMyMDkuMzQ1LDEzMi42NCwyMTYuMDI0LDEyMi43LDIxNi44LDEwOS4zNDNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBhY2Q3XFxcIi8+PC9zdmc+XCIsXG5cdH0sXG5cdFwiR3JhZGxlXCI6IHtcblx0XHRjb2xvdXI6IFwiIzAwNjUzM1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTEzLjUsNi45NjVoNy45MjNsNCw2Ljg4N0gyOS45OEExNC4xLDE0LjEsMCwwLDAsMTEuMDI0LDIuOTMyTDEzLjUsNi45NjVcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDY1MzNcXFwiLz48cGF0aCBkPVxcXCJNMjUuNjI4LDE4bC00LjIwOSw3LjI1MkgxMC44MDZMNS41LDE2LjEwOCw5LjczOSw4LjgsNy40LDQuOTgxQTE0LjAzLDE0LjAzLDAsMSwwLDMwLDE4SDI1LjYyOFxcXCIgc3R5bGU9XFxcImZpbGw6IzgyYjgxNlxcXCIvPjxwYXRoIGQ9XFxcIk0yMS4wNjEsMTUuOTYzYTUuMDI2LDUuMDI2LDAsMSwxLTUuMDI2LTUsNS4wMTMsNS4wMTMsMCwwLDEsNS4wMjYsNVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNjUzMlxcXCIvPlwiLFxuXHR9LFxuXHRcIkdyYXBoUUxcIjoge1xuXHRcdGNvbG91cjogXCIjZTEwMDk4XCIsXG5cdFx0aWNvbjogXCI8cmVjdCB4PVxcXCItMC40M1xcXCIgeT1cXFwiMTIuNTM0XFxcIiB3aWR0aD1cXFwiMjIuOTAxXFxcIiBoZWlnaHQ9XFxcIjEuMTg3XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtNS44NTggMTYuMTA3KSByb3RhdGUoLTU5Ljk5OSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cmVjdCB4PVxcXCI0LjU0NVxcXCIgeT1cXFwiMjEuMTYyXFxcIiB3aWR0aD1cXFwiMjIuOTAyXFxcIiBoZWlnaHQ9XFxcIjEuMTg3XFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHJlY3QgeD1cXFwiMTAuNDNcXFwiIHk9XFxcIjE4LjAwOFxcXCIgd2lkdGg9XFxcIjEuMTg3XFxcIiBoZWlnaHQ9XFxcIjEzLjIyN1xcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTE1LjgxMiAyMS44NTcpIHJvdGF0ZSgtNTkuOTk5KVxcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxyZWN0IHg9XFxcIjIwLjM4MVxcXCIgeT1cXFwiMC43NzFcXFwiIHdpZHRoPVxcXCIxLjE4N1xcXCIgaGVpZ2h0PVxcXCIxMy4yMjdcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDQuMDkyIDIxLjg1Nikgcm90YXRlKC01OS45OTkpXFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHJlY3QgeD1cXFwiNC40MTJcXFwiIHk9XFxcIjYuNzg3XFxcIiB3aWR0aD1cXFwiMTMuMjI3XFxcIiBoZWlnaHQ9XFxcIjEuMTg3XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMi4yMTMgNi41MDIpIHJvdGF0ZSgtMzAuMDAxKVxcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxyZWN0IHg9XFxcIjIwLjM4OVxcXCIgeT1cXFwiMS42NzdcXFwiIHdpZHRoPVxcXCIxLjE4N1xcXCIgaGVpZ2h0PVxcXCIyMi45MDFcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0zLjc1MyAxMi4yNSkgcm90YXRlKC0zMC4wMDEpXFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHJlY3QgeD1cXFwiNS40NTRcXFwiIHk9XFxcIjkuMzg2XFxcIiB3aWR0aD1cXFwiMS4xODdcXFwiIGhlaWdodD1cXFwiMTMuMjI4XFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHJlY3QgeD1cXFwiMjUuMzZcXFwiIHk9XFxcIjkuMzg2XFxcIiB3aWR0aD1cXFwiMS4xODdcXFwiIGhlaWdodD1cXFwiMTMuMjI4XFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHJlY3QgeD1cXFwiMTUuMjIyXFxcIiB5PVxcXCIyNC4wOTdcXFwiIHdpZHRoPVxcXCIxMS41MDRcXFwiIGhlaWdodD1cXFwiMS4wMzdcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC05LjQ5OCAxMy43ODUpIHJvdGF0ZSgtMzAuMDAxKVxcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxwYXRoIGQ9XFxcIk0yOC4xMiwyM2EyLjUsMi41LDAsMSwxLS45MTUtMy40MTFBMi41LDIuNSwwLDAsMSwyOC4xMiwyM1xcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxwYXRoIGQ9XFxcIk04LjIsMTEuNWEyLjUsMi41LDAsMSwxLS45MTUtMy40MTFBMi41LDIuNSwwLDAsMSw4LjIsMTEuNVxcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxwYXRoIGQ9XFxcIk0zLjg4LDIzYTIuNSwyLjUsMCwxLDEsMy40MTEuOTE1QTIuNSwyLjUsMCwwLDEsMy44OCwyM1xcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxwYXRoIGQ9XFxcIk0yMy44LDExLjVhMi41LDIuNSwwLDEsMSwzLjQxMS45MTVBMi41LDIuNSwwLDAsMSwyMy44LDExLjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cGF0aCBkPVxcXCJNMTYsMzBhMi41LDIuNSwwLDEsMSwyLjUtMi41QTIuNDkzLDIuNDkzLDAsMCwxLDE2LDMwXFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHBhdGggZD1cXFwiTTE2LDYuOTkxYTIuNSwyLjUsMCwxLDEsMi41LTIuNSwyLjQ5MywyLjQ5MywwLDAsMS0yLjUsMi41XFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+XCIsXG5cdH0sXG5cdFwiR3Jvb3Z5XCI6IHtcblx0XHRjb2xvdXI6IFwiIzYzOThhYVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTcuNDUzLDI5Ljg2NWMwLS4wNzQuNDk0LTEuNzE3LDEuMS0zLjY1MUEyMS44MDgsMjEuODA4LDAsMCwwLDkuNSwyMi42Yy0uMDc5LS4wNTYtLjM1LjA0NS0uNi4yMjQtLjc2NC41MzgtLjkyLjQtMS40OTEtMS4zNTYtLjYxNy0xLjktLjYzOS0yLjA5MS0uMzE3LTIuODEuMjEtLjQ3LjItLjU3OS0uMTQ3LTEuMjc3YTMuNzUsMy43NSwwLDAsMS0uMzc3LTEuMDQ0YzAtLjI2LTEuNDEzLTEuNDM4LTMuNjQ3LTMuMDRBMy44NDUsMy44NDUsMCwwLDEsMiwxMi41YTEwLjQ3NywxMC40NzcsMCwwLDEsMi4zNzgtLjAzOWwyLjM3OC4xLjIzMi0uNzQxYy45ODEtMy4xMywyLjQ2My01Ljk1NywzLjEyMi01Ljk1Ny4xMzcsMCwuNDE2LjI2NS42MTkuNTg4LjMzMS41MjcuMzc2Ljg1My40MzUsMy4xMjZhMjMuMDEzLDIzLjAxMywwLDAsMCwuMTY1LDIuNzM5Yy4wNTUuMTEuMjI4LS4wMzUuMzg1LS4zMjIuMi0uMzY3LjQxMi0uNDY3LjcxLS4zMzVzLjQ4NS4wNDMuNjQ2LS4zNDVjLjI0Mi0uNTgyLDEuNDU1LTQuNTEzLDEuNDU1LTQuNzE3LDAtLjA2OS4yNC0uOS41MzQtMS44NDZzLjYzMS0yLjAzNi43NTEtMi40MjRjLjIxMy0uNjg4LjI0Ni0uNjA3LDEuNTI0LDMuNzI2LDEuMzIsNC40NzQsMi4wMyw2LjEyNCwyLjM4NSw1LjU0NC4yNDgtLjQsMS41NS0uNDI4LDEuOTE0LS4wMzQuMjA3LjIyNC4zMzguMjIxLjQ1My0uMDEuMjM3LS40OC44LS40Ljk1My4xNC4xMTcuNDIzLjE0Ny40MjMuMzIsMGEuODEyLjgxMiwwLDAsMSwuNjkyLS40NjZjLjM4OSwwLC41MzguMTY0LjY2Ni43MzVsLjE2NS43MzUsMi41NTgtLjE4M0ExMS41MjEsMTEuNTIxLDAsMCwxLDMwLDEyLjQ2OGEyMC43OSwyMC43OSwwLDAsMS0yLjMyMSwxLjg4OWMtMS4yNzcuOTYtMi4zNDIsMS43NzUtMi4zNjgsMS44MWExNy42MDcsMTcuNjA3LDAsMCwwLC4xMjgsMS44NjcsMTEuMDc1LDExLjA3NSwwLDAsMS0uNTQ0LDUuNzEzLDQuMzA4LDQuMzA4LDAsMCwxLTEuMDIxLDEuNDljLS4yNzguMTg2LS41MDYuNC0uNTA2LjQ4NnMuMywxLjA3Ny42NiwyLjIxMkE5LjY4Miw5LjY4MiwwLDAsMSwyNC41NjgsMzBjLS4xMDksMC0yLjc1Ny0yLjA3LTYuODc2LTUuMzczYTExLjE0MywxMS4xNDMsMCwwLDAtMS42NDMtMS4xODRjLS4xNzEsMC0xLjY0OSwxLjEzMy01Ljk4NCw0LjU4OC0yLjUxNCwyLTIuNjEyLDIuMDczLTIuNjEyLDEuODM1Wm01LjE1OC00LjcyN2MxLjMzNy0xLjA1MSwyLjY2NC0yLjA3OCwyLjk0Ny0yLjI4Mi40ODgtLjM1MS42NTEtLjI2MywzLjAyMSwxLjYzMSwxLjM3OCwxLjEsMi43MzcsMi4xNzQsMy4wMjEsMi4zODRzLjg2OC42NjYsMS4zLDEuMDEzYy40OTEuNC43NDIuNDkyLjY3NC4yNTYtLjc3LTIuNjM0LS43OTMtMi42NzgtMS4zMjctMi40NzYtLjY0NC4yNDQtMS4wNDMtLjAwNi0xLjI0OS0uNzgzYTEuNzM5LDEuNzM5LDAsMCwxLC4yNC0xLjQ1MSwyLjM3NywyLjM3NywwLDAsMC0uMjIxLTIuNzMxLDQuMjg5LDQuMjg5LDAsMCwxLS42ODYtMS41M2wtLjI0MS0xLjAyMy0uNTE3LjcxYy0uNjM2Ljg3My0xLjQxMS45MTgtMi4wNTkuMTE5bC0uNDc3LS41ODgtLjU1NC43NjJjLS41NTUuNzYzLTEuMTk0Ljg2Mi0xLjg0NC4yODQtLjE3OS0uMTU5LS4yNTgtLjEtLjI1OC4yYTEuMjQsMS4yNCwwLDAsMS0uMzc1Ljc3N2MtLjYxOS41Ny0xLjIyMy40MTktMS42MzMtLjQwOUwxMiwxOS4yNDlsLS4zLjc3NWE3LjAzMiw3LjAzMiwwLDAsMS0uODUzLDEuNDc5LDEzLjg5MSwxMy44OTEsMCwwLDAtMS40NTUsMy42NjNjLS41LDEuNjI3LS45LDMuMDQyLS45LDMuMTQzcy4zODEtLjE0MS44NDctLjUzOCwxLjk0Mi0xLjU4MiwzLjI3OS0yLjYzM1ptMTEuMzQzLTEuMTMxYzEuMDE1LTEuMTU0LDEuMjUtMy4yODguOC03LjI3MS0uMzc1LTMuMzI5LS41NjItNC40MTktLjc4NC00LjU2NS0uMTU0LS4xLS4xNzcuMDEtLjA5MS40MjYuNTYyLDIuNy41OTMsNC4wNTMuMSw0LjQzNC0uMzM3LjI2Mi0uNjk1LS43MTktLjk3Ni0yLjY3NS0uMjE4LTEuNTE1LS40NDUtMi4yLS42MTctMS44NWEzLjM1OSwzLjM1OSwwLDAsMCwuMTYsMS4wNywyNi43MTgsMjYuNzE4LDAsMCwxLC4zOTQsMy4zODEsMjEuNzU3LDIxLjc1NywwLDAsMCwuMzc1LDMuMTUxYy4zMDkuOTg1LjguNzQ3LDEuMTE4LS41NHMuMzUtLjQyNS4wNDQsMS4wNTVjLS4zMTcsMS41MzYtMS4yNiwyLTIuMzUyLDEuMTUtLjE3NS0uMTM2LS4yMzQsMC0uMjM0LjU1NWE0Ljk4OCw0Ljk4OCwwLDAsMS0uMywxLjVsLS4zLjc2NS40MDguMTM5QTIuMjQ3LDIuMjQ3LDAsMCwwLDIzLjk1NCwyNC4wMDdaTTkuMzQ2LDIxLjQ2OGMyLjExOC0xLjIzMiwyLjUtMi42NjgsMS43OTMtNi44MDVhMjEuOTQxLDIxLjk0MSwwLDAsMS0uMy0yLjNjMC0xLjAyOS0uMjU2LS41NTQtLjQ0OC44MzItLjI1NCwxLjgzMi0xLjAxNiwzLjM4OS0xLjY1NywzLjM4My0uNTU3LS4wMDUtLjczOC0uMjEtLjk2OC0xLjA5NC0uNDEzLTEuNTg1LjAzNy00LjAxOCwxLjE4NC02LjQwNi44NC0xLjc0OSwxLjMtMS45MDgsMS4zLS40NDgsMCwyLjI3Ni0uNzc2LDUuNjI1LTEuMTg0LDUuMTE1YTMuODE0LDMuODE0LDAsMCwxLC4wNjUtMi4yYy4yLS43Mi4xNTctMS44MTgtLjA2Ni0xLjgxOC0uMjU5LDAtLjc3MywxLjkxLS44NDEsMy4xMjctLjA2LDEuMDc2LS4wMjIsMS4zMzguMjMxLDEuNjEyLjg4OC45NjIsMi4wNTItMS45NzMsMi4xMTEtNS4zMjMuMDMxLTEuNzU5LS4xMzgtMi4yNTQtLjY3NC0xLjk4Mi0uNzgxLjQtMi44ODMsNS44ODMtMi44ODMsNy41MjMsMCwxLjI4My4zMTksMi4xODYuODgsMi40OTEuOTU0LjUxOSwxLjg3Ni0uNCwyLjUyOS0yLjUzMWwuMjc1LS44OTRWMTQuOTdjMCwxLjc1OS0uNTY3LDIuNjg2LTIuMzU3LDMuODUyYTguODkzLDguODkzLDAsMCwwLS44NTIuNiw5Ljc1OCw5Ljc1OCwwLDAsMCwuODkyLDIuNTM0LDUuMjgzLDUuMjgzLDAsMCwwLC45NjktLjQ4NFptMTIuNzY0LTIuMTg0Yy4yMTMtLjQ3NS4yNS0uOTkyLjItMi44MTctLjA1LTEuOTg2LS4xLTIuMzM3LS40ODYtMy4xNDQtLjY5MS0xLjQ1OC0xLjU0NC0xLjA4Ni0xLjA0NS40NTUuMjY1LjgyLjU4OS42OC40NzUtLjIwNS0uMDkxLS43LjA3OS0uNzIzLjM3NS0uMDQxLjU1NiwxLjI4MS40MTYsMy4wNTUtLjI0MiwzLjA1NS0uNDUsMC0uNTktLjM5LS44ODMtMi40NTlhNi43NTIsNi43NTIsMCwwLDAtLjM2Mi0xLjcxNGMtLjIxNywwLS4zMTQuMzg4LS4xNzkuNzE4YTI4LjIzLDI4LjIzLDAsMCwxLC40NTIsMi44NTljLjQ0MSwzLjUwNywxLjA1Nyw0LjcwNywxLjY5LDMuMjkzWm0tOC4zOC4wNTZhMy4zODUsMy4zODUsMCwwLDAsLjA5NS0xLjMzYy0uMDYtMS4wMDgtLjA5NC0xLjA4MS0uMzY0LS43OS0uMzg3LjQxOS0uOC0uMzc1LS45NDQtMS44LS4xMDctMS4wODItLjE0LTEuMDYxLjY0LS40MTUuMS4wODEuMzQ2LS4xOTQuNTUzLS42MTEuMzc3LS43NjMuNS0xLjY4LjIyOC0xLjY4LS4wODEsMC0uMTQ3LjEzNC0uMTQ3LjMsMCwuNDI5LS40LjM2OC0uNDk0LS4wNzUtLjA1My0uMjU4LS4xNjYtLjE2Ny0uMzY3LjMtLjE2LjM2OS0uMzU2LjY3MS0uNDM0LjY3MXMtLjE4NS0uMy0uMjM3LS42NzFjLS4wOS0uNjQ2LS4xLS42NS0uMy0uMTEzYS45NTEuOTUxLDAsMCwwLS4wMS45NjQsMTguODE4LDE4LjgxOCwwLDAsMSwuNTIxLDMuNzkxYzAsMS4xNzQuOCwyLjEsMS4yNjcsMS40NjNabTIuNjg4LTEuNTU2YTcuMDU1LDcuMDU1LDAsMCwwLC40MTYtNC4yNTljLS4yMzYtMS4xNDEtLjY0NS0xLjU2OC0xLjIyMi0xLjI3NS0uNDI5LjIxOC0xLjA4MiwyLjc0Ni0xLjA4NCw0LjIsMCwyLjI2MiwxLjA2LDMuMDE1LDEuODksMS4zMzdabS0xLjAwNy0xLjc5MmEzLjc3LDMuNzcsMCwwLDEtLjI5LTEuNDE2YzAtLjc0NS4wMjItLjc3Mi4yLS4zLjIyLjU4Ni42MTEuNjg4Ljc2MS4yYTEuMDM1LDEuMDM1LDAsMCwwLS4wNjUtLjY1NmMtLjIzMi0uNDY5LS4yLTEuMTA3LjA0OS0xLjEwNy4yOCwwLC42NzIsMS4xNTQuNjcyLDEuOTgyLDAsLjYwOS0uNjEzLDEuODkzLS45LDEuODkzLS4wNywwLS4yNi0uMjY4LS40MjItLjZaTTE5LjM0OCwxNy43YTYuNDQ3LDYuNDQ3LDAsMCwwLS4xNDEtNC45MThjLS4zNTgtLjc3My0xLjE1My0uOTA2LTEuNDc5LS4yNDhhMTEuNjA3LDExLjYwNywwLDAsMC0uNDg5LDMuODk1QzE3LjQ3NywxOC4zNDgsMTguNzE2LDE5LjEsMTkuMzQ4LDE3LjdaTTE4LjEsMTUuNTI3YTIuNDkyLDIuNDkyLDAsMCwxLS4zMTgtMS41NjVjLjAwOC0uOTA5LjAzMS0uOTkxLjEzNS0uNDcyLjE1My43NjQuNDczLDEuMDUyLjc1My42NzkuMTc0LS4yMzEuMTY2LS4zNDEtLjA1LS42NzYtLjI4OC0uNDQ3LS4zNDQtMS4wNzktLjEtMS4wNzlhNS4wMzcsNS4wMzcsMCwwLDEsMS4wMTcsMi4yNWMwLC40OC0uNTY0LDEuMzI3LS44ODQsMS4zMjdDMTguNTI3LDE1Ljk5MSwxOC4yNzYsMTUuNzgyLDE4LjEsMTUuNTI3Wm04LjY2Mi0xLjMxOCwxLjU0Ny0xLjE3NS0xLjY1OC0uMDEyYy0xLjQ4NC0uMDExLTEuNjU4LjA0My0xLjY1Ni41MWExMS41MzIsMTEuNTMyLDAsMCwwLC4yLDEuODU3Yy4wMTEsMCwuNzE2LS41MzQsMS41NjctMS4xOFpNNi41MzUsMTRsLjE1OC0uOTQ5TDUuMywxMi45NTZjLS43NjQtLjA1Mi0xLjM4OS0uMDEyLTEuMzg5LjA4OGExNC4xLDE0LjEsMCwwLDAsMi40NDcsMS45MzRDNi4zNzEsMTQuOTYxLDYuNDQ4LDE0LjUyMSw2LjUzNSwxNFptOS41MjYtMi45NDFhMS42MjQsMS42MjQsMCwwLDEsLjgxOS42Yy4xOTIuMzQ5LjI3Ni4zMjYuNTczLS4xNjMuMTkxLS4zMTUuNDQtLjU3Mi41NTMtLjU3MnMuMi0uMDY2LjItLjE0NmMwLS4yNzgtMi4xMjItNy4zMDYtMi4yLTcuM3MtMi4yNyw3LjM4Ni0yLjMzNyw3LjkyNWMtLjAyOC4yMjYuMDYuMzA5LjIzMS4yMTkuMTUyLS4wODEuMzYzLjA2My40NjguMzE5LjE3LjQxNS4yNC4zODIuNjQ0LS4zMDYuMzg0LS42NTQuNTQ0LS43NDIsMS4wNDgtLjU3OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzMzNcXFwiLz48cGF0aCBkPVxcXCJNMTQuNSwxMi4xNzVhLjg1Ljg1LDAsMCwxLS4xMTUtLjIuNzM3LjczNywwLDAsMC0uMTk0LS4yOS4yODEuMjgxLDAsMCwwLS4zLS4wNjFjLS4wODcuMDM1LS4xMTEuMDM5LS4xNS4wMjQtLjA2NS0uMDI2LS4wODktLjEwNi0uMDctLjI0Mi4wMjMtLjE2OS4yLS44MjUuNTQ4LTIuMDU0LjcxMS0yLjUsMS42NjYtNS42NDYsMS43NzItNS44MzkuMDEyLS4wMjEuMDEyLS4wMjEuMDI0LDAsLjA2My4xMTQuNDMyLDEuMjY2LjkzNywyLjkyMi42ODIsMi4yNCwxLjI1LDQuMjEsMS4yNSw0LjMzOSwwLC4wNzktLjA2LjEyNy0uMTg2LjE0Ny0uMTU3LjAyNi0uMzM5LjIxMi0uNTg3LjZhMS42NzQsMS42NzQsMCwwLDEtLjIyNi4zMWMtLjA0OC4wNDYtLjA1Mi4wNDgtLjEuMDQ4cy0uMDU2LDAtLjEtLjA0M2EuOTU4Ljk1OCwwLDAsMS0uMS0uMTQ0LDEuMjY4LDEuMjY4LDAsMCwwLS40MTQtLjQyMiwxLjUyNSwxLjUyNSwwLDAsMC0uNzM4LS4yODEuNDM0LjQzNCwwLDAsMC0uNC4xNTYsMi43MTgsMi43MTgsMCwwLDAtLjQxNi42Yy0uMjU3LjQyNS0uMzQ4LjUxMy0uNDQxLjQyNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2Mzk4YWFcXFwiLz48cGF0aCBkPVxcXCJNNi4yNTIsMTQuOTI4YTE5LjA1NSwxOS4wNTUsMCwwLDEtMi4zLTEuODM4Yy0uMDMxLS4wMzgtLjAzNC0uMDQ0LS4wMjUtLjA1N2EyLjcsMi43LDAsMCwxLDEuMTQtLjA4NWMuMjMuMDEyLDEuNjE5LjEsMS42MjEuMTA4cy0uMywxLjc3OS0uMzIxLDEuODgxQzYuMzU3LDE0Ljk4MSw2LjMzNywxNC45NzksNi4yNTIsMTQuOTI4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzYzOThhYVxcXCIvPjxwYXRoIGQ9XFxcIk0yNS4xNzcsMTUuMzVBMTQuMjM5LDE0LjIzOSwwLDAsMSwyNSwxMy41NmEuNTUzLjU1MywwLDAsMSwuMDQ0LS4yOWMuMDgxLS4xNTEuMjQ1LS4yMDUuNy0uMjMuMjI4LS4wMTMsMS4yODEtLjAxNSwyLjAyNSwwbC41MjEuMDA4TDI3LjAyOSwxNGMtMS4xNDQuODY3LTEuODEsMS4zNjktMS44MzQsMS4zODItLjAwNiwwLS4wMTItLjAwNi0uMDE4LS4wMjdoMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2Mzk4YWFcXFwiLz48cGF0aCBkPVxcXCJNOC41MDYsMjguMjgxYzAtLjA3MS4xNDktLjYuNTI3LTEuODc4LjkwNS0zLjA1NywxLjMxOS00LjE2NSwxLjgyNy00Ljg5MmE3LjY2NCw3LjY2NCwwLDAsMCwuOTY5LTEuNzkyTDEyLDE5LjI5MmwuMjI1LjQ0OGMuMzk0Ljc4NC42MzIsMS4wMTEsMS4wNjIsMS4wMTZhMS4yMzksMS4yMzksMCwwLDAsMS4xLTEuMTM3YzAtLjEyNC4wNDQtLjI1MS4wODYtLjI1MWExLjExOSwxLjExOSwwLDAsMSwuMjI2LjE0LDEuMjcxLDEuMjcxLDAsMCwwLC42NjYuMy44NzkuODc5LDAsMCwwLC42MDktLjE0OCwyLjQ3LDIuNDcsMCwwLDAsLjcxMS0uNzY0Yy4xODctLjI1Mi4zNDctLjQ1OS4zNTQtLjQ1OXMuMTQzLjE1OS4zLjM1MmE1LjA5MSw1LjA5MSwwLDAsMCwuNDIyLjQ2NywxLjA0OSwxLjA0OSwwLDAsMCwxLjU0OS0uMDgsNi4xMTEsNi4xMTEsMCwwLDAsLjQ2Ny0uNTcyYy4xNjgtLjIyOC4zMDctLjQxLjMxLS40cy4wNjYuMjY5LjE0MS41ODQuMTY5LjY3LjIwOS43ODlhMy44MjYsMy44MjYsMCwwLDAsLjY0MiwxLjIzNCwyLjE3LDIuMTcsMCwwLDEsLjQ2NiwxLjI0NiwzLjA1MSwzLjA1MSwwLDAsMS0uMzUyLDEuNDQ3LDIuMDcsMi4wNywwLDAsMC0uMjY3LjkzNCwyLjAxNywyLjAxNywwLDAsMCwuMjEzLjg1MS43NzMuNzczLDAsMCwwLDEuMDY5LjQxMywxLjM1MSwxLjM1MSwwLDAsMSwuMzE2LS4wNjhjLjIsMCwuMzE1LjE5My41NDIuODgxLjE1Ny40NzQuNSwxLjYzNy41LDEuNjk1LDAsLjAzLS4wMTYuMDUxLS4wMzkuMDUxYTEuNDg2LDEuNDg2LDAsMCwxLS40MDctLjIyNGMtLjItLjE0NC0yLjYxMi0yLjAyOS0zLjQwOC0yLjY2My0yLjEyOC0xLjY5My0yLjgyOC0yLjIzMy0zLjE3MS0yLjQ0Ni0uMzctLjIzLS42MjItLjI4NS0uODI3LS4xNzctLjI1NC4xMzMtMy43MjYsMi44NDctNS43NTEsNC41QTEwLjg0NiwxMC44NDYsMCwwLDEsOC42NSwyOC4yNTFjLS4xNDkuMDgzLS4xNDMuMDgxLS4xNDMuMDNaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjM5OGFhXFxcIi8+XCIsXG5cdH0sXG5cdFwiSGFtbFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNlY2RmYTdcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xNS4zMTEsMTYuMDQzLDEzLjQsMjkuNzI2YTYuMzIyLDYuMzIyLDAsMCwxLTUuOTU2LTEuMjVsMy4xLTEzLjI2Nkw0LjY5LDMuMzRhOC4wMzEsOC4wMzEsMCwwLDEsMy43OS0uNjQ2bDUuMTQ0LDkuNyw4LjkxNC03LjU4MXMzLDEuMDQxLDMuMjcsMi4wNDFsLTEwLjUsOS4xODRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWNkZmE3XFxcIi8+PHBhdGggZD1cXFwiTTI3LjAxNiwxNy40MTFhNC4yNDQsNC4yNDQsMCwwLDAtLjU0MS0uODEyLDUuNyw1LjcsMCwwLDAtMS40NTgtMS4xODcsNy4zMzEsNy4zMzEsMCwwLDAtMS42ODctLjc5MWwtLjIyOS0uMDYyLS4xODctLjA2MmMtLjEyNS0uMDQyLS4yMjktLjEtLjMzMy0uMTQ2YTEuMjgyLDEuMjgyLDAsMCwxLS40NTgtLjQxN0ExLjc1NCwxLjc1NCwwLDAsMSwyMiwxMi42NDJhMi41MTgsMi41MTgsMCwwLDEsLjEtLjM3NWMuMDQyLS4xMjUuMDgzLS4yNS4xMjUtLjRhMi42OTEsMi42OTEsMCwwLDAsLjA2Mi0uNmwuMS0uMDgzLDEuMjUtMS4wNDFjLjIyOS0uMTg3LjQ1OC0uNC42ODctLjU4M2EyLjIsMi4yLDAsMCwxLC4yMjkuMTQ2cy42NDYuMDYyLDEtLjkxNmwtLjE4Ny0uMTI1LjEyNS0uMS4zMTItLjI3MWEuNjEzLjYxMywwLDAsMCwuMjI5LS4zNzUuNTI5LjUyOSwwLDAsMC0uNDE3LjEyNWwtLjMzMy4yNS0uMjI5LjE2N0wyMi4xODQsNi40NzhjLjE0Ni0uMTI1LjI3MS0uMjI5LjQxNy0uMzU0bC42LS41NDEuMDYyLS4wNjJjLjA2Mi4wNDIuMS4wODMuMTY3LjEyNS4xNDYuMS4zMTIuMjA4LjQ1OC4yOTJsLjkxNi41Yy4yOTIuMTY3LjYuMzMzLjkxNi40NzlhMy4zMjMsMy4zMjMsMCwwLDAsLjQ3OS4yMDhjLjA4My4wMjEuMTY3LjA2Mi4yNS4wODMuMDQyLDAsLjEuMDIxLjE0Ni4wMjFoLjFhLjE1MS4xNTEsMCwwLDAsLjEyNS0uMDgzVjcuMTIzYS4wNzcuMDc3LDAsMCwxLC4wMjEtLjA2MlY2Ljk3N2EuMTA4LjEwOCwwLDAsMC0uMDQyLS4wODNjLS4wMjEtLjA0Mi0uMDYyLS4wODMtLjA4My0uMTI1YTEuNTksMS41OSwwLDAsMC0uMTg3LS4xODdjLS4xMjUtLjEyNS0uMjcxLS4yMjktLjQtLjMzMy0uMjcxLS4yMDgtLjU2Mi0uNC0uODU0LS41ODNhNy41NDUsNy41NDUsMCwwLDAtLjktLjUsMy4zMjMsMy4zMjMsMCwwLDAtLjQ3OS0uMjA4Yy0uMDgzLS4wMjEtLjE2Ny0uMDYyLS4yNzEtLjA4My0uMDQyLDAtLjEtLjAyMS0uMTY3LS4wMjFhLjMxLjMxLDAsMCwwLS4xMjUuMDIxLjUyMi41MjIsMCwwLDAtLjE2Ny4xLDEuNiwxLjYsMCwwLDAtLjM3NS4yMDhsLS42MjUuMzU0Yy0uMTg3LjE0Ni0uNC4zMTItLjU4My40NThsLS4yMDgtLjE0NnMtLjg3NS4wODMtLjU4My42NDZsLjA4My4wODNjLS44MzMuNjg3LTEuNjQ1LDEuNC0yLjQ1NywyLjA4My0uODMzLjcwOC0xLjY0NSwxLjQxNi0yLjQ3OCwyLjE0NWwtMS4yMjksMS4wODNhMS44NzgsMS44NzgsMCwwLDEtLjIwOC4xODdjLS4wNDItLjEyNS0uMS0uMjI5LS4xNDYtLjMzM2wtLjI5Mi0uNjI1LS41NjItMS4yNWMtLjM3NS0uODMzLS43NS0xLjY2Ni0xLjE0NS0yLjVMMTEuMjA5LDQuODk1bC0uMTg3LS4zNzVoLjI1cy4wODMtLjY4Ny0uNDE3LS44MTJhMS40LDEuNCwwLDAsMC0uMjA4LjAyMWMtLjE4Ny0uMzc1LS4zNTQtLjc1LS41NDEtMS4xMjVoMGwtLjA4My0uMzEyQS4zMy4zMywwLDAsMCw5LjksMi4xYS4zNTIuMzUyLDAsMCwwLS4xLS4wNDJjLS4wNjItLjAyMS0uMS0uMDIxLS4xNjctLjA0MkExLjI4MSwxLjI4MSwwLDAsMCw5LjM1NSwyYTQuMDU3LDQuMDU3LDAsMCwwLS41MjEuMDQyLDguNzY3LDguNzY3LDAsMCwwLTEuMDIuMTg3Yy0uMzMzLjA4My0uNjY2LjE2Ny0xLC4yNzFhMy4yNzIsMy4yNzIsMCwwLDAtLjQ3OS4xODdsLS4yNS4xMjVjLS4wNDIuMDIxLS4wODMuMDYyLS4xMjUuMDgzTDUuOSwyLjk1OGMtLjAyMS4wMjEtLjAyMS4wNDItLjA0Mi4wNjJ2LjA2MmgwVjMuMWEuMTY0LjE2NCwwLDAsMCwuMS4xMjVjLjA0Mi4wMjEuMDYyLjA0Mi4wODMuMDQyYTEuMzI3LDEuMzI3LDAsMCwxLC4xNDYuMDQyLDEuMTg4LDEuMTg4LDAsMCwwLC4yNzEuMDIxLDQuMzg0LDQuMzg0LDAsMCwwLC41MjEtLjA0MmMuMzMzLS4wNDIuNjg3LS4wODMsMS4wMi0uMTQ2bDEuMDItLjE2N2MuMTY3LS4wMjEuMzMzLS4wNjIuNTIxLS4xLjE0Ni4yOTIuMjkyLjYuNDM3LjktLjk1OC4wODMtMi40NTcuMjA4LTMuMzk1LjMxMi0uMS0uMTg3LS4xODctLjM1NC0uMjkyLS41NDFhLjEyNy4xMjcsMCwwLDAtLjE0Ni0uMDYyLjEwOC4xMDgsMCwwLDAtLjA2Mi4xNDZjLjA2Mi4xNjcuMTI1LjMxMi4xODcuNDc5YTEuMTY3LDEuMTY3LDAsMCwwLS41LjEyNUExLjgyOCwxLjgyOCwwLDAsMCw2LjQsNS42NDVhMy41NjcsMy41NjcsMCwwLDEsLjQ1OC0uMTI1bC40MzcsMSwxLjI1LDIuODMyLDEuMjcsMi44MzJjLjQxNy45MzcuODU0LDEuODc0LDEuMjkxLDIuODMyaDBhLjAyLjAyLDAsMCwwLC4wMjEuMDIxbC0uMTg3LjYyNS0uNSwxLjc0OWMtLjMxMiwxLjE2Ni0uNiwyLjM1My0uOSwzLjUyTDkuMTA1LDIyLjdsLS40MTcsMS43N2MtLjI5MiwxLjE4Ny0uNTYyLDIuMzUzLS45LDMuNTJhLjEyNS4xMjUsMCwwLDAsLjAyMS4wODMsMy4wNzYsMy4wNzYsMCwwLDAsLjYuNTYyLDYuMDQ4LDYuMDQ4LDAsMCwwLC42ODcuNDE3LDkuNCw5LjQsMCwwLDAsMS41LjYsNi45NzIsNi45NzIsMCwwLDAsMS42MjQuMjcxLDMuNzI4LDMuNzI4LDAsMCwwLC44MzMtLjA0Miw2LjU0Nyw2LjU0NywwLDAsMCwuODMzLS4xNjcuMjU0LjI1NCwwLDAsMCwuMTY3LS4xODd2LS4wMjFjLjIyOS0xLjE0NS40MTctMi4zMTIuNjI1LTMuNDU3bC41ODMtMy40NzhjLjE4Ny0xLjE2Ni40LTIuMzEyLjU4My0zLjQ3OC4wMjEtLjEyNS4wNDItLjI3MS4wNjItLjQuMDQyLjA0Mi4wNjIuMS4xLjE0NmE0LjEzNyw0LjEzNywwLDAsMCwuNzA4LjY0Niw3LjIxMiw3LjIxMiwwLDAsMCwxLjU4My44MzMsMTEuNzc0LDExLjc3NCwwLDAsMCwxLjY2Ni41LDEwLjE4MiwxMC4xODIsMCwwLDAsMS4xLjE4NywyLjYyMSwyLjYyMSwwLDAsMC0uMjUsMS4yMDguMTE1LjExNSwwLDAsMCwuMDYyLjFoLjAyMWE1LjE2NCw1LjE2NCwwLDAsMCwxLjI3LjQ3OSw0LjMzMyw0LjMzMywwLDAsMCwxLjM3NS4wNjIsMi42MjcsMi42MjcsMCwwLDAsMS4zMzMtLjU2MiwyLjgyNCwyLjgyNCwwLDAsMCwuODEyLTEuMTY2bC4wMjEtLjAyMVYyMS4xbC4wNjItLjU2MnYtLjAyMWE1LjQyNyw1LjQyNywwLDAsMCwuNjI1LS40MTcsMi43MSwyLjcxLDAsMCwwLC42NDYtLjcyOSwxLjgzMywxLjgzMywwLDAsMCwuMjUtMSwyLjU2MywyLjU2MywwLDAsMC0uMjkyLS45NThabS0uNC0xMC41Wm0tMS40NzktMS4xYTcuMTIsNy4xMiwwLDAsMSwuODMzLjU0MWMuMTI1LjEuMjcxLjE4Ny40LjMxMmExLjI1NywxLjI1NywwLDAsMSwuMTY3LjE2N2wuMDQyLjA0MmgtLjA0MmMtLjA4My0uMDIxLS4xNDYtLjA0Mi0uMjI5LS4wNjItLjE0Ni0uMDYyLS4zMTItLjEyNS0uNDU4LS4xODdhNy4xMzIsNy4xMzIsMCwwLDEtLjg3NS0uNDc5QTUuNjEsNS42MSwwLDAsMSwyNC4yLDUuNTJhMi41LDIuNSwwLDAsMS0uMjI5LS4yNWwuMzEyLjEyNWE2LjQsNi40LDAsMCwxLC44NTQuNDE3Wm0tMS40MTYtLjkxNi4wMjEuMDIxdi4wNDJhLjAyLjAyLDAsMCwwLS4wMjEtLjAyMVY0Ljg5NVpNOC44NzYsMi41NjJhNS4wMjEsNS4wMjEsMCwwLDEtLjkzNy4zMzMsNS4zNDcsNS4zNDcsMCwwLDEtLjk3OS4xNjcsNC4wMTMsNC4wMTMsMCwwLDEtLjUuMDIxLjc4MS43ODEsMCwwLDEtLjIyOS0uMDIxSDYuMTY5Yy4wMjEsMCwuMDIxLS4wMjEuMDQyLS4wMjEuMDYyLS4wNDIuMTQ2LS4wNjIuMjA4LS4xLjE0Ni0uMDYyLjMxMi0uMS40NTgtLjE2Ny4zMTItLjA4My42NDYtLjE2Ny45NzktLjIyOWE4LjQsOC40LDAsMCwxLC45NzktLjEyNUExLjU3NiwxLjU3NiwwLDAsMCw5LjE0NywyLjRhMS41MzYsMS41MzYsMCwwLDEtLjI3MS4xNjdabTE0LjQ1Myw3LjEtMS4yOTEsMS0xLjI5MSwxLjAyYy0uMzU0LjI5Mi0uNzA4LjU4My0xLjA2Mi44NTQuMDIxLS4wMjEuMDQyLS4wNjIuMDYyLS4wODMuMTY3LS4yMjkuMzMzLS40MzcuNS0uNjQ2LjM1NC0uNDE3LjY4Ny0uODU0LDEuMDYyLTEuMjVzLjc3MS0uNzkxLDEuMTY2LTEuMTQ1YTQuODcyLDQuODcyLDAsMCwxLC42NDYtLjVsLjE4Ny0uMTI1Yy4xODcuMTQ2LjQuMjkyLjU4My40MzctLjE2Ny4xNDYtLjM3NS4yOTItLjU2Mi40MzdaTTguMDY0LDcuMWwuMS4xYTUuNjMsNS42MywwLDAsMSwuNTgzLjY0NiwyLjIxLDIuMjEsMCwwLDEsLjM3NS43MjkuOTIxLjkyMSwwLDAsMS0uMDYyLjYyNWwtLjAyMS0uMDYyTDguMDY0LDcuMVptMS4wMiwyLjE2NmEuNzIuNzIsMCwwLDAsLjE0Ni0uMjUuODY2Ljg2NiwwLDAsMCwuMDQyLS40NThBMS43LDEuNywwLDAsMCw4LjksNy43MjdhNC4wMTUsNC4wMTUsMCwwLDAtLjk3OS0uOWwtLjIyOS0uNDc5Yy0uMTQ2LS4zMTItLjI5Mi0uNjI1LS40NTgtLjkxNi4zMTItLjA4My42ODctLjIwOCwxLjEtLjMxMkEyMC4zMTMsMjAuMzEzLDAsMCwxLDkuMzU1LDdhNy45NjMsNy45NjMsMCwwLDEsLjc3MSwyLjU0MWMuMDIxLjIwOCwwLC40MzcsMCwuNjY2czAsLjQ1OC4wMjEuNjg3YTcuNjA5LDcuNjA5LDAsMCwwLC4xNDYuOTU4TDkuMDg0LDkuMjY4Wk0xNCwyNi4yNDJhLjkuOSwwLDAsMS0uMTg3LjIwOC40LjQsMCwwLDEtLjMzMy4xLjM1OC4zNTgsMCwwLDEtLjIyOS0uMjI5Ljk4MS45ODEsMCwwLDEtLjA4My0uMzU0LDIuMjc1LDIuMjc1LDAsMCwxLC4wNDItLjc1LDIuODE2LDIuODE2LDAsMCwxLC4yMjktLjcwOCwxLjQ3OCwxLjQ3OCwwLDAsMSwuMjA4LS4yOTIuMzQxLjM0MSwwLDAsMSwuMjkyLS4xMjVjLjEsMCwuMjA4LjEuMjcxLjIwOGEuNzQuNzQsMCwwLDEsLjA4My4xODdsLS4yNSwxLjQ3OWMtLjAyMS4xLS4wMjEuMTg3LS4wNDIuMjcxWm0xLjIyOS03LjE4NS0uMzc1LDIuMTg3YTMuMzI5LDMuMzI5LDAsMCwwLS4xLS40MzdjLS4xLS40LS4yMjktLjc3MS0uMzU0LTEuMTQ1YTE1LjUzNywxNS41MzcsMCwwLDAtLjk1OC0yLjE2NmMuMjI5Ljc3MS41LDEuNS43NzEsMi4yNDkuMTQ2LjM3NS4yNzEuNzUuNCwxLjFsLjE4Ny41NjJjMCwuMDIxLjAyMS4wNjIuMDIxLjA4My0uMDYyLjMzMy0uMTI1LjY2Ni0uMTY3LDEuMDJsLS4zMTIsMS45Yy0uMDIxLS4wNDItLjAyMS0uMDgzLS4wNDItLjEyNWEuNDg2LjQ4NiwwLDAsMC0uMzEyLS4yOTIuNTI1LjUyNSwwLDAsMC0uNDE3LjEyNSwxLjk0NCwxLjk0NCwwLDAsMC0uMjcxLjMxMiwyLjAzNiwyLjAzNiwwLDAsMC0uMjcxLjc1LDIuMTMxLDIuMTMxLDAsMCwwLDAsLjgxMiwxLjAyMSwxLjAyMSwwLDAsMCwuMTQ2LjQuNDg2LjQ4NiwwLDAsMCwuMzMzLjI3MS40MjguNDI4LDAsMCwwLC4zNzUtLjE2N2MuMDQyLS4wNDIuMDgzLS4xLjEyNS0uMTQ2LS4xNDYuOTc5LS4zMTIsMS45NTgtLjQ1OCwyLjk1N2EyLjcyNywyLjcyNywwLDAsMS0uNTYyLjEyNWMtLjI1LjA0Mi0uNS4wNjItLjc1LjA4M2E1LjUzMSw1LjUzMSwwLDAsMS0xLjU0MS0uMTQ2LDcuODQ2LDcuODQ2LDAsMCwxLTEuNS0uNDc5LDMuNjI1LDMuNjI1LDAsMCwxLTEuMjI5LS44NTRjLjMxMi0xLjE0NS42NjYtMi4yOTEsMS4wMi0zLjQzNmwuNTQxLTEuNzI5LjUyMS0xLjc0OWMuMzU0LTEuMTY2LjcwOC0yLjMzMywxLjA0MS0zLjUuMTY3LS41ODMuMzEyLTEuMTY2LjQ3OS0xLjc0OWEzLjYyNiwzLjYyNiwwLDAsMCwuMTg3LTEuODMzdi0uMDIxYy0uMDIxLS4wMjEtLjA0Mi0uMDIxLS4wNDIsMGEzLjEwOSwzLjEwOSwwLDAsMC0uMjUuMjkyYy0uMjI5LS41MjEtLjQ3OS0xLjAyLS43MDgtMS41NDFhNC43NjUsNC43NjUsMCwwLDEtLjE2Ny0uNTgzLDcuMTY1LDcuMTY1LDAsMCwxLS4yMDgtMS4zMTJjLS4wMjEtLjIyOS0uMDIxLS40MzctLjAyMS0uNjY2cy4wMjEtLjQ1OCwwLS42ODdhNy42MjUsNy42MjUsMCwwLDAtLjgzMy0yLjYsMTIuNTg3LDEyLjU4NywwLDAsMC0xLjEtMS44MzNjLjY4Ny0uMTg3LDEuNDE2LS4zNzUsMi0uNDc5LjA4My4xODcuMTg3LjM1NC4yNzEuNTQxTDExLjkzOCw3LjZsMS4yNSwyLjQzNy42MjUsMS4yMDguMzEyLjZjLjA4My4xMjUuMTI1LjI3MS4yMDguMzc1bC0uODEyLjc1YS4wNjkuMDY5LDAsMCwwLDAsLjEuMDczLjA3MywwLDAsMCwuMS4wMjFjLjQzNy0uMzEyLjg3NS0uNjQ2LDEuMzEyLS45NzlsMS4zMTItMWMuODc1LS42NjYsMS43MjktMS4zMzMsMi41ODItMnMxLjcwOC0xLjM1NCwyLjU2Mi0yLjA0MWwuMDIxLS4wMjFhMjQuMzE2LDI0LjMxNiwwLDAsMCwxLjg3NCwxLjY0NSw2LjE2Miw2LjE2MiwwLDAsMC0uODc1LjU0MSw4Ljk0Myw4Ljk0MywwLDAsMC0xLjIyOSwxLjEyNSwxMi4yNzksMTIuMjc5LDAsMCwwLTEuMDQxLDEuMjkxLDExLjc3OCwxMS43NzgsMCwwLDAtLjY0NiwxYy0xLjI3LDEuMDQxLTIuNTIsMi4xLTMuNzI4LDMuMjA3YS4xMjguMTI4LDAsMCwwLS4wMjEuMTQ2LjEzOC4xMzgsMCwwLDAsLjE0Ni4wNDIsOS4xMzQsOS4xMzQsMCwwLDAtLjMxMiwxLjI1Yy0uMTI1LjU4My0uMjUsMS4xNjYtLjM1NCwxLjc0OVptOS4yMDUsMi43OTFhMi41MjcsMi41MjcsMCwwLDEtMS4wMi40NTgsMy43NjcsMy43NjcsMCwwLDEtMS4xODcuMDQyLDcuMzYxLDcuMzYxLDAsMCwxLTEuMTQ1LS4yMDgsMi4wMzcsMi4wMzcsMCwwLDEsLjE2Ny0xLjA0MWMuMTQ2LjAyMS4yNzEuMDIxLjQxNy4wNDJhLjExNC4xMTQsMCwwLDAsLjEyNS0uMDgzLjEyNC4xMjQsMCwwLDAtLjA4My0uMTY3aDBjLS4xLS4wNDItLjE4Ny0uMDYyLS4yOTItLjFhMi43NzEsMi43NzEsMCwwLDEsLjI5Mi0uNGMuMTI1LS4xMjUuMjUtLjI1LjM3NS0uMzU0YTMuOTkyLDMuOTkyLDAsMCwwLC44NTQuNCwyLjg4MSwyLjg4MSwwLDAsMCwxLjEyNS4xLDEuNTUsMS41NSwwLDAsMCwxLjAyLS41NDEsMS41MjQsMS41MjQsMCwwLDAsLjM1NC0uOTE2Ljg1Ljg1LDAsMCwxLC4wMjEuNCw0LjUxMSw0LjUxMSwwLDAsMS0uMDgzLjUyMWwtLjA2Mi4zMTJMMjUsMjAuNDk0YS45MTkuOTE5LDAsMCwwLS4zMzMuMzU0Ljc1MS43NTEsMCwwLDAsLjQ3OSwwYy4wMjEsMCwuMDIxLS4wMjEuMDQyLS4wMjEtLjAyMS4wNjItLjAyMS4xLS4wNDIuMTY3YTIuNTUyLDIuNTUyLDAsMCwxLS43MDguODU0Wk0yNi41LDE5LjExOWEyLjIsMi4yLDAsMCwxLS40NTguNjI1LDIuNjM4LDIuNjM4LDAsMCwxLS4yNzEuMjI5LDIuNTg1LDIuNTg1LDAsMCwwLS4wNjItLjU2MiwxLjUzNCwxLjUzNCwwLDAsMC0uMDgzLS4yOTIuNTMxLjUzMSwwLDAsMC0uMTg3LS4yNWgwYy0uMDIxLDAtLjA0MiwwLS4wNDIuMDIxaDBhMS45NSwxLjk1LDAsMCwxLS41NjIuNzcxLDEuNDI5LDEuNDI5LDAsMCwxLS44MTIuMjkyLDIuODU3LDIuODU3LDAsMCwxLS45MTYtLjEyNWMtLjMxMi0uMDgzLS42MjUtLjE4Ny0uOTM3LS4yOTJsLS4wNDItLjAyMWEuMi4yLDAsMCwwLS4xODcuMDQyYy0uMTY3LjIwOC0uMjkyLjQtLjQzNy42LS4xLjE2Ny0uMTg3LjMxMi0uMjcxLjQ3OS0uMzc1LS4xNDYtLjcyOS0uMjcxLTEuMS0uNDE3LS41MjEtLjIwOC0xLjA0MS0uNDE3LTEuNTItLjY2NmE3LjY0OCw3LjY0OCwwLDAsMS0xLjQtLjgxMiwyLjk0OSwyLjk0OSwwLDAsMS0uOTc5LTEuMDYydi0uMDIxYS40MDkuNDA5LDAsMCwwLS4xODctLjE4N2MwLS4wNDIuMDIxLS4xLjAyMS0uMTQ2YTcuMzcsNy4zNywwLDAsMCwuMS0xLjUyYzEuNjg3LTEuMTg3LDMuMzMyLTIuNDM3LDQuOTU3LTMuNzI4bC0uMDYyLjE4N2EzLjI3LDMuMjcsMCwwLDAtLjE0NiwxLjAyQTIuMDg5LDIuMDg5LDAsMCwwLDIyLjEyMiwxNS4xYTIuODI1LDIuODI1LDAsMCwwLC40NzkuMTg3bC4yNS4wNjIuMjA4LjA0MmE2LjY0NSw2LjY0NSwwLDAsMSwxLjU0MS42MjUsNi4xNTYsNi4xNTYsMCwwLDEsMS4zMTIuOTc5LDIuMjc1LDIuMjc1LDAsMCwxLC43MDgsMS4zMzMsMS41MSwxLjUxLDAsMCwxLS4xMjUuNzkxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzNmM2UyOVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi42NjcsMjMuOTA5YTIuMTYxLDIuMTYxLDAsMCwwLS4zNTQuNzcxLDEuNTU2LDEuNTU2LDAsMCwwLS4wNjIuNDE3bC0uMDIxLjQxN2E0LjUzMyw0LjUzMywwLDAsMCwuMTQ2LDEuNjY2LDcuNjQ3LDcuNjQ3LDAsMCwwLC42NjYsMS41MmMtLjA4My0uMjcxLS4xODctLjUyMS0uMjcxLS43NzFzLS4xNjctLjUyMS0uMjI5LS43OTFhNS44OSw1Ljg5LDAsMCwxLS4xLTEuNmwuMDIxLS40MTdhMi41NTIsMi41NTIsMCwwLDEsLjA0Mi0uNCwzLjEzNywzLjEzNywwLDAsMSwuMjkyLS43MjksMi45NjcsMi45NjcsMCwwLDEsLjUyMS0uNjI1LDIuNTkxLDIuNTkxLDAsMCwxLC42NjYtLjQ3OSwyLjc2LDIuNzYsMCwwLDAtMS4zMTIsMS4wMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzZjNlMjlcXFwiLz5cIixcblx0fSxcblx0XCJIYW5kbGViYXJzXCI6IHtcblx0XHRjb2xvdXI6IFwiI2MxOTc3MFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTEyLjMsMTMuMWE0LjIzOCw0LjIzOCwwLDAsMSwyLjcyOC45QTQuNTkyLDQuNTkyLDAsMCwxLDE2LDE1LjEyN2E0LjE0NCw0LjE0NCwwLDAsMSwyLjAzOS0xLjc0Nyw0Ljc1Nyw0Ljc1NywwLDAsMSwzLjI4Ni4wMTksNy44MzMsNy44MzMsMCwwLDEsMi40NDMsMS41NThjLjU2OC41LDEuMDk0LDEuMDUsMS42NzksMS41MzNhMy40LDMuNCwwLDAsMCwxLjAxOS42MTQsMS40MiwxLjQyLDAsMCwwLDEuNDYtLjM3OS45NjUuOTY1LDAsMCwwLS4wNTUtMS4zMjMuNTQ1LjU0NSwwLDAsMC0uOC4xMDguNjU5LjY1OSwwLDAsMCwuMDUuNjg2LDEuMjIyLDEuMjIyLDAsMCwxLS42LS45MjYsMS4wMjIsMS4wMjIsMCwwLDEsLjY5MS0xLjAzMiwyLjAwNSwyLjAwNSwwLDAsMSwyLjMxMi42NjEsMy4yNTgsMy4yNTgsMCwwLDEsLjQ0LDIuMzA4LDIuNzYyLDIuNzYyLDAsMCwxLTEuMTM3LDEuODcyLDUuMDUxLDUuMDUxLDAsMCwxLTMuMDEzLjgsOC40ODgsOC40ODgsMCwwLDEtMi45MzItLjYzYy0xLjU1OC0uNjI2LTMuMDE2LTEuNDkyLTQuNjI1LTEuOTkyYTEzLjk3NywxMy45NzcsMCwwLDAtMS43LS4zNjNjLS40My4wMDctLjg2MS0uMDE1LTEuMjkuMDE1YTUuNjkyLDUuNjkyLDAsMCwwLTEuNTM0LjM0OWMtMS42MzYuNTA5LTMuMTE2LDEuNC00LjcsMi4wMjRhNy42MjUsNy42MjUsMCwwLDEtNC4yNDkuNDc0LDMuNzQsMy43NCwwLDAsMS0yLjEyNS0xLjE0QTIuODU2LDIuODU2LDAsMCwxLDIsMTYuNjY4YTIuNzIyLDIuNzIyLDAsMCwxLC41NTUtMS44NzQsMS45OTQsMS45OTQsMCwwLDEsMS42ODctLjY4LDEuNDI1LDEuNDI1LDAsMCwxLDEuMDYzLjUyLDEuMDQsMS4wNCwwLDAsMSwuMTIyLjkxMSwxLjQ1NywxLjQ1NywwLDAsMS0uNTU2LjY0NC42NDMuNjQzLDAsMCwwLC4wNTEtLjY4MS41NDcuNTQ3LDAsMCwwLS44MzEtLjA3OS45NzUuOTc1LDAsMCwwLS4xNTEsMS4xMSwxLjMzMSwxLjMzMSwwLDAsMCwxLjAzMi42MjMsMi4zMzIsMi4zMzIsMCwwLDAsMS42LS43QTI4LjUyNiwyOC41MjYsMCwwLDEsOS40LDE0LjA1Myw1LjI1MSw1LjI1MSwwLDAsMSwxMi4zLDEzLjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzE5NzcwXFxcIi8+XCIsXG5cdH0sXG5cdFwiSGFza2VsbFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNDMDQ1MDRcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjAuOTk2XFxcIiB5MT1cXFwiLTIwNi4wNTdcXFwiIHgyPVxcXCIwLjk1MVxcXCIgeTI9XFxcIi0yMDYuMDU3XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDI1OS45NDEsIDAsIDAsIC0xODMuNDg3LCAtMjM3Ljk0MSwgLTM3NzkyLjc4OClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmYWJhMDlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNiNDJjMDFcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2hhc2tlbGwyPC90aXRsZT48cGF0aCBkPVxcXCJNMiwyNS44ODIsOC41ODgsMTYsMiw2LjExOEg2Ljk0MUwxMy41MjksMTYsNi45NDEsMjUuODgyWm02LjU4OCwwTDE1LjE3NywxNiw4LjU4OCw2LjExOGg0Ljk0MUwyNi43MDYsMjUuODgySDIxLjc2NWwtNC4xMTctNi4xNzYtNC4xMTgsNi4xNzZaTTI0LjUxLDIwLjExOGwtMi4yLTMuMjk0SDMwdjMuMjk0Wm0tMy4yOTQtNC45NDEtMi4yLTMuMjk0SDMwdjMuMjk0WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPlwiLFxuXHR9LFxuXHRcIkhheGVcIjoge1xuXHRcdGNvbG91cjogXCIjZjY4NzEyXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTYsNS41LDUuNSwxNiwxNiwyNi41LDI2LjUsMTYsMTYsNS41XFxcIiBzdHlsZT1cXFwiZmlsbDojZjY4NzEyXFxcIi8+PHBhdGggZD1cXFwiTTIsMiwxNiw1LjUsNS41LDE2LDIsMlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhYjIwYlxcXCIvPjxwYXRoIGQ9XFxcIk0zMCwyLDI2LjUsMTYsMTYsNS41LDMwLDJcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNDcyMTZcXFwiLz48cGF0aCBkPVxcXCJNMzAsMzAsMTYsMjYuNSwyNi41LDE2LDMwLDMwXFxcIiBzdHlsZT1cXFwiZmlsbDojZjI1YzE5XFxcIi8+PHBhdGggZD1cXFwiTTIsMzAsNS41LDE2LDE2LDI2LjUsMiwzMFxcXCIgc3R5bGU9XFxcImZpbGw6I2Y4OWMwZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNiw1LjUsMiwySDlsNywzLjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYmM3MDdcXFwiLz48cGF0aCBkPVxcXCJNMTYsNS41LDMwLDJIMjNMMTYsNS41XFxcIiBzdHlsZT1cXFwiZmlsbDojZmJjNzA3XFxcIi8+PHBhdGggZD1cXFwiTTE2LDI2LjUsMzAsMzBIMjNsLTctMy41XFxcIiBzdHlsZT1cXFwiZmlsbDojZjY4NzEyXFxcIi8+PHBhdGggZD1cXFwiTTE2LDI2LjUsMiwzMEg5bDctMy41XFxcIiBzdHlsZT1cXFwiZmlsbDojZjI1YzE5XFxcIi8+PHBhdGggZD1cXFwiTTUuNSwxNiwyLDMwVjIzbDMuNS03XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmMjAwXFxcIi8+PHBhdGggZD1cXFwiTTUuNSwxNiwyLDJWOWwzLjUsN1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjIwMFxcXCIvPjxwYXRoIGQ9XFxcIk0yNi41LDE2LDMwLDJWOWwtMy41LDdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMTQ3MWRcXFwiLz48cGF0aCBkPVxcXCJNMjYuNSwxNiwzMCwzMFYyM2wtMy41LTdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMTQ3MWRcXFwiLz5cIixcblx0fSxcblx0XCJITFNMXCI6IHtcblx0XHRjb2xvdXI6IFwiIzAwMDBmZlwiLFxuXHRcdGljb246IFwiPHBvbHlnb24gcG9pbnRzPVxcXCI5LjUyNSAyMS45NDcgNy41NiAyMS45NDcgNy41NiAxNy4xIDMuOTU4IDE3LjEgMy45NTggMjEuOTQ3IDIgMjEuOTQ3IDIgMTAuMDQ0IDMuOTU4IDEwLjA0NCAzLjk1OCAxNC43OTIgNy41NiAxNC43OTIgNy41NiAxMC4wNDQgOS41MjUgMTAuMDQ0IDkuNTI1IDIxLjk0N1xcXCIgc3R5bGU9XFxcImZpbGw6Ymx1ZVxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYuNjkyIDIxLjk0NyAxMS41MTMgMjEuOTQ3IDExLjUxMyAxMC4wNDQgMTMuNDcyIDEwLjA0NCAxMy40NzIgMTkuNzczIDE2LjY5MiAxOS43NzMgMTYuNjkyIDIxLjk0N1xcXCIgc3R5bGU9XFxcImZpbGw6Ymx1ZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy40NjIsMjEuNDkxVjE4LjgzNGEzLjY3NiwzLjY3NiwwLDAsMCwxLjE0Ni45MDksMi44MDksMi44MDksMCwwLDAsMS4yNDkuMywyLjA1LDIuMDUsMCwwLDAsLjY0Ni0uMDkyLDEuMzA5LDEuMzA5LDAsMCwwLC40NjEtLjI1MiwxLjAyOSwxLjAyOSwwLDAsMCwuMjc2LS4zODIsMS4yMzEsMS4yMzEsMCwwLDAsLjA5MS0uNDc4LDEuMywxLjMsMCwwLDAtLjE0NS0uNjIzLDEuOTA3LDEuOTA3LDAsMCwwLS40LS41MDYsNC4wNzcsNC4wNzcsMCwwLDAtLjYtLjQ0OHEtLjM0Ni0uMjE1LS43NDYtLjQzOWE0LjA0NSw0LjA0NSwwLDAsMS0xLjUxOS0xLjQxOSwzLjg4NCwzLjg4NCwwLDAsMS0uNS0yLjAyNiw0LjIzMiw0LjIzMiwwLDAsMSwuMjczLTEuNiwzLjAyLDMuMDIsMCwwLDEsLjc0NC0xLjEsMi45MzgsMi45MzgsMCwwLDEsMS4wODgtLjYzNCw0LjE2Nyw0LjE2NywwLDAsMSwxLjMxLS4yLDUuODE2LDUuODE2LDAsMCwxLDEuMi4xMTEsMy44LDMuOCwwLDAsMSwuOTY3LjM0NXYyLjQ4MmEyLjg1OSwyLjg1OSwwLDAsMC0uNDc2LS4zNjUsMy4yMTIsMy4yMTIsMCwwLDAtLjUzLS4yNjJBMy4xLDMuMSwwLDAsMCwyMS40NiwxMmEyLjc5NCwyLjc5NCwwLDAsMC0uNTEyLS4wNSwxLjk5NCwxLjk5NCwwLDAsMC0uNjA2LjA4NywxLjM0NywxLjM0NywwLDAsMC0uNDYxLjI0NSwxLjA5MiwxLjA5MiwwLDAsMC0uMjkxLjM3NywxLjE0NCwxLjE0NCwwLDAsMC0uMS40OTQsMS4yLDEuMiwwLDAsMCwuMTE1LjUzNiwxLjY1NywxLjY1NywwLDAsMCwuMzI4LjQ0OCwzLjQ2MSwzLjQ2MSwwLDAsMCwuNTE1LjQxNWMuMi4xMzYuNDMuMjc1LjY4Ni40MTlhNy4wOTQsNy4wOTQsMCwwLDEsLjkzNi42MzUsMy43MTIsMy43MTIsMCwwLDEsLjcxMy43NTksMy4yNjksMy4yNjksMCwwLDEsLjQ1NS45NjcsNC41NzMsNC41NzMsMCwwLDEsLjE1OCwxLjI2Niw0LjQzOSw0LjQzOSwwLDAsMS0uMjc3LDEuNjcyLDIuODg4LDIuODg4LDAsMCwxLS43NDksMS4xLDIuODIzLDIuODIzLDAsMCwxLTEuMS42LDQuNzQyLDQuNzQyLDAsMCwxLTEuMzI1LjE4Miw1LjQ3Niw1LjQ3NiwwLDAsMS0xLjM2MS0uMTY2QTMuNDEsMy40MSwwLDAsMSwxNy40NjIsMjEuNDkxWlxcXCIgc3R5bGU9XFxcImZpbGw6Ymx1ZVxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMzAgMjEuOTQ3IDI0LjgyMiAyMS45NDcgMjQuODIyIDEwLjA0NCAyNi43OCAxMC4wNDQgMjYuNzggMTkuNzczIDMwIDE5Ljc3MyAzMCAyMS45NDdcXFwiIHN0eWxlPVxcXCJmaWxsOmJsdWVcXFwiLz5cIixcblx0fSxcblx0XCJIVE1MXCI6IHtcblx0XHRjb2xvdXI6IFwiI2U0NGYyNlwiLFxuXHRcdGljb246IFwiPHBvbHlnb24gcG9pbnRzPVxcXCI1LjkwMiAyNy4yMDEgMy42NTUgMiAyOC4zNDUgMiAyNi4wOTUgMjcuMTk3IDE1Ljk4NSAzMCA1LjkwMiAyNy4yMDFcXFwiIHN0eWxlPVxcXCJmaWxsOiNlNDRmMjZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2IDI3Ljg1OCAyNC4xNyAyNS41OTMgMjYuMDkyIDQuMDYxIDE2IDQuMDYxIDE2IDI3Ljg1OFxcXCIgc3R5bGU9XFxcImZpbGw6I2YxNjYyYVxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYgMTMuNDA3IDExLjkxIDEzLjQwNyAxMS42MjggMTAuMjQyIDE2IDEwLjI0MiAxNiA3LjE1MSAxNS45ODkgNy4xNTEgOC4yNSA3LjE1MSA4LjMyNCA3Ljk4MSA5LjA4MyAxNi40OTggMTYgMTYuNDk4IDE2IDEzLjQwN1xcXCIgc3R5bGU9XFxcImZpbGw6I2ViZWJlYlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYgMjEuNDM0IDE1Ljk4NiAyMS40MzggMTIuNTQ0IDIwLjUwOSAxMi4zMjQgMTguMDQ0IDEwLjY1MSAxOC4wNDQgOS4yMjEgMTguMDQ0IDkuNjU0IDIyLjg5NiAxNS45ODYgMjQuNjU0IDE2IDI0LjY1IDE2IDIxLjQzNFxcXCIgc3R5bGU9XFxcImZpbGw6I2ViZWJlYlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTUuOTg5IDEzLjQwNyAxNS45ODkgMTYuNDk4IDE5Ljc5NSAxNi40OTggMTkuNDM3IDIwLjUwNyAxNS45ODkgMjEuNDM3IDE1Ljk4OSAyNC42NTMgMjIuMzI2IDIyLjg5NiAyMi4zNzIgMjIuMzc0IDIzLjA5OCAxNC4yMzcgMjMuMTc0IDEzLjQwNyAyMi4zNDEgMTMuNDA3IDE1Ljk4OSAxMy40MDdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE1Ljk4OSA3LjE1MSAxNS45ODkgOS4wNzEgMTUuOTg5IDEwLjIzNSAxNS45ODkgMTAuMjQyIDIzLjQ0NSAxMC4yNDIgMjMuNDQ1IDEwLjI0MiAyMy40NTUgMTAuMjQyIDIzLjUxNyA5LjU0OCAyMy42NTggNy45ODEgMjMuNzMyIDcuMTUxIDE1Ljk4OSA3LjE1MVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIkhUVFBcIjoge1xuXHRcdGNvbG91cjogXCIjM2I2MWE2XCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImFcXFwiIGN4PVxcXCIxMi4yNzhcXFwiIGN5PVxcXCIyNC41NTdcXFwiIHI9XFxcIjE4LjM3MVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLCAwLCAwLCAtMSwgLTAuMDAxLCAzNC4wMDEpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZDNlOWZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjE1NVxcXCIgc3RvcC1jb2xvcj1cXFwiI2QzZTlmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43NVxcXCIgc3RvcC1jb2xvcj1cXFwiIzQwNzRhZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzM2NDg2Y1xcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJiXFxcIiBjeD1cXFwiMTAuNjU3XFxcIiBjeT1cXFwiMjYuNzQ2XFxcIiByPVxcXCIyNi42NlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLCAwLCAwLCAtMSwgLTAuMDAxLCAzNC4wMDEpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjAuMTY1XFxcIi8+PC9yYWRpYWxHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImNcXFwiIGN4PVxcXCItNDUuMDVcXFwiIGN5PVxcXCI5LjI4NVxcXCIgcj1cXFwiNC4xMTVcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTIxLjk3MSA0MS45NDIpIHJvdGF0ZSgxNDMuNzM0KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PC9yYWRpYWxHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImRcXFwiIGN4PVxcXCItNDEuNDU2XFxcIiBjeT1cXFwiMzIuMTU0XFxcIiByPVxcXCI0LjExNVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgzLjU3MSA4Ny4wNzUpIHJvdGF0ZSgxNDMuNzM0KSBzY2FsZSgxLjI5NylcXFwiIHhsaW5rOmhyZWY9XFxcIiNjXFxcIi8+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJlXFxcIiBjeD1cXFwiLTQ4LjQ4NVxcXCIgY3k9XFxcIjEzLjIzOVxcXCIgcj1cXFwiNC4xMTVcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTIzLjA4NCA1NS40MTMpIHJvdGF0ZSgxNDMuNzM0KVxcXCIgeGxpbms6aHJlZj1cXFwiI2NcXFwiLz48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImZcXFwiIGN4PVxcXCItNDAuODgzXFxcIiBjeT1cXFwiMTYuMDM2XFxcIiByPVxcXCI0LjExNVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgtMC44NywgMC42MzksIC0wLjYzOCwgLTAuODcsIC05LjM1MSwgNDcuNzA2KVxcXCIgeGxpbms6aHJlZj1cXFwiI2NcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImdcXFwiIHgxPVxcXCItNjYuNTAyXFxcIiB5MT1cXFwiMi4yMTlcXFwiIHgyPVxcXCItNjQuNjI2XFxcIiB5Mj1cXFwiNi43NDlcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMC45MzksIC0wLjg3OSwgLTAuNjgzLCAtMC43MywgODQuODEsIC0zMy42MjgpXFxcIiB4bGluazpocmVmPVxcXCIjY1xcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiaFxcXCIgeDE9XFxcIi0yNi43OTFcXFwiIHkxPVxcXCIzOS4xNTlcXFwiIHgyPVxcXCItMjQuOTk5XFxcIiB5Mj1cXFwiNDQuNjgzXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEuMTMxLCAwLjYxMywgMC40NzcsIC0wLjg3OSwgMjEuNjQ4LCA2OS4wNzEpXFxcIiB4bGluazpocmVmPVxcXCIjY1xcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiaVxcXCIgeDE9XFxcIi02My4zODRcXFwiIHkxPVxcXCI4LjE3N1xcXCIgeDI9XFxcIi02My41N1xcXCIgeTI9XFxcIjQuNjlcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMC45MTgsIC0wLjg1OSwgLTAuNjY4LCAtMC43MTMsIDc3Ljg1NywgLTM2LjQ5MylcXFwiIHhsaW5rOmhyZWY9XFxcIiNjXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJqXFxcIiB4MT1cXFwiLTk5LjI1OVxcXCIgeTE9XFxcIjg5LjU0NVxcXCIgeDI9XFxcIi05OC44MjVcXFwiIHkyPVxcXCI5My4wMjNcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoLTEuMjgsIC0wLjEyNiwgLTAuMDk4LCAwLjk5NSwgLTEwMS42MzcsIC05My4wMTUpXFxcIiB4bGluazpocmVmPVxcXCIjY1xcXCIvPjxyYWRpYWxHcmFkaWVudCBpZD1cXFwia1xcXCIgY3g9XFxcIi0yMC43MTJcXFwiIGN5PVxcXCI1Ny42MVxcXCIgcj1cXFwiMi44MzZcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMCwgLTAuODQzLCAtMC43MjEsIDAsIDI2LjYyNSwgLTIxLjY5NilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM3MjlmY2ZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzYjYxYTZcXFwiLz48L3JhZGlhbEdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBpZD1cXFwibFxcXCIgY3g9XFxcIi0yMC43MTJcXFwiIGN5PVxcXCIzOS44NThcXFwiIHI9XFxcIjIuODM2XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDI2LjYyNSA2My4wOTYpIHJvdGF0ZSg5MCkgc2NhbGUoMC44NDMgMC43MjEpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNzI5ZmNmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNTA5ZTJmXFxcIi8+PC9yYWRpYWxHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9odHRwPC90aXRsZT48cGF0aCBkPVxcXCJNMjguMDI2LDE0LjJBMTEuODc3LDExLjg3NywwLDEsMSwxNi4xNDksMi4zMjUsMTEuODc4LDExLjg3OCwwLDAsMSwyOC4wMjYsMTQuMlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMTYuMTQ5LDI2LjM4NkExMi4xODMsMTIuMTgzLDAsMSwxLDI4LjMzMywxNC4yLDEyLjIsMTIuMiwwLDAsMSwxNi4xNDksMjYuMzg2Wm0wLTIzLjc1NEExMS41NzEsMTEuNTcxLDAsMSwwLDI3LjcyLDE0LjIsMTEuNTg0LDExLjU4NCwwLDAsMCwxNi4xNDksMi42MzJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzkzOTZjXFxcIi8+PHBhdGggZD1cXFwiTTI3LjY5MywxMi40MjRoMGwtLjMyOC4zNzFhNyw3LDAsMCwwLS42NTYtLjY0NGwtLjUuMDc0LS40Ni0uNTE5di42NDNsLjM5NC4zLjI2Mi4zLjM1LS40Yy4wODguMTY1LjE3NS4zMy4yNjMuNXYuNDk1bC0uMzk0LjQ0NS0uNzIyLjUtLjU0Ni41NDUtLjM1LS40LjE3NS0uNDQ1LS4zNS0uNC0uNTkxLTEuMjYyLS41LS41NjlMMjMuNiwxMi4xbC4yLjcxOC4zNzEuNDIxYTE3LjA2OSwxNy4wNjksMCwwLDAsLjcsMS43ODMsOS45NzksOS45NzksMCwwLDAsMS4yNjgtLjF2LjM0N2wtLjUyNSwxLjI4Ny0uNDgxLjU0NC0uMzk0Ljg0M1YxOS4zM2wuMTMyLjU0NS0uMjE5LjI0Ny0uNDgyLjMtLjUuNDIxLjQxNi40Ny0uNTY5LjUuMTA5LjMyMS0uODUzLjk2NkgyMi4ybC0uNDgxLjNoLS4zMDd2LS40bC0uMTMtLjc5M2MtLjE2OS0uNS0uMzQ2LS45OTEtLjUyNS0xLjQ4NCwwLS4zNjQuMDIyLS43MjUuMDQ0LTEuMDg5bC4yMTktLjQ5NS0uMzA3LS41OTUuMDIyLS44MTctLjQxNi0uNDcuMjA4LS42OC0uMzM4LS4zODRIMTkuNmwtLjItLjIyMy0uNTkxLjM3Mi0uMjQtLjI3My0uNTQ3LjQ3TDE2LjkxMSwxNS4yN2wtLjQzNy0xLjA0LjM5NC0uNTkzLS4yMTktLjI0Ny40ODEtMS4xMzljLjM5NS0uNDkxLjgwNy0uOTYzLDEuMjI1LTEuNDM2bC43NDQtLjIuODMxLS4xLjU2OS4xNDkuODA5LjgxNi4yODQtLjMyMS4zOTMtLjA0OS43NDQuMjQ3SDIzLjNsLjM5NC0uMzQ3LjE3NS0uMjQ3LS4zOTQtLjI0Ny0uNjU2LS4wNDlhNi42LDYuNiwwLDAsMC0uNTY4LS43NDNsLS4yMTkuMS0uMDg4LjY0NC0uMzk0LS40NDUtLjA4Ny0uNS0uNDM3LS4zNDZoLS4xNzZsLjQzOC40OTUtLjE3NS40NDUtLjM1LjEuMjE5LS40NDUtLjM5NC0uMi0uMzQ5LS40LS42NTcuMTQ4LS4wODcuMi0uMzk0LjI0OC0uMjE5LjU0NS0uNTQ2LjI3Mi0uMjQxLS4yNzJIMTcuODNWOS40MjhsLjU2OS0uM2guNDM3bC0uMDg4LS4zNDZMMTguNCw4LjQzOGwuNTktLjEyNC4zMjgtLjM3MS4yNjItLjQ0NmguNDgybC0uMTMyLS4zNDYuMzA3LS4ydi40bC42NTYuMTQ4LjY1Ni0uNTQ0LjA0NC0uMjQ4LjU2OC0uNGE0LjM1Myw0LjM1MywwLDAsMC0uNjEyLjFWNS45NjNsLjIxOS0uNWgtLjIxOWwtLjQ4LjQ0NS0uMTMyLjI0OC4xMzIuMzQ3LS4yMTkuNTkzLS4zNS0uMi0uMzA2LS4zNDYtLjQ4Mi4zNDYtLjE3NS0uNzkyLjgzMS0uNTQ0di0uM2wuNTI1LS4zNDYuODMxLS4yLjU2OS4yLDEuMDQ5LjItLjI2Mi4zSDIyLjUxbC41NjkuNTk0LjQzNy0uNDk1LjEzMy0uMjE4YTE1LjUzLDE1LjUzLDAsMCwxLDIuNjM1LDMuMTQ3QTExLjQ1MiwxMS40NTIsMCwwLDEsMjcuNjkzLDEyLjQyNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMDRhODc7ZmlsbC1vcGFjaXR5OjAuNzEzNDUwMzEyNjE0NDQwOVxcXCIvPjxwYXRoIGQ9XFxcIk0xNi44NjEsNS41MTdsLS4wNDQuMy4zMDcuMi41MjQtLjM0Ni0uMjYyLS4zLS4zNS4yLS4xNzQtLjA1XFxcIiBzdHlsZT1cXFwiZmlsbDojMjA0YTg3O2ZpbGwtb3BhY2l0eTowLjcxMzQ1MDMxMjYxNDQ0MDlcXFwiLz48cGF0aCBkPVxcXCJNMTcuMzQzLDMuNDg4bC0xLjEzOC0uNDQ2LTEuMzEyLjE0OC0xLjYxOS40NDUtLjMwNi4zLDEuMDA2LjY5M3YuNGwtLjM5NC40LjUyNSwxLjA0LjM0OS0uMi40MzgtLjY5M2ExNS4wNTMsMTUuMDUzLDAsMCwwLDEuOTI0LS43NDNsLjUyNS0xLjMzN1xcXCIgc3R5bGU9XFxcImZpbGw6IzIwNGE4NztmaWxsLW9wYWNpdHk6MC43MTM0NTAzMTI2MTQ0NDA5XFxcIi8+PHBhdGggZD1cXFwiTTE4LjUyNCw3LjY0NywxOC4zNDksNy4ybC0uMzA3LjEuMDg4LjU0NC4zOTQtLjJcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMDRhODc7ZmlsbC1vcGFjaXR5OjAuNzEzNDUwMzEyNjE0NDQwOVxcXCIvPjxwYXRoIGQ9XFxcIk0xOC43LDcuNTQ3bC0uMDg4LjU5NS40ODEtLjEuMzUtLjM0Ni0uMzA2LS4zYy0uMS0uMjc0LS4yMjEtLjUyOS0uMzUtLjc5MmgtLjI2MnYuM2wuMTc0LjJ2LjQ0NVxcXCIgc3R5bGU9XFxcImZpbGw6IzIwNGE4NztmaWxsLW9wYWNpdHk6MC43MTM0NTAzMTI2MTQ0NDA5XFxcIi8+PHBhdGggZD1cXFwiTTEyLjIyNSwxNi45NTNsLS4zNS0uNjkzLS42NTYtLjE0OC0uMzUtLjk0LS44NzUuMS0uNzQzLS41NDQtLjc4OC42OTN2LjEwOWEzLDMsMCwwLDEtLjc0My0uMjA5bC0uMTc1LS40OTVWMTQuMjhsLS41MjUuMDQ5cS4wNjYtLjUyLjEzMS0xLjAzOUg2Ljg0NWwtLjMwNi40LS4zMDYuMTQ4TDUuOCwxMy41ODdsLS4wNDQtLjU0NS4wODgtLjU5NC42NTYtLjQ5NUg3LjAybC4wODctLjMuNjU2LjE0OC40ODEuNTk1LjA4OC0uOTkxLjgzMS0uNjkzLjMwNi0uNzQzLjYxMi0uMjQ3LjM1LS40OTUuNzg3LS4xNDkuMzk0LS41OTNIMTAuNDMybC43NDQtLjM0N0gxMS43bC43NDQtLjI0OC4wODgtLjMtLjI2My0uMjQ4LS4zMDYtLjEuMDg4LS4zLS4yMTktLjQ0NS0uNTI1LjIuMDg4LS40LS42MTItLjM0N0wxMC4zLDYuOGwuMDQ0LjMtLjQ4MS4yLS4zMDYuNjQzLS4xMzEtLjU5NEw4LjU5NCw3bC0uMTMxLS40NDUsMS4wOTQtLjY0NC40ODEtLjQ0NS4wNDQtLjU0NC0uMjYyLS4xNDktLjM1LS4wNS0uMjE5LjU0NXMtLjM2Ni4wNzItLjQ2LjA5NUExMi41LDEyLjUsMCwwLDAsNC42LDEzLjM3MWE2Ljc4OSw2Ljc4OSwwLDAsMCwuNDA5LjcxMWwuOTE4LjU0NC45MTguMjQ4LjM5NC41LjYxMi40NDUuMzUtLjA0OS4yNjIuMTE4di4wOGwtLjM1Ljk0LS4yNjMuNC4wODguMi0uMjE5Ljc0Mi43ODcsMS40MzYuNzg3LjY5My4zNS40OTVMOS42LDIxLjlsLjI2My41OTNMOS42LDIzLjYzN3MtLjAyMS0uMDA3LjAxMy4xMDdhNS4yNzgsNS4yNzgsMCwwLDAsMS40ODguODA5bC4xNjEtLjEyMy0uMDg3LS4yNDcuMzUtLjM0Ny4xMzEtLjM0Ny41NjktLjIuNDM3LTEuMDg5LS4xMzEtLjMuMzA2LS40NDUuNjU2LS4xNDkuMzUtLjc5Mi0uMDg4LS45OS41MjUtLjc0My4wODgtLjc0M2MtLjcxOC0uMzU2LTEuNDMtLjcyMy0yLjE0My0xLjA4OVxcXCIgc3R5bGU9XFxcImZpbGw6IzIwNGE4NztmaWxsLW9wYWNpdHk6MC43MTM0NTAzMTI2MTQ0NDA5XFxcIi8+PHBhdGggZD1cXFwiTTExLjI2Myw1LjcxNWwuNDM3LjNoLjM1VjUuNjY2bC0uNDM3LS4yLS4zNS4yNDdcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMDRhODc7ZmlsbC1vcGFjaXR5OjAuNzEzNDUwMzEyNjE0NDQwOVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC4xMjYsNS4zMTlsLS4yMTkuNTQ0aC40MzhsLjIxOS0uNWMuMTg5LS4xMzMuMzc2LS4yNjguNTY4LS40bC40MzguMTQ5Ljg3NS41OTQuNDM4LS40LS40ODItLjItLjIxOS0uNDQ2LS44MzEtLjEtLjA0NC0uMjQ4LS4zOTQuMS0uMTc1LjM0Ni0uMjE5LS40NDYtLjA4Ny4yLjA0NC41LS4zNS4zXFxcIiBzdHlsZT1cXFwiZmlsbDojMjA0YTg3O2ZpbGwtb3BhY2l0eTowLjcxMzQ1MDMxMjYxNDQ0MDlcXFwiLz48cGF0aCBkPVxcXCJNMTEuNyw0LjA4MWwuMjE5LS4yLjQzOC0uMWE2LjksNi45LDAsMCwxLC45MTgtLjM0N2wtLjE3NC0uMy0uNTY1LjA4MS0uMjY3LjI2Ni0uNDQuMDY0LS4zOTEuMTg0LS4xOS4wOTItLjExNi4xNTUuNTY4LjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMDRhODc7ZmlsbC1vcGFjaXR5OjAuNzEzNDUwMzEyNjE0NDQwOVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi40NDQsOC43ODVsLjI2My0uNC0uMzk0LS4zLjEzMS42OTNcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMDRhODc7ZmlsbC1vcGFjaXR5OjAuNzEzNDUwMzEyNjE0NDQwOVxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4xNDksMjUuNzgzQTExLjU4LDExLjU4LDAsMSwxLDI3LjcyOSwxNC4yLDExLjU5MywxMS41OTMsMCwwLDEsMTYuMTQ5LDI1Ljc4M1ptMC0yMi41NDhBMTAuOTY4LDEwLjk2OCwwLDEsMCwyNy4xMTcsMTQuMiwxMC45OCwxMC45OCwwLDAsMCwxNi4xNDksMy4yMzVaXFxcIiBzdHlsZT1cXFwib3BhY2l0eTowLjM5NTYwNDQwMTgyNjg1ODU7aXNvbGF0aW9uOmlzb2xhdGU7ZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTUuNTQxLDEwLjI0MWE0LjExNSw0LjExNSwwLDEsMCw2LjYzNi00Ljg2NmgwQTQuMTE1LDQuMTE1LDAsMCwwLDUuNTQsMTAuMjRaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTcuODM2LDguNTU4YTEuMjY4LDEuMjY4LDAsMSwwLDIuMDQ2LTEuNWgwYTEuMjY4LDEuMjY4LDAsMCwwLTIuMDQ2LDEuNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTcuOTUyLDI0LjhhNS4zMzcsNS4zMzcsMCwxLDAsOC42MDctNi4zMTJ2MEE1LjMzNyw1LjMzNywwLDAsMCwxNy45NSwyNC44WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNkKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC45MjgsMjIuNjE2YTEuNjQ1LDEuNjQ1LDAsMSwwLDIuNjUzLTEuOTQ2aDBhMS42NDUsMS42NDUsMCwwLDAtMi42NTMsMS45NDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTQuODU5LDE4LjQ5M0E0LjExNSw0LjExNSwwLDEsMCwxMS41LDEzLjYyNmgwYTQuMTE1LDQuMTE1LDAsMCwwLTYuNjM2LDQuODY2WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNlKVxcXCIvPjxwYXRoIGQ9XFxcIk03LjE1NCwxNi44MDlhMS4yNjgsMS4yNjgsMCwxLDAsMi4wNDYtMS41aDBhMS4yNjgsMS4yNjgsMCwwLDAtMi4wNDYsMS41WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xMi40MDgsMTAuMjY5QTQuNDQxLDQuNDQxLDAsMSwwLDE5LjU3LDUuMDE2aDBhNC40NDEsNC40NDEsMCwxLDAtNy4xNjIsNS4yNTNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2YpXFxcIi8+PHBhdGggZD1cXFwiTTE0Ljg4NSw4LjQ1MmExLjM2OSwxLjM2OSwwLDEsMCwyLjIwOC0xLjYxOWgwYTEuMzY5LDEuMzY5LDAsMSwwLTIuMjA4LDEuNjE5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xMi42OCwyNi4yMzhhMy44MywzLjgzLDAsMCwxLTIuOTA5LTEuMDg3Yy0xLjEzMy0xLjIxLTEuMi0zLjI1NS0uMi01Ljc1N2EyMS41NDIsMjEuNTQyLDAsMCwxLDUuMzA3LTcuMzI2QzIwLjA2NCw3LjIxNSwyNS45NDUsNS4zNTYsMjguMjcsNy44MzljMS4xMzMsMS4yMTEsMS4yLDMuMjU1LjIsNS43NTdhMjEuNTUzLDIxLjU1MywwLDAsMS01LjMwOCw3LjMyNkEyMS41NTEsMjEuNTUxLDAsMCwxLDE1LjUsMjUuNzMzLDkuMjI5LDkuMjI5LDAsMCwxLDEyLjY4LDI2LjIzOFpNMjUuMzQyLDcuMjhjLTIuNywwLTYuNiwxLjkwOC0xMC4xLDUuMTgzQTIxLDIxLDAsMCwwLDEwLjA3MSwxOS42Yy0uOTIxLDIuMy0uODg3LDQuMTM4LjA5NCw1LjE4N3MyLjgxNywxLjIsNS4xNjkuNDM3YTIxLDIxLDAsMCwwLDcuNDYtNC42OTIsMjEsMjEsMCwwLDAsNS4xNzUtNy4xMzJjLjkyMS0yLjMuODg4LTQuMTM4LS4wOTUtNS4xODdBMy4zNCwzLjM0LDAsMCwwLDI1LjM0Miw3LjI4WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNnKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMS42ODEsMjIuMDk0YTIwLjYzMywyMC42MzMsMCwwLDEtOS4zMzktMi43NTlDNi4xLDE1Ljk1LDIuNDczLDEwLjk1Nyw0LjA5NCw3Ljk2OGMuNzktMS40NTgsMi43LTIuMTc1LDUuNC0yLjAxMkEyMS41NDIsMjEuNTQyLDAsMCwxLDE4LjEyLDguNjc0YTIxLjU0NSwyMS41NDUsMCwwLDEsNi45ODcsNS43NDZjMS42LDIuMTY3LDIuMDUxLDQuMTYzLDEuMjYxLDUuNjIxQzI1LjYyMiwyMS40MTYsMjMuOTE1LDIyLjA5NCwyMS42ODEsMjIuMDk0Wk04Ljc1OSw2LjQ3NGMtMi4xLDAtMy41NzIuNjEyLTQuMTksMS43NTFDMy4xMTcsMTAuOSw2LjcyLDE1LjY3NCwxMi42LDE4Ljg2czExLjg0MywzLjYsMTMuMjk0LjkyNGMuNjg1LTEuMjYzLjI1MS0zLjA1NC0xLjIyLTUuMDQyYTIxLDIxLDAsMCwwLTYuODEtNS41OTNBMjEsMjEsMCwwLDAsOS40NTksNi41UTkuMSw2LjQ3NCw4Ljc1OSw2LjQ3NFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaClcXFwiLz48cGF0aCBkPVxcXCJNMTAsMjQuMDc4YTMuNzU3LDMuNzU3LDAsMCwxLTIuODUxLTEuMDY1Yy0xLjExLTEuMTg3LTEuMTgxLTMuMTg5LS4yLTUuNjM5YTIxLjA2MiwyMS4wNjIsMCwwLDEsNS4xODktNy4xNjNjNS4wNzMtNC43NDcsMTAuODMtNi41NjMsMTMuMS00LjEzMmgwYzIuMjc1LDIuNDMxLjA4Myw4LjA1My00Ljk5LDEyLjhhMjEuMDU5LDIxLjA1OSwwLDAsMS03LjQ5MSw0LjdBOS4wMjQsOS4wMjQsMCwwLDEsMTAsMjQuMDc4Wk0yMi4zNzMsNS41NTNjLTIuNjMsMC02LjQzOSwxLjg2NC05Ljg1Niw1LjA2MkEyMC41LDIwLjUsMCwwLDAsNy40NjMsMTcuNThjLS45LDIuMjM5LS44NjYsNC4wMzQuMDksNS4wNTVzMi43NDUsMS4xNzIsNS4wMzguNDI0YTIwLjUxMywyMC41MTMsMCwwLDAsNy4yODQtNC41ODJjNC43NjYtNC40Niw2Ljk5NC05Ljg1Myw0Ljk2NS0xMi4wMmgwQTMuMjU2LDMuMjU2LDAsMCwwLDIyLjM3Myw1LjU1M1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaSlcXFwiLz48cGF0aCBkPVxcXCJNMTcuNTEyLDE5LjQxM2MtLjg2LDAtMS43NDgtLjA0My0yLjY1OS0uMTMzQzcuNzg0LDE4LjU4NCwyLjUwNywxNS4zODgsMi44NCwxMmgwYy4zMzMtMy4zODMsNi4xMzMtNS40OSwxMy4yLTQuNzkxczEyLjM0NSwzLjg5MiwxMi4wMTIsNy4yNzVDMjcuNzYzLDE3LjQzNiwyMy4zMjQsMTkuNDEzLDE3LjUxMiwxOS40MTNaTTMuMzc4LDEyLjA1N2MtLjMsMy4wMzEsNC44NzMsNi4wMywxMS41MjgsNi42ODZzMTIuMzEyLTEuMjc3LDEyLjYxMS00LjMwOFMyMi42NDQsOC40MDYsMTUuOTg4LDcuNzUsMy42NzcsOS4wMjcsMy4zNzgsMTIuMDU3WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNqKVxcXCIvPjxwYXRoIGQ9XFxcIk02LjI1MSwyOS45NjZoNi42NzRWMjAuODA5aDIuOTgxTDkuNTQ4LDExLjQzNCwzLjI5NSwyMC43ODJsMi45NTguMDMxWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNrKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi45MjQsMzAuMDQ1SDYuMjUxYS4wNDkuMDQ5LDAsMCwxLS4wMzktLjAyM2MtLjAxLS4wMTUtLjAxNi0zLjEzNS0uMDE2LTMuMTU2bDAtNS45NzUtMi45LS4wM2EuMDYuMDYsMCwwLDEtLjA1MS0uMDQ4LjEuMSwwLDAsMSwuMDExLS4wODVMOS41MDgsMTEuMzhhLjA1Ni4wNTYsMCwwLDEsLjA0MS0uMDI1LjA1LjA1LDAsMCwxLC4wNC4wMjRsNi4zNTcsOS4zNzVhLjEuMSwwLDAsMSwuMDExLjA4Ni4wNTkuMDU5LDAsMCwxLS4wNTEuMDQ4SDEyLjk4djkuMDc4QzEyLjk4LDMwLjAxLDEyLjk1NSwzMC4wNDUsMTIuOTI0LDMwLjA0NVptLTYuNjE4LS4xNThoNi41NjJWMjAuODA5YzAtLjA0NC4wMjUtLjA3OS4wNTYtLjA3OWgyLjg1TDkuNTQ5LDExLjU0OSwzLjQyNCwyMC43bDIuODMuMDNjLjAzMSwwLC4wNTUuMDM2LjA1NS4wNzlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMTgzODY4XFxcIi8+PHBhdGggZD1cXFwiTTE5LjA1MywyMC41ODdsLTIuOTU4LjAzMSw2LjI1NCw5LjM0OCw2LjM1Ny05LjM3NUgyNS43MjRWMTEuNDM0SDE5LjA1MVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjbClcXFwiLz48cGF0aCBkPVxcXCJNMjUuNzgsMTEuNDM0djkuMDc4aDIuOTI1YS4wNTkuMDU5LDAsMCwxLC4wNTEuMDQ4LjEuMSwwLDAsMS0uMDExLjA4NmwtNi4zNTcsOS4zNzVhLjA1LjA1LDAsMCwxLS4wNC4wMjQuMDU2LjA1NiwwLDAsMS0uMDQxLS4wMjVsLTYuMjU0LTkuMzQ4YS4xLjEsMCwwLDEtLjAxMS0uMDg1LjA2LjA2LDAsMCwxLC4wNTEtLjA0OGwyLjktLjAzLDAtNS45NzVjMC0uMDIxLjAwNi0zLjE0MS4wMTYtMy4xNTZhLjA0OS4wNDksMCwwLDEsLjAzOS0uMDIzaDYuNjc0QzI1Ljc1NSwxMS4zNTUsMjUuNzgsMTEuMzksMjUuNzgsMTEuNDM0Wm0tNi42NzIsOS4xNTNjMCwuMDQzLS4wMjUuMDc5LS4wNTUuMDc5bC0yLjgzLjAzLDYuMTI1LDkuMTU2LDYuMjI2LTkuMTgxaC0yLjg1Yy0uMDMxLDAtLjA1Ni0uMDM1LS4wNTYtLjA3OVYxMS41MTNIMTkuMTA3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzE4Mzg2OFxcXCIvPlwiLFxuXHR9LFxuXHRcIklkcmlzXCI6IHtcblx0XHRjb2xvdXI6IFwiIzhhMDgxOVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTEzLjM3Niw2LjJjMy42LDEuMSw0LjUsMiw1LjgsNS4yLS4zLTQtMS45LTUuNi01LjgtNS4yWlxcXCIgc3R5bGU9XFxcImZpbGw6IzhhMDgxOVxcXCIvPjxwYXRoIGQ9XFxcIk04LjM3NiwxMi40YzIuMy43LDUsMS4zLDYsNS43LjQtNS41LTIuMi01LjgtNi01LjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGEwODE5XFxcIi8+PHBhdGggZD1cXFwiTTkuOTc2LDguOGMzLjUuNyw1LjcsMS43LDcsNi4yLjMtNS44LTIuOS02LjQtNy02LjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGEwODE5XFxcIi8+PHBhdGggZD1cXFwiTTE0LjU3NiwyYzE5LjEsMTIuNC00LjIsMTIuNy44LDI3LjFsMywuOWMtOC4zLTExLjIsMTguNC0xNy0zLjgtMjhaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGEwODE5XFxcIi8+XCIsXG5cdH0sXG5cdFwiSW5pXCI6IHtcblx0XHRjb2xvdXI6IFwiIzk5YjhjNFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTIzLjI2NSwyNC4zODFsLjktLjg5NGM0LjE2NC4xMzYsNC4yMjgtLjAxLDQuNDExLS40MzhsMS4xNDQtMi43ODVMMjkuODA1LDIwbC0uMDkzLS4yMzFjLS4wNDktLjEyMi0uMi0uNDg2LTIuOC0yLjk2NVYxNS41YzMtMi44OSwyLjkzNi0zLjAzOCwyLjc2NS0zLjQ2MUwyOC41MzgsOS4yMjVjLS4xNzEtLjQyMi0uMjM2LS41ODctNC4zNy0uNDc0bC0uOS0uOTNhMjAuMTY2LDIwLjE2NiwwLDAsMC0uMTQxLTQuMTA2bC0uMTE2LS4yNjMtMi45NzQtMS4zYy0uNDM4LS4yLS41OTItLjI3Mi0zLjQsMi43ODZsLTEuMjYyLS4wMTljLTIuODkxLTMuMDg2LTMuMDI4LTMuMDMtMy40NjEtMi44NTVMOS4xNDksMy4xODJjLS40MzMuMTc1LS41ODYuMjM3LS40MTgsNC40MzdsLS44OTMuODljLTQuMTYyLS4xMzYtNC4yMjYuMDEyLTQuNDA3LjQzOEwyLjI4NSwxMS43MzMsMi4xOTUsMTJsLjA5NC4yMzJjLjA0OS4xMi4xOTQuNDgsMi44LDIuOTYybDAsMS4zYy0zLDIuODktMi45MzUsMy4wMzgtMi43NjMsMy40NjJsMS4xMzgsMi44MTdjLjE3NC40MzEuMjM2LjU4NCw0LjM2OS40NzZsLjkuOTM1YTIwLjI0MywyMC4yNDMsMCwwLDAsLjEzNyw0LjFsLjExNi4yNjUsMi45OTMsMS4zMDhjLjQzNS4xODIuNTg2LjI0NywzLjM4Ni0yLjhsMS4yNjIuMDE2YzIuODk1LDMuMDksMy4wNDMsMy4wMywzLjQ2NiwyLjg1OWwyLjc1OS0xLjExNUMyMy4yODgsMjguNjQ0LDIzLjQ0LDI4LjU4MywyMy4yNjUsMjQuMzgxWk0xMS40MDcsMTcuODU3YTQuOTU3LDQuOTU3LDAsMSwxLDYuNDg4LDIuODI0QTUuMDE0LDUuMDE0LDAsMCwxLDExLjQwNywxNy44NTdaXFxcIiBzdHlsZT1cXFwiZmlsbDojOTliOGM0XFxcIi8+XCIsXG5cdH0sXG5cdFwiSW9cIjoge1xuXHRcdGNvbG91cjogXCIjYzJjMmMyXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMiwyLjg4N0g3LjA3NVY3LjUxSDJabS4wNTIsNi44M0g3LjA0VjI4LjYyNkgyLjA1MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cGF0aCBkPVxcXCJNMTMuMjcxLDI2LjQ1NGE5Ljc5MSw5Ljc5MSwwLDAsMS0yLjYxNi03LjE3OCwxMC4xNDgsMTAuMTQ4LDAsMCwxLDIuNjE2LTcuMzQzLDkuMzIxLDkuMzIxLDAsMCwxLDcuMDQ3LTIuNzIsOS4zNCw5LjM0LDAsMCwxLDcuMDc1LDIuNzJBMTAuMTY4LDEwLjE2OCwwLDAsMSwzMCwxOS4yNzZhOS44MDksOS44MDksMCwwLDEtMi42MDcsNy4xNzgsOS40NTYsOS40NTYsMCwwLDEtNy4wNzUsMi42NTlBOS40MzYsOS40MzYsMCwwLDEsMTMuMjcxLDI2LjQ1NFptMTAuNDM2LTIuOTcyYTYuNyw2LjcsMCwwLDAsMS4xNjYtNC4yNTgsNi45NDMsNi45NDMsMCwwLDAtMS4xNjYtNC4zNTQsNC4wNDcsNC4wNDcsMCwwLDAtMy4zODktMS40ODYsNC4wMjIsNC4wMjIsMCwwLDAtMy4zOCwxLjQ4Niw2Ljk5MSw2Ljk5MSwwLDAsMC0xLjE1Niw0LjM1NCw2Ljc0NCw2Ljc0NCwwLDAsMCwxLjE1Niw0LjI1OCw0LjA1Myw0LjA1MywwLDAsMCwzLjM4LDEuNDZBNC4wNzgsNC4wNzgsMCwwLDAsMjMuNzA3LDIzLjQ4MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz5cIixcblx0fSxcblx0XCJKYXZhXCI6IHtcblx0XHRjb2xvdXI6IFwiIzUzODJhMVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTEyLjMyNSwyMy42NTRzLTEuMDcuNjIyLjc2MS44MzNhMTYuMDIzLDE2LjAyMywwLDAsMCw1LjgtLjI0NiwxMC4wODgsMTAuMDg4LDAsMCwwLDEuNTQxLjc1MmMtNS40ODEsMi4zNDktMTIuNDA1LS4xMzYtOC4xLTEuMzM5XFxcIiBzdHlsZT1cXFwiZmlsbDojNTM4MmExXFxcIi8+PHBhdGggZD1cXFwiTTExLjY1NiwyMC41ODhzLTEuMi44ODguNjMzLDEuMDc4YTIyLjYxOCwyMi42MTgsMCwwLDAsNy40ODEtLjM1OSwzLjMyLDMuMzIsMCwwLDAsMS4xNTIuN2MtNi42MjcsMS45MzgtMTQuMDA5LjE1My05LjI2Ni0xLjQyMVxcXCIgc3R5bGU9XFxcImZpbGw6IzUzODJhMVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy4zLDE1LjM4OGEyLjA1MSwyLjA1MSwwLDAsMS0uMzU1LDIuOTU0czMuNDI5LTEuNzcsMS44NTQtMy45ODdjLTEuNDcxLTIuMDY3LTIuNi0zLjA5NSwzLjUwOC02LjYzNiwwLDAtOS41ODYsMi4zOTQtNS4wMDcsNy42NjlcXFwiIHN0eWxlPVxcXCJmaWxsOiM1MzgyYTFcXFwiLz48cGF0aCBkPVxcXCJNMjQuNTUyLDI1LjkyMXMuNzkyLjY1Mi0uODcyLDEuMTU3Yy0zLjE2NC45NTgtMTMuMTY4LDEuMjQ4LTE1Ljk0OC4wMzgtMS0uNDM1Ljg3NC0xLjAzOCwxLjQ2NC0xLjE2NGEzLjgsMy44LDAsMCwxLC45NjYtLjEwOGMtMS4xMTEtLjc4My03LjE4MSwxLjUzNy0zLjA4MywyLjIsMTEuMTc2LDEuODEyLDIwLjM3Mi0uODE2LDE3LjQ3My0yLjEyNFxcXCIgc3R5bGU9XFxcImZpbGw6IzUzODJhMVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi44NCwxNy40MTJzLTUuMDg5LDEuMjA5LTEuOCwxLjY0OGEzOC4yMjUsMzguMjI1LDAsMCwwLDYuNzMxLS4wNzJjMi4xMDYtLjE3OCw0LjIyMS0uNTU1LDQuMjIxLS41NTVhOC45MzQsOC45MzQsMCwwLDAtMS4yOC42ODVjLTUuMTY4LDEuMzU5LTE1LjE1MS43MjctMTIuMjc3LS42NjNhOS42MjksOS42MjksMCwwLDEsNC40MDctMS4wNDJcXFwiIHN0eWxlPVxcXCJmaWxsOiM1MzgyYTFcXFwiLz48cGF0aCBkPVxcXCJNMjEuOTY5LDIyLjUxNWM1LjI1My0yLjczLDIuODI0LTUuMzUzLDEuMTI5LTVhMy45MzIsMy45MzIsMCwwLDAtLjYuMTYxLjk1Ny45NTcsMCwwLDEsLjQ0OS0uMzQ2YzMuMzU0LTEuMTc5LDUuOTMzLDMuNDc4LTEuMDgzLDUuMzIyYS40NTguNDU4LDAsMCwwLC4xMDYtLjEzOFxcXCIgc3R5bGU9XFxcImZpbGw6IzUzODJhMVxcXCIvPjxwYXRoIGQ9XFxcIk0xOC44LDJzMi45MDksMi45MS0yLjc1OSw3LjM4NmMtNC41NDYsMy41OS0xLjAzNyw1LjYzNywwLDcuOTc1LTIuNjUzLTIuMzk0LTQuNi00LjUtMy4yOTQtNi40NjNDMTQuNjY0LDguMDE5LDE5Ljk3Niw2LjYyMywxOC44LDJcXFwiIHN0eWxlPVxcXCJmaWxsOiM1MzgyYTFcXFwiLz48cGF0aCBkPVxcXCJNMTMuMzU2LDI5LjkxMmM1LjA0Mi4zMjMsMTIuNzg2LS4xNzksMTIuOTY5LTIuNTY1LDAsMC0uMzUzLjktNC4xNjcsMS42MjNhNDEuNDU4LDQxLjQ1OCwwLDAsMS0xMi43Ni4ycy42NDUuNTMzLDMuOTU5Ljc0NlxcXCIgc3R5bGU9XFxcImZpbGw6IzUzODJhMVxcXCIvPlwiLFxuXHRcdGlubGluZUNvbW1lbnQ6IFtcblx0XHRcdFwiLy9cIixcblx0XHRdLFxuXHR9LFxuXHRcIkphdmFTY3JpcHRcIjoge1xuXHRcdGNvbG91cjogXCIjZjVkZTE5XCIsXG5cdFx0aWNvbjogXCI8cmVjdCB4PVxcXCIyXFxcIiB5PVxcXCIyXFxcIiB3aWR0aD1cXFwiMjhcXFwiIGhlaWdodD1cXFwiMjhcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNWRlMTlcXFwiLz48cGF0aCBkPVxcXCJNMjAuODA5LDIzLjg3NWEyLjg2NiwyLjg2NiwwLDAsMCwyLjYsMS42YzEuMDksMCwxLjc4Ny0uNTQ1LDEuNzg3LTEuMywwLS45LS43MTYtMS4yMjItMS45MTYtMS43NDdsLS42NTgtLjI4MmMtMS45LS44MDktMy4xNi0xLjgyMi0zLjE2LTMuOTY0LDAtMS45NzMsMS41LTMuNDc2LDMuODUzLTMuNDc2YTMuODg5LDMuODg5LDAsMCwxLDMuNzQyLDIuMTA3TDI1LDE4LjEyOEExLjc4OSwxLjc4OSwwLDAsMCwyMy4zMTEsMTdhMS4xNDUsMS4xNDUsMCwwLDAtMS4yNTksMS4xMjhjMCwuNzg5LjQ4OSwxLjEwOSwxLjYxOCwxLjZsLjY1OC4yODJjMi4yMzYuOTU5LDMuNSwxLjkzNiwzLjUsNC4xMzMsMCwyLjM2OS0xLjg2MSwzLjY2Ny00LjM2LDMuNjY3YTUuMDU1LDUuMDU1LDAsMCwxLTQuNzk1LTIuNjkxWm0tOS4yOTUuMjI4Yy40MTMuNzMzLjc4OSwxLjM1MywxLjY5MywxLjM1My44NjQsMCwxLjQxLS4zMzgsMS40MS0xLjY1M1YxNC44NTZoMi42MzF2OC45ODJjMCwyLjcyNC0xLjYsMy45NjQtMy45MjksMy45NjRhNC4wODUsNC4wODUsMCwwLDEtMy45NDctMi40WlxcXCIvPlwiLFxuXHRcdGlubGluZUNvbW1lbnQ6IFtcblx0XHRcdFwiLy9cIixcblx0XHRdLFxuXHR9LFxuXHRcIkpTT05cIjoge1xuXHRcdGNvbG91cjogXCIjZjVkZTE5XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNNC4wMTQsMTQuOTc2YTIuNTEsMi41MSwwLDAsMCwxLjU2Ny0uNTE4QTIuMzc3LDIuMzc3LDAsMCwwLDYuMzg2LDEzLjEsMTUuMjYxLDE1LjI2MSwwLDAsMCw2LjYsMTAuMTU2cS4wMTItMi4wODUuMDc1LTIuNzQ3YTUuMjM2LDUuMjM2LDAsMCwxLC40MTgtMS42ODYsMy4wMjUsMy4wMjUsMCwwLDEsLjc1NS0xLjAxOEEzLjA0NiwzLjA0NiwwLDAsMSw5LDQuMTI1LDYuNzYyLDYuNzYyLDAsMCwxLDEwLjU0NCw0aC43VjUuOTZoLS4zODdhMi4zMzgsMi4zMzgsMCwwLDAtMS43MjMuNDY4QTMuNCwzLjQsMCwwLDAsOC43MDksOC41MmEzNi4wNTQsMzYuMDU0LDAsMCwxLS4xMzcsNC4xMzMsNC43MzQsNC43MzQsMCwwLDEtLjc2OCwyLjA2QTQuNTY3LDQuNTY3LDAsMCwxLDYuMSwxNmEzLjgwOSwzLjgwOSwwLDAsMSwxLjk5MiwxLjc1NCw4Ljg2MSw4Ljg2MSwwLDAsMSwuNjE4LDMuODY1cTAsMi40MzUuMDUsMi45QTEuNzU1LDEuNzU1LDAsMCwwLDkuMjY0LDI1LjdhMi42MzksMi42MzksMCwwLDAsMS41OTIuMzM3aC4zODdWMjhoLS43YTUuNjU1LDUuNjU1LDAsMCwxLTEuNzczLS4yLDIuOTcsMi45NywwLDAsMS0xLjMyNC0uOTMsMy4zNTMsMy4zNTMsMCwwLDEtLjY4MS0xLjYzQTI0LjE3NSwyNC4xNzUsMCwwLDEsNi42LDIyLjAwNiwxNi40NjksMTYuNDY5LDAsMCwwLDYuMzg2LDE4LjlhMi40MDgsMi40MDgsMCwwLDAtLjgwNS0xLjM2MSwyLjQ4OSwyLjQ4OSwwLDAsMC0xLjU2Ny0uNTI0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2Y1ZGUxOVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy45ODYsMTcuMDExYTIuNDg5LDIuNDg5LDAsMCwwLTEuNTY3LjUyNCwyLjQwOCwyLjQwOCwwLDAsMC0uODA1LDEuMzYxLDE2LjQ2OSwxNi40NjksMCwwLDAtLjIxMiwzLjEwOSwyNC4xNzUsMjQuMTc1LDAsMCwxLS4xNjksMy4yMzQsMy4zNTMsMy4zNTMsMCwwLDEtLjY4MSwxLjYzLDIuOTcsMi45NywwLDAsMS0xLjMyNC45Myw1LjY1NSw1LjY1NSwwLDAsMS0xLjc3My4yaC0uN1YyNi4wNGguMzg3YTIuNjM5LDIuNjM5LDAsMCwwLDEuNTkyLS4zMzcsMS43NTUsMS43NTUsMCwwLDAsLjUwNi0xLjE4NnEuMDUtLjQ2Mi4wNS0yLjlhOC44NjEsOC44NjEsMCwwLDEsLjYxOC0zLjg2NUEzLjgwOSwzLjgwOSwwLDAsMSwyNS45LDE2YTQuNTY3LDQuNTY3LDAsMCwxLTEuNy0xLjI4Niw0LjczNCw0LjczNCwwLDAsMS0uNzY4LTIuMDYsMzYuMDU0LDM2LjA1NCwwLDAsMS0uMTM3LTQuMTMzLDMuNCwzLjQsMCwwLDAtLjQyNS0yLjA5MiwyLjMzOCwyLjMzOCwwLDAsMC0xLjcyMy0uNDY4aC0uMzg3VjRoLjdBNi43NjIsNi43NjIsMCwwLDEsMjMsNC4xMjVhMy4wNDYsMy4wNDYsMCwwLDEsMS4xNDkuNTgxLDMuMDI1LDMuMDI1LDAsMCwxLC43NTUsMS4wMTgsNS4yMzYsNS4yMzYsMCwwLDEsLjQxOCwxLjY4NnEuMDYyLjY2Mi4wNzUsMi43NDdhMTUuMjYxLDE1LjI2MSwwLDAsMCwuMjEyLDIuOTQ3LDIuMzc3LDIuMzc3LDAsMCwwLC44MDUsMS4zNTUsMi41MSwyLjUxLDAsMCwwLDEuNTY3LjUxOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNWRlMTlcXFwiLz5cIixcblx0fSxcblx0XCJKU09ONVwiOiB7XG5cdFx0Y29sb3VyOiBcIiM5MDkwOTBcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xMi44MTUsMTUuMTY3bC42OC01LjY3Nmg2LjQ4OXYyaC00LjRMMTUuMzI5LDEzLjdhMi40LDIuNCwwLDAsMSwuMjUyLS4xMjIsMi45NjIsMi45NjIsMCwwLDEsLjM3NC0uMTMsMi45LDIuOSwwLDAsMSwuNDU4LS4xMDYsMi44MzQsMi44MzQsMCwwLDEsLjUxMi0uMDQ2LDMuOTgzLDMuOTgzLDAsMCwxLDEuNDY2LjI1MiwyLjczNiwyLjczNiwwLDAsMSwxLjA3Ni43MjMsMy4xNjcsMy4xNjcsMCwwLDEsLjY2NCwxLjE2OCw1LDUsMCwwLDEsLjIyOCwxLjU4OCw0LjE1Nyw0LjE1NywwLDAsMS0uMjM2LDEuMzg3LDMuMzA3LDMuMzA3LDAsMCwxLTEuOSwyLjAyOSw0LjMsNC4zLDAsMCwxLTEuNzE1LjMxMiw0Ljc1LDQuNzUsMCwwLDEtMS40NTgtLjIyOCw0LjA1NCw0LjA1NCwwLDAsMS0xLjI1Mi0uNjU2LDMuMzU5LDMuMzU5LDAsMCwxLS44NzgtMS4wNDYsMi43ODcsMi43ODcsMCwwLDEtLjMyLTEuMzgySDE1LjE4YTEuNDU4LDEuNDU4LDAsMCwwLC4zOS45NywxLjM4MywxLjM4MywwLDAsMCwxLjU1OC4yMDYsMS4wODksMS4wODksMCwwLDAsLjQtLjQxMiwxLjc0OSwxLjc0OSwwLDAsMCwuMjA2LS42MTgsNC4zLDQuMywwLDAsMCwuMDYyLS43NCwyLjcwOSwyLjcwOSwwLDAsMC0uMDkyLS43NCwxLjUwNiwxLjUwNiwwLDAsMC0uMjgyLS41NTgsMS4yMjksMS4yMjksMCwwLDAtLjUtLjM0OSwxLjc4LDEuNzgsMCwwLDAtLjcxOC0uMTMsMi4xMjEsMi4xMjEsMCwwLDAtLjUuMDU0LDEuODA1LDEuODA1LDAsMCwwLS4zODIuMTM4LDEuMzE4LDEuMzE4LDAsMCwwLS4yNzQuMTksMS4yOCwxLjI4LDAsMCwwLS4xOS4ybC0yLjA0OC0uNDgyXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTUuOTg1LDIzLjM0M2E0LjQ1LDQuNDUsMCwwLDEtMS4zMTEtLjU4LDMuMiwzLjIsMCwwLDEtLjg0OC0uODI0LDMuMDEyLDMuMDEyLDAsMCwxLS40NTgtMS4wMDgsNC44NzksNC44NzksMCwwLDEtLjEzLTEuMTQzdi0xLjU1YTIuMywyLjMsMCwwLDAtLjA3Ni0uNjE4LDEuMTg0LDEuMTg0LDAsMCwwLS4yMjItLjQ2Ni45NjkuOTY5LDAsMCwwLS4zODItLjMwNkExLjMyNCwxLjMyNCwwLDAsMCwyLDE2Ljc0NFYxNS4wMTJhMS4wNzQsMS4wNzQsMCwwLDAsLjkzNy0uNCwxLjg0MSwxLjg0MSwwLDAsMCwuMy0xLjF2LTEuNTVhNC44NzksNC44NzksMCwwLDEsLjEzLTEuMTQzLDMuMDM3LDMuMDM3LDAsMCwxLC40NTgtMS4wMDhBMy4xNywzLjE3LDAsMCwxLDQuNjcxLDlhNC40ODIsNC40ODIsMCwwLDEsMS4zMTEtLjU4bC40OCwxLjM0NGExLjIyMiwxLjIyMiwwLDAsMC0uNDg4LjMyOCwxLjc0MiwxLjc0MiwwLDAsMC0uMzA2LjUsMi41MjQsMi41MjQsMCwwLDAtLjE2LjYzNCw1LjgyNyw1LjgyNywwLDAsMC0uMDQ2Ljc0djEuNTVBMi44NDQsMi44NDQsMCwwLDEsNS4xMjYsMTQuOWEyLjM3LDIuMzcsMCwwLDEtMS4wNzYuOTgzLDIuMzU2LDIuMzU2LDAsMCwxLDEuMDc2Ljk5MiwyLjgwOCwyLjgwOCwwLDAsMSwuMzM2LDEuMzc0djEuNTVhNS44MjcsNS44MjcsMCwwLDAsLjA0Ni43NCwyLjU4NiwyLjU4NiwwLDAsMCwuMTYuNjM0LDEuNjg0LDEuNjg0LDAsMCwwLC4zMDYuNUExLjIyMiwxLjIyMiwwLDAsMCw2LjQ2MiwyMmMwLS4wMDUtLjQ3NywxLjM0NC0uNDc3LDEuMzQ0XFxcIiBzdHlsZT1cXFwiZmlsbDojOTk5XFxcIi8+PHBhdGggZD1cXFwiTTguMjE1LDE5LjM5M2ExLjI4OSwxLjI4OSwwLDAsMSwuMS0uNTEyLDEuMjEyLDEuMjEyLDAsMCwxLC4yOS0uNCwxLjM3MywxLjM3MywwLDAsMSwuNDUtLjI3NCwxLjYzNywxLjYzNywwLDAsMSwuNTgtLjEsMS41NTUsMS41NTUsMCwwLDEsLjU3Mi4xLDEuMjY5LDEuMjY5LDAsMCwxLC40NS4yNzQsMS4wNzcsMS4wNzcsMCwwLDEsLjI5LjQsMS4yOTQsMS4yOTQsMCwwLDEsMCwxLjAyNCwxLjE1MSwxLjE1MSwwLDAsMS0uMjkuNDEyLDEuMzg4LDEuMzg4LDAsMCwxLS40NS4yNjgsMS42MTMsMS42MTMsMCwwLDEtLjU3Mi4xLDEuNTc4LDEuNTc4LDAsMCwxLS41OC0uMSwxLjQwOSwxLjQwOSwwLDAsMS0uNDUtLjI2OCwxLjIyOSwxLjIyOSwwLDAsMS0uMzktLjkyNG0wLTYuMDg4YTEuMjg5LDEuMjg5LDAsMCwxLC4xLS41MTIsMS4yMTIsMS4yMTIsMCwwLDEsLjI5LS40LDEuMzczLDEuMzczLDAsMCwxLC40NS0uMjc0LDEuNjM3LDEuNjM3LDAsMCwxLC41OC0uMSwxLjU1NSwxLjU1NSwwLDAsMSwuNTcyLjEsMS4yNjksMS4yNjksMCwwLDEsLjQ1LjI3NCwxLjA3NywxLjA3NywwLDAsMSwuMjkuNCwxLjI5NCwxLjI5NCwwLDAsMSwwLDEuMDI0LDEuMTUxLDEuMTUxLDAsMCwxLS4yOS40MTIsMS4zODgsMS4zODgsMCwwLDEtLjQ1LjI2OCwxLjYxMywxLjYxMywwLDAsMS0uNTcyLjEsMS41NzgsMS41NzgsMCwwLDEtLjU4LS4xLDEuNDA5LDEuNDA5LDAsMCwxLS40NS0uMjY4LDEuMjI5LDEuMjI5LDAsMCwxLS4zOS0uOTI0XFxcIiBzdHlsZT1cXFwiZmlsbDojOTk5XFxcIi8+PHBhdGggZD1cXFwiTTI0LjI0LDIwLjI5M2EzLjY0OCwzLjY0OCwwLDAsMS0uMTIyLjkyOSw0LjUzNCw0LjUzNCwwLDAsMS0uMzM2Ljg5MSw0LjcwNiw0LjcwNiwwLDAsMS0uNS44MDcsNC4wMDUsNC4wMDUsMCwwLDEtLjYxLjY2NGwtMS4zLS42MWMuMDgxLS4xNzMuMTY4LS4zNDkuMjYtLjUyNmE0Ljg0Niw0Ljg0NiwwLDAsMCwuMjY4LS41NTgsNC40NDMsNC40NDMsMCwwLDAsLjIwNi0uNjU2LDMuNDA2LDMuNDA2LDAsMCwwLC4wODQtLjhWMTguNjU2aDIuMDU5bC0uMDA4LDEuNjM2XFxcIiBzdHlsZT1cXFwiZmlsbDojOTk5XFxcIi8+PHBhdGggZD1cXFwiTTI1LjUzOCwyMS45OTRhMS4yNTEsMS4yNTEsMCwwLDAsLjQ4OC0uMzI4LDEuNzA3LDEuNzA3LDAsMCwwLC4zMDYtLjUsMi41MjUsMi41MjUsMCwwLDAsLjE2LS42MzQsNS44MjYsNS44MjYsMCwwLDAsLjA0Ni0uNzR2LTEuNTVhMi44NDQsMi44NDQsMCwwLDEsLjMzNi0xLjM4MiwyLjM2NCwyLjM2NCwwLDAsMSwxLjA4NC0uOTgzLDIuMzY0LDIuMzY0LDAsMCwxLTEuMDg0LS45ODMsMi44NDQsMi44NDQsMCwwLDEtLjMzNi0xLjM4MnYtMS41NWE1LjgyNyw1LjgyNywwLDAsMC0uMDQ2LS43NCwyLjU4NiwyLjU4NiwwLDAsMC0uMTYtLjYzNCwxLjY4NCwxLjY4NCwwLDAsMC0uMzA2LS41LDEuMjIyLDEuMjIyLDAsMCwwLS40ODgtLjMyOGwuNDgtMS4zMzhBNC40NSw0LjQ1LDAsMCwxLDI3LjMyOSw5YTMuMDkyLDMuMDkyLDAsMCwxLC44NDguODE1LDIuODkyLDIuODkyLDAsMCwxLC40NSwxLjAwOCw0LjYwNiw0LjYwNiwwLDAsMSwuMTM4LDEuMTQzdjEuNTVhMi42NTUsMi42NTUsMCwwLDAsLjA2OC42MjYsMS40NDgsMS40NDgsMCwwLDAsLjIyMi40NzQsMS4wMzcsMS4wMzcsMCwwLDAsLjM4Mi4zLDEuMzc2LDEuMzc2LDAsMCwwLC41NjQuMTA2djEuNzMxYTEuMDc3LDEuMDc3LDAsMCwwLS45NDYuNDEyLDEuODI4LDEuODI4LDAsMCwwLS4yOSwxLjA4NHYxLjU1YTQuNjA2LDQuNjA2LDAsMCwxLS4xMzgsMS4xNDMsMi45MTUsMi45MTUsMCwwLDEtLjQ1LDEuMDA4LDMuMTU3LDMuMTU3LDAsMCwxLS44NDguODI0LDQuNDgyLDQuNDgyLDAsMCwxLTEuMzExLjU4bC0uNDgtMS4zNTJcXFwiIHN0eWxlPVxcXCJmaWxsOiM5OTlcXFwiLz5cIixcblx0fSxcblx0XCJKdWxpYVwiOiB7XG5cdFx0Y29sb3VyOiBcIiM0MDYzZDhcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk03LjQ0OCwyMS45ODNWMTMuNzc1bC0yLjQzMi42Njl2OC43MjlhMi42NiwyLjY2LDAsMCwxLS4xMDYuOTI5LjMzNi4zMzYsMCwwLDEtLjMwOC4yMzkuNDA1LjQwNSwwLDAsMS0uMjEyLS4wNzQsMS4yODIsMS4yODIsMCwwLDEtLjI4Ny0uMywyLjgxMywyLjgxMywwLDAsMC0uMzc3LS40MDkuODc0Ljg3NCwwLDAsMC0uNjExLS4yMDcsMS4yMiwxLjIyLDAsMCwwLS44MTIuMjU1Ljc4OS43ODksMCwwLDAtLjMuNjI3QS45MDcuOTA3LDAsMCwwLDIuNTQyLDI1YTMuMTE1LDMuMTE1LDAsMCwwLDEuNTYxLjMxOSw3LjA2NSw3LjA2NSwwLDAsMCwxLjM3LS4xMjIsMi4zNjEsMi4zNjEsMCwwLDAsMS4wNTctLjQ4MywyLjI5MiwyLjI5MiwwLDAsMCwuNjgtMS4wMTQsNS4wOTQsNS4wOTQsMCwwLDAsLjIzOS0xLjcxNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyNTI1MjVcXFwiLz48cGF0aCBkPVxcXCJNMTAuODI1LDE0LjAwOEg4LjR2NS42MThhMi4yNDEsMi4yNDEsMCwwLDAsLjIxOC45NzcsMi40ODksMi40ODksMCwwLDAsLjYuOCwyLjksMi45LDAsMCwwLC44OTIuNTM2LDMuMDQ1LDMuMDQ1LDAsMCwwLDEuMS4yLDIuNTUsMi41NSwwLDAsMCwxLjA1MS0uMjQ0LDQuMzQ3LDQuMzQ3LDAsMCwwLDEuMDE5LS42NDh2Ljc0M0gxNS43MVYxNC4wMDhIMTMuMjg5djUuNzU2YTIuNzY0LDIuNzY0LDAsMCwxLS42NDguNzA2LDEuMTM5LDEuMTM5LDAsMCwxLS42NDguMjgxLDEuMTU1LDEuMTU1LDAsMCwxLS40NTctLjA5LDEuMjYzLDEuMjYzLDAsMCwxLS4zNzItLjIzOSwxLjA2LDEuMDYsMCwwLDEtLjI1LS4zNTYsMS4wOTEsMS4wOTEsMCwwLDEtLjA5LS40NDFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjUyNTI1XFxcIi8+PHBhdGggZD1cXFwiTTE5LjA3NCwyMS45ODNWMTAuMTMybC0yLjQxMS42NjlWMjEuOTgzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzI1MjUyNVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC4wMzgsMTQuNDQ0djcuNTRoMi40MjFWMTMuNzc1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzI1MjUyNVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy41NjgsMTcuODYzdjIuM3EtLjM3Mi4yNzYtLjY3NC40NTdhMS4xNjUsMS4xNjUsMCwwLDEtLjYuMTgxLjQ2OC40NjgsMCwwLDEtLjI3Ni0uMDksMSwxLDAsMCwxLS4yMzQtLjIzOSwxLjEzOCwxLjEzOCwwLDAsMS0uMTY1LS4zNTYsMS41NzYsMS41NzYsMCwwLDEtLjA1OC0uNDMuOTY4Ljk2OCwwLDAsMSwuMTgxLS41NTIsMi4zMDYsMi4zMDYsMCwwLDEsLjQ3My0uNSw0LjU3Miw0LjU3MiwwLDAsMSwuNjQ4LS40Myw3LjYxMiw3LjYxMiwwLDAsMSwuNzA2LS4zNDVaTTMwLDIxLjk4M1YxNmEyLjA4MywyLjA4MywwLDAsMC0uMTkxLS45LDEuNzc5LDEuNzc5LDAsMCwwLS41OTUtLjY5LDMuMDA2LDMuMDA2LDAsMCwwLTEuMDI1LS40NDEsNi4yMjUsNi4yMjUsMCwwLDAtMS40ODEtLjE1NCw1LjczNSw1LjczNSwwLDAsMC0xLjMyNy4xNDksNC42LDQuNiwwLDAsMC0xLjEuNCwyLjM3MywyLjM3MywwLDAsMC0uNzU5LjYxMSwxLjIxNiwxLjIxNiwwLDAsMC0uMjgxLjc3Ljk1OC45NTgsMCwwLDAsLjMxOS43MzgsMS4xNzgsMS4xNzgsMCwwLDAsLjgyOC4yOTIsMS4zNjQsMS4zNjQsMCwwLDAsLjU0Ny0uMS44LjgsMCwwLDAsLjMzNS0uMjU1Ljk4Ni45ODYsMCwwLDAsLjE2NS0uMzcyLDEuOTc4LDEuOTc4LDAsMCwwLC4wNDgtLjQzNSwxLjAzMSwxLjAzMSwwLDAsMSwuMjIzLS42NjkuOTc1Ljk3NSwwLDAsMSwuOC0uMjc2LDEuMDA4LDEuMDA4LDAsMCwxLC43ODEuMzE5LDEuNTk0LDEuNTk0LDAsMCwxLC4yOTIsMS4wODN2Ljc4NmwtLjI2NS4wNjRxLS40ODguMTQ5LS45ODguMzEzdC0uOTYxLjM2MWE3Ljg4NCw3Ljg4NCwwLDAsMC0uODY1LjQzLDMuNTExLDMuNTExLDAsMCwwLS43MDYuNTMxLDIuMzE5LDIuMzE5LDAsMCwwLS40NzguNjY5LDEuOTE4LDEuOTE4LDAsMCwwLS4xNzUuODI4LDIuMDM0LDIuMDM0LDAsMCwwLC4xNjUuODIzLDEuODc2LDEuODc2LDAsMCwwLC40NzMuNjUzLDIuMjU1LDIuMjU1LDAsMCwwLC43NDkuNDM1LDIuOTA3LDIuOTA3LDAsMCwwLC45OTMuMTU5LDMuNjc5LDMuNjc5LDAsMCwwLC43LS4wNTgsMi41MDksMi41MDksMCwwLDAsLjUzNi0uMTY1LDIuMjA5LDIuMjA5LDAsMCwwLC40My0uMjVxLjE5MS0uMTQzLjM5My0uMzEzdi42MzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjUyNTI1XFxcIi8+PGNpcmNsZSBjeD1cXFwiNi4yMDRcXFwiIGN5PVxcXCIxMS42NzJcXFwiIHI9XFxcIjEuNVxcXCIgc3R5bGU9XFxcImZpbGw6IzY2ODJkZlxcXCIvPjxwYXRoIGQ9XFxcIk02LjIsMTMuMjg3YTEuNjE1LDEuNjE1LDAsMSwxLDEuNjE1LTEuNjE1QTEuNjE3LDEuNjE3LDAsMCwxLDYuMiwxMy4yODdabTAtM2ExLjM4NSwxLjM4NSwwLDEsMCwxLjM4NSwxLjM4NUExLjM4NiwxLjM4NiwwLDAsMCw2LjIsMTAuMjg3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzQwNjNkOFxcXCIvPjxjaXJjbGUgY3g9XFxcIjIxLjQxN1xcXCIgY3k9XFxcIjExLjY3MlxcXCIgcj1cXFwiMS41XFxcIiBzdHlsZT1cXFwiZmlsbDojZDU2MzVjXFxcIi8+PHBhdGggZD1cXFwiTTIxLjQxNywxMy4yODdhMS42MTUsMS42MTUsMCwxLDEsMS42MTUtMS42MTVBMS42MTcsMS42MTcsMCwwLDEsMjEuNDE3LDEzLjI4N1ptMC0zQTEuMzg1LDEuMzg1LDAsMSwwLDIyLjgsMTEuNjcyLDEuMzg2LDEuMzg2LDAsMCwwLDIxLjQxNywxMC4yODdaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2IzYzMzXFxcIi8+PGNpcmNsZSBjeD1cXFwiMjMuMzg1XFxcIiBjeT1cXFwiOC4yOTdcXFwiIHI9XFxcIjEuNVxcXCIgc3R5bGU9XFxcImZpbGw6IzYwYWQ1MVxcXCIvPjxwYXRoIGQ9XFxcIk0yMy4zODUsOS45MTJBMS42MTUsMS42MTUsMCwxLDEsMjUsOC4zLDEuNjE3LDEuNjE3LDAsMCwxLDIzLjM4NSw5LjkxMlptMC0zQTEuMzg1LDEuMzg1LDAsMSwwLDI0Ljc3LDguMywxLjM4NiwxLjM4NiwwLDAsMCwyMy4zODUsNi45MTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzg5ODI2XFxcIi8+PGNpcmNsZSBjeD1cXFwiMjUuMzU0XFxcIiBjeT1cXFwiMTEuNjcyXFxcIiByPVxcXCIxLjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNhYTc5YzFcXFwiLz48cGF0aCBkPVxcXCJNMjUuMzU0LDEzLjI4N2ExLjYxNSwxLjYxNSwwLDEsMSwxLjYxNS0xLjYxNUExLjYxNywxLjYxNywwLDAsMSwyNS4zNTQsMTMuMjg3Wm0wLTNhMS4zODUsMS4zODUsMCwxLDAsMS4zODUsMS4zODVBMS4zODYsMS4zODYsMCwwLDAsMjUuMzU0LDEwLjI4N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM5NTU4YjJcXFwiLz5cIixcblx0fSxcblx0XCJLb3RsaW5cIjoge1xuXHRcdGNvbG91cjogXCIjOWQ0YjlkXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIzMTEuMzM2XFxcIiB5MT1cXFwiMTQ1Mi4wNjRcXFwiIHgyPVxcXCIyODMuMzQyXFxcIiB5Mj1cXFwiMTQ4MC4wNThcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTI4MS40IC0xNDUwKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2U0NDg1N1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40N1xcXCIgc3RvcC1jb2xvcj1cXFwiIzlkNGI5ZFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzZkNWZhYVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfa290bGluPC90aXRsZT48cGF0aCBkPVxcXCJNMzAsMzBIMlYySDMwTDE2LDE2WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPlwiLFxuXHR9LFxuXHRcIkt1c3RvXCI6IHtcblx0XHRjb2xvdXI6IFwiIzU5YjRkOVwiLFxuXHRcdGljb246IFwiPHJlY3QgeD1cXFwiMC41NVxcXCIgeT1cXFwiMjIuMzM5XFxcIiB3aWR0aD1cXFwiMTUuNDMzXFxcIiBoZWlnaHQ9XFxcIjIuNzk2XFxcIiByeD1cXFwiMC40MzlcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0xNC4zNjMgMTIuNzk3KSByb3RhdGUoLTQ0Ljk5OSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNiOGQ0MzJcXFwiLz48cmVjdCB4PVxcXCIxLjM3MlxcXCIgeT1cXFwiMTYuMzgyXFxcIiB3aWR0aD1cXFwiOS44NTlcXFwiIGhlaWdodD1cXFwiMi43OTZcXFwiIHJ4PVxcXCIwLjQzOVxcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTEwLjcyNyA5LjY2Mykgcm90YXRlKC00NC45OTkpXFxcIiBzdHlsZT1cXFwiZmlsbDojYjhkNDMyXFxcIi8+PHJlY3QgeD1cXFwiOS4yMzJcXFwiIHk9XFxcIjI0LjMwMVxcXCIgd2lkdGg9XFxcIjkuODU5XFxcIiBoZWlnaHQ9XFxcIjIuNzk2XFxcIiByeD1cXFwiMC40MzlcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0xNC4wMjQgMTcuNTQxKSByb3RhdGUoLTQ0Ljk5OSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNiOGQ0MzJcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjMwIDIgMiAyIDMwIDI5Ljk5OSAzMCAyXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA3OGQ0XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxMC4yODIgMTAuMjgyIDIxLjcxOCAyMS43MTggMzAgMTMuNDM2IDMwIDIgMTguNTY0IDIgMTAuMjgyIDEwLjI4MlxcXCIgc3R5bGU9XFxcImZpbGw6IzU5YjRkOVxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMzAgMjkuOTk5IDMwIDIgMTYgMTYgMzAgMjkuOTk5XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmO29wYWNpdHk6MC4yMDAwMDAwMDI5ODAyMzIyNDtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxyZWN0IHg9XFxcIjE2LjIyNlxcXCIgeT1cXFwiOS4wMDFcXFwiIHdpZHRoPVxcXCIyLjc5NlxcXCIgaGVpZ2h0PVxcXCIyLjc5NlxcXCIgcng9XFxcIjAuNjIyXFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMi4xOTIgMTUuNTA3KSByb3RhdGUoLTQ0Ljk5OSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cmVjdCB4PVxcXCIyMC4xOFxcXCIgeT1cXFwiNS4wNDhcXFwiIHdpZHRoPVxcXCIyLjc5NlxcXCIgaGVpZ2h0PVxcXCIyLjc5NlxcXCIgcng9XFxcIjAuNjIyXFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgxLjc2MiAxNy4xNDYpIHJvdGF0ZSgtNDQuOTk5KVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxyZWN0IHg9XFxcIjIwLjE4XFxcIiB5PVxcXCIxMi45NTVcXFwiIHdpZHRoPVxcXCIyLjc5NlxcXCIgaGVpZ2h0PVxcXCIyLjc5NlxcXCIgcng9XFxcIjAuNjIyXFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMy44MjkgMTkuNDYxKSByb3RhdGUoLTQ0Ljk5OSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cmVjdCB4PVxcXCIyNC4xMzNcXFwiIHk9XFxcIjkuMDAyXFxcIiB3aWR0aD1cXFwiMi43OTZcXFwiIGhlaWdodD1cXFwiMi43OTZcXFwiIHJ4PVxcXCIwLjYyMlxcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoMC4xMjQgMjEuMDk5KSByb3RhdGUoLTQ0Ljk5OSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0fSxcblx0XCJMYVRlWFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNjZmNmY2ZcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xMS4zMzMsMTMuMTIyYy0uMTI4LTEuNTYyLS4yNDEtMi43NTYtMi4yODctMi43NTZINy45MXY4LjRoMi4xNDV2LjYxMWwtMy4wODMtLjAyOS0zLjA4Mi4wMjl2LS42MTFINi4wMzR2LTguNEg0Ljg4NGMtMi4wNDYsMC0yLjE1OSwxLjIwOC0yLjI4NywyLjc1NkgybC4yODQtMy4zNjdoOS4zNjJsLjI4NCwzLjM2N2gtLjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2ZjZmNmXFxcIi8+PHBhdGggZD1cXFwiTTE5LjI4OSwyMi41M0gxMC40MVYyMS45MmgxLjUwNlYxMy40NjdIMTAuNDF2LS42MTFoOC42MzdsLjQxMiwzLjM2N2gtLjZjLS4yMTMtMS44MzMtLjY4Mi0yLjc1Ni0yLjg1NS0yLjc1NkgxMy43OTFWMTcuMmguODM4YzEuMzY0LDAsMS41MDUtLjYsMS41MDUtMS42NjJoLjZ2My45MzVoLS42YzAtMS4wOC0uMTQyLTEuNjYyLTEuNTA1LTEuNjYyaC0uODM4djQuMTA2aDIuMjE2YzIuNDcyLDAsMy0xLjEwOCwzLjMtMy4yMjVoLjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2ZjZmNmXFxcIi8+PHBhdGggZD1cXFwiTTI3LjcyNywxOS4xODZjLS41NCwwLTEuOTYsMC0yLjQxNS4wMjlWMTguNmgxLjE3OWwtMi41NTctMy41NTItMi41MjksMy4zODFBNC4xLDQuMSwwLDAsMCwyMi43LDE4LjZ2LjYxMWMtLjM1NS0uMDI5LTEuNTc2LS4wMjktMi4wMTctLjAyOS0uNCwwLTEuNTQ4LDAtMS44NzUuMDI5VjE4LjZoLjM4M2E3LjQ1OSw3LjQ1OSwwLDAsMCwuODI0LS4wNDNjLjUtLjA0My41NC0uMDg1LjY2Ny0uMjU2TDIzLjUzNiwxNC41bC0zLjE1My00LjQxOEgxOVY5LjQ3Yy4zODQuMDI4LDEuNzkuMDI4LDIuMjczLjAyOC41ODIsMCwxLjkxOCwwLDIuNDI5LS4wMjh2LjYxMUgyMi41MjhsMi4xMTcsMi45NTUsMi4wNzQtMi43ODRhNC4xLDQuMSwwLDAsMC0xLjI5My0uMTdWOS40N2MuMzU2LjAyOCwxLjU5MS4wMjgsMi4wMzIuMDI4LjQsMCwxLjUzNCwwLDEuODYxLS4wMjh2LjYxMWgtLjM2OWE1LjI2NCw1LjI2NCwwLDAsMC0uODM4LjA0M2MtLjQ2OS4wNDMtLjUyNi4wNzEtLjY2Ny4yNTZsLTIuNCwzLjIxTDI4LjYzNiwxOC42SDMwdi42MTFDMjkuNjQ1LDE5LjE4NiwyOC4xODIsMTkuMTg2LDI3LjcyNywxOS4xODZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2ZjZmNmXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIlXCIsXG5cdFx0XSxcblx0fSxcblx0XCJMZXNzXCI6IHtcblx0XHRjb2xvdXI6IFwiIzJhNGY4NFwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTMuNjA5XFxcIiB5MT1cXFwiLTQ5Mi42ODVcXFwiIHgyPVxcXCItMy42MDlcXFwiIHkyPVxcXCItNDgwLjI3MVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgxOS43MTIgNTAyLjg5MSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjAuMTVcXFwiIHN0b3AtY29sb3I9XFxcIiMyYTRmODRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzg4XFxcIiBzdG9wLWNvbG9yPVxcXCIjMjk0ZTgyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMTcyZTRlXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9sZXNzPC90aXRsZT48cGF0aCBkPVxcXCJNMjguNTU5LDIwLjIyNmEyLjQsMi40LDAsMCwxLTIuMzk0LDIuMzk0SDYuMDRhMi40LDIuNCwwLDAsMS0yLjM5NC0yLjM5NFYxMi42QTIuNCwyLjQsMCwwLDEsNi4wNCwxMC4yMDZIMjYuMTY1QTIuNCwyLjQsMCwwLDEsMjguNTU5LDEyLjZaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTI0LjM0OSwxNi4yNWExLjk3MiwxLjk3MiwwLDAsMSwxLjU3OCwxLjg5MSwxLjY5LDEuNjksMCwwLDEtLjY1MywxLjQsMi45MzQsMi45MzQsMCwwLDEtMS44NjIuNTU5LDQuNTU4LDQuNTU4LDAsMCwxLTIuMjQxLS42MTgsMS45ODYsMS45ODYsMCwwLDEsLjE2LS42NjksMS44MywxLjgzLDAsMCwxLC4zNS0uNTc2LDMuNywzLjcsMCwwLDAsMS42NDkuNDkzLjk2NS45NjUsMCwwLDAsLjUxLS4xMTIuMzM5LjMzOSwwLDAsMCwuMTc4LS4zcTAtLjM1My0uNTQ2LS41MjlsLS42NTMtLjI0N3EtMS40ODItLjU0LTEuNDgyLTEuNzYyYTEuNzUzLDEuNzUzLDAsMCwxLC42MjMtMS40MTYsMi41ODcsMi41ODcsMCwwLDEsMS42NzgtLjY0OCw1LjA5NCw1LjA5NCwwLDAsMSwxLjE1LjE0Nyw0LjU1NSw0LjU1NSwwLDAsMSwxLjAzMi40NzIsMS42NjgsMS42NjgsMCwwLDEtLjEzLjcyMiwxLjIyLDEuMjIsMCwwLDEtLjM4LjU1OCw0LjI2MSw0LjI2MSwwLDAsMC0xLjY2LS40NDYuNTQ0LjU0NCwwLDAsMC0uMzYyLjEwNi4zMzguMzM4LDAsMCwwLS4xMjQuMjdxMCwuMjgyLjQ1MS40NDZsLjczNi4yNTlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjZmNmY2XFxcIi8+PHBhdGggZD1cXFwiTTE5LjEsMTYuMjVhMS45NzIsMS45NzIsMCwwLDEsMS41NzcsMS44OTEsMS42OTEsMS42OTEsMCwwLDEtLjY1MiwxLjQsMi45MzcsMi45MzcsMCwwLDEtMS44NjIuNTU5LDQuNTYsNC41NiwwLDAsMS0yLjI0MS0uNjE4LDEuOTgxLDEuOTgxLDAsMCwxLC4xNi0uNjY5LDEuODIxLDEuODIxLDAsMCwxLC4zNS0uNTc2LDMuNywzLjcsMCwwLDAsMS42NDkuNDkzLjk2My45NjMsMCwwLDAsLjUxLS4xMTIuMzQuMzQsMCwwLDAsLjE3OC0uM3EwLS4zNTMtLjU0Ni0uNTI5bC0uNjUzLS4yNDdxLTEuNDgyLS41NC0xLjQ4Mi0xLjc2MmExLjc1MiwxLjc1MiwwLDAsMSwuNjIzLTEuNDE2LDIuNTg1LDIuNTg1LDAsMCwxLDEuNjc3LS42NDgsNS4wODgsNS4wODgsMCwwLDEsMS4xNS4xNDcsNC41NTIsNC41NTIsMCwwLDEsMS4wMzIuNDcyLDEuNjY4LDEuNjY4LDAsMCwxLS4xMy43MjIsMS4yMiwxLjIyLDAsMCwxLS4zOC41NTgsNC4yNjMsNC4yNjMsMCwwLDAtMS42NjEtLjQ0Ni41NDMuNTQzLDAsMCwwLS4zNjIuMTA2LjMzOS4zMzksMCwwLDAtLjEyNC4yN3EwLC4yODIuNDUxLjQ0NmwuNzM2LjI1OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNmY2ZjZcXFwiLz48cGF0aCBkPVxcXCJNMTUuMjY0LDE2LjMzM2EyLjgyMiwyLjgyMiwwLDAsMC0uMTcyLTEsMi4yMzksMi4yMzksMCwwLDAtLjQ5Mi0uNzg3LDIuMjgsMi4yOCwwLDAsMC0uNzc3LS41MTcsMi43MzcsMi43MzcsMCwwLDAtMS4wMjYtLjMxNCwyLjgsMi44LDAsMCwwLTEuMTguMzYxLDIuMjU2LDIuMjU2LDAsMCwwLS44My42NDYsMi43NjUsMi43NjUsMCwwLDAtLjQ4Ny45NjksNC40LDQuNCwwLDAsMC0uMTYsMS4yMTYsNS42ODEsNS42ODEsMCwwLDAsLjEzLDEuMjU3LDIuNjI4LDIuNjI4LDAsMCwwLC40NDUsMSwyLjEwNywyLjEwNywwLDAsMCwuODE4LjY1NywyLjkzNSwyLjkzNSwwLDAsMCwxLjI1MS4yNzcsMy45NTIsMy45NTIsMCwwLDAsMi4zMjQtLjcxMiwxLjg2NSwxLjg2NSwwLDAsMC0uNDg0LTEuMDgxLDYuMTg4LDYuMTg4LDAsMCwxLS44NTcuMjYyLDMuMjA4LDMuMjA4LDAsMCwxLS42NTYuMDc5LDEuMDE3LDEuMDE3LDAsMCwxLS44MTUtLjI5LDEuMTg3LDEuMTg3LDAsMCwxLS4yNzEtLjc3aDMuMDgzQTQuNDQ3LDQuNDQ3LDAsMCwwLDE1LjI2NCwxNi4zMzNabS0zLjI0OC4wODFhMi40MzMsMi40MzMsMCwwLDEsLjIxOC0xLC42MzIuNjMyLDAsMCwxLC41NTktLjI2NC42Ni42NiwwLDAsMSwuNTgyLjI4MiwxLjc0OSwxLjc0OSwwLDAsMSwuMTk0Ljg1NnYuMTNIMTIuMDE2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2Y2ZjZmNlxcXCIvPjxwYXRoIGQ9XFxcIk0yOS4xOCwxNy4yYTEuNjA1LDEuNjA1LDAsMCwwLS41MywxLjI2NXYyLjA1MWExLjgxLDEuODEsMCwwLDEtLjY4MywxLjU1NywyLjgsMi44LDAsMCwxLTEuNjU0LjU0OWwtLjM3MywwVjIxLjU5NGExLjI0MSwxLjI0MSwwLDAsMCwuNTk1LS4zMzQsMS4zNjksMS4zNjksMCwwLDAsLjQxOS0xLjA0N1YxOC41NTZhMi41NDUsMi41NDUsMCwwLDEsLjI1Ny0xLjMyMywyLjUsMi41LDAsMCwxLDEuMi0uODM4LDIuNTI4LDIuNTI4LDAsMCwxLTEuMzI0LTEuMTc5LDIuOTU2LDIuOTU2LDAsMCwxLS4xMzUtMS4xNjVWMTIuNTMzYTEuNDU4LDEuNDU4LDAsMCwwLS4zNjYtMS4wNTQsMS4xNTIsMS4xNTIsMCwwLDAtLjY0OC0uMzE0di0uOTZjLjQ0NSwwLC42NjksMCwuOTI4LDBhMS42NzYsMS42NzYsMCwwLDEsMS4wMjMuNDQyLDIsMiwwLDAsMSwuNjczLDEuMDA5LDIuMzMsMi4zMywwLDAsMSwuMDg2Ljd2MS43NTdhMS44NDYsMS44NDYsMCwwLDAsLjUsMS4zODMsMi4xMTMsMi4xMTMsMCwwLDAsLjg1NC40Nzl2Ljc5NGExLjk0MywxLjk0MywwLDAsMC0uODIuNDI2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2Y2ZjZmNjtzdHJva2U6IzQwNDA0MDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yNXB4XFxcIi8+PHBhdGggZD1cXFwiTTUuNTk0LDEwLjIwNkg1LjI2YTEuNjczLDEuNjczLDAsMCwwLTEuMDIzLjQ0MiwxLjcxLDEuNzEsMCwwLDAtLjY3MywxLjAwOSwzLjUzMSwzLjUzMSwwLDAsMC0uMDM4Ljd2MS43NTdBMS44NjcsMS44NjcsMCwwLDEsMi45ODEsMTUuNSwyLjg0NywyLjg0NywwLDAsMSwyLDE1Ljk3N3YuNzkzYTIuNTUyLDIuNTUyLDAsMCwxLC45NDcuNDI2LDEuNjM4LDEuNjM4LDAsMCwxLC41NzcsMS4yNjV2Mi4wNTFBMS43ODEsMS43ODEsMCwwLDAsNC4xNiwyMi4wN2EyLjgsMi44LDAsMCwwLDEuNjU0LjU1bC40MjEsMFYyMS41OTRhMS40NywxLjQ3LDAsMCwxLS42NDMtLjMzNCwxLjM1NSwxLjM1NSwwLDAsMS0uMzcxLTEuMDQ3VjE4LjU1N2EyLjUxNiwyLjUxNiwwLDAsMC0uMzA1LTEuMzIzLDIuNSwyLjUsMCwwLDAtMS4yLS44MzgsMi41MjksMi41MjksMCwwLDAsMS4zMjQtMS4xNzgsMi44NTcsMi44NTcsMCwwLDAsLjE4My0xLjE2NVYxMi41MzRBMS40NjIsMS40NjIsMCwwLDEsNS41NCwxMS40OGExLjMxMywxLjMxMywwLDAsMSwuNTc1LS4yNzFsLjQyOCwwVjEwLjIwNkg1LjU5NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNmY2ZjY7c3Ryb2tlOiM0MDQwNDA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjVweFxcXCIvPjxwYXRoIGQ9XFxcIk05LjUzNywxOC41MjloLS4zMmMtLjM0OCwwLS40NzktLjE4My0uNDc5LS41NTFWMTEuMjE5YTEuMjU2LDEuMjU2LDAsMCwwLS4yNjgtLjg1NmMtLjE1LS4xNjQtLjQxMS0uMTYyLS43ODMtLjE2Mkg2Ljk2NGwtLjA4NSwwdjguMTA2YTEuODc1LDEuODc1LDAsMCwwLC4zNTIsMS4yNCwxLjQ0MSwxLjQ0MSwwLDAsMCwxLjE0NS4zOTMsNy44NTksNy44NTksMCwwLDAsMS4yNjktLjExOCwyLjIzLDIuMjMsMCwwLDAsLjAzNi0uNTA5LDIuMjc4LDIuMjc4LDAsMCwwLS4xNDItLjc4MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNmY2ZjZcXFwiLz5cIixcblx0fSxcblx0XCJMaXF1aWRcIjoge1xuXHRcdGNvbG91cjogXCIjMDA0OTk5XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjkuOTg4LDIyLjM3MmwtLjc0OC4wNDhhNS4yMDksNS4yMDksMCwwLDEtMi45OS0uNjcxLDcuOCw3LjgsMCwwLDAtNy44LDAsNS4yNzUsNS4yNzUsMCwwLDEtNS4zLjAxQTcuMjYyLDcuMjYyLDAsMCwwLDkuMjYzLDIwLjdhNy4yMjksNy4yMjksMCwwLDAtMy45NCwxLjA2LDQuNzUxLDQuNzUxLDAsMCwxLTIuNDcuN2wtLjgzOCwwYzAsLjg4OS0uMDA5LDEuNzM5LS4wMTUsMi41MTVsLjg2MSwwYTcuMjM3LDcuMjM3LDAsMCwwLDMuNzUtMS4wNTIsNC43NjMsNC43NjMsMCwwLDEsMi42NTktLjcsNC44MzUsNC44MzUsMCwwLDEsMi42MzQuNzE4LDcuNzk0LDcuNzk0LDAsMCwwLDcuOCwwLDUuMjg3LDUuMjg3LDAsMCwxLDUuMzE5LDAsNy43MDksNy43MDksMCwwLDAsNC40Ljk4OUwzMCwyNC44ODhDMjkuOTk1LDI0LjEsMjkuOTkxLDIzLjI0OSwyOS45ODgsMjIuMzcyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNDk5OVxcXCIvPjxwYXRoIGQ9XFxcIk0yOS45ODMsMTUuNTgxbC0uNzQzLjA0N2E1LjIyNiw1LjIyNiwwLDAsMS0yLjk5LS42NzEsNy44LDcuOCwwLDAsMC03LjgsMCw1LjI3OCw1LjI3OCwwLDAsMS01LjMuMDFBNy4zMTIsNy4zMTIsMCwwLDAsOS4yNjMsMTMuOTFhNy4zLDcuMywwLDAsMC0zLjk0MSwxLjA2LDQuNzQyLDQuNzQyLDAsMCwxLTIuNDY5LjdsLS44MjgsMGMwLC44NDksMCwxLjY5MywwLDIuNTE1bC44NCwwYTcuMjM3LDcuMjM3LDAsMCwwLDMuNzUtMS4wNTIsNC43LDQuNywwLDAsMSwyLjY1OS0uNyw0LjgsNC44LDAsMCwxLDIuNjM0LjcxOCw3Ljc5NCw3Ljc5NCwwLDAsMCw3LjgsMCw1LjI4Nyw1LjI4NywwLDAsMSw1LjMxOSwwLDcuNzA5LDcuNzA5LDAsMCwwLDQuNC45ODlsLjU2OC0uMDM3QzI5Ljk4MywxNy4yNjksMjkuOTgzLDE2LjQyNCwyOS45ODMsMTUuNTgxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNDk5OVxcXCIvPjxwYXRoIGQ9XFxcIk0yOS4yNCw5LjEzN2E1LjI1NCw1LjI1NCwwLDAsMS0yLjk5LS42NzEsNy44LDcuOCwwLDAsMC03LjgsMCw1LjI3NSw1LjI3NSwwLDAsMS01LjMuMDA5QTcuMTYsNy4xNiwwLDAsMCw5LjI2Myw3LjQyYTcuMTU5LDcuMTU5LDAsMCwwLTMuOTQsMS4wNTksNC43MzgsNC43MzgsMCwwLDEtMi40NjkuN2wtLjgzNCwwYzAsLjgyLDAsMS42NjQsMCwyLjUxN2wuODM2LDBhNy4yMzcsNy4yMzcsMCwwLDAsMy43NS0xLjA1Miw0LjczOCw0LjczOCwwLDAsMSwyLjY1OS0uNzA2LDQuODE0LDQuODE0LDAsMCwxLDIuNjM0LjcxOSw3Ljc5MSw3Ljc5MSwwLDAsMCw3LjgsMCw1LjI5Myw1LjI5MywwLDAsMSw1LjMxOSwwLDcuNzMyLDcuNzMyLDAsMCwwLDQuNC45ODhsLjU2OC0uMDM3YzAtLjg1OSwwLTEuNy4wMDctMi41MTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA0OTk5XFxcIi8+XCIsXG5cdH0sXG5cdFwiTGlzcFwiOiB7XG5cdFx0Y29sb3VyOiBcIiM4MzgxYzVcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjE5MjUuNzg1XFxcIiB5MT1cXFwiLTEzODMuMDc1XFxcIiB4Mj1cXFwiMjMwMi4zNTFcXFwiIHkyPVxcXCItMTg2OC41NTdcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMC4wNDgsIDAsIDAsIC0wLjA0NSwgLTgyLjUzOSwgLTU0LjY1KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzgzODFjNVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41NjZcXFwiIHN0b3AtY29sb3I9XFxcIiM3ZTU1YjNcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMC45OTZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNhNTJlY2JcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMC45OTJcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIjIyMTQuMTg3XFxcIiB5MT1cXFwiLTE3NTAuMjI1XFxcIiB4Mj1cXFwiMTkzMC45NzRcXFwiIHkyPVxcXCItMTQwOC4zNDJcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMC4wNTQsIDAsIDAsIC0wLjA1NCwgLTk1LjE4OCwgLTY4LjQ4NylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM0MTFmNWRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM1YjJhODVcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2VtYWNzPC90aXRsZT48cGF0aCBkPVxcXCJNMjkuMzYzLDE2QTEzLjM2NCwxMy4zNjQsMCwxLDEsMTYsMi41LDEzLjQzMiwxMy40MzIsMCwwLDEsMjkuMzYzLDE2WlxcXCIgc3R5bGU9XFxcInN0cm9rZS13aWR0aDowLjc1cHg7ZmlsbDp1cmwoI2EpO3N0cm9rZTp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTExLjQwNiwyNS40ODNhMTguMTU3LDE4LjE1NywwLDAsMCwyLjU4Ny0uMDQ4LDQxLjcyOCw0MS43MjgsMCwwLDAsNC41LS42MzksMzAuNjcxLDMwLjY3MSwwLDAsMCwzLjEzMi0uODM5YzEuMTQyLS40MjEsMS43NjQtLjc3OCwyLjA0My0xLjI4NGEuNjIuNjIsMCwwLDAtLjQ0MS0uNjkyYy0xLjM0Ny0uNTY1LTIuOTA4LS40NjMtNi0uNTI4LTMuNDI3LS4xMTgtNC41NjctLjY5MS01LjE3NC0xLjE1My0uNTgyLS40NjktLjI5LTEuNzY1LDIuMjA2LTIuOTA3YTU0LjI2Niw1NC4yNjYsMCwwLDEsNi4xODQtMS43M2MtMS42NTktLjgyLTQuNzUzLTIuMjYyLTUuMzg5LTIuNTczLS41NTgtLjI3My0xLjQ1MS0uNjg0LTEuNjQ0LTEuMTgyLS4yMTktLjQ3OC41MTgtLjg4OS45My0xLjAwN2EyMC4zLDIwLjMsMCwwLDEsNC45LS42NDcsNC4zMDgsNC4zMDgsMCwwLDAsMS0uMDY5QTEuNzY3LDEuNzY3LDAsMCwwLDIxLjg3OSw3LjlhMi43NzUsMi43NzUsMCwwLDAtMy4yODYtMS44MUMxNy4yMiw2LjMzOCwxMy45MDgsNy4zLDEzLjkwOCw3LjNjNC4wOTMtLjAzNSw0Ljc3OS4wMzMsNS4wODUuNDYxLjE4MS4yNTMtLjA4Mi42LTEuMTc0Ljc3Ny0xLjE4OS4xOTQtMy42NTkuNDI4LTMuNjU5LjQyOC0yLjM3LjE0MS00LjA0LjE1LTQuNTQsMS4yMS0uMzI3LjY5My4zNDksMS4zLjY0NSwxLjY4OGExMi43MjgsMTIuNzI4LDAsMCwwLDQuMjI1LDIuN2MuNDM4LjIwOCwxLjcyMy42LDEuNzIzLjZhMTEuNTIsMTEuNTIsMCwwLDAtOC4xLDIuMjg3Yy0xLjgwNywxLjY3Mi0xLjAwOCwzLjY2NSwyLjY5NSw0Ljg5MWExMi43NTUsMTIuNzU1LDAsMCwwLDYuNTM0Ljc3MmMxLjkyMi0uMSwyLjIyNC0uMDQyLDIuMjQ0LjExNi4wMjcuMjIyLTIuMTM0Ljc3My0yLjcyNC45NDQtMS41LjQzMy01LjQzNiwxLjMwNy01LjQ1NiwxLjMxMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0fSxcblx0XCJMaXZlU2NyaXB0XCI6IHtcblx0XHRjb2xvdXI6IFwiIzMxN2VhY1wiLFxuXHRcdGljb246IFwiPHBvbHlnb24gcG9pbnRzPVxcXCI1LjUwNCAyLjAwNyA4Ljk4NiAyIDguOTg2IDIxLjc0NiAxMC43NTkgMTkuOTg3IDEwLjc1OSAzLjc1NSAxMi40OTcgMy43NTUgMTIuNDk3IDE4LjI0IDE0LjI1MyAxNi40ODcgMTQuMjUzIDMuNzU1IDE1Ljk5NyAzLjc1NSAxNS45OTcgMTQuNzI5IDE3LjczNSAxMi45NjIgMTcuNzM1IDMuNzU1IDE5LjQ2MSAzLjc1NSAxOS40NjEgMTEuMjI1IDIxLjI0NSA5LjQ2MSAyMS4yNDUgMy43NTUgMjIuOTcyIDMuNzU1IDIyLjk3MiA3LjcyMyAyNC43MzggNS45NzUgMjQuNzM5IDMuNzU1IDI2LjQ4MyAzLjc1NSAyNi40ODMgNS40ODIgMjguMjA5IDUuNDgyIDI4LjIwOSA3LjI2NyAyNS45MTEgNy4yNjggMjQuMTg0IDguOTkzIDI4LjIwOSA4Ljk5MyAyOC4yMDkgMTAuNzE5IDIyLjQzOCAxMC43MTkgMjAuNjk4IDEyLjUwNCAyOC4yMDkgMTIuNTA0IDI4LjIwOSAxNC4yMyAxOC45NjEgMTQuMjMgMTcuMjA1IDE2LjAxNCAyOC4yMDkgMTYuMDE0IDI4LjIwOSAxNy43NDEgMTUuNDU1IDE3Ljc0MSAxMy43MTUgMTkuNDk2IDI4LjIwOSAxOS40OTYgMjguMjA5IDIxLjI1MiAxMS45OCAyMS4yNTIgMTAuMjQyIDIyLjk3OCAyOS45ODIgMjIuOTc4IDI5Ljk4OSAyNi40ODkgOC45ODYgMjYuNDg5IDguOTg2IDMwIDUuNTA0IDMwIDUuNTA0IDI2LjQ4OSAyLjAxMSAyNi40ODkgMi4wMTEgMjIuOTc4IDUuNTA0IDIyLjk3OCA1LjUwMyAyIDUuNTA0IDIuMDA3XFxcIiBzdHlsZT1cXFwiZmlsbDojMzE3ZWFjXFxcIi8+XCIsXG5cdH0sXG5cdFwiTG9nIGZpbGVcIjoge1xuXHRcdGNvbG91cjogXCIjMDBiZDAyXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjkuNCwyNy42SDIuNVY0LjVIMjkuNFptLTI1LjktMUgyOC40VjUuNUgzLjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiMi41XFxcIiB5PVxcXCI1LjVcXFwiIHdpZHRoPVxcXCIyNi45XFxcIiBoZWlnaHQ9XFxcIjEuOVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYmQwMlxcXCIvPjxyZWN0IHg9XFxcIjExLjMzM1xcXCIgeT1cXFwiOS41XFxcIiB3aWR0aD1cXFwiOC4xNjdcXFwiIGhlaWdodD1cXFwiMVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYmQwMlxcXCIvPjxyZWN0IHg9XFxcIjExLjMzM1xcXCIgeT1cXFwiMTIuMDgzXFxcIiB3aWR0aD1cXFwiMTIuNVxcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiMTEuMzMzXFxcIiB5PVxcXCIxNC43NVxcXCIgd2lkdGg9XFxcIjEwLjYxN1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiMTEuMzMzXFxcIiB5PVxcXCIxNy41ODNcXFwiIHdpZHRoPVxcXCIxNC4xNjdcXFwiIGhlaWdodD1cXFwiMVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYmQwMlxcXCIvPjxyZWN0IHg9XFxcIjExLjMzM1xcXCIgeT1cXFwiMjAuNVxcXCIgd2lkdGg9XFxcIjkuODM0XFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCIxMS41XFxcIiB5PVxcXCIyMy4wODNcXFwiIHdpZHRoPVxcXCIxMi4xNjdcXFwiIGhlaWdodD1cXFwiMVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYmQwMlxcXCIvPjxyZWN0IHg9XFxcIjUuNVxcXCIgeT1cXFwiOS41XFxcIiB3aWR0aD1cXFwiNC4zMzNcXFwiIGhlaWdodD1cXFwiMVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYmQwMlxcXCIvPjxyZWN0IHg9XFxcIjUuNVxcXCIgeT1cXFwiMTIuMDgzXFxcIiB3aWR0aD1cXFwiNC4zMzNcXFwiIGhlaWdodD1cXFwiMVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYmQwMlxcXCIvPjxyZWN0IHg9XFxcIjUuNVxcXCIgeT1cXFwiMTIuMDgzXFxcIiB3aWR0aD1cXFwiNC4zMzNcXFwiIGhlaWdodD1cXFwiMVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYmQwMlxcXCIvPjxyZWN0IHg9XFxcIjUuNVxcXCIgeT1cXFwiMTQuNjY3XFxcIiB3aWR0aD1cXFwiNC4zMzNcXFwiIGhlaWdodD1cXFwiMVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYmQwMlxcXCIvPjxyZWN0IHg9XFxcIjUuNVxcXCIgeT1cXFwiMTcuMjVcXFwiIHdpZHRoPVxcXCI0LjMzM1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiNS41XFxcIiB5PVxcXCIyMC41XFxcIiB3aWR0aD1cXFwiNC4zMzNcXFwiIGhlaWdodD1cXFwiMVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYmQwMlxcXCIvPjxyZWN0IHg9XFxcIjUuNVxcXCIgeT1cXFwiMjMuMDgzXFxcIiB3aWR0aD1cXFwiNC4zMzNcXFwiIGhlaWdodD1cXFwiMVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYmQwMlxcXCIvPlwiLFxuXHR9LFxuXHRcIkxPTENPREVcIjoge1xuXHRcdGNvbG91cjogXCIjOGQyNzAxXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjEuMywzLjczYTMuOTQsMy45NCwwLDAsMSwxLjA0MS0uNjIsOC40MzUsOC40MzUsMCwwLDEsLjU1NiwzLjM4NSwyNC44NjUsMjQuODY1LDAsMCwxLS42NDMsNS4wMTljLS4zNjgtLjE4LS43MzYtLjM2NC0xLjEtLjU1NGExMS43NTQsMTEuNzU0LDAsMCwwLC4yNzMtMy43NDcsMy4wOCwzLjA4LDAsMCwwLS4yNTUtLjg2NSw1LjE0Miw1LjE0MiwwLDAsMC0yLjAxNiwyLjA3Yy0uMzE5LS4yNC0uNjUyLS40NTktLjk4NS0uNjc2QTE1LjcxNiwxNS43MTYsMCwwLDEsMjEuMywzLjczWlxcXCIgc3R5bGU9XFxcImZpbGw6I2VkZWRlZFxcXCIvPjxwYXRoIGQ9XFxcIk0xOS40NTEsOC42YTQuNTc0LDQuNTc0LDAsMCwxLDEuNTA5LTEuNTYzLDYuNjg1LDYuNjg1LDAsMCwxLC4wOSwyLjY3MUMyMC41MTcsOS4zNDMsMTkuOTc1LDguOTg3LDE5LjQ1MSw4LjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWRlZGVkXFxcIi8+PHBhdGggZD1cXFwiTTE2LjQ2MSwxMC4wNzZjLS4wMzgtMS4xMzQtLjAzMS0yLjI2OS0uMDI2LTMuNC0uOS40OTMtMS43NTgsMS4wNzEtMi42NDgsMS41ODktLjQ1My4yNy0uOTA4LjUzNi0xLjM2LjgwOC4yMjQtLjE2My40NTctLjMxMi42OS0uNDYyLS44NjEtMS4yMjQtMS45NzEtMi41LTMuNTMtMi43NDhhMTAuOTY0LDEwLjk2NCwwLDAsMC0uMzY1LDUuMTQ3Yy4zMTgtLjE5NS42MzMtLjQuOTYyLS41NzItLjQ3NC4zMTktLjk2NC42MTUtMS40NDYuOTItLjk1Ny42LTEuOTIyLDEuMTkyLTIuODkyLDEuNzc3YTEuMjMyLDEuMjMyLDAsMCwwLS4zOTEuMzJjLS4xLDEuMzk1LS4zNCw0LjM5Mi0uMzQsNC4zOTItLjI1NCwzLjY2OC0uNTIyLDcuMzM2LS44MjYsMTEsNC4wNjIuMzQzLDguMTE4Ljc0MiwxMi4xNzksMS4wNzZDMTYuNDU4LDIzLjMsMTYuNDcyLDE2LjY5LDE2LjQ2MSwxMC4wNzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWRlZGVkXFxcIi8+PHBhdGggZD1cXFwiTTIxLjEsMi45NzdBNS44ODQsNS44ODQsMCwwLDEsMjIuNzA2LDJhMTAuMDY0LDEwLjA2NCwwLDAsMSwuNzcyLDQuNjA2LDI0LjU5MSwyNC41OTEsMCwwLDEtLjUwOCw0LjQ1OWMxLjIuODQ2LDIuNDMzLDEuNjQ1LDMuNjE4LDIuNTA5cS40NCw2LjM4LjkwNywxMi43NThjLjA2Ni44MzkuMDk0LDEuNjguMjE2LDIuNTEzLTMuMDI5LjI3OS02LjA1Ny41OTEtOS4wODUuODg2YTE5LjEzNywxOS4xMzcsMCwwLDAtMi4xNTguMjd2LS4wODNjLS4wMS02LjYxNCwwLTEzLjIyNy0uMDA3LTE5Ljg0MS0uMDM4LTEuMTM0LS4wMzEtMi4yNjktLjAyNi0zLjR2LS4xYy40MDYuMjkyLjgyNi41NjIsMS4yNDMuODM5QTE2LjI3NCwxNi4yNzQsMCwwLDEsMjEuMSwyLjk3N1ptLjIuNzUyYTE1LjcxNiwxNS43MTYsMCwwLDAtMy4xMjgsNC4wMTFjLjMzNC4yMTcuNjY2LjQzNy45ODUuNjc2YTUuMTQyLDUuMTQyLDAsMCwxLDIuMDE2LTIuMDcsMy4wOCwzLjA4LDAsMCwxLC4yNTUuODY1LDExLjc1NCwxMS43NTQsMCwwLDEtLjI3MywzLjc0N2MuMzY0LjE5LjczMS4zNzQsMS4xLjU1NGEyNC44NjUsMjQuODY1LDAsMCwwLC42NDMtNS4wMTksOC40MzUsOC40MzUsMCwwLDAtLjU1Ni0zLjM4NUEzLjk0LDMuOTQsMCwwLDAsMjEuMywzLjczWk0xOS40NTEsOC42Yy41MjQuMzgzLDEuMDY2LjczOSwxLjYsMS4xMDhhNi42ODUsNi42ODUsMCwwLDAtLjA5LTIuNjcxQTQuNTc0LDQuNTc0LDAsMCwwLDE5LjQ1MSw4LjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGQyNzAxXFxcIi8+PHBhdGggZD1cXFwiTTkuMjE5LDUuMDYyYTMuNTgxLDMuNTgxLDAsMCwxLDIuMjA1Ljc0OEExMi45LDEyLjksMCwwLDEsMTMuNzg4LDguMjZjLS40NTMuMjctLjkwOC41MzYtMS4zNi44MDguMjI0LS4xNjMuNDU3LS4zMTIuNjktLjQ2Mi0uODYxLTEuMjI0LTEuOTcxLTIuNS0zLjUzLTIuNzQ4YTEwLjk2NCwxMC45NjQsMCwwLDAtLjM2NSw1LjE0N2MuMzE4LS4xOTUuNjMzLS40Ljk2Mi0uNTcyLS40NzQuMzE5LS45NjQuNjE1LTEuNDQ2LjkyQTE0LjEsMTQuMSwwLDAsMSw5LjIxOSw1LjA2MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNMTAuNTA3LDguNDc2YTIuNDU1LDIuNDU1LDAsMCwxLDEuNTE3Ljg4bC0uMzYuMkEyLjY5LDIuNjksMCwwLDAsMTAuNzM5LDlhMy4zMTgsMy4zMTgsMCwwLDAtLjE2NSwxLjI4MWwtLjM0NC4xMUE3LjAyMSw3LjAyMSwwLDAsMSwxMC41MDcsOC40NzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGQyNzAxXFxcIi8+PHBhdGggZD1cXFwiTTEyLjEzOSwxMC42OTNhLjQ4Ny40ODcsMCwwLDEsLjU0Mi4wMSwxLjU1MiwxLjU1MiwwLDAsMSwuMDYyLjZjLS4wMzkuNzg0LjAyNCwxLjU3My0uMDc2LDIuMzU0YTEuMDEzLDEuMDEzLDAsMCwxLTEuMDEyLjg4NmMtLjIzMy0uMDUtLjI3OC0uMzQxLS4yNzgtLjU0MSwwLS42NzUuMS0xLjM0Ny4wNjYtMi4wMjRBMS4zLDEuMywwLDAsMSwxMi4xMzksMTAuNjkzWm0uMTUsMS4wODRhLjg5MS44OTEsMCwwLDAsLjI1MS0uODY2QzEyLjIxOCwxMS4wNjEsMTEuOSwxMS41MDcsMTIuMjg5LDExLjc3N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNMTQuNSwxMy43MjhhMTcuNjcxLDE3LjY3MSwwLDAsMSwxLjkyOC0uODIyYy0uMDI0LjA2NC0uMDY5LjE5MS0uMDkyLjI1NS0uNjQ5LjM1OC0xLjM2LjYtMi4wMjEuOTM4YTEyLjExOCwxMi4xMTgsMCwwLDAtMy4yMzgsMi4yNDhBNy4yLDcuMiwwLDAsMSwxMCwxNy4zODFhNC4xNjYsNC4xNjYsMCwwLDEsLjk4LTEuMjQ2QTEyLjcyNywxMi43MjcsMCwwLDEsMTQuNSwxMy43MjhaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGQyNzAxXFxcIi8+PHBhdGggZD1cXFwiTTcuNjI4LDEzLjIzMWEuOTg5Ljk4OSwwLDAsMSwuNTk0LS4xNTIsMTguMTE0LDE4LjExNCwwLDAsMS0uMSwyLjY1NC43MTMuNzEzLDAsMCwxLS44OTIuNjU4LDIxLjEsMjEuMSwwLDAsMSwuMDgyLTIuMjI2QTEuMzgzLDEuMzgzLDAsMCwxLDcuNjI4LDEzLjIzMVptLjE3OS44MzFjLjI2OC0uMTEyLjMxOS0uNDEzLjQxMi0uNjU0QzcuODIsMTMuMzEyLDcuNzc1LDEzLjc4Myw3LjgwNywxNC4wNjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGQyNzAxXFxcIi8+PHBhdGggZD1cXFwiTTEwLjgyMywxNy4wOTRhMTMuOTM0LDEzLjkzNCwwLDAsMSw0LjYxMi0xLjk2OGMtLjAxLjA2OC0uMDI5LjIwNi0uMDM5LjI3NGExNC4yNzMsMTQuMjczLDAsMCwwLTQuNDc1LDEuOTE0LDIuNjI2LDIuNjI2LDAsMCwxLS42ODEuMzQzQzEwLjMsMTcuMzU2LDEwLjYsMTcuMjQ5LDEwLjgyMywxNy4wOTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGQyNzAxXFxcIi8+PHBhdGggZD1cXFwiTTUuMjY0LDE3LjU5QTUuMTQ0LDUuMTQ0LDAsMCwxLDgsMTcuMWExLjUsMS41LDAsMCwxLDEuMTQyLjY2NUE2Ljg1NCw2Ljg1NCwwLDAsMCw3LjYsMTcuMjc4YTYuOTY3LDYuOTY3LDAsMCwwLTIuNDg0LjU2NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNMTAuNTc4LDE3LjcyNWE5LjU5LDkuNTksMCwwLDEsMy42MS0uNTY2Yy4yNC4wMjEuMzIxLjIuMzEzLjQyNGEzLjIzOCwzLjIzOCwwLDAsMC0xLjk1Ni0uMDksMjEuNjg4LDIxLjY4OCwwLDAsMC0yLjU1Ny42NThDOS45OTUsMTcuODI5LDEwLjM0NSwxNy44MDksMTAuNTc4LDE3LjcyNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNOS4yNjgsMTcuNjc2Yy4xNDktLjE3Ni41MzMtLjMzMi42NjQtLjA2MmExLjMsMS4zLDAsMCwxLS41MTYuOTkzQzkuMjY4LDE4LjMzNyw4Ljk3MywxNy45NTIsOS4yNjgsMTcuNjc2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk01Ljc0NCwxOC42MjlhNS45LDUuOSwwLDAsMSwzLjE4Mi0uNjE4Yy0uMTgyLjIzNS0uNDkzLjE3OC0uNzUxLjIwOGE1LjY2Myw1LjY2MywwLDAsMC0xLjcyLjMzYy0uMzQ0LjEyOC0uNjY1LjMxLTEuMDIuNDA5QS42LjYsMCwwLDEsNS43NDQsMTguNjI5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk02LjksMTkuMTE0YTkuNjc2LDkuNjc2LDAsMCwxLDIuMi0uODU0Yy0uMS4zLS40NDEuMzM4LS43LjQ0NGE3LjgzOSw3LjgzOSwwLDAsMC0yLjU2NCwxLjQxNUM1LjkzOCwxOS41ODQsNi40ODgsMTkuMzY5LDYuOSwxOS4xMTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGQyNzAxXFxcIi8+PHBhdGggZD1cXFwiTTExLjYzNSwxOS43YTMuMTEsMy4xMSwwLDAsMCwxLjkxLTEuMzgzYy4zNDctLjEuMjczLjI3NS4yNi40OTRhMi4wNTYsMi4wNTYsMCwwLDEtLjk1LDEuMDM2LDEyLjM2NSwxMi4zNjUsMCwwLDEtMS44MjcsNi40MTlBMi4zNDIsMi4zNDIsMCwwLDEsOC44NzksMjcuNWEyLjI1MSwyLjI1MSwwLDAsMS0xLjUzNS0xLjQ5LDEwLjg5NCwxMC44OTQsMCwwLDEtLjY5LTQuNjY1Yy0uMTU3LS4xMTItLjM2OS0uMTc5LS40Ni0uMzYyLS4xMy0uMi4wMTEtLjQyNS4wNDctLjYzMS4xOS4xNTEuMzQ1LjM5Mi42MDYuNDJhMy42MTcsMy42MTcsMCwwLDAsMS44NjMtLjQsMS41ODgsMS41ODgsMCwwLDAsLjcwOS0uNjYyLDMuODgxLDMuODgxLDAsMCwwLC40MzEuMjY2QTQuMjgsNC4yOCwwLDAsMCwxMS42MzUsMTkuN1ptLTIuMi44MzVhNC4xMzIsNC4xMzIsMCwwLDEtMi40NjIuODA5LDExLjA0OSwxMS4wNDksMCwwLDAsLjM1OCwzLjUyNiwzLjIyNiwzLjIyNiwwLDAsMSwuOS0xLjI4MiwyLjA1NSwyLjA1NSwwLDAsMSwyLjMtLjIsMi4zLDIuMywwLDAsMSwuODg0LDEuMTcyLDE0LjY1OSwxNC42NTksMCwwLDAsMS4wMDUtNC40ODlBNS4xNjcsNS4xNjcsMCwwLDEsOS40MzUsMjAuNTMyWm0tLjMyOSwzLjI2YTIuMjczLDIuMjczLDAsMCwwLTEuNSwxLjQzNGMtLjEyMy4yNjkuMS41MTcuMjI1LjczOC4zMzEuNDYyLjc5NSwxLDEuNDMxLjg5M2EyLjg2OCwyLjg2OCwwLDAsMCwxLjc2OS0xLjZBMS42LDEuNiwwLDAsMCw5LjEwNiwyMy43OTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGQyNzAxXFxcIi8+XCIsXG5cdH0sXG5cdFwiTHVhXCI6IHtcblx0XHRjb2xvdXI6IFwiIzA1MDA4MFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE2LjUsMzBsLS4wMTEtLjMyMWMuNC0uMDE0LjgtLjA0NSwxLjE5LS4wOTRsLjAzOS4zMTlDMTcuMzEyLDI5Ljk1MiwxNi45LDI5Ljk4NCwxNi41LDMwWm0tMS4yMjItLjAxMWMtLjQtLjAyMS0uODE0LS4wNjEtMS4yMTYtLjExOGwuMDQ1LS4zMThjLjM5My4wNTUuNzkzLjA5NCwxLjE4OC4xMTVaTTE4LjkyLDI5LjdsLS4wNjctLjMxNGMuMzg3LS4wODMuNzc2LS4xODQsMS4xNTUtLjNsLjA5NC4zMDdDMTkuNzE0LDI5LjUxMSwxOS4zMTYsMjkuNjE1LDE4LjkyLDI5LjdabS02LjA2My0uMDUzYy0uNC0uMDkxLS43OTEtLjItMS4xNzctLjMyNmwuMS0uMzA2Yy4zNzcuMTIyLjc2NC4yMywxLjE1LjMxOVptOC40LS42NjUtLjEyMS0uM2MuMzY0LS4xNDguNzI4LS4zMTQsMS4wOC0uNDkzbC4wMDYsMCwuMTQ1LjI4NiwwLDBDMjIsMjguNjYxLDIxLjYyNiwyOC44MzEsMjEuMjUzLDI4Ljk4MlptLTEwLjcxOC0uMDg4Yy0uMzc0LS4xNTgtLjc0NS0uMzM1LTEuMS0uNTI0bC4xNS0uMjg0Yy4zNS4xODYuNzEzLjM1OCwxLjA3OC41MTJabTEyLjg5My0xLjAyMS0uMTctLjI3M2MuMzM3LS4yMS42NjgtLjQzNy45ODQtLjY3NWwuMTkzLjI1N0MyNC4xMTEsMjcuNDI1LDIzLjc3MiwyNy42NTgsMjMuNDI4LDI3Ljg3M1pNOC4zNzksMjcuNzUxYy0uMzQxLS4yMi0uNjc2LS40NTktMS0uNzA4bC4yLS4yNTNjLjMxMi4yNDMuNjQuNDc2Ljk3Mi42OTFabTE3LTEuMzQ2LS4yMTUtLjIzOWMuMjk0LS4yNjUuNTgtLjU0Ni44NTEtLjgzNmwuMjM1LjIxOUMyNS45NzIsMjUuODQ2LDI1LjY3OSwyNi4xMzQsMjUuMzc4LDI2LjRaTTYuNDU0LDI2LjI1MmMtLjMtLjI3Ni0uNTg1LS41NjktLjg1Ni0uODdsLjIzOS0uMjE1Yy4yNjUuMjk0LjU0Ny41OC44MzYuODVaTTI3LjA0MSwyNC42MmwtLjI1My0uMmMuMjQ0LS4zMTIuNDc2LS42MzkuNjkyLS45NzJsLjI3LjE3NUMyNy41MjksMjMuOTY2LDI3LjI5LDI0LjMsMjcuMDQxLDI0LjYyWk00LjgyLDI0LjQzOWMtLjI0NC0uMzI0LS40NzYtLjY2Mi0uNjkyLTEuMDA3bC4yNzItLjE3Yy4yMS4zMzcuNDM4LjY2OC42NzYuOTg0Wm0yMy41NDctMS44NjctLjI4NC0uMTUxYy4xODYtLjM1LjM1OC0uNzEzLjUxMy0xLjA3OGwuMy4xMjVDMjguNzM1LDIxLjg0MywyOC41NTgsMjIuMjE0LDI4LjM2OCwyMi41NzJabS0yNC44NDEtLjItLjAwNi0uMDEyYy0uMTgzLS4zNTktLjM1Mi0uNzI4LS41LTEuMWwuMy0uMTIxYy4xNDcuMzYyLjMxMi43MjQuNDkxLDEuMDc0bC4wMDYuMDEyWk0yOS4zMiwyMC4zMjVsLS4zMDYtLjFjLjEyMi0uMzc3LjIzLS43NjQuMzE5LTEuMTVsLjMxMy4wNzJDMjkuNTU1LDE5LjU0MywyOS40NDYsMTkuOTM5LDI5LjMyLDIwLjMyNVpNMi42MDgsMjAuMTA3Yy0uMTItLjM4OC0uMjIzLS43ODYtLjMwOC0xLjE4MmwuMzE0LS4wNjdjLjA4My4zODcuMTg0Ljc3Ni4zLDEuMTU1Wk0yOS44NywxNy45NDZsLS4zMTgtLjA0NWMuMDU2LS4zOTMuMDk0LS43OTMuMTE1LTEuMTg4bC4zMjEuMDE3QzI5Ljk2NywxNy4xMzUsMjkuOTI3LDE3LjU0NCwyOS44NywxNy45NDZaTTIuMSwxNy43MmMtLjA1LS40LS4wODItLjgxMi0uMS0xLjIxOGwuMzIxLS4wMTFjLjAxNC40LjA0Ni44LjA5NCwxLjE5Wm0yNy41ODItMi4yYy0uMDE0LS40LS4wNDUtLjgtLjA5My0xLjE5bC4zMTktLjAzOWMuMDQ5LjQuMDgyLjgxMy4xLDEuMjE4Wk0yLjMzMSwxNS4zLDIuMDEsMTUuMjhjLjAyMS0uNDA1LjA2MS0uODE0LjExNy0xLjIxNmwuMzE4LjA0NUMyLjM5LDE0LjUsMi4zNTIsMTQuOSwyLjMzMSwxNS4zWm0yNy4wNTctMi4xNDRjLS4wODMtLjM4Ny0uMTg0LS43NzYtLjMtMS4xNTVMMjkuNCwxMS45Yy4xMTkuMzg4LjIyMy43ODYuMzA3LDEuMTgzWk0yLjY2MywxMi45MzRsLS4zMTMtLjA3MmMuMDkxLS40LjItLjc5MS4zMjYtMS4xNzdsLjMwNi4xQzIuODU5LDEyLjE2MSwyLjc1MiwxMi41NDgsMi42NjMsMTIuOTM0Wm0yNi4wMjYtMi4wNjJjLS4xNDktLjM2Ni0uMzE1LS43MzItLjUtMS4wODZsLjI4Ni0uMTQ2Yy4xODUuMzYzLjM1NS43MzYuNTA3LDEuMTExWk0zLjQsMTAuNjY1bC0uMy0uMTI1Yy4xNTgtLjM3NC4zMzQtLjc0NS41MjQtMS4xbC4yODQuMTVDMy43MjQsOS45MzcsMy41NTIsMTAuMywzLjQsMTAuNjY1Wk00LjUxMyw4LjU1N2wtLjI3LS4xNzRjLjIyLS4zNDEuNDU4LS42NzYuNzA3LTFsLjI1NC4yQzQuOTYxLDcuOSw0LjcyOCw4LjIyNCw0LjUxMyw4LjU1N1pNNS45NzcsNi42NzZsLS4yMzUtLjIxOWMuMjc2LS4zLjU2OS0uNTg1Ljg3LS44NTdsLjIxNS4yMzlDNi41MzMsNi4xLDYuMjQ3LDYuMzg2LDUuOTc3LDYuNjc2Wm0xLjc3LTEuNi0uMTkzLS4yNTdjLjMyMy0uMjQ0LjY2Mi0uNDc3LDEuMDA3LS42OTJsLjE3LjI3MkM4LjM5NCw0LjYxNCw4LjA2Myw0Ljg0MSw3Ljc0Nyw1LjA3OVptMTUuNzA1LS41NTgtLjAxOC0uMDEyLjE3NS0uMjcuMDE4LjAxMVptLTEuMDQ3LS42MTZjLS4zNS0uMTg2LS43MTMtLjM1OC0xLjA3OC0uNTEybC4xMjUtLjNjLjM3NC4xNTguNzQ1LjMzNCwxLjEuNTI0Wk05Ljc2OSwzLjgxNWwtLjE0Ni0uMjg2LjAxOC0uMDA5Yy4zNTYtLjE4MS43MjQtLjM0OSwxLjA5My0uNWwuMTIxLjNjLS4zNjEuMTQ3LS43Mi4zMTEtMS4wNjguNDg4Wm0xMC40NC0uODM4Yy0uMzc3LS4xMjItLjc2NC0uMjI5LTEuMTUxLS4zMTdsLjA3Mi0uMzEzYy40LjA5MS43OTIuMiwxLjE3OC4zMjVabS04LjIyOS0uMDYtLjA5NC0uMzA3Yy4zODgtLjExOS43ODYtLjIyMywxLjE4Mi0uMzA4bC4wNjcuMzE0QzEyLjc0NywyLjcsMTIuMzU5LDIuOCwxMS45OCwyLjkxN1ptNS45LS40NzNjLS4zOTMtLjA1NS0uNzkzLS4wOTItMS4xODgtLjExM2wuMDE2LS4zMjFjLjQwNS4wMjEuODE0LjA1OSwxLjIxNi4xMTVabS0zLjU3Mi0uMDI2LS4wNC0uMzE5Yy40LS4wNS44MTItLjA4MywxLjIxOC0uMWwuMDEyLjMyMUMxNS4xMDYsMi4zMzcsMTQuNzA1LDIuMzY5LDE0LjMxMiwyLjQxOFpcXFwiIHN0eWxlPVxcXCJmaWxsOmdyYXlcXFwiLz48Y2lyY2xlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjE1Ljk5OFxcXCIgcj1cXFwiMTAuNzA4XFxcIiBzdHlsZT1cXFwiZmlsbDpuYXZ5XFxcIi8+PGNpcmNsZSBjeD1cXFwiMjAuNDM1XFxcIiBjeT1cXFwiMTEuNTYyXFxcIiByPVxcXCIzLjEzNlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxjaXJjbGUgY3g9XFxcIjI2LjcwOFxcXCIgY3k9XFxcIjUuMjlcXFwiIHI9XFxcIjMuMTM3XFxcIiBzdHlsZT1cXFwiZmlsbDpuYXZ5XFxcIi8+PHBhdGggZD1cXFwiTTEzLjEsMjEuMzUydi0uNzlIOS42MjlWMTQuMzI2aC0uOXY3LjAyNkgxMy4xXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE3LjkxNiwyMS4zNTJWMTYuM2gtLjh2Mi43ODVjMCwxLjAzMS0uNTQsMS43MDYtMS4zNzgsMS43MDZBLjk1Ljk1LDAsMCwxLDE0LjcsMTkuOFYxNi4zaC0uOHYzLjgxN2MwLC44MzguNjI2LDEuMzc4LDEuNjA5LDEuMzc4YTEuODYzLDEuODYzLDAsMCwwLDEuNjg3LS45MjV2Ljc4MWguNzIzXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTIzLjc5MSwyMS4zMzN2LS42MDdhLjY2NC42NjQsMCwwLDEtLjE3My4wMTljLS4yNzksMC0uNDM0LS4xNDUtLjQzNC0uNFYxNy41MzZjMC0uOS0uNjU1LTEuMzc4LTEuOS0xLjM3OC0xLjIyNCwwLTEuOTc2LjQ3Mi0yLjAyNCwxLjYzOGguODFjLjA2Ny0uNjE3LjQzNC0uOSwxLjE4NS0uOS43MjMsMCwxLjEyOC4yNywxLjEyOC43NTJ2LjIxMmMwLC4zMzctLjIuNDgyLS44MzguNTU5YTUuNzYzLDUuNzYzLDAsMCwwLTEuNjE5LjMwOCwxLjMyNywxLjMyNywwLDAsMC0uODg3LDEuMzExYzAsLjkxNi42MzYsMS40NTUsMS42NTgsMS40NTVhMi4zNjMsMi4zNjMsMCwwLDAsMS43MTUtLjc0Mi44NTUuODU1LDAsMCwwLC44MjkuNjY1LDEuOTY3LDEuOTY3LDAsMCwwLC41NDktLjA4N20tMS40MDctMS43MjVhMS4zNjYsMS4zNjYsMCwwLDEtMS41MTMsMS4xODVjLS42MjYsMC0uOTkzLS4yMjItLjk5My0uNzcxLDAtLjUzLjM1Ny0uNzYxLDEuMjE0LS44ODdhNCw0LDAsMCwwLDEuMjkxLS4yNzl2Ljc1MlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcdGlubGluZUNvbW1lbnQ6IFtcblx0XHRcdFwiLS1cIixcblx0XHRdLFxuXHR9LFxuXHRcIk1hcmtkb3duXCI6IHtcblx0XHRjb2xvdXI6IFwiIzc1NTgzOFwiLFxuXHRcdGljb246IFwiPHJlY3QgeD1cXFwiMi41XFxcIiB5PVxcXCI3Ljk1NVxcXCIgd2lkdGg9XFxcIjI3XFxcIiBoZWlnaHQ9XFxcIjE2LjA5MVxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6Izc1NTgzOFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNS45MDkgMjAuNjM2IDUuOTA5IDExLjM2NCA4LjYzNiAxMS4zNjQgMTEuMzY0IDE0Ljc3MyAxNC4wOTEgMTEuMzY0IDE2LjgxOCAxMS4zNjQgMTYuODE4IDIwLjYzNiAxNC4wOTEgMjAuNjM2IDE0LjA5MSAxNS4zMTggMTEuMzY0IDE4LjcyNyA4LjYzNiAxNS4zMTggOC42MzYgMjAuNjM2IDUuOTA5IDIwLjYzNlxcXCIgc3R5bGU9XFxcImZpbGw6Izc1NTgzOFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjIuOTU1IDIwLjYzNiAxOC44NjQgMTYuMTM2IDIxLjU5MSAxNi4xMzYgMjEuNTkxIDExLjM2NCAyNC4zMTggMTEuMzY0IDI0LjMxOCAxNi4xMzYgMjcuMDQ1IDE2LjEzNiAyMi45NTUgMjAuNjM2XFxcIiBzdHlsZT1cXFwiZmlsbDojNzU1ODM4XFxcIi8+XCIsXG5cdH0sXG5cdFwiTUFUTEFCXCI6IHtcblx0XHRjb2xvdXI6IFwiI2VmNmMzZVwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMTYuODAzXFxcIiB5MT1cXFwiMTYuNjMxXFxcIiB4Mj1cXFwiMTUuMDEzXFxcIiB5Mj1cXFwiMjIuNDExXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEsIDAsIDAsIC0xLCAwLCAzMilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM1MTJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjNcXFwiIHN0b3AtY29sb3I9XFxcIiM1MjNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzZcXFwiIHN0b3AtY29sb3I9XFxcIiM1MzRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNTFcXFwiIHN0b3AtY29sb3I9XFxcIiM2NDVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjZcXFwiIHN0b3AtY29sb3I9XFxcIiM1NjhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuODRcXFwiIHN0b3AtY29sb3I9XFxcIiMyOWRcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIjI5LjcxXFxcIiB5MT1cXFwiMTguOTgzXFxcIiB4Mj1cXFwiMTEuNzFcXFwiIHkyPVxcXCIxNC41NjNcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjAuMDgxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYzMzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjE4OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2RlNTIzOVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zMTNcXFwiIHN0b3AtY29sb3I9XFxcIiNmMDZlM2VcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmE4MDQyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiNmZTg2NDNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNThcXFwiIHN0b3AtY29sb3I9XFxcIiNmYTdmNDJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjk2XFxcIiBzdG9wLWNvbG9yPVxcXCIjZWY2YzNlXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjgzM1xcXCIgc3RvcC1jb2xvcj1cXFwiI2RjNGMzN1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45MTZcXFwiIHN0b3AtY29sb3I9XFxcIiNjZjM2MzNcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX21hdGxhYjwvdGl0bGU+PHBhdGggZD1cXFwiTTIsMTcuNTVsNy45Ny0zLjIyYTIwLjcsMjAuNywwLDAsMSwyLjcyLTIuOTVjLjY2LS4zNSwxLjktLjE2LDQuMTctMi45OCwyLjItMi43NSwyLjktNS4xLDMuOTMtNS4xLDEuNjMsMCwyLjgzLDMuNTIsNC42NSw4Ljg1QTExNS42MjksMTE1LjYyOSwwLDAsMCwzMCwyNC4xMmMtMS45LTEuNzctMy41Mi0zLjY4LTUuMzctMy42My0xLjcyLjA0LTMuNjMsMi4wOC01LjcyLDQuNy0xLjY2LDIuMS0zLjg2LDMuNTQtNC43MiwzLjUxLDAsMC0yLjIyLTYuMjgtNC4wOC03LjNhMi42NDEsMi42NDEsMCwwLDAtMi4zOS4yTDIsMTcuNTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojNDlkXFxcIi8+PHBhdGggZD1cXFwiTTE5LjgsNC4wMmMtLjY3LjktMS40OCwyLjU1LTIuOTQsNC4zOC0yLjI3LDIuODItMy41LDIuNjMtNC4xNywyLjk4YTE5LjY3NCwxOS42NzQsMCwwLDAtMi43MiwyLjk1bDMuMywyLjQxYzIuOC0zLjgyLDQuMy03Ljk2LDUuNDctMTAuNjRBMTMuNTc5LDEzLjU3OSwwLDAsMSwxOS44LDQuMDJaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTIwLjgsMy4zYy0yLjE4LDAtMy42NywxMS40OC0xMS43MiwxNy44OSwyLjI2LS4zNyw0LjIyLDUuMjQsNS4xMiw3LjUxLDQtLjY4LDcuMi04LjMzLDEwLjQzLTguMjEsMS44NS4wNywzLjQ3LDEuODYsNS4zNywzLjYzQzI1LjY2LDE1LDIzLjYzLDMuMywyMC44LDMuM1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIiVcIixcblx0XHRdLFxuXHR9LFxuXHRcIk1BWFNjcmlwdFwiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMDY5NmJcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xNC40LDcuNTY4LDIwLjIxMiwySDcuMjczTDQuODQ4LDcuNTM2bDkuNTU3LjAzMlpNNC44NDgsNy41MzZsNi44NDQsMi42TDE0LjQsNy41NjhtLS4wMTMsMy42MjItMi43LTEuMDUzTDUuMjYzLDE2LjFsNi4yODYsNS44MjMsMi44MDgtMS4xTDE0LjQsNy41NjhtMCwwLDEyLjgsOC4zNzZMMjAuMjEyLDJNMjcuMiwxNS45NDQsMTQuMzkxLDExLjE5bS0uMDM1LDkuNjM2LS4wMzIsMy42ODVNMjAuMjI4LDMwbC04LjY3OS04LjA3M0w0LjgsMjQuNDY0LDcuMjU3LDMwWm0wLDBMMjcuMiwxNS45NDQsMTQuMzI1LDI0LjUxMk0yNy4yLDE1Ljk0NCwxNC4zNTcsMjAuODI2XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMWQxZDFiO3N0cm9rZS1taXRlcmxpbWl0OjIyLjkyNTU4NDc5MzA5MDgyO3N0cm9rZS13aWR0aDowLjAyODM0OTk5OTMzODM4ODQ0M3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNC4zOTEgMTEuMTkgMjcuMiAxNS45NDQgMTQuNDA1IDcuNTY4IDE0LjM5MSAxMS4xOSAxNC4zOTEgMTEuMTlcXFwiIHN0eWxlPVxcXCJmaWxsOiMxODFiMTc7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI3LjIgMTUuOTQ0IDE0LjM1NyAyMC44MjYgMTQuMzI1IDI0LjUwOSAxNC4zMjYgMjQuNTExIDI3LjIgMTUuOTQ0IDI3LjIgMTUuOTQ0XFxcIiBzdHlsZT1cXFwiZmlsbDojMWExZDFhO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNC40MDUgNy41NjggMjcuMiAxNS45NDQgMjAuMjEyIDIgMTQuNDA1IDcuNTY4IDE0LjQwNSA3LjU2OFxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNWY1ZTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjcuMiAxNS45NDQgMTQuMzI2IDI0LjUxMSAyMC4yMjggMzAgMjcuMiAxNS45NDQgMjcuMiAxNS45NDRcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDQyNDI7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE0LjM1NyAyMC44MjYgMjcuMiAxNS45NDQgMTQuMzkxIDExLjE5IDE0LjM1NyAyMC44MjYgMTQuMzU3IDIwLjgyNlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNTE1MjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTQuMzU3IDIwLjgyNiAxNC4zOTEgMTEuMTkgMTEuNjkyIDEwLjEzNyA1LjI2MyAxNi4xMDQgMTEuNTQ5IDIxLjkyNyAxNC4zNTcgMjAuODI2IDE0LjM1NyAyMC44MjZcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDY5NmI7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjExLjY5MiAxMC4xMzcgMTQuMzkxIDExLjE5IDE0LjQwNSA3LjU2OCAxMS42OTIgMTAuMTM3IDExLjY5MiAxMC4xMzdcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYjI3MjU7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE0LjM1NyAyMC44MjYgMTEuNTQ5IDIxLjkyNyAxNC4zMjUgMjQuNTA5IDE0LjM1NyAyMC44MjYgMTQuMzU3IDIwLjgyNlxcXCIgc3R5bGU9XFxcImZpbGw6IzFjMjYyNDtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTQuMzI1IDI0LjUxMiA0LjggMjQuNDY0IDcuMjU3IDMwIDIwLjIyOCAzMCAxNC4zMjYgMjQuNTExIDE0LjMyNSAyNC41MTIgMTQuMzI1IDI0LjUxMlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNjQ2NjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNC44NDggNy41MzYgMTQuNDA1IDcuNTY4IDIwLjIxMiAyIDcuMjczIDIgNC44NDggNy41MzYgNC44NDggNy41MzZcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDc2N2E7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE0LjQwNSA3LjU2OCA0Ljg0OCA3LjUzNiAxMS42OTIgMTAuMTM3IDE0LjQwNSA3LjU2OCAxNC40MDUgNy41NjhcXFwiIHN0eWxlPVxcXCJmaWxsOiMxZTM5Mzg7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjExLjU0OSAyMS45MjcgNC44IDI0LjQ2NCAxNC4zMjUgMjQuNTEyIDE0LjMyNSAyNC41MDkgMTEuNTQ5IDIxLjkyNyAxMS41NDkgMjEuOTI3XFxcIiBzdHlsZT1cXFwiZmlsbDojMjAzMDJlO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+XCIsXG5cdH0sXG5cdFwiTUVMXCI6IHtcblx0XHRjb2xvdXI6IFwiIzA2YTBhMlwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTYxMS4zNDhcXFwiIHkxPVxcXCItNjcuNDg4XFxcIiB4Mj1cXFwiLTYwMC4yNzJcXFwiIHkyPVxcXCItNjUuMzM1XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEuNDM3LCAwLCAwLCAtMS40MzcsIDg5NC40MTcsIC04Mi4yOTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMGY2MDY3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiMwNWFiYWNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM1OGJlYzRcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIi02MDMuNTk0XFxcIiB5MT1cXFwiLTc3LjY5OVxcXCIgeDI9XFxcIi02MDIuMDExXFxcIiB5Mj1cXFwiLTU5LjYwNFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLjQzNywgMCwgMCwgLTEuNDM3LCA4OTQuNDE3LCAtODIuMjkyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzExN2M4M1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41XFxcIiBzdG9wLWNvbG9yPVxcXCIjMjFiNWI1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjN2VkNGQ0XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImNcXFwiIHgxPVxcXCItNjEyLjc1N1xcXCIgeTE9XFxcIi01OS45MDZcXFwiIHgyPVxcXCItNjE2LjkzNFxcXCIgeTI9XFxcIi03Mi43NlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLjQzNywgMCwgMCwgLTEuNDM3LCA4OTQuNDE3LCAtODIuMjkyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzlhY2NkM1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41XFxcIiBzdG9wLWNvbG9yPVxcXCIjNzJhZWIzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMzE3ZDdmXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImRcXFwiIHgxPVxcXCItNjIxLjg1MVxcXCIgeTE9XFxcIi03NC41NzlcXFwiIHgyPVxcXCItNjE0Ljg0XFxcIiB5Mj1cXFwiLTcyLjMwMVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLjQzNywgMCwgMCwgLTEuNDM3LCA4OTQuNDE3LCAtODIuMjkyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzIxNjI2ZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41XFxcIiBzdG9wLWNvbG9yPVxcXCIjMTU3Yzg0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMDNhM2E1XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImVcXFwiIHgxPVxcXCItNjE2LjM2OVxcXCIgeTE9XFxcIi02NC40NjlcXFwiIHgyPVxcXCItNjI1LjM0XFxcIiB5Mj1cXFwiLTcyLjgzNVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLjQzNywgMCwgMCwgLTEuNDM3LCA4OTQuNDE3LCAtODIuMjkyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzBiN2M4MVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41XFxcIiBzdG9wLWNvbG9yPVxcXCIjMDY4ZDkwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMTZiMWIxXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImZcXFwiIHgxPVxcXCItNjA4LjA3MlxcXCIgeTE9XFxcIi03NC42NzhcXFwiIHgyPVxcXCItNjAzLjQ4OFxcXCIgeTI9XFxcIi03MC45NjZcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMS40MzcsIDAsIDAsIC0xLjQzNywgODk0LjQxNywgLTgyLjI5MilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMwYThhOGZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNVxcXCIgc3RvcC1jb2xvcj1cXFwiIzBmN2M4MlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzFhNTk2NFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJnXFxcIiB4MT1cXFwiLTYwMS4xMzRcXFwiIHkxPVxcXCItNzAuMTEzXFxcIiB4Mj1cXFwiLTYwNi4wMDhcXFwiIHkyPVxcXCItNjcuMDY3XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEuNDM3LCAwLCAwLCAtMS40MzcsIDg5NC40MTcsIC04Mi4yOTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMjU2YTc3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiMwZDk0OTlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMwNmEwYTJcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX21heWE8L3RpdGxlPjxwYXRoIGQ9XFxcIk0yMS42LDMuNDYySDMwTDE4Ljc2NywyNC4yMTFzLTEuODkzLTUuNS0yLjcwNi03LjQ1OVxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMy42NjksMjkuMTE4SDMwVjMuNDYyQzI5Ljk5NSwxNi44NjksMjQuMzYsMjkuMTE4LDIzLjY2OSwyOS4xMThaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTE4Ljc2NywyNC4yMTFIMTMuNTQxTDIsMy40NjJjMi4wNDctLjI2LDYuMTM1LS42MTEsOC4xNi0uNzc2WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNjKVxcXCIvPjxwYXRoIGQ9XFxcIk04LjY5MywxNi4wMTlDNi45NiwyMi44NjYsMS45OTUsMjkuMzIsMiwyOS4zMTRjNS43NTIsMCw2Ljk5MS0uODM1LDYuOTkxLTEuMjc2VjE2LjU0QzguODksMTYuMzcsOC43OTQsMTYuMTk0LDguNjkzLDE2LjAxOVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZClcXFwiLz48cGF0aCBkPVxcXCJNMiwzLjQ2MlYyOS4zMTRjMy4xNDctNS4yLDQuOTgxLTguNiw2LjYtMTMuNDVDNC42LDguNzk0LDIsMy40NjIsMiwzLjQ2MlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZSlcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCIyMy4yMzMgMjguMTAyIDIzLjY2OSAyOS4xMTggMjMuNjY5IDE1LjY0NyAyMy4yMzMgMTYuMzc1XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2YpXFxcIi8+PHBhdGggZD1cXFwiTTIzLjY0NywxNS42NzN2MTMuNGwuMDE2LjA0M2MuNDUyLDAsNi4zMzItMTQuNSw2LjMzMi0yNS42NTZDMjkuOTk1LDMuNDYyLDI2LjQwNiwxMC45NDcsMjMuNjQ3LDE1LjY3M1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZylcXFwiLz5cIixcblx0fSxcblx0XCJNb25nb0RCXCI6IHtcblx0XHRjb2xvdXI6IFwiIzQxYTI0N1wiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTY0NS43MzJcXFwiIHkxPVxcXCI4MzkuMTg4XFxcIiB4Mj1cXFwiLTY1NC41OVxcXCIgeTI9XFxcIjgzOS4yNVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgtMC45NzcsIC0wLjMyMywgLTAuMjksIDAuODc3LCAtMzc1Ljk0NCwgLTkyOC4yODcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwLjIzMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzk5OTg3NVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41NjNcXFwiIHN0b3AtY29sb3I9XFxcIiM5Yjk5NzdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjgzXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTA5ZjdlXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjc2OFxcXCIgc3RvcC1jb2xvcj1cXFwiI2E5YTg4OVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44MzdcXFwiIHN0b3AtY29sb3I9XFxcIiNiN2I2OWFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuODk2XFxcIiBzdG9wLWNvbG9yPVxcXCIjYzljN2IwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk0OFxcXCIgc3RvcC1jb2xvcj1cXFwiI2RlZGRjYlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OTRcXFwiIHN0b3AtY29sb3I9XFxcIiNmOGY2ZWJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmYmY5ZWZcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIi02NDQuMjg3XFxcIiB5MT1cXFwiODIzLjQwNVxcXCIgeDI9XFxcIi02NTcuMDI4XFxcIiB5Mj1cXFwiODQ1LjQ3NlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgtMC45NzcsIC0wLjMyMywgLTAuMjksIDAuODc3LCAtMzc1Ljk0NCwgLTkyOC4yODcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNDhhNTQ3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjM2Y5MTQzXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImNcXFwiIHgxPVxcXCItNjQzLjM4NlxcXCIgeTE9XFxcIjgzOS40ODVcXFwiIHgyPVxcXCItNjUyLjQxOFxcXCIgeTI9XFxcIjgzMy40MTdcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoLTAuOTc3LCAtMC4zMjMsIC0wLjI5LCAwLjg3NywgLTM3NS45NDQsIC05MjguMjg3KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzQxYTI0N1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zNTJcXFwiIHN0b3AtY29sb3I9XFxcIiM0YmE3NGJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTU2XFxcIiBzdG9wLWNvbG9yPVxcXCIjNjdiNTU0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNjliNjU1XFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9tb25nbzwvdGl0bGU+PHBhdGggZD1cXFwiTTE2LjYyLDMwbC0uNzUxLS4yNDlzLjEtMy44LTEuMjc1LTQuMDY3Yy0uOS0xLjA0OC4xMzMtNDQuNzQxLDMuNDIzLS4xNDlhMi43MTIsMi43MTIsMCwwLDAtMS4zMzMsMS41MjNBMTQuMSwxNC4xLDAsMCwwLDE2LjYyLDMwWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy4wMjYsMjYuMzI5YTEzLjIyMywxMy4yMjMsMCwwLDAsNS0xMy4yMjVDMjAuNTU2LDYuNjE5LDE3LjA3NSw0LjQ4NywxNi43LDMuNjczYTkuNzkyLDkuNzkyLDAsMCwxLS44MjUtMS42bC4yNzcsMTguMDY5UzE1LjU3OCwyNS42NjQsMTcuMDI2LDI2LjMyOVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMTUuNDg3LDI2LjU2OVM5LjM2NiwyMi40LDkuNzIsMTUuMDI1QTE1LjU0LDE1LjU0LDAsMCwxLDE1LjIzOSwzLjM3NywxLjcyNSwxLjcyNSwwLDAsMCwxNS44NDYsMmMuMzgxLjgyLjMxOSwxMi4yNDMuMzU5LDEzLjU3OUMxNi4zNiwyMC43NzYsMTUuOTE2LDI1LjU4OCwxNS40ODcsMjYuNTY5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNjKVxcXCIvPlwiLFxuXHR9LFxuXHRcIm5naW54XCI6IHtcblx0XHRjb2xvdXI6IFwiIzAxOTYzOVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE1Ljk0OCwyaC4wNjVhMTAuNDE4LDEwLjQxOCwwLDAsMSwuOTcyLjUyOFEyMi40MTQsNS42NSwyNy44NDMsOC43NzRhLjc5Mi43OTIsMCwwLDEsLjQxNC43ODhjLS4wMDgsNC4zODksMCw4Ljc3Ny0uMDA1LDEzLjE2NGEuODEzLjgxMywwLDAsMS0uMzU2LjUwN3EtNS43NzMsMy4zMjQtMTEuNTQ3LDYuNjQ0YS41ODcuNTg3LDAsMCwxLS42NTcuMDM3UTkuOTEyLDI2LjYsNC4xNDMsMjMuMjc0YS43LjcsMCwwLDEtLjQtLjY2NnEwLTYuNTgyLDAtMTMuMTYzYS42OTMuNjkzLDAsMCwxLC4zODctLjY3UTkuNTUyLDUuNjU3LDE0Ljk3NCwyLjUzNWMuMzIyLS4xODQuNjM4LS4zNzkuOTc0LS41MzVcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMTk2MzlcXFwiLz48cGF0aCBkPVxcXCJNOC43NjcsMTAuNTM4cTAsNS40MjksMCwxMC44NTlhMS41MDksMS41MDksMCwwLDAsLjQyNywxLjA4NywxLjY0NywxLjY0NywwLDAsMCwyLjA2LjIwNiwxLjU2NCwxLjU2NCwwLDAsMCwuNjg1LTEuMjkzYzAtMi42Mi0uMDA1LTUuMjQsMC03Ljg2cTMuNTgzLDQuMjksNy4xODEsOC41NjhhMi44MzMsMi44MzMsMCwwLDAsMi42Ljc4MiwxLjU2MSwxLjU2MSwwLDAsMCwxLjI1MS0xLjM3MXEuMDA4LTUuNTQxLDAtMTEuMDgxYTEuNTgyLDEuNTgyLDAsMCwwLTMuMTUyLDBjMCwyLjY2Mi0uMDE2LDUuMzIxLDAsNy45ODItMi4zNDYtMi43NjYtNC42NjMtNS41NTYtNy04LjMzMkEyLjgxNywyLjgxNywwLDAsMCwxMC4xNyw5LjAzMywxLjU3OSwxLjU3OSwwLDAsMCw4Ljc2NywxMC41MzhaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdH0sXG5cdFwiTmltXCI6IHtcblx0XHRjb2xvdXI6IFwiI2ZmZTk1M1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE2LjExMSw2LjQwNXMtMS4wNzMuODQ3LTIuMTY3LDEuNjlhMTUuMzYxLDE1LjM2MSwwLDAsMC00LjUyNy42NTFjLTEuMS0uNy0yLjA3LTEuNDY5LTIuMDctMS40NjlTNi41Miw4LjcsNiw5LjUzNWExMS4zODIsMTEuMzgyLDAsMCwwLTIuMjM2LDEuNDgyQzIuOTYxLDEwLjcsMi4wMywxMC4zMSwyLDEwLjNjMS4wNjMsMi4xNDUsMS43NzgsNC4yOTIsMy43MjIsNS41ODMsMy4xLTQuODg5LDE3LjQ4LTQuNDM5LDIwLjYzOS0uMDI4QzI4LjQsMTQuNzg3LDI5LjIsMTIuNSwzMCwxMC4zOGMtLjA4OC4wMjktMS4xODEuMzk1LTEuODg5LjY2NWExMS40ODksMTEuNDg5LDAsMCwwLTEuOTg2LTEuNTFjLS41MzctLjk4NC0xLjMxOS0yLjMxMy0xLjMxOS0yLjMxM3MtLjkyNy42ODktMiwxLjQ0YTIxLjI2NSwyMS4yNjUsMCwwLDAtNC42ODEtLjUxMmMtMS0uODI2LTIuMDE0LTEuNzQ2LTIuMDE0LTEuNzQ2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2YzZDQwMFxcXCIvPjxwYXRoIGQ9XFxcIk0zLjEsMTQuODU0bDIuNTU0LDYuMTg1YzQuNDM1LDUuODUsMTUuNzU5LDYuMjU3LDIwLjcuMTEzLDEuMTY4LTIuNjMzLDIuNzQ1LTYuMzMzLDIuNzQ1LTYuMzMzYTEzLjM3OSwxMy4zNzksMCwwLDEtNC42LDMuODY5LDEyLjIxNywxMi4yMTcsMCwwLDEtMi45ODMuNzkzbC01LjQ2NS0yLjgzMi01LjUsMi43NzVhMTUuNjc5LDE1LjY3OSwwLDAsMS0yLjk4My0uNzY0QTE0LjA3NiwxNC4wNzYsMCwwLDEsMy4xLDE0Ljg1NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmU5NTNcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIiNcIixcblx0XHRdLFxuXHR9LFxuXHRcIk5peFwiOiB7XG5cdFx0Y29sb3VyOiBcIiM1Mjc3YzNcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xMywxMS4xMTUsNi4xODMsMjMuNzYsNC41OSwyMC44N2wxLjgzOS0zLjM4Ny0zLjY1MS0uMDFMMiwxNi4wMjlsLjgtMS40NzcsNS4yLjAxOCwxLjg2OC0zLjQ0N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM3ZWJhZTQ7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTMuNTI3LDIxLjIyM2gxMy42NGwtMS41NDEsMi45MjItMy42NTgtLjAxMSwxLjgxNywzLjM4OS0uNzc5LDEuNDQ5LTEuNTkzLDAtMi41ODQtNC44MjUtMy43MjItLjAwOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM3ZWJhZTQ7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMjEuNDY3LDE1LjY4MiwxNC42NDcsMy4wMzdsMy4xMzQtLjAzMkwxOS42LDYuNGwxLjgzNC0zLjM3OWgxLjU1N0wyMy43ODYsNC41LDIxLjE3NCw5LjMwN2wxLjg1NCwzLjQ1NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM3ZWJhZTQ7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTAuNTQyLDE2LjMyNGw2LjgyMSwxMi42NDVMMTQuMjI5LDI5bC0xLjgyMS0zLjQtMS44MzQsMy4zOEg5LjAxNmwtLjgtMS40NzZMMTAuODMxLDIyLjcsOC45NzYsMTkuMjQzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzUyNzdjMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xOC40NjQsMTAuNzUxSDQuODIzTDYuMzY1LDcuODI5bDMuNjU4LjAxMUw4LjIwNyw0LjQ1MSw4Ljk4NiwzbDEuNTkyLDAsMi41ODQsNC44MjUsMy43MjIuMDA4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzUyNzdjMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xOSwyMC44ODgsMjUuODE3LDguMjQ0bDEuNTkzLDIuODlMMjUuNTcxLDE0LjUybDMuNjUxLjAxTDMwLDE1Ljk3OWwtLjgsMS40NzctNS4yLS4wMTgtMS44NjgsMy40NDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTI3N2MzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+XCIsXG5cdH0sXG5cdFwiTlNJU1wiOiB7XG5cdFx0Y29sb3VyOiBcIiNhNDJkMjZcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yNy40MzUsMTYuMDM3LDIyLjAxMiwyMS40Nmw1LjQyMyw1LjQyM1xcXCIgc3R5bGU9XFxcImZpbGw6IzAwNTc3YlxcXCIvPjxwYXRoIGQ9XFxcIk0yNi44ODQsMTUuNUgxNi4wNDhsNS40MjMsNS40MjNcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDc5YWFcXFwiLz48cGF0aCBkPVxcXCJNMjYuODg0LDE0LjcxMiwyMS40NjEsOS4yODlsLTUuNDIzLDUuNDIzXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA5NmQzXFxcIi8+PHBhdGggZD1cXFwiTTIwLjUyOCw5LjEzMUg5LjY4M2w1LjQyMyw1LjQyM00yNy40MzUsMy4zMjUsMjIuMDEyLDguNzQ4bDUuNDIzLDUuNDIzXFxcIiBzdHlsZT1cXFwiZmlsbDojMDFiMGYwXFxcIi8+PHBhdGggZD1cXFwiTTIwLjUyOCw4LjM1NiwxNS4xMDUsMi45MzMsOS42ODMsOC4zNTZcXFwiIHN0eWxlPVxcXCJmaWxsOiMyN2JjZjNcXFwiLz48cGF0aCBkPVxcXCJNMTQuMTcyLDIuNzc1SDMuMzI3TDguNzQ5LDguMlxcXCIgc3R5bGU9XFxcImZpbGw6IzRmYzlmNVxcXCIvPjxwYXRoIGQ9XFxcIk00LjU2OCwxNS45NjMsOS45OTEsMTAuNTQsNC41NjgsNS4xMTdcXFwiIHN0eWxlPVxcXCJmaWxsOiM3OTIwMWJcXFwiLz48cGF0aCBkPVxcXCJNMTAuNTQxLDExLjA5MSw1LjExOSwxNi41MTNIMTUuOTY0XFxcIiBzdHlsZT1cXFwiZmlsbDojYTQyZDI2XFxcIi8+PHBhdGggZD1cXFwiTTUuMTE5LDE3LjI4OGw1LjQyMyw1LjQyMyw1LjQyMy01LjQyM1xcXCIgc3R5bGU9XFxcImZpbGw6I2NjMzgyZlxcXCIvPjxwYXRoIGQ9XFxcIk00LjU2OCwxNy44MjlWMjguNjc1bDUuNDIzLTUuNDIzTDguNCwyMS42NjVtMTMuOTE2LDEuMkwxNi45LDE3LjQ0N2wtNS40MjMsNS40MjNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMDQ1M2ZcXFwiLz48cGF0aCBkPVxcXCJNMTEuNDc1LDIzLjY0NCwxNi45LDI5LjA2N2w1LjQyMy01LjQyM1xcXCIgc3R5bGU9XFxcImZpbGw6I2YyNjI1ZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNy44NCwyOS4yMjVIMjguNjg1TDIzLjI2MywyMy44XFxcIiBzdHlsZT1cXFwiZmlsbDojZjQ3ZjdkXFxcIi8+PHBhdGggZD1cXFwiTTI5Ljg4OSwyOS4zMzdsLTEuNjgtMS42OFYyLjM5MmEuMzc0LjM3NCwwLDAsMC0uMjQzLS4zNTVBLjI2My4yNjMsMCwwLDAsMjcuODI3LDJhLjM1OS4zNTksMCwwLDAtLjI3MS4xMTJMMjEuNDcxLDguMiwxNS4zODUsMi4xMTIsMTUuMywyLjAzN2gtLjAzN0EuMzA3LjMwNywwLDAsMCwxNS4xMDUsMkgyLjRhLjQzNC40MzQsMCwwLDAtLjI4OS4xMTJBLjM4LjM4LDAsMCwwLDIsMi4zOTJhLjM1OS4zNTksMCwwLDAsLjExMi4yNzFsMS42OCwxLjY4VjI5LjYxN2EuMzc0LjM3NCwwLDAsMCwuMjQzLjM1NUEuMzg3LjM4NywwLDAsMCw0LjE4NSwzMGEuMzU5LjM1OSwwLDAsMCwuMjcxLS4xMTJMMTAuNTQxLDIzLjhsNi4wODUsNi4wODUuMDg0LjA3NWguMDM3QS4yNTQuMjU0LDAsMCwwLDE2LjksMzBIMjkuNjA5YS4zOTUuMzk1LDAsMCwwLC4yOC0uNjYzWk0yNy40MzUsMy4zMjVWMTQuMTcxTDIyLjAxMiw4Ljc0OGw1LjQyMy01LjQyM1pNOS45OTEsMTAuNTQsNC41NjgsMTUuOTYzVjUuMTE3TDkuOTkxLDEwLjU0Wk05LjY4Myw5LjEzMUgyMC41MjhsLTUuNDIzLDUuNDIzTDkuNjgzLDkuMTMxWm0uODU5LDEuOTYsNS40MjMsNS40MjNINS4xMTlsNS40MjMtNS40MjNaTTE2LjksMTcuNDQ3bDUuNDIzLDUuNDIzSDExLjQ3NUwxNi45LDE3LjQ0N1pNMTYuMDQ4LDE1LjVIMjYuODkzbC01LjQyMyw1LjQyM0wxNi4wNDgsMTUuNVptNS45NjQsNS45NjQsNS40MjMtNS40MjNWMjYuODgzTDIyLjAxMiwyMS40NlptNC44NzItNi43NDhIMTYuMDQ4bDUuNDIzLTUuNDIzLDUuNDEzLDUuNDIzWk0yMC41MjgsOC4zNTZIOS42ODNsNS40MjMtNS40MjMsNS40MjMsNS40MjNaTTMuMzI3LDIuNzc1SDE0LjE3Mkw4Ljc0OSw4LjJabTEuMjQxLDI1LjlWMTcuODI5TDguNCwyMS42NjVsMS41ODcsMS41ODdMNC41NjgsMjguNjc1Wm0uNTUxLTExLjM4N0gxNS45NjRsLTUuNDIzLDUuNDIzTDUuMTE5LDE3LjI4OFpNMTYuOSwyOS4wNjdsLTUuNDIzLTUuNDIzSDIyLjMyTDE2LjksMjkuMDY3Wm0uOTQzLjE1OUwyMy4yNjMsMjMuOGw1LjQyMyw1LjQyM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NjQwNDlcXFwiLz5cIixcblx0fSxcblx0XCJPYmplY3QgUGFzY2FsXCI6IHtcblx0XHRjb2xvdXI6IFwiI0ZGNjM0NFwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMTZcXFwiIHkxPVxcXCItMC40NDNcXFwiIHgyPVxcXCIxNlxcXCIgeTI9XFxcIjIyLjA0MlxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMC4wMjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZjBjMTVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM5YTBjMGZcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2RlbHBoaTwvdGl0bGU+PGNpcmNsZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCIxNlxcXCIgcj1cXFwiMTRcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMjcuNTQ1LDE2LjI0M0g0LjkyNGEuOTE0LjkxNCwwLDAsMC0xLjA5Mi44MnEuMDMzLjQyOS4xLjg0OWExMi40LDEyLjQsMCwwLDAsMjQuNTMyLDBxLjA3NS0uNS4xMDgtMS4wMjFDMjguNDc4LDE2LjUyMywyOC4yMTEsMTYuMjA3LDI3LjU0NSwxNi4yNDNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmY2NDQzXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiMTguNDggMTEuNjQgMjMuNzA3IDcuMjY2IDE5Ljc4NyA1Ljg4IDE2IDExLjA1M1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjE1LjY4IDExLjAyNiAxOC42NCA1Ljg4IDE0Ljg1MyA1Ljg4IDEzLjMwNyAxMS4yOTNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWU3ZTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCIxMy4wNCAxMS4zNzMgMTMuNiA2LjcwNiAxMC41ODcgNy45NiAxMS4wMTMgMTIuNzZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWU3ZTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCIxMC43NDcgMTMgOS43ODcgOC43NiA3LjcwNyAxMC44NCA5LjY1MyAxNC42OFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjkuMzg3IDE1LjA1MyA3LjQ5MyAxMi4zNzYgNi42NCAxNC40NjYgOS4wNCAxNi41MTdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWU3ZTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCI5LjA0IDE2Ljc1NyA2LjY0IDE1LjIxMyA2LjQ4IDE3LjQgOS4yIDE4LjMzM1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjkuMjI3IDE4Ljg0NiA2LjY0IDE4LjA0IDcuMjI3IDE5LjggOS41NDcgMTkuOFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjkuNzA3IDIwLjA5MyA3LjcwNyAyMC4zODYgOC42MjcgMjEuNzQ2IDEwLjI2NyAyMVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0yMC4wMjMsMTMuMDg5YTYuNjEsNi42MSwwLDAsMC00LjUzLTJBNi4yOTMsNi4yOTMsMCwwLDAsMTEuMywyMi4wN2w0Ljk0MS4xMjktMi4wOC00LjE2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlZTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi41LDIyLjM2NmwtNS4yNjctLjEzOC0uMDQ0LS4wMzlhNi40NTMsNi40NTMsMCwwLDEsNC4zLTExLjI2NCw2Ljc4Nyw2Ljc4NywwLDAsMSw0LjY0MywyLjA1bC4xMjMuMTIzLTUuOSw0Ljk4MlptLTUuMTQtLjQ1NSw0LjYxNi4xMjFMMTMuOTYxLDE4bDUuODI1LTQuOTE5YTYuNDMsNi40MywwLDAsMC00LjI5Mi0xLjgzNSw2LjEzMyw2LjEzMywwLDAsMC00LjEzMSwxMC42NjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWU0YjJlXFxcIi8+PHBhdGggZD1cXFwiTTEyLjAxMywyMC40OTNjLTQuMTczLTUuODEzLDIuMTA5LTguMTcyLDIuNDc4LTguNDUzLjQ1MS0uMzQ0LTcuNTksMS43ODUtMy4yMjYsOC44OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMDRlMzE7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIwLjcyIDEyLjYgMTMuNTIgMTcuNTY3IDEzLjczMyAxOC41NzMgMjEuNDY3IDE3LjAyNiAyMC43MiAxMi42XFxcIiBzdHlsZT1cXFwiZmlsbDojZWVlO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTEzLjYxLDE4Ljc2MSwxMy4zNDEsMTcuNWw3LjQ5NS01LjE3LjgxNCw0LjgyOFptLjA4OS0xLjEyMy4xNTguNzQ3TDIxLjI4MywxNi45LDIwLjYsMTIuODc0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlNGIyZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNS43MjMsMjEuMzE5Yy0zLjkzLS42NjgtNC4yODMuNDI4LTQuMjgzLjQyOEwxMC4yNjcsMjQuNDRzMS4xMi0uOTA3LDUuNDkzLDBsLjc2LTEuMzg4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2RkMGMxMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNC4xMjIsMjEuNmMtLjAyLS4yLTEuMS0uMzE5LTEuNjc3LS4xMjMtLjczMi4yNDktMS4yMTksMS4xNDItMS4wNDUsMS4yMTNhMS45NzUsMS45NzUsMCwwLDEsMS4xMjUtLjk4NkMxMy40NDcsMjEuNDkzLDE0LjE0MiwyMS44LDE0LjEyMiwyMS42WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmNmU0ZjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNS41MiwxOC42MDZhMTEuMSwxMS4xLDAsMCwwLDEuNTQ3LDEuNDg3LDYuOSw2LjksMCwwLDEsMi43Miw0LjEwN2MtLjEwNywxLjA2Ny0xLjk3MywxLjc2LTEuOTczLDEuNzZsLTMuMzA3LTcuMTk0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlZTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNy43MywyNi4xNjFsLTMuNDU3LTcuNTIxLDEuMzItLjIwOC4wNTcuMDgxYTEwLjg2OSwxMC44NjksMCwwLDAsMS41MTIsMS40NTEsNyw3LDAsMCwxLDIuNzgyLDQuMjA3bDAsLjAyMiwwLC4wMjJjLS4xMTUsMS4xNTMtMiwxLjg2NC0yLjA3NywxLjg5NFptLTIuOTktNy4yNywzLjE1NSw2Ljg2M2MuNDE0LS4xNzgsMS42My0uNzYzLDEuNzMtMS41NDhhNi43OTMsNi43OTMsMCwwLDAtMi42NDgtMy45ODFsLS4wMS0uMDA3YTExLjk0LDExLjk0LDAsMCwxLTEuNTE3LTEuNDM5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlNGIyZVxcXCIvPjxwYXRoIGQ9XFxcIk0yOCwxMi43NDJjLjAyNS4zOTQuMDM0Ljc5Mi4wMjUsMS4xOTRhMTMuOTQ2LDEzLjk0NiwwLDAsMS0xOS45LDEyLjNBMTIuODYsMTIuODYsMCwwLDAsMjgsMTIuNzQyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2VhZTBkZjtmaWxsLXJ1bGU6ZXZlbm9kZDtvcGFjaXR5OjAuMlxcXCIvPjxwYXRoIGQ9XFxcIk0yLjM4MywxMy44OTNBMTMuOTQxLDEzLjk0MSwwLDAsMSwyNS43LDUuODNzLTUuMDA5LDUuOTc5LTEwLjU4NCw3LjkwN1MyLjM4MywxMy44OTMsMi4zODMsMTMuODkzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2VhZTBkZjtvcGFjaXR5OjAuMlxcXCIvPjxwYXRoIGQ9XFxcIk0zLjYxOCwxOC42OTRjLS4wNDQtLjM5Mi0uMDcyLS43OS0uMDgzLTEuMTkxQzMuMzI5LDkuODA3LDEwLjAxMiw0LjIsMTcuNzA4LDMuOTkxYTE0LjIsMTQuMiwwLDAsMSw1LjcxOSwxLjQ1OCwxMy4xMjgsMTMuMTI4LDAsMCwwLTcuMTg4LTIuMzY5Yy03LjEuMTktMTMuMzA2LDUuMy0xMy4xMTYsMTIuNEExMi44NzMsMTIuODczLDAsMCwwLDMuNjE4LDE4LjY5NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlYWUwZGY7ZmlsbC1ydWxlOmV2ZW5vZGQ7b3BhY2l0eTowLjJcXFwiLz5cIixcblx0fSxcblx0XCJPYmplY3RpdmUtQ1wiOiB7XG5cdFx0Y29sb3VyOiBcIiNjMmMyYzJcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xMS4yOSwxNS45NzZhOC44OTIsOC44OTIsMCwwLDAsMS4wMzksNC41NTcsNC44MTgsNC44MTgsMCwwLDAsNS41NzksMi4xMywzLjc4OSwzLjc4OSwwLDAsMCwyLjczNC0zLjE4MWMuMDk1LS41MzUuMS0uNTQuMS0uNTQsMS41MzcuMjIyLDQuMDE0LjU4Miw1LjU1LjhsLS4xLjM4OUE5Ljk1OCw5Ljk1OCwwLDAsMSwyMy44LDI0LjlhOC4zNSw4LjM1LDAsMCwxLTQuNzQ3LDIuMzc4LDEyLjkyNSwxMi45MjUsMCwwLDEtNy4zMjItLjcyNSw4Ljk4LDguOTgsMCwwLDEtNS4xMDYtNS41MjRBMTQuMzUzLDE0LjM1MywwLDAsMSw2LjY0MiwxMC45YTkuMzIzLDkuMzIzLDAsMCwxLDcuOTI5LTYuMjQsMTEuODEyLDExLjgxMiwwLDAsMSw1LjkuNDkxLDguNDY3LDguNDY3LDAsMCwxLDUuNDU2LDYuMWMuMDgzLjMxMS4xLjM2OS4xLjM2OS0xLjcwOS4zMTEtMy44MjEuNzA1LTUuNTE4LDEuMDc1QzIwLjE4NiwxMSwxOS4zODcsOS42NjYsMTcuNjc4LDkuMjVhNC42NTYsNC42NTYsMCwwLDAtNS44NTMsMy4xNTgsOS4yOCw5LjI4LDAsMCwwLS4zNDEsMS4yNzNBMTAuODksMTAuODksMCwwLDAsMTEuMjksMTUuOTc2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMi4wMzMgMzAgMi4wMzMgMiA3Ljk2NyAyIDcuOTY3IDQuMjI3IDQuNzIzIDQuMjI3IDQuNzIzIDI3Ljc3MyA3Ljk2NyAyNy43NzMgNy45NjcgMzAgMi4wMzMgMzBcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI5Ljk2NyAyOS45OTkgMjQuMDMzIDI5Ljk5OSAyNC4wMzMgMjcuNzcxIDI3LjI3NyAyNy43NzEgMjcuMjc3IDQuMjI2IDI0LjAzMyA0LjIyNiAyNC4wMzMgMS45OTkgMjkuOTY3IDEuOTk5IDI5Ljk2NyAyOS45OTlcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz5cIixcblx0fSxcblx0XCJPQ2FtbFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNmMjkxMDRcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIi03NDUuNjIzXFxcIiB5MT1cXFwiLTkyLjc2XFxcIiB4Mj1cXFwiLTc0NS42MjNcXFwiIHkyPVxcXCItODUuMTA4XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDc1OCAxMTMuMjgpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZjI5MTA0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZWM2ODEzXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCItNzQxLjk5XFxcIiB5MT1cXFwiLTEwOS40NzdcXFwiIHgyPVxcXCItNzQxLjk5XFxcIiB5Mj1cXFwiLTg1LjA5OVxcXCIgeGxpbms6aHJlZj1cXFwiI2FcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImNcXFwiIHgxPVxcXCItNzUyLjExMVxcXCIgeTE9XFxcIi05My45MThcXFwiIHgyPVxcXCItNzUyLjExMVxcXCIgeTI9XFxcIi04NS4yODRcXFwiIHhsaW5rOmhyZWY9XFxcIiNhXFxcIi8+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfb2NhbWw8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNi41NzEsMjUuMjQ2YTQuMjgsNC4yOCwwLDAsMC0uMDM5LS43MDljLS4wNTktLjItLjItLjIxNy0uMy0uMzc0YTMuNTA3LDMuNTA3LDAsMCwxLS41MzItMS40NzdjLS4wMi0uNDUzLS4yLS44ODYtLjIxNy0xLjMzOS0uMDItLjIxNy4wMi0uNDUzLDAtLjY2OWExLjk2MywxLjk2MywwLDAsMC0uMDM5LS4zMTUsMS4xMzMsMS4xMzMsMCwwLDAtLjAzOS0uMmwuMDU5LS4xMzhhMi43MiwyLjcyLDAsMCwxLC42NS0uMDM5Yy4yNTYsMCwuNTEyLjAyLjc2OC4wMmE3Ljk2MSw3Ljk2MSwwLDAsMCwxLjUzNi0uMDU5LDMuNzIyLDMuNzIyLDAsMCwwLDEuOTQ5LS44NDcsNC45NDYsNC45NDYsMCwwLDAsMS41MzYtMi4wMDhjLjE3Ny0uMzk0LjE3Ny0xLjA4My41NTEtMS40LjQzMy0uMzc0LDEuMTgxLS4zMzUsMS42OTMtLjU3MWExLjE4NywxLjE4NywwLDAsMSwuODA3LS4xMzhjLjIxNy4wMzkuNjMuMzE1LjcyOS0uMDU5LS4wNzktLjAzOS0uMS0uMTM4LS4xMzgtLjE3Ny40MTQtLjAzOSwwLTEtLjE1OC0xLjJBMi4yMjUsMi4yMjUsMCwwLDAsMjQuMjUsMTNhMy41MDksMy41MDksMCwwLDAtMS41MzYtLjIxN2MtLjg4Ni4xNzctLjgyNy0uMzM1LTEuMzM5LS4zMzUtLjYzLDAtMS43MzMuMDM5LTEuOTMuNjNhMS41NCwxLjU0LDAsMCwxLS4zMzUuNTEyYy0uMTM4LjE3Ny4wMi4zNTQtLjAzOS41NzEtLjA3OS4yMTctLjE3Ny45ODUtLjI3NiwxLjI2LS4xNzcuNDUzLS4zOTQsMS4wMjQtLjc4OCwxLjAyNGEzLjE1MiwzLjE1MiwwLDAsMS0xLjQzNy0uMDc5Yy0uMjc2LS4xLS43MjktLjI1Ni0uOTQ1LS4zMzUtMS4wMjQtLjQzMy0xLjItLjkwNi0xLjItLjkwNmEzLjAyNiwzLjAyNiwwLDAsMS0uNTEyLS44NjZjLS4xMTgtLjQxNC0uMzE1LS43NjgtLjM5NC0xcy0uMy0uNTkxLS40NTMtLjk4NWEyLjY2NywyLjY2NywwLDAsMC0uNzA5LTEuMDYzYy0uMzE1LS4yNzYtLjYxLS43MjktMS4yNi0uNTkxYTEuNjQxLDEuNjQxLDAsMCwwLS44NjYuMzE1Yy0uMjE3LjE3Ny0uMy41NzEtLjQ5Mi44ODYtLjExOC4xNzctLjMxNS43MDktLjUxMiwxLjE2MmExLjkyOSwxLjkyOSwwLDAsMS0uMzM1LjY1Yy0uMTE4LjA3OS0uMjU2LjItLjQxNC4xMzhhLjkyNC45MjQsMCwwLDEtLjMxNS0uMiw1LjMzNCw1LjMzNCwwLDAsMS0uNzA5LTEuMTIyLDExLjEsMTEuMSwwLDAsMC0uNzg4LTEuMjQxLDEuMDE2LDEuMDE2LDAsMCwwLS45ODUtLjU1MWMtMS4wMjQsMC0xLjEuNTcxLTEuNTU2LDEuNDE4YTUuNTc0LDUuNTc0LDAsMCwxLS42NjksMS40Yy0uMjM2LjI1Ni0uOTQ1LDEuMzM5LTEuNDU3LDEuNTE2SDJ2Ny42MmMuMDM5LS4xLjA1OS0uMi4xLS4yNzYuMi0uNDE0LjY1LS44MDcuOTA2LTEuMjIxYTMuNSwzLjUsMCwwLDAsLjM3NC0uNzA5LDMuNzQzLDMuNzQzLDAsMCwxLC4yMzYtLjcwOS43OTQuNzk0LDAsMCwxLC41NzEtLjMzNWMuMzU0LS4wNTkuNjUuNDkyLDEuMDgzLjcwOS4yLjA3OSwxLjA2My4zOTQsMS4zMTkuNDUzLjQzMy4xLjkwNi4yLDEuMzM5LjI3Ni4yMzYuMDM5LjQ1My4wNzkuNzA5LjFhNy4zLDcuMywwLDAsMSwxLjA4My4xLDIuMjc3LDIuMjc3LDAsMCwwLS44MDcsMS4yMjFjLS4xNTguNDMzLS4yNzYuOTI1LS40NzMsMS4zMzktLjIxNy40NzMtLjY2OS42NjktLjYxLDEuMjIxYTIuNjY4LDIuNjY4LDAsMCwxLC4wMi42ODksNC4wMDksNC4wMDksMCwwLDEtLjIxNy42ODljLS4xLjMxNS0uMjE3LDEuMzU5LS4zNTQsMS42NzRsLjkwNi0uMTE4aDBBMTAuNjkyLDEwLjY5MiwwLDAsMCw4LjQsMjYuMzg4YTMuNzM3LDMuNzM3LDAsMCwxLC43MjktMS4yOGMuMzM1LS4zNzQuMzE1LS44NDcuNTEyLTEuM2ExMi40ODgsMTIuNDg4LDAsMCwxLC43NjgtMS4zYy40OTItLjgwNy44MDctMS44MTIsMS44NTEtMi4wMjhhMy4zLDMuMywwLDAsMSwxLjAyNC43MDksNC40NTIsNC40NTIsMCwwLDEsLjg4NiwxLjEsMTIuODUxLDEyLjg1MSwwLDAsMSwuODg2LDIuNjc4LDEuMjI3LDEuMjI3LDAsMCwwLC4zOTQuNzA5LDUuNDYyLDUuNDYyLDAsMCwxLC40MzMuNzI5Yy4wNzkuMTc3LjIuNTcxLjMuNzg4YTYuMjY3LDYuMjY3LDAsMCwxLC4zMTUuODI3bC44NDctLjAyaC4wMnYtLjAyQTkuNzU0LDkuNzU0LDAsMCwxLDE2LjU3MSwyNS4yNDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE2LjIxNywyNy4yMzVjLS4xLS4yLS4yMTctLjYxLS4zLS43ODhhNS40NjIsNS40NjIsMCwwLDAtLjQzMy0uNzI5LDEuMTE5LDEuMTE5LDAsMCwxLS4zOTQtLjcwOSwxMi40ODcsMTIuNDg3LDAsMCwwLS44ODYtMi42NzgsNC40NTIsNC40NTIsMCwwLDAtLjg4Ni0xLjEsMy4zLDMuMywwLDAsMC0xLjAyNC0uNzA5Yy0xLjA0NC4yLTEuMzU5LDEuMjIxLTEuODUxLDIuMDI4YTEyLjQ4OCwxMi40ODgsMCwwLDAtLjc2OCwxLjNjLS4yLjQzMy0uMTc3LjkyNS0uNTEyLDEuM2EzLjQ0MywzLjQ0MywwLDAsMC0uNzI5LDEuMjhjLS4wMzkuMS0uMTE4LDEuMDgzLS4yMTcsMS4zMTloMGwxLjUzNi0uMWMxLjQzNy4xLDEuMDI0LjY1LDMuMjQ5LjUzMmwzLjUyNS0uMTE4aDBBNi4yNjcsNi4yNjcsMCwwLDAsMTYuMjE3LDI3LjIzNVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMjYuNDU2LDMuOEg1LjU0NEEzLjUyMSwzLjUyMSwwLDAsMCwyLjAyLDcuMzI4djcuNjc5aDBjLjUxMi0uMTc3LDEuMjIxLTEuMjYsMS40NTctMS41MTZhNS45MTMsNS45MTMsMCwwLDAsLjY2OS0xLjRjLjQ1My0uODI3LjUzMi0xLjQxOCwxLjU1Ni0xLjQxOGExLjAxNiwxLjAxNiwwLDAsMSwuOTg1LjU1MSw5LjU0Nyw5LjU0NywwLDAsMSwuNzg4LDEuMjQxLDQuODQ5LDQuODQ5LDAsMCwwLC43MDksMS4xMjIsMiwyLDAsMCwwLC4zMTUuMmMuMTU4LjA1OS4zLS4wNTkuNDE0LS4xMzhBMS45MjksMS45MjksMCwwLDAsOS4yNDYsMTNjLjItLjQ1My4zOTQtLjk2NS41MTItMS4xNjIuMi0uMzE1LjI3Ni0uNzA5LjQ5Mi0uODg2YTEuNTksMS41OSwwLDAsMSwuODY2LS4zMTVjLjY1LS4xMzguOTQ1LjMxNSwxLjI2LjU5MWEzLjI4NSwzLjI4NSwwLDAsMSwuNzA5LDEuMDYzYy4xNTguMzk0LjM1NC43NjguNDUzLjk4NWE4Ljk0Niw4Ljk0NiwwLDAsMSwuMzk0LDEsMy43MTMsMy43MTMsMCwwLDAsLjUxMi44NjZzLjE3Ny40NzMsMS4yLjkwNmE4Ljc0OSw4Ljc0OSwwLDAsMCwuOTQ1LjMzNSwzLjE1MiwzLjE1MiwwLDAsMCwxLjQzNy4wNzljLjM5NCwwLC42MS0uNTcxLjc4OC0xLjAyNC4xLS4yNzYuMjE3LTEuMDQ0LjI3Ni0xLjI2cy0uMS0uMzc0LjAzOS0uNTcxYy4xNTgtLjIxNy4yNTYtLjIzNi4zMzUtLjUxMi4yLS42MSwxLjMtLjYzLDEuOTMtLjYzLjUzMiwwLC40NTMuNTEyLDEuMzM5LjMzNWEzLjI0MywzLjI0MywwLDAsMSwxLjUzNi4yMTcsMi4yMjUsMi4yMjUsMCwwLDEsMS4xNDIuNTUxYy4xNTguMi41NzEsMS4xNjIuMTU4LDEuMi4wMzkuMDM5LjA3OS4xMzguMTM4LjE3Ny0uMS4zNzQtLjQ5Mi4xLS43MjkuMDU5YTEuMTg3LDEuMTg3LDAsMCwwLS44MDcuMTM4Yy0uNTEyLjIxNy0xLjI0MS4yLTEuNjkzLjU3MS0uMzc0LjMxNS0uMzc0LDEtLjU1MSwxLjRhNS4xNjcsNS4xNjcsMCwwLDEtMS41MzYsMi4wMDgsMy45LDMuOSwwLDAsMS0xLjk0OS44NDcsNy45NjEsNy45NjEsMCwwLDEtMS41MzYuMDU5Yy0uMjU2LS4wMi0uNTEyLS4wMi0uNzY4LS4wMi0uMTU4LDAtLjY2OS0uMDItLjY1LjAzOWwtLjA1OS4xMzhhLjcuNywwLDAsMCwuMDM5LjJjLjAyLjExOC4wMi4yMTcuMDM5LjMxNSwwLC4yMTctLjAyLjQ1MywwLC42NjkuMDIuNDUzLjIuODY2LjIxNywxLjMzOWEzLjI2LDMuMjYsMCwwLDAsLjUzMiwxLjQ3N2MuMS4xNTguMjM2LjE3Ny4zLjM3NGE0LjE2Myw0LjE2MywwLDAsMSwuMDM5LjcwOSw5LjY4NSw5LjY4NSwwLDAsMCwuODI3LDIuNzU3di4wMmgwYy41MTItLjA3OSwxLjA0NC0uMjc2LDEuNzEzLS4zNzQsMS4yNDEtLjE3NywyLjk1NC0uMSw0LjA1Ni0uMiwyLjgtLjI1Niw0LjMxMiwxLjE0Miw2LjgxMy41NzFWNy4zMjhBMy41NTEsMy41NTEsMCwwLDAsMjYuNDU2LDMuOFpNMTYuMDIsMjAuMzQzWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk04LjQ3OCwyMy41NzNjLjItLjQzMy4zMTUtLjkwNi40NzMtMS4zMzlhMi4yNzcsMi4yNzcsMCwwLDEsLjgwNy0xLjIyMSw3LjMsNy4zLDAsMCwwLTEuMDgzLS4xYy0uMjM2LS4wMi0uNDczLS4wNTktLjcwOS0uMS0uNDMzLS4wNzktLjkyNS0uMTc3LTEuMzM5LS4yNzYtLjI1Ni0uMDU5LTEuMTQyLS4zNzQtMS4zMTktLjQ1My0uNDUzLS4yLS43NDgtLjc2OC0xLjA4My0uNzA5YS43OTQuNzk0LDAsMCwwLS41NzEuMzM1LDMuNzQzLDMuNzQzLDAsMCwwLS4yMzYuNzA5Yy0uMS4yMzYtLjI1Ni40NzMtLjM3NC43MDlhMTIuMjg5LDEyLjI4OSwwLDAsMC0uOTI1LDEuMmMtLjAzOS4xLS4wNTkuMi0uMS4zdjQuNzQ1YTUuNCw1LjQsMCwwLDEsLjcyOS4xNTgsOC43Nyw4Ljc3LDAsMCwwLDQuMzcxLjM1NGwuMTc3LS4wMmgwYy4xMzgtLjMxNS4yNTYtMS4zNTkuMzU0LTEuNjc0YTUuNDk0LDUuNDk0LDAsMCwwLC4yMTctLjY4OSwyLjY2OCwyLjY2OCwwLDAsMC0uMDItLjY4OUM3LjgwOSwyNC4yNDIsOC4yNjIsMjQuMDQ1LDguNDc4LDIzLjU3M1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYylcXFwiLz5cIixcblx0fSxcblx0XCJPY3RhdmVcIjoge1xuXHRcdGNvbG91cjogXCIjNzdjY2UxXCIsXG5cdFx0aWNvbjogXCI8ZGVmcyBpZD1cXFwiZGVmczI4NzRcXFwiPiA8cmFkaWFsR3JhZGllbnQgY3g9XFxcIjE4Mi45ODM3XFxcIiBjeT1cXFwiMzk1LjA0ODcxXFxcIiByPVxcXCIxNDguOTUzMDlcXFwiIGZ4PVxcXCIxODIuOTgzN1xcXCIgZnk9XFxcIjM5NS4wNDg3MVxcXCIgaWQ9XFxcInJhZGlhbEdyYWRpZW50MzAzM1xcXCIgeGxpbms6aHJlZj1cXFwiI2xpbmVhckdyYWRpZW50Mzc1NVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMC4yMjkxNDMzNCwtMC4yNDkwMTQ3OSwwLjc2NDM1NzIsMC44MzA2NDI2OCwtMjcyLjg1MzM3LC0xNTkuNjk0ODIpXFxcIiAvPiA8bGluZWFyR3JhZGllbnQgaWQ9XFxcImxpbmVhckdyYWRpZW50Mzc1NVxcXCI+IDxzdG9wIGlkPVxcXCJzdG9wMzc1N1xcXCIgc3R5bGU9XFxcInN0b3AtY29sb3I6IzAwOGNiZTtzdG9wLW9wYWNpdHk6MVxcXCIgb2Zmc2V0PVxcXCIwXFxcIiAvPiA8c3RvcCBpZD1cXFwic3RvcDM3NTlcXFwiIHN0eWxlPVxcXCJzdG9wLWNvbG9yOiNiMmZmZmY7c3RvcC1vcGFjaXR5OjFcXFwiIG9mZnNldD1cXFwiMVxcXCIgLz4gPC9saW5lYXJHcmFkaWVudD4gPC9kZWZzPiA8ZyBpZD1cXFwibGF5ZXIxXFxcIiB0cmFuc2Zvcm09XFxcInNjYWxlKDAuMTEyOTYpIHRyYW5zbGF0ZSgtMjMzLjM1NTQ0LC0zOTAuNzE4MDIpXFxcIj4gPGcgdHJhbnNmb3JtPVxcXCJtYXRyaXgoOC40NTE5NzIzLDAsMCw4LjQ1MTk3MjMsLTI3OC40NTAxMiwtNDAzLjgyOTc1KVxcXCIgaWQ9XFxcImczMDI1XFxcIj4gPHBhdGggZD1cXFwibSA2Ni40MzIxMDMsOTcuNDg4Njc5IGMgLTUuMTk1ODQsNS42NDY0MzEgLTMuOTM2NjEsMTYuMTY5MDMxIDIuODExMDcsMjMuNTAxODcxIDYuNzQ3NjgsNy4zMzI4NSAxNi40Mjg5OCw4LjY5OTU1IDIxLjYyNDgzLDMuMDUzMTIgNS4xOTU4NSwtNS42NDY0MyAzLjk0MDIsLTE2LjE2OTQ2IC0yLjgwNzQ5LC0yMy41MDIzIC02Ljc0NzY4LC03LjMzMjg2MSAtMTYuNDMyNTYsLTguNjk5MTMxIC0yMS42Mjg0MSwtMy4wNTI2OTEgeiBtIDQuNzExNDksMi4zNDU1MyBjIDQuMDgyNTYsLTQuNDM2NTkgMTEuNTg5LC0zLjQ3MTUyIDE2Ljc2NzQxLDIuMTU1OTYxIDUuMTc4NDIsNS42Mjc1IDYuMDY2NDcsMTMuNzg0OTEgMS45ODM5MSwxOC4yMjE1IC00LjA4MjU2LDQuNDM2NTggLTExLjU5MDk3LDMuNDczNjkgLTE2Ljc2OTM5LC0yLjE1MzgxIC01LjE3ODQyLC01LjYyNzUgLTYuMDY0NDksLTEzLjc4NzA0IC0xLjk4MTkzLC0xOC4yMjM2NTEgelxcXCIgaWQ9XFxcInBhdGg1ODc0XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI3JhZGlhbEdyYWRpZW50MzAzMyk7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmVcXFwiIC8+IDxyZWN0IHdpZHRoPVxcXCI0LjM0OTg1NFxcXCIgaGVpZ2h0PVxcXCI0LjM0OTg1NFxcXCIgcng9XFxcIjAuNzY5NTg5NjZcXFwiIHJ5PVxcXCIwLjc2OTU4OTY2XFxcIiB4PVxcXCI4NS4zODE1NjFcXFwiIHk9XFxcIjk5LjQ5Mzg4MVxcXCIgaWQ9XFxcInJlY3Q1ODc2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmY3ZjJhO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTojZDQ1NTAwO3N0cm9rZS13aWR0aDowLjc0NDAzNzk5O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lXFxcIiAvPiA8cmVjdCB3aWR0aD1cXFwiMTAuMjQ1NDM2XFxcIiBoZWlnaHQ9XFxcIjEwLjI0NTQzNlxcXCIgcng9XFxcIjEuODEyNjU0NVxcXCIgcnk9XFxcIjEuODEyNjU0NVxcXCIgeD1cXFwiNjAuOTI2NTlcXFwiIHk9XFxcIjEwNS4yMjQ1XFxcIiBpZD1cXFwicmVjdDU4NzhcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjdmMmE7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOiNkNDU1MDA7c3Ryb2tlLXdpZHRoOjAuNzQ0MDM3OTk7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmVcXFwiIC8+IDxyZWN0IHdpZHRoPVxcXCI2LjE4OTc1MzFcXFwiIGhlaWdodD1cXFwiNi4xODk3NTMxXFxcIiByeD1cXFwiMS4wOTUxMTAyXFxcIiByeT1cXFwiMS4wOTUxMTAyXFxcIiB4PVxcXCI4Ny40MDQ3MzlcXFwiIHk9XFxcIjExOC42MzcwNVxcXCIgaWQ9XFxcInJlY3Q1ODgwXFxcIiBzdHlsZT1cXFwiZmlsbDojZmY3ZjJhO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTojZDQ1NTAwO3N0cm9rZS13aWR0aDowLjc0NDAzNzk5O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lXFxcIiAvPiA8L2c+IDwvZz5cIixcblx0fSxcblx0XCJPcGVuQ0xcIjoge1xuXHRcdGNvbG91cjogXCIjRkYxQzFBXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIyOS42NjJcXFwiIHkxPVxcXCIxOC4wMjZcXFwiIHgyPVxcXCIyMS40MTlcXFwiIHkyPVxcXCIyMC4yMzRcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcInJlZFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmNmE2YVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiMjQuNTg4XFxcIiB5MT1cXFwiOS43NDhcXFwiIHgyPVxcXCIxOC43NzZcXFwiIHkyPVxcXCIxNS41NlxcXCIgeGxpbms6aHJlZj1cXFwiI2FcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImNcXFwiIHgxPVxcXCIxOC40NjZcXFwiIHkxPVxcXCI2LjYxOVxcXCIgeDI9XFxcIjE1LjkyNFxcXCIgeTI9XFxcIjEzLjYwM1xcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2NmYTQwY1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2VkZDQ4MFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJkXFxcIiB4MT1cXFwiMTMuMTdcXFwiIHkxPVxcXCI2LjUxXFxcIiB4Mj1cXFwiMTMuMTdcXFwiIHkyPVxcXCIxMi45OTdcXFwiIHhsaW5rOmhyZWY9XFxcIiNjXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJlXFxcIiB4MT1cXFwiOC44MDhcXFwiIHkxPVxcXCI4LjQ4NlxcXCIgeDI9XFxcIjEwLjk4OFxcXCIgeTI9XFxcIjEzLjE2MVxcXCIgeGxpbms6aHJlZj1cXFwiI2NcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImZcXFwiIHgxPVxcXCI1LjUwNVxcXCIgeTE9XFxcIjExLjQ3N1xcXCIgeDI9XFxcIjguNTQ2XFxcIiB5Mj1cXFwiMTQuNTE5XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMTFhMTE5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMzdhZTNkXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImdcXFwiIHgxPVxcXCIzLjYzOVxcXCIgeTE9XFxcIjE0LjI4NVxcXCIgeDI9XFxcIjYuODgzXFxcIiB5Mj1cXFwiMTYuMTU4XFxcIiB4bGluazpocmVmPVxcXCIjZlxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiaFxcXCIgeDE9XFxcIjIuMjY1XFxcIiB5MT1cXFwiMTcuNzk5XFxcIiB4Mj1cXFwiNS4zNzlcXFwiIHkyPVxcXCIxOC45MzNcXFwiIHhsaW5rOmhyZWY9XFxcIiNmXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJpXFxcIiB4MT1cXFwiMlxcXCIgeTE9XFxcIjIxLjYxNFxcXCIgeDI9XFxcIjQuODMzXFxcIiB5Mj1cXFwiMjEuNjE0XFxcIiB4bGluazpocmVmPVxcXCIjZlxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwialxcXCIgeDE9XFxcIjIwLjY2MlxcXCIgeTE9XFxcIjE4Ljk0OVxcXCIgeDI9XFxcIjE4LjAyNlxcXCIgeTI9XFxcIjE3LjQyOFxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMC41XFxcIiBzdG9wLWNvbG9yPVxcXCIjNjQ2NDY0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjY2JjYmNiXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImtcXFwiIHgxPVxcXCIxNi4wMjFcXFwiIHkxPVxcXCIyNS4yNjRcXFwiIHgyPVxcXCIxNi4wMjFcXFwiIHkyPVxcXCIyMi42OTFcXFwiIHhsaW5rOmhyZWY9XFxcIiNqXFxcIi8+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfb3BlbmNsPC90aXRsZT48cGF0aCBkPVxcXCJNMjcuODI4LDEzLjU3NGExNC42NzYsMTQuNjc2LDAsMCwxLC44MzUsMS41NDJBMTQuOTY0LDE0Ljk2NCwwLDAsMSwyOS45MiwyMi45SDIyLjEzM2ExMC4zNzcsMTAuMzc3LDAsMCwwLS45NjctNC40MjRaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTE3Ljc1MywxNC40M2ExMC4wNzQsMTAuMDc0LDAsMCwxLDIuNzcyLDIuODc4bDYuMjczLTUuMmExNS41NCwxNS41NCwwLDAsMC00Ljk4OC00LjE1WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC43ODEsMTMuMDg2YTguODI3LDguODI3LDAsMCwxLDIuMzc2Ljk2NkwyMC42NjYsNy40M2ExMi43LDEyLjcsMCwwLDAtNC42NDUtLjk1MlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYylcXFwiLz48cGF0aCBkPVxcXCJNMTQuMzY0LDEzbC42MTItNi40ODhhMTIuNDYsMTIuNDYsMCwwLDAtMy42MTEuODEzbC41MDcsNS42MzhBNy4yMTksNy4yMTksMCwwLDEsMTQuMzY0LDEzXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2QpXFxcIi8+PHBhdGggZD1cXFwiTTEwLjk0OCwxMy4xNzlsLS42ODMtNS4zNzNBMTQuNTg4LDE0LjU4OCwwLDAsMCw3Ljc3Myw5LjM3OWwxLjc0LDQuNDJhNy41MTgsNy41MTgsMCwwLDEsMS40MzUtLjYxOVxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNlKVxcXCIvPjxwYXRoIGQ9XFxcIk04Ljg2LDE0LjIwNiw2LjQ3NCwxMC41MTFjLS40NTMuNDQtLjc5LjgyLTEuMDA2LDEuMDc0cS0uMjI3LjI2Ny0uNDM2LjUzOEw3LjQ4LDE1LjM4N2E4Ljg3LDguODcsMCwwLDEsMS4zOC0xLjE4MlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNmKVxcXCIvPjxwYXRoIGQ9XFxcIk03LjA0NiwxNS44NzUsNC4zMzUsMTMuMTEyYTE0LjI1OSwxNC4yNTksMCwwLDAtMS4yNSwyLjQyOWwzLjAwNywxLjcxYTkuODI2LDkuODI2LDAsMCwxLC45NTQtMS4zNzZcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZylcXFwiLz48cGF0aCBkPVxcXCJNNS41MjcsMTguMzkzbC0yLjc3LTEuOTQ1YTE1LjQ1MiwxNS40NTIsMCwwLDAtLjYzLDIuODNsMi45MDYuNjA3YTEwLjM0MywxMC4zNDMsMCwwLDEsLjQ5NC0xLjQ5MlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNoKVxcXCIvPjxwYXRoIGQ9XFxcIk00LjgzMywyMC45YTEwLjY4NCwxMC42ODQsMCwwLDAtLjEsMkgyLjA5M2ExNC4zMzMsMTQuMzMzLDAsMCwxLS4wNjQtMi41NzNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2kpXFxcIi8+PHBhdGggZD1cXFwiTTIyLjU1MSwxMi40NzgsMTQuNzUxLDIzLjFBMS41NDQsMS41NDQsMCwwLDEsMTcuNSwyNC40MjhaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2opXFxcIi8+PHBhdGggZD1cXFwiTTE2LjAyMSwyNS41MjJhMS41NDQsMS41NDQsMCwxLDEsMS4wOTItLjQ1MkExLjUzMywxLjUzMywwLDAsMSwxNi4wMjEsMjUuNTIyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzY0NjQ2NFxcXCIvPjxwYXRoIGQ9XFxcIk0xNy4zMDgsMjMuOTc4YTEuMjg3LDEuMjg3LDAsMSwxLS4zNzctLjkxQTEuMjgzLDEuMjgzLDAsMCwxLDE3LjMwOCwyMy45NzhaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2spXFxcIi8+XCIsXG5cdH0sXG5cdFwiUGFzY2FsXCI6IHtcblx0XHRjb2xvdXI6IFwiI0ZGNjM0NFwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMTZcXFwiIHkxPVxcXCItMC40NDNcXFwiIHgyPVxcXCIxNlxcXCIgeTI9XFxcIjIyLjA0MlxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMC4wMjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZjBjMTVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM5YTBjMGZcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2RlbHBoaTwvdGl0bGU+PGNpcmNsZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCIxNlxcXCIgcj1cXFwiMTRcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMjcuNTQ1LDE2LjI0M0g0LjkyNGEuOTE0LjkxNCwwLDAsMC0xLjA5Mi44MnEuMDMzLjQyOS4xLjg0OWExMi40LDEyLjQsMCwwLDAsMjQuNTMyLDBxLjA3NS0uNS4xMDgtMS4wMjFDMjguNDc4LDE2LjUyMywyOC4yMTEsMTYuMjA3LDI3LjU0NSwxNi4yNDNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmY2NDQzXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiMTguNDggMTEuNjQgMjMuNzA3IDcuMjY2IDE5Ljc4NyA1Ljg4IDE2IDExLjA1M1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjE1LjY4IDExLjAyNiAxOC42NCA1Ljg4IDE0Ljg1MyA1Ljg4IDEzLjMwNyAxMS4yOTNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWU3ZTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCIxMy4wNCAxMS4zNzMgMTMuNiA2LjcwNiAxMC41ODcgNy45NiAxMS4wMTMgMTIuNzZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWU3ZTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCIxMC43NDcgMTMgOS43ODcgOC43NiA3LjcwNyAxMC44NCA5LjY1MyAxNC42OFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjkuMzg3IDE1LjA1MyA3LjQ5MyAxMi4zNzYgNi42NCAxNC40NjYgOS4wNCAxNi41MTdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWU3ZTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCI5LjA0IDE2Ljc1NyA2LjY0IDE1LjIxMyA2LjQ4IDE3LjQgOS4yIDE4LjMzM1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjkuMjI3IDE4Ljg0NiA2LjY0IDE4LjA0IDcuMjI3IDE5LjggOS41NDcgMTkuOFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjkuNzA3IDIwLjA5MyA3LjcwNyAyMC4zODYgOC42MjcgMjEuNzQ2IDEwLjI2NyAyMVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0yMC4wMjMsMTMuMDg5YTYuNjEsNi42MSwwLDAsMC00LjUzLTJBNi4yOTMsNi4yOTMsMCwwLDAsMTEuMywyMi4wN2w0Ljk0MS4xMjktMi4wOC00LjE2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlZTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi41LDIyLjM2NmwtNS4yNjctLjEzOC0uMDQ0LS4wMzlhNi40NTMsNi40NTMsMCwwLDEsNC4zLTExLjI2NCw2Ljc4Nyw2Ljc4NywwLDAsMSw0LjY0MywyLjA1bC4xMjMuMTIzLTUuOSw0Ljk4MlptLTUuMTQtLjQ1NSw0LjYxNi4xMjFMMTMuOTYxLDE4bDUuODI1LTQuOTE5YTYuNDMsNi40MywwLDAsMC00LjI5Mi0xLjgzNSw2LjEzMyw2LjEzMywwLDAsMC00LjEzMSwxMC42NjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWU0YjJlXFxcIi8+PHBhdGggZD1cXFwiTTEyLjAxMywyMC40OTNjLTQuMTczLTUuODEzLDIuMTA5LTguMTcyLDIuNDc4LTguNDUzLjQ1MS0uMzQ0LTcuNTksMS43ODUtMy4yMjYsOC44OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMDRlMzE7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIwLjcyIDEyLjYgMTMuNTIgMTcuNTY3IDEzLjczMyAxOC41NzMgMjEuNDY3IDE3LjAyNiAyMC43MiAxMi42XFxcIiBzdHlsZT1cXFwiZmlsbDojZWVlO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTEzLjYxLDE4Ljc2MSwxMy4zNDEsMTcuNWw3LjQ5NS01LjE3LjgxNCw0LjgyOFptLjA4OS0xLjEyMy4xNTguNzQ3TDIxLjI4MywxNi45LDIwLjYsMTIuODc0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlNGIyZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNS43MjMsMjEuMzE5Yy0zLjkzLS42NjgtNC4yODMuNDI4LTQuMjgzLjQyOEwxMC4yNjcsMjQuNDRzMS4xMi0uOTA3LDUuNDkzLDBsLjc2LTEuMzg4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2RkMGMxMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNC4xMjIsMjEuNmMtLjAyLS4yLTEuMS0uMzE5LTEuNjc3LS4xMjMtLjczMi4yNDktMS4yMTksMS4xNDItMS4wNDUsMS4yMTNhMS45NzUsMS45NzUsMCwwLDEsMS4xMjUtLjk4NkMxMy40NDcsMjEuNDkzLDE0LjE0MiwyMS44LDE0LjEyMiwyMS42WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmNmU0ZjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNS41MiwxOC42MDZhMTEuMSwxMS4xLDAsMCwwLDEuNTQ3LDEuNDg3LDYuOSw2LjksMCwwLDEsMi43Miw0LjEwN2MtLjEwNywxLjA2Ny0xLjk3MywxLjc2LTEuOTczLDEuNzZsLTMuMzA3LTcuMTk0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlZTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNy43MywyNi4xNjFsLTMuNDU3LTcuNTIxLDEuMzItLjIwOC4wNTcuMDgxYTEwLjg2OSwxMC44NjksMCwwLDAsMS41MTIsMS40NTEsNyw3LDAsMCwxLDIuNzgyLDQuMjA3bDAsLjAyMiwwLC4wMjJjLS4xMTUsMS4xNTMtMiwxLjg2NC0yLjA3NywxLjg5NFptLTIuOTktNy4yNywzLjE1NSw2Ljg2M2MuNDE0LS4xNzgsMS42My0uNzYzLDEuNzMtMS41NDhhNi43OTMsNi43OTMsMCwwLDAtMi42NDgtMy45ODFsLS4wMS0uMDA3YTExLjk0LDExLjk0LDAsMCwxLTEuNTE3LTEuNDM5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlNGIyZVxcXCIvPjxwYXRoIGQ9XFxcIk0yOCwxMi43NDJjLjAyNS4zOTQuMDM0Ljc5Mi4wMjUsMS4xOTRhMTMuOTQ2LDEzLjk0NiwwLDAsMS0xOS45LDEyLjNBMTIuODYsMTIuODYsMCwwLDAsMjgsMTIuNzQyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2VhZTBkZjtmaWxsLXJ1bGU6ZXZlbm9kZDtvcGFjaXR5OjAuMlxcXCIvPjxwYXRoIGQ9XFxcIk0yLjM4MywxMy44OTNBMTMuOTQxLDEzLjk0MSwwLDAsMSwyNS43LDUuODNzLTUuMDA5LDUuOTc5LTEwLjU4NCw3LjkwN1MyLjM4MywxMy44OTMsMi4zODMsMTMuODkzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2VhZTBkZjtvcGFjaXR5OjAuMlxcXCIvPjxwYXRoIGQ9XFxcIk0zLjYxOCwxOC42OTRjLS4wNDQtLjM5Mi0uMDcyLS43OS0uMDgzLTEuMTkxQzMuMzI5LDkuODA3LDEwLjAxMiw0LjIsMTcuNzA4LDMuOTkxYTE0LjIsMTQuMiwwLDAsMSw1LjcxOSwxLjQ1OCwxMy4xMjgsMTMuMTI4LDAsMCwwLTcuMTg4LTIuMzY5Yy03LjEuMTktMTMuMzA2LDUuMy0xMy4xMTYsMTIuNEExMi44NzMsMTIuODczLDAsMCwwLDMuNjE4LDE4LjY5NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlYWUwZGY7ZmlsbC1ydWxlOmV2ZW5vZGQ7b3BhY2l0eTowLjJcXFwiLz5cIixcblx0fSxcblx0XCJQZXJsXCI6IHtcblx0XHRjb2xvdXI6IFwiIzNhM2M1YlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTI5LjI1LDEzLjhhNi44ODgsNi44ODgsMCwwLDAtLjc0Mi0yLjI2OCwxLjAxMSwxLjAxMSwwLDAsMC0uMTcyLS4yMzMsOS40NzEsOS40NzEsMCwwLDEtMS43MjUtMi40LDguNjMyLDguNjMyLDAsMCwwLTEuMzk1LTIuMzgyQTYuOTA2LDYuOTA2LDAsMCwxLDI0LjEsNC42NDQsNC41NzIsNC41NzIsMCwwLDAsMjEuOTksMS43MjdhMS4wMDksMS4wMDksMCwwLDAtLjEtLjA1NCw4Ljg4Niw4Ljg4NiwwLDAsMC0xLjMtLjQ2OCwxLjAyMiwxLjAyMiwwLDAsMC0uMjYzLS4wMzUsMS4wMDksMS4wMDksMCwwLDAtLjIuMDIxLDUuNjA3LDUuNjA3LDAsMCwxLS44MDcuMTA3Yy0uMDUsMC0uMS0uMDA2LS4xNDktLjAwNmEyLjg0MiwyLjg0MiwwLDAsMC0xLjQxNi40NTNjLS4wOTQuMDUyLS4xODguMTA2LS4yODQuMTQ5cS0uMDQxLjAxOC0uMDc4LjAzOUExLjYzNywxLjYzNywwLDAsMSwxNy4wNjYsMmEzLjEwOSwzLjEwOSwwLDAsMC0uNzcyLjE5NCwxLDEsMCwwLDAtLjUwOC40ODMsMi4xODQsMi4xODQsMCwwLDEtLjQ2OS41QTQuMzgyLDQuMzgyLDAsMCwwLDE0LjU1NSw0YS45NjQuOTY0LDAsMCwwLS4xMTYuMjM0LDQuNjg3LDQuNjg3LDAsMCwxLTEuNTc0LDIuMiw2LjQ3MSw2LjQ3MSwwLDAsMC0uOC42MTMsMi43MzQsMi43MzQsMCwwLDAtLjYyNy0xLjYzNGMtLjAxNy0uMDE5LS4wMzUtLjAzOC0uMDUzLS4wNTZsMC0uMDE0YTIuMzc4LDIuMzc4LDAsMCwwLS4xMzUtLjU4NiwxLDEsMCwwLDAtLjEzMi0uMjM2QTUuMTY3LDUuMTY3LDAsMCwwLDkuNTExLDMuMTEzYS45ODguOTg4LDAsMCwwLS4zNDYtLjExOSwxLjUsMS41LDAsMCwxLS4xNDgtLjA3NywyLjA2LDIuMDYsMCwwLDAtMS0uMzExLDEuNDc2LDEuNDc2LDAsMCwwLS42ODEuMTY2Ljk4Ny45ODcsMCwwLDAtLjI3NC4yMDYsMS4zMjgsMS4zMjgsMCwwLDEtLjEyNS4wNjMsMS45LDEuOSwwLDAsMC0uOTA4Ljc3OCwyLjUzOSwyLjUzOSwwLDAsMC0uNTQxLjEwNiwxLjY1NiwxLjY1NiwwLDAsMS0uMzgzLjA1NywyLjMsMi4zLDAsMCwwLTEuNS41NDVsLS4xMDYuMWEyLjUzMywyLjUzMywwLDAsMC0xLDIuNTI1LDEuMDgsMS4wOCwwLDAsMCwuMDY4LjE2NUEyLjI5NCwyLjI5NCwwLDAsMCw0LjQ0Niw4LjQ3OGMtLjEuMjM4LS4yLjQ3My0uMzE0LjdhMS4wMDksMS4wMDksMCwwLDAtLjA4Ny4yOTNBMTEuMDUyLDExLjA1MiwwLDAsMCw0LDEyLjAzOWMwLC4wMiwwLC4wNC4wMDcuMDZhNS4yNzgsNS4yNzgsMCwwLDEsLjA0MS41NDcsMi45MjYsMi45MjYsMCwwLDAsLjkzMSwyLjRjLjAxNy4wMTQuMDM0LjAyNi4wNTIuMDM5bC4wMDguMDMxYTIuOCwyLjgsMCwwLDAsLjE1MS40NDcsMS4xODUsMS4xODUsMCwwLDAsLjYzMi42MTcsMS4yODksMS4yODksMCwwLDAsLjI0OC41NzEsMSwxLDAsMCwwLC4zMzIuMjc5LDIuNDUzLDIuNDUzLDAsMCwwLC40NjUuMTc2bC4wNjQuMDE4YS45NzYuOTc2LDAsMCwwLC4xOTIuMTcxQTUuODc5LDUuODc5LDAsMCwxLDcuODczLDE4YTEuMTMsMS4xMywwLDAsMCwxLjM1MS40MjcsMS41LDEuNSwwLDAsMCwuNzY1LjIxNSwxLjQyMSwxLjQyMSwwLDAsMCwuNjI0LS4xNDVsLjExNC0uMDI2Yy4wMjQuNDA4LjAzMy44MTcuMDI4LDEuMjIzYTEuMDQzLDEuMDQzLDAsMCwwLC4wMjYuMjQyLDEwLjc0NCwxMC43NDQsMCwwLDEsLjI2NiwxLjgyOC45MzEuOTMxLDAsMCwwLC4wMzEuMiw4LjQ5Miw4LjQ5MiwwLDAsMSwuMjY4LDEuODE1YzAsLjAzMSwwLC4wNjMuMDA4LjA5NGE2LjA4Myw2LjA4MywwLDAsMS0uNjEsMy41NzUuOTk0Ljk5NCwwLDAsMC0uMDg5LjI2MSwxLjA5MywxLjA5MywwLDAsMC0uMjM0LjA3OWwtLjA1LjAyMmEyLjAxMywyLjAxMywwLDAsMC0xLjIsMS4wNjUsMS4zMjIsMS4zMjIsMCwwLDAsLjA3NCwxLjA1NCwxLDEsMCwwLDAsLjMyNC4zNzEsMy41NDcsMy41NDcsMCwwLDAsMy41MDkuMywxLjU0NiwxLjU0NiwwLDAsMCwuODI5LTEuNjUzbC0uMDA1LS4wNjdhLjk4OS45ODksMCwwLDAsLjA1Ni0uMTU4LDExLjE4NiwxMS4xODYsMCwwLDAsLjI4OC0yLjA2OCw4LjkzOSw4LjkzOSwwLDAsMSwuMjU5LTEuODIyLDQuNzI3LDQuNzI3LDAsMCwwLC4zODktMS41ODhsLjA0Mi4wNDhhMTIuNjYxLDEyLjY2MSwwLDAsMCwxLjI1NSwxLjEyOSwxMC4zLDEwLjMsMCwwLDEsMS4xLjk4OWwtLjAxMS4wMzhhLjUzMi41MzIsMCwwLDEtLjM0Mi4zNTlsLS4wNDkuMDE3YTEuOTIxLDEuOTIxLDAsMCwwLTEuMTg0LDEuMzM0LDEuMzEzLDEuMzEzLDAsMCwwLC40NTIsMS4yMzQsMSwxLDAsMCwwLC40NDEuMjIyLDQuOTA4LDQuOTA4LDAsMCwwLDIuNzM1LS4xODEsMS41NTYsMS41NTYsMCwwLDAsLjI2Ni0uMTI0LDEuNDExLDEuNDExLDAsMCwwLC45Ny4zNzIsMi4zMjYsMi4zMjYsMCwwLDAsMS0uMjc0Yy4wNDktLjAyMy4xLS4wNDUuMTQtLjA2MmExLDEsMCwwLDAsLjYzNy0uODY0LDQuNTUzLDQuNTUzLDAsMCwwLS40NjgtMi4zNDMsMS41NiwxLjU2LDAsMCwwLS41MS0uNiwxMC44LDEwLjgsMCwwLDEsMS4zLTIuMTUsMi4xOTMsMi4xOTMsMCwwLDAsLjQ1MS0yLjAyNiwyLjUxOSwyLjUxOSwwLDAsMS0uMDQzLS4zOTQsMS4wNDYsMS4wNDYsMCwwLDAsMC0uMTQ4LDUuNzU2LDUuNzU2LDAsMCwxLC4wMTItMS4yNzksNy4xNjEsNy4xNjEsMCwwLDAsLjk1MSwxLjc5Myw3Ljg5Miw3Ljg5MiwwLDAsMSwuMTMzLDEuMSwxMC43MzMsMTAuNzMzLDAsMCwwLC4xMzMsMS4xODYsOS4zNiw5LjM2LDAsMCwxLS4yMjQsMy45LDEsMSwwLDAsMC0uMDMyLjM0aDBhLjk4Ljk4LDAsMCwwLS4xLjE3OSwyLjIzOCwyLjIzOCwwLDAsMC0uMzEyLDEuMjM1LDEuMDA3LDEuMDA3LDAsMCwwLC4wMzkuMiwxLjMxNSwxLjMxNSwwLDAsMCwxLjMyOC45NjNjLjA4NiwwLC4xNzctLjAwNi4yNjgtLjAxNGwuMDE5LDAsLjAzOC4wMTNhMi4xMDksMi4xMDksMCwwLDAsMi41MTctMS4wODgsMSwxLDAsMCwwLC4wNTgtLjczNSw1LjI4NSw1LjI4NSwwLDAsMS0uMjA4LTEuMDI3LDEuMDExLDEuMDExLDAsMCwwLS4wNDYtLjIxNyw2LjQ3LDYuNDcsMCwwLDEtLjIyMS0zLjIyLDEuMTEyLDEuMTEyLDAsMCwwLC4wMTUtLjExNCwzLjkwNywzLjkwNywwLDAsMSwuMDc0LS40NDMsMi43MzgsMi43MzgsMCwwLDAtLjE5My0yLjEsNC4zMzksNC4zMzksMCwwLDEsLjAyMS0uNDc2Yy4wMTEtLjE0Ny4wMjMtLjMuMDI3LS40NjNhMS41OSwxLjU5LDAsMCwwLC44NjItLjg1MSwxMi44MywxMi44MywwLDAsMCwuOTQ3LTIuMjMsMS43MTksMS43MTksMCwwLDAsLjE3Mi0xLjE4NSwxLjIzNCwxLjIzNCwwLDAsMCwuMTExLS4yNTFBMS40NjcsMS40NjcsMCwwLDAsMjkuMjUsMTMuOFpNMTguODYzLDIyLjc2OGMtLjAyNiwwLS4wNTMtLjAwOC0uMDgtLjAxbC0uMDI0LDBhMi43NDgsMi43NDgsMCwwLDEtLjIzNi0uMzIzYy0uMDU5LS4wODgtLjExOC0uMTc1LS4xNzgtLjI1OGEyLjI1MywyLjI1MywwLDAsMCwuMjA4LS4yMzQsMS4yNTUsMS4yNTUsMCwwLDAsLjYyOS0uMzIxQTMuMTg2LDMuMTg2LDAsMCwxLDE4Ljg2MywyMi43NjhaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWRlZGVkXFxcIi8+PHBhdGggZD1cXFwiTTE5LjI4OSwyLjNjLS41NDgtLjA2NS0uOTYxLjMtMS40MTkuNTA2LS4zNjguMjA2LS44MTUuMTUyLTEuMTg1LjMwOS0uMjgyLjU3OS0uOTQxLjkwOC0xLjMsMS40NDNhNS43LDUuNywwLDAsMS0xLjk0MiwyLjY5NCw1LjQ2NCw1LjQ2NCwwLDAsMC0yLjM2OCwzLjM5NGMtLjE0NS4zLS4xMjIuNzQ2LS4yNzcsMS0uNTExLjE0My0uMjM5LS41MTYtLjMtLjgyNS0uMDc0LS40Ny4zNDEtLjc3LjM3My0xLjIyNmExLjgzNCwxLjgzNCwwLDAsMCwuMjA5LTEuMDUzYy0uMDU2LS44MTQuMTg5LTEuODA3LS4zOTMtMi40NzctLjM0OS0uMi0uMjM5LS42MjMtLjM2Ni0uOTQ3YTQuMjE0LDQuMjE0LDAsMCwwLTEuMy0xLjEzOWMtLjQxOS0uMDQxLS44MDYtLjU0Mi0xLjIzMi0uMzIzLS4yNjYuMzA5LS43NjMuMzA1LS45MjIuNzEzLS4xLjUxNi0uNjg4LjM3NC0xLjA2OC41LS40ODguMTg1LTEuMTE4LjAwNi0xLjUxOC4zODItLjQxMS40MS0xLjAzNC45NjEtLjgzNSwxLjYwNi40NTcuODgyLDEuNjQ1LjQzOCwyLjMxNy45NzRBMTcuOTksMTcuOTksMCwwLDEsNS4wMzYsOS42MWExMC4wNTEsMTAuMDUxLDAsMCwwLS4wNDQsMi4zMzJjLjEyMy43NzMtLjA4MywxLjc3Mi42MDYsMi4zMTkuMzguMTM3LjM1Ny41NzIuNS44ODcuMTM0LjI5LjQyNy0uMTEzLjU0My4xOTMuMzM4LjE4NC4wMzcuNTYxLjIyLjguMjYzLjEzNy42MzkuMTI4LjgyMi40MjZhNi44NDQsNi44NDQsMCwwLDEsLjk3NS44MDZjLjIzLjQ2Ny41MzEtLjQ1NC43ODMtLjEwOS4xNy4yODUuNTA2LjUyMi44MTkuMjg1YTIuOTkzLDIuOTkzLDAsMCwwLDEuMzI0LS41NTYsMTguMDMzLDE4LjAzMywwLDAsMSwuMTcxLDIuNzE4LDExLjczMywxMS43MzMsMCwwLDEsLjI5LDIsOS40MDksOS40MDksMCwwLDEsLjMsMi4wMyw3LjExMSw3LjExMSwwLDAsMS0uNzA5LDQuMTYsMS4wMTIsMS4wMTIsMCwwLDEtLjgwNy44Yy0uMjkxLjEzLS45LjM2Ni0uNjkyLjc3NmEyLjU0OSwyLjU0OSwwLDAsMCwyLjUyLjIxNGMuNTEtLjI0My4wNzMtLjg1OC4zMzQtMS4yMjYuMzQzLTEuMy4xNzQtMi42OTEuNTc1LTMuOTg1YTMuNzYyLDMuNzYyLDAsMCwwLC4zLTIuMWMuMDc5LS40NC0uMTA1LS45NjkuMTg3LTEuMzI5YTEuODEzLDEuODEzLDAsMCwxLC40ODMtMS4yLDE0Ljc2MiwxNC43NjIsMCwwLDAsLjE0NC0yLjAyNiwzLjIxNCwzLjIxNCwwLDAsMSwxLjI2Ny0uMTI3Yy4wMTguMzc1LS4yNzIuODEyLS4xOSwxLjIzNEExLjk0OCwxLjk0OCwwLDAsMSwxNS41LDIwLjNhMi44NDksMi44NDksMCwwLDAsLjE2OCwyLjMwOGMuNzgyLjgzOSwxLjgsMS40MzIsMi41MzYsMi4zMjcuMzE0LjIwNS4yLjUxNy4wMzguNzg0YTEuNTI4LDEuNTI4LDAsMCwxLS45ODcsMS4wMzRjLS4zMDguMTIxLS44MDYuNTY2LS40NDIuODgyYTMuOTA2LDMuOTA2LDAsMCwwLDIuMTc4LS4xNDRjLjQ3Ni0uMTcxLjMtLjczOC40ODgtMS4wODguMy4yMzMuNDIzLjc2NS43MTEsMS4wNjkuMy40MzMuODA3LjA3MywxLjE1Ni0uMDYyYTMuNTQ5LDMuNTQ5LDAsMCwwLS4zNzItMS44NDJjLS4xNjctLjM3OC0uOC0uMzg1LS43Ny0uODUyYTExLjc2MSwxMS43NjEsMCwwLDEsMS43MTItM2MuNTEtLjQ3OS4xMy0xLjE5MS4xNTgtMS44QTYuNzY1LDYuNzY1LDAsMCwxLDIzLjE1OCwxNS41YTE1Ljg4OSwxNS44ODksMCwwLDAsLjY5MiwyLjE0LDYuMjMsNi4yMywwLDAsMCwxLjEsMi4yNDZjLjIzNy44MTEuMTc2LDEuNzEuMzMxLDIuNTUxYTEwLjQ0LDEwLjQ0LDAsMCwxLS4yNDIsNC4zNDdjLjA0LjUxOC0uNDU3LjktLjQxNSwxLjQwOC4xNC40NjkuNy4wOTMuOTkuMjlhMS4xMSwxLjExLDAsMCwwLDEuMzI0LS41NzIsNi4yMTIsNi4yMTIsMCwwLDEtLjI0Ny0xLjIyMyw3LjQ1NCw3LjQ1NCwwLDAsMS0uMjU1LTMuNzE5Yy4wNDYtLjY2OS40NTctMS41LS4wNzMtMi4wNzItLjE0OC0uNjE5LjEtMS4yODUtLjA0OS0xLjkxNWExMi44NzcsMTIuODc3LDAsMCwxLS4xMjItNC45MzNjLjA5My0uMjI3LjAxMy0uNjQ5LjI0Ny0uNzc1YTEuODUxLDEuODUxLDAsMCwxLC4zMTUsMS4yMzIsMy43LDMuNywwLDAsMSwuMDc5LDIuMDgxYy0uNDI0LjUzMS0uMTYzLDEuMjQ4LS4xMDksMS44NS4wNjguNDIyLjUxNi4xMTguNTg5LS4xNDRhMTEuODUxLDExLjg1MSwwLDAsMCwuOTQ0LTIuMjQxYy4yNjktLjM1Ni4wMTQtLjc3LDAtMS4xNDIuNDEzLS4wNDkuMjU2LS41MDYuMDM1LS43YTUuOTMsNS45MywwLDAsMC0uNjY3LTIuMiwxMC40NjQsMTAuNDY0LDAsMCwxLTEuOTQxLTIuNzIzYy0uNTI4LTEuNjM5LTIuMDQyLTIuNzI2LTIuNTU2LTQuMzc5YTMuNTU2LDMuNTU2LDAsMCwwLTEuNjUyLTIuMzE3QTcuODgxLDcuODgxLDAsMCwwLDIwLjMyLDIuMTcsNi41LDYuNSwwLDAsMSwxOS4yODksMi4zWm0uNCwxNC42NmEzOC45MDcsMzguOTA3LDAsMCwxLC41LDQuMjkxLDQuMTc1LDQuMTc1LDAsMCwxLS43NiwyLjUxN2MtLjEyLjQyNS0uNDg2LjAxMi0uNzUxLS4wMTYtLjY0My0uMDE4LS44ODItLjY4My0xLjIzMi0xLjEwNy0uMzYtLjM0NC0uMS0uOC4xMzMtMS4xMzEuMjUyLS4xNzkuMzUtLjU3OS43MDgtLjU0OC40LS4wMDcuMzE2LS40ODcuMjYtLjc0My4yMzgtLjM2Mi4wOTItLjg5Mi4zMjgtMS4yODMuNDE5LS4xODIuMjk0LS44Mi40NDItMS4xOC4xMTUtLjI1Ni4wMTctLjc0OS4zMzQtLjg1NC4wMzctLjAwNi4wNDkuMDEyLjA0Mi4wNTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojM2EzYzViXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIjXCIsXG5cdFx0XSxcblx0fSxcblx0XCJQSFBcIjoge1xuXHRcdGNvbG91cjogXCIjNGM2Yjk2XCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImFcXFwiIGN4PVxcXCItMTYuMTE0XFxcIiBjeT1cXFwiMjAuNTMyXFxcIiByPVxcXCIxOC4zODRcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoMjYuNTIgLTkuMzA3KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41XFxcIiBzdG9wLWNvbG9yPVxcXCIjNGM2Yjk2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMjMxZjIwXFxcIi8+PC9yYWRpYWxHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9waHA8L3RpdGxlPjxlbGxpcHNlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjE2XFxcIiByeD1cXFwiMTRcXFwiIHJ5PVxcXCI3LjM2NVxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxlbGxpcHNlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjE2XFxcIiByeD1cXFwiMTMuNDUzXFxcIiByeT1cXFwiNi44MThcXFwiIHN0eWxlPVxcXCJmaWxsOiM2MjgwYjZcXFwiLz48cGF0aCBkPVxcXCJNMTguNzI1LDE4LjJsLjY2Ny0zLjQzNGExLjc1MiwxLjc1MiwwLDAsMC0uMzcyLTEuNzE5LDIuOTI5LDIuOTI5LDAsMCwwLTItLjUyNUgxNS44NjdsLjMzMS0xLjdhLjIxOS4yMTksMCwwLDAtLjIxNS0uMjZoLTEuNmEuMjE5LjIxOSwwLDAsMC0uMjE1LjE3N2wtLjcwOSwzLjY0NmEyLjA1MSwyLjA1MSwwLDAsMC0uNDc3LTEuMDU0LDIuNzgzLDIuNzgzLDAsMCwwLTIuMi0uODA3SDcuN2EuMjE5LjIxOSwwLDAsMC0uMjE1LjE3N2wtMS40MzQsNy4zOGEuMjE5LjIxOSwwLDAsMCwuMjE1LjI2SDcuODY5YS4yMTkuMjE5LDAsMCwwLC4yMTUtLjE3N2wuMzQ3LTEuNzg1aDEuMmE1LjE2Nyw1LjE2NywwLDAsMCwxLjU2OC0uMiwzLjA2OCwzLjA2OCwwLDAsMCwxLjE1LS42ODksMy41MzgsMy41MzgsMCwwLDAsLjY4LS44NDRsLS4yODcsMS40NzVhLjIxOS4yMTksMCwwLDAsLjIxNS4yNmgxLjZhLjIxOS4yMTksMCwwLDAsLjIxNS0uMTc3bC43ODctNC4wNTFoMS4wOTRjLjQ2NiwwLC42LjA5My42NC4xMzNzLjEuMTY1LjAyNS41NjlsLS42MzUsMy4yNjVhLjIxOS4yMTksMCwwLDAsLjIxNS4yNmgxLjYyQS4yMTkuMjE5LDAsMCwwLDE4LjcyNSwxOC4yWk0xMS4zMywxNS4zNjZhMS43NDksMS43NDksMCwwLDEtLjU2MSwxLjA5MiwyLjE3MSwyLjE3MSwwLDAsMS0xLjMxNS4zMjFIOC43NDJsLjUxNS0yLjY1MWguOTIxYy42NzcsMCwuOTQ5LjE0NSwxLjA1OS4yNjZBMS4xODEsMS4xODEsMCwwLDEsMTEuMzMsMTUuMzY2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0yNS41NDYsMTMuMzMyYTIuNzgzLDIuNzgzLDAsMCwwLTIuMi0uODA3SDIwLjI1NWEuMjE5LjIxOSwwLDAsMC0uMjE1LjE3N2wtMS40MzQsNy4zOGEuMjE5LjIxOSwwLDAsMCwuMjE1LjI2aDEuNjA4YS4yMTkuMjE5LDAsMCwwLC4yMTUtLjE3N2wuMzQ3LTEuNzg1aDEuMmE1LjE2Nyw1LjE2NywwLDAsMCwxLjU2OC0uMiwzLjA2OCwzLjA2OCwwLDAsMCwxLjE1LS42ODksMy40MjUsMy40MjUsMCwwLDAsMS4wNzYtMS45MjdBMi41MTIsMi41MTIsMCwwLDAsMjUuNTQ2LDEzLjMzMlptLTEuNjY3LDIuMDM0YTEuNzQ5LDEuNzQ5LDAsMCwxLS41NjEsMS4wOTJBMi4xNzEsMi4xNzEsMCwwLDEsMjIsMTYuNzc4SDIxLjI5bC41MTUtMi42NTFoLjkyMWMuNjc3LDAsLjk0OS4xNDUsMS4wNTkuMjY2QTEuMTgxLDEuMTgxLDAsMCwxLDIzLjg3OSwxNS4zNjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTEwLjE3OCwxMy45MDhhMS42NDUsMS42NDUsMCwwLDEsMS4yMjEuMzM4LDEuMzQsMS4zNCwwLDAsMSwuMTQ1LDEuMTYxLDEuOTQ1LDEuOTQ1LDAsMCwxLS42NDIsMS4yMjNBMi4zNjEsMi4zNjEsMCwwLDEsOS40NTQsMTdIOC40NzZsLjYtMy4wODlaTTYuMjYxLDIwLjEyNEg3Ljg2OWwuMzgxLTEuOTYySDkuNjI3YTQuOTMxLDQuOTMxLDAsMCwwLDEuNS0uMTkxLDIuODQsMi44NCwwLDAsMCwxLjA3LS42NDIsMy4yMDcsMy4yMDcsMCwwLDAsMS4wMS0xLjgwOCwyLjMsMi4zLDAsMCwwLS4zODUtMi4wNDQsMi41NjgsMi41NjgsMCwwLDAtMi4wMzUtLjczMkg3LjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDAwMDA0XFxcIi8+PHBhdGggZD1cXFwiTTE0LjM4NywxMC43ODJoMS42TDE1LjYsMTIuNzQ0aDEuNDIxYTIuNzY3LDIuNzY3LDAsMCwxLDEuODUuNDY4LDEuNTQ4LDEuNTQ4LDAsMCwxLC4zMDUsMS41MTZsLS42NjcsMy40MzRIMTYuODlsLjYzNS0zLjI2NWEuODg2Ljg4NiwwLDAsMC0uMDgtLjc2LDEuMTIxLDEuMTIxLDAsMCwwLS44LS4ySDE1LjM3bC0uODIyLDQuMjI4aC0xLjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDAwMDA0XFxcIi8+PHBhdGggZD1cXFwiTTIyLjcyNywxMy45MDhhMS42NDUsMS42NDUsMCwwLDEsMS4yMjEuMzM4LDEuMzQsMS4zNCwwLDAsMSwuMTQ1LDEuMTYxLDEuOTQ1LDEuOTQ1LDAsMCwxLS42NDIsMS4yMjNBMi4zNjEsMi4zNjEsMCwwLDEsMjIsMTdoLS45NzhsLjYtMy4wODlaTTE4LjgxLDIwLjEyNGgxLjYwOGwuMzgxLTEuOTYyaDEuMzc3YTQuOTMxLDQuOTMxLDAsMCwwLDEuNS0uMTkxLDIuODQsMi44NCwwLDAsMCwxLjA3LS42NDIsMy4yMDcsMy4yMDcsMCwwLDAsMS4wMS0xLjgwOCwyLjMsMi4zLDAsMCwwLS4zODUtMi4wNDQsMi41NjgsMi41NjgsMCwwLDAtMi4wMzUtLjczMkgyMC4yNDRaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDAwMDA0XFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIjXCIsXG5cdFx0XHRcIi8vXCIsXG5cdFx0XSxcblx0fSxcblx0XCJQTC9TUUxcIjoge1xuXHRcdGNvbG91cjogXCIjZmYwMDAwXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNOC41NjIsMTUuMjU2QTIxLjE1OSwyMS4xNTksMCwwLDAsMTYsMTYuNDQ5YTIxLjE1OSwyMS4xNTksMCwwLDAsNy40MzgtMS4xOTRjMS44NjQtLjcyNywyLjUyNS0xLjUzNSwyLjUyNS0yVjkuN2ExMC4zNTcsMTAuMzU3LDAsMCwxLTIuMDg0LDEuMDc2QTIyLjI5MywyMi4yOTMsMCwwLDEsMTYsMTIuMDc4YTIyLjM2LDIyLjM2LDAsMCwxLTcuODc5LTEuM0ExMC4yOCwxMC4yOCwwLDAsMSw2LjAzNyw5Ljd2My41NUM2LjAzNywxMy43MjQsNi43LDE0LjUyOCw4LjU2MiwxNS4yNTZaXFxcIiBzdHlsZT1cXFwiZmlsbDpyZWRcXFwiLz48cGF0aCBkPVxcXCJNOC41NjIsMjEuOTYxYTE1LjYxMSwxNS42MTEsMCwwLDAsMi42Ljc0MUEyNC45LDI0LjksMCwwLDAsMTYsMjMuMTU1YTI0LjksMjQuOSwwLDAsMCw0LjgzOC0uNDUyLDE1LjYxNCwxNS42MTQsMCwwLDAsMi42LS43NDFjMS44NjQtLjcyNywyLjUyNS0xLjUzNSwyLjUyNS0ydi0zLjM5YTEwLjcwNiwxMC43MDYsMCwwLDEtMS42OTIuODI1QTIzLjQ5LDIzLjQ5LDAsMCwxLDE2LDE4Ljc0YTIzLjQ5LDIzLjQ5LDAsMCwxLTguMjcxLTEuMzQ4LDEwLjgyOSwxMC44MjksMCwwLDEtMS42OTItLjgyNVYxOS45NkM2LjAzNywyMC40MjYsNi43LDIxLjIzMSw4LjU2MiwyMS45NjFaXFxcIiBzdHlsZT1cXFwiZmlsbDpyZWRcXFwiLz48cGF0aCBkPVxcXCJNMTYsMzBjNS41LDAsOS45NjMtMS43NDQsOS45NjMtMy44OTRWMjMuMjY5YTEwLjUsMTAuNSwwLDAsMS0xLjUzNS43NjJsLS4xNTcuMDYzQTIzLjQ4NywyMy40ODcsMCwwLDEsMTYsMjUuNDQ1YTIzLjQyMiwyMy40MjIsMCwwLDEtOC4yNzEtMS4zNTFjLS4wNTQtLjAyLS4xMDYtLjA0My0uMTU3LS4wNjNhMTAuNSwxMC41LDAsMCwxLTEuNTM1LS43NjJ2Mi44MzdDNi4wMzcsMjguMjU2LDEwLjUsMzAsMTYsMzBaXFxcIiBzdHlsZT1cXFwiZmlsbDpyZWRcXFwiLz48ZWxsaXBzZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCI1Ljg5NFxcXCIgcng9XFxcIjkuOTYzXFxcIiByeT1cXFwiMy44OTRcXFwiIHN0eWxlPVxcXCJmaWxsOnJlZFxcXCIvPlwiLFxuXHR9LFxuXHRcIlBsYWluIHRleHRcIjoge1xuXHRcdGNvbG91cjogXCIjYzJjMmMyXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjIuMDM4LDJINi4zNzVhMS43NTUsMS43NTUsMCwwLDAtMS43NSwxLjc1djI0LjVBMS43NTUsMS43NTUsMCwwLDAsNi4zNzUsMzBoMTkuMjVhMS43NTUsMS43NTUsMCwwLDAsMS43NS0xLjc1VjYuODU2Wm0uNTI1LDIuODQ0LDEuNjYzLDEuNTMxSDIyLjU2M1pNNi4zNzUsMjguMjVWMy43NUgyMC44MTNWOC4xMjVoNC44MTNWMjguMjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+PHJlY3QgeD1cXFwiOC4xMjVcXFwiIHk9XFxcIjE1LjA5N1xcXCIgd2lkdGg9XFxcIjEzLjA3NlxcXCIgaGVpZ2h0PVxcXCIxLjc1XFxcIiBzdHlsZT1cXFwiZmlsbDojODI5ZWMyXFxcIi8+PHJlY3QgeD1cXFwiOC4xMjVcXFwiIHk9XFxcIjI0LjQzOVxcXCIgd2lkdGg9XFxcIjkuNzYyXFxcIiBoZWlnaHQ9XFxcIjEuNzVcXFwiIHN0eWxlPVxcXCJmaWxsOiM4MjllYzJcXFwiLz48cmVjdCB4PVxcXCI4LjEyNVxcXCIgeT1cXFwiMTkuNzYzXFxcIiB3aWR0aD1cXFwiMTUuNzVcXFwiIGhlaWdodD1cXFwiMS43NVxcXCIgc3R5bGU9XFxcImZpbGw6IzgyOWVjMlxcXCIvPjxyZWN0IHg9XFxcIjguMTI1XFxcIiB5PVxcXCIxMC4yM1xcXCIgd2lkdGg9XFxcIjE1Ljc1XFxcIiBoZWlnaHQ9XFxcIjEuNzVcXFwiIHN0eWxlPVxcXCJmaWxsOiM4MjllYzJcXFwiLz5cIixcblx0fSxcblx0XCJQbGFudFVNTFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNBMTFGNDFcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIi0zMy40MjNcXFwiIHkxPVxcXCItMjUwLjkxMVxcXCIgeDI9XFxcIi0zMy4zNTNcXFwiIHkyPVxcXCItMjUwLjg1OFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgzNy4xMzQsIDI2LjAwMSwgMTMuNTc1LCAtMTkuMzg3LCA0NjczLjQ3MywgLTM5ODIuMDE5KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzc2NzY3NlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiLTMyLjEwN1xcXCIgeTE9XFxcIi0yNDIuNTYzXFxcIiB4Mj1cXFwiLTMyLjAyOFxcXCIgeTI9XFxcIi0yNDIuNTg2XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDgxLjA4MSwgNTYuNzc0LCAxNy4zMDYsIC0yNC43MTUsIDY4MDQuMDIxLCAtNDE0OS42NDQpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMDA3OWI5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImNcXFwiIHgxPVxcXCItMzMuMjgyXFxcIiB5MT1cXFwiLTI0My40MjNcXFwiIHgyPVxcXCItMzMuMjI0XFxcIiB5Mj1cXFwiLTI0My40NTVcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoNjAuMDAzLCA0Mi4wMTUsIDM0LjE4NCwgLTQ4LjgyLCAxMDM0My4wMDUsIC0xMDQ2OS4wODQpXFxcIiB4bGluazpocmVmPVxcXCIjYlxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZFxcXCIgeDE9XFxcIjEyLjM1NlxcXCIgeTE9XFxcIjI2LjI2OFxcXCIgeDI9XFxcIjE0LjAxMVxcXCIgeTI9XFxcIjI2LjI2OFxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzU5NTk1OVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4wODdcXFwiIHN0b3AtY29sb3I9XFxcIiM2ZTZlNmVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjQyXFxcIiBzdG9wLWNvbG9yPVxcXCIjOGM4YzhjXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQwNVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E0YTRhNFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41NzdcXFwiIHN0b3AtY29sb3I9XFxcIiNiNWI1YjVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzY1XFxcIiBzdG9wLWNvbG9yPVxcXCIjYmZiZmJmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYzJjMmMyXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImVcXFwiIHgxPVxcXCIxOC4yOTFcXFwiIHkxPVxcXCIyNi4xNzFcXFwiIHgyPVxcXCIxOS45NDZcXFwiIHkyPVxcXCIyNi4xNzFcXFwiIHhsaW5rOmhyZWY9XFxcIiNkXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJmXFxcIiB4MT1cXFwiMjQuNDRcXFwiIHkxPVxcXCIyNi4xNzFcXFwiIHgyPVxcXCIyNi4wOTZcXFwiIHkyPVxcXCIyNi4xNzFcXFwiIHhsaW5rOmhyZWY9XFxcIiNkXFxcIi8+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfcGxhbnR1bWw8L3RpdGxlPjxwb2x5Z29uIHBvaW50cz1cXFwiMjAuMzA1IDE3Ljg3MiAyNy4xNiAyMi40MTggMjEuNzIgMjUuNDkzIDE0Ljg2MSAyMC45OTkgMjAuMzA1IDE3Ljg3MlxcXCIgc3R5bGU9XFxcImZpbGw6IzFjMGE0MlxcXCIvPjxwYXRoIGQ9XFxcIk0yMS43MTYsMjUuNjE5bC0uMDU1LS4wMzYtNy4wMDUtNC41OSw1LjY1My0zLjI0Nyw3LjA1Niw0LjY4Wm0tNi42NS00LjYxMyw2LjY1OCw0LjM2Miw1LjIzMS0yLjk1N0wyMC4zLDE4WlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjYuNDAxIDExLjkwOSAyOS40MTggMTMuNTkyIDI3LjA3IDE1LjA4OCAyNC4yMTMgMTMuMjQ3IDI2LjQwMSAxMS45MDlcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMjcuMDY5LDE1LjIxNWwtMy4wNTgtMS45NywyLjM4Ny0xLjQ2LDMuMjI4LDEuOFptLTIuNjU0LTEuOTY2TDI3LjA3LDE0Ljk2LDI5LjIwOCwxMy42bC0yLjgtMS41NjVaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNC40OTggMTcuODA3IDIxLjM1NCAyMi4zNTQgMTUuOTE0IDI1LjQyOSA5LjA1NSAyMC45MzUgMTQuNDk4IDE3LjgwN1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYmQzZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNS45MSwyNS41NTRsLS4wNTUtLjAzNkw4Ljg1LDIwLjkyOSwxNC41LDE3LjY4MWw3LjA1Niw0LjY4Wk05LjI2LDIwLjk0MSwxNS45MTgsMjUuM2w1LjIzMS0yLjk1Ny02LjY1NC00LjQxM1pcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjcuOTkgMTcuOTY2IDE0Ljk1NCAyMi4zNjYgOS41NzcgMjUuNTA0IDIuMjE4IDIwLjg0OSA3Ljk5IDE3Ljk2NlxcXCIgc3R5bGU9XFxcImZpbGw6I2ExMWY0MFxcXCIvPjxwYXRoIGQ9XFxcIk05LjU3NSwyNS42MjksMiwyMC44MzhsNi0zLDcuMTY0LDQuNTI3Wk0yLjQzNiwyMC44Niw5LjU4LDI1LjM3OGw1LjE2OC0zLjAxNkw3Ljk4NCwxOC4wODlaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyLjExMSAyMS4wMjEgOS40NDMgMjUuNTE1IDkuNDQzIDI5LjA2MyAyLjExMSAyNC4zMzIgMi4xMTEgMjEuMDIxXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTkuNTUsMjkuMjYsMiwyNC4zOTFWMjAuODI5TDkuNTUsMjUuNDU1Wk0yLjIxOCwyNC4yNzRsNy4xMTgsNC41OTJWMjUuNTc1TDIuMjE4LDIxLjIxM1pcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI0LjA3MSAxMy4zNDMgMjcuMDA5IDE1LjIyMiAyNy4wMDkgMjIuMTMxIDI0LjA3MSAyMC4yNDcgMjQuMDcxIDEzLjM0M1xcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNjKVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy4wNjMsMjIuMjI5bC0zLjA0NS0xLjk1M1YxMy4yNDVsMy4wNDUsMS45NDdabS0yLjkzOC0yLjAxMiwyLjgzMSwxLjgxNVYxNS4yNTFsLTIuODMxLTEuODFaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyNy4xNDkgMjIuNTI2IDI3LjE0OSAxNS4xOTQgMjkuNTE0IDEzLjc3NSAyOS41MTQgMjkuMTQ5IDI4LjMzMSAyOS4xNDkgOS42NDYgMjkuMTQ5IDkuNjQ2IDI1LjYwMSAxNS4wODYgMjIuNTI2IDE1Ljc4NSAyNS42MDEgMTUuNzk2IDI1LjYwMSAyMS40NzIgMjIuNTI2IDIxLjg5MSAyNS42MDEgMjEuOTQ1IDI1LjYwMSAyNy4xNDkgMjIuNTI2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTI5LjYyMSwyOS4yNTZIOS41MzlWMjUuNTM4bDUuNjItMy4xNzcuNywzLjA4Myw1LjctMy4wODcuNDIyLDMuMSw1LjA2MS0yLjk5MVYxNS4xMzNsMi41OC0xLjU0OFpNOS43NTMsMjkuMDQxSDI5LjQwN1YxMy45NjRsLTIuMTUxLDEuMjl2Ny4zMzJsLS4wNTMuMDMxLTUuMjI5LDMuMDlIMjEuOGwtLjQxMS0zLjAxNC01LjU2NCwzLjAxNEgxNS43bC0uNjg2LTMuMDE4LTUuMjYsMi45NzNaXFxcIi8+PHJlY3QgeD1cXFwiMTIuMzU2XFxcIiB5PVxcXCIyNS40NFxcXCIgd2lkdGg9XFxcIjEuNjU2XFxcIiBoZWlnaHQ9XFxcIjEuNjU2XFxcIiByeD1cXFwiMC4yMTVcXFwiIHJ5PVxcXCIwLjIxNVxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNkKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMy44LDI3LjJIMTIuNTdhLjMyMi4zMjIsMCwwLDEtLjMyMi0uMzIyVjI1LjY1NWEuMzIyLjMyMiwwLDAsMSwuMzIyLS4zMjJIMTMuOGEuMzIyLjMyMiwwLDAsMSwuMzIyLjMyMnYxLjIyNkEuMzIyLjMyMiwwLDAsMSwxMy44LDI3LjJaTTEyLjU3LDI1LjU0N2EuMTA4LjEwOCwwLDAsMC0uMTA3LjEwN3YxLjIyNmEuMTA4LjEwOCwwLDAsMCwuMTA3LjEwN0gxMy44YS4xMDguMTA4LDAsMCwwLC4xMDctLjEwN1YyNS42NTVhLjEwOC4xMDgsMCwwLDAtLjEwNy0uMTA3WlxcXCIvPjxyZWN0IHg9XFxcIjE4LjI5MVxcXCIgeT1cXFwiMjUuMzQzXFxcIiB3aWR0aD1cXFwiMS42NTZcXFwiIGhlaWdodD1cXFwiMS42NTZcXFwiIHJ4PVxcXCIwLjIxNVxcXCIgcnk9XFxcIjAuMjE1XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2UpXFxcIi8+PHBhdGggZD1cXFwiTTE5LjczMiwyNy4xMDZIMTguNTA1YS4zMjIuMzIyLDAsMCwxLS4zMjItLjMyMlYyNS41NThhLjMyMi4zMjIsMCwwLDEsLjMyMi0uMzIyaDEuMjI2YS4zMjIuMzIyLDAsMCwxLC4zMjIuMzIydjEuMjI2QS4zMjIuMzIyLDAsMCwxLDE5LjczMiwyNy4xMDZabS0xLjIyNi0xLjY1NmEuMTA4LjEwOCwwLDAsMC0uMTA3LjEwN3YxLjIyNmEuMTA4LjEwOCwwLDAsMCwuMTA3LjEwN2gxLjIyNmEuMTA4LjEwOCwwLDAsMCwuMTA3LS4xMDdWMjUuNTU4YS4xMDguMTA4LDAsMCwwLS4xMDctLjEwN1pcXFwiLz48cmVjdCB4PVxcXCIyNC40NFxcXCIgeT1cXFwiMjUuMzQzXFxcIiB3aWR0aD1cXFwiMS42NTZcXFwiIGhlaWdodD1cXFwiMS42NTZcXFwiIHJ4PVxcXCIwLjIxNVxcXCIgcnk9XFxcIjAuMjE1XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2YpXFxcIi8+PHBhdGggZD1cXFwiTTI1Ljg4MSwyNy4xMDZIMjQuNjU1YS4zMjIuMzIyLDAsMCwxLS4zMjItLjMyMlYyNS41NThhLjMyMi4zMjIsMCwwLDEsLjMyMi0uMzIyaDEuMjI2YS4zMjIuMzIyLDAsMCwxLC4zMjIuMzIydjEuMjI2QS4zMjIuMzIyLDAsMCwxLDI1Ljg4MSwyNy4xMDZabS0xLjIyNi0xLjY1NmEuMTA4LjEwOCwwLDAsMC0uMTA3LjEwN3YxLjIyNmEuMTA4LjEwOCwwLDAsMCwuMTA3LjEwN2gxLjIyNmEuMTA4LjEwOCwwLDAsMCwuMTA3LS4xMDdWMjUuNTU4YS4xMDguMTA4LDAsMCwwLS4xMDctLjEwN1pcXFwiLz48cGF0aCBkPVxcXCJNMjcuMjE1LDExLjIzYy0uMDUyLjA2OS0uNDE3LS4yNjItLjY1My0uNTI2YTQuNDA4LDQuNDA4LDAsMCwxLS41MTYtLjczQTIuNiwyLjYsMCwwLDEsMjUuNyw5LjJhMi4zNTgsMi4zNTgsMCwwLDEtLjA1Mi0uNjgyLDIuOTU5LDIuOTU5LDAsMCwxLC4xMjktLjc0OSwzLjE0MiwzLjE0MiwwLDAsMSwuNzg3LTEuMjA3LDE1LjUzMiwxNS41MzIsMCwwLDAsMS4yODMtMS40LDMuMDYyLDMuMDYyLDAsMCwwLC40NzktLjkyNywzLjk3OSwzLjk3OSwwLDAsMCwuMTUxLS44NTVjLjAxOS0uMzY0LS4wMjUtLjU5My4wMjMtLjYxM3MuMjE1LjI3NC4yODcuNTY0YTMuMTY3LDMuMTY3LDAsMCwxLS40NTgsMi4xLDYuOSw2LjksMCwwLDEtMS4wOTQsMS40NDgsMi44LDIuOCwwLDAsMC0uODQ5LDEuMjM0QTIuNDY2LDIuNDY2LDAsMCwwLDI2LjMsOC44YTMuNDY1LDMuNDY1LDAsMCwwLC40NzYsMS41NDJDMjcuMDY0LDEwLjkxNCwyNy4yNTYsMTEuMTc1LDI3LjIxNSwxMS4yM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNlYTJkMmVcXFwiLz48cGF0aCBkPVxcXCJNMjcuMTkzLDExLjI2NmMtLjEyNCwwLS40OTItLjM2NS0uNjUxLS41NDRhNC40NzgsNC40NzgsMCwwLDEtLjUyLS43MzQsMi42MjgsMi42MjgsMCwwLDEtLjM0Ni0uNzgxLDIuMzc1LDIuMzc1LDAsMCwxLS4wNTMtLjY5LDIuOTc4LDIuOTc4LDAsMCwxLC4xMy0uNzU2LDMuMjA4LDMuMjA4LDAsMCwxLC43OTMtMS4yMTZjLjI5NC0uMzMxLjUtLjUyOC42NTktLjY4NmE0LjM5Myw0LjM5MywwLDAsMCwuNjIyLS43MTEsMy4wNTIsMy4wNTIsMCwwLDAsLjQ3Ni0uOTE5LDMuOTUxLDMuOTUxLDAsMCwwLC4xNS0uODQ5Yy4wMDgtLjE1OSwwLS4yOTQsMC0uMzkzLDAtLjE1OS0uMDA2LS4yMjUuMDM4LS4yNDNhLjA1LjA1LDAsMCwxLC4wNDMsMCwxLjIyNiwxLjIyNiwwLDAsMSwuMjguNTc5LDMuMTY3LDMuMTY3LDAsMCwxLS40NiwyLjEyMSw2LjkyOCw2LjkyOCwwLDAsMS0xLjEsMS40NTNjLS4wNTUuMDYtLjEwOS4xMTYtLjE2Mi4xNzFhMi4zLDIuMywwLDAsMC0uNjgxLDEuMDUyLDIuNDcsMi40NywwLDAsMC0uMDgyLjY3MywzLjQ1OCwzLjQ1OCwwLDAsMCwuNDczLDEuNTNjLjExNC4yMzEuMjE1LjQxNS4yODkuNTQ5LjEyOS4yMzUuMTc4LjMyMy4xNDIuMzY5aDBhLjA1MS4wNTEsMCwwLDEtLjA0LjAyWk0yOC41MTIsMi44YS44NjMuODYzLDAsMCwwLDAsLjE5YzAsLjEuMDA3LjIzNiwwLC40YTQuMDIxLDQuMDIxLDAsMCwxLS4xNTIuODYxLDMuMTA2LDMuMTA2LDAsMCwxLS40ODMuOTM0LDQuNDM3LDQuNDM3LDAsMCwxLS42MjkuNzE5Yy0uMTYyLjE1OC0uMzY0LjM1NC0uNjU3LjY4M2EzLjE2OCwzLjE2OCwwLDAsMC0uNzgyLDEuMiwyLjkzMywyLjkzMywwLDAsMC0uMTI4Ljc0MywyLjMyNSwyLjMyNSwwLDAsMCwuMDUyLjY3NSwyLjU5LDIuNTksMCwwLDAsLjM0MS43NjcsNC40MjIsNC40MjIsMCwwLDAsLjUxMy43MjUsMi4wMzUsMi4wMzUsMCwwLDAsLjYxMS41MjYsMS4xODMsMS4xODMsMCwwLDAtLjE0Ny0uMzFjLS4wNzQtLjEzNC0uMTc1LS4zMTgtLjI5LS41NTFBMy41LDMuNSwwLDAsMSwyNi4yNzgsOC44YTIuNTMsMi41MywwLDAsMSwuMDg0LS42ODgsMi4zNzUsMi4zNzUsMCwwLDEsLjY5NC0xLjA3NWMuMDUyLS4wNTUuMTA2LS4xMTEuMTYxLS4xNzFhNi44NzksNi44NzksMCwwLDAsMS4wOS0xLjQ0MiwzLjExOSwzLjExOSwwLDAsMCwuNDU2LTIuMDgzQTEuMjgxLDEuMjgxLDAsMCwwLDI4LjUxMiwyLjhaXFxcIi8+PHBhdGggZD1cXFwiTTI5Ljk3Miw2LjA4N2MtLjAxOS0uMDg4LS40MzItLjA0LS43NjYuMDczYTIuNiwyLjYsMCwwLDAtMS4wNTkuNzIyLDIuOCwyLjgsMCwwLDAtLjkxNiwxLjg1NSwyLjk3MiwyLjk3MiwwLDAsMCwuMjU4LDEuMDZjLjIyMS41NzIuNDU1Ljc3My40NDQsMS4yMjUtLjAwNy4zLS4xMTQuNDg0LS4wNDguNTQ5cy4zMTQtLjEuNDYyLS4zMTNhMS44LDEuOCwwLDAsMCwuMjU5LTEuMDIyYy0uMDQ2LS44MTUtLjYtMS4wMTUtLjYwOC0xLjhhMS44NTgsMS44NTgsMCwwLDEsLjEyOS0uNjc2QzI4LjU3LDYuNTA5LDMwLjAwOCw2LjI1MiwyOS45NzIsNi4wODdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWEyZDJlXFxcIi8+PHBhdGggZD1cXFwiTTI3LjkzNCwxMS42MTdhLjA5NC4wOTQsMCwwLDEtLjA2OS0uMDI2Yy0uMDQ2LS4wNDYtLjAzLS4xMjItLjAwNS0uMjM3YTEuNzE4LDEuNzE4LDAsMCwwLC4wNDUtLjMzMSwxLjM3NCwxLjM3NCwwLDAsMC0uMjE0LS43Miw1LDUsMCwwLDEtLjIyOC0uNDk1LDIuOTgsMi45OCwwLDAsMS0uMjU5LTEuMDcsMi44MSwyLjgxLDAsMCwxLC45MjMtMS44NzQsMi42NCwyLjY0LDAsMCwxLDEuMDctLjcyOSwxLjQ4MiwxLjQ4MiwwLDAsMSwuNzY2LS4xQS4wNjUuMDY1LDAsMCwxLDMwLDYuMDgxaDBjLjAxNS4wNy0uMDkyLjEyMS0uMzA2LjIyNGEyLjczLDIuNzMsMCwwLDAtMS41NDIsMS40NjMsMS44MjcsMS44MjcsMCwwLDAtLjEyNy42NjcsMS42NDUsMS42NDUsMCwwLDAsLjI5MS44ODUsMS44ODksMS44ODksMCwwLDEsLjMxNy45MTQsMS44MTQsMS44MTQsMCwwLDEtLjI2NCwxLjAzOS44MDkuODA5LDAsMCwxLS40MjEuMzQyWm0xLjg4OS01LjU0OWEyLjExNywyLjExNywwLDAsMC0uNjA4LjExNywyLjU4OCwyLjU4OCwwLDAsMC0xLjA0OC43MTUsMi43NjQsMi43NjQsMCwwLDAtLjkwOSwxLjgzNywyLjkzNSwyLjkzNSwwLDAsMCwuMjU2LDEuMDUsNC45NTUsNC45NTUsMCwwLDAsLjIyNS40OSwxLjQzMywxLjQzMywwLDAsMSwuMjIuNzQ1LDEuNzY1LDEuNzY1LDAsMCwxLS4wNDcuMzQxYy0uMDE5LjA5MS0uMDM1LjE2My0uMDA5LjE4OGEuMDQ2LjA0NiwwLDAsMCwuMDM4LjAxLjc2OS43NjksMCwwLDAsLjM4Mi0uMzIsMS43OTMsMS43OTMsMCwwLDAsLjI1NC0xLjAwNSwxLjg0NCwxLjg0NCwwLDAsMC0uMzEtLjg5LDEuNzExLDEuNzExLDAsMCwxLS4zLS45MTEsMS44NzcsMS44NzcsMCwwLDEsLjEzLS42ODZBMi43NzYsMi43NzYsMCwwLDEsMjkuNjcsNi4yNTdjLjEyNi0uMDYxLjI4My0uMTM2LjI3Ny0uMTY0bC0uMDA4LS4wMDdBLjI2NC4yNjQsMCwwLDAsMjkuODIzLDYuMDY4WlxcXCIvPlwiLFxuXHR9LFxuXHRcIlBvd2VyUXVlcnlcIjoge1xuXHRcdGNvbG91cjogXCIjY2ZjZmNmXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMzAsMjUuNTgzSDI1Ljc1N1YxNS4zNzhhOC4yNzEsOC4yNzEsMCwwLDAtLjgzMi00LjI2MUEzLjA2MSwzLjA2MSwwLDAsMCwyMi4xMTgsOS44YTMuMzgzLDMuMzgzLDAsMCwwLTIuODI2LDEuNjY0LDYuNzkxLDYuNzkxLDAsMCwwLTEuMTYxLDMuOTg3VjI1LjU4M0gxMy44NjlWMTUuMDMxcTAtNS4yMzEtMy42OTQtNS4yMzFhMy4zMzIsMy4zMzIsMCwwLDAtMi44MjYsMS41NzMsNi45MzUsNi45MzUsMCwwLDAtMS4xMDYsNC4wNzhWMjUuNTgzSDJWNi44NTZINi4yNDNWOS44MThoLjA3M2E2LjQ4OCw2LjQ4OCwwLDAsMSw1LjkwNy0zLjQsNS41NjksNS41NjksMCwwLDEsMy4zOTMsMS4wN0E1LjMyOCw1LjMyOCwwLDAsMSwxNy42LDEwLjI5NGE2LjY4Myw2LjY4MywwLDAsMSw2LjIxOC0zLjg3N1EzMCw2LjQxNywzMCwxNC4wNDNaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2ZjZmNmXFxcIi8+XCIsXG5cdH0sXG5cdFwiUG93ZXJTaGVsbFwiOiB7XG5cdFx0Y29sb3VyOiBcIiM1MzkxZmVcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjIzLjMyNVxcXCIgeTE9XFxcIi0xMTguNTQzXFxcIiB4Mj1cXFwiNy4yNlxcXCIgeTI9XFxcIi0xMDQuMTkzXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEsIDAsIDAsIC0xLCAwLCAtOTYpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNTM5MWZlXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjM2U2ZGJmXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCI3LjFcXFwiIHkxPVxcXCItMTA0LjAwMlxcXCIgeDI9XFxcIjIzLjAwMVxcXCIgeTI9XFxcIi0xMTguMjkyXFxcIiB4bGluazpocmVmPVxcXCIjYVxcXCIvPjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3Bvd2Vyc2hlbGw8L3RpdGxlPjxwYXRoIGQ9XFxcIk0zLjE3NCwyNi41ODlhMS4xNTQsMS4xNTQsMCwwLDEtLjkyOC0uNDIzLDEuMjM0LDEuMjM0LDAsMCwxLS4yMS0xLjA1Mkw2LjIzMyw2Ljc4QTEuOCwxLjgsMCwwLDEsNy45MTQsNS40MUgyOC44MjZhMS4xNTcsMS4xNTcsMCwwLDEsLjkyOC40MjMsMS4yMzUsMS4yMzUsMCwwLDEsLjIxLDEuMDUybC00LjIsMTguMzM1YTEuOCwxLjgsMCwwLDEtMS42ODEsMS4zN0gzLjE3NFpcXFwiIHN0eWxlPVxcXCJmaWxsLXJ1bGU6ZXZlbm9kZDtmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNNy45MTQsNS42NDZIMjguODI2YS45MTMuOTEzLDAsMCwxLC45MDgsMS4xODdsLTQuMiwxOC4zMzRhMS41NzUsMS41NzUsMCwwLDEtMS40NTEsMS4xODdIMy4xNzRhLjkxMy45MTMsMCwwLDEtLjkwOC0xLjE4N2w0LjItMTguMzM0QTEuNTc0LDEuNTc0LDAsMCwxLDcuOTE0LDUuNjQ2WlxcXCIgc3R5bGU9XFxcImZpbGwtcnVsZTpldmVub2RkO2ZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4wNCwyMS41NDRoNS4wODZhMS4xMTgsMS4xMTgsMCwwLDEsMCwyLjIzNEgxNi4wNGExLjExOCwxLjExOCwwLDAsMSwwLTIuMjM0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzJjNTU5MTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4zMzksMTYuNTc4YTEuNzYyLDEuNzYyLDAsMCwxLS41OTEuNkw5LjMwOSwyMy45NTNhMS4yMjQsMS4yMjQsMCwwLDEtMS40MzgtMS45NzdsOC41MTItNi4xNjR2LS4xMjZMMTEuMDM1LDEwYTEuMjI0LDEuMjI0LDAsMCwxLDEuNzgyLTEuNjcybDYuNDE4LDYuODI3QTEuMTY2LDEuMTY2LDAsMCwxLDE5LjMzOSwxNi41NzhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMmM1NTkxO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE5LjEsMTYuMzQyYTEuNzQ5LDEuNzQ5LDAsMCwxLS41OS42TDkuMDc0LDIzLjcxOGExLjIyNSwxLjIyNSwwLDAsMS0xLjQzOS0xLjk3N2w4LjUxMy02LjE2NFYxNS40NUwxMC44LDkuNzYxYTEuMjI0LDEuMjI0LDAsMCwxLDEuNzgzLTEuNjcyTDE5LDE0LjkxNkExLjE2MiwxLjE2MiwwLDAsMSwxOS4xLDE2LjM0MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmY7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTUuOSwyMS40MTJoNS4wODZhMS4wNTksMS4wNTksMCwxLDEsMCwyLjExOEgxNS45YTEuMDU5LDEuMDU5LDAsMSwxLDAtMi4xMThaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIjXCIsXG5cdFx0XSxcblx0fSxcblx0XCJQcm9jZXNzaW5nXCI6IHtcblx0XHRjb2xvdXI6IFwiIzFjNGM3MFwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMTZcXFwiIHkxPVxcXCIzXFxcIiB4Mj1cXFwiMTZcXFwiIHkyPVxcXCIyOVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzFjNGM3MFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzBjMmI0MlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfcHJvY2Vzc2luZ2xhbmc8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNS45MjIsMTkuOTYyYTEzLDEzLDAsMCwxLTEuNjQ3LS4wNzd2NS41NTJhMjcuNzYsMjcuNzYsMCwwLDEsMy4zMzIuNDYxVjI5SDUuOTY4VjI1LjlBMjcuOTg4LDI3Ljk4OCwwLDAsMSw5LjMsMjUuNDM4VjYuNzE1YTI4LjIxNSwyOC4yMTUsMCwwLDEtMy4zMzEtLjQ2di0zLjFIOC45NTVDMTAuMTgsMy4xNTMsMTMuNTQ5LDMsMTYuMjMsM2M2LjMxOCwwLDkuOCwyLjk0OCw5LjgsOEMyNi4wMzEsMTYuMDE4LDIyLjIsMTkuOTYyLDE1LjkyMiwxOS45NjJaTTE2LDcuMDU4Yy0uNjEzLDAtMS4xNDksMC0xLjcyMy4wMzh2OC42MTVhOS42OTQsOS42OTQsMCwwLDAsMS40NTUuMTE1YzMuMDI1LS4wMzgsNS4xMy0xLjcyMyw1LjEzLTQuNTE5QzIwLjg2Miw4LjcsMTkuNDA3LDcuMDU4LDE2LDcuMDU4WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPlwiLFxuXHR9LFxuXHRcIlByb2xvZ1wiOiB7XG5cdFx0Y29sb3VyOiBcIiNlYzFjMjRcIixcblx0XHRpY29uOiBcIjxkZWZzPjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiYVxcXCIgY3g9XFxcIjEzNDEuMjVcXFwiIGN5PVxcXCItMzM5Ni44NjZcXFwiIHI9XFxcIjE4LjI5OVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMTMyNy4wNzcgMzQwNS45MzUpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjE4MVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZiZmJmYlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zNjVcXFwiIHN0b3AtY29sb3I9XFxcIiNlZmVmZjBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNTUyXFxcIiBzdG9wLWNvbG9yPVxcXCIjZGFkYmRjXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjczOFxcXCIgc3RvcC1jb2xvcj1cXFwiI2JlYmZjMlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44MjRcXFwiIHN0b3AtY29sb3I9XFxcIiNhZWIwYjNcXFwiLz48L3JhZGlhbEdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiYlxcXCIgY3g9XFxcIjYuNjc4XFxcIiBjeT1cXFwiODQuNzRcXFwiIHI9XFxcIjE1LjU1NFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMS44ODQgLTg2LjE1NCkgc2NhbGUoMS4wNzIgMS4xNjYpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmFmZGZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjA3OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2VlZjVmYVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yMlxcXCIgc3RvcC1jb2xvcj1cXFwiI2NmZGZlY1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40MDdcXFwiIHN0b3AtY29sb3I9XFxcIiM5ZGJiZDVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjMxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNTg4YWI1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjc0NVxcXCIgc3RvcC1jb2xvcj1cXFwiIzMyNmZhNFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43OTlcXFwiIHN0b3AtY29sb3I9XFxcIiMyYjY2OThcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuODk3XFxcIiBzdG9wLWNvbG9yPVxcXCIjMTc0ZTc4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5NFxcXCIgc3RvcC1jb2xvcj1cXFwiIzAwMzE1MlxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJjXFxcIiBjeD1cXFwiMTEuMjQxXFxcIiBjeT1cXFwiLTkuODk3XFxcIiByPVxcXCIxNi41OTRcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoMCAyMi42MzEpIHNjYWxlKDEgMS4wNjIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZkNTQwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjY2N1xcXCIgc3RvcC1jb2xvcj1cXFwiI2VjMWMyNFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OTRcXFwiIHN0b3AtY29sb3I9XFxcIiM3NjAwMDBcXFwiLz48L3JhZGlhbEdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiZFxcXCIgY3g9XFxcIjEyLjI4NlxcXCIgY3k9XFxcIjI2LjEyN1xcXCIgcj1cXFwiMi4wODNcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNkZGRmZTBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMTc0XFxcIiBzdG9wLWNvbG9yPVxcXCIjZDlkYmRjXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjM1MVxcXCIgc3RvcC1jb2xvcj1cXFwiI2NkY2ZkMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41MzFcXFwiIHN0b3AtY29sb3I9XFxcIiNiOGJhYmJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzExXFxcIiBzdG9wLWNvbG9yPVxcXCIjOWM5ZTlmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjg5MVxcXCIgc3RvcC1jb2xvcj1cXFwiIzc4Nzk3YlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzVlNWY2MVxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJlXFxcIiBjeD1cXFwiMTkuMDY0XFxcIiBjeT1cXFwiMjYuMTI3XFxcIiByPVxcXCIyLjA4M1xcXCIgeGxpbms6aHJlZj1cXFwiI2RcXFwiLz48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImZcXFwiIGN4PVxcXCIxNS40MzRcXFwiIGN5PVxcXCIxNi4xOTFcXFwiIHI9XFxcIjIuNjg3XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDAgMC40NjEpXFxcIiB4bGluazpocmVmPVxcXCIjZFxcXCIvPjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3Byb2xvZzwvdGl0bGU+PGcgc3R5bGU9XFxcImlzb2xhdGlvbjppc29sYXRlXFxcIj48Y2lyY2xlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjE2XFxcIiByPVxcXCIxNFxcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTYuNjAyIDE0LjkyKSByb3RhdGUoLTQyLjI2NSlcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMTkuOTM4LDYuMzA5YTkuNzg1LDkuNzg1LDAsMCwwLTYuNS0yLjMzOUM4LjU2NCwzLjk3LDMuNzc0LDcuNywzLjQwNSwxNC45NjFjLS40LDcuOCw0Ljc1LDEyLjg2MiwxMiwxMi44NjIsMTAuNzMzLDAsMTYuNjcyLTkuNzgsMTAuMDI3LTIwLjM4OCw0LjY3MSwxMC42LS41MjcsMTcuMjc5LTcuMjM2LDE3LjI3OS01LjQ0MSwwLTkuNjEtMy42NTEtOS42MS0xMC4zNDVDOC41ODIsNC43MDksMTUuODIzLDQuMDM5LDE5LjkzOCw2LjMwOVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMjIuNywxMC40MTVjLS4yOTMtLjk0LS42NDUtMi43ODguNjM0LTMuODZhMy43MjksMy43MjksMCwwLDAtMy44NDQsMS41MzRBOS4xNjUsOS4xNjUsMCwwLDAsMTIsOC4xLDMuNzI5LDMuNzI5LDAsMCwwLDguMTUyLDYuNTU1YzEuMzA5LDEuMS45MSwzLjAwNS42MTQsMy45MjNBMTAuNTE3LDEwLjUxNywwLDAsMCw2LjEsMTcuNTI0YzAsMi4xNzQsMS40LDQuNjQ1LDEuNjc1LDcuOTU1bDEuNzY4LTEuNTMyYTExLjc0MywxMS43NDMsMCwwLDAsNi4yMTIsMS40MzMsMTEuNzQxLDExLjc0MSwwLDAsMCw2LjIxMi0xLjQzM2wxLjc2OSwxLjUzMmMuMjgtMy4zMSwxLjY3NS01Ljc4MSwxLjY3NS03Ljk1NUExMC41MTIsMTAuNTEyLDAsMCwwLDIyLjcsMTAuNDE1WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNjKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC43MjIsMjcuODY3YTEuNjIxLDEuNjIxLDAsMSwxLDMuMjQsMGMwLC4wMTgsMCwuMDM1LDAsLjA1M2EyLjIzNCwyLjIzNCwwLDEsMC0zLjIyOC4xMjZDMTAuNzI1LDI3Ljk4NywxMC43MjIsMjcuOTI3LDEwLjcyMiwyNy44NjdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2QpXFxcIi8+PHBhdGggZD1cXFwiTTIwLjYyOSwyNy44NjdhMS42MjEsMS42MjEsMCwxLDAtMy4yNCwwYzAsLjAxOCwwLC4wMzUsMCwuMDUzYTIuMjM0LDIuMjM0LDAsMSwxLDMuMjI4LjEyNkExLjY3OCwxLjY3OCwwLDAsMCwyMC42MjksMjcuODY3WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNlKVxcXCIvPjxnIHN0eWxlPVxcXCJvcGFjaXR5OjAuNTM7bWl4LWJsZW5kLW1vZGU6bXVsdGlwbHlcXFwiPjxwYXRoIGQ9XFxcIk04LjM0NiwxOC40Yy0uMTMyLjY2Ny0uOTcxLjg3Ny0uOTcxLjg3N0ExLjM1OSwxLjM1OSwwLDAsMSw2LjgwOSwxOC4xYTIuOTI5LDIuOTI5LDAsMCwwLC40NDMsMS43OTNBMi45MjcsMi45MjcsMCwwLDAsOC4zNDYsMTguNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48cGF0aCBkPVxcXCJNMTAuMDA4LDE4LjczN2MtLjEzMi42NjctLjk3Mi44NzctLjk3Mi44NzdhMS4zNiwxLjM2LDAsMCwxLS41NjYtMS4xODIsMi45MjksMi45MjksMCwwLDAsLjQ0NCwxLjc5M0EyLjkyNiwyLjkyNiwwLDAsMCwxMC4wMDgsMTguNzM3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk04LjgzMywyMC4yNDljLS4xMzIuNjY3LS45NzEuODc3LS45NzEuODc3QTEuMzU5LDEuMzU5LDAsMCwxLDcuMywxOS45NDRhMi45MjksMi45MjksMCwwLDAsLjQ0MywxLjc5M0EyLjkyNSwyLjkyNSwwLDAsMCw4LjgzMywyMC4yNDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTEwLjUsMjAuNTgzYy0uMTMyLjY2Ny0uOTcxLjg3Ny0uOTcxLjg3N2ExLjM2LDEuMzYsMCwwLDEtLjU2Ni0xLjE4MkEyLjkyOSwyLjkyOSwwLDAsMCw5LjQsMjIuMDcyLDIuOTI3LDIuOTI3LDAsMCwwLDEwLjUsMjAuNTgzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk05LjMyOCwyMi4xMjFjLS4xMzIuNjY3LS45NzIuODc3LS45NzIuODc3YTEuMzYsMS4zNiwwLDAsMS0uNTY1LTEuMTgyLDIuOTI5LDIuOTI5LDAsMCwwLC40NDMsMS43OTNBMi45MjYsMi45MjYsMCwwLDAsOS4zMjgsMjIuMTIxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk0xMS42NjQsMTkuMDdjLS4xMzIuNjY3LS45NzIuODc3LS45NzIuODc3YTEuMzU5LDEuMzU5LDAsMCwxLS41NjUtMS4xODIsMi45MywyLjkzLDAsMCwwLC40NDMsMS43OTNBMi45MjcsMi45MjcsMCwwLDAsMTEuNjY0LDE5LjA3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjwvZz48ZyBzdHlsZT1cXFwib3BhY2l0eTowLjUzO21peC1ibGVuZC1tb2RlOm11bHRpcGx5XFxcIj48cGF0aCBkPVxcXCJNMjMuMTU3LDE4LjRjLjEzMi42NjcuOTcxLjg3Ny45NzEuODc3YTEuMzU5LDEuMzU5LDAsMCwwLC41NjYtMS4xODIsMi45MywyLjkzLDAsMCwxLS40NDMsMS43OTNBMi45MjcsMi45MjcsMCwwLDEsMjMuMTU3LDE4LjRaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTIxLjQ5NSwxOC43MzdjLjEzMi42NjcuOTcyLjg3Ny45NzIuODc3YTEuMzYsMS4zNiwwLDAsMCwuNTY1LTEuMTgyLDIuOTMxLDIuOTMxLDAsMCwxLS40NDQsMS43OTNBMi45MjYsMi45MjYsMCwwLDEsMjEuNDk1LDE4LjczN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48cGF0aCBkPVxcXCJNMjIuNjY5LDIwLjI0OWMuMTMyLjY2Ny45NzEuODc3Ljk3MS44NzdhMS4zNiwxLjM2LDAsMCwwLC41NjYtMS4xODIsMi45MjksMi45MjksMCwwLDEtLjQ0MywxLjc5M0EyLjkyNiwyLjkyNiwwLDAsMSwyMi42NjksMjAuMjQ5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk0yMS4wMDgsMjAuNTgzYy4xMzIuNjY3Ljk3MS44NzcuOTcxLjg3N2ExLjM1OSwxLjM1OSwwLDAsMCwuNTY1LTEuMTgyLDIuOTI4LDIuOTI4LDAsMCwxLS40NDMsMS43OTNBMi45MjcsMi45MjcsMCwwLDEsMjEuMDA4LDIwLjU4M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48cGF0aCBkPVxcXCJNMjIuMTc1LDIyLjEyMWMuMTMyLjY2Ny45NzIuODc3Ljk3Mi44NzdhMS4zNiwxLjM2LDAsMCwwLC41NjUtMS4xODIsMi45MjgsMi45MjgsMCwwLDEtLjQ0NCwxLjc5M0EyLjkyNywyLjkyNywwLDAsMSwyMi4xNzUsMjIuMTIxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk0xOS44MzgsMTkuMDdjLjEzMi42NjcuOTcyLjg3Ny45NzIuODc3YTEuMzU5LDEuMzU5LDAsMCwwLC41NjUtMS4xODIsMi45MjgsMi45MjgsMCwwLDEtLjQ0MywxLjc5M0EyLjkyOCwyLjkyOCwwLDAsMSwxOS44MzgsMTkuMDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PC9nPjxjaXJjbGUgY3g9XFxcIjExLjMzOVxcXCIgY3k9XFxcIjE0LjA3NFxcXCIgcj1cXFwiMy44MTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48Y2lyY2xlIGN4PVxcXCIxMi4xM1xcXCIgY3k9XFxcIjE0LjQ0NlxcXCIgcj1cXFwiMS44NjFcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZGJmYzFcXFwiLz48Y2lyY2xlIGN4PVxcXCIxMi4xM1xcXCIgY3k9XFxcIjE0LjQ0NlxcXCIgcj1cXFwiMS4xOTFcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48Y2lyY2xlIGN4PVxcXCIxMS42MDNcXFwiIGN5PVxcXCIxNC4wMjdcXFwiIHI9XFxcIjAuMzU3XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PGNpcmNsZSBjeD1cXFwiMjAuMTEyXFxcIiBjeT1cXFwiMTQuMDc0XFxcIiByPVxcXCIzLjgxNlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxjaXJjbGUgY3g9XFxcIjIwLjkwM1xcXCIgY3k9XFxcIjE0LjQ0NlxcXCIgcj1cXFwiMS44NjFcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZGJmYzFcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMC45MDNcXFwiIGN5PVxcXCIxNC40NDZcXFwiIHI9XFxcIjEuMTkxXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PGNpcmNsZSBjeD1cXFwiMjAuMzc1XFxcIiBjeT1cXFwiMTQuMDI3XFxcIiByPVxcXCIwLjM1N1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNS43MDYsMjEuNTJjMC0xLjQxMiwyLjE1Ny0zLjQxMywyLjE1Ny00Ljg4N2EyLjE1NywyLjE1NywwLDAsMC00LjMxMywwQzEzLjU1LDE4LjEwNywxNS43MDYsMjAuMTA4LDE1LjcwNiwyMS41MlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZilcXFwiLz48L2c+XCIsXG5cdH0sXG5cdFwiUHJvdG9jb2wgQnVmZmVyc1wiOiB7XG5cdFx0Y29sb3VyOiBcIiM5N2ZmMjdcIixcblx0XHRpY29uOiBcIjxwb2x5Z29uIHBvaW50cz1cXFwiMTUuOTk2IDMuMjIgMjYuOTY2IDkuNyAyNi45NTQgMjIuMyAxNiAyOC43OCA1LjAzOCAyMi40MDggNS4wMzQgOS42MjggMTUuOTk2IDMuMjJcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTYsMiwzLjk4Nyw5LjAybDAsMTRMMTYsMzBsMTItNy4xLjAxMy0xMy44Wk0yNi45NTQsMjIuMywxNiwyOC43OCw1LjAzOCwyMi40MDhsMC0xMi43OEwxNiwzLjIyLDI2Ljk2Niw5LjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMTcxYzFlXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyNS41NjkgMTMuNjU0IDE5Ljk0NiAxNi45NjQgMTkuOTQzIDI0Ljg5IDI1LjU5IDIxLjU2NSAyNS41NjkgMTMuNjU0XFxcIiBzdHlsZT1cXFwiZmlsbDojMWVhOGZmXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMy4yODIgMTIuMzAzIDI1LjU2OSAxMy42NTQgMTkuOTQ2IDE2Ljk2NCAxOS45NDMgMjQuODkgMTcuMzI3IDIzLjM3IDE3LjM0OCAxNS44NzUgMjMuMjgyIDEyLjMwM1xcXCIgc3R5bGU9XFxcImZpbGw6IzUwYmZmZlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjIuNTEyIDEwLjM1IDIyLjUxNCAxMS44MTYgMTYuNDExIDE1LjQ5OCAxNi40MTggMjMuNTk3IDE0Ljk5OCAyNC40MzEgMTQuOTk0IDE0Ljg1NiAyMi41MTIgMTAuMzVcXFwiIHN0eWxlPVxcXCJmaWxsOiM5N2ZmMjdcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIwLjAwOCA4Ljg3MSAyMi41MTIgMTAuMzUgMTQuOTk0IDE0Ljg1NiAxNC45OTggMjQuNDMxIDEyLjE5NCAyMi44MDEgMTIuMTg5IDEzLjQxMyAyMC4wMDggOC44NzFcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmZmNzJcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE5LjIyNiA2LjYwNiAxOS4yMjYgOC4zNzQgMTEuMjEgMTMuMDc0IDExLjIxIDIzLjE3MiA5LjgwOCAyMy45ODggOS44MzUgMTIuMjc3IDE5LjIyNiA2LjYwNlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmMjc0YlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYuMTYgNC43ODQgNi41MyAxMC4zOTQgNi41MjkgMjIuMDcxIDkuODI3IDIzLjk4OCA5LjgzNSAxMi4yNzcgMTkuMjM1IDYuNjA2IDE2LjE2IDQuNzg0XFxcIiBzdHlsZT1cXFwiZmlsbDojZmY1Yzc3XFxcIi8+XCIsXG5cdH0sXG5cdFwiUHVnXCI6IHtcblx0XHRjb2xvdXI6IFwiIzQ0MjgyM1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTI1LjUxNCwxMi44NDZjLS4wNTItLjkzOC4yMDktMS44MjUtLjIwOS0yLjU1NC0xLjA0My0xLjgyNS0zLjY0OS0yLjg2Ny04Ljg2My0yLjg2N1Y3LjM3Mmgwdi4wNTJjLTUuNzM1LDAtOC4xODUsMS4wNDMtOS4yMjcsMi44NjdhNS42LDUuNiwwLDAsMC0uNDY5LDIuNTU0LDkuNTQ2LDkuNTQ2LDAsMCwwLS4yNjEsMi40NWMuMTU2LDEuMTQ3LjI2MSwyLjI5NC40MTcsMy4zMzYuMTU2Ljg4NiwxLjQwOCwxLjU2NCwxLjU2NCwyLjQuMzEzLDIuMjQyLDIuMjk0LDMuMjg0LDguMDI4LDMuMjg0di4yNjFoLS4xdi0uMjYxYzUuMjEzLDAsNy40LTEuMDQzLDcuNzE2LTMuMjg0LjEtLjgzNCwxLjE0Ny0xLjUxMiwxLjMtMi40LjE1Ni0xLjA0My4yMDktMi4xOS4zNjUtMy4zMzZBMTEuNzc0LDExLjc3NCwwLDAsMCwyNS41MTQsMTIuODQ2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VmY2NhM1xcXCIvPjxwYXRoIGQ9XFxcIk0xNi4xODIsMTMuNjhhMy4yNDEsMy4yNDEsMCwwLDEsMi4xOSwxLjE0N2MuNzMuNjI2LDEuOTI5LDEuMDQzLDIuNDUsMS42MTZhNC43MTUsNC43MTUsMCwwLDEsMS40MDgsMS45ODEsOC45LDguOSwwLDAsMSwuMzEzLDIuMjQyYzAsLjI2MS4xNTYuMjA5LjU3MywwYTkuMDIsOS4wMiwwLDAsMCwyLjE5LTEuODc3Yy0uMTU2Ljg4Ni0xLjI1MSwxLjY2OC0xLjM1NSwyLjUtLjMxMywyLjI0Mi0yLjUsMy4zMzYtNy44NzIsMy4zMzZoLjMxM1xcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0xOS41MTksMTEuOTA4Yy4yMDkuNjc4Ljg4NiwzLjAyNC0uNDY5LDIuMjQyYTIuNTU3LDIuNTU3LDAsMCwxLC45MzgsMS41NjQsMS44MzEsMS44MzEsMCwwLDAsMS4zLDEuNDA4LDMuNDc5LDMuNDc5LDAsMCwwLDIuNTU0LS42MjYsMi45NTYsMi45NTYsMCwwLDAsLjY3OC0zLjI4NCwyLjQzLDIuNDMsMCwwLDAtMi4xMzctMS42MTZDMjEuNCwxMS4zMzQsMTkuMzEsMTEuMTI2LDE5LjUxOSwxMS45MDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PGNpcmNsZSBjeD1cXFwiMjIuMTc4XFxcIiBjeT1cXFwiMTQuNDFcXFwiIHI9XFxcIjEuOTI5XFxcIi8+PGNpcmNsZSBjeD1cXFwiMjEuNjU2XFxcIiBjeT1cXFwiMTMuNTI0XFxcIiByPVxcXCIwLjUyMVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4yMDYsMTQuMzA2YTE3LjY4LDE3LjY4LDAsMCwxLDIuNzExLDIuMzQ2Yy45MzgsMS4yLjkzOCwxLjQwOC45MzgsMS40MDhsLS42NzguMzEzYTcuMSw3LjEsMCwwLDAtMi4xMzctMi41Yy0xLjItLjY3OC0xLjM1NS0xLjI1MS0xLjM1NS0xLjI1MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZmNjYTNcXFwiLz48cGF0aCBkPVxcXCJNMTYuMjM1LDEzLjY4YTMuNjA1LDMuNjA1LDAsMCwwLTIuMzQ2LDEuMTQ3Yy0uNzMuNjI2LTIuMDMzLDEuMDQzLTIuNSwxLjYxNmE0LjgwNiw0LjgwNiwwLDAsMC0xLjQ2LDEuOTgxLDguOSw4LjksMCwwLDAtLjMxMywyLjI0MmMwLC4yNjEuMDUyLjMxMy0uNjI2LDBBNy45NzIsNy45NzIsMCwwLDEsNi44LDE4Ljc4OWMuMTU2Ljg4NiwxLjI1MSwxLjY2OCwxLjM1NSwyLjUuMzEzLDIuMTksMi41LDMuMjg0LDcuODcyLDMuMjg0aC4zNjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48cGF0aCBkPVxcXCJNMjEuMjM5LDE3LjI3N2E2LjU1Miw2LjU1MiwwLDAsMC01LjEwOS0yLjYwN2gwYTYuNjM4LDYuNjM4LDAsMCwwLTUuMTA5LDIuNjA3LDMuODYxLDMuODYxLDAsMCwwLTEuMDQzLDMuMThjMCw0LjY0LDEuNjE2LDMuMjMyLDIuNzExLDMuODA2YTcuNDY2LDcuNDY2LDAsMCwwLDMuMzg5LjMxM2gwYTcuNCw3LjQsMCwwLDAsMy4zODktLjMxM2MxLjA5NS0uNTczLDIuNzExLjgzNCwyLjcxMS0zLjgwNkEzLjM4NiwzLjM4NiwwLDAsMCwyMS4yMzksMTcuMjc3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzU2MzMyYlxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4wMjYsMTUuOTc0YTkuNTQ5LDkuNTQ5LDAsMCwxLS40NjksMi41NTRsLjU3My0uMTU2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxwYXRoIGQ9XFxcIk0xNi4xODIsMTUuOTc0YTkuNTQ5LDkuNTQ5LDAsMCwwLC40NjksMi41NTRsLS41NzMtLjE1NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz48cGF0aCBkPVxcXCJNMTQuMzU4LDE1LjQ1M2MtLjIwOS0uNTIxLjU3My0xLjM1NSwxLjgyNS0xLjM1NXMyLjAzMy44MzQsMS44MjUsMS4zNTUtMS4wNDMuNjc4LTEuODI1LjY3OEMxNS4zNDgsMTYuMTMsMTQuNTY2LDE1Ljk3NCwxNC4zNTgsMTUuNDUzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzU2MzMyYlxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4xODIsMTUuOTc0YzAtLjEuNzMtLjEsMS4xNDctLjM2NSwwLDAtLjgzNC4yNjEtLjk5MS4xNTZhLjY1Ni42NTYsMCwwLDEtLjIwOS0uMzY1LjY1Ni42NTYsMCwwLDEtLjIwOS4zNjVjLS4xNTYuMS0xLjA5NS0uMTU2LTEuMDk1LS4xNTZhOC4wNTgsOC4wNTgsMCwwLDEsMS4yLjM2NXYuNDE3YTEwLjQ5MiwxMC40OTIsMCwwLDAsLjEsMi4wMzNjLjE1Ni4yMDkuMS0xLjQ2LjEtMi4wMzNBMS4zLDEuMywwLDAsMSwxNi4xODIsMTUuOTc0WlxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4xODIsMTguOTQ1YTMuMzUsMy4zNSwwLDAsMSwxLjYxNi42NzgsMy4xMjEsMy4xMjEsMCwwLDAtMS42MTYtMS4wOTUsMy4wMzYsMy4wMzYsMCwwLDAtMS44MjUsMS4yQTMuMzEyLDMuMzEyLDAsMCwxLDE2LjE4MiwxOC45NDVaXFxcIiBzdHlsZT1cXFwiZmlsbDojN2Y0YTQxXFxcIi8+PHBhdGggZD1cXFwiTTE2LjA3OCwyMi44YTguOSw4LjksMCwwLDEtMi40LS40NjljLS4xNTYtLjA1Mi0uMzEzLjA1Mi0uNDY5LDBhNi4xNzIsNi4xNzIsMCwwLDEtMy4xOC0yLjEzN3YuMjA5YzAsNC42NCwxLjYxNiwzLjIzMiwyLjcxMSwzLjgwNmE3LjQ2Niw3LjQ2NiwwLDAsMCwzLjM4OS4zMTNoMGE3LjQsNy40LDAsMCwwLDMuMzg5LS4zMTNjMS4wOTUtLjU3MywyLjcxMS44MzQsMi43MTEtMy44MDZ2LS40NjlBNS45MTQsNS45MTQsMCwwLDEsMTksMjIuMjgyYy0uMTU2LjA1Mi0uNDE3LS4wNTItLjU3My0uMDUyQTcuMDQ1LDcuMDQ1LDAsMCwxLDE2LjA3OCwyMi44WlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxwYXRoIGQ9XFxcIk0xMy45NDEsMjAuM3MtLjU3MywxLjY2OC0uMTU2LDIuNGwtLjUyMS0uMjA5QTE1LjQzMywxNS40MzMsMCwwLDEsMTMuOTQxLDIwLjNaXFxcIiBzdHlsZT1cXFwiZmlsbDojNDQyODIzXFxcIi8+PHBhdGggZD1cXFwiTTE4LjMyLDIwLjNzLjU3MywxLjY2OC4xNTYsMi40TDE5LDIyLjQ5MUExMC42MjksMTAuNjI5LDAsMCwwLDE4LjMyLDIwLjNaXFxcIiBzdHlsZT1cXFwiZmlsbDojNDQyODIzXFxcIi8+PHBhdGggZD1cXFwiTTEyLjU4NSwxMS45MDhjLS4yMDkuNjc4LS44ODYsMy4wMjQuNDY5LDIuMjQyYTIuNTU3LDIuNTU3LDAsMCwwLS45MzgsMS41NjQsMS44MzEsMS44MzEsMCwwLDEtMS4zLDEuNDA4QTMuNDc5LDMuNDc5LDAsMCwxLDguMjU4LDE2LjVhMi45NTYsMi45NTYsMCwwLDEtLjY3OC0zLjI4NCwyLjQzLDIuNDMsMCwwLDEsMi4xMzctMS42MTZDMTAuNzA5LDExLjMzNCwxMi43OTQsMTEuMTI2LDEyLjU4NSwxMS45MDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTE2LjEzLDE4LjUyOGEzLjM5MywzLjM5MywwLDAsMSwyLjQ1LDIuODY3di0uMWEzLjA1MSwzLjA1MSwwLDAsMC0yLjQ1LTIuOTE5LDMsMywwLDAsMC0yLjQ1LDIuOTE5di4xQTMuNDYzLDMuNDYzLDAsMCwxLDE2LjEzLDE4LjUyOFpcXFwiLz48ZWxsaXBzZSBjeD1cXFwiMTYuNTQ2XFxcIiBjeT1cXFwiMTUuMTM4XFxcIiByeD1cXFwiMC4xNTZcXFwiIHJ5PVxcXCIwLjMxM1xcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTMuMjU2IDQuNjExKSByb3RhdGUoLTE0LjQ2KVxcXCIgc3R5bGU9XFxcImZpbGw6IzMzMTcxMlxcXCIvPjxlbGxpcHNlIGN4PVxcXCIxNS42MDlcXFwiIGN5PVxcXCIxNS4xNDZcXFwiIHJ4PVxcXCIwLjMxM1xcXCIgcnk9XFxcIjAuMTU2XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMy40ODIgMjUuNTY3KSByb3RhdGUoLTcyLjc2NSlcXFwiIHN0eWxlPVxcXCJmaWxsOiMzMzE3MTJcXFwiLz48Y2lyY2xlIGN4PVxcXCIxMC4wMzFcXFwiIGN5PVxcXCIxNC40MVxcXCIgcj1cXFwiMS45MjlcXFwiLz48Y2lyY2xlIGN4PVxcXCIxMC41NTJcXFwiIGN5PVxcXCIxMy41MjRcXFwiIHI9XFxcIjAuNTIxXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE2LjcsMTQuNDFzLS41MjEuMjA5LS42MjYuMjYxYTIuNDkyLDIuNDkyLDAsMCwxLS42MjYtLjI2MUgxNi43WlxcXCIgc3R5bGU9XFxcImZpbGw6IzdmNGE0MVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi45LDE0LjMwNmExNy42OCwxNy42OCwwLDAsMC0yLjcxMSwyLjM0NmMtLjkzOCwxLjItLjkzOCwxLjQwOC0uOTM4LDEuNDA4bC42NzguMzEzYTcuMSw3LjEsMCwwLDEsMi4xMzctMi41YzEuMi0uNjc4LDEuMzU1LTEuMjUxLDEuMzU1LTEuMjUxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2VmY2NhM1xcXCIvPjxwYXRoIGQ9XFxcIk05LjA5MiwxMC44MTNhNC41MTksNC41MTksMCwwLDEtMS45MjksMi4yOTRBMi4xOSwyLjE5LDAsMCwwLDkuMDkyLDEwLjgxM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48cGF0aCBkPVxcXCJNMjIuOTA4LDEwLjgxM2E0LjUxOSw0LjUxOSwwLDAsMCwxLjkyOSwyLjI5NEEyLjE5LDIuMTksMCwwLDEsMjIuOTA4LDEwLjgxM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48cGF0aCBkPVxcXCJNMTkuMzEsMTMuODM2YTUuMTYsNS4xNiwwLDAsMC0zLjA3Ni0xLjQwOGguMTU2YTMuODUyLDMuODUyLDAsMCwwLTMuMDI0LDEuNDA4LDQuODMyLDQuODMyLDAsMCwxLDMuMDI0LTEuMDQzaDBBNS43ODUsNS43ODUsMCwwLDEsMTkuMzEsMTMuODM2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNy43NDYsMTAuOTY5YTIuNDU1LDIuNDU1LDAsMCwwLTEuNTY0LS45MzhoLjE1NmExLjc4NiwxLjc4NiwwLDAsMC0xLjUxMi45MzgsMi4xODcsMi4xODcsMCwwLDEsMS41MTItLjY3OGgwQTEuODk0LDEuODk0LDAsMCwxLDE3Ljc0NiwxMC45NjlaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTEwLjAzMSwxNy43NDZhMi41NDUsMi41NDUsMCwwLDEtMS43NzMuMjA5SDguMDVhMy42OCwzLjY4LDAsMCwxLS44ODYtMS41MTJBMi4yNywyLjI3LDAsMCwwLDEwLjAzMSwxNy43NDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTIyLjEyNiwxNy43NDZhMi41NDUsMi41NDUsMCwwLDAsMS43NzMuMjA5SDIzLjY5YTEuNzQ5LDEuNzQ5LDAsMCwwLDEuMDk1LTEuNTEyQTIuMDIsMi4wMiwwLDAsMSwyMi4xMjYsMTcuNzQ2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0xMS4yMywxMC43MDlhNC43NSw0Ljc1LDAsMCwxLDIuMjQyLjFjLjkzOC4zMTMuMjA5LDEuNTY0LjM2NSwxLjYxNmEyLjg2NSwyLjg2NSwwLDAsMSwyLjI0Mi0uNzNjMS43NzMuMSwxLjk4MS44ODYsMi4yNDIuNzMuMjYxLS4xLS4yNjEtMi4xOSwyLjQ1LTEuNzIsMCwwLTIuNzYzLS43My0yLjY1OSwxLjI1MWEzLjY3NSwzLjY3NSwwLDAsMC0zLjg1OC0uMVMxNC44MjcsOS45MjcsMTEuMjMsMTAuNzA5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0xMC41LDhzLTIuNCwyLjk3Mi0yLjcxMSw0LjExOGMtLjM2NSwxLjE0Ny0uNjI2LDUuOTQzLS45MzgsNi42MjFMNS43NTYsMTQuMDQ1bDIuMDMzLTQuOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48cGF0aCBkPVxcXCJNMjEuNjU2LDhzMi40LDIuOTcyLDIuNzExLDQuMTE4Yy4zNjUsMS4xNDcuNjI2LDUuOTQzLjkzOCw2LjYyMUwyNi40LDE0LjA0NWwtMi4wMzMtNC45WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0yMS41LDhhMTEuNjE3LDExLjYxNywwLDAsMSwzLjI4NCw0LjU4OGMuNzMsMi40NS40MTcsNS40NzQuOTkxLDUuODM5LjgzNC41MjEsMS43Mi0yLjYwNywyLjAzMy0yLjkxOS40NjktLjUyMSwyLjA4NS0xLjg3NywyLjE5LTIuMTM3cy0zLjIzMi0zLjkxLTQuNzQ0LTQuNjRDMjMuNTg1LDcuODkzLDIxLjQsNy43ODksMjEuNSw4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzU2MzMyYlxcXCIvPjxwYXRoIGQ9XFxcIk0yMy42OSw5LjNhMTUuMzc5LDE1LjM3OSwwLDAsMSwyLjk3Miw4LjY1NGwxLjItMi40NUExNi41NjQsMTYuNTY0LDAsMCwwLDIzLjY5LDkuM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz48cGF0aCBkPVxcXCJNMTAuNSw4YTExLjYxNywxMS42MTcsMCwwLDAtMy4yODQsNC41ODhjLS43MywyLjQ1LS40MTcsNS40NzQtLjk5MSw1LjgzOS0uODM0LjUyMS0xLjcyLTIuNjA3LTIuMDMzLTIuOTE5LS40NjktLjUyMS0yLjA4NS0xLjg3Ny0yLjE5LTIuMTM3czMuMjMyLTMuOTEsNC43NDQtNC42NEM4LjQxNSw3Ljg5MywxMC42LDcuNzg5LDEwLjUsOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM1NjMzMmJcXFwiLz48cGF0aCBkPVxcXCJNOC4zMSw5LjNhMTUuMzc5LDE1LjM3OSwwLDAsMC0yLjk3Miw4LjY1NEw0LjE0LDE1LjVBMTYuNTY0LDE2LjU2NCwwLDAsMSw4LjMxLDkuM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz48cGF0aCBkPVxcXCJNNi42NDIsMTguMDA3YTQuMTE4LDQuMTE4LDAsMCwwLC41NzMsMS41NjRjLjM2NS4zNjUuMS0uMzEzLjEtLjMxM3MtLjM2NS0uMjA5LS4zMTMtMS43MlM2LjY0MiwxOC4wMDcsNi42NDIsMTguMDA3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0yNS40MSwxOC4wMDdhNC4xMTgsNC4xMTgsMCwwLDEtLjU3MywxLjU2NGMtLjM2NS4zNjUtLjEtLjMxMy0uMS0uMzEzcy4zNjUtLjIwOS4zMTMtMS43MkMyNC45OTMsMTYuMDc4LDI1LjQxLDE4LjAwNywyNS40MSwxOC4wMDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PGNpcmNsZSBjeD1cXFwiMTMuODg5XFxcIiBjeT1cXFwiMTcuMTIxXFxcIiByPVxcXCIwLjE1NlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxjaXJjbGUgY3g9XFxcIjEyLjg0NlxcXCIgY3k9XFxcIjE4LjIxNlxcXCIgcj1cXFwiMC4xNTZcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz48Y2lyY2xlIGN4PVxcXCIxMi41MzNcXFwiIGN5PVxcXCIxNy4xMjFcXFwiIHI9XFxcIjAuMTU2XFxcIiBzdHlsZT1cXFwiZmlsbDojNDQyODIzXFxcIi8+PGNpcmNsZSBjeD1cXFwiMTguMTY0XFxcIiBjeT1cXFwiMTcuMTIxXFxcIiByPVxcXCIwLjE1NlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxjaXJjbGUgY3g9XFxcIjE5LjE1NFxcXCIgY3k9XFxcIjE4LjIxNlxcXCIgcj1cXFwiMC4xNTZcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz48Y2lyY2xlIGN4PVxcXCIxOS40NjdcXFwiIGN5PVxcXCIxNy4xMjFcXFwiIHI9XFxcIjAuMTU2XFxcIiBzdHlsZT1cXFwiZmlsbDojNDQyODIzXFxcIi8+XCIsXG5cdH0sXG5cdFwiUHVwcGV0XCI6IHtcblx0XHRjb2xvdXI6IFwiI2ZmYWUxYVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTI1LjA4OSwxMS44MjJIMTguN0wxNS4yNjcsOC4zODhWMkg2LjkxMXY4LjM1N0gxMy4zbDMuNDIyLDMuNDIyaDB2NC40MzFoMGwtMy40MzQsMy40MzRINi45MTFWMzBoOC4zNTdWMjMuNjEyaDBMMTguNywyMC4xNzhoNi4zODhaTTkuNyw0Ljc4NmgyLjc4NlY3LjU3MUg5LjdaTTEyLjQ4MiwyNy4ySDkuN1YyNC40MTdoMi43ODZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZhZTFhXFxcIi8+XCIsXG5cdH0sXG5cdFwiUHVyZVNjcmlwdFwiOiB7XG5cdFx0Y29sb3VyOiBcIiMxNjE3MWJcIixcblx0XHRpY29uOiBcIjxyZWN0IHdpZHRoPVxcXCIzMlxcXCIgaGVpZ2h0PVxcXCIzMlxcXCIgc3R5bGU9XFxcImZpbGw6IzE2MTcxYlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjEuODkyIDIyLjEzNiAxOS43MDYgMjAuMDk1IDEwLjEwNyAyMC4wOTUgMTIuMjkzIDIyLjEzNiAyMS44OTIgMjIuMTM2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxMi4yOTMgMTQuOTggMTAuMTA3IDE3LjAyMSAxOS43MDYgMTcuMDIxIDIxLjg5MiAxNC45OCAxMi4yOTMgMTQuOThcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIxLjg5MSAxMS45MDYgMTkuNzA2IDkuODY0IDEwLjEwNyA5Ljg2NCAxMi4yOTMgMTEuOTA2IDIxLjg5MSAxMS45MDZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNOS4xLDEzLjkyNiw3LjY1MiwxMi40ODIsMi4zLDE3LjgzNmExLjAyMywxLjAyMywwLDAsMCwwLDEuNDQzbDUuMzU0LDUuMzU0TDkuMSwyMy4xOSw0LjQ2NCwxOC41NThaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTI5LjcsMTIuNzIxLDI0LjM0OCw3LjM2NiwyMi45LDguODFsNC42Myw0LjYzMkwyMi45LDE4LjA3NWwxLjQ0MywxLjQ0M0wyOS43LDE0LjE2NWExLjAyMSwxLjAyMSwwLDAsMCwwLTEuNDQ0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIlB5dGhvblwiOiB7XG5cdFx0Y29sb3VyOiBcIiMzNjcxQTFcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIi0xMzMuMjY4XFxcIiB5MT1cXFwiLTIwMi45MVxcXCIgeDI9XFxcIi0xMzMuMTk4XFxcIiB5Mj1cXFwiLTIwMi44NFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgyNTI0My4wNjEgMzg1MTkuMTcpIHNjYWxlKDE4OS4zOCAxODkuODEpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMzg3ZWI4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMzY2OTk0XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCItMTMzLjU3NVxcXCIgeTE9XFxcIi0yMDMuMjAzXFxcIiB4Mj1cXFwiLTEzMy40OTVcXFwiIHkyPVxcXCItMjAzLjEzM1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgyNTMwOS4wNjEgMzg1ODMuNDIpIHNjYWxlKDE4OS4zOCAxODkuODEpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZlMDUyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZjMzMxXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9weXRob248L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNS44ODUsMi4xYy03LjEsMC02LjY1MSwzLjA3LTYuNjUxLDMuMDdWOC4zNmg2Ljc1MnYxSDYuNTQ1UzIsOC44LDIsMTYuMDA1czQuMDEzLDYuOTEyLDQuMDEzLDYuOTEySDguMzNWMTkuNTU2cy0uMTMtNC4wMTMsMy45LTQuMDEzaDYuNzYyczMuNzcyLjA2LDMuNzcyLTMuNjUyVjUuOHMuNTcyLTMuNzEyLTYuODQyLTMuNzEyaDBaTTEyLjE1Myw0LjIzN2ExLjIxNCwxLjIxNCwwLDEsMS0xLjE4MywxLjI0NHYtLjAyYTEuMjE0LDEuMjE0LDAsMCwxLDEuMjE0LTEuMjE0aDBaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTE2LjA4NSwyOS45MWM3LjEsMCw2LjY1MS0zLjA4LDYuNjUxLTMuMDhWMjMuNjVIMTUuOTg1di0xaDkuNDdTMzAsMjMuMTU4LDMwLDE1Ljk5NXMtNC4wMTMtNi45MTItNC4wMTMtNi45MTJIMjMuNjRWMTIuNHMuMTMsNC4wMTMtMy45LDQuMDEzSDEyLjk3NVM5LjIsMTYuMzU2LDkuMiwyMC4wNjhWMjYuMnMtLjU3MiwzLjcxMiw2Ljg0MiwzLjcxMmguMDRabTMuNzMyLTIuMTQ3QTEuMjE0LDEuMjE0LDAsMSwxLDIxLDI2LjUxOXYuMDNhMS4yMTQsMS4yMTQsMCwwLDEtMS4yMTQsMS4yMTRoLjAzWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPlwiLFxuXHRcdGlubGluZUNvbW1lbnQ6IFtcblx0XHRcdFwiI1wiLFxuXHRcdF0sXG5cdH0sXG5cdFwiUSAoa2RiKyBkYXRhYmFzZSlcIjoge1xuXHRcdGNvbG91cjogXCIjMWU3OGIzXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjAuMDkyLDI5VjE5LjY4MkE2Ljk1Myw2Ljk1MywwLDAsMSwxNy43LDIxLjY0NWE2Ljc0Myw2Ljc0MywwLDAsMS0zLjA4OS43MjRBNi41NTcsNi41NTcsMCwwLDEsOS40MTMsMjAsMTEuMDgxLDExLjA4MSwwLDAsMSw3LDEyLjQ3NSwxMC4wMzMsMTAuMDMzLDAsMCwxLDkuMjY0LDUuNSw3LjI1MSw3LjI1MSwwLDAsMSwxNC44NzQsM2E2LjI2Niw2LjI2NiwwLDAsMSwzLjIuNzg1LDcuMzI5LDcuMzI5LDAsMCwxLDIuNCwyLjM3M1YzLjQxOUgyNVYyOVptLjE1Ny0xNi41NDJhNi40OTIsNi40OTIsMCwwLDAtMS4xNi00LjIzMiwzLjYzNCwzLjYzNCwwLDAsMC0yLjkwNS0xLjM4NywzLjc0MiwzLjc0MiwwLDAsMC0yLjk3NSwxLjQxMyw2Ljg4MSw2Ljg4MSwwLDAsMC0xLjIsNC40ODUsNi43NjcsNi43NjcsMCwwLDAsMS4xNTIsNC40MDZBMy41OTMsMy41OTMsMCwwLDAsMTYuMDA5LDE4LjVhMy43ODYsMy43ODYsMCwwLDAsMi45NjYtMS41MThBNi44ODksNi44ODksMCwwLDAsMjAuMjQ5LDEyLjQ1OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxZTc4YjNcXFwiLz5cIixcblx0fSxcblx0XCJRI1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMzMzMzY2NcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xOS40NTEsNi4yMThoMi42MzhWOC44NTZoMi42MzdWNi4yMThoMi42MzdWOC44NTZIMzBWMTEuNUgyNy4zNjR2Mi42MzZIMzBWMTYuNzdIMjcuMzY0djIuNjM3SDI0LjcyN1YxNi43NjlIMjIuMDkxbDAsMi42MzdIMTkuNDUzVjE2Ljc2OEgxNi44MTVWMTQuMTI3aDIuNjM4VjExLjVIMTYuODE1VjguODUzaDIuNjM5Wm0yLjYzOCw3LjkxNGgyLjYzN1YxMS41SDIyLjA4OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzM2NcXFwiLz48cGF0aCBkPVxcXCJNMTQuMDE4LDIxLjUyNGExMS40MzYsMTEuNDM2LDAsMCwwLDEuNTcyLTYuMTkyLDEwLjg3NywxMC44NzcsMCwwLDAtMS44NTgtNi42QTUuODg5LDUuODg5LDAsMCwwLDguODA4LDYuMTUzYTUuOTIxLDUuOTIxLDAsMCwwLTQuOTQsMi41ODFBMTAuODQyLDEwLjg0MiwwLDAsMCwyLDE1LjMzM2ExMC44NTMsMTAuODUzLDAsMCwwLDEuODY4LDYuNTkyLDUuOTE4LDUuOTE4LDAsMCwwLDQuOTQxLDIuNTg4LDUuNzQzLDUuNzQzLDAsMCwwLDMuMjYtLjk4N2wyLjMwNiwyLjMyMSwxLjU3Ny0yLjRabS01LjE3LTEuMjE4LDEuMTE3LDEuMTIxYTMuMjI5LDMuMjI5LDAsMCwxLTEuMTc0LjIxNywzLjMzNSwzLjMzNSwwLDAsMS0yLjgzNy0xLjU5Myw4LjEyNSw4LjEyNSwwLDAsMS0xLjE4LTQuNzE5LDguMSw4LjEsMCwwLDEsMS4xODQtNC43MjQsMy4zNzIsMy4zNzIsMCwwLDEsMi44Ny0xLjU4OCwzLjMxLDMuMzEsMCwwLDEsMi44MTksMS41ODUsOC4xNzgsOC4xNzgsMCwwLDEsMS4xNzIsNC43MjYsOS4xMTMsOS4xMTMsMCwwLDEtLjgzMyw0LjE1bC0xLjU2LTEuNTcxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzMzY1xcXCIvPlwiLFxuXHR9LFxuXHRcIlFNTFwiOiB7XG5cdFx0Y29sb3VyOiBcIiM0MWNkNTJcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yNy4zLDVINS44ODZMMiw4Ljk1OFYyNkgyNi4xMTRMMzAsMjIuMDQyVjVaTTE2LjksMjMuMDdsLTEuODI4Ljg1MkwxMy41LDIxLjMzMWEzLjk2OCwzLjk2OCwwLDAsMS0xLjA4Mi4xMDZjLTEuODQ1LDAtMy4xMjMtLjUtMy44NS0xLjQ5YTguMDMsOC4wMywwLDAsMS0xLjA4Mi00LjcsOC4zNTEsOC4zNTEsMCwwLDEsMS4xLTQuNzczLDQuMzc5LDQuMzc5LDAsMCwxLDMuODMzLTEuNTYxYzEuODI4LDAsMy4wODcuNTE1LDMuODMzLDEuNTQ0YTguMzUxLDguMzUxLDAsMCwxLDEuMSw0Ljc3MywxMC44MDksMTAuODA5LDAsMCwxLS40NTIsMy40NCwzLjksMy45LDAsMCwxLTEuNDczLDJabTUuODQ4LTEuNjdhMi43MzUsMi43MzUsMCwwLDEtMi4xNjgtLjY5MkE0LjE5Miw0LjE5MiwwLDAsMSwyMCwxOC4xVjE0SDE5VjEyaDFWOWgydjNoMnYySDIydjMuOWEzLjkwNywzLjkwNywwLDAsMCwuMTY4LDEuNDM3Yy4xMTIuMjMxLjM5My4zNTUuODYuMzU1bDEuNTMzLS4wNTMuMDkzLDEuNTQ0QTEyLjUxOSwxMi41MTksMCwwLDEsMjIuNzQ4LDIxLjRaTTEyLjQxNiwxMC42MTRhMi40LDIuNCwwLDAsMC0yLjI4OSwxLjEsNy42NTcsNy42NTcsMCwwLDAtLjYsMy41MTMsNy4xMzEsNy4xMzEsMCwwLDAsLjYsMy40NDJBMi40NCwyLjQ0LDAsMCwwLDEyLjQzMywxOS43YTIuNDE3LDIuNDE3LDAsMCwwLDIuMjg5LTEuMDExLDcuMzQzLDcuMzQzLDAsMCwwLC41ODYtMy40NDIsNy42OTIsNy42OTIsMCwwLDAtLjYtMy41MzFBMi40LDIuNCwwLDAsMCwxMi40MTYsMTAuNjE0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzQxY2Q1MlxcXCIvPlwiLFxuXHR9LFxuXHRcIlJcIjoge1xuXHRcdGNvbG91cjogXCIjMjc2ZGMzXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItMTM0LjgxMVxcXCIgeTE9XFxcIi0xMDMuMjg0XFxcIiB4Mj1cXFwiLTEzNC43NzJcXFwiIHkyPVxcXCItMTAzLjMyM1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg3MjEuMDk0LCAwLCAwLCAtNDgyLjkzNywgOTcyMTMuNTk1LCAtNDk4NzQuNTEyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2NiY2VkMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzg0ODM4YlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiLTEzNS4zNzhcXFwiIHkxPVxcXCItMTAyLjk4NVxcXCIgeDI9XFxcIi0xMzUuMzM5XFxcIiB5Mj1cXFwiLTEwMy4wMjRcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMzk4LCAwLCAwLCAtNDA2LjEyNCwgNTM4OTMsIC00MTgxMi44MzYpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMjc2ZGMzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMTY1Y2FhXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9yPC90aXRsZT48cGF0aCBkPVxcXCJNMTYsMjMuOTU2Yy03LjczMiwwLTE0LTQuMi0xNC05LjM3NlM4LjI2OCw1LjIsMTYsNS4yLDMwLDkuNCwzMCwxNC41OCwyMy43MzIsMjMuOTU2LDE2LDIzLjk1NlpNMTguMTQzLDguODdDMTIuMjY2LDguODcsNy41LDExLjc0LDcuNSwxNS4yOHM0Ljc2NCw2LjQxLDEwLjY0MSw2LjQxLDEwLjIxNC0xLjk2MiwxMC4yMTQtNi40MVMyNC4wMiw4Ljg3LDE4LjE0Myw4Ljg3WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMy4zMjEsMTkuNzI2YTEwLjU0NSwxMC41NDUsMCwwLDEsMS4zNC41LDIuNTkxLDIuNTkxLDAsMCwxLC42OC40ODUsMS44MzUsMS44MzUsMCwwLDEsLjMxMS40NDdsMy4zMzksNS42My01LjQsMC0yLjUyNC00Ljc0YTYuMSw2LjEsMCwwLDAtLjgzNS0xLjE0NS44NzkuODc5LDAsMCwwLS42NDEtLjI5MUgxOC4zMTF2Ni4xNzNsLTQuNzc2LDBWMTEuMDI2aDkuNTkxUzI3LjUsMTEuMSwyNy41LDE1LjI2MSwyMy4zMjEsMTkuNzI2LDIzLjMyMSwxOS43MjZabS0yLjA3Ny01LjI4LTIuODkxLDB2Mi42ODFoMi44OTNhMS4zMjMsMS4zMjMsMCwwLDAsMS4zNC0xLjM2NEExLjI0NywxLjI0NywwLDAsMCwyMS4yNDQsMTQuNDQ3WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPlwiLFxuXHRcdGlubGluZUNvbW1lbnQ6IFtcblx0XHRcdFwiI1wiLFxuXHRcdF0sXG5cdH0sXG5cdFwiUmFja2V0XCI6IHtcblx0XHRjb2xvdXI6IFwiIzlmMWQyMFwiLFxuXHRcdGljb246IFwiPGNpcmNsZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCIxNlxcXCIgcj1cXFwiMTRcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjcuMDE2LDI0LjY0MWExNCwxNCwwLDAsMC0xNS44LTIxLjhDMTYuOSw1LjgyMiwyNC40MTMsMTUuNTQ5LDI3LjAxNiwyNC42NDFaXFxcIiBzdHlsZT1cXFwiZmlsbDojM2U1YmE5XFxcIi8+PHBhdGggZD1cXFwiTTEzLjk5NSwxMC45M2EyNC4zLDI0LjMsMCwwLDAtNy4yMi01LjQ2QTE0LDE0LDAsMCwwLDUuNDYzLDI1LjIxNywzOS41NiwzOS41NiwwLDAsMSwxMy45OTUsMTAuOTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojOWYxZDIwXFxcIi8+PHBhdGggZD1cXFwiTTE2LjU3NSwxNC4xQTMyLjY0NSwzMi42NDUsMCwwLDAsOS40MywyOC4zNjVhMTQuMDE2LDE0LjAxNiwwLDAsMCwxMy4zLS4wODlBMzguNjQyLDM4LjY0MiwwLDAsMCwxNi41NzUsMTQuMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM5ZjFkMjBcXFwiLz5cIixcblx0fSxcblx0XCJSYXpvciBDI1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMzNjg4MzJcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yMy44NDQsMjcuNjkyYTE2LjMzMiwxNi4zMzIsMCwwLDEtNi42NDUsMS4zcS02LjM2NCwwLTEwLjAxMy0zLjI0M2ExMS4zLDExLjMsMCwwLDEtMy42NDktOC45QTEzLjcxNiwxMy43MTYsMCwwLDEsNy4zMjIsNi45NTEsMTIuNzE2LDEyLjcxNiwwLDAsMSwxNi45LDMuMDA4YTExLjY3NiwxMS42NzYsMCwwLDEsOC40MjUsMy4wMDYsOS45OTQsOS45OTQsMCwwLDEsMy4xNDIsNy41MzMsMTAuMTg3LDEwLjE4NywwLDAsMS0yLjMxOCw3LjExNCw3LjUzMiw3LjUzMiwwLDAsMS01LjgxNywyLjU0NywyLjYxMywyLjYxMywwLDAsMS0xLjg0NS0uNjQyLDIuMzIzLDIuMzIzLDAsMCwxLS43NjQtMS42LDQuOSw0LjksMCwwLDEtNC4xNDgsMi4yNDMsNC42LDQuNiwwLDAsMS0zLjUwNy0xLjQ3OSw1LjcwNiw1LjcwNiwwLDAsMS0xLjM4NC00LjA2Myw5LjkxMyw5LjkxMywwLDAsMSwyLjItNi4zNTdxMi4yLTIuNzYzLDQuOC0yLjc2M2E1LjA2Myw1LjA2MywwLDAsMSw0LjI1NiwxLjcxNmwuMzExLTEuMzM4aDIuNDA1bC0yLjA4MSw5LjA4YTEwLjcxNiwxMC43MTYsMCwwLDAtLjM1MiwyLjI0M3EwLC45NzIuNzQ0Ljk3MmE0LjgxOSw0LjgxOSwwLDAsMCwzLjg3Ny0yLjA0Nyw4LjkzLDguOTMsMCwwLDAsMS42MjEtNS42ODEsNy45OCw3Ljk4LDAsMCwwLTIuNjc1LTYuMTc1LDkuODg3LDkuODg3LDAsMCwwLTYuOTE5LTIuNDMyQTEwLjYsMTAuNiwwLDAsMCw4LjcxMyw4LjM1MmExMi4wNjYsMTIuMDY2LDAsMCwwLTMuMiw4LjQ5NSw5LjU2MSw5LjU2MSwwLDAsMCwzLjA2LDcuNTczcTMuMDYsMi43LDguNTg2LDIuN2ExMy43NTcsMTMuNzU3LDAsMCwwLDUuNjc1LTEuMDU0Wk0xOS40NjYsMTIuMjVhMy45NzcsMy45NzcsMCwwLDAtMy42LTEuNzE2cS0xLjgyNCwwLTMuMjYzLDIuMjNhOC43MjYsOC43MjYsMCwwLDAtMS40MzksNC44MjRxMCwzLjYzNSwyLjkwNSwzLjYzNUEzLjc3MSwzLjc3MSwwLDAsMCwxNi43MiwyMC4wNGE2LjMwOSw2LjMwOSwwLDAsMCwxLjctMy4yWlxcXCIgc3R5bGU9XFxcImZpbGw6IzM2ODgzMlxcXCIvPlwiLFxuXHR9LFxuXHRcIlJlYWN0IEpTWFwiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMGQ4ZmZcIixcblx0XHRpY29uOiBcIjxjaXJjbGUgY3g9XFxcIjE2XFxcIiBjeT1cXFwiMTUuOTc0XFxcIiByPVxcXCIyLjVcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGQ4ZmZcXFwiLz48cGF0aCBkPVxcXCJNMTYsMjEuNzA2YTI4LjM4NSwyOC4zODUsMCwwLDEtOC44OC0xLjIsMTEuMywxMS4zLDAsMCwxLTMuNjU3LTEuOTU4QTMuNTQzLDMuNTQzLDAsMCwxLDIsMTUuOTc0YzAtMS42NTMsMS44MTYtMy4yNzMsNC44NTgtNC4zMzNBMjguNzU1LDI4Ljc1NSwwLDAsMSwxNiwxMC4yOTNhMjguNjc0LDI4LjY3NCwwLDAsMSw5LjAyMiwxLjMyNCwxMS4zNzYsMTEuMzc2LDAsMCwxLDMuNTM4LDEuODY2QTMuMzkxLDMuMzkxLDAsMCwxLDMwLDE1Ljk3NGMwLDEuNzE4LTIuMDMsMy40NTktNS4zLDQuNTQxQTI4LjgsMjguOCwwLDAsMSwxNiwyMS43MDZabTAtMTAuMjE3YTI3Ljk0OCwyNy45NDgsMCwwLDAtOC43NDksMS4yODJjLTIuOC45NzctNC4wNTUsMi4zMTMtNC4wNTUsMy4yLDAsLjkyOCwxLjM0OSwyLjM4Nyw0LjMxMSwzLjRBMjcuMjEsMjcuMjEsMCwwLDAsMTYsMjAuNTFhMjcuNiwyNy42LDAsMCwwLDguMzI1LTEuMTNDMjcuNCwxOC4zNjEsMjguOCwxNi45LDI4LjgsMTUuOTc0YTIuMzI3LDIuMzI3LDAsMCwwLTEuMDEtMS41NzMsMTAuMTk0LDEwLjE5NCwwLDAsMC0zLjE2MS0xLjY1NEEyNy40NjIsMjcuNDYyLDAsMCwwLDE2LDExLjQ4OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGQ4ZmZcXFwiLz48cGF0aCBkPVxcXCJNMTAuMzIsMjguNDQzYTIuNjM5LDIuNjM5LDAsMCwxLTEuMzM2LS4zMjhjLTEuNDMyLS44MjYtMS45MjgtMy4yMDgtMS4zMjctNi4zNzNhMjguNzU1LDI4Ljc1NSwwLDAsMSwzLjQtOC41OTNoMEEyOC42NzYsMjguNjc2LDAsMCwxLDE2LjcxLDUuOTk1YTExLjM3NiwxMS4zNzYsMCwwLDEsMy4zODQtMi4xMzMsMy4zOTEsMy4zOTEsMCwwLDEsMi44NzgsMGMxLjQ4OS44NTgsMS45ODIsMy40ODYsMS4yODcsNi44NTlhMjguODA2LDI4LjgwNiwwLDAsMS0zLjMxNiw4LjEzMywyOC4zODUsMjguMzg1LDAsMCwxLTUuNDc2LDcuMDkzLDExLjMsMTEuMywwLDAsMS0zLjUyMywyLjE4OUE0LjkyNiw0LjkyNiwwLDAsMSwxMC4zMiwyOC40NDNabTEuNzczLTE0LjdhMjcuOTQ4LDI3Ljk0OCwwLDAsMC0zLjI2LDguMjE5Yy0uNTUzLDIuOTE1LS4wMjIsNC42NjguNzUsNS4xMTQuOC40NjMsMi43NDIuMDI0LDUuMS0yLjAzNmEyNy4yMDksMjcuMjA5LDAsMCwwLDUuMjI3LTYuNzksMjcuNiwyNy42LDAsMCwwLDMuMTgxLTcuNzc2Yy42NTQtMy4xNzUuMDg5LTUuMTE5LS43MTMtNS41ODFhMi4zMjcsMi4zMjcsMCwwLDAtMS44NjguMDg5QTEwLjE5NCwxMC4xOTQsMCwwLDAsMTcuNSw2LjlhMjcuNDY0LDI3LjQ2NCwwLDAsMC01LjQsNi44NDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBkOGZmXFxcIi8+PHBhdGggZD1cXFwiTTIxLjY3NywyOC40NTZjLTEuMzU1LDAtMy4wNzYtLjgyLTQuODY4LTIuMzYxYTI4Ljc1NiwyOC43NTYsMCwwLDEtNS43NDctNy4yMzdoMGEyOC42NzYsMjguNjc2LDAsMCwxLTMuMzc0LTguNDcxLDExLjM3NiwxMS4zNzYsMCwwLDEtLjE1OC00QTMuMzkxLDMuMzkxLDAsMCwxLDguOTY0LDMuOWMxLjQ4Ny0uODYxLDQuMDEuMDI0LDYuNTg1LDIuMzFhMjguOCwyOC44LDAsMCwxLDUuMzksNi45MzQsMjguMzg0LDI4LjM4NCwwLDAsMSwzLjQxLDguMjg3LDExLjMsMTEuMywwLDAsMSwuMTM3LDQuMTQ2LDMuNTQzLDMuNTQzLDAsMCwxLTEuNDk0LDIuNTU1QTIuNTksMi41OSwwLDAsMSwyMS42NzcsMjguNDU2Wm0tOS41OC0xMC4yYTI3Ljk0OSwyNy45NDksMCwwLDAsNS40OTIsNi45MjljMi4yNDksMS45MzUsNC4wMzMsMi4zNTEsNC44LDEuOS44LS40NjUsMS4zOS0yLjM2My43ODItNS40MzRBMjcuMjEyLDI3LjIxMiwwLDAsMCwxOS45LDEzLjc0LDI3LjYsMjcuNiwwLDAsMCwxNC43NTUsNy4xYy0yLjQyNC0yLjE1Mi00LjM5LTIuNjMzLTUuMTkxLTIuMTY5YTIuMzI3LDIuMzI3LDAsMCwwLS44NTUsMS42NjIsMTAuMTk0LDEwLjE5NCwwLDAsMCwuMTUzLDMuNTY1LDI3LjQ2NSwyNy40NjUsMCwwLDAsMy4yMzYsOC4xWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZDhmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIlJlYWN0IFRTWFwiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMDdhY2NcIixcblx0XHRpY29uOiBcIjxjaXJjbGUgY3g9XFxcIjE2XFxcIiBjeT1cXFwiMTUuOTc0XFxcIiByPVxcXCIyLjVcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDdhY2NcXFwiLz48cGF0aCBkPVxcXCJNMTYsMjEuNzA2YTI4LjM4NSwyOC4zODUsMCwwLDEtOC44OC0xLjIsMTEuMywxMS4zLDAsMCwxLTMuNjU3LTEuOTU4QTMuNTQzLDMuNTQzLDAsMCwxLDIsMTUuOTc0YzAtMS42NTMsMS44MTYtMy4yNzMsNC44NTgtNC4zMzNBMjguNzU1LDI4Ljc1NSwwLDAsMSwxNiwxMC4yOTNhMjguNjc0LDI4LjY3NCwwLDAsMSw5LjAyMiwxLjMyNCwxMS4zNzYsMTEuMzc2LDAsMCwxLDMuNTM4LDEuODY2QTMuMzkxLDMuMzkxLDAsMCwxLDMwLDE1Ljk3NGMwLDEuNzE4LTIuMDMsMy40NTktNS4zLDQuNTQxQTI4LjgsMjguOCwwLDAsMSwxNiwyMS43MDZabTAtMTAuMjE3YTI3Ljk0OCwyNy45NDgsMCwwLDAtOC43NDksMS4yODJjLTIuOC45NzctNC4wNTUsMi4zMTMtNC4wNTUsMy4yLDAsLjkyOCwxLjM0OSwyLjM4Nyw0LjMxMSwzLjRBMjcuMjEsMjcuMjEsMCwwLDAsMTYsMjAuNTFhMjcuNiwyNy42LDAsMCwwLDguMzI1LTEuMTNDMjcuNCwxOC4zNjEsMjguOCwxNi45LDI4LjgsMTUuOTc0YTIuMzI3LDIuMzI3LDAsMCwwLTEuMDEtMS41NzMsMTAuMTk0LDEwLjE5NCwwLDAsMC0zLjE2MS0xLjY1NEEyNy40NjIsMjcuNDYyLDAsMCwwLDE2LDExLjQ4OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDdhY2NcXFwiLz48cGF0aCBkPVxcXCJNMTAuMzIsMjguNDQzYTIuNjM5LDIuNjM5LDAsMCwxLTEuMzM2LS4zMjhjLTEuNDMyLS44MjYtMS45MjgtMy4yMDgtMS4zMjctNi4zNzNhMjguNzU1LDI4Ljc1NSwwLDAsMSwzLjQtOC41OTNoMEEyOC42NzYsMjguNjc2LDAsMCwxLDE2LjcxLDUuOTk1YTExLjM3NiwxMS4zNzYsMCwwLDEsMy4zODQtMi4xMzMsMy4zOTEsMy4zOTEsMCwwLDEsMi44NzgsMGMxLjQ4OS44NTgsMS45ODIsMy40ODYsMS4yODcsNi44NTlhMjguODA2LDI4LjgwNiwwLDAsMS0zLjMxNiw4LjEzMywyOC4zODUsMjguMzg1LDAsMCwxLTUuNDc2LDcuMDkzLDExLjMsMTEuMywwLDAsMS0zLjUyMywyLjE4OUE0LjkyNiw0LjkyNiwwLDAsMSwxMC4zMiwyOC40NDNabTEuNzczLTE0LjdhMjcuOTQ4LDI3Ljk0OCwwLDAsMC0zLjI2LDguMjE5Yy0uNTUzLDIuOTE1LS4wMjIsNC42NjguNzUsNS4xMTQuOC40NjMsMi43NDIuMDI0LDUuMS0yLjAzNmEyNy4yMDksMjcuMjA5LDAsMCwwLDUuMjI3LTYuNzksMjcuNiwyNy42LDAsMCwwLDMuMTgxLTcuNzc2Yy42NTQtMy4xNzUuMDg5LTUuMTE5LS43MTMtNS41ODFhMi4zMjcsMi4zMjcsMCwwLDAtMS44NjguMDg5QTEwLjE5NCwxMC4xOTQsMCwwLDAsMTcuNSw2LjlhMjcuNDY0LDI3LjQ2NCwwLDAsMC01LjQsNi44NDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA3YWNjXFxcIi8+PHBhdGggZD1cXFwiTTIxLjY3NywyOC40NTZjLTEuMzU1LDAtMy4wNzYtLjgyLTQuODY4LTIuMzYxYTI4Ljc1NiwyOC43NTYsMCwwLDEtNS43NDctNy4yMzdoMGEyOC42NzYsMjguNjc2LDAsMCwxLTMuMzc0LTguNDcxLDExLjM3NiwxMS4zNzYsMCwwLDEtLjE1OC00QTMuMzkxLDMuMzkxLDAsMCwxLDguOTY0LDMuOWMxLjQ4Ny0uODYxLDQuMDEuMDI0LDYuNTg1LDIuMzFhMjguOCwyOC44LDAsMCwxLDUuMzksNi45MzQsMjguMzg0LDI4LjM4NCwwLDAsMSwzLjQxLDguMjg3LDExLjMsMTEuMywwLDAsMSwuMTM3LDQuMTQ2LDMuNTQzLDMuNTQzLDAsMCwxLTEuNDk0LDIuNTU1QTIuNTksMi41OSwwLDAsMSwyMS42NzcsMjguNDU2Wm0tOS41OC0xMC4yYTI3Ljk0OSwyNy45NDksMCwwLDAsNS40OTIsNi45MjljMi4yNDksMS45MzUsNC4wMzMsMi4zNTEsNC44LDEuOS44LS40NjUsMS4zOS0yLjM2My43ODItNS40MzRBMjcuMjEyLDI3LjIxMiwwLDAsMCwxOS45LDEzLjc0LDI3LjYsMjcuNiwwLDAsMCwxNC43NTUsNy4xYy0yLjQyNC0yLjE1Mi00LjM5LTIuNjMzLTUuMTkxLTIuMTY5YTIuMzI3LDIuMzI3LDAsMCwwLS44NTUsMS42NjIsMTAuMTk0LDEwLjE5NCwwLDAsMCwuMTUzLDMuNTY1LDI3LjQ2NSwyNy40NjUsMCwwLDAsMy4yMzYsOC4xWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwN2FjY1xcXCIvPlwiLFxuXHR9LFxuXHRcIlJlYXNvblwiOiB7XG5cdFx0Y29sb3VyOiBcIiNkZDRiMzlcIixcblx0XHRpY29uOiBcIjxwb2x5bGluZSBwb2ludHM9XFxcIjIgMiAzMCAyIDMwIDMwIDIgMzAgMiAyXFxcIiBzdHlsZT1cXFwiZmlsbDojZGQ0YjM5XFxcIi8+PHBhdGggZD1cXFwiTTkuMDUxLDE3LjUyN3EyLjUzNywwLDUuMDcyLDBBNC45NDcsNC45NDcsMCwwLDEsMTcuMSwxOC41YTMuMjksMy4yOSwwLDAsMSwxLjEyOCwyLjI2Nyw0LjExNyw0LjExNywwLDAsMS0uNzc4LDMuMDIyLDMuNiwzLjYsMCwwLDEtMS4xMzcuOTA1bDIuMjQ3LDMuNTQ5LTMuMDYxLDAtMS42LTMuMDQzLTIuMTU0LDAsMCwzLjAzMkg5LjA1MVYxNy41MjdtMi42OSwyLjEyOCwwLDMuNDM4LDEuOTg5LDBhMi4xODQsMi4xODQsMCwwLDAsMS40NjgtLjQ1MiwxLjgxNCwxLjgxNCwwLDAsMCwuNDgyLTEuNTQ0LDEuNDY5LDEuNDY5LDAsMCwwLS43MDUtMS4xOCwyLjc2OCwyLjc2OCwwLDAsMC0xLjQzNy0uMjY5QzEyLjk0LDE5LjY1NCwxMS43NDEsMTkuNjU1LDExLjc0MSwxOS42NTVabTguMzg0LTIuMTNoOC4zNXYyLjEzaC01LjY2VjIxLjhsNS4xMSwwdjIuMTE5SDIyLjgyVjI2LjFoNS44MjR2Mi4xNDJIMjAuMTI1VjE3LjUyNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0fSxcblx0XCJSZWdvXCI6IHtcblx0XHRjb2xvdXI6IFwiIzc4OTI5YVwiLFxuXHRcdGljb246IFwiPGRlZnM+PGNsaXBQYXRoIGlkPVxcXCJhXFxcIj48cGF0aCBkPVxcXCJNNy4wNTUsMTYuMjQxYzMuNDE1LTEwLjIyLDE0Ljc1OS05LjQ3MywxNy45MjQsMGwuMSw1Ljg5M2ExNS41NjIsMTUuNTYyLDAsMCwwLTkuMDM2LDcuMjQ2QTE3LjY0MSwxNy42NDEsMCwwLDAsNy4wMywyMi4zNDZaXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lXFxcIi8+PC9jbGlwUGF0aD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9yZWdvPC90aXRsZT48cGF0aCBkPVxcXCJNNy4wMywxNi4yNDFsMi42LTQuNTU5Yy0yLjQxOC0uMzEyLTIuNjA2LTMuNDMxLS44LTkuMDYyQzMuODA5LDguODUzLDIuNDIsMTAuMjI4LDcuMDMsMTYuMjQxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2JmYmZiZjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0yNC45NywxNi4yNDFsLTIuNTk1LTQuNTU5YzIuNDE4LS4zMTIsMi42MDYtMy40MzEuOC05LjA2MkMyOC4xOTEsOC44NTMsMjkuNTgsMTAuMjI4LDI0Ljk3LDE2LjI0MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZmJmYmY7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNNy4wNTUsMTYuMjQxYzMuNDE1LTEwLjIyLDE0Ljc1OS05LjQ3MywxNy45MjQsMGwuMSw1Ljg5M2ExNS41NjIsMTUuNTYyLDAsMCwwLTkuMDM2LDcuMjQ2QTE3LjY0MSwxNy42NDEsMCwwLDAsNy4wMywyMi4zNDZaXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lXFxcIi8+PGcgc3R5bGU9XFxcImNsaXAtcGF0aDp1cmwoI2EpXFxcIj48cmVjdCB4PVxcXCIxNi4wNTNcXFwiIHk9XFxcIjcuOTYyXFxcIiB3aWR0aD1cXFwiOS41NDlcXFwiIGhlaWdodD1cXFwiMjEuODk5XFxcIiBzdHlsZT1cXFwiZmlsbDojNTM2MzY3XFxcIi8+PHJlY3QgeD1cXFwiNS4zMjJcXFwiIHk9XFxcIjcuOTYyXFxcIiB3aWR0aD1cXFwiMTAuNzMyXFxcIiBoZWlnaHQ9XFxcIjIxLjg5OVxcXCIgc3R5bGU9XFxcImZpbGw6Izc4OTI5YVxcXCIvPjwvZz48Y2lyY2xlIGN4PVxcXCIxNi4wNFxcXCIgY3k9XFxcIjE2LjI0MVxcXCIgcj1cXFwiMS4xNjZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0fSxcblx0XCJSZVNjcmlwdFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNlODRmNGZcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjExLjQyMVxcXCIgeTE9XFxcIi0yMjEuNzA1XFxcIiB4Mj1cXFwiMjEuNTA5XFxcIiB5Mj1cXFwiLTI0OC43OTJcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIC0yMTgpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZTg0ZjRmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQwOVxcXCIgc3RvcC1jb2xvcj1cXFwiI2RiNDY0NlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OTlcXFwiIHN0b3AtY29sb3I9XFxcIiNjYjM5MzlcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3Jlc2NyaXB0PC90aXRsZT48cGF0aCBkPVxcXCJNMiwxMC45N2MwLTMuNzM4LDAtNS42Ljk1Mi02LjkxNmE0Ljk5Miw0Ljk5MiwwLDAsMSwxLjEtMS4xQzUuMzY0LDIsNy4yMzMsMiwxMC45NjksMkgyMS4wM2MzLjczOCwwLDUuNjA1LDAsNi45MTYuOTUxYTQuOTkyLDQuOTkyLDAsMCwxLDEuMSwxLjFDMzAsNS4zNjQsMzAsNy4yMzIsMzAsMTAuOTdWMjEuMDNjMCwzLjczNywwLDUuNjA1LS45NTIsNi45MTZhNC45NjYsNC45NjYsMCwwLDEtMS4xLDEuMUMyNi42MzYsMzAsMjQuNzY4LDMwLDIxLjAzLDMwSDEwLjk2OWMtMy43MzYsMC01LjYsMC02LjkxNS0uOTUyYTQuOTY2LDQuOTY2LDAsMCwxLTEuMS0xLjFDMiwyNi42MzYsMiwyNC43NjcsMiwyMS4wM1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMjAuOTc0LDE1LjU1NGEzLjMyNSwzLjMyNSwwLDEsMC0zLjMyNC0zLjMyNUEzLjMyNSwzLjMyNSwwLDAsMCwyMC45NzQsMTUuNTU0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk05LjMxNiwxMS44MDlhNC42NzYsNC42NzYsMCwwLDEsLjIwNi0xLjk4N0ExLjg4NiwxLjg4NiwwLDAsMSwxMC4zNDUsOWE0LjcsNC43LDAsMCwxLDEuOTg3LS4yMDVoMi42NFYyMS4wNDVhNC42ODYsNC42ODYsMCwwLDEtLjE0NCwxLjY2NCwxLjg5MiwxLjg5MiwwLDAsMS0xLjAyLDEuMDIsNC43Miw0LjcyLDAsMCwxLTEuNjY0LjE0Myw0LjcxNyw0LjcxNywwLDAsMS0xLjY2NC0uMTQzLDEuODkyLDEuODkyLDAsMCwxLTEuMDItMS4wMiw0LjcyLDQuNzIsMCwwLDEtLjE0My0xLjY2NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0fSxcblx0XCJyZVNUIChyZVN0cnVjdHVyZWRUZXh0KVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNjZTNmMzFcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xNiwzMEExMy44NTksMTMuODU5LDAsMCwxLDIuMjg2LDE2LDE0LjE0OSwxNC4xNDksMCwwLDEsNi4zLDYuMSwxMy41MTcsMTMuNTE3LDAsMCwxLDI1LjcsNi4xLDE0LjE0OSwxNC4xNDksMCwwLDEsMjkuNzE0LDE2LDEzLjg1OSwxMy44NTksMCwwLDEsMTYsMzBaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2UzZjMxXFxcIi8+PHBhdGggZD1cXFwiTTExLjg2OSwyMy4wMTVoLS40YTQuMjYzLDQuMjYzLDAsMCwxLTEuMDQ4LS4xMTMsMS4zODcsMS4zODcsMCwwLDEtLjc2Ny0uNTQ4LDIuMiwyLjIsMCwwLDEtLjQwOS0xLjAyNkExMy4yOCwxMy4yOCwwLDAsMSw5LjE1OSwxOS42YTEyLjc4LDEyLjc4LDAsMCwwLS4wOC0xLjY4NywxLjc3MywxLjc3MywwLDAsMC0uNDA1LS45MjQsMS4zMjUsMS4zMjUsMCwwLDAtMS4wMjYtLjM5MVYxNS40YTEuMzI1LDEuMzI1LDAsMCwwLDEuMDI2LS4zOTEsMS43NzMsMS43NzMsMCwwLDAsLjQwNS0uOTI0LDEyLjc4LDEyLjc4LDAsMCwwLC4wOC0xLjY4NywxMy4yOCwxMy4yOCwwLDAsMSwuMDg0LTEuNzMxLDIuMiwyLjIsMCwwLDEsLjQwOS0xLjAyNiwxLjM4NywxLjM4NywwLDAsMSwuNzY3LS41NDgsNC4yNjMsNC4yNjMsMCwwLDEsMS4wNDgtLjExM2guNHYxLjE0aC0uMjI2cS0uNzYsMC0uOTMxLjRhNy43Miw3LjcyLDAsMCwwLS4xNzIsMi4xNyw0Ljg3Niw0Ljg3NiwwLDAsMS0uNDE2LDIuMzE2QTIuMTE3LDIuMTE3LDAsMCwxLDguODU5LDE2YTIuMDg5LDIuMDg5LDAsMCwxLDEuMjY0Ljk4NkE0Ljg3Niw0Ljg3NiwwLDAsMSwxMC41NCwxOS4zYTcuNzIsNy43MiwwLDAsMCwuMTcyLDIuMTdxLjE3Mi40LjkzMS40aC4yMjZabTEuNi0zLjE0MWgxLjAzNVYxNi40MmgxLjQ1OWwxLjk3LDMuNDU0aDEuMTg0TDE3LjA0LDE2LjMwOGEyLjI0MywyLjI0MywwLDAsMCwxLjgzMy0yLjMxOWMwLTEuNy0xLjItMi4yOTQtMi44NTUtMi4yOTRIMTMuNDc0Wm0xLjAzNS00LjNWMTIuNTNoMS4zNTljMS4yNzIsMCwxLjk3LjM4NiwxLjk3LDEuNDU5cy0uNywxLjU4My0xLjk3LDEuNTgzWm01LjU1Ny02LjU5MWguNGE0LjI2Myw0LjI2MywwLDAsMSwxLjA0OC4xMTMsMS4zODcsMS4zODcsMCwwLDEsLjc2Ny41NDgsMi4yLDIuMiwwLDAsMSwuNDA5LDEuMDI2LDEzLjI4LDEzLjI4LDAsMCwxLC4wODQsMS43MzEsMTIuNzgsMTIuNzgsMCwwLDAsLjA4LDEuNjg3LDEuNzczLDEuNzczLDAsMCwwLC40MDUuOTI0LDEuMzI1LDEuMzI1LDAsMCwwLDEuMDI2LjM5MXYxLjE5MWExLjMyNSwxLjMyNSwwLDAsMC0xLjAyNi4zOTEsMS43NzMsMS43NzMsMCwwLDAtLjQwNS45MjQsMTIuNzgsMTIuNzgsMCwwLDAtLjA4LDEuNjg3LDEzLjI4LDEzLjI4LDAsMCwxLS4wODQsMS43MzEsMi4yLDIuMiwwLDAsMS0uNDA5LDEuMDI2LDEuMzg3LDEuMzg3LDAsMCwxLS43NjcuNTQ4LDQuMjYzLDQuMjYzLDAsMCwxLTEuMDQ4LjExM2gtLjR2LTEuMTRoLjIyNnEuNzYsMCwuOTMxLS40QTcuNzIsNy43MiwwLDAsMCwyMS40LDE5LjNhNC44NzYsNC44NzYsMCwwLDEsLjQxNi0yLjMxNkEyLjA4OSwyLjA4OSwwLDAsMSwyMy4wNzUsMTZhMi4xMTcsMi4xMTcsMCwwLDEtMS4yNjQtLjk5NCw0Ljg3Niw0Ljg3NiwwLDAsMS0uNDE2LTIuMzE2LDcuNzIsNy43MiwwLDAsMC0uMTcyLTIuMTdxLS4xNzItLjQtLjkzMS0uNGgtLjIyNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0fSxcblx0XCJSb2JvdCBGcmFtZXdvcmtcIjoge1xuXHRcdGljb246IFwiPGNpcmNsZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCIxNlxcXCIgcj1cXFwiMTRcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTAuMzg3LDE0LjZhMi43MjcsMi43MjcsMCwwLDEsNS40NTMsMCwuOTkuOTksMCwxLDEtMS45OCwwLC43NDYuNzQ2LDAsMCwwLTEuNDkyLDAsLjk5Ljk5LDAsMSwxLTEuOTgsMG0xMS4zLDQuNTg2YS45OTEuOTkxLDAsMCwxLS45OTIuOTkySDExLjUwOGEuOTkyLjk5MiwwLDAsMSwwLTEuOTg0aDkuMTg0YS45OTQuOTk0LDAsMCwxLC45OTIuOTkyTTE3LjM5MSwxNS4xNmEuOTkyLjk5MiwwLDAsMSwuMjctMS4zNzVsMi4yOTMtMS41NTFhLjk4OS45ODksMCwxLDEsMS4xMDksMS42MzdsLTIuMywxLjU1MWEuOTY1Ljk2NSwwLDAsMS0uNTUxLjE3Mi45OTQuOTk0LDAsMCwxLS44MjQtLjQzNG02LjI4OSw2LjA5NGEuNzA3LjcwNywwLDAsMS0uMjA3LjVsLTEuNzA3LDEuNzA3YS43MDcuNzA3LDAsMCwxLS41LjIwN0gxMC44YS43MDcuNzA3LDAsMCwxLS41LS4yMDdMOC42LDIxLjc1NGEuNzA3LjcwNywwLDAsMS0uMjA3LS41VjEwLjhhLjcwNy43MDcsMCwwLDEsLjIwNy0uNUwxMC4zLDguNTk0YS43MDcuNzA3LDAsMCwxLC41LS4yMDdIMjEuMjY2YS43MDcuNzA3LDAsMCwxLC41LjIwN0wyMy40NzMsMTAuM2EuNzA3LjcwNywwLDAsMSwuMjA3LjVaTTI1LjEyOSw5LjE2LDIyLjksNi45M0ExLjgwNywxLjgwNywwLDAsMCwyMS42MjksNi40SDEwLjQzOGExLjgwNywxLjgwNywwLDAsMC0xLjI3My41MjdMNi45MzgsOS4xNmExLjgsMS44LDAsMCwwLS41MjcsMS4yN1YyMS42MjFhMS44LDEuOCwwLDAsMCwuNTI3LDEuMjczbDIuMjI3LDIuMjNhMS44MSwxLjgxLDAsMCwwLDEuMjczLjUyM0gyMS42MjlhMS44LDEuOCwwLDAsMCwxLjI3My0uNTIzbDIuMjI3LTIuMjNhMS43ODQsMS43ODQsMCwwLDAsLjUyNy0xLjI3M1YxMC40MzRhMS43ODQsMS43ODQsMCwwLDAtLjUyNy0xLjI3M1xcXCIvPlwiLFxuXHR9LFxuXHRcIlJ1YnlcIjoge1xuXHRcdGNvbG91cjogXCIjYjMxMzAxXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItMjM1Ljk1N1xcXCIgeTE9XFxcIi0zMDguNTc5XFxcIiB4Mj1cXFwiLTIzNS45ODZcXFwiIHkyPVxcXCItMzA4LjUyN1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgyMDIuOTM1LCAwLCAwLCAtMjAyLjc4LCA0NzkxMC40NjEsIC02MjU0MS4xNilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmYjc2NTVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDFcXFwiIHN0b3AtY29sb3I9XFxcIiNlNDJiMWVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiM5MDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM5MDBcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIi0yMzUuNTcxXFxcIiB5MT1cXFwiLTMwOS4wODdcXFwiIHgyPVxcXCItMjM1LjY5N1xcXCIgeTI9XFxcIi0zMDkuMDQxXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDYwLjMwOCwgMCwgMCwgLTExMS43NzgsIDE0MjM2LjM1MSwgLTM0NTI1LjM5NSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM4NzExMDFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiM5MTEyMDlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM5MTEyMDlcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIi0yMzUuODk2XFxcIiB5MT1cXFwiLTMxMy4zNjJcXFwiIHgyPVxcXCItMjM1LjkzN1xcXCIgeTI9XFxcIi0zMTMuMTI5XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDE4OC4zMiwgMCwgMCwgLTIxLjk4NiwgNDQ0NDcuMzAyLCAtNjg1Ni44ODIpXFxcIiB4bGluazpocmVmPVxcXCIjYlxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZFxcXCIgeDE9XFxcIi0yMzMuNTE1XFxcIiB5MT1cXFwiLTMwOS4wODJcXFwiIHgyPVxcXCItMjMzLjQ5N1xcXCIgeTI9XFxcIi0zMDkuMTYxXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDY1LjIyMiwgMCwgMCwgLTk3LjEsIDE1MjM3LjgwMiwgLTI5OTkxLjgxNClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjNcXFwiIHN0b3AtY29sb3I9XFxcIiNlNTcyNTJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDZcXFwiIHN0b3AtY29sb3I9XFxcIiNkZTNiMjBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiNhNjAwMDNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNhNjAwMDNcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZVxcXCIgeDE9XFxcIi0yMzUuMzE0XFxcIiB5MT1cXFwiLTMwOS41MzRcXFwiIHgyPVxcXCItMjM1LjMxXFxcIiB5Mj1cXFwiLTMwOS42MDdcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMTA1LjMyLCAwLCAwLCAtMTA2LjgyNSwgMjQ3OTguOTI1LCAtMzMwNTMuMTUyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yM1xcXCIgc3RvcC1jb2xvcj1cXFwiI2U0NzE0ZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41NlxcXCIgc3RvcC1jb2xvcj1cXFwiI2JlMWEwZFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E4MGQwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E4MGQwMFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+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+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIjXCIsXG5cdFx0XSxcblx0fSxcblx0XCJSdXN0XCI6IHtcblx0XHRjb2xvdXI6IFwiI2EwNGYxMlwiLFxuXHRcdGljb246IFwiPGRlZnM+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJhXFxcIiBjeD1cXFwiLTQ5Mi4wMzVcXFwiIGN5PVxcXCItODgzLjM3XFxcIiByPVxcXCIxMy45OThcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMC44NjYsIC0wLjUsIC0wLjMsIC0wLjUyLCAxNzcuMTA2LCAtNjg5LjAzMylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM3ZDdkN2RcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjY3XFxcIiBzdG9wLWNvbG9yPVxcXCIjN2U3YzdhXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQ1XFxcIiBzdG9wLWNvbG9yPVxcXCIjODE3ODcxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjYwOFxcXCIgc3RvcC1jb2xvcj1cXFwiIzg2NzE2MlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43NTNcXFwiIHN0b3AtY29sb3I9XFxcIiM4ZDY4NGNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuODg2XFxcIiBzdG9wLWNvbG9yPVxcXCIjOTY1YzMwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTA0ZjEyXFxcIi8+PC9yYWRpYWxHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9ydXN0PC90aXRsZT48cGF0aCBkPVxcXCJNMTUuMTI0LDUuM2EuODMyLjgzMiwwLDEsMSwuODMyLjgzMmgwYS44MzEuODMxLDAsMCwxLS44MzItLjgzMk01LjIsMTIuODM0YS44MzIuODMyLDAsMSwxLC44MzIuODMyaDBhLjgzMi44MzIsMCwwLDEtLjgzMi0uODMybTE5Ljg1Ni4wMzlhLjgzMi44MzIsMCwxLDEsLjgzMi44MzIuODMxLjgzMSwwLDAsMS0uODMyLS44MzJoME03LjYwNSwxNC4wMTNhLjc2Ljc2LDAsMCwwLC4zODYtMWwtLjM2OS0uODM1SDkuMDc0djYuNTQ1SDYuMTQ0YTEwLjI0NywxMC4yNDcsMCwwLDEtLjMzMi0zLjkxMVptNi4wNzQuMTYxVjEyLjI0NWgzLjQ1OGMuMTc5LDAsMS4yNjEuMjA2LDEuMjYxLDEuMDE2LDAsLjY3Mi0uODMuOTEzLTEuNTEzLjkxM1pNOC45NTgsMjQuNTYxYS44MzIuODMyLDAsMSwxLC44MzIuODMyLjgzMS44MzEsMCwwLDEtLjgzMi0uODMyaDBtMTIuMzMxLjAzOWEuODMyLjgzMiwwLDEsMSwuODMyLjgzMi44MzIuODMyLDAsMCwxLS44MzItLjgzMmgwbS4yNTctMS44ODdhLjc1OC43NTgsMCwwLDAtLjkuNTg0bC0uNDE4LDEuOTQ5YTEwLjI0OSwxMC4yNDksMCwwLDEtOC41NDUtLjA0MWwtLjQxNy0xLjk0OWEuNzU5Ljc1OSwwLDAsMC0uOS0uNTgzaDBsLTEuNzIxLjM3YTEwLjIzMywxMC4yMzMsMCwwLDEtLjg5LTEuMDQ5aDguMzc0Yy4wOTUsMCwuMTU4LS4wMTcuMTU4LS4xVjE4LjkyOGMwLS4wODYtLjA2My0uMS0uMTU4LS4xaC0yLjQ1VjE2Ljk0N2gyLjY0OWExLjY2NSwxLjY2NSwwLDAsMSwxLjYyOSwxLjQxMmMuMTA1LjQxMy4zMzYsMS43NTcuNDk0LDIuMTg3LjE1Ny40ODMuOCwxLjQ0NywxLjQ4MiwxLjQ0N2g0LjMyM2ExMC4yNDMsMTAuMjQzLDAsMCwxLS45NDksMS4xWm00LjY1LTcuODIxYTEwLjI2MSwxMC4yNjEsMCwwLDEsLjAyMiwxLjc3OUgyNS4xNjdjLS4xMDUsMC0uMTQ4LjA2OS0uMTQ4LjE3MnYuNDgzYzAsMS4xMzYtLjY0MSwxLjM4NC0xLjIsMS40NDctLjUzNS4wNi0xLjEyOC0uMjI0LTEuMi0uNTUxYTMuNjE2LDMuNjE2LDAsMCwwLTEuNjcxLTIuODA4YzEuMDMtLjY1NCwyLjEtMS42MTksMi4xLTIuOTExQTMuMjkyLDMuMjkyLDAsMCwwLDIxLjQ0LDkuOGE0LjU1OSw0LjU1OSwwLDAsMC0yLjItLjcyNEg4LjM2N0ExMC4yNDYsMTAuMjQ2LDAsMCwxLDE0LjEsNS44NGwxLjI4MiwxLjM0NGEuNzU4Ljc1OCwwLDAsMCwxLjA3Mi4wMjZoMGwxLjQzNC0xLjM3MmExMC4yNDgsMTAuMjQ4LDAsMCwxLDcuMDE1LDVsLS45ODIsMi4yMTdhLjc2MS43NjEsMCwwLDAsLjM4NiwxWm0yLjQ0OC4wMzYtLjAzMy0uMzQzLDEuMDExLS45NDNhLjQyLjQyLDAsMCwwLS4wMTMtLjU5NS40MjguNDI4LDAsMCwwLS4xMjEtLjA4MUwyOC4yLDEyLjQ4M2wtLjEtLjMzNC44MDYtMS4xMmEuNDIyLjQyMiwwLDAsMC0uMTMtLjU4MS40My40MywwLDAsMC0uMTMzLS4wNTVsLTEuMzYzLS4yMjItLjE2NC0uMzA2LjU3My0xLjI1N2EuNDE5LjQxOSwwLDAsMC0uMjM2LS41NDQuNDI2LjQyNiwwLDAsMC0uMTQ2LS4wMjlsLTEuMzgzLjA0OEwyNS43LDcuODE5bC4zMTgtMS4zNDdhLjQyMS40MjEsMCwwLDAtLjM0My0uNDg3LjQzNS40MzUsMCwwLDAtLjE0NCwwTDI0LjE4Myw2LjNsLS4yNjYtLjIxOUwyMy45NjYsNC43YS40MjEuNDIxLDAsMCwwLS40MzEtLjQxMS40MjYuNDI2LDAsMCwwLS4xNDEuMDI4bC0xLjI1Ny41NzMtLjMwNi0uMTY0LS4yMjItMS4zNjNhLjQyMS40MjEsMCwwLDAtLjUtLjMxOC40My40MywwLDAsMC0uMTMzLjA1NWwtMS4xMjEuODA2LS4zMzMtLjEtLjQ4My0xLjI5M2EuNDIxLjQyMSwwLDAsMC0uNTU1LS4yMTUuNDQyLjQ0MiwwLDAsMC0uMTIuMDhMMTcuNDE4LDMuMzlsLS4zNDMtLjAzM0wxNi4zNDcsMi4xOGEuNDIxLjQyMSwwLDAsMC0uNjg4LDBsLS43MjgsMS4xNzctLjM0My4wMzMtLjk0My0xLjAxMmEuNDIxLjQyMSwwLDAsMC0uNTk1LjAxNS40NDIuNDQyLDAsMCwwLS4wOC4xMkwxMi40ODMsMy44bC0uMzMzLjEtMS4xMi0uOGEuNDIyLjQyMiwwLDAsMC0uNTgxLjEzLjQzLjQzLDAsMCwwLS4wNTUuMTMzbC0uMjIyLDEuMzYzLS4zMDYuMTY0TDguNjA4LDQuMzE3YS40MjEuNDIxLDAsMCwwLS41NDQuMjM5LjQ0NC40NDQsMCwwLDAtLjAyOC4xNDRsLjA0OCwxLjM4M0w3LjgxOCw2LjMsNi40NzEsNS45ODRhLjQyMS40MjEsMCwwLDAtLjQ4Ny4zNDMuNDM1LjQzNSwwLDAsMCwwLC4xNDRMNi4zLDcuODE5bC0uMjE4LjI2NUw0LjcsOC4wMzZhLjQyMi40MjIsMCwwLDAtLjM4My41NzNMNC44OSw5Ljg2NmwtLjE2NC4zMDYtMS4zNjMuMjIyYS40Mi40MiwwLDAsMC0uMzE4LjUuNDMuNDMsMCwwLDAsLjA1NS4xMzNsLjgwNiwxLjEyLS4xLjMzNC0xLjI5My40ODNhLjQyMS40MjEsMCwwLDAtLjIxNS41NTUuNDE0LjQxNCwwLDAsMCwuMDgxLjEyMWwxLjAxMS45NDMtLjAzMy4zNDMtMS4xNzcuNzI4YS40MjEuNDIxLDAsMCwwLDAsLjY4OGwxLjE3Ny43MjguMDMzLjM0My0xLjAxMS45NDNhLjQyMS40MjEsMCwwLDAsLjAxNS41OTUuNDM2LjQzNiwwLDAsMCwuMTE5LjA4bDEuMjkzLjQ4My4xLjMzNEwzLjEsMjAuOTcyYS40MjEuNDIxLDAsMCwwLC4xMzEuNTgxLjQzLjQzLDAsMCwwLC4xMzMuMDU1bDEuMzYzLjIyMi4xNjQuMzA3LS41NzMsMS4yNTdhLjQyMi40MjIsMCwwLDAsLjI0LjU0NS40MzguNDM4LDAsMCwwLC4xNDMuMDI4bDEuMzgzLS4wNDguMjE5LjI2Ni0uMzE3LDEuMzQ4YS40Mi40MiwwLDAsMCwuMzQxLjQ4Ni40LjQsMCwwLDAsLjE0NiwwTDcuODE4LDI1LjdsLjI2Ni4yMThMOC4wMzUsMjcuM2EuNDE5LjQxOSwwLDAsMCwuNDI5LjQxLjQxMy40MTMsMCwwLDAsLjE0My0uMDI4bDEuMjU3LS41NzMuMzA2LjE2NC4yMjIsMS4zNjJhLjQyMS40MjEsMCwwLDAsLjUuMzE5LjQwNy40MDcsMCwwLDAsLjEzMy0uMDU1bDEuMTItLjgwNy4zMzQuMS40ODMsMS4yOTJhLjQyMi40MjIsMCwwLDAsLjU1Ni4yMTQuNDM2LjQzNiwwLDAsMCwuMTE5LS4wOGwuOTQzLTEuMDExLjM0My4wMzQuNzI4LDEuMTc3YS40MjIuNDIyLDAsMCwwLC41ODguMS40MTMuNDEzLDAsMCwwLC4xLS4xbC43MjgtMS4xNzcuMzQzLS4wMzQuOTQzLDEuMDExYS40MjEuNDIxLDAsMCwwLC41OTUtLjAxNS40MzYuNDM2LDAsMCwwLC4wOC0uMTE5bC40ODMtMS4yOTIuMzM0LS4xLDEuMTIuODA3YS40MjEuNDIxLDAsMCwwLC41ODEtLjEzMS40My40MywwLDAsMCwuMDU1LS4xMzNsLjIyMi0xLjM2Mi4zMDYtLjE2NCwxLjI1Ny41NzNhLjQyMS40MjEsMCwwLDAsLjU0NC0uMjM5LjQzOC40MzgsMCwwLDAsLjAyOC0uMTQzbC0uMDQ4LTEuMzg0LjI2NS0uMjE4LDEuMzQ3LjMxN2EuNDIxLjQyMSwwLDAsMCwuNDg3LS4zNC40NDcuNDQ3LDAsMCwwLDAtLjE0NkwyNS43LDI0LjE4M2wuMjE4LS4yNjYsMS4zODMuMDQ4YS40MjEuNDIxLDAsMCwwLC40MS0uNDMxLjQuNCwwLDAsMC0uMDI4LS4xNDJsLS41NzMtMS4yNTcuMTY0LS4zMDcsMS4zNjMtLjIyMmEuNDIxLjQyMSwwLDAsMCwuMzE5LS41LjQzNC40MzQsMCwwLDAtLjA1Ni0uMTM1bC0uODA2LTEuMTIuMS0uMzM0LDEuMjkzLS40ODNhLjQyLjQyLDAsMCwwLC4yMTUtLjU1NC40MTQuNDE0LDAsMCwwLS4wODEtLjEyMWwtMS4wMTEtLjk0My4wMzMtLjM0MywxLjE3Ny0uNzI4YS40MjEuNDIxLDAsMCwwLDAtLjY4OFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz5cIixcblx0fSxcblx0XCJTQVNcIjoge1xuXHRcdGNvbG91cjogXCIjMDAyYmI1XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTYuMDE4LDMwQTE0LDE0LDAsMSwxLDMwLDE2LjIsMTQsMTQsMCwwLDEsMTYuMDE4LDMwWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwMmJiNVxcXCIvPjxwYXRoIGQ9XFxcIk05LjE3LDIyLjYzYy4wMjYuMDYxLjA0Ni4xMjQuMDc3LjE4MywyLjIxNSw0LjIwNiw3LjczOCw0LjYxNiwxMC43NTYsMi40NTRhNi4wMTcsNi4wMTcsMCwwLDAsMS43MzEtOC41ODMsMTUuNywxNS43LDAsMCwwLTEuMzE4LTEuNzMxYy0uODgxLTEuMDY3LTEuNzU1LTIuMTQtMi42MzYtMy4yMDctLjM2Ni0uNDQzLS43NjctLjgzNS0xLjQxNi0uNjgzYTEuMzkzLDEuMzkzLDAsMCwwLS44MTYsMi4zMTFjLjg4OCwxLjEwNiwxLjgxOSwyLjE3NywyLjcsMy4yODZhMy44NzQsMy44NzQsMCwwLDEsLjU4OSw0LjQsNS40MjMsNS40MjMsMCwwLDEtNSwzLjEzNEE2LjYsNi42LDAsMCwxLDkuMTcsMjIuNjNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTIyLjQ5NCw5LjYwOWMuMDgtLjI0OC0uMDY2LS4zNy0uMTQxLS41MDlBNy40NzcsNy40NzcsMCwwLDAsMTIuNiw2LjIzN2MtMy4zLDEuNjMtNS4xLDUuMzUyLTIuNjM3LDkuMTQ3YTU2LjUzLDU2LjUzLDAsMCwwLDQuMTM1LDUuMTIsMS4wMTIsMS4wMTIsMCwwLDAsLjcwOS4zNDUsMS4zODQsMS4zODQsMCwwLDAsMS40MjgtLjc2NSwxLjI0NywxLjI0NywwLDAsMC0uMTczLTEuNTA3Yy0uODc2LTEuMDUxLTEuNzY5LTIuMDg4LTIuNjE1LTMuMTYyYTQuMTMsNC4xMywwLDAsMSwuMzIzLTUuNzcxQTYuMDU0LDYuMDU0LDAsMCwxLDE5Ljk4NCw4LjEzLDUuMTksNS4xOSwwLDAsMSwyMi40OTQsOS42MDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdH0sXG5cdFwiU2FzcyAoU2FzcylcIjoge1xuXHRcdGNvbG91cjogXCIjY2Q2Nzk5XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjYuMTEsMTcuNTcyYTUuOCw1LjgsMCwwLDAtMi41MzcuNTg4LDUuMzQ1LDUuMzQ1LDAsMCwxLS41NjgtMS4zMTQsMy41MywzLjUzLDAsMCwxLS4wNTEtMS4xLDkuODExLDkuODExLDAsMCwxLC4zMzItMS4xOTJjLS4wMDUtLjA1MS0uMDYxLS4yOTItLjYyNC0uM3MtMS4wNDguMTA3LTEuMS4yNTZhNi4xNzEsNi4xNzEsMCwwLDAtLjIzNS44MzQsMTkuNjg2LDE5LjY4NiwwLDAsMS0xLjcxMywzLjI5NCwzLjE4NiwzLjE4NiwwLDAsMS0uNDQtMi4wNjYsOS44MTEsOS44MTEsMCwwLDEsLjMzMi0xLjE5MmMtLjAwNS0uMDUxLS4wNjEtLjI5Mi0uNjI0LS4zcy0xLjA0OC4xMDctMS4xLjI1Ni0uMTE4LjUtLjIzNS44MzQtMS40ODMsMy4zODYtMS44NDEsNC4xNzNjLS4xODQuNC0uMzQzLjcyNi0uNDU1Ljk0NmgwYS4yMzMuMjMzLDAsMCwxLS4wMi4wNDFjLS4xLjE4OS0uMTUzLjI5Mi0uMTUzLjI5MnYuMDA1Yy0uMDc3LjEzOC0uMTU5LjI2Ni0uMi4yNjZhMS43MTEsMS43MTEsMCwwLDEsLjAxLS44NjljLjItMS4wNTkuNjktMi43MDUuNjg1LTIuNzYyLDAtLjAzMS4wOTItLjMxNy0uMzE3LS40NjVhLjUwOC41MDgsMCwwLDAtLjU3OC4xYy0uMDM2LDAtLjA2MS4wODctLjA2MS4wODdzLjQ0NS0xLjg1MS0uODQ5LTEuODUxYTMuODU1LDMuODU1LDAsMCwwLTIuNDc1LDEuNjgzYy0uMzQ4LjE4OS0xLjA4OS41OTMtMS44ODIsMS4wMjgtLjMuMTY5LS42MTQuMzM4LS45MDUuNS0uMDItLjAyLS4wNDEtLjA0Ni0uMDYxLS4wNjZDNi44NywxNy42LDMuOTc1LDE2LjQxNiw0LjEsMTQuMTcxYy4wNDYtLjgxOC4zMjctMi45NjYsNS41NTktNS41NzUsNC4zMDYtMi4xMjIsNy43MzMtMS41MzQsOC4zMjYtLjIzLjg0OSwxLjg2Mi0xLjgzNiw1LjMxOS02LjI4NSw1LjgyYTMuMzUxLDMuMzUxLDAsMCwxLTIuODEzLS43MTFjLS4yMzUtLjI1Ni0uMjcxLS4yNzEtLjM1OC0uMjItLjE0My4wNzctLjA1MS4zMDcsMCwuNDRhMi42MjYsMi42MjYsMCwwLDAsMS42MDYsMS4yNjMsOC41NSw4LjU1LDAsMCwwLDUuMjE3LS41MTdjMi43LTEuMDQzLDQuOC0zLjk0Myw0LjE4NC02LjM3Mi0uNjE5LTIuNDY1LTQuNzEtMy4yNzgtOC41ODItMS45QTE5LjUsMTkuNSwwLDAsMCw0LjM1OSw5Ljk1MmMtMi4xMzMsMS45OTUtMi40NywzLjcyOC0yLjMzMiw0LjQ1NS41LDIuNTc4LDQuMDUxLDQuMjU1LDUuNDcyLDUuNS0uMDcyLjA0MS0uMTM4LjA3Ny0uMTk0LjEwNy0uNzExLjM1My0zLjQyMSwxLjc3LTQuMSwzLjI2OC0uNzY3LDEuNy4xMjMsMi45MTUuNzExLDMuMDc5YTQuMzc0LDQuMzc0LDAsMCwwLDQuNzEtMS45MDhBNC43MjUsNC43MjUsMCwwLDAsOS4wNDksMjAuMWEuMTA3LjEwNywwLDAsMC0uMDItLjAzMWwuNTU3LS4zMjdjLjM2My0uMjE1LjcyMS0uNDE0LDEuMDI4LS41NzhhNi43NCw2Ljc0LDAsMCwwLS4zNjMsMS44NjIsMy44ODYsMy44ODYsMCwwLDAsLjgzNCwyLjcuOTIxLjkyMSwwLDAsMCwuNjc1LjIyYy42LDAsLjg3NS0uNSwxLjE3Ni0xLjA5NC4zNjgtLjcyNi43LTEuNTcuNy0xLjU3cy0uNDE0LDIuMjgxLjcxMSwyLjI4MWMuNDA5LDAsLjgyMy0uNTMyLDEuMDA4LS44di4wMDVzLjAxLS4wMTUuMDMxLS4wNTFsLjA2Ni0uMTA3di0uMDFjLjE2NC0uMjg2LjUzMi0uOTM2LDEuMDc5LTIuMDE1LjcwNi0xLjM5MSwxLjM4Ni0zLjEzLDEuMzg2LTMuMTNhOC44ODgsOC44ODgsMCwwLDAsLjI3MSwxLjEzLDEwLjY0MywxMC42NDMsMCwwLDAsLjU4MywxLjMwOWMtLjE2NC4yMy0uMjY2LjM1OC0uMjY2LjM1OGwuMDA1LjAwNWMtLjEzMy4xNzQtLjI3Ni4zNjMtLjQzNS41NDdhMTYuMywxNi4zLDAsMCwwLTEuMzE0LDEuNjQ3LjQ0Ny40NDcsMCwwLDAsLjEyMy42LDEuMTE2LDEuMTE2LDAsMCwwLC42ODUuMTEzLDMuMTQ3LDMuMTQ3LDAsMCwwLDEuMDI4LS4yMzUsMy40NSwzLjQ1LDAsMCwwLC44ODUtLjQ2NSwxLjk4LDEuOTgsMCwwLDAsLjg0OS0xLjc0NCwzLjUyMSwzLjUyMSwwLDAsMC0uMzIyLTEuMjMzYy4wNTEtLjA3Mi4xLS4xNDMuMTQ4LS4yMTVhMjMuNDI4LDIzLjQyOCwwLDAsMCwxLjUzNC0yLjY0OSw4Ljg4OCw4Ljg4OCwwLDAsMCwuMjcxLDEuMTMsNy41Nyw3LjU3LDAsMCwwLC41LDEuMTI1QTQuODYxLDQuODYxLDAsMCwwLDIwLjk2NSwyMC44Yy0uMzIyLjkzMS0uMDcyLDEuMzUuNCwxLjQ0N2ExLjQyNSwxLjQyNSwwLDAsMCwuNzQ3LS4xNTMsMy40LDMuNCwwLDAsMCwuOTQ2LS40ODYsMi4xMjYsMi4xMjYsMCwwLDAsMS4wNDMtMS43MjksMy4yNjgsMy4yNjgsMCwwLDAtLjIzNS0xLjAyMyw1LjM1Niw1LjM1NiwwLDAsMSwyLjcxNi0uMzEyYzIuNDM0LjI4NiwyLjkxNSwxLjgwNSwyLjgyMywyLjQ0NWExLjYxOCwxLjYxOCwwLDAsMS0uNzcyLDEuMDk0Yy0uMTY5LjEwNy0uMjI1LjE0My0uMjEuMjIuMDIuMTEzLjEuMTA3LjI0NS4wODdBMS45LDEuOSwwLDAsMCwzMCwyMC43Yy4wNzctMS41LTEuMzU1LTMuMTQ1LTMuODg3LTMuMTNaTTcuMzMsMjMuOWMtLjgwOC44OC0xLjkzMywxLjIxMi0yLjQxOS45MzEtLjUyMi0uMy0uMzE3LTEuNi42NzUtMi41MzJhMTIuODg0LDEyLjg4NCwwLDAsMSwxLjktMS40MTdjLjExOC0uMDcyLjI5Mi0uMTc0LjUtLjNsLjA1Ni0uMDMxaDBsLjEyMy0uMDc3QTMuNDkzLDMuNDkzLDAsMCwxLDcuMzMsMjMuOVptNS44ODEtNGMtLjI4MS42ODUtLjg2OSwyLjQ0LTEuMjI3LDIuMzQyLS4zMDctLjA4Mi0uNS0xLjQxMi0uMDYxLTIuNzI2YTYuMTkzLDYuMTkzLDAsMCwxLC45NTYtMS43NTRjLjQ0LS40OTEuOTI2LS42NTUsMS4wNDMtLjQ1NWE5LjA2Miw5LjA2MiwwLDAsMS0uNzExLDIuNTkzWm00Ljg1MywyLjMyMmMtLjExOC4wNjEtLjIzLjEtLjI4MS4wNzItLjAzNi0uMDIuMDUxLS4xLjA1MS0uMXMuNjA5LS42NTUuODQ5LS45NTFjLjEzOC0uMTc0LjMtLjM3OC40NzYtLjYwOVYyMC43YzAsLjc4Mi0uNzU3LDEuMzA5LTEuMDk0LDEuNTI0Wm0zLjc0NC0uODU0Yy0uMDg3LS4wNjEtLjA3Mi0uMjY2LjIyLS45MDVhMy40MDgsMy40MDgsMCwwLDEsLjgzNC0xLjA3NCwxLjQ0OCwxLjQ0OCwwLDAsMSwuMDgyLjQ3MSwxLjU0NywxLjU0NywwLDAsMS0xLjEzNSwxLjUwOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZDY3OTlcXFwiLz5cIixcblx0fSxcblx0XCJTYXNzIChTQ1NTKVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNjZDY3OTlcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xNi4xNzEsMTguN2MtLjQ4MS4yMjEtMS4wMDguNTA5LTIuMDYzLDEuMDg4LS40LjIyNS0uODE4LjQ1LTEuMjA3LjY2Mi0uMDI3LS4wMjctLjA1NS0uMDYxLS4wODItLjA4OS0yLjA4Ny0yLjIzLTUuOTQ3LTMuODA1LTUuNzgzLTYuOC4wNjEtMS4wOTEuNDM2LTMuOTU1LDcuNDEzLTcuNDMzLDUuNzQyLTIuODMsMTAuMzExLTIuMDQ2LDExLjEtLjMwN0MyNi42ODMsOC4zLDIzLjEsMTIuOTEzLDE3LjE3LDEzLjU4MmE0LjQ2OSw0LjQ2OSwwLDAsMS0zLjc1MS0uOTQ4Yy0uMzE0LS4zNDEtLjM2MS0uMzYxLS40NzctLjI5My0uMTkxLjEtLjA2OC40MDksMCwuNTg2YTMuNSwzLjUsMCwwLDAsMi4xNDEsMS42ODQsMTEuNCwxMS40LDAsMCwwLDYuOTU2LS42ODljMy41OTQtMS4zOTEsNi40LTUuMjU4LDUuNTc4LTguNS0uODI1LTMuMjg3LTYuMjgxLTQuMzcxLTExLjQ0My0yLjUzN2EyNiwyNiwwLDAsMC04Ljc5LDUuMDQ3Yy0yLjg0NCwyLjY2LTMuMjk0LDQuOTcyLTMuMTEsNS45NC42NjIsMy40MzcsNS40LDUuNjc0LDcuMyw3LjMzMS0uMS4wNTUtLjE4NC4xLS4yNTkuMTQzLS45NDguNDcxLTQuNTYyLDIuMzYtNS40NjMsNC4zNTgtMS4wMjMsMi4yNjQuMTY0LDMuODg3Ljk0OCw0LjEwNWE1LjgzMiw1LjgzMiwwLDAsMCw2LjI4MS0yLjU0NCw2LjMsNi4zLDAsMCwwLC41NTktNS44LDUuMDMsNS4wMywwLDAsMSwuNzE2LS40NzdjLjQ4NC0uMjg2Ljk0NS0uNTY4LDEuMzU0LS43ODZsMCwwYTEwLjQ3NSwxMC40NzUsMCwwLDEsNC40NzUtLjk4OWMzLjI0Ni4zODIsMy44ODcsMi40MDcsMy43NjQsMy4yNmEyLjE1NywyLjE1NywwLDAsMS0xLjAzLDEuNDU5Yy0uMjI1LjE0My0uMy4xOTEtLjI4LjI5My4wMjcuMTUuMTM2LjE0My4zMjcuMTE2YTIuNTM1LDIuNTM1LDAsMCwwLDEuNzY2LTIuMjU3Yy4xLTItMS44MDctNC4xOTQtNS4xODMtNC4xNzRhNy43NTMsNy43NTMsMCwwLDAtMi45NDYuNTg3cS0uMjI1LjA5My0uNDM3LjJabS00LjgyNSw3LjgzOWMtMS4wNzgsMS4xNzMtMi41NzgsMS42MTYtMy4yMjYsMS4yNDEtLjctLjQtLjQyMy0yLjEzNS45LTMuMzc2YTE3LjE4LDE3LjE4LDAsMCwxLDIuNTMtMS44ODljLjE1Ny0uMS4zODktLjIzMi42NjgtLjQuMDQ4LS4wMjcuMDc1LS4wNDEuMDc1LS4wNDFsLjE2NC0uMUE0LjY1OCw0LjY1OCwwLDAsMSwxMS4zNDYsMjYuNTM5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NkNjc5OVxcXCIvPlwiLFxuXHR9LFxuXHRcIlNjYWxhXCI6IHtcblx0XHRjb2xvdXI6IFwiI2U2MmQyYVwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTEzNC45MDdcXFwiIHkxPVxcXCIyMDQuNTcyXFxcIiB4Mj1cXFwiLTEzNC44OTZcXFwiIHkyPVxcXCIyMDQuNTcyXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDE1MzgsIDAsIDAsIC05NjEuMjUsIDIwNzQ5NSwgMTk2NjYxKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2U2MmQyYVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42XFxcIiBzdG9wLWNvbG9yPVxcXCIjZGYzZjNkXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjhcXFwiIHN0b3AtY29sb3I9XFxcIiNkZjNmM2RcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNlNjJkMmFcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIi0xMzQuOTA3XFxcIiB5MT1cXFwiMjAzLjc4MVxcXCIgeDI9XFxcIi0xMzQuODk2XFxcIiB5Mj1cXFwiMjAzLjc4MVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxNTM4LCAwLCAwLCAtOTYxLjI1LCAyMDc0OTUsIDE5NTg5MilcXFwiIHhsaW5rOmhyZWY9XFxcIiNhXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJjXFxcIiB4MT1cXFwiLTEzNC45MDdcXFwiIHkxPVxcXCIyMDUuMzYzXFxcIiB4Mj1cXFwiLTEzNC44OTZcXFwiIHkyPVxcXCIyMDUuMzYzXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDE1MzgsIDAsIDAsIC05NjEuMjUsIDIwNzQ5NSwgMTk3NDMwKVxcXCIgeGxpbms6aHJlZj1cXFwiI2FcXFwiLz48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9zY2FsYTwvdGl0bGU+PHBhdGggZD1cXFwiTTcuMzg0LDE5LjIzMXYyLjE1NGMwLC4zNjMsNy44MzMuOTcxLDEyLjkzNywyLjE1NCwyLjQ2NS0uNTcxLDQuMjk1LTEuMjc3LDQuMjk1LTIuMTU0VjE5LjIzMWMwLS44NzctMS44My0xLjU4Mi00LjI5NS0yLjE1NC01LjEsMS4xODMtMTIuOTM3LDEuNzkxLTEyLjkzNywyLjE1NFxcXCIgc3R5bGU9XFxcImZpbGw6IzdmMGMxZFxcXCIvPjxwYXRoIGQ9XFxcIk03LjM4NCwxMC42MTV2Mi4xNTRjMCwuMzYzLDcuODMzLjk3MSwxMi45MzcsMi4xNTQsMi40NjUtLjU3MSw0LjI5NS0xLjI3Nyw0LjI5NS0yLjE1NFYxMC42MTVjMC0uODc3LTEuODMtMS41ODItNC4yOTUtMi4xNTQtNS4xLDEuMTgzLTEyLjkzNywxLjc5MS0xMi45MzcsMi4xNTRcXFwiIHN0eWxlPVxcXCJmaWxsOiM3ZjBjMWRcXFwiLz48cGF0aCBkPVxcXCJNNy4zODQsMTQuOTIzdjYuNDYyYzAtLjUzOCwxNy4yMzItMS42MTUsMTcuMjMyLTQuMzA4VjEwLjYxNWMwLDIuNjkyLTE3LjIzMiwzLjc2OS0xNy4yMzIsNC4zMDhcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNNy4zODQsNi4zMDhWMTIuNzdjMC0uNTM4LDE3LjIzMi0xLjYxNSwxNy4yMzItNC4zMDhWMmMwLDIuNjkyLTE3LjIzMiwzLjc2OS0xNy4yMzIsNC4zMDhcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNNy4zODQsMjMuNTM4VjMwYzAtLjUzOCwxNy4yMzItMS42MTUsMTcuMjMyLTQuMzA4VjE5LjIzMWMwLDIuNjkyLTE3LjIzMiwzLjc2OS0xNy4yMzIsNC4zMDhcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYylcXFwiLz5cIixcblx0fSxcblx0XCJTaGVsbCBzZXNzaW9uXCI6IHtcblx0XHRjb2xvdXI6IFwiI2Q5YjQwMFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTI5LjQsMjcuNkgyLjVWNC41SDI5LjRabS0yNS45LTFIMjguNFY1LjVIMy41WlxcXCIgc3R5bGU9XFxcImZpbGw6I2Q5YjQwMFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNi4wNzcgMTkuMzE2IDUuNTIyIDE4LjQ4NCAxMC4zNjYgMTUuMjU1IDUuNDc5IDExLjE4NCA2LjEyIDEwLjQxNiAxMi4wMzUgMTUuMzQ0IDYuMDc3IDE5LjMxNlxcXCIgc3R5bGU9XFxcImZpbGw6I2Q5YjQwMFxcXCIvPjxyZWN0IHg9XFxcIjEyLjdcXFwiIHk9XFxcIjE4LjJcXFwiIHdpZHRoPVxcXCI3LjhcXFwiIGhlaWdodD1cXFwiMVxcXCIgc3R5bGU9XFxcImZpbGw6I2Q5YjQwMFxcXCIvPjxyZWN0IHg9XFxcIjIuNVxcXCIgeT1cXFwiNS41XFxcIiB3aWR0aD1cXFwiMjYuOVxcXCIgaGVpZ2h0PVxcXCIxLjlcXFwiIHN0eWxlPVxcXCJmaWxsOiNkOWI0MDBcXFwiLz5cIixcblx0fSxcblx0XCJTaGVsbFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNkOWI0MDBcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yOS40LDI3LjZIMi41VjQuNUgyOS40Wm0tMjUuOS0xSDI4LjRWNS41SDMuNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkOWI0MDBcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjYuMDc3IDE5LjMxNiA1LjUyMiAxOC40ODQgMTAuMzY2IDE1LjI1NSA1LjQ3OSAxMS4xODQgNi4xMiAxMC40MTYgMTIuMDM1IDE1LjM0NCA2LjA3NyAxOS4zMTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNkOWI0MDBcXFwiLz48cmVjdCB4PVxcXCIxMi43XFxcIiB5PVxcXCIxOC4yXFxcIiB3aWR0aD1cXFwiNy44XFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiNkOWI0MDBcXFwiLz48cmVjdCB4PVxcXCIyLjVcXFwiIHk9XFxcIjUuNVxcXCIgd2lkdGg9XFxcIjI2LjlcXFwiIGhlaWdodD1cXFwiMS45XFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+XCIsXG5cdH0sXG5cdFwiU21hcnR5XCI6IHtcblx0XHRjb2xvdXI6IFwiI2Y2ZTIwMFwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMTMuODU5XFxcIiB5MT1cXFwiMjkuMjE5XFxcIiB4Mj1cXFwiMTguMTA2XFxcIiB5Mj1cXFwiMjkuMjE5XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwLjAzNFxcXCIgc3RvcC1jb2xvcj1cXFwiIzYzNjM2MVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xNzhcXFwiIHN0b3AtY29sb3I9XFxcIiM2YzZkNzBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjE5XFxcIiBzdG9wLWNvbG9yPVxcXCIjNmY3MTc1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjMwOVxcXCIgc3RvcC1jb2xvcj1cXFwiIzYxNjM2NlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40ODFcXFwiIHN0b3AtY29sb3I9XFxcIiMzYzNkM2ZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzE2XFxcIiBzdG9wLWNvbG9yPVxcXCIjMDEwMTAxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjcxOVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzYzNmE2ZVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiMTUuMTc4XFxcIiB5MT1cXFwiMjkuNzM0XFxcIiB4Mj1cXFwiMTYuNzg3XFxcIiB5Mj1cXFwiMjkuNzM0XFxcIiB4bGluazpocmVmPVxcXCIjYVxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIjE1LjI3N1xcXCIgeTE9XFxcIjI5Ljg4MVxcXCIgeDI9XFxcIjE2LjY4OFxcXCIgeTI9XFxcIjI5Ljg4MVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMC4wMzRcXFwiIHN0b3AtY29sb3I9XFxcIiM5YjliOThcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMTMxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTRhNWE3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjIxOVxcXCIgc3RvcC1jb2xvcj1cXFwiI2FlYjFiOFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zNTJcXFwiIHN0b3AtY29sb3I9XFxcIiM5ZmE0YWJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjA1XFxcIiBzdG9wLWNvbG9yPVxcXCIjNzg4MTg4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjcxOVxcXCIgc3RvcC1jb2xvcj1cXFwiIzY1NzA3NlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzhiOTQ5YVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJkXFxcIiBjeD1cXFwiLTguNDU2XFxcIiBjeT1cXFwiLTE2LjYxNlxcXCIgcj1cXFwiMTkuMzgzXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDM0LjA0MiAzNy4wNjMpIHNjYWxlKDEuMDU0KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMC4wMzRcXFwiIHN0b3AtY29sb3I9XFxcIiM3MDcwNmVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMTEyXFxcIiBzdG9wLWNvbG9yPVxcXCIjNjE2MjYxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjIxOVxcXCIgc3RvcC1jb2xvcj1cXFwiIzQ2NDc0YVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40MDhcXFwiIHN0b3AtY29sb3I9XFxcIiM0ODQ5NGNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDg3XFxcIiBzdG9wLWNvbG9yPVxcXCIjNGU1MDUzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU0NFxcXCIgc3RvcC1jb2xvcj1cXFwiIzVhNWM1ZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41OTJcXFwiIHN0b3AtY29sb3I9XFxcIiM2YTZlNzFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjMzXFxcIiBzdG9wLWNvbG9yPVxcXCIjN2Y4NTg4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjY2N1xcXCIgc3RvcC1jb2xvcj1cXFwiIzk3OWVhMVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43MTlcXFwiIHN0b3AtY29sb3I9XFxcIiMzZDQ0NDdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM2NTZjNzBcXFwiLz48L3JhZGlhbEdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZVxcXCIgeDE9XFxcIjE2LjEyNlxcXCIgeTE9XFxcIjI4LjEwOFxcXCIgeDI9XFxcIjE2LjA1XFxcIiB5Mj1cXFwiMjYuODkzXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwLjAzNFxcXCIgc3RvcC1jb2xvcj1cXFwiIzliOWI5OFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xMDlcXFwiIHN0b3AtY29sb3I9XFxcIiNhNWE2YTdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjE5XFxcIiBzdG9wLWNvbG9yPVxcXCIjYmFiY2M0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjMxMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2FiYWViNVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40ODdcXFwiIHN0b3AtY29sb3I9XFxcIiM4NDg5OGZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzE5XFxcIiBzdG9wLWNvbG9yPVxcXCIjNDg1MDU0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjOGI5NDlhXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImZcXFwiIHgxPVxcXCIxNi4wMTNcXFwiIHkxPVxcXCIyNi41NDJcXFwiIHgyPVxcXCIxNS44OTVcXFwiIHkyPVxcXCIyNC42MzVcXFwiIHhsaW5rOmhyZWY9XFxcIiNlXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJnXFxcIiB4MT1cXFwiMTYuMDIzXFxcIiB5MT1cXFwiMjUuNTQ2XFxcIiB4Mj1cXFwiMTUuODg3XFxcIiB5Mj1cXFwiMjMuMzU1XFxcIiB4bGluazpocmVmPVxcXCIjZVxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiaFxcXCIgeDE9XFxcIjE2LjAxM1xcXCIgeTE9XFxcIjI3LjYyN1xcXCIgeDI9XFxcIjE1Ljg5NVxcXCIgeTI9XFxcIjI1LjcyXFxcIiB4bGluazpocmVmPVxcXCIjZVxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwialxcXCIgeDE9XFxcIjEzLjY4XFxcIiB5MT1cXFwiMjguODA1XFxcIiB4Mj1cXFwiMTguMjg0XFxcIiB5Mj1cXFwiMjguODA1XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwLjAzNFxcXCIgc3RvcC1jb2xvcj1cXFwiIzU0NTQ1M1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4wNzFcXFwiIHN0b3AtY29sb3I9XFxcIiM2MTYyNjJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMTQzXFxcIiBzdG9wLWNvbG9yPVxcXCIjODQ4NTg5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjIxOVxcXCIgc3RvcC1jb2xvcj1cXFwiI2FlYjFiOFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zNTJcXFwiIHN0b3AtY29sb3I9XFxcIiM5ZmE0YWJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjA1XFxcIiBzdG9wLWNvbG9yPVxcXCIjNzg4MTg4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjcxOVxcXCIgc3RvcC1jb2xvcj1cXFwiIzY1NzA3NlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzUwNTY1OVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJrXFxcIiB4MT1cXFwiMTIuMTU5XFxcIiB5MT1cXFwiMjUuODEzXFxcIiB4Mj1cXFwiMTkuNDc1XFxcIiB5Mj1cXFwiMjUuODEzXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZTVlMWRmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZGRkYWQ2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjAzOFxcXCIgc3RvcC1jb2xvcj1cXFwiI2NlY2NjOVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xMTJcXFwiIHN0b3AtY29sb3I9XFxcIiNhN2E5YThcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjEyXFxcIiBzdG9wLWNvbG9yPVxcXCIjNjk3MDcyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjI2NFxcXCIgc3RvcC1jb2xvcj1cXFwiIzQ2NTA1NFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zMDNcXFwiIHN0b3AtY29sb3I9XFxcIiM2MzZjNmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzk4XFxcIiBzdG9wLWNvbG9yPVxcXCIjYTVhYWFjXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQ3OFxcXCIgc3RvcC1jb2xvcj1cXFwiI2Q1ZDdkOVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41MzlcXFwiIHN0b3AtY29sb3I9XFxcIiNmM2Y0ZjVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNTczXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmVmZWZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjYyXFxcIiBzdG9wLWNvbG9yPVxcXCIjZjRmNWY2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjY5OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2RhZGNkZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44XFxcIiBzdG9wLWNvbG9yPVxcXCIjYjBiNGI5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjg3NlxcXCIgc3RvcC1jb2xvcj1cXFwiIzhiOTI5OFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2QxZDNkNFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E3YTlhY1xcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJsXFxcIiB4MT1cXFwiMTIuMTU5XFxcIiB5MT1cXFwiMjQuNzI4XFxcIiB4Mj1cXFwiMTkuNDc1XFxcIiB5Mj1cXFwiMjQuNzI4XFxcIiB4bGluazpocmVmPVxcXCIja1xcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwibVxcXCIgeDE9XFxcIjEyLjE1OVxcXCIgeTE9XFxcIjIzLjU0OFxcXCIgeDI9XFxcIjE5LjQ3NVxcXCIgeTI9XFxcIjIzLjU0OFxcXCIgeGxpbms6aHJlZj1cXFwiI2tcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcIm5cXFwiIHgxPVxcXCIxMi4xNTlcXFwiIHkxPVxcXCIyNi44OThcXFwiIHgyPVxcXCIxOS40NzVcXFwiIHkyPVxcXCIyNi44OThcXFwiIHhsaW5rOmhyZWY9XFxcIiNrXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJvXFxcIiB4MT1cXFwiMTIuMTU5XFxcIiB5MT1cXFwiMjUuOTY3XFxcIiB4Mj1cXFwiMTkuNDc1XFxcIiB5Mj1cXFwiMjUuOTY3XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZTVlMWRmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZGRlOGQwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZDJmM2JhXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjAzNlxcXCIgc3RvcC1jb2xvcj1cXFwiI2M1ZTRiMVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xMDVcXFwiIHN0b3AtY29sb3I9XFxcIiNhNGJkOThcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMTk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjNmU3ZjcxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjI2NFxcXCIgc3RvcC1jb2xvcj1cXFwiIzQ2NTA1NFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zMDNcXFwiIHN0b3AtY29sb3I9XFxcIiM2MzZjNmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzk4XFxcIiBzdG9wLWNvbG9yPVxcXCIjYTVhYWFjXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQ3OFxcXCIgc3RvcC1jb2xvcj1cXFwiI2Q1ZDdkOVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41MzlcXFwiIHN0b3AtY29sb3I9XFxcIiNmM2Y0ZjVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNTczXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmVmZWZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjYyXFxcIiBzdG9wLWNvbG9yPVxcXCIjZjRmNWY2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjY5OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2RhZGNkZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44XFxcIiBzdG9wLWNvbG9yPVxcXCIjYjBiNGI5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjg3NlxcXCIgc3RvcC1jb2xvcj1cXFwiIzhiOTI5OFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2QxZDNkNFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E3YTlhY1xcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJwXFxcIiB4MT1cXFwiMTIuMTU5XFxcIiB5MT1cXFwiMjQuODgzXFxcIiB4Mj1cXFwiMTkuNDc1XFxcIiB5Mj1cXFwiMjQuODgzXFxcIiB4bGluazpocmVmPVxcXCIjb1xcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwicVxcXCIgeDE9XFxcIjEyLjE1OVxcXCIgeTE9XFxcIjI3LjA1XFxcIiB4Mj1cXFwiMTkuNDc1XFxcIiB5Mj1cXFwiMjcuMDVcXFwiIHhsaW5rOmhyZWY9XFxcIiNvXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJyXFxcIiB4MT1cXFwiMTEuOTAyXFxcIiB5MT1cXFwiMjMuMjAxXFxcIiB4Mj1cXFwiMTkuODg0XFxcIiB5Mj1cXFwiMjMuMjAxXFxcIiB4bGluazpocmVmPVxcXCIjZVxcXCIvPjxyYWRpYWxHcmFkaWVudCBpZD1cXFwic1xcXCIgY3g9XFxcIi0xNi45ODNcXFwiIGN5PVxcXCItMjIuOTQ4XFxcIiByPVxcXCIxMC43MThcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoMzQuMDQyIDM3LjA2Mykgc2NhbGUoMS4wNTQpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmZmQxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjUwNVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41NjhcXFwiIHN0b3AtY29sb3I9XFxcIiNmZGY3MDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjY0XFxcIiBzdG9wLWNvbG9yPVxcXCIjZjZlMjAwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjc4MlxcXCIgc3RvcC1jb2xvcj1cXFwiI2ViYmYwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45MDZcXFwiIHN0b3AtY29sb3I9XFxcIiNkZTkyMDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNkYTk4MTlcXFwiLz48L3JhZGlhbEdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3NtYXJ0eTwvdGl0bGU+PHBhdGggZD1cXFwiTTEzLjg1OSwyOC43NzZhLjI0Mi4yNDIsMCwwLDAsLjEyOC4xOTEsMTIsMTIsMCwwLDAsMS4zOTIuNjIyLDQuMyw0LjMsMCwwLDAsLjU3OC4wNzJoLjA1MmE0LjMsNC4zLDAsMCwwLC41NzgtLjA3MiwxMi4wMTQsMTIuMDE0LDAsMCwwLDEuMzkyLS42MjIuMjQzLjI0MywwLDAsMCwuMTI4LS4xOTFsLTIuMTM3LjE5MlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMTYuMDE0LDMwYTEuMTIzLDEuMTIzLDAsMCwwLC42ODgtLjI0Ny4xNzUuMTc1LDAsMCwwLC4wODUtLjEyNnYtLjEwNWEzLjIzNSwzLjIzNSwwLDAsMC0uNzczLS4wNTNoLS4wNjNhMy4yMzcsMy4yMzcsMCwwLDAtLjc3My4wNTN2LjEwNWEuMTc1LjE3NSwwLDAsMCwuMDg1LjEyNiwxLjEyMiwxLjEyMiwwLDAsMCwuNjg4LjI0N1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMTUuOTUxLDI5LjgwN2E0LjczMiw0LjczMiwwLDAsMS0uNjc0LS4wNDQsMS4xMDUsMS4xMDUsMCwwLDAsLjY3NC4yMzdoLjA2M2ExLjEwNiwxLjEwNiwwLDAsMCwuNjc1LS4yMzcsNC43MzMsNC43MzMsMCwwLDEtLjY3NS4wNDRaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTE5LjgwOSwyNi44MzhhMSwxLDAsMCwwLS4yMzQuMzg5Yy0uMDM2LjE4MS0uMS41ODUtMS4zMjYsMS40MDZsLS4wMjUuMDE3YS40MzUuNDM1LDAsMCwxLS4wODYuMDM3LDkuOTY4LDkuOTY4LDAsMCwxLTIuMTU1LjIwOSw5Ljk2OCw5Ljk2OCwwLDAsMS0yLjE1Ni0uMjA5LjQzNi40MzYsMCwwLDEtLjA4NS0uMDM2bC0uMDI1LS4wMTdhNC41NzksNC41NzksMCwwLDEtMS4xMi0uOTU3Yy0uMTY0LS4yMTktLjM3My0uMjU3LS4zOS0uMzQ1YTIxLjA1NSwyMS4wNTUsMCwwLDAsMy44NTUuMDU3LDEzLjA0OSwxMy4wNDksMCwwLDAsMy43NjEtLjY1NEEuNjkyLjY5MiwwLDAsMSwxOS44MDksMjYuODM4WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNkKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS43NzIsMjYuODhhLjk4NS45ODUsMCwwLDEtLjI0Ni4xMjljLS4wNzYuMDI4LS4yNDUuMDc4LS4yNDUuMDc4YTI1LjE1LDI1LjE1LDAsMCwxLTYuNDU4LjQzNmMtLjEzNi0uMDA5LS4zMi0uMDI4LS4zMi0uMDI4YTEuMDYyLDEuMDYyLDAsMCwxLS4xNC0uMDI4LDEuMDE2LDEuMDE2LDAsMCwxLC4xNC4xMDdjLjE2LjAxMy4zMTkuMDE5LjMxOS4wMTlhMjYuODY0LDI2Ljg2NCwwLDAsMCw2Ljc0My0uMzIzbC4wMDktLjA0MkEuODg1Ljg4NSwwLDAsMSwxOS43NzIsMjYuODhaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2UpXFxcIi8+PHBhdGggZD1cXFwiTTE5LjQzOSwyNS4zODJzLjI0NS0uMDcuMjQ1LS4xNjJhLjExNC4xMTQsMCwwLDAtLjAxMy0uMDY1LjIxNC4yMTQsMCwwLDEtLjA2MS0uMTQ0LjQzNy40MzcsMCwwLDEsLjExOS0uMjcsMS4wNjksMS4wNjksMCwwLDEtLjIuMWMtLjA3Ni4wMjgtLjI0NS4wNzgtLjI0NS4wNzhhMjUuMTUxLDI1LjE1MSwwLDAsMS02LjQ1OC40MzZjLS4xMzYtLjAwOS0uMzItLjAyOC0uMzItLjAyOGExLjA1NSwxLjA1NSwwLDAsMS0uMTgxLS4wNDEuMzc3LjM3NywwLDAsMSwuMDc4LjIxNy43MTYuNzE2LDAsMCwxLS4yNTQuNDMyLjY3My42NzMsMCwwLDEsLjM2OC0uMDc5QTI2LjIsMjYuMiwwLDAsMCwxOS40MzksMjUuMzgyWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNmKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS40MzksMjQuMjI5cy4yNDUtLjA3OC4yNDUtLjE4MmEuMTQzLjE0MywwLDAsMC0uMDEzLS4wNzMuMjU0LjI1NCwwLDAsMS0uMDYxLS4xNjIuNTE0LjUxNCwwLDAsMSwuMTE5LS4zLDEuMDI2LDEuMDI2LDAsMCwxLS4yLjExMWMtLjA3Ni4wMzItLjI0NS4wODgtLjI0NS4wODhhMjIuNTA3LDIyLjUwNywwLDAsMS02LjQ1OC40ODljLS4xMzYtLjAxLS4zMi0uMDMyLS4zMi0uMDMyYS45NTMuOTUzLDAsMCwxLS4xODEtLjA0Ni40NTUuNDU1LDAsMCwxLC4wNzguMjQzLjgyNS44MjUsMCwwLDEtLjI1NC40ODQuNjE0LjYxNCwwLDAsMSwuMzY4LS4wODlDMTMuMDE0LDI0Ljc1OCwxNi45MzUsMjUuMDQxLDE5LjQzOSwyNC4yMjlaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2cpXFxcIi8+PHBhdGggZD1cXFwiTTE5LjQzOSwyNi40NjdzLjI0NS0uMDcuMjQ1LS4xNjNhLjExNS4xMTUsMCwwLDAtLjAxMy0uMDY1LjIxNC4yMTQsMCwwLDEtLjA2MS0uMTQ0LjQzNS40MzUsMCwwLDEsLjExOS0uMjcsMS4wNywxLjA3LDAsMCwxLS4yLjFjLS4wNzYuMDI4LS4yNDUuMDc4LS4yNDUuMDc4YTI1LjE2MiwyNS4xNjIsMCwwLDEtNi40NTguNDM2Yy0uMTM2LS4wMDktLjMyLS4wMjgtLjMyLS4wMjhhMS4wNDIsMS4wNDIsMCwwLDEtLjE4MS0uMDQxLjM3Ny4zNzcsMCwwLDEsLjA3OC4yMTcuNzE3LjcxNywwLDAsMS0uMjU0LjQzMi42Ny42NywwLDAsMSwuMzY4LS4wNzlBMjYuMjA3LDI2LjIwNywwLDAsMCwxOS40MzksMjYuNDY3WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNoKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS40MzksMjYuNDY3cy4yNDUtLjA3LjI0NS0uMTYzYS4xMTUuMTE1LDAsMCwwLS4wMTMtLjA2NS4yMTQuMjE0LDAsMCwxLS4wNjEtLjE0NC40MzUuNDM1LDAsMCwxLC4xMTktLjI3LDEuMDcsMS4wNywwLDAsMS0uMi4xYy0uMDc2LjAyOC0uMjQ1LjA3OC0uMjQ1LjA3OGEyNS4xNjgsMjUuMTY4LDAsMCwxLTYuNDU4LjQzNmMtLjEzNi0uMDA5LS4zMi0uMDI4LS4zMi0uMDI4YTEuMDQyLDEuMDQyLDAsMCwxLS4xODEtLjA0MS4zNzYuMzc2LDAsMCwxLC4wNzguMjE3LjcxNy43MTcsMCwwLDEtLjI1NC40MzIuNjcuNjcsMCwwLDEsLjM2OC0uMDc5QTI2LjIwNywyNi4yMDcsMCwwLDAsMTkuNDM5LDI2LjQ2N1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaClcXFwiLz48cGF0aCBkPVxcXCJNMTguMjI0LDI4LjY1YS40MzUuNDM1LDAsMCwxLS4wODYuMDM3LDkuOTY4LDkuOTY4LDAsMCwxLTIuMTU1LjIwOSw5Ljk2OCw5Ljk2OCwwLDAsMS0yLjE1Ni0uMjA5LjQzNi40MzYsMCwwLDEtLjA4NS0uMDM2bC0uMDI1LS4wMTctLjAyOS0uMDE5YS4xMTIuMTEyLDAsMCwwLDAsLjA3M2MuMDI0LjA3My4xNDcuMS4xNDcuMWE5Ljk0Myw5Ljk0MywwLDAsMCwyLjE1LjIwOSw5Ljk0Miw5Ljk0MiwwLDAsMCwyLjE1LS4yMDlzLjEyNi0uMDI5LjE0Ny0uMWEuMTE4LjExOCwwLDAsMCwwLS4wNzNsLS4wMjkuMDE5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNqKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS45NDQsMjUuNXMuMDQxLjI1Mi0uNDE4LjQyM2MtLjA3Ni4wMjgtLjI0NS4wNzgtLjI0NS4wNzhhMjUuMTYyLDI1LjE2MiwwLDAsMS02LjQ1OC40MzZjLS4xMzYtLjAwOS0uMzItLjAyOC0uMzItLjAyOC0uMjc2LS4wMzgtLjQ2Ny0uMTYtLjQ1NS0uMzA4LDAsMC0uMDMzLS4yNDkuNDY2LS4yNDlhMjYuMiwyNi4yLDAsMCwwLDYuOTI1LS40NzJzLjI0NS0uMDcuMjQ1LS4xNjJhLjExMS4xMTEsMCwwLDAtLjAxMy0uMDY2UzE5Ljk0NCwyNS4zMTIsMTkuOTQ0LDI1LjVaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2spXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljk0NCwyNC40MTZzLjA0MS4yNTItLjQxOC40MjNjLS4wNzYuMDI4LS4yNDUuMDc4LS4yNDUuMDc4YTI1LjE1MSwyNS4xNTEsMCwwLDEtNi40NTguNDM2Yy0uMTM2LS4wMDktLjMyLS4wMjgtLjMyLS4wMjgtLjI3Ni0uMDM4LS40NjctLjE2LS40NTUtLjMwOCwwLDAtLjAzMy0uMjQ4LjQ2Ni0uMjQ4YTI2LjE5MywyNi4xOTMsMCwwLDAsNi45MjUtLjQ3MnMuMjQ1LS4wNy4yNDUtLjE2MmEuMTEuMTEsMCwwLDAtLjAxMy0uMDY1UzE5Ljk0NCwyNC4yMjcsMTkuOTQ0LDI0LjQxNlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjbClcXFwiLz48cGF0aCBkPVxcXCJNMTkuODkzLDI0LjQwNnYtLjAyMWMtLjAxMi4wNzYtLjA3OC4yMzYtLjQxNy4zNTUtLjA3Ni4wMjYtLjI0NS4wNzMtLjI0NS4wNzNhMjIuMzcyLDIyLjM3MiwwLDAsMS01LjEuNWgwYTIyLjE1NSwyMi4xNTUsMCwwLDAsNS4xLS40NDFzLjE2OS0uMDQ3LjI0NS0uMDczQzE5LjkzMywyNC42NDMsMTkuODkzLDI0LjQwNiwxOS44OTMsMjQuNDA2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xOS44OTMsMjUuNDkxVjI1LjQ3Yy0uMDEyLjA3Ni0uMDc4LjIzNi0uNDE3LjM1NS0uMDc2LjAyNy0uMjQ1LjA3My0uMjQ1LjA3M2EyMi4zOCwyMi4zOCwwLDAsMS01LjEuNWgwYTIyLjE3MSwyMi4xNzEsMCwwLDAsNS4xLS40NDFzLjE2OS0uMDQ3LjI0NS0uMDczQzE5LjkzMywyNS43MjgsMTkuODkzLDI1LjQ5MSwxOS44OTMsMjUuNDkxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xOS45NDQsMjMuMDM0cy4wNDEuMzI5LS40MTguNTUyYy0uMDc2LjAzNy0uMjQ1LjEtLjI0NS4xYTE5LjQwOSwxOS40MDksMCwwLDEtNi40NTguNTY5Yy0uMTM2LS4wMTItLjMyLS4wMzctLjMyLS4wMzctLjI3Ni0uMDUtLjQ2Ny0uMjA5LS40NTUtLjQsMCwwLS4wMzMtLjMyNC40NjYtLjMyNGExOC4yODMsMTguMjgzLDAsMCwwLDYuOTI1LS40NjEsMS4wMTQsMS4wMTQsMCwwLDAsLjQ0NC0uMjM4QS41My41MywwLDAsMSwxOS45NDQsMjMuMDM0WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNtKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS45NDQsMjYuNTg2cy4wNDEuMjUyLS40MTguNDIzYy0uMDc2LjAyOC0uMjQ1LjA3OC0uMjQ1LjA3OGEyNS4xNSwyNS4xNSwwLDAsMS02LjQ1OC40MzZjLS4xMzYtLjAwOS0uMzItLjAyOC0uMzItLjAyOC0uMjc2LS4wMzgtLjQ2Ny0uMTYtLjQ1NS0uMzA4LDAsMC0uMDMzLS4yNDguNDY2LS4yNDhhMjYuMjA3LDI2LjIwNywwLDAsMCw2LjkyNS0uNDcycy4yNDUtLjA3LjI0NS0uMTYzYS4xMTEuMTExLDAsMCwwLS4wMTMtLjA2NVMxOS45NDQsMjYuNCwxOS45NDQsMjYuNTg2WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNuKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS44OTMsMjYuNTc2di0uMDIxYy0uMDEyLjA3Ni0uMDc4LjIzNi0uNDE3LjM1NS0uMDc2LjAyNi0uMjQ1LjA3My0uMjQ1LjA3M2EyMi4zNzIsMjIuMzcyLDAsMCwxLTUuMS41aDBhMjIuMTYzLDIyLjE2MywwLDAsMCw1LjEtLjQ0MXMuMTY5LS4wNDcuMjQ1LS4wNzNDMTkuOTMzLDI2LjgxMywxOS44OTMsMjYuNTc2LDE5Ljg5MywyNi41NzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljg5MywyMy4zMjFWMjMuM2MtLjAxMi4wNzYtLjA3OC4yMzYtLjQxNy4zNTUtLjA3Ni4wMjctLjI0NS4wNzMtLjI0NS4wNzNhMjIuMzcyLDIyLjM3MiwwLDAsMS01LjEuNWgwYTIyLjE1NiwyMi4xNTYsMCwwLDAsNS4xLS40NDFzLjE2OS0uMDQ3LjI0NS0uMDczQzE5LjkzMywyMy41NTgsMTkuODkzLDIzLjMyMSwxOS44OTMsMjMuMzIxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xMi40MTcsMjUuODgxcy0uMjM2LDAtLjI0MS4wOC4yNDYuMDg1LjI0Ni4wODUuMTc1LDAsLjMuMDA1Yy42MTktLjAxMywxLjk5My0uMDM4LDMuNDM3LS4xNjZDMTQuMzg0LDI1Ljk1OCwxMi43MjMsMjUuODgzLDEyLjQxNywyNS44ODFaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI28pXFxcIi8+PHBhdGggZD1cXFwiTTEyLjQxNywyNC44cy0uMjM2LDAtLjI0MS4wOC4yNDYuMDg1LjI0Ni4wODUuMTc1LDAsLjMuMDA1Yy42MTktLjAxMiwxLjk5My0uMDM4LDMuNDM3LS4xNjZDMTQuMzg0LDI0Ljg3NCwxMi43MjMsMjQuOCwxMi40MTcsMjQuOFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjcClcXFwiLz48cGF0aCBkPVxcXCJNMTIuNDE3LDI2Ljk2NXMtLjIzNiwwLS4yNDEuMDguMjQ2LjA4NS4yNDYuMDg1LjE3NSwwLC4zLjAwNWMuNjE5LS4wMTIsMS45OTMtLjAzOCwzLjQzNy0uMTY2QzE0LjM4NCwyNy4wNDIsMTIuNzIzLDI2Ljk2NiwxMi40MTcsMjYuOTY1WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNxKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMS45NjUsMjIuNzc5cy0uMjc0LjMxNS4zMTkuNzExYzAsMCw1Ljc3NS41ODcsNy42LS42OTVDMTkuODg0LDIyLjc5NSwxMy42MjMsMjMuMzIsMTEuOTY1LDIyLjc3OVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjcilcXFwiLz48cGF0aCBkPVxcXCJNMjAuMDM1LDIyLjc3OWE0LjQ0OSw0LjQ0OSwwLDAsMCwuODEtMS4xNTUsMy4zODYsMy4zODYsMCwwLDAsLjItMS4xMTUsNi43MzMsNi43MzMsMCwwLDEsLjYzMi0yLjkxYy41MzQtMS4wMTQsMi44MS00LjQ0NywyLjgxLTcuNDYyQTguMDEyLDguMDEyLDAsMCwwLDE2LDJhOC4wMTIsOC4wMTIsMCwwLDAtOC40ODMsOC4xMzZjMCwzLjAxNSwyLjI3Niw2LjQ0OCwyLjgxLDcuNDYyYTYuNzMxLDYuNzMxLDAsMCwxLC42MzIsMi45MSwzLjM4NCwzLjM4NCwwLDAsMCwuMiwxLjExNSw0LjQ1Myw0LjQ1MywwLDAsMCwuODEsMS4xNTUsMTMuODY2LDEzLjg2NiwwLDAsMCwzLjk4Ny4zN0ExNS4xNTEsMTUuMTUxLDAsMCwwLDIwLjAzNSwyMi43NzlaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI3MpXFxcIi8+XCIsXG5cdH0sXG5cdFwiU29saWRpdHkgKEV0aGVyZXVtKVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNjMWMxYzFcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yMC40NzcsMmwtNC41LDhoLTlsNC41LThoOVxcXCIgc3R5bGU9XFxcImZpbGw6I2MxYzFjMTtvcGFjaXR5OjAuNDU7aXNvbGF0aW9uOmlzb2xhdGVcXFwiLz48cGF0aCBkPVxcXCJNMTEuNTIsMzBsNC41LThoOWwtNC41LDhoLTlcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMWMxYzE7b3BhY2l0eTowLjQ1O2lzb2xhdGlvbjppc29sYXRlXFxcIi8+PHBhdGggZD1cXFwiTTE1Ljk3NSwxMGg5bC00LjUtOGgtOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMWMxYzE7b3BhY2l0eTowLjY7aXNvbGF0aW9uOmlzb2xhdGVcXFwiLz48cGF0aCBkPVxcXCJNMTYuMDIyLDIyaC05bDQuNSw4aDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzFjMWMxO29wYWNpdHk6MC42O2lzb2xhdGlvbjppc29sYXRlXFxcIi8+PHBhdGggZD1cXFwiTTExLjQ3NywxOGw0LjUtOC00LjUtOC00LjUsOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMWMxYzE7b3BhY2l0eTowLjg7aXNvbGF0aW9uOmlzb2xhdGVcXFwiLz48cGF0aCBkPVxcXCJNMjAuNTIsMTRsLTQuNSw4LDQuNSw4LDQuNS04WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MxYzFjMTtvcGFjaXR5OjAuODtpc29sYXRpb246aXNvbGF0ZVxcXCIvPlwiLFxuXHR9LFxuXHRcIlNvbHV0aW9uIGZpbGVcIjoge1xuXHRcdGNvbG91cjogXCIjODU0Y2M3XCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxNlxcXCIgeTE9XFxcIi0xODIuMDcyXFxcIiB4Mj1cXFwiMTZcXFwiIHkyPVxcXCItMjA5LjkyOFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLCAwLCAwLCAtMSwgMCwgLTE4MClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfc2xuPC90aXRsZT48cGF0aCBkPVxcXCJNNi4wNDUsMjMuOTkxYTEuMTY2LDEuMTY2LDAsMCwxLTEuMjA4LjE5MUwyLjcxOCwyMy4zQTEuMTY4LDEuMTY4LDAsMCwxLDIsMjIuMjIyVjkuNzc4QTEuMTY1LDEuMTY1LDAsMCwxLDIuNzE4LDguN2wyLjExOS0uODgzYTEuMTY5LDEuMTY5LDAsMCwxLDEuMjA4LjE5MWwuNDc2LjQwOEEuNjQ2LjY0NiwwLDAsMCw1LjUsOC45NDJWMjMuMDU4YS42NDYuNjQ2LDAsMCwwLDEuMDIxLjUyNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM1MjIxOGFcXFwiLz48cGF0aCBkPVxcXCJNMi43MTgsMjMuM0ExLjE2OSwxLjE2OSwwLDAsMSwyLDIyLjIyMnYtLjFhLjY3NC42NzQsMCwwLDAsMS4xNzQuNDUyTDIxLjI1LDIuNTgzYTEuNzQzLDEuNzQzLDAsMCwxLDEuOTktLjMzOGw1Ljc2OSwyLjc3OEExLjc0OSwxLjc0OSwwLDAsMSwzMCw2LjZ2LjA2N2ExLjEsMS4xLDAsMCwwLTEuOC0uODU0TDYuNTIxLDIzLjU4M2wtLjQ3Ni40MDhhMS4xNjYsMS4xNjYsMCwwLDEtMS4yMDguMTkxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzZjMzNhZlxcXCIvPjxwYXRoIGQ9XFxcIk0yLjcxOCw4LjdBMS4xNjgsMS4xNjgsMCwwLDAsMiw5Ljc3OHYuMWEuNjc0LjY3NCwwLDAsMSwxLjE3NC0uNDUyTDIxLjI1LDI5LjQxNmExLjc0MywxLjc0MywwLDAsMCwxLjk5LjMzOGw1Ljc2OS0yLjc3OEExLjc0NywxLjc0NywwLDAsMCwzMCwyNS40di0uMDY4YTEuMSwxLjEsMCwwLDEtMS44Ljg1NUw2LjUyMSw4LjQxN2wtLjQ3Ni0uNDA4YTEuMTY2LDEuMTY2LDAsMCwwLTEuMjA4LS4xOTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojODU0Y2M3XFxcIi8+PHBhdGggZD1cXFwiTTIzLjI0LDI5Ljc1NWExLjc0MywxLjc0MywwLDAsMS0xLjk5LS4zMzhBMS4wMjUsMS4wMjUsMCwwLDAsMjMsMjguNjkyVjMuMzA4YTEuMDI1LDEuMDI1LDAsMCwwLTEuNzUtLjcyNSwxLjc0MywxLjc0MywwLDAsMSwxLjk5LS4zMzhsNS43NjgsMi43NzRBMS43NDksMS43NDksMCwwLDEsMzAsNi42VjI1LjQwNWExLjc1MSwxLjc1MSwwLDAsMS0uOTkxLDEuNTc3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2IxNzlmMVxcXCIvPjxnIHN0eWxlPVxcXCJvcGFjaXR5OjAuMjVcXFwiPjxwYXRoIGQ9XFxcIk0yMi4wOTMsMjkuODgzYTEuNzQsMS43NCwwLDAsMCwxLjE0Ny0uMTI4bDUuNzY4LTIuNzc0QTEuNzQ5LDEuNzQ5LDAsMCwwLDMwLDI1LjRWNi42YTEuNzUsMS43NSwwLDAsMC0uOTkyLTEuNTc3TDIzLjI0LDIuMjQ1YTEuNzQyLDEuNzQyLDAsMCwwLTEuOTkuMzM5bC05LjMsMTAuMjg0TDYuNTIxLDguNDE2bC0uNDc2LS40MDhhMS4xNjgsMS4xNjgsMCwwLDAtMS4yMDctLjE5MUwyLjcxOSw4LjdBMS4xNjcsMS4xNjcsMCwwLDAsMiw5LjY4OWMwLC4wMjksMCwuMDU5LDAsLjA4OFYyMi4yMjFjMCwuMDMsMCwuMDU5LDAsLjA4OGExLjE2NywxLjE2NywwLDAsMCwuNzE1Ljk4OWwyLjExOS44ODNhMS4yMjYsMS4yMjYsMCwwLDAsLjE1NS4wNTIsMS4xNjUsMS4xNjUsMCwwLDAsMS4wNTItLjI0M2wuNDc2LS40MDgsNS40My00LjQ1Miw5LjMsMTAuMjg1QTEuNzMzLDEuNzMzLDAsMCwwLDIyLjA5MywyOS44ODNaTTIzLDEwLjA3MiwxNS43NywxNiwyMywyMS45MjdaTTUuNSwxMmwzLjYxOSw0TDUuNSwyMFpcXFwiIHN0eWxlPVxcXCJmaWxsLXJ1bGU6ZXZlbm9kZDtmaWxsOnVybCgjYSlcXFwiLz48L2c+XCIsXG5cdH0sXG5cdFwiU1BBUlFMXCI6IHtcblx0XHRjb2xvdXI6IFwiIzBjNDc5Y1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTI2LjI4NCwyMC4zNjFjLS4xNjUtLjA4NC0uMzU5LS4xNjQtLjUyMy0uMjQ4SDI1LjlzLTEuMTU4LS41LTEuMjQtNC4xNzZjLS4xMTEtMy42NTUsMS4xLTQuMjg5LDEuMS00LjI4OWE0Ljk2LDQuOTYsMCwwLDAsMi4xNzYtMi4xNDMsNS4xMjIsNS4xMjIsMCwwLDAtMi4xMjItNi45MjcsNS4zNDIsNS4zNDIsMCwwLDAtNy4xMzgsMi4xNDYsNS4wNjcsNS4wNjcsMCwwLDAtLjUyMywzLjIxNEwxOC4xLDcuODU1cy4zLDEuMzE5LTIuODM5LDMuMjcyYy0zLjExNSwxLjk1LTQuNTQ5Ljk2Mi00LjU0OS45NjJsLjA4Mi4xMzhhMi4xMzEsMi4xMzEsMCwwLDAtLjI3My0uMTY3LDUuMTE3LDUuMTE3LDAsMSwwLC44MjUsOC41MmwtLjAyNS4wNTVzMS4xMjktLjkzMyw0LjQwNy44MjdjMi41OTIsMS4zNzQsMi45NzksMi43NDgsMy4wMzMsMy4yNGE1LjEsNS4xLDAsMCwwLDIuNyw0LjcsNS4xMjQsNS4xMjQsMCwxLDAsNC44MjUtOS4wNDFabS01Ljc5LjY4NWMtLjQxMi4xMzgtMS42LjMtNC4wNzctMS4wMTctMi43LTEuNDU0LTMuMTE1LTIuNjY0LTMuMTY5LTMuMDIxYTUuNDA2LDUuNDA2LDAsMCwwLS4wNTctMS4zMTlsLjAyOS4wMjZTMTMsMTQuNTM0LDE2LjA4NCwxMi42MzljMi43NTctMS43MDUsNC4wMjYtMS4zNzQsNC4yNDUtMS4yOTNhMi44MywyLjgzLDAsMCwwLC40Ny4yNzcsNC4wODIsNC4wODIsMCwwLDAsLjk2NC4zODNjLjM4Ny4zNTcsMS4wNzYsMS4zNzQsMS4xNTgsNC4xcy0uNzE3LDMuNzY0LTEuMTU4LDQuMTIxQTUuMDQsNS4wNCwwLDAsMCwyMC40OTQsMjEuMDQ3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzBjNDc5Y1xcXCIvPjxwYXRoIGQ9XFxcIk0yMC4xMzUsNC4yMjlhMy44NjEsMy44NjEsMCwwLDAtLjA4Miw1LjM4NmMtLjcxNy0uNjg1LS42ODgtMi4xMTcuMDI5LTMuNDYyYS42NzMuNjczLDAsMCwxLC43NDYtLjI3N2MuMDI1LDAsLjA1NC4wMjkuMDgyLjAyOWEuOTkzLjk5MywwLDAsMCwuMjc2LjAyNkExLjA1NiwxLjA1NiwwLDAsMCwyMi4yLDQuODA1YS45MzQuOTM0LDAsMCwwLS4zLS42ODVjMS4zOC0uOTA3LDIuOTUtMS4wMTcsMy42MS0uNDEyaC4wMjlBMy44MjYsMy44MjYsMCwwLDAsMjAuMTM1LDQuMjI5Wk01LjE0NSwxMy44NDZhMy44NTksMy44NTksMCwwLDAtLjA4Miw1LjM4OWMtLjcxNy0uNjg5LS42OTItMi4xMTcuMDI1LTMuNDY1YS42NjguNjY4LDAsMCwxLC43NDYtLjI3M2MuMDI1LDAsLjA1NC4wMjkuMDgyLjAyOWExLDEsMCwwLDAsLjI3Ni4wMjZBMS4wNTYsMS4wNTYsMCwwLDAsNy4yMSwxNC40MjVhLjk0NS45NDUsMCwwLDAtLjMtLjY4OWMxLjM3Ny0uOTA3LDIuOTQ3LTEuMDE3LDMuNjEtLjQxMmguMDI1QTMuODUyLDMuODUyLDAsMCwwLDUuMTQ1LDEzLjg0NlptMTUuODcyLDguMTYzYTMuODY1LDMuODY1LDAsMCwwLS4wODIsNS4zODljLS43MTctLjY4OS0uNjg4LTIuMTE3LjAyOS0zLjQ2NWEuNjY4LjY2OCwwLDAsMSwuNzQ2LS4yNzNjLjAyNSwwLC4wNTQuMDI2LjA4Mi4wMjZhLjg4Ny44ODcsMCwwLDAsLjI3Ni4wMjksMS4wNTcsMS4wNTcsMCwwLDAsMS4wMTgtMS4xMjYuOTM2LjkzNiwwLDAsMC0uMy0uNjg5YzEuMzgtLjkwNywyLjk1LTEuMDE3LDMuNjEtLjQxMmguMDI5QTMuODI5LDMuODI5LDAsMCwwLDIxLjAxNywyMi4wMDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdH0sXG5cdFwiU1FGXCI6IHtcblx0XHRjb2xvdXI6IFwiI2MyYzJjMlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTI1LDIzLjVIN2E1LjAxNSw1LjAxNSwwLDAsMS01LTV2LTZhNS4wMTUsNS4wMTUsMCwwLDEsNS01SDI1YTUuMDE1LDUuMDE1LDAsMCwxLDUsNXY2YTUuMDE1LDUuMDE1LDAsMCwxLTUsNVpcXFwiLz48cGF0aCBkPVxcXCJNNywxOS40NjFhNC44MSw0LjgxLDAsMCwxLTEuNDE0LS4yLDUuMDUyLDUuMDUyLDAsMCwxLTEuMTExLS40NzJsLS40LjQzMmgtLjVMMy41LDE2LjA1Mkg0YTguNDYyLDguNDYyLDAsMCwwLC40MzEuOTUzLDQuNjM4LDQuNjM4LDAsMCwwLC42MDYuOSwzLjE3NywzLjE3NywwLDAsMCwuOC42NzUsMS45ODUsMS45ODUsMCwwLDAsMS4wMjkuMjYsMS42NzIsMS42NzIsMCwwLDAsMS4yMTYtLjQxMUExLjM4MiwxLjM4MiwwLDAsMCw4LjUsMTcuMzkxYTEuMTU2LDEuMTU2LDAsMCwwLS4zNTktLjg2MiwyLjk0NSwyLjk0NSwwLDAsMC0xLjExMS0uNnEtLjQ5LS4xNjctLjktLjMxdC0uNzczLS4yOTJhMi41OCwyLjU4LDAsMCwxLTEuMjM5LTEuMDA3LDIuNzMsMi43MywwLDAsMS0uNDA1LTEuNDY1LDIuNDA2LDIuNDA2LDAsMCwxLC4yMS0uOTg2LDIuNjA4LDIuNjA4LDAsMCwxLC42MTItLjg1LDIuOTY3LDIuOTY3LDAsMCwxLC45ODUtLjU3NSwzLjcyMiwzLjcyMiwwLDAsMSwxLjMwNi0uMjIzLDMuOTg0LDMuOTg0LDAsMCwxLDEuMjg4LjIsNS4xNTEsNS4xNTEsMCwwLDEsLjk0NC40MDhsLjM1Ni0uMzdoLjUwN2wuMDQ3LDIuOTg4aC0uNXEtLjE3NS0uNDgzLS40MTEtLjk4N2E0LjMzMiw0LjMzMiwwLDAsMC0uNS0uODM5LDIuMywyLjMsMCwwLDAtLjY1OS0uNTczLDEuNzI5LDEuNzI5LDAsMCwwLS44NzUtLjIxNEExLjQzNywxLjQzNywwLDAsMCw2LDExLjIxMmExLjIzMywxLjIzMywwLDAsMC0uNC45MzQsMS4xNDEsMS4xNDEsMCwwLDAsLjM0Ny44NiwyLjk1MSwyLjk1MSwwLDAsMCwxLjA4Mi41ODhxLjQzMS4xNTQuODguMzA5dC44LjNhMi44ODUsMi44ODUsMCwwLDEsMS4yODYuOTU1LDIuNTEyLDIuNTEyLDAsMCwxLC40NCwxLjUxMiwyLjYzMiwyLjYzMiwwLDAsMS0uOTI3LDEuOTg1LDMuMzY3LDMuMzY3LDAsMCwxLTEuMDc5LjZBNC4zOTEsNC4zOTEsMCwwLDEsNywxOS40NjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+PHBhdGggZD1cXFwiTTE4LjkyMSwxMS40MzRhNC4zMzgsNC4zMzgsMCwwLDEsLjk3MSwxLjQzMiw0LjgzNCw0LjgzNCwwLDAsMSwuMzU5LDEuOTE0LDQuOTU4LDQuOTU4LDAsMCwxLS43MiwyLjY4LDQuMDM2LDQuMDM2LDAsMCwxLTIuMDM4LDEuNjYxLDIuMTUxLDIuMTUxLDAsMCwwLC40MiwxLjI3MiwxLjE2OCwxLjE2OCwwLDAsMCwuOTUuNTM3LDMuNTYzLDMuNTYzLDAsMCwwLC41OTItLjA0M3EuMjU0LS4wNDMuNDU4LS4xdi41NDNhNS43NTMsNS43NTMsMCwwLDEtLjk4NS4zLDYuMDU0LDYuMDU0LDAsMCwxLTEuMzcuMTUxLDIuMjA2LDIuMjA2LDAsMCwxLTEuNjEyLS42MjEsMi41NzQsMi41NzQsMCwwLDEtLjcwOC0xLjczMkE0LjU3OSw0LjU3OSwwLDAsMSwxMy43LDE5YTQuMTg2LDQuMTg2LDAsMCwxLTEuMjUzLS45MzIsNC4zODgsNC4zODgsMCwwLDEtLjg0Mi0xLjM3Nyw0Ljc2OSw0Ljc2OSwwLDAsMS0uMzEyLTEuNzUzLDUuMjM3LDUuMjM3LDAsMCwxLC4zNDctMS45NDgsNC41LDQuNSwwLDAsMSwuOTUzLTEuNSw0LjExOSw0LjExOSwwLDAsMSwxLjQyNS0uOTQyLDQuODYsNC44NiwwLDAsMSwzLjUtLjAwOUE0LjI0Nyw0LjI0NywwLDAsMSwxOC45MjEsMTEuNDM0Wm0tMS41LDYuMjY2YTQuODU3LDQuODU3LDAsMCwwLC4zNzktMS4yNzMsOS45ODEsOS45ODEsMCwwLDAsLjExNy0xLjYwNiwxMC41MzQsMTAuNTM0LDAsMCwwLS4xLTEuNDgsNC45MzYsNC45MzYsMCwwLDAtLjM0Ny0xLjI4MiwyLjQxLDIuNDEsMCwwLDAtLjY2NS0uOSwxLjU3MSwxLjU3MSwwLDAsMC0xLjAzMi0uMzQsMS43MywxLjczLDAsMCwwLTEuNiwxLjA2LDYuNjM0LDYuNjM0LDAsMCwwLS41NDgsMi45OTMsOS41ODMsOS41ODMsMCwwLDAsLjEyLDEuNTUxLDQuOCw0LjgsMCwwLDAsLjM3NiwxLjI3MywyLjI4NiwyLjI4NiwwLDAsMCwuNjY1Ljg1NiwxLjU5MSwxLjU5MSwwLDAsMCwuOTkxLjMwNiwxLjYxMSwxLjYxMSwwLDAsMCwuOTkxLS4zMDlBMi4xMzUsMi4xMzUsMCwwLDAsMTcuNDIzLDE3LjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+PHBhdGggZD1cXFwiTTI4LjUsMTIuOGgtLjQ1NWEzLjkzLDMuOTMsMCwwLDAtLjYtMS4wODYsMS4zODUsMS4zODUsMCwwLDAtLjgxMi0uNjNjLS4xMTYtLjAxNi0uMjcyLS4wMzEtLjQ2NS0uMDQzcy0uMzczLS4wMTktLjUzNS0uMDE5SDI0LjM0OXYzLjQzM2guODIyYTEuOTY5LDEuOTY5LDAsMCwwLC42MDYtLjA4MywxLjA1NCwxLjA1NCwwLDAsMCwuNDU1LS4zLDEuNTkxLDEuNTkxLDAsMCwwLC4yODMtLjUxNiwyLjYzNSwyLjYzNSwwLDAsMCwuMTY2LS42MjFoLjQ0M3YzLjY4NmgtLjQ0M2EyLjQ3MSwyLjQ3MSwwLDAsMC0uMTgxLS42NzYsMi4wOTQsMi4wOTQsMCwwLDAtLjI2OC0uNTI4LDEuMDEyLDEuMDEyLDAsMCwwLS40MzEtLjI5MywxLjg0MiwxLjg0MiwwLDAsMC0uNjMtLjFoLS44MjJ2Mi45YS44NDIuODQyLDAsMCwwLC4wNzkuMzguNTguNTgsMCwwLDAsLjMuMjU2LDEuODcsMS44NywwLDAsMCwuMzUzLjFxLjIyNC4wNDYuNDQ2LjA3MXYuNDgyaC00LjQ2di0uNDgybC40NDktLjA1MmExLjUyNSwxLjUyNSwwLDAsMCwuMzkxLS4wODMuNTQ3LjU0NywwLDAsMCwuMjkyLS4yNDEuODQyLjg0MiwwLDAsMCwuMDgyLS40di02LjE4YS44NjcuODY3LDAsMCwwLS4wNzMtLjM2Ny41NzUuNTc1LDAsMCwwLS4zLS4yNjIsMi4zNDEsMi4zNDEsMCwwLDAtLjQzMS0uMTM2cS0uMjY4LS4wNjItLjQwOC0uMDh2LS40ODJIMjguNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz5cIixcblx0fSxcblx0XCJTUUY6IFN0YXR1cyBRdW8gRnVuY3Rpb24gKEFybWEgMylcIjoge1xuXHRcdGNvbG91cjogXCIjYzJjMmMyXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjUsMjMuNUg3YTUuMDE1LDUuMDE1LDAsMCwxLTUtNXYtNmE1LjAxNSw1LjAxNSwwLDAsMSw1LTVIMjVhNS4wMTUsNS4wMTUsMCwwLDEsNSw1djZhNS4wMTUsNS4wMTUsMCwwLDEtNSw1WlxcXCIvPjxwYXRoIGQ9XFxcIk03LDE5LjQ2MWE0LjgxLDQuODEsMCwwLDEtMS40MTQtLjIsNS4wNTIsNS4wNTIsMCwwLDEtMS4xMTEtLjQ3MmwtLjQuNDMyaC0uNUwzLjUsMTYuMDUySDRhOC40NjIsOC40NjIsMCwwLDAsLjQzMS45NTMsNC42MzgsNC42MzgsMCwwLDAsLjYwNi45LDMuMTc3LDMuMTc3LDAsMCwwLC44LjY3NSwxLjk4NSwxLjk4NSwwLDAsMCwxLjAyOS4yNiwxLjY3MiwxLjY3MiwwLDAsMCwxLjIxNi0uNDExQTEuMzgyLDEuMzgyLDAsMCwwLDguNSwxNy4zOTFhMS4xNTYsMS4xNTYsMCwwLDAtLjM1OS0uODYyLDIuOTQ1LDIuOTQ1LDAsMCwwLTEuMTExLS42cS0uNDktLjE2Ny0uOS0uMzF0LS43NzMtLjI5MmEyLjU4LDIuNTgsMCwwLDEtMS4yMzktMS4wMDcsMi43MywyLjczLDAsMCwxLS40MDUtMS40NjUsMi40MDYsMi40MDYsMCwwLDEsLjIxLS45ODYsMi42MDgsMi42MDgsMCwwLDEsLjYxMi0uODUsMi45NjcsMi45NjcsMCwwLDEsLjk4NS0uNTc1LDMuNzIyLDMuNzIyLDAsMCwxLDEuMzA2LS4yMjMsMy45ODQsMy45ODQsMCwwLDEsMS4yODguMiw1LjE1MSw1LjE1MSwwLDAsMSwuOTQ0LjQwOGwuMzU2LS4zN2guNTA3bC4wNDcsMi45ODhoLS41cS0uMTc1LS40ODMtLjQxMS0uOTg3YTQuMzMyLDQuMzMyLDAsMCwwLS41LS44MzksMi4zLDIuMywwLDAsMC0uNjU5LS41NzMsMS43MjksMS43MjksMCwwLDAtLjg3NS0uMjE0QTEuNDM3LDEuNDM3LDAsMCwwLDYsMTEuMjEyYTEuMjMzLDEuMjMzLDAsMCwwLS40LjkzNCwxLjE0MSwxLjE0MSwwLDAsMCwuMzQ3Ljg2LDIuOTUxLDIuOTUxLDAsMCwwLDEuMDgyLjU4OHEuNDMxLjE1NC44OC4zMDl0LjguM2EyLjg4NSwyLjg4NSwwLDAsMSwxLjI4Ni45NTUsMi41MTIsMi41MTIsMCwwLDEsLjQ0LDEuNTEyLDIuNjMyLDIuNjMyLDAsMCwxLS45MjcsMS45ODUsMy4zNjcsMy4zNjcsMCwwLDEtMS4wNzkuNkE0LjM5MSw0LjM5MSwwLDAsMSw3LDE5LjQ2MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cGF0aCBkPVxcXCJNMTguOTIxLDExLjQzNGE0LjMzOCw0LjMzOCwwLDAsMSwuOTcxLDEuNDMyLDQuODM0LDQuODM0LDAsMCwxLC4zNTksMS45MTQsNC45NTgsNC45NTgsMCwwLDEtLjcyLDIuNjgsNC4wMzYsNC4wMzYsMCwwLDEtMi4wMzgsMS42NjEsMi4xNTEsMi4xNTEsMCwwLDAsLjQyLDEuMjcyLDEuMTY4LDEuMTY4LDAsMCwwLC45NS41MzcsMy41NjMsMy41NjMsMCwwLDAsLjU5Mi0uMDQzcS4yNTQtLjA0My40NTgtLjF2LjU0M2E1Ljc1Myw1Ljc1MywwLDAsMS0uOTg1LjMsNi4wNTQsNi4wNTQsMCwwLDEtMS4zNy4xNTEsMi4yMDYsMi4yMDYsMCwwLDEtMS42MTItLjYyMSwyLjU3NCwyLjU3NCwwLDAsMS0uNzA4LTEuNzMyQTQuNTc5LDQuNTc5LDAsMCwxLDEzLjcsMTlhNC4xODYsNC4xODYsMCwwLDEtMS4yNTMtLjkzMiw0LjM4OCw0LjM4OCwwLDAsMS0uODQyLTEuMzc3LDQuNzY5LDQuNzY5LDAsMCwxLS4zMTItMS43NTMsNS4yMzcsNS4yMzcsMCwwLDEsLjM0Ny0xLjk0OCw0LjUsNC41LDAsMCwxLC45NTMtMS41LDQuMTE5LDQuMTE5LDAsMCwxLDEuNDI1LS45NDIsNC44Niw0Ljg2LDAsMCwxLDMuNS0uMDA5QTQuMjQ3LDQuMjQ3LDAsMCwxLDE4LjkyMSwxMS40MzRabS0xLjUsNi4yNjZhNC44NTcsNC44NTcsMCwwLDAsLjM3OS0xLjI3Myw5Ljk4MSw5Ljk4MSwwLDAsMCwuMTE3LTEuNjA2LDEwLjUzNCwxMC41MzQsMCwwLDAtLjEtMS40OCw0LjkzNiw0LjkzNiwwLDAsMC0uMzQ3LTEuMjgyLDIuNDEsMi40MSwwLDAsMC0uNjY1LS45LDEuNTcxLDEuNTcxLDAsMCwwLTEuMDMyLS4zNCwxLjczLDEuNzMsMCwwLDAtMS42LDEuMDYsNi42MzQsNi42MzQsMCwwLDAtLjU0OCwyLjk5Myw5LjU4Myw5LjU4MywwLDAsMCwuMTIsMS41NTEsNC44LDQuOCwwLDAsMCwuMzc2LDEuMjczLDIuMjg2LDIuMjg2LDAsMCwwLC42NjUuODU2LDEuNTkxLDEuNTkxLDAsMCwwLC45OTEuMzA2LDEuNjExLDEuNjExLDAsMCwwLC45OTEtLjMwOUEyLjEzNSwyLjEzNSwwLDAsMCwxNy40MjMsMTcuN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cGF0aCBkPVxcXCJNMjguNSwxMi44aC0uNDU1YTMuOTMsMy45MywwLDAsMC0uNi0xLjA4NiwxLjM4NSwxLjM4NSwwLDAsMC0uODEyLS42M2MtLjExNi0uMDE2LS4yNzItLjAzMS0uNDY1LS4wNDNzLS4zNzMtLjAxOS0uNTM1LS4wMTlIMjQuMzQ5djMuNDMzaC44MjJhMS45NjksMS45NjksMCwwLDAsLjYwNi0uMDgzLDEuMDU0LDEuMDU0LDAsMCwwLC40NTUtLjMsMS41OTEsMS41OTEsMCwwLDAsLjI4My0uNTE2LDIuNjM1LDIuNjM1LDAsMCwwLC4xNjYtLjYyMWguNDQzdjMuNjg2aC0uNDQzYTIuNDcxLDIuNDcxLDAsMCwwLS4xODEtLjY3NiwyLjA5NCwyLjA5NCwwLDAsMC0uMjY4LS41MjgsMS4wMTIsMS4wMTIsMCwwLDAtLjQzMS0uMjkzLDEuODQyLDEuODQyLDAsMCwwLS42My0uMWgtLjgyMnYyLjlhLjg0Mi44NDIsMCwwLDAsLjA3OS4zOC41OC41OCwwLDAsMCwuMy4yNTYsMS44NywxLjg3LDAsMCwwLC4zNTMuMXEuMjI0LjA0Ni40NDYuMDcxdi40ODJoLTQuNDZ2LS40ODJsLjQ0OS0uMDUyYTEuNTI1LDEuNTI1LDAsMCwwLC4zOTEtLjA4My41NDcuNTQ3LDAsMCwwLC4yOTItLjI0MS44NDIuODQyLDAsMCwwLC4wODItLjR2LTYuMThhLjg2Ny44NjcsMCwwLDAtLjA3My0uMzY3LjU3NS41NzUsMCwwLDAtLjMtLjI2MiwyLjM0MSwyLjM0MSwwLDAsMC0uNDMxLS4xMzZxLS4yNjgtLjA2Mi0uNDA4LS4wOHYtLjQ4MkgyOC41WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPlwiLFxuXHR9LFxuXHRcIlNRTFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNmZmRhNDRcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk04LjU2MiwxNS4yNTZBMjEuMTU5LDIxLjE1OSwwLDAsMCwxNiwxNi40NDlhMjEuMTU5LDIxLjE1OSwwLDAsMCw3LjQzOC0xLjE5NGMxLjg2NC0uNzI3LDIuNTI1LTEuNTM1LDIuNTI1LTJWOS43YTEwLjM1NywxMC4zNTcsMCwwLDEtMi4wODQsMS4wNzZBMjIuMjkzLDIyLjI5MywwLDAsMSwxNiwxMi4wNzhhMjIuMzYsMjIuMzYsMCwwLDEtNy44NzktMS4zQTEwLjI4LDEwLjI4LDAsMCwxLDYuMDM3LDkuN3YzLjU1QzYuMDM3LDEzLjcyNCw2LjcsMTQuNTI4LDguNTYyLDE1LjI1NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmRhNDRcXFwiLz48cGF0aCBkPVxcXCJNOC41NjIsMjEuOTYxYTE1LjYxMSwxNS42MTEsMCwwLDAsMi42Ljc0MUEyNC45LDI0LjksMCwwLDAsMTYsMjMuMTU1YTI0LjksMjQuOSwwLDAsMCw0LjgzOC0uNDUyLDE1LjYxNCwxNS42MTQsMCwwLDAsMi42LS43NDFjMS44NjQtLjcyNywyLjUyNS0xLjUzNSwyLjUyNS0ydi0zLjM5YTEwLjcwNiwxMC43MDYsMCwwLDEtMS42OTIuODI1QTIzLjQ5LDIzLjQ5LDAsMCwxLDE2LDE4Ljc0YTIzLjQ5LDIzLjQ5LDAsMCwxLTguMjcxLTEuMzQ4LDEwLjgyOSwxMC44MjksMCwwLDEtMS42OTItLjgyNVYxOS45NkM2LjAzNywyMC40MjYsNi43LDIxLjIzMSw4LjU2MiwyMS45NjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZkYTQ0XFxcIi8+PHBhdGggZD1cXFwiTTE2LDMwYzUuNSwwLDkuOTYzLTEuNzQ0LDkuOTYzLTMuODk0VjIzLjI2OWExMC41LDEwLjUsMCwwLDEtMS41MzUuNzYybC0uMTU3LjA2M0EyMy40ODcsMjMuNDg3LDAsMCwxLDE2LDI1LjQ0NWEyMy40MjIsMjMuNDIyLDAsMCwxLTguMjcxLTEuMzUxYy0uMDU0LS4wMi0uMTA2LS4wNDMtLjE1Ny0uMDYzYTEwLjUsMTAuNSwwLDAsMS0xLjUzNS0uNzYydjIuODM3QzYuMDM3LDI4LjI1NiwxMC41LDMwLDE2LDMwWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZGE0NFxcXCIvPjxlbGxpcHNlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjUuODk0XFxcIiByeD1cXFwiOS45NjNcXFwiIHJ5PVxcXCIzLjg5NFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZGE0NFxcXCIvPlwiLFxuXHRcdGlubGluZUNvbW1lbnQ6IFtcblx0XHRcdFwiLS1cIixcblx0XHRdLFxuXHR9LFxuXHRcIlNxdWlycmVsXCI6IHtcblx0XHRjb2xvdXI6IFwiI2EwNWEyY1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTEyLjk2NiwyNy4zYTE4LjkyNiwxOC45MjYsMCwwLDEtNS43MDctLjkxNWMtMS44MzItLjU5Mi00LjA0NC0xLjU0LTQuOTMxLTMuNjQ1YS41NTcuNTU3LDAsMCwxLS4wMjUtLjA3MywxMi4yMTQsMTIuMjE0LDAsMCwxLC43NjMtNy41MzFjMS41MjItNC4wMDgsMy43MS02LjczOSw2LjUtOC4xMTZhMTAuNDIyLDEwLjQyMiwwLDAsMSw3LjYtLjU1LDEwLjQyNiwxMC40MjYsMCwwLDEsNi4wNCw0LjYzOSwxMS4wNTcsMTEuMDU3LDAsMCwxLDEuMDU4LDIuMzI2LDEwLjY2LDEwLjY2LDAsMCwxLTUuMzc4LDEyLjY4OWwtLjAyLjAwOUExNC44MzIsMTQuODMyLDAsMCwxLDEyLjk2NiwyNy4zWlxcXCIvPjxwYXRoIGQ9XFxcIk0yMi43MiwxMS4zOTNhMTAuMTQ0LDEwLjE0NCwwLDAsMC0xMi45LTMuODY5QzYuNyw5LjA2MSw0Ljc4NCwxMi4yLDMuNTkzLDE1LjMzNGExMS45LDExLjksMCwwLDAtLjc0Niw3LjE4N2MuNzgzLDEuODYsMi43NzksMi43NDQsNC41ODIsMy4zMjdhMTYuMjA2LDE2LjIwNiwwLDAsMCwxMS4yMTMtLjIzMkExMC4xMSwxMC4xMSwwLDAsMCwyMy43MjcsMTMuNiwxMC40ODgsMTAuNDg4LDAsMCwwLDIyLjcyLDExLjM5M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNhMDVhMmNcXFwiLz48cGF0aCBkPVxcXCJNMTUuNzgyLDYuNzJBOC4yNjMsOC4yNjMsMCwwLDEsMTcuNjQsOC4wODQsOS42NSw5LjY1LDAsMCwxLDE5LjA4LDkuOGE5LjMxNyw5LjMxNywwLDAsMS0xLjUzMSwxMS45MjFBMTQuOTMzLDE0LjkzMywwLDAsMSw3LjY1NiwyNC43YTcuNTgxLDcuNTgxLDAsMCwxLTQuMTM1LTEuMSw4LjQ1NCw4LjQ1NCwwLDAsMCwzLjkwNywyLjI0MSwxNi4yMDgsMTYuMjA4LDAsMCwwLDExLjIxNC0uMjMzQTEwLjExMiwxMC4xMTIsMCwwLDAsMjMuNzI3LDEzLjZhMTAuNDg3LDEwLjQ4NywwLDAsMC0xLjAwNy0yLjIxMUE5Ljk3Myw5Ljk3MywwLDAsMCwxNS43ODIsNi43MlpcXFwiIHN0eWxlPVxcXCJmaWxsLW9wYWNpdHk6MC4zMTM3MjU1MDEyOTg5MDQ0XFxcIi8+PHBhdGggZD1cXFwiTTIzLjQ3NiwxMy4zODlsLTEuMDYyLTIuODk1LjE1Mi0uMjM2QTYuODc1LDYuODc1LDAsMCwxLDI3LjUwOSw3LjdhMi4xNzcsMi4xNzcsMCwwLDEsMS44NzkuNTg4LDMuMzc2LDMuMzc2LDAsMCwxLC4xLDMuNzI5Yy0uMzQzLjI5Mi0uNzUxLjEyNC0xLjIyMi0uMDdhMi44MjEsMi44MjEsMCwwLDAtMi4xMzMtLjI3LDEwLjIsMTAuMiwwLDAsMC0yLjA0NywxLjIwOVpcXFwiLz48cGF0aCBkPVxcXCJNMjMuMDM5LDEwLjU2M2MxLjIyMy0xLjksNS4xMDctMi45MTUsNS45MTItMS45MjNhMi45NywyLjk3LDAsMCwxLC4xNzcsMi45NDVjLS4yNDUuMjA3LTEuODM3LTEuMDU5LTMuMjI1LS40MjNBMTAuNTc0LDEwLjU3NCwwLDAsMCwyMy43MywxMi40NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM1MDJkMTZcXFwiLz48cGF0aCBkPVxcXCJNMjkuNCw5LjcyN2EuOC44LDAsMCwxLS4yLjQ2OWMtLjIyOS4xNjItMS45LS41MDYtMy4yMzguMDU2YTEyLjQzOSwxMi40MzksMCwwLDAtMi4wNzEsMS4wN0wyMy4yLDEwLjM0Yy0uMDU3LjA3NC0uMTE2LjE0Ny0uMTY1LjIyM2wuNjkyLDEuODg2QTEwLjU3NywxMC41NzcsMCwwLDEsMjUuOSwxMS4xNjJjMS4zODgtLjYzNiwyLjk4LjYzMSwzLjIyNS40MjNBMi44NDYsMi44NDYsMCwwLDAsMjkuNCw5LjcyN1pcXFwiIHN0eWxlPVxcXCJmaWxsLW9wYWNpdHk6MC4zMTM3MjU1MDEyOTg5MDQ0XFxcIi8+PHBhdGggZD1cXFwiTTIxLjM4MiwyNS4xOGEyLjIzNiwyLjIzNiwwLDAsMS0xLjE0Ny0uMzIzLjU2My41NjMsMCwwLDEtLjA4Mi0uODg4Yy43MzctLjY4NC42MDctMi4xNzMtLjQxLTQuNjg5YTM2LjUyNiwzNi41MjYsMCwwLDAtNS4xMjMtOC44MjVsLS4zNS0uNDNjLTEuNTEyLTEuODY1LTIuMzU4LTIuODE1LTMuNTU0LTIuM2EuNTYyLjU2MiwwLDAsMS0uNDEzLjAxNi41NzEuNTcxLDAsMCwxLS4zNzctLjU5MiwyLjExOSwyLjExOSwwLDAsMSwxLjQ2MS0yYzQuNzE2LTEuNDgxLDEwLjI2LjgxNCwxMi45MDUsNS4zNDRhMTEuMiwxMS4yLDAsMCwxLTEuNDMxLDEzLjk5MUExLjkxOSwxLjkxOSwwLDAsMSwyMS4zODIsMjUuMThaXFxcIi8+PHBhdGggZD1cXFwiTTIzLjgxMiwxMC43ODNjLTIuNDQ0LTQuMTkyLTcuNzMtNi41MjgtMTIuMjctNS4wOTMtMS4wMDcuMjQ4LTEuMDY1LDEuNTM1LTEuMDUyLDEuNTE3LDEuNzc2LS43NjcsMi45NTMuOTE5LDQuNTY2LDIuODlhMzYuOSwzNi45LDAsMCwxLDUuMjA5LDguOTcxYy44OSwyLjIsMS40LDQuMjY3LjI3LDUuMzEyYTEuNSwxLjUsMCwwLDAsMS45MDktLjI3NEExMC42NDYsMTAuNjQ2LDAsMCwwLDIzLjgxMiwxMC43ODNaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTAyZDE2XFxcIi8+PHBhdGggZD1cXFwiTTIzLjY0OSwxMC4zNDZhOS4zMTQsOS4zMTQsMCwwLDEtMi41MTgsNy43MjVjLS40NTUuNDg2LS44NzMuMTc3LTEuMjYzLjA2My4xMzguMzEzLjI3MS42MjYuNC45MzYuODksMi4yLDEuNCw0LjI2Ni4yNzEsNS4zMTJhMS41LDEuNSwwLDAsMCwxLjkwOS0uMjc0QzI2LjA4OSwyMC4xODMsMjYuMzU3LDE0LjkxOSwyMy42NDksMTAuMzQ2WlxcXCIgc3R5bGU9XFxcImZpbGwtb3BhY2l0eTowLjMxMzcyNTUwMTI5ODkwNDRcXFwiLz5cIixcblx0fSxcblx0XCJTdGFuXCI6IHtcblx0XHRjb2xvdXI6IFwiI2IyMDAxZFwiLFxuXHRcdGljb246IFwiPHRpdGxlPmZpbGVfdHlwZV9zdGFuPC90aXRsZT48cGF0aCBkPVxcXCJNMTYsMkExNCwxNCwwLDAsMCw1LjY4OCwyNS40NjljMS43LS41MTQsMy40MTEtLjk5Miw0LjgwNi0xLjM1Nyw0LjAzNy0xLjA1NCwxMC45NDgtMi44MzYsMTEuOTQ2LTUuMDgyLS4yOC43OC0xLjIxOCwyLjg3LTEuMjE4LDIuODctMS4yNzksMS4yNDctNy4wOSwyLjYzMS0xMC45MTcsMy4zNjctMS4yMi4yMzUtMi42MTQuNTA3LTQuMDI2LjgwNkExNCwxNCwwLDAsMCwyOC40NjcsOS42MjhjLTIuNTI2LjQwOC0xMC41LDEuODU0LTEyLjUzOSwyLjMxNS0yLjI1NS41MDktNi43ODksMS40MzMtNy42OTQsMi45OTNDOC44LDEzLjUsMTAuNDkyLDkuNzQ0LDEwLjQ5Miw5Ljc0NGMxLjIxNi0yLDYuNi0zLjQyNSwxMC4zNTgtNC40NjMuODc2LS4yNDIsMS45MjItLjUzOSwzLjAyMy0uODU4QTEzLjkzNCwxMy45MzQsMCwwLDAsMTYsMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiMjAwMWRcXFwiLz48cGF0aCBkPVxcXCJNOC4yMjMsMTQuOTg3Yy0uMjUyLDEuMTc1LDMuNTIsMi4zMTMsNi45MjEsMy4zODlhMjYuMzYyLDI2LjM2MiwwLDAsMSw1LjY2NywyLjE5MiwzLjA4NSwzLjA4NSwwLDAsMCwxLjY2Mi0xLjYxNGMuMzc3LTEuNDg5LTMuMDEzLTMuMzkzLTUuMjc0LTQuMjI5YTMzLjMzNywzMy4zMzcsMCwwLDEtNC40MDctMi4wNDJjLTQuMzE2LDEuMTQzLTQuNTY5LDIuMy00LjU2OSwyLjNaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTkwODE1XFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIjXCIsXG5cdFx0XSxcblx0fSxcblx0XCJTdGF0YSBBZG9cIjoge1xuXHRcdGNvbG91cjogXCIjM2M2ZThmXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxNlxcXCIgeTE9XFxcIjJcXFwiIHgyPVxcXCIxNlxcXCIgeTI9XFxcIjMwXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjOGFhN2MwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjM2M2ZThmXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9zdGF0YTwvdGl0bGU+PHJlY3QgeD1cXFwiMlxcXCIgeT1cXFwiMlxcXCIgd2lkdGg9XFxcIjI4XFxcIiBoZWlnaHQ9XFxcIjI4XFxcIiByeD1cXFwiMS41NTZcXFwiIHJ5PVxcXCIxLjU1NlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxyZWN0IHg9XFxcIjEzLjE3MVxcXCIgeT1cXFwiNi4wMTVcXFwiIHdpZHRoPVxcXCI1Ljc1NlxcXCIgaGVpZ2h0PVxcXCI1Ljc1NlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxyZWN0IHg9XFxcIjIwLjMyNlxcXCIgeT1cXFwiNi4wMTVcXFwiIHdpZHRoPVxcXCI1Ljc1NlxcXCIgaGVpZ2h0PVxcXCI1Ljc1NlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxyZWN0IHg9XFxcIjIwLjMyNlxcXCIgeT1cXFwiMTMuMTcxXFxcIiB3aWR0aD1cXFwiNS43NTZcXFwiIGhlaWdodD1cXFwiNS43NTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cmVjdCB4PVxcXCIxMy4xNzFcXFwiIHk9XFxcIjEzLjE3MVxcXCIgd2lkdGg9XFxcIjUuNzU2XFxcIiBoZWlnaHQ9XFxcIjUuNzU2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHJlY3QgeD1cXFwiNi4wMTVcXFwiIHk9XFxcIjEzLjE3MVxcXCIgd2lkdGg9XFxcIjUuNzU2XFxcIiBoZWlnaHQ9XFxcIjUuNzU2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHJlY3QgeD1cXFwiNi4wMTVcXFwiIHk9XFxcIjIwLjMyNlxcXCIgd2lkdGg9XFxcIjUuNzU2XFxcIiBoZWlnaHQ9XFxcIjUuNzU2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHJlY3QgeD1cXFwiMTMuMTcxXFxcIiB5PVxcXCIyMC4zMjZcXFwiIHdpZHRoPVxcXCI1Ljc1NlxcXCIgaGVpZ2h0PVxcXCI1Ljc1NlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIlN0eWx1c1wiOiB7XG5cdFx0Y29sb3VyOiBcIiNjMmMyYzJcIixcblx0XHRpY29uOiBcIjx0aXRsZT5maWxlX3R5cGVfc3R5bHVzPC90aXRsZT48cGF0aCBkPVxcXCJNNi4zMTUsMjAuNzc2Yy43MjYtLjg2OS44MTItMS43NjYuMjQ5LTMuNDMyLS4zNTYtMS4wNTQtLjk0Ny0xLjg2NS0uNTEzLTIuNTIxLjQ2My0uNywxLjQ0NS0uMDIxLjYyNy45MTFsLjE2NC4xMTRjLjk4My4xMTQsMS40NjctMS4yMzIuNzMzLTEuNjE2LTEuOTM3LTEuMDExLTMuNjMxLjkzMy0yLjg4NCwzLjE4My4zMi45NTQuNzY5LDEuOTY1LjQwNiwyLjc3QTEuNzk0LDEuNzk0LDAsMCwxLDMuNzczLDIxLjNjLS44NDcuMDQzLS4yODUtMS45LjY5MS0yLjM4NS4wODUtLjA0My4yMDYtLjEuMDkzLS4yNDJhMi4xMzQsMi4xMzQsMCwwLDAtMi4zMTQsMS4yQzEuMDYxLDIyLjEyMSw0LjQ4NSwyMi45NTQsNi4zMTUsMjAuNzc2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwYXRoIGQ9XFxcIk0yNy40NjIsMTQuMTRjLjI3OC42ODQuNywxLjM2LjQ0OSwxLjk1OC0uMjA2LjUxMy0uNDc3LjcyNi0uNzc2Ljc3Ni0uNDIuMDcxLS4zMDYtMS4yNDYuNDEzLTEuNjM4LjA2NC0uMDM2LjE1Ny0uMjA2LjA3MS0uMzA2YTEuNjM2LDEuNjM2LDAsMCwwLTEuNy45NjFjLS44LDEuNjg3LDEuODIzLDIuMTUsMy4xMTIuNDkxLjUxMy0uNjYyLjUzNC0xLjMxNy4wNDMtMi41MDYtLjMxMy0uNzU1LS43OS0xLjMxNy0uNDkxLTEuODE2LjMyLS41MjcsMS4wODktLjA3MS41MTMuNjM0bC4xMjguMDcxYy43NDguMDQzLDEuMDU0LS45NTQuNDg0LTEuMkExLjgzNCwxLjgzNCwwLDAsMCwyNy40NjIsMTQuMTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+PHBhdGggZD1cXFwiTTE3Ljk1LDEyLjMzOGMtLjUyLS40MTMtMS45NzkuMjc4LTIuMzkyLDEuM2ExNi4yMTMsMTYuMjEzLDAsMCwxLTIuMDQzLDQuMDM3Yy0uOC44NzYtLjg3Ni4yLS44LS4zMDZBMTUuMzI3LDE1LjMyNywwLDAsMSwxNC43LDEyLjY1MmMtLjIzNS0uMzQ5LTEuNzczLS4zLTIuODQxLDEuMzYtLjQuNjI3LTEuMzEsMi43MTMtMi4zMjEsNC4zNTgtLjIyMS4zNTYtLjUuMTA3LS4yODUtLjcyNmEzOS44LDM5LjgsMCwwLDEsMS44NzMtNS42ODIsMzkuMDcyLDM5LjA3MiwwLDAsMSw2LjkyMS0uODE5Yy4yNjMtLjA3MS40NDEtLjMwNiwwLS4zMmE0Ni43NzgsNDYuNzc4LDAsMCwwLTYuNTkzLjQ0MSw0LjkyMyw0LjkyMywwLDAsMSwxLjQ0NS0xLjk0NCwxLjc4NywxLjc4NywwLDAsMC0yLjI2NC43MTksMTIuMjg3LDEyLjI4NywwLDAsMC0uODE5LDEuNDUzLDI0LjE5NCwyNC4xOTQsMCwwLDAtMy45OC44NjJjLS43ODMuMy0uNywxLjI0Ni0uMjIxLDEuMDY4YTMxLjYzMSwzMS42MzEsMCwwLDEsMy44MTYtMS4xLDMwLjI5MiwzMC4yOTIsMCwwLDAtMS44NjUsNS42ODJjLS40NDEsMi40OTIsMS4xLDIuNDc4LDEuODU4LDEuNS44MTktMS4wNzUsMi41MjgtNC44NTYsMi43OTEtNS4yNTUuMDc4LS4xMzUuMTg1LS4wNjQuMTI4LjA1Ny0xLjkwOCwzLjgwOS0xLjc0NCw1LjI4My0uMiw0Ljk1NmE0LjkyOSw0LjkyOSwwLDAsMCwyLjIxNC0xLjk2NWMuMDY0LS4xNS4yLS4xMzUuMTcxLS4wNzEtMS4yMSwzLjE0LTIuNzQ4LDUuNjgyLTMuNzgxLDYuNDc5LS45NC43MTktMS42MzgtLjg0LDEuNjg3LTMuMDc2LjQ5MS0uMzM1LjI2My0uNzktLjI5Mi0uNjM0aDBhMjkuNzkzLDI5Ljc5MywwLDAsMC04Ljc4NiwzLjMyNWMtLjE2NC4xMTQtLjMxMy4yMDYtLjMwNi40NDEuMDA3LjEzNS4yNDIuMDg1LjM1Ni4wMTRBMjIuNzcxLDIyLjc3MSwwLDAsMSwxMS4xLDIwLjlhLjE1OC4xNTgsMCwwLDAsLjExNC4wMDdjLjEyMS0uMDI4LjExNC4wMzYuMDM2LjA4NS0uMTc4LjEtLjM1Ni4xOTItLjQuMjA2LTEuNzY2LjY5MS0yLjgzNCwyLjIxNC0yLjQ1NiwyLjk5LjMyLjY2OSwyLjA1MS40MjcsMi44NjktLjAxNCwyLjAwOC0xLjA4OSwzLjQ2OC0zLjIyNSw0LjQ2NC02LjE3M0MxNi42LDE1LjM4NiwxNy42OTMsMTIuNDI0LDE3Ljk1LDEyLjMzOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cGF0aCBkPVxcXCJNMjkuNjIsMTguMzY5YTQ4LjE0NSw0OC4xNDUsMCwwLDAtMTMuNDI5Ljk2OGMtLjkyNi4yNDItLjY2OS43MzMtLjIuNjQxLjAwNywwLC4yMDYtLjA1LjIxNC0uMDVhNDIuMjc5LDQyLjI3OSwwLDAsMSwxMi4zNzUtLjI0MkMyOS4wMTQsMTkuNzY1LDMwLjMxNywxOC40NjIsMjkuNjIsMTguMzY5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwYXRoIGQ9XFxcIk0xOC44NjEsMTcuOTg1Yy45MTEtLjQ1NiwyLjI2NC0zLjI3NSwzLjE1NC00LjgyLjA2NC0uMTE0LjE3OC0uMDIxLjExNC4wNTctMi4yNSwzLjg3My0xLjMsNC4zMjItLjQwNiw0LjI2NSwxLjE4OS0uMDcxLDIuMjg2LTEuNzgsMi41MjgtMi4xNjUuMS0uMTUuMTU3LS4wMjguMS4wNzgtLjA1Ny4xNzgtLjI2My40OTEtLjQ1Ni45MTktLjI3MS42MDUuMDE0Ljg0LjI0OS45NDcuMzcuMTc4LDEuMzgxLjA2NCwxLjUzOC0uNTU1LTEuMDExLS4wMjEsMS40MS00Ljc5MiwxLjY1OS01LjA4NGExLjcxOCwxLjcxOCwwLDAsMC0yLjIuOTc1Yy0xLjAxOCwyLjAxNS0xLjg3MywzLjYzOC0yLjQwNywzLjY2Ny0xLjA0LjA1NywxLjItNC40OTMsMS41NTktNC42MzUtLjIyMS0uMzItMS42MzgtLjE4NS0yLjQyOCwxLjA0LS4yODUuNDQxLTIuMDIyLDMuNTE3LTIuNDQ5LDQuMDIzLS43NTUuOS0uODEyLjEyOC0uNi0uNzY5YTEwLjU2OSwxMC41NjksMCwwLDEsLjM0OS0xLjEzMiw1LjMyNCw1LjMyNCwwLDAsMSwxLjM2LTEuODQ0YzIuMi0yLjQ0MiwzLjQ2LTQuNDIyLDIuOTYyLTUuMi0uNDQxLS42OTEtMS45MTUtLjM4NC0yLjg2MiwxLjA0LTEuNzQ0LDIuNjEzLTMuMzU0LDYuMTk1LTMuNTYsNy44MzJTMTguMDU2LDE4LjM4MywxOC44NjEsMTcuOTg1Wm0uOTI2LTQuNzkyYy4wNzgtLjE3OC4xMjgtLjIyOC4yNjMtLjUyN2gwQTI0LjkzNCwyNC45MzQsMCwwLDEsMjIuNDkyLDguMjhjLjQyLS40NDEsMS4wMTEuMTU3LS4wNTcsMS43OTRhMTYuNDYyLDE2LjQ2MiwwLDAsMS0yLjExNSwyLjY0MnYuMDA3Yy0uMi4yMjEtLjM3Ny40MDYtLjQ1Ni41MTNDMTkuODA4LDEzLjMwNywxOS43NDQsMTMuMjkyLDE5Ljc4NywxMy4xOTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+XCIsXG5cdH0sXG5cdFwiU1ZHXCI6IHtcblx0XHRjb2xvdXI6IFwiI2ZmYjEzYlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTcuNjc0LDE0LjQ4OGEyLjIxOCwyLjIxOCwwLDEsMCwwLDMuMTM3SDI0LjMyNmEyLjIxOCwyLjIxOCwwLDEsMCwwLTMuMTM3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYjEzYjtzdHJva2U6IzAwMDtzdHJva2Utd2lkdGg6My43MzAwMDAwMTkwNzM0OXB4XFxcIi8+PHBhdGggZD1cXFwiTTExLjIyMiw5LjA2QTIuMjE4LDIuMjE4LDAsMSwwLDksMTEuMjc4TDIwLjc3OCwyMy4wNTJBMi4yMTgsMi4yMTgsMCwxLDAsMjMsMjAuODM0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYjEzYjtzdHJva2U6IzAwMDtzdHJva2Utd2lkdGg6My43MzAwMDAwMTkwNzM0OXB4XFxcIi8+PHBhdGggZD1cXFwiTTE3LjU2OCw3LjczYTIuMjE4LDIuMjE4LDAsMSwwLTMuMTM3LDBWMjQuMzgyYTIuMjE4LDIuMjE4LDAsMSwwLDMuMTM3LDBaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiMTNiO3N0cm9rZTojMDAwO3N0cm9rZS13aWR0aDozLjczMDAwMDAxOTA3MzQ5cHhcXFwiLz48cGF0aCBkPVxcXCJNMjMsMTEuMjc4QTIuMjE4LDIuMjE4LDAsMSwwLDIwLjc3OCw5LjA2TDksMjAuODM0YTIuMjE4LDIuMjE4LDAsMSwwLDIuMjE4LDIuMjE4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYjEzYjtzdHJva2U6IzAwMDtzdHJva2Utd2lkdGg6My43MzAwMDAwMTkwNzM0OXB4XFxcIi8+PHBhdGggZD1cXFwiTTcuNjc0LDE0LjQ4OGEyLjIxOCwyLjIxOCwwLDEsMCwwLDMuMTM3SDI0LjMyNmEyLjIxOCwyLjIxOCwwLDEsMCwwLTMuMTM3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYjEzYlxcXCIvPjxwYXRoIGQ9XFxcIk0xMS4yMjIsOS4wNkEyLjIxOCwyLjIxOCwwLDEsMCw5LDExLjI3OEwyMC43NzgsMjMuMDUyQTIuMjE4LDIuMjE4LDAsMSwwLDIzLDIwLjgzNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmIxM2JcXFwiLz48cGF0aCBkPVxcXCJNMTcuNTY4LDcuNzNhMi4yMTgsMi4yMTgsMCwxLDAtMy4xMzcsMFYyNC4zODJhMi4yMTgsMi4yMTgsMCwxLDAsMy4xMzcsMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmIxM2JcXFwiLz48cGF0aCBkPVxcXCJNMjMsMTEuMjc4QTIuMjE4LDIuMjE4LDAsMSwwLDIwLjc3OCw5LjA2TDksMjAuODM0YTIuMjE4LDIuMjE4LDAsMSwwLDIuMjE4LDIuMjE4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYjEzYlxcXCIvPjxwYXRoIGQ9XFxcIk0yLDE2LjA1NkgzMFYyNS45NWE0LjAzNSw0LjAzNSwwLDAsMS00LjEwNiw0LjEwNkg2LjEwNkE0LjAzNSw0LjAzNSwwLDAsMSwyLDI1Ljk1WlxcXCIvPjxwYXRoIGQ9XFxcIk02LjIsMjMuMDQ1QTMuNjI4LDMuNjI4LDAsMSwxLDEyLjQsMjAuNDhIMTAuMjdBMS41LDEuNSwwLDEsMCw3LjcsMjEuNTQxaDBhMS42LDEuNiwwLDAsMCwxLjA2Mi40NDFoMGE0LjExOCw0LjExOCwwLDAsMSwyLjU2NiwxLjA2M2gwYTMuNjI4LDMuNjI4LDAsMSwxLTYuMTk0LDIuNTY1SDcuMjY0QTEuNSwxLjUsMCwxLDAsOS44MywyNC41NWgwYTEuOTQ4LDEuOTQ4LDAsMCwwLTEuMDYzLS40NGgwQTQuNDY1LDQuNDY1LDAsMCwxLDYuMiwyMy4wNDVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE5LjY1MSwxNi44NTIsMTcuMDg1LDI5LjI0SDE0Ljk2TDEyLjQsMTYuODUySDE0LjUybDEuNSw3LjI1NSwxLjUtNy4yNTVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTIzLjI4LDIxLjk4M2gzLjYyOHYzLjYyOGgwYTMuNjI4LDMuNjI4LDAsMSwxLTcuMjU3LDBoMFYyMC40OGgwYTMuNjI4LDMuNjI4LDAsMCwxLDcuMjU3LDBIMjQuNzgzYTEuNSwxLjUsMCwxLDAtMy4wMDUsMHY1LjEzaDBhMS41LDEuNSwwLDAsMCwzLjAwNSwwaDB2LTEuNWgtMS41VjIxLjk4M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0fSxcblx0XCJTd2lmdFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNGQTVEMkRcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIi0xMzQuNDk0XFxcIiB5MT1cXFwiLTE3MS44MlxcXCIgeDI9XFxcIi0xMzQuNDk3XFxcIiB5Mj1cXFwiLTE3MS44OVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgyNDAsIDAsIDAsIC0yMDUuNiwgMzIyOTUsIC0zNTMxMi41ODUpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZjg4NTM1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmQyMjIxXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9zd2lmdDwvdGl0bGU+PHBhdGggZD1cXFwiTTE5LjQyMiw0LjAwN3M2LjIxNywzLjU1NCw3Ljg0NCw5LjJjMS40NjYsNS4xLjI5Miw3LjUzNC4yOTIsNy41MzRhOC45MTUsOC45MTUsMCwwLDEsMS43NDIsMi44LDQuODI1LDQuODI1LDAsMCwxLC4yOSw0LjQ1M3MtLjEtMi4wOC0zLjItMi41MTFjLTIuODQxLS40LTMuODc0LDIuMzY2LTkuMywyLjIzMkExOC40MzUsMTguNDM1LDAsMCwxLDIsMTkuMzU0QzQuNjUxLDIwLjgsOC4xMjQsMjMuMDQ1LDEyLjQ0OSwyMi43czUuMjI4LTEuNjc0LDUuMjI4LTEuNjc0QTY2LjksNjYuOSwwLDAsMSw0Ljg5MSw3LjY0M2MzLjQsMi44NDUsMTEuODIyLDguNTA3LDExLjYyNiw4LjM2M0E3NS44MjYsNzUuODI2LDAsMCwxLDguMDkyLDYuMjRTMjAuNzI4LDE2LjYyOSwyMS43NDUsMTYuNTYzYy40MTgtLjg2MSwyLjU3OS01LjMxOC0yLjMyNC0xMi41NTdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIvL1wiLFxuXHRcdF0sXG5cdH0sXG5cdFwiU3lzdGVtZCBjb25maWd1cmF0aW9uIGZpbGVcIjoge1xuXHRcdGNvbG91cjogXCIjMzBkNDc1XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMiwxMnY4SDUuMjU2VjE4Ljc2OUgzLjNWMTMuMjMxSDUuMjU2VjEyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0yNi43NDQsMTJ2MS4yMzFIMjguN3Y1LjUzOEgyNi43NDRWMjBIMzBWMTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTE3LjYyOCwxNmw1LjIxLTIuNzY5djUuNTM4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzMwZDQ3NVxcXCIvPjxlbGxpcHNlIGN4PVxcXCIxMi4wOTNcXFwiIGN5PVxcXCIxNlxcXCIgcng9XFxcIjIuOTNcXFwiIHJ5PVxcXCIyLjc2OVxcXCIgc3R5bGU9XFxcImZpbGw6IzMwZDQ3NVxcXCIvPlwiLFxuXHR9LFxuXHRcIlQ0IHRlbXBsYXRpbmdcIjoge1xuXHRcdGNvbG91cjogXCIjMWU4OGU1XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTkuNTQ1LDYuMDM1SDEzLjI3VjI0SDguM1Y2LjAzNUgyLjA1NVYyaDE3LjQ5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzFlODhlNVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy41NjcsMTBWMjIuNjA4aDIuNFYyNS45aC0yLjRWMzBIMjMuNTUxVjI1LjlIMTQuODM0VjIyLjQ1NXExLjE1OC0xLjMsMi40LTIuODM4dDIuNC0zLjE3M3ExLjE1OC0xLjYzMiwyLjE1NS0zLjI4NUEzMi45MjUsMzIuOTI1LDAsMCwwLDIzLjQ4MSwxMFpNMTguNzgxLDIyLjYwOGg0Ljc3VjE1LjYyMXEtLjQ4OC45MDctMS4wNiwxLjgzNHQtMS4yLDEuODI3cS0uNjI4LjktMS4yNjksMS43NDNUMTguNzgxLDIyLjYwOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxZTg4ZTVcXFwiLz5cIixcblx0fSxcblx0XCJUNCBUZXh0IFRlbXBsYXRlcyAoQyMpXCI6IHtcblx0XHRjb2xvdXI6IFwiIzFlODhlNVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE5LjU0NSw2LjAzNUgxMy4yN1YyNEg4LjNWNi4wMzVIMi4wNTVWMmgxNy40OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxZTg4ZTVcXFwiLz48cGF0aCBkPVxcXCJNMjcuNTY3LDEwVjIyLjYwOGgyLjRWMjUuOWgtMi40VjMwSDIzLjU1MVYyNS45SDE0LjgzNFYyMi40NTVxMS4xNTgtMS4zLDIuNC0yLjgzOHQyLjQtMy4xNzNxMS4xNTgtMS42MzIsMi4xNTUtMy4yODVBMzIuOTI1LDMyLjkyNSwwLDAsMCwyMy40ODEsMTBaTTE4Ljc4MSwyMi42MDhoNC43N1YxNS42MjFxLS40ODguOTA3LTEuMDYsMS44MzR0LTEuMiwxLjgyN3EtLjYyOC45LTEuMjY5LDEuNzQzVDE4Ljc4MSwyMi42MDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWU4OGU1XFxcIi8+XCIsXG5cdH0sXG5cdFwiVDQgVGV4dCBUZW1wbGF0ZXMgKFZCKVwiOiB7XG5cdFx0Y29sb3VyOiBcIiMxZTg4ZTVcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xOS41NDUsNi4wMzVIMTMuMjdWMjRIOC4zVjYuMDM1SDIuMDU1VjJoMTcuNDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWU4OGU1XFxcIi8+PHBhdGggZD1cXFwiTTI3LjU2NywxMFYyMi42MDhoMi40VjI1LjloLTIuNFYzMEgyMy41NTFWMjUuOUgxNC44MzRWMjIuNDU1cTEuMTU4LTEuMywyLjQtMi44Mzh0Mi40LTMuMTczcTEuMTU4LTEuNjMyLDIuMTU1LTMuMjg1QTMyLjkyNSwzMi45MjUsMCwwLDAsMjMuNDgxLDEwWk0xOC43ODEsMjIuNjA4aDQuNzdWMTUuNjIxcS0uNDg4LjkwNy0xLjA2LDEuODM0dC0xLjIsMS44MjdxLS42MjguOS0xLjI2OSwxLjc0M1QxOC43ODEsMjIuNjA4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzFlODhlNVxcXCIvPlwiLFxuXHR9LFxuXHRcIlRjbFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNlZmYxY2JcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yMS45NDIsMi44NzZjLjA0LDIuNDY4LS4wMzMsNC45MS0yLjE2OSw3LjIzbC0uMDc5LjA4OWguMTE5bC44NzMuMDEzYy0xLjQxOCwyLjk1LTIuMzQxLDUuODkyLTQuMzgsOC44M2wtLjA3My4xMDYuMTI2LS4wMjMsMS4wNzgtLjJhNS44NTEsNS44NTEsMCwwLDEtMy40ODQsMy42NWMtLjM5LTUuNDU1LDIuMzMzLTEwLjI3LDQuNjQ1LTE1LjA3MWwuMDA3LS4wMTMtLjA4Ni0uMDZjLTMuNzg2LDQuMjMzLTUuNDkxLDEwLjItNi4xMzYsMTUuMTI3YTQuNTgyLDQuNTgyLDAsMCwxLTIuMTQ1LTIuOTg4bC45LjM3Ny4wOTMuMDQtLjAyLS4xYy0uNjgxLTMuMDI4LjM3Ni01LjIsMS40LTguMDU2bC43MzcuNDkzLjA4Ni4wNiwwLS4xYy0uMDU4LTIuMzIsMS41LTQuNjQ5LDMuNTc3LTYuNzI3bC4yODguNzcuMDQuMS4wNTYtLjEuNjMxLTEuMDUxLDAtLjAwN0E2LjEsNi4xLDAsMCwxLDIxLjk0MiwyLjg3NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjM2IxNWZcXFwiLz48cGF0aCBkPVxcXCJNMjEuOTQ4LDIuODc1YTYuMTMxLDYuMTMxLDAsMCwwLTMuOTI2LDIuMzg4bDAsLjAwNy0uNjMxLDEuMDUxLS4wNTYuMS0uMDQtLjFMMTcsNS41NDRjLTIuMDcyLDIuMDc4LTMuNjM1LDQuNDA3LTMuNTc3LDYuNzI3bDAsLjEtLjA4Ni0uMDYtLjczNy0uNDkzYy0xLjAyNSwyLjg1Ni0yLjA4Myw1LjAyOS0xLjQsOC4wNTZsLjAyLjEtLjA5My0uMDQtLjg4Ni0uMzc0YzAsLjAxOC4wMDcuMDM1LjAxLjA1M2E0LjUzMyw0LjUzMywwLDAsMCwyLjEyNiwyLjkzMmMuMDUtLjM4MS4xMDUtLjc3MS4xNjktMS4xNjQtMS41NDMtMy42MTQtLjItNi4yNzEuNDA3LTguNjYxbC45MzkuNTQyYy0uMTMtMi4yMzgsMS4xODQtNC42NTEsMi44OTMtNi43NTdsLjUuODczQzE4LjU1NSw0Ljc2OSwxOS41NiwzLjcyLDIxLjk0OCwyLjg3NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZmYxY2I7c3Ryb2tlOiNlZmYxY2JcXFwiLz48cGF0aCBkPVxcXCJNMjIuNTE4LDJsLS4wNTYuMDFjLTIuMDgyLjM2My00LjEyMSwxLjEyOC01LjAxNSwyLjk1OWwtLjM3Ny0uNjU4LS4wMzMtLjA2LS4wNS4wNWEyMC44NSwyMC44NSwwLDAsMC0yLjkzOSwzLjVBNS45MzksNS45MzksMCwwLDAsMTIuODM1LDExbC0uNTMyLS42NjQtLjA1My0uMDY2LS4wMzYuMDc2YTI3LjUzNSwyNy41MzUsMCwwLDAtMS42OTMsNC43LDYuNzMsNi43MywwLDAsMC0uMTU5LDMuNzE5bC0uODc2LS41MDktLjA3My0uMDQzLS4wMDcuMDg2YTUuNTI5LDUuNTI5LDAsMCwwLDIuMDE3LDQuODQzbC0uOTcyLjI0MS0uMi4wNS4yLjA1M2E0LjI1OCw0LjI1OCwwLDAsMSwxLjQ1NS42LDEuMzI1LDEuMzI1LDAsMCwxLC41MTYsMS4zVjI4LjFsLjAxLjAxMywxLjIxNywxLjc0NS4xLjEzOVYyNS43MTlhMy40NjYsMy40NjYsMCwwLDEsLjYyMS0xLjQ4NEExLjYzOSwxLjYzOSwwLDAsMSwxNS41LDIzLjdsLjE4Mi0uMDIzLS4xNjUtLjA3Ni0uNjQxLS4zYTkuMTEyLDkuMTEyLDAsMCwwLDMuNjkzLTUuMzIybC4wMi0uMDg2LS4wODMuMDIzLS43OTMuMjE1YTExLjY2OSwxMS42NjksMCwwLDAsMi4wODktMy41QzIwLjUxMiwxMywyMS4xOCwxMS4xNjYsMjEuNzI4LDkuN2wuMDMtLjA3OS0uMDgzLjAwNy0uNjEyLjA0M2E2LjY1NSw2LjY1NSwwLDAsMCwxLjM4Mi0zLjUyNywxNy4wMzksMTcuMDM5LDAsMCwwLC4wNzktNC4wODZabS0uNTc1Ljg3NmMuMDQsMi40NjgtLjAzMyw0LjkxLTIuMTY5LDcuMjNsLS4wNzkuMDg5aC4xMTlsLjg3My4wMTNjLTEuNDE4LDIuOTUtMi4zNDEsNS44OTItNC4zOCw4LjgzbC0uMDczLjEwNi4xMjYtLjAyMywxLjA3OC0uMmE1Ljg1MSw1Ljg1MSwwLDAsMS0zLjQ4NCwzLjY1Yy0uMzktNS40NTUsMi4zMzMtMTAuMjcsNC42NDUtMTUuMDcxbC4wMDctLjAxMy0uMDg2LS4wNmMtMy43ODYsNC4yMzMtNS40OTEsMTAuMi02LjEzNiwxNS4xMjdhNC41ODIsNC41ODIsMCwwLDEtMi4xNDUtMi45ODhsLjkuMzc3LjA5My4wNC0uMDItLjFjLS42ODEtMy4wMjguMzc2LTUuMiwxLjQtOC4wNTZsLjczNy40OTMuMDg2LjA2LDAtLjFjLS4wNTgtMi4zMiwxLjUtNC42NDksMy41NzctNi43MjdsLjI4OC43Ny4wNC4xLjA1Ni0uMS42MzEtMS4wNTEsMC0uMDA3QTYuMSw2LjEsMCwwLDEsMjEuOTQyLDIuODc2WlxcXCIvPlwiLFxuXHR9LFxuXHRcIlRlbXBsYXRlIFRvb2xraXQgMlwiOiB7XG5cdFx0Y29sb3VyOiBcIiMzYmNlZmNcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk04LjkwNywyMy4wMjFIOC44NzhhMy4zMDUsMy4zMDUsMCwwLDEtMi4wMTEtLjY2MUEyLjU2MSwyLjU2MSwwLDAsMSw1LjgzLDIwLjMzNFYxNi4xSDQuMjg4YTMuMDUsMy4wNSwwLDAsMS0yLjczOC0xLjY5LDMuMywzLjMsMCwwLDEsLjQ0MS0zLjUzLDIuMjY1LDIuMjY1LDAsMCwxLDEuODE1LS45aDkuNjVhMy4wNSwzLjA1LDAsMCwxLDIuNzM4LDEuNjksMy4zLDMuMywwLDAsMS0uNDQxLDMuNTMsMi4yNjUsMi4yNjUsMCwwLDEtMS44MTUuOUgxMS45NTV2NC4yMzFhMi41NjEsMi41NjEsMCwwLDEtMS4wMzcsMi4wMjZBMy4zMDUsMy4zMDUsMCwwLDEsOC45MDcsMjMuMDIxWk00LjI2NCwxMS42MzZhMS4zOSwxLjM5LDAsMCwwLTEuMzg4LDEuMzg4di4wMzNhMS4zOSwxLjM5LDAsMCwwLDEuMzg4LDEuMzg4SDcuNDg3djUuODgxYzAsLjU3Mi42MjQsMS4wMzcsMS4zOSwxLjAzN2guMDI5Yy43NjcsMCwxLjM5LS40NjUsMS4zOS0xLjAzN1YxNC40NDZoMy4yMjNhMS4zOSwxLjM5LDAsMCwwLDEuMzg4LTEuMzg4di0uMDMzYTEuMzksMS4zOSwwLDAsMC0xLjM4OC0xLjM4OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMTVkOWFcXFwiLz48cGF0aCBkPVxcXCJNMTQuOTgxLDEyLjk1M3YuMDMzYTEuNTMzLDEuNTMzLDAsMCwxLTEuNTMzLDEuNTMzSDEwLjM3djUuNzM3YTEuMzkzLDEuMzkzLDAsMCwxLTEuNTM1LDEuMTgxSDguODA2YTEuMzkzLDEuMzkzLDAsMCwxLTEuNTM1LTEuMTgxVjE0LjUxOEg0LjE5MkExLjUzMywxLjUzMywwLDAsMSwyLjY2LDEyLjk4NnYtLjAzM0ExLjUzMywxLjUzMywwLDAsMSw0LjE5MiwxMS40Mmg5LjI1N0ExLjUzMywxLjUzMywwLDAsMSwxNC45ODEsMTIuOTUzWm0tNC4yMjMsOS4yMjJhMi40MTgsMi40MTgsMCwwLDAsLjk4LTEuOTEyVjE1Ljg4OGgyLjEyN2EyLjExNCwyLjExNCwwLDAsMCwxLjctLjg0NiwyLjk5MiwyLjk5MiwwLDAsMC0yLjE4LTQuOTlIMy43MzVhMi4xMTQsMi4xMTQsMCwwLDAtMS43Ljg0NiwyLjk5MiwyLjk5MiwwLDAsMCwyLjE4LDQuOTlINS45djQuMzc1YTIuNDE4LDIuNDE4LDAsMCwwLC45OCwxLjkxMiwzLjE2LDMuMTYsMCwwLDAsMS45MjMuNjMxaC4wMjlBMy4xNiwzLjE2LDAsMCwwLDEwLjc1OCwyMi4xNzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojM2JjZWZjXFxcIi8+PHBhdGggZD1cXFwiTTIzLjYwNywyMy4wMjFoLS4wMjlhMy4zMDUsMy4zMDUsMCwwLDEtMi4wMTEtLjY2MSwyLjU2MSwyLjU2MSwwLDAsMS0xLjAzNy0yLjAyNlYxNi4xSDE4Ljk4OGEzLjA1LDMuMDUsMCwwLDEtMi43MzgtMS42OSwzLjMsMy4zLDAsMCwxLC40NDEtMy41MywyLjI2NSwyLjI2NSwwLDAsMSwxLjgxNS0uOWg5LjY1YTMuMDUsMy4wNSwwLDAsMSwyLjczOCwxLjY5LDMuMywzLjMsMCwwLDEtLjQ0MSwzLjUzLDIuMjY1LDIuMjY1LDAsMCwxLTEuODE1LjlIMjYuNjU1djQuMjMxYTIuNTYxLDIuNTYxLDAsMCwxLTEuMDM3LDIuMDI2QTMuMzA1LDMuMzA1LDAsMCwxLDIzLjYwNywyMy4wMjFaTTE4Ljk2NCwxMS42MzZhMS4zOSwxLjM5LDAsMCwwLTEuMzg4LDEuMzg4di4wMzNhMS4zOSwxLjM5LDAsMCwwLDEuMzg4LDEuMzg4aDMuMjIzdjUuODgxYzAsLjU3Mi42MjQsMS4wMzcsMS4zOSwxLjAzN2guMDI5Yy43NjcsMCwxLjM5LS40NjUsMS4zOS0xLjAzN1YxNC40NDZoMy4yMjNhMS4zOSwxLjM5LDAsMCwwLDEuMzg4LTEuMzg4di0uMDMzYTEuMzksMS4zOSwwLDAsMC0xLjM4OC0xLjM4OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMTVkOWFcXFwiLz48cGF0aCBkPVxcXCJNMjkuNjgxLDEyLjk1M3YuMDMzYTEuNTMzLDEuNTMzLDAsMCwxLTEuNTMzLDEuNTMzSDI1LjA3djUuNzM3YTEuMzkzLDEuMzkzLDAsMCwxLTEuNTM1LDEuMTgxaC0uMDI5YTEuMzkzLDEuMzkzLDAsMCwxLTEuNTM1LTEuMTgxVjE0LjUxOEgxOC44OTJhMS41MzMsMS41MzMsMCwwLDEtMS41MzMtMS41MzN2LS4wMzNhMS41MzMsMS41MzMsMCwwLDEsMS41MzMtMS41MzNoOS4yNTdBMS41MzMsMS41MzMsMCwwLDEsMjkuNjgxLDEyLjk1M1ptLTQuMjIzLDkuMjIyYTIuNDE4LDIuNDE4LDAsMCwwLC45OC0xLjkxMlYxNS44ODhoMi4xMjdhMi4xMTQsMi4xMTQsMCwwLDAsMS43LS44NDYsMi45OTIsMi45OTIsMCwwLDAtMi4xOC00Ljk5aC05LjY1YTIuMTE0LDIuMTE0LDAsMCwwLTEuNy44NDYsMi45OTIsMi45OTIsMCwwLDAsMi4xOCw0Ljk5SDIwLjZ2NC4zNzVhMi40MTgsMi40MTgsMCwwLDAsLjk4LDEuOTEyLDMuMTYsMy4xNiwwLDAsMCwxLjkyMy42MzFoLjAyOUEzLjE2LDMuMTYsMCwwLDAsMjUuNDU4LDIyLjE3NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzYmNlZmNcXFwiLz5cIixcblx0fSxcblx0XCJUZVhcIjoge1xuXHRcdGNvbG91cjogXCIjY2ZjZmNmXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTEuMzMzLDEzLjEyMmMtLjEyOC0xLjU2Mi0uMjQxLTIuNzU2LTIuMjg3LTIuNzU2SDcuOTF2OC40aDIuMTQ1di42MTFsLTMuMDgzLS4wMjktMy4wODIuMDI5di0uNjExSDYuMDM0di04LjRINC44ODRjLTIuMDQ2LDAtMi4xNTksMS4yMDgtMi4yODcsMi43NTZIMmwuMjg0LTMuMzY3aDkuMzYybC4yODQsMy4zNjdoLS42WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NmY2ZjZlxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4yODksMjIuNTNIMTAuNDFWMjEuOTJoMS41MDZWMTMuNDY3SDEwLjQxdi0uNjExaDguNjM3bC40MTIsMy4zNjdoLS42Yy0uMjEzLTEuODMzLS42ODItMi43NTYtMi44NTUtMi43NTZIMTMuNzkxVjE3LjJoLjgzOGMxLjM2NCwwLDEuNTA1LS42LDEuNTA1LTEuNjYyaC42djMuOTM1aC0uNmMwLTEuMDgtLjE0Mi0xLjY2Mi0xLjUwNS0xLjY2MmgtLjgzOHY0LjEwNmgyLjIxNmMyLjQ3MiwwLDMtMS4xMDgsMy4zLTMuMjI1aC42WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NmY2ZjZlxcXCIvPjxwYXRoIGQ9XFxcIk0yNy43MjcsMTkuMTg2Yy0uNTQsMC0xLjk2LDAtMi40MTUuMDI5VjE4LjZoMS4xNzlsLTIuNTU3LTMuNTUyLTIuNTI5LDMuMzgxQTQuMSw0LjEsMCwwLDAsMjIuNywxOC42di42MTFjLS4zNTUtLjAyOS0xLjU3Ni0uMDI5LTIuMDE3LS4wMjktLjQsMC0xLjU0OCwwLTEuODc1LjAyOVYxOC42aC4zODNhNy40NTksNy40NTksMCwwLDAsLjgyNC0uMDQzYy41LS4wNDMuNTQtLjA4NS42NjctLjI1NkwyMy41MzYsMTQuNWwtMy4xNTMtNC40MThIMTlWOS40N2MuMzg0LjAyOCwxLjc5LjAyOCwyLjI3My4wMjguNTgyLDAsMS45MTgsMCwyLjQyOS0uMDI4di42MTFIMjIuNTI4bDIuMTE3LDIuOTU1LDIuMDc0LTIuNzg0YTQuMSw0LjEsMCwwLDAtMS4yOTMtLjE3VjkuNDdjLjM1Ni4wMjgsMS41OTEuMDI4LDIuMDMyLjAyOC40LDAsMS41MzQsMCwxLjg2MS0uMDI4di42MTFoLS4zNjlhNS4yNjQsNS4yNjQsMCwwLDAtLjgzOC4wNDNjLS40NjkuMDQzLS41MjYuMDcxLS42NjcuMjU2bC0yLjQsMy4yMUwyOC42MzYsMTguNkgzMHYuNjExQzI5LjY0NSwxOS4xODYsMjguMTgyLDE5LjE4NiwyNy43MjcsMTkuMTg2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NmY2ZjZlxcXCIvPlwiLFxuXHRcdGlubGluZUNvbW1lbnQ6IFtcblx0XHRcdFwiJVwiLFxuXHRcdF0sXG5cdH0sXG5cdFwiVGV4dGlsZVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNmZmU3YWNcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yOC42ODEsMjYuMDc1SDMuMzE5QTEuMzE3LDEuMzE3LDAsMCwxLDIsMjQuNzU2VjcuMjQ0QTEuMzE3LDEuMzE3LDAsMCwxLDMuMzE5LDUuOTI1SDI4LjY4MUExLjMxNywxLjMxNywwLDAsMSwzMCw3LjI0NFYyNC43NkExLjMxNiwxLjMxNiwwLDAsMSwyOC42ODEsMjYuMDc1WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZTdhY1xcXCIvPjxwYXRoIGQ9XFxcIk02LjA2NiwxMi44NDhhNC45ODcsNC45ODcsMCwwLDEsMS41MDgtLjY1OVYxMC42NjRhMy43LDMuNywwLDAsMSwuNzQzLS4zMyw3Ljg2OSw3Ljg2OSwwLDAsMSwxLjMyNy0uMzQ3aC42NDJ2Mi4zOTFoMi40ODRWMTMuNkgxMC4yODZ2NC44NDhhMy4xNzIsMy4xNzIsMCwwLDAsLjI5LDEuNjA5LDEuMDcsMS4wNywwLDAsMCwuOTcxLjQ0OCw3LjEyNyw3LjEyNywwLDAsMCwuNzYtLjA0OCwzLjMzOCwzLjMzOCwwLDAsMCwuNzgyLS4xOGwuMTMyLjYyYTIuMzg4LDIuMzg4LDAsMCwxLS41LjM1Niw1LjQ1Nyw1LjQ1NywwLDAsMS0uNzUyLjM1Niw1LjgzNyw1LjgzNywwLDAsMS0uOTIzLjI4MUE0Ljc2OSw0Ljc2OSwwLDAsMSwxMCwyMmEyLjM4NSwyLjM4NSwwLDAsMS0xLjgyNC0uNjM3LDIuOTQ3LDIuOTQ3LDAsMCwxLS42LTIuMDYyVjEzLjU5MUg2LjA2NlpcXFwiLz48cGF0aCBkPVxcXCJNMTQuNjA3LDIwLjQ1M2ExLjQ0NywxLjQ0NywwLDAsMSwuNDMxLTEuMDksMS41OTEsMS41OTEsMCwwLDEsMS4xNDctLjQxMywxLjY0OSwxLjY0OSwwLDAsMSwxLjE2NS40MTMsMS40MjIsMS40MjIsMCwwLDEsLjQ1MywxLjA5LDEuMzY5LDEuMzY5LDAsMCwxLS40NTMsMS4wODEsMS42OTIsMS42OTIsMCwwLDEtMS4xNjUuNCwxLjYxLDEuNjEsMCwwLDEtMS4xNDctLjRBMS40MjcsMS40MjcsMCwwLDEsMTQuNjA3LDIwLjQ1M1pcXFwiLz5cIixcblx0fSxcblx0XCJUT01MXCI6IHtcblx0XHRjb2xvdXI6IFwiI2JmYmZiZlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTIyLjc2LDYuODN2My4yNWgtNVYyNS4xN0gxNC4yNlYxMC4wOGgtNVY2LjgzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzdmN2Y3ZlxcXCIvPjxwYXRoIGQ9XFxcIk0yLDJIOC4yVjUuMDlINS4zNHYyMS44SDguMlYzMEgyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2JmYmZiZlxcXCIvPjxwYXRoIGQ9XFxcIk0zMCwzMEgyMy44VjI2LjkxaDIuODZWNS4xMUgyMy44VjJIMzBaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmZiZmJmXFxcIi8+XCIsXG5cdH0sXG5cdFwiVFNDb25maWdcIjoge1xuXHRcdGNvbG91cjogXCIjMDA3YWNjXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjMuODI3LDguMjQzQTQuNDI0LDQuNDI0LDAsMCwxLDI2LjA1LDkuNTI0YTUuODUzLDUuODUzLDAsMCwxLC44NTIsMS4xNDNjLjAxMS4wNDUtMS41MzQsMS4wODMtMi40NzEsMS42NjItLjAzNC4wMjMtLjE2OS0uMTI0LS4zMjItLjM1YTIuMDE0LDIuMDE0LDAsMCwwLTEuNjctMWMtMS4wNzctLjA3NC0xLjc3MS40OS0xLjc2NiwxLjQzM2ExLjMsMS4zLDAsMCwwLC4xNTMuNjY2Yy4yMzcuNDkuNjc3Ljc4NCwyLjA1OSwxLjM4MywyLjU0NCwxLjEsMy42MzYsMS44MTcsNC4zMSwyLjg0M2E1LjE1OCw1LjE1OCwwLDAsMSwuNDE2LDQuMzMzLDQuNzY0LDQuNzY0LDAsMCwxLTMuOTMyLDIuODE1LDEwLjksMTAuOSwwLDAsMS0yLjcwOC0uMDI4LDYuNTMxLDYuNTMxLDAsMCwxLTMuNjE2LTEuODg0LDYuMjc4LDYuMjc4LDAsMCwxLS45MjYtMS4zNzEsMi42NTUsMi42NTUsMCwwLDEsLjMyNy0uMjA4Yy4xNTgtLjA5Ljc1Ni0uNDM0LDEuMzItLjc2MWwxLjAyNC0uNi4yMTQuMzEyYTQuNzcxLDQuNzcxLDAsMCwwLDEuMzUsMS4yOTIsMy4zLDMuMywwLDAsMCwzLjQ1OC0uMTc1LDEuNTQ1LDEuNTQ1LDAsMCwwLC4yLTEuOTc0Yy0uMjc2LS40LS44NC0uNzI3LTIuNDQzLTEuNDIyYTguOCw4LjgsMCwwLDEtMy4zNDktMi4wNTUsNC42ODcsNC42ODcsMCwwLDEtLjk3Ni0xLjc3Nyw3LjExNiw3LjExNiwwLDAsMS0uMDYyLTIuMjY4LDQuMzMyLDQuMzMyLDAsMCwxLDMuNjQ0LTMuMzc0QTksOSwwLDAsMSwyMy44MjcsOC4yNDNaTTE1LjQ4NCw5LjcyNmwuMDExLDEuNDU0aC00LjYzVjI0LjMyOEg3LjZWMTEuMTgzSDIuOTdWOS43NTVhMTMuOTg2LDEzLjk4NiwwLDAsMSwuMDQtMS40NjZjLjAxNy0uMDIzLDIuODMyLS4wMzQsNi4yNDUtLjAyOGw2LjIxMS4wMTdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA3YWNjXFxcIi8+PHBhdGggZD1cXFwiTTI3LjA3NSwyNS4xMDdsLjM2My0uMzYxYzEuNjguMDU1LDEuNzA2LDAsMS43OC0uMTc3bC40NjItMS4xMjQuMDM0LS4xMDctLjAzOC0uMDkzYy0uMDItLjA0OS0uMDgxLS4yLTEuMTMtMS4ydi0uNTI2YzEuMjExLTEuMTY2LDEuMTg1LTEuMjI2LDEuMTE2LTEuNGwtLjQ2LTEuMTM2Yy0uMDY5LS4xNy0uMS0uMjM3LTEuNzYzLS4xOTFsLS4zNjQtLjM2N2E4LjEzOCw4LjEzOCwwLDAsMC0uMDU3LTEuNjU3bC0uMDQ3LS4xMDYtMS4yLS41MjVjLS4xNzctLjA4MS0uMjM5LS4xMS0xLjM3MiwxLjEyNGwtLjUwOS0uMDA4Yy0xLjE2Ny0xLjI0NS0xLjIyMi0xLjIyMy0xLjQtMS4xNTJsLTEuMTE1LjQ1MmMtLjE3NS4wNzEtLjIzNi4xLS4xNjksMS43OWwtLjM2LjM1OWMtMS42OC0uMDU1LTEuNywwLTEuNzc4LjE3N0wxOC42MDYsMjBsLS4wMzYuMTA4LjAzOC4wOTRjLjAyLjA0OC4wNzguMTk0LDEuMTMsMS4ydi41MjVjLTEuMjExLDEuMTY2LTEuMTg0LDEuMjI2LTEuMTE1LDEuNGwuNDU5LDEuMTM3Yy4wNy4xNzQuMS4yMzYsMS43NjMuMTkybC4zNjMuMzc3YTguMTY5LDguMTY5LDAsMCwwLC4wNTUsMS42NTRsLjA0Ny4xMDcsMS4yMDguNTI4Yy4xNzYuMDczLjIzNi4xLDEuMzY2LTEuMTNsLjUwOS4wMDZjMS4xNjgsMS4yNDcsMS4yMjgsMS4yMjMsMS40LDEuMTU0bDEuMTEzLS40NUMyNy4wODIsMjYuODI3LDI3LjE0MywyNi44LDI3LjA3NSwyNS4xMDdabS00Ljc4OC0yLjYzMmEyLDIsMCwxLDEsMi42MTgsMS4xNEEyLjAyMywyLjAyMywwLDAsMSwyMi4yODcsMjIuNDc1WlxcXCIgc3R5bGU9XFxcImZpbGw6Izk5YjhjNFxcXCIvPlwiLFxuXHR9LFxuXHRcIlR3aWdcIjoge1xuXHRcdGNvbG91cjogXCIjNzhkYzUwXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNNC41NzQsNS40NjNjLjI2Mi40LDIuNS0xLjYwOCw0LjQ1NC0xLjE2MSwyLjA2MS40NzIsNC4wMTQsMy43MjQsNC44NDgsMTMuN2E0MC4xOCw0MC4xOCwwLDAsMSwzLjU0MSwzLjYxcS41My42MTQsMS4wMTMsMS4yMmExMS44NDcsMTEuODQ3LDAsMCwxLC4yMjktMS40LDEyLjMsMTIuMywwLDAsMSwxLjk4MS00LjRBMTkuMTUxLDE5LjE1MSwwLDAsMCwxNy4yNzIsNy45Yy0xLjAzLTEuNDQ1LTQuNi02LjQ3OC04LjU0Ni01Ljg0M0M2LjE4MiwyLjQ2NSw0LjMsNS4wNTQsNC41NzQsNS40NjNaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjNiZjZhXFxcIi8+PHBhdGggZD1cXFwiTTI0LjQsMzBjLS4zMi0yLjU2Ny0uNDQ4LTQuNzYtLjUtNi40NDktLjA5NC0zLjIzMi4xLTQuNTQxLjktNS43NTYuMTkzLS4yOTUsMS4yODgtMS45NzUsMi41OC0xLjg2MywxLjQ2Ni4xMjgsMi4yMTMsMi40MTQsMi4zNjIsMi4zMzcuMTc1LS4wOS0uMzYtMy41NDMtMi41MzItNC40MzEtMi42LTEuMDYzLTYuMzEyLDIuMDctNy44LDUuMTU0YTEyLjIyMywxMi4yMjMsMCwwLDAtLjg1NywyLjgxLDMyLjU1NSwzMi41NTUsMCwwLDAtLjcxLDguMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM3NGQ3NGRcXFwiLz48cGF0aCBkPVxcXCJNMi4yMzgsMTMuOTM1Yy4xNDUtLjQ0NywyLjQ2OC0uMjU5LDQuNTQuMjkzLDIuNS42NjYsNywyLjM0NCwxMS42NTEsOC42MDZBMTIuNTQ0LDEyLjU0NCwwLDAsMSwyMC4yNzksMzBIMTAuMzg2YTIxLjg3NSwyMS44NzUsMCwwLDAtLjE3NS00LjYyLDE0LjksMTQuOSwwLDAsMC0yLjQ1OS03LjE1OEM1LjQ0MSwxNS4xNTksMi4wNTUsMTQuNSwyLjIzOCwxMy45MzVaXFxcIiBzdHlsZT1cXFwiZmlsbDojNzhkYzUwXFxcIi8+PHBhdGggZD1cXFwiTTE3LjMsMjEuMzIzYTEuNzUzLDEuNzUzLDAsMSwxLS41MTMtMS4yNEExLjc0OCwxLjc0OCwwLDAsMSwxNy4zLDIxLjMyM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjEuOTc1LDIxLjMyM2ExLjc1MywxLjc1MywwLDEsMS0uNTEzLTEuMjRBMS43NDgsMS43NDgsMCwwLDEsMjEuOTc1LDIxLjMyM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0fSxcblx0XCJUeXBlU2NyaXB0XCI6IHtcblx0XHRjb2xvdXI6IFwiIzMxNzhjNlwiLFxuXHRcdGljb246IFwiPHJlY3QgeD1cXFwiMlxcXCIgeT1cXFwiMlxcXCIgd2lkdGg9XFxcIjI4XFxcIiBoZWlnaHQ9XFxcIjI4XFxcIiByeD1cXFwiMS4zMTJcXFwiIHN0eWxlPVxcXCJmaWxsOiMzMTc4YzZcXFwiLz48cGF0aCBkPVxcXCJNMTguMjQ1LDIzLjc1OXYzLjA2OGE2LjQ5Miw2LjQ5MiwwLDAsMCwxLjc2NC41NzUsMTEuNTYsMTEuNTYsMCwwLDAsMi4xNDYuMTkyLDkuOTY4LDkuOTY4LDAsMCwwLDIuMDg4LS4yMTEsNS4xMSw1LjExLDAsMCwwLDEuNzM1LS43LDMuNTQyLDMuNTQyLDAsMCwwLDEuMTgxLTEuMjY2LDQuNDY5LDQuNDY5LDAsMCwwLC4xODYtMy4zOTQsMy40MDksMy40MDksMCwwLDAtLjcxNy0xLjExNyw1LjIzNiw1LjIzNiwwLDAsMC0xLjEyMy0uODc3LDEyLjAyNywxMi4wMjcsMCwwLDAtMS40NzctLjczNHEtLjYtLjI0OS0xLjA4LS40ODRhNS41LDUuNSwwLDAsMS0uODEzLS40NzksMi4wODksMi4wODksMCwwLDEtLjUxNi0uNTE4LDEuMDkxLDEuMDkxLDAsMCwxLS4xODEtLjYxOCwxLjAzOSwxLjAzOSwwLDAsMSwuMTYyLS41NzEsMS40LDEuNCwwLDAsMSwuNDU5LS40MzYsMi40MzksMi40MzksMCwwLDEsLjcyNi0uMjgzLDQuMjExLDQuMjExLDAsMCwxLC45NTYtLjEsNS45NDIsNS45NDIsMCwwLDEsLjgwOC4wNTgsNi4yOTIsNi4yOTIsMCwwLDEsLjg1Ni4xNzcsNS45OTQsNS45OTQsMCwwLDEsLjgzNi4zLDQuNjU3LDQuNjU3LDAsMCwxLC43NTEuNDIyVjEzLjlhNy41MDksNy41MDksMCwwLDAtMS41MjUtLjQsMTIuNDI2LDEyLjQyNiwwLDAsMC0xLjktLjEyOSw4Ljc2Nyw4Ljc2NywwLDAsMC0yLjA2NC4yMzUsNS4yMzksNS4yMzksMCwwLDAtMS43MTYuNzMzLDMuNjU1LDMuNjU1LDAsMCwwLTEuMTcxLDEuMjcxLDMuNzMxLDMuNzMxLDAsMCwwLS40MzEsMS44NDUsMy41ODgsMy41ODgsMCwwLDAsLjc4OSwyLjM0LDYsNiwwLDAsMCwyLjM5NSwxLjYzOXEuNjMuMjYsMS4xNzUuNTA5YTYuNDU4LDYuNDU4LDAsMCwxLC45NDIuNTE3LDIuNDYzLDIuNDYzLDAsMCwxLC42MjYuNTg1LDEuMiwxLjIsMCwwLDEsLjIzLjcxOSwxLjEsMS4xLDAsMCwxLS4xNDQuNTUyLDEuMjY5LDEuMjY5LDAsMCwxLS40MzUuNDQxLDIuMzgxLDIuMzgxLDAsMCwxLS43MjYuMjkyLDQuMzc3LDQuMzc3LDAsMCwxLTEuMDE4LjEwNSw1Ljc3Myw1Ljc3MywwLDAsMS0xLjk2OS0uMzVBNS44NzQsNS44NzQsMCwwLDEsMTguMjQ1LDIzLjc1OVptLTUuMTU0LTcuNjM4aDRWMTMuNTk0SDUuOTM4djIuNTI3SDkuOTJWMjcuMzc1aDMuMTcxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPlwiLFxuXHRcdGlubGluZUNvbW1lbnQ6IFtcblx0XHRcdFwiLy9cIixcblx0XHRdLFxuXHR9LFxuXHRcIlR5cG9TY3JpcHRcIjoge1xuXHRcdGNvbG91cjogXCIjZmY4NzAwXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjMuMDkzLDIxLjNhMy44NDcsMy44NDcsMCwwLDEtMS4xOC4xNjVjLTMuNTU1LDAtOC43NzgtMTIuNDI0LTguNzc4LTE2LjU1OSwwLTEuNTIzLjM2Mi0yLjAzMS44Ny0yLjQ2NkM5LjY1MywyLjk0Myw0LjQzLDQuNTM5LDIuNzYxLDYuNTdhNC4wNDgsNC4wNDgsMCwwLDAtLjU4LDIuMzIxQzIuMTgxLDE1LjM0OCw5LjA3MiwzMCwxMy45MzMsMzBjMi4yNDgsMCw2LjA0MS0zLjcsOS4xNi04LjdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjg3MDBcXFwiLz48cGF0aCBkPVxcXCJNMjAuODIzLDJjNC41LDAsOSwuNzI1LDksMy4yNjQsMCw1LjE1MS0zLjI2NCwxMS4zODktNC45MzMsMTEuMzg5LTIuOTc0LDAtNi42NzMtOC4yNjktNi42NzMtMTIuNCwwLTEuODg2LjcyNS0yLjI0OSwyLjYxMS0yLjI0OVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmODcwMFxcXCIvPlwiLFxuXHR9LFxuXHRcIlZcIjoge1xuXHRcdGNvbG91cjogXCIjNWQ4N2JmXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjAuNDY3LDI5LjI4OCwyOS45NTIsMi45MTNhLjUuNSwwLDAsMC0uNTY2LS43MjhMMjEuOTI3LDIuOWExLjQ2NCwxLjQ2NCwwLDAsMC0xLjE0MS45TDEyLjAwNywyOS4wMDZhLjU3My41NzMsMCwwLDAsLjU3OC44MTNoNy4yNmEuNjU3LjY1NywwLDAsMCwuNTc3LS40WlxcXCIgc3R5bGU9XFxcImZpbGw6IzUzNmI4YVxcXCIvPjxwYXRoIGQ9XFxcIk0yLjYxNCwyLjE4NWw3LjQ1OS43MTlhMS40NjYsMS40NjYsMCwwLDEsMS4xNDIuOUwyMC4xOCwyOS40MTNhLjI4Ni4yODYsMCwwLDEtLjI4OS40MDZIMTIuNTg1YTEuMzExLDEuMzExLDAsMCwxLTEuMTUyLS44MUwyLjA0OCwyLjkxM0EuNS41LDAsMCwxLDIuNjE0LDIuMTg1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzVkODdiZlxcXCIvPlwiLFxuXHR9LFxuXHRcIlZhbGFcIjoge1xuXHRcdGNvbG91cjogXCIjNDAzNzU3XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTIuNTA5LDE3LjE5M2MtLjE2NS02LjgzNi0uMzI1LTEyLjQ1NS0uMzU3LTEyLjQ4N0E3LjkxNiw3LjkxNiwwLDAsMCw5Ljg3OSw1Ljg3NCw3LjYwNiw3LjYwNiwwLDAsMCw3LjMyNCw5LjE4OGE4LjQyMiw4LjQyMiwwLDAsMC0uNTg3LDMuNTQzLDQuNjY1LDQuNjY1LDAsMCwwLC4yLDEuOTYyLDMuNDE3LDMuNDE3LDAsMCwxLC4xODIuNTZjLS4wMTIuMDA5LS4zMzgtLjAxOC0uNzI0LS4wNjEtMS44NjgtLjIwNy0yLjc4Ni0xLjA1LTMtMi43NTdBNi4zMTIsNi4zMTIsMCwwLDEsNC44NSw3LjcxOWExNS4xMzQsMTUuMTM0LDAsMCwxLDguNDE0LTUuMTYzLDEyLjg5MSwxMi44OTEsMCwwLDEsMi41NDItLjIzNWwxLjc0OC0uMDUuMDU5LDIuNTA2Yy4wMzIsMS4zNzguMSw2LjM1OC4xNjEsMTEuMDY3cy0uMjUyLDguMjktLjIxOSw4LjRDMTkuNSwxNy44NzksMjIsMTMuMDczLDI0LjM2Nyw2LjI1M2wxLjQyNy0zLjk4M0gyOC41NGMtLjAyMi4wNjMtMi43NTEsNi41LTUuNTE0LDEzLjkxNmwtNS40NzMsMTMuNTVIMTIuOTc2QzEyLjk3NiwyNy45MDYsMTIuNTM1LDE4LjQ4NiwxMi41MDksMTcuMTkzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzQwMzc1N1xcXCIvPjxwYXRoIGQ9XFxcIk0xNy43MzIsMzBIMTIuNzEzdi0uMjYzYzAtMS4xMzctLjE3LTUuMTkyLS4zMDctOC40NTItLjA4MS0xLjkyOS0uMTUtMy42LS4xNjEtNC4wODctLjE1Ni02LjQ3OS0uMjg2LTExLS4zMzYtMTIuMTYzYTExLjY3NCwxMS42NzQsMCwwLDAtMS44NzQsMS4wNDksNy4zNDgsNy4zNDgsMCwwLDAtMi40NjYsMy4yQTguMTQ2LDguMTQ2LDAsMCwwLDcsMTIuNzMxLDQuMzcsNC4zNywwLDAsMCw3LjE4NSwxNC42Yy4yMTUuNTY5LjI3My43MjMuMS44NTktLjA5My4wNzMtLjEwNy4wODQtLjkxNi0uMDA3LTEuOTc2LS4yMTktMy0xLjE2Ny0zLjIzNC0yLjk4NkE2LjU2OCw2LjU2OCwwLDAsMSw0LjY0LDcuNTYxLDE1LjQzOSwxNS40MzksMCwwLDEsMTMuMiwyLjMsMTMuMTc2LDEzLjE3NiwwLDAsMSwxNS44LDIuMDU4TDE3LjgxMSwybC4wNjUsMi43N2MuMDMyLDEuMzkyLjEwNiw2LjQ2MS4xNjEsMTEuMDcuMDMxLDIuNjE2LS4wNTIsNC45MTUtLjEyNCw2LjQzLjkzMS0yLjc2MywxLjk1OC01LjI3LDMuMDMzLTcuOSwxLjA0My0yLjU0NywyLjEyMi01LjE4LDMuMTczLTguMjA3bDEuNDkxLTQuMTZoMy4zbC0uMTI1LjM1MWMwLC4wMDctLjAzMS4wNzYtLjA4NC4yLTEuMSwyLjYyMi0zLjI1OSw3Ljg4OS01LjQzLDEzLjcxN1ptLTQuNDk1LS41MjZoNC4xNGw1LjQwNy0xMy4zODZjMi4xMjQtNS43LDQuMjQzLTEwLjg3Niw1LjM2Mi0xMy41NTVIMjUuOTc5TDI0LjYxNCw2LjM0MmMtMS4wNTUsMy4wMzgtMi4xMzcsNS42NzgtMy4xODMsOC4yMzEtMS4zMTEsMy4yLTIuNTUsNi4yMjYtMy42MjYsOS43NDdsLS4yNTUuODMxLS4yNDgtLjgzM2EzLjI3NCwzLjI3NCwwLDAsMSwuMDIxLS44MzljLjA3NC0xLjM1LjIyOS00LjE1OC4xODgtNy42MzMtLjA1NS00LjYwNy0uMTI5LTkuNjc0LS4xNjEtMTEuMDY0TDE3LjMsMi41NDFsLTEuNDg0LjA0M2ExMi43MjksMTIuNzI5LDAsMCwwLTIuNDkuMjI4QTE0Ljg4NywxNC44ODcsMCwwLDAsNS4wNiw3Ljg3N2E2LjA3MSw2LjA3MSwwLDAsMC0xLjQsNC41MjRjLjIsMS41OCwxLjAyOCwyLjMzNiwyLjc3LDIuNTI5bC4zMzMuMDM1Yy0uMDE5LS4wNTQtLjA0MS0uMTE0LS4wNjYtLjE3OWE0Ljg5Myw0Ljg5MywwLDAsMS0uMjE5LTIuMDU1LDguNyw4LjcsMCwwLDEsLjYtMy42MzgsNy44ODMsNy44ODMsMCwwLDEsMi42NDQtMy40M2MuMDIyLS4wMTYsMi4yMzItMS41MjUsMi42MTUtMS4xNDIuMDkyLjA5Mi4xMzEuMTMxLjQzMywxMi42NjZoMGMuMDEuNDg1LjA4LDIuMTQ5LjE2LDQuMDc2QzEzLjA2LDI0LjMxMywxMy4yMTcsMjguMDYsMTMuMjM3LDI5LjQ3NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjOGM4YzhcXFwiLz5cIixcblx0fSxcblx0XCJWQi5OZXRcIjoge1xuXHRcdGNvbG91cjogXCIjMDA1MTlhXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNNi42Nyw3LjgzNiw5LDE4LjkxNSwxMS4zMzYsNy44MzZIMTZMMTEuMzM2LDI0LjE2NEg2LjY3MkwyLDcuODM2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNTE5YVxcXCIvPjxwYXRoIGQ9XFxcIk0xOC4zMzEsNy44MzZoNy42YTQuMDgsNC4wOCwwLDAsMSwyLjksMS43NDksMy43OCwzLjc4LDAsMCwxLC41NzEsMi4wNCwzLjk4NSwzLjk4NSwwLDAsMS0uNTcxLDIuMDM0LDQuMTA4LDQuMTA4LDAsMCwxLTIuMzQxLDEuNzYzLDQuMSw0LjEsMCwwLDEsMi45MjksMS43NTYsMy44LDMuOCwwLDAsMSwuNTgsMi4xLDQuNjYzLDQuNjYzLDAsMCwxLS41NzksMi41NDYsNS4wNDcsNS4wNDcsMCwwLDEtMy41LDIuMzM4SDE4LjMzMVpNMjMsMTQuMjUyaDEuMTY2YTEuNzU0LDEuNzU0LDAsMCwwLDAtMy41SDIzWm0wLDdIMjQuMzlhMi4wNDcsMi4wNDcsMCwwLDAsMC00LjA4OUgyM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDUxOWFcXFwiLz5cIixcblx0fSxcblx0XCJWQkFcIjoge1xuXHRcdGNvbG91cjogXCIjZDg3YjMwXCIsXG5cdFx0aWNvbjogXCI8cG9seWdvbiBwb2ludHM9XFxcIjEwLjQ1NyAxMS4wOTIgMTYuMDE0IDEzLjgzOSAxNi4wMTQgMTguMzA3IDEwLjQ1NyAxNS4zODIgMTAuNDU3IDExLjA5MlxcXCIgc3R5bGU9XFxcImZpbGw6IzY0ODNjMFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4yLDE4LjYxM2wtNS45MjYtMy4xMlYxMC44TDE2LjIsMTMuNzI0Wk0xMC42NDIsMTUuMjcsMTUuODMsMThWMTMuOTUzbC01LjE4OC0yLjU2NFpcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2LjM3MSAxMy44MzkgMTYuMzcxIDE4LjMwNyAyMS4zMTUgMTUuODE0IDIxLjMxNSAxMS4zNTQgMTYuMzcxIDEzLjgzOVxcXCIgc3R5bGU9XFxcImZpbGw6IzY0ODNjMFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4xODYsMTguNjA3VjEzLjcyNWw1LjMxMy0yLjY3djQuODczWm0uMzY5LTQuNjU1djQuMDU1TDIxLjEzLDE1LjdWMTEuNjUzWlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTAuNzAzIDEwLjc5NyAxNi4xODYgMTMuNTggMjEuMDgyIDExLjA2NCAxNS43NzcgOC4zODkgMTAuNzAzIDEwLjc5N1xcXCIgc3R5bGU9XFxcImZpbGw6IzY0ODNjMFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4xODcsMTMuNzg4bC01LjktMyw1LjUtMi42MDgsNS43MDksMi44NzlaTTExLjEyMiwxMC44bDUuMDY0LDIuNTcsNC40OS0yLjMwOC00LjktMi40NzFaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxOC45NTcgMTUuODI5IDI0LjUxNSAxOC41NzUgMjQuNTE1IDIzLjA0MyAxOC45NTcgMjAuMTE4IDE4Ljk1NyAxNS44MjlcXFwiIHN0eWxlPVxcXCJmaWxsOiM5NTI3ODFcXFwiLz48cGF0aCBkPVxcXCJNMjQuNywyMy4zNDlsLTUuOTI2LTMuMTJ2LTQuN0wyNC43LDE4LjQ2Wm0tNS41NTctMy4zNDMsNS4xODgsMi43MzFWMTguNjg5bC01LjE4OC0yLjU2NFpcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI0Ljg3MSAxOC41NzUgMjQuODcxIDIzLjA0MyAyOS44MTUgMjAuNTUgMjkuODE1IDE2LjA5IDI0Ljg3MSAxOC41NzVcXFwiIHN0eWxlPVxcXCJmaWxsOiM5NTI3ODFcXFwiLz48cGF0aCBkPVxcXCJNMjQuNjg3LDIzLjM0M1YxOC40NjFMMzAsMTUuNzkxdjQuODczWm0uMzY5LTQuNjU1djQuMDU1bDQuNTc1LTIuMzA4VjE2LjM4OVpcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE5LjIwMyAxNS41NDYgMjQuNjg3IDE4LjMyOSAyOS41ODMgMTUuODEyIDI0LjM2NCAxMy4zNDYgMTkuMjAzIDE1LjU0NlxcXCIgc3R5bGU9XFxcImZpbGw6Izk1Mjc4MVxcXCIvPjxwYXRoIGQ9XFxcIk0yNC42ODcsMTguNTM2bC01LjkyLTMuMDA1LDUuNi0yLjM4N0wzMCwxNS44MDVaTTE5LjY0LDE1LjU2bDUuMDQ2LDIuNTYxLDQuNDc5LTIuMy00LjgwNi0yLjI3WlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMi4xOSAxNS40OTYgNy43NDggMTguMjQzIDcuNzQ4IDIyLjcxMSAyLjE5IDE5Ljc4NiAyLjE5IDE1LjQ5NlxcXCIgc3R5bGU9XFxcImZpbGw6I2Q4N2IzMFxcXCIvPjxwYXRoIGQ9XFxcIk03LjkzMiwyMy4wMTcsMi4wMDYsMTkuOVYxNS4ybDUuOTI2LDIuOTI5Wk0yLjM3NSwxOS42NzRsNS4xODgsMi43MzFWMTguMzU3TDIuMzc1LDE1Ljc5M1pcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjguMTA0IDE4LjI0MyA4LjEwNCAyMi43MTEgMTMuMDQ4IDIwLjIxOCAxMy4wNDggMTUuNzU4IDguMTA0IDE4LjI0M1xcXCIgc3R5bGU9XFxcImZpbGw6I2Q4N2IzMFxcXCIvPjxwYXRoIGQ9XFxcIk03LjkyLDIzLjAxMVYxOC4xMjlsNS4zMTMtMi42N3Y0Ljg3M1ptLjM2OS00LjY1NXY0LjA1NUwxMi44NjQsMjAuMVYxNi4wNTdaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyLjQzNiAxNS4yMTMgNy45MiAxNy45OTcgMTIuODE2IDE1LjQ4IDcuNTk3IDEzLjAxNCAyLjQzNiAxNS4yMTNcXFwiIHN0eWxlPVxcXCJmaWxsOiNkODdiMzBcXFwiLz48cGF0aCBkPVxcXCJNNy45MiwxOC4yLDIsMTUuMmw1LjYtMi4zODcsNS42MzIsMi42NjFaTTIuODczLDE1LjIyOGw1LjA0NiwyLjU2MSw0LjQ3OS0yLjMtNC44MDYtMi4yN1pcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjEwLjg3NSAxNi4yOTYgMTYuNDMyIDE5LjA0MiAxNi40MzIgMjMuNTExIDEwLjg3NSAyMC41ODUgMTAuODc1IDE2LjI5NlxcXCIgc3R5bGU9XFxcImZpbGw6I2UwZDQwMFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi42MTcsMjMuODE2LDEwLjY5MSwyMC43VjE2bDUuOTI2LDIuOTI5Wk0xMS4wNiwyMC40NzRsNS4xODgsMi43MzFWMTkuMTU3TDExLjA2LDE2LjU5M1pcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2Ljc4OSAxOS4wNDIgMTYuNzg5IDIzLjUxMSAyMS43MzMgMjEuMDE3IDIxLjczMyAxNi41NTcgMTYuNzg5IDE5LjA0MlxcXCIgc3R5bGU9XFxcImZpbGw6I2UwZDQwMFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi42LDIzLjgxMVYxOC45MjlsNS4zMTMtMi42N3Y0Ljg3M1ptLjM2OS00LjY1NXY0LjA1NUwyMS41NDksMjAuOVYxNi44NTdaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxMS4xMjEgMTYuMDAxIDE2LjYwNSAxOC43ODQgMjEuNTAxIDE2LjI2NyAxNi4xOTYgMTMuNTkzIDExLjEyMSAxNi4wMDFcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMGQ0MDBcXFwiLz48cGF0aCBkPVxcXCJNMTYuNjA1LDE4Ljk5MWwtNS45LTMsNS41LTIuNjA4LDUuNzA5LDIuODc5Wk0xMS41NCwxNi4wMDZsNS4wNjQsMi41Nyw0LjQ5LTIuMzA4LTQuOS0yLjQ3MVpcXFwiLz5cIixcblx0fSxcblx0XCJWZWxvY2l0eVwiOiB7XG5cdFx0Y29sb3VyOiBcIiMyNjI2OTJcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xNi4yNDUsMjQuMTg3QTguMzUyLDguMzUyLDAsMSwxLDI0LjYsMTUuODM1LDguMzYyLDguMzYyLDAsMCwxLDE2LjI0NSwyNC4xODdabTAtMTQuNzYyYTYuNDEsNi40MSwwLDEsMCw2LjQxLDYuNDFBNi40MTcsNi40MTcsMCwwLDAsMTYuMjQ1LDkuNDI1WlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjkuMTMyIDguNTUxIDI1LjQ1MSA2LjUzMSAyNS40NTEgNy40NzQgMTUuODIxIDcuNDc0IDE1LjgyMSA5LjQyNCAyNS40NTEgOS40MjQgMjUuNDUxIDEwLjU3MSAyOS4xMzIgOC41NTFcXFwiIHN0eWxlPVxcXCJmaWxsOiMyNjI2OTJcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjguOTg0IDIgNi45NjQgNS42ODcgNy45MDYgNS42ODcgNy45MDYgMTUuMzI4IDkuODU3IDE1LjMyOCA5Ljg1NyA1LjY4NyAxMS4wMDQgNS42ODcgOC45ODQgMlxcXCIgc3R5bGU9XFxcImZpbGw6IzI2MjY5M1xcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjMuNzA1IDMwIDIxLjY4NSAyNi4yNDMgMjIuNjI4IDI2LjI0MyAyMi42MjggMTYuNDE3IDI0LjU3OCAxNi40MTcgMjQuNTc4IDI2LjI0MyAyNS43MjUgMjYuMjQzIDIzLjcwNSAzMFxcXCIgc3R5bGU9XFxcImZpbGw6IzI2MjY5M1xcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMi44NjggMjMuMzIgNi42MzQgMjEuMyA2LjYzNCAyMi4yNDIgMTYuNDg0IDIyLjI0MiAxNi40ODQgMjQuMTkyIDYuNjM0IDI0LjE5MiA2LjYzNCAyNS4zNCAyLjg2OCAyMy4zMlxcXCIgc3R5bGU9XFxcImZpbGw6IzI2MjY5MlxcXCIvPlwiLFxuXHR9LFxuXHRcIlZlcmlsb2dcIjoge1xuXHRcdGNvbG91cjogXCIjMWEzNDhmXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjkuMDA3LDE3LjRoLjAzN2ExLjQ0OSwxLjQ0OSwwLDAsMCwuOTM4LS4zMTYsMS40NzMsMS40NzMsMCwwLDAsLjUxOS0xLjAzMVYxNS45YTEuNDEzLDEuNDEzLDAsMCwwLTEuMzc2LTEuM2gtLjAwOWMtLjY4NywwLTEuMzc0LDAtMi4wNjIsMEgyNS41VjExLjk1NmwzLjUxMywwaC4wMzRBMS40MTEsMS40MTEsMCwwLDAsMzAuNSwxMC42bDAtLjA5LDAtLjAzMmExLjQxMiwxLjQxMiwwLDAsMC0uNjQ2LTEuMSwxLjQ1NSwxLjQ1NSwwLDAsMC0uODM1LS4yMjVIMjUuNDU2YTIuOTYsMi45NiwwLDAsMC0uMjc4LTEuMDM0LDIuOTA5LDIuOTA5LDAsMCwwLTEuNy0xLjQ2MSwyLjY4NCwyLjY4NCwwLDAsMC0uNjI5LS4xM1Y0Ljk0N2MwLS42OSwwLTEuMzgsMC0yLjA2M0ExLjQxNCwxLjQxNCwwLDAsMCwyMS40ODEsMS41aC0uMTE2YTEuNCwxLjQsMCwwLDAtMS4zMTksMS4zODhxMCwxLjE1NCwwLDIuMzA2VjYuNUgxNy40VjQuOTgxYzAtLjcsMC0xLjQsMC0yLjA4N0ExLjQxLDEuNDEsMCwwLDAsMTYuMDUzLDEuNUgxNS45YTEuNDA4LDEuNDA4LDAsMCwwLTEuMywxLjM4M2MwLC42ODgsMCwxLjM3NiwwLDIuMDY0VjYuNTA4cS0xLjMxOSwwLTIuNjM5LDBWNC44ODhjMC0uNjY2LDAtMS4zMzIsMC0xLjk4OWExLjM2NiwxLjM2NiwwLDAsMC0uNC0uOTc1LDEuNCwxLjQsMCwwLDAtLjk4NC0uNDI0SDEwLjVBMS40MSwxLjQxLDAsMCwwLDkuMTU5LDIuODgxYzAsLjY4MywwLDEuMzY2LDAsMi4wNDl2MS42YTIuOTMzLDIuOTMzLDAsMCwwLTIuNDY2LDEuOSwyLjg3OCwyLjg3OCwwLDAsMC0uMTYxLjcyNkg0Ljk1N2MtLjY5MywwLTEuMzg2LDAtMi4wNzMsMEgyLjg3NkExLjQxMywxLjQxMywwLDAsMCwxLjUsMTAuNXYuMDk1YTEuNDE3LDEuNDE3LDAsMCwwLC41NzUsMS4wOTEsMS40NjMsMS40NjMsMCwwLDAsLjg4Ny4yNzNoLjAxN2wzLjUyMiwwVjE0LjZINC45NDhjLS42ODYsMC0xLjM3NSwwLTIuMDU3LDBBMS40MjgsMS40MjgsMCwwLDAsMS41LDE1LjkxM1YxNi4xYTEuNCwxLjQsMCwwLDAsMS4zODYsMS4zYy43MTEsMCwxLjQyMywwLDIuMTM1LDBINi41VjIwLjA1bC0uMjkyLDBjLS42MTMtLjAwNy0xLjIyNiwwLTEuODM4LDBIMy4wODdhMS42MzMsMS42MzMsMCwwLDAtLjkxOC4yMTFBMS40MzcsMS40MzcsMCwwLDAsMS41LDIxLjRWMjEuNWExLjQxNywxLjQxNywwLDAsMCwxLjM3NSwxLjMzN2guMDA1cS42NDUsMCwxLjI5LDBINi41NDZhMi44MzIsMi44MzIsMCwwLDAsMS45NzgsMi41LDIuNzEyLDIuNzEyLDAsMCwwLC42MzEuMTI4djEuNjJjMCwuNjc4LDAsMS4zNTQsMCwyLjAyNWExLjQsMS40LDAsMSwwLDIuOC0uMDkybDAtMy41MjdIMTQuNnYzLjUxNkExLjQxNCwxLjQxNCwwLDAsMCwxNS45NDcsMzAuNUgxNi4xYTEuNDExLDEuNDExLDAsMCwwLDEuMy0xLjM4NXEuMDA2LTEuMDY2LDAtMi4xMzFWMjUuNWgyLjY0NFYyOS4xQTEuNDIzLDEuNDIzLDAsMCwwLDIxLjQsMzAuNWguMTE5YTEuNDA4LDEuNDA4LDAsMCwwLDEuMTYtLjc0MSwxLjY0MywxLjY0MywwLDAsMCwuMTY3LS44MzNWMjUuNDc0YTIuNjcxLDIuNjcxLDAsMCwwLC42Mi0uMTI4LDIuOTI4LDIuOTI4LDAsMCwwLDEuODg2LTEuODg4LDIuODM0LDIuODM0LDAsMCwwLC4xMjMtLjYxM2gxLjU4MWMuNjg3LDAsMS4zNzUsMCwyLjA1NywwaC4wMDhBMS40MjIsMS40MjIsMCwwLDAsMzAuNSwyMS40ODF2LS4xMThhMS40MDksMS40MDksMCwwLDAtMS4zODItMS4zMThoMGMtLjcxOCwwLTEuNDM2LDAtMi4xNTQsMEgyNS41VjE3LjRaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzVjNWM1O29wYWNpdHk6MC4zXFxcIi8+PHBhdGggZD1cXFwiTTEwLjUxNSwyaC4wNTZhLjkxLjkxLDAsMCwxLC44ODYuODkzYy4wMDYsMS4xMDgsMCwyLjIxNiwwLDMuMzI0LS42LDAtMS4yLDAtMS44LDAsMC0xLjExMSwwLTIuMjIyLDAtMy4zMzNBLjkwNy45MDcsMCwwLDEsMTAuNTE1LDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWEzNDhmXFxcIi8+PHBhdGggZD1cXFwiTTE1LjkzNywyaC4xMTZhLjkxMi45MTIsMCwwLDEsLjg0Ni44ODljLjAwNiwxLjEwOSwwLDIuMjE5LDAsMy4zMjlIMTUuMWMwLTEuMTEsMC0yLjIyLDAtMy4zM0EuOTExLjkxMSwwLDAsMSwxNS45MzcsMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNMjEuMzkyLDJoLjA4OWEuOTA3LjkwNywwLDAsMSwuODU5Ljg4MWMuMDA3LDEuMTEyLDAsMi4yMjUsMCwzLjMzN2gtMS44YzAtMS4xMDksMC0yLjIxNywwLTMuMzI2QS45MTIuOTEyLDAsMCwxLDIxLjM5MiwyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk0yLDEwLjUxOGEuOTA4LjkwOCwwLDAsMSwuODgyLS44NTljMS4xMTItLjAwNywyLjIyMywwLDMuMzM0LDBxMCwuOSwwLDEuOGMtMS4wNzksMC0yLjE1OCwwLTMuMjM3LDBhLjk4My45ODMsMCwwLDEtLjYtLjE3M0EuOTI0LjkyNCwwLDAsMSwyLDEwLjU3MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNMjUuNzg2LDkuNjU1aDMuMjMzYTEsMSwwLDAsMSwuNTYxLjE0My45MjQuOTI0LDAsMCwxLC40Mi43MTZ2LjA1OGEuOTMzLjkzMywwLDAsMS0uMy42NTEuOTU3Ljk1NywwLDAsMS0uNjc3LjIzNGMtMS4wNzksMC0yLjE1OCwwLTMuMjM3LDBRMjUuNzg2LDEwLjU1NiwyNS43ODYsOS42NTVaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWEzNDhmXFxcIi8+PHBhdGggZD1cXFwiTTIsMTUuOTQ0YS45MTMuOTEzLDAsMCwxLC44ODgtLjg0MmMxLjEwOS0uMDA3LDIuMjE5LDAsMy4zMjgsMHEwLC45LDAsMS44Yy0xLjEwOSwwLTIuMjE3LDAtMy4zMjYsMEEuOTE1LjkxNSwwLDAsMSwyLDE2LjA2M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNMjUuNzg2LDE1LjFjMS4xMDksMCwyLjIxOCwwLDMuMzI2LDBhLjkxNC45MTQsMCwwLDEsLjg4OS44MzV2LjExN2EuOTQ2Ljk0NiwwLDAsMS0uMzMxLjY0MS45NzMuOTczLDAsMCwxLS42NTEuMjA3SDI1Ljc4NlEyNS43ODUsMTYsMjUuNzg2LDE1LjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWEzNDhmXFxcIi8+PHBhdGggZD1cXFwiTTIuNDMzLDIwLjY3OGExLjEyMSwxLjEyMSwwLDAsMSwuNjQzLS4xMzZjMS4wNDMuMDA2LDIuMDg2LS4wMDYsMy4xMjkuMDA2LjAyOC42LDAsMS4yLjAxMiwxLjgtMS4xMSwwLTIuMjIxLDAtMy4zMzEsMEEuOTExLjkxMSwwLDAsMSwyLDIxLjQ4M1YyMS40QS45MjUuOTI1LDAsMCwxLDIuNDMzLDIwLjY3OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNMjUuNzg2LDIwLjU0M2MxLjEwOCwwLDIuMjE2LDAsMy4zMjQsMGEuOTE0LjkxNCwwLDAsMSwuODkuODQ3di4wOWEuOTExLjkxMSwwLDAsMS0uODg4Ljg1OWMtMS4xMDkuMDA3LTIuMjE4LDAtMy4zMjYsMEMyNS43ODYsMjEuNzQzLDI1Ljc4NSwyMS4xNDMsMjUuNzg2LDIwLjU0M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNOS42NTYsMjUuNzgxaDEuOGMwLDEuMDgxLDAsMi4xNjIsMCwzLjI0M2EuOTU3Ljk1NywwLDAsMS0uMjM1LjY3Ny45MzEuOTMxLDAsMCwxLS42NTMuM2gtLjA1MmEuOTA3LjkwNywwLDAsMS0uODYtLjg4MkM5LjY1MSwyOC4wMDYsOS42NTgsMjYuODk0LDkuNjU2LDI1Ljc4MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNMTUuMSwyNS43ODFoMS44YzAsMS4xMSwwLDIuMjIsMCwzLjMzYS45MTQuOTE0LDAsMCwxLS44MzYuODg5aC0uMTE2YS45NC45NCwwLDAsMS0uNjE5LS4zMDYuOTYyLjk2MiwwLDAsMS0uMjI4LS42NzNRMTUuMSwyNy40LDE1LjEsMjUuNzgxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk0yMC41NDcsMjkuMTA2YzAtMS4xMDgsMC0yLjIxNywwLTMuMzI1aDEuOGMwLDEuMDQ4LDAsMi4xLDAsMy4xNDRhMS4xNzgsMS4xNzgsMCwwLDEtLjEwNS41OS45Mi45MiwwLDAsMS0uNzU2LjQ4NEgyMS40QS45MTEuOTExLDAsMCwxLDIwLjU0NywyOS4xMDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWEzNDhmXFxcIi8+PHBhdGggZD1cXFwiTTI0LjczMiw4LjM0OUEyLjQyOSwyLjQyOSwwLDAsMCwyMy4zMSw3LjEzMSwzLjI0NSwzLjI0NSwwLDAsMCwyMi4yNTQsN2MtNC4zLjAwOC04LjYtLjAxMS0xMi45MDUuMDFBMi40MzYsMi40MzYsMCwwLDAsNy4xNTcsOC42MDYsMy42MTEsMy42MTEsMCwwLDAsNyw5LjkzNHEwLDYuMjUsMCwxMi41YTIuNjczLDIuNjczLDAsMCwwLC4yNjgsMS4yMTlBMi40MzEsMi40MzEsMCwwLDAsOC42ODgsMjQuODcsMy43NTYsMy43NTYsMCwwLDAsOS45MjcsMjVIMjIuMDdhMy43NjIsMy43NjIsMCwwLDAsMS4yNDMtLjEyN0EyLjQyOSwyLjQyOSwwLDAsMCwyNC44NzUsMjMuMywzLjgsMy44LDAsMCwwLDI1LDIyLjA3MXEwLTYuMjUsMC0xMi41QTIuNjg2LDIuNjg2LDAsMCwwLDI0LjczMiw4LjM0OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNNy41LDguMzA3bC4wODQtLjJxLjk2OCwwLDEuOTM1LjAyNGguMzk0cS4xNzksMCwuMzk0LS4wMTIuNzc2LS4wMzYsMi44MDctLjAzNi40MDYsMCwuNzg4LjAwNnQuNzQxLjAxOGEuMjM0LjIzNCwwLDAsMSwuMTA4LjEwOGwtLjAyNC4xOTFxLS4wNzIuMTE5LS4zNTguMTE5aC0uMWExMC4zLDEwLjMsMCwwLDAtMS4xLjA1NCwyLjE3OSwyLjE3OSwwLDAsMC0xLC4yNDUuNDMyLjQzMiwwLDAsMC0uMTU1LjM0Niw0LjA1LDQuMDUsMCwwLDAsLjM5NCwxLjRsMS44MTgsNC4yMTcuNjM0LDEuNHEuOTIxLDIuMjIyLDEuODE5LDQuNTM5LjEuMjUxLjE3OS40NTRsLjgtMS45NTlxLjYyLTEuNDgxLDEuMjUyLTMuMTU0bC44MjMtMi4yNDZxLjAyNC0uMDcyLjEzMS0uNDc4YTE3LjAyNiwxNy4wMjYsMCwwLDAsMS4xNTctNCwuNTYxLjU2MSwwLDAsMC0uMTYxLS4zNjQsMS4xNjUsMS4xNjUsMCwwLDAtLjUyLS4zLDcuNzIzLDcuNzIzLDAsMCwwLS45MzItLjE0M2wtLjg4NC0uMTA4YS4zMzcuMzM3LDAsMCwxLS4xMDgtLjJsLjAzNi0uMSwzLjg3LS4wMzZIMjMuNmEzLjEsMy4xLDAsMCwxLC44ODUuMDg0bC4wMTIuMWEuNjQxLjY0MSwwLDAsMS0uMDcyLjI1MSwyLjQ0OSwyLjQ0OSwwLDAsMS0uNTI2LjExOSwzLjYsMy42LDAsMCwwLTEuMjQ0LjI4MSwxLjgxNSwxLjgxNSwwLDAsMC0uNS42ODdsLTMuMTM0LDcuNzY1cS0xLjQ2NiwzLjUtMi4wODYsNS40MjNsLS4zNDUsMS4wMzlhLjUzMS41MzEsMCwwLDEtLjI2My4xLDEuMzgzLDEuMzgzLDAsMCwxLS4zLS4wMzZxLTEuNDIyLTMuNjc2LTIuMzE4LTUuNjgxTDEwLjA1NSw5LjkyYTMuMjQ3LDMuMjQ3LDAsMCwwLS41OTEtLjg5LDUuNDYzLDUuNDYzLDAsMCwwLTEuMzc5LS40MjQsNC4zNDcsNC4zNDcsMCwwLDEtLjQ2Ni0uMTE5QS4zMjYuMzI2LDAsMCwxLDcuNSw4LjMwN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjNWMyZmZcXFwiLz5cIixcblx0fSxcblx0XCJWSERMXCI6IHtcblx0XHRjb2xvdXI6IFwiIzBkOWIzNVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTIsMkgzMFYzMEgyWm0xLjY4OS4wNjdBMS42MjQsMS42MjQsMCwwLDAsMi4wNjMsMy42OTJWMjguMzE0QTEuNjI1LDEuNjI1LDAsMCwwLDMuNjg5LDI5Ljk0SDI4LjMxNmExLjYyNSwxLjYyNSwwLDAsMCwxLjYyNi0xLjYyNlYzLjY5MmExLjYyNCwxLjYyNCwwLDAsMC0xLjYyNi0xLjYyNVpNMy4wMDgsMjguMDc5YS45MTEuOTExLDAsMCwwLC45MTEuOTEySDI4LjA4M2EuOTExLjkxMSwwLDAsMCwuOTExLS45MTJWMy45MTlhLjkxLjkxLDAsMCwwLS45MTEtLjkxMUgzLjkxOWEuOTEuOTEsMCwwLDAtLjkxMS45MTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMGQ5YjM1XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyNS41MiA1LjUwMiAxOC44NTggMjYuNDkxIDEzLjE1NCAyNi40OTEgNi40OTIgNS41MDIgMTAuNTA4IDUuNTAyIDE2LjAyOSAyMi43OTUgMjEuNTA0IDUuNTAyIDI1LjUyIDUuNTAyXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdH0sXG5cdFwidmltXCI6IHtcblx0XHRjb2xvdXI6IFwiIzQzYjU0YVwiLFxuXHRcdGljb246IFwiPGRlZnM+PGNsaXBQYXRoIGlkPVxcXCJhXFxcIj48cG9seWdvbiBwb2ludHM9XFxcIjIgMiAzMCAyIDMwIDMwIDIgMzAgMiAyIDIgMlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtjbGlwLXJ1bGU6ZXZlbm9kZFxcXCIvPjwvY2xpcFBhdGg+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfdmltPC90aXRsZT48cG9seWdvbiBwb2ludHM9XFxcIjI5Ljk4OSAxNS44NTYgMTUuODU2IDIuMDExIDIuMDExIDE2LjEzNiAxNS44NTYgMjkuOTg5IDI5Ljk4OSAxNS44NTYgMjkuOTg5IDE1Ljg1NlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMDtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxnIHN0eWxlPVxcXCJjbGlwLXBhdGg6dXJsKCNhKVxcXCI+PHBvbHlnb24gcG9pbnRzPVxcXCIyOS45ODkgMTUuODU2IDE1Ljg1NiAyLjAxMSAyLjAxMSAxNi4xMzYgMTUuODU2IDI5Ljk4OSAyOS45ODkgMTUuODU2IDI5Ljk4OSAxNS44NTZcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48L2c+PHBvbHlnb24gcG9pbnRzPVxcXCIyOC41NzUgMTUuODU2IDI5LjQyMiAxNS44NTYgMTUuODU2IDI5LjQyMiAxNS44NTYgMjguNTc1IDI4LjU3NSAxNS44NTYgMjguNTc1IDE1Ljg1NlxcXCIgc3R5bGU9XFxcImZpbGw6IzI5Njk1ZDtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjguNTc1IDE1Ljg1NiAyOS40MjIgMTUuODU2IDE1Ljg1NiAyOS40MjIgMTUuODU2IDI4LjU3NSAyOC41NzUgMTUuODU2IDI4LjU3NSAxNS44NTZcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIuNTc4IDE2LjEzNiAzLjQyNSAxNi4xMzYgMTUuODU2IDI4LjU3NSAxNS44NTYgMjkuNDIyIDIuNTc4IDE2LjEzNiAyLjU3OCAxNi4xMzZcXFwiIHN0eWxlPVxcXCJmaWxsOiMzMTczNjc7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIuNTc4IDE2LjEzNiAzLjQyNSAxNi4xMzYgMTUuODU2IDI4LjU3NSAxNS44NTYgMjkuNDIyIDIuNTc4IDE2LjEzNiAyLjU3OCAxNi4xMzZcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE1Ljg1NiAzLjQxOCAxNS44NTYgMi41NzggMi41NzggMTYuMTM2IDMuNDI1IDE2LjEzNiAxNS44NTYgMy40MTggMTUuODU2IDMuNDE4XFxcIiBzdHlsZT1cXFwiZmlsbDojNjBjMmFjO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNS44NTYgMy40MTggMTUuODU2IDIuNTc4IDIuNTc4IDE2LjEzNiAzLjQyNSAxNi4xMzYgMTUuODU2IDMuNDE4IDE1Ljg1NiAzLjQxOFxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTUuODU2IDIuNTc4IDE1Ljg1NiAzLjQxOCAyOC41NzUgMTUuODU2IDI5LjQyMiAxNS44NTYgMTUuODU2IDIuNTc4IDE1Ljg1NiAyLjU3OFxcXCIgc3R5bGU9XFxcImZpbGw6IzQzYjU0YTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTUuODU2IDIuNTc4IDE1Ljg1NiAzLjQxOCAyOC41NzUgMTUuODU2IDI5LjQyMiAxNS44NTYgMTUuODU2IDIuNTc4IDE1Ljg1NiAyLjU3OFxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTUuODU2IDI4LjU3NSAyOC41NzUgMTUuODU2IDE1Ljg1NiAzLjQxOCAzLjQyNSAxNi4xMzYgMTUuODU2IDI4LjU3NSAxNS44NTYgMjguNTc1XFxcIiBzdHlsZT1cXFwiZmlsbDojM2M4Mzc2O2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNS44NTYgMjguNTc1IDI4LjU3NSAxNS44NTYgMTUuODU2IDMuNDE4IDMuNDI1IDE2LjEzNiAxNS44NTYgMjguNTc1IDE1Ljg1NiAyOC41NzVcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE4LjQ5OCA2LjI0NiAxOS4zNDUgNy4xIDEzLjUwMiAxMy4wMjggMTMuNTAyIDcuMSAxNC4wNjkgNy4xIDE0LjkxNiA2LjI0NiAxNC45MTYgMy45OTIgMTQuMDY5IDMuMTM4IDQuNjUyIDMuMTM4IDMuODA1IDMuOTkyIDMuODA1IDYuMjQ2IDQuNjUyIDcuMSA1LjMxMiA3LjEgNS4zMTIgMjYuMzE0IDYuMzQ2IDI3LjE2MSA5LjI2NyAyNy4xNjEgMjkuNTE2IDYuMjQ2IDI5LjUxNiAzLjk5MiAyOC42NjkgMy4xMzggMTkuNDM4IDMuMTM4IDE4LjQ5OCAzLjk5MiAxOC40OTggNi4yNDYgMTguNDk4IDYuMjQ2XFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxOC40OTggNi4yNDYgMTkuMzQ1IDcuMSAxMy41MDIgMTMuMDI4IDEzLjUwMiA3LjEgMTQuMDY5IDcuMSAxNC45MTYgNi4yNDYgMTQuOTE2IDMuOTkyIDE0LjA2OSAzLjEzOCA0LjY1MiAzLjEzOCAzLjgwNSAzLjk5MiAzLjgwNSA2LjI0NiA0LjY1MiA3LjEgNS4zMTIgNy4xIDUuMzEyIDI2LjMxNCA2LjM0NiAyNy4xNjEgOS4yNjcgMjcuMTYxIDI5LjUxNiA2LjI0NiAyOS41MTYgMy45OTIgMjguNjY5IDMuMTM4IDE5LjQzOCAzLjEzOCAxOC40OTggMy45OTIgMTguNDk4IDYuMjQ2IDE4LjQ5OCA2LjI0NlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNC45MzIgNi41MzMgNC4zNjUgNS45NjYgNC4zNjUgNC4yNzIgNC45MzIgMy43MDUgMTMuNzg5IDMuNjk4IDE0LjM0OSA0LjI3MiAxMy43ODkgNC41NDQgMTMuNTAyIDQuMjcyIDQuOTMyIDUuNjc5IDQuOTMyIDYuNTMzIDQuOTMyIDYuNTMzXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI0LjkzMiA2LjUzMyA0LjM2NSA1Ljk2NiA0LjM2NSA0LjI3MiA0LjkzMiAzLjcwNSAxMy43ODkgMy42OTggMTQuMzQ5IDQuMjcyIDEzLjc4OSA0LjU0NCAxMy41MDIgNC4yNzIgNC45MzIgNS42NzkgNC45MzIgNi41MzMgNC45MzIgNi41MzNcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjYuNjI2IDI2LjU5NCA1Ljk2NiAyNi4wMjcgNS45NjYgNi41MjYgNi42MjYgNS45NjYgNi42MjYgMjYuNTk0IDYuNjI2IDI2LjU5NFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNi42MjYgMjYuNTk0IDUuOTY2IDI2LjAyNyA1Ljk2NiA2LjUyNiA2LjYyNiA1Ljk2NiA2LjYyNiAyNi41OTQgNi42MjYgMjYuNTk0XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMC43NTkgNi41MzMgMjEuMzI2IDUuOTY2IDIxLjMyNiA3LjEgMTEuOTAyIDE2LjcwMyAxMi45NDIgMTQuNDQyIDIwLjc1OSA2LjUzMyAyMC43NTkgNi41MzNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmY7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIwLjc1OSA2LjUzMyAyMS4zMjYgNS45NjYgMjEuMzI2IDcuMSAxMS45MDIgMTYuNzAzIDEyLjk0MiAxNC40NDIgMjAuNzU5IDYuNTMzIDIwLjc1OSA2LjUzM1xcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNi44MiA1LjY4NiA2LjYyNiA1Ljk2NiA1Ljk2NiA2LjUzMyA0LjkzMiA2LjUzMyA0LjkzMiA1LjM5OSA2LjgyIDUuNjg2IDYuODIgNS42ODZcXFwiIHN0eWxlPVxcXCJmaWxsOiM5Mjk0OTc7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjYuODIgNS42ODYgNi42MjYgNS45NjYgNS45NjYgNi41MzMgNC45MzIgNi41MzMgNC45MzIgNS4zOTkgNi44MiA1LjY4NiA2LjgyIDUuNjg2XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxMi45NDIgNi41MzMgMTIuOTQyIDE0LjQ0MiAxMS45MDIgMTYuNjk2IDExLjkwMiA1Ljk1OCAxMy41MDIgNS45NTggMTMuNzg5IDUuNjc4IDEzLjUwMiA0LjI3MiAxNC4zNDkgNC4yNzIgMTQuMzQ5IDUuOTY2IDEzLjc4OSA2LjUzMyAxMi45NDIgNi41MzMgMTIuOTQyIDYuNTMzXFxcIiBzdHlsZT1cXFwiZmlsbDojOTI5NDk3O2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxMi45NDIgNi41MzMgMTIuOTQyIDE0LjQ0MiAxMS45MDIgMTYuNjk2IDExLjkwMiA1Ljk1OCAxMy41MDIgNS45NTggMTMuNzg5IDUuNjc4IDEzLjUwMiA0LjI3MiAxNC4zNDkgNC4yNzIgMTQuMzQ5IDUuOTY2IDEzLjc4OSA2LjUzMyAxMi45NDIgNi41MzMgMTIuOTQyIDYuNTMzXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxOS42MjUgNi41MzMgMTkuMDY1IDUuOTY2IDE5LjA2NSA0LjI3MiAxOS43MTggMy43MDUgMjguMjk1IDMuNzA1IDI4Ljk1NiA0LjI3MiAyOC4wMDggNS4xMTkgMTkuNjI1IDUuNjc5IDE5LjYyNSA2LjUzMyAxOS42MjUgNi41MzNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmY7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE5LjYyNSA2LjUzMyAxOS4wNjUgNS45NjYgMTkuMDY1IDQuMjcyIDE5LjcxOCAzLjcwNSAyOC4yOTUgMy43MDUgMjguOTU2IDQuMjcyIDI4LjAwOCA1LjExOSAxOS42MjUgNS42NzkgMTkuNjI1IDYuNTMzIDE5LjYyNSA2LjUzM1xcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjguOTU2IDUuOTY2IDkuMDc0IDI2LjU5NCA2LjYyNiAyNi41OTQgNi42MjYgMjUuNzQ3IDguNDIgMjUuNzQ3IDI4LjI5NSA1LjM5OSAyOC4wMDggNC4yNzIgMjguOTU2IDQuMjcyIDI4Ljk1NiA1Ljk2NiAyOC45NTYgNS45NjZcXFwiIHN0eWxlPVxcXCJmaWxsOiM5Mjk0OTc7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI4Ljk1NiA1Ljk2NiA5LjA3NCAyNi41OTQgNi42MjYgMjYuNTk0IDYuNjI2IDI1Ljc0NyA4LjQyIDI1Ljc0NyAyOC4yOTUgNS4zOTkgMjguMDA4IDQuMjcyIDI4Ljk1NiA0LjI3MiAyOC45NTYgNS45NjYgMjguOTU2IDUuOTY2XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMS41MTIgNS42ODYgMjEuMzE5IDUuOTY2IDIwLjc1OSA2LjUzMyAxOS42MjUgNi41MzMgMTkuNjI1IDUuMzk5IDIxLjUxMiA1LjY4NiAyMS41MTIgNS42ODZcXFwiIHN0eWxlPVxcXCJmaWxsOiM5Mjk0OTc7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIxLjUxMiA1LjY4NiAyMS4zMTkgNS45NjYgMjAuNzU5IDYuNTMzIDE5LjYyNSA2LjUzMyAxOS42MjUgNS4zOTkgMjEuNTEyIDUuNjg2IDIxLjUxMiA1LjY4NlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTEuOTAyIDE2LjY5NiAxMS45MDIgNS45NTggMTMuNTAyIDUuOTU4IDEzLjc4OSA1LjY3OSAxMy43ODkgNC41NDQgMTMuNTAyIDQuMjY1IDUuMjEyIDQuMjY1IDQuOTMyIDQuNTQ0IDQuOTMyIDUuNjc5IDUuMjEyIDUuOTU4IDYuNjI2IDUuOTU4IDYuNjI2IDI1Ljc0NyA2Ljk5MiAyNi4wMjcgOC42MDcgMjYuMDI3IDI4LjM4OSA1LjM5OSAyOC4zODkgNC41ODggMjguMTAyIDQuMjY1IDE5LjkxMiA0LjI2NSAxOS42MjUgNC41NDQgMTkuNjI1IDUuNjg2IDE5LjkxMiA1Ljk2NiAyMS4zMjYgNS45NjYgMjEuMzI2IDcuMSAxMS45MDIgMTYuNjk2IDExLjkwMiAxNi42OTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMGQyZDM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjExLjkwMiAxNi42OTYgMTEuOTAyIDUuOTU4IDEzLjUwMiA1Ljk1OCAxMy43ODkgNS42NzkgMTMuNzg5IDQuNTQ0IDEzLjUwMiA0LjI2NSA1LjIxMiA0LjI2NSA0LjkzMiA0LjU0NCA0LjkzMiA1LjY3OSA1LjIxMiA1Ljk1OCA2LjYyNiA1Ljk1OCA2LjYyNiAyNS43NDcgNi45OTIgMjYuMDI3IDguNjA3IDI2LjAyNyAyOC4zODkgNS4zOTkgMjguMzg5IDQuNTg4IDI4LjEwMiA0LjI2NSAxOS45MTIgNC4yNjUgMTkuNjI1IDQuNTQ0IDE5LjYyNSA1LjY4NiAxOS45MTIgNS45NjYgMjEuMzI2IDUuOTY2IDIxLjMyNiA3LjEgMTEuOTAyIDE2LjY5NiAxMS45MDIgMTYuNjk2XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNy4wNDEgMTYuNzExIDE3LjcwMSAxNi4xNDQgMTkuMzk1IDE2LjE0NCAxOS44NjkgMTYuNzExIDE5LjMwMiAxOC40MDUgMTguNjQ5IDE4Ljk3MiAxNi45NTUgMTguOTcyIDE2LjQ3NCAxOC40MDUgMTcuMDQxIDE2LjcxMSAxNy4wNDEgMTYuNzExXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNy4wNDEgMTYuNzExIDE3LjcwMSAxNi4xNDQgMTkuMzk1IDE2LjE0NCAxOS44NjkgMTYuNzExIDE5LjMwMiAxOC40MDUgMTguNjQ5IDE4Ljk3MiAxNi45NTUgMTguOTcyIDE2LjQ3NCAxOC40MDUgMTcuMDQxIDE2LjcxMSAxNy4wNDEgMTYuNzExXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNy42MDggMjYuMDM0IDE5LjMwOSAyMC45NTMgMTguNzQyIDIwLjk1MyAxOS4zMDkgMTkuMjUxIDIxLjg0MyAxOS4yNTEgMjIuNDEgMTkuODE5IDIyLjc5IDE5LjgxOSAyMy4zNSAxOS4yNTEgMjUuMjM4IDE5LjI1MSAyNS44MDUgMTkuODE5IDI2LjE3OCAxOS44MTkgMjYuNzQ1IDE5LjI1MSAyOC44MTIgMTkuMjUxIDI5LjU2NiAyMC4zODYgMjguMzMxIDI0LjQwNSAyOC44OTEgMjQuNDA1IDI4LjM0NiAyNi4wMzQgMjQuOTUxIDI2LjAzNCAyNi4yNzggMjIuMDc5IDI1LjQzMSAyMi4wNzkgMjQuNjQ5IDI0LjM5MSAyNS4yMDkgMjQuMzkxIDI0LjY3OCAyNi4wMzQgMjEuMjgzIDI2LjAzNCAyMi42MDMgMjIuMDc5IDIxLjc1NiAyMi4wNzkgMjAuOTY3IDI0LjQwNSAyMS41MzQgMjQuNDA1IDIxLjAwMyAyNi4wMzQgMTcuNjA4IDI2LjAzNCAxNy42MDggMjYuMDM0XFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNy42MDggMjYuMDM0IDE5LjMwOSAyMC45NTMgMTguNzQyIDIwLjk1MyAxOS4zMDkgMTkuMjUxIDIxLjg0MyAxOS4yNTEgMjIuNDEgMTkuODE5IDIyLjc5IDE5LjgxOSAyMy4zNSAxOS4yNTEgMjUuMjM4IDE5LjI1MSAyNS44MDUgMTkuODE5IDI2LjE3OCAxOS44MTkgMjYuNzQ1IDE5LjI1MSAyOC44MTIgMTkuMjUxIDI5LjU2NiAyMC4zODYgMjguMzMxIDI0LjQwNSAyOC44OTEgMjQuNDA1IDI4LjM0NiAyNi4wMzQgMjQuOTUxIDI2LjAzNCAyNi4yNzggMjIuMDc5IDI1LjQzMSAyMi4wNzkgMjQuNjQ5IDI0LjM5MSAyNS4yMDkgMjQuMzkxIDI0LjY3OCAyNi4wMzQgMjEuMjgzIDI2LjAzNCAyMi42MDMgMjIuMDc5IDIxLjc1NiAyMi4wNzkgMjAuOTY3IDI0LjQwNSAyMS41MzQgMjQuNDA1IDIxLjAwMyAyNi4wMzQgMTcuNjA4IDI2LjAzNCAxNy42MDggMjYuMDM0XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyOC41NTQgMTkuODE5IDI4Ljk5MiAyMC40NDMgMjcuNTk5IDI0LjkwNyAyOC4xNTkgMjQuOTA3IDI3Ljk3MiAyNS40NjcgMjUuNzExIDI1LjQ2NyAyNy4wMzIgMjEuNTEyIDI1LjA1MSAyMS41MTIgMjMuOTI0IDI0LjkwNyAyNC40ODQgMjQuOTA3IDI0LjI5NyAyNS40NjcgMjIuMDM2IDI1LjQ2NyAyMy4zNTcgMjEuNTEyIDIxLjM3NiAyMS41MTIgMjAuMjQ5IDI0LjkwNyAyMC44MTYgMjQuOTA3IDIwLjYyMiAyNS40NjcgMTguMzYxIDI1LjQ2NyAyMC4wNjMgMjAuMzg2IDE5LjQ5NSAyMC4zODYgMTkuNjgyIDE5LjgxOSAyMS43NTYgMTkuODE5IDIyLjMyMyAyMC4zODYgMjIuODgzIDIwLjM4NiAyMy40NSAxOS44MTkgMjUuMTQ0IDE5LjgxOSAyNS43MTEgMjAuMzg2IDI2LjI3OCAyMC4zODYgMjYuODQ1IDE5LjgxOSAyOC41NTQgMTkuODE5IDI4LjU1NCAxOS44MTlcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMGQyZDM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI4LjU1NCAxOS44MTkgMjguOTkyIDIwLjQ0MyAyNy41OTkgMjQuOTA3IDI4LjE1OSAyNC45MDcgMjcuOTcyIDI1LjQ2NyAyNS43MTEgMjUuNDY3IDI3LjAzMiAyMS41MTIgMjUuMDUxIDIxLjUxMiAyMy45MjQgMjQuOTA3IDI0LjQ4NCAyNC45MDcgMjQuMjk3IDI1LjQ2NyAyMi4wMzYgMjUuNDY3IDIzLjM1NyAyMS41MTIgMjEuMzc2IDIxLjUxMiAyMC4yNDkgMjQuOTA3IDIwLjgxNiAyNC45MDcgMjAuNjIyIDI1LjQ2NyAxOC4zNjEgMjUuNDY3IDIwLjA2MyAyMC4zODYgMTkuNDk1IDIwLjM4NiAxOS42ODIgMTkuODE5IDIxLjc1NiAxOS44MTkgMjIuMzIzIDIwLjM4NiAyMi44ODMgMjAuMzg2IDIzLjQ1IDE5LjgxOSAyNS4xNDQgMTkuODE5IDI1LjcxMSAyMC4zODYgMjYuMjc4IDIwLjM4NiAyNi44NDUgMTkuODE5IDI4LjU1NCAxOS44MTkgMjguNTU0IDE5LjgxOVxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4wMjIsMTkuMjUxLDE3LjI5MiwyNC40aC41ODlsLS41NiwxLjYzN0gxMy45MzNsMS42OTQtNS4wODJIMTUuMDZsMy45NjItMS43Wm0tMy45NjIsMS43LjU2Ny0xLjdoMy40bC0zLjk2MiwxLjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE5LjAyMiwxOS4yNTEsMTcuMjkyLDI0LjRoLjU4OWwtLjU2LDEuNjM3SDEzLjkzM2wxLjY5NC01LjA4MkgxNS4wNmwzLjk2Mi0xLjdabS0zLjk2MiwxLjcuNTY3LTEuN2gzLjRsLTMuOTYyLDEuN1pcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2Ljk0NyAyNS40NjcgMTcuMTM0IDI0LjkwNyAxNi41NjcgMjQuOTA3IDE4LjI2OCAxOS44MTkgMTUuOTE0IDE5LjgxOSAxNS43MiAyMC4zODYgMTYuMzggMjAuMzg2IDE0LjY4NiAyNS40NjcgMTYuOTQ3IDI1LjQ2NyAxNi45NDcgMjUuNDY3XFxcIiBzdHlsZT1cXFwiZmlsbDojZDBkMmQzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNi45NDcgMjUuNDY3IDE3LjEzNCAyNC45MDcgMTYuNTY3IDI0LjkwNyAxOC4yNjggMTkuODE5IDE1LjkxNCAxOS44MTkgMTUuNzIgMjAuMzg2IDE2LjM4IDIwLjM4NiAxNC42ODYgMjUuNDY3IDE2Ljk0NyAyNS40NjcgMTYuOTQ3IDI1LjQ2N1xcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTguODI4IDE4LjEyNSAxOS4yMDggMTYuOTkxIDE5LjAyMiAxNi43MTEgMTcuODg4IDE2LjcxMSAxNy41MTQgMTYuOTkxIDE3LjEzNCAxOC4xMjUgMTcuMzI4IDE4LjQwNSAxOC40NjIgMTguNDA1IDE4LjgyOCAxOC4xMjUgMTguODI4IDE4LjEyNVxcXCIgc3R5bGU9XFxcImZpbGw6I2QwZDJkMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTguODI4IDE4LjEyNSAxOS4yMDggMTYuOTkxIDE5LjAyMiAxNi43MTEgMTcuODg4IDE2LjcxMSAxNy41MTQgMTYuOTkxIDE3LjEzNCAxOC4xMjUgMTcuMzI4IDE4LjQwNSAxOC40NjIgMTguNDA1IDE4LjgyOCAxOC4xMjUgMTguODI4IDE4LjEyNVxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPlwiLFxuXHR9LFxuXHRcIlZpc3VhbCBCYXNpY1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMDUxOWFcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk02LjY3LDcuODM2LDksMTguOTE1LDExLjMzNiw3LjgzNkgxNkwxMS4zMzYsMjQuMTY0SDYuNjcyTDIsNy44MzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1MTlhXFxcIi8+PHBhdGggZD1cXFwiTTE4LjMzMSw3LjgzNmg3LjZhNC4wOCw0LjA4LDAsMCwxLDIuOSwxLjc0OSwzLjc4LDMuNzgsMCwwLDEsLjU3MSwyLjA0LDMuOTg1LDMuOTg1LDAsMCwxLS41NzEsMi4wMzQsNC4xMDgsNC4xMDgsMCwwLDEtMi4zNDEsMS43NjMsNC4xLDQuMSwwLDAsMSwyLjkyOSwxLjc1NiwzLjgsMy44LDAsMCwxLC41OCwyLjEsNC42NjMsNC42NjMsMCwwLDEtLjU3OSwyLjU0Niw1LjA0Nyw1LjA0NywwLDAsMS0zLjUsMi4zMzhIMTguMzMxWk0yMywxNC4yNTJoMS4xNjZhMS43NTQsMS43NTQsMCwwLDAsMC0zLjVIMjNabTAsN0gyNC4zOWEyLjA0NywyLjA0NywwLDAsMCwwLTQuMDg5SDIzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNTE5YVxcXCIvPlwiLFxuXHR9LFxuXHRcIldlYkFzc2VtYmx5XCI6IHtcblx0XHRjb2xvdXI6IFwiIzY1NGZmMFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE5LjE1MywyLjM1VjIuNWEzLjIsMy4yLDAsMSwxLTYuNCwwaDBWMi4zNUgyVjMwLjI2OUgyOS45MTlWMi4zNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTRmZjBcXFwiLz48cGF0aCBkPVxcXCJNOC40ODUsMTcuNGgxLjg1TDExLjYsMjQuMTIzaC4wMjNMMTMuMTQsMTcuNGgxLjczMWwxLjM3MSw2LjgxaC4wMjdsMS40NC02LjgxaDEuODE1bC0yLjM1OCw5Ljg4NUgxNS4zMjlsLTEuMzYtNi43MjhoLS4wMzZsLTEuNDU2LDYuNzI4aC0xLjg3Wm0xMy4xMjQsMGgyLjkxN2wyLjksOS44ODVIMjUuNTE1bC0uNjMtMi4ySDIxLjU2MmwtLjQ4NiwyLjJIMTkuMjE3Wm0xLjExLDIuNDM3LS44MDcsMy42MjdoMi41MTJMMjMuNSwxOS44MzJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdH0sXG5cdFwiV29sZnJhbSBsYW5ndWFnZVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNkMDEwMDBcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0zMCwyMC41NSwyNS45NCwxNiwzMCwxMS40NWwtNS45NDgtMS4yOTQuNTk1LTYuMDY3TDE5LjA3MSw2LjU0MywxNS45OTMsMS4yNzksMTIuOTI5LDYuNTQzLDcuMzUzLDQuMDg5bC41OTUsNi4wNjdMMiwxMS40NSw2LjA1OSwxNiwyLDIwLjU1bDUuOTQ4LDEuMjk0LS41OTUsNi4wNjcsNS41NzYtMi40NTQsMy4wNzgsNS4yNjQsMy4wNjMtNS4yNjQsNS41OTEsMi40NTQtLjYxLTYuMDY3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QxMFxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4zNTMsMTEuNDVhNi45NjgsNi45NjgsMCwwLDEtMy40Mi44NjIsNS40NDYsNS40NDYsMCwwLDEtMy4yMTItLjg2MkE3LjEsNy4xLDAsMCwxLDEyLjUsMTQuOGE2LjIyNSw2LjIyNSwwLDAsMS0xLjg3NCwyLjkxNCw3LjQ1NCw3LjQ1NCwwLDAsMSwzLjEzOCwxLjE5LDkuNjU5LDkuNjU5LDAsMCwxLDIuMjE2LDIuNzIxLDguMTk0LDguMTk0LDAsMCwxLDIuMTQxLTIuNjkxLDcuNjA1LDcuNjA1LDAsMCwxLDMuMjQyLTEuMiwxMi41NjIsMTIuNTYyLDAsMCwxLTEuOTMzLTIuOTQ0QTYuNzE4LDYuNzE4LDAsMCwxLDE5LjM1MywxMS40NVptLTEuOSw2LjU0M2E1LjIzMyw1LjIzMywwLDAsMC0xLjQ1NywxLjYzNiw2LjIzNiw2LjIzNiwwLDAsMC0xLjUtMS42MjEsNS4xOTEsNS4xOTEsMCwwLDAtMS45NDgtLjg0OCw2LjgzOSw2LjgzOSwwLDAsMCwxLjExNS0yLjAwNyw2LjE4LDYuMTgsMCwwLDAsLjIyMy0yLjA4Miw2LjMxNyw2LjMxNywwLDAsMCwyLjA4Mi40NDYsNi41NTIsNi41NTIsMCwwLDAsMi4xNzEtLjQ2MSw0LjUyMSw0LjUyMSwwLDAsMCwuMDc0LDIuMTU2LDYuNzEsNi43MSwwLDAsMCwxLjI0OSwxLjkzM0E3LjAzMSw3LjAzMSwwLDAsMCwxNy40NSwxNy45OTNabTQuMjM4LTQuMDE1Yy0uMzU3LTEuMTc1LjY1NC02LjcwNi42NTQtNi43MDZTMTguNTUsOS44NDQsMTUuODg4LDkuODQ0cy02LjIzLTIuNTcyLTYuMjMtMi41NzIsMS4xNzUsNC4wMTUuNDYxLDYuNTg3LTQuMzg3LDUuNDcyLTQuMzg3LDUuNDcyLDQuNzg4LjI4Myw2LjYsMS41LDMuNjU4LDUuOTQ4LDMuNjU4LDUuOTQ4LDIuNDU0LTUuMiwzLjQ4LTUuOTQ4LDYuOC0xLjUsNi44LTEuNS00LjIyMy00LjE3OC00LjU4LTUuMzUzWm0tMi44NCw1Ljk2M2E5LjQ0NCw5LjQ0NCwwLDAsMC0yLjg0LDQuMTc4cy0xLjQxMy0zLjE1Mi0yLjk3NC00LjIyM1M4LjMsMTguNTQzLDguMywxOC41NDNzMi40NTQtMi4xNzEsMy4wNDgtNC4xYTExLjkyMywxMS45MjMsMCwwLDAtLjEtNC45NTIsMTEuMywxMS4zLDAsMCwwLDQuNjY5LDEuNjIxYzIuMDM3LDAsNC44NDgtMS42MjEsNC44NDgtMS42MjFzLS44MTgsMy4wMzMtLjE2NCw0LjkyMiwzLjEwOCw0LjEzNCwzLjEwOCw0LjEzNGExMC41NTcsMTAuNTU3LDAsMCwwLTQuODYyLDEuNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0fSxcblx0XCJYTUxcIjoge1xuXHRcdGNvbG91cjogXCIjZjE2NjJhXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjAuNDIsMjEuMTU3bDIuMjExLDIuMjExTDMwLDE2LDIyLjYzMSw4LjYzMSwyMC40MiwxMC44NDMsMjUuNTgsMTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjE2NjJhXFxcIi8+PHBhdGggZD1cXFwiTTExLjU4LDEwLjg0Myw5LjM2OSw4LjYzMSwyLDE2bDcuMzY5LDcuMzY5LDIuMjExLTIuMjExTDYuNDIsMTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjE2NjJhXFxcIi8+PHBhdGggZD1cXFwiTTE3LjQxMSw3LjY3N2wxLjYuNDM3LTQuNDIsMTYuMjA5LTEuNi0uNDM3LDQuNDItMTYuMjA5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2YxNjYyYVxcXCIvPlwiLFxuXHR9LFxuXHRcIlhRdWVyeVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNmMTY2MmFcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yMC40MiwyMS4xNTdsMi4yMTEsMi4yMTFMMzAsMTYsMjIuNjMxLDguNjMxLDIwLjQyLDEwLjg0MywyNS41OCwxNlpNMTEuNTgsMTAuODQzLDkuMzY5LDguNjMxLDIsMTZsNy4zNjksNy4zNjksMi4yMTEtMi4yMTFMNi40MiwxNlptNS44MzEtMy4xNjYsMS42LjQzNy00LjQyLDE2LjIwOS0xLjYtLjQzN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMTY2MmFcXFwiLz48cGF0aCBkPVxcXCJNMjAuMzMyLDE4LjQ2MmEzLjM1NCwzLjM1NCwwLDAsMSwuOTc1LTEuNDIzLDQuMDE0LDQuMDE0LDAsMCwxLDEuNjE3LS44QTkuMTE4LDkuMTE4LDAsMCwxLDI1LjEzOCwxNmE1LjQ3Miw1LjQ3MiwwLDAsMSwzLjY4MSwxLjAzOUEzLjUsMy41LDAsMCwxLDMwLDE5LjgwOGE0LjQ3LDQuNDcsMCwwLDEtLjI0LDEuNDkxLDMuMTI0LDMuMTI0LDAsMCwxLS44MzgsMS4yMzlsLTEuNjc1LDEuNmExLjUxMiwxLjUxMiwwLDAsMC0uNDI0Ljc4OSw1LjMwNyw1LjMwNywwLDAsMC0uMSwxLjFIMjN2LS41NGE2LjMyLDYuMzIsMCwwLDEsLjIwNy0xLjc3OCwyLjg4NiwyLjg4NiwwLDAsMSwuNzgtMS4yNGwxLjM1Mi0xLjI4OWExLjg0LDEuODQsMCwwLDAsLjU2My0uODk0LDMuNjgyLDMuNjgyLDAsMCwwLC4xLS44LDEuNSwxLjUsMCwwLDAtLjI1Mi0uOS45LjksMCwwLDAtLjc3OS0uMzQ2LDEuMjU1LDEuMjU1LDAsMCwwLS40ODMuMDg2LjcyNC43MjQsMCwwLDAtLjM0NC4zMzcsMi4zNDcsMi4zNDcsMCwwLDAtLjIxNy43MjEsNy42MTQsNy42MTQsMCwwLDAtLjA4MSwxLjI0SDIwQTYuMTU1LDYuMTU1LDAsMCwxLDIwLjMzMiwxOC40NjJabTYuNDU3LDguNVYzMEgyMi45MzZWMjYuOTYyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZjYmEwMFxcXCIvPlwiLFxuXHR9LFxuXHRcIllBTUxcIjoge1xuXHRcdGNvbG91cjogXCIjZmZlODg1XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMiwxMi4yMThjLjc1NSwwLDEuNTEtLjAwOCwyLjI2NCwwbC4wNTMuMDM4UTUuNywxMy42MzgsNy4wNzgsMTUuMDE0Yy44OTEtLjkwNiwxLjgtMS43OTQsMi43LTIuNy4wNTMtLjA1Mi4xMS0uMTEzLjE5Mi0uMS42MDgsMCwxLjIxNSwwLDEuODIzLDBhMS40LDEuNCwwLDAsMSwuMzUzLjAxOWMtLjcuNjctMS4zNzcsMS4zNjktMi4wNjksMi4wNUw1LjU0NSwxOC44Yy0uMzMxLjMyNC0uNjQ4LjY2My0uOTg5Ljk3NS0uNzU0LjAyMi0xLjUxMS4wMDctMi4yNjYuMDA3LDEuMjIzLTEuMjA5LDIuNDMxLTIuNDMzLDMuNjU4LTMuNjM3QzQuNjI3LDE0Ljg0MSwzLjMxOCwxMy41MjUsMiwxMi4yMThaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZlODg1XFxcIi8+PHBhdGggZD1cXFwiTTEyLjcsMTIuMjE4Yy42MTMsMCwxLjIyNiwwLDEuODM5LDBxMCwzLjc4MywwLDcuNTY2Yy0uNjExLDAtMS4yMjIuMDEyLTEuODMyLS4wMDgsMC0xLjY2NCwwLTMuMzI5LDAtNC45OTQtMS42LDEuNjA3LTMuMjA5LDMuMi00LjgxMSw0LjgtLjA4OS4wOC0uMTY2LjIxNy0uMzA1LjE5NC0uODI0LS4wMDYtMS42NDksMC0yLjQ3NCwwUTguOTE2LDE2LDEyLjcsMTIuMjE4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZTg4NVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC45NTgsMTIuMjJjLjQ3LS4wMDkuOTM5LDAsMS40MDksMCwuODM2Ljg1MywxLjY5LDEuNjg5LDIuNTM2LDIuNTMycTEuMjY4LTEuMjY3LDIuNTM5LTIuNTMyLjcsMCwxLjQsMC0uMDA4LDMuNzg0LDAsNy41NjdjLS40NzEsMC0uOTQzLjAwNi0xLjQxNCwwcS4wMDgtMi4zODcsMC00Ljc3M2MtLjg0NC44NDMtMS42NzYsMS43LTIuNTI2LDIuNTM2LS44NTYtLjgzNS0xLjY4Ny0xLjY5NS0yLjUzMi0yLjU0MSwwLDEuNTk0LS4wMDYsMy4xODguMDA2LDQuNzgxLS40NzIsMC0uOTQzLjAwNS0xLjQxNSwwUTE0Ljk1OCwxNiwxNC45NTgsMTIuMjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZlODg1XFxcIi8+PHBhdGggZD1cXFwiTTIzLjI1OSwxMi4yMTdjLjQ3MiwwLC45NDQtLjAwNywxLjQxNiwwcS0uMDA3LDMuMDgzLDAsNi4xNjZjMS4yNiwwLDIuNTIxLDAsMy43ODIsMCwuMDYzLjAwNi4xNDQtLjAxMi4xOTEuMDQ1LjQ0OC40NTQuOTA3LjksMS4zNTMsMS4zNTRxLTMuMzcxLjAwNy02Ljc0MSwwUTIzLjI2NywxNiwyMy4yNTksMTIuMjE3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZTg4NVxcXCIvPlwiLFxuXHR9LFxuXHRcIllBTkdcIjoge1xuXHRcdGNvbG91cjogXCIjMjMxZjIwXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNOC44NzcsMjMuMTU5YzAtNS41MzUsMy45OTItNy4xNjgsNy44OTQtNy4xNjgsMy4zNTcsMCw1Ljk4OC0zLjgxMSw1Ljk4OC02LjYyNCwwLTMuNjIxLTIuNDg3LTUuODMxLTQuODgyLTcuMTJBMTMuODgxLDEzLjg4MSwwLDEsMCwxNC41LDI5LjhDMTAuNDkxLDI4LjI0OCw4Ljg3NywyNS4zMjQsOC44NzcsMjMuMTU5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNC40ODIsMjkuOTE3QTE0LDE0LDAsMCwxLDE2LDJhMTQuMTU0LDE0LjE1NCwwLDAsMSwxLjg5My4xMzFsLjA0LjAxM2MyLjI1NSwxLjIxMyw0Ljk0NCwzLjQ1Miw0Ljk0NCw3LjIyMywwLDIuNzE1LTIuNTY0LDYuNzQxLTYuMTA2LDYuNzQxLTIuOSwwLTcuNzc2LjkxNi03Ljc3Niw3LjA1LDAsMi4wMjIsMS40NTEsNC45NDYsNS41NDIsNi41MzFaTTE2LDIuMjM2QTEzLjc2NSwxMy43NjUsMCwwLDAsMTMuNjM3LDI5LjU2Yy0zLjU4MS0xLjY4NC00Ljg3Ny00LjQ0Ny00Ljg3Ny02LjQsMC02LjU3Niw1LjYtNy4yODYsOC4wMTItNy4yODYsMy40MDYsMCw1Ljg3LTMuODg2LDUuODctNi41MDYsMC0zLjY0NS0yLjYwNi01LjgyLTQuOC03LjAwNkExMy45MjgsMTMuOTI4LDAsMCwwLDE2LDIuMjM2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk0yOS44ODIsMTZhMTMuODgyLDEzLjg4MiwwLDAsMC0xMi0xMy43NTJjMi40LDEuMjg5LDQuODgyLDMuNSw0Ljg4Miw3LjEyLDAsMi44MTMtMi42MzEsNi42MjQtNS45ODgsNi42MjQtMy45LDAtNy44OTQsMS42MzMtNy44OTQsNy4xNjgsMCwyLjE2NiwxLjYxMyw1LjA4OSw1LjYxOCw2LjY0MUExMy44NzUsMTMuODc1LDAsMCwwLDI5Ljg4MiwxNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48cGF0aCBkPVxcXCJNMTYsMzBhMTQuMiwxNC4yLDAsMCwxLTEuNTE4LS4wODNsLS4wMy0uMDA3Yy00LjItMS42MjgtNS42OTMtNC42NTQtNS42OTMtNi43NSwwLTYuNTc2LDUuNi03LjI4Niw4LjAxMi03LjI4NiwzLjQwNiwwLDUuODctMy44ODYsNS44Ny02LjUwNiwwLTMuNjU1LTIuNjIxLTUuODMzLTQuODItNy4wMTZsLjA3Mi0uMjIxQTE0LDE0LDAsMCwxLDE2LDMwWm0tMS40NzctLjMxNkExMy43NTYsMTMuNzU2LDAsMCwwLDI5Ljc2NCwxNiwxMy44MDcsMTMuODA3LDAsMCwwLDE4LjUsMi40NjZjMi4xMTUsMS4yNzIsNC4zNzcsMy40NDEsNC4zNzcsNi45LDAsMi43MTUtMi41NjQsNi43NDEtNi4xMDYsNi43NDEtMi45LDAtNy43NzYuOTE2LTcuNzc2LDcuMDVDOSwyNS4xNzgsMTAuNDQzLDI4LjEsMTQuNTIzLDI5LjY4NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48Y2lyY2xlIGN4PVxcXCIxNS45NDNcXFwiIGN5PVxcXCIyMi43ODdcXFwiIHI9XFxcIjEuNTA2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PGNpcmNsZSBjeD1cXFwiMTYuMDA3XFxcIiBjeT1cXFwiOS4xNDJcXFwiIHI9XFxcIjEuNTA2XFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+XCIsXG5cdH0sXG5cdFwiWmlnXCI6IHtcblx0XHRjb2xvdXI6IFwiI2Y3YTQxZFwiLFxuXHRcdGljb246IFwiPHBvbHlnb24gcG9pbnRzPVxcXCI1LjczMyAxOS43MzEgNS43MzMgMTIuMjY0IDguNTMzIDEyLjI2NCA4LjUzMyA4LjUzMSAyIDguNTMxIDIgMjMuNDY0IDUuNTQ3IDIzLjQ2NCA4LjkwNyAxOS43MzEgNS43MzMgMTkuNzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojZjdhNDFkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyNi40NTMgOC41MzEgMjMuMDkzIDEyLjI2NCAyNi4yNjcgMTIuMjY0IDI2LjI2NyAxOS43MzEgMjMuNDY3IDE5LjczMSAyMy40NjcgMjMuNDY0IDMwIDIzLjQ2NCAzMCA4LjUzMSAyNi40NTMgOC41MzFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmN2E0MWRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI2Ljg3NSA2LjcwNyAyMC41MTMgOC41MzEgOS40NjcgOC41MzEgOS40NjcgMTIuMjY0IDE2Ljg0NyAxMi4yNjQgNS4xMTUgMjUuMjkzIDExLjQ5NyAyMy40NjQgMjIuNTMzIDIzLjQ2NCAyMi41MzMgMTkuNzMxIDE1LjE0OCAxOS43MzEgMjYuODc1IDYuNzA3XFxcIiBzdHlsZT1cXFwiZmlsbDojZjdhNDFkXFxcIi8+XCIsXG5cdH1cbn07XG5cbmNvbnN0IEVYRUNVVEVfQ09ERV9MQU5HVUFHRV9BTElBU0VTOiBBcnJheTxzdHJpbmc+ID0gW1wiamF2YXNjcmlwdFwiLFwidHlwZXNjcmlwdFwiLFwiYmFzaFwiLFwiY3NoYXJwXCIsXCJ3b2xmcmFtXCIsXCJuYlwiLFwid2xcIixcImhzXCIsXCJweVwiXTtcbmNvbnN0IEVYRUNVVEVfQ09ERV9DQU5PTklDQUxfTEFOR1VBR0VTOiBBcnJheTxzdHJpbmc+ID0gW1wianNcIixcInRzXCIsXCJjc1wiLFwibGVhblwiLFwibHVhXCIsXCJweXRob25cIixcImNwcFwiLFwicHJvbG9nXCIsXCJzaGVsbFwiLFwiZ3Jvb3Z5XCIsXCJyXCIsXCJnb1wiLFwicnVzdFwiLFwiamF2YVwiLFwicG93ZXJzaGVsbFwiLFwia290bGluXCIsXCJtYXRoZW1hdGljYVwiLFwiaGFza2VsbFwiLFwic2NhbGFcIixcInN3aWZ0XCIsXCJyYWNrZXRcIixcImZzaGFycFwiLFwiY1wiLFwiZGFydFwiLFwicnVieVwiLFwiYmF0Y2hcIixcInNxbFwiLFwib2N0YXZlXCIsXCJtYXhpbWFcIixcImFwcGxlc2NyaXB0XCIsXCJ6aWdcIixcIm9jYW1sXCJdO1xuXG5leHBvcnQgY29uc3QgRVhFQ1VURV9DT0RFX1NVUFBPUlRFRF9MQU5HVUFHRVMgPSBbLi4uRVhFQ1VURV9DT0RFX0xBTkdVQUdFX0FMSUFTRVMsLi4uRVhFQ1VURV9DT0RFX0NBTk9OSUNBTF9MQU5HVUFHRVNdO1xuIiwgImltcG9ydCB7IEFwcCwgUGx1Z2luU2V0dGluZ1RhYiwgU2V0dGluZywgTm90aWNlLCBUZXh0Q29tcG9uZW50LCBEcm9wZG93bkNvbXBvbmVudCwgU2xpZGVyQ29tcG9uZW50LCBUb2dnbGVDb21wb25lbnQsIEV4dHJhQnV0dG9uQ29tcG9uZW50LCBNYXJrZG93blJlbmRlcmVyIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQgUGlja3IgZnJvbSBcIkBzaW1vbndlcC9waWNrclwiO1xuaW1wb3J0IHsgQ29sb3JUcmFuc2xhdG9yIH0gZnJvbSBcImNvbG9ydHJhbnNsYXRvclwiO1xuXG5pbXBvcnQgQ29kZVN0eWxlclBsdWdpbiBmcm9tIFwiLi9tYWluXCI7XG5pbXBvcnQgeyBDb2xvdXIsIENTUywgSEVYLCBEaXNwbGF5LCBDb2RlU3R5bGVyU2V0dGluZ3MsIENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIEZPTERfUExBQ0VIT0xERVIsIFBBUkFNRVRFUlMsIERFRkFVTFRfU0VUVElOR1MsIExBTkdVQUdFX05BTUVTLCBMQU5HVUFHRVMsIFNFVFRJTkdTX1NPVVJDRVBBVEhfUFJFRklYLCBFWEFNUExFX0lOTElORV9DT0RFLCBFWEFNUExFX0NPREVCTE9DS19QQVJBTUVURVJTLCBFWEFNUExFX0NPREVCTE9DS19DT05URU5ULCBFWENMVURFRF9MQU5HVUFHRVMsIFdISVRFTElTVF9DT0RFQkxPQ0tTLCBJTkJVSUxUX1RIRU1FUywgQ29kZVN0eWxlclRoZW1lIH0gZnJvbSBcIi4vU2V0dGluZ3NcIjtcblxuY29uc3QgU0VUVElOR1NfUEFHRVM6IFJlY29yZDxzdHJpbmcsc3RyaW5nPiA9IHtcblx0XCJtYWluXCI6IFwiQ29yZSBTZXR0aW5nc1wiLFxuXHRcImNvZGVibG9ja1wiOiBcIkNvZGVibG9jayBTdHlsaW5nXCIsXG5cdFwiaW5saW5lXCI6IFwiSW5saW5lIENvZGUgU3R5bGluZ1wiLFxufTtcbmNvbnN0IENPREVCTE9DS19QQUdFUzogUmVjb3JkPHN0cmluZyxzdHJpbmc+ID0ge1xuXHRcImJvZHlcIjogXCJDb2RlYmxvY2sgQm9keVwiLFxuXHRcImd1dHRlclwiOiBcIkNvZGVibG9jayBHdXR0ZXJcIixcblx0XCJoZWFkZXJcIjogXCJDb2RlYmxvY2sgSGVhZGVyXCIsXG5cdFwiaGlnaGxpZ2h0XCI6IFwiQ29kZWJsb2NrIEhpZ2hsaWdodGluZ1wiLFxuXHRcImxhbmd1YWdlc1wiOiBcIkNvZGVibG9jayBMYW5ndWFnZXNcIixcblx0Ly8gXCJwbHVnaW5zXCI6IFwiUGx1Z2luIENvbXBhdGliaWxpdHlcIixcblx0XCJleGFtcGxlXCI6IFwiRXhhbXBsZSBDb2RlYmxvY2sgQ29udGVudFwiLFxufTtcbmNvbnN0IERJU1BMQVlfT1BUSU9OUzogUmVjb3JkPERpc3BsYXksc3RyaW5nPiA9IHtcblx0XCJub25lXCI6IFwiTmV2ZXJcIixcblx0XCJpZl9oZWFkZXJfc2hvd25cIjogXCJJZiBIZWFkZXIgU2hvd25cIixcblx0XCJhbHdheXNcIjogXCJBbHdheXNcIixcbn07XG5cbmV4cG9ydCBjbGFzcyBTZXR0aW5nc1RhYiBleHRlbmRzIFBsdWdpblNldHRpbmdUYWIge1xuXHRwbHVnaW46IENvZGVTdHlsZXJQbHVnaW47XG5cdHBpY2tyczogUmVjb3JkPHN0cmluZyxQaWNrclJlc2V0dGFibGU+O1xuXHRwYWdlOiBzdHJpbmc7XG5cdGNvZGVibG9ja1BhZ2U6IHN0cmluZztcblx0aGlkZUFkdmFuY2VkOiBib29sZWFuO1xuXHRjb2RlYmxvY2tTZXR0aW5nRWw6IEhUTUxFbGVtZW50O1xuXHRhZHZhbmNlZFNldHRpbmdzQ29udGFpbmVyOiBIVE1MRWxlbWVudDtcblx0YWx0ZXJuYXRpdmVIaWdobGlnaHRzQ29udGFpbmVyOiBIVE1MRWxlbWVudDtcblx0ZXhhbXBsZUNvZGVibG9ja0NvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cdGV4YW1wbGVJbmxpbmVDb2RlQ29udGFpbmVyOiBIVE1MRWxlbWVudDtcblx0d3JhcExpbmVzQ29udGFpbmVyOiBIVE1MRWxlbWVudDtcblx0bGluZU51bWJlcnNDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXHRoZWFkZXJUYWdzQ29udGFpbmVyOiBIVE1MRWxlbWVudDtcblx0aGVhZGVySWNvbnNDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXHRoZWFkZXJFeHRlcm5hbFJlZmVyZW5jZUNvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cdGlubGluZUNvZGVTdHlsZXNDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXHRkaXNhYmxlYWJsZUNvbXBvbmVudHM6IFJlY29yZDxzdHJpbmcsQXJyYXk8VG9nZ2xlQ29tcG9uZW50IHwgU2xpZGVyQ29tcG9uZW50IHwgVGV4dENvbXBvbmVudCB8IEV4dHJhQnV0dG9uQ29tcG9uZW50Pj47XG5cblx0Y29uc3RydWN0b3IoYXBwOiBBcHAsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbikge1xuXHRcdHN1cGVyKGFwcCwgcGx1Z2luKTtcblx0XHR0aGlzLnBsdWdpbiA9IHBsdWdpbjtcblx0XHR0aGlzLnBpY2tycyA9IHt9O1xuXHRcdHRoaXMucGFnZSA9IFwibWFpblwiO1xuXHRcdHRoaXMuY29kZWJsb2NrUGFnZSA9IFwiYm9keVwiO1xuXHRcdHRoaXMuaGlkZUFkdmFuY2VkID0gdHJ1ZTtcblx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50cyA9IHt9O1xuXHR9XG5cblx0LyoqXG5cdCAqICBCdWlsZHMgdGhlIGh0bWwgcGFnZSB0aGF0IGlzIHNob3dlZCBpbiB0aGUgc2V0dGluZ3MuXG5cdCAqL1xuXHRkaXNwbGF5KCkge1xuXHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzID0ge1xuXHRcdFx0XCJlZGl0b3JBY3RpdmVMaW5lSGlnaGxpZ2h0XCI6IFtdLFxuXHRcdFx0XCJjb2RlYmxvY2tBY3RpdmVMaW5lSGlnaGxpZ2h0XCI6IFtdLFxuXHRcdFx0XCJncmFkaWVudEhpZ2hsaWdodGluZ1wiOiBbXSxcblx0XHRcdFwibGFuZ3VhZ2VCb3JkZXJDb2xvdXJcIjogW10sXG5cdFx0fTtcblx0XHR0aGlzLmhpZGVBZHZhbmNlZCA9IHRydWU7XG5cdFx0dGhpcy5nZW5lcmF0ZVNldHRpbmdzKHRoaXMuY29udGFpbmVyRWwpO1xuXHR9XG5cblx0Ly8gQ3JlYXRlIFNldHRpbmdzIFBhZ2VzXG5cdGRpc3BsYXlNYWluU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0dGhpcy5lbXB0eVNldHRpbmdzKGNvbnRhaW5lckVsKTtcblx0XHR0aGlzLmdlbmVyYXRlVGhlbWVTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdFx0dGhpcy5nZW5lcmF0ZVNldHRpbmdzU3dpdGNoZXIoY29udGFpbmVyRWwpO1xuXHRcdHRoaXMuZ2VuZXJhdGVDb3JlU2V0dGluZ3MoY29udGFpbmVyRWwpO1xuXHRcdHRoaXMuZ2VuZXJhdGVBZHZhbmNlZEhlYWRpbmcoY29udGFpbmVyRWwpO1xuXHRcdHRoaXMuYWR2YW5jZWRTZXR0aW5nc0NvbnRhaW5lciA9IGNvbnRhaW5lckVsLmNyZWF0ZURpdigpO1xuXHRcdHRoaXMuZ2VuZXJhdGVBZHZhbmNlZFNldHRpbmdzKCk7XG5cdFx0dGhpcy5nZW5lcmF0ZURvbmF0aW9uRm9vdGVyKGNvbnRhaW5lckVsKTtcblx0fVxuXHRkaXNwbGF5Q29kZWJsb2NrU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0dGhpcy5lbXB0eVNldHRpbmdzKGNvbnRhaW5lckVsKTtcblx0XHR0aGlzLmdlbmVyYXRlVGhlbWVTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdFx0dGhpcy5nZW5lcmF0ZVNldHRpbmdzU3dpdGNoZXIoY29udGFpbmVyRWwpO1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaHJcIik7XG5cdFx0dGhpcy5leGFtcGxlQ29kZWJsb2NrQ29udGFpbmVyID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUV4YW1wbGVDb2RlYmxvY2soKTtcblx0XHR0aGlzLmdlbmVyYXRlQ29kZWJsb2NrU3R5bGluZ1N3aXRjaGVyKGNvbnRhaW5lckVsKTtcblx0XHR0aGlzLmNvZGVibG9ja1NldHRpbmdFbCA9IGNvbnRhaW5lckVsLmNyZWF0ZURpdigpO1xuXHRcdHRoaXMuZ2VuZXJhdGVDb2RlYmxvY2tTZXR0aW5nKCk7XG5cblx0fVxuXHRkaXNwbGF5SW5saW5lQ29kZVNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdHRoaXMuZW1wdHlTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdFx0dGhpcy5nZW5lcmF0ZVRoZW1lU2V0dGluZ3MoY29udGFpbmVyRWwpO1xuXHRcdHRoaXMuZ2VuZXJhdGVTZXR0aW5nc1N3aXRjaGVyKGNvbnRhaW5lckVsKTtcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImhyXCIpO1xuXHRcdHRoaXMuZXhhbXBsZUlubGluZUNvZGVDb250YWluZXIgPSBjb250YWluZXJFbC5jcmVhdGVEaXYoKTtcblx0XHR0aGlzLmdlbmVyYXRlRXhhbXBsZUlubGluZUNvZGUoKTtcblx0XHR0aGlzLmdlbmVyYXRlRXhhbXBsZUlubGluZUNvZGVTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUlubGluZUNvZGVTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdH1cblxuXHQvLyBDcmVhdGUgU2V0dGluZ3MgR3JvdXBzXG5cdGVtcHR5U2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0Y29udGFpbmVyRWwuZW1wdHkoKTtcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImgxXCIsIHt0ZXh0OiBcIlNldHRpbmdzIGZvciB0aGUgQ29kZSBTdHlsZXIgUGx1Z2luLlwifSk7XG5cdH1cblx0Z2VuZXJhdGVTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRpZiAodGhpcy5wYWdlID09PSBcIm1haW5cIilcblx0XHRcdHRoaXMuZGlzcGxheU1haW5TZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdFx0ZWxzZSBpZiAodGhpcy5wYWdlID09PSBcImNvZGVibG9ja1wiKVxuXHRcdFx0dGhpcy5kaXNwbGF5Q29kZWJsb2NrU2V0dGluZ3MoY29udGFpbmVyRWwpO1xuXHRcdGVsc2UgaWYgKHRoaXMucGFnZSA9PT0gXCJpbmxpbmVcIilcblx0XHRcdHRoaXMuZGlzcGxheUlubGluZUNvZGVTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdH1cblx0Z2VuZXJhdGVTZXR0aW5nc1N3aXRjaGVyKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJDaG9vc2UgU2V0dGluZ3MgUGFnZVwiKVxuXHRcdFx0LnNldERlc2MoXCJDaGFuZ2UgZHJvcGRvd24gdG8gbW9kaWZ5IGRpZmZlcmVudCBncm91cHMgb2Ygc2V0dGluZ3NcIilcblx0XHRcdC5hZGREcm9wZG93bigoZHJvcGRvd24pID0+IGRyb3Bkb3duXG5cdFx0XHRcdC5hZGRPcHRpb25zKFNFVFRJTkdTX1BBR0VTKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wYWdlKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlOiBzdHJpbmcpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBhZ2UgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLmdlbmVyYXRlU2V0dGluZ3MoY29udGFpbmVyRWwpO1xuXHRcdFx0XHR9KSk7XG5cdH1cblx0Z2VuZXJhdGVDb2RlYmxvY2tTdHlsaW5nU3dpdGNoZXIoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkNob29zZSBDb2RlYmxvY2sgU2V0dGluZ3NcIilcblx0XHRcdC5zZXREZXNjKFwiQ2hhbmdlIGRyb3Bkb3duIHRvIG1vZGlmeSBzdHlsZXMgYW5kIHNldHRpbmdzIG9mIGRpZmZlcmVudCBjb2RlYmxvY2sgc2VjdGlvbnNcIilcblx0XHRcdC5hZGREcm9wZG93bigoZHJvcGRvd24pID0+IGRyb3Bkb3duXG5cdFx0XHRcdC5hZGRPcHRpb25zKENPREVCTE9DS19QQUdFUylcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMuY29kZWJsb2NrUGFnZSlcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZTogc3RyaW5nKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5jb2RlYmxvY2tQYWdlID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5nZW5lcmF0ZUNvZGVibG9ja1NldHRpbmcoKTtcblx0XHRcdFx0fSkpO1xuXHR9XG5cdGdlbmVyYXRlQ29kZWJsb2NrU2V0dGluZygpIHtcblx0XHR0aGlzLmNvZGVibG9ja1NldHRpbmdFbC5lbXB0eSgpO1xuXHRcdGlmICh0aGlzLmNvZGVibG9ja1BhZ2UgPT09IFwiYm9keVwiKVxuXHRcdFx0dGhpcy5nZW5lcmF0ZUNvZGVibG9ja0JvZHlTZXR0aW5ncyh0aGlzLmNvZGVibG9ja1NldHRpbmdFbCk7XG5cdFx0ZWxzZSBpZiAodGhpcy5jb2RlYmxvY2tQYWdlID09PSBcImd1dHRlclwiKVxuXHRcdFx0dGhpcy5nZW5lcmF0ZUNvZGVibG9ja0d1dHRlclNldHRpbmdzKHRoaXMuY29kZWJsb2NrU2V0dGluZ0VsKTtcblx0XHRlbHNlIGlmICh0aGlzLmNvZGVibG9ja1BhZ2UgPT09IFwiaGVhZGVyXCIpXG5cdFx0XHR0aGlzLmdlbmVyYXRlQ29kZWJsb2NrSGVhZGVyU2V0dGluZ3ModGhpcy5jb2RlYmxvY2tTZXR0aW5nRWwpO1xuXHRcdGVsc2UgaWYgKHRoaXMuY29kZWJsb2NrUGFnZSA9PT0gXCJoaWdobGlnaHRcIilcblx0XHRcdHRoaXMuZ2VuZXJhdGVDb2RlYmxvY2tIaWdobGlnaHRTZXR0aW5ncyh0aGlzLmNvZGVibG9ja1NldHRpbmdFbCk7XG5cdFx0ZWxzZSBpZiAodGhpcy5jb2RlYmxvY2tQYWdlID09PSBcImxhbmd1YWdlc1wiKVxuXHRcdFx0dGhpcy5nZW5lcmF0ZUNvZGVibG9ja0xhbmd1YWdlU2V0dGluZ3ModGhpcy5jb2RlYmxvY2tTZXR0aW5nRWwpO1xuXHRcdGVsc2UgaWYgKHRoaXMuY29kZWJsb2NrUGFnZSA9PT0gXCJwbHVnaW5zXCIpXG5cdFx0XHR0aGlzLmdlbmVyYXRlUGx1Z2luQ29tcGF0aWJpbGl0eVNldHRpbmdzKHRoaXMuY29kZWJsb2NrU2V0dGluZ0VsKTtcblx0XHRlbHNlIGlmICh0aGlzLmNvZGVibG9ja1BhZ2UgPT09IFwiZXhhbXBsZVwiKVxuXHRcdFx0dGhpcy5nZW5lcmF0ZUV4YW1wbGVDb2RlYmxvY2tTZXR0aW5ncyh0aGlzLmNvZGVibG9ja1NldHRpbmdFbCk7XG5cdH1cblx0Z2VuZXJhdGVDb3JlU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIlN0eWxlIENvZGUgb24gRXhwb3J0XCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGVuYWJsZWQsIHN0eWxpbmcgd2lsbCBiZSBhcHBsaWVkIHdoZW4gZXhwb3J0aW5nIHRvIFBERi5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuZGVjb3JhdGVQcmludClcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmRlY29yYXRlUHJpbnQgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KSk7XG5cdH1cblx0Z2VuZXJhdGVUaGVtZVNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDJcIiwge3RleHQ6IFwiVGhlbWUgU2V0dGluZ3NcIn0pO1xuXHRcdGxldCB0aGVtZURyb3Bkb3duOiBEcm9wZG93bkNvbXBvbmVudDtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiU2VsZWN0IFRoZW1lXCIpXG5cdFx0XHQuYWRkRHJvcGRvd24oKGRyb3Bkb3duKSA9PiB7XG5cdFx0XHRcdHRoZW1lRHJvcGRvd24gPSBkcm9wZG93bjtcblx0XHRcdFx0dGhpcy51cGRhdGVEcm9wZG93bih0aGVtZURyb3Bkb3duLHRoaXMucGx1Z2luLnNldHRpbmdzKTtcblx0XHRcdFx0dGhlbWVEcm9wZG93bi5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lID0gc3RydWN0dXJlZENsb25lKHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXSk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR0aGlzLmRpc3BsYXkoKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LmFkZEV4dHJhQnV0dG9uKGJ1dHRvbiA9PiB7XG5cdFx0XHRcdGJ1dHRvbi5zZXRUb29sdGlwKFwiVXBkYXRlIHRoZW1lXCIpO1xuXHRcdFx0XHRidXR0b24uc2V0SWNvbihcInNhdmVcIik7XG5cdFx0XHRcdGJ1dHRvbi5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0gPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lKTtcblx0XHRcdFx0XHR0aGlzLnVwZGF0ZUFsdGVybmF0aXZlSGlnaGxpZ2h0cygpO1xuXHRcdFx0XHRcdG5ldyBOb3RpY2UoYCR7dGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZX0gdGhlbWUgc2F2ZWQgc3VjY2Vzc2Z1bGx5IWApOyAvL05PU09OQVJcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pXG5cdFx0XHQuYWRkRXh0cmFCdXR0b24oYnV0dG9uID0+IHtcblx0XHRcdFx0YnV0dG9uLnNldFRvb2x0aXAoXCJEZWxldGUgdGhlbWVcIik7XG5cdFx0XHRcdGJ1dHRvbi5zZXRJY29uKFwidHJhc2hcIik7XG5cdFx0XHRcdGJ1dHRvbi5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRpZiAodGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZS50cmltKCkubGVuZ3RoID09PSAwKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShcIlNlbGVjdCBhIHRoZW1lIGZpcnN0IHRvIGRlbGV0ZVwiKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0ZWxzZSBpZiAodGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZSBpbiBERUZBVUxUX1NFVFRJTkdTLnRoZW1lcylcblx0XHRcdFx0XHRcdG5ldyBOb3RpY2UoXCJZb3UgY2Fubm90IGRlbGV0ZSB0aGUgZGVmYXVsdCB0aGVtZXNcIik7IC8vTk9TT05BUlxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0ZGVsZXRlIHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXTtcblx0XHRcdFx0XHRcdG5ldyBOb3RpY2UoYCR7dGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZX0gdGhlbWUgZGVsZXRlZCBzdWNjZXNzZnVsbHkhYCk7IC8vTk9TT05BUlxuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZSA9IFwiRGVmYXVsdFwiO1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lID0gc3RydWN0dXJlZENsb25lKHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXSk7XG5cdFx0XHRcdFx0XHR0aGlzLnVwZGF0ZURyb3Bkb3duKHRoZW1lRHJvcGRvd24sdGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHRcdHRoaXMuZGlzcGxheSgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRsZXQgbmV3VGhlbWVOYW1lOiBUZXh0Q29tcG9uZW50O1xuXHRcdGxldCBuZXdUaGVtZURlZmF1bHQ6IFRvZ2dsZUNvbXBvbmVudDtcblx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdUaGVtZSA9IFwiXCI7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkFkZCBOZXcgVGhlbWVcIilcblx0XHRcdC5zZXREZXNjKFwiQ3JlYXRlIGEgbmV3IHRoZW1lIGZyb20gdGhlIGN1cnJlbnQgc2V0dGluZ3MuXCIpXG5cdFx0XHQuYWRkVGV4dCh0ZXh0ID0+IHtuZXdUaGVtZU5hbWUgPSB0ZXh0XG5cdFx0XHRcdC5zZXRQbGFjZWhvbGRlcihcIk5ldyB0aGVtZSBuYW1lXCIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdUaGVtZSlcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lID0gdmFsdWU7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSlcblx0XHRcdC5hZGRFeHRyYUJ1dHRvbihidXR0b24gPT4ge1xuXHRcdFx0XHRidXR0b24uc2V0VG9vbHRpcChcIlNhdmUgdGhlbWVcIik7XG5cdFx0XHRcdGJ1dHRvbi5zZXRJY29uKFwicGx1c1wiKTtcblx0XHRcdFx0YnV0dG9uLm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdUaGVtZS50cmltKCkubGVuZ3RoID09PSAwKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShcIlNldCBhIG5hbWUgZm9yIHlvdXIgdGhlbWVcIik7IC8vTk9TT05BUlxuXHRcdFx0XHRcdGVsc2UgaWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lIGluIERFRkFVTFRfU0VUVElOR1MudGhlbWVzKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShcIllvdSBjYW4ndCBvdmVyd3JpdGUgdGhlIGRlZmF1bHQgdGhlbWVzXCIpOyAvL05PU09OQVJcblx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdUaGVtZSBpbiB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXMpIHtcblx0XHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lXSA9IHN0cnVjdHVyZWRDbG9uZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUpO1xuXHRcdFx0XHRcdFx0XHRuZXcgTm90aWNlKGAke3RoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lfSB0aGVtZSB1cGRhdGVkIHN1Y2Nlc3NmdWxseSFgKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWVdID0gc3RydWN0dXJlZENsb25lKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZSk7XG5cdFx0XHRcdFx0XHRcdG5ldyBOb3RpY2UoYCR7dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWV9IHRoZW1lIHNhdmVkIHN1Y2Nlc3NmdWxseSFgKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWU7XG5cdFx0XHRcdFx0XHR0aGlzLnVwZGF0ZURyb3Bkb3duKHRoZW1lRHJvcGRvd24sdGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xuXHRcdFx0XHRcdFx0dGhpcy51cGRhdGVBbHRlcm5hdGl2ZUhpZ2hsaWdodHMoKTtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lID0gXCJcIjtcblx0XHRcdFx0XHRcdG5ld1RoZW1lTmFtZS5zZXRWYWx1ZShcIlwiKTtcblx0XHRcdFx0XHRcdG5ld1RoZW1lRGVmYXVsdC5zZXRWYWx1ZShmYWxzZSk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0fVxuXHRnZW5lcmF0ZUNvZGVibG9ja0JvZHlTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImgzXCIsIHt0ZXh0OiBcIkNvZGVibG9jayBBcHBlYXJhbmNlXCJ9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiQ29kZWJsb2NrIEJhY2tncm91bmQgQ29sb3VyXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiY29kZWJsb2NrX2JhY2tncm91bmRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5jb2RlYmxvY2suYmFja2dyb3VuZENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5jb2RlYmxvY2suYmFja2dyb3VuZENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkNvZGVibG9jayBUZXh0IENvbG91clwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbixjb250YWluZXJFbCxzZXR0aW5nLFxuXHRcdFx0XHRcImNvZGVibG9ja190ZXh0XCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uY29kZWJsb2NrLnRleHRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uY29kZWJsb2NrLnRleHRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJDb2RlYmxvY2sgQ3VydmF0dXJlXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkRldGVybWluZXMgaG93IHJvdW5kZWQgdGhlIGNvZGVibG9ja3MgYXBwZWFyIGluIHBpeGVscy5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7XG5cdFx0XHRcdGxldCByZXNldHRhYmxlU2xpZGVyOiBTbGlkZXJDb21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkU2xpZGVyKChzbGlkZXIpID0+IHtyZXNldHRhYmxlU2xpZGVyID0gc2xpZGVyXG5cdFx0XHRcdFx0LnNldExpbWl0cygwLDI1LDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2suY3VydmF0dXJlKVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5jdXJ2YXR1cmUgPSB2YWx1ZTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtidXR0b25cblx0XHRcdFx0XHQuc2V0SWNvbihcInJlc2V0XCIpXG5cdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJSZXN0b3JlIGRlZmF1bHQgY3VydmF0dXJlXCIpXG5cdFx0XHRcdFx0Lm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5jdXJ2YXR1cmUgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0uc2V0dGluZ3MuY29kZWJsb2NrLmN1cnZhdHVyZTtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5jdXJ2YXR1cmUpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiTGFuZ3VhZ2UgQ29sb3VyZWQgQm9yZGVyc1wiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBlbmFibGVkLCBsYW5ndWFnZXMgd2l0aCBpY29ucyBkaXNwbGF5IGEgbGVmdCBib3JkZXIgd2l0aCB0aGUgY29sb3VyIG9mIHRoZSBpY29uLiBUaGUgc2xpZGVyIHNldHMgdGhlIHdpZHRoIG9mIHRoZSBib3JkZXIuXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlckNvbG91cilcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlckNvbG91ciA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzW1wibGFuZ3VhZ2VCb3JkZXJDb2xvdXJcIl0uZm9yRWFjaChjb21wb25lbnQgPT4ge2NvbXBvbmVudC5zZXREaXNhYmxlZCghdmFsdWUpO30pO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0bGV0IHJlc2V0dGFibGVTbGlkZXI6IFNsaWRlckNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRTbGlkZXIoKHNsaWRlcikgPT4ge3Jlc2V0dGFibGVTbGlkZXIgPSBzbGlkZXJcblx0XHRcdFx0XHQuc2V0TGltaXRzKDAsMjAsMSlcblx0XHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyV2lkdGgpXG5cdFx0XHRcdFx0LnNldERpc2FibGVkKCF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQubGFuZ3VhZ2VCb3JkZXJDb2xvdXIpXG5cdFx0XHRcdFx0LnNldER5bmFtaWNUb29sdGlwKClcblx0XHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQubGFuZ3VhZ2VCb3JkZXJXaWR0aCA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJsYW5ndWFnZUJvcmRlckNvbG91clwiXS5wdXNoKHJlc2V0dGFibGVTbGlkZXIpO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0bGV0IHJlc2V0QnV0dG9uOiBFeHRyYUJ1dHRvbkNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRFeHRyYUJ1dHRvbigoYnV0dG9uKSA9PiB7cmVzZXRCdXR0b24gPSBidXR0b25cblx0XHRcdFx0XHQuc2V0SWNvbihcInJlc2V0XCIpXG5cdFx0XHRcdFx0LnNldERpc2FibGVkKCF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQubGFuZ3VhZ2VCb3JkZXJDb2xvdXIpXG5cdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJSZXN0b3JlIGRlZmF1bHQgY29sb3VyIHN0b3BcIilcblx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQubGFuZ3VhZ2VCb3JkZXJXaWR0aCA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlcldpZHRoO1xuXHRcdFx0XHRcdFx0cmVzZXR0YWJsZVNsaWRlci5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQubGFuZ3VhZ2VCb3JkZXJXaWR0aCk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImxhbmd1YWdlQm9yZGVyQ29sb3VyXCJdLnB1c2gocmVzZXRCdXR0b24pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJVbndyYXAgY29kZWJsb2NrIGxpbmVzXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkNob29zZSB3aGV0aGVyIHRvIHVud3JhcCBsaW5lcyBpbiByZWFkaW5nIG1vZGVcIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay51bndyYXBMaW5lcylcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2sudW53cmFwTGluZXMgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLmdlbmVyYXRlV3JhcExpbmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKHRydWUpO1xuXHRcdFx0XHR9KSk7XG5cdFx0dGhpcy53cmFwTGluZXNDb250YWluZXIgPSBjb250YWluZXJFbC5jcmVhdGVEaXYoKTtcblx0XHR0aGlzLmdlbmVyYXRlV3JhcExpbmVTZXR0aW5ncygpO1xuXHR9XG5cdGdlbmVyYXRlV3JhcExpbmVTZXR0aW5ncygpIHtcblx0XHR0aGlzLndyYXBMaW5lc0NvbnRhaW5lci5lbXB0eSgpO1xuXHRcdGlmICghdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay51bndyYXBMaW5lcylcblx0XHRcdHJldHVybjtcblx0XHRuZXcgU2V0dGluZyh0aGlzLndyYXBMaW5lc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiV3JhcCBMaW5lcyBvbiBDbGlja1wiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBlbmFibGVkLCBpbiByZWFkaW5nIG1vZGUsIGhvbGRpbmcgY2xpY2sgb24gYSBjb2RlYmxvY2sgd2lsbCB3cmFwIHRoZSBsaW5lcyBmb3IgYmV0dGVyIHZpc2liaWxpdHkuXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2sud3JhcExpbmVzQWN0aXZlKVxuXHRcdFx0XHQuc2V0RGlzYWJsZWQoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2sudW53cmFwTGluZXMpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLndyYXBMaW5lc0FjdGl2ZSA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKHRydWUpO1xuXHRcdFx0XHR9KSk7XG5cdH1cblx0Z2VuZXJhdGVDb2RlYmxvY2tHdXR0ZXJTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImgzXCIsIHt0ZXh0OiBcIkd1dHRlciBBcHBlYXJhbmNlXCJ9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiRW5hYmxlIExpbmUgTnVtYmVyc1wiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBkaXNhYmxlZCwgdGhlIGJlbG93IHNldHRpbmdzIGFyZSBkaXNhYmxlZCB0b28uXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2subGluZU51bWJlcnMpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLmxpbmVOdW1iZXJzID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5nZW5lcmF0ZUNvZGVibG9ja0xpbmVOdW1iZXJTZXR0aW5ncygpO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKHRydWUpO1xuXHRcdFx0XHR9KSk7XG5cdFx0dGhpcy5saW5lTnVtYmVyc0NvbnRhaW5lciA9IGNvbnRhaW5lckVsLmNyZWF0ZURpdigpO1xuXHRcdHRoaXMuZ2VuZXJhdGVDb2RlYmxvY2tMaW5lTnVtYmVyU2V0dGluZ3MoKTtcblx0fVxuXHRnZW5lcmF0ZUNvZGVibG9ja0xpbmVOdW1iZXJTZXR0aW5ncygpIHtcblx0XHR0aGlzLmxpbmVOdW1iZXJzQ29udGFpbmVyLmVtcHR5KCk7XG5cdFx0aWYgKCF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLmxpbmVOdW1iZXJzKVxuXHRcdFx0cmV0dXJuO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMubGluZU51bWJlcnNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIkd1dHRlciBCYWNrZ3JvdW5kIENvbG91clwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbix0aGlzLmxpbmVOdW1iZXJzQ29udGFpbmVyLHNldHRpbmcsXG5cdFx0XHRcdFwiZ3V0dGVyX2JhY2tncm91bmRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5ndXR0ZXIuYmFja2dyb3VuZENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5ndXR0ZXIuYmFja2dyb3VuZENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5saW5lTnVtYmVyc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiTGluZSBOdW1iZXIgQ29sb3VyXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMubGluZU51bWJlcnNDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XCJsaW5lX251bWJlclwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmd1dHRlci50ZXh0Q29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmd1dHRlci50ZXh0Q29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmxpbmVOdW1iZXJzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJIaWdobGlnaHQgTGluZSBOdW1iZXJzXCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGVuYWJsZWQsIGhpZ2hsaWdodHMgd2lsbCBhbHNvIGhpZ2hsaWdodCB0aGUgbGluZSBudW1iZXJzLlwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuZ3V0dGVyLmhpZ2hsaWdodClcblx0XHRcdFx0LnNldERpc2FibGVkKCF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLmxpbmVOdW1iZXJzKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmd1dHRlci5oaWdobGlnaHQgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5saW5lTnVtYmVyc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSW5kaWNhdGUgQ3VycmVudCBMaW5lIE51bWJlclwiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBlbmFibGVkLCB0aGUgY3VycmVudCBsaW5lIG51bWJlciBpbiBjb2RlYmxvY2tzIHdpbGwgYmUgaW5kaWNhdGVkIHdpdGggYSBzZXBhcmF0ZSBjb2xvdXIuXCIpXG5cdFx0XHQuc2V0Q2xhc3MoXCJjb2RlLXN0eWxlci1zcGFjZWRcIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmd1dHRlci5hY3RpdmVMaW5lKVxuXHRcdFx0XHQuc2V0RGlzYWJsZWQoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2subGluZU51bWJlcnMpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuZ3V0dGVyLmFjdGl2ZUxpbmUgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KVxuXHRcdFx0KVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbix0aGlzLmxpbmVOdW1iZXJzQ29udGFpbmVyLHNldHRpbmcsXG5cdFx0XHRcdFwiYWN0aXZlX2xpbmVfbnVtYmVyXCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uZ3V0dGVyLmFjdGl2ZVRleHRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uZ3V0dGVyLmFjdGl2ZVRleHRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHR9XG5cdGdlbmVyYXRlQ29kZWJsb2NrSGVhZGVyU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoXCJoM1wiLCB7dGV4dDogXCJIZWFkZXIgQXBwZWFyYW5jZVwifSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkhlYWRlciBCYWNrZ3JvdW5kIENvbG91clwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbixjb250YWluZXJFbCxzZXR0aW5nLFxuXHRcdFx0XHRcImhlYWRlcl9iYWNrZ3JvdW5kXCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGVhZGVyLmJhY2tncm91bmRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGVhZGVyLmJhY2tncm91bmRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJIZWFkZXIgRm9udCBTaXplXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlNldCB0aGUgZm9udCBzaXplIGZvciBoZWFkZXIgbGFuZ3VhZ2UgdGFncyBhbmQgdGl0bGVzLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0bGV0IHJlc2V0dGFibGVTbGlkZXI6IFNsaWRlckNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRTbGlkZXIoKHNsaWRlcikgPT4ge3Jlc2V0dGFibGVTbGlkZXIgPSBzbGlkZXJcblx0XHRcdFx0XHQuc2V0TGltaXRzKDYsMzIsMSlcblx0XHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5mb250U2l6ZSlcblx0XHRcdFx0XHQuc2V0RHluYW1pY1Rvb2x0aXAoKVxuXHRcdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIuZm9udFNpemUgPSB2YWx1ZTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtidXR0b25cblx0XHRcdFx0XHQuc2V0SWNvbihcInJlc2V0XCIpXG5cdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJSZXN0b3JlIGRlZmF1bHQgZm9udCBzaXplXCIpXG5cdFx0XHRcdFx0Lm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5mb250U2l6ZSA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5oZWFkZXIuZm9udFNpemU7XG5cdFx0XHRcdFx0XHRyZXNldHRhYmxlU2xpZGVyLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIuZm9udFNpemUpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiSGVhZGVyIFRpdGxlIFRleHQgU3R5bGluZ1wiKVxuXHRcdFx0LnNldERlc2MoXCJTdHlsZSB0aGUgaGVhZGVyIHRpdGxlIHRleHQgdXNpbmcgYm9sZCBhbmQgaXRhbGljIHRvZ2dsZXMsIGJ5IHNldHRpbmcgYSBmb250IG9yIGJ5IHNldHRpbmcgYSB0ZXh0IGNvbG91ci5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHt0b2dnbGVcblx0XHRcdFx0LnNldFRvb2x0aXAoXCJUb2dnbGUgYm9sZCB0aXRsZSB0ZXh0XCIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLnRpdGxlLnRleHRCb2xkKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci50aXRsZS50ZXh0Qm9sZCA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSlcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHt0b2dnbGVcblx0XHRcdFx0LnNldFRvb2x0aXAoXCJUb2dnbGUgaXRhbGljIHRpdGxlIHRleHRcIilcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIudGl0bGUudGV4dEl0YWxpYylcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIudGl0bGUudGV4dEl0YWxpYyA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSlcblx0XHRcdC5hZGRUZXh0KHRleHQgPT4ge3RleHRcblx0XHRcdFx0LnNldFBsYWNlaG9sZGVyKFwiRm9udFwiKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci50aXRsZS50ZXh0Rm9udClcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIudGl0bGUudGV4dEZvbnQgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiaGVhZGVyX3RpdGxlX3RleHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIudGl0bGUudGV4dENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIudGl0bGUudGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bGV0IGZvbGRQbGFjZWhvbGRlclRpbWVvdXQ6IE5vZGVKUy5UaW1lb3V0ID0gc2V0VGltZW91dCgoKT0+e30pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJGb2xkIFBsYWNlaG9sZGVyIFRleHRcIilcblx0XHRcdC5zZXREZXNjKFwiVGl0bGUgcGxhY2Vob2xkZXIgdGV4dCBmb3IgZm9sZGVkIGNvZGUgd2hlbiBubyB0aXRsZSBwYXJhbWV0ZXIgaXMgc2V0LlwiKVxuXHRcdFx0LmFkZFRleHQodGV4dCA9PiB0ZXh0XG5cdFx0XHRcdC5zZXRQbGFjZWhvbGRlcihGT0xEX1BMQUNFSE9MREVSKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5mb2xkUGxhY2Vob2xkZXIpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmZvbGRQbGFjZWhvbGRlciA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0Y2xlYXJUaW1lb3V0KGZvbGRQbGFjZWhvbGRlclRpbWVvdXQpO1xuXHRcdFx0XHRcdGZvbGRQbGFjZWhvbGRlclRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT50aGlzLnJlcmVuZGVyKCksMTAwMCk7XG5cdFx0XHRcdH0pKTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiSGVhZGVyIFNlcGFyYXRvciBDb2xvdXJcIilcblx0XHRcdC5zZXREZXNjKFwiQ29sb3VyIG9mIHRoZSBsaW5lIHNlcGFyYXRpbmcgdGhlIGNvZGVibG9jayBoZWFkZXIgYW5kIHRoZSBjb2RlYmxvY2suXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiaGVhZGVyX3NlcGFyYXRvclwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci5saW5lQ29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci5saW5lQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblxuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDVcIiwge3RleHQ6IFwiSGVhZGVyIExhbmd1YWdlIFRhZyBBcHBlYXJhbmNlXCJ9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiRGlzcGxheSBIZWFkZXIgTGFuZ3VhZ2UgVGFnc1wiKVxuXHRcdFx0LnNldERlc2MoXCJEZXRlcm1pbmUgd2hlbiB0byBzaG93IGxhbmd1YWdlIHRhZ3MgaW4gdGhlIGhlYWRlci4gXFxcIlRpdGxlIE9ubHlcXFwiIHdpbGwgb25seSBzaG93IGxhbmd1YWdlIHRhZ3Mgd2hlbiB0aGUgdGl0bGUgcGFyYW1ldGVyIGlzIHNldC5cIilcblx0XHRcdC5hZGREcm9wZG93bigoZHJvcGRvd24pID0+IGRyb3Bkb3duXG5cdFx0XHRcdC5hZGRPcHRpb25zKERJU1BMQVlfT1BUSU9OUylcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheSlcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZTogRGlzcGxheSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheSA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuZ2VuZXJhdGVIZWFkZXJUYWdTZXR0aW5ncygpO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKHRydWUpO1xuXHRcdFx0XHR9KSk7XG5cdFx0dGhpcy5oZWFkZXJUYWdzQ29udGFpbmVyID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUhlYWRlclRhZ1NldHRpbmdzKCk7XG5cblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImg1XCIsIHt0ZXh0OiBcIkhlYWRlciBMYW5ndWFnZSBJY29uIEFwcGVhcmFuY2VcIn0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJEaXNwbGF5IEhlYWRlciBMYW5ndWFnZSBJY29uc1wiKVxuXHRcdFx0LnNldERlc2MoXCJEZXRlcm1pbmUgd2hlbiB0byBzaG93IGxhbmd1YWdlIGljb25zIHdoZXJlIGF2YWlsYWJsZS4gXFxcIlRpdGxlIE9ubHlcXFwiIHdpbGwgb25seSBzaG93IGxhbmd1YWdlIHRhZ3Mgd2hlbiB0aGUgdGl0bGUgcGFyYW1ldGVyIGlzIHNldC5cIilcblx0XHRcdC5hZGREcm9wZG93bigoZHJvcGRvd24pID0+IGRyb3Bkb3duXG5cdFx0XHRcdC5hZGRPcHRpb25zKERJU1BMQVlfT1BUSU9OUylcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXkpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWU6IERpc3BsYXkpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5ID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5nZW5lcmF0ZUhlYWRlckxhbmd1YWdlSWNvblNldHRpbmdzKCk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3ModHJ1ZSk7XG5cdFx0XHRcdH0pKTtcblx0XHR0aGlzLmhlYWRlckljb25zQ29udGFpbmVyID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUhlYWRlckxhbmd1YWdlSWNvblNldHRpbmdzKCk7XG5cdFx0dGhpcy5oZWFkZXJFeHRlcm5hbFJlZmVyZW5jZUNvbnRhaW5lciA9IGNvbnRhaW5lckVsLmNyZWF0ZURpdigpO1xuXHRcdHRoaXMuZ2VuZXJhdGVIZWFkZXJFeHRlcm5hbFJlZmVyZW5jZVNldHRpbmdzKCk7XG5cdH1cblx0Z2VuZXJhdGVIZWFkZXJUYWdTZXR0aW5ncygpIHtcblx0XHR0aGlzLmhlYWRlclRhZ3NDb250YWluZXIuZW1wdHkoKTtcblx0XHRpZiAodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy5kaXNwbGF5ID09PSBcIm5vbmVcIilcblx0XHRcdHJldHVybjtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmhlYWRlclRhZ3NDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIkhlYWRlciBMYW5ndWFnZSBUYWcgQmFja2dyb3VuZCBDb2xvdXJcIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5oZWFkZXJUYWdzQ29udGFpbmVyLHNldHRpbmcsXG5cdFx0XHRcdFwiaGVhZGVyX2xhbmd1YWdlX3RhZ19iYWNrZ3JvdW5kXCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGVhZGVyLmxhbmd1YWdlVGFnLmJhY2tncm91bmRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGVhZGVyLmxhbmd1YWdlVGFnLmJhY2tncm91bmRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaGVhZGVyVGFnc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSGVhZGVyIExhbmd1YWdlIFRhZyBUZXh0IFN0eWxpbmdcIilcblx0XHRcdC5zZXREZXNjKFwiU3R5bGUgdGhlIGhlYWRlciBsYW5ndWFnZSB0YWcgdGV4dCB1c2luZyBib2xkIGFuZCBpdGFsaWMgdG9nZ2xlcywgYnkgc2V0dGluZyBhIGZvbnQgb3IgYnkgc2V0dGluZyBhIHRleHQgY29sb3VyLlwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRUb29sdGlwKFwiVG9nZ2xlIGJvbGQgbGFuZ3VhZ2UgdGFnIHRleHRcIilcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEJvbGQpXG5cdFx0XHRcdC5zZXREaXNhYmxlZCh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLmRpc3BsYXk9PT1cIm5vbmVcIilcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEJvbGQgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KSlcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VG9vbHRpcChcIlRvZ2dsZSBpdGFsaWMgbGFuZ3VhZ2UgdGFnIHRleHRcIilcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEl0YWxpYylcblx0XHRcdFx0LnNldERpc2FibGVkKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheT09PVwibm9uZVwiKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0SXRhbGljID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSkpXG5cdFx0XHQuYWRkVGV4dCh0ZXh0ID0+IHRleHRcblx0XHRcdFx0LnNldFBsYWNlaG9sZGVyKFwiRm9udFwiKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Rm9udClcblx0XHRcdFx0LnNldERpc2FibGVkKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheT09PVwibm9uZVwiKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Rm9udCA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbix0aGlzLmhlYWRlclRhZ3NDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XCJoZWFkZXJfbGFuZ3VhZ2VfdGFnX3RleHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdH1cblx0Z2VuZXJhdGVIZWFkZXJMYW5ndWFnZUljb25TZXR0aW5ncygpIHtcblx0XHR0aGlzLmhlYWRlckljb25zQ29udGFpbmVyLmVtcHR5KCk7XG5cdFx0aWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXkgPT09IFwibm9uZVwiKVxuXHRcdFx0cmV0dXJuO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaGVhZGVySWNvbnNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIkxhbmd1YWdlIEljb25zIENvbG91cmVkXCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGRpc2FibGVkLCBsYW5ndWFnZSBpY29ucyB3aWxsIGJlIGJsYWNrIGFuZCB3aGl0ZS5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheUNvbG91cilcblx0XHRcdFx0LnNldERpc2FibGVkKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXk9PT1cIm5vbmVcIilcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXlDb2xvdXIgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5oZWFkZXJJY29uc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiTGFuZ3VhZ2UgSWNvbiBTaXplXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlNldCB0aGUgc2l6ZSBvZiB0aGUgZGlzcGxheWVkIGxhbmd1YWdlIGljb25zLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0bGV0IHJlc2V0dGFibGVTbGlkZXI6IFNsaWRlckNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRTbGlkZXIoKHNsaWRlcikgPT4ge3Jlc2V0dGFibGVTbGlkZXIgPSBzbGlkZXJcblx0XHRcdFx0XHQuc2V0TGltaXRzKDEwLDQwLDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5pY29uU2l6ZSlcblx0XHRcdFx0XHQuc2V0RGlzYWJsZWQodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheT09PVwibm9uZVwiKVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmljb25TaXplID0gdmFsdWU7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0c2V0dGluZy5hZGRFeHRyYUJ1dHRvbigoYnV0dG9uKSA9PiBidXR0b25cblx0XHRcdFx0XHQuc2V0SWNvbihcInJlc2V0XCIpXG5cdFx0XHRcdFx0LnNldERpc2FibGVkKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXk9PT1cIm5vbmVcIilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBpY29uIHNpemVcIilcblx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQuaWNvblNpemUgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0uc2V0dGluZ3MuYWR2YW5jZWQuaWNvblNpemU7XG5cdFx0XHRcdFx0XHRyZXNldHRhYmxlU2xpZGVyLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5pY29uU2l6ZSk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pKTtcblx0XHRcdH0pO1xuXHR9XG5cdGdlbmVyYXRlSGVhZGVyRXh0ZXJuYWxSZWZlcmVuY2VTZXR0aW5ncygpIHtcblx0XHR0aGlzLmhlYWRlckV4dGVybmFsUmVmZXJlbmNlQ29udGFpbmVyLmVtcHR5KCk7XG5cdFx0dGhpcy5oZWFkZXJFeHRlcm5hbFJlZmVyZW5jZUNvbnRhaW5lci5jcmVhdGVFbChcImg1XCIsIHsgdGV4dDogXCJFeHRlcm5hbCBSZWZlcmVuY2UgSW5kaWNhdG9ycyBBcHBlYXJhbmNlXCIgfSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5oZWFkZXJFeHRlcm5hbFJlZmVyZW5jZUNvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiRGlzcGxheSBSZXBvc2l0b3J5XCIpXG5cdFx0XHQuc2V0RGVzYyhcIkRpc3BsYXkgcmVwb3NpdG9yeSBpbiBjb2RlYmxvY2sgaGVhZGVyIGZvciBleHRlcm5hbCByZWZlcmVuY2VzLlwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRUb29sdGlwKFwiRGlzcGxheSBSZXBvc2l0b3J5XCIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmV4dGVybmFsUmVmZXJlbmNlLmRpc3BsYXlSZXBvc2l0b3J5KVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5leHRlcm5hbFJlZmVyZW5jZS5kaXNwbGF5UmVwb3NpdG9yeSA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbix0aGlzLmhlYWRlckV4dGVybmFsUmVmZXJlbmNlQ29udGFpbmVyLHNldHRpbmcsXG5cdFx0XHRcdFwiY29kZWJsb2NrX2hlYWRlcl9kaXNwbGF5X3JlcG9zaXRvcnlcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIuZXh0ZXJuYWxSZWZlcmVuY2UuZGlzcGxheVJlcG9zaXRvcnlDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGVhZGVyLmV4dGVybmFsUmVmZXJlbmNlLmRpc3BsYXlSZXBvc2l0b3J5Q29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0XHQoKSA9PiAhdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5leHRlcm5hbFJlZmVyZW5jZS5kaXNwbGF5UmVwb3NpdG9yeSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5oZWFkZXJFeHRlcm5hbFJlZmVyZW5jZUNvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiRGlzcGxheSBSZXBvc2l0b3J5IE5hbWVcIilcblx0XHRcdC5zZXREZXNjKFwiRGlzcGxheSByZXBvc2l0b3J5IHZlcnNpb24gaW4gY29kZWJsb2NrIGhlYWRlciBmb3IgZXh0ZXJuYWwgcmVmZXJlbmNlcy5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VG9vbHRpcChcIkRpc3BsYXkgUmVwb3NpdG9yeSBWZXJzaW9uXCIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmV4dGVybmFsUmVmZXJlbmNlLmRpc3BsYXlWZXJzaW9uKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5leHRlcm5hbFJlZmVyZW5jZS5kaXNwbGF5VmVyc2lvbiA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbix0aGlzLmhlYWRlckV4dGVybmFsUmVmZXJlbmNlQ29udGFpbmVyLHNldHRpbmcsXG5cdFx0XHRcdFwiY29kZWJsb2NrX2hlYWRlcl9kaXNwbGF5X3ZlcnNpb25cIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIuZXh0ZXJuYWxSZWZlcmVuY2UuZGlzcGxheVZlcnNpb25Db2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGVhZGVyLmV4dGVybmFsUmVmZXJlbmNlLmRpc3BsYXlWZXJzaW9uQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0XHQoKSA9PiAhdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5leHRlcm5hbFJlZmVyZW5jZS5kaXNwbGF5VmVyc2lvbixcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5oZWFkZXJFeHRlcm5hbFJlZmVyZW5jZUNvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiRGlzcGxheSBSZWZlcmVuY2UgVGltZXN0YW1wXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkRpc3BsYXkgdGhlIHRpbWVzdGFtcCBhdCB3aGljaCB0aGUgcmVmZXJlbmNlIHdhcyBsYXN0IHVwZGF0ZWQuXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFRvb2x0aXAoXCJEaXNwbGF5IFRpbWVzdGFtcFwiKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5leHRlcm5hbFJlZmVyZW5jZS5kaXNwbGF5VGltZXN0YW1wKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5leHRlcm5hbFJlZmVyZW5jZS5kaXNwbGF5VGltZXN0YW1wID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSkpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMuaGVhZGVyRXh0ZXJuYWxSZWZlcmVuY2VDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XCJjb2RlYmxvY2tfaGVhZGVyX2Rpc3BsYXlfdGltZXN0YW1wXCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGVhZGVyLmV4dGVybmFsUmVmZXJlbmNlLmRpc3BsYXlUaW1lc3RhbXBDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGVhZGVyLmV4dGVybmFsUmVmZXJlbmNlLmRpc3BsYXlUaW1lc3RhbXBDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHRcdCgpID0+ICF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmV4dGVybmFsUmVmZXJlbmNlLmRpc3BsYXlUaW1lc3RhbXAsXG5cdFx0XHQpO30pO1xuXHR9XG5cdGdlbmVyYXRlQ29kZWJsb2NrSGlnaGxpZ2h0U2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoXCJoM1wiLCB7dGV4dDogXCJIaWdobGlnaHRpbmcgQXBwZWFyYW5jZVwifSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkNvZGVibG9jayBBY3RpdmUgTGluZSBIaWdobGlnaHRcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZW5hYmxlZCwgaGlnaGxpZ2h0cyB0aGUgYWN0aXZlIGxpbmUgaW5zaWRlIGNvZGVibG9ja3MuXCIpXG5cdFx0XHQuc2V0Q2xhc3MoXCJjb2RlLXN0eWxlci1zcGFjZWRcIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHtyZXR1cm4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGlnaGxpZ2h0cy5hY3RpdmVDb2RlYmxvY2tMaW5lKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlQ29kZWJsb2NrTGluZSA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzW1wiY29kZWJsb2NrQWN0aXZlTGluZUhpZ2hsaWdodFwiXS5mb3JFYWNoKGNvbXBvbmVudCA9PiB7Y29tcG9uZW50LnNldERpc2FibGVkKCF2YWx1ZSk7fSk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbixjb250YWluZXJFbCxzZXR0aW5nLFxuXHRcdFx0XHRcImNvZGVibG9ja19hY3RpdmVfbGluZV9oaWdobGlnaHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oaWdobGlnaHRzLmFjdGl2ZUNvZGVibG9ja0xpbmVDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5hY3RpdmVDb2RlYmxvY2tMaW5lQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0XHQoKSA9PiAhdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlQ29kZWJsb2NrTGluZSxcblx0XHRcdCk7fSk7XG5cdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJjb2RlYmxvY2tBY3RpdmVMaW5lSGlnaGxpZ2h0XCJdLnB1c2godGhpcy5waWNrcnNbXCJjb2RlYmxvY2tfYWN0aXZlX2xpbmVfaGlnaGxpZ2h0XCJdLnJlc2V0QnV0dG9uKTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiRGVmYXVsdCBIaWdobGlnaHQgQ29sb3VyXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlVzZWQgYnkgdGhlICdobCcgcGFyYW1ldGVyLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbixjb250YWluZXJFbCxzZXR0aW5nLFxuXHRcdFx0XHRcImRlZmF1bHRfaGlnaGxpZ2h0XCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5kZWZhdWx0Q29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhpZ2hsaWdodHMuZGVmYXVsdENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bGV0IG5ld0hpZ2hsaWdodFRleHQ6IFRleHRDb21wb25lbnQ7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkFkZCBBbHRlcm5hdGl2ZSBIaWdobGlnaHRcIilcblx0XHRcdC5zZXREZXNjKFwiRGVmaW5lIGEgbmV3IGFsdGVybmF0aXZlIGhpZ2hsaWdodCBuYW1lLiBUaGUgY29sb3VyIGNhbiBiZSBtb2RpZmllZCBhZnRlciBpdCBpcyBhZGRlZC5cIilcblx0XHRcdC5hZGRUZXh0KHZhbHVlID0+IHtuZXdIaWdobGlnaHRUZXh0ID0gdmFsdWVcblx0XHRcdFx0LnNldFBsYWNlaG9sZGVyKFwiZS5nLiBlcnJvciwgd2FyblwiKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3SGlnaGxpZ2h0ID0gdmFsdWU7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSlcblx0XHRcdC5hZGRCdXR0b24oKGJ1dHRvbikgPT4ge1xuXHRcdFx0XHRidXR0b24uc2V0QnV0dG9uVGV4dChcIkFkZFwiKTtcblx0XHRcdFx0YnV0dG9uLm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHQudHJpbSgpID09PSBcIlwiKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShcIlBsZWFzZSBlbnRlciBhIGNvbG91ciBuYW1lLlwiKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0ZWxzZSBpZiAoIS9eW15cXGRdXFx3KiQvLnRlc3QodGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3SGlnaGxpZ2h0KSlcblx0XHRcdFx0XHRcdG5ldyBOb3RpY2UoYFwiJHt0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHR9XCIgaXMgbm90IGEgdmFsaWQgY29sb3VyIG5hbWUuYCk7IC8vTk9TT05BUlxuXHRcdFx0XHRcdGVsc2UgaWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodC50cmltKCkudG9Mb3dlckNhc2UoKSA9PT0gXCJobFwiKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShcIkNhbm5vdCBvdmVycmlkZSB0aGUgZGVmYXVsdCBoaWdobGlnaHQgcGFyYW1ldGVyLlwiKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0ZWxzZSBpZiAoUEFSQU1FVEVSUy5pbmNsdWRlcyh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHQudHJpbSgpLnRvTG93ZXJDYXNlKCkpKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShcIkNhbm5vdCB1c2Ugb3RoZXIgZGVmYXVsdCBwYXJhbWV0ZXJzLlwiKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0ZWxzZSBpZiAodGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3SGlnaGxpZ2h0IGluIHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5jb2xvdXJzLmxpZ2h0LmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShgQSBoaWdobGlnaHQgd2l0aCB0aGUgbmFtZSBcIiR7dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3SGlnaGxpZ2h0fVwiIGFscmVhZHkgZXhpc3RzLmApOyAvL05PU09OQVJcblx0XHRcdFx0XHRcdC8vVE9ETyAoQG1heXVyYW5rdikgRnV0dXJlOiBGb2N1cyBvbiBleGlzdGluZyBoaWdobGlnaHRlciAtIGByZW5kZXJNYXRjaGVzYFxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0Y29uc3QgbmV3Q29sb3VyID0gZ2V0UmFuZG9tQ29sb3VyKCk7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuY29sb3Vycy5saWdodC5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0c1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHRdID0gbmV3Q29sb3VyO1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMuZGFyay5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0c1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHRdID0gbmV3Q29sb3VyO1xuXHRcdFx0XHRcdFx0dGhpcy51cGRhdGVBbHRlcm5hdGl2ZUhpZ2hsaWdodHMoKTtcblx0XHRcdFx0XHRcdG5ldyBOb3RpY2UoYEFkZGVkIGhpZ2hsaWdodCBcIiR7dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3SGlnaGxpZ2h0fVwiLmApOyAvL05PU09OQVJcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodCA9IFwiXCI7XG5cdFx0XHRcdFx0XHRuZXdIaWdobGlnaHRUZXh0LnNldFZhbHVlKFwiXCIpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3ModHJ1ZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdHRoaXMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzQ29udGFpbmVyID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG5cdFx0dGhpcy51cGRhdGVBbHRlcm5hdGl2ZUhpZ2hsaWdodHMoKTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiR3JhZGllbnQgSGlnaGxpZ2h0aW5nXCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGVuYWJsZWQsIGhpZ2hsaWdodHMgZmFkZSBhd2F5IHRvIHRoZSByaWdodC4gVGhlIHNsaWRlciBzZXRzIHRoZSBncmFkaWVudCBjb2xvdXIgc3RvcCBhcyBhIHBlcmNlbnRhZ2UuXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5ncmFkaWVudEhpZ2hsaWdodHMpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQuZ3JhZGllbnRIaWdobGlnaHRzID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJncmFkaWVudEhpZ2hsaWdodGluZ1wiXS5mb3JFYWNoKGNvbXBvbmVudCA9PiB7Y29tcG9uZW50LnNldERpc2FibGVkKCF2YWx1ZSk7fSk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSkpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoMCwxMDAsMSlcblx0XHRcdFx0XHQuc2V0VmFsdWUoK3RoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5ncmFkaWVudEhpZ2hsaWdodHNDb2xvdXJTdG9wLnNsaWNlKDAsLTEpKVxuXHRcdFx0XHRcdC5zZXREaXNhYmxlZCghdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0cylcblx0XHRcdFx0XHQuc2V0RHluYW1pY1Rvb2x0aXAoKVxuXHRcdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5ncmFkaWVudEhpZ2hsaWdodHNDb2xvdXJTdG9wID0gYCR7dmFsdWV9JWA7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImdyYWRpZW50SGlnaGxpZ2h0aW5nXCJdLnB1c2gocmVzZXR0YWJsZVNsaWRlcik7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRsZXQgcmVzZXRCdXR0b246IEV4dHJhQnV0dG9uQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtyZXNldEJ1dHRvbiA9IGJ1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0RGlzYWJsZWQoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5ncmFkaWVudEhpZ2hsaWdodHMpXG5cdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJSZXN0b3JlIGRlZmF1bHQgY29sb3VyIHN0b3BcIilcblx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQuZ3JhZGllbnRIaWdobGlnaHRzQ29sb3VyU3RvcCA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5hZHZhbmNlZC5ncmFkaWVudEhpZ2hsaWdodHNDb2xvdXJTdG9wO1xuXHRcdFx0XHRcdFx0cmVzZXR0YWJsZVNsaWRlci5zZXRWYWx1ZSgrdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0c0NvbG91clN0b3Auc2xpY2UoMCwtMSkpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJncmFkaWVudEhpZ2hsaWdodGluZ1wiXS5wdXNoKHJlc2V0QnV0dG9uKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0fVxuXHRnZW5lcmF0ZUNvZGVibG9ja0xhbmd1YWdlU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0bGV0IGV4Y2x1ZGVUaW1lb3V0OiBOb2RlSlMuVGltZW91dCA9IHNldFRpbWVvdXQoKCk9Pnt9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiRXhjbHVkZSBMYW5ndWFnZXNcIilcblx0XHRcdC5zZXREZXNjKFwiRGVmaW5lIGxhbmd1YWdlcyBpbiBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IHdoaWNoIHRoZSBwbHVnaW4gc2hvdWxkIG5vdCBkZWNvcmF0ZS4gWW91IGNhbiB1c2UgYSB3aWxkY2FyZCAoKikgZWl0aGVyIGF0IHRoZSBiZWdpbm5pbmcsIG9yIGF0IHRoZSBlbmQuIEZvciBleGFtcGxlOiBhZC0qIHdpbGwgZXhjbHVkZSBjb2RlYmxvY2tzIHdoZXJlIHRoZSBsYW5ndWFnZSBzdGFydHMgd2l0aCBhZC0gZS5nLjogYWQtaW5mbywgYWQtZXJyb3IgZXRjLlwiKVxuXHRcdFx0LmFkZFRleHQodGV4dCA9PiB0ZXh0XG5cdFx0XHRcdC5zZXRQbGFjZWhvbGRlcihgZS5nLiAke0VYQ0xVREVEX0xBTkdVQUdFU30gZXRjLmApXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5leGNsdWRlZExhbmd1YWdlcylcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmV4Y2x1ZGVkTGFuZ3VhZ2VzID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHRjbGVhclRpbWVvdXQoZXhjbHVkZVRpbWVvdXQpO1xuXHRcdFx0XHRcdGV4Y2x1ZGVUaW1lb3V0ID0gc2V0VGltZW91dCgoKT0+dGhpcy5yZXJlbmRlcigpLDEwMDApO1xuXHRcdFx0XHR9KSk7XG5cdFx0bGV0IHdoaXRlbGlzdFRpbWVvdXQ6IE5vZGVKUy5UaW1lb3V0ID0gc2V0VGltZW91dCgoKT0+e30pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJXaGl0ZWxpc3RlZCBQcm9jZXNzZWQgQ29kZWJsb2Nrc1wiKVxuXHRcdFx0LnNldERlc2MoXCJEZWZpbmUgbGFuZ3VhZ2VzIGluIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgd2hpY2ggdGhlIHBsdWdpbiBzaG91bGQgc3R5bGUgZGVzcGl0ZSBiZWluZyBwcm9jZXNzZWQgYnkgYW5vdGhlciBwbHVnaW4uIFlvdSBjYW4gdXNlIGEgd2lsZGNhcmQgKCopIGVpdGhlciBhdCB0aGUgYmVnaW5uaW5nLCBvciBhdCB0aGUgZW5kLiBGb3IgZXhhbXBsZTogYWQtKiB3aWxsIGV4Y2x1ZGUgY29kZWJsb2NrcyB3aGVyZSB0aGUgbGFuZ3VhZ2Ugc3RhcnRzIHdpdGggYWQtIGUuZy46IGFkLWluZm8sIGFkLWVycm9yIGV0Yy5cIilcblx0XHRcdC5hZGRUZXh0KHRleHQgPT4gdGV4dFxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoYGUuZy4gJHtXSElURUxJU1RfQ09ERUJMT0NLU30gZXRjLmApXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5wcm9jZXNzZWRDb2RlYmxvY2tzV2hpdGVsaXN0KVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MucHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdCA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0Y2xlYXJUaW1lb3V0KHdoaXRlbGlzdFRpbWVvdXQpO1xuXHRcdFx0XHRcdHdoaXRlbGlzdFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT50aGlzLnJlcmVuZGVyKCksMTAwMCk7XG5cdFx0XHRcdH0pKTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiUmVkaXJlY3QgTGFuZ3VhZ2UgU2V0dGluZ3NcIilcblx0XHRcdC5zZXREZXNjKFwiVXNlIHRoaXMgdGV4dGJveCB0byByZWRpcmVjdCBzcGVjaWZpYyBsYW5ndWFnZSBjb2xvdXJzIGFuZCBpY29ucyBhcyBhIEpTT04gd2l0aCBsYW5ndWFnZSBuYW1lcyBhcyBrZXlzIGFuZCBlaXRoZXIgYSBjb2xvdXIga2V5LCBhbiBpY29uIGtleSBvciBib3RoIGFzIHRoZSB2YWx1ZSBmb3IgYSBnaXZlbiBsYW5ndWFnZS4gQ29sb3VycyBzaG91bGQgYmUgcGFzc2VkIGFzIENTUyBjb2xvdXJzIGFuZCBpY29ucyBzaG91bGQgYmUgcGFzc2VkIGFzIGEgc3RyaW5nIG9mIHRoZSBpbnNpZGUgb2YgYW4gc3ZnIGVsZW1lbnQuIFRoaXMgc2V0dGluZyBpcyB0aGVtZSBpbmRlcGVuZGVudC5cIilcblx0XHRcdC5zZXRDbGFzcyhcImNvZGUtc3R5bGVyLXNldHRpbmctdGV4dC1hcmVhXCIpXG5cdFx0XHQuYWRkVGV4dEFyZWEodGV4dEFyZWEgPT4gdGV4dEFyZWFcblx0XHRcdFx0LnNldFZhbHVlKEpTT04uc3RyaW5naWZ5KHRoaXMucGx1Z2luLnNldHRpbmdzLnJlZGlyZWN0TGFuZ3VhZ2VzKT09PVwie31cIj9cIlwiOkpTT04uc3RyaW5naWZ5KHRoaXMucGx1Z2luLnNldHRpbmdzLnJlZGlyZWN0TGFuZ3VhZ2VzLG51bGwsNCkpXG5cdFx0XHRcdC5zZXRQbGFjZWhvbGRlcihKU09OLnN0cmluZ2lmeSh7dG9tbDoge2NvbG91cjogXCIjMDEyMzQ1XCIsIGljb246IExBTkdVQUdFU1tcIkFQTFwiXS5jb2xvdXJ9fSxudWxsLDQpKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKT0+e1xuXHRcdFx0XHRcdGlmICh2YWx1ZSA9PT0gXCJcIikge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MucmVkaXJlY3RMYW5ndWFnZXMgPSB7fTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLnJlZGlyZWN0TGFuZ3VhZ2VzID0gSlNPTi5wYXJzZSh2YWx1ZSk7XG5cdFx0XHRcdFx0XHRcdHRoaXMucmVkaXJlY3RMYW5ndWFnZXMoKTtcblx0XHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiSW52YWxpZCBKU09OXCIpOyAvL05PU09OQVJcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Ly9UT0RPIChAbWF5dXJhbmt2KSBSZS1yZW5kZXIgKFRlc3QpXG5cdFx0XHRcdH0pKTtcblx0fVxuXHRnZW5lcmF0ZUlubGluZUNvZGVTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImgzXCIsIHt0ZXh0OiBcIklubGluZSBDb2RlIEFwcGVhcmFuY2VcIn0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJTeW50YXggSGlnaGxpZ2h0IElubGluZSBDb2RlXCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGVuYWJsZWQsIGluIHJlYWRpbmcgbW9kZSwgaW5saW5lIGNvZGUgd2lsbCBiZSBzeW50YXggaGlnaGxpZ2h0ZWQgYmFzZWQgb24gYSBsYW5ndWFnZSBzZXQgd2l0aCBge2xhbmd1YWdlfSBoaWdobGlnaHRlZF9pbmxpbmVfY29kZWAuIFNlZSB0aGUgUkVBRE1FIGZvciBtb3JlIGluZm9ybWF0aW9uLlwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnN5bnRheEhpZ2hsaWdodClcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuc3ludGF4SGlnaGxpZ2h0ID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3ModHJ1ZSk7XG5cdFx0XHRcdH0pKTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiU3R5bGUgSW5saW5lIENvZGVcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZW5hYmxlZCwgaW5saW5lIGNvZGUgd2lsbCBiZSBzdHlsZWQuXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuc3R5bGUpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnN0eWxlID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5nZW5lcmF0ZUlubGluZUNvZGVTdHlsZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSkpO1xuXHRcdHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lciA9IGNvbnRhaW5lckVsLmNyZWF0ZURpdigpO1xuXHRcdHRoaXMuZ2VuZXJhdGVJbmxpbmVDb2RlU3R5bGVTZXR0aW5ncygpO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSW5saW5lIENvZGUgVGl0bGUgQ29sb3VyXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlRoZSB0ZXh0IGNvbG91ciBvZiBpbmxpbmUgY29kZSB0aXRsZXMuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcixzZXR0aW5nLFxuXHRcdFx0XHRcInRpdGxlX3RleHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5pbmxpbmUudGl0bGVUZXh0Q29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmlubGluZS50aXRsZVRleHRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSW5saW5lIENvZGUgVGl0bGUgRm9udCBXZWlnaHRcIilcblx0XHRcdC5zZXREZXNjKFwiRGV0ZXJtaW5lcyBob3cgYm9sZCBpbmxpbmUgY29kZSB0aXRsZXMgYXBwZWFyLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0bGV0IHJlc2V0dGFibGVTbGlkZXI6IFNsaWRlckNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRTbGlkZXIoKHNsaWRlcikgPT4ge3Jlc2V0dGFibGVTbGlkZXIgPSBzbGlkZXJcblx0XHRcdFx0XHQuc2V0TGltaXRzKDEsOSwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnRpdGxlRm9udFdlaWdodClcblx0XHRcdFx0XHQuc2V0RHluYW1pY1Rvb2x0aXAoKVxuXHRcdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUudGl0bGVGb250V2VpZ2h0ID0gdmFsdWU7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0c2V0dGluZy5hZGRFeHRyYUJ1dHRvbigoYnV0dG9uKSA9PiB7YnV0dG9uXG5cdFx0XHRcdFx0LnNldEljb24oXCJyZXNldFwiKVxuXHRcdFx0XHRcdC5zZXRUb29sdGlwKFwiUmVzdG9yZSBkZWZhdWx0IGZvbnQgd2VpZ2h0XCIpXG5cdFx0XHRcdFx0Lm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS50aXRsZUZvbnRXZWlnaHQgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0uc2V0dGluZ3MuaW5saW5lLnRpdGxlRm9udFdlaWdodDtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS50aXRsZUZvbnRXZWlnaHQpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0fVxuXHRnZW5lcmF0ZUlubGluZUNvZGVTdHlsZVNldHRpbmdzKCkge1xuXHRcdHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lci5lbXB0eSgpO1xuXHRcdGlmICghdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5zdHlsZSlcblx0XHRcdHJldHVybjtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmlubGluZUNvZGVTdHlsZXNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIklubGluZSBDb2RlIEJhY2tncm91bmQgQ29sb3VyXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcixzZXR0aW5nLFxuXHRcdFx0XHRcImlubGluZV9iYWNrZ3JvdW5kXCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaW5saW5lLmJhY2tncm91bmRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaW5saW5lLmJhY2tncm91bmRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSW5saW5lIENvZGUgVGV4dCBDb2xvdXJcIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyLHNldHRpbmcsXG5cdFx0XHRcdFwiaW5saW5lX3RleHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5pbmxpbmUudGV4dENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5pbmxpbmUudGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBBY3RpdmUgVGV4dCBDb2xvdXJcIilcblx0XHRcdC5zZXREZXNjKFwiVGhlIHRleHQgY29sb3VyIHdoZW4gZWRpdGluZyBpbmxpbmUgY29kZS5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyLHNldHRpbmcsXG5cdFx0XHRcdFwiaW5saW5lX2FjdGl2ZV90ZXh0XCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaW5saW5lLmFjdGl2ZVRleHRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaW5saW5lLmFjdGl2ZVRleHRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSW5saW5lIENvZGUgRm9udCBXZWlnaHRcIilcblx0XHRcdC5zZXREZXNjKFwiRGV0ZXJtaW5lcyBob3cgYm9sZCBpbmxpbmUgY29kZSBhcHBlYXJzLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0bGV0IHJlc2V0dGFibGVTbGlkZXI6IFNsaWRlckNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRTbGlkZXIoKHNsaWRlcikgPT4ge3Jlc2V0dGFibGVTbGlkZXIgPSBzbGlkZXJcblx0XHRcdFx0XHQuc2V0TGltaXRzKDEsOSwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLmZvbnRXZWlnaHQpXG5cdFx0XHRcdFx0LnNldER5bmFtaWNUb29sdGlwKClcblx0XHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLmZvbnRXZWlnaHQgPSB2YWx1ZTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtidXR0b25cblx0XHRcdFx0XHQuc2V0SWNvbihcInJlc2V0XCIpXG5cdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJSZXN0b3JlIGRlZmF1bHQgZm9udCB3ZWlnaHRcIilcblx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLmZvbnRXZWlnaHQgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0uc2V0dGluZ3MuaW5saW5lLmZvbnRXZWlnaHQ7XG5cdFx0XHRcdFx0XHRyZXNldHRhYmxlU2xpZGVyLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuZm9udFdlaWdodCk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSW5saW5lIENvZGUgQ3VydmF0dXJlXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkRldGVybWluZXMgaG93IHJvdW5kZWQgaW5saW5lIGNvZGUgYXBwZWFyIGluIHBpeGVscy5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7XG5cdFx0XHRcdGxldCByZXNldHRhYmxlU2xpZGVyOiBTbGlkZXJDb21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkU2xpZGVyKChzbGlkZXIpID0+IHtyZXNldHRhYmxlU2xpZGVyID0gc2xpZGVyXG5cdFx0XHRcdFx0LnNldExpbWl0cygwLDEyLDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuY3VydmF0dXJlKVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5jdXJ2YXR1cmUgPSB2YWx1ZTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtidXR0b25cblx0XHRcdFx0XHQuc2V0SWNvbihcInJlc2V0XCIpXG5cdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJSZXN0b3JlIGRlZmF1bHQgY3VydmF0dXJlXCIpXG5cdFx0XHRcdFx0Lm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5jdXJ2YXR1cmUgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0uc2V0dGluZ3MuaW5saW5lLmN1cnZhdHVyZTtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5jdXJ2YXR1cmUpO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmlubGluZUNvZGVTdHlsZXNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIklubGluZSBDb2RlIFZlcnRpY2FsIFBhZGRpbmdcIilcblx0XHRcdC5zZXREZXNjKFwiRGV0ZXJtaW5lcyBob3cgbXVjaCB2ZXJ0aWNhbCBpbm5lciBwYWRkaW5nIGluIHBpeGVscyBpbmxpbmUgY29kZSBoYXMuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoMCwxMCwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnBhZGRpbmdWZXJ0aWNhbClcblx0XHRcdFx0XHQuc2V0RHluYW1pY1Rvb2x0aXAoKVxuXHRcdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ1ZlcnRpY2FsID0gdmFsdWU7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0c2V0dGluZy5hZGRFeHRyYUJ1dHRvbigoYnV0dG9uKSA9PiB7YnV0dG9uXG5cdFx0XHRcdFx0LnNldEljb24oXCJyZXNldFwiKVxuXHRcdFx0XHRcdC5zZXRUb29sdGlwKFwiUmVzdG9yZSBkZWZhdWx0IHZlcnRpY2FsIHBhZGRpbmdcIilcblx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnBhZGRpbmdWZXJ0aWNhbCA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ1ZlcnRpY2FsO1xuXHRcdFx0XHRcdFx0cmVzZXR0YWJsZVNsaWRlci5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnBhZGRpbmdWZXJ0aWNhbCk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSW5saW5lIENvZGUgSG9yaXpvbnRhbCBQYWRkaW5nXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkRldGVybWluZXMgaG93IG11Y2ggaG9yaXpvbnRhbCBpbm5lciBwYWRkaW5nIGluIHBpeGVscyBpbmxpbmUgY29kZSBoYXMuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoMCwxMCwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnBhZGRpbmdIb3Jpem9udGFsKVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5wYWRkaW5nSG9yaXpvbnRhbCA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBob3Jpem9udGFsIHBhZGRpbmdcIilcblx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnBhZGRpbmdIb3Jpem9udGFsID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLnNldHRpbmdzLmlubGluZS5wYWRkaW5nSG9yaXpvbnRhbDtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5wYWRkaW5nSG9yaXpvbnRhbCk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSW5saW5lIENvZGUgSG9yaXpvbnRhbCBNYXJnaW5cIilcblx0XHRcdC5zZXREZXNjKFwiRGV0ZXJtaW5lcyBob3cgbXVjaCBob3Jpem9udGFsIG91dGVyIG1hcmdpbiBpcyBhZGRlZCB0byB0aGUgaW5saW5lIGNvZGUgaW4gcGl4ZWxzLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0bGV0IHJlc2V0dGFibGVTbGlkZXI6IFNsaWRlckNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRTbGlkZXIoKHNsaWRlcikgPT4ge3Jlc2V0dGFibGVTbGlkZXIgPSBzbGlkZXJcblx0XHRcdFx0XHQuc2V0TGltaXRzKDAsOCwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLm1hcmdpbkhvcml6b250YWwpXG5cdFx0XHRcdFx0LnNldER5bmFtaWNUb29sdGlwKClcblx0XHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLm1hcmdpbkhvcml6b250YWwgPSB2YWx1ZTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtidXR0b25cblx0XHRcdFx0XHQuc2V0SWNvbihcInJlc2V0XCIpXG5cdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJSZXN0b3JlIGRlZmF1bHQgaG9yaXpvbnRhbCBtYXJnaW5cIilcblx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLm1hcmdpbkhvcml6b250YWwgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0uc2V0dGluZ3MuaW5saW5lLm1hcmdpbkhvcml6b250YWw7XG5cdFx0XHRcdFx0XHRyZXNldHRhYmxlU2xpZGVyLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUubWFyZ2luSG9yaXpvbnRhbCk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHR9XG5cdGdlbmVyYXRlQWR2YW5jZWRIZWFkaW5nKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGNvbnN0IGFkdmFuY2VkU2V0dGluZ3NIZWFkaW5nID0gY29udGFpbmVyRWwuY3JlYXRlRWwoXCJoMlwiLCB7dGV4dDogXCJBZHZhbmNlZCBTZXR0aW5nc1wiLCBjbHM6IGBhZHZhbmNlZC1zZXR0aW5ncy1oZWFkZXIke3RoaXMuaGlkZUFkdmFuY2VkP1wiIGhlYWRlci1mb2xkZWRcIjpcIlwifWB9KTtcblx0XHRhZHZhbmNlZFNldHRpbmdzSGVhZGluZy5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwoKT0+e1xuXHRcdFx0dGhpcy5oaWRlQWR2YW5jZWQgPSAhdGhpcy5oaWRlQWR2YW5jZWQ7XG5cdFx0XHRhZHZhbmNlZFNldHRpbmdzSGVhZGluZy5jbGFzc0xpc3QudG9nZ2xlKFwiaGVhZGVyLWZvbGRlZFwiLHRoaXMuaGlkZUFkdmFuY2VkKTtcblx0XHRcdHRoaXMuZ2VuZXJhdGVBZHZhbmNlZFNldHRpbmdzKCk7XG5cdFx0fSk7XG5cdH1cblx0Z2VuZXJhdGVBZHZhbmNlZFNldHRpbmdzKCkge1xuXHRcdHRoaXMuYWR2YW5jZWRTZXR0aW5nc0NvbnRhaW5lci5lbXB0eSgpO1xuXHRcdGlmICh0aGlzLmhpZGVBZHZhbmNlZClcblx0XHRcdHJldHVybjtcblx0XHR0aGlzLmdlbmVyYXRlSW50ZXJmYWNlU2V0dGluZ3ModGhpcy5hZHZhbmNlZFNldHRpbmdzQ29udGFpbmVyKTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmFkdmFuY2VkU2V0dGluZ3NDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIkVkaXRvciBBY3RpdmUgTGluZSBIaWdobGlnaHRcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZW5hYmxlZCwgaGlnaGxpZ2h0cyB0aGUgYWN0aXZlIGxpbmUgb3V0c2lkZSBjb2RlYmxvY2tzLlwiKVxuXHRcdFx0LnNldENsYXNzKFwiY29kZS1zdHlsZXItc3BhY2VkXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFRvb2x0aXAoXCJUb2dnbGUgZWRpdG9yIGFjdGl2ZSBsaW5lIGhpZ2hsaWdodGluZ1wiKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlRWRpdG9yTGluZSlcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oaWdobGlnaHRzLmFjdGl2ZUVkaXRvckxpbmUgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImVkaXRvckFjdGl2ZUxpbmVIaWdobGlnaHRcIl0uZm9yRWFjaChjb21wb25lbnQgPT4ge2NvbXBvbmVudC5zZXREaXNhYmxlZCghdmFsdWUpO30pO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbix0aGlzLmFkdmFuY2VkU2V0dGluZ3NDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XCJlZGl0b3JfYWN0aXZlX2xpbmVfaGlnaGxpZ2h0XCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5hY3RpdmVFZGl0b3JMaW5lQ29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhpZ2hsaWdodHMuYWN0aXZlRWRpdG9yTGluZUNvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdFx0KCkgPT4gIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oaWdobGlnaHRzLmFjdGl2ZUVkaXRvckxpbmUsXG5cdFx0XHQpO1xuXHRcdFx0fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5hZHZhbmNlZFNldHRpbmdzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJFeHRlcm5hbCBSZWZlcmVuY2VzIEF1dG9tYXRpYyBVcGRhdGUgb24gTG9hZFwiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBlbmFibGVkLCBleHRlcm5hbCByZWZlcmVuY2VzIHdpbGwgYmUgdXBkYXRlZCBhdXRvbWF0aWNhbGx5IG9uIGxvYWQgd2hlbiBwb3NzaWJsZS5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VG9vbHRpcChcIlRvZ2dsZSBhdXRvLXVwZGF0ZSBleHRlcm5hbCByZWZlcmVuY2VzXCIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5leHRlcm5hbFJlZmVyZW5jZVVwZGF0ZU9uTG9hZClcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmV4dGVybmFsUmVmZXJlbmNlVXBkYXRlT25Mb2FkID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSkpO1xuXHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzW1wiZWRpdG9yQWN0aXZlTGluZUhpZ2hsaWdodFwiXS5wdXNoKHRoaXMucGlja3JzW1wiZWRpdG9yX2FjdGl2ZV9saW5lX2hpZ2hsaWdodFwiXS5yZXNldEJ1dHRvbik7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5hZHZhbmNlZFNldHRpbmdzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJSZXNldCBpbmJ1aWx0IHRoZW1lc1wiKVxuXHRcdFx0LnNldERlc2MoXCJUaGlzIHdpbGwgcmV0dXJuIGFsbCBpbmJ1aWx0IHRoZW1lcyB0byB0aGUgcGx1Z2luIGRlZmF1bHRzXCIpXG5cdFx0XHQuYWRkQnV0dG9uKGJ1dHRvbiA9PiBidXR0b25cblx0XHRcdFx0LnNldEJ1dHRvblRleHQoXCJSZXNldFwiKVxuXHRcdFx0XHQub25DbGljaygoKT0+e1xuXHRcdFx0XHRcdE9iamVjdC5lbnRyaWVzKElOQlVJTFRfVEhFTUVTKS5mb3JFYWNoKChbdGhlbWVOYW1lLHRoZW1lXTogW3N0cmluZyxDb2RlU3R5bGVyVGhlbWVdKSA9PiB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhlbWVOYW1lXSA9IHN0cnVjdHVyZWRDbG9uZSh0aGVtZSkpO1xuXHRcdFx0XHRcdGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lIGluIElOQlVJTFRfVEhFTUVTKVxuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lID0gc3RydWN0dXJlZENsb25lKHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXSk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3ModHJ1ZSk7XG5cdFx0XHRcdH0pKTtcblx0fVxuXHRnZW5lcmF0ZUludGVyZmFjZVNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJCdXR0b24gQ29sb3VyXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlVzZWQgZm9yIFVJIGJ1dHRvbnMgbGlrZSB0aGUgY29weSBjb2RlIGJ1dHRvbi5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxcblx0XHRcdFx0XCJkZWZhdWx0X2hpZ2hsaWdodFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmFkdmFuY2VkLmJ1dHRvbkNvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5hZHZhbmNlZC5idXR0b25Db2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJCdXR0b24gQWN0aXZlIENvbG91clwiKVxuXHRcdFx0LnNldERlc2MoXCJDb2xvdXIgYnV0dG9ucyB1c2Ugd2hlbiBhY3RpdmF0ZWQuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiZGVmYXVsdF9oaWdobGlnaHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5hZHZhbmNlZC5idXR0b25BY3RpdmVDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uYWR2YW5jZWQuYnV0dG9uQWN0aXZlQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0fVxuXHRnZW5lcmF0ZVBsdWdpbkNvbXBhdGliaWxpdHlTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRjb250YWluZXJFbC5jcmVhdGVTcGFuKFwiTmVlZHMgY29tcGxldGluZ1wiKTsgLy9UT0RPIChAbWF5dXJhbmt2KSBDb21wbGV0ZVxuXHRcdC8vIEV4ZWN1dGUgQ29kZSBTZXR0aW5nc1xuXHR9XG5cdGdlbmVyYXRlRXhhbXBsZUNvZGVibG9ja1NldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJFeGFtcGxlIENvZGVibG9jayBQYXJhbWV0ZXIgU3RyaW5nXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlBhcmFtZXRlcnMgYW5kIGxhbmd1YWdlIHdoaWNoIHdvdWxkIGZvbGxvdyBjb2RlYmxvY2sgZGVsaW1pdGVyLlwiKVxuXHRcdFx0LnNldENsYXNzKFwiY29kZS1zdHlsZXItc2V0dGluZy10ZXh0LXdpZGVcIilcblx0XHRcdC5hZGRUZXh0KHRleHQgPT4gdGV4dFxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoRVhBTVBMRV9DT0RFQkxPQ0tfUEFSQU1FVEVSUylcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmV4YW1wbGVDb2RlYmxvY2tQYXJhbWV0ZXJzKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuZXhhbXBsZUNvZGVibG9ja1BhcmFtZXRlcnMgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdHRoaXMuZ2VuZXJhdGVFeGFtcGxlQ29kZWJsb2NrKCk7XG5cdFx0XHRcdH0pKTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiRXhhbXBsZSBDb2RlYmxvY2sgUGFyYW1ldGVyIFN0cmluZ1wiKVxuXHRcdFx0LnNldERlc2MoXCJDb250ZW50IGZvciBleGFtcGxlIGNvZGVibG9jay5cIilcblx0XHRcdC5zZXRDbGFzcyhcImNvZGUtc3R5bGVyLXNldHRpbmctdGV4dC1hcmVhXCIpXG5cdFx0XHQuYWRkVGV4dEFyZWEodGV4dEFyZWEgPT4gdGV4dEFyZWFcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmV4YW1wbGVDb2RlYmxvY2tDb250ZW50KVxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoRVhBTVBMRV9DT0RFQkxPQ0tfQ09OVEVOVClcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSk9Pntcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5leGFtcGxlQ29kZWJsb2NrQ29udGVudCA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0dGhpcy5nZW5lcmF0ZUV4YW1wbGVDb2RlYmxvY2soKTtcblx0XHRcdFx0fSkpO1xuXHR9XG5cdGdlbmVyYXRlRXhhbXBsZUNvZGVibG9jaygpIHtcblx0XHR0aGlzLmV4YW1wbGVDb2RlYmxvY2tDb250YWluZXIuZW1wdHkoKTtcblx0XHRjb25zdCBjb2RlYmxvY2tTdHJpbmcgPSBcImBgYGBgYGBcIit0aGlzLnBsdWdpbi5zZXR0aW5ncy5leGFtcGxlQ29kZWJsb2NrUGFyYW1ldGVycytcIlxcblwiK3RoaXMucGx1Z2luLnNldHRpbmdzLmV4YW1wbGVDb2RlYmxvY2tDb250ZW50K1wiXFxuYGBgYGBgYFwiO1xuXHRcdE1hcmtkb3duUmVuZGVyZXIucmVuZGVyKHRoaXMucGx1Z2luLmFwcCxjb2RlYmxvY2tTdHJpbmcsdGhpcy5leGFtcGxlQ29kZWJsb2NrQ29udGFpbmVyLFNFVFRJTkdTX1NPVVJDRVBBVEhfUFJFRklYK2NvZGVibG9ja1N0cmluZyx0aGlzLnBsdWdpbik7XG5cdFx0dGhpcy5leGFtcGxlQ29kZWJsb2NrQ29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoXCJwcmUgPiBidXR0b24uY29weS1jb2RlLWJ1dHRvblwiKT8uY2xhc3NMaXN0Py5hZGQoXCJjb2RlLXN0eWxlci1zZXR0aW5ncy1idXR0b25cIik7XG5cdH1cblx0Z2VuZXJhdGVFeGFtcGxlSW5saW5lQ29kZVNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBFeGFtcGxlXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlRleHQgdG8gcmVuZGVyIGFzIGV4YW1wbGUgaW5zaWRlIGNvZGUgZGVsaW1pdGVycy5cIilcblx0XHRcdC5zZXRDbGFzcyhcImNvZGUtc3R5bGVyLXNldHRpbmctdGV4dC13aWRlXCIpXG5cdFx0XHQuYWRkVGV4dCh0ZXh0ID0+IHRleHRcblx0XHRcdFx0LnNldFBsYWNlaG9sZGVyKEVYQU1QTEVfSU5MSU5FX0NPREUpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5leGFtcGxlSW5saW5lQ29kZSlcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmV4YW1wbGVJbmxpbmVDb2RlID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR0aGlzLmdlbmVyYXRlRXhhbXBsZUlubGluZUNvZGUoKTtcblx0XHRcdFx0fSkpO1xuXHR9XG5cdGdlbmVyYXRlRXhhbXBsZUlubGluZUNvZGUoKSB7XG5cdFx0dGhpcy5leGFtcGxlSW5saW5lQ29kZUNvbnRhaW5lci5lbXB0eSgpO1xuXHRcdE1hcmtkb3duUmVuZGVyZXIucmVuZGVyKHRoaXMucGx1Z2luLmFwcCxcImBcIit0aGlzLnBsdWdpbi5zZXR0aW5ncy5leGFtcGxlSW5saW5lQ29kZStcImBcIix0aGlzLmV4YW1wbGVJbmxpbmVDb2RlQ29udGFpbmVyLFNFVFRJTkdTX1NPVVJDRVBBVEhfUFJFRklYLHRoaXMucGx1Z2luKTtcblx0XHR0aGlzLmV4YW1wbGVJbmxpbmVDb2RlQ29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoXCJjb2RlXCIpPy5jbGFzc0xpc3Q/LmFkZChcImNvZGUtc3R5bGVyLXNldHRpbmdzLWlubGluZS1jb2RlXCIpO1xuXHR9XG5cdGdlbmVyYXRlRG9uYXRpb25Gb290ZXIoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoXCJoclwiKTtcblx0XHRjb25zdCBkb25hdGlvbkRpdiA9IGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiZGl2XCIsIHsgY2xzOiBcImNvZGUtc3R5bGVyLWRvbmF0aW9uXCIsIH0pO1xuXHRcdGNvbnN0IGRvbmF0aW9uVGV4dCA9IGNyZWF0ZUVsKFwicFwiLCB7dGV4dDogXCJJZiB5b3UgbGlrZSB0aGlzIHBsdWdpbiwgYW5kIHdvdWxkIGxpa2UgdG8gaGVscCBzdXBwb3J0IGNvbnRpbnVlZCBkZXZlbG9wbWVudCwgdXNlIHRoZSBidXR0b24gYmVsb3chXCJ9KTtcblx0XHRkb25hdGlvbkRpdi5hcHBlbmRDaGlsZChkb25hdGlvblRleHQpO1xuXHRcdGNvbnN0IGRvbmF0aW9uQnV0dG9uID0gY3JlYXRlRWwoXCJhXCIsIHsgaHJlZjogXCJodHRwczovL3d3dy5idXltZWFjb2ZmZWUuY29tL21heXVyYW5rdlwifSk7XG5cdFx0ZG9uYXRpb25CdXR0b24uaW5uZXJIVE1MID0gXCI8aW1nIHNyYz1cXFwiaHR0cHM6Ly9pbWcuYnV5bWVhY29mZmVlLmNvbS9idXR0b24tYXBpLz90ZXh0PUJ1eSBtZSBhIGNvZmZlZSZlbW9qaT0mc2x1Zz1tYXl1cmFua3YmYnV0dG9uX2NvbG91cj1lM2U3ZWZhMCZmb250X2NvbG91cj0yNjI2MjYmZm9udF9mYW1pbHk9SW50ZXImb3V0bGluZV9jb2xvdXI9MjYyNjI2JmNvZmZlZV9jb2xvdXI9YTA1MjJkXFxcIiBoZWlnaHQ9XFxcIjQycHhcXFwiPlwiO1xuXHRcdGRvbmF0aW9uRGl2LmFwcGVuZENoaWxkKGRvbmF0aW9uQnV0dG9uKTtcblx0fVxuXG5cdC8vIENyZWF0ZSBTZXR0aW5nc1xuXHRjcmVhdGVQaWNrcihwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4sIGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCwgc2V0dGluZzogU2V0dGluZywgaWQ6IHN0cmluZywgZ2V0UmVsZXZhbnRUaGVtZUNvbG91cjogKHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKT0+Q29sb3VyLCBzYXZlUmVsZXZhbnRUaGVtZUNvbG91cjogKHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpPT52b2lkLCBkaXNhYmxlZD86ICgpPT5ib29sZWFuKSB7XG5cdFx0Y29uc3QgcGlja3I6IFBpY2tyUmVzZXR0YWJsZSA9IG5ldyBQaWNrclJlc2V0dGFibGUocGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsZ2V0UmVsZXZhbnRUaGVtZUNvbG91cixzYXZlUmVsZXZhbnRUaGVtZUNvbG91cik7XG5cdFx0cGlja3Jcblx0XHRcdC5vbihcInNob3dcIiwgKGNvbG91cjogUGlja3IuSFNWYUNvbG9yLCBpbnN0YW5jZTogUGlja3IpID0+IHtcblx0XHRcdFx0aWYgKHR5cGVvZiBkaXNhYmxlZCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBkaXNhYmxlZCgpKVxuXHRcdFx0XHRcdGluc3RhbmNlLmhpZGUoKTtcblx0XHRcdFx0Ly8gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiAoaW5zdGFuY2UuZ2V0Um9vdCgpIGFzIGFueSkuaW50ZXJhY3Rpb24ucmVzdWx0LnNlbGVjdCgpKSlcblx0XHRcdH0pXG5cdFx0XHQub24oXCJzYXZlXCIsIChjb2xvdXI6IFBpY2tyLkhTVmFDb2xvciwgaW5zdGFuY2U6IFBpY2tyUmVzZXR0YWJsZSkgPT4ge1xuXHRcdFx0XHRjb25zdCBzYXZlZENvbG91cjogQ29sb3VyID0gYCMke2NvbG91ci50b0hFWEEoKS50b1N0cmluZygpLnN1YnN0cmluZygxKX1gO1xuXHRcdFx0XHRpbnN0YW5jZS5oaWRlKCk7XG5cdFx0XHRcdGluc3RhbmNlLmFkZFN3YXRjaChzYXZlZENvbG91cik7XG5cdFx0XHRcdGluc3RhbmNlLnNhdmVDb2xvdXIoc2F2ZWRDb2xvdXIpO1xuXHRcdFx0fSlcblx0XHRcdC5vbihcImNhbmNlbFwiLCAoaW5zdGFuY2U6IFBpY2tyUmVzZXR0YWJsZSkgPT4ge2luc3RhbmNlLmhpZGUoKTt9KTtcblx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtwaWNrci5yZXNldEJ1dHRvbiA9IGJ1dHRvblxuXHRcdFx0LnNldEljb24oXCJyZXNldFwiKVxuXHRcdFx0LnNldERpc2FibGVkKHR5cGVvZiBkaXNhYmxlZCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBkaXNhYmxlZCgpKVxuXHRcdFx0LnNldFRvb2x0aXAoXCJSZXN0b3JlIGRlZmF1bHQgY29sb3VyXCIpXG5cdFx0XHQub25DbGljaygoKSA9PiB7cGlja3IucmVzZXRDb2xvdXIoKTt9KTtcblx0XHR9KTtcblx0XHR0aGlzLnBpY2tyc1tpZF09cGlja3I7XG5cdH1cblxuXHQvLyBVcGRhdGUgU2V0dGluZ3Ncblx0c2F2ZVNldHRpbmdzKHJlcmVuZGVyOiBib29sZWFuPWZhbHNlKSB7XG5cdFx0KGFzeW5jICgpID0+IHthd2FpdCB0aGlzLnBsdWdpbi5zYXZlU2V0dGluZ3MoKTt9KSgpO1xuXHRcdGlmIChyZXJlbmRlcilcblx0XHRcdHRoaXMucmVyZW5kZXIoKTtcblx0fVxuXHRyZXJlbmRlcigpIHtcblx0XHR0aGlzLnBsdWdpbi5yZW5kZXJSZWFkaW5nVmlldygpO1xuXHRcdGlmICh0aGlzLnBhZ2UgPT09IFwiY29kZWJsb2NrXCIpXG5cdFx0XHR0aGlzLmdlbmVyYXRlRXhhbXBsZUNvZGVibG9jaygpO1xuXHRcdGVsc2UgaWYgKHRoaXMucGFnZSA9PT0gXCJpbmxpbmVcIilcblx0XHRcdHRoaXMuZ2VuZXJhdGVFeGFtcGxlSW5saW5lQ29kZSgpO1xuXHR9XG5cdHVwZGF0ZURyb3Bkb3duKGRyb3Bkb3duOiBEcm9wZG93bkNvbXBvbmVudCwgc2V0dGluZ3M6IENvZGVTdHlsZXJTZXR0aW5ncykge1xuXHRcdGRyb3Bkb3duLnNlbGVjdEVsLmVtcHR5KCk7XG5cdFx0T2JqZWN0LmtleXMoc2V0dGluZ3MudGhlbWVzKS5mb3JFYWNoKCh0aGVtZV9uYW1lOiBzdHJpbmcpID0+IHtcblx0XHRcdGRyb3Bkb3duLmFkZE9wdGlvbih0aGVtZV9uYW1lLCB0aGVtZV9uYW1lKTtcblx0XHR9KTtcblx0XHRkcm9wZG93bi5zZXRWYWx1ZShzZXR0aW5ncy5zZWxlY3RlZFRoZW1lKTtcblx0fVxuXHR1cGRhdGVBbHRlcm5hdGl2ZUhpZ2hsaWdodHMoKSB7XG5cdFx0aWYgKHRoaXMucGFnZSAhPT0gXCJjb2RlYmxvY2tcIiB8fCB0aGlzLmNvZGVibG9ja1BhZ2UgIT09IFwiaGlnaGxpZ2h0XCIpXG5cdFx0XHRyZXR1cm47XG5cdFx0dGhpcy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNDb250YWluZXIuZW1wdHkoKTtcblx0XHRPYmplY3Qua2V5cyh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuY29sb3Vycy5saWdodC5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0cykuZm9yRWFjaCgoYWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lKSA9PiB7XG5cdFx0XHRuZXcgU2V0dGluZyh0aGlzLmFsdGVybmF0aXZlSGlnaGxpZ2h0c0NvbnRhaW5lcilcblx0XHRcdFx0LnNldE5hbWUoYWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lKVxuXHRcdFx0XHQuc2V0RGVzYyhgVG8gaGlnaGxpZ2h0IGxpbmVzIHdpdGggdGhpcyBoaWdobGlnaHQsIHVzZSB0aGUgJHthbHRlcm5hdGl2ZUhpZ2hsaWdodE5hbWV9IHBhcmFtZXRlci5gKVxuXHRcdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRcdHRoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbix0aGlzLmFsdGVybmF0aXZlSGlnaGxpZ2h0c0NvbnRhaW5lcixzZXR0aW5nLFxuXHRcdFx0XHRcdFx0YGFsdGVybmF0aXZlX2hpZ2hsaWdodF8ke2FsdGVybmF0aXZlSGlnaGxpZ2h0TmFtZX1gLFxuXHRcdFx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiBhbHRlcm5hdGl2ZUhpZ2hsaWdodE5hbWUgaW4gcmVsZXZhbnRUaGVtZUNvbG91cnMubGlnaHQuaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHM/cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNbYWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lXTp0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuY29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0c1thbHRlcm5hdGl2ZUhpZ2hsaWdodE5hbWVdLFxuXHRcdFx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0c1thbHRlcm5hdGl2ZUhpZ2hsaWdodE5hbWVdID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0c2V0dGluZy5hZGRFeHRyYUJ1dHRvbigoYnV0dG9uKSA9PiB7YnV0dG9uXG5cdFx0XHRcdFx0XHQuc2V0SWNvbihcInRyYXNoXCIpXG5cdFx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIkRlbGV0ZSBoaWdobGlnaHRcIilcblx0XHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdFx0ZGVsZXRlIHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5jb2xvdXJzLmxpZ2h0LmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzW2FsdGVybmF0aXZlSGlnaGxpZ2h0TmFtZV07XG5cdFx0XHRcdFx0XHRcdGRlbGV0ZSB0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuY29sb3Vycy5kYXJrLmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzW2FsdGVybmF0aXZlSGlnaGxpZ2h0TmFtZV07XG5cdFx0XHRcdFx0XHRcdG5ldyBOb3RpY2UoYFJlbW92ZWQgaGlnaGxpZ2h0IFwiJHthbHRlcm5hdGl2ZUhpZ2hsaWdodE5hbWV9XCIuYCk7IC8vTk9TT05BUlxuXHRcdFx0XHRcdFx0XHR0aGlzLnVwZGF0ZUFsdGVybmF0aXZlSGlnaGxpZ2h0cygpO1xuXHRcdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9XG5cdHJlZGlyZWN0TGFuZ3VhZ2VzKCkge1xuXHRcdE9iamVjdC5lbnRyaWVzKHRoaXMucGx1Z2luLnNldHRpbmdzLnJlZGlyZWN0TGFuZ3VhZ2VzKS5mb3JFYWNoKChbbGFuZ3VhZ2VOYW1lLCBsYW5ndWFnZVNldHRpbmdzXTogW3N0cmluZywge2NvbG91cj86IENvbG91ciwgaWNvbj86IHN0cmluZ31dKT0+e1xuXHRcdFx0aWYgKFwiaWNvblwiIGluIGxhbmd1YWdlU2V0dGluZ3MpIHtcblx0XHRcdFx0aWYgKExBTkdVQUdFX05BTUVTW2xhbmd1YWdlTmFtZV0gaW4gdGhpcy5wbHVnaW4ubGFuZ3VhZ2VJY29ucylcblx0XHRcdFx0XHRVUkwucmV2b2tlT2JqZWN0VVJMKHRoaXMucGx1Z2luLmxhbmd1YWdlSWNvbnNbTEFOR1VBR0VfTkFNRVNbbGFuZ3VhZ2VOYW1lXV0pO1xuXHRcdFx0XHR0aGlzLnBsdWdpbi5sYW5ndWFnZUljb25zW0xBTkdVQUdFX05BTUVTW2xhbmd1YWdlTmFtZV1dID0gVVJMLmNyZWF0ZU9iamVjdFVSTChuZXcgQmxvYihbYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj4ke2xhbmd1YWdlU2V0dGluZ3MuaWNvbn08L3N2Zz5gXSwgeyB0eXBlOiBcImltYWdlL3N2Zyt4bWxcIiB9KSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cbn1cblxuLy8gRXh0ZW5kIFBpY2tyIENsYXNzXG5jbGFzcyBQaWNrclJlc2V0dGFibGUgZXh0ZW5kcyBQaWNrciB7XG5cdHNhdmVDb2xvdXI6IChzYXZlQ29sb3VyOiBDb2xvdXIpPT52b2lkO1xuXHRyZXNldENvbG91cjogKCk9PnZvaWQ7XG5cdGdldEN1cnJlbnRDb2xvdXI6IChhY2Nlc3NUaGVtZTogYm9vbGVhbik9PnZvaWQ7XG5cdHJlc2V0QnV0dG9uOiBFeHRyYUJ1dHRvbkNvbXBvbmVudDtcblxuXHRjb25zdHJ1Y3RvcihwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4sIGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCwgc2V0dGluZzogU2V0dGluZywgZ2V0UmVsZXZhbnRUaGVtZUNvbG91cjogKHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKT0+Q29sb3VyLCBzYXZlUmVsZXZhbnRUaGVtZUNvbG91cjogKHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpPT52b2lkLCB0b29sdGlwPzogc3RyaW5nKSB7XG5cdFx0Y29uc3Qgc2V0dGluZ3M6IFBpY2tyLk9wdGlvbnMgPSB7XG5cdFx0XHRlbDogc2V0dGluZy5jb250cm9sRWwuY3JlYXRlRGl2KHtjbHM6IFwicGlja2VyXCJ9KSxcblx0XHRcdHRoZW1lOiBcIm5hbm9cIixcblx0XHRcdGRlZmF1bHQ6IGdldENvbG91cihnZXRSZWxldmFudFRoZW1lQ29sb3VyKHBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuY29sb3VycykpLFxuXHRcdFx0cG9zaXRpb246IFwibGVmdC1taWRkbGVcIixcblx0XHRcdGxvY2tPcGFjaXR5OiBmYWxzZSxcblx0XHRcdGNvbXBvbmVudHM6IHtcblx0XHRcdFx0cHJldmlldzogdHJ1ZSxcblx0XHRcdFx0aHVlOiB0cnVlLFxuXHRcdFx0XHRvcGFjaXR5OiB0cnVlLFxuXHRcdFx0XHRpbnRlcmFjdGlvbjoge1xuXHRcdFx0XHRcdGhleDogdHJ1ZSxcblx0XHRcdFx0XHRyZ2JhOiB0cnVlLFxuXHRcdFx0XHRcdGhzbGE6IGZhbHNlLFxuXHRcdFx0XHRcdGlucHV0OiB0cnVlLFxuXHRcdFx0XHRcdGNhbmNlbDogdHJ1ZSxcblx0XHRcdFx0XHRzYXZlOiB0cnVlLFxuXHRcdFx0XHR9LFxuXHRcdFx0fSxcblx0XHRcdGkxOG46IHtcblx0XHRcdFx0XCJ1aTpkaWFsb2dcIjogXCJDb2xvdXIgcGlja2VyIGRpYWxvZ1wiLFxuXHRcdFx0XHRcImJ0bjp0b2dnbGVcIjogKHR5cGVvZiB0b29sdGlwICE9PSBcInVuZGVmaW5lZFwiKT90b29sdGlwOlwiU2VsZWN0IGNvbG91clwiLFxuXHRcdFx0XHRcImJ0bjpzd2F0Y2hcIjogXCJDb2xvdXIgc3dhdGNoXCIsXG5cdFx0XHRcdFwiYnRuOmxhc3QtY29sb3JcIjogXCJVc2UgcHJldmlvdXMgY29sb3VyXCIsXG5cdFx0XHR9XG5cdFx0fTtcblx0XHRpZiAoY29udGFpbmVyRWwucGFyZW50RWxlbWVudCAhPT0gbnVsbClcblx0XHRcdHNldHRpbmdzLmNvbnRhaW5lciA9IGNvbnRhaW5lckVsLnBhcmVudEVsZW1lbnQ7XG5cdFx0c3VwZXIoc2V0dGluZ3MpO1xuXHRcdHRoaXMuc2F2ZUNvbG91ciA9IChzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtcblx0XHRcdHNhdmVSZWxldmFudFRoZW1lQ29sb3VyKHBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuY29sb3VycyxzYXZlQ29sb3VyKTtcblx0XHRcdChhc3luYyAoKSA9PiB7YXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO30pKCk7XG5cdFx0fTtcblx0XHR0aGlzLnJlc2V0Q29sb3VyID0gKCkgPT4ge1xuXHRcdFx0Y29uc3QgcmVzZXRDb2xvdXI6IENvbG91ciA9IGdldFJlbGV2YW50VGhlbWVDb2xvdXIocGx1Z2luLnNldHRpbmdzLnRoZW1lc1twbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0uY29sb3Vycyk7XG5cdFx0XHR0aGlzLnNldENvbG9yKGdldENvbG91cihyZXNldENvbG91cikpO1xuXHRcdFx0dGhpcy5zYXZlQ29sb3VyKHJlc2V0Q29sb3VyKTtcblx0XHR9O1xuXHR9XG59XG5cbi8vIENvbG91ciBNYW5hZ2VtZW50XG5mdW5jdGlvbiBnZXRSYW5kb21Db2xvdXIoKTogQ29sb3VyIHtcblx0Y29uc3QgbGV0dGVycyA9IFwiMDEyMzQ1Njc4OUFCQ0RFRlwiO1xuXHRsZXQgY29sb3VyID0gXCJcIjtcblx0Zm9yIChsZXQgaSA9IDA7IGkgPCA2OyBpKyspXG5cdFx0Y29sb3VyICs9IGxldHRlcnNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTYpXTtcblx0cmV0dXJuIGAjJHtjb2xvdXJ9RkZgO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbG91cih0aGVtZUNvbG91cjogQ29sb3VyKTogQ29sb3VyIHtcblx0cmV0dXJuIGlzQ3NzKHRoZW1lQ29sb3VyKT9nZXRDc3NWYXJpYWJsZSh0aGVtZUNvbG91cik6dGhlbWVDb2xvdXI7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNDc3MocG9zc2libGVDc3M6IHN0cmluZyk6IHBvc3NpYmxlQ3NzIGlzIENTUyB7XG5cdHJldHVybiBwb3NzaWJsZUNzcy5zdGFydHNXaXRoKFwiLS1cIikgJiYgdHlwZW9mIHBvc3NpYmxlQ3NzID09PSBcInN0cmluZ1wiO1xufVxuZnVuY3Rpb24gZ2V0Q3NzVmFyaWFibGUoY3NzVmFyaWFibGU6IENTUyk6IEhFWCB7XG5cdGNvbnN0IHZhcmlhYmxlVmFsdWUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5nZXRQcm9wZXJ0eVZhbHVlKGNzc1ZhcmlhYmxlKS50cmltKCk7XG5cdGlmICh0eXBlb2YgdmFyaWFibGVWYWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiB2YXJpYWJsZVZhbHVlLnN0YXJ0c1dpdGgoXCIjXCIpKVxuXHRcdHJldHVybiBgIyR7dmFyaWFibGVWYWx1ZS50cmltKCkuc3Vic3RyaW5nKDEpfWA7XG5cdGVsc2UgaWYgKHZhcmlhYmxlVmFsdWUuc3RhcnRzV2l0aChcInJnYlwiKSlcblx0XHRyZXR1cm4gYCMke0NvbG9yVHJhbnNsYXRvci50b0hFWEEodmFyaWFibGVWYWx1ZS5yZXBsYWNlKC9jYWxjXFwoKC4qPylcXCkvZywobWF0Y2gsY2FwdHVyZSk9PmNhbGMoY2FwdHVyZSkpKS5zdWJzdHJpbmcoMSl9YDtcblx0ZWxzZSBpZiAodmFyaWFibGVWYWx1ZS5zdGFydHNXaXRoKFwiaHNsXCIpKVxuXHRcdHJldHVybiBgIyR7Q29sb3JUcmFuc2xhdG9yLnRvSEVYQSh2YXJpYWJsZVZhbHVlLnJlcGxhY2UoL2NhbGNcXCgoLio/KVxcKS9nLChtYXRjaCxjYXB0dXJlKT0+Y2FsYyhjYXB0dXJlKSkpLnN1YnN0cmluZygxKX1gO1xuXHRlbHNlXG5cdFx0Y29uc29sZS53YXJuKGBXYXJuaW5nOiBDb3VsZG4ndCBkZXRlcm1pbmUgY29sb3VyIGZvcm1hdCAtICR7dmFyaWFibGVWYWx1ZX1gKTtcblx0cmV0dXJuIGAjJHtDb2xvclRyYW5zbGF0b3IudG9IRVhBKHZhcmlhYmxlVmFsdWUpLnN1YnN0cmluZygxKX1gO1xufVxuZnVuY3Rpb24gY2FsYyhjYWxjU3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRjb25zdCBzcGxpdFN0cmluZyA9IGNhbGNTdHJpbmcudHJpbSgpLnJlcGxhY2UoLyhcXGQqKSUvZyxcIiQxXCIpLnNwbGl0KFwiIFwiKTtcblx0Y29uc3Qgb3BlcmF0b3JzOiB7W2tleTogc3RyaW5nXTogKG51bTE6bnVtYmVyLCBudW0yOm51bWJlcikgPT4gbnVtYmVyfSA9IHtcblx0XHRcIitcIjogKG51bTE6bnVtYmVyLCBudW0yOm51bWJlcik6bnVtYmVyID0+IE1hdGgubWF4KG51bTErbnVtMiwwKSxcblx0XHRcIi1cIjogKG51bTE6bnVtYmVyICxudW0yOm51bWJlcik6bnVtYmVyID0+IE1hdGgubWF4KG51bTEtbnVtMiwwKSxcblx0fTtcblx0aWYgKHNwbGl0U3RyaW5nLmxlbmd0aCA9PT0gMylcblx0XHRpZiAoc3BsaXRTdHJpbmdbMV0gaW4gb3BlcmF0b3JzKVxuXHRcdFx0cmV0dXJuIGAke29wZXJhdG9yc1tzcGxpdFN0cmluZ1sxXV0ocGFyc2VGbG9hdChzcGxpdFN0cmluZ1swXSkscGFyc2VGbG9hdChzcGxpdFN0cmluZ1syXSkpfSVgO1xuXG5cdGNvbnNvbGUud2FybihcIldhcm5pbmc6IENvdWxkbid0IHBhcnNlIGNhbGMgc3RyaW5nXCIpO1xuXHRyZXR1cm4gY2FsY1N0cmluZztcbn1cblxuLy8gRmV0Y2ggU2V0dGluZ3NcbmZ1bmN0aW9uIGdldEN1cnJlbnRNb2RlKCkge1xuXHRjb25zdCBib2R5ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcImJvZHlcIik7XG5cdGlmIChib2R5ICE9PSBudWxsKXtcblx0XHRpZiAoYm9keS5jbGFzc0xpc3QuY29udGFpbnMoXCJ0aGVtZS1saWdodFwiKSlcblx0XHRcdHJldHVybiBcImxpZ2h0XCI7XG5cdFx0ZWxzZSBpZiAoYm9keS5jbGFzc0xpc3QuY29udGFpbnMoXCJ0aGVtZS1kYXJrXCIpKVxuXHRcdFx0cmV0dXJuIFwiZGFya1wiO1xuXHR9XG5cdGNvbnNvbGUud2FybihcIldhcm5pbmc6IENvdWxkbid0IGdldCBjdXJyZW50IHRoZW1lXCIpO1xuXHRyZXR1cm4gXCJsaWdodFwiO1xufVxuIiwgInZhciB0LGUscyxpOyFmdW5jdGlvbih0KXt0LkhFWD1cIkhFWFwiLHQuUkdCPVwiUkdCXCIsdC5IU0w9XCJIU0xcIix0LkNJRUxhYj1cIkNJRUxhYlwiLHQuQ01ZSz1cIkNNWUtcIn0odHx8KHQ9e30pKSxmdW5jdGlvbih0KXt0LkFOQUxPR09VUz1cIkFOQUxPR09VU1wiLHQuQ09NUExFTUVOVEFSWT1cIkNPTVBMRU1FTlRBUllcIix0LlNQTElUX0NPTVBMRU1FTlRBUlk9XCJTUExJVF9DT01QTEVNRU5UQVJZXCIsdC5UUklBRElDPVwiVFJJQURJQ1wiLHQuVEVUUkFESUM9XCJURVRSQURJQ1wiLHQuU1FVQVJFPVwiU1FVQVJFXCJ9KGV8fChlPXt9KSksZnVuY3Rpb24odCl7dC5BRERJVElWRT1cIkFERElUSVZFXCIsdC5TVUJUUkFDVElWRT1cIlNVQlRSQUNUSVZFXCJ9KHN8fChzPXt9KSksZnVuY3Rpb24odCl7dC5ibGFjaz1cIiMwMDAwMDBcIix0LnNpbHZlcj1cIiNDMEMwQzBcIix0LmdyYXk9XCIjODA4MDgwXCIsdC53aGl0ZT1cIiNGRkZGRkZcIix0Lm1hcm9vbj1cIiM4MDAwMDBcIix0LnJlZD1cIiNGRjAwMDBcIix0LnB1cnBsZT1cIiM4MDAwODBcIix0LmZ1Y2hzaWE9XCIjRkYwMEZGXCIsdC5ncmVlbj1cIiMwMDgwMDBcIix0LmxpbWU9XCIjMDBGRjAwXCIsdC5vbGl2ZT1cIiM4MDgwMDBcIix0LnllbGxvdz1cIiNGRkZGMDBcIix0Lm5hdnk9XCIjMDAwMDgwXCIsdC5ibHVlPVwiIzAwMDBGRlwiLHQudGVhbD1cIiMwMDgwODBcIix0LmFxdWE9XCIjMDBGRkZGXCIsdC5vcmFuZ2U9XCIjRkZBNTAwXCIsdC5hbGljZWJsdWU9XCIjRjBGOEZGXCIsdC5hbnRpcXVld2hpdGU9XCIjRkFFQkQ3XCIsdC5hcXVhbWFyaW5lPVwiIzdGRkZENFwiLHQuYXp1cmU9XCIjRjBGRkZGXCIsdC5iZWlnZT1cIiNGNUY1RENcIix0LmJpc3F1ZT1cIiNGRkU0QzRcIix0LmJsYW5jaGVkYWxtb25kPVwiI0ZGRUJDRFwiLHQuYmx1ZXZpb2xldD1cIiM4QTJCRTJcIix0LmJyb3duPVwiI0E1MkEyQVwiLHQuYnVybHl3b29kPVwiI0RFQjg4N1wiLHQuY2FkZXRibHVlPVwiIzVGOUVBMFwiLHQuY2hhcnRyZXVzZT1cIiM3RkZGMDBcIix0LmNob2NvbGF0ZT1cIiNEMjY5MUVcIix0LmNvcmFsPVwiI0ZGN0Y1MFwiLHQuY29ybmZsb3dlcmJsdWU9XCIjNjQ5NUVEXCIsdC5jb3Juc2lsaz1cIiNGRkY4RENcIix0LmNyaW1zb249XCIjREMxNDNDXCIsdC5jeWFuPVwiIzAwRkZGRlwiLHQuZGFya2JsdWU9XCIjMDAwMDhCXCIsdC5kYXJrY3lhbj1cIiMwMDhCOEJcIix0LmRhcmtnb2xkZW5yb2Q9XCIjQjg4NjBCXCIsdC5kYXJrZ3JheT1cIiNBOUE5QTlcIix0LmRhcmtncmVlbj1cIiMwMDY0MDBcIix0LmRhcmtncmV5PVwiI0E5QTlBOVwiLHQuZGFya2toYWtpPVwiI0JEQjc2QlwiLHQuZGFya21hZ2VudGE9XCIjOEIwMDhCXCIsdC5kYXJrb2xpdmVncmVlbj1cIiM1NTZCMkZcIix0LmRhcmtvcmFuZ2U9XCIjRkY4QzAwXCIsdC5kYXJrb3JjaGlkPVwiIzk5MzJDQ1wiLHQuZGFya3JlZD1cIiM4QjAwMDBcIix0LmRhcmtzYWxtb249XCIjRTk5NjdBXCIsdC5kYXJrc2VhZ3JlZW49XCIjOEZCQzhGXCIsdC5kYXJrc2xhdGVibHVlPVwiIzQ4M0Q4QlwiLHQuZGFya3NsYXRlZ3JheT1cIiMyRjRGNEZcIix0LmRhcmtzbGF0ZWdyZXk9XCIjMkY0RjRGXCIsdC5kYXJrdHVycXVvaXNlPVwiIzAwQ0VEMVwiLHQuZGFya3Zpb2xldD1cIiM5NDAwRDNcIix0LmRlZXBwaW5rPVwiI0ZGMTQ5M1wiLHQuZGVlcHNreWJsdWU9XCIjMDBCRkZGXCIsdC5kaW1ncmF5PVwiIzY5Njk2OVwiLHQuZGltZ3JleT1cIiM2OTY5NjlcIix0LmRvZGdlcmJsdWU9XCIjMUU5MEZGXCIsdC5maXJlYnJpY2s9XCIjQjIyMjIyXCIsdC5mbG9yYWx3aGl0ZT1cIiNGRkZBRjBcIix0LmZvcmVzdGdyZWVuPVwiIzIyOEIyMlwiLHQuZ2FpbnNib3JvPVwiI0RDRENEQ1wiLHQuZ2hvc3R3aGl0ZT1cIiNGOEY4RkZcIix0LmdvbGQ9XCIjRkZENzAwXCIsdC5nb2xkZW5yb2Q9XCIjREFBNTIwXCIsdC5ncmVlbnllbGxvdz1cIiNBREZGMkZcIix0LmdyZXk9XCIjODA4MDgwXCIsdC5ob25leWRldz1cIiNGMEZGRjBcIix0LmhvdHBpbms9XCIjRkY2OUI0XCIsdC5pbmRpYW5yZWQ9XCIjQ0Q1QzVDXCIsdC5pbmRpZ289XCIjNEIwMDgyXCIsdC5pdm9yeT1cIiNGRkZGRjBcIix0LmtoYWtpPVwiI0YwRTY4Q1wiLHQubGF2ZW5kZXI9XCIjRTZFNkZBXCIsdC5sYXZlbmRlcmJsdXNoPVwiI0ZGRjBGNVwiLHQubGF3bmdyZWVuPVwiIzdDRkMwMFwiLHQubGVtb25jaGlmZm9uPVwiI0ZGRkFDRFwiLHQubGlnaHRibHVlPVwiI0FERDhFNlwiLHQubGlnaHRjb3JhbD1cIiNGMDgwODBcIix0LmxpZ2h0Y3lhbj1cIiNFMEZGRkZcIix0LmxpZ2h0Z29sZGVucm9keWVsbG93PVwiI0ZBRkFEMlwiLHQubGlnaHRncmF5PVwiI0QzRDNEM1wiLHQubGlnaHRncmVlbj1cIiM5MEVFOTBcIix0LmxpZ2h0Z3JleT1cIiNEM0QzRDNcIix0LmxpZ2h0cGluaz1cIiNGRkI2QzFcIix0LmxpZ2h0c2FsbW9uPVwiI0ZGQTA3QVwiLHQubGlnaHRzZWFncmVlbj1cIiMyMEIyQUFcIix0LmxpZ2h0c2t5Ymx1ZT1cIiM4N0NFRkFcIix0LmxpZ2h0c2xhdGVncmF5PVwiIzc3ODg5OVwiLHQubGlnaHRzbGF0ZWdyZXk9XCIjNzc4ODk5XCIsdC5saWdodHN0ZWVsYmx1ZT1cIiNCMEM0REVcIix0LmxpZ2h0eWVsbG93PVwiI0ZGRkZFMFwiLHQubGltZWdyZWVuPVwiIzMyQ0QzMlwiLHQubGluZW49XCIjRkFGMEU2XCIsdC5tYWdlbnRhPVwiI0ZGMDBGRlwiLHQubWVkaXVtYXF1YW1hcmluZT1cIiM2NkNEQUFcIix0Lm1lZGl1bWJsdWU9XCIjMDAwMENEXCIsdC5tZWRpdW1vcmNoaWQ9XCIjQkE1NUQzXCIsdC5tZWRpdW1wdXJwbGU9XCIjOTM3MERCXCIsdC5tZWRpdW1zZWFncmVlbj1cIiMzQ0IzNzFcIix0Lm1lZGl1bXNsYXRlYmx1ZT1cIiM3QjY4RUVcIix0Lm1lZGl1bXNwcmluZ2dyZWVuPVwiIzAwRkE5QVwiLHQubWVkaXVtdHVycXVvaXNlPVwiIzQ4RDFDQ1wiLHQubWVkaXVtdmlvbGV0cmVkPVwiI0M3MTU4NVwiLHQubWlkbmlnaHRibHVlPVwiIzE5MTk3MFwiLHQubWludGNyZWFtPVwiI0Y1RkZGQVwiLHQubWlzdHlyb3NlPVwiI0ZGRTRFMVwiLHQubW9jY2FzaW49XCIjRkZFNEI1XCIsdC5uYXZham93aGl0ZT1cIiNGRkRFQURcIix0Lm9sZGxhY2U9XCIjRkRGNUU2XCIsdC5vbGl2ZWRyYWI9XCIjNkI4RTIzXCIsdC5vcmFuZ2VyZWQ9XCIjRkY0NTAwXCIsdC5vcmNoaWQ9XCIjREE3MEQ2XCIsdC5wYWxlZ29sZGVucm9kPVwiI0VFRThBQVwiLHQucGFsZWdyZWVuPVwiIzk4RkI5OFwiLHQucGFsZXR1cnF1b2lzZT1cIiNBRkVFRUVcIix0LnBhbGV2aW9sZXRyZWQ9XCIjREI3MDkzXCIsdC5wYXBheWF3aGlwPVwiI0ZGRUZENVwiLHQucGVhY2hwdWZmPVwiI0ZGREFCOVwiLHQucGVydT1cIiNDRDg1M0ZcIix0LnBpbms9XCIjRkZDMENCXCIsdC5wbHVtPVwiI0REQTBERFwiLHQucG93ZGVyYmx1ZT1cIiNCMEUwRTZcIix0LnJvc3licm93bj1cIiNCQzhGOEZcIix0LnJveWFsYmx1ZT1cIiM0MTY5RTFcIix0LnNhZGRsZWJyb3duPVwiIzhCNDUxM1wiLHQuc2FsbW9uPVwiI0ZBODA3MlwiLHQuc2FuZHlicm93bj1cIiNGNEE0NjBcIix0LnNlYWdyZWVuPVwiIzJFOEI1N1wiLHQuc2Vhc2hlbGw9XCIjRkZGNUVFXCIsdC5zaWVubmE9XCIjQTA1MjJEXCIsdC5za3libHVlPVwiIzg3Q0VFQlwiLHQuc2xhdGVibHVlPVwiIzZBNUFDRFwiLHQuc2xhdGVncmF5PVwiIzcwODA5MFwiLHQuc2xhdGVncmV5PVwiIzcwODA5MFwiLHQuc25vdz1cIiNGRkZBRkFcIix0LnNwcmluZ2dyZWVuPVwiIzAwRkY3RlwiLHQuc3RlZWxibHVlPVwiIzQ2ODJCNFwiLHQudGFuPVwiI0QyQjQ4Q1wiLHQudGhpc3RsZT1cIiNEOEJGRDhcIix0LnRvbWF0bz1cIiNGRjYzNDdcIix0LnR1cnF1b2lzZT1cIiM0MEUwRDBcIix0LnZpb2xldD1cIiNFRTgyRUVcIix0LndoZWF0PVwiI0Y1REVCM1wiLHQud2hpdGVzbW9rZT1cIiNGNUY1RjVcIix0LnllbGxvd2dyZWVuPVwiIzlBQ0QzMlwiLHQucmViZWNjYXB1cnBsZT1cIiM2NjMzOTlcIn0oaXx8KGk9e30pKTtjb25zdCBhPU9iamVjdC5rZXlzKGkpLHI9e0hFWDpbXCJSXCIsXCJHXCIsXCJCXCIsXCJBXCJdLFJHQjpbXCJSXCIsXCJHXCIsXCJCXCIsXCJBXCJdLEhTTDpbXCJIXCIsXCJTXCIsXCJMXCIsXCJBXCJdLENJRUxhYjpbXCJMXCIsXCJhXCIsXCJiXCIsXCJBXCJdLENNWUs6W1wiQ1wiLFwiTVwiLFwiWVwiLFwiS1wiLFwiQVwiXX0sbj17QkdSOnQuUkdCLEFCR1I6dC5SR0IsSExTOnQuSFNMLEFITFM6dC5IU0wsTEFCOnQuQ0lFTGFiLEFMQUI6dC5DSUVMYWIsQ0tNWTp0LkNNWUssQUNLTVk6dC5DTVlLfTt2YXIgYzshZnVuY3Rpb24odCl7dC5OVU1CRVI9XCJudW1iZXJcIix0LkJPT0xFQU49XCJib29sZWFuXCJ9KGN8fChjPXt9KSk7Y29uc3Qgbz17W3QuSEVYXTovXiMoPzooW2EtZlxcZF0pKFthLWZcXGRdKShbYS1mXFxkXSkoW2EtZlxcZF0pP3woW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KShbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pPykkL2ksW3QuUkdCXTovXnJnYmE/XFxzKlxcKFxccyooPzooKD86XFxkKlxcLik/XFxkKyU/KVxccyosXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKixcXHMqKCg/OlxcZCpcXC4pP1xcZCslPykoPzpcXHMqLFxccyooKD86XFxkKlxcLik/XFxkKykpP3woKD86XFxkKlxcLik/XFxkKyU/KVxccyooKD86XFxkKlxcLik/XFxkKyU/KVxccyooKD86XFxkKlxcLik/XFxkKyU/KSg/OlxccypcXC9cXHMqKCg/OlxcZCpcXC4pP1xcZCslPykpPylcXHMqXFwpJC8sW3QuSFNMXTovXmhzbGE/XFxzKlxcKFxccyooPzooLT8oPzpcXGQqXFwuKT9cXGQrKD86ZGVnfGdyYWR8cmFkfHR1cm4pPylcXHMqLFxccyooKD86XFxkKlxcLik/XFxkKyklXFxzKixcXHMqKCg/OlxcZCpcXC4pP1xcZCspJSg/OlxccyosXFxzKigoPzpcXGQqXFwuKT9cXGQrKSk/fCgtPyg/OlxcZCpcXC4pP1xcZCsoPzpkZWd8Z3JhZHxyYWR8dHVybik/KVxccyooKD86XFxkKlxcLik/XFxkKyklXFxzKigoPzpcXGQqXFwuKT9cXGQrKSUoPzpcXHMqXFwvXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pKT8pXFxzKlxcKSQvLFt0LkNJRUxhYl06L15sYWJcXHMqXFwoXFxzKig/OigoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKigtPyg/OlxcZCpcXC4pP1xcZCslPylcXHMqKC0/KD86XFxkKlxcLik/XFxkKyU/KSg/OlxccypcXC9cXHMqKCg/OlxcZCpcXC4pP1xcZCslPykpPylcXHMqXFwpJC8sW3QuQ01ZS106L14oPzpkZXZpY2UtY215a3xjbXlrKVxccypcXChcXHMqKD86KCg/OlxcZCpcXC4pP1xcZCslPylcXHMqLFxccyooKD86XFxkKlxcLik/XFxkKyU/KVxccyosXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKixcXHMqKCg/OlxcZCpcXC4pP1xcZCslPykoPzpcXHMqLFxccyooKD86XFxkKlxcLik/XFxkKykpP3woKD86XFxkKlxcLik/XFxkKyU/KVxccyooKD86XFxkKlxcLik/XFxkKyU/KVxccyooKD86XFxkKlxcLik/XFxkKyU/KVxccyooKD86XFxkKlxcLik/XFxkKyU/KSg/OlxccypcXC9cXHMqKCg/OlxcZCpcXC4pP1xcZCslPykpPylcXHMqXFwpJC99LEE9L14oLT8oPzpcXGQqXFwuKT9cXGQrKSgoPzpkZWd8Z3JhZHxyYWR8dHVybik/KSQvLGg9L14oLT9cXGQrKD86XFwuXFxkKyk/fC0/XFwuXFxkKyklJC8sdT0vXjB4KFthLWZcXGRdezEsMn0pJC9pLGQ9L1xceyhcXGQrKVxcfS9nLGw9LywoICt8XFxkKykvZyxFPS8gKy8sbT1cIlRoZSBwcm92aWRlZCBzdHJpbmcgY29sb3IgZG9lc24ndCBoYXZlIGEgY29ycmVjdCBmb3JtYXRcIixiPVwiVGhlIHByb3ZpZGVkIGNvbG9yIG9iamVjdCBkb2Vzbid0IGhhdmUgdGhlIHByb3BlciBrZXlzIG9yIGZvcm1hdFwiO3ZhciBDLEwsZzshZnVuY3Rpb24odCl7dC5OT05FPVwibm9uZVwiLHQuREVHUkVFUz1cImRlZ1wiLHQuR1JBRElBTlM9XCJncmFkXCIsdC5SQURJQU5TPVwicmFkXCIsdC5UVVJOUz1cInR1cm5cIn0oQ3x8KEM9e30pKSxmdW5jdGlvbih0KXt0Lk5PTkU9XCJub25lXCIsdC5QRVJDRU5UPVwicGVyY2VudFwifShMfHwoTD17fSkpLGZ1bmN0aW9uKHQpe3QuREVWSUNFX0NNWUs9XCJkZXZpY2UtY215a1wiLHQuQ01ZSz1cImNteWtcIn0oZ3x8KGc9e30pKTtjb25zdCBCPXtkZWNpbWFsczo2LGxlZ2FjeUNTUzohMSxzcGFjZXNBZnRlckNvbW1hczohMSxhbmdsZXNVbml0OkMuTk9ORSxyZ2JVbml0OkwuTk9ORSxsYWJVbml0OkwuTk9ORSxjbXlrVW5pdDpMLlBFUkNFTlQsYWxwaGFVbml0OkwuTk9ORSxjbXlrRnVuY3Rpb246Zy5ERVZJQ0VfQ01ZS30scD0odCxlKT0+T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSksSD10PT4rYCR7dH1gLnJlcGxhY2UoaCxcIiQxXCIpLEY9dD0+aC50ZXN0KGAke3R9YCk/SCh0KTpNYXRoLm1pbigrdCwxMDApLFI9dD0+KDE9PT10Lmxlbmd0aCYmKHQrPXQpLHBhcnNlSW50KHQsMTYpKSxTPXQ9Pntjb25zdCBlPUQodCwwKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTtyZXR1cm4gMT09PWUubGVuZ3RoP2AweDAke2V9YDpgMHgke2V9YH0sST0odCxlPSExKT0+IWUmJmgudGVzdCh0KT9NYXRoLm1pbigyNTUqSCh0KS8xMDAsMjU1KTp1LnRlc3QodCk/KDM9PT10Lmxlbmd0aCYmKHQrPXQuc2xpY2UoLTEpKSxlP0QodCkvMjU1OkQodCkpOk1hdGgubWluKCt0LGU/MToyNTUpLEc9dD0+aC50ZXN0KHQpP2YoMTI1KkgodCkvMTAwLC0xMjUsMTI1KTpmKCt0LC0xMjUsMTI1KSxNPXQ9Pk1hdGgubWluKGgudGVzdCh0KT9IKHQpLzEwMDordCwxKSx5PXQ9PlsuLi50XS5zb3J0KCkuam9pbihcIlwiKS50b1VwcGVyQ2FzZSgpLEQ9KHQsZT02KT0+e2NvbnN0IHM9TWF0aC5wb3coMTAsZSk7cmV0dXJuIE1hdGgucm91bmQoK3Qqcykvc30sZj0odCxlLHMpPT5NYXRoLm1heChlLE1hdGgubWluKHQscykpLE89dD0+e2lmKFwic3RyaW5nXCI9PXR5cGVvZiB0KXtjb25zdCBlPXQubWF0Y2goQSkscz0rZVsxXTtzd2l0Y2goZVsyXSl7Y2FzZSBDLlJBRElBTlM6dD1EKDE4MCpzL01hdGguUEkpO2JyZWFrO2Nhc2UgQy5UVVJOUzp0PUQoMzYwKnMpO2JyZWFrO2Nhc2UgQy5HUkFESUFOUzp0PUQoLjkqcyk7YnJlYWs7Y2FzZSBDLkRFR1JFRVM6ZGVmYXVsdDp0PXN9fXJldHVybih0PjM2MHx8dDwwKSYmKHQtPTM2MCpNYXRoLmZsb29yKHQvMzYwKSksdH0sWT0odCxlKT0+e2xldCBzO3N3aXRjaChlKXtjYXNlIEMuUkFESUFOUzpzPUQoKHQ9PnQqTWF0aC5QSS8xODApKHQpKTticmVhaztjYXNlIEMuVFVSTlM6cz1EKHQvMzYwKTticmVhaztjYXNlIEMuR1JBRElBTlM6cz1EKDEwLzkqdCk7YnJlYWs7Y2FzZSBDLkRFR1JFRVM6Y2FzZSBDLk5PTkU6ZGVmYXVsdDpzPXR9cmV0dXJuIHN9LGs9KHQsLi4uZSk9Pntjb25zdCBzPVtdLGk9W10sYT1bXSxyPVtdLG49W10sdT1bXSxkPU9iamVjdC52YWx1ZXMoQyksbT1PYmplY3QudmFsdWVzKEwpLGI9T2JqZWN0LnZhbHVlcyhnKSxwPXtsZWdhY3lDU1M6MCxzcGFjZXNBZnRlckNvbW1hczowLGNteWtGdW5jdGlvbjowfTtmb3IoY29uc3QgdCBvZiBlKWlmKFwic3RyaW5nXCI9PXR5cGVvZiB0KXtpZihzLnB1c2godCksdC5pbmNsdWRlcyhcIixcIikpe3AubGVnYWN5Q1NTKys7Y29uc3QgZT10Lm1hdGNoKGwpOzE9PT1uZXcgU2V0KGUpLnNpemUmJkUudGVzdChlWzBdLnNsaWNlKDEpKSYmcC5zcGFjZXNBZnRlckNvbW1hcysrfWlmKHQubWF0Y2goby5IU0wpKXtjb25zdCBlPXQubWF0Y2goby5IU0wpLHM9ZVsxXXx8ZVs1XSxhPWVbOF0scj1zLm1hdGNoKEEpWzJdO2kucHVzaChcIlwiPT09cj9DLk5PTkU6ciksdS5wdXNoKGgudGVzdChhKSk7Y29udGludWV9aWYoby5SR0IudGVzdCh0KSl7Y29uc3QgZT10Lm1hdGNoKG8uUkdCKSxzPWVbMV18fGVbNV0saT1lWzJdfHxlWzZdLHI9ZVszXXx8ZVs3XSxuPWVbOF07YS5wdXNoKGgudGVzdChzKSYmaC50ZXN0KGkpJiZoLnRlc3QocikpLHUucHVzaChoLnRlc3QobikpO2NvbnRpbnVlfWlmKG8uQ0lFTGFiLnRlc3QodCkpe2NvbnN0IGU9dC5tYXRjaChvLkNJRUxhYikscz1lWzFdLGk9ZVsyXSxhPWVbM10sbj1lWzRdO3IucHVzaChoLnRlc3QocykmJmgudGVzdChpKSYmaC50ZXN0KGEpKSx1LnB1c2goaC50ZXN0KG4pKTtjb250aW51ZX1pZih0Lm1hdGNoKG8uQ01ZSykpe2NvbnN0IGU9dC5tYXRjaChvLkNNWUspLHM9ZVsxXXx8ZVs2XSxpPWVbMl18fGVbN10sYT1lWzNdfHxlWzhdLHI9ZVs0XXx8ZVs5XSxjPWVbMTBdO24ucHVzaChoLnRlc3QocykmJmgudGVzdChpKSYmaC50ZXN0KGEpJiZoLnRlc3QocikpLHQuc3RhcnRzV2l0aChcImNteWtcIikmJnAuY215a0Z1bmN0aW9uKyssdS5wdXNoKGgudGVzdChjKSl9fXJldHVybntkZWNpbWFsczp0eXBlb2YgdC5kZWNpbWFscz09PWMuTlVNQkVSP3QuZGVjaW1hbHM6Qi5kZWNpbWFscyxsZWdhY3lDU1M6dHlwZW9mIHQubGVnYWN5Q1NTPT09Yy5CT09MRUFOP3QubGVnYWN5Q1NTOkJvb2xlYW4ocy5sZW5ndGgmJnAubGVnYWN5Q1NTPT09cy5sZW5ndGgpfHxCLmxlZ2FjeUNTUyxzcGFjZXNBZnRlckNvbW1hczp0eXBlb2YgdC5zcGFjZXNBZnRlckNvbW1hcz09PWMuQk9PTEVBTj90LnNwYWNlc0FmdGVyQ29tbWFzOkJvb2xlYW4ocy5sZW5ndGgmJnAuc3BhY2VzQWZ0ZXJDb21tYXM9PT1zLmxlbmd0aCl8fEIuc3BhY2VzQWZ0ZXJDb21tYXMsYW5nbGVzVW5pdDp0LmFuZ2xlc1VuaXQmJmQuaW5jbHVkZXModC5hbmdsZXNVbml0KT90LmFuZ2xlc1VuaXQ6MT09PW5ldyBTZXQoaSkuc2l6ZT9pWzBdOkIuYW5nbGVzVW5pdCxyZ2JVbml0OnQucmdiVW5pdCYmbS5pbmNsdWRlcyh0LnJnYlVuaXQpP3QucmdiVW5pdDoxPT09bmV3IFNldChhKS5zaXplJiZhWzBdP0wuUEVSQ0VOVDpCLnJnYlVuaXQsbGFiVW5pdDp0LmxhYlVuaXQmJm0uaW5jbHVkZXModC5sYWJVbml0KT90LmxhYlVuaXQ6MT09PW5ldyBTZXQocikuc2l6ZSYmclswXT9MLlBFUkNFTlQ6Qi5sYWJVbml0LGNteWtVbml0OnQuY215a1VuaXQmJm0uaW5jbHVkZXModC5jbXlrVW5pdCk/dC5jbXlrVW5pdDoxIT09bmV3IFNldChuKS5zaXplfHxuWzBdP0IuY215a1VuaXQ6TC5OT05FLGFscGhhVW5pdDp0LmFscGhhVW5pdCYmbS5pbmNsdWRlcyh0LmFscGhhVW5pdCk/dC5hbHBoYVVuaXQ6MT09PW5ldyBTZXQodSkuc2l6ZSYmdVswXT9MLlBFUkNFTlQ6Qi5hbHBoYVVuaXQsY215a0Z1bmN0aW9uOnQuY215a0Z1bmN0aW9uJiZiLmluY2x1ZGVzKHQuY215a0Z1bmN0aW9uKT90LmNteWtGdW5jdGlvbjpuLmxlbmd0aCYmbi5sZW5ndGg9PT1wLmNteWtGdW5jdGlvbj9nLkNNWUs6Qi5jbXlrRnVuY3Rpb259fSxLPXQ9PmAke3R9YGluIHMsWD1bWy40MzYwNzQ3LC4zODUwNjQ5LC4xNDMwODA0XSxbLjIyMjUwNDUsLjcxNjg3ODYsLjA2MDYxNjldLFsuMDEzOTMyMiwuMDk3MTA0NSwuNzE0MTczM11dLFQ9W1szLjEzMzg1NjEsLTEuNjE2ODY2NywtLjQ5MDYxNDZdLFstLjk3ODc2ODQsMS45MTYxNDE1LC4wMzM0NTRdLFsuMDcxOTQ1MywtLjIyODk5MTQsMS40MDUyNDI3XV0sTj1YLm1hcCgodD0+dC5yZWR1Y2UoKCh0LGUpPT50K2UpLDApKSksJD0odCxlLHMpPT4oczwwJiYocys9Nikscz49NiYmKHMtPTYpLEQoczwxPzI1NSooKGUtdCkqcyt0KTpzPDM/MjU1KmU6czw0PzI1NSooKGUtdCkqKDQtcykrdCk6MjU1KnQpKSxqPXQ9PnQ8PS4wNDA0NT90LzEyLjkyOigodCsuMDU1KS8xLjA1NSkqKjIuNCxVPXQ9PnQ8PS4wMDMxMzA4PzEyLjkyKnQ6MS4wNTUqdCoqKDEvMi40KS0uMDU1LHc9KHQsZSxzLGkpPT57Y29uc3QgYT1bMCwwLDBdLHI9W3QsZSxzXTtyZXR1cm4gaS5mb3JFYWNoKCgodCxlKT0+e3QuZm9yRWFjaCgoKHQscyk9PnthW2VdKz10KnJbc119KSl9KSksYX0seD0odCxlLHMpPT57ZS89MTAwO2NvbnN0IGk9KHMvPTEwMCk8PS41P3MqKGUrMSk6cytlLXMqZSxhPTIqcy1pO3JldHVybntSOiQoYSxpLCh0Lz02MCkrMiksRzokKGEsaSx0KSxCOiQoYSxpLHQtMil9fSx2PSh0LGUscyxpPTEpPT57dC89MjU1LGUvPTI1NSxzLz0yNTUsaT1NYXRoLm1pbihpLDEpO2NvbnN0IGE9TWF0aC5tYXgodCxlLHMpLHI9TWF0aC5taW4odCxlLHMpLG49YS1yO2xldCBjPTAsbz0wO2NvbnN0IEE9KGErcikvMjtpZigwIT09bil7c3dpdGNoKGEpe2Nhc2UgdDpjPShlLXMpL24lNjticmVhaztjYXNlIGU6Yz0ocy10KS9uKzI7YnJlYWs7Y2FzZSBzOmM9KHQtZSkvbis0fWM9RCg2MCpjKSxjPDAmJihjKz0zNjApLG89bi8oMS1NYXRoLmFicygyKkEtMSkpfXJldHVybntIOmMsUzpEKDEwMCpvKSxMOkQoMTAwKkEpLEE6aX19LFY9KHQsZSxzKT0+e2NvbnN0IGk9W3QvMjU1LGUvMjU1LHMvMjU1XS5tYXAoaiksYT13KGlbMF0saVsxXSxpWzJdLFgpLHI9KCh0LGUscyk9Pntjb25zdCBpPXQ9PnQ+KDYvMjkpKiozP01hdGguY2JydCh0KTp0LygzKig2LzI5KSoqMikrNC8yOSxhPWkodC9OWzBdKSxyPWkoZS9OWzFdKTtyZXR1cm5bMTE2KnItMTYsNTAwKihhLXIpLDIwMCooci1pKHMvTlsyXSkpXX0pKGFbMF0sYVsxXSxhWzJdKTtyZXR1cm57TDpyWzBdLGE6clsxXSxiOnJbMl19fSxQPSh0LGUscyk9Pntjb25zdCBpPSgodCxlLHMpPT57Y29uc3QgaT10PT50PjYvMjk/dCoqMzozKig2LzI5KSoqMioodC00LzI5KSxhPSh0KzE2KS8xMTYscj1lLzUwMCxuPXMvMjAwO3JldHVybltOWzBdKmkoYStyKSxOWzFdKmkoYSksTlsyXSppKGEtbildfSkodCxlLHMpLGE9dyhpWzBdLGlbMV0saVsyXSxUKS5tYXAoVSk7cmV0dXJue1I6ZigyNTUqYVswXSwwLDI1NSksRzpmKDI1NSphWzFdLDAsMjU1KSxCOmYoMjU1KmFbMl0sMCwyNTUpfX0scT0odCxlLHMsaSk9Pih7UjpEKDI1NSooMS10KSooaT0xLWkpKSxHOkQoMjU1KigxLWUpKmkpLEI6RCgyNTUqKDEtcykqaSl9KSxfPSh0LGUscyk9Pnt0Lz0yNTUsZS89MjU1LHMvPTI1NTtjb25zdCBpPTEtTWF0aC5tYXgodCxlLHMpLGE9MS1pLHI9YSYmKGEtZSkvYSxuPWEmJihhLXMpL2E7cmV0dXJue0M6RCgxMDAqKGEmJihhLXQpL2EpKSxNOkQoMTAwKnIpLFk6RCgxMDAqbiksSzpEKDEwMCppKX19LHo9KHQsZSk9PntpZih0PDAmJih0Kz0zNjApLHQ+MzYwJiYodC09MzYwKSwzNjA9PT10fHwwPT09dClyZXR1cm4gdDtjb25zdCBzPVtbMCwxMjBdLFsxMjAsMTgwXSxbMTgwLDI0MF0sWzI0MCwzNjBdXSxpPVtbMCw2MF0sWzYwLDEyMF0sWzEyMCwyNDBdLFsyNDAsMzYwXV0sYT1lP2k6cztsZXQgcj0wLG49MCxjPTAsbz0wO3JldHVybihlP3M6aSkuZmluZCgoKGUscyk9PnQ+PWVbMF0mJnQ8ZVsxXSYmKHI9ZVswXSxuPWVbMV0sYz1hW3NdWzBdLG89YVtzXVsxXSwhMCkpKSxjKyhvLWMpLyhuLXIpKih0LXIpfSxRPXQ9PnQ/XCIsIFwiOlwiLFwiLFc9KHQsZSk9Pntjb25zdCBzPXkoT2JqZWN0LmtleXModCkpO3JldHVybiByW25bc11dLnJlZHVjZSgoKHMsaSxhKT0+e2NvbnN0IHI9dFtpXTtyZXR1cm4gdm9pZCAwIT09ciYmcy5wdXNoKGUocixhKSksc30pLFtdKX0sSj0odCxlKT0+dC5yZXBsYWNlKGQsKCh0LHMpPT5gJHtlWytzLTFdfWApKSxaPSh0LGUscz0hMSk9Pntjb25zdHthbHBoYVVuaXQ6aSxsZWdhY3lDU1M6YSxkZWNpbWFsczpyfT1lO3JldHVybiBpIT09TC5QRVJDRU5UfHxhJiYhcz9EKHQscik6YCR7RCgxMDAqdCxyKX0lYH0sdHQ9e1t0LkhFWF06dD0+e2NvbnN0IGU9Vyh0LCh0PT4odD0+e2xldCBlPUQodCwwKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTtyZXR1cm4gMT09PWUubGVuZ3RoJiYoZT1gMCR7ZX1gKSxlfSkoRCh0KSkpKSxzPTQ9PT1lLmxlbmd0aD9cIiN7MX17Mn17M317NH1cIjpcIiN7MX17Mn17M31cIjtyZXR1cm4gSihzLGUpfSxbdC5SR0JdOih0LGUpPT57Y29uc3R7ZGVjaW1hbHM6cyxsZWdhY3lDU1M6aSxzcGFjZXNBZnRlckNvbW1hczphLHJnYlVuaXQ6cn09ZSxuPVEoYSksYz1XKHQsKCh0LGkpPT5yPT09TC5QRVJDRU5UJiZpPDM/YCR7KCh0LGUpPT5EKHQvMjU1KjEwMCxlKSkodCxzKX0lYDozPT09aT9aKHQsZSk6RCh0LHMpKSksbz1pPzQ9PT1jLmxlbmd0aD9gcmdiYSh7MX0ke259ezJ9JHtufXszfSR7bn17NH0pYDpgcmdiKHsxfSR7bn17Mn0ke259ezN9KWA6ND09PWMubGVuZ3RoP1wicmdiKHsxfSB7Mn0gezN9IC8gezR9KVwiOlwicmdiKHsxfSB7Mn0gezN9KVwiO3JldHVybiBKKG8sYyl9LFt0LkhTTF06KHQsZSk9Pntjb25zdHtkZWNpbWFsczpzLGxlZ2FjeUNTUzppLHNwYWNlc0FmdGVyQ29tbWFzOmEsYW5nbGVzVW5pdDpyfT1lLG49UShhKSxjPVcodCwoKHQsaSk9PntpZigwPT09aSYmciE9PUMuTk9ORSl7cmV0dXJuYCR7RChZKHQscikscyl9JHtyfWB9cmV0dXJuIDM9PT1pP1oodCxlKTpEKHQscyl9KSksbz1pPzQ9PT1jLmxlbmd0aD9gaHNsYSh7MX0ke259ezJ9JSR7bn17M30lJHtufXs0fSlgOmBoc2woezF9JHtufXsyfSUke259ezN9JSlgOjQ9PT1jLmxlbmd0aD9cImhzbCh7MX0gezJ9JSB7M30lIC8gezR9KVwiOlwiaHNsKHsxfSB7Mn0lIHszfSUpXCI7cmV0dXJuIEoobyxjKX0sW3QuQ0lFTGFiXToodCxlKT0+e2NvbnN0e2RlY2ltYWxzOnMsbGFiVW5pdDppfT1lLGE9Vyh0LCgodCxhKT0+e2lmKDA9PT1hKXtjb25zdCBlPUQoRih0KSxzKTtyZXR1cm4gaT09PUwuUEVSQ0VOVD9gJHtlfSVgOmAke2V9YH1yZXR1cm4gYTwzP2k9PT1MLlBFUkNFTlQ/YCR7KCh0LGUpPT5EKHQvMTI1KjEwMCxlKSkodCxzKX0lYDpEKHQscyk6Wih0LGUsITApfSkpLHI9ND09PWEubGVuZ3RoP1wibGFiKHsxfSB7Mn0gezN9IC8gezR9KVwiOlwibGFiKHsxfSB7Mn0gezN9KVwiO3JldHVybiBKKHIsYSl9LFt0LkNNWUtdOih0LGUpPT57Y29uc3R7ZGVjaW1hbHM6cyxsZWdhY3lDU1M6aSxzcGFjZXNBZnRlckNvbW1hczphLGNteWtVbml0OnIsY215a0Z1bmN0aW9uOm59PWUsYz1RKGEpLG89Vyh0LCgodCxpKT0+cj09PUwuUEVSQ0VOVCYmaTw0P2Ake0QodCxzKX0lYDo0PT09aT9aKHQsZSk6RCh0LzEwMCxzKSkpLEE9aT81PT09by5sZW5ndGg/YCR7bn0oezF9JHtjfXsyfSR7Y317M30ke2N9ezR9JHtjfXs1fSlgOmAke259KHsxfSR7Y317Mn0ke2N9ezN9JHtjfXs0fSlgOjU9PT1vLmxlbmd0aD9gJHtufSh7MX0gezJ9IHszfSB7NH0gLyB7NX0pYDpgJHtufSh7MX0gezJ9IHszfSB7NH0pYDtyZXR1cm4gSihBLG8pfX0sZXQ9dD0+KFwic3RyaW5nXCI9PXR5cGVvZiB0JiYodD1oLnRlc3QodCk/SCh0KS8xMDA6K3QpLGlzTmFOKCt0KXx8dD4xPzE6RCh0KSksc3Q9KHQsZSxpKT0+ZS5yZWR1Y2UoKChlLGEpPT5bLi4uZSx7Li4udCxIOmk9PT1zLkFERElUSVZFP08odC5IK2EpOk8oeih6KHQuSCwhMSkrYSwhMCkpfV0pLFt7Li4udH1dKSxpdD0odCxlKT0+c3QodCxbMzAsLTMwXSxlKSxhdD0odCxlKT0+c3QodCxbMTgwXSxlKSxydD0odCxlKT0+c3QodCxbMTUwLC0xNTBdLGUpLG50PSh0LGUpPT5zdCh0LFsxMjAsLTEyMF0sZSksY3Q9KHQsZSk9PnN0KHQsWzYwLC0xMjAsMTgwXSxlKSxvdD0odCxlKT0+c3QodCxbOTAsLTkwLDE4MF0sZSksQXQ9ZT0+XCJzdHJpbmdcIj09dHlwZW9mIGU/KGU9PntsZXQgcztpZihPYmplY3Qua2V5cyh0KS5zb21lKCh0PT57aWYob1t0XS50ZXN0KGUpKXJldHVybiBzPXQsITB9KSksIXMmJn5hLmluZGV4T2YoZSkmJihzPXQuSEVYKSwhcyl0aHJvdyBuZXcgRXJyb3IobSk7cmV0dXJuIHN9KShlKTooZT0+e2xldCBzLGk9ITE7Y29uc3QgYT15KE9iamVjdC5rZXlzKGUpKTtpZihuW2FdJiYocz1uW2FdKSxzJiZzPT09dC5SR0Ipe2NvbnN0IGE9T2JqZWN0LmVudHJpZXMoZSkuc29tZSgodD0+IXUudGVzdChgJHt0WzFdfWApKSkscj1PYmplY3QuZW50cmllcyhlKS5zb21lKCh0PT4hKGgudGVzdChgJHt0WzFdfWApfHwhdS50ZXN0KGAke3RbMV19YCkmJiFpc05hTigrdFsxXSkmJit0WzFdPD0yNTUpKSk7YSYmciYmKGk9ITApLGF8fChzPXQuSEVYKX1pZighc3x8aSl0aHJvdyBuZXcgRXJyb3IoYik7cmV0dXJuIHN9KShlKSxodD17W3QuSEVYXSh0KXtjb25zdCBlPSh+YS5pbmRleE9mKHQpP2lbdF06dCkubWF0Y2goby5IRVgpLHM9e1I6UihlWzFdfHxlWzVdKSxHOlIoZVsyXXx8ZVs2XSksQjpSKGVbM118fGVbN10pfSxyPWVbNF18fGVbOF07cmV0dXJuIHZvaWQgMCE9PXImJihzLkE9UihyKS8yNTUpLHN9LFt0LlJHQl0odCl7Y29uc3QgZT10Lm1hdGNoKG8uUkdCKSxzPUkoZVsxXXx8ZVs1XSksaT1JKGVbMl18fGVbNl0pLGE9SShlWzNdfHxlWzddKSxyPWVbNF18fGVbOF0sbj17UjpNYXRoLm1pbihzLDI1NSksRzpNYXRoLm1pbihpLDI1NSksQjpNYXRoLm1pbihhLDI1NSl9O3JldHVybiB2b2lkIDAhPT1yJiYobi5BPWV0KHIpKSxufSxbdC5IU0xdKHQpe2NvbnN0IGU9dC5tYXRjaChvLkhTTCkscz1PKGVbMV18fGVbNV0pLGk9RihlWzJdfHxlWzZdKSxhPUYoZVszXXx8ZVs3XSkscj1lWzRdfHxlWzhdLG49eChzLGksYSk7cmV0dXJuIHZvaWQgMCE9PXImJihuLkE9ZXQocikpLG59LFt0LkNJRUxhYl0odCl7Y29uc3QgZT10Lm1hdGNoKG8uQ0lFTGFiKSxzPUYoZVsxXSksaT1HKGVbMl0pLGE9RyhlWzNdKSxyPWVbNF0sbj1QKHMsaSxhKTtyZXR1cm4gdm9pZCAwIT09ciYmKG4uQT1ldChyKSksbn0sW3QuQ01ZS10odCl7Y29uc3QgZT10Lm1hdGNoKG8uQ01ZSykscz1NKGVbMV18fGVbNl0pLGk9TShlWzJdfHxlWzddKSxhPU0oZVszXXx8ZVs4XSkscj1NKGVbNF18fGVbOV0pLG49ZVs1XXx8ZVsxMF0sYz1xKHMsaSxhLHIpO3JldHVybiB2b2lkIDAhPT1uJiYoYy5BPWV0KG4pKSxjfX0sdXQ9e1t0LkhFWF0odCl7Y29uc3QgZT17UjpJKGAke3QuUn1gKSxHOkkoYCR7dC5HfWApLEI6SShgJHt0LkJ9YCl9O3JldHVybiBwKHQsXCJBXCIpJiYoZS5BPU1hdGgubWluKEkoYCR7dC5BfWAsITApLDEpKSxlfSxbdC5SR0JdKHQpe3JldHVybiB0aGlzLkhFWCh0KX0sW3QuSFNMXSh0KXtjb25zdCBlPUYoYCR7dC5TfWApLHM9RihgJHt0Lkx9YCksaT14KE8odC5IKSxlLHMpO3JldHVybiBwKHQsXCJBXCIpJiYoaS5BPWV0KHQuQSkpLGl9LFt0LkNJRUxhYl0odCl7Y29uc3QgZT1GKGAke3QuTH1gKSxzPUcoYCR7dC5hfWApLGk9RyhgJHt0LmJ9YCksYT1QKGUscyxpKTtyZXR1cm4gcCh0LFwiQVwiKSYmKGEuQT1ldCh0LkEpKSxhfSxbdC5DTVlLXSh0KXtjb25zdCBlPU0oYCR7dC5DfWApLHM9TShgJHt0Lk19YCksaT1NKGAke3QuWX1gKSxhPU0oYCR7dC5LfWApLHI9cShlLHMsaSxhKTtyZXR1cm4gcCh0LFwiQVwiKSYmKHIuQT1ldCh0LkEpKSxyfX0sZHQ9KHQsZT1BdCh0KSk9Plwic3RyaW5nXCI9PXR5cGVvZiB0P2h0W2VdKHQpOnV0W2VdKHQpLGx0PXtbdC5IRVhdOnQ9Pih7UjpTKHQuUiksRzpTKHQuRyksQjpTKHQuQil9KSxIRVhBKHQpe2NvbnN0IGU9bHQuSEVYKHQpO3JldHVybiBlLkE9cCh0LFwiQVwiKT9TKDI1NSp0LkEpOlwiMHhGRlwiLGV9LFt0LlJHQl0odCxlKXtjb25zdCBzPUN0KHQsZSk7cmV0dXJuIHAocyxcIkFcIikmJmRlbGV0ZSBzLkEsc30sUkdCQSh0LGUpe2NvbnN0IHM9bHQuUkdCKHQsZSk7cmV0dXJuIHMuQT1wKHQsXCJBXCIpP0QodC5BKToxLHN9LFt0LkhTTF0odCxlKXtjb25zdCBzPXYodC5SLHQuRyx0LkIpO3JldHVybiBkZWxldGUgcy5BLEx0KHMsZSl9LEhTTEEodCxlKXtjb25zdCBzPWx0LkhTTCh0LGUpO3JldHVybiBzLkE9cCh0LFwiQVwiKT9EKHQuQSxlKToxLHN9LFt0LkNJRUxhYl0odCxlKXtjb25zdCBzPVYodC5SLHQuRyx0LkIpO3JldHVybiBndChzLGUpfSxDSUVMYWJBKHQsZSl7Y29uc3Qgcz1sdC5DSUVMYWIodCxlKTtyZXR1cm4gcy5BPXAodCxcIkFcIik/RCh0LkEsZSk6MSxzfSxbdC5DTVlLXToodCxlKT0+QnQoXyh0LlIsdC5HLHQuQiksZSksQ01ZS0EodCxlKXtjb25zdCBzPWx0LkNNWUsodCxlKTtyZXR1cm4gcy5BPXAodCxcIkFcIik/RCh0LkEsZSk6MSxzfX0sRXQ9KGUscyxpLGEpPT57Y29uc3Qgcj1BdChlKSxuPVwic3RyaW5nXCI9PXR5cGVvZiBlLGM9ZHQoZSxyKSxvPVwic3RyaW5nXCI9PXR5cGVvZiBlJiZwKGMsXCJBXCIpfHxcInN0cmluZ1wiIT10eXBlb2YgZSYmcChlLFwiQVwiKSxBPXYoYy5SLGMuRyxjLkIsYy5BKTtvfHxkZWxldGUgQS5BO2NvbnN0IGg9aT9BLkwvKHMrMSk6KDEwMC1BLkwpLyhzKzEpLHU9QXJyYXkocykuZmlsbChudWxsKS5tYXAoKCh0LGUpPT4oey4uLkEsTDpBLkwraCooZSsxKSooMS0yKitpKX0pKSk7c3dpdGNoKHIpe2Nhc2UgdC5IRVg6ZGVmYXVsdDpyZXR1cm4gdS5tYXAoKHQ9Pntjb25zdCBlPXgodC5ILHQuUyx0LkwpO3JldHVybiBvJiYoZS5BPXQuQSksbj9vP3R0LkhFWCh7Li4uZSxBOkQoMjU1KmUuQSl9KTp0dC5IRVgoZSk6bz9sdC5IRVhBKGUpOmx0LkhFWChlKX0pKTtjYXNlIHQuUkdCOnJldHVybiB1Lm1hcCgodD0+e2NvbnN0IGU9eCh0LkgsdC5TLHQuTCk7cmV0dXJuIG8mJihlLkE9dC5BKSxuP3R0LlJHQihlLGEpOm8/bHQuUkdCQShlLGEuZGVjaW1hbHMpOmx0LlJHQihlLGEuZGVjaW1hbHMpfSkpO2Nhc2UgdC5IU0w6cmV0dXJuIHUubWFwKCh0PT5uP3R0LkhTTCh0LGEpOm8/bHQuSFNMQSh7Li4ueCh0LkgsdC5TLHQuTCksQTp0LkF9LGEuZGVjaW1hbHMpOmx0LkhTTCh4KHQuSCx0LlMsdC5MKSxhLmRlY2ltYWxzKSkpO2Nhc2UgdC5DSUVMYWI6cmV0dXJuIHUubWFwKCh0PT57Y29uc3QgZT14KHQuSCx0LlMsdC5MKTtyZXR1cm4gbj90dC5DSUVMYWIobz9sdC5DSUVMYWJBKGUsYS5kZWNpbWFscyk6bHQuQ0lFTGFiKGUsYS5kZWNpbWFscyksYSk6bz9sdC5DSUVMYWJBKHsuLi5lLEE6dC5BfSxhLmRlY2ltYWxzKTpsdC5DSUVMYWIoZSxhLmRlY2ltYWxzKX0pKX19LG10PXtidWlsZEhhcm1vbnkoZSxzLGksYSl7Y29uc3Qgcj1BdChlKSxuPWR0KGUsciksYz12KG4uUixuLkcsbi5CLG4uQSksbz1cInN0cmluZ1wiPT10eXBlb2YgZSYmcChuLFwiQVwiKXx8XCJzdHJpbmdcIiE9dHlwZW9mIGUmJnAoZSxcIkFcIiksQT1cInN0cmluZ1wiPT10eXBlb2YgZTtzd2l0Y2gocil7Y2FzZSB0LkhFWDpkZWZhdWx0OnJldHVybiBvP3RoaXMuSEVYQShMdChjLDApLHMsaSxBKTp0aGlzLkhFWChMdChjLDApLHMsaSxBKTtjYXNlIHQuSFNMOnJldHVybiBvP3RoaXMuSFNMQShjLHMsaSxBLGEpOnRoaXMuSFNMKGMscyxpLEEsYSk7Y2FzZSB0LlJHQjpyZXR1cm4gbz90aGlzLlJHQkEoYyxzLGksQSxhKTp0aGlzLlJHQihjLHMsaSxBLGEpO2Nhc2UgdC5DSUVMYWI6cmV0dXJuIG8/dGhpcy5DSUVMYWJBKGMscyxpLEEsYSk6dGhpcy5DSUVMYWIoYyxzLGksQSxhKX19LFt0LkhFWF06KHQsZSxzLGkpPT5lKHQscykubWFwKCh0PT5pP3R0LkhFWCh4KHQuSCx0LlMsdC5MKSk6bHQuSEVYKHgodC5ILHQuUyx0LkwpKSkpLEhFWEE6KHQsZSxzLGkpPT5lKHQscykubWFwKCh0PT5pP3R0LkhFWCh7Li4ueCh0LkgsdC5TLHQuTCksQToyNTUqZXQodC5BKX0pOmx0LkhFWEEoey4uLngodC5ILHQuUyx0LkwpLEE6ZXQodC5BKX0pKSksW3QuUkdCXToodCxlLHMsaSxhKT0+ZSh0LHMpLm1hcCgodD0+aT90dC5SR0IoeCh0LkgsdC5TLHQuTCksYSk6bHQuUkdCKHgodC5ILHQuUyx0LkwpLGEuZGVjaW1hbHMpKSksUkdCQToodCxlLHMsaSxhKT0+ZSh0LHMpLm1hcCgodD0+aT90dC5SR0Ioey4uLngodC5ILHQuUyx0LkwpLEE6ZXQodC5BKX0sYSk6bHQuUkdCQSh7Li4ueCh0LkgsdC5TLHQuTCksQTpldCh0LkEpfSxhLmRlY2ltYWxzKSkpLFt0LkhTTF06KHQsZSxzLGksYSk9PmUodCxzKS5tYXAoKHQ9Pmk/dHQuSFNMKHtIOnQuSCxTOnQuUyxMOnQuTH0sYSk6bHQuSFNMKHgodC5ILHQuUyx0LkwpLGEuZGVjaW1hbHMpKSksSFNMQToodCxlLHMsaSxhKT0+ZSh0LHMpLm1hcCgodD0+aT90dC5IU0woey4uLnQsQTpldCh0LkEpfSxhKTpsdC5IU0xBKHsuLi54KHQuSCx0LlMsdC5MKSxBOmV0KHQuQSl9LGEuZGVjaW1hbHMpKSksW3QuQ0lFTGFiXToodCxlLHMsaSxhKT0+ZSh0LHMpLm1hcCgodD0+e2NvbnN0IGU9eCh0LkgsdC5TLHQuTCk7cmV0dXJuIGk/dHQuQ0lFTGFiKFYoZS5SLGUuRyxlLkIpLGEpOmx0LkNJRUxhYihlLGEuZGVjaW1hbHMpfSkpLENJRUxhYkE6KHQsZSxzLGksYSk9PmUodCxzKS5tYXAoKHQ9Pntjb25zdCBlPXgodC5ILHQuUyx0LkwpO3JldHVybiBpP3R0LkNJRUxhYih7Li4uVihlLlIsZS5HLGUuQiksQTpldCh0LkEpfSxhKTpsdC5DSUVMYWJBKHsuLi5lLEE6ZXQodC5BKX0sYS5kZWNpbWFscyl9KSl9LGJ0PXttaXgodCxlKXtjb25zdCBpPXQubWFwKCh0PT57Y29uc3QgZT1BdCh0KTtyZXR1cm4gZHQodCxlKX0pKSxhPWU9PT1zLlNVQlRSQUNUSVZFP2kubWFwKCh0PT57Y29uc3QgZT0oKHQsZSxzKT0+e2NvbnN0IGk9TWF0aC5taW4odCxlLHMpLGE9TWF0aC5taW4oMjU1LXQsMjU1LWUsMjU1LXMpLHI9dC1pLG49ZS1pLGM9cy1pLG89TWF0aC5taW4ocixuKSxBPXItbyxoPShuK28pLzIsdT0oYytuLW8pLzIsZD1NYXRoLm1heChBLGgsdSkvTWF0aC5tYXgocixuLGMpLGw9aXNOYU4oZCl8fGQ9PT0xLzB8fGQ8PTA/MTpkO3JldHVybntSOkEvbCthLFk6aC9sK2EsQjp1L2wrYX19KSh0LlIsdC5HLHQuQik7cmV0dXJuIHAodCxcIkFcIikmJihlLkE9dC5BKSxlfSkpOm51bGw7ZnVuY3Rpb24gcih0KXtjb25zdCBpPWU9PT1zLkFERElUSVZFP3tSOjAsRzowLEI6MCxBOjB9OntSOjAsWTowLEI6MCxBOjB9O3JldHVybiB0LnJlZHVjZSgoKHQsaSk9Pntjb25zdCBhPXAoaSxcIkFcIik/aS5BOjEscj17UjpNYXRoLm1pbih0LlIraS5SKmEsMjU1KSxCOk1hdGgubWluKHQuQitpLkIqYSwyNTUpLEE6MS0oMS1hKSooMS10LkEpfSxuPVwiR1wiaW4gdD90Lkc6dC5ZLGM9XCJHXCJpbiBpP2kuRzppLlk7cmV0dXJuey4uLnIsLi4uZT09PXMuQURESVRJVkU/e0c6TWF0aC5taW4obitjKmEsMjU1KX06e1k6TWF0aC5taW4obitjKmEsMjU1KX19fSksaSl9bGV0IG47aWYoZT09PXMuQURESVRJVkUpbj1yKGkpO2Vsc2V7Y29uc3QgdD1yKGEpO249KCh0LGUscyk9Pntjb25zdCBpPU1hdGgubWluKHQsZSxzKSxhPU1hdGgubWluKDI1NS10LDI1NS1lLDI1NS1zKSxyPXQtaSxuPWUtaSxjPXMtaSxvPU1hdGgubWluKG4sYyksQT1yK24tbyxoPW4rbyx1PTIqKGMtbyksZD1NYXRoLm1heChBLGgsdSkvTWF0aC5tYXgocixuLGMpLGw9aXNOYU4oZCl8fGQ9PT0xLzB8fGQ8PTA/MTpkO3JldHVybntSOkEvbCthLEc6aC9sK2EsQjp1L2wrYX19KSh0LlIsdC5ZLHQuQiksbi5BPXQuQX1yZXR1cm57UjpEKG4uUiksRzpEKG4uRyksQjpEKG4uQiksQTpmKG4uQSwwLDEpfX0sW3QuSEVYXSh0LGUscyl7Y29uc3QgaT10aGlzLm1peCh0LGUpO3JldHVybiBkZWxldGUgaS5BLHM/dHQuSEVYKGkpOmx0LkhFWChpKX0sSEVYQSh0LGUscyl7Y29uc3QgaT10aGlzLm1peCh0LGUpO3JldHVybiBpLkE9cz8yNTUqZXQoaS5BKTpldChpLkEpLHM/dHQuSEVYKGkpOmx0LkhFWEEoaSl9LFt0LlJHQl0odCxlLHMsaSl7Y29uc3QgYT10aGlzLm1peCh0LGUpO3JldHVybiBkZWxldGUgYS5BLHM/dHQuUkdCKGEsaSk6bHQuUkdCKGEsaS5kZWNpbWFscyl9LFJHQkEodCxlLHMsaSl7Y29uc3QgYT10aGlzLm1peCh0LGUpO3JldHVybiBzP3R0LlJHQihhLGkpOmx0LlJHQkEoYSxpLmRlY2ltYWxzKX0sW3QuSFNMXSh0LGUscyxpKXtjb25zdCBhPXRoaXMubWl4KHQsZSkscj12KGEuUixhLkcsYS5CKTtyZXR1cm4gZGVsZXRlIGEuQSxkZWxldGUgci5BLHM/dHQuSFNMKHIsaSk6bHQuSFNMKGEsaS5kZWNpbWFscyl9LEhTTEEodCxlLHMsaSl7Y29uc3QgYT10aGlzLm1peCh0LGUpLHI9dihhLlIsYS5HLGEuQixhLkEpO3JldHVybiBzP3R0LkhTTChyLGkpOmx0LkhTTEEoYSxpLmRlY2ltYWxzKX0sW3QuQ0lFTGFiXSh0LGUscyxpKXtjb25zdCBhPXRoaXMubWl4KHQsZSkscj1WKGEuUixhLkcsYS5CKTtyZXR1cm4gZGVsZXRlIGEuQSxzP3R0LkNJRUxhYihyLGkpOmx0LkNJRUxhYkEoYSxpLmRlY2ltYWxzKX0sQ0lFTGFiQSh0LGUscyxpKXtjb25zdCBhPXRoaXMubWl4KHQsZSkscj1WKGEuUixhLkcsYS5CKTtyZXR1cm4gcChhLFwiQVwiKSYmKHIuQT1hLkEpLHM/dHQuQ0lFTGFiKHIsaSk6bHQuQ0lFTGFiQShhLGkuZGVjaW1hbHMpfX0sQ3Q9KHQsZSk9Pih7UjpEKHQuUixlKSxHOkQodC5HLGUpLEI6RCh0LkIsZSksLi4ucCh0LFwiQVwiKT97QTpEKHQuQSxlKX06e319KSxMdD0odCxlKT0+KHtIOkQodC5ILGUpLFM6RCh0LlMsZSksTDpEKHQuTCxlKSwuLi5wKHQsXCJBXCIpP3tBOkQodC5BLGUpfTp7fX0pLGd0PSh0LGUpPT4oe0w6RCh0LkwsZSksYTpEKHQuYSxlKSxiOkQodC5iLGUpfSksQnQ9KHQsZSk9Pih7QzpEKHQuQyxlKSxNOkQodC5NLGUpLFk6RCh0LlksZSksSzpEKHQuSyxlKX0pLHB0PSh0LGUscyxpKT0+aShkdCh0LGUpLHMpLEh0PSh0LGUscyxpLGEpPT57czwxJiYocz01KTtjb25zdCByPSgodCxlLHMpPT57Y29uc3QgaT1zLTEsYT0oZS5SLXQuUikvaSxyPShlLkctdC5HKS9pLG49KGUuQi10LkIpL2ksYz1ldCh0LkEpLG89KGV0KGUuQSktYykvaTtyZXR1cm4gQXJyYXkocykuZmlsbChudWxsKS5tYXAoKChzLEEpPT4wPT09QT90OkE9PT1pP2U6e1I6RCh0LlIrYSpBKSxHOkQodC5HK3IqQSksQjpEKHQuQituKkEpLEE6RChjK28qQSl9KSl9KShkdCh0KSxkdChlKSxzKTtyZXR1cm4gci5tYXAoKHQ9PmEodCxpKSkpfSxGdD0odCxzLGksYSk9Pih7W2UuQU5BTE9HT1VTXTptdC5idWlsZEhhcm1vbnkocyxpdCxpLGEpLFtlLkNPTVBMRU1FTlRBUlldOm10LmJ1aWxkSGFybW9ueShzLGF0LGksYSksW2UuU1BMSVRfQ09NUExFTUVOVEFSWV06bXQuYnVpbGRIYXJtb255KHMscnQsaSxhKSxbZS5UUklBRElDXTptdC5idWlsZEhhcm1vbnkocyxudCxpLGEpLFtlLlRFVFJBRElDXTptdC5idWlsZEhhcm1vbnkocyxjdCxpLGEpLFtlLlNRVUFSRV06bXQuYnVpbGRIYXJtb255KHMsb3QsaSxhKX1bdF0pO2NsYXNzIFJ0e2NvbnN0cnVjdG9yKHQsZT17fSl7dGhpcy5fb3B0aW9ucz1rKGUsdCksdGhpcy5yZ2I9ZHQodCksdGhpcy51cGRhdGVIU0woKSx0aGlzLnVwZGF0ZUxhYigpLHRoaXMudXBkYXRlQ01ZSygpfXVwZGF0ZVJHQigpe3RoaXMucmdiPXsuLi54KHRoaXMuaHNsLkgsdGhpcy5oc2wuUyx0aGlzLmhzbC5MKSxBOnRoaXMuaHNsLkF9fXVwZGF0ZVJHQkZyb21DTVlLKCl7dGhpcy5yZ2I9ey4uLnEodGhpcy5jbXlrLkMsdGhpcy5jbXlrLk0sdGhpcy5jbXlrLlksdGhpcy5jbXlrLkspLEE6dGhpcy5yZ2IuQX19dXBkYXRlUkdCRnJvbUxhYigpe3RoaXMucmdiPXsuLi5QKHRoaXMubGFiLkwsdGhpcy5sYWIuYSx0aGlzLmxhYi5iKSxBOnRoaXMucmdiLkF9fXVwZGF0ZUhTTCgpe3RoaXMuaHNsPXYodGhpcy5yZ2IuUix0aGlzLnJnYi5HLHRoaXMucmdiLkIsdGhpcy5yZ2IuQSl9dXBkYXRlTGFiKCl7dGhpcy5sYWI9ey4uLlYodGhpcy5yZ2IuUix0aGlzLnJnYi5HLHRoaXMucmdiLkIpLEE6dGhpcy5yZ2IuQX19dXBkYXRlQ01ZSygpe3RoaXMuY215az1fKHRoaXMucmdiLlIsdGhpcy5yZ2IuRyx0aGlzLnJnYi5CKX1zZXRPcHRpb25zKHQ9e30pe3JldHVybiB0aGlzLl9vcHRpb25zPXsuLi50aGlzLl9vcHRpb25zLC4uLnR9LHRoaXN9c2V0SCh0KXtyZXR1cm4gdGhpcy5oc2wuSD1PKHQpLHRoaXMudXBkYXRlUkdCKCksdGhpcy51cGRhdGVMYWIoKSx0aGlzLnVwZGF0ZUNNWUsoKSx0aGlzfXNldFModCl7cmV0dXJuIHRoaXMuaHNsLlM9Zih0LDAsMTAwKSx0aGlzLnVwZGF0ZVJHQigpLHRoaXMudXBkYXRlTGFiKCksdGhpcy51cGRhdGVDTVlLKCksdGhpc31zZXRMKHQpe3JldHVybiB0aGlzLmhzbC5MPWYodCwwLDEwMCksdGhpcy51cGRhdGVSR0IoKSx0aGlzLnVwZGF0ZUxhYigpLHRoaXMudXBkYXRlQ01ZSygpLHRoaXN9c2V0Uih0KXt0aGlzLnJnYi5SPWYodCwwLDI1NSksdGhpcy51cGRhdGVIU0woKSx0aGlzLnVwZGF0ZUxhYigpLHRoaXMudXBkYXRlQ01ZSygpfXNldEcodCl7cmV0dXJuIHRoaXMucmdiLkc9Zih0LDAsMjU1KSx0aGlzLnVwZGF0ZUhTTCgpLHRoaXMudXBkYXRlTGFiKCksdGhpcy51cGRhdGVDTVlLKCksdGhpc31zZXRCKHQpe3JldHVybiB0aGlzLnJnYi5CPWYodCwwLDI1NSksdGhpcy51cGRhdGVIU0woKSx0aGlzLnVwZGF0ZUxhYigpLHRoaXMudXBkYXRlQ01ZSygpLHRoaXN9c2V0Q0lFTCh0KXtyZXR1cm4gdGhpcy5sYWIuTD1mKHQsMCwxMDApLHRoaXMudXBkYXRlUkdCRnJvbUxhYigpLHRoaXMudXBkYXRlSFNMKCksdGhpcy51cGRhdGVDTVlLKCksdGhpc31zZXRDSUVhKHQpe3JldHVybiB0aGlzLmxhYi5hPWYodCwtMTI1LDEyNSksdGhpcy51cGRhdGVSR0JGcm9tTGFiKCksdGhpcy51cGRhdGVIU0woKSx0aGlzLnVwZGF0ZUNNWUsoKSx0aGlzfXNldENJRWIodCl7cmV0dXJuIHRoaXMubGFiLmI9Zih0LC0xMjUsMTI1KSx0aGlzLnVwZGF0ZVJHQkZyb21MYWIoKSx0aGlzLnVwZGF0ZUhTTCgpLHRoaXMudXBkYXRlQ01ZSygpLHRoaXN9c2V0QSh0KXtyZXR1cm4gdGhpcy5oc2wuQT10aGlzLnJnYi5BPWYodCwwLDEpLHRoaXN9c2V0Qyh0KXtyZXR1cm4gdGhpcy5jbXlrLkM9Zih0LDAsMTAwKSx0aGlzLnVwZGF0ZVJHQkZyb21DTVlLKCksdGhpcy51cGRhdGVIU0woKSx0aGlzLnVwZGF0ZUxhYigpLHRoaXN9c2V0TSh0KXtyZXR1cm4gdGhpcy5jbXlrLk09Zih0LDAsMTAwKSx0aGlzLnVwZGF0ZVJHQkZyb21DTVlLKCksdGhpcy51cGRhdGVIU0woKSx0aGlzLnVwZGF0ZUxhYigpLHRoaXN9c2V0WSh0KXtyZXR1cm4gdGhpcy5jbXlrLlk9Zih0LDAsMTAwKSx0aGlzLnVwZGF0ZVJHQkZyb21DTVlLKCksdGhpcy51cGRhdGVIU0woKSx0aGlzLnVwZGF0ZUxhYigpLHRoaXN9c2V0Syh0KXtyZXR1cm4gdGhpcy5jbXlrLks9Zih0LDAsMTAwKSx0aGlzLnVwZGF0ZVJHQkZyb21DTVlLKCksdGhpcy51cGRhdGVIU0woKSx0aGlzLnVwZGF0ZUxhYigpLHRoaXN9Z2V0IG9wdGlvbnMoKXtyZXR1cm4gdGhpcy5fb3B0aW9uc31nZXQgSCgpe3JldHVybiBEKHRoaXMuaHNsLkgsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX1nZXQgUygpe3JldHVybiBEKHRoaXMuaHNsLlMsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX1nZXQgTCgpe3JldHVybiBEKHRoaXMuaHNsLkwsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX1nZXQgQ0lFTCgpe3JldHVybiBEKHRoaXMubGFiLkwsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX1nZXQgQ0lFYSgpe3JldHVybiBEKHRoaXMubGFiLmEsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX1nZXQgQ0lFYigpe3JldHVybiBEKHRoaXMubGFiLmIsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX1nZXQgUigpe3JldHVybiBEKHRoaXMucmdiLlIsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX1nZXQgRygpe3JldHVybiBEKHRoaXMucmdiLkcsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX1nZXQgQigpe3JldHVybiBEKHRoaXMucmdiLkIsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX1nZXQgQSgpe3JldHVybiBEKHRoaXMuaHNsLkEsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX1nZXQgQygpe3JldHVybiBEKHRoaXMuY215ay5DLHRoaXMub3B0aW9ucy5kZWNpbWFscyl9Z2V0IE0oKXtyZXR1cm4gRCh0aGlzLmNteWsuTSx0aGlzLm9wdGlvbnMuZGVjaW1hbHMpfWdldCBZKCl7cmV0dXJuIEQodGhpcy5jbXlrLlksdGhpcy5vcHRpb25zLmRlY2ltYWxzKX1nZXQgSygpe3JldHVybiBEKHRoaXMuY215ay5LLHRoaXMub3B0aW9ucy5kZWNpbWFscyl9Z2V0IEhFWE9iamVjdCgpe3JldHVybiBsdC5IRVgodGhpcy5yZ2IpfWdldCBIRVhBT2JqZWN0KCl7cmV0dXJuIGx0LkhFWEEodGhpcy5yZ2IpfWdldCBSR0JPYmplY3QoKXtyZXR1cm57Ujp0aGlzLlIsRzp0aGlzLkcsQjp0aGlzLkJ9fWdldCBSR0JBT2JqZWN0KCl7cmV0dXJuey4uLnRoaXMuUkdCT2JqZWN0LEE6dGhpcy5BfX1nZXQgSFNMT2JqZWN0KCl7cmV0dXJue0g6dGhpcy5ILFM6dGhpcy5TLEw6dGhpcy5MfX1nZXQgSFNMQU9iamVjdCgpe3JldHVybnsuLi50aGlzLkhTTE9iamVjdCxBOnRoaXMuQX19Z2V0IENJRUxhYk9iamVjdCgpe3JldHVybntMOnRoaXMuQ0lFTCxhOnRoaXMuQ0lFYSxiOnRoaXMuQ0lFYn19Z2V0IENJRUxhYkFPYmplY3QoKXtyZXR1cm57Li4udGhpcy5DSUVMYWJPYmplY3QsQTp0aGlzLkF9fWdldCBDTVlLT2JqZWN0KCl7cmV0dXJue0M6dGhpcy5DLE06dGhpcy5NLFk6dGhpcy5ZLEs6dGhpcy5LfX1nZXQgQ01ZS0FPYmplY3QoKXtyZXR1cm57Li4udGhpcy5DTVlLT2JqZWN0LEE6dGhpcy5BfX1nZXQgSEVYKCl7cmV0dXJuIHR0LkhFWCh7Ujp0aGlzLlIsRzp0aGlzLkcsQjp0aGlzLkJ9KX1nZXQgSEVYQSgpe3JldHVybiB0dC5IRVgoe1I6dGhpcy5SLEc6dGhpcy5HLEI6dGhpcy5CLEE6MjU1KnRoaXMuQX0pfWdldCBSR0IoKXtyZXR1cm4gdHQuUkdCKHtSOnRoaXMuUixHOnRoaXMuRyxCOnRoaXMuQn0sdGhpcy5vcHRpb25zKX1nZXQgUkdCQSgpe3JldHVybiB0dC5SR0Ioe1I6dGhpcy5SLEc6dGhpcy5HLEI6dGhpcy5CLEE6dGhpcy5BfSx0aGlzLm9wdGlvbnMpfWdldCBIU0woKXtyZXR1cm4gdHQuSFNMKHtIOnRoaXMuSCxTOnRoaXMuUyxMOnRoaXMuTH0sdGhpcy5vcHRpb25zKX1nZXQgSFNMQSgpe3JldHVybiB0dC5IU0woe0g6dGhpcy5ILFM6dGhpcy5TLEw6dGhpcy5MLEE6dGhpcy5BfSx0aGlzLm9wdGlvbnMpfWdldCBDSUVMYWIoKXtyZXR1cm4gdHQuQ0lFTGFiKHtMOnRoaXMuQ0lFTCxhOnRoaXMuQ0lFYSxiOnRoaXMuQ0lFYn0sdGhpcy5vcHRpb25zKX1nZXQgQ0lFTGFiQSgpe3JldHVybiB0dC5DSUVMYWIoe0w6dGhpcy5DSUVMLGE6dGhpcy5DSUVhLGI6dGhpcy5DSUViLEE6dGhpcy5BfSx0aGlzLm9wdGlvbnMpfWdldCBDTVlLKCl7cmV0dXJuIHR0LkNNWUsoe0M6dGhpcy5DLE06dGhpcy5NLFk6dGhpcy5ZLEs6dGhpcy5LfSx0aGlzLm9wdGlvbnMpfWdldCBDTVlLQSgpe3JldHVybiB0dC5DTVlLKHtDOnRoaXMuQyxNOnRoaXMuTSxZOnRoaXMuWSxLOnRoaXMuSyxBOnRoaXMuQX0sdGhpcy5vcHRpb25zKX1zdGF0aWMgdG9IRVhPYmplY3QodCl7Y29uc3QgZT1BdCh0KTtyZXR1cm4gcHQodCxlLDAsbHQuSEVYKX1zdGF0aWMgdG9IRVgodCl7cmV0dXJuIHR0LkhFWChSdC50b0hFWE9iamVjdCh0KSl9c3RhdGljIHRvSEVYQU9iamVjdCh0KXtjb25zdCBlPUF0KHQpO3JldHVybiBwdCh0LGUsMCxsdC5IRVhBKX1zdGF0aWMgdG9IRVhBKHQpe3JldHVybiB0dC5IRVgoUnQudG9IRVhBT2JqZWN0KHQpKX1zdGF0aWMgdG9SR0JPYmplY3QodCxlPXt9KXtjb25zdCBzPUF0KHQpO3JldHVybiBwdCh0LHMsZS5kZWNpbWFscyxsdC5SR0IpfXN0YXRpYyB0b1JHQih0LGU9e30pe2NvbnN0IHM9QXQodCksaT1rKGUsdCksYT1wdCh0LHMsZS5kZWNpbWFscyxsdC5SR0IpO3JldHVybiB0dC5SR0IoYSxpKX1zdGF0aWMgdG9SR0JBT2JqZWN0KHQsZT17fSl7Y29uc3Qgcz1BdCh0KTtyZXR1cm4gcHQodCxzLGUuZGVjaW1hbHMsbHQuUkdCQSl9c3RhdGljIHRvUkdCQSh0LGU9e30pe2NvbnN0IHM9QXQodCksaT1rKGUsdCksYT1wdCh0LHMsZS5kZWNpbWFscyxsdC5SR0JBKTtyZXR1cm4gdHQuUkdCKGEsaSl9c3RhdGljIHRvSFNMT2JqZWN0KHQsZT17fSl7Y29uc3Qgcz1BdCh0KTtyZXR1cm4gcHQodCxzLGUuZGVjaW1hbHMsbHQuSFNMKX1zdGF0aWMgdG9IU0wodCxlPXt9KXtjb25zdCBzPUF0KHQpLGk9ayhlLHQpLGE9cHQodCxzLGUuZGVjaW1hbHMsbHQuSFNMKTtyZXR1cm4gdHQuSFNMKGEsaSl9c3RhdGljIHRvSFNMQU9iamVjdCh0LGU9e30pe2NvbnN0IHM9QXQodCk7cmV0dXJuIHB0KHQscyxlLmRlY2ltYWxzLGx0LkhTTEEpfXN0YXRpYyB0b0hTTEEodCxlPXt9KXtjb25zdCBzPUF0KHQpLGk9ayhlLHQpLGE9cHQodCxzLGUuZGVjaW1hbHMsbHQuSFNMQSk7cmV0dXJuIHR0LkhTTChhLGkpfXN0YXRpYyB0b0NJRUxhYk9iamVjdCh0LGU9e30pe2NvbnN0IHM9QXQodCk7cmV0dXJuIHB0KHQscyxlLmRlY2ltYWxzLGx0LkNJRUxhYil9c3RhdGljIHRvQ0lFTGFiKHQsZT17fSl7Y29uc3Qgcz1BdCh0KSxpPWsoZSx0KSxhPXB0KHQscyxlLmRlY2ltYWxzLGx0LkNJRUxhYik7cmV0dXJuIHR0LkNJRUxhYihhLGkpfXN0YXRpYyB0b0NJRUxhYkFPYmplY3QodCxlPXt9KXtjb25zdCBzPUF0KHQpO3JldHVybiBwdCh0LHMsZS5kZWNpbWFscyxsdC5DSUVMYWJBKX1zdGF0aWMgdG9DSUVMYWJBKHQsZT17fSl7Y29uc3Qgcz1BdCh0KSxpPWsoZSx0KSxhPXB0KHQscyxlLmRlY2ltYWxzLGx0LkNJRUxhYkEpO3JldHVybiB0dC5DSUVMYWIoYSxpKX1zdGF0aWMgdG9DTVlLT2JqZWN0KHQsZT17fSl7Y29uc3Qgcz1BdCh0KTtyZXR1cm4gcHQodCxzLGUuZGVjaW1hbHMsbHQuQ01ZSyl9c3RhdGljIHRvQ01ZSyh0LGU9e30pe2NvbnN0IHM9QXQodCksaT1rKGUsdCksYT1wdCh0LHMsZS5kZWNpbWFscyxsdC5DTVlLKTtyZXR1cm4gdHQuQ01ZSyhhLGkpfXN0YXRpYyB0b0NNWUtBT2JqZWN0KHQsZT17fSl7Y29uc3Qgcz1BdCh0KTtyZXR1cm4gcHQodCxzLGUuZGVjaW1hbHMsbHQuQ01ZS0EpfXN0YXRpYyB0b0NNWUtBKHQsZT17fSl7Y29uc3Qgcz1BdCh0KSxpPWsoZSx0KSxhPXB0KHQscyxlLmRlY2ltYWxzLGx0LkNNWUtBKTtyZXR1cm4gdHQuQ01ZSyhhLGkpfXN0YXRpYyBnZXRCbGVuZEhFWE9iamVjdCh0LGUscz01KXtyZXR1cm4gSHQodCxlLHMsMCxsdC5IRVgpfXN0YXRpYyBnZXRCbGVuZEhFWCh0LGUscz01KXtyZXR1cm4gUnQuZ2V0QmxlbmRIRVhPYmplY3QodCxlLHMpLm1hcCgodD0+dHQuSEVYKHQpKSl9c3RhdGljIGdldEJsZW5kSEVYQU9iamVjdCh0LGUscz01KXtyZXR1cm4gSHQodCxlLHMsMCxsdC5IRVhBKX1zdGF0aWMgZ2V0QmxlbmRIRVhBKHQsZSxzPTUpe3JldHVybiBSdC5nZXRCbGVuZEhFWEFPYmplY3QodCxlLHMpLm1hcCgodD0+dHQuSEVYKHQpKSl9c3RhdGljIGdldEJsZW5kUkdCT2JqZWN0KHQsZSxzLGkpe3JldHVyblwibnVtYmVyXCI9PXR5cGVvZiBzP0h0KHQsZSxzLGk/LmRlY2ltYWxzLGx0LlJHQik6SHQodCxlLDUscz8uZGVjaW1hbHMsbHQuUkdCKX1zdGF0aWMgZ2V0QmxlbmRSR0IodCxlLHMsaSl7cmV0dXJuXCJudW1iZXJcIj09dHlwZW9mIHM/SHQodCxlLHMsaT8uZGVjaW1hbHMsbHQuUkdCKS5tYXAoKHM9PnR0LlJHQihzLGsoaXx8e30sdCxlKSkpKTpIdCh0LGUsNSxzPy5kZWNpbWFscyxsdC5SR0IpLm1hcCgoaT0+dHQuUkdCKGksayhzfHx7fSx0LGUpKSkpfXN0YXRpYyBnZXRCbGVuZFJHQkFPYmplY3QodCxlLHMsaSl7cmV0dXJuXCJudW1iZXJcIj09dHlwZW9mIHM/SHQodCxlLHMsaT8uZGVjaW1hbHMsbHQuUkdCQSk6SHQodCxlLDUscz8uZGVjaW1hbHMsbHQuUkdCQSl9c3RhdGljIGdldEJsZW5kUkdCQSh0LGUscyxpKXtyZXR1cm5cIm51bWJlclwiPT10eXBlb2Ygcz9IdCh0LGUscyxpPy5kZWNpbWFscyxsdC5SR0JBKS5tYXAoKHM9PnR0LlJHQihzLGsoaXx8e30sdCxlKSkpKTpIdCh0LGUsNSxzPy5kZWNpbWFscyxsdC5SR0JBKS5tYXAoKGk9PnR0LlJHQihpLGsoc3x8e30sdCxlKSkpKX1zdGF0aWMgZ2V0QmxlbmRIU0xPYmplY3QodCxlLHMsaSl7cmV0dXJuIEh0KHQsZSxcIm51bWJlclwiPT10eXBlb2Ygcz9zOjUsaT8uZGVjaW1hbHMsbHQuSFNMKX1zdGF0aWMgZ2V0QmxlbmRIU0wodCxlLHMsaSl7cmV0dXJuXCJudW1iZXJcIj09dHlwZW9mIHM/SHQodCxlLHMsaT8uZGVjaW1hbHMsbHQuSFNMKS5tYXAoKHM9PnR0LkhTTChzLGsoaXx8e30sdCxlKSkpKTpIdCh0LGUsNSxzPy5kZWNpbWFscyxsdC5IU0wpLm1hcCgoaT0+dHQuSFNMKGksayhzfHx7fSx0LGUpKSkpfXN0YXRpYyBnZXRCbGVuZEhTTEFPYmplY3QodCxlLHMsaSl7cmV0dXJuXCJudW1iZXJcIj09dHlwZW9mIHM/SHQodCxlLHMsaT8uZGVjaW1hbHMsbHQuSFNMQSk6SHQodCxlLDUscz8uZGVjaW1hbHMsbHQuSFNMQSl9c3RhdGljIGdldEJsZW5kSFNMQSh0LGUscyxpKXtyZXR1cm5cIm51bWJlclwiPT10eXBlb2Ygcz9IdCh0LGUscyxpPy5kZWNpbWFscyxsdC5IU0xBKS5tYXAoKHM9PnR0LkhTTChzLGsoaXx8e30sdCxlKSkpKTpIdCh0LGUsNSxzPy5kZWNpbWFscyxsdC5IU0xBKS5tYXAoKGk9PnR0LkhTTChpLGsoc3x8e30sdCxlKSkpKX1zdGF0aWMgZ2V0QmxlbmRDSUVMYWJPYmplY3QodCxlLHMsaSl7cmV0dXJuXCJudW1iZXJcIj09dHlwZW9mIHM/SHQodCxlLHMsaT8uZGVjaW1hbHMsbHQuQ0lFTGFiKTpIdCh0LGUsNSxzPy5kZWNpbWFscyxsdC5DSUVMYWIpfXN0YXRpYyBnZXRCbGVuZENJRUxhYih0LGUscyxpKXtyZXR1cm5cIm51bWJlclwiPT10eXBlb2Ygcz9IdCh0LGUscyxpPy5kZWNpbWFscyxsdC5DSUVMYWIpLm1hcCgocz0+dHQuQ0lFTGFiKHMsayhpfHx7fSx0LGUpKSkpOkh0KHQsZSw1LHM/LmRlY2ltYWxzLGx0LkNJRUxhYikubWFwKChpPT50dC5DSUVMYWIoaSxrKHN8fHt9LHQsZSkpKSl9c3RhdGljIGdldEJsZW5kQ0lFTGFiQU9iamVjdCh0LGUscyxpKXtyZXR1cm5cIm51bWJlclwiPT10eXBlb2Ygcz9IdCh0LGUscyxpPy5kZWNpbWFscyxsdC5DSUVMYWJBKTpIdCh0LGUsNSxzPy5kZWNpbWFscyxsdC5DSUVMYWJBKX1zdGF0aWMgZ2V0QmxlbmRDSUVMYWJBKHQsZSxzLGkpe3JldHVyblwibnVtYmVyXCI9PXR5cGVvZiBzP0h0KHQsZSxzLGk/LmRlY2ltYWxzLGx0LkNJRUxhYkEpLm1hcCgocz0+dHQuQ0lFTGFiKHMsayhpfHx7fSx0LGUpKSkpOkh0KHQsZSw1LHM/LmRlY2ltYWxzLGx0LkNJRUxhYkEpLm1hcCgoaT0+dHQuQ0lFTGFiKGksayhzfHx7fSx0LGUpKSkpfXN0YXRpYyBnZXRNaXhIRVhPYmplY3QodCxlPXMuQURESVRJVkUpe3JldHVybiBidC5IRVgodCxlLCExKX1zdGF0aWMgZ2V0TWl4SEVYKHQsZT1zLkFERElUSVZFKXtyZXR1cm4gYnQuSEVYKHQsZSwhMCl9c3RhdGljIGdldE1peEhFWEFPYmplY3QodCxlPXMuQURESVRJVkUpe3JldHVybiBidC5IRVhBKHQsZSwhMSl9c3RhdGljIGdldE1peEhFWEEodCxlPXMuQURESVRJVkUpe3JldHVybiBidC5IRVhBKHQsZSwhMCl9c3RhdGljIGdldE1peFJHQk9iamVjdCh0LGUsaSl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIGU/YnQuUkdCKHQsZSwhMSxrKGl8fHt9LC4uLnQpKTpidC5SR0IodCxzLkFERElUSVZFLCExLGsoZXx8e30sLi4udCkpfXN0YXRpYyBnZXRNaXhSR0IodCxlLGkpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBlP2J0LlJHQih0LGUsITAsayhpfHx7fSwuLi50KSk6YnQuUkdCKHQscy5BRERJVElWRSwhMCxrKGV8fHt9LC4uLnQpKX1zdGF0aWMgZ2V0TWl4UkdCQU9iamVjdCh0LGUsaSl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIGU/YnQuUkdCQSh0LGUsITEsayhpfHx7fSwuLi50KSk6YnQuUkdCQSh0LHMuQURESVRJVkUsITEsayhlfHx7fSwuLi50KSl9c3RhdGljIGdldE1peFJHQkEodCxlLGkpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBlP2J0LlJHQkEodCxlLCEwLGsoaXx8e30sLi4udCkpOmJ0LlJHQkEodCxzLkFERElUSVZFLCEwLGsoZXx8e30sLi4udCkpfXN0YXRpYyBnZXRNaXhIU0xPYmplY3QodCxlLGkpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBlP2J0LkhTTCh0LGUsITEsayhpfHx7fSwuLi50KSk6YnQuSFNMKHQscy5BRERJVElWRSwhMSxrKGV8fHt9LC4uLnQpKX1zdGF0aWMgZ2V0TWl4SFNMKHQsZSxpKXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgZT9idC5IU0wodCxlLCEwLGsoaXx8e30sLi4udCkpOmJ0LkhTTCh0LHMuQURESVRJVkUsITAsayhlfHx7fSwuLi50KSl9c3RhdGljIGdldE1peEhTTEFPYmplY3QodCxlLGkpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBlP2J0LkhTTEEodCxlLCExLGsoaXx8e30sLi4udCkpOmJ0LkhTTEEodCxzLkFERElUSVZFLCExLGsoZXx8e30sLi4udCkpfXN0YXRpYyBnZXRNaXhIU0xBKHQsZSxpKXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgZT9idC5IU0xBKHQsZSwhMCxrKGl8fHt9LC4uLnQpKTpidC5IU0xBKHQscy5BRERJVElWRSwhMCxrKGV8fHt9LC4uLnQpKX1zdGF0aWMgZ2V0TWl4Q0lFTGFiT2JqZWN0KHQsZSxpKXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgZT9idC5DSUVMYWIodCxlLCExLGsoaXx8e30sLi4udCkpOmJ0LkNJRUxhYih0LHMuQURESVRJVkUsITEsayhlfHx7fSwuLi50KSl9c3RhdGljIGdldE1peENJRUxhYih0LGUsaSl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIGU/YnQuQ0lFTGFiKHQsZSwhMCxrKGl8fHt9LC4uLnQpKTpidC5DSUVMYWIodCxzLkFERElUSVZFLCEwLGsoZXx8e30sLi4udCkpfXN0YXRpYyBnZXRNaXhDSUVMYWJBT2JqZWN0KHQsZSxpKXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgZT9idC5DSUVMYWJBKHQsZSwhMSxrKGl8fHt9LC4uLnQpKTpidC5DSUVMYWJBKHQscy5BRERJVElWRSwhMSxrKGV8fHt9LC4uLnQpKX1zdGF0aWMgZ2V0TWl4Q0lFTGFiQSh0LGUsaSl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIGU/YnQuQ0lFTGFiQSh0LGUsITAsayhpfHx7fSwuLi50KSk6YnQuQ0lFTGFiQSh0LHMuQURESVRJVkUsITAsayhlfHx7fSwuLi50KSl9c3RhdGljIGdldFNoYWRlcyh0LGUscyl7cmV0dXJuXCJudW1iZXJcIj09dHlwZW9mIGU/RXQodCxlLCEwLGsoc3x8e30sdCkpOkV0KHQsNSwhMCxrKGV8fHt9LHQpKX1zdGF0aWMgZ2V0VGludHModCxlLHMpe3JldHVyblwibnVtYmVyXCI9PXR5cGVvZiBlP0V0KHQsZSwhMSxrKHN8fHt9LHQpKTpFdCh0LDUsITEsayhlfHx7fSx0KSl9c3RhdGljIGdldEhhcm1vbnkodCxpLGEscil7cmV0dXJuYCR7aX1gaW4gZT9GdChpLHQsSyhhKT9hOnMuQURESVRJVkUsayhLKGEpP3J8fHt9OmF8fHt9LHQpKTpLKGkpP0Z0KGUuQ09NUExFTUVOVEFSWSx0LGksayhhfHx7fSx0KSk6RnQoZS5DT01QTEVNRU5UQVJZLHQscy5BRERJVElWRSxrKGl8fHt9LHQpKX19ZXhwb3J0e1J0IGFzIENvbG9yVHJhbnNsYXRvcixlIGFzIEhhcm1vbnkscyBhcyBNaXh9O1xuIiwgImltcG9ydCB7IEFwcCB9IGZyb20gXCJvYnNpZGlhblwiO1xuXG5pbXBvcnQgeyBDb2RlU3R5bGVyU2V0dGluZ3MsIENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIENvZGVTdHlsZXJUaGVtZU1vZGVDb2xvdXJzLCBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncywgQ29sb3VyLCBMQU5HVUFHRV9OQU1FUywgTEFOR1VBR0VTIH0gZnJvbSBcIi4vU2V0dGluZ3NcIjtcbmltcG9ydCB7IGlzQ3NzIH0gZnJvbSBcIi4vU2V0dGluZ3NUYWJcIjtcblxuaW50ZXJmYWNlIFRoZW1lU3R5bGUge1xuXHRib3JkZXI/OiB7XG5cdFx0c2l6ZTogbnVtYmVyO1xuXHRcdHN0eWxlOiBzdHJpbmc7XG5cdH0sXG5cdHNjcm9sbGJhcj86IGJvb2xlYW47XG5cdGV4dHJhPzogc3RyaW5nO1xufVxuXG5jb25zdCBTVFlMRV9JRCA9IFwiY29kZS1zdHlsZXItc3R5bGVzXCI7XG5jb25zdCBUSEVNRV9TVFlMRVM6IFJlY29yZDxzdHJpbmcsVGhlbWVTdHlsZT4gPSB7XG5cdFwiUHJpc21cIjoge1xuXHRcdGJvcmRlcjoge1xuXHRcdFx0c2l6ZTogMSxcblx0XHRcdHN0eWxlOiBcIjFweCBzb2xpZCB2YXIoLS13aW5kb3ctYm9yZGVyLWNvbG9yKVwiLFxuXHRcdH0sXG5cdH0sXG5cdFwiU2hpbW1lcmluZyBGb2N1c1wiOiB7XG5cdFx0Ym9yZGVyOiB7XG5cdFx0XHRzaXplOiAxLFxuXHRcdFx0c3R5bGU6IFwidmFyKC0tdGhpbi1tdXRlZC1ib3JkZXIpXCIsXG5cdFx0fSxcblx0fSxcblx0XCJNaW5pbWFsXCI6IHtcblx0XHRleHRyYTogYFxuXHRcdFx0Lm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYuaXMtcmVhZGFibGUtbGluZS13aWR0aCA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIge1xuXHRcdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdFx0fVxuXHRcdGAsXG5cdH0sXG5cdFwiT2JzaWRpYW5pdGVcIjoge1xuXHRcdHNjcm9sbGJhcjogdHJ1ZSxcblx0fVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVN0eWxpbmcoc2V0dGluZ3M6IENvZGVTdHlsZXJTZXR0aW5ncywgYXBwOiBBcHApOiB2b2lkIHtcblx0Y29uc3QgY3VycmVudFRoZW1lID0gZ2V0Q3VycmVudFRoZW1lKGFwcCk7XG5cdGxldCBzdHlsZVRhZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFNUWUxFX0lEKTtcblx0aWYgKCFzdHlsZVRhZykge1xuXHRcdHN0eWxlVGFnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO1xuXHRcdHN0eWxlVGFnLmlkID0gU1RZTEVfSUQ7XG5cdFx0ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJoZWFkXCIpWzBdLmFwcGVuZENoaWxkKHN0eWxlVGFnKTtcblx0fVxuXHRzdHlsZVRhZy5pbm5lclRleHQgPSAoc3R5bGVUaGVtZUNvbG91cnMoc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMpK3N0eWxlVGhlbWVTZXR0aW5ncyhzZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MsY3VycmVudFRoZW1lKStzdHlsZUxhbmd1YWdlQ29sb3VycyhzZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3Msc2V0dGluZ3MucmVkaXJlY3RMYW5ndWFnZXMsY3VycmVudFRoZW1lKSkudHJpbSgpLnJlcGxhY2UoL1xccysvZyxcIiBcIik7XG5cdGFkZFRoZW1lU2V0dGluZ3NDbGFzc2VzKHNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncyk7XG59XG5cbmZ1bmN0aW9uIHN0eWxlVGhlbWVDb2xvdXJzICh0aGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpOiBzdHJpbmcge1xuXHRyZXR1cm4gT2JqZWN0LmtleXModGhlbWVDb2xvdXJzLmxpZ2h0LmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzKS5yZWR1Y2UoKHJlc3VsdDogc3RyaW5nLCBhbHRlcm5hdGl2ZUhpZ2hsaWdodDogc3RyaW5nKSA9PiB7XG5cdFx0cmV0dXJuIHJlc3VsdCArIGBcblx0XHRcdGJvZHkuY29kZS1zdHlsZXIgLmNvZGUtc3R5bGVyLWxpbmUtaGlnaGxpZ2h0ZWQtJHthbHRlcm5hdGl2ZUhpZ2hsaWdodC5yZXBsYWNlKC9cXHMrL2csXCItXCIpLnRvTG93ZXJDYXNlKCl9IHtcblx0XHRcdFx0LS1ncmFkaWVudC1iYWNrZ3JvdW5kLWNvbG91cjogdmFyKC0tY29kZS1zdHlsZXItJHthbHRlcm5hdGl2ZUhpZ2hsaWdodC5yZXBsYWNlKC9cXHMrL2csXCItXCIpLnRvTG93ZXJDYXNlKCl9LWhpZ2hsaWdodC1jb2xvdXIpICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cdFx0YDtcblx0fSxgXG5cdFx0Ym9keS5jb2RlLXN0eWxlci50aGVtZS1saWdodCB7XG5cdFx0XHQke2dldFRoZW1lQ29sb3Vycyh0aGVtZUNvbG91cnMubGlnaHQpfVxuXHRcdH1cblx0XHRib2R5LmNvZGUtc3R5bGVyLnRoZW1lLWRhcmsge1xuXHRcdFx0JHtnZXRUaGVtZUNvbG91cnModGhlbWVDb2xvdXJzLmRhcmspfVxuXHRcdH1cblx0YCk7XG59XG5cbmZ1bmN0aW9uIGdldFRoZW1lQ29sb3VycyAodGhlbWVNb2RlQ29sb3VyczogQ29kZVN0eWxlclRoZW1lTW9kZUNvbG91cnMpOiBzdHJpbmcge1xuXHRyZXR1cm4gT2JqZWN0LmVudHJpZXMoe1xuXHRcdFwiY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuY29kZWJsb2NrLmJhY2tncm91bmRDb2xvdXIsXG5cdFx0XCJjb2RlYmxvY2stdGV4dC1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5jb2RlYmxvY2sudGV4dENvbG91cixcblx0XHRcImd1dHRlci1iYWNrZ3JvdW5kLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmd1dHRlci5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFwiZ3V0dGVyLXRleHQtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuZ3V0dGVyLnRleHRDb2xvdXIsXG5cdFx0XCJndXR0ZXItYWN0aXZlLXRleHQtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuZ3V0dGVyLmFjdGl2ZVRleHRDb2xvdXIsXG5cdFx0XCJoZWFkZXItYmFja2dyb3VuZC1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5oZWFkZXIuYmFja2dyb3VuZENvbG91cixcblx0XHRcImhlYWRlci10aXRsZS10ZXh0LWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmhlYWRlci50aXRsZS50ZXh0Q29sb3VyLFxuXHRcdFwiaGVhZGVyLWxhbmd1YWdlLXRhZy1iYWNrZ3JvdW5kLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmhlYWRlci5sYW5ndWFnZVRhZy5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFwiaGVhZGVyLWxhbmd1YWdlLXRhZy10ZXh0LWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Q29sb3VyLFxuXHRcdFwiaGVhZGVyLXNlcGFyYXRvci1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5oZWFkZXIubGluZUNvbG91cixcblx0XHRcImhlYWRlci1leHRlcm5hbC1yZWZlcmVuY2UtcmVwb3NpdG9yeVwiOiB0aGVtZU1vZGVDb2xvdXJzLmhlYWRlci5leHRlcm5hbFJlZmVyZW5jZS5kaXNwbGF5UmVwb3NpdG9yeUNvbG91cixcblx0XHRcImhlYWRlci1leHRlcm5hbC1yZWZlcmVuY2UtdmVyc2lvblwiOiB0aGVtZU1vZGVDb2xvdXJzLmhlYWRlci5leHRlcm5hbFJlZmVyZW5jZS5kaXNwbGF5VmVyc2lvbkNvbG91cixcblx0XHRcImhlYWRlci1leHRlcm5hbC1yZWZlcmVuY2UtdGltZXN0YW1wXCI6IHRoZW1lTW9kZUNvbG91cnMuaGVhZGVyLmV4dGVybmFsUmVmZXJlbmNlLmRpc3BsYXlUaW1lc3RhbXBDb2xvdXIsXG5cdFx0XCJhY3RpdmUtY29kZWJsb2NrLWxpbmUtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuaGlnaGxpZ2h0cy5hY3RpdmVDb2RlYmxvY2tMaW5lQ29sb3VyLFxuXHRcdFwiYWN0aXZlLWVkaXRvci1saW5lLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmhpZ2hsaWdodHMuYWN0aXZlRWRpdG9yTGluZUNvbG91cixcblx0XHRcImRlZmF1bHQtaGlnaGxpZ2h0LWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmhpZ2hsaWdodHMuZGVmYXVsdENvbG91cixcblx0XHRcImJ1dHRvbi1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5hZHZhbmNlZC5idXR0b25Db2xvdXIsXG5cdFx0XCJidXR0b24tYWN0aXZlLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmFkdmFuY2VkLmJ1dHRvbkFjdGl2ZUNvbG91cixcblx0XHRcImlubGluZS1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5pbmxpbmUudGV4dENvbG91cixcblx0XHRcImlubGluZS1jb2xvdXItYWN0aXZlXCI6IHRoZW1lTW9kZUNvbG91cnMuaW5saW5lLmFjdGl2ZVRleHRDb2xvdXIsXG5cdFx0XCJpbmxpbmUtYmFja2dyb3VuZC1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5pbmxpbmUuYmFja2dyb3VuZENvbG91cixcblx0XHRcImlubGluZS10aXRsZS1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5pbmxpbmUudGl0bGVUZXh0Q29sb3VyLFxuXHRcdC4uLk9iamVjdC5lbnRyaWVzKHRoZW1lTW9kZUNvbG91cnMuaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHMpLnJlZHVjZSgocmVzdWx0OiBSZWNvcmQ8c3RyaW5nLENvbG91cj4sW2FsdGVybmF0aXZlSGlnaGxpZ2h0LGNvbG91cl06IFtzdHJpbmcsQ29sb3VyXSk6IFJlY29yZDxzdHJpbmcsQ29sb3VyPiA9PiB7XG5cdFx0XHRyZXN1bHRbYCR7YWx0ZXJuYXRpdmVIaWdobGlnaHQucmVwbGFjZSgvXFxzKy9nLFwiLVwiKS50b0xvd2VyQ2FzZSgpfS1oaWdobGlnaHQtY29sb3VyYF0gPSBjb2xvdXI7XG5cdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdH0se30pXG5cdH0pLnJlZHVjZSgocmVzdWx0OiBzdHJpbmcsIFtjc3NWYXJpYWJsZSxjb2xvdXJdOiBbc3RyaW5nLENvbG91cl0pOiBzdHJpbmcgPT4ge1xuXHRcdGNvbnN0IHN0eWxlQ29sb3VyID0gaXNDc3MoY29sb3VyKT9gdmFyKCR7Y29sb3VyfSlgOmNvbG91cjtcblx0XHRyZXR1cm4gcmVzdWx0ICsgYC0tY29kZS1zdHlsZXItJHtjc3NWYXJpYWJsZX06ICR7c3R5bGVDb2xvdXJ9O2A7XG5cdH0sXCJcIik7XG59XG5cbmZ1bmN0aW9uIHN0eWxlVGhlbWVTZXR0aW5ncyAodGhlbWVTZXR0aW5nczogQ29kZVN0eWxlclRoZW1lU2V0dGluZ3MsIGN1cnJlbnRUaGVtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0cmV0dXJuIGBcblx0XHRib2R5LmNvZGUtc3R5bGVyIC5jb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnIHtcblx0XHRcdC0tY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZy10ZXh0LWJvbGQ6ICR7dGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEJvbGQ/XCJib2xkXCI6XCJub3JtYWxcIn07XG5cdFx0XHQtLWNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWctdGV4dC1pdGFsaWM6ICR7dGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEl0YWxpYz9cIml0YWxpY1wiOlwibm9ybWFsXCJ9O1xuXHRcdFx0Zm9udC1mYW1pbHk6ICR7dGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEZvbnQhPT1cIlwiP3RoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLnRleHRGb250OlwidmFyKC0tZm9udC10ZXh0KVwifTtcblx0XHR9XG5cdFx0Ym9keS5jb2RlLXN0eWxlciAuY29kZS1zdHlsZXItaGVhZGVyLXRleHQge1xuXHRcdFx0LS1jb2RlLXN0eWxlci1oZWFkZXItdGl0bGUtdGV4dC1ib2xkOiAke3RoZW1lU2V0dGluZ3MuaGVhZGVyLnRpdGxlLnRleHRCb2xkP1wiYm9sZFwiOlwibm9ybWFsXCJ9O1xuXHRcdFx0LS1jb2RlLXN0eWxlci1oZWFkZXItdGl0bGUtdGV4dC1pdGFsaWM6ICR7dGhlbWVTZXR0aW5ncy5oZWFkZXIudGl0bGUudGV4dEl0YWxpYz9cIml0YWxpY1wiOlwibm9ybWFsXCJ9O1xuXHRcdFx0Zm9udC1mYW1pbHk6ICR7dGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEZvbnQhPT1cIlwiP3RoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLnRleHRGb250OlwidmFyKC0tZm9udC10ZXh0KVwifTtcblx0XHR9XG5cdFx0Ym9keS5jb2RlLXN0eWxlciB7XG5cdFx0XHQtLWJvcmRlci1yYWRpdXM6ICR7dGhlbWVTZXR0aW5ncy5jb2RlYmxvY2suY3VydmF0dXJlfXB4O1xuXHRcdFx0LS1sYW5ndWFnZS1pY29uLXNpemU6ICR7dGhlbWVTZXR0aW5ncy5hZHZhbmNlZC5pY29uU2l6ZX1weDtcblx0XHRcdC0tZ3JhZGllbnQtaGlnaGxpZ2h0cy1jb2xvdXItc3RvcDogJHt0aGVtZVNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0cz90aGVtZVNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0c0NvbG91clN0b3A6XCIxMDAlXCJ9O1xuXHRcdFx0LS1oZWFkZXItZm9udC1zaXplOiAke3RoZW1lU2V0dGluZ3MuaGVhZGVyLmZvbnRTaXplfXB4O1xuXHRcdFx0LS1saW5lLXdyYXBwaW5nOiAke3RoZW1lU2V0dGluZ3MuY29kZWJsb2NrLnVud3JhcExpbmVzP1wicHJlXCI6XCJwcmUtd3JhcFwifTtcblx0XHRcdC0tY29kZS1zdHlsZXItaW5saW5lLWZvbnQtd2VpZ2h0OiAke3RoZW1lU2V0dGluZ3MuaW5saW5lLmZvbnRXZWlnaHR9MDA7XG5cdFx0XHQtLWNvZGUtc3R5bGVyLWlubGluZS1ib3JkZXItcmFkaXVzOiAke3RoZW1lU2V0dGluZ3MuaW5saW5lLmN1cnZhdHVyZX1weDtcblx0XHRcdC0tY29kZS1zdHlsZXItaW5saW5lLXBhZGRpbmctdmVydGljYWw6ICR7dGhlbWVTZXR0aW5ncy5pbmxpbmUucGFkZGluZ1ZlcnRpY2FsfXB4O1xuXHRcdFx0LS1jb2RlLXN0eWxlci1pbmxpbmUtcGFkZGluZy1ob3Jpem9udGFsOiAke3RoZW1lU2V0dGluZ3MuaW5saW5lLnBhZGRpbmdIb3Jpem9udGFsfXB4O1xuXHRcdFx0LS1jb2RlLXN0eWxlci1pbmxpbmUtbWFyZ2luLWhvcml6b250YWw6ICR7dGhlbWVTZXR0aW5ncy5pbmxpbmUubWFyZ2luSG9yaXpvbnRhbH1weDtcblx0XHRcdC0tY29kZS1zdHlsZXItaW5saW5lLXRpdGxlLWZvbnQtd2VpZ2h0OiAke3RoZW1lU2V0dGluZ3MuaW5saW5lLnRpdGxlRm9udFdlaWdodH0wMDtcblx0XHRcdCR7IXRoZW1lU2V0dGluZ3MuY29kZWJsb2NrLndyYXBMaW5lc0FjdGl2ZT9cIlwiOlwiLS1saW5lLWFjdGl2ZS13cmFwcGluZzogcHJlLXdyYXA7XCJ9XG5cdFx0XHQke3RoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5Q29sb3VyP1wiXCI6XCItLWljb24tZmlsdGVyOiBncmF5c2NhbGUoMSk7XCJ9XG5cdFx0fVxuXHRcdCR7VEhFTUVfU1RZTEVTPy5bY3VycmVudFRoZW1lXT8uYm9yZGVyP2Bcblx0XHRcdC5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIge1xuXHRcdFx0XHQtLWNvZGUtc3R5bGVyLWhlYWRlci1ib3JkZXI6YCsgLy9AdHMtZXhwZWN0LWVycm9yIERvZXMgRXhpc3Rcblx0XHRcdFx0XHRUSEVNRV9TVFlMRVNbY3VycmVudFRoZW1lXS5ib3JkZXIuc3R5bGUrYDtcblx0XHRcdFx0LS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoLXBhZGRpbmc6IGNhbGModmFyKC0taGVhZGVyLXNlcGFyYXRvci13aWR0aCkgLSBgKyAvL0B0cy1leHBlY3QtZXJyb3IgRG9lcyBFeGlzdFxuXHRcdFx0XHRcdFRIRU1FX1NUWUxFU1tjdXJyZW50VGhlbWVdLmJvcmRlci5zaXplK2BweCk7XG5cdFx0XHRcdC0tZm9sZGVkLWJvdHRvbS1ib3JkZXI6IHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1ib3JkZXIpO1xuXHRcdFx0fVxuXHRcdGA6XCJcIn1cblx0XHQke1RIRU1FX1NUWUxFUz8uW2N1cnJlbnRUaGVtZV0/LnNjcm9sbGJhcj9gXG5cdFx0XHRwcmUuY29kZS1zdHlsZXItcHJlOjotd2Via2l0LXNjcm9sbGJhcixcblx0XHRcdHByZS5jb2RlLXN0eWxlci1wcmUgPiBjb2RlOjotd2Via2l0LXNjcm9sbGJhciB7XG5cdFx0XHRcdHdpZHRoOiB2YXIoLS1jb2RlLXBhZGRpbmcpO1xuXHRcdFx0XHRoZWlnaHQ6IHZhcigtLWNvZGUtcGFkZGluZyk7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWNvZGVibG9jay1iYWNrZ3JvdW5kLWNvbG91cik7XG5cdFx0XHR9XG5cdFx0YDpcIlwifVxuXHRcdCR7VEhFTUVfU1RZTEVTPy5bY3VycmVudFRoZW1lXT8uZXh0cmE/VEhFTUVfU1RZTEVTW2N1cnJlbnRUaGVtZV0uZXh0cmE6XCJcIn1cblx0YDtcbn1cblxuZnVuY3Rpb24gc3R5bGVMYW5ndWFnZUNvbG91cnMgKHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzLCByZWRpcmVjdExhbmd1YWdlczogUmVjb3JkPHN0cmluZyx7Y29sb3VyPzogQ29sb3VyLCBpY29uPzogc3RyaW5nfT4sIGN1cnJlbnRUaGVtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0cmV0dXJuIE9iamVjdC5lbnRyaWVzKExBTkdVQUdFX05BTUVTKS5yZWR1Y2UoKHJlc3VsdDogc3RyaW5nLFtsYW5ndWFnZU5hbWUsIGxhbmd1YWdlRGlzcGxheU5hbWVdOiBbc3RyaW5nLHN0cmluZ10pOiBzdHJpbmcgPT4ge1xuXHRcdGlmIChMQU5HVUFHRVM/LltsYW5ndWFnZURpc3BsYXlOYW1lXT8uY29sb3VyIHx8IChsYW5ndWFnZU5hbWUgaW4gcmVkaXJlY3RMYW5ndWFnZXMgJiYgXCJjb2xvdXJcIiBpbiByZWRpcmVjdExhbmd1YWdlc1tsYW5ndWFnZU5hbWVdKSkge1xuXHRcdFx0cmVzdWx0ICs9IGBcblx0XHRcdFx0Lmxhbmd1YWdlLSR7bGFuZ3VhZ2VOYW1lfSB7XG5cdFx0XHRcdFx0LS1sYW5ndWFnZS1ib3JkZXItY29sb3VyOiAke3JlZGlyZWN0TGFuZ3VhZ2VzPy5bbGFuZ3VhZ2VOYW1lXT8uW1wiY29sb3VyXCJdID8/IExBTkdVQUdFU1tsYW5ndWFnZURpc3BsYXlOYW1lXS5jb2xvdXJ9O1xuXHRcdFx0XHRcdC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoOiAke3RoZW1lU2V0dGluZ3MuYWR2YW5jZWQubGFuZ3VhZ2VCb3JkZXJDb2xvdXI/dGhlbWVTZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlcldpZHRoOjB9cHg7XG5cdFx0XHRcdH1cblx0XHRcdGA7XG5cdFx0XHRpZiAoVEhFTUVfU1RZTEVTPy5bY3VycmVudFRoZW1lXT8uYm9yZGVyKSB7XG5cdFx0XHRcdHJlc3VsdCArPSBgXG5cdFx0XHRcdFx0Lm1hcmtkb3duLXNvdXJjZS12aWV3IDpub3QocHJlLmNvZGUtc3R5bGVyLXByZSkgPiAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lci5sYW5ndWFnZS0ke2xhbmd1YWdlTmFtZX0gIHtcblx0XHRcdFx0XHRcdC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoOiAkeyAvL0B0cy1leHBlY3QtZXJyb3IgRG9lcyBleGlzdFxuXHR0aGVtZVNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyQ29sb3VyP3RoZW1lU2V0dGluZ3MuYWR2YW5jZWQubGFuZ3VhZ2VCb3JkZXJXaWR0aCtUSEVNRV9TVFlMRVNbY3VycmVudFRoZW1lXS5ib3JkZXIuc2l6ZTowfXB4O1xuXHRcdFx0XHRcdH1gO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9LFwiXCIpO1xufVxuXG5mdW5jdGlvbiBhZGRUaGVtZVNldHRpbmdzQ2xhc3NlcyAodGhlbWVTZXR0aW5nczogQ29kZVN0eWxlclRoZW1lU2V0dGluZ3MpOiB2b2lkIHtcblx0dGhlbWVTZXR0aW5ncy5pbmxpbmUuc3R5bGUgPyBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlci1zdHlsZS1pbmxpbmVcIikgOiBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXCJjb2RlLXN0eWxlci1zdHlsZS1pbmxpbmVcIik7XG5cdHRoZW1lU2V0dGluZ3MuZ3V0dGVyLmhpZ2hsaWdodCA/IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLWd1dHRlci1oaWdobGlnaHRcIikgOiBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXCJjb2RlLXN0eWxlci1ndXR0ZXItaGlnaGxpZ2h0XCIpO1xuXHR0aGVtZVNldHRpbmdzLmd1dHRlci5hY3RpdmVMaW5lID8gZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItZ3V0dGVyLWFjdGl2ZS1saW5lXCIpIDogZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKFwiY29kZS1zdHlsZXItZ3V0dGVyLWFjdGl2ZS1saW5lXCIpO1xuXG5cdGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZShcImNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodFwiLFwiY29kZS1zdHlsZXItYWN0aXZlLWxpbmUtaGlnaGxpZ2h0LWNvZGVibG9ja1wiLFwiY29kZS1zdHlsZXItYWN0aXZlLWxpbmUtaGlnaGxpZ2h0LWVkaXRvclwiKTsgLy9UT0RPIChAbWF5dXJhbmt2KSBJcyB0aGlzIHNlY3Rpb24gbmVjZXNzYXJ5PyBJcyB0aGlzIGZ1bmN0aW9uIG5lY2Vzc2FyeT9cblx0aWYgKHRoZW1lU2V0dGluZ3MuaGlnaGxpZ2h0cy5hY3RpdmVFZGl0b3JMaW5lICYmIHRoZW1lU2V0dGluZ3MuaGlnaGxpZ2h0cy5hY3RpdmVDb2RlYmxvY2tMaW5lKSAvLyBJbnNpZGUgYW5kIG91dHNpZGUgb2YgY29kZWJsb2NrcyB3aXRoIGRpZmZlcmVudCBjb2xvdXJzXG5cdFx0ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItYWN0aXZlLWxpbmUtaGlnaGxpZ2h0XCIpO1xuXHRlbHNlIGlmICh0aGVtZVNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlRWRpdG9yTGluZSAmJiAhdGhlbWVTZXR0aW5ncy5oaWdobGlnaHRzLmFjdGl2ZUNvZGVibG9ja0xpbmUpIC8vIE9ubHkgb3V0c2lkZSBjb2RlYmxvY2tzXG5cdFx0ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItYWN0aXZlLWxpbmUtaGlnaGxpZ2h0LWVkaXRvclwiKTtcblx0ZWxzZSBpZiAoIXRoZW1lU2V0dGluZ3MuaGlnaGxpZ2h0cy5hY3RpdmVFZGl0b3JMaW5lICYmIHRoZW1lU2V0dGluZ3MuaGlnaGxpZ2h0cy5hY3RpdmVDb2RlYmxvY2tMaW5lKSAvLyBPbmx5IGluc2lkZSBjb2RlYmxvY2tzXG5cdFx0ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItYWN0aXZlLWxpbmUtaGlnaGxpZ2h0LWNvZGVibG9ja1wiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVN0eWxlc0FuZENsYXNzZXMoKTogdm9pZCB7XG5cdGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFNUWUxFX0lEKT8ucmVtb3ZlKCk7XG5cdGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZShcblx0XHRcImNvZGUtc3R5bGVyXCIsXG5cdFx0XCJjb2RlLXN0eWxlci1zaG93LWxpbmUtbnVtYmVyc1wiLFxuXHRcdFwiY29kZS1zdHlsZXItZ3V0dGVyLWhpZ2hsaWdodFwiLFxuXHRcdFwiY29kZS1zdHlsZXItZ3V0dGVyLWFjdGl2ZS1saW5lXCIsXG5cdCk7XG59XG5cbmZ1bmN0aW9uIGdldEN1cnJlbnRUaGVtZShhcHA6IEFwcCk6IHN0cmluZyB7XG5cdC8vQHRzLWV4cGVjdC1lcnJvciBVbmRvY3VtZW50ZWQgT2JzaWRpYW4gQVBJXG5cdHJldHVybiBhcHAudmF1bHQuZ2V0Q29uZmlnKFwiY3NzVGhlbWVcIik7XG59XG4iLCAiaW1wb3J0IHsgTWFya2Rvd25SZW5kZXJlciwgZWRpdG9yRWRpdG9yRmllbGQsIGVkaXRvckluZm9GaWVsZCwgZWRpdG9yTGl2ZVByZXZpZXdGaWVsZCB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IHsgRWRpdG9yVmlldywgVmlld1VwZGF0ZSwgRGVjb3JhdGlvbiwgRGVjb3JhdGlvblNldCwgV2lkZ2V0VHlwZSwgVmlld1BsdWdpbiwgUGx1Z2luVmFsdWUgfSBmcm9tIFwiQGNvZGVtaXJyb3Ivdmlld1wiO1xuaW1wb3J0IHsgRXh0ZW5zaW9uLCBFZGl0b3JTdGF0ZSwgU3RhdGVGaWVsZCwgU3RhdGVFZmZlY3QsIFN0YXRlRWZmZWN0VHlwZSwgUmFuZ2UsIFJhbmdlU2V0QnVpbGRlciwgVHJhbnNhY3Rpb24sIExpbmUsIFNlbGVjdGlvblJhbmdlLCBDb21wYXJ0bWVudCB9IGZyb20gXCJAY29kZW1pcnJvci9zdGF0ZVwiO1xuaW1wb3J0IHsgc3ludGF4VHJlZSwgdG9rZW5DbGFzc05vZGVQcm9wIH0gZnJvbSBcIkBjb2RlbWlycm9yL2xhbmd1YWdlXCI7XG5pbXBvcnQgeyBTeW50YXhOb2RlUmVmIH0gZnJvbSBcIkBsZXplci9jb21tb25cIjtcblxuaW1wb3J0IHsgQ29kZVN0eWxlclNldHRpbmdzLCBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncywgU1BFQ0lBTF9MQU5HVUFHRVMgfSBmcm9tIFwiLi9TZXR0aW5nc1wiO1xuaW1wb3J0IHsgQ29kZWJsb2NrUGFyYW1ldGVycywgcGFyc2VDb2RlYmxvY2tQYXJhbWV0ZXJzLCB0ZXN0T3BlbmluZ0xpbmUsIHRyaW1QYXJhbWV0ZXJMaW5lLCBpc0NvZGVibG9ja0lnbm9yZWQsIGlzTGFuZ3VhZ2VJZ25vcmVkIH0gZnJvbSBcIi4vUGFyc2luZy9Db2RlYmxvY2tQYXJzaW5nXCI7XG5pbXBvcnQgeyBJbmxpbmVDb2RlUGFyYW1ldGVycywgcGFyc2VJbmxpbmVDb2RlIH0gZnJvbSBcIi4vUGFyc2luZy9JbmxpbmVDb2RlUGFyc2luZ1wiO1xuaW1wb3J0IHsgY3JlYXRlSGVhZGVyLCBjcmVhdGVJbmxpbmVPcGVuZXIsIGdldExhbmd1YWdlSWNvbiwgZ2V0TGluZUNsYXNzLCBpc0hlYWRlckhpZGRlbiB9IGZyb20gXCIuL0NvZGVibG9ja0RlY29yYXRpbmdcIjtcbmltcG9ydCBDb2RlU3R5bGVyUGx1Z2luIGZyb20gXCIuL21haW5cIjtcbmltcG9ydCB7IGFkZFJlZmVyZW5jZVN5bnRheEhpZ2hsaWdodCB9IGZyb20gXCIuL1N5bnRheEhpZ2hsaWdodGluZ1wiO1xuXG5pbnRlcmZhY2UgU2V0dGluZ3NTdGF0ZSB7XG5cdGV4Y2x1ZGVkTGFuZ3VhZ2VzOiBzdHJpbmc7XG5cdHByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3Q6IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvZGVibG9ja0NvZGVNaXJyb3JFeHRlbnNpb25zKHNldHRpbmdzOiBDb2RlU3R5bGVyU2V0dGluZ3MsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbikge1xuXHRjb25zdCBsaXZlUHJldmlld0NvbXBhcnRtZW50ID0gbmV3IENvbXBhcnRtZW50O1xuXHRjb25zdCBpZ25vcmVDb21wYXJ0bWVudCA9IG5ldyBDb21wYXJ0bWVudDtcblxuXHRjb25zdCBpbnRlcmFjdGlvbiA9IFZpZXdQbHVnaW4uZnJvbUNsYXNzKFxuXHRcdGNsYXNzIENvZGVTdHlsZXJWaWV3UGx1Z2luIGltcGxlbWVudHMgUGx1Z2luVmFsdWUge1xuXHRcdFx0Y29uc3RydWN0b3IoKSB7XG5cdFx0XHRcdGFkZFJlZmVyZW5jZVN5bnRheEhpZ2hsaWdodCh3aW5kb3cuQ29kZU1pcnJvcik7XG5cdFx0XHR9XG5cdFx0XHR1cGRhdGUoX3VwZGF0ZTogVmlld1VwZGF0ZSkge1xuXHRcdFx0XHQvL1RPRE8gKEBtYXl1cmFua3YpIE1vdmUgc2VsZWN0aW9uIGJhY2sgdG8gb3JpZ2luYWwgcG9zaXRpb24gLSBDdXJyZW50bHkgZG9uZSB3aXRoIHNldFRpbWVvdXRcblx0XHRcdFx0Ly8gY29uc3QgcHJldmlvdXM6IG51bWJlciA9IHVwZGF0ZS50cmFuc2FjdGlvbnMuZmxhdE1hcCh0ID0+IHQuZWZmZWN0cykuZmlsdGVyKGVmZmVjdCA9PiBlZmZlY3QuaXMocmVyZW5kZXIpKT8uWzBdPy52YWx1ZT8ucG9zO1xuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyhwcmV2aW91cyk7XG5cdFx0XHRcdC8vIGlmIChwcmV2aW91cylcblx0XHRcdFx0Ly8gXHR1cGRhdGUudmlldy5kaXNwYXRjaCh7c2VsZWN0aW9uOiB7IGFuY2hvcjogcHJldmlvdXMsIGhlYWQ6IHByZXZpb3VzIH19KTtcblx0XHRcdH1cblx0XHRcdGRlc3Ryb3koKSB7fVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0ZXZlbnRIYW5kbGVyczoge1xuXHRcdFx0XHRjbGljazogZnVuY3Rpb24oZXZlbnQ6IE1vdXNlRXZlbnQsIHZpZXc6IEVkaXRvclZpZXcpIHtcblx0XHRcdFx0XHRpZiAoKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xhc3NMaXN0LmNvbnRhaW5zKFwiY29kZS1zdHlsZXItc291cmNlLWxpbmtcIikgJiYgZXZlbnQubWV0YUtleSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRcdFx0Y29uc3Qgc291cmNlUGF0aCA9IHZpZXcuc3RhdGUuZmllbGQoZWRpdG9ySW5mb0ZpZWxkKT8uZmlsZT8ucGF0aCA/PyBcIlwiO1xuXHRcdFx0XHRcdFx0Y29uc3QgZGVzdGluYXRpb24gPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5nZXRBdHRyaWJ1dGUoXCJkZXN0aW5hdGlvblwiKTtcblx0XHRcdFx0XHRcdGlmIChkZXN0aW5hdGlvbilcblx0XHRcdFx0XHRcdFx0cGx1Z2luLmFwcC53b3Jrc3BhY2Uub3BlbkxpbmtUZXh0KGRlc3RpbmF0aW9uLCBzb3VyY2VQYXRoLCB0cnVlKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdCk7XG5cblx0Y29uc3QgaWdub3JlTGlzdGVuZXIgPSBFZGl0b3JWaWV3LnVwZGF0ZUxpc3RlbmVyLm9mKCh1cGRhdGU6IFZpZXdVcGRhdGUpID0+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/e2VmZmVjdHM6IGFkZEVmZmVjdHN9Om51bGw7XG5cdFx0fSk7XG5cdH1cblx0Ly9UT0RPIChAbWF5dXJhbmt2KSBVcmdlbnQ6IEF1dG8gYWRkIHRlbXAgdW5mb2xkIG9uIHR5cGUgb2YgZm9sZCBhbmQgcmVtb3ZlIGJvdGggZm9sZCBhbmQgdGVtcCB1bmZvbGQgZm9yIHJlbW92YWxcblxuXHRjbGFzcyBMaW5lTnVtYmVyV2lkZ2V0IGV4dGVuZHMgV2lkZ2V0VHlwZSB7XG5cdFx0bGluZU51bWJlcjogbnVtYmVyO1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnM7XG5cdFx0bWF4TGluZU51bTogbnVtYmVyO1xuXHRcdGVtcHR5OiBib29sZWFuO1xuXG5cdFx0Y29uc3RydWN0b3IobGluZU51bWJlcjogbnVtYmVyLCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBtYXhMaW5lTnVtOiBudW1iZXIsIGVtcHR5OiBib29sZWFuID0gZmFsc2UpIHtcblx0XHRcdHN1cGVyKCk7XG5cdFx0XHR0aGlzLmxpbmVOdW1iZXIgPSBsaW5lTnVtYmVyO1xuXHRcdFx0dGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzID0gY29kZWJsb2NrUGFyYW1ldGVycztcblx0XHRcdHRoaXMubWF4TGluZU51bSA9IG1heExpbmVOdW07XG5cdFx0XHR0aGlzLmVtcHR5ID0gZW1wdHk7XG5cdFx0fVxuXG5cdFx0ZXEob3RoZXI6IExpbmVOdW1iZXJXaWRnZXQpOiBib29sZWFuIHtcblx0XHRcdHJldHVybiB0aGlzLmxpbmVOdW1iZXIgPT09IG90aGVyLmxpbmVOdW1iZXIgJiYgdGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0VuYWJsZWQgPT09IG90aGVyLmNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMuYWx3YXlzRW5hYmxlZCAmJiB0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMuYWx3YXlzRGlzYWJsZWQgPT09IG90aGVyLmNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMuYWx3YXlzRGlzYWJsZWQgJiYgdGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLm9mZnNldCA9PT0gb3RoZXIuY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5vZmZzZXQgJiYgdGhpcy5tYXhMaW5lTnVtID09PSBvdGhlci5tYXhMaW5lTnVtICYmIHRoaXMuZW1wdHkgPT09IG90aGVyLmVtcHR5O1xuXHRcdH1cblxuXHRcdHRvRE9NKCk6IEhUTUxFbGVtZW50IHtcblx0XHRcdHJldHVybiBjcmVhdGVTcGFuKHthdHRyOiB7c3R5bGU6IHRoaXMubWF4TGluZU51bS50b1N0cmluZygpLmxlbmd0aCA+ICh0aGlzLmxpbmVOdW1iZXIgKyB0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMub2Zmc2V0KS50b1N0cmluZygpLmxlbmd0aD9cIndpZHRoOiB2YXIoLS1saW5lLW51bWJlci1ndXR0ZXItd2lkdGgpO1wiOlwiXCJ9LCBjbHM6IFwiY29kZS1zdHlsZXItbGluZS1udW1iZXJcIiwgdGV4dDogdGhpcy5lbXB0eT9cIlwiOih0aGlzLmxpbmVOdW1iZXIgKyB0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMub2Zmc2V0KS50b1N0cmluZygpfSk7XG5cdFx0fVxuXHR9XG5cdGNsYXNzIENvbW1lbnRMaW5rV2lkZ2V0IGV4dGVuZHMgV2lkZ2V0VHlwZSB7XG5cdFx0bGlua1RleHQ6IHN0cmluZztcblx0XHRzb3VyY2VQYXRoOiBzdHJpbmc7XG5cblx0XHRjb25zdHJ1Y3RvcihsaW5rVGV4dDogc3RyaW5nLCBzb3VyY2VQYXRoOiBzdHJpbmcpIHtcblx0XHRcdHN1cGVyKCk7XG5cdFx0XHR0aGlzLmxpbmtUZXh0ID0gbGlua1RleHQ7XG5cdFx0XHR0aGlzLnNvdXJjZVBhdGggPSBzb3VyY2VQYXRoO1xuXHRcdH1cblxuXHRcdGVxKG90aGVyOiBDb21tZW50TGlua1dpZGdldCk6IGJvb2xlYW4ge1xuXHRcdFx0cmV0dXJuIHRoaXMubGlua1RleHQgPT09IG90aGVyLmxpbmtUZXh0ICYmIHRoaXMuc291cmNlUGF0aCA9PT0gb3RoZXIuc291cmNlUGF0aDtcblx0XHR9XG5cblx0XHR0b0RPTSgpOiBIVE1MRWxlbWVudCB7XG5cdFx0XHRjb25zdCBsaW5rUGFyZW50RWxlbWVudCA9IGNyZWF0ZURpdih7YXR0cjoge2NsYXNzOiBcImNvZGUtc3R5bGVyLWNvbW1lbnQtbGlua1wifX0pO1xuXHRcdFx0TWFya2Rvd25SZW5kZXJlci5yZW5kZXIocGx1Z2luLmFwcCx0aGlzLmxpbmtUZXh0LGxpbmtQYXJlbnRFbGVtZW50LHRoaXMuc291cmNlUGF0aCxwbHVnaW4pO1xuXHRcdFx0cmV0dXJuIGxpbmtQYXJlbnRFbGVtZW50O1xuXHRcdH1cblx0fVxuXHRjbGFzcyBIZWFkZXJXaWRnZXQgZXh0ZW5kcyBXaWRnZXRUeXBlIHtcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzO1xuXHRcdHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzO1xuXHRcdHNvdXJjZVBhdGg6IHN0cmluZztcblx0XHRwbHVnaW46IENvZGVTdHlsZXJQbHVnaW47XG5cdFx0aWNvblVSTDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHRcdGZvbGRlZDogYm9vbGVhbjtcblx0XHRoaWRkZW46IGJvb2xlYW47XG5cblx0XHRjb25zdHJ1Y3Rvcihjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBmb2xkZWQ6IGJvb2xlYW4sIHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzLCBzb3VyY2VQYXRoOiBzdHJpbmcsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbikge1xuXHRcdFx0c3VwZXIoKTtcblx0XHRcdHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycyA9IHN0cnVjdHVyZWRDbG9uZShjb2RlYmxvY2tQYXJhbWV0ZXJzKTtcblx0XHRcdHRoaXMudGhlbWVTZXR0aW5ncyA9IHN0cnVjdHVyZWRDbG9uZSh0aGVtZVNldHRpbmdzKTtcblx0XHRcdHRoaXMuc291cmNlUGF0aCA9IHNvdXJjZVBhdGg7XG5cdFx0XHR0aGlzLnBsdWdpbiA9IHBsdWdpbjtcblx0XHRcdHRoaXMuaWNvblVSTCA9IGdldExhbmd1YWdlSWNvbih0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UsdGhpcy5wbHVnaW4ubGFuZ3VhZ2VJY29ucyk7XG5cdFx0XHR0aGlzLmZvbGRlZCA9IGZvbGRlZDtcblx0XHRcdHRoaXMuaGlkZGVuID0gaXNIZWFkZXJIaWRkZW4odGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLHRoaXMudGhlbWVTZXR0aW5ncyx0aGlzLmljb25VUkwpO1xuXHRcdH1cblxuXHRcdGVxKG90aGVyOiBIZWFkZXJXaWRnZXQpOiBib29sZWFuIHtcblx0XHRcdHJldHVybiAoXG5cdFx0XHRcdHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSA9PT0gb3RoZXIuY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSAmJlxuXHRcdFx0XHR0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgPT09IG90aGVyLmNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgJiZcblx0XHRcdFx0dGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLnJlZmVyZW5jZSA9PT0gb3RoZXIuY29kZWJsb2NrUGFyYW1ldGVycy5yZWZlcmVuY2UgJiZcblx0XHRcdFx0dGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQuZW5hYmxlZCA9PT0gb3RoZXIuY29kZWJsb2NrUGFyYW1ldGVycy5mb2xkLmVuYWJsZWQgJiZcblx0XHRcdFx0dGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQucGxhY2Vob2xkZXIgPT09IG90aGVyLmNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5wbGFjZWhvbGRlciAmJlxuXHRcdFx0XHR0aGlzLnRoZW1lU2V0dGluZ3MuaGVhZGVyLmZvbGRQbGFjZWhvbGRlciA9PT0gb3RoZXIudGhlbWVTZXR0aW5ncy5oZWFkZXIuZm9sZFBsYWNlaG9sZGVyICYmXG5cdFx0XHRcdHRoaXMudGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXkgPT09IG90aGVyLnRoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5ICYmXG5cdFx0XHRcdHRoaXMudGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheSA9PT0gb3RoZXIudGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheSAmJlxuXHRcdFx0XHR0aGlzLmZvbGRlZCA9PT0gb3RoZXIuZm9sZGVkICYmXG5cdFx0XHRcdHRoaXMuaWNvblVSTCA9PT0gb3RoZXIuaWNvblVSTFxuXHRcdFx0KTtcblx0XHR9XG5cblx0XHR0b0RPTSh2aWV3OiBFZGl0b3JWaWV3KTogSFRNTEVsZW1lbnQge1xuXHRcdFx0Y29uc3QgaGVhZGVyQ29udGFpbmVyID0gY3JlYXRlSGVhZGVyKHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycyx0aGlzLnRoZW1lU2V0dGluZ3MsdGhpcy5zb3VyY2VQYXRoLHRoaXMucGx1Z2luKTtcblx0XHRcdGlmICh0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UhPT1cIlwiKVxuXHRcdFx0XHRoZWFkZXJDb250YWluZXIuY2xhc3NMaXN0LmFkZChgbGFuZ3VhZ2UtJHt0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2V9YCk7XG5cdFx0XHRpZiAodGhpcy5mb2xkZWQpXG5cdFx0XHRcdGhlYWRlckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItaGVhZGVyLWZvbGRlZFwiKTtcblx0XHRcdGhlYWRlckNvbnRhaW5lci5vbmNsaWNrID0gKGV2ZW50KSA9PiB7XG5cdFx0XHRcdGlmICghKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk/LmNsYXNzTGlzdD8uY29udGFpbnMoXCJpbnRlcm5hbC1saW5rXCIpICYmICEoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KT8uY2xhc3NMaXN0Py5jb250YWlucyhcImV4dGVybmFsLWxpbmtcIikpXG5cdFx0XHRcdFx0Zm9sZE9uQ2xpY2sodmlldyxoZWFkZXJDb250YWluZXIsdGhpcy5mb2xkZWQsdGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlKTtcblx0XHRcdH07XG5cdFx0XHRyZXR1cm4gaGVhZGVyQ29udGFpbmVyO1xuXHRcdH1cblx0fVxuXHRjbGFzcyBPcGVuZXJXaWRnZXQgZXh0ZW5kcyBXaWRnZXRUeXBlIHtcblx0XHRpbmxpbmVDb2RlUGFyYW1ldGVyczogSW5saW5lQ29kZVBhcmFtZXRlcnM7XG5cdFx0cGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luO1xuXG5cdFx0Y29uc3RydWN0b3IgKGlubGluZUNvZGVQYXJhbWV0ZXJzOiBJbmxpbmVDb2RlUGFyYW1ldGVycywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKSB7XG5cdFx0XHRzdXBlcigpO1xuXHRcdFx0dGhpcy5pbmxpbmVDb2RlUGFyYW1ldGVycyA9IGlubGluZUNvZGVQYXJhbWV0ZXJzO1xuXHRcdFx0dGhpcy5wbHVnaW4gPSBwbHVnaW47XG5cdFx0fVxuXG5cdFx0ZXEob3RoZXI6IE9wZW5lcldpZGdldCk6IGJvb2xlYW4ge1xuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0dGhpcy5pbmxpbmVDb2RlUGFyYW1ldGVycy5sYW5ndWFnZSA9PSBvdGhlci5pbmxpbmVDb2RlUGFyYW1ldGVycy5sYW5ndWFnZSAmJlxuXHRcdFx0XHR0aGlzLmlubGluZUNvZGVQYXJhbWV0ZXJzLnRpdGxlID09IG90aGVyLmlubGluZUNvZGVQYXJhbWV0ZXJzLnRpdGxlICYmXG5cdFx0XHRcdHRoaXMuaW5saW5lQ29kZVBhcmFtZXRlcnMuaWNvbiA9PSBvdGhlci5pbmxpbmVDb2RlUGFyYW1ldGVycy5pY29uICYmXG5cdFx0XHRcdGdldExhbmd1YWdlSWNvbih0aGlzLmlubGluZUNvZGVQYXJhbWV0ZXJzLmxhbmd1YWdlLHRoaXMucGx1Z2luLmxhbmd1YWdlSWNvbnMpID09IGdldExhbmd1YWdlSWNvbihvdGhlci5pbmxpbmVDb2RlUGFyYW1ldGVycy5sYW5ndWFnZSxvdGhlci5wbHVnaW4ubGFuZ3VhZ2VJY29ucylcblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0dG9ET00oKTogSFRNTEVsZW1lbnQge1xuXHRcdFx0cmV0dXJuIGNyZWF0ZUlubGluZU9wZW5lcih0aGlzLmlubGluZUNvZGVQYXJhbWV0ZXJzLHRoaXMucGx1Z2luLmxhbmd1YWdlSWNvbnMsW1wiY29kZS1zdHlsZXItaW5saW5lLW9wZW5lclwiLFwiY20taW5saW5lLWNvZGVcIl0pO1xuXHRcdH1cblx0fVxuXG5cdGZ1bmN0aW9uIGJ1aWxkSGVhZGVyRGVjb3JhdGlvbnMoc3RhdGU6IEVkaXRvclN0YXRlLCBmb2xkVmFsdWU6IChwb3NpdGlvbjogbnVtYmVyLCBkZWZhdWx0Rm9sZDogYm9vbGVhbik9PmJvb2xlYW4gPSAocG9zaXRpb24sZGVmYXVsdEZvbGQpPT5kZWZhdWx0Rm9sZCkge1xuXHRcdGNvbnN0IGJ1aWxkZXIgPSBuZXcgUmFuZ2VTZXRCdWlsZGVyPERlY29yYXRpb24+KCk7XG5cdFx0Y29uc3Qgc291cmNlUGF0aCA9IHN0YXRlLmZpZWxkKGVkaXRvckluZm9GaWVsZCk/LmZpbGU/LnBhdGggPz8gXCJcIjtcblx0XHRsZXQgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycztcblx0XHRzeW50YXhUcmVlKHN0YXRlKS5pdGVyYXRlKHtcblx0XHRcdGVudGVyOiAoc3ludGF4Tm9kZSkgPT4ge1xuXHRcdFx0XHRpZiAoc3ludGF4Tm9kZS50eXBlLm5hbWUuaW5jbHVkZXMoXCJIeXBlck1ELWNvZGVibG9jay1iZWdpblwiKSkge1xuXHRcdFx0XHRcdGNvbnN0IHN0YXJ0TGluZSA9IHN0YXRlLmRvYy5saW5lQXQoc3ludGF4Tm9kZS5mcm9tKTtcblx0XHRcdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzID0gcGFyc2VDb2RlYmxvY2tQYXJhbWV0ZXJzKHRyaW1QYXJhbWV0ZXJMaW5lKHN0YXJ0TGluZS50ZXh0LnRvU3RyaW5nKCkpLHNldHRpbmdzLmN1cnJlbnRUaGVtZSk7XG5cdFx0XHRcdFx0aWYgKCFpc0xhbmd1YWdlSWdub3JlZChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlLHNldHRpbmdzLmV4Y2x1ZGVkTGFuZ3VhZ2VzKSAmJiAhaXNDb2RlYmxvY2tJZ25vcmVkKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2Usc2V0dGluZ3MucHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdCkgJiYgIWNvZGVibG9ja1BhcmFtZXRlcnMuaWdub3JlKSB7XG5cdFx0XHRcdFx0XHRpZiAoIVNQRUNJQUxfTEFOR1VBR0VTLnNvbWUocmVnRXhwID0+IG5ldyBSZWdFeHAocmVnRXhwKS50ZXN0KGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKSlcblx0XHRcdFx0XHRcdFx0YnVpbGRlci5hZGQoc3RhcnRMaW5lLmZyb20sc3RhcnRMaW5lLmZyb20sRGVjb3JhdGlvbi53aWRnZXQoe3dpZGdldDogbmV3IEhlYWRlcldpZGdldChjb2RlYmxvY2tQYXJhbWV0ZXJzLGZvbGRWYWx1ZShzdGFydExpbmUuZnJvbSxjb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQuZW5hYmxlZCksc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLHNvdXJjZVBhdGgscGx1Z2luKSwgYmxvY2s6IHRydWUsIHNpZGU6IC0xfSkpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdHJldHVybiBidWlsZGVyLmZpbmlzaCgpO1xuXHR9XG5cdGZ1bmN0aW9uIGJ1aWxkTGluZURlY29yYXRpb25zKHN0YXRlOiBFZGl0b3JTdGF0ZSk6IERlY29yYXRpb25TZXQge1xuXHRcdGNvbnN0IGJ1aWxkZXIgPSBuZXcgUmFuZ2VTZXRCdWlsZGVyPERlY29yYXRpb24+KCk7XG5cdFx0Y29uc3Qgc291cmNlUGF0aCA9IHN0YXRlLmZpZWxkKGVkaXRvckluZm9GaWVsZCk/LmZpbGU/LnBhdGggPz8gXCJcIjtcblx0XHRjb25zdCBzb3VyY2VNb2RlID0gaXNTb3VyY2VNb2RlKHN0YXRlKTtcblx0XHRmb3IgKGxldCBpdGVyID0gKHN0YXRlLmZpZWxkKGhlYWRlckRlY29yYXRpb25zLGZhbHNlKSA/PyBEZWNvcmF0aW9uLm5vbmUpLml0ZXIoKTsgaXRlci52YWx1ZSAhPT0gbnVsbDsgaXRlci5uZXh0KCkpIHtcblx0XHRcdGNvbnN0IGZvbGRTdGFydCA9IHN0YXRlLmRvYy5saW5lQXQoaXRlci5mcm9tKTtcblx0XHRcdGNvbnN0IHN0YXJ0RGVsaW1pdGVyID0gdGVzdE9wZW5pbmdMaW5lKGZvbGRTdGFydC50ZXh0LnRvU3RyaW5nKCkpO1xuXHRcdFx0Y29uc3QgY29kZWJsb2NrUGFyYW1ldGVycyA9IGl0ZXIudmFsdWUuc3BlYy53aWRnZXQuY29kZWJsb2NrUGFyYW1ldGVycztcblx0XHRcdGNvbnN0IHNob3dMaW5lTnVtYmVycyA9IChzZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLmxpbmVOdW1iZXJzICYmICFjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0Rpc2FibGVkKSB8fCBjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0VuYWJsZWQ7XG5cdFx0XHRsZXQgZm9sZEVuZDogTGluZSB8IG51bGwgPSBudWxsO1xuXHRcdFx0bGV0IG1heExpbmVOdW06IG51bWJlciA9IDA7XG5cdFx0XHRjb2RlYmxvY2tGb2xkQ2FsbGJhY2soaXRlci5mcm9tLHN0YXRlLChmb2xkU3RhcnQsZm9sZEVuZCk9Pntcblx0XHRcdFx0bWF4TGluZU51bSA9IGZvbGRFbmQudG8tZm9sZFN0YXJ0LmZyb20tMStjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLm9mZnNldDtcblx0XHRcdH0pO1xuXHRcdFx0Y29uc3QgbGluZU51bWJlck1hcmdpbiA9IChtYXhMaW5lTnVtLnRvU3RyaW5nKCkubGVuZ3RoID4gMik/bWF4TGluZU51bS50b1N0cmluZygpLmxlbmd0aCAqIHN0YXRlLmZpZWxkKGNoYXJXaWR0aFN0YXRlKTp1bmRlZmluZWQ7XG5cdFx0XHRidWlsZGVyLmFkZChmb2xkU3RhcnQuZnJvbSxmb2xkU3RhcnQuZnJvbSxEZWNvcmF0aW9uLmxpbmUoe2F0dHJpYnV0ZXM6IHtzdHlsZTogYC0tbGluZS1udW1iZXItZ3V0dGVyLXdpZHRoOiAke2xpbmVOdW1iZXJNYXJnaW4/bGluZU51bWJlck1hcmdpbitcInB4XCI6XCJjYWxjKHZhcigtLWxpbmUtbnVtYmVyLWd1dHRlci1taW4td2lkdGgpIC0gMTJweClcIn07YCwgY2xhc3M6IFwiY29kZS1zdHlsZXItbGluZVwiKyhbXCJeJFwiXS5jb25jYXQoU1BFQ0lBTF9MQU5HVUFHRVMpLnNvbWUocmVnRXhwID0+IG5ldyBSZWdFeHAocmVnRXhwKS50ZXN0KGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKT9cIlwiOmAgbGFuZ3VhZ2UtJHtjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlfWApfX0pKTtcblx0XHRcdGlmIChzaG93TGluZU51bWJlcnMpXG5cdFx0XHRcdGJ1aWxkZXIuYWRkKGZvbGRTdGFydC5mcm9tLGZvbGRTdGFydC5mcm9tLERlY29yYXRpb24ud2lkZ2V0KHt3aWRnZXQ6IG5ldyBMaW5lTnVtYmVyV2lkZ2V0KDAsY29kZWJsb2NrUGFyYW1ldGVycyxtYXhMaW5lTnVtLHRydWUpfSkpO1xuXHRcdFx0Zm9yIChsZXQgaSA9IGZvbGRTdGFydC5udW1iZXIrMTsgaSA8PSBzdGF0ZS5kb2MubGluZXM7IGkrKykge1xuXHRcdFx0XHRjb25zdCBsaW5lID0gc3RhdGUuZG9jPy5saW5lKGkpO1xuXHRcdFx0XHRpZiAoIWxpbmUpXG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNvbnN0IGxpbmVUZXh0ID0gbGluZS50ZXh0LnRvU3RyaW5nKCk7XG5cdFx0XHRcdGlmICh0ZXN0T3BlbmluZ0xpbmUobGluZVRleHQpID09PSBzdGFydERlbGltaXRlcikge1xuXHRcdFx0XHRcdGZvbGRFbmQgPSBsaW5lO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGJ1aWxkZXIuYWRkKGxpbmUuZnJvbSxsaW5lLmZyb20sRGVjb3JhdGlvbi5saW5lKHthdHRyaWJ1dGVzOiB7c3R5bGU6IGAtLWxpbmUtbnVtYmVyLWd1dHRlci13aWR0aDogJHtsaW5lTnVtYmVyTWFyZ2luP2xpbmVOdW1iZXJNYXJnaW4rXCJweFwiOlwiY2FsYyh2YXIoLS1saW5lLW51bWJlci1ndXR0ZXItbWluLXdpZHRoKSAtIDEycHgpXCJ9O2AsIGNsYXNzOiAoKFNQRUNJQUxfTEFOR1VBR0VTLnNvbWUocmVnRXhwID0+IG5ldyBSZWdFeHAocmVnRXhwKS50ZXN0KChpdGVyLnZhbHVlIGFzIERlY29yYXRpb24pLnNwZWMud2lkZ2V0LmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKSk/XCJjb2RlLXN0eWxlci1saW5lXCI6Z2V0TGluZUNsYXNzKGNvZGVibG9ja1BhcmFtZXRlcnMsaS1mb2xkU3RhcnQubnVtYmVyLGxpbmUudGV4dCkuam9pbihcIiBcIikpKyhbXCJeJFwiXS5jb25jYXQoU1BFQ0lBTF9MQU5HVUFHRVMpLnNvbWUocmVnRXhwID0+IG5ldyBSZWdFeHAocmVnRXhwKS50ZXN0KGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKT9cIlwiOmAgbGFuZ3VhZ2UtJHtjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlfWApfX0pKTtcblx0XHRcdFx0aWYgKHNob3dMaW5lTnVtYmVycylcblx0XHRcdFx0XHRidWlsZGVyLmFkZChsaW5lLmZyb20sbGluZS5mcm9tLERlY29yYXRpb24ud2lkZ2V0KHt3aWRnZXQ6IG5ldyBMaW5lTnVtYmVyV2lkZ2V0KGkgLSBmb2xkU3RhcnQubnVtYmVyLCBjb2RlYmxvY2tQYXJhbWV0ZXJzLCBtYXhMaW5lTnVtKX0pKTtcblx0XHRcdFx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgPT09IFwibWFya2Rvd25cIilcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0Y29udmVydENvbW1lbnRMaW5rcyhzdGF0ZSwgbGluZSwgc291cmNlUGF0aCwgYnVpbGRlciwgc291cmNlTW9kZSk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoZm9sZEVuZCAhPT0gbnVsbCkge1xuXHRcdFx0XHRidWlsZGVyLmFkZChmb2xkRW5kLmZyb20sZm9sZEVuZC5mcm9tLERlY29yYXRpb24ubGluZSh7YXR0cmlidXRlczoge3N0eWxlOiBgLS1saW5lLW51bWJlci1ndXR0ZXItd2lkdGg6ICR7bGluZU51bWJlck1hcmdpbj9saW5lTnVtYmVyTWFyZ2luK1wicHhcIjpcImNhbGModmFyKC0tbGluZS1udW1iZXItZ3V0dGVyLW1pbi13aWR0aCkgLSAxMnB4KVwifTtgLCBjbGFzczogXCJjb2RlLXN0eWxlci1saW5lXCIrKFtcIl4kXCJdLmNvbmNhdChTUEVDSUFMX0xBTkdVQUdFUykuc29tZShyZWdFeHAgPT4gbmV3IFJlZ0V4cChyZWdFeHApLnRlc3QoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSkpP1wiXCI6YCBsYW5ndWFnZS0ke2NvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2V9YCl9fSkpO1xuXHRcdFx0XHRpZiAoc2hvd0xpbmVOdW1iZXJzKVxuXHRcdFx0XHRcdGJ1aWxkZXIuYWRkKGZvbGRFbmQuZnJvbSxmb2xkRW5kLmZyb20sRGVjb3JhdGlvbi53aWRnZXQoe3dpZGdldDogbmV3IExpbmVOdW1iZXJXaWRnZXQoMCxjb2RlYmxvY2tQYXJhbWV0ZXJzLG1heExpbmVOdW0sdHJ1ZSl9KSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBidWlsZGVyLmZpbmlzaCgpO1xuXHR9XG5cdGZ1bmN0aW9uIGNvbnZlcnRDb21tZW50TGlua3Moc3RhdGU6IEVkaXRvclN0YXRlLCBsaW5lOiBMaW5lLCBzb3VyY2VQYXRoOiBzdHJpbmcsIGJ1aWxkZXI6IFJhbmdlU2V0QnVpbGRlcjxEZWNvcmF0aW9uPiwgc291cmNlTW9kZTogYm9vbGVhbikge1xuXHRcdHN5bnRheFRyZWUoc3RhdGUpLml0ZXJhdGUoe1xuXHRcdFx0ZW50ZXI6IChzeW50YXhOb2RlKSA9PiB7XG5cdFx0XHRcdGlmIChzeW50YXhOb2RlLnR5cGUubmFtZS5pbmNsdWRlcyhcImNvbW1lbnRfaG1kLWNvZGVibG9ja1wiKSkge1xuXHRcdFx0XHRcdGNvbnN0IGNvbW1lbnRUZXh0ID0gc3RhdGUuc2xpY2VEb2Moc3ludGF4Tm9kZS5mcm9tLHN5bnRheE5vZGUudG8pO1xuXHRcdFx0XHRcdGNvbnN0IGxpbmtNYXRjaGVzID0gWy4uLmNvbW1lbnRUZXh0Lm1hdGNoQWxsKC8oPzpcXFtcXFtbXlxcXXxcXHJcXG5dKz8oPzpcXHxbXlxcXXxcXHJcXG5dKz8pP1xcXVxcXXxcXFsuKj9cXF1cXCguK1xcKSkvZyldO1xuXHRcdFx0XHRcdGxpbmtNYXRjaGVzLmZvckVhY2goKGxpbmtNYXRjaDogUmVnRXhwTWF0Y2hBcnJheSkgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKHR5cGVvZiBsaW5rTWF0Y2g/LmluZGV4ID09PSBcInVuZGVmaW5lZFwiKVxuXHRcdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0XHRjb25zdCBmcm9tID0gc3ludGF4Tm9kZS5mcm9tICsgbGlua01hdGNoLmluZGV4O1xuXHRcdFx0XHRcdFx0Y29uc3QgdG8gPSBmcm9tICsgbGlua01hdGNoWzBdLmxlbmd0aDtcblx0XHRcdFx0XHRcdGlmIChzb3VyY2VNb2RlIHx8IHN0YXRlLnNlbGVjdGlvbi5yYW5nZXMuc29tZSgocmFuZ2U6IFNlbGVjdGlvblJhbmdlKT0+cmFuZ2VJbnRlcmFjdGlvbihmcm9tLHRvLHJhbmdlKSkpIHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgbWRCcmVhayA9IGxpbmtNYXRjaFswXS5pbmRleE9mKFwiXShcIik7XG5cdFx0XHRcdFx0XHRcdC8vVE9ETyAoQG1heXVyYW5rdikgQWRkIGVkaXRvciB3aWRlIHZpZXdlciB0byBhbGxvdyBjbGlja2luZyBvbiBmaWxlcyB3aXRoIGN1cnNvciBpbnNpZGVcblx0XHRcdFx0XHRcdFx0aWYgKG1kQnJlYWsgPT09IC0xKSB7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3Qgd2lraWxpbmtTZXBhcmF0b3IgPSBsaW5rTWF0Y2hbMF0uaW5kZXhPZihcInxcIik7XG5cdFx0XHRcdFx0XHRcdFx0YnVpbGRlci5hZGQoZnJvbSsyLHRvLTIsRGVjb3JhdGlvbi5tYXJrKHtjbGFzczogXCJjbS1obWQtaW50ZXJuYWwtbGluayBjb2RlLXN0eWxlci1zb3VyY2UtbGlua1wiLCBhdHRyaWJ1dGVzOiB7ZGVzdGluYXRpb246IGxpbmtNYXRjaFswXS5zbGljZSgyLHdpa2lsaW5rU2VwYXJhdG9yIT09LTE/d2lraWxpbmtTZXBhcmF0b3I6LTIpfX0pKTtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRidWlsZGVyLmFkZChmcm9tKzEsZnJvbSttZEJyZWFrLERlY29yYXRpb24ubWFyayh7Y2xhc3M6IFwiY20tbGluayBjb2RlLXN0eWxlci1zb3VyY2UtbGlua1wiLCBhdHRyaWJ1dGVzOiB7ZGVzdGluYXRpb246IGxpbmtNYXRjaFswXS5zbGljZShtZEJyZWFrKzIsLTEpfX0pKTtcblx0XHRcdFx0XHRcdFx0XHRidWlsZGVyLmFkZChmcm9tK21kQnJlYWsrMix0by0xLERlY29yYXRpb24ubWFyayh7Y2xhc3M6IFwiY20tc3RyaW5nIGNtLXVybFwifSkpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9IGVsc2Vcblx0XHRcdFx0XHRcdFx0YnVpbGRlci5hZGQoZnJvbSx0byxEZWNvcmF0aW9uLnJlcGxhY2Uoe3dpZGdldDogbmV3IENvbW1lbnRMaW5rV2lkZ2V0KGxpbmtNYXRjaFswXSwgc291cmNlUGF0aCl9KSk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRmcm9tOiBsaW5lLmZyb20sXG5cdFx0XHR0bzogbGluZS50b1xuXHRcdH0pO1xuXHR9XG5cdGZ1bmN0aW9uIGJ1aWxkSW5saW5lRGVjb3JhdGlvbnMoc3RhdGU6IEVkaXRvclN0YXRlKTogRGVjb3JhdGlvblNldCB7XG5cdFx0aWYgKCFzZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnN5bnRheEhpZ2hsaWdodClcblx0XHRcdHJldHVybiBEZWNvcmF0aW9uLm5vbmU7XG5cdFx0Y29uc3QgYnVpbGRlciA9IG5ldyBSYW5nZVNldEJ1aWxkZXI8RGVjb3JhdGlvbj4oKTtcblx0XHRjb25zdCBzb3VyY2VNb2RlID0gaXNTb3VyY2VNb2RlKHN0YXRlKTtcblx0XHRzeW50YXhUcmVlKHN0YXRlKS5pdGVyYXRlKHtcblx0XHRcdGVudGVyOiAoc3ludGF4Tm9kZSk9Pntcblx0XHRcdFx0Y29uc3QgcmFuZ2VzID0gZ2V0SW5saW5lQ29kZVJhbmdlcyhzdGF0ZSxzeW50YXhOb2RlKTtcblx0XHRcdFx0aWYgKHJhbmdlcyA9PT0gbnVsbClcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdGNvbnN0IHtwYXJhbWV0ZXJzLHRleHQsc2VjdGlvbn0gPSByYW5nZXM7XG5cdFx0XHRcdGlmIChwYXJhbWV0ZXJzLnZhbHVlID09PSBudWxsKVxuXHRcdFx0XHRcdGFkZFVuc3R5bGVkSW5saW5lRGVjb3JhdGlvbnMoc3RhdGUsYnVpbGRlcixwYXJhbWV0ZXJzIGFzIHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIsIHZhbHVlOiBudWxsfSx0ZXh0LHNlY3Rpb24sc291cmNlTW9kZSk7XG5cdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHRhZGRTdHlsZWRJbmxpbmVEZWNvcmF0aW9ucyhzdGF0ZSxidWlsZGVyLHBhcmFtZXRlcnMgYXMge2Zyb206IG51bWJlciwgdG86IG51bWJlciwgdmFsdWU6IElubGluZUNvZGVQYXJhbWV0ZXJzfSx0ZXh0LHNlY3Rpb24sc291cmNlTW9kZSk7XG5cdFx0XHR9LFxuXHRcdH0pO1xuXHRcdHJldHVybiBidWlsZGVyLmZpbmlzaCgpO1xuXHR9XG5cdGZ1bmN0aW9uIGFkZFN0eWxlZElubGluZURlY29yYXRpb25zKHN0YXRlOiBFZGl0b3JTdGF0ZSwgYnVpbGRlcjogUmFuZ2VTZXRCdWlsZGVyPERlY29yYXRpb24+LCBwYXJhbWV0ZXJzOiB7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyLCB2YWx1ZTogSW5saW5lQ29kZVBhcmFtZXRlcnN9LCB0ZXh0OiB7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyLCB2YWx1ZTogc3RyaW5nfSwgc2VjdGlvbjoge2Zyb206IG51bWJlciwgdG86IG51bWJlcn0sIHNvdXJjZU1vZGU6IGJvb2xlYW4pIHtcblx0XHRpZiAoc291cmNlTW9kZSB8fCBzdGF0ZS5zZWxlY3Rpb24ucmFuZ2VzLnNvbWUoKHJhbmdlOiBTZWxlY3Rpb25SYW5nZSk9PnJhbmdlSW50ZXJhY3Rpb24oc2VjdGlvbi5mcm9tLHNlY3Rpb24udG8scmFuZ2UpKSlcblx0XHRcdGJ1aWxkZXIuYWRkKHBhcmFtZXRlcnMuZnJvbSwgcGFyYW1ldGVycy50bywgRGVjb3JhdGlvbi5tYXJrKHtjbGFzczogXCJjb2RlLXN0eWxlci1pbmxpbmUtcGFyYW1ldGVyc1wifSkpO1xuXHRcdGVsc2Uge1xuXHRcdFx0YnVpbGRlci5hZGQocGFyYW1ldGVycy5mcm9tLCBwYXJhbWV0ZXJzLnRvLCBEZWNvcmF0aW9uLnJlcGxhY2Uoe30pKTtcblx0XHRcdGlmIChwYXJhbWV0ZXJzLnZhbHVlPy50aXRsZSB8fCAocGFyYW1ldGVycy52YWx1ZT8uaWNvbiAmJiBnZXRMYW5ndWFnZUljb24ocGFyYW1ldGVycy52YWx1ZS5sYW5ndWFnZSxwbHVnaW4ubGFuZ3VhZ2VJY29ucykpKVxuXHRcdFx0XHRidWlsZGVyLmFkZChwYXJhbWV0ZXJzLmZyb20sIHBhcmFtZXRlcnMuZnJvbSwgRGVjb3JhdGlvbi5yZXBsYWNlKHt3aWRnZXQ6IG5ldyBPcGVuZXJXaWRnZXQocGFyYW1ldGVycy52YWx1ZSxwbHVnaW4pfSkpO1xuXHRcdH1cblx0XHRtb2RlSGlnaGxpZ2h0KHtzdGFydDogcGFyYW1ldGVycy50bywgdGV4dDogdGV4dC52YWx1ZSwgbGFuZ3VhZ2U6IHBhcmFtZXRlcnMudmFsdWUubGFuZ3VhZ2V9LGJ1aWxkZXIpO1xuXHR9XG5cblx0ZnVuY3Rpb24gY29udmVydFJlYWRkRm9sZCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24sIHJlYWRkTGFuZ3VhZ2VzOiBBcnJheTxzdHJpbmc+KSB7XG5cdFx0Y29uc3QgYWRkRWZmZWN0czogQXJyYXk8U3RhdGVFZmZlY3Q8dW5rbm93bj4+ID0gW107XG5cdFx0Zm9yIChsZXQgaXRlciA9ICh0cmFuc2FjdGlvbi5zdGF0ZS5maWVsZChoZWFkZXJEZWNvcmF0aW9ucyxmYWxzZSkgPz8gRGVjb3JhdGlvbi5ub25lKS5pdGVyKCk7IGl0ZXIudmFsdWUgIT09IG51bGw7IGl0ZXIubmV4dCgpKSB7IC8vVE9ETyAoQG1heXVyYW5rdikgUmVmYWN0b3I6IFRyeSBhbmQgbWFrZSB0aGlzIHN0YXJ0U3RhdGVcblx0XHRcdGlmICghaXRlci52YWx1ZS5zcGVjLndpZGdldC5jb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQuZW5hYmxlZCB8fCAhcmVhZGRMYW5ndWFnZXMuaW5jbHVkZXMoaXRlci52YWx1ZS5zcGVjLndpZGdldC5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlKSlcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRjb2RlYmxvY2tGb2xkQ2FsbGJhY2soaXRlci5mcm9tLHRyYW5zYWN0aW9uLnN0YXRlLChmb2xkU3RhcnQsZm9sZEVuZCk9Pntcblx0XHRcdFx0YWRkRWZmZWN0cy5wdXNoKGZvbGQub2Yoe2Zyb206IGZvbGRTdGFydC5mcm9tLHRvOiBmb2xkRW5kLnRvLHZhbHVlOiB7c3BlYzoge2xhbmd1YWdlOiAoaXRlci52YWx1ZSBhcyBEZWNvcmF0aW9uKS5zcGVjLndpZGdldC5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlfX19KSk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0cmV0dXJuIGFkZEVmZmVjdHM7XG5cdH1cblx0ZnVuY3Rpb24gaXNGb2xkZWQoc3RhdGU6IEVkaXRvclN0YXRlLCBwb3NpdGlvbjogbnVtYmVyKTogYm9vbGVhbiB7XG5cdFx0bGV0IGZvbGRlZCA9IGZhbHNlO1xuXHRcdHN0YXRlLmZpZWxkKGZvbGREZWNvcmF0aW9ucyxmYWxzZSk/LmJldHdlZW4ocG9zaXRpb24scG9zaXRpb24sKCk9Pntcblx0XHRcdGZvbGRlZCA9IHRydWU7XG5cdFx0fSk7XG5cdFx0cmV0dXJuIGZvbGRlZDtcblx0fVxuXHRmdW5jdGlvbiBkb2N1bWVudEZvbGQoc3RhdGU6IEVkaXRvclN0YXRlLCB0b0ZvbGQ/OiBib29sZWFuKTogQXJyYXk8U3RhdGVFZmZlY3Q8dW5rbm93bj4+IHtcblx0XHRjb25zdCBhZGRFZmZlY3RzOiBBcnJheTxTdGF0ZUVmZmVjdDx1bmtub3duPj4gPSBbXTtcblx0XHRjb25zdCByZXNldCA9ICh0eXBlb2YgdG9Gb2xkID09PSBcInVuZGVmaW5lZFwiKTtcblx0XHRmb3IgKGxldCBpdGVyID0gKHN0YXRlLmZpZWxkKGhlYWRlckRlY29yYXRpb25zLGZhbHNlKSA/PyBEZWNvcmF0aW9uLm5vbmUpLml0ZXIoKTsgaXRlci52YWx1ZSAhPT0gbnVsbDsgaXRlci5uZXh0KCkpIHtcblx0XHRcdGlmIChpdGVyLnZhbHVlLnNwZWMud2lkZ2V0LmhpZGRlbilcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRjb25zdCBmb2xkZWQgPSBpdGVyLnZhbHVlLnNwZWMud2lkZ2V0LmZvbGRlZDtcblx0XHRcdGNvbnN0IGRlZmF1bHRGb2xkID0gaXRlci52YWx1ZS5zcGVjLndpZGdldC5jb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQuZW5hYmxlZDtcblx0XHRcdGNvZGVibG9ja0ZvbGRDYWxsYmFjayhpdGVyLmZyb20sc3RhdGUsKGZvbGRTdGFydCxmb2xkRW5kKT0+e1xuXHRcdFx0XHRpZiAoKCFyZXNldCAmJiB0b0ZvbGQgJiYgIWZvbGRlZCkgfHwgKHJlc2V0ICYmICFmb2xkZWQgJiYgZGVmYXVsdEZvbGQpKVxuXHRcdFx0XHRcdGFkZEVmZmVjdHMucHVzaChmb2xkLm9mKHtmcm9tOiBmb2xkU3RhcnQuZnJvbSwgdG86IGZvbGRFbmQudG8sIHZhbHVlOiB7c3BlYzoge2xhbmd1YWdlOiAoaXRlci52YWx1ZSBhcyBEZWNvcmF0aW9uKS5zcGVjLndpZGdldC5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlfX19KSk7XG5cdFx0XHRcdGVsc2UgaWYgKCghcmVzZXQgJiYgIXRvRm9sZCAmJiBmb2xkZWQpIHx8IChyZXNldCAmJiBmb2xkZWQgJiYgIWRlZmF1bHRGb2xkKSlcblx0XHRcdFx0XHRhZGRFZmZlY3RzLnB1c2godW5mb2xkLm9mKHtmcm9tOiBmb2xkU3RhcnQuZnJvbSwgdG86IGZvbGRFbmQudG99KSk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0cmV0dXJuIGFkZEVmZmVjdHM7XG5cdH1cblxuXHRyZXR1cm4gW1xuXHRcdGludGVyYWN0aW9uLFxuXHRcdGlnbm9yZUxpc3RlbmVyLGlnbm9yZUZpbGVMaXN0ZW5lcixcblx0XHRjdXJzb3JGb2xkRXh0ZW5kZXIoKSxkb2N1bWVudEZvbGRFeHRlbmRlcigpLHNldHRpbmdzQ2hhbmdlRXh0ZW5kZXIoKSxcblx0XHRzZXR0aW5nc1N0YXRlLGNoYXJXaWR0aFN0YXRlLGxpdmVQcmV2aWV3Q29tcGFydG1lbnQub2YoW10pLGlnbm9yZUNvbXBhcnRtZW50Lm9mKFtdKSxcblx0XTtcbn1cblxuY29uc3QgZm9sZDogU3RhdGVFZmZlY3RUeXBlPHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIsIHZhbHVlOiB7c3BlYzoge2xhbmd1YWdlOiBzdHJpbmd9fX0+ID0gU3RhdGVFZmZlY3QuZGVmaW5lKCk7XG5jb25zdCB1bmZvbGQ6IFN0YXRlRWZmZWN0VHlwZTx7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyfT4gPSBTdGF0ZUVmZmVjdC5kZWZpbmUoKTtcbmNvbnN0IGhpZGVGb2xkOiBTdGF0ZUVmZmVjdFR5cGU8UmFuZ2U8RGVjb3JhdGlvbj4+ID0gU3RhdGVFZmZlY3QuZGVmaW5lKCk7XG5jb25zdCB1bmhpZGVGb2xkOiBTdGF0ZUVmZmVjdFR5cGU8UmFuZ2U8RGVjb3JhdGlvbj4+ID0gU3RhdGVFZmZlY3QuZGVmaW5lKCk7XG5jb25zdCByZW1vdmVGb2xkOiBTdGF0ZUVmZmVjdFR5cGU8QXJyYXk8c3RyaW5nPj4gPSBTdGF0ZUVmZmVjdC5kZWZpbmUoKTtcbmNvbnN0IGZvbGRBbGw6IFN0YXRlRWZmZWN0VHlwZTx7dG9Gb2xkPzogYm9vbGVhbn0+ID0gU3RhdGVFZmZlY3QuZGVmaW5lKCk7XG5leHBvcnQgY29uc3QgcmVyZW5kZXI6IFN0YXRlRWZmZWN0VHlwZTx7cG9zOiBudW1iZXJ9PiA9IFN0YXRlRWZmZWN0LmRlZmluZSgpO1xuXG5mdW5jdGlvbiBjb2RlYmxvY2tGb2xkQ2FsbGJhY2soc3RhcnRQb3NpdGlvbjogbnVtYmVyLCBzdGF0ZTogRWRpdG9yU3RhdGUsIGZvbGRDYWxsYmFjazogKGZvbGRTdGFydDogTGluZSwgZm9sZEVuZDogTGluZSk9PnZvaWQpIHtcblx0Y29uc3QgZm9sZFN0YXJ0ID0gc3RhdGUuZG9jLmxpbmVBdChzdGFydFBvc2l0aW9uKTtcblx0Y29uc3Qgc3RhcnREZWxpbWl0ZXIgPSB0ZXN0T3BlbmluZ0xpbmUoZm9sZFN0YXJ0LnRleHQudG9TdHJpbmcoKSk7XG5cdGxldCBmb2xkRW5kOiBMaW5lIHwgbnVsbCA9IG51bGw7XG5cdGZvciAobGV0IGkgPSBmb2xkU3RhcnQubnVtYmVyKzE7IGkgPD0gc3RhdGUuZG9jLmxpbmVzOyBpKyspIHtcblx0XHRjb25zdCBsaW5lID0gc3RhdGUuZG9jLmxpbmUoaSk7XG5cdFx0Y29uc3QgbGluZVRleHQgPSBsaW5lLnRleHQudG9TdHJpbmcoKTtcblx0XHRpZiAodGVzdE9wZW5pbmdMaW5lKGxpbmVUZXh0KSA9PT0gc3RhcnREZWxpbWl0ZXIpIHtcblx0XHRcdGZvbGRFbmQgPSBsaW5lO1xuXHRcdFx0YnJlYWs7XG5cdFx0fVxuXHR9XG5cdGlmIChmb2xkRW5kICE9PSBudWxsKVxuXHRcdGZvbGRDYWxsYmFjayhmb2xkU3RhcnQsZm9sZEVuZCk7XG59XG5cbmZ1bmN0aW9uIGdldElubGluZUNvZGVSYW5nZXMoc3RhdGU6IEVkaXRvclN0YXRlLCBzeW50YXhOb2RlOiBTeW50YXhOb2RlUmVmKToge3BhcmFtZXRlcnM6IHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIsIHZhbHVlOiBJbmxpbmVDb2RlUGFyYW1ldGVycyB8IG51bGx9LCB0ZXh0OiB7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyLCB2YWx1ZTogc3RyaW5nfSwgc2VjdGlvbjoge2Zyb206IG51bWJlciwgdG86IG51bWJlcn19IHwgbnVsbCB7XG5cdGNvbnN0IGRlbGltaXRlclNpemUgPSBnZXRJbmxpbmVEZWxpbWl0ZXJTaXplKHN5bnRheE5vZGUpO1xuXHRpZiAoZGVsaW1pdGVyU2l6ZSA9PT0gbnVsbClcblx0XHRyZXR1cm4gbnVsbDtcblx0Y29uc3QgaW5saW5lQ29kZVRleHQgPSBzdGF0ZS5kb2Muc2xpY2VTdHJpbmcoc3ludGF4Tm9kZS5mcm9tLCBzeW50YXhOb2RlLnRvKTtcblx0Y29uc3Qge3BhcmFtZXRlcnMsdGV4dH0gPSBwYXJzZUlubGluZUNvZGUoaW5saW5lQ29kZVRleHQpO1xuXHRjb25zdCBwYXJhbWV0ZXJzTGVuZ3RoID0gaW5saW5lQ29kZVRleHQubGFzdEluZGV4T2YodGV4dCk7XG5cdHJldHVybiB7cGFyYW1ldGVyczoge2Zyb206IHN5bnRheE5vZGUuZnJvbSwgdG86IHN5bnRheE5vZGUuZnJvbStwYXJhbWV0ZXJzTGVuZ3RoLCB2YWx1ZTogcGFyYW1ldGVyc30sIHRleHQ6IHtmcm9tOiBzeW50YXhOb2RlLmZyb20rcGFyYW1ldGVyc0xlbmd0aCsxLHRvOiBzeW50YXhOb2RlLnRvICx2YWx1ZTogdGV4dH0sIHNlY3Rpb246IHtmcm9tOiBzeW50YXhOb2RlLmZyb20tZGVsaW1pdGVyU2l6ZSwgdG86IHN5bnRheE5vZGUudG8rZGVsaW1pdGVyU2l6ZX19O1xufVxuZnVuY3Rpb24gZ2V0SW5saW5lRGVsaW1pdGVyU2l6ZShzeW50YXhOb2RlOiBTeW50YXhOb2RlUmVmKTogbnVtYmVyIHwgbnVsbCB7XG5cdGNvbnN0IHByb3BlcnRpZXMgPSBuZXcgU2V0KHN5bnRheE5vZGUubm9kZS50eXBlLnByb3A8c3RyaW5nPih0b2tlbkNsYXNzTm9kZVByb3ApPy5zcGxpdChcIiBcIikpO1xuXHRpZiAoIShwcm9wZXJ0aWVzLmhhcyhcImlubGluZS1jb2RlXCIpICYmICFwcm9wZXJ0aWVzLmhhcyhcImZvcm1hdHRpbmdcIikpKVxuXHRcdHJldHVybiBudWxsO1xuXHRjb25zdCBwcmV2aW91c1NpYmxpbmcgPSBzeW50YXhOb2RlLm5vZGUucHJldlNpYmxpbmc7XG5cdGlmICghcHJldmlvdXNTaWJsaW5nKVxuXHRcdHJldHVybiBudWxsO1xuXHRyZXR1cm4gcHJldmlvdXNTaWJsaW5nLnRvLXByZXZpb3VzU2libGluZy5mcm9tO1xufVxuZnVuY3Rpb24gYWRkVW5zdHlsZWRJbmxpbmVEZWNvcmF0aW9ucyhzdGF0ZTogRWRpdG9yU3RhdGUsIGJ1aWxkZXI6IFJhbmdlU2V0QnVpbGRlcjxEZWNvcmF0aW9uPiwgcGFyYW1ldGVyczoge2Zyb206IG51bWJlciwgdG86IG51bWJlciwgdmFsdWU6IG51bGx9LCB0ZXh0OiB7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyLCB2YWx1ZTogc3RyaW5nfSwgc2VjdGlvbjoge2Zyb206IG51bWJlciwgdG86IG51bWJlcn0sIHNvdXJjZU1vZGU6IGJvb2xlYW4pIHtcblx0aWYgKHRleHQudmFsdWUpIHtcblx0XHRpZiAoIXN0YXRlLnNlbGVjdGlvbi5yYW5nZXMuc29tZSgocmFuZ2U6IFNlbGVjdGlvblJhbmdlKT0+cmFuZ2UudG8gPj0gc2VjdGlvbi5mcm9tICYmIHJhbmdlLmZyb20gPD0gc2VjdGlvbi50bykgJiYgIXNvdXJjZU1vZGUpXG5cdFx0XHRidWlsZGVyLmFkZChwYXJhbWV0ZXJzLmZyb20sIHBhcmFtZXRlcnMudG8sIERlY29yYXRpb24ucmVwbGFjZSh7fSkpO1xuXHR9XG59XG5mdW5jdGlvbiBtb2RlSGlnaGxpZ2h0KHtzdGFydCx0ZXh0LGxhbmd1YWdlfToge3N0YXJ0OiBudW1iZXIsIHRleHQ6IHN0cmluZywgbGFuZ3VhZ2U6IHN0cmluZ30sIGJ1aWxkZXI6IFJhbmdlU2V0QnVpbGRlcjxEZWNvcmF0aW9uPikge1xuXHQvL0B0cy1leHBlY3QtZXJyb3IgVW5kb2N1bWVudGVkIE9ic2lkaWFuIEFQSVxuXHRjb25zdCBtb2RlID0gd2luZG93LkNvZGVNaXJyb3IuZ2V0TW9kZSh3aW5kb3cuQ29kZU1pcnJvci5kZWZhdWx0cyx3aW5kb3cuQ29kZU1pcnJvci5maW5kTW9kZUJ5TmFtZShsYW5ndWFnZSk/Lm1pbWUpO1xuXHRjb25zdCBzdGF0ZSA9IHdpbmRvdy5Db2RlTWlycm9yLnN0YXJ0U3RhdGUobW9kZSk7XG5cdGlmIChtb2RlPy50b2tlbikge1xuXHRcdGNvbnN0IHN0cmVhbSA9IG5ldyB3aW5kb3cuQ29kZU1pcnJvci5TdHJpbmdTdHJlYW0odGV4dCk7XG5cdFx0d2hpbGUgKCFzdHJlYW0uZW9sKCkpIHtcblx0XHRcdGNvbnN0IHN0eWxlID0gbW9kZS50b2tlbihzdHJlYW0sc3RhdGUpO1xuXHRcdFx0aWYgKHN0eWxlKVxuXHRcdFx0XHRidWlsZGVyLmFkZChzdGFydCtzdHJlYW0uc3RhcnQsIHN0YXJ0K3N0cmVhbS5wb3MsIERlY29yYXRpb24ubWFyayh7Y2xhc3M6IGBjbS0ke3N0eWxlfWB9KSk7XG5cdFx0XHRzdHJlYW0uc3RhcnQgPSBzdHJlYW0ucG9zO1xuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZWRpdGluZ0RvY3VtZW50Rm9sZCh2aWV3OiBFZGl0b3JWaWV3LCB0b0ZvbGQ/OiBib29sZWFuKSB7XG5cdHZpZXcuZGlzcGF0Y2goe2VmZmVjdHM6IGZvbGRBbGwub2YoKHR5cGVvZiB0b0ZvbGQgIT09IFwidW5kZWZpbmVkXCIpP3t0b0ZvbGQ6IHRvRm9sZH06e30pfSk7XG5cdHZpZXcucmVxdWVzdE1lYXN1cmUoKTtcbn1cbmZ1bmN0aW9uIGZvbGRPbkNsaWNrKHZpZXc6IEVkaXRvclZpZXcsIHRhcmdldDogSFRNTEVsZW1lbnQsIGZvbGRlZDogYm9vbGVhbiwgbGFuZ3VhZ2U6IHN0cmluZykge1xuXHRjb2RlYmxvY2tGb2xkQ2FsbGJhY2sodmlldy5wb3NBdERPTSh0YXJnZXQpLHZpZXcuc3RhdGUsKGZvbGRTdGFydCxmb2xkRW5kKT0+e1xuXHRcdHZpZXcuZGlzcGF0Y2goe2VmZmVjdHM6IGZvbGRMaW5lcyghZm9sZGVkLHtmcm9tOiBmb2xkU3RhcnQuZnJvbSwgdG86IGZvbGRFbmQudG8sIHZhbHVlOiB7c3BlYzoge2xhbmd1YWdlOiBsYW5ndWFnZX19fSl9KTtcblx0XHR2aWV3LnJlcXVlc3RNZWFzdXJlKCk7XG5cdH0pO1xufVxuZnVuY3Rpb24gZm9sZExpbmVzKHRvRm9sZDogYm9vbGVhbiwgZm9sZEluZm86IHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIsdmFsdWU6IHtzcGVjOiB7bGFuZ3VhZ2U6IHN0cmluZ319fSk6IFN0YXRlRWZmZWN0PHVua25vd24+IHtcblx0cmV0dXJuIHRvRm9sZD9mb2xkLm9mKGZvbGRJbmZvKTp1bmZvbGQub2Yoe2Zyb206IGZvbGRJbmZvLmZyb20sIHRvOiBmb2xkSW5mby50b30pO1xufVxuZnVuY3Rpb24gZm9sZFJlZ2lvbih7ZnJvbTogZm9sZEZyb20sIHRvOiBmb2xkVG8sIHZhbHVlOiB7c3BlYzoge2xhbmd1YWdlfX19OiB7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyLHZhbHVlOiB7c3BlYzoge2xhbmd1YWdlOiBzdHJpbmd9fX0pOiBSYW5nZTxEZWNvcmF0aW9uPiB7XG5cdHJldHVybiBmb2xkRGVjb3JhdGlvbihsYW5ndWFnZSkucmFuZ2UoZm9sZEZyb20sZm9sZFRvKTtcbn1cbmZ1bmN0aW9uIHVuZm9sZFJlZ2lvbih7ZnJvbTogZm9sZEZyb20sIHRvOiBmb2xkVG99OiB7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyfSkge1xuXHRyZXR1cm4ge2ZpbHRlcjogKGZyb206IG51bWJlciwgdG86IG51bWJlcikgPT4gKHRvIDw9IGZvbGRGcm9tIHx8IGZyb20gPj0gZm9sZFRvKSwgZmlsdGVyRnJvbTogZm9sZEZyb20sIGZpbHRlclRvOiBmb2xkVG99O1xufVxuZnVuY3Rpb24gcmVtb3ZlRm9sZExhbmd1YWdlcyhsYW5ndWFnZXM6IEFycmF5PHN0cmluZz4pIHtcblx0cmV0dXJuIHtmaWx0ZXI6IChmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIsIHZhbHVlOiBEZWNvcmF0aW9uKSA9PiAhbGFuZ3VhZ2VzLmluY2x1ZGVzKHZhbHVlPy5zcGVjPy5sYW5ndWFnZSl9O1xufVxuZnVuY3Rpb24gdW5oaWRlRm9sZFVwZGF0ZShyYW5nZTogUmFuZ2U8RGVjb3JhdGlvbj4pIHtcblx0cmV0dXJuIHtmaWx0ZXJGcm9tOiByYW5nZS5mcm9tLCBmaWx0ZXJUbzogcmFuZ2UudG8sIGZpbHRlcjogKGZyb206IG51bWJlciwgdG86IG51bWJlcik9PiEoZnJvbSA9PT0gcmFuZ2UuZnJvbSAmJiB0byA9PT0gcmFuZ2UudG8pfTtcbn1cbmZ1bmN0aW9uIGZvbGREZWNvcmF0aW9uKGxhbmd1YWdlOiBzdHJpbmcpOiBEZWNvcmF0aW9uIHtcblx0cmV0dXJuIERlY29yYXRpb24ucmVwbGFjZSh7YmxvY2s6IHRydWUsIGxhbmd1YWdlOiBsYW5ndWFnZX0pO1xufVxuZnVuY3Rpb24gcmFuZ2VJbnRlcmFjdGlvbihmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIsIHJhbmdlOiBTZWxlY3Rpb25SYW5nZSk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gKGZyb20gPD0gcmFuZ2UuaGVhZCAmJiByYW5nZS5oZWFkIDw9IHRvKSB8fCAoZnJvbSA8PSByYW5nZS5hbmNob3IgJiYgcmFuZ2UuYW5jaG9yIDw9IHRvKTtcbn1cblxuZnVuY3Rpb24gaXNGaWxlSWdub3JlZChzdGF0ZTogRWRpdG9yU3RhdGUpOiBib29sZWFuIHtcblx0Y29uc3QgZmlsZVBhdGggPSBzdGF0ZS5maWVsZChlZGl0b3JJbmZvRmllbGQpPy5maWxlPy5wYXRoO1xuXHRpZiAodHlwZW9mIGZpbGVQYXRoICE9PSBcInVuZGVmaW5lZFwiKVxuXHRcdHJldHVybiB0aGlzLmFwcC5tZXRhZGF0YUNhY2hlLmdldENhY2hlKGZpbGVQYXRoKT8uZnJvbnRtYXR0ZXI/LltcImNvZGUtc3R5bGVyLWlnbm9yZVwiXT8udG9TdHJpbmcoKSA9PT0gXCJ0cnVlXCI7XG5cdHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGlzU291cmNlTW9kZShzdGF0ZTogRWRpdG9yU3RhdGUpOiBib29sZWFuIHtcblx0cmV0dXJuICFzdGF0ZS5maWVsZChlZGl0b3JMaXZlUHJldmlld0ZpZWxkKTtcbn1cbmZ1bmN0aW9uIHNldERpZmZlcmVuY2UoYXJyYXkxOiBBcnJheTx1bmtub3duPiwgYXJyYXkyOiBBcnJheTx1bmtub3duPikge1xuXHRyZXR1cm4gYXJyYXkxLmZpbHRlcihlbGVtZW50ID0+ICFhcnJheTIuaW5jbHVkZXMoZWxlbWVudCkpO1xufVxuIiwgImltcG9ydCB7IE1hcmtkb3duUHJldmlld1JlbmRlcmVyLCBQbHVnaW4gfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IENvZGVTdHlsZXJQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcbmltcG9ydCB7IENvZGVTdHlsZXJUaGVtZSwgRVhFQ1VURV9DT0RFX1NVUFBPUlRFRF9MQU5HVUFHRVMgfSBmcm9tIFwiLi4vU2V0dGluZ3NcIjtcbmltcG9ydCB7IENvZGVCbG9ja0FyZ3MsIGdldEFyZ3MgfSBmcm9tIFwiLi4vRXh0ZXJuYWwvRXhlY3V0ZUNvZGUvQ29kZUJsb2NrQXJnc1wiO1xuaW1wb3J0IHsgZ2V0UmVmZXJlbmNlIH0gZnJvbSBcInNyYy9SZWZlcmVuY2luZ1wiO1xuaW1wb3J0IHsgUmVmZXJlbmNlIH0gZnJvbSBcIi4vUmVmZXJlbmNlUGFyc2luZ1wiO1xuaW1wb3J0IHsgYmFzZW5hbWUgfSBmcm9tIFwicGF0aFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvZGVibG9ja1BhcmFtZXRlcnMge1xuXHRsYW5ndWFnZTogc3RyaW5nO1xuXHR0aXRsZTogc3RyaW5nO1xuXHRyZWZlcmVuY2U6IHN0cmluZztcblx0Zm9sZDoge1xuXHRcdGVuYWJsZWQ6IGJvb2xlYW47XG5cdFx0cGxhY2Vob2xkZXI6IHN0cmluZztcblx0fVxuXHRsaW5lTnVtYmVyczoge1xuXHRcdGFsd2F5c0VuYWJsZWQ6IGJvb2xlYW47XG5cdFx0YWx3YXlzRGlzYWJsZWQ6IGJvb2xlYW47XG5cdFx0b2Zmc2V0OiBudW1iZXI7XG5cdH0sXG5cdGxpbmVVbndyYXA6IHtcblx0XHRhbHdheXNFbmFibGVkOiBib29sZWFuO1xuXHRcdGFsd2F5c0Rpc2FibGVkOiBib29sZWFuO1xuXHRcdGFjdGl2ZVdyYXA6IGJvb2xlYW47XG5cdH0sXG5cdGhpZ2hsaWdodHM6IHtcblx0XHRkZWZhdWx0OiBIaWdobGlnaHRzO1xuXHRcdGFsdGVybmF0aXZlOiBSZWNvcmQ8c3RyaW5nLEhpZ2hsaWdodHM+XG5cdH0sXG5cdGlnbm9yZTogYm9vbGVhbjtcblx0ZXh0ZXJuYWxSZWZlcmVuY2U/OiBSZWZlcmVuY2U7XG59XG5leHBvcnQgaW50ZXJmYWNlIEhpZ2hsaWdodHMge1xuXHRsaW5lTnVtYmVyczogQXJyYXk8bnVtYmVyPjtcblx0cGxhaW5UZXh0OiBBcnJheTxzdHJpbmc+O1xuXHRyZWd1bGFyRXhwcmVzc2lvbnM6IEFycmF5PFJlZ0V4cD47XG59XG5pbnRlcmZhY2UgRXh0ZXJuYWxQbHVnaW4gZXh0ZW5kcyBQbHVnaW4ge1xuXHRzdXBwb3J0ZWRMYW5ndWFnZXM/OiBBcnJheTxzdHJpbmc+O1xuXHRjb2RlPzogKHNvdXJjZTogc3RyaW5nLCBzb3VyY2VQYXRoPzogc3RyaW5nKT0+UHJvbWlzZTx7XG5cdFx0c3RhcnQ6IG51bWJlcjtcblx0XHRjb2RlOiBzdHJpbmc7XG5cdFx0bGFuZ3VhZ2U6IHN0cmluZztcblx0XHRoaWdobGlnaHQ6IHN0cmluZztcblx0XHRsaW5lczogQXJyYXk8c3RyaW5nPjtcblx0XHRmaWxlUGF0aDogc3RyaW5nO1xuXHRcdGxpbmVudW1iZXI6IG51bWJlcjtcblx0fT47XG5cdGFuYWx5emVIaWdoTGlnaHRMaW5lcz86IChsaW5lczogc3RyaW5nW10sIHNvdXJjZTogc3RyaW5nIHwgc3RyaW5nW10pPT5NYXA8bnVtYmVyLGJvb2xlYW4+O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcGFyc2VDb2RlYmxvY2tTb3VyY2UoY29kZVNlY3Rpb246IEFycmF5PHN0cmluZz4sIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbiwgc291cmNlUGF0aD86IHN0cmluZyk6IFByb21pc2U8e2NvZGVibG9ja3NQYXJhbWV0ZXJzOiBBcnJheTxDb2RlYmxvY2tQYXJhbWV0ZXJzPiwgbmVzdGVkOiBib29sZWFufT4ge1xuXHQvLyBAdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0Y29uc3QgcGx1Z2luczogUmVjb3JkPHN0cmluZyxFeHRlcm5hbFBsdWdpbj4gPSBwbHVnaW4uYXBwLnBsdWdpbnMucGx1Z2lucztcblx0Y29uc3QgYWRtb25pdGlvbnM6IGJvb2xlYW4gPSAoXCJvYnNpZGlhbi1hZG1vbml0aW9uXCIgaW4gcGx1Z2lucyk7XG5cdGNvbnN0IGNvZGVibG9ja3M6IEFycmF5PEFycmF5PHN0cmluZz4+ID0gW107XG5cdGZ1bmN0aW9uIHBhcnNlQ29kZWJsb2NrU2VjdGlvbihjb2RlU2VjdGlvbjogQXJyYXk8c3RyaW5nPik6IHZvaWQge1xuXHRcdGlmIChjb2RlU2VjdGlvbi5sZW5ndGggPT09IDApXG5cdFx0XHRyZXR1cm47XG5cblx0XHRjb25zdCBvcGVuaW5nQ29kZWJsb2NrTGluZSA9IGdldE9wZW5pbmdMaW5lKGNvZGVTZWN0aW9uKTtcblx0XHRpZiAoIW9wZW5pbmdDb2RlYmxvY2tMaW5lKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0Y29uc3Qgb3BlbkRlbGltaXRlciA9IC9eXFxzKig/Oj5cXHMqKSooKD86YGBgK3x+fn4rKSkuKiQvLmV4ZWMob3BlbmluZ0NvZGVibG9ja0xpbmUpPy5bMV07XG5cdFx0aWYgKCFvcGVuRGVsaW1pdGVyKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0Y29uc3Qgb3BlbkRlbGltaXRlckluZGV4ID0gY29kZVNlY3Rpb24uaW5kZXhPZihvcGVuaW5nQ29kZWJsb2NrTGluZSk7XG5cdFx0Y29uc3QgY2xvc2VEZWxpbWl0ZXJJbmRleCA9IGNvZGVTZWN0aW9uLnNsaWNlKG9wZW5EZWxpbWl0ZXJJbmRleCsxKS5maW5kSW5kZXgoKGxpbmUpPT5uZXcgUmVnRXhwKGBeXFxcXHMqKD86PlxcXFxzKikqJHtvcGVuRGVsaW1pdGVyfSg/ISR7b3BlbkRlbGltaXRlclswXX0pJGApLnRlc3QobGluZSkpO1xuXHRcdGlmICghYWRtb25pdGlvbnMgfHwgIS9eXFxzKig/Oj5cXHMqKSooPzpgYGArfH5+fispICphZC0uKiQvLnRlc3Qob3BlbmluZ0NvZGVibG9ja0xpbmUpKVxuXHRcdFx0Y29kZWJsb2Nrcy5wdXNoKGNvZGVTZWN0aW9uLnNsaWNlKDAsb3BlbkRlbGltaXRlckluZGV4KzIrY2xvc2VEZWxpbWl0ZXJJbmRleCkpO1xuXHRcdGVsc2Vcblx0XHRcdHBhcnNlQ29kZWJsb2NrU2VjdGlvbihjb2RlU2VjdGlvbi5zbGljZShvcGVuRGVsaW1pdGVySW5kZXgrMSxvcGVuRGVsaW1pdGVySW5kZXgrMStjbG9zZURlbGltaXRlckluZGV4KSk7XG5cblx0XHRwYXJzZUNvZGVibG9ja1NlY3Rpb24oY29kZVNlY3Rpb24uc2xpY2Uob3BlbkRlbGltaXRlckluZGV4KzErY2xvc2VEZWxpbWl0ZXJJbmRleCsxKSk7XG5cdH1cblx0cGFyc2VDb2RlYmxvY2tTZWN0aW9uKGNvZGVTZWN0aW9uKTtcblx0cmV0dXJuIHtjb2RlYmxvY2tzUGFyYW1ldGVyczogYXdhaXQgKHR5cGVvZiBzb3VyY2VQYXRoICE9PSBcInVuZGVmaW5lZFwiP3BhcnNlQ29kZWJsb2Nrcyhjb2RlYmxvY2tzLHBsdWdpbixwbHVnaW5zLHNvdXJjZVBhdGgpOnBhcnNlQ29kZWJsb2Nrcyhjb2RlYmxvY2tzLHBsdWdpbixwbHVnaW5zKSksIG5lc3RlZDogY29kZWJsb2Nrc1swXT8hYXJyYXlzRXF1YWwoY29kZVNlY3Rpb24sY29kZWJsb2Nrc1swXSk6dHJ1ZX07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHBhcnNlQ29kZWJsb2Nrcyhjb2RlYmxvY2tzOiBBcnJheTxBcnJheTxzdHJpbmc+PiwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luLCBwbHVnaW5zOiBSZWNvcmQ8c3RyaW5nLEV4dGVybmFsUGx1Z2luPiwgc291cmNlUGF0aD86IHN0cmluZyk6IFByb21pc2U8QXJyYXk8Q29kZWJsb2NrUGFyYW1ldGVycz4+IHtcblx0Y29uc3QgY29kZWJsb2Nrc1BhcmFtZXRlcnM6IEFycmF5PENvZGVibG9ja1BhcmFtZXRlcnM+ID0gW107XG5cdGZvciAoY29uc3QgY29kZWJsb2NrTGluZXMgb2YgY29kZWJsb2Nrcykge1xuXHRcdGNvbnN0IGNvZGVibG9ja1BhcmFtZXRlcnMgPSBhd2FpdCAodHlwZW9mIHNvdXJjZVBhdGggIT09IFwidW5kZWZpbmVkXCI/cGFyc2VDb2RlYmxvY2soY29kZWJsb2NrTGluZXMscGx1Z2luLHBsdWdpbnMsc291cmNlUGF0aCk6cGFyc2VDb2RlYmxvY2soY29kZWJsb2NrTGluZXMscGx1Z2luLHBsdWdpbnMpKTtcblx0XHRpZiAoY29kZWJsb2NrUGFyYW1ldGVycyAhPT0gbnVsbClcblx0XHRcdGNvZGVibG9ja3NQYXJhbWV0ZXJzLnB1c2goY29kZWJsb2NrUGFyYW1ldGVycyk7XG5cdH1cblx0cmV0dXJuIGNvZGVibG9ja3NQYXJhbWV0ZXJzO1xufVxuYXN5bmMgZnVuY3Rpb24gcGFyc2VDb2RlYmxvY2soY29kZWJsb2NrTGluZXM6IEFycmF5PHN0cmluZz4sIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbiwgcGx1Z2luczogUmVjb3JkPHN0cmluZyxFeHRlcm5hbFBsdWdpbj4sIHNvdXJjZVBhdGg/OiBzdHJpbmcpOiBQcm9taXNlPENvZGVibG9ja1BhcmFtZXRlcnMgfCBudWxsPiB7XG5cdGNvbnN0IHBhcmFtZXRlckxpbmUgPSBnZXRQYXJhbWV0ZXJMaW5lKGNvZGVibG9ja0xpbmVzKTtcblx0aWYgKCFwYXJhbWV0ZXJMaW5lKVxuXHRcdHJldHVybiBudWxsO1xuXHRjb25zdCBjb2RlYmxvY2tQYXJhbWV0ZXJzID0gcGFyc2VDb2RlYmxvY2tQYXJhbWV0ZXJzKHBhcmFtZXRlckxpbmUscGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZSk7XG5cblx0aWYgKGlzQ29kZWJsb2NrSWdub3JlZChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlLHBsdWdpbi5zZXR0aW5ncy5wcm9jZXNzZWRDb2RlYmxvY2tzV2hpdGVsaXN0KSAmJiBjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlICE9PSBcInJlZmVyZW5jZVwiKVxuXHRcdHJldHVybiBudWxsO1xuXG5cdHJldHVybiBhd2FpdCAodHlwZW9mIHNvdXJjZVBhdGggIT09IFwidW5kZWZpbmVkXCI/cGx1Z2luQWRqdXN0UGFyYW1ldGVycyhjb2RlYmxvY2tQYXJhbWV0ZXJzLHBsdWdpbixwbHVnaW5zLGNvZGVibG9ja0xpbmVzLHNvdXJjZVBhdGgpOnBsdWdpbkFkanVzdFBhcmFtZXRlcnMoY29kZWJsb2NrUGFyYW1ldGVycyxwbHVnaW4scGx1Z2lucyxjb2RlYmxvY2tMaW5lcykpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQ29kZWJsb2NrUGFyYW1ldGVycyhwYXJhbWV0ZXJMaW5lOiBzdHJpbmcsIHRoZW1lOiBDb2RlU3R5bGVyVGhlbWUpOiBDb2RlYmxvY2tQYXJhbWV0ZXJzIHtcblx0Y29uc3QgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycyA9IHtcblx0XHRsYW5ndWFnZTogXCJcIixcblx0XHR0aXRsZTogXCJcIixcblx0XHRyZWZlcmVuY2U6IFwiXCIsXG5cdFx0Zm9sZDoge1xuXHRcdFx0ZW5hYmxlZDogZmFsc2UsXG5cdFx0XHRwbGFjZWhvbGRlcjogXCJcIixcblx0XHR9LFxuXHRcdGxpbmVOdW1iZXJzOiB7XG5cdFx0XHRhbHdheXNFbmFibGVkOiBmYWxzZSxcblx0XHRcdGFsd2F5c0Rpc2FibGVkOiBmYWxzZSxcblx0XHRcdG9mZnNldDogMCxcblx0XHR9LFxuXHRcdGxpbmVVbndyYXA6IHtcblx0XHRcdGFsd2F5c0VuYWJsZWQ6IGZhbHNlLFxuXHRcdFx0YWx3YXlzRGlzYWJsZWQ6IGZhbHNlLFxuXHRcdFx0YWN0aXZlV3JhcDogZmFsc2UsXG5cdFx0fSxcblx0XHRoaWdobGlnaHRzOiB7XG5cdFx0XHRkZWZhdWx0OiB7XG5cdFx0XHRcdGxpbmVOdW1iZXJzOiBbXSxcblx0XHRcdFx0cGxhaW5UZXh0OiBbXSxcblx0XHRcdFx0cmVndWxhckV4cHJlc3Npb25zOiBbXSxcblx0XHRcdH0sXG5cdFx0XHRhbHRlcm5hdGl2ZToge30sXG5cdFx0fSxcblx0XHRpZ25vcmU6IGZhbHNlLFxuXHR9O1xuXG5cdGlmIChwYXJhbWV0ZXJMaW5lLnN0YXJ0c1dpdGgoXCJgYGBcIikpXG5cdFx0cGFyYW1ldGVyTGluZSA9IHBhcmFtZXRlckxpbmUucmVwbGFjZSgvXmBgYCsoPz1bXmBdfCQpLyxcIlwiKTtcblx0ZWxzZSBpZiAocGFyYW1ldGVyTGluZS5zdGFydHNXaXRoKFwifn5+XCIpKVxuXHRcdHBhcmFtZXRlckxpbmUgPSBwYXJhbWV0ZXJMaW5lLnJlcGxhY2UoL15+fn4rKD89W15+XXwkKS8sXCJcIik7XG5cdGVsc2Vcblx0XHRyZXR1cm4gY29kZWJsb2NrUGFyYW1ldGVycztcblxuXHRjb25zdCBybWRNYXRjaCA9IC9eXFx7KC4rKVxcfSAqJC8uZXhlYyhwYXJhbWV0ZXJMaW5lKTtcblx0aWYgKHJtZE1hdGNoKVxuXHRcdHBhcmFtZXRlckxpbmUgPSBybWRNYXRjaFsxXTtcblxuXHRjb25zdCBsYW5ndWFnZUJyZWFrID0gcGFyYW1ldGVyTGluZS5pbmRleE9mKFwiIFwiKTtcblx0Y29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSA9IHBhcmFtZXRlckxpbmUuc2xpY2UoMCwobGFuZ3VhZ2VCcmVhayAhPT0gLTEpP2xhbmd1YWdlQnJlYWs6cGFyYW1ldGVyTGluZS5sZW5ndGgpLnRvTG93ZXJDYXNlKCk7XG5cdGlmIChsYW5ndWFnZUJyZWFrID09PSAtMSlcblx0XHRyZXR1cm4gY29kZWJsb2NrUGFyYW1ldGVycztcblx0cGFyYW1ldGVyTGluZSA9IHBhcmFtZXRlckxpbmUuc2xpY2UobGFuZ3VhZ2VCcmVhaysxKTtcblx0aWYgKHJtZE1hdGNoKVxuXHRcdHBhcmFtZXRlckxpbmUgPSBcInRpdGxlOlwiICsgcGFyYW1ldGVyTGluZTtcblxuXHRjb25zdCBwYXJhbWV0ZXJTdHJpbmdzID0gcGFyYW1ldGVyTGluZS5tYXRjaCgvKD86KD86cmVmfHJlZmVyZW5jZXx0aXRsZSk6KD86XFxbXFxbLio/XFxdXFxdfFxcWy4qP1xcXVxcKC4rXFwpKXxbXlxcc1wiJ10rfFwiW15cIl0qXCJ8J1teJ10qJykrL2cpO1xuXHRpZiAoIXBhcmFtZXRlclN0cmluZ3MpXG5cdFx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnM7XG5cblx0cGFyYW1ldGVyU3RyaW5ncy5mb3JFYWNoKChwYXJhbWV0ZXJTdHJpbmcpID0+IHBhcnNlQ29kZWJsb2NrUGFyYW1ldGVyU3RyaW5nKHBhcmFtZXRlclN0cmluZy5yZXBsYWNlKC8oPzpeLHwsJCkvZywgXCJcIiksY29kZWJsb2NrUGFyYW1ldGVycyx0aGVtZSkpO1xuXHRyZXR1cm4gY29kZWJsb2NrUGFyYW1ldGVycztcbn1cbmFzeW5jIGZ1bmN0aW9uIHBsdWdpbkFkanVzdFBhcmFtZXRlcnMoY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luLCBwbHVnaW5zOiBSZWNvcmQ8c3RyaW5nLEV4dGVybmFsUGx1Z2luPiwgY29kZWJsb2NrTGluZXM6IEFycmF5PHN0cmluZz4sIHNvdXJjZVBhdGg/OiBzdHJpbmcpOiBQcm9taXNlPENvZGVibG9ja1BhcmFtZXRlcnM+IHtcblx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgPT09IFwicmVmZXJlbmNlXCIpIHtcblx0XHRpZiAodHlwZW9mIHNvdXJjZVBhdGggPT09IFwidW5kZWZpbmVkXCIpXG5cdFx0XHR0aHJvdyBFcnJvcihcIlJlZmVyZW5jZSBibG9jayBoYXMgdW5kZWZpbmVkIHNvdXJjZVBhdGhcIik7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycyA9IGF3YWl0IGFkanVzdFJlZmVyZW5jZShjb2RlYmxvY2tQYXJhbWV0ZXJzLCBjb2RlYmxvY2tMaW5lcywgc291cmNlUGF0aCwgcGx1Z2luKTtcblx0fSAgZWxzZSBpZiAoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSA9PT0gXCJwcmV2aWV3XCIpXG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycyA9IGF3YWl0ICh0eXBlb2Ygc291cmNlUGF0aCAhPT0gXCJ1bmRlZmluZWRcIj9wbHVnaW5BZGp1c3RQcmV2aWV3Q29kZShjb2RlYmxvY2tQYXJhbWV0ZXJzLHBsdWdpbnMsY29kZWJsb2NrTGluZXMsc291cmNlUGF0aCk6cGx1Z2luQWRqdXN0UHJldmlld0NvZGUoY29kZWJsb2NrUGFyYW1ldGVycyxwbHVnaW5zLGNvZGVibG9ja0xpbmVzKSk7XG5cdGVsc2UgaWYgKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgPT09IFwiaW5jbHVkZVwiKVxuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMgPSBwbHVnaW5BZGp1c3RGaWxlSW5jbHVkZShjb2RlYmxvY2tQYXJhbWV0ZXJzLHBsdWdpbnMsY29kZWJsb2NrTGluZXMpO1xuXHRlbHNlIGlmICgvcnVuLVxcdyovLnRlc3QoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSkpXG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycyA9IHBsdWdpbkFkanVzdEV4ZWN1dGVDb2RlUnVuKGNvZGVibG9ja1BhcmFtZXRlcnMscGx1Z2luLHBsdWdpbnMpO1xuXHRjb2RlYmxvY2tQYXJhbWV0ZXJzID0gcGx1Z2luQWRqdXN0RXhlY3V0ZUNvZGUoY29kZWJsb2NrUGFyYW1ldGVycyxwbHVnaW5zLGNvZGVibG9ja0xpbmVzKTtcblx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnM7XG59XG5hc3luYyBmdW5jdGlvbiBhZGp1c3RSZWZlcmVuY2UoY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgY29kZWJsb2NrTGluZXM6IEFycmF5PHN0cmluZz4sIHNvdXJjZVBhdGg6IHN0cmluZywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogUHJvbWlzZTxDb2RlYmxvY2tQYXJhbWV0ZXJzPiB7XG5cdGNvbnN0IHJlZmVyZW5jZSA9IGF3YWl0IGdldFJlZmVyZW5jZShjb2RlYmxvY2tMaW5lcywgc291cmNlUGF0aCwgcGx1Z2luKTtcblx0aWYgKCFjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0Rpc2FibGVkICYmICFjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0VuYWJsZWQpIHtcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLm9mZnNldCA9IHJlZmVyZW5jZS5zdGFydExpbmUgLSAxO1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMuYWx3YXlzRW5hYmxlZCA9IEJvb2xlYW4ocmVmZXJlbmNlLnN0YXJ0TGluZSAhPT0gMSk7XG5cdH1cblx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgPT09IFwiXCIpXG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy50aXRsZSA9IHJlZmVyZW5jZS5leHRlcm5hbD8uaW5mbz8udGl0bGUgPz8gYmFzZW5hbWUocmVmZXJlbmNlLnBhdGgpO1xuXHRpZiAoY29kZWJsb2NrUGFyYW1ldGVycy5yZWZlcmVuY2UgPT09IFwiXCIpXG5cdFx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLnJlZmVyZW5jZSA9IHJlZmVyZW5jZS5leHRlcm5hbD8uaW5mbz8uZGlzcGxheVVybCA/PyByZWZlcmVuY2UuZXh0ZXJuYWw/LmluZm8/LnVybCA/PyBwbHVnaW4uYXBwLnZhdWx0LmFkYXB0ZXIuZ2V0RmlsZVBhdGgocmVmZXJlbmNlLnBhdGgpO1xuXHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlID0gcmVmZXJlbmNlLmxhbmd1YWdlO1xuXHRpZiAocmVmZXJlbmNlLmV4dGVybmFsKVxuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMuZXh0ZXJuYWxSZWZlcmVuY2UgPSByZWZlcmVuY2U7XG5cdHJldHVybiBjb2RlYmxvY2tQYXJhbWV0ZXJzO1xufVxuYXN5bmMgZnVuY3Rpb24gcGx1Z2luQWRqdXN0UHJldmlld0NvZGUoY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgcGx1Z2luczogUmVjb3JkPHN0cmluZyxFeHRlcm5hbFBsdWdpbj4sIGNvZGVibG9ja0xpbmVzOiBBcnJheTxzdHJpbmc+LCBzb3VyY2VQYXRoPzogc3RyaW5nKTogUHJvbWlzZTxDb2RlYmxvY2tQYXJhbWV0ZXJzPiB7XG5cdGlmIChwbHVnaW5zPy5bXCJvYnNpZGlhbi1jb2RlLXByZXZpZXdcIl0/LmNvZGUgJiYgcGx1Z2lucz8uW1wib2JzaWRpYW4tY29kZS1wcmV2aWV3XCJdPy5hbmFseXplSGlnaExpZ2h0TGluZXMpIHtcblx0XHRjb25zdCBjb2RlUHJldmlld1BhcmFtcyA9IGF3YWl0IHBsdWdpbnNbXCJvYnNpZGlhbi1jb2RlLXByZXZpZXdcIl0uY29kZShjb2RlYmxvY2tMaW5lcy5zbGljZSgxLC0xKS5qb2luKFwiXFxuXCIpLHNvdXJjZVBhdGgpO1xuXHRcdGlmICghY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5hbHdheXNEaXNhYmxlZCAmJiAhY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5hbHdheXNFbmFibGVkKSB7XG5cdFx0XHRpZiAodHlwZW9mIGNvZGVQcmV2aWV3UGFyYW1zLnN0YXJ0ID09PSBcIm51bWJlclwiKVxuXHRcdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLm9mZnNldCA9IGNvZGVQcmV2aWV3UGFyYW1zLnN0YXJ0IC0gMTtcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMuYWx3YXlzRW5hYmxlZCA9IEJvb2xlYW4oY29kZVByZXZpZXdQYXJhbXMubGluZW51bWJlcik7XG5cdFx0fVxuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMuaGlnaGxpZ2h0cy5kZWZhdWx0LmxpbmVOdW1iZXJzID0gWy4uLm5ldyBTZXQoY29kZWJsb2NrUGFyYW1ldGVycy5oaWdobGlnaHRzLmRlZmF1bHQubGluZU51bWJlcnMuY29uY2F0KEFycmF5LmZyb20ocGx1Z2luc1tcIm9ic2lkaWFuLWNvZGUtcHJldmlld1wiXS5hbmFseXplSGlnaExpZ2h0TGluZXMoY29kZVByZXZpZXdQYXJhbXMubGluZXMsY29kZVByZXZpZXdQYXJhbXMuaGlnaGxpZ2h0KSwocGFpcjogW251bWJlcixib29sZWFuXSk9PihwYWlyWzBdKSkpKV07XG5cdFx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgPT09IFwiXCIpXG5cdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLnRpdGxlID0gY29kZVByZXZpZXdQYXJhbXMuZmlsZVBhdGguc3BsaXQoXCJcXFxcXCIpLnBvcCgpPy5zcGxpdChcIi9cIikucG9wKCkgPz8gXCJcIjtcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlID0gY29kZVByZXZpZXdQYXJhbXMubGFuZ3VhZ2U7XG5cdH1cblx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnM7XG59XG5mdW5jdGlvbiBwbHVnaW5BZGp1c3RGaWxlSW5jbHVkZShjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBwbHVnaW5zOiBSZWNvcmQ8c3RyaW5nLEV4dGVybmFsUGx1Z2luPiwgY29kZWJsb2NrTGluZXM6IEFycmF5PHN0cmluZz4pOiBDb2RlYmxvY2tQYXJhbWV0ZXJzIHtcblx0aWYgKFwiZmlsZS1pbmNsdWRlXCIgaW4gcGx1Z2lucykge1xuXHRcdGNvbnN0IGZpbGVJbmNsdWRlTGFuZ3VhZ2UgPSAvaW5jbHVkZSAoXFx3KykvLmV4ZWMoY29kZWJsb2NrTGluZXNbMF0pPy5bMV07XG5cdFx0aWYgKHR5cGVvZiBmaWxlSW5jbHVkZUxhbmd1YWdlICE9PSBcInVuZGVmaW5lZFwiKVxuXHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSA9IGZpbGVJbmNsdWRlTGFuZ3VhZ2U7XG5cdH1cblx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnM7XG59XG5mdW5jdGlvbiBwbHVnaW5BZGp1c3RFeGVjdXRlQ29kZShjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBwbHVnaW5zOiBSZWNvcmQ8c3RyaW5nLEV4dGVybmFsUGx1Z2luPiwgY29kZWJsb2NrTGluZXM6IEFycmF5PHN0cmluZz4pOiBDb2RlYmxvY2tQYXJhbWV0ZXJzIHtcblx0aWYgKFwiZXhlY3V0ZS1jb2RlXCIgaW4gcGx1Z2lucykge1xuXHRcdGNvbnN0IGNvZGVibG9ja0FyZ3M6IENvZGVCbG9ja0FyZ3MgPSBnZXRBcmdzKGNvZGVibG9ja0xpbmVzWzBdKTtcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLnRpdGxlID0gY29kZWJsb2NrUGFyYW1ldGVycy50aXRsZSA/PyBjb2RlYmxvY2tBcmdzPy5sYWJlbCA/PyBcIlwiO1xuXHR9XG5cdHJldHVybiBjb2RlYmxvY2tQYXJhbWV0ZXJzO1xufVxuZnVuY3Rpb24gcGx1Z2luQWRqdXN0RXhlY3V0ZUNvZGVSdW4oY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luLCBwbHVnaW5zOiBSZWNvcmQ8c3RyaW5nLEV4dGVybmFsUGx1Z2luPik6IENvZGVibG9ja1BhcmFtZXRlcnMge1xuXHRpZiAoXCJleGVjdXRlLWNvZGVcIiBpbiBwbHVnaW5zKSB7XG5cdFx0aWYgKEVYRUNVVEVfQ09ERV9TVVBQT1JURURfTEFOR1VBR0VTLmluY2x1ZGVzKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2Uuc2xpY2UoNCkpICYmICFpc0NvZGVibG9ja0lnbm9yZWQoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSxwbHVnaW4uc2V0dGluZ3MucHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdCkpXG5cdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlID0gY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZS5zbGljZSg0KTtcblx0fVxuXHRyZXR1cm4gY29kZWJsb2NrUGFyYW1ldGVycztcbn1cblxuZnVuY3Rpb24gcGFyc2VDb2RlYmxvY2tQYXJhbWV0ZXJTdHJpbmcocGFyYW1ldGVyU3RyaW5nOiBzdHJpbmcsIGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHRoZW1lOiBDb2RlU3R5bGVyVGhlbWUpOiB2b2lkIHtcblx0aWYgKHBhcmFtZXRlclN0cmluZyA9PT0gXCJpZ25vcmVcIilcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmlnbm9yZSA9IHRydWU7XG5cdGVsc2UgaWYgKC9edGl0bGVbOj1dLy50ZXN0KHBhcmFtZXRlclN0cmluZykpXG5cdFx0bWFuYWdlVGl0bGUocGFyYW1ldGVyU3RyaW5nLGNvZGVibG9ja1BhcmFtZXRlcnMpO1xuXHRlbHNlIGlmICgvXnJlZls6PV0vLnRlc3QocGFyYW1ldGVyU3RyaW5nKSB8fCAvXnJlZmVyZW5jZVs6PV0vLnRlc3QocGFyYW1ldGVyU3RyaW5nKSlcblx0XHRtYW5hZ2VSZWZlcmVuY2UocGFyYW1ldGVyU3RyaW5nLGNvZGVibG9ja1BhcmFtZXRlcnMpO1xuXHRlbHNlIGlmICgvXmZvbGRbOj1dPy8udGVzdChwYXJhbWV0ZXJTdHJpbmcpKVxuXHRcdG1hbmFnZUZvbGRpbmcocGFyYW1ldGVyU3RyaW5nLGNvZGVibG9ja1BhcmFtZXRlcnMpO1xuXHRlbHNlIGlmICgvXmxuWzo9XS8udGVzdChwYXJhbWV0ZXJTdHJpbmcpKVxuXHRcdG1hbmFnZUxpbmVOdW1iZXJpbmcocGFyYW1ldGVyU3RyaW5nLGNvZGVibG9ja1BhcmFtZXRlcnMpO1xuXHRlbHNlIGlmICgvXnVud3JhcFs6PV0/Ly50ZXN0KHBhcmFtZXRlclN0cmluZykgfHwgcGFyYW1ldGVyU3RyaW5nID09PSBcIndyYXBcIilcblx0XHRtYW5hZ2VXcmFwcGluZyhwYXJhbWV0ZXJTdHJpbmcsY29kZWJsb2NrUGFyYW1ldGVycyk7XG5cdGVsc2Vcblx0XHRhZGRIaWdobGlnaHRzKHBhcmFtZXRlclN0cmluZyxjb2RlYmxvY2tQYXJhbWV0ZXJzLHRoZW1lKTtcbn1cbmZ1bmN0aW9uIG1hbmFnZVRpdGxlKHBhcmFtZXRlclN0cmluZzogc3RyaW5nLCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzKSB7XG5cdGNvbnN0IHRpdGxlTWF0Y2ggPSAvKFtcIiddPykoW15cXDFdKylcXDEvLmV4ZWMocGFyYW1ldGVyU3RyaW5nLnNsaWNlKFwidGl0bGU6XCIubGVuZ3RoKSk7XG5cdGlmICh0aXRsZU1hdGNoKVxuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgPSB0aXRsZU1hdGNoWzJdLnRyaW0oKTtcblx0cGFyYW1ldGVyU3RyaW5nID0gcGFyYW1ldGVyU3RyaW5nLnNsaWNlKFwidGl0bGU6XCIubGVuZ3RoKTtcblx0Y29uc3QgbGlua0luZm8gPSBtYW5hZ2VMaW5rKHBhcmFtZXRlclN0cmluZyk7XG5cdGlmIChsaW5rSW5mbykge1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgPSBsaW5rSW5mby50aXRsZTtcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLnJlZmVyZW5jZSA9IGxpbmtJbmZvLnJlZmVyZW5jZTtcblx0fVxufVxuZnVuY3Rpb24gbWFuYWdlUmVmZXJlbmNlKHBhcmFtZXRlclN0cmluZzogc3RyaW5nLCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzKSB7XG5cdHBhcmFtZXRlclN0cmluZyA9IHBhcmFtZXRlclN0cmluZy5zbGljZSgoKC9ecmVmWzo9XS8udGVzdChwYXJhbWV0ZXJTdHJpbmcpKT9cInJlZjpcIjpcInJlZmVyZW5jZTpcIikubGVuZ3RoKTtcblx0Y29uc3QgbGlua0luZm8gPSBtYW5hZ2VMaW5rKHBhcmFtZXRlclN0cmluZyk7XG5cdGlmIChsaW5rSW5mbykge1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMucmVmZXJlbmNlID0gbGlua0luZm8ucmVmZXJlbmNlO1xuXHRcdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLnRpdGxlID09PSBcIlwiKVxuXHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy50aXRsZSA9IGxpbmtJbmZvLnRpdGxlO1xuXHR9XG59XG5leHBvcnQgZnVuY3Rpb24gbWFuYWdlTGluayhwYXJhbWV0ZXJTdHJpbmc6IHN0cmluZyk6IHt0aXRsZTogc3RyaW5nLCByZWZlcmVuY2U6IHN0cmluZ30gfCB1bmRlZmluZWQge1xuXHRjb25zdCByZWZXaWtpTWF0Y2ggPSAvXFxbXFxbKFteXFxdfFxcclxcbl0rPykoPzpcXHwoW15cXF18XFxyXFxuXSs/KSk/XFxdXFxdLy5leGVjKHBhcmFtZXRlclN0cmluZyk7XG5cdGNvbnN0IHJlZk1kTWF0Y2ggPSAvXFxbKC4qPylcXF1cXCgoLispXFwpLy5leGVjKHBhcmFtZXRlclN0cmluZyk7XG5cdGNvbnN0IHVybE1hdGNoID0gL14oW1wiJ10/KShodHRwcz86XFwvXFwvLiopXFwxJC8uZXhlYyhwYXJhbWV0ZXJTdHJpbmcpO1xuXHRsZXQgdGl0bGUgPSBcIlwiO1xuXHRsZXQgcmVmZXJlbmNlID0gXCJcIjtcblx0aWYgKHJlZldpa2lNYXRjaCkge1xuXHRcdHRpdGxlID0gcmVmV2lraU1hdGNoWzJdP3JlZldpa2lNYXRjaFsyXS50cmltKCk6cmVmV2lraU1hdGNoWzFdLnRyaW0oKTtcblx0XHRyZWZlcmVuY2UgPSByZWZXaWtpTWF0Y2hbMV0udHJpbSgpO1xuXHR9IGVsc2UgaWYgKHJlZk1kTWF0Y2gpIHtcblx0XHR0aXRsZSA9IHJlZk1kTWF0Y2hbMV0udHJpbSgpO1xuXHRcdHJlZmVyZW5jZSA9IHJlZk1kTWF0Y2hbMl0udHJpbSgpO1xuXHR9IGVsc2UgaWYgKHVybE1hdGNoKSB7XG5cdFx0dGl0bGUgPSBcIlVSTFwiO1xuXHRcdHJlZmVyZW5jZSA9IHVybE1hdGNoWzJdLnRyaW0oKTtcblx0fSAgZWxzZVxuXHRcdHJldHVybjtcblx0cmV0dXJuIHt0aXRsZTogdGl0bGUsIHJlZmVyZW5jZTogcmVmZXJlbmNlfTtcbn1cbmZ1bmN0aW9uIG1hbmFnZUZvbGRpbmcocGFyYW1ldGVyU3RyaW5nOiBzdHJpbmcsIGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMpIHtcblx0aWYgKHBhcmFtZXRlclN0cmluZyA9PT0gXCJmb2xkXCIpIHtcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQgPSB7XG5cdFx0XHRlbmFibGVkOiB0cnVlLFxuXHRcdFx0cGxhY2Vob2xkZXI6IFwiXCIsXG5cdFx0fTtcblx0fSBlbHNlIHtcblx0XHRjb25zdCBmb2xkUGxhY2Vob2xkZXJNYXRjaCA9IC8oW1wiJ10/KShbXlxcMV0rKVxcMS8uZXhlYyhwYXJhbWV0ZXJTdHJpbmcuc2xpY2UoXCJmb2xkOlwiLmxlbmd0aCkpO1xuXHRcdGlmIChmb2xkUGxhY2Vob2xkZXJNYXRjaCkge1xuXHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5mb2xkID0ge1xuXHRcdFx0XHRlbmFibGVkOiB0cnVlLFxuXHRcdFx0XHRwbGFjZWhvbGRlcjogZm9sZFBsYWNlaG9sZGVyTWF0Y2hbMl0udHJpbSgpLFxuXHRcdFx0fTtcblx0XHR9XG5cdH1cbn1cbmZ1bmN0aW9uIG1hbmFnZUxpbmVOdW1iZXJpbmcocGFyYW1ldGVyU3RyaW5nOiBzdHJpbmcsIGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMpIHtcblx0cGFyYW1ldGVyU3RyaW5nID0gcGFyYW1ldGVyU3RyaW5nLnNsaWNlKFwibG46XCIubGVuZ3RoKTtcblx0aWYgKC9eXFxkKyQvLnRlc3QocGFyYW1ldGVyU3RyaW5nKSkge1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMgPSB7XG5cdFx0XHRhbHdheXNFbmFibGVkOiB0cnVlLFxuXHRcdFx0YWx3YXlzRGlzYWJsZWQ6IGZhbHNlLFxuXHRcdFx0b2Zmc2V0OiBwYXJzZUludChwYXJhbWV0ZXJTdHJpbmcpLTEsXG5cdFx0fTtcblx0fSBlbHNlIGlmIChwYXJhbWV0ZXJTdHJpbmcudG9Mb3dlckNhc2UoKSA9PT0gXCJ0cnVlXCIpIHtcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzID0ge1xuXHRcdFx0YWx3YXlzRW5hYmxlZDogdHJ1ZSxcblx0XHRcdGFsd2F5c0Rpc2FibGVkOiBmYWxzZSxcblx0XHRcdG9mZnNldDogMCxcblx0XHR9O1xuXHR9IGVsc2UgaWYgKHBhcmFtZXRlclN0cmluZy50b0xvd2VyQ2FzZSgpID09PSBcImZhbHNlXCIpIHtcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzID0ge1xuXHRcdFx0YWx3YXlzRW5hYmxlZDogZmFsc2UsXG5cdFx0XHRhbHdheXNEaXNhYmxlZDogdHJ1ZSxcblx0XHRcdG9mZnNldDogMCxcblx0XHR9O1xuXHR9XG59XG5mdW5jdGlvbiBtYW5hZ2VXcmFwcGluZyhwYXJhbWV0ZXJTdHJpbmc6IHN0cmluZywgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycykge1xuXHRpZiAocGFyYW1ldGVyU3RyaW5nID09PSBcIndyYXBcIikge1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZVVud3JhcCA9IHtcblx0XHRcdGFsd2F5c0VuYWJsZWQ6IGZhbHNlLFxuXHRcdFx0YWx3YXlzRGlzYWJsZWQ6IHRydWUsXG5cdFx0XHRhY3RpdmVXcmFwOiBmYWxzZSxcblx0XHR9O1xuXHR9IGVsc2UgaWYgKHBhcmFtZXRlclN0cmluZyA9PT0gXCJ1bndyYXBcIikge1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZVVud3JhcCA9IHtcblx0XHRcdGFsd2F5c0VuYWJsZWQ6IHRydWUsXG5cdFx0XHRhbHdheXNEaXNhYmxlZDogZmFsc2UsXG5cdFx0XHRhY3RpdmVXcmFwOiBmYWxzZSxcblx0XHR9O1xuXHR9IGVsc2Uge1xuXHRcdHBhcmFtZXRlclN0cmluZyA9IHBhcmFtZXRlclN0cmluZy5zbGljZShcInVud3JhcDpcIi5sZW5ndGgpO1xuXHRcdGlmIChwYXJhbWV0ZXJTdHJpbmcudG9Mb3dlckNhc2UoKSA9PT0gXCJpbmFjdGl2ZVwiKSB7XG5cdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVVbndyYXAgPSB7XG5cdFx0XHRcdGFsd2F5c0VuYWJsZWQ6IHRydWUsXG5cdFx0XHRcdGFsd2F5c0Rpc2FibGVkOiBmYWxzZSxcblx0XHRcdFx0YWN0aXZlV3JhcDogdHJ1ZSxcblx0XHRcdH07XG5cdFx0fSBlbHNlIGlmIChwYXJhbWV0ZXJTdHJpbmcudG9Mb3dlckNhc2UoKSA9PT0gXCJ0cnVlXCIpIHtcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZVVud3JhcCA9IHtcblx0XHRcdFx0YWx3YXlzRW5hYmxlZDogdHJ1ZSxcblx0XHRcdFx0YWx3YXlzRGlzYWJsZWQ6IGZhbHNlLFxuXHRcdFx0XHRhY3RpdmVXcmFwOiBmYWxzZSxcblx0XHRcdH07XG5cdFx0fSBlbHNlIGlmIChwYXJhbWV0ZXJTdHJpbmcudG9Mb3dlckNhc2UoKSA9PT0gXCJmYWxzZVwiKSB7XG5cdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVVbndyYXAgPSB7XG5cdFx0XHRcdGFsd2F5c0VuYWJsZWQ6IGZhbHNlLFxuXHRcdFx0XHRhbHdheXNEaXNhYmxlZDogdHJ1ZSxcblx0XHRcdFx0YWN0aXZlV3JhcDogZmFsc2UsXG5cdFx0XHR9O1xuXHRcdH1cblx0fVxufVxuZnVuY3Rpb24gYWRkSGlnaGxpZ2h0cyhwYXJhbWV0ZXJTdHJpbmc6IHN0cmluZywgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgdGhlbWU6IENvZGVTdHlsZXJUaGVtZSkge1xuXHRjb25zdCBoaWdobGlnaHRNYXRjaCA9IC9eKFxcdyspWzo9XSguKykkLy5leGVjKHBhcmFtZXRlclN0cmluZyk7XG5cdGlmIChoaWdobGlnaHRNYXRjaCkge1xuXHRcdGlmIChoaWdobGlnaHRNYXRjaFsxXSA9PT0gXCJobFwiKVxuXHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5oaWdobGlnaHRzLmRlZmF1bHQgPSBwYXJzZUhpZ2hsaWdodGVkTGluZXMoaGlnaGxpZ2h0TWF0Y2hbMl0pO1xuXHRcdGVsc2UgaWYgKGhpZ2hsaWdodE1hdGNoWzFdIGluIHRoZW1lLmNvbG91cnMubGlnaHQuaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHMpXG5cdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVbaGlnaGxpZ2h0TWF0Y2hbMV1dID0gcGFyc2VIaWdobGlnaHRlZExpbmVzKGhpZ2hsaWdodE1hdGNoWzJdKTtcblx0fSBlbHNlIGlmICgvXntbXFxkLSxdK30kLy50ZXN0KHBhcmFtZXRlclN0cmluZykpXG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5oaWdobGlnaHRzLmRlZmF1bHQgPSBwYXJzZUhpZ2hsaWdodGVkTGluZXMocGFyYW1ldGVyU3RyaW5nLnNsaWNlKDEsLTEpKTtcbn1cbmZ1bmN0aW9uIHBhcnNlSGlnaGxpZ2h0ZWRMaW5lcyhoaWdobGlnaHRlZExpbmVzU3RyaW5nOiBzdHJpbmcpOiBIaWdobGlnaHRzIHtcblx0Y29uc3QgaGlnaGxpZ2h0UnVsZXMgPSBoaWdobGlnaHRlZExpbmVzU3RyaW5nLnNwbGl0KFwiLFwiKTtcblx0Y29uc3QgbGluZU51bWJlcnM6IFNldDxudW1iZXI+ID0gbmV3IFNldCgpO1xuXHRjb25zdCBwbGFpblRleHQ6IFNldDxzdHJpbmc+ID0gbmV3IFNldCgpO1xuXHRjb25zdCByZWd1bGFyRXhwcmVzc2lvbnM6IFNldDxSZWdFeHA+ID0gbmV3IFNldCgpO1xuXHRoaWdobGlnaHRSdWxlcy5mb3JFYWNoKGhpZ2hsaWdodFJ1bGUgPT4ge1xuXHRcdGlmICgvXFxkKy1cXGQrLy50ZXN0KGhpZ2hsaWdodFJ1bGUpKSB7IC8vIE51bWJlciBSYW5nZVxuXHRcdFx0Y29uc3QgW3N0YXJ0LGVuZF0gPSBoaWdobGlnaHRSdWxlLnNwbGl0KFwiLVwiKS5tYXAobnVtID0+IHBhcnNlSW50KG51bSkpO1xuXHRcdFx0aWYgKHN0YXJ0ICYmIGVuZCAmJiBzdGFydCA8PSBlbmQpXG5cdFx0XHRcdEFycmF5LmZyb20oe2xlbmd0aDplbmQtc3RhcnQrMX0sIChfLG51bSkgPT4gbnVtICsgc3RhcnQpLmZvckVhY2gobGluZU51bWJlciA9PiBsaW5lTnVtYmVycy5hZGQobGluZU51bWJlcikpO1xuXHRcdH0gZWxzZSBpZiAoL15cXC8oLiopXFwvJC8udGVzdChoaWdobGlnaHRSdWxlKSkgeyAvLyBSZWdleFxuXHRcdFx0dHJ5IHtcblx0XHRcdFx0cmVndWxhckV4cHJlc3Npb25zLmFkZChuZXcgUmVnRXhwKGhpZ2hsaWdodFJ1bGUucmVwbGFjZSgvXlxcLyguKilcXC8kLywgXCIkMVwiKSkpO1xuXHRcdFx0fSBjYXRjaCB7XG5cdFx0XHRcdC8vcGFzc1xuXHRcdFx0fVxuXHRcdH0gIGVsc2UgaWYgKC9cIi4qXCIvLnRlc3QoaGlnaGxpZ2h0UnVsZSkpIC8vIFBsYWluIFRleHRcblx0XHRcdHBsYWluVGV4dC5hZGQoaGlnaGxpZ2h0UnVsZS5zdWJzdHJpbmcoMSxoaWdobGlnaHRSdWxlLmxlbmd0aC0xKSk7XG5cdFx0ZWxzZSBpZiAoLycuKicvLnRlc3QoaGlnaGxpZ2h0UnVsZSkpIC8vIFBsYWluIFRleHRcblx0XHRcdHBsYWluVGV4dC5hZGQoaGlnaGxpZ2h0UnVsZS5zdWJzdHJpbmcoMSxoaWdobGlnaHRSdWxlLmxlbmd0aC0xKSk7XG5cdFx0ZWxzZSBpZiAoL1xcRC8udGVzdChoaWdobGlnaHRSdWxlKSkgLy8gUGxhaW4gVGV4dCAvL1RPRE8gKEBtYXl1cmFua3YpIFNob3VsZCB0aGlzIGJlIFxcRCsgPz9cblx0XHRcdHBsYWluVGV4dC5hZGQoaGlnaGxpZ2h0UnVsZSk7XG5cdFx0ZWxzZSBpZiAoL1xcZCsvLnRlc3QoaGlnaGxpZ2h0UnVsZSkpIC8vIFBsYWluIE51bWJlclxuXHRcdFx0bGluZU51bWJlcnMuYWRkKHBhcnNlSW50KGhpZ2hsaWdodFJ1bGUpKTtcblx0fSk7XG5cdHJldHVybiB7XG5cdFx0bGluZU51bWJlcnM6IFsuLi5saW5lTnVtYmVyc10sXG5cdFx0cGxhaW5UZXh0OiBbLi4ucGxhaW5UZXh0XSxcblx0XHRyZWd1bGFyRXhwcmVzc2lvbnM6IFsuLi5yZWd1bGFyRXhwcmVzc2lvbnNdLFxuXHR9O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzTGFuZ3VhZ2VJZ25vcmVkKGxhbmd1YWdlOiBzdHJpbmcsIGV4Y2x1ZGVkTGFuZ3VhZ2VzU3RyaW5nOiBzdHJpbmcpOiBib29sZWFuIHtcblx0cmV0dXJuIHBhcnNlUmVnZXhFeGNsdWRlZExhbmd1YWdlcyhleGNsdWRlZExhbmd1YWdlc1N0cmluZykuc29tZShyZWdleEV4Y2x1ZGVkTGFuZ3VhZ2U9PnJlZ2V4RXhjbHVkZWRMYW5ndWFnZS50ZXN0KGxhbmd1YWdlKSk7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNDb2RlYmxvY2tJZ25vcmVkKGxhbmd1YWdlOiBzdHJpbmcsIHdoaXRlbGlzdGVkQ29kZWJsb2Nrc1N0cmluZzogc3RyaW5nKTogYm9vbGVhbiB7XG5cdC8vQHRzLWV4cGVjdC1lcnJvciBVbmRvY3VtZW50ZWQgT2JzaWRpYW4gQVBJXG5cdHJldHVybiAobGFuZ3VhZ2UgaW4gTWFya2Rvd25QcmV2aWV3UmVuZGVyZXIuY29kZUJsb2NrUG9zdFByb2Nlc3NvcnMpICYmICFwYXJzZVJlZ2V4RXhjbHVkZWRMYW5ndWFnZXMod2hpdGVsaXN0ZWRDb2RlYmxvY2tzU3RyaW5nKS5zb21lKHJlZ2V4RXhjbHVkZWRMYW5ndWFnZT0+cmVnZXhFeGNsdWRlZExhbmd1YWdlLnRlc3QobGFuZ3VhZ2UpKTtcbn1cbmZ1bmN0aW9uIHBhcnNlUmVnZXhFeGNsdWRlZExhbmd1YWdlcyhleGNsdWRlZExhbmd1YWdlc1N0cmluZzogc3RyaW5nKTogQXJyYXk8UmVnRXhwPiB7XG5cdHJldHVybiBleGNsdWRlZExhbmd1YWdlc1N0cmluZy5zcGxpdChcIixcIikubWFwKHJlZ2V4TGFuZ3VhZ2UgPT4gbmV3IFJlZ0V4cChgXiR7cmVnZXhMYW5ndWFnZS50cmltKCkucmVwbGFjZSgvXFwqL2csXCIuK1wiKX0kYCxcImlcIikpO1xufVxuXG5mdW5jdGlvbiBnZXRQYXJhbWV0ZXJMaW5lKGNvZGVibG9ja0xpbmVzOiBBcnJheTxzdHJpbmc+KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0bGV0IG9wZW5pbmdDb2RlYmxvY2tMaW5lID0gZ2V0T3BlbmluZ0xpbmUoY29kZWJsb2NrTGluZXMpO1xuXHRpZiAob3BlbmluZ0NvZGVibG9ja0xpbmUgJiYgKG9wZW5pbmdDb2RlYmxvY2tMaW5lICE9PSBjb2RlYmxvY2tMaW5lc1swXSB8fCAvPlxccyooPzpbYH5dKS8udGVzdChvcGVuaW5nQ29kZWJsb2NrTGluZSkpKVxuXHRcdG9wZW5pbmdDb2RlYmxvY2tMaW5lID0gY2xlYW5QYXJhbWV0ZXJMaW5lKG9wZW5pbmdDb2RlYmxvY2tMaW5lKTtcblx0cmV0dXJuIG9wZW5pbmdDb2RlYmxvY2tMaW5lO1xufVxuZnVuY3Rpb24gZ2V0T3BlbmluZ0xpbmUoY29kZWJsb2NrTGluZXM6IEFycmF5PHN0cmluZz4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRyZXR1cm4gY29kZWJsb2NrTGluZXMuZmluZCgobGluZTogc3RyaW5nKT0+Qm9vbGVhbih0ZXN0T3BlbmluZ0xpbmUobGluZSkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB0ZXN0T3BlbmluZ0xpbmUoY29kZWJsb2NrTGluZTogc3RyaW5nKTogc3RyaW5nIHtcblx0Y29uc3QgbGluZU1hdGNoID0gL14oXFxzKig/Oj5cXHMqKSopKGBgYCt8fn5+KykvLmV4ZWMoY29kZWJsb2NrTGluZSk7XG5cdGlmICghbGluZU1hdGNoKVxuXHRcdHJldHVybiBcIlwiO1xuXHRpZiAoY29kZWJsb2NrTGluZS5pbmRleE9mKGxpbmVNYXRjaFsyXSxsaW5lTWF0Y2hbMV0ubGVuZ3RoK2xpbmVNYXRjaFsyXS5sZW5ndGgrMSk9PT0tMSlcblx0XHRyZXR1cm4gbGluZU1hdGNoWzJdO1xuXHRyZXR1cm4gXCJcIjtcbn1cbmZ1bmN0aW9uIGNsZWFuUGFyYW1ldGVyTGluZShwYXJhbWV0ZXJMaW5lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRyZXR1cm4gdHJpbVBhcmFtZXRlckxpbmUocGFyYW1ldGVyTGluZSkucmVwbGFjZSgvXig/Oj5cXHMqKSooYGBgK3x+fn4rKS8sXCIkMVwiKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB0cmltUGFyYW1ldGVyTGluZShwYXJhbWV0ZXJMaW5lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRyZXR1cm4gcGFyYW1ldGVyTGluZS50cmltKCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRGaWxlQ29udGVudExpbmVzKHNvdXJjZVBhdGg6IHN0cmluZywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogUHJvbWlzZTxBcnJheTxzdHJpbmc+PiB7XG5cdHJldHVybiAoYXdhaXQgcGx1Z2luLmFwcC52YXVsdC5hZGFwdGVyLnJlYWQoc291cmNlUGF0aCkpLnNwbGl0KC9cXG4vZyk7XG59XG5cbmZ1bmN0aW9uIGFycmF5c0VxdWFsKGFycmF5MTogQXJyYXk8dW5rbm93bj4sYXJyYXkyOiBBcnJheTx1bmtub3duPik6IGJvb2xlYW4ge1xuXHRyZXR1cm4gYXJyYXkxLmxlbmd0aCA9PT0gYXJyYXkyLmxlbmd0aCAmJiBhcnJheTEuZXZlcnkoKGVsKSA9PiBhcnJheTIuaW5jbHVkZXMoZWwpKTtcbn1cbiIsICJpbXBvcnQge05vdGljZX0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQgKiBhcyBKU09ONSBmcm9tIFwianNvbjVcIjtcblxuZXhwb3J0IHR5cGUgRXhwb3J0VHlwZSA9IFwicHJlXCIgfCBcInBvc3RcIjtcblxuLyoqXG4gKiBBcmd1bWVudHMgZm9yIGNvZGUgYmxvY2tzLCBzcGVjaWZpZWQgbmV4dCB0byB0aGUgbGFuZ3VhZ2UgaWRlbnRpZmllciBhcyBKU09OXG4gKiBAZXhhbXBsZSBgYGBweXRob24ge1wiZXhwb3J0XCI6IFwicHJlXCJ9XG4gKiBAZXhhbXBsZSBgYGBjcHAge1wiaWdub3JlRXhwb3J0XCI6IFtcInBvc3RcIl19XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZUJsb2NrQXJncyB7XG5cdGxhYmVsPzogc3RyaW5nO1xuXHRpbXBvcnQ/OiBzdHJpbmcgfCBzdHJpbmdbXTtcblx0ZXhwb3J0PzogRXhwb3J0VHlwZSB8IEV4cG9ydFR5cGVbXTtcblx0aWdub3JlPzogKEV4cG9ydFR5cGUgfCBcImdsb2JhbFwiKVtdIHwgRXhwb3J0VHlwZSB8IFwiZ2xvYmFsXCIgfCBcImFsbFwiO1xufVxuXG4vKipcbiAqIEdldCBjb2RlIGJsb2NrIGFyZ3MgZ2l2ZW4gdGhlIGZpcnN0IGxpbmUgb2YgdGhlIGNvZGUgYmxvY2suXG4gKlxuICogQHBhcmFtIGZpcnN0TGluZU9mQ29kZSBUaGUgZmlyc3QgbGluZSBvZiBhIGNvZGUgYmxvY2sgdGhhdCBjb250YWlucyB0aGUgbGFuZ3VhZ2UgbmFtZS5cbiAqIEByZXR1cm5zIFRoZSBhcmd1bWVudHMgZnJvbSB0aGUgZmlyc3QgbGluZSBvZiB0aGUgY29kZSBibG9jay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFyZ3MoZmlyc3RMaW5lT2ZDb2RlOiBzdHJpbmcpOiBDb2RlQmxvY2tBcmdzIHtcblx0Ly8gTm8gYXJncyBzcGVjaWZpZWRcblx0aWYgKCFmaXJzdExpbmVPZkNvZGUuY29udGFpbnMoXCJ7XCIpICYmICFmaXJzdExpbmVPZkNvZGUuY29udGFpbnMoXCJ9XCIpKVxuXHRcdHJldHVybiB7fTtcblx0dHJ5IHtcblx0XHRsZXQgYXJncyA9IGZpcnN0TGluZU9mQ29kZS5zdWJzdHJpbmcoZmlyc3RMaW5lT2ZDb2RlLmluZGV4T2YoXCJ7XCIpICsgMSkudHJpbSgpO1xuXHRcdC8vIFRyYW5zZm9ybSBjdXN0b20gc3ludGF4IHRvIEpTT041XG5cdFx0YXJncyA9IGFyZ3MucmVwbGFjZSgvPS9nLCBcIjpcIik7XG5cdFx0Ly8gSGFuZGxlIHVubmFtZWQgZXhwb3J0IGFyZyAtIHByZSAvIHBvc3QgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgYXJncyB3aXRob3V0IGFueSBhcmcgbmFtZVxuXHRcdGNvbnN0IGV4cG9ydHM6IEV4cG9ydFR5cGVbXSA9IFtdO1xuXHRcdGNvbnN0IGhhbmRsZVVubmFtZWRFeHBvcnQgPSAoZXhwb3J0TmFtZTogRXhwb3J0VHlwZSkgPT4ge1xuXHRcdFx0bGV0IGkgPSBhcmdzLmluZGV4T2YoZXhwb3J0TmFtZSk7XG5cdFx0XHR3aGlsZSAoaSAhPT0gLTEpIHtcblx0XHRcdFx0Y29uc3QgbmV4dENoYXIgPSBhcmdzW2kgKyBleHBvcnROYW1lLmxlbmd0aF07XG5cdFx0XHRcdGlmIChuZXh0Q2hhciAhPT0gXCJcXFwiXCIgJiYgbmV4dENoYXIgIT09IFwiJ1wiKSB7XG5cdFx0XHRcdFx0Ly8gUmVtb3ZlIGZyb20gYXJncyBzdHJpbmdcblx0XHRcdFx0XHRhcmdzID0gYXJncy5zdWJzdHJpbmcoMCwgaSkgKyBhcmdzLnN1YnN0cmluZyhpICsgZXhwb3J0TmFtZS5sZW5ndGggKyAobmV4dENoYXIgPT09IFwifVwiID8gMCA6IDEpKTtcblx0XHRcdFx0XHRleHBvcnRzLnB1c2goZXhwb3J0TmFtZSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aSA9IGFyZ3MuaW5kZXhPZihleHBvcnROYW1lLCBpICsgMSk7XG5cdFx0XHR9XG5cdFx0fTtcblx0XHRoYW5kbGVVbm5hbWVkRXhwb3J0KFwicHJlXCIpO1xuXHRcdGhhbmRsZVVubmFtZWRFeHBvcnQoXCJwb3N0XCIpO1xuXHRcdGFyZ3MgPSBge2V4cG9ydDogWycke2V4cG9ydHMuam9pbihcIicsICdcIil9J10sICR7YXJnc31gO1xuXHRcdHJldHVybiBKU09ONS5wYXJzZShhcmdzKTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0bmV3IE5vdGljZShgRmFpbGVkIHRvIHBhcnNlIGNvZGUgYmxvY2sgYXJndW1lbnRzIGZyb20gbGluZTpcXG4ke2ZpcnN0TGluZU9mQ29kZX1cXG5cXG5GYWlsZWQgd2l0aCBlcnJvcjpcXG4ke2Vycn1gKTtcblx0XHRyZXR1cm4ge307XG5cdH1cbn1cbiIsICJpbXBvcnQgeyBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0LCBNYXJrZG93blJlbmRlcmVyLCBNYXJrZG93blNlY3Rpb25JbmZvcm1hdGlvbiwgU2VjdGlvbkNhY2hlLCBub3JtYWxpemVQYXRoLCByZXF1ZXN0IH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQgeyBSZWZlcmVuY2UsIGdldExpbmVMaW1pdHMsIHBhcnNlRXh0ZXJuYWxSZWZlcmVuY2UsIHBhcnNlUmVmZXJlbmNlUGFyYW1ldGVycyB9IGZyb20gXCJzcmMvUGFyc2luZy9SZWZlcmVuY2VQYXJzaW5nXCI7XG5pbXBvcnQgeyBFWFRFUk5BTF9SRUZFUkVOQ0VfUEFUSCwgRVhURVJOQUxfUkVGRVJFTkNFX0lORk9fU1VGRklYLCBMT0NBTF9QUkVGSVgsIFJFRkVSRU5DRV9DT0RFQkxPQ0ssIEVYVEVSTkFMX1JFRkVSRU5DRV9DQUNIRSB9IGZyb20gXCJzcmMvU2V0dGluZ3NcIjtcbmltcG9ydCBDb2RlU3R5bGVyUGx1Z2luIGZyb20gXCJzcmMvbWFpblwiO1xuaW1wb3J0IHsgcmVuZGVyU3BlY2lmaWNSZWFkaW5nU2VjdGlvbiB9IGZyb20gXCIuL1JlYWRpbmdWaWV3XCI7XG5pbXBvcnQgeyBnZXRGaWxlQ29udGVudExpbmVzIH0gZnJvbSBcIi4vUGFyc2luZy9Db2RlYmxvY2tQYXJzaW5nXCI7XG5cbnR5cGUgQ2FjaGUgPSBSZWNvcmQ8c3RyaW5nLCBJZENhY2hlPlxuaW50ZXJmYWNlIElkQ2FjaGUge1xuXHRzb3VyY2VQYXRoczogQXJyYXk8c3RyaW5nPjtcblx0cmVmZXJlbmNlOiBSZWZlcmVuY2U7XG59XG50eXBlIFJlZmVyZW5jZUJ5RmlsZSA9IFJlY29yZDxzdHJpbmcsQXJyYXk8c3RyaW5nPj5cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlZmVyZW5jZUNvZGVibG9ja1Byb2Nlc3Nvcihzb3VyY2U6IHN0cmluZywgY29kZWJsb2NrRWxlbWVudDogSFRNTEVsZW1lbnQsIGNvbnRleHQ6IE1hcmtkb3duUG9zdFByb2Nlc3NvckNvbnRleHQsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbikge1xuXHRjb25zdCBjb2RlYmxvY2tTZWN0aW9uSW5mbzogTWFya2Rvd25TZWN0aW9uSW5mb3JtYXRpb24gfCBudWxsID0gY29udGV4dC5nZXRTZWN0aW9uSW5mbyhjb2RlYmxvY2tFbGVtZW50KTtcblx0aWYgKGNvZGVibG9ja1NlY3Rpb25JbmZvID09PSBudWxsKVxuXHRcdHRocm93IEVycm9yKFwiQ291bGQgbm90IHJldHJpZXZlIGNvZGVibG9jayBpbmZvcm1hdGlvblwiKTtcblxuXHRjb25zdCBjb2RlYmxvY2tMaW5lcyA9IFtjb2RlYmxvY2tTZWN0aW9uSW5mby50ZXh0LnNwbGl0KFwiXFxuXCIpW2NvZGVibG9ja1NlY3Rpb25JbmZvLmxpbmVTdGFydF0sIC4uLnNvdXJjZS5zcGxpdChcIlxcblwiKV07XG5cdGlmIChjb2RlYmxvY2tMaW5lc1tjb2RlYmxvY2tMaW5lcy5sZW5ndGggLSAxXSAhPT0gXCJcIilcblx0XHRjb2RlYmxvY2tMaW5lcy5wdXNoKFwiXCIpO1xuXHRjb25zdCByZWZlcmVuY2UgPSBhd2FpdCBnZXRSZWZlcmVuY2UoY29kZWJsb2NrTGluZXMsIGNvbnRleHQuc291cmNlUGF0aCwgcGx1Z2luKTtcblx0TWFya2Rvd25SZW5kZXJlci5yZW5kZXIocGx1Z2luLmFwcCwgcmVmZXJlbmNlLmNvZGUsIGNvZGVibG9ja0VsZW1lbnQsIGNvbnRleHQuc291cmNlUGF0aCwgcGx1Z2luKTtcblx0cmVuZGVyU3BlY2lmaWNSZWFkaW5nU2VjdGlvbihBcnJheS5mcm9tKGNvZGVibG9ja0VsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcInByZTpub3QoLmZyb250bWF0dGVyKVwiKSksIGNvbnRleHQuc291cmNlUGF0aCwgY29kZWJsb2NrU2VjdGlvbkluZm8sIHBsdWdpbik7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRSZWZlcmVuY2UoY29kZWJsb2NrTGluZXM6IEFycmF5PHN0cmluZz4sIHNvdXJjZVBhdGg6IHN0cmluZywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogUHJvbWlzZTxSZWZlcmVuY2U+IHtcblx0Y29uc3QgcmVmZXJlbmNlOiBSZWZlcmVuY2UgPSB7XG5cdFx0Y29kZTogXCJcIixcblx0XHRsYW5ndWFnZTogXCJcIixcblx0XHRzdGFydExpbmU6IDEsXG5cdFx0cGF0aDogXCJcIixcblx0fTtcblxuXHR0cnkge1xuXHRcdGNvbnN0IHJlZmVyZW5jZVBhcmFtZXRlcnMgPSBwYXJzZVJlZmVyZW5jZVBhcmFtZXRlcnMoY29kZWJsb2NrTGluZXMuc2xpY2UoMSwgLTEpLmpvaW4oXCJcXG5cIikpO1xuXHRcdHJlZmVyZW5jZS5sYW5ndWFnZSA9IHJlZmVyZW5jZVBhcmFtZXRlcnMubGFuZ3VhZ2U7XG5cdFx0cmVmZXJlbmNlLnBhdGggPSByZWZlcmVuY2VQYXJhbWV0ZXJzLmZpbGVQYXRoO1xuXHRcdGlmICgvXmh0dHBzPzpcXC9cXC8vLnRlc3QocmVmZXJlbmNlUGFyYW1ldGVycy5maWxlUGF0aCkpIHtcblx0XHRcdGNvbnN0IGV4dGVybmFsUmVmZXJlbmNlSWQgPSBpZEV4dGVybmFsUmVmZXJlbmNlKHJlZmVyZW5jZS5wYXRoKTtcblx0XHRcdHJlZmVyZW5jZS5leHRlcm5hbCA9IHtcblx0XHRcdFx0aWQ6IGV4dGVybmFsUmVmZXJlbmNlSWQuaWQsXG5cdFx0XHRcdHdlYnNpdGU6IGV4dGVybmFsUmVmZXJlbmNlSWQud2Vic2l0ZSxcblx0XHRcdFx0c3RvcmVQYXRoOiBwbHVnaW4uYXBwLnZhdWx0LmNvbmZpZ0RpciArIEVYVEVSTkFMX1JFRkVSRU5DRV9QQVRIICsgZXh0ZXJuYWxSZWZlcmVuY2VJZC5pZCxcblx0XHRcdFx0aW5mbzoge3RpdGxlOiBcIlwiLCB1cmw6IHJlZmVyZW5jZS5wYXRoLCBzaXRlOiBleHRlcm5hbFJlZmVyZW5jZUlkLndlYnNpdGUsIGRhdGV0aW1lOiBcIlwiLCByYXdVcmw6IHJlZmVyZW5jZS5wYXRofSxcblx0XHRcdH07XG5cdFx0XHRyZWZlcmVuY2VQYXJhbWV0ZXJzLmZpbGVQYXRoID0gYXdhaXQgYWNjZXNzRXh0ZXJuYWxSZWZlcmVuY2UocmVmZXJlbmNlLCBleHRlcm5hbFJlZmVyZW5jZUlkLmlkLCBzb3VyY2VQYXRoLCBwbHVnaW4pO1xuXHRcdFx0cmVmZXJlbmNlLmV4dGVybmFsLmluZm8gPSB7Li4ucmVmZXJlbmNlLmV4dGVybmFsLmluZm8sIC4uLkpTT04ucGFyc2UoYXdhaXQgcGx1Z2luLmFwcC52YXVsdC5hZGFwdGVyLnJlYWQocmVmZXJlbmNlLmV4dGVybmFsLnN0b3JlUGF0aCArIEVYVEVSTkFMX1JFRkVSRU5DRV9JTkZPX1NVRkZJWCkpfTtcblx0XHR9XG5cdFx0Y29uc3QgdmF1bHRQYXRoID0gZ2V0UGF0aChyZWZlcmVuY2VQYXJhbWV0ZXJzLmZpbGVQYXRoLCBcIlwiLCBwbHVnaW4pO1xuXHRcdGlmIChyZWZlcmVuY2VQYXJhbWV0ZXJzLmZpbGVQYXRoLnN0YXJ0c1dpdGgoXCJbW1wiKSAmJiByZWZlcmVuY2VQYXJhbWV0ZXJzLmZpbGVQYXRoLmVuZHNXaXRoKFwiXV1cIikpXG5cdFx0XHRyZWZlcmVuY2UucGF0aCA9IHZhdWx0UGF0aDtcblx0XHRpZiAoIShhd2FpdCBwbHVnaW4uYXBwLnZhdWx0LmFkYXB0ZXIuZXhpc3RzKHZhdWx0UGF0aCkpKVxuXHRcdFx0dGhyb3cgRXJyb3IoYExvY2FsIEZpbGUgZG9lcyBub3QgZXhpc3QgYXQgJHt2YXVsdFBhdGh9YCk7XG5cdFx0Y29uc3QgY29kZUNvbnRlbnQgPSAoYXdhaXQgcGx1Z2luLmFwcC52YXVsdC5hZGFwdGVyLnJlYWQodmF1bHRQYXRoKSkudHJpbSgpO1xuXHRcdGNvbnN0IGNvZGVTZWN0aW9uSW5mbyA9IGdldExpbmVMaW1pdHMoY29kZUNvbnRlbnQsIHJlZmVyZW5jZVBhcmFtZXRlcnMpO1xuXHRcdHJlZmVyZW5jZS5zdGFydExpbmUgPSBjb2RlU2VjdGlvbkluZm8uc3RhcnRMaW5lO1xuXHRcdHJlZmVyZW5jZS5jb2RlID0gW1wiYGBgXCIsIHJlZmVyZW5jZVBhcmFtZXRlcnMubGFuZ3VhZ2UsXCIgXCIsY29kZWJsb2NrTGluZXNbMF0uc3Vic3RyaW5nKFJFRkVSRU5DRV9DT0RFQkxPQ0subGVuZ3RoKS50cmltKCksIFwiXFxuXCIsIGNvZGVTZWN0aW9uSW5mby5jb2RlU2VjdGlvbiwgXCJcXG5cIiwgXCJgYGBcIl0uam9pbihcIlwiKTtcblx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRyZWZlcmVuY2UuY29kZSA9IGA+IFshZXJyb3JdICR7KChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpKS5yZXBsYWNlKC9cXG4vZyxcIlxcbj5cIil9YDtcblx0fVxuXHRyZXR1cm4gcmVmZXJlbmNlO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdXBkYXRlRXh0ZXJuYWxSZWZlcmVuY2VkRmlsZXMocGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luLCBzb3VyY2VQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQpOiBQcm9taXNlPHZvaWQ+IHtcblx0YXdhaXQgY2xlYW5FeHRlcm5hbFJlZmVyZW5jZWRGaWxlcyhwbHVnaW4pO1xuXHRjb25zdCBjYWNoZSA9IGF3YWl0IHJlYWRDYWNoZShwbHVnaW4pO1xuXHRjb25zdCByZWZlcmVuY2VzID0gKHR5cGVvZiBzb3VyY2VQYXRoICE9PSBcInVuZGVmaW5lZFwiKSA/IGF3YWl0IGdldEZpbGVSZWZlcmVuY2VzKHNvdXJjZVBhdGgsIHBsdWdpbikgOiBPYmplY3QudmFsdWVzKGNhY2hlKS5tYXAoKGlkQ2FjaGU6IElkQ2FjaGUpID0+IGlkQ2FjaGUucmVmZXJlbmNlKTtcblx0Zm9yIChjb25zdCByZWZlcmVuY2Ugb2YgcmVmZXJlbmNlcykge1xuXHRcdGF3YWl0IHVwZGF0ZUV4dGVybmFsUmVmZXJlbmNlKHJlZmVyZW5jZSwgcGx1Z2luKTtcblx0XHRjYWNoZVtyZWZlcmVuY2U/LmV4dGVybmFsPy5pZCBhcyBzdHJpbmddLnJlZmVyZW5jZSA9IHJlZmVyZW5jZTtcblx0fVxuXHRhd2FpdCB1cGRhdGVDYWNoZShjYWNoZSwgcGx1Z2luKTtcblx0cGx1Z2luLnJlbmRlclJlYWRpbmdWaWV3KCk7XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2xlYW5FeHRlcm5hbFJlZmVyZW5jZWRGaWxlcyhwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pOiBQcm9taXNlPHZvaWQ+IHtcblx0Y29uc3QgY2FjaGUgPSBhd2FpdCByZWFkQ2FjaGUocGx1Z2luKTtcblx0Y29uc3QgcmVmZXJlbmNlc0J5RmlsZSA9IGNhY2hlVG9SZWZlcmVuY2VzQnlGaWxlKGNhY2hlKTtcblx0Zm9yIChjb25zdCBzb3VyY2VQYXRoIG9mIE9iamVjdC5rZXlzKHJlZmVyZW5jZXNCeUZpbGUpKSB7XG5cdFx0Y29uc3QgZmlsZVJlZmVyZW5jZUlkcyA9IChhd2FpdCBnZXRGaWxlUmVmZXJlbmNlcyhzb3VyY2VQYXRoLCBwbHVnaW4pKS5tYXAoKHJlZmVyZW5jZTogUmVmZXJlbmNlKSA9PiByZWZlcmVuY2U/LmV4dGVybmFsPy5pZCBhcyBzdHJpbmcpO1xuXHRcdHJlZmVyZW5jZXNCeUZpbGVbc291cmNlUGF0aF0gPSByZWZlcmVuY2VzQnlGaWxlW3NvdXJjZVBhdGhdLmZpbHRlcigoaWQ6IHN0cmluZykgPT4gZmlsZVJlZmVyZW5jZUlkcy5pbmNsdWRlcyhpZCkpO1xuXHR9XG5cdGNvbnN0IG5ld19jYWNoZSA9IHJlZmVyZW5jZXNCeUZpbGVUb0NhY2hlKHJlZmVyZW5jZXNCeUZpbGUsIGNhY2hlKTtcblx0Zm9yIChjb25zdCBpZCBvZiBPYmplY3Qua2V5cyhjYWNoZSkpIHtcblx0XHRpZiAoIU9iamVjdC5rZXlzKG5ld19jYWNoZSkuaW5jbHVkZXMoaWQpKSB7XG5cdFx0XHRhd2FpdCBwbHVnaW4uYXBwLnZhdWx0LmFkYXB0ZXIucmVtb3ZlKHBsdWdpbi5hcHAudmF1bHQuY29uZmlnRGlyICsgRVhURVJOQUxfUkVGRVJFTkNFX1BBVEggKyBpZCk7XG5cdFx0XHRhd2FpdCBwbHVnaW4uYXBwLnZhdWx0LmFkYXB0ZXIucmVtb3ZlKHBsdWdpbi5hcHAudmF1bHQuY29uZmlnRGlyICsgRVhURVJOQUxfUkVGRVJFTkNFX1BBVEggKyBpZCArIEVYVEVSTkFMX1JFRkVSRU5DRV9JTkZPX1NVRkZJWCk7XG5cdFx0fVxuXHR9XG5cdGF3YWl0IHVwZGF0ZUNhY2hlKG5ld19jYWNoZSxwbHVnaW4pO1xufVxuXG5mdW5jdGlvbiBjYWNoZVRvUmVmZXJlbmNlc0J5RmlsZShjYWNoZTogQ2FjaGUpOiBSZWZlcmVuY2VCeUZpbGUge1xuXHRyZXR1cm4gT2JqZWN0LmtleXMoY2FjaGUpLnJlZHVjZSgocmVzdWx0OiBSZWZlcmVuY2VCeUZpbGUsIGlkOiBzdHJpbmcpID0+IHtcblx0XHRjYWNoZVtpZF0uc291cmNlUGF0aHMuZm9yRWFjaCgoc291cmNlUGF0aDogc3RyaW5nKSA9PiB7XG5cdFx0XHRpZiAoIXJlc3VsdFtzb3VyY2VQYXRoXSlcblx0XHRcdFx0cmVzdWx0W3NvdXJjZVBhdGhdID0gW2lkXTtcblx0XHRcdGVsc2Vcblx0XHRcdFx0cmVzdWx0W3NvdXJjZVBhdGhdLnB1c2goaWQpO1xuXHRcdH0pO1xuXHRcdHJldHVybiByZXN1bHQ7XG5cdH0sIHt9KTtcbn1cbmZ1bmN0aW9uIHJlZmVyZW5jZXNCeUZpbGVUb0NhY2hlKHJlZmVyZW5jZXNCeUZpbGU6IFJlZmVyZW5jZUJ5RmlsZSwgY2FjaGU6IENhY2hlKTogQ2FjaGUge1xuXHRyZXR1cm4gT2JqZWN0LmtleXMocmVmZXJlbmNlc0J5RmlsZSkucmVkdWNlKChuZXdfY2FjaGU6IENhY2hlLCBzb3VyY2VQYXRoOiBzdHJpbmcpID0+IHtcblx0XHRyZWZlcmVuY2VzQnlGaWxlW3NvdXJjZVBhdGhdLmZvckVhY2goKGlkOiBzdHJpbmcpID0+IHtcblx0XHRcdGlmICh0eXBlb2YgbmV3X2NhY2hlPy5baWRdID09PSBcInVuZGVmaW5lZFwiKVxuXHRcdFx0XHRuZXdfY2FjaGVbaWRdID0ge3NvdXJjZVBhdGhzOiBbc291cmNlUGF0aF0sIHJlZmVyZW5jZTogY2FjaGVbaWRdLnJlZmVyZW5jZX07XG5cdFx0XHRlbHNlIGlmICghbmV3X2NhY2hlW2lkXS5zb3VyY2VQYXRocy5pbmNsdWRlcyhzb3VyY2VQYXRoKSlcblx0XHRcdFx0bmV3X2NhY2hlW2lkXS5zb3VyY2VQYXRocy5wdXNoKHNvdXJjZVBhdGgpO1xuXHRcdH0pO1xuXHRcdHJldHVybiBuZXdfY2FjaGU7XG5cdH0sIHt9KTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGdldEZpbGVSZWZlcmVuY2VzKHNvdXJjZVBhdGg6IHN0cmluZywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogUHJvbWlzZTxBcnJheTxSZWZlcmVuY2U+PiB7XG5cdGNvbnN0IGZpbGVDb250ZW50TGluZXMgPSBhd2FpdCBnZXRGaWxlQ29udGVudExpbmVzKHNvdXJjZVBhdGgsIHBsdWdpbik7XG5cdGlmICghZmlsZUNvbnRlbnRMaW5lcylcblx0XHR0aHJvdyBFcnJvcihgRmlsZSBjb3VsZCBub3QgYmUgcmVhZDogJHtzb3VyY2VQYXRofWApO1xuXHRjb25zdCBmaWxlUmVmZXJlbmNlID0gW107XG5cdGNvbnN0IHNlY3Rpb25zOiBBcnJheTxTZWN0aW9uQ2FjaGU+ID0gcGx1Z2luLmFwcC5tZXRhZGF0YUNhY2hlLmdldENhY2hlKHNvdXJjZVBhdGgpPy5zZWN0aW9ucyA/PyBbXTtcblx0Zm9yIChjb25zdCBzZWN0aW9uIG9mIHNlY3Rpb25zKSB7XG5cdFx0aWYgKHNlY3Rpb24udHlwZSAhPT0gXCJjb2RlXCIpXG5cdFx0XHRjb250aW51ZTtcblx0XHRjb25zdCBjb2RlYmxvY2tMaW5lcyA9IFsuLi5maWxlQ29udGVudExpbmVzLnNsaWNlKHNlY3Rpb24ucG9zaXRpb24uc3RhcnQubGluZSwgc2VjdGlvbi5wb3NpdGlvbi5lbmQubGluZSksIFwiXCJdO1xuXHRcdGlmICghY29kZWJsb2NrTGluZXNbMF0uaW5jbHVkZXMoXCJgYGByZWZlcmVuY2VcIikgJiYgIWNvZGVibG9ja0xpbmVzWzBdLmluY2x1ZGVzKFwifn5+cmVmZXJlbmNlXCIpKVxuXHRcdFx0Y29udGludWU7XG5cdFx0Y29uc3QgcmVmZXJlbmNlID0gYXdhaXQgZ2V0UmVmZXJlbmNlKGNvZGVibG9ja0xpbmVzLCBzb3VyY2VQYXRoLCBwbHVnaW4pO1xuXHRcdGlmIChyZWZlcmVuY2U/LmV4dGVybmFsPy5pZClcblx0XHRcdGZpbGVSZWZlcmVuY2UucHVzaChyZWZlcmVuY2UpO1xuXHR9XG5cdHJldHVybiBmaWxlUmVmZXJlbmNlO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdXBkYXRlRXh0ZXJuYWxSZWZlcmVuY2UocmVmZXJlbmNlOiBSZWZlcmVuY2UsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbikge1xuXHR0cnkge1xuXHRcdGNvbnN0IHNvdXJjZUluZm8gPSBhd2FpdCBwYXJzZUV4dGVybmFsUmVmZXJlbmNlKHJlZmVyZW5jZSk7XG5cdFx0Y29uc3QgY29udGVudCA9IGF3YWl0IHJlcXVlc3Qoc291cmNlSW5mby5yYXdVcmwgPz8gcmVmZXJlbmNlLnBhdGgpO1xuXHRcdGF3YWl0IHBsdWdpbi5hcHAudmF1bHQuYWRhcHRlci53cml0ZShyZWZlcmVuY2U/LmV4dGVybmFsPy5zdG9yZVBhdGggYXMgc3RyaW5nLCBjb250ZW50KTtcblx0XHRhd2FpdCBwbHVnaW4uYXBwLnZhdWx0LmFkYXB0ZXIud3JpdGUocmVmZXJlbmNlPy5leHRlcm5hbD8uc3RvcmVQYXRoIGFzIHN0cmluZyArIEVYVEVSTkFMX1JFRkVSRU5DRV9JTkZPX1NVRkZJWCwgSlNPTi5zdHJpbmdpZnkoc291cmNlSW5mbykpO1xuXHR9IGNhdGNoKGVycm9yKSB7XG5cdFx0dGhyb3cgRXJyb3IoYENvdWxkIG5vdCBkb3dubG9hZCBmaWxlOiAke2Vycm9yfWApO1xuXHR9XG59XG5hc3luYyBmdW5jdGlvbiBhY2Nlc3NFeHRlcm5hbFJlZmVyZW5jZShyZWZlcmVuY2U6IFJlZmVyZW5jZSwgaWQ6IHN0cmluZywgc291cmNlUGF0aDogc3RyaW5nLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pOiBQcm9taXNlPHN0cmluZz4ge1xuXHR0cnkge1xuXHRcdGlmICghKGF3YWl0IHBsdWdpbi5hcHAudmF1bHQuYWRhcHRlci5leGlzdHMocmVmZXJlbmNlPy5leHRlcm5hbD8uc3RvcmVQYXRoIGFzIHN0cmluZykpKVxuXHRcdFx0YXdhaXQgdXBkYXRlRXh0ZXJuYWxSZWZlcmVuY2UocmVmZXJlbmNlLCBwbHVnaW4pO1xuXHRcdGNvbnN0IGNhY2hlID0gYXdhaXQgcmVhZENhY2hlKHBsdWdpbik7XG5cdFx0aWYgKCFjYWNoZVtpZF0/LnNvdXJjZVBhdGhzPy5pbmNsdWRlcyhzb3VyY2VQYXRoKSkge1xuXHRcdFx0aWYgKCFjYWNoZT8uW2lkXSlcblx0XHRcdFx0Y2FjaGVbaWRdID0ge3NvdXJjZVBhdGhzOiBbc291cmNlUGF0aF0sIHJlZmVyZW5jZTogcmVmZXJlbmNlfTtcblx0XHRcdGVsc2Vcblx0XHRcdFx0Y2FjaGVbaWRdLnNvdXJjZVBhdGhzLnB1c2goc291cmNlUGF0aCk7XG5cdFx0XHRhd2FpdCB1cGRhdGVDYWNoZShjYWNoZSxwbHVnaW4pO1xuXHRcdH1cblx0XHRyZXR1cm4gcmVmZXJlbmNlPy5leHRlcm5hbD8uc3RvcmVQYXRoIGFzIHN0cmluZztcblx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHR0aHJvdyBFcnJvcihlcnJvcik7XG5cdH1cbn1cbmFzeW5jIGZ1bmN0aW9uIHJlYWRDYWNoZShwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pOiBQcm9taXNlPENhY2hlPiB7XG5cdHJldHVybiBKU09OLnBhcnNlKGF3YWl0IHBsdWdpbi5hcHAudmF1bHQuYWRhcHRlci5yZWFkKHBsdWdpbi5hcHAudmF1bHQuY29uZmlnRGlyICsgRVhURVJOQUxfUkVGRVJFTkNFX0NBQ0hFKSk7XG59XG5hc3luYyBmdW5jdGlvbiB1cGRhdGVDYWNoZShjYWNoZTogQ2FjaGUsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbik6IFByb21pc2U8dm9pZD4ge1xuXHRhd2FpdCBwbHVnaW4uYXBwLnZhdWx0LmFkYXB0ZXIud3JpdGUocGx1Z2luLmFwcC52YXVsdC5jb25maWdEaXIgKyBFWFRFUk5BTF9SRUZFUkVOQ0VfQ0FDSEUsIEpTT04uc3RyaW5naWZ5KGNhY2hlKSk7XG59XG5mdW5jdGlvbiBpZEV4dGVybmFsUmVmZXJlbmNlKGZpbGVMaW5rOiBzdHJpbmcpOiB7aWQ6IHN0cmluZywgd2Vic2l0ZTogc3RyaW5nfSB7XG5cdGNvbnN0IGxpbmtJbmZvID0gL15odHRwcz86XFwvXFwvKC4rKVxcLmNvbVxcLyguKykkLy5leGVjKGZpbGVMaW5rKTtcblx0aWYgKCFsaW5rSW5mbz8uWzFdIHx8ICFsaW5rSW5mbz8uWzJdKVxuXHRcdHRocm93IEVycm9yKFwiTm8gc3VjaCByZXBvc2l0b3J5IGNvdWxkIGJlIGZvdW5kXCIpO1xuXHRyZXR1cm4ge2lkOiBbbGlua0luZm9bMV0sIC4uLmxpbmtJbmZvWzJdLnNwbGl0KFwiL1wiKV0uam9pbihcIi1cIiksIHdlYnNpdGU6IGxpbmtJbmZvWzFdfTtcbn1cblxuZnVuY3Rpb24gZ2V0UGF0aChmaWxlUGF0aDogc3RyaW5nLCBzb3VyY2VQYXRoOiBzdHJpbmcsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbik6IHN0cmluZyB7XG5cdGZpbGVQYXRoID0gZmlsZVBhdGgudHJpbSgpO1xuXHRpZiAoZmlsZVBhdGguc3RhcnRzV2l0aChcIltbXCIpICYmIGZpbGVQYXRoLmVuZHNXaXRoKFwiXV1cIikpXG5cdFx0cmV0dXJuIHBsdWdpbi5hcHAubWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChmaWxlUGF0aC5zbGljZSgyLC0yKSwgc291cmNlUGF0aCk/LnBhdGggPz8gZmlsZVBhdGg7XG5cdGZpbGVQYXRoID0gZmlsZVBhdGgucmVwbGFjZShcIlxcXFxcIiwgXCIvXCIpO1xuXHRpZiAoZmlsZVBhdGguc3RhcnRzV2l0aChMT0NBTF9QUkVGSVgpKVxuXHRcdHJldHVybiBmaWxlUGF0aC5zdWJzdHJpbmcoMik7XG5cdGVsc2UgaWYgKGZpbGVQYXRoLnN0YXJ0c1dpdGgoXCIuL1wiKSB8fCAvXltePDpcIi9cXFxcPj98Kl0vLnRlc3QoZmlsZVBhdGgpKSB7XG5cdFx0aWYgKCFzb3VyY2VQYXRoICYmIHNvdXJjZVBhdGggIT0gXCJcIilcblx0XHRcdHRocm93IEVycm9yKFwiQ2Fubm90IHJlc29sdmUgcmVsYXRpdmUgcGF0aCBiZWNhdXNlIHRoZSBzb3VyY2UgcGF0aCBpcyBtaXNzaW5nXCIpO1xuXHRcdHJldHVybiBnZXRSZWxhdGl2ZVBhdGgoZmlsZVBhdGgsIHNvdXJjZVBhdGgudHJpbSgpKTtcblx0fSAgZWxzZSBpZiAoZmlsZVBhdGguc3RhcnRzV2l0aChcIi9cIikpXG5cdFx0dGhyb3cgRXJyb3IoYFBhdGggc2hvdWxkIG5vdCBzdGFydCB3aXRoIFwiL1wiLCB1c2UgXCIke0xPQ0FMX1BSRUZJWH1cIiB0byByZWZlcmVuY2UgYSBwYXRoIHJlbGF0aXZlIHRvIHRoZSB2YXVsdCByb290IGZvbGRlcmApO1xuXHRlbHNlXG5cdFx0dGhyb3cgRXJyb3IoXCJDYW5ub3QgcmVzb2x2ZSBwYXRoXCIpO1xufVxuZnVuY3Rpb24gZ2V0UmVsYXRpdmVQYXRoKGZpbGVQYXRoOiBzdHJpbmcsIHNvdXJjZVBhdGg6IHN0cmluZykge1xuXHRpZiAoZmlsZVBhdGguc3RhcnRzV2l0aChcIi4vXCIpKVxuXHRcdGZpbGVQYXRoID0gZmlsZVBhdGguc3Vic3RyaW5nKDIpO1xuXHRjb25zdCB2YXVsdERpcnMgPSBzb3VyY2VQYXRoLnNwbGl0KFwiL1wiKTtcblx0dmF1bHREaXJzLnBvcCgpO1xuXHR3aGlsZSAoZmlsZVBhdGguc3RhcnRzV2l0aChcIi4uL1wiKSlcblx0XHRpZiAodmF1bHREaXJzLnBvcCgpICE9PSB1bmRlZmluZWQpXG5cdFx0XHRmaWxlUGF0aCA9IGZpbGVQYXRoLnN1YnN0cmluZygzKTtcblx0XHRlbHNlXG5cdFx0XHR0aHJvdyBFcnJvcihcIlBhdGggcmVmZXJlbmNlcyBvdXRzaWRlIHZhdWx0LCB0b28gbWFueSBcXFwiLi4vXFxcInMgdXNlZFwiKTtcblx0cmV0dXJuIG5vcm1hbGl6ZVBhdGgoWy4uLnZhdWx0RGlycywgZmlsZVBhdGhdLmpvaW4oXCIvXCIpKTtcbn1cbiIsICJpbXBvcnQgeyBwYXJzZVlhbWwsIHJlcXVlc3RVcmwgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuZXhwb3J0IGludGVyZmFjZSBSZWZlcmVuY2Uge1xuXHRzdGFydExpbmU6IG51bWJlcjtcblx0Y29kZTogc3RyaW5nO1xuXHRsYW5ndWFnZTogc3RyaW5nO1xuXHRwYXRoOiBzdHJpbmc7XG5cdGV4dGVybmFsPzoge1xuXHRcdGlkOiBzdHJpbmcsXG5cdFx0c3RvcmVQYXRoOiBzdHJpbmcsXG5cdFx0d2Vic2l0ZTogc3RyaW5nLFxuXHRcdGluZm86IEV4dGVybmFsUmVmZXJlbmNlSW5mbztcblx0fVxufVxuXG50eXBlIExpbmVJZGVudGlmaWVyID0gbnVsbCB8IHN0cmluZyB8IG51bWJlciB8IFJlZ0V4cDtcblxuZXhwb3J0IGludGVyZmFjZSBSZWZlcmVuY2VQYXJhbWV0ZXJzIHtcblx0ZmlsZVBhdGg6IHN0cmluZztcblx0bGFuZ3VhZ2U6IHN0cmluZztcblx0c3RhcnQ6IExpbmVJZGVudGlmaWVyO1xuXHRlbmQ6IExpbmVJZGVudGlmaWVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVybmFsUmVmZXJlbmNlSW5mbyB7XG5cdHRpdGxlOiBzdHJpbmc7XG5cdHVybDogc3RyaW5nO1xuXHRzaXRlOiBzdHJpbmc7XG5cdGRhdGV0aW1lOiBzdHJpbmc7XG5cdHJhd1VybDogc3RyaW5nO1xuXHRkaXNwbGF5VXJsPzogc3RyaW5nO1xuXHRhdXRob3I/OiBzdHJpbmc7XG5cdHJlcG9zaXRvcnk/OiBzdHJpbmc7XG5cdHBhdGg/OiBzdHJpbmc7XG5cdGZpbGVOYW1lPzogc3RyaW5nO1xuXHRyZWZJbmZvPzoge1xuXHRcdHJlZjogc3RyaW5nO1xuXHRcdHR5cGU6IHN0cmluZztcblx0XHRoYXNoOiBzdHJpbmc7XG5cdH07XG59XG5cbmludGVyZmFjZSBQYXNzZWRQYXJhbWV0ZXJzIHtcblx0ZmlsZVBhdGg/OiBzdHJpbmc7XG5cdGZpbGU/OiBzdHJpbmc7XG5cdHBhdGg/OiBzdHJpbmc7XG5cdGxpbms/OiBzdHJpbmc7XG5cdGxhbmd1YWdlPzogc3RyaW5nO1xuXHRsYW5nPzogc3RyaW5nO1xuXHRzdGFydD86IHN0cmluZyB8IG51bWJlcjtcblx0ZW5kPzogc3RyaW5nIHwgbnVtYmVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VSZWZlcmVuY2VQYXJhbWV0ZXJzKHNvdXJjZTogc3RyaW5nKTogUmVmZXJlbmNlUGFyYW1ldGVycyB7XG5cdHNvdXJjZSA9IHNvdXJjZS5yZXBsYWNlKC9eKFteOl0rKTooLispXFxuLywgXCIkMTogJDJcXG5cIikucmVwbGFjZSgvKD88IVwiKVxcW1xcWyguKj8pXFxdXFxdKD8hXCIpLywgXCJcXFwiW1skMV1dXFxcIlwiKTtcblx0bGV0IHBhc3NlZFBhcmFtZXRlcnM6IFBhc3NlZFBhcmFtZXRlcnMgfCBzdHJpbmcgfCBudWxsID0gcGFyc2VZYW1sKHNvdXJjZSk7XG5cdGlmIChwYXNzZWRQYXJhbWV0ZXJzIGFzIHN0cmluZyA9PT0gc291cmNlIHx8IHBhc3NlZFBhcmFtZXRlcnMgPT09IG51bGwpXG5cdFx0dGhyb3cgRXJyb3IoXCJZQU1MIFBhcnNlIEVycm9yXCIpO1xuXHRwYXNzZWRQYXJhbWV0ZXJzID0gcGFzc2VkUGFyYW1ldGVycyBhcyBQYXNzZWRQYXJhbWV0ZXJzO1xuXHRjb25zdCBmaWxlUGF0aCA9IHBhc3NlZFBhcmFtZXRlcnM/LmZpbGVQYXRoID8/IHBhc3NlZFBhcmFtZXRlcnM/LmZpbGUgPz8gcGFzc2VkUGFyYW1ldGVycz8ucGF0aCA/PyBwYXNzZWRQYXJhbWV0ZXJzPy5saW5rO1xuXHRpZiAodHlwZW9mIGZpbGVQYXRoID09PSBcInVuZGVmaW5lZFwiKVxuXHRcdHRocm93IEVycm9yKFwiTm8gZmlsZSBzcGVjaWZpZWRcIik7XG5cdGNvbnN0IHJlZmVyZW5jZVBhcmFtZXRlcnM6IFJlZmVyZW5jZVBhcmFtZXRlcnMgPSB7ZmlsZVBhdGg6IGZpbGVQYXRoLCBsYW5ndWFnZTogcGFzc2VkUGFyYW1ldGVycz8ubGFuZ3VhZ2UgPz8gcGFzc2VkUGFyYW1ldGVycz8ubGFuZyA/PyBnZXRMYW5ndWFnZShmaWxlUGF0aCksIHN0YXJ0OiBudWxsLCBlbmQ6IG51bGx9O1xuXHRyZWZlcmVuY2VQYXJhbWV0ZXJzLnN0YXJ0ID0gZ2V0TGluZUlkZW50aWZpZXIocGFzc2VkUGFyYW1ldGVycy5zdGFydCk7XG5cdHJlZmVyZW5jZVBhcmFtZXRlcnMuZW5kID0gZ2V0TGluZUlkZW50aWZpZXIocGFzc2VkUGFyYW1ldGVycy5lbmQpO1xuXHRyZXR1cm4gcmVmZXJlbmNlUGFyYW1ldGVycztcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBhcnNlRXh0ZXJuYWxSZWZlcmVuY2UocmVmZXJlbmNlOiBSZWZlcmVuY2UpOiBQcm9taXNlPFBhcnRpYWw8RXh0ZXJuYWxSZWZlcmVuY2VJbmZvPj4ge1xuXHRjb25zdCBIRUFERVJTID0geyBcIkFjY2VwdFwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiwgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfTtcblx0dHJ5IHtcblx0XHRpZiAocmVmZXJlbmNlLmV4dGVybmFsPy53ZWJzaXRlID09PSBcImdpdGh1YlwiKSB7XG5cdFx0XHRyZWZlcmVuY2UucGF0aCA9IChyZWZlcmVuY2UucGF0aC5zcGxpdChcIj9cIilbMF0pLnJlcGxhY2UoLyg/PD1naXRodWIuY29tXFwvLipcXC8uKlxcLylyYXcoPz1cXC8pLyxcImJsb2JcIik7XG5cdFx0XHRjb25zdCBpbmZvID0gKGF3YWl0IHJlcXVlc3RVcmwoe3VybDogcmVmZXJlbmNlLnBhdGgsIG1ldGhvZDogXCJHRVRcIiwgaGVhZGVyczogSEVBREVSU30pKS5qc29uO1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0dGl0bGU6IGluZm8ucGF5bG9hZC5ibG9iLmRpc3BsYXlOYW1lLCAvLyB0aXRsZTogaW5mby50aXRsZSxcblx0XHRcdFx0cmF3VXJsOiBpbmZvLnBheWxvYWQuYmxvYi5yYXdCbG9iVXJsLFxuXHRcdFx0XHRkYXRldGltZTogdGltZVN0YW1wKCksXG5cdFx0XHRcdGRpc3BsYXlVcmw6IHJlZmVyZW5jZS5wYXRoLFxuXHRcdFx0XHRhdXRob3I6IGluZm8ucGF5bG9hZC5yZXBvLm93bmVyTG9naW4sXG5cdFx0XHRcdHJlcG9zaXRvcnk6IGluZm8ucGF5bG9hZC5yZXBvLm5hbWUsXG5cdFx0XHRcdHBhdGg6IGluZm8ucGF5bG9hZC5wYXRoLFxuXHRcdFx0XHRmaWxlTmFtZTogaW5mby5wYXlsb2FkLmJsb2IuZGlzcGxheU5hbWUsXG5cdFx0XHRcdHJlZkluZm86IHtcblx0XHRcdFx0XHRyZWY6IGluZm8ucGF5bG9hZC5yZWZJbmZvLm5hbWUsXG5cdFx0XHRcdFx0dHlwZTogaW5mby5wYXlsb2FkLnJlZkluZm8ucmVmVHlwZSxcblx0XHRcdFx0XHRoYXNoOiBpbmZvLnBheWxvYWQucmVmSW5mby5jdXJyZW50T2lkXG5cdFx0XHRcdH0sXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSBpZiAocmVmZXJlbmNlLmV4dGVybmFsPy53ZWJzaXRlID09PSBcImdpdGxhYlwiKSB7XG5cdFx0XHRyZWZlcmVuY2UucGF0aCA9IChyZWZlcmVuY2UucGF0aC5zcGxpdChcIj9cIilbMF0pLnJlcGxhY2UoLyg/PD1naXRsYWIuY29tXFwvLipcXC8uKlxcLylyYXcoPz1cXC8pLywgXCJibG9iXCIpO1xuXHRcdFx0Y29uc3QgaW5mbyA9IChhd2FpdCByZXF1ZXN0VXJsKHsgdXJsOiByZWZlcmVuY2UucGF0aCwgbWV0aG9kOiBcIkdFVFwiLCBoZWFkZXJzOiBIRUFERVJTIH0pKS5qc29uO1xuXHRcdFx0Ly9UT0RPIChAbWF5dXJhbmt2KSBVcGRhdGVcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdHRpdGxlOiBpbmZvLm5hbWUsXG5cdFx0XHRcdHJhd1VybDogXCJodHRwczovL2dpdGxhYi5jb21cIiArIGluZm8ucmF3X3BhdGgsXG5cdFx0XHRcdGRhdGV0aW1lOiB0aW1lU3RhbXAoKSxcblx0XHRcdFx0ZGlzcGxheVVybDogcmVmZXJlbmNlLnBhdGgsXG5cdFx0XHRcdGF1dGhvcjogcmVmZXJlbmNlLnBhdGgubWF0Y2goLyg/PD1eaHR0cHM/OlxcL1xcL2dpdGxhYi5jb21cXC8pLio/KD89XFwvKS8pPy5bMF0gPz8gXCJcIixcblx0XHRcdFx0cmVwb3NpdG9yeTogcmVmZXJlbmNlLnBhdGgubWF0Y2goLyg/PD1eaHR0cHM/OlxcL1xcL2dpdGxhYi5jb21cXC8uKj9cXC8pLio/KD89XFwvKS8pPy5bMF0gPz8gXCJcIixcblx0XHRcdFx0cGF0aDogaW5mby5wYXRoLFxuXHRcdFx0XHRmaWxlTmFtZTogaW5mby5uYW1lLFxuXHRcdFx0XHRyZWZJbmZvOiB7XG5cdFx0XHRcdFx0cmVmOiBcIlwiLCAvL1RPRE8gKEBtYXl1cmFua3YpIFBhcnNlIGZyb20gdXJsXG5cdFx0XHRcdFx0dHlwZTogXCJcIiwgIC8vVE9ETyAoQG1heXVyYW5rdikgUGFyc2UgZnJvbSB1cmxcblx0XHRcdFx0XHRoYXNoOiBpbmZvLmxhc3RfY29tbWl0X3NoYVxuXHRcdFx0XHR9LFxuXHRcdFx0fTtcblx0XHR9ICBlbHNlIGlmIChyZWZlcmVuY2UuZXh0ZXJuYWw/LndlYnNpdGUgPT09IFwiYml0YnVja2V0XCIpIHtcblx0XHRcdC8vVE9ETyAoQG1heXVyYW5rdikgVXBkYXRlXG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHR0aXRsZTogXCJcIixcblx0XHRcdFx0cmF3VXJsOiBcIlwiLFxuXHRcdFx0XHRkYXRldGltZTogdGltZVN0YW1wKCksXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSBpZiAocmVmZXJlbmNlLmV4dGVybmFsPy53ZWJzaXRlID09PSBcInNvdXJjZWZvcmdlXCIpIHtcblx0XHRcdC8vVE9ETyAoQG1heXVyYW5rdikgVXBkYXRlXG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHR0aXRsZTogXCJcIixcblx0XHRcdFx0cmF3VXJsOiBcIlwiLFxuXHRcdFx0XHRkYXRldGltZTogdGltZVN0YW1wKCksXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvL1RPRE8gKEBtYXl1cmFua3YpIFVwZGF0ZVxuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0dGl0bGU6IFwiXCIsXG5cdFx0XHRcdHJhd1VybDogcmVmZXJlbmNlLnBhdGgsXG5cdFx0XHRcdGRhdGV0aW1lOiB0aW1lU3RhbXAoKSxcblx0XHRcdH07XG5cdFx0fVxuXHR9IGNhdGNoIChlcnJvcikge1xuXHRcdHRocm93IEVycm9yKGBDb3VsZCBub3QgcGFyc2UgZXh0ZXJuYWwgVVJMOiAke2Vycm9yfWApO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGdldExhbmd1YWdlKGZpbGVQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRpZiAoZmlsZVBhdGguc3RhcnRzV2l0aChcIltbXCIpICYmIGZpbGVQYXRoLmVuZHNXaXRoKFwiXV1cIikpXG5cdFx0ZmlsZVBhdGggPSBmaWxlUGF0aC5zbGljZSgyLCAtMik7XG5cdHJldHVybiBmaWxlUGF0aC5zbGljZSgoZmlsZVBhdGgubGFzdEluZGV4T2YoXCIuXCIpIC0gMSA+Pj4gMCkgKyAyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExpbmVMaW1pdHMoY29kZUNvbnRlbnQ6IHN0cmluZywgcmVmZXJlbmNlUGFyYW1ldGVyczogUmVmZXJlbmNlUGFyYW1ldGVycyk6IHsgY29kZVNlY3Rpb246IHN0cmluZywgc3RhcnRMaW5lOiBudW1iZXIgfSB7XG5cdHRyeSB7XG5cdFx0Y29uc3QgbGluZXMgPSBjb2RlQ29udGVudC5zcGxpdChcIlxcblwiKTtcblx0XHRsZXQgc3RhcnRJbmRleDogbnVtYmVyO1xuXHRcdGxldCBlbmRJbmRleDogbnVtYmVyO1xuXHRcdGlmIChyZWZlcmVuY2VQYXJhbWV0ZXJzLnN0YXJ0ID09PSBudWxsKVxuXHRcdFx0c3RhcnRJbmRleCA9IDA7XG5cdFx0ZWxzZSBpZiAodHlwZW9mIHJlZmVyZW5jZVBhcmFtZXRlcnMuc3RhcnQgPT09IFwibnVtYmVyXCIpXG5cdFx0XHRzdGFydEluZGV4ID0gcmVmZXJlbmNlUGFyYW1ldGVycy5zdGFydCAtIDE7XG5cdFx0ZWxzZSBpZiAoKHJlZmVyZW5jZVBhcmFtZXRlcnMuc3RhcnQgYXMgc3RyaW5nKT8uc3RhcnRzV2l0aChcIi9cIikgJiYgKHJlZmVyZW5jZVBhcmFtZXRlcnMuc3RhcnQgYXMgc3RyaW5nKT8uZW5kc1dpdGgoXCIvXCIpKSB7XG5cdFx0XHRjb25zdCBzdGFydFJlZ2V4ID0gbmV3IFJlZ0V4cCgocmVmZXJlbmNlUGFyYW1ldGVycy5zdGFydCBhcyBzdHJpbmcpLnJlcGxhY2UoL15cXC8oLiopXFwvJC8sIFwiJDFcIikpO1xuXHRcdFx0c3RhcnRJbmRleCA9IGxpbmVzLmZpbmRJbmRleCgobGluZSkgPT4gc3RhcnRSZWdleC50ZXN0KGxpbmUpKTtcblx0XHR9IGVsc2Vcblx0XHRcdHN0YXJ0SW5kZXggPSBsaW5lcy5maW5kSW5kZXgoKGxpbmUpID0+IGxpbmUuaW5kZXhPZihyZWZlcmVuY2VQYXJhbWV0ZXJzLnN0YXJ0IGFzIHN0cmluZykgPiAtMSk7XG5cdFx0aWYgKHJlZmVyZW5jZVBhcmFtZXRlcnMuZW5kID09PSBudWxsKVxuXHRcdFx0ZW5kSW5kZXggPSBsaW5lcy5sZW5ndGggLSAxO1xuXHRcdGVsc2UgaWYgKHR5cGVvZiByZWZlcmVuY2VQYXJhbWV0ZXJzLmVuZCA9PT0gXCJudW1iZXJcIilcblx0XHRcdGVuZEluZGV4ID0gcmVmZXJlbmNlUGFyYW1ldGVycy5lbmQgLSAxO1xuXHRcdGVsc2UgaWYgKChyZWZlcmVuY2VQYXJhbWV0ZXJzLmVuZCBhcyBzdHJpbmcpPy5zdGFydHNXaXRoKFwiL1wiKSAmJiAocmVmZXJlbmNlUGFyYW1ldGVycy5lbmQgYXMgc3RyaW5nKT8uZW5kc1dpdGgoXCIvXCIpKSB7XG5cdFx0XHRjb25zdCBlbmRSZWdleCA9IG5ldyBSZWdFeHAoKHJlZmVyZW5jZVBhcmFtZXRlcnMuZW5kIGFzIHN0cmluZykucmVwbGFjZSgvXlxcLyguKilcXC8kLywgXCIkMVwiKSk7XG5cdFx0XHRlbmRJbmRleCA9IGxpbmVzLmZpbmRJbmRleCgobGluZSkgPT4gZW5kUmVnZXgudGVzdChsaW5lKSk7XG5cdFx0fSBlbHNlIGlmICgocmVmZXJlbmNlUGFyYW1ldGVycy5lbmQgYXMgc3RyaW5nKT8uc3RhcnRzV2l0aChcIitcIikpXG5cdFx0XHRlbmRJbmRleCA9IHN0YXJ0SW5kZXggKyBOdW1iZXIoKHJlZmVyZW5jZVBhcmFtZXRlcnMuZW5kIGFzIHN0cmluZykuc2xpY2UoMSkpO1xuXHRcdGVsc2Vcblx0XHRcdGVuZEluZGV4ID0gbGluZXMuZmluZEluZGV4KChsaW5lKSA9PiBsaW5lLmluZGV4T2YocmVmZXJlbmNlUGFyYW1ldGVycy5lbmQgYXMgc3RyaW5nKSA+IC0xKTtcblx0XHRpZiAoc3RhcnRJbmRleCA+IGVuZEluZGV4KVxuXHRcdFx0dGhyb3cgRXJyb3IoXCJTcGVjaWZpZWQgU3RhcnQgbGluZSBpcyBhZnRlcnRoZSBzcGVjaWZpZWQgRW5kIGxpbmVcIik7XG5cdFx0ZWxzZSBpZiAoc3RhcnRJbmRleCA9PT0gLTEpXG5cdFx0XHR0aHJvdyBFcnJvcihcIlN0YXJ0IGxpbmUgY291bGQgbm90IGJlIGZvdW5kXCIpO1xuXHRcdGVsc2UgaWYgKGVuZEluZGV4ID09PSAtMSlcblx0XHRcdHRocm93IEVycm9yKFwiRW5kIGxpbmUgY291bGQgbm90IGJlIGZvdW5kXCIpO1xuXHRcdHJldHVybiB7IGNvZGVTZWN0aW9uOiBsaW5lcy5zbGljZShzdGFydEluZGV4LCBlbmRJbmRleCArIDEpLmpvaW4oXCJcXG5cIiksIHN0YXJ0TGluZTogc3RhcnRJbmRleCArIDEgfTtcblx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHR0aHJvdyBFcnJvcihlcnJvcik7XG5cdH1cbn1cblxuZnVuY3Rpb24gZ2V0TGluZUlkZW50aWZpZXIobGluZUlkZW50aWZpZXI6IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZCk6IExpbmVJZGVudGlmaWVyIHtcblx0aWYgKHR5cGVvZiBsaW5lSWRlbnRpZmllciA9PT0gXCJ1bmRlZmluZWRcIilcblx0XHRyZXR1cm4gbnVsbDtcblx0ZWxzZSBpZiAodHlwZW9mIGxpbmVJZGVudGlmaWVyID09PSBcIm51bWJlclwiKVxuXHRcdHJldHVybiBsaW5lSWRlbnRpZmllcjtcblx0ZWxzZSBpZiAoL15cXC8oLiopXFwvJC8udGVzdChsaW5lSWRlbnRpZmllcikpIHsgLy8gUmVnZXhcblx0XHR0cnkge1xuXHRcdFx0cmV0dXJuIG5ldyBSZWdFeHAobGluZUlkZW50aWZpZXIucmVwbGFjZSgvXlxcLyguKilcXC8kLywgXCIkMVwiKSk7XG5cdFx0fSBjYXRjaCB7XG5cdFx0XHR0aHJvdyBFcnJvcihcIkludmFsaWQgUmVndWxhciBFeHByZXNzaW9uXCIpO1xuXHRcdH1cblx0fSAgZWxzZSBpZiAoL1wiLipcIi8udGVzdChsaW5lSWRlbnRpZmllcikpIC8vIFBsYWluIFRleHRcblx0XHRyZXR1cm4gbGluZUlkZW50aWZpZXIuc3Vic3RyaW5nKDEsbGluZUlkZW50aWZpZXIubGVuZ3RoLTEpO1xuXHRlbHNlIGlmICgvJy4qJy8udGVzdChsaW5lSWRlbnRpZmllcikpIC8vIFBsYWluIFRleHRcblx0XHRyZXR1cm4gbGluZUlkZW50aWZpZXIuc3Vic3RyaW5nKDEsbGluZUlkZW50aWZpZXIubGVuZ3RoLTEpO1xuXHRlbHNlIGlmICgvXFxELy50ZXN0KGxpbmVJZGVudGlmaWVyKSkgLy8gUGxhaW4gVGV4dCAvL1RPRE8gKEBtYXl1cmFua3YpIFNob3VsZCB0aGlzIGJlIFxcRCsgPz9cblx0XHRyZXR1cm4gbGluZUlkZW50aWZpZXI7XG5cdGVsc2UgaWYgKC9cXGQrLy50ZXN0KGxpbmVJZGVudGlmaWVyKSkgLy8gUGxhaW4gTnVtYmVyXG5cdFx0cmV0dXJuIHBhcnNlSW50KGxpbmVJZGVudGlmaWVyKTtcblx0cmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aW1lU3RhbXAoKTogc3RyaW5nIHtcblx0Y29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XG5cdGNvbnN0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG5cdGNvbnN0IG1vbnRoID0gU3RyaW5nKGRhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsIFwiMFwiKTtcblx0Y29uc3QgZGF5ID0gU3RyaW5nKGRhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCBcIjBcIik7XG5cdGNvbnN0IGhvdXIgPSBTdHJpbmcoZGF0ZS5nZXRIb3VycygpKS5wYWRTdGFydCgyLCBcIjBcIik7XG5cdGNvbnN0IG1pbnV0ZSA9IFN0cmluZyhkYXRlLmdldE1pbnV0ZXMoKSkucGFkU3RhcnQoMiwgXCIwXCIpO1xuXHQvLyBjb25zdCBzZWNvbmQgPSBTdHJpbmcoZGF0ZS5nZXRTZWNvbmRzKCkpLnBhZFN0YXJ0KDIsIFwiMFwiKTtcblxuXHRyZXR1cm4gYCR7eWVhcn0tJHttb250aH0tJHtkYXl9ICR7aG91cn06JHttaW51dGV9YDtcbn1cbiIsICJpbXBvcnQgeyBNYXJrZG93blNlY3Rpb25JbmZvcm1hdGlvbiwgQ2FjaGVkTWV0YWRhdGEsIHNhbml0aXplSFRNTFRvRG9tLCBGcm9udE1hdHRlckNhY2hlLCBNYXJrZG93blJlbmRlcmVyIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQgeyB2aXNpdFBhcmVudHMgfSBmcm9tIFwidW5pc3QtdXRpbC12aXNpdC1wYXJlbnRzXCI7XG5pbXBvcnQgeyBmcm9tSHRtbCB9IGZyb20gXCJoYXN0LXV0aWwtZnJvbS1odG1sXCI7XG5pbXBvcnQgeyB0b0h0bWwgfSBmcm9tIFwiaGFzdC11dGlsLXRvLWh0bWxcIjtcbmltcG9ydCB7IEVsZW1lbnRDb250ZW50LCBFbGVtZW50IH0gZnJvbSBcImhhc3RcIjtcblxuaW1wb3J0IENvZGVTdHlsZXJQbHVnaW4gZnJvbSBcIi4vbWFpblwiO1xuaW1wb3J0IHsgU0VUVElOR1NfU09VUkNFUEFUSF9QUkVGSVgsIFRSQU5TSVRJT05fTEVOR1RIIH0gZnJvbSBcIi4vU2V0dGluZ3NcIjtcbmltcG9ydCB7IENvZGVibG9ja1BhcmFtZXRlcnMsIGdldEZpbGVDb250ZW50TGluZXMsIGlzQ29kZWJsb2NrSWdub3JlZCwgaXNMYW5ndWFnZUlnbm9yZWQsIHBhcnNlQ29kZWJsb2NrU291cmNlIH0gZnJvbSBcIi4vUGFyc2luZy9Db2RlYmxvY2tQYXJzaW5nXCI7XG5pbXBvcnQgeyBJbmxpbmVDb2RlUGFyYW1ldGVycywgcGFyc2VJbmxpbmVDb2RlIH0gZnJvbSBcIi4vUGFyc2luZy9JbmxpbmVDb2RlUGFyc2luZ1wiO1xuaW1wb3J0IHsgY3JlYXRlSGVhZGVyLCBjcmVhdGVJbmxpbmVPcGVuZXIsIGdldExpbmVDbGFzcyBhcyBnZXRMaW5lQ2xhc3NlcyB9IGZyb20gXCIuL0NvZGVibG9ja0RlY29yYXRpbmdcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRpbmdWaWV3Q29kZWJsb2NrRGVjb3JhdGluZ1Bvc3RQcm9jZXNzb3IoZWxlbWVudDogSFRNTEVsZW1lbnQsIHtzb3VyY2VQYXRoLGdldFNlY3Rpb25JbmZvLGZyb250bWF0dGVyfToge3NvdXJjZVBhdGg6IHN0cmluZywgZ2V0U2VjdGlvbkluZm86IChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4gTWFya2Rvd25TZWN0aW9uSW5mb3JtYXRpb24gfCBudWxsLCBmcm9udG1hdHRlcjogRnJvbnRNYXR0ZXJDYWNoZSB8IHVuZGVmaW5lZH0sIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbiwgZWRpdGluZ0VtYmVkcyA9IGZhbHNlKSB7XG5cdGNvbnN0IGNhY2hlOiBDYWNoZWRNZXRhZGF0YSB8IG51bGwgPSBwbHVnaW4uYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0Q2FjaGUoc291cmNlUGF0aCk7XG5cdGlmICghc291cmNlUGF0aCB8fCAhZWxlbWVudCB8fCAoZnJvbnRtYXR0ZXIgPz8gY2FjaGU/LmZyb250bWF0dGVyKT8uW1wiY29kZS1zdHlsZXItaWdub3JlXCJdID09PSB0cnVlKVxuXHRcdHJldHVybjtcblxuXHRlZGl0aW5nRW1iZWRzID0gZWRpdGluZ0VtYmVkcyB8fCBCb29sZWFuKGVsZW1lbnQubWF0Y2hQYXJlbnQoXCIuY20tZW1iZWQtYmxvY2tcIikpO1xuXHRjb25zdCBzcGVjaWZpYyA9ICFlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCIudmlldy1jb250ZW50ID4gKlwiKTtcblx0Y29uc3QgcHJpbnRpbmcgPSBCb29sZWFuKGVsZW1lbnQucXVlcnlTZWxlY3RvcihcImRpdi5wcmludCA+ICpcIikpIHx8IEJvb2xlYW4oZWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiZGl2LnNsaWRlcyA+ICpcIikpO1xuXHRpZiAocHJpbnRpbmcgJiYgIXBsdWdpbi5zZXR0aW5ncy5kZWNvcmF0ZVByaW50KVxuXHRcdHJldHVybjtcblxuXHRjb25zdCBjb2RlYmxvY2tQcmVFbGVtZW50czogQXJyYXk8SFRNTEVsZW1lbnQ+ID0gYXdhaXQgZ2V0Q29kZWJsb2NrUHJlRWxlbWVudHMoZWxlbWVudCxzcGVjaWZpYyxlZGl0aW5nRW1iZWRzKTtcblx0aWYgKGNvZGVibG9ja1ByZUVsZW1lbnRzLmxlbmd0aCA9PT0gMCAmJiAhKGVkaXRpbmdFbWJlZHMgJiYgc3BlY2lmaWMpKVxuXHRcdHJldHVybjtcblxuXHRjb25zdCBjb2RlYmxvY2tTZWN0aW9uSW5mbzogTWFya2Rvd25TZWN0aW9uSW5mb3JtYXRpb24gfCBudWxsID0gZ2V0U2VjdGlvbkluZm8oY29kZWJsb2NrUHJlRWxlbWVudHNbMF0pO1xuXHRpZiAoY29kZWJsb2NrU2VjdGlvbkluZm8gJiYgc3BlY2lmaWMgJiYgIWVkaXRpbmdFbWJlZHMpXG5cdFx0YXdhaXQgcmVuZGVyU3BlY2lmaWNSZWFkaW5nU2VjdGlvbihjb2RlYmxvY2tQcmVFbGVtZW50cyxzb3VyY2VQYXRoLGNvZGVibG9ja1NlY3Rpb25JbmZvLHBsdWdpbik7XG5cdGVsc2UgaWYgKHNwZWNpZmljICYmIHNvdXJjZVBhdGguc3RhcnRzV2l0aChTRVRUSU5HU19TT1VSQ0VQQVRIX1BSRUZJWCkpXG5cdFx0YXdhaXQgcmVuZGVyU2V0dGluZ3MoY29kZWJsb2NrUHJlRWxlbWVudHMsc291cmNlUGF0aCxwbHVnaW4pO1xuXHRlbHNlIGlmIChzcGVjaWZpYyAmJiAhcHJpbnRpbmcpXG5cdFx0YXdhaXQgcmV0cmlnZ2VyUHJvY2Vzc29yKGVsZW1lbnQse3NvdXJjZVBhdGgsZ2V0U2VjdGlvbkluZm8sZnJvbnRtYXR0ZXJ9LHBsdWdpbixlZGl0aW5nRW1iZWRzKTtcblx0ZWxzZVxuXHRcdGF3YWl0IHJlbmRlckRvY3VtZW50KGNvZGVibG9ja1ByZUVsZW1lbnRzLHNvdXJjZVBhdGgsY2FjaGUsZWRpdGluZ0VtYmVkcyxwcmludGluZyxwbHVnaW4pO1xufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRpbmdWaWV3SW5saW5lRGVjb3JhdGluZ1Bvc3RQcm9jZXNzb3IoZWxlbWVudDogSFRNTEVsZW1lbnQsIHtzb3VyY2VQYXRofToge3NvdXJjZVBhdGg6IHN0cmluZywgZ2V0U2VjdGlvbkluZm86IChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4gTWFya2Rvd25TZWN0aW9uSW5mb3JtYXRpb24gfCBudWxsLCBmcm9udG1hdHRlcjogRnJvbnRNYXR0ZXJDYWNoZSB8IHVuZGVmaW5lZH0sIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbikge1xuXHRpZiAoIXNvdXJjZVBhdGggfHwgIWVsZW1lbnQpXG5cdFx0cmV0dXJuO1xuXHRmb3IgKGNvbnN0IGlubGluZUNvZGVFbGVtZW50IG9mIEFycmF5LmZyb20oZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiOm5vdChwcmUpID4gY29kZVwiKSkpIHtcblx0XHRhd2FpdCByZW1ha2VJbmxpbmVDb2RlKGlubGluZUNvZGVFbGVtZW50IGFzIEhUTUxFbGVtZW50LHBsdWdpbik7XG5cdH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBkZXN0cm95UmVhZGluZ01vZGVFbGVtZW50cygpOiB2b2lkIHtcblx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5jb2RlLXN0eWxlci1wcmUtcGFyZW50XCIpLmZvckVhY2goY29kZWJsb2NrUHJlUGFyZW50ID0+IHtcblx0XHRjb2RlYmxvY2tQcmVQYXJlbnQuY2xhc3NMaXN0LnJlbW92ZShcImNvZGUtc3R5bGVyLXByZS1wYXJlbnRcIik7XG5cdH0pO1xuXHRbXG5cdFx0Li4uQXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwicHJlLmNvZGUtc3R5bGVyLXByZSBkaXZbY2xhc3NePSdjb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyJ11cIikpLFxuXHRcdC4uLkFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInByZS5jb2RlLXN0eWxlci1wcmUgZGl2W2NsYXNzXj0nY29kZS1zdHlsZXItbGluZS1udW1iZXInXVwiKSksXG5cdFx0Li4uQXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiOm5vdChwcmUpID4gY29kZSBzcGFuLmNvZGUtc3R5bGVyLWlubGluZS1vcGVuZXJcIikpLFxuXHRdLmZvckVhY2goZWxlbWVudCA9PiBlbGVtZW50LnJlbW92ZSgpKTtcblx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInByZS5jb2RlLXN0eWxlci1wcmVcIikuZm9yRWFjaCgoY29kZWJsb2NrUHJlRWxlbWVudDogSFRNTEVsZW1lbnQpID0+IHtcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJjb2RlLXN0eWxlci1wcmVcIik7XG5cdFx0Y29kZWJsb2NrUHJlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwiY29kZS1zdHlsZXItZm9sZGVkXCIpO1xuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCItLXRydWUtaGVpZ2h0XCIpO1xuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCItLWxpbmUtbnVtYmVyLW1hcmdpblwiKTtcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwibWF4LWhlaWdodFwiKTtcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwid2hpdGUtc3BhY2VcIik7XG5cdH0pO1xuXHRkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwicHJlID4gY29kZSB+IGNvZGUubGFuZ3VhZ2Utb3V0cHV0XCIpLmZvckVhY2goKGV4ZWN1dGVDb2RlT3V0cHV0OiBIVE1MRWxlbWVudCkgPT4ge1xuXHRcdGV4ZWN1dGVDb2RlT3V0cHV0LmNsYXNzTGlzdC5yZW1vdmUoXCJleGVjdXRlLWNvZGUtb3V0cHV0XCIpO1xuXHRcdGV4ZWN1dGVDb2RlT3V0cHV0LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwiLS10cnVlLWhlaWdodFwiKTtcblx0XHRleGVjdXRlQ29kZU91dHB1dC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIm1heC1oZWlnaHRcIik7XG5cdH0pO1xuXHRkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwicHJlID4gY29kZTpudGgtb2YtdHlwZSgxKVwiKS5mb3JFYWNoKChjb2RlYmxvY2tDb2RlRWxlbWVudDogSFRNTEVsZW1lbnQpID0+IHtcblx0XHRjb2RlYmxvY2tDb2RlRWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIi0tdHJ1ZS1oZWlnaHRcIik7XG5cdFx0Y29kZWJsb2NrQ29kZUVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCItLWxpbmUtd3JhcHBpbmdcIik7XG5cdFx0Y29kZWJsb2NrQ29kZUVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCItLWxpbmUtYWN0aXZlLXdyYXBwaW5nXCIpO1xuXHRcdGNvZGVibG9ja0NvZGVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwibWF4LWhlaWdodFwiKTtcblx0XHRjb2RlYmxvY2tDb2RlRWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIndoaXRlLXNwYWNlXCIpO1xuXHRcdGNvZGVibG9ja0NvZGVFbGVtZW50LmlubmVySFRNTCA9IEFycmF5LmZyb20oY29kZWJsb2NrQ29kZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcImNvZGUgPiBbY2xhc3MqPVxcXCJjb2RlLXN0eWxlci1saW5lXFxcIl1cIikpLnJlZHVjZSgocmVjb25zdHJ1Y3RlZENvZGVibG9ja0xpbmVzOiBBcnJheTxzdHJpbmc+LCBjb2RlYmxvY2tMaW5lOiBIVE1MRWxlbWVudCk6IEFycmF5PHN0cmluZz4gPT4ge1xuXHRcdFx0Y29uc3QgY29kZWJsb2NrTGluZVRleHQgPSAoY29kZWJsb2NrTGluZS5maXJzdENoaWxkIGFzIEhUTUxFbGVtZW50KTtcblx0XHRcdGlmIChjb2RlYmxvY2tMaW5lVGV4dClcblx0XHRcdFx0cmVjb25zdHJ1Y3RlZENvZGVibG9ja0xpbmVzLnB1c2goY29kZWJsb2NrTGluZVRleHQuaW5uZXJIVE1MKTtcblx0XHRcdHJldHVybiByZWNvbnN0cnVjdGVkQ29kZWJsb2NrTGluZXM7XG5cdFx0fSxbXSkuam9pbihcIlxcblwiKStcIlxcblwiO1xuXHR9KTtcblx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIjpub3QocHJlKSA+IGNvZGVcIikuZm9yRWFjaCgoaW5saW5lQ29kZUVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiB7XG5cdFx0aW5saW5lQ29kZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcImNvZGUtc3R5bGVyLWhpZ2hsaWdodGVkXCIpO1xuXHRcdGlubGluZUNvZGVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJjb2RlLXN0eWxlci1oaWdobGlnaHQtaWdub3JlXCIpO1xuXHRcdGlubGluZUNvZGVFbGVtZW50LmlubmVyVGV4dCA9IGlubGluZUNvZGVFbGVtZW50LmdldEF0dHJpYnV0ZShcInBhcmFtZXRlcnNcIikgKyBpbmxpbmVDb2RlRWxlbWVudC5pbm5lclRleHQ7XG5cdH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVuZGVyU3BlY2lmaWNSZWFkaW5nU2VjdGlvbihjb2RlYmxvY2tQcmVFbGVtZW50czogQXJyYXk8SFRNTEVsZW1lbnQ+LCBzb3VyY2VQYXRoOiBzdHJpbmcsIGNvZGVibG9ja1NlY3Rpb25JbmZvOiBNYXJrZG93blNlY3Rpb25JbmZvcm1hdGlvbiwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKSB7XG5cdGNvbnN0IGNvZGVibG9ja3NQYXJhbWV0ZXJzID0gKGF3YWl0IHBhcnNlQ29kZWJsb2NrU291cmNlKEFycmF5LmZyb20oe2xlbmd0aDogY29kZWJsb2NrU2VjdGlvbkluZm8ubGluZUVuZC1jb2RlYmxvY2tTZWN0aW9uSW5mby5saW5lU3RhcnQrMX0sIChfLG51bSkgPT4gbnVtICsgY29kZWJsb2NrU2VjdGlvbkluZm8ubGluZVN0YXJ0KS5tYXAoKGxpbmVOdW1iZXIpPT5jb2RlYmxvY2tTZWN0aW9uSW5mby50ZXh0LnNwbGl0KFwiXFxuXCIpW2xpbmVOdW1iZXJdKSxwbHVnaW4sc291cmNlUGF0aCkpLmNvZGVibG9ja3NQYXJhbWV0ZXJzO1xuXHRhd2FpdCByZW1ha2VDb2RlYmxvY2tzKGNvZGVibG9ja1ByZUVsZW1lbnRzLCBjb2RlYmxvY2tzUGFyYW1ldGVycywgc291cmNlUGF0aCwgdHJ1ZSwgZmFsc2UsIHBsdWdpbik7XG59XG5hc3luYyBmdW5jdGlvbiByZW5kZXJTZXR0aW5ncyhjb2RlYmxvY2tQcmVFbGVtZW50czogQXJyYXk8SFRNTEVsZW1lbnQ+LCBzb3VyY2VQYXRoOiBzdHJpbmcsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbikge1xuXHRjb25zdCBjb2RlYmxvY2tzUGFyYW1ldGVycyA9IChhd2FpdCBwYXJzZUNvZGVibG9ja1NvdXJjZShzb3VyY2VQYXRoLnN1YnN0cmluZyhTRVRUSU5HU19TT1VSQ0VQQVRIX1BSRUZJWC5sZW5ndGgpLnNwbGl0KFwiXFxuXCIpLHBsdWdpbikpLmNvZGVibG9ja3NQYXJhbWV0ZXJzO1xuXHRhd2FpdCByZW1ha2VDb2RlYmxvY2tzKGNvZGVibG9ja1ByZUVsZW1lbnRzLGNvZGVibG9ja3NQYXJhbWV0ZXJzLHNvdXJjZVBhdGgsdHJ1ZSxmYWxzZSxwbHVnaW4pO1xufVxuYXN5bmMgZnVuY3Rpb24gcmVuZGVyRG9jdW1lbnQoY29kZWJsb2NrUHJlRWxlbWVudHM6IEFycmF5PEhUTUxFbGVtZW50Piwgc291cmNlUGF0aDogc3RyaW5nLCBjYWNoZTogQ2FjaGVkTWV0YWRhdGEgfCBudWxsLCBlZGl0aW5nRW1iZWRzOiBib29sZWFuLCBwcmludGluZzogYm9vbGVhbiwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKSB7XG5cdGNvbnN0IGNvZGVibG9ja3NQYXJhbWV0ZXJzOiBBcnJheTxDb2RlYmxvY2tQYXJhbWV0ZXJzPiA9IGF3YWl0IGdldENvZGVibG9ja3NQYXJhbWV0ZXJzKHNvdXJjZVBhdGgsY2FjaGUscGx1Z2luLGVkaXRpbmdFbWJlZHMpO1xuXHRhd2FpdCByZW1ha2VDb2RlYmxvY2tzKGNvZGVibG9ja1ByZUVsZW1lbnRzLGNvZGVibG9ja3NQYXJhbWV0ZXJzLHNvdXJjZVBhdGgsIXByaW50aW5nLHRydWUscGx1Z2luKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIHJldHJpZ2dlclByb2Nlc3NvcihlbGVtZW50OiBIVE1MRWxlbWVudCwgY29udGV4dDoge3NvdXJjZVBhdGg6IHN0cmluZywgZ2V0U2VjdGlvbkluZm86IChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4gTWFya2Rvd25TZWN0aW9uSW5mb3JtYXRpb24gfCBudWxsLCBmcm9udG1hdHRlcjogRnJvbnRNYXR0ZXJDYWNoZSB8IHVuZGVmaW5lZH0sIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbiwgZWRpdGluZ0VtYmVkczogYm9vbGVhbikge1xuXHRpZiAoZWxlbWVudC5tYXRjaFBhcmVudChcImRpdi5ibG9jay1sYW5ndWFnZS1kYXRhdmlld2pzXCIpICYmIGlzQ29kZWJsb2NrSWdub3JlZChcImRhdGF2aWV3anNcIixwbHVnaW4uc2V0dGluZ3MucHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdCkpXG5cdFx0cmV0dXJuO1xuXHRhd2FpdCBzbGVlcCg1MCk7XG5cdGVkaXRpbmdFbWJlZHMgPSBlZGl0aW5nRW1iZWRzIHx8IEJvb2xlYW4oZWxlbWVudC5tYXRjaFBhcmVudChcIi5jbS1lbWJlZC1ibG9ja1wiKSk7XG5cdGlmIChlZGl0aW5nRW1iZWRzIHx8ICFlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhcImFkbW9uaXRpb24tY29udGVudFwiKSkge1xuXHRcdGNvbnN0IGNvbnRlbnRFbCA9IGVsZW1lbnQubWF0Y2hQYXJlbnQoXCIudmlldy1jb250ZW50XCIpID8/IGVsZW1lbnQubWF0Y2hQYXJlbnQoXCJkaXYucHJpbnRcIik7XG5cdFx0aWYgKGNvbnRlbnRFbCAhPT0gbnVsbClcblx0XHRcdGF3YWl0IHJlYWRpbmdWaWV3Q29kZWJsb2NrRGVjb3JhdGluZ1Bvc3RQcm9jZXNzb3IoY29udGVudEVsIGFzIEhUTUxFbGVtZW50LGNvbnRleHQscGx1Z2luLGVkaXRpbmdFbWJlZHMpOyAvLyBSZS1yZW5kZXIgd2hvbGUgZG9jdW1lbnRcblx0fVxufVxuXG5hc3luYyBmdW5jdGlvbiByZW1ha2VDb2RlYmxvY2tzKGNvZGVibG9ja1ByZUVsZW1lbnRzOiBBcnJheTxIVE1MRWxlbWVudD4sIGNvZGVibG9ja3NQYXJhbWV0ZXJzOiBBcnJheTxDb2RlYmxvY2tQYXJhbWV0ZXJzPiwgc291cmNlUGF0aDogc3RyaW5nLCBkeW5hbWljOiBib29sZWFuLCBza2lwU3R5bGVkOiBib29sZWFuLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pIHtcblx0aWYgKGNvZGVibG9ja1ByZUVsZW1lbnRzLmxlbmd0aCAhPT0gY29kZWJsb2Nrc1BhcmFtZXRlcnMubGVuZ3RoKVxuXHRcdHJldHVybjtcblx0Zm9yIChjb25zdCBba2V5LGNvZGVibG9ja1ByZUVsZW1lbnRdIG9mIEFycmF5LmZyb20oY29kZWJsb2NrUHJlRWxlbWVudHMpLmVudHJpZXMoKSkge1xuXHRcdGNvbnN0IGNvZGVibG9ja1BhcmFtZXRlcnMgPSBjb2RlYmxvY2tzUGFyYW1ldGVyc1trZXldO1xuXHRcdGNvbnN0IGNvZGVibG9ja0NvZGVFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBjb2RlYmxvY2tQcmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCJwcmUgPiBjb2RlXCIpO1xuXHRcdGlmICghY29kZWJsb2NrQ29kZUVsZW1lbnQpXG5cdFx0XHRyZXR1cm47XG5cdFx0aWYgKEFycmF5LmZyb20oY29kZWJsb2NrQ29kZUVsZW1lbnQuY2xhc3NMaXN0KS5zb21lKGNsYXNzTmFtZSA9PiAvXmxhbmd1YWdlLVxcUysvLnRlc3QoY2xhc3NOYW1lKSkpXG5cdFx0XHR3aGlsZSghY29kZWJsb2NrQ29kZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKFwiaXMtbG9hZGVkXCIpKVxuXHRcdFx0XHRhd2FpdCBzbGVlcCgyKTtcblx0XHRpZiAoc2tpcFN0eWxlZCAmJiBjb2RlYmxvY2tDb2RlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiY29kZSBbY2xhc3MqPSdjb2RlLXN0eWxlci1saW5lJ11cIikpXG5cdFx0XHRjb250aW51ZTtcblx0XHRpZiAoaXNMYW5ndWFnZUlnbm9yZWQoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSxwbHVnaW4uc2V0dGluZ3MuZXhjbHVkZWRMYW5ndWFnZXMpIHx8IGNvZGVibG9ja1BhcmFtZXRlcnMuaWdub3JlKVxuXHRcdFx0Y29udGludWU7XG5cdFx0YXdhaXQgcmVtYWtlQ29kZWJsb2NrKGNvZGVibG9ja0NvZGVFbGVtZW50LGNvZGVibG9ja1ByZUVsZW1lbnQsY29kZWJsb2NrUGFyYW1ldGVycyxzb3VyY2VQYXRoLGR5bmFtaWMscGx1Z2luKTtcblx0fVxufVxuXG5hc3luYyBmdW5jdGlvbiByZW1ha2VDb2RlYmxvY2soY29kZWJsb2NrQ29kZUVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb2RlYmxvY2tQcmVFbGVtZW50OiBIVE1MRWxlbWVudCwgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgc291cmNlUGF0aDogc3RyaW5nLCBkeW5hbWljOiBib29sZWFuLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pIHtcblx0aWYgKGR5bmFtaWMpXG5cdFx0cGx1Z2luLmV4ZWN1dGVDb2RlTXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKGNvZGVibG9ja1ByZUVsZW1lbnQse2NoaWxkTGlzdDogdHJ1ZSxzdWJ0cmVlOiB0cnVlLGF0dHJpYnV0ZXM6IHRydWUsY2hhcmFjdGVyRGF0YTogdHJ1ZX0pOyAvLyBBZGQgRXhlY3V0ZSBDb2RlIE9ic2VydmVyXG5cblx0aW5zZXJ0SGVhZGVyKGNvZGVibG9ja1ByZUVsZW1lbnQsY29kZWJsb2NrUGFyYW1ldGVycyxzb3VyY2VQYXRoLHBsdWdpbixkeW5hbWljKTtcblxuXHRjb2RlYmxvY2tQcmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoLi4uZ2V0UHJlQ2xhc3Nlcyhjb2RlYmxvY2tQYXJhbWV0ZXJzLGR5bmFtaWMpKTtcblx0Y29kZWJsb2NrUHJlRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJkZWZhdWx0Rm9sZFwiLGNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5lbmFibGVkLnRvU3RyaW5nKCkpO1xuXHRpZiAoY29kZWJsb2NrUHJlRWxlbWVudC5wYXJlbnRFbGVtZW50KVxuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnQucGFyZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItcHJlLXBhcmVudFwiKTtcblxuXHRpZiAoIWNvZGVibG9ja0NvZGVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCJjb2RlIFtjbGFzcyo9J2NvZGUtc3R5bGVyLWxpbmUnXVwiKSkgLy8gSWdub3JlIHN0eWxlZCBsaW5lc1xuXHRcdGRlY29yYXRlQ29kZWJsb2NrTGluZXMoY29kZWJsb2NrQ29kZUVsZW1lbnQsY29kZWJsb2NrUGFyYW1ldGVycyxzb3VyY2VQYXRoLHBsdWdpbik7XG59XG5hc3luYyBmdW5jdGlvbiByZW1ha2VJbmxpbmVDb2RlKGlubGluZUNvZGVFbGVtZW50OiBIVE1MRWxlbWVudCwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogUHJvbWlzZTx2b2lkPiB7XG5cdGlmICghcGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuc3ludGF4SGlnaGxpZ2h0IHx8IGlubGluZUNvZGVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhcImNvZGUtc3R5bGVyLWlubGluZVwiKSlcblx0XHRyZXR1cm47XG5cdGNvbnN0IGlubGluZUNvZGVUZXh0ID0gaW5saW5lQ29kZUVsZW1lbnQuaW5uZXJUZXh0O1xuXHRjb25zdCB7cGFyYW1ldGVycyx0ZXh0fSA9IHBhcnNlSW5saW5lQ29kZShpbmxpbmVDb2RlVGV4dCk7XG5cdGlmIChwYXJhbWV0ZXJzKSB7XG5cdFx0aW5saW5lQ29kZUVsZW1lbnQuaW5uZXJIVE1MID0gYXdhaXQgZ2V0SGlnaGxpZ2h0ZWRIVE1MKHBhcmFtZXRlcnMsdGV4dCxwbHVnaW4pO1xuXHRcdGlubGluZUNvZGVFbGVtZW50LmlubmVySFRNTCA9IGlubGluZUNvZGVFbGVtZW50LmlubmVySFRNTCArIFwiJlplcm9XaWR0aFNwYWNlO1wiO1xuXHRcdGlubGluZUNvZGVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlci1pbmxpbmVcIik7XG5cdFx0Y29uc3QgcGFyYW1ldGVyU3RyaW5nID0gaW5saW5lQ29kZVRleHQuc3Vic3RyaW5nKDAsaW5saW5lQ29kZVRleHQubGFzdEluZGV4T2YodGV4dCkpO1xuXHRcdGlubGluZUNvZGVFbGVtZW50LnNldEF0dHJpYnV0ZShcInBhcmFtZXRlcnNcIixwYXJhbWV0ZXJTdHJpbmcpOyAvLyBTdG9yZSBwYXJhbWV0ZXIgc3RyaW5nIGFzIGF0dHJpYnV0ZSBzbyBvcmlnaW5hbCB0ZXh0IGNhbiBiZSByZXN0b3JlZCBvbiBwbHVnaW4gcmVtb3ZhbFxuXHRcdGlmIChwYXJhbWV0ZXJzLmljb24gfHwgcGFyYW1ldGVycy50aXRsZSlcblx0XHRcdGlubGluZUNvZGVFbGVtZW50Lmluc2VydEJlZm9yZShjcmVhdGVJbmxpbmVPcGVuZXIocGFyYW1ldGVycyxwbHVnaW4ubGFuZ3VhZ2VJY29ucyksaW5saW5lQ29kZUVsZW1lbnQuY2hpbGROb2Rlc1swXSk7XG5cdH0gZWxzZSBpZiAoIXBhcmFtZXRlcnMgJiYgdGV4dCkge1xuXHRcdGlubGluZUNvZGVFbGVtZW50LmlubmVyVGV4dCA9IHRleHQ7XG5cdFx0aW5saW5lQ29kZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLWlubGluZVwiKTtcblx0fVxufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRDb2RlYmxvY2tQcmVFbGVtZW50cyhlbGVtZW50OiBIVE1MRWxlbWVudCwgc3BlY2lmaWM6IGJvb2xlYW4sZWRpdGluZ0VtYmVkczogYm9vbGVhbik6IFByb21pc2U8QXJyYXk8SFRNTEVsZW1lbnQ+PiB7XG5cdGxldCBjb2RlYmxvY2tQcmVFbGVtZW50czogQXJyYXk8SFRNTEVsZW1lbnQ+O1xuXHRpZiAoIWVkaXRpbmdFbWJlZHMgJiYgIXNwZWNpZmljKVxuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnRzID0gQXJyYXkuZnJvbShlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIubWFya2Rvd24tcmVhZGluZy12aWV3IHByZTpub3QoLmZyb250bWF0dGVyKVwiKSk7XG5cdGVsc2UgaWYgKGVkaXRpbmdFbWJlZHMgJiYgIXNwZWNpZmljKVxuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnRzID0gQXJyYXkuZnJvbShlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIubWFya2Rvd24tc291cmNlLXZpZXcgLmNtLWVtYmVkLWJsb2NrIHByZTpub3QoLmZyb250bWF0dGVyKVwiKSk7XG5cdGVsc2UgaWYgKCFlZGl0aW5nRW1iZWRzICYmIHNwZWNpZmljKSB7XG5cdFx0Y29kZWJsb2NrUHJlRWxlbWVudHMgPSBBcnJheS5mcm9tKGVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcInByZTpub3QoLmZyb250bWF0dGVyKVwiKSk7XG5cdFx0Y29uc3QgYWRtb25pdGlvbkNvZGVFbGVtZW50ID0gY29kZWJsb2NrUHJlRWxlbWVudHM/LlswXT8ucXVlcnlTZWxlY3RvcihcInByZTpub3QoW2NsYXNzXSkgPiBjb2RlW2NsYXNzKj1cXFwibGFuZ3VhZ2UtYWQtXFxcIl1cIik7XG5cdFx0aWYgKGFkbW9uaXRpb25Db2RlRWxlbWVudCkge1xuXHRcdFx0YXdhaXQgc2xlZXAoNTApOyAvL1RPRE9cblx0XHRcdGNvZGVibG9ja1ByZUVsZW1lbnRzID0gQXJyYXkuZnJvbShlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJwcmU6bm90KC5mcm9udG1hdHRlcilcIikpO1xuXHRcdH1cblx0fSBlbHNlXG5cdFx0Y29kZWJsb2NrUHJlRWxlbWVudHMgPSBbXTtcblx0cmV0dXJuIGNvZGVibG9ja1ByZUVsZW1lbnRzO1xufVxuYXN5bmMgZnVuY3Rpb24gZ2V0Q29kZWJsb2Nrc1BhcmFtZXRlcnMoc291cmNlUGF0aDogc3RyaW5nLCBjYWNoZTogQ2FjaGVkTWV0YWRhdGEgfCBudWxsLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4sIGVkaXRpbmdFbWJlZHM6IGJvb2xlYW4pOiBQcm9taXNlPEFycmF5PENvZGVibG9ja1BhcmFtZXRlcnM+PiB7XG5cdGxldCBjb2RlYmxvY2tzUGFyYW1ldGVyczogQXJyYXk8Q29kZWJsb2NrUGFyYW1ldGVycz4gPSBbXTtcblx0Y29uc3QgZmlsZUNvbnRlbnRMaW5lcyA9IGF3YWl0IGdldEZpbGVDb250ZW50TGluZXMoc291cmNlUGF0aCxwbHVnaW4pO1xuXG5cdGlmICh0eXBlb2YgY2FjaGU/LnNlY3Rpb25zICE9PSBcInVuZGVmaW5lZFwiKSB7XG5cdFx0Zm9yIChjb25zdCBzZWN0aW9uIG9mIGNhY2hlLnNlY3Rpb25zKSB7XG5cdFx0XHRpZiAoIWVkaXRpbmdFbWJlZHMgfHwgc2VjdGlvbi50eXBlID09PSBcImNvZGVcIiB8fCBzZWN0aW9uLnR5cGUgPT09IFwiY2FsbG91dFwiKSB7XG5cdFx0XHRcdGNvbnN0IHBhcnNlZENvZGVibG9ja3NQYXJhbWV0ZXJzID0gYXdhaXQgcGFyc2VDb2RlYmxvY2tTb3VyY2UoZmlsZUNvbnRlbnRMaW5lcy5zbGljZShzZWN0aW9uLnBvc2l0aW9uLnN0YXJ0LmxpbmUsc2VjdGlvbi5wb3NpdGlvbi5lbmQubGluZSsxKSxwbHVnaW4sc291cmNlUGF0aCk7XG5cdFx0XHRcdGlmICghZWRpdGluZ0VtYmVkcyB8fCBwYXJzZWRDb2RlYmxvY2tzUGFyYW1ldGVycy5uZXN0ZWQpXG5cdFx0XHRcdFx0Y29kZWJsb2Nrc1BhcmFtZXRlcnMgPSBjb2RlYmxvY2tzUGFyYW1ldGVycy5jb25jYXQocGFyc2VkQ29kZWJsb2Nrc1BhcmFtZXRlcnMuY29kZWJsb2Nrc1BhcmFtZXRlcnMpO1xuXHRcdFx0fVxuXHRcdH1cblx0fSBlbHNlXG5cdFx0Y29uc29sZS5lcnJvcihgTWV0YWRhdGEgY2FjaGUgbm90IGZvdW5kIGZvciBmaWxlOiAke3NvdXJjZVBhdGh9YCk7XG5cdHJldHVybiBjb2RlYmxvY2tzUGFyYW1ldGVycztcbn1cbmZ1bmN0aW9uIGluc2VydEhlYWRlcihjb2RlYmxvY2tQcmVFbGVtZW50OiBIVE1MRWxlbWVudCwgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgc291cmNlUGF0aDogc3RyaW5nLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4sIGR5bmFtaWM6IGJvb2xlYW4pOiB2b2lkIHtcblx0Y29uc3QgaGVhZGVyQ29udGFpbmVyID0gY3JlYXRlSGVhZGVyKGNvZGVibG9ja1BhcmFtZXRlcnMsIHBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MsIHNvdXJjZVBhdGgsIHBsdWdpbik7XG5cdGlmIChkeW5hbWljKVxuXHRcdGhlYWRlckNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwoKT0+e3RvZ2dsZUZvbGQoY29kZWJsb2NrUHJlRWxlbWVudCk7fSk7IC8vIEFkZCBsaXN0ZW5lciBmb3IgaGVhZGVyIGZvbGRpbmcgb24gY2xpY2tcblx0Y29kZWJsb2NrUHJlRWxlbWVudC5pbnNlcnRCZWZvcmUoaGVhZGVyQ29udGFpbmVyLGNvZGVibG9ja1ByZUVsZW1lbnQuY2hpbGROb2Rlc1swXSk7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVhZGluZ0RvY3VtZW50Rm9sZChjb250ZW50RWw6IEhUTUxFbGVtZW50LCBmb2xkPzogYm9vbGVhbikge1xuXHRjb25zdCBjb2RlYmxvY2tQcmVFbGVtZW50cyA9IGNvbnRlbnRFbC5xdWVyeVNlbGVjdG9yQWxsKFwicHJlLmNvZGUtc3R5bGVyLXByZVwiKTtcblx0aWYgKHR5cGVvZiBmb2xkID09PSBcInVuZGVmaW5lZFwiKSAvL1JldHVybiBhbGwgYmxvY2tzIHRvIG9yaWdpbmFsIHN0YXRlXG5cdFx0Y29kZWJsb2NrUHJlRWxlbWVudHMuZm9yRWFjaCgoY29kZWJsb2NrUHJlRWxlbWVudDogSFRNTEVsZW1lbnQpPT57dG9nZ2xlRm9sZChjb2RlYmxvY2tQcmVFbGVtZW50LChjb2RlYmxvY2tQcmVFbGVtZW50LmdldEF0dHJpYnV0ZShcImRlZmF1bHRGb2xkXCIpPz9cImZhbHNlXCIpPT09XCJ0cnVlXCIpO30pO1xuXHRlbHNlIC8vRm9sZCBvciB1bmZvbGQgYWxsIGJsb2Nrc1xuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnRzLmZvckVhY2goKGNvZGVibG9ja1ByZUVsZW1lbnQ6IEhUTUxFbGVtZW50KT0+e3RvZ2dsZUZvbGQoY29kZWJsb2NrUHJlRWxlbWVudCxmb2xkKTt9KTtcbn1cbmFzeW5jIGZ1bmN0aW9uIHRvZ2dsZUZvbGQoY29kZWJsb2NrUHJlRWxlbWVudDogSFRNTEVsZW1lbnQsIGZvbGQ/OiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG5cdGlmIChjb2RlYmxvY2tQcmVFbGVtZW50LmZpcnN0RWxlbWVudENoaWxkPy5jbGFzc0xpc3Q/LmNvbnRhaW5zKFwiY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lci1oaWRkZW5cIikpXG5cdFx0cmV0dXJuO1xuXHRjb2RlYmxvY2tQcmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJwcmUgPiBjb2RlXCIpLmZvckVhY2goKGNvZGVibG9ja0NvZGVFbGVtZW50OiBIVE1MRWxlbWVudCk9PmNvZGVibG9ja0NvZGVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFwibWF4LWhlaWdodFwiLGBjYWxjKCR7TWF0aC5jZWlsKGNvZGVibG9ja0NvZGVFbGVtZW50LnNjcm9sbEhlaWdodCswLjAxKX1weCArIHZhcigtLWNvZGUtcGFkZGluZykgKiAke2NvZGVibG9ja0NvZGVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhcImV4ZWN1dGUtY29kZS1vdXRwdXRcIik/XCIzLjUgKyB2YXIoLS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoKVwiOlwiMlwifSlgKSk7XG5cdGNvZGVibG9ja1ByZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChcImhpZGUtc2Nyb2xsXCIpO1xuXHRhd2FpdCBzbGVlcCgxKTtcblx0aWYgKHR5cGVvZiBmb2xkID09PSBcInVuZGVmaW5lZFwiKVxuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZShcImNvZGUtc3R5bGVyLWZvbGRlZFwiKTtcblx0ZWxzZVxuXHRcdGZvbGQ/Y29kZWJsb2NrUHJlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItZm9sZGVkXCIpOmNvZGVibG9ja1ByZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcImNvZGUtc3R5bGVyLWZvbGRlZFwiKTtcblx0YXdhaXQgc2xlZXAoVFJBTlNJVElPTl9MRU5HVEgpO1xuXHRjb2RlYmxvY2tQcmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJwcmUgPiBjb2RlXCIpLmZvckVhY2goKGNvZGVibG9ja0NvZGVFbGVtZW50OiBIVE1MRWxlbWVudCk9PmNvZGVibG9ja0NvZGVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwibWF4LWhlaWdodFwiKSk7XG5cdGNvZGVibG9ja1ByZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcImhpZGUtc2Nyb2xsXCIpO1xufVxuZnVuY3Rpb24gZ2V0UHJlQ2xhc3Nlcyhjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBkeW5hbWljOiBib29sZWFuKTogQXJyYXk8c3RyaW5nPiB7XG5cdGNvbnN0IHByZUNsYXNzTGlzdCA9IFtcImNvZGUtc3R5bGVyLXByZVwiXTtcblx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpXG5cdFx0cHJlQ2xhc3NMaXN0LnB1c2goYGxhbmd1YWdlLSR7Y29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZX1gKTtcblx0aWYgKGR5bmFtaWMpIHtcblx0XHRpZiAoY29kZWJsb2NrUGFyYW1ldGVycy5mb2xkLmVuYWJsZWQpXG5cdFx0XHRwcmVDbGFzc0xpc3QucHVzaChcImNvZGUtc3R5bGVyLWZvbGRlZFwiKTtcblx0XHRpZiAoY29kZWJsb2NrUGFyYW1ldGVycy5saW5lVW53cmFwLmFsd2F5c0VuYWJsZWQpXG5cdFx0XHRwcmVDbGFzc0xpc3QucHVzaChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVVbndyYXAuYWN0aXZlV3JhcD9cInVud3JhcHBlZC1pbmFjdGl2ZVwiOlwidW53cmFwcGVkXCIpO1xuXHRcdGVsc2UgaWYgKGNvZGVibG9ja1BhcmFtZXRlcnMubGluZVVud3JhcC5hbHdheXNEaXNhYmxlZClcblx0XHRcdHByZUNsYXNzTGlzdC5wdXNoKFwid3JhcHBlZFwiKTtcblx0fVxuXHRyZXR1cm4gcHJlQ2xhc3NMaXN0O1xufVxuZnVuY3Rpb24gZGVjb3JhdGVDb2RlYmxvY2tMaW5lcyhjb2RlYmxvY2tDb2RlRWxlbWVudDogSFRNTEVsZW1lbnQsIGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHNvdXJjZVBhdGg6IHN0cmluZywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogdm9pZCB7XG5cdGxldCBpbmRlbnRhdGlvbiA9IDA7XG5cdGdldENvZGVibG9ja0xpbmVzKGNvZGVibG9ja0NvZGVFbGVtZW50LHNvdXJjZVBhdGgscGx1Z2luKS5mb3JFYWNoKChsaW5lLGluZGV4LGNvZGVibG9ja0xpbmVzKSA9PiB7XG5cdFx0Y29uc3QgY3VycmVudEluZGVudGF0aW9uID0gY291bnRUYWJzKGxpbmUpO1xuXHRcdGlmIChjdXJyZW50SW5kZW50YXRpb24gPiBpbmRlbnRhdGlvbikge1xuXHRcdFx0Ly9UT0RPIChAbWF5dXJhbmt2KSBBZGQgZm9sZCB0byBwcmV2aW91cyBwb2ludFxuXHRcdFx0aW5kZW50YXRpb24gPSBjdXJyZW50SW5kZW50YXRpb247XG5cdFx0fSBlbHNlIGlmIChjdXJyZW50SW5kZW50YXRpb24gPCBpbmRlbnRhdGlvbikge1xuXHRcdFx0Ly9UT0RPIChAbWF5dXJhbmt2KSBDbG9zZSBhbGwgZm9sZHMgdG8gbGV2ZWwgb2YgY3VycmVudCBpbmRlbnRhdGlvblxuXHRcdFx0aW5kZW50YXRpb24gPSBjdXJyZW50SW5kZW50YXRpb247XG5cdFx0fVxuXHRcdGlmIChjdXJyZW50SW5kZW50YXRpb24gPiAwKSB7XG5cdFx0XHQvL1RPRE8gKEBtYXl1cmFua3YpIEFkZCBpbmRlbnRhdGlvbiBsaW5lXG5cdFx0fVxuXHRcdGlmIChpbmRleCAhPT0gY29kZWJsb2NrTGluZXMubGVuZ3RoLTEpXG5cdFx0XHRpbnNlcnRMaW5lV3JhcHBlcihjb2RlYmxvY2tDb2RlRWxlbWVudCxjb2RlYmxvY2tQYXJhbWV0ZXJzLGluZGV4KzEsbGluZSxwbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5saW5lTnVtYmVycyk7XG5cdH0pO1xufVxuZnVuY3Rpb24gZ2V0Q29kZWJsb2NrTGluZXMoY29kZWJsb2NrQ29kZUVsZW1lbnQ6IEhUTUxFbGVtZW50LCBzb3VyY2VQYXRoOiBzdHJpbmcsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbik6IEFycmF5PHN0cmluZz4ge1xuXHRjb25zdCBodG1sVHJlZSA9IGZyb21IdG1sKGNvZGVibG9ja0NvZGVFbGVtZW50LmlubmVySFRNTC5yZXBsYWNlKC9cXG4vZyxcIjxicj5cIikse2ZyYWdtZW50OiB0cnVlfSk7XG5cdGxldCBjb2RlYmxvY2tIVE1MID0gY29kZWJsb2NrQ29kZUVsZW1lbnQuaW5uZXJIVE1MO1xuXHR2aXNpdFBhcmVudHMoaHRtbFRyZWUsW1widGV4dFwiLFwiZWxlbWVudFwiXSwobm9kZSxhbmNlc3RvcnMpPT57XG5cdFx0aWYgKG5vZGUudHlwZSA9PT0gXCJlbGVtZW50XCIgJiYgbm9kZS50YWdOYW1lID09PSBcImJyXCIpIHtcblx0XHRcdGlmIChhbmNlc3RvcnMubGVuZ3RoID49IDIpIHtcblx0XHRcdFx0Y29kZWJsb2NrSFRNTCA9IGNvZGVibG9ja0hUTUwucmVwbGFjZSgvXFxuLyxhbmNlc3RvcnMuc2xpY2UoMSkucmVkdWNlKChyZXN1bHQsZWxlbWVudCk9Pntcblx0XHRcdFx0XHRjb25zdCBlbGVtZW50Q29weSA9IHN0cnVjdHVyZWRDbG9uZShlbGVtZW50KTtcblx0XHRcdFx0XHRlbGVtZW50Q29weS5jaGlsZHJlbiA9IFtdO1xuXHRcdFx0XHRcdGNvbnN0IHNwbGl0VGFnID0gdG9IdG1sKGVsZW1lbnRDb3B5KS5zcGxpdCgvKD88PT4pKD89PFxcLykvKTtcblx0XHRcdFx0XHRyZXR1cm4gc3BsaXRUYWcuc3BsaWNlKC0xKStyZXN1bHQrc3BsaXRUYWcuam9pbihcIlwiKTtcblx0XHRcdFx0fSxcIjxicj5cIikpO1xuXHRcdFx0fSBlbHNlXG5cdFx0XHRcdGNvZGVibG9ja0hUTUwgPSBjb2RlYmxvY2tIVE1MLnJlcGxhY2UoL1xcbi8sXCI8YnI+XCIpO1xuXHRcdH1cblx0fSk7XG5cdGNvbnN0IHNwbGl0SHRtbFRyZWUgPSBmcm9tSHRtbChjb2RlYmxvY2tIVE1MLHtmcmFnbWVudDogdHJ1ZX0pO1xuXHR2aXNpdFBhcmVudHMoc3BsaXRIdG1sVHJlZSxbXCJlbGVtZW50XCJdLChub2RlKT0+e1xuXHRcdGlmIChub2RlLnR5cGUgPT09IFwiZWxlbWVudFwiICYmIEFycmF5LmlzQXJyYXkobm9kZS5wcm9wZXJ0aWVzLmNsYXNzTmFtZSkgJiYgbm9kZS5wcm9wZXJ0aWVzPy5jbGFzc05hbWU/LmluY2x1ZGVzKFwiY29tbWVudFwiKSkge1xuXHRcdFx0bm9kZS5jaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW4ucmVkdWNlKChyZXN1bHQ6IEFycmF5PEVsZW1lbnRDb250ZW50PiwgY2hpbGQ6IEVsZW1lbnRDb250ZW50KTogQXJyYXk8RWxlbWVudENvbnRlbnQ+ID0+IHtcblx0XHRcdFx0aWYgKGNoaWxkLnR5cGUgIT09IFwidGV4dFwiKVxuXHRcdFx0XHRcdHJlc3VsdC5wdXNoKGNoaWxkKTtcblx0XHRcdFx0ZWxzZVxuXHRcdFx0XHRcdHJlc3VsdCA9IGNvbnZlcnRDb21tZW50TGlua3MocmVzdWx0LGNoaWxkLnZhbHVlLHNvdXJjZVBhdGgscGx1Z2luKTtcblx0XHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHRcdH0sW10pO1xuXHRcdH1cblx0fSk7XG5cdGNvZGVibG9ja0hUTUwgPSB0b0h0bWwoc3BsaXRIdG1sVHJlZSk7XG5cdGxldCBjb2RlYmxvY2tMaW5lcyA9IGNvZGVibG9ja0hUTUwuc3BsaXQoXCI8YnI+XCIpO1xuXHRpZiAoY29kZWJsb2NrTGluZXMubGVuZ3RoID09PSAxKVxuXHRcdGNvZGVibG9ja0xpbmVzID0gW1wiXCIsXCJcIl07XG5cdGNvZGVibG9ja0NvZGVFbGVtZW50LmlubmVySFRNTCA9IFwiXCI7XG5cdHJldHVybiBjb2RlYmxvY2tMaW5lcztcbn1cbmZ1bmN0aW9uIGNvbnZlcnRDb21tZW50TGlua3MocmVzdWx0OiBBcnJheTxFbGVtZW50Q29udGVudD4sIGNvbW1lbnRUZXh0OiBzdHJpbmcsIHNvdXJjZVBhdGg6IHN0cmluZywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogQXJyYXk8RWxlbWVudENvbnRlbnQ+IHtcblx0Y29uc3QgbGlua01hdGNoZXMgPSBbLi4uY29tbWVudFRleHQubWF0Y2hBbGwoLyg/OlxcW1xcW1teXFxdfFxcclxcbl0rPyg/OlxcfFteXFxdfFxcclxcbl0rPyk/XFxdXFxdfFxcWy4qP1xcXVxcKC4rXFwpKS9nKV0ucmV2ZXJzZSgpO1xuXHRjb25zdCBuZXdDaGlsZHJlbiA9IGxpbmtNYXRjaGVzLnJlZHVjZSgocmVzdWx0OiBBcnJheTxFbGVtZW50Q29udGVudD4sIGxpbmtNYXRjaDogUmVnRXhwTWF0Y2hBcnJheSk6IEFycmF5PEVsZW1lbnRDb250ZW50PiA9PiB7XG5cdFx0aWYgKHR5cGVvZiBsaW5rTWF0Y2g/LmluZGV4ID09PSBcInVuZGVmaW5lZFwiKVxuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHRjb25zdCBlbmRpbmcgPSBjb21tZW50VGV4dC5zbGljZShsaW5rTWF0Y2guaW5kZXggKyBsaW5rTWF0Y2hbMF0ubGVuZ3RoKTtcblx0XHRyZXN1bHQucHVzaCh7dHlwZTogXCJ0ZXh0XCIsdmFsdWU6IGVuZGluZ30pO1xuXHRcdGNvbnN0IGxpbmtUZXh0ID0gY29tbWVudFRleHQuc2xpY2UobGlua01hdGNoLmluZGV4LCBsaW5rTWF0Y2guaW5kZXggKyBsaW5rTWF0Y2hbMF0ubGVuZ3RoKTtcblx0XHRjb25zdCBsaW5rQ29udGFpbmVyID0gY3JlYXRlRGl2KCk7XG5cdFx0TWFya2Rvd25SZW5kZXJlci5yZW5kZXIocGx1Z2luLmFwcCwgbGlua1RleHQsIGxpbmtDb250YWluZXIsIHNvdXJjZVBhdGgsIHBsdWdpbik7XG5cdFx0Y29uc3QgbGlua0NoaWxkID0gKGZyb21IdG1sKGxpbmtDb250YWluZXIuaW5uZXJIVE1MLHtmcmFnbWVudDogdHJ1ZX0pPy5jaGlsZHJlbj8uWzBdIGFzIEVsZW1lbnQpPy5jaGlsZHJlbj8uWzBdO1xuXHRcdHJlc3VsdC5wdXNoKGxpbmtDaGlsZCk7XG5cdFx0Y29tbWVudFRleHQgPSBjb21tZW50VGV4dC5zbGljZSgwLCBsaW5rTWF0Y2guaW5kZXgpO1xuXHRcdHJldHVybiByZXN1bHQ7XG5cdH0sW10pLnJldmVyc2UoKTtcblx0cmV0dXJuIFsuLi5yZXN1bHQsIC4uLlt7dHlwZTogXCJ0ZXh0XCIsdmFsdWU6IGNvbW1lbnRUZXh0fSBhcyBFbGVtZW50Q29udGVudCwuLi5uZXdDaGlsZHJlbl1dO1xufVxuZnVuY3Rpb24gaW5zZXJ0TGluZVdyYXBwZXIoY29kZWJsb2NrQ29kZUVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBsaW5lTnVtYmVyOiBudW1iZXIsIGxpbmU6IHN0cmluZywgc2hvd0xpbmVOdW1iZXJzOiBib29sZWFuKTogdm9pZCB7XG5cdGNvbnN0IGxpbmVXcmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcblx0Y29kZWJsb2NrQ29kZUVsZW1lbnQuYXBwZW5kQ2hpbGQobGluZVdyYXBwZXIpO1xuXHRnZXRMaW5lQ2xhc3Nlcyhjb2RlYmxvY2tQYXJhbWV0ZXJzLGxpbmVOdW1iZXIsbGluZSkuZm9yRWFjaCgobGluZUNsYXNzKSA9PiBsaW5lV3JhcHBlci5jbGFzc0xpc3QuYWRkKGxpbmVDbGFzcykpO1xuXHRpZiAoKHNob3dMaW5lTnVtYmVycyAmJiAhY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5hbHdheXNEaXNhYmxlZCkgfHwgY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5hbHdheXNFbmFibGVkKVxuXHRcdGxpbmVXcmFwcGVyLmFwcGVuZENoaWxkKGNyZWF0ZURpdih7Y2xzOiBcImNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyXCIsIHRleHQ6IChsaW5lTnVtYmVyK2NvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMub2Zmc2V0KS50b1N0cmluZygpfSkpO1xuXHRsaW5lV3JhcHBlci5hcHBlbmRDaGlsZChjcmVhdGVEaXYoe2NsczogXCJjb2RlLXN0eWxlci1saW5lLXRleHRcIiwgdGV4dDogc2FuaXRpemVIVE1MVG9Eb20obGluZSAhPT0gXCJcIiA/IGxpbmUgOiBcIjxicj5cIil9KSk7XG59XG5mdW5jdGlvbiBjb3VudFRhYnModGV4dDogc3RyaW5nKTogbnVtYmVyIHtcblx0Ly9UT0RPIChAbWF5dXJhbmt2KSBNYWtlIHdvcmsgd2l0aCBzcGFjZSBpbmRlbnRhdGlvbiB0b29cblx0bGV0IGNvdW50ID0gMDtcblx0bGV0IGluZGV4ID0gMDtcblx0d2hpbGUgKHRleHQuY2hhckF0KGluZGV4KyspID09PSBcIlxcdFwiKVxuXHRcdGNvdW50Kys7XG5cdHJldHVybiBjb3VudDtcbn1cbmFzeW5jIGZ1bmN0aW9uIGdldEhpZ2hsaWdodGVkSFRNTChwYXJhbWV0ZXJzOiBJbmxpbmVDb2RlUGFyYW1ldGVycywgdGV4dDogc3RyaW5nLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pOiBQcm9taXNlPHN0cmluZz4ge1xuXHRjb25zdCB0ZW1wb3JhcnlSZW5kZXJpbmdDb250YWluZXIgPSBjcmVhdGVEaXYoKTtcblx0TWFya2Rvd25SZW5kZXJlci5yZW5kZXIocGx1Z2luLmFwcCxbXCJgYGBcIixwYXJhbWV0ZXJzLmxhbmd1YWdlLFwiXFxuXCIsdGV4dCxcIlxcblwiLFwiYGBgXCJdLmpvaW4oXCJcIiksdGVtcG9yYXJ5UmVuZGVyaW5nQ29udGFpbmVyLFwiXCIscGx1Z2luKTtcblx0Y29uc3QgcmVuZGVyZWRDb2RlRWxlbWVudCA9IHRlbXBvcmFyeVJlbmRlcmluZ0NvbnRhaW5lci5xdWVyeVNlbGVjdG9yKFwiY29kZVwiKTtcblx0aWYgKCFyZW5kZXJlZENvZGVFbGVtZW50KVxuXHRcdHJldHVybiBcIkVSUk9SOiBDb3VsZCBub3QgcmVuZGVyIGhpZ2hsaWdodGVkIGNvZGVcIjtcblx0d2hpbGUocGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuc3ludGF4SGlnaGxpZ2h0ICYmICFyZW5kZXJlZENvZGVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhcImlzLWxvYWRlZFwiKSlcblx0XHRhd2FpdCBzbGVlcCgyKTtcblx0cmV0dXJuIHJlbmRlcmVkQ29kZUVsZW1lbnQuaW5uZXJIVE1MO1xufVxuXG5leHBvcnQgY29uc3QgZXhlY3V0ZUNvZGVNdXRhdGlvbk9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9ucykgPT4ge1xuXHRtdXRhdGlvbnMuZm9yRWFjaCgobXV0YXRpb246IE11dGF0aW9uUmVjb3JkKSA9PiB7XG5cdFx0aWYgKG11dGF0aW9uLnR5cGUgPT09IFwiY2hpbGRMaXN0XCIgJiYgKG11dGF0aW9uLnRhcmdldCBhcyBIVE1MRWxlbWVudCkudGFnTmFtZSA9PT0gXCJQUkVcIikgeyAvLyBBZGQgZXhlY3V0ZSBjb2RlIG91dHB1dFxuXHRcdFx0Y29uc3QgZXhlY3V0ZUNvZGVPdXRwdXQgPSAobXV0YXRpb24udGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5xdWVyeVNlbGVjdG9yKFwicHJlID4gY29kZSB+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/IHByb3AgOiAnYXJpYS0nICsgcHJvcC5zbGljZSg0KS50b0xvd2VyQ2FzZSgpXG4gIH0sXG4gIHByb3BlcnRpZXM6IHtcbiAgICBhcmlhQWN0aXZlRGVzY2VuZGFudDogbnVsbCxcbiAgICBhcmlhQXRvbWljOiBib29sZWFuaXNoLFxuICAgIGFyaWFBdXRvQ29tcGxldGU6IG51bGwsXG4gICAgYXJpYUJ1c3k6IGJvb2xlYW5pc2gsXG4gICAgYXJpYUNoZWNrZWQ6IGJvb2xlYW5pc2gsXG4gICAgYXJpYUNvbENvdW50OiBudW1iZXIsXG4gICAgYXJpYUNvbEluZGV4OiBudW1iZXIsXG4gICAgYXJpYUNvbFNwYW46IG51bWJlcixcbiAgICBhcmlhQ29udHJvbHM6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGFyaWFDdXJyZW50OiBudWxsLFxuICAgIGFyaWFEZXNjcmliZWRCeTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXJpYURldGFpbHM6IG51bGwsXG4gICAgYXJpYURpc2FibGVkOiBib29sZWFuaXNoLFxuICAgIGFyaWFEcm9wRWZmZWN0OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhcmlhRXJyb3JNZXNzYWdlOiBudWxsLFxuICAgIGFyaWFFeHBhbmRlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhRmxvd1RvOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhcmlhR3JhYmJlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhSGFzUG9wdXA6IG51bGwsXG4gICAgYXJpYUhpZGRlbjogYm9vbGVhbmlzaCxcbiAgICBhcmlhSW52YWxpZDogbnVsbCxcbiAgICBhcmlhS2V5U2hvcnRjdXRzOiBudWxsLFxuICAgIGFyaWFMYWJlbDogbnVsbCxcbiAgICBhcmlhTGFiZWxsZWRCeTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXJpYUxldmVsOiBudW1iZXIsXG4gICAgYXJpYUxpdmU6IG51bGwsXG4gICAgYXJpYU1vZGFsOiBib29sZWFuaXNoLFxuICAgIGFyaWFNdWx0aUxpbmU6IGJvb2xlYW5pc2gsXG4gICAgYXJpYU11bHRpU2VsZWN0YWJsZTogYm9vbGVhbmlzaCxcbiAgICBhcmlhT3JpZW50YXRpb246IG51bGwsXG4gICAgYXJpYU93bnM6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGFyaWFQbGFjZWhvbGRlcjogbnVsbCxcbiAgICBhcmlhUG9zSW5TZXQ6IG51bWJlcixcbiAgICBhcmlhUHJlc3NlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhUmVhZE9ubHk6IGJvb2xlYW5pc2gsXG4gICAgYXJpYVJlbGV2YW50OiBudWxsLFxuICAgIGFyaWFSZXF1aXJlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhUm9sZURlc2NyaXB0aW9uOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhcmlhUm93Q291bnQ6IG51bWJlcixcbiAgICBhcmlhUm93SW5kZXg6IG51bWJlcixcbiAgICBhcmlhUm93U3BhbjogbnVtYmVyLFxuICAgIGFyaWFTZWxlY3RlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhU2V0U2l6ZTogbnVtYmVyLFxuICAgIGFyaWFTb3J0OiBudWxsLFxuICAgIGFyaWFWYWx1ZU1heDogbnVtYmVyLFxuICAgIGFyaWFWYWx1ZU1pbjogbnVtYmVyLFxuICAgIGFyaWFWYWx1ZU5vdzogbnVtYmVyLFxuICAgIGFyaWFWYWx1ZVRleHQ6IG51bGwsXG4gICAgcm9sZTogbnVsbFxuICB9XG59KVxuIiwgImltcG9ydCB7XG4gIGJvb2xlYW4sXG4gIG92ZXJsb2FkZWRCb29sZWFuLFxuICBib29sZWFuaXNoLFxuICBudW1iZXIsXG4gIHNwYWNlU2VwYXJhdGVkLFxuICBjb21tYVNlcGFyYXRlZFxufSBmcm9tICcuL3V0aWwvdHlwZXMuanMnXG5pbXBvcnQge2NyZWF0ZX0gZnJvbSAnLi91dGlsL2NyZWF0ZS5qcydcbmltcG9ydCB7Y2FzZUluc2Vuc2l0aXZlVHJhbnNmb3JtfSBmcm9tICcuL3V0aWwvY2FzZS1pbnNlbnNpdGl2ZS10cmFuc2Zvcm0uanMnXG5cbmV4cG9ydCBjb25zdCBodG1sID0gY3JlYXRlKHtcbiAgc3BhY2U6ICdodG1sJyxcbiAgYXR0cmlidXRlczoge1xuICAgIGFjY2VwdGNoYXJzZXQ6ICdhY2NlcHQtY2hhcnNldCcsXG4gICAgY2xhc3NuYW1lOiAnY2xhc3MnLFxuICAgIGh0bWxmb3I6ICdmb3InLFxuICAgIGh0dHBlcXVpdjogJ2h0dHAtZXF1aXYnXG4gIH0sXG4gIHRyYW5zZm9ybTogY2FzZUluc2Vuc2l0aXZlVHJhbnNmb3JtLFxuICBtdXN0VXNlUHJvcGVydHk6IFsnY2hlY2tlZCcsICdtdWx0aXBsZScsICdtdXRlZCcsICdzZWxlY3RlZCddLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgLy8gU3RhbmRhcmQgUHJvcGVydGllcy5cbiAgICBhYmJyOiBudWxsLFxuICAgIGFjY2VwdDogY29tbWFTZXBhcmF0ZWQsXG4gICAgYWNjZXB0Q2hhcnNldDogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYWNjZXNzS2V5OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhY3Rpb246IG51bGwsXG4gICAgYWxsb3c6IG51bGwsXG4gICAgYWxsb3dGdWxsU2NyZWVuOiBib29sZWFuLFxuICAgIGFsbG93UGF5bWVudFJlcXVlc3Q6IGJvb2xlYW4sXG4gICAgYWxsb3dVc2VyTWVkaWE6IGJvb2xlYW4sXG4gICAgYWx0OiBudWxsLFxuICAgIGFzOiBudWxsLFxuICAgIGFzeW5jOiBib29sZWFuLFxuICAgIGF1dG9DYXBpdGFsaXplOiBudWxsLFxuICAgIGF1dG9Db21wbGV0ZTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXV0b0ZvY3VzOiBib29sZWFuLFxuICAgIGF1dG9QbGF5OiBib29sZWFuLFxuICAgIGJsb2NraW5nOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBjYXB0dXJlOiBudWxsLFxuICAgIGNoYXJTZXQ6IG51bGwsXG4gICAgY2hlY2tlZDogYm9vbGVhbixcbiAgICBjaXRlOiBudWxsLFxuICAgIGNsYXNzTmFtZTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgY29sczogbnVtYmVyLFxuICAgIGNvbFNwYW46IG51bGwsXG4gICAgY29udGVudDogbnVsbCxcbiAgICBjb250ZW50RWRpdGFibGU6IGJvb2xlYW5pc2gsXG4gICAgY29udHJvbHM6IGJvb2xlYW4sXG4gICAgY29udHJvbHNMaXN0OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBjb29yZHM6IG51bWJlciB8IGNvbW1hU2VwYXJhdGVkLFxuICAgIGNyb3NzT3JpZ2luOiBudWxsLFxuICAgIGRhdGE6IG51bGwsXG4gICAgZGF0ZVRpbWU6IG51bGwsXG4gICAgZGVjb2Rpbmc6IG51bGwsXG4gICAgZGVmYXVsdDogYm9vbGVhbixcbiAgICBkZWZlcjogYm9vbGVhbixcbiAgICBkaXI6IG51bGwsXG4gICAgZGlyTmFtZTogbnVsbCxcbiAgICBkaXNhYmxlZDogYm9vbGVhbixcbiAgICBkb3dubG9hZDogb3ZlcmxvYWRlZEJvb2xlYW4sXG4gICAgZHJhZ2dhYmxlOiBib29sZWFuaXNoLFxuICAgIGVuY1R5cGU6IG51bGwsXG4gICAgZW50ZXJLZXlIaW50OiBudWxsLFxuICAgIGZldGNoUHJpb3JpdHk6IG51bGwsXG4gICAgZm9ybTogbnVsbCxcbiAgICBmb3JtQWN0aW9uOiBudWxsLFxuICAgIGZvcm1FbmNUeXBlOiBudWxsLFxuICAgIGZvcm1NZXRob2Q6IG51bGwsXG4gICAgZm9ybU5vVmFsaWRhdGU6IGJvb2xlYW4sXG4gICAgZm9ybVRhcmdldDogbnVsbCxcbiAgICBoZWFkZXJzOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBoZWlnaHQ6IG51bWJlcixcbiAgICBoaWRkZW46IGJvb2xlYW4sXG4gICAgaGlnaDogbnVtYmVyLFxuICAgIGhyZWY6IG51bGwsXG4gICAgaHJlZkxhbmc6IG51bGwsXG4gICAgaHRtbEZvcjogc3BhY2VTZXBhcmF0ZWQsXG4gICAgaHR0cEVxdWl2OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBpZDogbnVsbCxcbiAgICBpbWFnZVNpemVzOiBudWxsLFxuICAgIGltYWdlU3JjU2V0OiBudWxsLFxuICAgIGluZXJ0OiBib29sZWFuLFxuICAgIGlucHV0TW9kZTogbnVsbCxcbiAgICBpbnRlZ3JpdHk6IG51bGwsXG4gICAgaXM6IG51bGwsXG4gICAgaXNNYXA6IGJvb2xlYW4sXG4gICAgaXRlbUlkOiBudWxsLFxuICAgIGl0ZW1Qcm9wOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBpdGVtUmVmOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBpdGVtU2NvcGU6IGJvb2xlYW4sXG4gICAgaXRlbVR5cGU6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGtpbmQ6IG51bGwsXG4gICAgbGFiZWw6IG51bGwsXG4gICAgbGFuZzogbnVsbCxcbiAgICBsYW5ndWFnZTogbnVsbCxcbiAgICBsaXN0OiBudWxsLFxuICAgIGxvYWRpbmc6IG51bGwsXG4gICAgbG9vcDogYm9vbGVhbixcbiAgICBsb3c6IG51bWJlcixcbiAgICBtYW5pZmVzdDogbnVsbCxcbiAgICBtYXg6IG51bGwsXG4gICAgbWF4TGVuZ3RoOiBudW1iZXIsXG4gICAgbWVkaWE6IG51bGwsXG4gICAgbWV0aG9kOiBudWxsLFxuICAgIG1pbjogbnVsbCxcbiAgICBtaW5MZW5ndGg6IG51bWJlcixcbiAgICBtdWx0aXBsZTogYm9vbGVhbixcbiAgICBtdXRlZDogYm9vbGVhbixcbiAgICBuYW1lOiBudWxsLFxuICAgIG5vbmNlOiBudWxsLFxuICAgIG5vTW9kdWxlOiBib29sZWFuLFxuICAgIG5vVmFsaWRhdGU6IGJvb2xlYW4sXG4gICAgb25BYm9ydDogbnVsbCxcbiAgICBvbkFmdGVyUHJpbnQ6IG51bGwsXG4gICAgb25BdXhDbGljazogbnVsbCxcbiAgICBvbkJlZm9yZU1hdGNoOiBudWxsLFxuICAgIG9uQmVmb3JlUHJpbnQ6IG51bGwsXG4gICAgb25CZWZvcmVUb2dnbGU6IG51bGwsXG4gICAgb25CZWZvcmVVbmxvYWQ6IG51bGwsXG4gICAgb25CbHVyOiBudWxsLFxuICAgIG9uQ2FuY2VsOiBudWxsLFxuICAgIG9uQ2FuUGxheTogbnVsbCxcbiAgICBvbkNhblBsYXlUaHJvdWdoOiBudWxsLFxuICAgIG9uQ2hhbmdlOiBudWxsLFxuICAgIG9uQ2xpY2s6IG51bGwsXG4gICAgb25DbG9zZTogbnVsbCxcbiAgICBvbkNvbnRleHRMb3N0OiBudWxsLFxuICAgIG9uQ29udGV4dE1lbnU6IG51bGwsXG4gICAgb25Db250ZXh0UmVzdG9yZWQ6IG51bGwsXG4gICAgb25Db3B5OiBudWxsLFxuICAgIG9uQ3VlQ2hhbmdlOiBudWxsLFxuICAgIG9uQ3V0OiBudWxsLFxuICAgIG9uRGJsQ2xpY2s6IG51bGwsXG4gICAgb25EcmFnOiBudWxsLFxuICAgIG9uRHJhZ0VuZDogbnVsbCxcbiAgICBvbkRyYWdFbnRlcjogbnVsbCxcbiAgICBvbkRyYWdFeGl0OiBudWxsLFxuICAgIG9uRHJhZ0xlYXZlOiBudWxsLFxuICAgIG9uRHJhZ092ZXI6IG51bGwsXG4gICAgb25EcmFnU3RhcnQ6IG51bGwsXG4gICAgb25Ecm9wOiBudWxsLFxuICAgIG9uRHVyYXRpb25DaGFuZ2U6IG51bGwsXG4gICAgb25FbXB0aWVkOiBudWxsLFxuICAgIG9uRW5kZWQ6IG51bGwsXG4gICAgb25FcnJvcjogbnVsbCxcbiAgICBvbkZvY3VzOiBudWxsLFxuICAgIG9uRm9ybURhdGE6IG51bGwsXG4gICAgb25IYXNoQ2hhbmdlOiBudWxsLFxuICAgIG9uSW5wdXQ6IG51bGwsXG4gICAgb25JbnZhbGlkOiBudWxsLFxuICAgIG9uS2V5RG93bjogbnVsbCxcbiAgICBvbktleVByZXNzOiBudWxsLFxuICAgIG9uS2V5VXA6IG51bGwsXG4gICAgb25MYW5ndWFnZUNoYW5nZTogbnVsbCxcbiAgICBvbkxvYWQ6IG51bGwsXG4gICAgb25Mb2FkZWREYXRhOiBudWxsLFxuICAgIG9uTG9hZGVkTWV0YWRhdGE6IG51bGwsXG4gICAgb25Mb2FkRW5kOiBudWxsLFxuICAgIG9uTG9hZFN0YXJ0OiBudWxsLFxuICAgIG9uTWVzc2FnZTogbnVsbCxcbiAgICBvbk1lc3NhZ2VFcnJvcjogbnVsbCxcbiAgICBvbk1vdXNlRG93bjogbnVsbCxcbiAgICBvbk1vdXNlRW50ZXI6IG51bGwsXG4gICAgb25Nb3VzZUxlYXZlOiBudWxsLFxuICAgIG9uTW91c2VNb3ZlOiBudWxsLFxuICAgIG9uTW91c2VPdXQ6IG51bGwsXG4gICAgb25Nb3VzZU92ZXI6IG51bGwsXG4gICAgb25Nb3VzZVVwOiBudWxsLFxuICAgIG9uT2ZmbGluZTogbnVsbCxcbiAgICBvbk9ubGluZTogbnVsbCxcbiAgICBvblBhZ2VIaWRlOiBudWxsLFxuICAgIG9uUGFnZVNob3c6IG51bGwsXG4gICAgb25QYXN0ZTogbnVsbCxcbiAgICBvblBhdXNlOiBudWxsLFxuICAgIG9uUGxheTogbnVsbCxcbiAgICBvblBsYXlpbmc6IG51bGwsXG4gICAgb25Qb3BTdGF0ZTogbnVsbCxcbiAgICBvblByb2dyZXNzOiBudWxsLFxuICAgIG9uUmF0ZUNoYW5nZTogbnVsbCxcbiAgICBvblJlamVjdGlvbkhhbmRsZWQ6IG51bGwsXG4gICAgb25SZXNldDogbnVsbCxcbiAgICBvblJlc2l6ZTogbnVsbCxcbiAgICBvblNjcm9sbDogbnVsbCxcbiAgICBvblNjcm9sbEVuZDogbnVsbCxcbiAgICBvblNlY3VyaXR5UG9saWN5VmlvbGF0aW9uOiBudWxsLFxuICAgIG9uU2Vla2VkOiBudWxsLFxuICAgIG9uU2Vla2luZzogbnVsbCxcbiAgICBvblNlbGVjdDogbnVsbCxcbiAgICBvblNsb3RDaGFuZ2U6IG51bGwsXG4gICAgb25TdGFsbGVkOiBudWxsLFxuICAgIG9uU3RvcmFnZTogbnVsbCxcbiAgICBvblN1Ym1pdDogbnVsbCxcbiAgICBvblN1c3BlbmQ6IG51bGwsXG4gICAgb25UaW1lVXBkYXRlOiBudWxsLFxuICAgIG9uVG9nZ2xlOiBudWxsLFxuICAgIG9uVW5oYW5kbGVkUmVqZWN0aW9uOiBudWxsLFxuICAgIG9uVW5sb2FkOiBudWxsLFxuICAgIG9uVm9sdW1lQ2hhbmdlOiBudWxsLFxuICAgIG9uV2FpdGluZzogbnVsbCxcbiAgICBvbldoZWVsOiBudWxsLFxuICAgIG9wZW46IGJvb2xlYW4sXG4gICAgb3B0aW11bTogbnVtYmVyLFxuICAgIHBhdHRlcm46IG51bGwsXG4gICAgcGluZzogc3BhY2VTZXBhcmF0ZWQsXG4gICAgcGxhY2Vob2xkZXI6IG51bGwsXG4gICAgcGxheXNJbmxpbmU6IGJvb2xlYW4sXG4gICAgcG9wb3ZlcjogbnVsbCxcbiAgICBwb3BvdmVyVGFyZ2V0OiBudWxsLFxuICAgIHBvcG92ZXJUYXJnZXRBY3Rpb246IG51bGwsXG4gICAgcG9zdGVyOiBudWxsLFxuICAgIHByZWxvYWQ6IG51bGwsXG4gICAgcmVhZE9ubHk6IGJvb2xlYW4sXG4gICAgcmVmZXJyZXJQb2xpY3k6IG51bGwsXG4gICAgcmVsOiBzcGFjZVNlcGFyYXRlZCxcbiAgICByZXF1aXJlZDogYm9vbGVhbixcbiAgICByZXZlcnNlZDogYm9vbGVhbixcbiAgICByb3dzOiBudW1iZXIsXG4gICAgcm93U3BhbjogbnVtYmVyLFxuICAgIHNhbmRib3g6IHNwYWNlU2VwYXJhdGVkLFxuICAgIHNjb3BlOiBudWxsLFxuICAgIHNjb3BlZDogYm9vbGVhbixcbiAgICBzZWFtbGVzczogYm9vbGVhbixcbiAgICBzZWxlY3RlZDogYm9vbGVhbixcbiAgICBzaGFkb3dSb290Q2xvbmFibGU6IGJvb2xlYW4sXG4gICAgc2hhZG93Um9vdERlbGVnYXRlc0ZvY3VzOiBib29sZWFuLFxuICAgIHNoYWRvd1Jvb3RNb2RlOiBudWxsLFxuICAgIHNoYXBlOiBudWxsLFxuICAgIHNpemU6IG51bWJlcixcbiAgICBzaXplczogbnVsbCxcbiAgICBzbG90OiBudWxsLFxuICAgIHNwYW46IG51bWJlcixcbiAgICBzcGVsbENoZWNrOiBib29sZWFuaXNoLFxuICAgIHNyYzogbnVsbCxcbiAgICBzcmNEb2M6IG51bGwsXG4gICAgc3JjTGFuZzogbnVsbCxcbiAgICBzcmNTZXQ6IG51bGwsXG4gICAgc3RhcnQ6IG51bWJlcixcbiAgICBzdGVwOiBudWxsLFxuICAgIHN0eWxlOiBudWxsLFxuICAgIHRhYkluZGV4OiBudW1iZXIsXG4gICAgdGFyZ2V0OiBudWxsLFxuICAgIHRpdGxlOiBudWxsLFxuICAgIHRyYW5zbGF0ZTogbnVsbCxcbiAgICB0eXBlOiBudWxsLFxuICAgIHR5cGVNdXN0TWF0Y2g6IGJvb2xlYW4sXG4gICAgdXNlTWFwOiBudWxsLFxuICAgIHZhbHVlOiBib29sZWFuaXNoLFxuICAgIHdpZHRoOiBudW1iZXIsXG4gICAgd3JhcDogbnVsbCxcbiAgICB3cml0aW5nU3VnZ2VzdGlvbnM6IG51bGwsXG5cbiAgICAvLyBMZWdhY3kuXG4gICAgLy8gU2VlOiBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNvdGhlci1lbGVtZW50cywtYXR0cmlidXRlcy1hbmQtYXBpc1xuICAgIGFsaWduOiBudWxsLCAvLyBTZXZlcmFsLiBVc2UgQ1NTIGB0ZXh0LWFsaWduYCBpbnN0ZWFkLFxuICAgIGFMaW5rOiBudWxsLCAvLyBgPGJvZHk+YC4gVXNlIENTUyBgYTphY3RpdmUge2NvbG9yfWAgaW5zdGVhZFxuICAgIGFyY2hpdmU6IHNwYWNlU2VwYXJhdGVkLCAvLyBgPG9iamVjdD5gLiBMaXN0IG9mIFVSSXMgdG8gYXJjaGl2ZXNcbiAgICBheGlzOiBudWxsLCAvLyBgPHRkPmAgYW5kIGA8dGg+YC4gVXNlIGBzY29wZWAgb24gYDx0aD5gXG4gICAgYmFja2dyb3VuZDogbnVsbCwgLy8gYDxib2R5PmAuIFVzZSBDU1MgYGJhY2tncm91bmQtaW1hZ2VgIGluc3RlYWRcbiAgICBiZ0NvbG9yOiBudWxsLCAvLyBgPGJvZHk+YCBhbmQgdGFibGUgZWxlbWVudHMuIFVzZSBDU1MgYGJhY2tncm91bmQtY29sb3JgIGluc3RlYWRcbiAgICBib3JkZXI6IG51bWJlciwgLy8gYDx0YWJsZT5gLiBVc2UgQ1NTIGBib3JkZXItd2lkdGhgIGluc3RlYWQsXG4gICAgYm9yZGVyQ29sb3I6IG51bGwsIC8vIGA8dGFibGU+YC4gVXNlIENTUyBgYm9yZGVyLWNvbG9yYCBpbnN0ZWFkLFxuICAgIGJvdHRvbU1hcmdpbjogbnVtYmVyLCAvLyBgPGJvZHk+YFxuICAgIGNlbGxQYWRkaW5nOiBudWxsLCAvLyBgPHRhYmxlPmBcbiAgICBjZWxsU3BhY2luZzogbnVsbCwgLy8gYDx0YWJsZT5gXG4gICAgY2hhcjogbnVsbCwgLy8gU2V2ZXJhbCB0YWJsZSBlbGVtZW50cy4gV2hlbiBgYWxpZ249Y2hhcmAsIHNldHMgdGhlIGNoYXJhY3RlciB0byBhbGlnbiBvblxuICAgIGNoYXJPZmY6IG51bGwsIC8vIFNldmVyYWwgdGFibGUgZWxlbWVudHMuIFdoZW4gYGNoYXJgLCBvZmZzZXRzIHRoZSBhbGlnbm1lbnRcbiAgICBjbGFzc0lkOiBudWxsLCAvLyBgPG9iamVjdD5gXG4gICAgY2xlYXI6IG51bGwsIC8vIGA8YnI+YC4gVXNlIENTUyBgY2xlYXJgIGluc3RlYWRcbiAgICBjb2RlOiBudWxsLCAvLyBgPG9iamVjdD5gXG4gICAgY29kZUJhc2U6IG51bGwsIC8vIGA8b2JqZWN0PmBcbiAgICBjb2RlVHlwZTogbnVsbCwgLy8gYDxvYmplY3Q+YFxuICAgIGNvbG9yOiBudWxsLCAvLyBgPGZvbnQ+YCBhbmQgYDxocj5gLiBVc2UgQ1NTIGluc3RlYWRcbiAgICBjb21wYWN0OiBib29sZWFuLCAvLyBMaXN0cy4gVXNlIENTUyB0byByZWR1Y2Ugc3BhY2UgYmV0d2VlbiBpdGVtcyBpbnN0ZWFkXG4gICAgZGVjbGFyZTogYm9vbGVhbiwgLy8gYDxvYmplY3Q+YFxuICAgIGV2ZW50OiBudWxsLCAvLyBgPHNjcmlwdD5gXG4gICAgZmFjZTogbnVsbCwgLy8gYDxmb250PmAuIFVzZSBDU1MgaW5zdGVhZFxuICAgIGZyYW1lOiBudWxsLCAvLyBgPHRhYmxlPmBcbiAgICBmcmFtZUJvcmRlcjogbnVsbCwgLy8gYDxpZnJhbWU+YC4gVXNlIENTUyBgYm9yZGVyYCBpbnN0ZWFkXG4gICAgaFNwYWNlOiBudW1iZXIsIC8vIGA8aW1nPmAgYW5kIGA8b2JqZWN0PmBcbiAgICBsZWZ0TWFyZ2luOiBudW1iZXIsIC8vIGA8Ym9keT5gXG4gICAgbGluazogbnVsbCwgLy8gYDxib2R5PmAuIFVzZSBDU1MgYGE6bGluayB7Y29sb3I6ICp9YCBpbnN0ZWFkXG4gICAgbG9uZ0Rlc2M6IG51bGwsIC8vIGA8ZnJhbWU+YCwgYDxpZnJhbWU+YCwgYW5kIGA8aW1nPmAuIFVzZSBhbiBgPGE+YFxuICAgIGxvd1NyYzogbnVsbCwgLy8gYDxpbWc+YC4gVXNlIGEgYDxwaWN0dXJlPmBcbiAgICBtYXJnaW5IZWlnaHQ6IG51bWJlciwgLy8gYDxib2R5PmBcbiAgICBtYXJnaW5XaWR0aDogbnVtYmVyLCAvLyBgPGJvZHk+YFxuICAgIG5vUmVzaXplOiBib29sZWFuLCAvLyBgPGZyYW1lPmBcbiAgICBub0hyZWY6IGJvb2xlYW4sIC8vIGA8YXJlYT5gLiBVc2Ugbm8gaHJlZiBpbnN0ZWFkIG9mIGFuIGV4cGxpY2l0IGBub2hyZWZgXG4gICAgbm9TaGFkZTogYm9vbGVhbiwgLy8gYDxocj5gLiBVc2UgYmFja2dyb3VuZC1jb2xvciBhbmQgaGVpZ2h0IGluc3RlYWQgb2YgYm9yZGVyc1xuICAgIG5vV3JhcDogYm9vbGVhbiwgLy8gYDx0ZD5gIGFuZCBgPHRoPmBcbiAgICBvYmplY3Q6IG51bGwsIC8vIGA8YXBwbGV0PmBcbiAgICBwcm9maWxlOiBudWxsLCAvLyBgPGhlYWQ+YFxuICAgIHByb21wdDogbnVsbCwgLy8gYDxpc2luZGV4PmBcbiAgICByZXY6IG51bGwsIC8vIGA8bGluaz5gXG4gICAgcmlnaHRNYXJnaW46IG51bWJlciwgLy8gYDxib2R5PmBcbiAgICBydWxlczogbnVsbCwgLy8gYDx0YWJsZT5gXG4gICAgc2NoZW1lOiBudWxsLCAvLyBgPG1ldGE+YFxuICAgIHNjcm9sbGluZzogYm9vbGVhbmlzaCwgLy8gYDxmcmFtZT5gLiBVc2Ugb3ZlcmZsb3cgaW4gdGhlIGNoaWxkIGNvbnRleHRcbiAgICBzdGFuZGJ5OiBudWxsLCAvLyBgPG9iamVjdD5gXG4gICAgc3VtbWFyeTogbnVsbCwgLy8gYDx0YWJsZT5gXG4gICAgdGV4dDogbnVsbCwgLy8gYDxib2R5PmAuIFVzZSBDU1MgYGNvbG9yYCBpbnN0ZWFkXG4gICAgdG9wTWFyZ2luOiBudW1iZXIsIC8vIGA8Ym9keT5gXG4gICAgdmFsdWVUeXBlOiBudWxsLCAvLyBgPHBhcmFtPmBcbiAgICB2ZXJzaW9uOiBudWxsLCAvLyBgPGh0bWw+YC4gVXNlIGEgZG9jdHlwZS5cbiAgICB2QWxpZ246IG51bGwsIC8vIFNldmVyYWwuIFVzZSBDU1MgYHZlcnRpY2FsLWFsaWduYCBpbnN0ZWFkXG4gICAgdkxpbms6IG51bGwsIC8vIGA8Ym9keT5gLiBVc2UgQ1NTIGBhOnZpc2l0ZWQge2NvbG9yfWAgaW5zdGVhZFxuICAgIHZTcGFjZTogbnVtYmVyLCAvLyBgPGltZz5gIGFuZCBgPG9iamVjdD5gXG5cbiAgICAvLyBOb24tc3RhbmRhcmQgUHJvcGVydGllcy5cbiAgICBhbGxvd1RyYW5zcGFyZW5jeTogbnVsbCxcbiAgICBhdXRvQ29ycmVjdDogbnVsbCxcbiAgICBhdXRvU2F2ZTogbnVsbCxcbiAgICBkaXNhYmxlUGljdHVyZUluUGljdHVyZTogYm9vbGVhbixcbiAgICBkaXNhYmxlUmVtb3RlUGxheWJhY2s6IGJvb2xlYW4sXG4gICAgcHJlZml4OiBudWxsLFxuICAgIHByb3BlcnR5OiBudWxsLFxuICAgIHJlc3VsdHM6IG51bWJlcixcbiAgICBzZWN1cml0eTogbnVsbCxcbiAgICB1bnNlbGVjdGFibGU6IG51bGxcbiAgfVxufSlcbiIsICJpbXBvcnQge1xuICBib29sZWFuLFxuICBudW1iZXIsXG4gIHNwYWNlU2VwYXJhdGVkLFxuICBjb21tYVNlcGFyYXRlZCxcbiAgY29tbWFPclNwYWNlU2VwYXJhdGVkXG59IGZyb20gJy4vdXRpbC90eXBlcy5qcydcbmltcG9ydCB7Y3JlYXRlfSBmcm9tICcuL3V0aWwvY3JlYXRlLmpzJ1xuaW1wb3J0IHtjYXNlU2Vuc2l0aXZlVHJhbnNmb3JtfSBmcm9tICcuL3V0aWwvY2FzZS1zZW5zaXRpdmUtdHJhbnNmb3JtLmpzJ1xuXG5leHBvcnQgY29uc3Qgc3ZnID0gY3JlYXRlKHtcbiAgc3BhY2U6ICdzdmcnLFxuICBhdHRyaWJ1dGVzOiB7XG4gICAgYWNjZW50SGVpZ2h0OiAnYWNjZW50LWhlaWdodCcsXG4gICAgYWxpZ25tZW50QmFzZWxpbmU6ICdhbGlnbm1lbnQtYmFzZWxpbmUnLFxuICAgIGFyYWJpY0Zvcm06ICdhcmFiaWMtZm9ybScsXG4gICAgYmFzZWxpbmVTaGlmdDogJ2Jhc2VsaW5lLXNoaWZ0JyxcbiAgICBjYXBIZWlnaHQ6ICdjYXAtaGVpZ2h0JyxcbiAgICBjbGFzc05hbWU6ICdjbGFzcycsXG4gICAgY2xpcFBhdGg6ICdjbGlwLXBhdGgnLFxuICAgIGNsaXBSdWxlOiAnY2xpcC1ydWxlJyxcbiAgICBjb2xvckludGVycG9sYXRpb246ICdjb2xvci1pbnRlcnBvbGF0aW9uJyxcbiAgICBjb2xvckludGVycG9sYXRpb25GaWx0ZXJzOiAnY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzJyxcbiAgICBjb2xvclByb2ZpbGU6ICdjb2xvci1wcm9maWxlJyxcbiAgICBjb2xvclJlbmRlcmluZzogJ2NvbG9yLXJlbmRlcmluZycsXG4gICAgY3Jvc3NPcmlnaW46ICdjcm9zc29yaWdpbicsXG4gICAgZGF0YVR5cGU6ICdkYXRhdHlwZScsXG4gICAgZG9taW5hbnRCYXNlbGluZTogJ2RvbWluYW50LWJhc2VsaW5lJyxcbiAgICBlbmFibGVCYWNrZ3JvdW5kOiAnZW5hYmxlLWJhY2tncm91bmQnLFxuICAgIGZpbGxPcGFjaXR5OiAnZmlsbC1vcGFjaXR5JyxcbiAgICBmaWxsUnVsZTogJ2ZpbGwtcnVsZScsXG4gICAgZmxvb2RDb2xvcjogJ2Zsb29kLWNvbG9yJyxcbiAgICBmbG9vZE9wYWNpdHk6ICdmbG9vZC1vcGFjaXR5JyxcbiAgICBmb250RmFtaWx5OiAnZm9udC1mYW1pbHknLFxuICAgIGZvbnRTaXplOiAnZm9udC1zaXplJyxcbiAgICBmb250U2l6ZUFkanVzdDogJ2ZvbnQtc2l6ZS1hZGp1c3QnLFxuICAgIGZvbnRTdHJldGNoOiAnZm9udC1zdHJldGNoJyxcbiAgICBmb250U3R5bGU6ICdmb250LXN0eWxlJyxcbiAgICBmb250VmFyaWFudDogJ2ZvbnQtdmFyaWFudCcsXG4gICAgZm9udFdlaWdodDogJ2ZvbnQtd2VpZ2h0JyxcbiAgICBnbHlwaE5hbWU6ICdnbHlwaC1uYW1lJyxcbiAgICBnbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbDogJ2dseXBoLW9yaWVudGF0aW9uLWhvcml6b250YWwnLFxuICAgIGdseXBoT3JpZW50YXRpb25WZXJ0aWNhbDogJ2dseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsJyxcbiAgICBocmVmTGFuZzogJ2hyZWZsYW5nJyxcbiAgICBob3JpekFkdlg6ICdob3Jpei1hZHYteCcsXG4gICAgaG9yaXpPcmlnaW5YOiAnaG9yaXotb3JpZ2luLXgnLFxuICAgIGhvcml6T3JpZ2luWTogJ2hvcml6LW9yaWdpbi15JyxcbiAgICBpbWFnZVJlbmRlcmluZzogJ2ltYWdlLXJlbmRlcmluZycsXG4gICAgbGV0dGVyU3BhY2luZzogJ2xldHRlci1zcGFjaW5nJyxcbiAgICBsaWdodGluZ0NvbG9yOiAnbGlnaHRpbmctY29sb3InLFxuICAgIG1hcmtlckVuZDogJ21hcmtlci1lbmQnLFxuICAgIG1hcmtlck1pZDogJ21hcmtlci1taWQnLFxuICAgIG1hcmtlclN0YXJ0OiAnbWFya2VyLXN0YXJ0JyxcbiAgICBuYXZEb3duOiAnbmF2LWRvd24nLFxuICAgIG5hdkRvd25MZWZ0OiAnbmF2LWRvd24tbGVmdCcsXG4gICAgbmF2RG93blJpZ2h0OiAnbmF2LWRvd24tcmlnaHQnLFxuICAgIG5hdkxlZnQ6ICduYXYtbGVmdCcsXG4gICAgbmF2TmV4dDogJ25hdi1uZXh0JyxcbiAgICBuYXZQcmV2OiAnbmF2LXByZXYnLFxuICAgIG5hdlJpZ2h0OiAnbmF2LXJpZ2h0JyxcbiAgICBuYXZVcDogJ25hdi11cCcsXG4gICAgbmF2VXBMZWZ0OiAnbmF2LXVwLWxlZnQnLFxuICAgIG5hdlVwUmlnaHQ6ICduYXYtdXAtcmlnaHQnLFxuICAgIG9uQWJvcnQ6ICdvbmFib3J0JyxcbiAgICBvbkFjdGl2YXRlOiAnb25hY3RpdmF0ZScsXG4gICAgb25BZnRlclByaW50OiAnb25hZnRlcnByaW50JyxcbiAgICBvbkJlZm9yZVByaW50OiAnb25iZWZvcmVwcmludCcsXG4gICAgb25CZWdpbjogJ29uYmVnaW4nLFxuICAgIG9uQ2FuY2VsOiAnb25jYW5jZWwnLFxuICAgIG9uQ2FuUGxheTogJ29uY2FucGxheScsXG4gICAgb25DYW5QbGF5VGhyb3VnaDogJ29uY2FucGxheXRocm91Z2gnLFxuICAgIG9uQ2hhbmdlOiAnb25jaGFuZ2UnLFxuICAgIG9uQ2xpY2s6ICdvbmNsaWNrJyxcbiAgICBvbkNsb3NlOiAnb25jbG9zZScsXG4gICAgb25Db3B5OiAnb25jb3B5JyxcbiAgICBvbkN1ZUNoYW5nZTogJ29uY3VlY2hhbmdlJyxcbiAgICBvbkN1dDogJ29uY3V0JyxcbiAgICBvbkRibENsaWNrOiAnb25kYmxjbGljaycsXG4gICAgb25EcmFnOiAnb25kcmFnJyxcbiAgICBvbkRyYWdFbmQ6ICdvbmRyYWdlbmQnLFxuICAgIG9uRHJhZ0VudGVyOiAnb25kcmFnZW50ZXInLFxuICAgIG9uRHJhZ0V4aXQ6ICdvbmRyYWdleGl0JyxcbiAgICBvbkRyYWdMZWF2ZTogJ29uZHJhZ2xlYXZlJyxcbiAgICBvbkRyYWdPdmVyOiAnb25kcmFnb3ZlcicsXG4gICAgb25EcmFnU3RhcnQ6ICdvbmRyYWdzdGFydCcsXG4gICAgb25Ecm9wOiAnb25kcm9wJyxcbiAgICBvbkR1cmF0aW9uQ2hhbmdlOiAnb25kdXJhdGlvbmNoYW5nZScsXG4gICAgb25FbXB0aWVkOiAnb25lbXB0aWVkJyxcbiAgICBvbkVuZDogJ29uZW5kJyxcbiAgICBvbkVuZGVkOiAnb25lbmRlZCcsXG4gICAgb25FcnJvcjogJ29uZXJyb3InLFxuICAgIG9uRm9jdXM6ICdvbmZvY3VzJyxcbiAgICBvbkZvY3VzSW46ICdvbmZvY3VzaW4nLFxuICAgIG9uRm9jdXNPdXQ6ICdvbmZvY3Vzb3V0JyxcbiAgICBvbkhhc2hDaGFuZ2U6ICdvbmhhc2hjaGFuZ2UnLFxuICAgIG9uSW5wdXQ6ICdvbmlucHV0JyxcbiAgICBvbkludmFsaWQ6ICdvbmludmFsaWQnLFxuICAgIG9uS2V5RG93bjogJ29ua2V5ZG93bicsXG4gICAgb25LZXlQcmVzczogJ29ua2V5cHJlc3MnLFxuICAgIG9uS2V5VXA6ICdvbmtleXVwJyxcbiAgICBvbkxvYWQ6ICdvbmxvYWQnLFxuICAgIG9uTG9hZGVkRGF0YTogJ29ubG9hZGVkZGF0YScsXG4gICAgb25Mb2FkZWRNZXRhZGF0YTogJ29ubG9hZGVkbWV0YWRhdGEnLFxuICAgIG9uTG9hZFN0YXJ0OiAnb25sb2Fkc3RhcnQnLFxuICAgIG9uTWVzc2FnZTogJ29ubWVzc2FnZScsXG4gICAgb25Nb3VzZURvd246ICdvbm1vdXNlZG93bicsXG4gICAgb25Nb3VzZUVudGVyOiAnb25tb3VzZWVudGVyJyxcbiAgICBvbk1vdXNlTGVhdmU6ICdvbm1vdXNlbGVhdmUnLFxuICAgIG9uTW91c2VNb3ZlOiAnb25tb3VzZW1vdmUnLFxuICAgIG9uTW91c2VPdXQ6ICdvbm1vdXNlb3V0JyxcbiAgICBvbk1vdXNlT3ZlcjogJ29ubW91c2VvdmVyJyxcbiAgICBvbk1vdXNlVXA6ICdvbm1vdXNldXAnLFxuICAgIG9uTW91c2VXaGVlbDogJ29ubW91c2V3aGVlbCcsXG4gICAgb25PZmZsaW5lOiAnb25vZmZsaW5lJyxcbiAgICBvbk9ubGluZTogJ29ub25saW5lJyxcbiAgICBvblBhZ2VIaWRlOiAnb25wYWdlaGlkZScsXG4gICAgb25QYWdlU2hvdzogJ29ucGFnZXNob3cnLFxuICAgIG9uUGFzdGU6ICdvbnBhc3RlJyxcbiAgICBvblBhdXNlOiAnb25wYXVzZScsXG4gICAgb25QbGF5OiAnb25wbGF5JyxcbiAgICBvblBsYXlpbmc6ICdvbnBsYXlpbmcnLFxuICAgIG9uUG9wU3RhdGU6ICdvbnBvcHN0YXRlJyxcbiAgICBvblByb2dyZXNzOiAnb25wcm9ncmVzcycsXG4gICAgb25SYXRlQ2hhbmdlOiAnb25yYXRlY2hhbmdlJyxcbiAgICBvblJlcGVhdDogJ29ucmVwZWF0JyxcbiAgICBvblJlc2V0OiAnb25yZXNldCcsXG4gICAgb25SZXNpemU6ICdvbnJlc2l6ZScsXG4gICAgb25TY3JvbGw6ICdvbnNjcm9sbCcsXG4gICAgb25TZWVrZWQ6ICdvbnNlZWtlZCcsXG4gICAgb25TZWVraW5nOiAnb25zZWVraW5nJyxcbiAgICBvblNlbGVjdDogJ29uc2VsZWN0JyxcbiAgICBvblNob3c6ICdvbnNob3cnLFxuICAgIG9uU3RhbGxlZDogJ29uc3RhbGxlZCcsXG4gICAgb25TdG9yYWdlOiAnb25zdG9yYWdlJyxcbiAgICBvblN1Ym1pdDogJ29uc3VibWl0JyxcbiAgICBvblN1c3BlbmQ6ICdvbnN1c3BlbmQnLFxuICAgIG9uVGltZVVwZGF0ZTogJ29udGltZXVwZGF0ZScsXG4gICAgb25Ub2dnbGU6ICdvbnRvZ2dsZScsXG4gICAgb25VbmxvYWQ6ICdvbnVubG9hZCcsXG4gICAgb25Wb2x1bWVDaGFuZ2U6ICdvbnZvbHVtZWNoYW5nZScsXG4gICAgb25XYWl0aW5nOiAnb253YWl0aW5nJyxcbiAgICBvblpvb206ICdvbnpvb20nLFxuICAgIG92ZXJsaW5lUG9zaXRpb246ICdvdmVybGluZS1wb3NpdGlvbicsXG4gICAgb3ZlcmxpbmVUaGlja25lc3M6ICdvdmVybGluZS10aGlja25lc3MnLFxuICAgIHBhaW50T3JkZXI6ICdwYWludC1vcmRlcicsXG4gICAgcGFub3NlMTogJ3Bhbm9zZS0xJyxcbiAgICBwb2ludGVyRXZlbnRzOiAncG9pbnRlci1ldmVudHMnLFxuICAgIHJlZmVycmVyUG9saWN5OiAncmVmZXJyZXJwb2xpY3knLFxuICAgIHJlbmRlcmluZ0ludGVudDogJ3JlbmRlcmluZy1pbnRlbnQnLFxuICAgIHNoYXBlUmVuZGVyaW5nOiAnc2hhcGUtcmVuZGVyaW5nJyxcbiAgICBzdG9wQ29sb3I6ICdzdG9wLWNvbG9yJyxcbiAgICBzdG9wT3BhY2l0eTogJ3N0b3Atb3BhY2l0eScsXG4gICAgc3RyaWtldGhyb3VnaFBvc2l0aW9uOiAnc3RyaWtldGhyb3VnaC1wb3NpdGlvbicsXG4gICAgc3RyaWtldGhyb3VnaFRoaWNrbmVzczogJ3N0cmlrZXRocm91Z2gtdGhpY2tuZXNzJyxcbiAgICBzdHJva2VEYXNoQXJyYXk6ICdzdHJva2UtZGFzaGFycmF5JyxcbiAgICBzdHJva2VEYXNoT2Zmc2V0OiAnc3Ryb2tlLWRhc2hvZmZzZXQnLFxuICAgIHN0cm9rZUxpbmVDYXA6ICdzdHJva2UtbGluZWNhcCcsXG4gICAgc3Ryb2tlTGluZUpvaW46ICdzdHJva2UtbGluZWpvaW4nLFxuICAgIHN0cm9rZU1pdGVyTGltaXQ6ICdzdHJva2UtbWl0ZXJsaW1pdCcsXG4gICAgc3Ryb2tlT3BhY2l0eTogJ3N0cm9rZS1vcGFjaXR5JyxcbiAgICBzdHJva2VXaWR0aDogJ3N0cm9rZS13aWR0aCcsXG4gICAgdGFiSW5kZXg6ICd0YWJpbmRleCcsXG4gICAgdGV4dEFuY2hvcjogJ3RleHQtYW5jaG9yJyxcbiAgICB0ZXh0RGVjb3JhdGlvbjogJ3RleHQtZGVjb3JhdGlvbicsXG4gICAgdGV4dFJlbmRlcmluZzogJ3RleHQtcmVuZGVyaW5nJyxcbiAgICB0cmFuc2Zvcm1PcmlnaW46ICd0cmFuc2Zvcm0tb3JpZ2luJyxcbiAgICB0eXBlT2Y6ICd0eXBlb2YnLFxuICAgIHVuZGVybGluZVBvc2l0aW9uOiAndW5kZXJsaW5lLXBvc2l0aW9uJyxcbiAgICB1bmRlcmxpbmVUaGlja25lc3M6ICd1bmRlcmxpbmUtdGhpY2tuZXNzJyxcbiAgICB1bmljb2RlQmlkaTogJ3VuaWNvZGUtYmlkaScsXG4gICAgdW5pY29kZVJhbmdlOiAndW5pY29kZS1yYW5nZScsXG4gICAgdW5pdHNQZXJFbTogJ3VuaXRzLXBlci1lbScsXG4gICAgdkFscGhhYmV0aWM6ICd2LWFscGhhYmV0aWMnLFxuICAgIHZIYW5naW5nOiAndi1oYW5naW5nJyxcbiAgICB2SWRlb2dyYXBoaWM6ICd2LWlkZW9ncmFwaGljJyxcbiAgICB2TWF0aGVtYXRpY2FsOiAndi1tYXRoZW1hdGljYWwnLFxuICAgIHZlY3RvckVmZmVjdDogJ3ZlY3Rvci1lZmZlY3QnLFxuICAgIHZlcnRBZHZZOiAndmVydC1hZHYteScsXG4gICAgdmVydE9yaWdpblg6ICd2ZXJ0LW9yaWdpbi14JyxcbiAgICB2ZXJ0T3JpZ2luWTogJ3ZlcnQtb3JpZ2luLXknLFxuICAgIHdvcmRTcGFjaW5nOiAnd29yZC1zcGFjaW5nJyxcbiAgICB3cml0aW5nTW9kZTogJ3dyaXRpbmctbW9kZScsXG4gICAgeEhlaWdodDogJ3gtaGVpZ2h0JyxcbiAgICAvLyBUaGVzZSB3ZXJlIGNhbWVsY2FzZWQgaW4gVGlueS4gTm93IGxvd2VyY2FzZWQgaW4gU1ZHIDJcbiAgICBwbGF5YmFja09yZGVyOiAncGxheWJhY2tvcmRlcicsXG4gICAgdGltZWxpbmVCZWdpbjogJ3RpbWVsaW5lYmVnaW4nXG4gIH0sXG4gIHRyYW5zZm9ybTogY2FzZVNlbnNpdGl2ZVRyYW5zZm9ybSxcbiAgcHJvcGVydGllczoge1xuICAgIGFib3V0OiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgYWNjZW50SGVpZ2h0OiBudW1iZXIsXG4gICAgYWNjdW11bGF0ZTogbnVsbCxcbiAgICBhZGRpdGl2ZTogbnVsbCxcbiAgICBhbGlnbm1lbnRCYXNlbGluZTogbnVsbCxcbiAgICBhbHBoYWJldGljOiBudW1iZXIsXG4gICAgYW1wbGl0dWRlOiBudW1iZXIsXG4gICAgYXJhYmljRm9ybTogbnVsbCxcbiAgICBhc2NlbnQ6IG51bWJlcixcbiAgICBhdHRyaWJ1dGVOYW1lOiBudWxsLFxuICAgIGF0dHJpYnV0ZVR5cGU6IG51bGwsXG4gICAgYXppbXV0aDogbnVtYmVyLFxuICAgIGJhbmR3aWR0aDogbnVsbCxcbiAgICBiYXNlbGluZVNoaWZ0OiBudWxsLFxuICAgIGJhc2VGcmVxdWVuY3k6IG51bGwsXG4gICAgYmFzZVByb2ZpbGU6IG51bGwsXG4gICAgYmJveDogbnVsbCxcbiAgICBiZWdpbjogbnVsbCxcbiAgICBiaWFzOiBudW1iZXIsXG4gICAgYnk6IG51bGwsXG4gICAgY2FsY01vZGU6IG51bGwsXG4gICAgY2FwSGVpZ2h0OiBudW1iZXIsXG4gICAgY2xhc3NOYW1lOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBjbGlwOiBudWxsLFxuICAgIGNsaXBQYXRoOiBudWxsLFxuICAgIGNsaXBQYXRoVW5pdHM6IG51bGwsXG4gICAgY2xpcFJ1bGU6IG51bGwsXG4gICAgY29sb3I6IG51bGwsXG4gICAgY29sb3JJbnRlcnBvbGF0aW9uOiBudWxsLFxuICAgIGNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnM6IG51bGwsXG4gICAgY29sb3JQcm9maWxlOiBudWxsLFxuICAgIGNvbG9yUmVuZGVyaW5nOiBudWxsLFxuICAgIGNvbnRlbnQ6IG51bGwsXG4gICAgY29udGVudFNjcmlwdFR5cGU6IG51bGwsXG4gICAgY29udGVudFN0eWxlVHlwZTogbnVsbCxcbiAgICBjcm9zc09yaWdpbjogbnVsbCxcbiAgICBjdXJzb3I6IG51bGwsXG4gICAgY3g6IG51bGwsXG4gICAgY3k6IG51bGwsXG4gICAgZDogbnVsbCxcbiAgICBkYXRhVHlwZTogbnVsbCxcbiAgICBkZWZhdWx0QWN0aW9uOiBudWxsLFxuICAgIGRlc2NlbnQ6IG51bWJlcixcbiAgICBkaWZmdXNlQ29uc3RhbnQ6IG51bWJlcixcbiAgICBkaXJlY3Rpb246IG51bGwsXG4gICAgZGlzcGxheTogbnVsbCxcbiAgICBkdXI6IG51bGwsXG4gICAgZGl2aXNvcjogbnVtYmVyLFxuICAgIGRvbWluYW50QmFzZWxpbmU6IG51bGwsXG4gICAgZG93bmxvYWQ6IGJvb2xlYW4sXG4gICAgZHg6IG51bGwsXG4gICAgZHk6IG51bGwsXG4gICAgZWRnZU1vZGU6IG51bGwsXG4gICAgZWRpdGFibGU6IG51bGwsXG4gICAgZWxldmF0aW9uOiBudW1iZXIsXG4gICAgZW5hYmxlQmFja2dyb3VuZDogbnVsbCxcbiAgICBlbmQ6IG51bGwsXG4gICAgZXZlbnQ6IG51bGwsXG4gICAgZXhwb25lbnQ6IG51bWJlcixcbiAgICBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOiBudWxsLFxuICAgIGZpbGw6IG51bGwsXG4gICAgZmlsbE9wYWNpdHk6IG51bWJlcixcbiAgICBmaWxsUnVsZTogbnVsbCxcbiAgICBmaWx0ZXI6IG51bGwsXG4gICAgZmlsdGVyUmVzOiBudWxsLFxuICAgIGZpbHRlclVuaXRzOiBudWxsLFxuICAgIGZsb29kQ29sb3I6IG51bGwsXG4gICAgZmxvb2RPcGFjaXR5OiBudWxsLFxuICAgIGZvY3VzYWJsZTogbnVsbCxcbiAgICBmb2N1c0hpZ2hsaWdodDogbnVsbCxcbiAgICBmb250RmFtaWx5OiBudWxsLFxuICAgIGZvbnRTaXplOiBudWxsLFxuICAgIGZvbnRTaXplQWRqdXN0OiBudWxsLFxuICAgIGZvbnRTdHJldGNoOiBudWxsLFxuICAgIGZvbnRTdHlsZTogbnVsbCxcbiAgICBmb250VmFyaWFudDogbnVsbCxcbiAgICBmb250V2VpZ2h0OiBudWxsLFxuICAgIGZvcm1hdDogbnVsbCxcbiAgICBmcjogbnVsbCxcbiAgICBmcm9tOiBudWxsLFxuICAgIGZ4OiBudWxsLFxuICAgIGZ5OiBudWxsLFxuICAgIGcxOiBjb21tYVNlcGFyYXRlZCxcbiAgICBnMjogY29tbWFTZXBhcmF0ZWQsXG4gICAgZ2x5cGhOYW1lOiBjb21tYVNlcGFyYXRlZCxcbiAgICBnbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbDogbnVsbCxcbiAgICBnbHlwaE9yaWVudGF0aW9uVmVydGljYWw6IG51bGwsXG4gICAgZ2x5cGhSZWY6IG51bGwsXG4gICAgZ3JhZGllbnRUcmFuc2Zvcm06IG51bGwsXG4gICAgZ3JhZGllbnRVbml0czogbnVsbCxcbiAgICBoYW5kbGVyOiBudWxsLFxuICAgIGhhbmdpbmc6IG51bWJlcixcbiAgICBoYXRjaENvbnRlbnRVbml0czogbnVsbCxcbiAgICBoYXRjaFVuaXRzOiBudWxsLFxuICAgIGhlaWdodDogbnVsbCxcbiAgICBocmVmOiBudWxsLFxuICAgIGhyZWZMYW5nOiBudWxsLFxuICAgIGhvcml6QWR2WDogbnVtYmVyLFxuICAgIGhvcml6T3JpZ2luWDogbnVtYmVyLFxuICAgIGhvcml6T3JpZ2luWTogbnVtYmVyLFxuICAgIGlkOiBudWxsLFxuICAgIGlkZW9ncmFwaGljOiBudW1iZXIsXG4gICAgaW1hZ2VSZW5kZXJpbmc6IG51bGwsXG4gICAgaW5pdGlhbFZpc2liaWxpdHk6IG51bGwsXG4gICAgaW46IG51bGwsXG4gICAgaW4yOiBudWxsLFxuICAgIGludGVyY2VwdDogbnVtYmVyLFxuICAgIGs6IG51bWJlcixcbiAgICBrMTogbnVtYmVyLFxuICAgIGsyOiBudW1iZXIsXG4gICAgazM6IG51bWJlcixcbiAgICBrNDogbnVtYmVyLFxuICAgIGtlcm5lbE1hdHJpeDogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIGtlcm5lbFVuaXRMZW5ndGg6IG51bGwsXG4gICAga2V5UG9pbnRzOiBudWxsLCAvLyBTRU1JX0NPTE9OX1NFUEFSQVRFRFxuICAgIGtleVNwbGluZXM6IG51bGwsIC8vIFNFTUlfQ09MT05fU0VQQVJBVEVEXG4gICAga2V5VGltZXM6IG51bGwsIC8vIFNFTUlfQ09MT05fU0VQQVJBVEVEXG4gICAga2VybmluZzogbnVsbCxcbiAgICBsYW5nOiBudWxsLFxuICAgIGxlbmd0aEFkanVzdDogbnVsbCxcbiAgICBsZXR0ZXJTcGFjaW5nOiBudWxsLFxuICAgIGxpZ2h0aW5nQ29sb3I6IG51bGwsXG4gICAgbGltaXRpbmdDb25lQW5nbGU6IG51bWJlcixcbiAgICBsb2NhbDogbnVsbCxcbiAgICBtYXJrZXJFbmQ6IG51bGwsXG4gICAgbWFya2VyTWlkOiBudWxsLFxuICAgIG1hcmtlclN0YXJ0OiBudWxsLFxuICAgIG1hcmtlckhlaWdodDogbnVsbCxcbiAgICBtYXJrZXJVbml0czogbnVsbCxcbiAgICBtYXJrZXJXaWR0aDogbnVsbCxcbiAgICBtYXNrOiBudWxsLFxuICAgIG1hc2tDb250ZW50VW5pdHM6IG51bGwsXG4gICAgbWFza1VuaXRzOiBudWxsLFxuICAgIG1hdGhlbWF0aWNhbDogbnVsbCxcbiAgICBtYXg6IG51bGwsXG4gICAgbWVkaWE6IG51bGwsXG4gICAgbWVkaWFDaGFyYWN0ZXJFbmNvZGluZzogbnVsbCxcbiAgICBtZWRpYUNvbnRlbnRFbmNvZGluZ3M6IG51bGwsXG4gICAgbWVkaWFTaXplOiBudW1iZXIsXG4gICAgbWVkaWFUaW1lOiBudWxsLFxuICAgIG1ldGhvZDogbnVsbCxcbiAgICBtaW46IG51bGwsXG4gICAgbW9kZTogbnVsbCxcbiAgICBuYW1lOiBudWxsLFxuICAgIG5hdkRvd246IG51bGwsXG4gICAgbmF2RG93bkxlZnQ6IG51bGwsXG4gICAgbmF2RG93blJpZ2h0OiBudWxsLFxuICAgIG5hdkxlZnQ6IG51bGwsXG4gICAgbmF2TmV4dDogbnVsbCxcbiAgICBuYXZQcmV2OiBudWxsLFxuICAgIG5hdlJpZ2h0OiBudWxsLFxuICAgIG5hdlVwOiBudWxsLFxuICAgIG5hdlVwTGVmdDogbnVsbCxcbiAgICBuYXZVcFJpZ2h0OiBudWxsLFxuICAgIG51bU9jdGF2ZXM6IG51bGwsXG4gICAgb2JzZXJ2ZXI6IG51bGwsXG4gICAgb2Zmc2V0OiBudWxsLFxuICAgIG9uQWJvcnQ6IG51bGwsXG4gICAgb25BY3RpdmF0ZTogbnVsbCxcbiAgICBvbkFmdGVyUHJpbnQ6IG51bGwsXG4gICAgb25CZWZvcmVQcmludDogbnVsbCxcbiAgICBvbkJlZ2luOiBudWxsLFxuICAgIG9uQ2FuY2VsOiBudWxsLFxuICAgIG9uQ2FuUGxheTogbnVsbCxcbiAgICBvbkNhblBsYXlUaHJvdWdoOiBudWxsLFxuICAgIG9uQ2hhbmdlOiBudWxsLFxuICAgIG9uQ2xpY2s6IG51bGwsXG4gICAgb25DbG9zZTogbnVsbCxcbiAgICBvbkNvcHk6IG51bGwsXG4gICAgb25DdWVDaGFuZ2U6IG51bGwsXG4gICAgb25DdXQ6IG51bGwsXG4gICAgb25EYmxDbGljazogbnVsbCxcbiAgICBvbkRyYWc6IG51bGwsXG4gICAgb25EcmFnRW5kOiBudWxsLFxuICAgIG9uRHJhZ0VudGVyOiBudWxsLFxuICAgIG9uRHJhZ0V4aXQ6IG51bGwsXG4gICAgb25EcmFnTGVhdmU6IG51bGwsXG4gICAgb25EcmFnT3ZlcjogbnVsbCxcbiAgICBvbkRyYWdTdGFydDogbnVsbCxcbiAgICBvbkRyb3A6IG51bGwsXG4gICAgb25EdXJhdGlvbkNoYW5nZTogbnVsbCxcbiAgICBvbkVtcHRpZWQ6IG51bGwsXG4gICAgb25FbmQ6IG51bGwsXG4gICAgb25FbmRlZDogbnVsbCxcbiAgICBvbkVycm9yOiBudWxsLFxuICAgIG9uRm9jdXM6IG51bGwsXG4gICAgb25Gb2N1c0luOiBudWxsLFxuICAgIG9uRm9jdXNPdXQ6IG51bGwsXG4gICAgb25IYXNoQ2hhbmdlOiBudWxsLFxuICAgIG9uSW5wdXQ6IG51bGwsXG4gICAgb25JbnZhbGlkOiBudWxsLFxuICAgIG9uS2V5RG93bjogbnVsbCxcbiAgICBvbktleVByZXNzOiBudWxsLFxuICAgIG9uS2V5VXA6IG51bGwsXG4gICAgb25Mb2FkOiBudWxsLFxuICAgIG9uTG9hZGVkRGF0YTogbnVsbCxcbiAgICBvbkxvYWRlZE1ldGFkYXRhOiBudWxsLFxuICAgIG9uTG9hZFN0YXJ0OiBudWxsLFxuICAgIG9uTWVzc2FnZTogbnVsbCxcbiAgICBvbk1vdXNlRG93bjogbnVsbCxcbiAgICBvbk1vdXNlRW50ZXI6IG51bGwsXG4gICAgb25Nb3VzZUxlYXZlOiBudWxsLFxuICAgIG9uTW91c2VNb3ZlOiBudWxsLFxuICAgIG9uTW91c2VPdXQ6IG51bGwsXG4gICAgb25Nb3VzZU92ZXI6IG51bGwsXG4gICAgb25Nb3VzZVVwOiBudWxsLFxuICAgIG9uTW91c2VXaGVlbDogbnVsbCxcbiAgICBvbk9mZmxpbmU6IG51bGwsXG4gICAgb25PbmxpbmU6IG51bGwsXG4gICAgb25QYWdlSGlkZTogbnVsbCxcbiAgICBvblBhZ2VTaG93OiBudWxsLFxuICAgIG9uUGFzdGU6IG51bGwsXG4gICAgb25QYXVzZTogbnVsbCxcbiAgICBvblBsYXk6IG51bGwsXG4gICAgb25QbGF5aW5nOiBudWxsLFxuICAgIG9uUG9wU3RhdGU6IG51bGwsXG4gICAgb25Qcm9ncmVzczogbnVsbCxcbiAgICBvblJhdGVDaGFuZ2U6IG51bGwsXG4gICAgb25SZXBlYXQ6IG51bGwsXG4gICAgb25SZXNldDogbnVsbCxcbiAgICBvblJlc2l6ZTogbnVsbCxcbiAgICBvblNjcm9sbDogbnVsbCxcbiAgICBvblNlZWtlZDogbnVsbCxcbiAgICBvblNlZWtpbmc6IG51bGwsXG4gICAgb25TZWxlY3Q6IG51bGwsXG4gICAgb25TaG93OiBudWxsLFxuICAgIG9uU3RhbGxlZDogbnVsbCxcbiAgICBvblN0b3JhZ2U6IG51bGwsXG4gICAgb25TdWJtaXQ6IG51bGwsXG4gICAgb25TdXNwZW5kOiBudWxsLFxuICAgIG9uVGltZVVwZGF0ZTogbnVsbCxcbiAgICBvblRvZ2dsZTogbnVsbCxcbiAgICBvblVubG9hZDogbnVsbCxcbiAgICBvblZvbHVtZUNoYW5nZTogbnVsbCxcbiAgICBvbldhaXRpbmc6IG51bGwsXG4gICAgb25ab29tOiBudWxsLFxuICAgIG9wYWNpdHk6IG51bGwsXG4gICAgb3BlcmF0b3I6IG51bGwsXG4gICAgb3JkZXI6IG51bGwsXG4gICAgb3JpZW50OiBudWxsLFxuICAgIG9yaWVudGF0aW9uOiBudWxsLFxuICAgIG9yaWdpbjogbnVsbCxcbiAgICBvdmVyZmxvdzogbnVsbCxcbiAgICBvdmVybGF5OiBudWxsLFxuICAgIG92ZXJsaW5lUG9zaXRpb246IG51bWJlcixcbiAgICBvdmVybGluZVRoaWNrbmVzczogbnVtYmVyLFxuICAgIHBhaW50T3JkZXI6IG51bGwsXG4gICAgcGFub3NlMTogbnVsbCxcbiAgICBwYXRoOiBudWxsLFxuICAgIHBhdGhMZW5ndGg6IG51bWJlcixcbiAgICBwYXR0ZXJuQ29udGVudFVuaXRzOiBudWxsLFxuICAgIHBhdHRlcm5UcmFuc2Zvcm06IG51bGwsXG4gICAgcGF0dGVyblVuaXRzOiBudWxsLFxuICAgIHBoYXNlOiBudWxsLFxuICAgIHBpbmc6IHNwYWNlU2VwYXJhdGVkLFxuICAgIHBpdGNoOiBudWxsLFxuICAgIHBsYXliYWNrT3JkZXI6IG51bGwsXG4gICAgcG9pbnRlckV2ZW50czogbnVsbCxcbiAgICBwb2ludHM6IG51bGwsXG4gICAgcG9pbnRzQXRYOiBudW1iZXIsXG4gICAgcG9pbnRzQXRZOiBudW1iZXIsXG4gICAgcG9pbnRzQXRaOiBudW1iZXIsXG4gICAgcHJlc2VydmVBbHBoYTogbnVsbCxcbiAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvOiBudWxsLFxuICAgIHByaW1pdGl2ZVVuaXRzOiBudWxsLFxuICAgIHByb3BhZ2F0ZTogbnVsbCxcbiAgICBwcm9wZXJ0eTogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIHI6IG51bGwsXG4gICAgcmFkaXVzOiBudWxsLFxuICAgIHJlZmVycmVyUG9saWN5OiBudWxsLFxuICAgIHJlZlg6IG51bGwsXG4gICAgcmVmWTogbnVsbCxcbiAgICByZWw6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICByZXY6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICByZW5kZXJpbmdJbnRlbnQ6IG51bGwsXG4gICAgcmVwZWF0Q291bnQ6IG51bGwsXG4gICAgcmVwZWF0RHVyOiBudWxsLFxuICAgIHJlcXVpcmVkRXh0ZW5zaW9uczogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIHJlcXVpcmVkRmVhdHVyZXM6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICByZXF1aXJlZEZvbnRzOiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgcmVxdWlyZWRGb3JtYXRzOiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgcmVzb3VyY2U6IG51bGwsXG4gICAgcmVzdGFydDogbnVsbCxcbiAgICByZXN1bHQ6IG51bGwsXG4gICAgcm90YXRlOiBudWxsLFxuICAgIHJ4OiBudWxsLFxuICAgIHJ5OiBudWxsLFxuICAgIHNjYWxlOiBudWxsLFxuICAgIHNlZWQ6IG51bGwsXG4gICAgc2hhcGVSZW5kZXJpbmc6IG51bGwsXG4gICAgc2lkZTogbnVsbCxcbiAgICBzbG9wZTogbnVsbCxcbiAgICBzbmFwc2hvdFRpbWU6IG51bGwsXG4gICAgc3BlY3VsYXJDb25zdGFudDogbnVtYmVyLFxuICAgIHNwZWN1bGFyRXhwb25lbnQ6IG51bWJlcixcbiAgICBzcHJlYWRNZXRob2Q6IG51bGwsXG4gICAgc3BhY2luZzogbnVsbCxcbiAgICBzdGFydE9mZnNldDogbnVsbCxcbiAgICBzdGREZXZpYXRpb246IG51bGwsXG4gICAgc3RlbWg6IG51bGwsXG4gICAgc3RlbXY6IG51bGwsXG4gICAgc3RpdGNoVGlsZXM6IG51bGwsXG4gICAgc3RvcENvbG9yOiBudWxsLFxuICAgIHN0b3BPcGFjaXR5OiBudWxsLFxuICAgIHN0cmlrZXRocm91Z2hQb3NpdGlvbjogbnVtYmVyLFxuICAgIHN0cmlrZXRocm91Z2hUaGlja25lc3M6IG51bWJlcixcbiAgICBzdHJpbmc6IG51bGwsXG4gICAgc3Ryb2tlOiBudWxsLFxuICAgIHN0cm9rZURhc2hBcnJheTogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIHN0cm9rZURhc2hPZmZzZXQ6IG51bGwsXG4gICAgc3Ryb2tlTGluZUNhcDogbnVsbCxcbiAgICBzdHJva2VMaW5lSm9pbjogbnVsbCxcbiAgICBzdHJva2VNaXRlckxpbWl0OiBudW1iZXIsXG4gICAgc3Ryb2tlT3BhY2l0eTogbnVtYmVyLFxuICAgIHN0cm9rZVdpZHRoOiBudWxsLFxuICAgIHN0eWxlOiBudWxsLFxuICAgIHN1cmZhY2VTY2FsZTogbnVtYmVyLFxuICAgIHN5bmNCZWhhdmlvcjogbnVsbCxcbiAgICBzeW5jQmVoYXZpb3JEZWZhdWx0OiBudWxsLFxuICAgIHN5bmNNYXN0ZXI6IG51bGwsXG4gICAgc3luY1RvbGVyYW5jZTogbnVsbCxcbiAgICBzeW5jVG9sZXJhbmNlRGVmYXVsdDogbnVsbCxcbiAgICBzeXN0ZW1MYW5ndWFnZTogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIHRhYkluZGV4OiBudW1iZXIsXG4gICAgdGFibGVWYWx1ZXM6IG51bGwsXG4gICAgdGFyZ2V0OiBudWxsLFxuICAgIHRhcmdldFg6IG51bWJlcixcbiAgICB0YXJnZXRZOiBudW1iZXIsXG4gICAgdGV4dEFuY2hvcjogbnVsbCxcbiAgICB0ZXh0RGVjb3JhdGlvbjogbnVsbCxcbiAgICB0ZXh0UmVuZGVyaW5nOiBudWxsLFxuICAgIHRleHRMZW5ndGg6IG51bGwsXG4gICAgdGltZWxpbmVCZWdpbjogbnVsbCxcbiAgICB0aXRsZTogbnVsbCxcbiAgICB0cmFuc2Zvcm1CZWhhdmlvcjogbnVsbCxcbiAgICB0eXBlOiBudWxsLFxuICAgIHR5cGVPZjogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIHRvOiBudWxsLFxuICAgIHRyYW5zZm9ybTogbnVsbCxcbiAgICB0cmFuc2Zvcm1PcmlnaW46IG51bGwsXG4gICAgdTE6IG51bGwsXG4gICAgdTI6IG51bGwsXG4gICAgdW5kZXJsaW5lUG9zaXRpb246IG51bWJlcixcbiAgICB1bmRlcmxpbmVUaGlja25lc3M6IG51bWJlcixcbiAgICB1bmljb2RlOiBudWxsLFxuICAgIHVuaWNvZGVCaWRpOiBudWxsLFxuICAgIHVuaWNvZGVSYW5nZTogbnVsbCxcbiAgICB1bml0c1BlckVtOiBudW1iZXIsXG4gICAgdmFsdWVzOiBudWxsLFxuICAgIHZBbHBoYWJldGljOiBudW1iZXIsXG4gICAgdk1hdGhlbWF0aWNhbDogbnVtYmVyLFxuICAgIHZlY3RvckVmZmVjdDogbnVsbCxcbiAgICB2SGFuZ2luZzogbnVtYmVyLFxuICAgIHZJZGVvZ3JhcGhpYzogbnVtYmVyLFxuICAgIHZlcnNpb246IG51bGwsXG4gICAgdmVydEFkdlk6IG51bWJlcixcbiAgICB2ZXJ0T3JpZ2luWDogbnVtYmVyLFxuICAgIHZlcnRPcmlnaW5ZOiBudW1iZXIsXG4gICAgdmlld0JveDogbnVsbCxcbiAgICB2aWV3VGFyZ2V0OiBudWxsLFxuICAgIHZpc2liaWxpdHk6IG51bGwsXG4gICAgd2lkdGg6IG51bGwsXG4gICAgd2lkdGhzOiBudWxsLFxuICAgIHdvcmRTcGFjaW5nOiBudWxsLFxuICAgIHdyaXRpbmdNb2RlOiBudWxsLFxuICAgIHg6IG51bGwsXG4gICAgeDE6IG51bGwsXG4gICAgeDI6IG51bGwsXG4gICAgeENoYW5uZWxTZWxlY3RvcjogbnVsbCxcbiAgICB4SGVpZ2h0OiBudW1iZXIsXG4gICAgeTogbnVsbCxcbiAgICB5MTogbnVsbCxcbiAgICB5MjogbnVsbCxcbiAgICB5Q2hhbm5lbFNlbGVjdG9yOiBudWxsLFxuICAgIHo6IG51bGwsXG4gICAgem9vbUFuZFBhbjogbnVsbFxuICB9XG59KVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi91dGlsL3NjaGVtYS5qcycpLlNjaGVtYX0gU2NoZW1hXG4gKi9cblxuaW1wb3J0IHtub3JtYWxpemV9IGZyb20gJy4vbm9ybWFsaXplLmpzJ1xuaW1wb3J0IHtEZWZpbmVkSW5mb30gZnJvbSAnLi91dGlsL2RlZmluZWQtaW5mby5qcydcbmltcG9ydCB7SW5mb30gZnJvbSAnLi91dGlsL2luZm8uanMnXG5cbmNvbnN0IHZhbGlkID0gL15kYXRhWy1cXHcuOl0rJC9pXG5jb25zdCBkYXNoID0gLy1bYS16XS9nXG5jb25zdCBjYXAgPSAvW0EtWl0vZ1xuXG4vKipcbiAqIEBwYXJhbSB7U2NoZW1hfSBzY2hlbWFcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHJldHVybnMge0luZm99XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kKHNjaGVtYSwgdmFsdWUpIHtcbiAgY29uc3Qgbm9ybWFsID0gbm9ybWFsaXplKHZhbHVlKVxuICBsZXQgcHJvcCA9IHZhbHVlXG4gIGxldCBUeXBlID0gSW5mb1xuXG4gIGlmIChub3JtYWwgaW4gc2NoZW1hLm5vcm1hbCkge1xuICAgIHJldHVybiBzY2hlbWEucHJvcGVydHlbc2NoZW1hLm5vcm1hbFtub3JtYWxdXVxuICB9XG5cbiAgaWYgKG5vcm1hbC5sZW5ndGggPiA0ICYmIG5vcm1hbC5zbGljZSgwLCA0KSA9PT0gJ2RhdGEnICYmIHZhbGlkLnRlc3QodmFsdWUpKSB7XG4gICAgLy8gQXR0cmlidXRlIG9yIHByb3BlcnR5LlxuICAgIGlmICh2YWx1ZS5jaGFyQXQoNCkgPT09ICctJykge1xuICAgICAgLy8gVHVybiBpdCBpbnRvIGEgcHJvcGVydHkuXG4gICAgICBjb25zdCByZXN0ID0gdmFsdWUuc2xpY2UoNSkucmVwbGFjZShkYXNoLCBjYW1lbGNhc2UpXG4gICAgICBwcm9wID0gJ2RhdGEnICsgcmVzdC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHJlc3Quc2xpY2UoMSlcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVHVybiBpdCBpbnRvIGFuIGF0dHJpYnV0ZS5cbiAgICAgIGNvbnN0IHJlc3QgPSB2YWx1ZS5zbGljZSg0KVxuXG4gICAgICBpZiAoIWRhc2gudGVzdChyZXN0KSkge1xuICAgICAgICBsZXQgZGFzaGVzID0gcmVzdC5yZXBsYWNlKGNhcCwga2ViYWIpXG5cbiAgICAgICAgaWYgKGRhc2hlcy5jaGFyQXQoMCkgIT09ICctJykge1xuICAgICAgICAgIGRhc2hlcyA9ICctJyArIGRhc2hlc1xuICAgICAgICB9XG5cbiAgICAgICAgdmFsdWUgPSAnZGF0YScgKyBkYXNoZXNcbiAgICAgIH1cbiAgICB9XG5cbiAgICBUeXBlID0gRGVmaW5lZEluZm9cbiAgfVxuXG4gIHJldHVybiBuZXcgVHlwZShwcm9wLCB2YWx1ZSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gJDBcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGtlYmFiKCQwKSB7XG4gIHJldHVybiAnLScgKyAkMC50b0xvd2VyQ2FzZSgpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9ICQwXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBjYW1lbGNhc2UoJDApIHtcbiAgcmV0dXJuICQwLmNoYXJBdCgxKS50b1VwcGVyQ2FzZSgpXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2xpYi91dGlsL2luZm8uanMnKS5JbmZvfSBJbmZvXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2xpYi91dGlsL3NjaGVtYS5qcycpLlNjaGVtYX0gU2NoZW1hXG4gKi9cblxuaW1wb3J0IHttZXJnZX0gZnJvbSAnLi9saWIvdXRpbC9tZXJnZS5qcydcbmltcG9ydCB7eGxpbmt9IGZyb20gJy4vbGliL3hsaW5rLmpzJ1xuaW1wb3J0IHt4bWx9IGZyb20gJy4vbGliL3htbC5qcydcbmltcG9ydCB7eG1sbnN9IGZyb20gJy4vbGliL3htbG5zLmpzJ1xuaW1wb3J0IHthcmlhfSBmcm9tICcuL2xpYi9hcmlhLmpzJ1xuaW1wb3J0IHtodG1sIGFzIGh0bWxCYXNlfSBmcm9tICcuL2xpYi9odG1sLmpzJ1xuaW1wb3J0IHtzdmcgYXMgc3ZnQmFzZX0gZnJvbSAnLi9saWIvc3ZnLmpzJ1xuXG5leHBvcnQge2ZpbmR9IGZyb20gJy4vbGliL2ZpbmQuanMnXG5leHBvcnQge2hhc3RUb1JlYWN0fSBmcm9tICcuL2xpYi9oYXN0LXRvLXJlYWN0LmpzJ1xuZXhwb3J0IHtub3JtYWxpemV9IGZyb20gJy4vbGliL25vcm1hbGl6ZS5qcydcbmV4cG9ydCBjb25zdCBodG1sID0gbWVyZ2UoW3htbCwgeGxpbmssIHhtbG5zLCBhcmlhLCBodG1sQmFzZV0sICdodG1sJylcbmV4cG9ydCBjb25zdCBzdmcgPSBtZXJnZShbeG1sLCB4bGluaywgeG1sbnMsIGFyaWEsIHN2Z0Jhc2VdLCAnc3ZnJylcbiIsICIvKipcbiAqIEB0eXBlZGVmIE9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbiBmb3IgYHN0cmluZ2lmeWAuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFtwYWRMZWZ0PXRydWVdXG4gKiAgIFdoZXRoZXIgdG8gcGFkIGEgc3BhY2UgYmVmb3JlIGEgdG9rZW4uXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFtwYWRSaWdodD1mYWxzZV1cbiAqICAgV2hldGhlciB0byBwYWQgYSBzcGFjZSBhZnRlciBhIHRva2VuLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge09wdGlvbnN9IFN0cmluZ2lmeU9wdGlvbnNcbiAqICAgUGxlYXNlIHVzZSBgU3RyaW5naWZ5T3B0aW9uc2AgaW5zdGVhZC5cbiAqL1xuXG4vKipcbiAqIFBhcnNlIGNvbW1hLXNlcGFyYXRlZCB0b2tlbnMgdG8gYW4gYXJyYXkuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiAgIENvbW1hLXNlcGFyYXRlZCB0b2tlbnMuXG4gKiBAcmV0dXJucyB7QXJyYXk8c3RyaW5nPn1cbiAqICAgTGlzdCBvZiB0b2tlbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZSh2YWx1ZSkge1xuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IHRva2VucyA9IFtdXG4gIGNvbnN0IGlucHV0ID0gU3RyaW5nKHZhbHVlIHx8ICcnKVxuICBsZXQgaW5kZXggPSBpbnB1dC5pbmRleE9mKCcsJylcbiAgbGV0IHN0YXJ0ID0gMFxuICAvKiogQHR5cGUge2Jvb2xlYW59ICovXG4gIGxldCBlbmQgPSBmYWxzZVxuXG4gIHdoaWxlICghZW5kKSB7XG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgaW5kZXggPSBpbnB1dC5sZW5ndGhcbiAgICAgIGVuZCA9IHRydWVcbiAgICB9XG5cbiAgICBjb25zdCB0b2tlbiA9IGlucHV0LnNsaWNlKHN0YXJ0LCBpbmRleCkudHJpbSgpXG5cbiAgICBpZiAodG9rZW4gfHwgIWVuZCkge1xuICAgICAgdG9rZW5zLnB1c2godG9rZW4pXG4gICAgfVxuXG4gICAgc3RhcnQgPSBpbmRleCArIDFcbiAgICBpbmRleCA9IGlucHV0LmluZGV4T2YoJywnLCBzdGFydClcbiAgfVxuXG4gIHJldHVybiB0b2tlbnNcbn1cblxuLyoqXG4gKiBTZXJpYWxpemUgYW4gYXJyYXkgb2Ygc3RyaW5ncyBvciBudW1iZXJzIHRvIGNvbW1hLXNlcGFyYXRlZCB0b2tlbnMuXG4gKlxuICogQHBhcmFtIHtBcnJheTxzdHJpbmd8bnVtYmVyPn0gdmFsdWVzXG4gKiAgIExpc3Qgb2YgdG9rZW5zLlxuICogQHBhcmFtIHtPcHRpb25zfSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbiBmb3IgYHN0cmluZ2lmeWAgKG9wdGlvbmFsKS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIENvbW1hLXNlcGFyYXRlZCB0b2tlbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnkodmFsdWVzLCBvcHRpb25zKSB7XG4gIGNvbnN0IHNldHRpbmdzID0gb3B0aW9ucyB8fCB7fVxuXG4gIC8vIEVuc3VyZSB0aGUgbGFzdCBlbXB0eSBlbnRyeSBpcyBzZWVuLlxuICBjb25zdCBpbnB1dCA9IHZhbHVlc1t2YWx1ZXMubGVuZ3RoIC0gMV0gPT09ICcnID8gWy4uLnZhbHVlcywgJyddIDogdmFsdWVzXG5cbiAgcmV0dXJuIGlucHV0XG4gICAgLmpvaW4oXG4gICAgICAoc2V0dGluZ3MucGFkUmlnaHQgPyAnICcgOiAnJykgK1xuICAgICAgICAnLCcgK1xuICAgICAgICAoc2V0dGluZ3MucGFkTGVmdCA9PT0gZmFsc2UgPyAnJyA6ICcgJylcbiAgICApXG4gICAgLnRyaW0oKVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkVsZW1lbnR9IEVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Qcm9wZXJ0aWVzfSBQcm9wZXJ0aWVzXG4gKi9cblxuLyoqXG4gKiBAdGVtcGxhdGUge3N0cmluZ30gU2ltcGxlU2VsZWN0b3JcbiAqICAgU2VsZWN0b3IgdHlwZS5cbiAqIEB0ZW1wbGF0ZSB7c3RyaW5nfSBEZWZhdWx0VGFnTmFtZVxuICogICBEZWZhdWx0IHRhZyBuYW1lLlxuICogQHR5cGVkZWYgeyhcbiAqICAgU2ltcGxlU2VsZWN0b3IgZXh0ZW5kcyAnJ1xuICogICAgID8gRGVmYXVsdFRhZ05hbWVcbiAqICAgICA6IFNpbXBsZVNlbGVjdG9yIGV4dGVuZHMgYCR7aW5mZXIgVGFnTmFtZX0uJHtpbmZlciBSZXN0fWBcbiAqICAgICA/IEV4dHJhY3RUYWdOYW1lPFRhZ05hbWUsIERlZmF1bHRUYWdOYW1lPlxuICogICAgIDogU2ltcGxlU2VsZWN0b3IgZXh0ZW5kcyBgJHtpbmZlciBUYWdOYW1lfSMke2luZmVyIFJlc3R9YFxuICogICAgID8gRXh0cmFjdFRhZ05hbWU8VGFnTmFtZSwgRGVmYXVsdFRhZ05hbWU+XG4gKiAgICAgOiBTaW1wbGVTZWxlY3RvciBleHRlbmRzIHN0cmluZ1xuICogICAgID8gU2ltcGxlU2VsZWN0b3JcbiAqICAgICA6IERlZmF1bHRUYWdOYW1lXG4gKiApfSBFeHRyYWN0VGFnTmFtZVxuICogICBFeHRyYWN0IHRhZyBuYW1lIGZyb20gYSBzaW1wbGUgc2VsZWN0b3IuXG4gKi9cblxuY29uc3Qgc2VhcmNoID0gL1sjLl0vZ1xuXG4vKipcbiAqIENyZWF0ZSBhIGhhc3QgZWxlbWVudCBmcm9tIGEgc2ltcGxlIENTUyBzZWxlY3Rvci5cbiAqXG4gKiBAdGVtcGxhdGUge3N0cmluZ30gU2VsZWN0b3JcbiAqICAgVHlwZSBvZiBzZWxlY3Rvci5cbiAqIEB0ZW1wbGF0ZSB7c3RyaW5nfSBbRGVmYXVsdFRhZ05hbWU9J2RpdiddXG4gKiAgIFR5cGUgb2YgZGVmYXVsdCB0YWcgbmFtZSAoZGVmYXVsdDogYCdkaXYnYCkuXG4gKiBAcGFyYW0ge1NlbGVjdG9yIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3NlbGVjdG9yXVxuICogICBTaW1wbGUgQ1NTIHNlbGVjdG9yIChvcHRpb25hbCkuXG4gKlxuICogICBDYW4gY29udGFpbiBhIHRhZyBuYW1lIChgZm9vYCksIGNsYXNzZXMgKGAuYmFyYCksIGFuZCBhbiBJRCAoYCNiYXpgKS5cbiAqICAgTXVsdGlwbGUgY2xhc3NlcyBhcmUgYWxsb3dlZC5cbiAqICAgVXNlcyB0aGUgbGFzdCBJRCBpZiBtdWx0aXBsZSBJRHMgYXJlIGZvdW5kLlxuICogQHBhcmFtIHtEZWZhdWx0VGFnTmFtZSB8IG51bGwgfCB1bmRlZmluZWR9IFtkZWZhdWx0VGFnTmFtZT0nZGl2J11cbiAqICAgVGFnIG5hbWUgdG8gdXNlIGlmIGBzZWxlY3RvcmAgZG9lcyBub3Qgc3BlY2lmeSBvbmUgKGRlZmF1bHQ6IGAnZGl2J2ApLlxuICogQHJldHVybnMge0VsZW1lbnQgJiB7dGFnTmFtZTogRXh0cmFjdFRhZ05hbWU8U2VsZWN0b3IsIERlZmF1bHRUYWdOYW1lPn19XG4gKiAgIEJ1aWx0IGVsZW1lbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVNlbGVjdG9yKHNlbGVjdG9yLCBkZWZhdWx0VGFnTmFtZSkge1xuICBjb25zdCB2YWx1ZSA9IHNlbGVjdG9yIHx8ICcnXG4gIC8qKiBAdHlwZSB7UHJvcGVydGllc30gKi9cbiAgY29uc3QgcHJvcHMgPSB7fVxuICBsZXQgc3RhcnQgPSAwXG4gIC8qKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgcHJldmlvdXNcbiAgLyoqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9ICovXG4gIGxldCB0YWdOYW1lXG5cbiAgd2hpbGUgKHN0YXJ0IDwgdmFsdWUubGVuZ3RoKSB7XG4gICAgc2VhcmNoLmxhc3RJbmRleCA9IHN0YXJ0XG4gICAgY29uc3QgbWF0Y2ggPSBzZWFyY2guZXhlYyh2YWx1ZSlcbiAgICBjb25zdCBzdWJ2YWx1ZSA9IHZhbHVlLnNsaWNlKHN0YXJ0LCBtYXRjaCA/IG1hdGNoLmluZGV4IDogdmFsdWUubGVuZ3RoKVxuXG4gICAgaWYgKHN1YnZhbHVlKSB7XG4gICAgICBpZiAoIXByZXZpb3VzKSB7XG4gICAgICAgIHRhZ05hbWUgPSBzdWJ2YWx1ZVxuICAgICAgfSBlbHNlIGlmIChwcmV2aW91cyA9PT0gJyMnKSB7XG4gICAgICAgIHByb3BzLmlkID0gc3VidmFsdWVcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShwcm9wcy5jbGFzc05hbWUpKSB7XG4gICAgICAgIHByb3BzLmNsYXNzTmFtZS5wdXNoKHN1YnZhbHVlKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJvcHMuY2xhc3NOYW1lID0gW3N1YnZhbHVlXVxuICAgICAgfVxuXG4gICAgICBzdGFydCArPSBzdWJ2YWx1ZS5sZW5ndGhcbiAgICB9XG5cbiAgICBpZiAobWF0Y2gpIHtcbiAgICAgIHByZXZpb3VzID0gbWF0Y2hbMF1cbiAgICAgIHN0YXJ0KytcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHR5cGU6ICdlbGVtZW50JyxcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiB0YWcgbmFtZSBpcyBwYXJzZWQuXG4gICAgdGFnTmFtZTogdGFnTmFtZSB8fCBkZWZhdWx0VGFnTmFtZSB8fCAnZGl2JyxcbiAgICBwcm9wZXJ0aWVzOiBwcm9wcyxcbiAgICBjaGlsZHJlbjogW11cbiAgfVxufVxuIiwgIi8qKlxuICogUGFyc2Ugc3BhY2Utc2VwYXJhdGVkIHRva2VucyB0byBhbiBhcnJheSBvZiBzdHJpbmdzLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBTcGFjZS1zZXBhcmF0ZWQgdG9rZW5zLlxuICogQHJldHVybnMge0FycmF5PHN0cmluZz59XG4gKiAgIExpc3Qgb2YgdG9rZW5zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2UodmFsdWUpIHtcbiAgY29uc3QgaW5wdXQgPSBTdHJpbmcodmFsdWUgfHwgJycpLnRyaW0oKVxuICByZXR1cm4gaW5wdXQgPyBpbnB1dC5zcGxpdCgvWyBcXHRcXG5cXHJcXGZdKy9nKSA6IFtdXG59XG5cbi8qKlxuICogU2VyaWFsaXplIGFuIGFycmF5IG9mIHN0cmluZ3MgYXMgc3BhY2Ugc2VwYXJhdGVkLXRva2Vucy5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PHN0cmluZ3xudW1iZXI+fSB2YWx1ZXNcbiAqICAgTGlzdCBvZiB0b2tlbnMuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTcGFjZS1zZXBhcmF0ZWQgdG9rZW5zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5KHZhbHVlcykge1xuICByZXR1cm4gdmFsdWVzLmpvaW4oJyAnKS50cmltKClcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50fSBFbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuTm9kZXN9IE5vZGVzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUm9vdH0gUm9vdFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlJvb3RDb250ZW50fSBSb290Q29udGVudFxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3Byb3BlcnR5LWluZm9ybWF0aW9uJykuSW5mb30gSW5mb1xuICogQHR5cGVkZWYge2ltcG9ydCgncHJvcGVydHktaW5mb3JtYXRpb24nKS5TY2hlbWF9IFNjaGVtYVxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge0VsZW1lbnQgfCBSb290fSBSZXN1bHRcbiAqICAgUmVzdWx0IGZyb20gYSBgaGAgKG9yIGBzYCkgY2FsbC5cbiAqXG4gKiBAdHlwZWRlZiB7bnVtYmVyIHwgc3RyaW5nfSBTdHlsZVZhbHVlXG4gKiAgIFZhbHVlIGZvciBhIENTUyBzdHlsZSBmaWVsZC5cbiAqIEB0eXBlZGVmIHtSZWNvcmQ8c3RyaW5nLCBTdHlsZVZhbHVlPn0gU3R5bGVcbiAqICAgU3VwcG9ydGVkIHZhbHVlIG9mIGEgYHN0eWxlYCBwcm9wLlxuICogQHR5cGVkZWYge2Jvb2xlYW4gfCBudW1iZXIgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBQcmltaXRpdmVWYWx1ZVxuICogICBQcmltaXRpdmUgcHJvcGVydHkgdmFsdWUuXG4gKiBAdHlwZWRlZiB7QXJyYXk8bnVtYmVyIHwgc3RyaW5nPn0gQXJyYXlWYWx1ZVxuICogICBMaXN0IG9mIHByb3BlcnR5IHZhbHVlcyBmb3Igc3BhY2UtIG9yIGNvbW1hIHNlcGFyYXRlZCB2YWx1ZXMgKHN1Y2ggYXMgYGNsYXNzTmFtZWApLlxuICogQHR5cGVkZWYge0FycmF5VmFsdWUgfCBQcmltaXRpdmVWYWx1ZX0gUHJvcGVydHlWYWx1ZVxuICogICBQcmltaXRpdmUgdmFsdWUgb3IgbGlzdCB2YWx1ZS5cbiAqIEB0eXBlZGVmIHt7W3Byb3BlcnR5OiBzdHJpbmddOiBQcm9wZXJ0eVZhbHVlIHwgU3R5bGV9fSBQcm9wZXJ0aWVzXG4gKiAgIEFjY2VwdGFibGUgdmFsdWUgZm9yIGVsZW1lbnQgcHJvcGVydGllcy5cbiAqXG4gKiBAdHlwZWRlZiB7bnVtYmVyIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gUHJpbWl0aXZlQ2hpbGRcbiAqICAgUHJpbWl0aXZlIGNoaWxkcmVuLCBlaXRoZXIgaWdub3JlZCAobnVsbGlzaCksIG9yIHR1cm5lZCBpbnRvIHRleHQgbm9kZXMuXG4gKiBAdHlwZWRlZiB7QXJyYXk8QXJyYXlDaGlsZE5lc3RlZCB8IE5vZGVzIHwgUHJpbWl0aXZlQ2hpbGQ+fSBBcnJheUNoaWxkXG4gKiAgIExpc3Qgb2YgY2hpbGRyZW4uXG4gKiBAdHlwZWRlZiB7QXJyYXk8Tm9kZXMgfCBQcmltaXRpdmVDaGlsZD59IEFycmF5Q2hpbGROZXN0ZWRcbiAqICAgTGlzdCBvZiBjaGlsZHJlbiAoZGVlcCkuXG4gKiBAdHlwZWRlZiB7QXJyYXlDaGlsZCB8IE5vZGVzIHwgUHJpbWl0aXZlQ2hpbGR9IENoaWxkXG4gKiAgIEFjY2VwdGFibGUgY2hpbGQgdmFsdWUuXG4gKi9cblxuaW1wb3J0IHtwYXJzZSBhcyBjb21tYXN9IGZyb20gJ2NvbW1hLXNlcGFyYXRlZC10b2tlbnMnXG5pbXBvcnQge3BhcnNlU2VsZWN0b3J9IGZyb20gJ2hhc3QtdXRpbC1wYXJzZS1zZWxlY3RvcidcbmltcG9ydCB7ZmluZCwgbm9ybWFsaXplfSBmcm9tICdwcm9wZXJ0eS1pbmZvcm1hdGlvbidcbmltcG9ydCB7cGFyc2UgYXMgc3BhY2VzfSBmcm9tICdzcGFjZS1zZXBhcmF0ZWQtdG9rZW5zJ1xuXG5jb25zdCBidXR0b25UeXBlcyA9IG5ldyBTZXQoWydidXR0b24nLCAnbWVudScsICdyZXNldCcsICdzdWJtaXQnXSlcblxuY29uc3Qgb3duID0ge30uaGFzT3duUHJvcGVydHlcblxuLyoqXG4gKiBAcGFyYW0ge1NjaGVtYX0gc2NoZW1hXG4gKiAgIFNjaGVtYSB0byB1c2UuXG4gKiBAcGFyYW0ge3N0cmluZ30gZGVmYXVsdFRhZ05hbWVcbiAqICAgRGVmYXVsdCB0YWcgbmFtZS5cbiAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPiB8IHVuZGVmaW5lZH0gW2Nhc2VTZW5zaXRpdmVdXG4gKiAgIENhc2Utc2Vuc2l0aXZlIHRhZyBuYW1lcyAoZGVmYXVsdDogYHVuZGVmaW5lZGApLlxuICogQHJldHVybnNcbiAqICAgYGhgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSChzY2hlbWEsIGRlZmF1bHRUYWdOYW1lLCBjYXNlU2Vuc2l0aXZlKSB7XG4gIGNvbnN0IGFkanVzdCA9IGNhc2VTZW5zaXRpdmUgJiYgY3JlYXRlQWRqdXN0TWFwKGNhc2VTZW5zaXRpdmUpXG5cbiAgLyoqXG4gICAqIEh5cGVyc2NyaXB0IGNvbXBhdGlibGUgRFNMIGZvciBjcmVhdGluZyB2aXJ0dWFsIGhhc3QgdHJlZXMuXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge251bGwgfCB1bmRlZmluZWR9IFtzZWxlY3Rvcl1cbiAgICogQHBhcmFtIHsuLi5DaGlsZH0gY2hpbGRyZW5cbiAgICogQHJldHVybnMge1Jvb3R9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VsZWN0b3JcbiAgICogQHBhcmFtIHtQcm9wZXJ0aWVzfSBwcm9wZXJ0aWVzXG4gICAqIEBwYXJhbSB7Li4uQ2hpbGR9IGNoaWxkcmVuXG4gICAqIEByZXR1cm5zIHtFbGVtZW50fVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlbGVjdG9yXG4gICAqIEBwYXJhbSB7Li4uQ2hpbGR9IGNoaWxkcmVuXG4gICAqIEByZXR1cm5zIHtFbGVtZW50fVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtzZWxlY3Rvcl1cbiAgICogICBTZWxlY3Rvci5cbiAgICogQHBhcmFtIHtDaGlsZCB8IFByb3BlcnRpZXMgfCBudWxsIHwgdW5kZWZpbmVkfSBbcHJvcGVydGllc11cbiAgICogICBQcm9wZXJ0aWVzIChvciBmaXJzdCBjaGlsZCkgKGRlZmF1bHQ6IGB1bmRlZmluZWRgKS5cbiAgICogQHBhcmFtIHsuLi5DaGlsZH0gY2hpbGRyZW5cbiAgICogICBDaGlsZHJlbi5cbiAgICogQHJldHVybnMge1Jlc3VsdH1cbiAgICogICBSZXN1bHQuXG4gICAqL1xuICBmdW5jdGlvbiBoKHNlbGVjdG9yLCBwcm9wZXJ0aWVzLCAuLi5jaGlsZHJlbikge1xuICAgIGxldCBpbmRleCA9IC0xXG4gICAgLyoqIEB0eXBlIHtSZXN1bHR9ICovXG4gICAgbGV0IG5vZGVcblxuICAgIGlmIChzZWxlY3RvciA9PT0gdW5kZWZpbmVkIHx8IHNlbGVjdG9yID09PSBudWxsKSB7XG4gICAgICBub2RlID0ge3R5cGU6ICdyb290JywgY2hpbGRyZW46IFtdfVxuICAgICAgLy8gUHJvcGVydGllcyBhcmUgbm90IHN1cHBvcnRlZCBmb3Igcm9vdHMuXG4gICAgICBjb25zdCBjaGlsZCA9IC8qKiBAdHlwZSB7Q2hpbGR9ICovIChwcm9wZXJ0aWVzKVxuICAgICAgY2hpbGRyZW4udW5zaGlmdChjaGlsZClcbiAgICB9IGVsc2Uge1xuICAgICAgbm9kZSA9IHBhcnNlU2VsZWN0b3Ioc2VsZWN0b3IsIGRlZmF1bHRUYWdOYW1lKVxuICAgICAgLy8gTm9ybWFsaXplIHRoZSBuYW1lLlxuICAgICAgbm9kZS50YWdOYW1lID0gbm9kZS50YWdOYW1lLnRvTG93ZXJDYXNlKClcbiAgICAgIGlmIChhZGp1c3QgJiYgb3duLmNhbGwoYWRqdXN0LCBub2RlLnRhZ05hbWUpKSB7XG4gICAgICAgIG5vZGUudGFnTmFtZSA9IGFkanVzdFtub2RlLnRhZ05hbWVdXG4gICAgICB9XG5cbiAgICAgIC8vIEhhbmRsZSBwcm9wcy5cbiAgICAgIGlmIChpc1Byb3BlcnRpZXMocHJvcGVydGllcywgbm9kZS50YWdOYW1lKSkge1xuICAgICAgICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgICAgICAgbGV0IGtleVxuXG4gICAgICAgIGZvciAoa2V5IGluIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICBpZiAob3duLmNhbGwocHJvcGVydGllcywga2V5KSkge1xuICAgICAgICAgICAgYWRkUHJvcGVydHkoc2NoZW1hLCBub2RlLnByb3BlcnRpZXMsIGtleSwgcHJvcGVydGllc1trZXldKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2hpbGRyZW4udW5zaGlmdChwcm9wZXJ0aWVzKVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEhhbmRsZSBjaGlsZHJlbi5cbiAgICB3aGlsZSAoKytpbmRleCA8IGNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgYWRkQ2hpbGQobm9kZS5jaGlsZHJlbiwgY2hpbGRyZW5baW5kZXhdKVxuICAgIH1cblxuICAgIGlmIChub2RlLnR5cGUgPT09ICdlbGVtZW50JyAmJiBub2RlLnRhZ05hbWUgPT09ICd0ZW1wbGF0ZScpIHtcbiAgICAgIG5vZGUuY29udGVudCA9IHt0eXBlOiAncm9vdCcsIGNoaWxkcmVuOiBub2RlLmNoaWxkcmVufVxuICAgICAgbm9kZS5jaGlsZHJlbiA9IFtdXG4gICAgfVxuXG4gICAgcmV0dXJuIG5vZGVcbiAgfVxuXG4gIHJldHVybiBoXG59XG5cbi8qKlxuICogQ2hlY2sgaWYgc29tZXRoaW5nIGlzIHByb3BlcnRpZXMgb3IgYSBjaGlsZC5cbiAqXG4gKiBAcGFyYW0ge0NoaWxkIHwgUHJvcGVydGllc30gdmFsdWVcbiAqICAgVmFsdWUgdG8gY2hlY2suXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogICBUYWcgbmFtZS5cbiAqIEByZXR1cm5zIHt2YWx1ZSBpcyBQcm9wZXJ0aWVzfVxuICogICBXaGV0aGVyIGB2YWx1ZWAgaXMgYSBwcm9wZXJ0aWVzIG9iamVjdC5cbiAqL1xuZnVuY3Rpb24gaXNQcm9wZXJ0aWVzKHZhbHVlLCBuYW1lKSB7XG4gIGlmIChcbiAgICB2YWx1ZSA9PT0gbnVsbCB8fFxuICAgIHZhbHVlID09PSB1bmRlZmluZWQgfHxcbiAgICB0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnIHx8XG4gICAgQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBpZiAobmFtZSA9PT0gJ2lucHV0JyB8fCAhdmFsdWUudHlwZSB8fCB0eXBlb2YgdmFsdWUudHlwZSAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaWYgKCdjaGlsZHJlbicgaW4gdmFsdWUgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZS5jaGlsZHJlbikpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGlmIChuYW1lID09PSAnYnV0dG9uJykge1xuICAgIHJldHVybiBidXR0b25UeXBlcy5oYXModmFsdWUudHlwZS50b0xvd2VyQ2FzZSgpKVxuICB9XG5cbiAgcmV0dXJuICEoJ3ZhbHVlJyBpbiB2YWx1ZSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1NjaGVtYX0gc2NoZW1hXG4gKiAgIFNjaGVtYS5cbiAqIEBwYXJhbSB7UHJvcGVydGllc30gcHJvcGVydGllc1xuICogICBQcm9wZXJ0aWVzIG9iamVjdC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAqICAgUHJvcGVydHkgbmFtZS5cbiAqIEBwYXJhbSB7UHJvcGVydHlWYWx1ZSB8IFN0eWxlfSB2YWx1ZVxuICogICBQcm9wZXJ0eSB2YWx1ZS5cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKiAgIE5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIGFkZFByb3BlcnR5KHNjaGVtYSwgcHJvcGVydGllcywga2V5LCB2YWx1ZSkge1xuICBjb25zdCBpbmZvID0gZmluZChzY2hlbWEsIGtleSlcbiAgbGV0IGluZGV4ID0gLTFcbiAgLyoqIEB0eXBlIHtQcm9wZXJ0eVZhbHVlfSAqL1xuICBsZXQgcmVzdWx0XG5cbiAgLy8gSWdub3JlIG51bGxpc2ggYW5kIE5hTiB2YWx1ZXMuXG4gIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSByZXR1cm5cblxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIC8vIElnbm9yZSBOYU4uXG4gICAgaWYgKE51bWJlci5pc05hTih2YWx1ZSkpIHJldHVyblxuXG4gICAgcmVzdWx0ID0gdmFsdWVcbiAgfVxuICAvLyBCb29sZWFucy5cbiAgZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicpIHtcbiAgICByZXN1bHQgPSB2YWx1ZVxuICB9XG4gIC8vIEhhbmRsZSBsaXN0IHZhbHVlcy5cbiAgZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIGlmIChpbmZvLnNwYWNlU2VwYXJhdGVkKSB7XG4gICAgICByZXN1bHQgPSBzcGFjZXModmFsdWUpXG4gICAgfSBlbHNlIGlmIChpbmZvLmNvbW1hU2VwYXJhdGVkKSB7XG4gICAgICByZXN1bHQgPSBjb21tYXModmFsdWUpXG4gICAgfSBlbHNlIGlmIChpbmZvLmNvbW1hT3JTcGFjZVNlcGFyYXRlZCkge1xuICAgICAgcmVzdWx0ID0gc3BhY2VzKGNvbW1hcyh2YWx1ZSkuam9pbignICcpKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQgPSBwYXJzZVByaW1pdGl2ZShpbmZvLCBpbmZvLnByb3BlcnR5LCB2YWx1ZSlcbiAgICB9XG4gIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXN1bHQgPSB2YWx1ZS5jb25jYXQoKVxuICB9IGVsc2Uge1xuICAgIHJlc3VsdCA9IGluZm8ucHJvcGVydHkgPT09ICdzdHlsZScgPyBzdHlsZSh2YWx1ZSkgOiBTdHJpbmcodmFsdWUpXG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheShyZXN1bHQpKSB7XG4gICAgLyoqIEB0eXBlIHtBcnJheTxudW1iZXIgfCBzdHJpbmc+fSAqL1xuICAgIGNvbnN0IGZpbmFsUmVzdWx0ID0gW11cblxuICAgIHdoaWxlICgrK2luZGV4IDwgcmVzdWx0Lmxlbmd0aCkge1xuICAgICAgLy8gQXNzdW1lIG5vIGJvb2xlYW5zIGluIGFycmF5LlxuICAgICAgY29uc3QgdmFsdWUgPSAvKiogQHR5cGUge251bWJlciB8IHN0cmluZ30gKi8gKFxuICAgICAgICBwYXJzZVByaW1pdGl2ZShpbmZvLCBpbmZvLnByb3BlcnR5LCByZXN1bHRbaW5kZXhdKVxuICAgICAgKVxuICAgICAgZmluYWxSZXN1bHRbaW5kZXhdID0gdmFsdWVcbiAgICB9XG5cbiAgICByZXN1bHQgPSBmaW5hbFJlc3VsdFxuICB9XG5cbiAgLy8gQ2xhc3MgbmFtZXMgKHdoaWNoIGNhbiBiZSBhZGRlZCBib3RoIG9uIHRoZSBgc2VsZWN0b3JgIGFuZCBoZXJlKS5cbiAgaWYgKGluZm8ucHJvcGVydHkgPT09ICdjbGFzc05hbWUnICYmIEFycmF5LmlzQXJyYXkocHJvcGVydGllcy5jbGFzc05hbWUpKSB7XG4gICAgLy8gQXNzdW1lIG5vIGJvb2xlYW5zIGluIGBjbGFzc05hbWVgLlxuICAgIGNvbnN0IHZhbHVlID0gLyoqIEB0eXBlIHtudW1iZXIgfCBzdHJpbmd9ICovIChyZXN1bHQpXG4gICAgcmVzdWx0ID0gcHJvcGVydGllcy5jbGFzc05hbWUuY29uY2F0KHZhbHVlKVxuICB9XG5cbiAgcHJvcGVydGllc1tpbmZvLnByb3BlcnR5XSA9IHJlc3VsdFxufVxuXG4vKipcbiAqIEBwYXJhbSB7QXJyYXk8Um9vdENvbnRlbnQ+fSBub2Rlc1xuICogICBDaGlsZHJlbi5cbiAqIEBwYXJhbSB7Q2hpbGR9IHZhbHVlXG4gKiAgIENoaWxkLlxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqICAgTm90aGluZy5cbiAqL1xuZnVuY3Rpb24gYWRkQ2hpbGQobm9kZXMsIHZhbHVlKSB7XG4gIGxldCBpbmRleCA9IC0xXG5cbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwpIHtcbiAgICAvLyBFbXB0eS5cbiAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICBub2Rlcy5wdXNoKHt0eXBlOiAndGV4dCcsIHZhbHVlOiBTdHJpbmcodmFsdWUpfSlcbiAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHdoaWxlICgrK2luZGV4IDwgdmFsdWUubGVuZ3RoKSB7XG4gICAgICBhZGRDaGlsZChub2RlcywgdmFsdWVbaW5kZXhdKVxuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICd0eXBlJyBpbiB2YWx1ZSkge1xuICAgIGlmICh2YWx1ZS50eXBlID09PSAncm9vdCcpIHtcbiAgICAgIGFkZENoaWxkKG5vZGVzLCB2YWx1ZS5jaGlsZHJlbilcbiAgICB9IGVsc2Uge1xuICAgICAgbm9kZXMucHVzaCh2YWx1ZSlcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBub2RlLCBub2Rlcywgb3Igc3RyaW5nLCBnb3QgYCcgKyB2YWx1ZSArICdgJylcbiAgfVxufVxuXG4vKipcbiAqIFBhcnNlIGEgc2luZ2xlIHByaW1pdGl2ZXMuXG4gKlxuICogQHBhcmFtIHtJbmZvfSBpbmZvXG4gKiAgIFByb3BlcnR5IGluZm9ybWF0aW9uLlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAqICAgUHJvcGVydHkgbmFtZS5cbiAqIEBwYXJhbSB7UHJpbWl0aXZlVmFsdWV9IHZhbHVlXG4gKiAgIFByb3BlcnR5IHZhbHVlLlxuICogQHJldHVybnMge1ByaW1pdGl2ZVZhbHVlfVxuICogICBQcm9wZXJ0eSB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gcGFyc2VQcmltaXRpdmUoaW5mbywgbmFtZSwgdmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAoaW5mby5udW1iZXIgJiYgdmFsdWUgJiYgIU51bWJlci5pc05hTihOdW1iZXIodmFsdWUpKSkge1xuICAgICAgcmV0dXJuIE51bWJlcih2YWx1ZSlcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICAoaW5mby5ib29sZWFuIHx8IGluZm8ub3ZlcmxvYWRlZEJvb2xlYW4pICYmXG4gICAgICAodmFsdWUgPT09ICcnIHx8IG5vcm1hbGl6ZSh2YWx1ZSkgPT09IG5vcm1hbGl6ZShuYW1lKSlcbiAgICApIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZhbHVlXG59XG5cbi8qKlxuICogU2VyaWFsaXplIGEgYHN0eWxlYCBvYmplY3QgYXMgYSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHtTdHlsZX0gdmFsdWVcbiAqICAgU3R5bGUgb2JqZWN0LlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgQ1NTIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gc3R5bGUodmFsdWUpIHtcbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICBjb25zdCByZXN1bHQgPSBbXVxuICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgbGV0IGtleVxuXG4gIGZvciAoa2V5IGluIHZhbHVlKSB7XG4gICAgaWYgKG93bi5jYWxsKHZhbHVlLCBrZXkpKSB7XG4gICAgICByZXN1bHQucHVzaChba2V5LCB2YWx1ZVtrZXldXS5qb2luKCc6ICcpKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQuam9pbignOyAnKVxufVxuXG4vKipcbiAqIENyZWF0ZSBhIG1hcCB0byBhZGp1c3QgY2FzaW5nLlxuICpcbiAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gdmFsdWVzXG4gKiAgIExpc3Qgb2YgcHJvcGVybHkgY2FzZWQga2V5cy5cbiAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fVxuICogICBNYXAgb2YgbG93ZXJjYXNlIGtleXMgdG8gdXBwZXJjYXNlIGtleXMuXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUFkanVzdE1hcCh2YWx1ZXMpIHtcbiAgLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSAqL1xuICBjb25zdCByZXN1bHQgPSB7fVxuICBsZXQgaW5kZXggPSAtMVxuXG4gIHdoaWxlICgrK2luZGV4IDwgdmFsdWVzLmxlbmd0aCkge1xuICAgIHJlc3VsdFt2YWx1ZXNbaW5kZXhdLnRvTG93ZXJDYXNlKCldID0gdmFsdWVzW2luZGV4XVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuIiwgImV4cG9ydCBjb25zdCBzdmdDYXNlU2Vuc2l0aXZlVGFnTmFtZXMgPSBbXG4gICdhbHRHbHlwaCcsXG4gICdhbHRHbHlwaERlZicsXG4gICdhbHRHbHlwaEl0ZW0nLFxuICAnYW5pbWF0ZUNvbG9yJyxcbiAgJ2FuaW1hdGVNb3Rpb24nLFxuICAnYW5pbWF0ZVRyYW5zZm9ybScsXG4gICdjbGlwUGF0aCcsXG4gICdmZUJsZW5kJyxcbiAgJ2ZlQ29sb3JNYXRyaXgnLFxuICAnZmVDb21wb25lbnRUcmFuc2ZlcicsXG4gICdmZUNvbXBvc2l0ZScsXG4gICdmZUNvbnZvbHZlTWF0cml4JyxcbiAgJ2ZlRGlmZnVzZUxpZ2h0aW5nJyxcbiAgJ2ZlRGlzcGxhY2VtZW50TWFwJyxcbiAgJ2ZlRGlzdGFudExpZ2h0JyxcbiAgJ2ZlRHJvcFNoYWRvdycsXG4gICdmZUZsb29kJyxcbiAgJ2ZlRnVuY0EnLFxuICAnZmVGdW5jQicsXG4gICdmZUZ1bmNHJyxcbiAgJ2ZlRnVuY1InLFxuICAnZmVHYXVzc2lhbkJsdXInLFxuICAnZmVJbWFnZScsXG4gICdmZU1lcmdlJyxcbiAgJ2ZlTWVyZ2VOb2RlJyxcbiAgJ2ZlTW9ycGhvbG9neScsXG4gICdmZU9mZnNldCcsXG4gICdmZVBvaW50TGlnaHQnLFxuICAnZmVTcGVjdWxhckxpZ2h0aW5nJyxcbiAgJ2ZlU3BvdExpZ2h0JyxcbiAgJ2ZlVGlsZScsXG4gICdmZVR1cmJ1bGVuY2UnLFxuICAnZm9yZWlnbk9iamVjdCcsXG4gICdnbHlwaFJlZicsXG4gICdsaW5lYXJHcmFkaWVudCcsXG4gICdyYWRpYWxHcmFkaWVudCcsXG4gICdzb2xpZENvbG9yJyxcbiAgJ3RleHRBcmVhJyxcbiAgJ3RleHRQYXRoJ1xuXVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9jcmVhdGUtaC5qcycpLkNoaWxkfSBDaGlsZFxuICogICBBY2NlcHRhYmxlIGNoaWxkIHZhbHVlLlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9jcmVhdGUtaC5qcycpLlByb3BlcnRpZXN9IFByb3BlcnRpZXNcbiAqICAgQWNjZXB0YWJsZSB2YWx1ZSBmb3IgZWxlbWVudCBwcm9wZXJ0aWVzLlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9jcmVhdGUtaC5qcycpLlJlc3VsdH0gUmVzdWx0XG4gKiAgIFJlc3VsdCBmcm9tIGEgYGhgIChvciBgc2ApIGNhbGwuXG4gKi9cblxuLy8gUmVnaXN0ZXIgdGhlIEpTWCBuYW1lc3BhY2Ugb24gYGhgLlxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2pzeC1jbGFzc2ljLmpzJykuRWxlbWVudH0gaC5KU1guRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9qc3gtY2xhc3NpYy5qcycpLkVsZW1lbnRDaGlsZHJlbkF0dHJpYnV0ZX0gaC5KU1guRWxlbWVudENoaWxkcmVuQXR0cmlidXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2pzeC1jbGFzc2ljLmpzJykuSW50cmluc2ljQXR0cmlidXRlc30gaC5KU1guSW50cmluc2ljQXR0cmlidXRlc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9qc3gtY2xhc3NpYy5qcycpLkludHJpbnNpY0VsZW1lbnRzfSBoLkpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICovXG5cbi8vIFJlZ2lzdGVyIHRoZSBKU1ggbmFtZXNwYWNlIG9uIGBzYC5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9qc3gtY2xhc3NpYy5qcycpLkVsZW1lbnR9IHMuSlNYLkVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vanN4LWNsYXNzaWMuanMnKS5FbGVtZW50Q2hpbGRyZW5BdHRyaWJ1dGV9IHMuSlNYLkVsZW1lbnRDaGlsZHJlbkF0dHJpYnV0ZVxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9qc3gtY2xhc3NpYy5qcycpLkludHJpbnNpY0F0dHJpYnV0ZXN9IHMuSlNYLkludHJpbnNpY0F0dHJpYnV0ZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vanN4LWNsYXNzaWMuanMnKS5JbnRyaW5zaWNFbGVtZW50c30gcy5KU1guSW50cmluc2ljRWxlbWVudHNcbiAqL1xuXG5pbXBvcnQge2h0bWwsIHN2Z30gZnJvbSAncHJvcGVydHktaW5mb3JtYXRpb24nXG5pbXBvcnQge2NyZWF0ZUh9IGZyb20gJy4vY3JlYXRlLWguanMnXG5pbXBvcnQge3N2Z0Nhc2VTZW5zaXRpdmVUYWdOYW1lc30gZnJvbSAnLi9zdmctY2FzZS1zZW5zaXRpdmUtdGFnLW5hbWVzLmpzJ1xuXG4vLyBOb3RlOiB0aGlzIGV4cGxpY2l0IHR5cGUgaXMgbmVlZGVkLCBvdGhlcndpc2UgVFMgY3JlYXRlcyBicm9rZW4gdHlwZXMuXG4vKiogQHR5cGUge1JldHVyblR5cGU8Y3JlYXRlSD59ICovXG5leHBvcnQgY29uc3QgaCA9IGNyZWF0ZUgoaHRtbCwgJ2RpdicpXG5cbi8vIE5vdGU6IHRoaXMgZXhwbGljaXQgdHlwZSBpcyBuZWVkZWQsIG90aGVyd2lzZSBUUyBjcmVhdGVzIGJyb2tlbiB0eXBlcy5cbi8qKiBAdHlwZSB7UmV0dXJuVHlwZTxjcmVhdGVIPn0gKi9cbmV4cG9ydCBjb25zdCBzID0gY3JlYXRlSChzdmcsICdnJywgc3ZnQ2FzZVNlbnNpdGl2ZVRhZ05hbWVzKVxuIiwgIi8qKlxuICogQGltcG9ydCB7VkZpbGUsIFZhbHVlfSBmcm9tICd2ZmlsZSdcbiAqIEBpbXBvcnQge0xvY2F0aW9ufSBmcm9tICd2ZmlsZS1sb2NhdGlvbidcbiAqL1xuXG4vKipcbiAqIENyZWF0ZSBhbiBpbmRleCBvZiB0aGUgZ2l2ZW4gZG9jdW1lbnQgdG8gdHJhbnNsYXRlIGJldHdlZW4gbGluZS9jb2x1bW4gYW5kXG4gKiBvZmZzZXQgYmFzZWQgcG9zaXRpb25hbCBpbmZvLlxuICpcbiAqIEFsc28gaW1wbGVtZW50ZWQgaW4gUnVzdCBpbiBbYHdvb29ybS9tYXJrZG93bi1yc2BdW21hcmtkb3duLXJzXS5cbiAqXG4gKiBbbWFya2Rvd24tcnNdOiBodHRwczovL2dpdGh1Yi5jb20vd29vb3JtL21hcmtkb3duLXJzL2Jsb2IvbWFpbi9zcmMvdXRpbC9sb2NhdGlvbi5yc1xuICpcbiAqIEBwYXJhbSB7VkZpbGUgfCBWYWx1ZX0gZmlsZVxuICogICBGaWxlIHRvIGluZGV4LlxuICogQHJldHVybnMge0xvY2F0aW9ufVxuICogICBBY2Nlc3NvcnMgZm9yIGluZGV4LlxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9jYXRpb24oZmlsZSkge1xuICBjb25zdCB2YWx1ZSA9IFN0cmluZyhmaWxlKVxuICAvKipcbiAgICogTGlzdCwgd2hlcmUgZWFjaCBpbmRleCBpcyBhIGxpbmUgbnVtYmVyICgwLWJhc2VkKSwgYW5kIGVhY2ggdmFsdWUgaXMgdGhlXG4gICAqIGJ5dGUgaW5kZXggKmFmdGVyKiB3aGVyZSB0aGUgbGluZSBlbmRzLlxuICAgKlxuICAgKiBAdHlwZSB7QXJyYXk8bnVtYmVyPn1cbiAgICovXG4gIGNvbnN0IGluZGljZXMgPSBbXVxuXG4gIHJldHVybiB7dG9PZmZzZXQsIHRvUG9pbnR9XG5cbiAgLyoqIEB0eXBlIHtMb2NhdGlvblsndG9Qb2ludCddfSAqL1xuICBmdW5jdGlvbiB0b1BvaW50KG9mZnNldCkge1xuICAgIGlmICh0eXBlb2Ygb2Zmc2V0ID09PSAnbnVtYmVyJyAmJiBvZmZzZXQgPiAtMSAmJiBvZmZzZXQgPD0gdmFsdWUubGVuZ3RoKSB7XG4gICAgICBsZXQgaW5kZXggPSAwXG5cbiAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIGxldCBlbmQgPSBpbmRpY2VzW2luZGV4XVxuXG4gICAgICAgIGlmIChlbmQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNvbnN0IGVvbCA9IG5leHQodmFsdWUsIGluZGljZXNbaW5kZXggLSAxXSlcbiAgICAgICAgICBlbmQgPSBlb2wgPT09IC0xID8gdmFsdWUubGVuZ3RoICsgMSA6IGVvbCArIDFcbiAgICAgICAgICBpbmRpY2VzW2luZGV4XSA9IGVuZFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVuZCA+IG9mZnNldCkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsaW5lOiBpbmRleCArIDEsXG4gICAgICAgICAgICBjb2x1bW46IG9mZnNldCAtIChpbmRleCA+IDAgPyBpbmRpY2VzW2luZGV4IC0gMV0gOiAwKSArIDEsXG4gICAgICAgICAgICBvZmZzZXRcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpbmRleCsrXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqIEB0eXBlIHtMb2NhdGlvblsndG9PZmZzZXQnXX0gKi9cbiAgZnVuY3Rpb24gdG9PZmZzZXQocG9pbnQpIHtcbiAgICBpZiAoXG4gICAgICBwb2ludCAmJlxuICAgICAgdHlwZW9mIHBvaW50LmxpbmUgPT09ICdudW1iZXInICYmXG4gICAgICB0eXBlb2YgcG9pbnQuY29sdW1uID09PSAnbnVtYmVyJyAmJlxuICAgICAgIU51bWJlci5pc05hTihwb2ludC5saW5lKSAmJlxuICAgICAgIU51bWJlci5pc05hTihwb2ludC5jb2x1bW4pXG4gICAgKSB7XG4gICAgICB3aGlsZSAoaW5kaWNlcy5sZW5ndGggPCBwb2ludC5saW5lKSB7XG4gICAgICAgIGNvbnN0IGZyb20gPSBpbmRpY2VzW2luZGljZXMubGVuZ3RoIC0gMV1cbiAgICAgICAgY29uc3QgZW9sID0gbmV4dCh2YWx1ZSwgZnJvbSlcbiAgICAgICAgY29uc3QgZW5kID0gZW9sID09PSAtMSA/IHZhbHVlLmxlbmd0aCArIDEgOiBlb2wgKyAxXG4gICAgICAgIGlmIChmcm9tID09PSBlbmQpIGJyZWFrXG4gICAgICAgIGluZGljZXMucHVzaChlbmQpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG9mZnNldCA9XG4gICAgICAgIChwb2ludC5saW5lID4gMSA/IGluZGljZXNbcG9pbnQubGluZSAtIDJdIDogMCkgKyBwb2ludC5jb2x1bW4gLSAxXG4gICAgICAvLyBUaGUgZ2l2ZW4gYGNvbHVtbmAgY291bGQgbm90IGV4aXN0IG9uIHRoaXMgbGluZS5cbiAgICAgIGlmIChvZmZzZXQgPCBpbmRpY2VzW3BvaW50LmxpbmUgLSAxXSkgcmV0dXJuIG9mZnNldFxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHBhcmFtIHtudW1iZXJ9IGZyb21cbiAqL1xuZnVuY3Rpb24gbmV4dCh2YWx1ZSwgZnJvbSkge1xuICBjb25zdCBjciA9IHZhbHVlLmluZGV4T2YoJ1xccicsIGZyb20pXG4gIGNvbnN0IGxmID0gdmFsdWUuaW5kZXhPZignXFxuJywgZnJvbSlcbiAgaWYgKGxmID09PSAtMSkgcmV0dXJuIGNyXG4gIGlmIChjciA9PT0gLTEgfHwgY3IgKyAxID09PSBsZikgcmV0dXJuIGxmXG4gIHJldHVybiBjciA8IGxmID8gY3IgOiBsZlxufVxuIiwgIi8qKlxuICogTWFwIG9mIHdlYiBuYW1lc3BhY2VzLlxuICpcbiAqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fVxuICovXG5leHBvcnQgY29uc3Qgd2ViTmFtZXNwYWNlcyA9IHtcbiAgaHRtbDogJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLFxuICBtYXRobWw6ICdodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MJyxcbiAgc3ZnOiAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLFxuICB4bGluazogJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnLFxuICB4bWw6ICdodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UnLFxuICB4bWxuczogJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvJ1xufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkVsZW1lbnR9IEVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50RGF0YX0gRWxlbWVudERhdGFcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Ob2Rlc30gTm9kZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Sb290fSBSb290XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUm9vdENvbnRlbnR9IFJvb3RDb250ZW50XG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgncGFyc2U1JykuRGVmYXVsdFRyZWVBZGFwdGVyTWFwfSBEZWZhdWx0VHJlZUFkYXB0ZXJNYXBcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3BhcnNlNScpLlRva2VuLkVsZW1lbnRMb2NhdGlvbn0gUDVFbGVtZW50TG9jYXRpb25cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3BhcnNlNScpLlRva2VuLkxvY2F0aW9ufSBQNUxvY2F0aW9uXG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgncHJvcGVydHktaW5mb3JtYXRpb24nKS5TY2hlbWF9IFNjaGVtYVxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUG9pbnR9IFBvaW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBvc2l0aW9ufSBQb3NpdGlvblxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3ZmaWxlJykuVkZpbGV9IFZGaWxlXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7RGVmYXVsdFRyZWVBZGFwdGVyTWFwWydkb2N1bWVudCddfSBQNURvY3VtZW50XG4gKiBAdHlwZWRlZiB7RGVmYXVsdFRyZWVBZGFwdGVyTWFwWydkb2N1bWVudEZyYWdtZW50J119IFA1RG9jdW1lbnRGcmFnbWVudFxuICogQHR5cGVkZWYge0RlZmF1bHRUcmVlQWRhcHRlck1hcFsnZG9jdW1lbnRUeXBlJ119IFA1RG9jdW1lbnRUeXBlXG4gKiBAdHlwZWRlZiB7RGVmYXVsdFRyZWVBZGFwdGVyTWFwWydjb21tZW50Tm9kZSddfSBQNUNvbW1lbnRcbiAqIEB0eXBlZGVmIHtEZWZhdWx0VHJlZUFkYXB0ZXJNYXBbJ3RleHROb2RlJ119IFA1VGV4dFxuICogQHR5cGVkZWYge0RlZmF1bHRUcmVlQWRhcHRlck1hcFsnZWxlbWVudCddfSBQNUVsZW1lbnRcbiAqIEB0eXBlZGVmIHtEZWZhdWx0VHJlZUFkYXB0ZXJNYXBbJ25vZGUnXX0gUDVOb2RlXG4gKiBAdHlwZWRlZiB7RGVmYXVsdFRyZWVBZGFwdGVyTWFwWyd0ZW1wbGF0ZSddfSBQNVRlbXBsYXRlXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKiBAcHJvcGVydHkge1NwYWNlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3NwYWNlPSdodG1sJ11cbiAqICAgV2hpY2ggc3BhY2UgdGhlIGRvY3VtZW50IGlzIGluIChkZWZhdWx0OiBgJ2h0bWwnYCkuXG4gKlxuICogICBXaGVuIGFuIGA8c3ZnPmAgZWxlbWVudCBpcyBmb3VuZCBpbiB0aGUgSFRNTCBzcGFjZSwgdGhpcyBwYWNrYWdlIGFscmVhZHlcbiAqICAgYXV0b21hdGljYWxseSBzd2l0Y2hlcyB0byBhbmQgZnJvbSB0aGUgU1ZHIHNwYWNlIHdoZW4gZW50ZXJpbmcgYW5kIGV4aXRpbmdcbiAqICAgaXQuXG4gKiBAcHJvcGVydHkge1ZGaWxlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2ZpbGVdXG4gKiAgIEZpbGUgdXNlZCB0byBhZGQgcG9zaXRpb25hbCBpbmZvIHRvIG5vZGVzIChvcHRpb25hbCkuXG4gKlxuICogICBJZiBnaXZlbiwgdGhlIGZpbGUgc2hvdWxkIHJlcHJlc2VudCB0aGUgb3JpZ2luYWwgSFRNTCBzb3VyY2UuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbdmVyYm9zZT1mYWxzZV1cbiAqICAgV2hldGhlciB0byBhZGQgZXh0cmEgcG9zaXRpb25hbCBpbmZvIGFib3V0IHN0YXJ0aW5nIHRhZ3MsIGNsb3NpbmcgdGFncyxcbiAqICAgYW5kIGF0dHJpYnV0ZXMgdG8gZWxlbWVudHMgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IG9ubHkgdXNlZCB3aGVuIGBmaWxlYCBpcyBnaXZlbi5cbiAqXG4gKiBAdHlwZWRlZiB7J2h0bWwnIHwgJ3N2Zyd9IFNwYWNlXG4gKiAgIE5hbWVzcGFjZS5cbiAqXG4gKiBAdHlwZWRlZiBTdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcHJvcGVydHkge1ZGaWxlIHwgdW5kZWZpbmVkfSBmaWxlXG4gKiAgIENvcnJlc3BvbmRpbmcgZmlsZS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gbG9jYXRpb25cbiAqICAgV2hldGhlciBsb2NhdGlvbiBpbmZvIHdhcyBmb3VuZC5cbiAqIEBwcm9wZXJ0eSB7U2NoZW1hfSBzY2hlbWFcbiAqICAgQ3VycmVudCBzY2hlbWEuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCB1bmRlZmluZWR9IHZlcmJvc2VcbiAqICAgQWRkIGV4dHJhIHBvc2l0aW9uYWwgaW5mby5cbiAqL1xuXG5pbXBvcnQge29rIGFzIGFzc2VydH0gZnJvbSAnZGV2bG9wJ1xuaW1wb3J0IHtoLCBzfSBmcm9tICdoYXN0c2NyaXB0J1xuaW1wb3J0IHtmaW5kLCBodG1sLCBzdmd9IGZyb20gJ3Byb3BlcnR5LWluZm9ybWF0aW9uJ1xuaW1wb3J0IHtsb2NhdGlvbn0gZnJvbSAndmZpbGUtbG9jYXRpb24nXG5pbXBvcnQge3dlYk5hbWVzcGFjZXN9IGZyb20gJ3dlYi1uYW1lc3BhY2VzJ1xuXG5jb25zdCBvd24gPSB7fS5oYXNPd25Qcm9wZXJ0eVxuLyoqIEB0eXBlIHt1bmtub3dufSAqL1xuLy8gdHlwZS1jb3ZlcmFnZTppZ25vcmUtbmV4dC1saW5lXG5jb25zdCBwcm90byA9IE9iamVjdC5wcm90b3R5cGVcblxuLyoqXG4gKiBUcmFuc2Zvcm0gYSBgcGFyc2U1YCBBU1QgdG8gaGFzdC5cbiAqXG4gKiBAcGFyYW0ge1A1Tm9kZX0gdHJlZVxuICogICBgcGFyc2U1YCB0cmVlIHRvIHRyYW5zZm9ybS5cbiAqIEBwYXJhbSB7T3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uIChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyB7Tm9kZXN9XG4gKiAgIGhhc3QgdHJlZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21QYXJzZTUodHJlZSwgb3B0aW9ucykge1xuICBjb25zdCBzZXR0aW5ncyA9IG9wdGlvbnMgfHwge31cblxuICByZXR1cm4gb25lKFxuICAgIHtcbiAgICAgIGZpbGU6IHNldHRpbmdzLmZpbGUgfHwgdW5kZWZpbmVkLFxuICAgICAgbG9jYXRpb246IGZhbHNlLFxuICAgICAgc2NoZW1hOiBzZXR0aW5ncy5zcGFjZSA9PT0gJ3N2ZycgPyBzdmcgOiBodG1sLFxuICAgICAgdmVyYm9zZTogc2V0dGluZ3MudmVyYm9zZSB8fCBmYWxzZVxuICAgIH0sXG4gICAgdHJlZVxuICApXG59XG5cbi8qKlxuICogVHJhbnNmb3JtIGEgbm9kZS5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcGFyYW0ge1A1Tm9kZX0gbm9kZVxuICogICBwNSBub2RlLlxuICogQHJldHVybnMge05vZGVzfVxuICogICBoYXN0IG5vZGUuXG4gKi9cbmZ1bmN0aW9uIG9uZShzdGF0ZSwgbm9kZSkge1xuICAvKiogQHR5cGUge05vZGVzfSAqL1xuICBsZXQgcmVzdWx0XG5cbiAgc3dpdGNoIChub2RlLm5vZGVOYW1lKSB7XG4gICAgY2FzZSAnI2NvbW1lbnQnOiB7XG4gICAgICBjb25zdCByZWZlcmVuY2UgPSAvKiogQHR5cGUge1A1Q29tbWVudH0gKi8gKG5vZGUpXG4gICAgICByZXN1bHQgPSB7dHlwZTogJ2NvbW1lbnQnLCB2YWx1ZTogcmVmZXJlbmNlLmRhdGF9XG4gICAgICBwYXRjaChzdGF0ZSwgcmVmZXJlbmNlLCByZXN1bHQpXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuXG4gICAgY2FzZSAnI2RvY3VtZW50JzpcbiAgICBjYXNlICcjZG9jdW1lbnQtZnJhZ21lbnQnOiB7XG4gICAgICBjb25zdCByZWZlcmVuY2UgPSAvKiogQHR5cGUge1A1RG9jdW1lbnQgfCBQNURvY3VtZW50RnJhZ21lbnR9ICovIChub2RlKVxuICAgICAgY29uc3QgcXVpcmtzTW9kZSA9XG4gICAgICAgICdtb2RlJyBpbiByZWZlcmVuY2VcbiAgICAgICAgICA/IHJlZmVyZW5jZS5tb2RlID09PSAncXVpcmtzJyB8fCByZWZlcmVuY2UubW9kZSA9PT0gJ2xpbWl0ZWQtcXVpcmtzJ1xuICAgICAgICAgIDogZmFsc2VcblxuICAgICAgcmVzdWx0ID0ge1xuICAgICAgICB0eXBlOiAncm9vdCcsXG4gICAgICAgIGNoaWxkcmVuOiBhbGwoc3RhdGUsIG5vZGUuY2hpbGROb2RlcyksXG4gICAgICAgIGRhdGE6IHtxdWlya3NNb2RlfVxuICAgICAgfVxuXG4gICAgICBpZiAoc3RhdGUuZmlsZSAmJiBzdGF0ZS5sb2NhdGlvbikge1xuICAgICAgICBjb25zdCBkb2MgPSBTdHJpbmcoc3RhdGUuZmlsZSlcbiAgICAgICAgY29uc3QgbG9jID0gbG9jYXRpb24oZG9jKVxuICAgICAgICBjb25zdCBzdGFydCA9IGxvYy50b1BvaW50KDApXG4gICAgICAgIGNvbnN0IGVuZCA9IGxvYy50b1BvaW50KGRvYy5sZW5ndGgpXG4gICAgICAgIC8vIEFsd2F5cyBkZWZpbmVkIGFzIHdlIGdpdmUgdmFsaWQgaW5wdXQuXG4gICAgICAgIGFzc2VydChzdGFydCwgJ2V4cGVjdGVkIGBzdGFydGAnKVxuICAgICAgICBhc3NlcnQoZW5kLCAnZXhwZWN0ZWQgYGVuZGAnKVxuICAgICAgICByZXN1bHQucG9zaXRpb24gPSB7c3RhcnQsIGVuZH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH1cblxuICAgIGNhc2UgJyNkb2N1bWVudFR5cGUnOiB7XG4gICAgICBjb25zdCByZWZlcmVuY2UgPSAvKiogQHR5cGUge1A1RG9jdW1lbnRUeXBlfSAqLyAobm9kZSlcbiAgICAgIHJlc3VsdCA9IHt0eXBlOiAnZG9jdHlwZSd9XG4gICAgICBwYXRjaChzdGF0ZSwgcmVmZXJlbmNlLCByZXN1bHQpXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuXG4gICAgY2FzZSAnI3RleHQnOiB7XG4gICAgICBjb25zdCByZWZlcmVuY2UgPSAvKiogQHR5cGUge1A1VGV4dH0gKi8gKG5vZGUpXG4gICAgICByZXN1bHQgPSB7dHlwZTogJ3RleHQnLCB2YWx1ZTogcmVmZXJlbmNlLnZhbHVlfVxuICAgICAgcGF0Y2goc3RhdGUsIHJlZmVyZW5jZSwgcmVzdWx0KVxuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH1cblxuICAgIC8vIEVsZW1lbnQuXG4gICAgZGVmYXVsdDoge1xuICAgICAgY29uc3QgcmVmZXJlbmNlID0gLyoqIEB0eXBlIHtQNUVsZW1lbnR9ICovIChub2RlKVxuICAgICAgcmVzdWx0ID0gZWxlbWVudChzdGF0ZSwgcmVmZXJlbmNlKVxuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFRyYW5zZm9ybSBjaGlsZHJlbi5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcGFyYW0ge0FycmF5PFA1Tm9kZT59IG5vZGVzXG4gKiAgIE5vZGVzLlxuICogQHJldHVybnMge0FycmF5PFJvb3RDb250ZW50Pn1cbiAqICAgaGFzdCBub2Rlcy5cbiAqL1xuZnVuY3Rpb24gYWxsKHN0YXRlLCBub2Rlcykge1xuICBsZXQgaW5kZXggPSAtMVxuICAvKiogQHR5cGUge0FycmF5PFJvb3RDb250ZW50Pn0gKi9cbiAgY29uc3QgcmVzdWx0cyA9IFtdXG5cbiAgd2hpbGUgKCsraW5kZXggPCBub2Rlcy5sZW5ndGgpIHtcbiAgICAvLyBBc3N1bWUgbm8gcm9vdHMgaW4gYG5vZGVzYC5cbiAgICBjb25zdCByZXN1bHQgPSAvKiogQHR5cGUge1Jvb3RDb250ZW50fSAqLyAob25lKHN0YXRlLCBub2Rlc1tpbmRleF0pKVxuICAgIHJlc3VsdHMucHVzaChyZXN1bHQpXG4gIH1cblxuICByZXR1cm4gcmVzdWx0c1xufVxuXG4vKipcbiAqIFRyYW5zZm9ybSBhbiBlbGVtZW50LlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEBwYXJhbSB7UDVFbGVtZW50fSBub2RlXG4gKiAgIGBwYXJzZTVgIG5vZGUgdG8gdHJhbnNmb3JtLlxuICogQHJldHVybnMge0VsZW1lbnR9XG4gKiAgIGhhc3Qgbm9kZS5cbiAqL1xuZnVuY3Rpb24gZWxlbWVudChzdGF0ZSwgbm9kZSkge1xuICBjb25zdCBzY2hlbWEgPSBzdGF0ZS5zY2hlbWFcblxuICBzdGF0ZS5zY2hlbWEgPSBub2RlLm5hbWVzcGFjZVVSSSA9PT0gd2ViTmFtZXNwYWNlcy5zdmcgPyBzdmcgOiBodG1sXG5cbiAgLy8gUHJvcHMuXG4gIGxldCBpbmRleCA9IC0xXG4gIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gKi9cbiAgY29uc3QgcHJvcHMgPSB7fVxuXG4gIHdoaWxlICgrK2luZGV4IDwgbm9kZS5hdHRycy5sZW5ndGgpIHtcbiAgICBjb25zdCBhdHRyaWJ1dGUgPSBub2RlLmF0dHJzW2luZGV4XVxuICAgIGNvbnN0IG5hbWUgPVxuICAgICAgKGF0dHJpYnV0ZS5wcmVmaXggPyBhdHRyaWJ1dGUucHJlZml4ICsgJzonIDogJycpICsgYXR0cmlidXRlLm5hbWVcbiAgICBpZiAoIW93bi5jYWxsKHByb3RvLCBuYW1lKSkge1xuICAgICAgcHJvcHNbbmFtZV0gPSBhdHRyaWJ1dGUudmFsdWVcbiAgICB9XG4gIH1cblxuICAvLyBCdWlsZC5cbiAgY29uc3QgZm4gPSBzdGF0ZS5zY2hlbWEuc3BhY2UgPT09ICdzdmcnID8gcyA6IGhcbiAgY29uc3QgcmVzdWx0ID0gZm4obm9kZS50YWdOYW1lLCBwcm9wcywgYWxsKHN0YXRlLCBub2RlLmNoaWxkTm9kZXMpKVxuICBwYXRjaChzdGF0ZSwgbm9kZSwgcmVzdWx0KVxuXG4gIC8vIFN3aXRjaCBjb250ZW50LlxuICBpZiAocmVzdWx0LnRhZ05hbWUgPT09ICd0ZW1wbGF0ZScpIHtcbiAgICBjb25zdCByZWZlcmVuY2UgPSAvKiogQHR5cGUge1A1VGVtcGxhdGV9ICovIChub2RlKVxuICAgIGNvbnN0IHBvcyA9IHJlZmVyZW5jZS5zb3VyY2VDb2RlTG9jYXRpb25cbiAgICBjb25zdCBzdGFydFRhZyA9IHBvcyAmJiBwb3Muc3RhcnRUYWcgJiYgcG9zaXRpb24ocG9zLnN0YXJ0VGFnKVxuICAgIGNvbnN0IGVuZFRhZyA9IHBvcyAmJiBwb3MuZW5kVGFnICYmIHBvc2l0aW9uKHBvcy5lbmRUYWcpXG5cbiAgICAvLyBSb290IGluLCByb290IG91dC5cbiAgICBjb25zdCBjb250ZW50ID0gLyoqIEB0eXBlIHtSb290fSAqLyAob25lKHN0YXRlLCByZWZlcmVuY2UuY29udGVudCkpXG5cbiAgICBpZiAoc3RhcnRUYWcgJiYgZW5kVGFnICYmIHN0YXRlLmZpbGUpIHtcbiAgICAgIGNvbnRlbnQucG9zaXRpb24gPSB7c3RhcnQ6IHN0YXJ0VGFnLmVuZCwgZW5kOiBlbmRUYWcuc3RhcnR9XG4gICAgfVxuXG4gICAgcmVzdWx0LmNvbnRlbnQgPSBjb250ZW50XG4gIH1cblxuICBzdGF0ZS5zY2hlbWEgPSBzY2hlbWFcblxuICByZXR1cm4gcmVzdWx0XG59XG5cbi8qKlxuICogUGF0Y2ggcG9zaXRpb25hbCBpbmZvIGZyb20gYGZyb21gIG9udG8gYHRvYC5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcGFyYW0ge1A1Tm9kZX0gZnJvbVxuICogICBwNSBub2RlLlxuICogQHBhcmFtIHtOb2Rlc30gdG9cbiAqICAgaGFzdCBub2RlLlxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqICAgTm90aGluZy5cbiAqL1xuZnVuY3Rpb24gcGF0Y2goc3RhdGUsIGZyb20sIHRvKSB7XG4gIGlmICgnc291cmNlQ29kZUxvY2F0aW9uJyBpbiBmcm9tICYmIGZyb20uc291cmNlQ29kZUxvY2F0aW9uICYmIHN0YXRlLmZpbGUpIHtcbiAgICBjb25zdCBwb3NpdGlvbiA9IGNyZWF0ZUxvY2F0aW9uKHN0YXRlLCB0bywgZnJvbS5zb3VyY2VDb2RlTG9jYXRpb24pXG5cbiAgICBpZiAocG9zaXRpb24pIHtcbiAgICAgIHN0YXRlLmxvY2F0aW9uID0gdHJ1ZVxuICAgICAgdG8ucG9zaXRpb24gPSBwb3NpdGlvblxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZSBjbGVhbiBwb3NpdGlvbmFsIGluZm9ybWF0aW9uLlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEBwYXJhbSB7Tm9kZXN9IG5vZGVcbiAqICAgaGFzdCBub2RlLlxuICogQHBhcmFtIHtQNUVsZW1lbnRMb2NhdGlvbn0gbG9jYXRpb25cbiAqICAgcDUgbG9jYXRpb24gaW5mby5cbiAqIEByZXR1cm5zIHtQb3NpdGlvbiB8IHVuZGVmaW5lZH1cbiAqICAgUG9zaXRpb24sIG9yIG5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUxvY2F0aW9uKHN0YXRlLCBub2RlLCBsb2NhdGlvbikge1xuICBjb25zdCByZXN1bHQgPSBwb3NpdGlvbihsb2NhdGlvbilcblxuICBpZiAobm9kZS50eXBlID09PSAnZWxlbWVudCcpIHtcbiAgICBjb25zdCB0YWlsID0gbm9kZS5jaGlsZHJlbltub2RlLmNoaWxkcmVuLmxlbmd0aCAtIDFdXG5cbiAgICAvLyBCdWcgZm9yIHVuY2xvc2VkIHdpdGggY2hpbGRyZW4uXG4gICAgLy8gU2VlOiA8aHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL3BhcnNlNS9pc3N1ZXMvMTA5Pi5cbiAgICBpZiAoXG4gICAgICByZXN1bHQgJiZcbiAgICAgICFsb2NhdGlvbi5lbmRUYWcgJiZcbiAgICAgIHRhaWwgJiZcbiAgICAgIHRhaWwucG9zaXRpb24gJiZcbiAgICAgIHRhaWwucG9zaXRpb24uZW5kXG4gICAgKSB7XG4gICAgICByZXN1bHQuZW5kID0gT2JqZWN0LmFzc2lnbih7fSwgdGFpbC5wb3NpdGlvbi5lbmQpXG4gICAgfVxuXG4gICAgaWYgKHN0YXRlLnZlcmJvc2UpIHtcbiAgICAgIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgUG9zaXRpb24gfCB1bmRlZmluZWQ+fSAqL1xuICAgICAgY29uc3QgcHJvcHMgPSB7fVxuICAgICAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gICAgICBsZXQga2V5XG5cbiAgICAgIGlmIChsb2NhdGlvbi5hdHRycykge1xuICAgICAgICBmb3IgKGtleSBpbiBsb2NhdGlvbi5hdHRycykge1xuICAgICAgICAgIGlmIChvd24uY2FsbChsb2NhdGlvbi5hdHRycywga2V5KSkge1xuICAgICAgICAgICAgcHJvcHNbZmluZChzdGF0ZS5zY2hlbWEsIGtleSkucHJvcGVydHldID0gcG9zaXRpb24oXG4gICAgICAgICAgICAgIGxvY2F0aW9uLmF0dHJzW2tleV1cbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYXNzZXJ0KGxvY2F0aW9uLnN0YXJ0VGFnLCAnYSBzdGFydCB0YWcgc2hvdWxkIGV4aXN0JylcbiAgICAgIGNvbnN0IG9wZW5pbmcgPSBwb3NpdGlvbihsb2NhdGlvbi5zdGFydFRhZylcbiAgICAgIGNvbnN0IGNsb3NpbmcgPSBsb2NhdGlvbi5lbmRUYWcgPyBwb3NpdGlvbihsb2NhdGlvbi5lbmRUYWcpIDogdW5kZWZpbmVkXG4gICAgICAvKiogQHR5cGUge0VsZW1lbnREYXRhWydwb3NpdGlvbiddfSAqL1xuICAgICAgY29uc3QgZGF0YSA9IHtvcGVuaW5nfVxuICAgICAgaWYgKGNsb3NpbmcpIGRhdGEuY2xvc2luZyA9IGNsb3NpbmdcbiAgICAgIGRhdGEucHJvcGVydGllcyA9IHByb3BzXG5cbiAgICAgIG5vZGUuZGF0YSA9IHtwb3NpdGlvbjogZGF0YX1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0XG59XG5cbi8qKlxuICogVHVybiBhIHA1IGxvY2F0aW9uIGludG8gYSBwb3NpdGlvbi5cbiAqXG4gKiBAcGFyYW0ge1A1TG9jYXRpb259IGxvY1xuICogICBMb2NhdGlvbi5cbiAqIEByZXR1cm5zIHtQb3NpdGlvbiB8IHVuZGVmaW5lZH1cbiAqICAgUG9zaXRpb24gb3Igbm90aGluZy5cbiAqL1xuZnVuY3Rpb24gcG9zaXRpb24obG9jKSB7XG4gIGNvbnN0IHN0YXJ0ID0gcG9pbnQoe1xuICAgIGxpbmU6IGxvYy5zdGFydExpbmUsXG4gICAgY29sdW1uOiBsb2Muc3RhcnRDb2wsXG4gICAgb2Zmc2V0OiBsb2Muc3RhcnRPZmZzZXRcbiAgfSlcbiAgY29uc3QgZW5kID0gcG9pbnQoe1xuICAgIGxpbmU6IGxvYy5lbmRMaW5lLFxuICAgIGNvbHVtbjogbG9jLmVuZENvbCxcbiAgICBvZmZzZXQ6IGxvYy5lbmRPZmZzZXRcbiAgfSlcblxuICAvLyBAdHMtZXhwZWN0LWVycm9yOiB3ZSBkbyB1c2UgYHVuZGVmaW5lZGAgZm9yIHBvaW50cyBpZiBvbmUgb3IgdGhlIG90aGVyXG4gIC8vIGV4aXN0cy5cbiAgcmV0dXJuIHN0YXJ0IHx8IGVuZCA/IHtzdGFydCwgZW5kfSA6IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEZpbHRlciBvdXQgaW52YWxpZCBwb2ludHMuXG4gKlxuICogQHBhcmFtIHtQb2ludH0gcG9pbnRcbiAqICAgUG9pbnQgd2l0aCBwb3RlbnRpYWxseSBgdW5kZWZpbmVkYCB2YWx1ZXMuXG4gKiBAcmV0dXJucyB7UG9pbnQgfCB1bmRlZmluZWR9XG4gKiAgIFBvaW50IG9yIG5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIHBvaW50KHBvaW50KSB7XG4gIHJldHVybiBwb2ludC5saW5lICYmIHBvaW50LmNvbHVtbiA/IHBvaW50IDogdW5kZWZpbmVkXG59XG4iLCAiY29uc3QgVU5ERUZJTkVEX0NPREVfUE9JTlRTID0gbmV3IFNldChbXG4gICAgNjU1MzQsIDY1NTM1LCAxMzEwNzAsIDEzMTA3MSwgMTk2NjA2LCAxOTY2MDcsIDI2MjE0MiwgMjYyMTQzLCAzMjc2NzgsIDMyNzY3OSwgMzkzMjE0LFxuICAgIDM5MzIxNSwgNDU4NzUwLCA0NTg3NTEsIDUyNDI4NiwgNTI0Mjg3LCA1ODk4MjIsIDU4OTgyMywgNjU1MzU4LCA2NTUzNTksIDcyMDg5NCxcbiAgICA3MjA4OTUsIDc4NjQzMCwgNzg2NDMxLCA4NTE5NjYsIDg1MTk2NywgOTE3NTAyLCA5MTc1MDMsIDk4MzAzOCwgOTgzMDM5LCAxMDQ4NTc0LFxuICAgIDEwNDg1NzUsIDExMTQxMTAsIDExMTQxMTEsXG5dKTtcbmV4cG9ydCBjb25zdCBSRVBMQUNFTUVOVF9DSEFSQUNURVIgPSAnXFx1RkZGRCc7XG5leHBvcnQgdmFyIENPREVfUE9JTlRTO1xuKGZ1bmN0aW9uIChDT0RFX1BPSU5UUykge1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiRU9GXCJdID0gLTFdID0gXCJFT0ZcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIk5VTExcIl0gPSAwXSA9IFwiTlVMTFwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiVEFCVUxBVElPTlwiXSA9IDldID0gXCJUQUJVTEFUSU9OXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJDQVJSSUFHRV9SRVRVUk5cIl0gPSAxM10gPSBcIkNBUlJJQUdFX1JFVFVSTlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTElORV9GRUVEXCJdID0gMTBdID0gXCJMSU5FX0ZFRURcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkZPUk1fRkVFRFwiXSA9IDEyXSA9IFwiRk9STV9GRUVEXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJTUEFDRVwiXSA9IDMyXSA9IFwiU1BBQ0VcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkVYQ0xBTUFUSU9OX01BUktcIl0gPSAzM10gPSBcIkVYQ0xBTUFUSU9OX01BUktcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIlFVT1RBVElPTl9NQVJLXCJdID0gMzRdID0gXCJRVU9UQVRJT05fTUFSS1wiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiQU1QRVJTQU5EXCJdID0gMzhdID0gXCJBTVBFUlNBTkRcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkFQT1NUUk9QSEVcIl0gPSAzOV0gPSBcIkFQT1NUUk9QSEVcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkhZUEhFTl9NSU5VU1wiXSA9IDQ1XSA9IFwiSFlQSEVOX01JTlVTXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJTT0xJRFVTXCJdID0gNDddID0gXCJTT0xJRFVTXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJESUdJVF8wXCJdID0gNDhdID0gXCJESUdJVF8wXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJESUdJVF85XCJdID0gNTddID0gXCJESUdJVF85XCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJTRU1JQ09MT05cIl0gPSA1OV0gPSBcIlNFTUlDT0xPTlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTEVTU19USEFOX1NJR05cIl0gPSA2MF0gPSBcIkxFU1NfVEhBTl9TSUdOXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJFUVVBTFNfU0lHTlwiXSA9IDYxXSA9IFwiRVFVQUxTX1NJR05cIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkdSRUFURVJfVEhBTl9TSUdOXCJdID0gNjJdID0gXCJHUkVBVEVSX1RIQU5fU0lHTlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiUVVFU1RJT05fTUFSS1wiXSA9IDYzXSA9IFwiUVVFU1RJT05fTUFSS1wiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTEFUSU5fQ0FQSVRBTF9BXCJdID0gNjVdID0gXCJMQVRJTl9DQVBJVEFMX0FcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkxBVElOX0NBUElUQUxfWlwiXSA9IDkwXSA9IFwiTEFUSU5fQ0FQSVRBTF9aXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJSSUdIVF9TUVVBUkVfQlJBQ0tFVFwiXSA9IDkzXSA9IFwiUklHSFRfU1FVQVJFX0JSQUNLRVRcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkdSQVZFX0FDQ0VOVFwiXSA9IDk2XSA9IFwiR1JBVkVfQUNDRU5UXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJMQVRJTl9TTUFMTF9BXCJdID0gOTddID0gXCJMQVRJTl9TTUFMTF9BXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJMQVRJTl9TTUFMTF9aXCJdID0gMTIyXSA9IFwiTEFUSU5fU01BTExfWlwiO1xufSkoQ09ERV9QT0lOVFMgfHwgKENPREVfUE9JTlRTID0ge30pKTtcbmV4cG9ydCBjb25zdCBTRVFVRU5DRVMgPSB7XG4gICAgREFTSF9EQVNIOiAnLS0nLFxuICAgIENEQVRBX1NUQVJUOiAnW0NEQVRBWycsXG4gICAgRE9DVFlQRTogJ2RvY3R5cGUnLFxuICAgIFNDUklQVDogJ3NjcmlwdCcsXG4gICAgUFVCTElDOiAncHVibGljJyxcbiAgICBTWVNURU06ICdzeXN0ZW0nLFxufTtcbi8vU3Vycm9nYXRlc1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3Vycm9nYXRlKGNwKSB7XG4gICAgcmV0dXJuIGNwID49IDU1Mjk2ICYmIGNwIDw9IDU3MzQzO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzU3Vycm9nYXRlUGFpcihjcCkge1xuICAgIHJldHVybiBjcCA+PSA1NjMyMCAmJiBjcCA8PSA1NzM0Mztcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdXJyb2dhdGVQYWlyQ29kZVBvaW50KGNwMSwgY3AyKSB7XG4gICAgcmV0dXJuIChjcDEgLSA1NTI5NikgKiAxMDI0ICsgOTIxNiArIGNwMjtcbn1cbi8vTk9URTogZXhjbHVkaW5nIE5VTEwgYW5kIEFTQ0lJIHdoaXRlc3BhY2VcbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRyb2xDb2RlUG9pbnQoY3ApIHtcbiAgICByZXR1cm4gKChjcCAhPT0gMHgyMCAmJiBjcCAhPT0gMHgwYSAmJiBjcCAhPT0gMHgwZCAmJiBjcCAhPT0gMHgwOSAmJiBjcCAhPT0gMHgwYyAmJiBjcCA+PSAweDAxICYmIGNwIDw9IDB4MWYpIHx8XG4gICAgICAgIChjcCA+PSAweDdmICYmIGNwIDw9IDB4OWYpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc1VuZGVmaW5lZENvZGVQb2ludChjcCkge1xuICAgIHJldHVybiAoY3AgPj0gNjQ5NzYgJiYgY3AgPD0gNjUwMDcpIHx8IFVOREVGSU5FRF9DT0RFX1BPSU5UUy5oYXMoY3ApO1xufVxuIiwgImV4cG9ydCB2YXIgRVJSO1xuKGZ1bmN0aW9uIChFUlIpIHtcbiAgICBFUlJbXCJjb250cm9sQ2hhcmFjdGVySW5JbnB1dFN0cmVhbVwiXSA9IFwiY29udHJvbC1jaGFyYWN0ZXItaW4taW5wdXQtc3RyZWFtXCI7XG4gICAgRVJSW1wibm9uY2hhcmFjdGVySW5JbnB1dFN0cmVhbVwiXSA9IFwibm9uY2hhcmFjdGVyLWluLWlucHV0LXN0cmVhbVwiO1xuICAgIEVSUltcInN1cnJvZ2F0ZUluSW5wdXRTdHJlYW1cIl0gPSBcInN1cnJvZ2F0ZS1pbi1pbnB1dC1zdHJlYW1cIjtcbiAgICBFUlJbXCJub25Wb2lkSHRtbEVsZW1lbnRTdGFydFRhZ1dpdGhUcmFpbGluZ1NvbGlkdXNcIl0gPSBcIm5vbi12b2lkLWh0bWwtZWxlbWVudC1zdGFydC10YWctd2l0aC10cmFpbGluZy1zb2xpZHVzXCI7XG4gICAgRVJSW1wiZW5kVGFnV2l0aEF0dHJpYnV0ZXNcIl0gPSBcImVuZC10YWctd2l0aC1hdHRyaWJ1dGVzXCI7XG4gICAgRVJSW1wiZW5kVGFnV2l0aFRyYWlsaW5nU29saWR1c1wiXSA9IFwiZW5kLXRhZy13aXRoLXRyYWlsaW5nLXNvbGlkdXNcIjtcbiAgICBFUlJbXCJ1bmV4cGVjdGVkU29saWR1c0luVGFnXCJdID0gXCJ1bmV4cGVjdGVkLXNvbGlkdXMtaW4tdGFnXCI7XG4gICAgRVJSW1widW5leHBlY3RlZE51bGxDaGFyYWN0ZXJcIl0gPSBcInVuZXhwZWN0ZWQtbnVsbC1jaGFyYWN0ZXJcIjtcbiAgICBFUlJbXCJ1bmV4cGVjdGVkUXVlc3Rpb25NYXJrSW5zdGVhZE9mVGFnTmFtZVwiXSA9IFwidW5leHBlY3RlZC1xdWVzdGlvbi1tYXJrLWluc3RlYWQtb2YtdGFnLW5hbWVcIjtcbiAgICBFUlJbXCJpbnZhbGlkRmlyc3RDaGFyYWN0ZXJPZlRhZ05hbWVcIl0gPSBcImludmFsaWQtZmlyc3QtY2hhcmFjdGVyLW9mLXRhZy1uYW1lXCI7XG4gICAgRVJSW1widW5leHBlY3RlZEVxdWFsc1NpZ25CZWZvcmVBdHRyaWJ1dGVOYW1lXCJdID0gXCJ1bmV4cGVjdGVkLWVxdWFscy1zaWduLWJlZm9yZS1hdHRyaWJ1dGUtbmFtZVwiO1xuICAgIEVSUltcIm1pc3NpbmdFbmRUYWdOYW1lXCJdID0gXCJtaXNzaW5nLWVuZC10YWctbmFtZVwiO1xuICAgIEVSUltcInVuZXhwZWN0ZWRDaGFyYWN0ZXJJbkF0dHJpYnV0ZU5hbWVcIl0gPSBcInVuZXhwZWN0ZWQtY2hhcmFjdGVyLWluLWF0dHJpYnV0ZS1uYW1lXCI7XG4gICAgRVJSW1widW5rbm93bk5hbWVkQ2hhcmFjdGVyUmVmZXJlbmNlXCJdID0gXCJ1bmtub3duLW5hbWVkLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJtaXNzaW5nU2VtaWNvbG9uQWZ0ZXJDaGFyYWN0ZXJSZWZlcmVuY2VcIl0gPSBcIm1pc3Npbmctc2VtaWNvbG9uLWFmdGVyLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJ1bmV4cGVjdGVkQ2hhcmFjdGVyQWZ0ZXJEb2N0eXBlU3lzdGVtSWRlbnRpZmllclwiXSA9IFwidW5leHBlY3RlZC1jaGFyYWN0ZXItYWZ0ZXItZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllclwiO1xuICAgIEVSUltcInVuZXhwZWN0ZWRDaGFyYWN0ZXJJblVucXVvdGVkQXR0cmlidXRlVmFsdWVcIl0gPSBcInVuZXhwZWN0ZWQtY2hhcmFjdGVyLWluLXVucXVvdGVkLWF0dHJpYnV0ZS12YWx1ZVwiO1xuICAgIEVSUltcImVvZkJlZm9yZVRhZ05hbWVcIl0gPSBcImVvZi1iZWZvcmUtdGFnLW5hbWVcIjtcbiAgICBFUlJbXCJlb2ZJblRhZ1wiXSA9IFwiZW9mLWluLXRhZ1wiO1xuICAgIEVSUltcIm1pc3NpbmdBdHRyaWJ1dGVWYWx1ZVwiXSA9IFwibWlzc2luZy1hdHRyaWJ1dGUtdmFsdWVcIjtcbiAgICBFUlJbXCJtaXNzaW5nV2hpdGVzcGFjZUJldHdlZW5BdHRyaWJ1dGVzXCJdID0gXCJtaXNzaW5nLXdoaXRlc3BhY2UtYmV0d2Vlbi1hdHRyaWJ1dGVzXCI7XG4gICAgRVJSW1wibWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVQdWJsaWNLZXl3b3JkXCJdID0gXCJtaXNzaW5nLXdoaXRlc3BhY2UtYWZ0ZXItZG9jdHlwZS1wdWJsaWMta2V5d29yZFwiO1xuICAgIEVSUltcIm1pc3NpbmdXaGl0ZXNwYWNlQmV0d2VlbkRvY3R5cGVQdWJsaWNBbmRTeXN0ZW1JZGVudGlmaWVyc1wiXSA9IFwibWlzc2luZy13aGl0ZXNwYWNlLWJldHdlZW4tZG9jdHlwZS1wdWJsaWMtYW5kLXN5c3RlbS1pZGVudGlmaWVyc1wiO1xuICAgIEVSUltcIm1pc3NpbmdXaGl0ZXNwYWNlQWZ0ZXJEb2N0eXBlU3lzdGVtS2V5d29yZFwiXSA9IFwibWlzc2luZy13aGl0ZXNwYWNlLWFmdGVyLWRvY3R5cGUtc3lzdGVtLWtleXdvcmRcIjtcbiAgICBFUlJbXCJtaXNzaW5nUXVvdGVCZWZvcmVEb2N0eXBlUHVibGljSWRlbnRpZmllclwiXSA9IFwibWlzc2luZy1xdW90ZS1iZWZvcmUtZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllclwiO1xuICAgIEVSUltcIm1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyXCJdID0gXCJtaXNzaW5nLXF1b3RlLWJlZm9yZS1kb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyXCI7XG4gICAgRVJSW1wibWlzc2luZ0RvY3R5cGVQdWJsaWNJZGVudGlmaWVyXCJdID0gXCJtaXNzaW5nLWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXJcIjtcbiAgICBFUlJbXCJtaXNzaW5nRG9jdHlwZVN5c3RlbUlkZW50aWZpZXJcIl0gPSBcIm1pc3NpbmctZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllclwiO1xuICAgIEVSUltcImFicnVwdERvY3R5cGVQdWJsaWNJZGVudGlmaWVyXCJdID0gXCJhYnJ1cHQtZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllclwiO1xuICAgIEVSUltcImFicnVwdERvY3R5cGVTeXN0ZW1JZGVudGlmaWVyXCJdID0gXCJhYnJ1cHQtZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllclwiO1xuICAgIEVSUltcImNkYXRhSW5IdG1sQ29udGVudFwiXSA9IFwiY2RhdGEtaW4taHRtbC1jb250ZW50XCI7XG4gICAgRVJSW1wiaW5jb3JyZWN0bHlPcGVuZWRDb21tZW50XCJdID0gXCJpbmNvcnJlY3RseS1vcGVuZWQtY29tbWVudFwiO1xuICAgIEVSUltcImVvZkluU2NyaXB0SHRtbENvbW1lbnRMaWtlVGV4dFwiXSA9IFwiZW9mLWluLXNjcmlwdC1odG1sLWNvbW1lbnQtbGlrZS10ZXh0XCI7XG4gICAgRVJSW1wiZW9mSW5Eb2N0eXBlXCJdID0gXCJlb2YtaW4tZG9jdHlwZVwiO1xuICAgIEVSUltcIm5lc3RlZENvbW1lbnRcIl0gPSBcIm5lc3RlZC1jb21tZW50XCI7XG4gICAgRVJSW1wiYWJydXB0Q2xvc2luZ09mRW1wdHlDb21tZW50XCJdID0gXCJhYnJ1cHQtY2xvc2luZy1vZi1lbXB0eS1jb21tZW50XCI7XG4gICAgRVJSW1wiZW9mSW5Db21tZW50XCJdID0gXCJlb2YtaW4tY29tbWVudFwiO1xuICAgIEVSUltcImluY29ycmVjdGx5Q2xvc2VkQ29tbWVudFwiXSA9IFwiaW5jb3JyZWN0bHktY2xvc2VkLWNvbW1lbnRcIjtcbiAgICBFUlJbXCJlb2ZJbkNkYXRhXCJdID0gXCJlb2YtaW4tY2RhdGFcIjtcbiAgICBFUlJbXCJhYnNlbmNlT2ZEaWdpdHNJbk51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2VcIl0gPSBcImFic2VuY2Utb2YtZGlnaXRzLWluLW51bWVyaWMtY2hhcmFjdGVyLXJlZmVyZW5jZVwiO1xuICAgIEVSUltcIm51bGxDaGFyYWN0ZXJSZWZlcmVuY2VcIl0gPSBcIm51bGwtY2hhcmFjdGVyLXJlZmVyZW5jZVwiO1xuICAgIEVSUltcInN1cnJvZ2F0ZUNoYXJhY3RlclJlZmVyZW5jZVwiXSA9IFwic3Vycm9nYXRlLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJjaGFyYWN0ZXJSZWZlcmVuY2VPdXRzaWRlVW5pY29kZVJhbmdlXCJdID0gXCJjaGFyYWN0ZXItcmVmZXJlbmNlLW91dHNpZGUtdW5pY29kZS1yYW5nZVwiO1xuICAgIEVSUltcImNvbnRyb2xDaGFyYWN0ZXJSZWZlcmVuY2VcIl0gPSBcImNvbnRyb2wtY2hhcmFjdGVyLXJlZmVyZW5jZVwiO1xuICAgIEVSUltcIm5vbmNoYXJhY3RlckNoYXJhY3RlclJlZmVyZW5jZVwiXSA9IFwibm9uY2hhcmFjdGVyLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJtaXNzaW5nV2hpdGVzcGFjZUJlZm9yZURvY3R5cGVOYW1lXCJdID0gXCJtaXNzaW5nLXdoaXRlc3BhY2UtYmVmb3JlLWRvY3R5cGUtbmFtZVwiO1xuICAgIEVSUltcIm1pc3NpbmdEb2N0eXBlTmFtZVwiXSA9IFwibWlzc2luZy1kb2N0eXBlLW5hbWVcIjtcbiAgICBFUlJbXCJpbnZhbGlkQ2hhcmFjdGVyU2VxdWVuY2VBZnRlckRvY3R5cGVOYW1lXCJdID0gXCJpbnZhbGlkLWNoYXJhY3Rlci1zZXF1ZW5jZS1hZnRlci1kb2N0eXBlLW5hbWVcIjtcbiAgICBFUlJbXCJkdXBsaWNhdGVBdHRyaWJ1dGVcIl0gPSBcImR1cGxpY2F0ZS1hdHRyaWJ1dGVcIjtcbiAgICBFUlJbXCJub25Db25mb3JtaW5nRG9jdHlwZVwiXSA9IFwibm9uLWNvbmZvcm1pbmctZG9jdHlwZVwiO1xuICAgIEVSUltcIm1pc3NpbmdEb2N0eXBlXCJdID0gXCJtaXNzaW5nLWRvY3R5cGVcIjtcbiAgICBFUlJbXCJtaXNwbGFjZWREb2N0eXBlXCJdID0gXCJtaXNwbGFjZWQtZG9jdHlwZVwiO1xuICAgIEVSUltcImVuZFRhZ1dpdGhvdXRNYXRjaGluZ09wZW5FbGVtZW50XCJdID0gXCJlbmQtdGFnLXdpdGhvdXQtbWF0Y2hpbmctb3Blbi1lbGVtZW50XCI7XG4gICAgRVJSW1wiY2xvc2luZ09mRWxlbWVudFdpdGhPcGVuQ2hpbGRFbGVtZW50c1wiXSA9IFwiY2xvc2luZy1vZi1lbGVtZW50LXdpdGgtb3Blbi1jaGlsZC1lbGVtZW50c1wiO1xuICAgIEVSUltcImRpc2FsbG93ZWRDb250ZW50SW5Ob3NjcmlwdEluSGVhZFwiXSA9IFwiZGlzYWxsb3dlZC1jb250ZW50LWluLW5vc2NyaXB0LWluLWhlYWRcIjtcbiAgICBFUlJbXCJvcGVuRWxlbWVudHNMZWZ0QWZ0ZXJFb2ZcIl0gPSBcIm9wZW4tZWxlbWVudHMtbGVmdC1hZnRlci1lb2ZcIjtcbiAgICBFUlJbXCJhYmFuZG9uZWRIZWFkRWxlbWVudENoaWxkXCJdID0gXCJhYmFuZG9uZWQtaGVhZC1lbGVtZW50LWNoaWxkXCI7XG4gICAgRVJSW1wibWlzcGxhY2VkU3RhcnRUYWdGb3JIZWFkRWxlbWVudFwiXSA9IFwibWlzcGxhY2VkLXN0YXJ0LXRhZy1mb3ItaGVhZC1lbGVtZW50XCI7XG4gICAgRVJSW1wibmVzdGVkTm9zY3JpcHRJbkhlYWRcIl0gPSBcIm5lc3RlZC1ub3NjcmlwdC1pbi1oZWFkXCI7XG4gICAgRVJSW1wiZW9mSW5FbGVtZW50VGhhdENhbkNvbnRhaW5Pbmx5VGV4dFwiXSA9IFwiZW9mLWluLWVsZW1lbnQtdGhhdC1jYW4tY29udGFpbi1vbmx5LXRleHRcIjtcbn0pKEVSUiB8fCAoRVJSID0ge30pKTtcbiIsICJpbXBvcnQgeyBDT0RFX1BPSU5UUyBhcyAkLCBnZXRTdXJyb2dhdGVQYWlyQ29kZVBvaW50LCBpc0NvbnRyb2xDb2RlUG9pbnQsIGlzU3Vycm9nYXRlLCBpc1N1cnJvZ2F0ZVBhaXIsIGlzVW5kZWZpbmVkQ29kZVBvaW50LCB9IGZyb20gJy4uL2NvbW1vbi91bmljb2RlLmpzJztcbmltcG9ydCB7IEVSUiB9IGZyb20gJy4uL2NvbW1vbi9lcnJvci1jb2Rlcy5qcyc7XG4vL0NvbnN0XG5jb25zdCBERUZBVUxUX0JVRkZFUl9XQVRFUkxJTkUgPSAxIDw8IDE2O1xuLy9QcmVwcm9jZXNzb3Jcbi8vTk9URTogSFRNTCBpbnB1dCBwcmVwcm9jZXNzaW5nXG4vLyhzZWU6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3BhcnNpbmcuaHRtbCNwcmVwcm9jZXNzaW5nLXRoZS1pbnB1dC1zdHJlYW0pXG5leHBvcnQgY2xhc3MgUHJlcHJvY2Vzc29yIHtcbiAgICBjb25zdHJ1Y3RvcihoYW5kbGVyKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlciA9IGhhbmRsZXI7XG4gICAgICAgIHRoaXMuaHRtbCA9ICcnO1xuICAgICAgICB0aGlzLnBvcyA9IC0xO1xuICAgICAgICAvLyBOT1RFOiBJbml0aWFsIGBsYXN0R2FwUG9zYCBpcyAtMiwgdG8gZW5zdXJlIGBjb2xgIG9uIGluaXRpYWxpc2F0aW9uIGlzIDBcbiAgICAgICAgdGhpcy5sYXN0R2FwUG9zID0gLTI7XG4gICAgICAgIHRoaXMuZ2FwU3RhY2sgPSBbXTtcbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sYXN0Q2h1bmtXcml0dGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmJ1ZmZlcldhdGVybGluZSA9IERFRkFVTFRfQlVGRkVSX1dBVEVSTElORTtcbiAgICAgICAgdGhpcy5pc0VvbCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxpbmVTdGFydFBvcyA9IDA7XG4gICAgICAgIHRoaXMuZHJvcHBlZEJ1ZmZlclNpemUgPSAwO1xuICAgICAgICB0aGlzLmxpbmUgPSAxO1xuICAgICAgICAvL05PVEU6IGF2b2lkIHJlcG9ydGluZyBlcnJvcnMgdHdpY2Ugb24gYWR2YW5jZS9yZXRyZWF0XG4gICAgICAgIHRoaXMubGFzdEVyck9mZnNldCA9IC0xO1xuICAgIH1cbiAgICAvKiogVGhlIGNvbHVtbiBvbiB0aGUgY3VycmVudCBsaW5lLiBJZiB3ZSBqdXN0IHNhdyBhIGdhcCAoZWcuIGEgc3Vycm9nYXRlIHBhaXIpLCByZXR1cm4gdGhlIGluZGV4IGJlZm9yZS4gKi9cbiAgICBnZXQgY29sKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3MgLSB0aGlzLmxpbmVTdGFydFBvcyArIE51bWJlcih0aGlzLmxhc3RHYXBQb3MgIT09IHRoaXMucG9zKTtcbiAgICB9XG4gICAgZ2V0IG9mZnNldCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZHJvcHBlZEJ1ZmZlclNpemUgKyB0aGlzLnBvcztcbiAgICB9XG4gICAgZ2V0RXJyb3IoY29kZSwgY3BPZmZzZXQpIHtcbiAgICAgICAgY29uc3QgeyBsaW5lLCBjb2wsIG9mZnNldCB9ID0gdGhpcztcbiAgICAgICAgY29uc3Qgc3RhcnRDb2wgPSBjb2wgKyBjcE9mZnNldDtcbiAgICAgICAgY29uc3Qgc3RhcnRPZmZzZXQgPSBvZmZzZXQgKyBjcE9mZnNldDtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvZGUsXG4gICAgICAgICAgICBzdGFydExpbmU6IGxpbmUsXG4gICAgICAgICAgICBlbmRMaW5lOiBsaW5lLFxuICAgICAgICAgICAgc3RhcnRDb2wsXG4gICAgICAgICAgICBlbmRDb2w6IHN0YXJ0Q29sLFxuICAgICAgICAgICAgc3RhcnRPZmZzZXQsXG4gICAgICAgICAgICBlbmRPZmZzZXQ6IHN0YXJ0T2Zmc2V0LFxuICAgICAgICB9O1xuICAgIH1cbiAgICBfZXJyKGNvZGUpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFuZGxlci5vblBhcnNlRXJyb3IgJiYgdGhpcy5sYXN0RXJyT2Zmc2V0ICE9PSB0aGlzLm9mZnNldCkge1xuICAgICAgICAgICAgdGhpcy5sYXN0RXJyT2Zmc2V0ID0gdGhpcy5vZmZzZXQ7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZXIub25QYXJzZUVycm9yKHRoaXMuZ2V0RXJyb3IoY29kZSwgMCkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9hZGRHYXAoKSB7XG4gICAgICAgIHRoaXMuZ2FwU3RhY2sucHVzaCh0aGlzLmxhc3RHYXBQb3MpO1xuICAgICAgICB0aGlzLmxhc3RHYXBQb3MgPSB0aGlzLnBvcztcbiAgICB9XG4gICAgX3Byb2Nlc3NTdXJyb2dhdGUoY3ApIHtcbiAgICAgICAgLy9OT1RFOiB0cnkgdG8gcGVlayBhIHN1cnJvZ2F0ZSBwYWlyXG4gICAgICAgIGlmICh0aGlzLnBvcyAhPT0gdGhpcy5odG1sLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIGNvbnN0IG5leHRDcCA9IHRoaXMuaHRtbC5jaGFyQ29kZUF0KHRoaXMucG9zICsgMSk7XG4gICAgICAgICAgICBpZiAoaXNTdXJyb2dhdGVQYWlyKG5leHRDcCkpIHtcbiAgICAgICAgICAgICAgICAvL05PVEU6IHdlIGhhdmUgYSBzdXJyb2dhdGUgcGFpci4gUGVlayBwYWlyIGNoYXJhY3RlciBhbmQgcmVjYWxjdWxhdGUgY29kZSBwb2ludC5cbiAgICAgICAgICAgICAgICB0aGlzLnBvcysrO1xuICAgICAgICAgICAgICAgIC8vTk9URTogYWRkIGEgZ2FwIHRoYXQgc2hvdWxkIGJlIGF2b2lkZWQgZHVyaW5nIHJldHJlYXRcbiAgICAgICAgICAgICAgICB0aGlzLl9hZGRHYXAoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0U3Vycm9nYXRlUGFpckNvZGVQb2ludChjcCwgbmV4dENwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvL05PVEU6IHdlIGFyZSBhdCB0aGUgZW5kIG9mIGEgY2h1bmssIHRoZXJlZm9yZSB3ZSBjYW4ndCBpbmZlciB0aGUgc3Vycm9nYXRlIHBhaXIgeWV0LlxuICAgICAgICBlbHNlIGlmICghdGhpcy5sYXN0Q2h1bmtXcml0dGVuKSB7XG4gICAgICAgICAgICB0aGlzLmVuZE9mQ2h1bmtIaXQgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuICQuRU9GO1xuICAgICAgICB9XG4gICAgICAgIC8vTk9URTogaXNvbGF0ZWQgc3Vycm9nYXRlXG4gICAgICAgIHRoaXMuX2VycihFUlIuc3Vycm9nYXRlSW5JbnB1dFN0cmVhbSk7XG4gICAgICAgIHJldHVybiBjcDtcbiAgICB9XG4gICAgd2lsbERyb3BQYXJzZWRDaHVuaygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9zID4gdGhpcy5idWZmZXJXYXRlcmxpbmU7XG4gICAgfVxuICAgIGRyb3BQYXJzZWRDaHVuaygpIHtcbiAgICAgICAgaWYgKHRoaXMud2lsbERyb3BQYXJzZWRDaHVuaygpKSB7XG4gICAgICAgICAgICB0aGlzLmh0bWwgPSB0aGlzLmh0bWwuc3Vic3RyaW5nKHRoaXMucG9zKTtcbiAgICAgICAgICAgIHRoaXMubGluZVN0YXJ0UG9zIC09IHRoaXMucG9zO1xuICAgICAgICAgICAgdGhpcy5kcm9wcGVkQnVmZmVyU2l6ZSArPSB0aGlzLnBvcztcbiAgICAgICAgICAgIHRoaXMucG9zID0gMDtcbiAgICAgICAgICAgIHRoaXMubGFzdEdhcFBvcyA9IC0yO1xuICAgICAgICAgICAgdGhpcy5nYXBTdGFjay5sZW5ndGggPSAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIHdyaXRlKGNodW5rLCBpc0xhc3RDaHVuaykge1xuICAgICAgICBpZiAodGhpcy5odG1sLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuaHRtbCArPSBjaHVuaztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaHRtbCA9IGNodW5rO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxhc3RDaHVua1dyaXR0ZW4gPSBpc0xhc3RDaHVuaztcbiAgICB9XG4gICAgaW5zZXJ0SHRtbEF0Q3VycmVudFBvcyhjaHVuaykge1xuICAgICAgICB0aGlzLmh0bWwgPSB0aGlzLmh0bWwuc3Vic3RyaW5nKDAsIHRoaXMucG9zICsgMSkgKyBjaHVuayArIHRoaXMuaHRtbC5zdWJzdHJpbmcodGhpcy5wb3MgKyAxKTtcbiAgICAgICAgdGhpcy5lbmRPZkNodW5rSGl0ID0gZmFsc2U7XG4gICAgfVxuICAgIHN0YXJ0c1dpdGgocGF0dGVybiwgY2FzZVNlbnNpdGl2ZSkge1xuICAgICAgICAvLyBDaGVjayBpZiBvdXIgYnVmZmVyIGhhcyBlbm91Z2ggY2hhcmFjdGVyc1xuICAgICAgICBpZiAodGhpcy5wb3MgKyBwYXR0ZXJuLmxlbmd0aCA+IHRoaXMuaHRtbC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9ICF0aGlzLmxhc3RDaHVua1dyaXR0ZW47XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNhc2VTZW5zaXRpdmUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0bWwuc3RhcnRzV2l0aChwYXR0ZXJuLCB0aGlzLnBvcyk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXR0ZXJuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBjcCA9IHRoaXMuaHRtbC5jaGFyQ29kZUF0KHRoaXMucG9zICsgaSkgfCAweDIwO1xuICAgICAgICAgICAgaWYgKGNwICE9PSBwYXR0ZXJuLmNoYXJDb2RlQXQoaSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHBlZWsob2Zmc2V0KSB7XG4gICAgICAgIGNvbnN0IHBvcyA9IHRoaXMucG9zICsgb2Zmc2V0O1xuICAgICAgICBpZiAocG9zID49IHRoaXMuaHRtbC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9ICF0aGlzLmxhc3RDaHVua1dyaXR0ZW47XG4gICAgICAgICAgICByZXR1cm4gJC5FT0Y7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29kZSA9IHRoaXMuaHRtbC5jaGFyQ29kZUF0KHBvcyk7XG4gICAgICAgIHJldHVybiBjb2RlID09PSAkLkNBUlJJQUdFX1JFVFVSTiA/ICQuTElORV9GRUVEIDogY29kZTtcbiAgICB9XG4gICAgYWR2YW5jZSgpIHtcbiAgICAgICAgdGhpcy5wb3MrKztcbiAgICAgICAgLy9OT1RFOiBMRiBzaG91bGQgYmUgaW4gdGhlIGxhc3QgY29sdW1uIG9mIHRoZSBsaW5lXG4gICAgICAgIGlmICh0aGlzLmlzRW9sKSB7XG4gICAgICAgICAgICB0aGlzLmlzRW9sID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmxpbmUrKztcbiAgICAgICAgICAgIHRoaXMubGluZVN0YXJ0UG9zID0gdGhpcy5wb3M7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucG9zID49IHRoaXMuaHRtbC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9ICF0aGlzLmxhc3RDaHVua1dyaXR0ZW47XG4gICAgICAgICAgICByZXR1cm4gJC5FT0Y7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGNwID0gdGhpcy5odG1sLmNoYXJDb2RlQXQodGhpcy5wb3MpO1xuICAgICAgICAvL05PVEU6IGFsbCBVKzAwMEQgQ0FSUklBR0UgUkVUVVJOIChDUikgY2hhcmFjdGVycyBtdXN0IGJlIGNvbnZlcnRlZCB0byBVKzAwMEEgTElORSBGRUVEIChMRikgY2hhcmFjdGVyc1xuICAgICAgICBpZiAoY3AgPT09ICQuQ0FSUklBR0VfUkVUVVJOKSB7XG4gICAgICAgICAgICB0aGlzLmlzRW9sID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiAkLkxJTkVfRkVFRDtcbiAgICAgICAgfVxuICAgICAgICAvL05PVEU6IGFueSBVKzAwMEEgTElORSBGRUVEIChMRikgY2hhcmFjdGVycyB0aGF0IGltbWVkaWF0ZWx5IGZvbGxvdyBhIFUrMDAwRCBDQVJSSUFHRSBSRVRVUk4gKENSKSBjaGFyYWN0ZXJcbiAgICAgICAgLy9tdXN0IGJlIGlnbm9yZWQuXG4gICAgICAgIGlmIChjcCA9PT0gJC5MSU5FX0ZFRUQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNFb2wgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKHRoaXMuc2tpcE5leHROZXdMaW5lKSB7XG4gICAgICAgICAgICAgICAgLy8gYGxpbmVgIHdpbGwgYmUgYnVtcGVkIGFnYWluIGluIHRoZSByZWN1cnNpdmUgY2FsbC5cbiAgICAgICAgICAgICAgICB0aGlzLmxpbmUtLTtcbiAgICAgICAgICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkZEdhcCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFkdmFuY2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICBpZiAoaXNTdXJyb2dhdGUoY3ApKSB7XG4gICAgICAgICAgICBjcCA9IHRoaXMuX3Byb2Nlc3NTdXJyb2dhdGUoY3ApO1xuICAgICAgICB9XG4gICAgICAgIC8vT1BUSU1JWkFUSU9OOiBmaXJzdCBjaGVjayBpZiBjb2RlIHBvaW50IGlzIGluIHRoZSBjb21tb24gYWxsb3dlZFxuICAgICAgICAvL3JhbmdlIChBU0NJSSBhbHBoYW51bWVyaWMsIHdoaXRlc3BhY2VzLCBiaWcgY2h1bmsgb2YgQk1QKVxuICAgICAgICAvL2JlZm9yZSBnb2luZyBpbnRvIGRldGFpbGVkIHBlcmZvcm1hbmNlIGNvc3QgdmFsaWRhdGlvbi5cbiAgICAgICAgY29uc3QgaXNDb21tb25WYWxpZFJhbmdlID0gdGhpcy5oYW5kbGVyLm9uUGFyc2VFcnJvciA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgKGNwID4gMHgxZiAmJiBjcCA8IDB4N2YpIHx8XG4gICAgICAgICAgICBjcCA9PT0gJC5MSU5FX0ZFRUQgfHxcbiAgICAgICAgICAgIGNwID09PSAkLkNBUlJJQUdFX1JFVFVSTiB8fFxuICAgICAgICAgICAgKGNwID4gMHg5ZiAmJiBjcCA8IDY0OTc2KTtcbiAgICAgICAgaWYgKCFpc0NvbW1vblZhbGlkUmFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX2NoZWNrRm9yUHJvYmxlbWF0aWNDaGFyYWN0ZXJzKGNwKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3A7XG4gICAgfVxuICAgIF9jaGVja0ZvclByb2JsZW1hdGljQ2hhcmFjdGVycyhjcCkge1xuICAgICAgICBpZiAoaXNDb250cm9sQ29kZVBvaW50KGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5jb250cm9sQ2hhcmFjdGVySW5JbnB1dFN0cmVhbSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNVbmRlZmluZWRDb2RlUG9pbnQoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm5vbmNoYXJhY3RlckluSW5wdXRTdHJlYW0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHJlYXQoY291bnQpIHtcbiAgICAgICAgdGhpcy5wb3MgLT0gY291bnQ7XG4gICAgICAgIHdoaWxlICh0aGlzLnBvcyA8IHRoaXMubGFzdEdhcFBvcykge1xuICAgICAgICAgICAgdGhpcy5sYXN0R2FwUG9zID0gdGhpcy5nYXBTdGFjay5wb3AoKTtcbiAgICAgICAgICAgIHRoaXMucG9zLS07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc0VvbCA9IGZhbHNlO1xuICAgIH1cbn1cbiIsICJleHBvcnQgdmFyIFRva2VuVHlwZTtcbihmdW5jdGlvbiAoVG9rZW5UeXBlKSB7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkNIQVJBQ1RFUlwiXSA9IDBdID0gXCJDSEFSQUNURVJcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiTlVMTF9DSEFSQUNURVJcIl0gPSAxXSA9IFwiTlVMTF9DSEFSQUNURVJcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiV0hJVEVTUEFDRV9DSEFSQUNURVJcIl0gPSAyXSA9IFwiV0hJVEVTUEFDRV9DSEFSQUNURVJcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiU1RBUlRfVEFHXCJdID0gM10gPSBcIlNUQVJUX1RBR1wiO1xuICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJFTkRfVEFHXCJdID0gNF0gPSBcIkVORF9UQUdcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiQ09NTUVOVFwiXSA9IDVdID0gXCJDT01NRU5UXCI7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkRPQ1RZUEVcIl0gPSA2XSA9IFwiRE9DVFlQRVwiO1xuICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJFT0ZcIl0gPSA3XSA9IFwiRU9GXCI7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkhJQkVSTkFUSU9OXCJdID0gOF0gPSBcIkhJQkVSTkFUSU9OXCI7XG59KShUb2tlblR5cGUgfHwgKFRva2VuVHlwZSA9IHt9KSk7XG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9rZW5BdHRyKHRva2VuLCBhdHRyTmFtZSkge1xuICAgIGZvciAobGV0IGkgPSB0b2tlbi5hdHRycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICBpZiAodG9rZW4uYXR0cnNbaV0ubmFtZSA9PT0gYXR0ck5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0b2tlbi5hdHRyc1tpXS52YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cbiIsIG51bGwsIG51bGwsIG51bGwsIG51bGwsICIvKiogQWxsIHZhbGlkIG5hbWVzcGFjZXMgaW4gSFRNTC4gKi9cbmV4cG9ydCB2YXIgTlM7XG4oZnVuY3Rpb24gKE5TKSB7XG4gICAgTlNbXCJIVE1MXCJdID0gXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCI7XG4gICAgTlNbXCJNQVRITUxcIl0gPSBcImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUxcIjtcbiAgICBOU1tcIlNWR1wiXSA9IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIjtcbiAgICBOU1tcIlhMSU5LXCJdID0gXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCI7XG4gICAgTlNbXCJYTUxcIl0gPSBcImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZVwiO1xuICAgIE5TW1wiWE1MTlNcIl0gPSBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvXCI7XG59KShOUyB8fCAoTlMgPSB7fSkpO1xuZXhwb3J0IHZhciBBVFRSUztcbihmdW5jdGlvbiAoQVRUUlMpIHtcbiAgICBBVFRSU1tcIlRZUEVcIl0gPSBcInR5cGVcIjtcbiAgICBBVFRSU1tcIkFDVElPTlwiXSA9IFwiYWN0aW9uXCI7XG4gICAgQVRUUlNbXCJFTkNPRElOR1wiXSA9IFwiZW5jb2RpbmdcIjtcbiAgICBBVFRSU1tcIlBST01QVFwiXSA9IFwicHJvbXB0XCI7XG4gICAgQVRUUlNbXCJOQU1FXCJdID0gXCJuYW1lXCI7XG4gICAgQVRUUlNbXCJDT0xPUlwiXSA9IFwiY29sb3JcIjtcbiAgICBBVFRSU1tcIkZBQ0VcIl0gPSBcImZhY2VcIjtcbiAgICBBVFRSU1tcIlNJWkVcIl0gPSBcInNpemVcIjtcbn0pKEFUVFJTIHx8IChBVFRSUyA9IHt9KSk7XG4vKipcbiAqIFRoZSBtb2RlIG9mIHRoZSBkb2N1bWVudC5cbiAqXG4gKiBAc2VlIHtAbGluayBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2NvbmNlcHQtZG9jdW1lbnQtbGltaXRlZC1xdWlya3N9XG4gKi9cbmV4cG9ydCB2YXIgRE9DVU1FTlRfTU9ERTtcbihmdW5jdGlvbiAoRE9DVU1FTlRfTU9ERSkge1xuICAgIERPQ1VNRU5UX01PREVbXCJOT19RVUlSS1NcIl0gPSBcIm5vLXF1aXJrc1wiO1xuICAgIERPQ1VNRU5UX01PREVbXCJRVUlSS1NcIl0gPSBcInF1aXJrc1wiO1xuICAgIERPQ1VNRU5UX01PREVbXCJMSU1JVEVEX1FVSVJLU1wiXSA9IFwibGltaXRlZC1xdWlya3NcIjtcbn0pKERPQ1VNRU5UX01PREUgfHwgKERPQ1VNRU5UX01PREUgPSB7fSkpO1xuZXhwb3J0IHZhciBUQUdfTkFNRVM7XG4oZnVuY3Rpb24gKFRBR19OQU1FUykge1xuICAgIFRBR19OQU1FU1tcIkFcIl0gPSBcImFcIjtcbiAgICBUQUdfTkFNRVNbXCJBRERSRVNTXCJdID0gXCJhZGRyZXNzXCI7XG4gICAgVEFHX05BTUVTW1wiQU5OT1RBVElPTl9YTUxcIl0gPSBcImFubm90YXRpb24teG1sXCI7XG4gICAgVEFHX05BTUVTW1wiQVBQTEVUXCJdID0gXCJhcHBsZXRcIjtcbiAgICBUQUdfTkFNRVNbXCJBUkVBXCJdID0gXCJhcmVhXCI7XG4gICAgVEFHX05BTUVTW1wiQVJUSUNMRVwiXSA9IFwiYXJ0aWNsZVwiO1xuICAgIFRBR19OQU1FU1tcIkFTSURFXCJdID0gXCJhc2lkZVwiO1xuICAgIFRBR19OQU1FU1tcIkJcIl0gPSBcImJcIjtcbiAgICBUQUdfTkFNRVNbXCJCQVNFXCJdID0gXCJiYXNlXCI7XG4gICAgVEFHX05BTUVTW1wiQkFTRUZPTlRcIl0gPSBcImJhc2Vmb250XCI7XG4gICAgVEFHX05BTUVTW1wiQkdTT1VORFwiXSA9IFwiYmdzb3VuZFwiO1xuICAgIFRBR19OQU1FU1tcIkJJR1wiXSA9IFwiYmlnXCI7XG4gICAgVEFHX05BTUVTW1wiQkxPQ0tRVU9URVwiXSA9IFwiYmxvY2txdW90ZVwiO1xuICAgIFRBR19OQU1FU1tcIkJPRFlcIl0gPSBcImJvZHlcIjtcbiAgICBUQUdfTkFNRVNbXCJCUlwiXSA9IFwiYnJcIjtcbiAgICBUQUdfTkFNRVNbXCJCVVRUT05cIl0gPSBcImJ1dHRvblwiO1xuICAgIFRBR19OQU1FU1tcIkNBUFRJT05cIl0gPSBcImNhcHRpb25cIjtcbiAgICBUQUdfTkFNRVNbXCJDRU5URVJcIl0gPSBcImNlbnRlclwiO1xuICAgIFRBR19OQU1FU1tcIkNPREVcIl0gPSBcImNvZGVcIjtcbiAgICBUQUdfTkFNRVNbXCJDT0xcIl0gPSBcImNvbFwiO1xuICAgIFRBR19OQU1FU1tcIkNPTEdST1VQXCJdID0gXCJjb2xncm91cFwiO1xuICAgIFRBR19OQU1FU1tcIkREXCJdID0gXCJkZFwiO1xuICAgIFRBR19OQU1FU1tcIkRFU0NcIl0gPSBcImRlc2NcIjtcbiAgICBUQUdfTkFNRVNbXCJERVRBSUxTXCJdID0gXCJkZXRhaWxzXCI7XG4gICAgVEFHX05BTUVTW1wiRElBTE9HXCJdID0gXCJkaWFsb2dcIjtcbiAgICBUQUdfTkFNRVNbXCJESVJcIl0gPSBcImRpclwiO1xuICAgIFRBR19OQU1FU1tcIkRJVlwiXSA9IFwiZGl2XCI7XG4gICAgVEFHX05BTUVTW1wiRExcIl0gPSBcImRsXCI7XG4gICAgVEFHX05BTUVTW1wiRFRcIl0gPSBcImR0XCI7XG4gICAgVEFHX05BTUVTW1wiRU1cIl0gPSBcImVtXCI7XG4gICAgVEFHX05BTUVTW1wiRU1CRURcIl0gPSBcImVtYmVkXCI7XG4gICAgVEFHX05BTUVTW1wiRklFTERTRVRcIl0gPSBcImZpZWxkc2V0XCI7XG4gICAgVEFHX05BTUVTW1wiRklHQ0FQVElPTlwiXSA9IFwiZmlnY2FwdGlvblwiO1xuICAgIFRBR19OQU1FU1tcIkZJR1VSRVwiXSA9IFwiZmlndXJlXCI7XG4gICAgVEFHX05BTUVTW1wiRk9OVFwiXSA9IFwiZm9udFwiO1xuICAgIFRBR19OQU1FU1tcIkZPT1RFUlwiXSA9IFwiZm9vdGVyXCI7XG4gICAgVEFHX05BTUVTW1wiRk9SRUlHTl9PQkpFQ1RcIl0gPSBcImZvcmVpZ25PYmplY3RcIjtcbiAgICBUQUdfTkFNRVNbXCJGT1JNXCJdID0gXCJmb3JtXCI7XG4gICAgVEFHX05BTUVTW1wiRlJBTUVcIl0gPSBcImZyYW1lXCI7XG4gICAgVEFHX05BTUVTW1wiRlJBTUVTRVRcIl0gPSBcImZyYW1lc2V0XCI7XG4gICAgVEFHX05BTUVTW1wiSDFcIl0gPSBcImgxXCI7XG4gICAgVEFHX05BTUVTW1wiSDJcIl0gPSBcImgyXCI7XG4gICAgVEFHX05BTUVTW1wiSDNcIl0gPSBcImgzXCI7XG4gICAgVEFHX05BTUVTW1wiSDRcIl0gPSBcImg0XCI7XG4gICAgVEFHX05BTUVTW1wiSDVcIl0gPSBcImg1XCI7XG4gICAgVEFHX05BTUVTW1wiSDZcIl0gPSBcImg2XCI7XG4gICAgVEFHX05BTUVTW1wiSEVBRFwiXSA9IFwiaGVhZFwiO1xuICAgIFRBR19OQU1FU1tcIkhFQURFUlwiXSA9IFwiaGVhZGVyXCI7XG4gICAgVEFHX05BTUVTW1wiSEdST1VQXCJdID0gXCJoZ3JvdXBcIjtcbiAgICBUQUdfTkFNRVNbXCJIUlwiXSA9IFwiaHJcIjtcbiAgICBUQUdfTkFNRVNbXCJIVE1MXCJdID0gXCJodG1sXCI7XG4gICAgVEFHX05BTUVTW1wiSVwiXSA9IFwiaVwiO1xuICAgIFRBR19OQU1FU1tcIklNR1wiXSA9IFwiaW1nXCI7XG4gICAgVEFHX05BTUVTW1wiSU1BR0VcIl0gPSBcImltYWdlXCI7XG4gICAgVEFHX05BTUVTW1wiSU5QVVRcIl0gPSBcImlucHV0XCI7XG4gICAgVEFHX05BTUVTW1wiSUZSQU1FXCJdID0gXCJpZnJhbWVcIjtcbiAgICBUQUdfTkFNRVNbXCJLRVlHRU5cIl0gPSBcImtleWdlblwiO1xuICAgIFRBR19OQU1FU1tcIkxBQkVMXCJdID0gXCJsYWJlbFwiO1xuICAgIFRBR19OQU1FU1tcIkxJXCJdID0gXCJsaVwiO1xuICAgIFRBR19OQU1FU1tcIkxJTktcIl0gPSBcImxpbmtcIjtcbiAgICBUQUdfTkFNRVNbXCJMSVNUSU5HXCJdID0gXCJsaXN0aW5nXCI7XG4gICAgVEFHX05BTUVTW1wiTUFJTlwiXSA9IFwibWFpblwiO1xuICAgIFRBR19OQU1FU1tcIk1BTElHTk1BUktcIl0gPSBcIm1hbGlnbm1hcmtcIjtcbiAgICBUQUdfTkFNRVNbXCJNQVJRVUVFXCJdID0gXCJtYXJxdWVlXCI7XG4gICAgVEFHX05BTUVTW1wiTUFUSFwiXSA9IFwibWF0aFwiO1xuICAgIFRBR19OQU1FU1tcIk1FTlVcIl0gPSBcIm1lbnVcIjtcbiAgICBUQUdfTkFNRVNbXCJNRVRBXCJdID0gXCJtZXRhXCI7XG4gICAgVEFHX05BTUVTW1wiTUdMWVBIXCJdID0gXCJtZ2x5cGhcIjtcbiAgICBUQUdfTkFNRVNbXCJNSVwiXSA9IFwibWlcIjtcbiAgICBUQUdfTkFNRVNbXCJNT1wiXSA9IFwibW9cIjtcbiAgICBUQUdfTkFNRVNbXCJNTlwiXSA9IFwibW5cIjtcbiAgICBUQUdfTkFNRVNbXCJNU1wiXSA9IFwibXNcIjtcbiAgICBUQUdfTkFNRVNbXCJNVEVYVFwiXSA9IFwibXRleHRcIjtcbiAgICBUQUdfTkFNRVNbXCJOQVZcIl0gPSBcIm5hdlwiO1xuICAgIFRBR19OQU1FU1tcIk5PQlJcIl0gPSBcIm5vYnJcIjtcbiAgICBUQUdfTkFNRVNbXCJOT0ZSQU1FU1wiXSA9IFwibm9mcmFtZXNcIjtcbiAgICBUQUdfTkFNRVNbXCJOT0VNQkVEXCJdID0gXCJub2VtYmVkXCI7XG4gICAgVEFHX05BTUVTW1wiTk9TQ1JJUFRcIl0gPSBcIm5vc2NyaXB0XCI7XG4gICAgVEFHX05BTUVTW1wiT0JKRUNUXCJdID0gXCJvYmplY3RcIjtcbiAgICBUQUdfTkFNRVNbXCJPTFwiXSA9IFwib2xcIjtcbiAgICBUQUdfTkFNRVNbXCJPUFRHUk9VUFwiXSA9IFwib3B0Z3JvdXBcIjtcbiAgICBUQUdfTkFNRVNbXCJPUFRJT05cIl0gPSBcIm9wdGlvblwiO1xuICAgIFRBR19OQU1FU1tcIlBcIl0gPSBcInBcIjtcbiAgICBUQUdfTkFNRVNbXCJQQVJBTVwiXSA9IFwicGFyYW1cIjtcbiAgICBUQUdfTkFNRVNbXCJQTEFJTlRFWFRcIl0gPSBcInBsYWludGV4dFwiO1xuICAgIFRBR19OQU1FU1tcIlBSRVwiXSA9IFwicHJlXCI7XG4gICAgVEFHX05BTUVTW1wiUkJcIl0gPSBcInJiXCI7XG4gICAgVEFHX05BTUVTW1wiUlBcIl0gPSBcInJwXCI7XG4gICAgVEFHX05BTUVTW1wiUlRcIl0gPSBcInJ0XCI7XG4gICAgVEFHX05BTUVTW1wiUlRDXCJdID0gXCJydGNcIjtcbiAgICBUQUdfTkFNRVNbXCJSVUJZXCJdID0gXCJydWJ5XCI7XG4gICAgVEFHX05BTUVTW1wiU1wiXSA9IFwic1wiO1xuICAgIFRBR19OQU1FU1tcIlNDUklQVFwiXSA9IFwic2NyaXB0XCI7XG4gICAgVEFHX05BTUVTW1wiU0VBUkNIXCJdID0gXCJzZWFyY2hcIjtcbiAgICBUQUdfTkFNRVNbXCJTRUNUSU9OXCJdID0gXCJzZWN0aW9uXCI7XG4gICAgVEFHX05BTUVTW1wiU0VMRUNUXCJdID0gXCJzZWxlY3RcIjtcbiAgICBUQUdfTkFNRVNbXCJTT1VSQ0VcIl0gPSBcInNvdXJjZVwiO1xuICAgIFRBR19OQU1FU1tcIlNNQUxMXCJdID0gXCJzbWFsbFwiO1xuICAgIFRBR19OQU1FU1tcIlNQQU5cIl0gPSBcInNwYW5cIjtcbiAgICBUQUdfTkFNRVNbXCJTVFJJS0VcIl0gPSBcInN0cmlrZVwiO1xuICAgIFRBR19OQU1FU1tcIlNUUk9OR1wiXSA9IFwic3Ryb25nXCI7XG4gICAgVEFHX05BTUVTW1wiU1RZTEVcIl0gPSBcInN0eWxlXCI7XG4gICAgVEFHX05BTUVTW1wiU1VCXCJdID0gXCJzdWJcIjtcbiAgICBUQUdfTkFNRVNbXCJTVU1NQVJZXCJdID0gXCJzdW1tYXJ5XCI7XG4gICAgVEFHX05BTUVTW1wiU1VQXCJdID0gXCJzdXBcIjtcbiAgICBUQUdfTkFNRVNbXCJUQUJMRVwiXSA9IFwidGFibGVcIjtcbiAgICBUQUdfTkFNRVNbXCJUQk9EWVwiXSA9IFwidGJvZHlcIjtcbiAgICBUQUdfTkFNRVNbXCJURU1QTEFURVwiXSA9IFwidGVtcGxhdGVcIjtcbiAgICBUQUdfTkFNRVNbXCJURVhUQVJFQVwiXSA9IFwidGV4dGFyZWFcIjtcbiAgICBUQUdfTkFNRVNbXCJURk9PVFwiXSA9IFwidGZvb3RcIjtcbiAgICBUQUdfTkFNRVNbXCJURFwiXSA9IFwidGRcIjtcbiAgICBUQUdfTkFNRVNbXCJUSFwiXSA9IFwidGhcIjtcbiAgICBUQUdfTkFNRVNbXCJUSEVBRFwiXSA9IFwidGhlYWRcIjtcbiAgICBUQUdfTkFNRVNbXCJUSVRMRVwiXSA9IFwidGl0bGVcIjtcbiAgICBUQUdfTkFNRVNbXCJUUlwiXSA9IFwidHJcIjtcbiAgICBUQUdfTkFNRVNbXCJUUkFDS1wiXSA9IFwidHJhY2tcIjtcbiAgICBUQUdfTkFNRVNbXCJUVFwiXSA9IFwidHRcIjtcbiAgICBUQUdfTkFNRVNbXCJVXCJdID0gXCJ1XCI7XG4gICAgVEFHX05BTUVTW1wiVUxcIl0gPSBcInVsXCI7XG4gICAgVEFHX05BTUVTW1wiU1ZHXCJdID0gXCJzdmdcIjtcbiAgICBUQUdfTkFNRVNbXCJWQVJcIl0gPSBcInZhclwiO1xuICAgIFRBR19OQU1FU1tcIldCUlwiXSA9IFwid2JyXCI7XG4gICAgVEFHX05BTUVTW1wiWE1QXCJdID0gXCJ4bXBcIjtcbn0pKFRBR19OQU1FUyB8fCAoVEFHX05BTUVTID0ge30pKTtcbi8qKlxuICogVGFnIElEcyBhcmUgbnVtZXJpYyBJRHMgZm9yIGtub3duIHRhZyBuYW1lcy5cbiAqXG4gKiBXZSB1c2UgdGFnIElEcyB0byBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBvZiB0YWcgbmFtZSBjb21wYXJpc29ucy5cbiAqL1xuZXhwb3J0IHZhciBUQUdfSUQ7XG4oZnVuY3Rpb24gKFRBR19JRCkge1xuICAgIFRBR19JRFtUQUdfSURbXCJVTktOT1dOXCJdID0gMF0gPSBcIlVOS05PV05cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQVwiXSA9IDFdID0gXCJBXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkFERFJFU1NcIl0gPSAyXSA9IFwiQUREUkVTU1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJBTk5PVEFUSU9OX1hNTFwiXSA9IDNdID0gXCJBTk5PVEFUSU9OX1hNTFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJBUFBMRVRcIl0gPSA0XSA9IFwiQVBQTEVUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkFSRUFcIl0gPSA1XSA9IFwiQVJFQVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJBUlRJQ0xFXCJdID0gNl0gPSBcIkFSVElDTEVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQVNJREVcIl0gPSA3XSA9IFwiQVNJREVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQlwiXSA9IDhdID0gXCJCXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkJBU0VcIl0gPSA5XSA9IFwiQkFTRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJCQVNFRk9OVFwiXSA9IDEwXSA9IFwiQkFTRUZPTlRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQkdTT1VORFwiXSA9IDExXSA9IFwiQkdTT1VORFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJCSUdcIl0gPSAxMl0gPSBcIkJJR1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJCTE9DS1FVT1RFXCJdID0gMTNdID0gXCJCTE9DS1FVT1RFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkJPRFlcIl0gPSAxNF0gPSBcIkJPRFlcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQlJcIl0gPSAxNV0gPSBcIkJSXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkJVVFRPTlwiXSA9IDE2XSA9IFwiQlVUVE9OXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkNBUFRJT05cIl0gPSAxN10gPSBcIkNBUFRJT05cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQ0VOVEVSXCJdID0gMThdID0gXCJDRU5URVJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQ09ERVwiXSA9IDE5XSA9IFwiQ09ERVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJDT0xcIl0gPSAyMF0gPSBcIkNPTFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJDT0xHUk9VUFwiXSA9IDIxXSA9IFwiQ09MR1JPVVBcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRERcIl0gPSAyMl0gPSBcIkREXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkRFU0NcIl0gPSAyM10gPSBcIkRFU0NcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiREVUQUlMU1wiXSA9IDI0XSA9IFwiREVUQUlMU1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJESUFMT0dcIl0gPSAyNV0gPSBcIkRJQUxPR1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJESVJcIl0gPSAyNl0gPSBcIkRJUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJESVZcIl0gPSAyN10gPSBcIkRJVlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJETFwiXSA9IDI4XSA9IFwiRExcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRFRcIl0gPSAyOV0gPSBcIkRUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkVNXCJdID0gMzBdID0gXCJFTVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJFTUJFRFwiXSA9IDMxXSA9IFwiRU1CRURcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRklFTERTRVRcIl0gPSAzMl0gPSBcIkZJRUxEU0VUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkZJR0NBUFRJT05cIl0gPSAzM10gPSBcIkZJR0NBUFRJT05cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRklHVVJFXCJdID0gMzRdID0gXCJGSUdVUkVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRk9OVFwiXSA9IDM1XSA9IFwiRk9OVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJGT09URVJcIl0gPSAzNl0gPSBcIkZPT1RFUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJGT1JFSUdOX09CSkVDVFwiXSA9IDM3XSA9IFwiRk9SRUlHTl9PQkpFQ1RcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRk9STVwiXSA9IDM4XSA9IFwiRk9STVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJGUkFNRVwiXSA9IDM5XSA9IFwiRlJBTUVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRlJBTUVTRVRcIl0gPSA0MF0gPSBcIkZSQU1FU0VUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkgxXCJdID0gNDFdID0gXCJIMVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJIMlwiXSA9IDQyXSA9IFwiSDJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSDNcIl0gPSA0M10gPSBcIkgzXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkg0XCJdID0gNDRdID0gXCJINFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJINVwiXSA9IDQ1XSA9IFwiSDVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSDZcIl0gPSA0Nl0gPSBcIkg2XCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkhFQURcIl0gPSA0N10gPSBcIkhFQURcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSEVBREVSXCJdID0gNDhdID0gXCJIRUFERVJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSEdST1VQXCJdID0gNDldID0gXCJIR1JPVVBcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSFJcIl0gPSA1MF0gPSBcIkhSXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkhUTUxcIl0gPSA1MV0gPSBcIkhUTUxcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSVwiXSA9IDUyXSA9IFwiSVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJJTUdcIl0gPSA1M10gPSBcIklNR1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJJTUFHRVwiXSA9IDU0XSA9IFwiSU1BR0VcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSU5QVVRcIl0gPSA1NV0gPSBcIklOUFVUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIklGUkFNRVwiXSA9IDU2XSA9IFwiSUZSQU1FXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIktFWUdFTlwiXSA9IDU3XSA9IFwiS0VZR0VOXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkxBQkVMXCJdID0gNThdID0gXCJMQUJFTFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJMSVwiXSA9IDU5XSA9IFwiTElcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTElOS1wiXSA9IDYwXSA9IFwiTElOS1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJMSVNUSU5HXCJdID0gNjFdID0gXCJMSVNUSU5HXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1BSU5cIl0gPSA2Ml0gPSBcIk1BSU5cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTUFMSUdOTUFSS1wiXSA9IDYzXSA9IFwiTUFMSUdOTUFSS1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNQVJRVUVFXCJdID0gNjRdID0gXCJNQVJRVUVFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1BVEhcIl0gPSA2NV0gPSBcIk1BVEhcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTUVOVVwiXSA9IDY2XSA9IFwiTUVOVVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNRVRBXCJdID0gNjddID0gXCJNRVRBXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1HTFlQSFwiXSA9IDY4XSA9IFwiTUdMWVBIXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1JXCJdID0gNjldID0gXCJNSVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNT1wiXSA9IDcwXSA9IFwiTU9cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTU5cIl0gPSA3MV0gPSBcIk1OXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1TXCJdID0gNzJdID0gXCJNU1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNVEVYVFwiXSA9IDczXSA9IFwiTVRFWFRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTkFWXCJdID0gNzRdID0gXCJOQVZcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTk9CUlwiXSA9IDc1XSA9IFwiTk9CUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJOT0ZSQU1FU1wiXSA9IDc2XSA9IFwiTk9GUkFNRVNcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTk9FTUJFRFwiXSA9IDc3XSA9IFwiTk9FTUJFRFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJOT1NDUklQVFwiXSA9IDc4XSA9IFwiTk9TQ1JJUFRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiT0JKRUNUXCJdID0gNzldID0gXCJPQkpFQ1RcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiT0xcIl0gPSA4MF0gPSBcIk9MXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk9QVEdST1VQXCJdID0gODFdID0gXCJPUFRHUk9VUFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJPUFRJT05cIl0gPSA4Ml0gPSBcIk9QVElPTlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJQXCJdID0gODNdID0gXCJQXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlBBUkFNXCJdID0gODRdID0gXCJQQVJBTVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJQTEFJTlRFWFRcIl0gPSA4NV0gPSBcIlBMQUlOVEVYVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJQUkVcIl0gPSA4Nl0gPSBcIlBSRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJSQlwiXSA9IDg3XSA9IFwiUkJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiUlBcIl0gPSA4OF0gPSBcIlJQXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlJUXCJdID0gODldID0gXCJSVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJSVENcIl0gPSA5MF0gPSBcIlJUQ1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJSVUJZXCJdID0gOTFdID0gXCJSVUJZXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNcIl0gPSA5Ml0gPSBcIlNcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU0NSSVBUXCJdID0gOTNdID0gXCJTQ1JJUFRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU0VBUkNIXCJdID0gOTRdID0gXCJTRUFSQ0hcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU0VDVElPTlwiXSA9IDk1XSA9IFwiU0VDVElPTlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTRUxFQ1RcIl0gPSA5Nl0gPSBcIlNFTEVDVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTT1VSQ0VcIl0gPSA5N10gPSBcIlNPVVJDRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTTUFMTFwiXSA9IDk4XSA9IFwiU01BTExcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1BBTlwiXSA9IDk5XSA9IFwiU1BBTlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTVFJJS0VcIl0gPSAxMDBdID0gXCJTVFJJS0VcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1RST05HXCJdID0gMTAxXSA9IFwiU1RST05HXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNUWUxFXCJdID0gMTAyXSA9IFwiU1RZTEVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1VCXCJdID0gMTAzXSA9IFwiU1VCXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNVTU1BUllcIl0gPSAxMDRdID0gXCJTVU1NQVJZXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNVUFwiXSA9IDEwNV0gPSBcIlNVUFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJUQUJMRVwiXSA9IDEwNl0gPSBcIlRBQkxFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRCT0RZXCJdID0gMTA3XSA9IFwiVEJPRFlcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVEVNUExBVEVcIl0gPSAxMDhdID0gXCJURU1QTEFURVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJURVhUQVJFQVwiXSA9IDEwOV0gPSBcIlRFWFRBUkVBXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRGT09UXCJdID0gMTEwXSA9IFwiVEZPT1RcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVERcIl0gPSAxMTFdID0gXCJURFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJUSFwiXSA9IDExMl0gPSBcIlRIXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRIRUFEXCJdID0gMTEzXSA9IFwiVEhFQURcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVElUTEVcIl0gPSAxMTRdID0gXCJUSVRMRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJUUlwiXSA9IDExNV0gPSBcIlRSXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRSQUNLXCJdID0gMTE2XSA9IFwiVFJBQ0tcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVFRcIl0gPSAxMTddID0gXCJUVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJVXCJdID0gMTE4XSA9IFwiVVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJVTFwiXSA9IDExOV0gPSBcIlVMXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNWR1wiXSA9IDEyMF0gPSBcIlNWR1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJWQVJcIl0gPSAxMjFdID0gXCJWQVJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiV0JSXCJdID0gMTIyXSA9IFwiV0JSXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlhNUFwiXSA9IDEyM10gPSBcIlhNUFwiO1xufSkoVEFHX0lEIHx8IChUQUdfSUQgPSB7fSkpO1xuY29uc3QgVEFHX05BTUVfVE9fSUQgPSBuZXcgTWFwKFtcbiAgICBbVEFHX05BTUVTLkEsIFRBR19JRC5BXSxcbiAgICBbVEFHX05BTUVTLkFERFJFU1MsIFRBR19JRC5BRERSRVNTXSxcbiAgICBbVEFHX05BTUVTLkFOTk9UQVRJT05fWE1MLCBUQUdfSUQuQU5OT1RBVElPTl9YTUxdLFxuICAgIFtUQUdfTkFNRVMuQVBQTEVULCBUQUdfSUQuQVBQTEVUXSxcbiAgICBbVEFHX05BTUVTLkFSRUEsIFRBR19JRC5BUkVBXSxcbiAgICBbVEFHX05BTUVTLkFSVElDTEUsIFRBR19JRC5BUlRJQ0xFXSxcbiAgICBbVEFHX05BTUVTLkFTSURFLCBUQUdfSUQuQVNJREVdLFxuICAgIFtUQUdfTkFNRVMuQiwgVEFHX0lELkJdLFxuICAgIFtUQUdfTkFNRVMuQkFTRSwgVEFHX0lELkJBU0VdLFxuICAgIFtUQUdfTkFNRVMuQkFTRUZPTlQsIFRBR19JRC5CQVNFRk9OVF0sXG4gICAgW1RBR19OQU1FUy5CR1NPVU5ELCBUQUdfSUQuQkdTT1VORF0sXG4gICAgW1RBR19OQU1FUy5CSUcsIFRBR19JRC5CSUddLFxuICAgIFtUQUdfTkFNRVMuQkxPQ0tRVU9URSwgVEFHX0lELkJMT0NLUVVPVEVdLFxuICAgIFtUQUdfTkFNRVMuQk9EWSwgVEFHX0lELkJPRFldLFxuICAgIFtUQUdfTkFNRVMuQlIsIFRBR19JRC5CUl0sXG4gICAgW1RBR19OQU1FUy5CVVRUT04sIFRBR19JRC5CVVRUT05dLFxuICAgIFtUQUdfTkFNRVMuQ0FQVElPTiwgVEFHX0lELkNBUFRJT05dLFxuICAgIFtUQUdfTkFNRVMuQ0VOVEVSLCBUQUdfSUQuQ0VOVEVSXSxcbiAgICBbVEFHX05BTUVTLkNPREUsIFRBR19JRC5DT0RFXSxcbiAgICBbVEFHX05BTUVTLkNPTCwgVEFHX0lELkNPTF0sXG4gICAgW1RBR19OQU1FUy5DT0xHUk9VUCwgVEFHX0lELkNPTEdST1VQXSxcbiAgICBbVEFHX05BTUVTLkRELCBUQUdfSUQuRERdLFxuICAgIFtUQUdfTkFNRVMuREVTQywgVEFHX0lELkRFU0NdLFxuICAgIFtUQUdfTkFNRVMuREVUQUlMUywgVEFHX0lELkRFVEFJTFNdLFxuICAgIFtUQUdfTkFNRVMuRElBTE9HLCBUQUdfSUQuRElBTE9HXSxcbiAgICBbVEFHX05BTUVTLkRJUiwgVEFHX0lELkRJUl0sXG4gICAgW1RBR19OQU1FUy5ESVYsIFRBR19JRC5ESVZdLFxuICAgIFtUQUdfTkFNRVMuREwsIFRBR19JRC5ETF0sXG4gICAgW1RBR19OQU1FUy5EVCwgVEFHX0lELkRUXSxcbiAgICBbVEFHX05BTUVTLkVNLCBUQUdfSUQuRU1dLFxuICAgIFtUQUdfTkFNRVMuRU1CRUQsIFRBR19JRC5FTUJFRF0sXG4gICAgW1RBR19OQU1FUy5GSUVMRFNFVCwgVEFHX0lELkZJRUxEU0VUXSxcbiAgICBbVEFHX05BTUVTLkZJR0NBUFRJT04sIFRBR19JRC5GSUdDQVBUSU9OXSxcbiAgICBbVEFHX05BTUVTLkZJR1VSRSwgVEFHX0lELkZJR1VSRV0sXG4gICAgW1RBR19OQU1FUy5GT05ULCBUQUdfSUQuRk9OVF0sXG4gICAgW1RBR19OQU1FUy5GT09URVIsIFRBR19JRC5GT09URVJdLFxuICAgIFtUQUdfTkFNRVMuRk9SRUlHTl9PQkpFQ1QsIFRBR19JRC5GT1JFSUdOX09CSkVDVF0sXG4gICAgW1RBR19OQU1FUy5GT1JNLCBUQUdfSUQuRk9STV0sXG4gICAgW1RBR19OQU1FUy5GUkFNRSwgVEFHX0lELkZSQU1FXSxcbiAgICBbVEFHX05BTUVTLkZSQU1FU0VULCBUQUdfSUQuRlJBTUVTRVRdLFxuICAgIFtUQUdfTkFNRVMuSDEsIFRBR19JRC5IMV0sXG4gICAgW1RBR19OQU1FUy5IMiwgVEFHX0lELkgyXSxcbiAgICBbVEFHX05BTUVTLkgzLCBUQUdfSUQuSDNdLFxuICAgIFtUQUdfTkFNRVMuSDQsIFRBR19JRC5INF0sXG4gICAgW1RBR19OQU1FUy5INSwgVEFHX0lELkg1XSxcbiAgICBbVEFHX05BTUVTLkg2LCBUQUdfSUQuSDZdLFxuICAgIFtUQUdfTkFNRVMuSEVBRCwgVEFHX0lELkhFQURdLFxuICAgIFtUQUdfTkFNRVMuSEVBREVSLCBUQUdfSUQuSEVBREVSXSxcbiAgICBbVEFHX05BTUVTLkhHUk9VUCwgVEFHX0lELkhHUk9VUF0sXG4gICAgW1RBR19OQU1FUy5IUiwgVEFHX0lELkhSXSxcbiAgICBbVEFHX05BTUVTLkhUTUwsIFRBR19JRC5IVE1MXSxcbiAgICBbVEFHX05BTUVTLkksIFRBR19JRC5JXSxcbiAgICBbVEFHX05BTUVTLklNRywgVEFHX0lELklNR10sXG4gICAgW1RBR19OQU1FUy5JTUFHRSwgVEFHX0lELklNQUdFXSxcbiAgICBbVEFHX05BTUVTLklOUFVULCBUQUdfSUQuSU5QVVRdLFxuICAgIFtUQUdfTkFNRVMuSUZSQU1FLCBUQUdfSUQuSUZSQU1FXSxcbiAgICBbVEFHX05BTUVTLktFWUdFTiwgVEFHX0lELktFWUdFTl0sXG4gICAgW1RBR19OQU1FUy5MQUJFTCwgVEFHX0lELkxBQkVMXSxcbiAgICBbVEFHX05BTUVTLkxJLCBUQUdfSUQuTEldLFxuICAgIFtUQUdfTkFNRVMuTElOSywgVEFHX0lELkxJTktdLFxuICAgIFtUQUdfTkFNRVMuTElTVElORywgVEFHX0lELkxJU1RJTkddLFxuICAgIFtUQUdfTkFNRVMuTUFJTiwgVEFHX0lELk1BSU5dLFxuICAgIFtUQUdfTkFNRVMuTUFMSUdOTUFSSywgVEFHX0lELk1BTElHTk1BUktdLFxuICAgIFtUQUdfTkFNRVMuTUFSUVVFRSwgVEFHX0lELk1BUlFVRUVdLFxuICAgIFtUQUdfTkFNRVMuTUFUSCwgVEFHX0lELk1BVEhdLFxuICAgIFtUQUdfTkFNRVMuTUVOVSwgVEFHX0lELk1FTlVdLFxuICAgIFtUQUdfTkFNRVMuTUVUQSwgVEFHX0lELk1FVEFdLFxuICAgIFtUQUdfTkFNRVMuTUdMWVBILCBUQUdfSUQuTUdMWVBIXSxcbiAgICBbVEFHX05BTUVTLk1JLCBUQUdfSUQuTUldLFxuICAgIFtUQUdfTkFNRVMuTU8sIFRBR19JRC5NT10sXG4gICAgW1RBR19OQU1FUy5NTiwgVEFHX0lELk1OXSxcbiAgICBbVEFHX05BTUVTLk1TLCBUQUdfSUQuTVNdLFxuICAgIFtUQUdfTkFNRVMuTVRFWFQsIFRBR19JRC5NVEVYVF0sXG4gICAgW1RBR19OQU1FUy5OQVYsIFRBR19JRC5OQVZdLFxuICAgIFtUQUdfTkFNRVMuTk9CUiwgVEFHX0lELk5PQlJdLFxuICAgIFtUQUdfTkFNRVMuTk9GUkFNRVMsIFRBR19JRC5OT0ZSQU1FU10sXG4gICAgW1RBR19OQU1FUy5OT0VNQkVELCBUQUdfSUQuTk9FTUJFRF0sXG4gICAgW1RBR19OQU1FUy5OT1NDUklQVCwgVEFHX0lELk5PU0NSSVBUXSxcbiAgICBbVEFHX05BTUVTLk9CSkVDVCwgVEFHX0lELk9CSkVDVF0sXG4gICAgW1RBR19OQU1FUy5PTCwgVEFHX0lELk9MXSxcbiAgICBbVEFHX05BTUVTLk9QVEdST1VQLCBUQUdfSUQuT1BUR1JPVVBdLFxuICAgIFtUQUdfTkFNRVMuT1BUSU9OLCBUQUdfSUQuT1BUSU9OXSxcbiAgICBbVEFHX05BTUVTLlAsIFRBR19JRC5QXSxcbiAgICBbVEFHX05BTUVTLlBBUkFNLCBUQUdfSUQuUEFSQU1dLFxuICAgIFtUQUdfTkFNRVMuUExBSU5URVhULCBUQUdfSUQuUExBSU5URVhUXSxcbiAgICBbVEFHX05BTUVTLlBSRSwgVEFHX0lELlBSRV0sXG4gICAgW1RBR19OQU1FUy5SQiwgVEFHX0lELlJCXSxcbiAgICBbVEFHX05BTUVTLlJQLCBUQUdfSUQuUlBdLFxuICAgIFtUQUdfTkFNRVMuUlQsIFRBR19JRC5SVF0sXG4gICAgW1RBR19OQU1FUy5SVEMsIFRBR19JRC5SVENdLFxuICAgIFtUQUdfTkFNRVMuUlVCWSwgVEFHX0lELlJVQlldLFxuICAgIFtUQUdfTkFNRVMuUywgVEFHX0lELlNdLFxuICAgIFtUQUdfTkFNRVMuU0NSSVBULCBUQUdfSUQuU0NSSVBUXSxcbiAgICBbVEFHX05BTUVTLlNFQVJDSCwgVEFHX0lELlNFQVJDSF0sXG4gICAgW1RBR19OQU1FUy5TRUNUSU9OLCBUQUdfSUQuU0VDVElPTl0sXG4gICAgW1RBR19OQU1FUy5TRUxFQ1QsIFRBR19JRC5TRUxFQ1RdLFxuICAgIFtUQUdfTkFNRVMuU09VUkNFLCBUQUdfSUQuU09VUkNFXSxcbiAgICBbVEFHX05BTUVTLlNNQUxMLCBUQUdfSUQuU01BTExdLFxuICAgIFtUQUdfTkFNRVMuU1BBTiwgVEFHX0lELlNQQU5dLFxuICAgIFtUQUdfTkFNRVMuU1RSSUtFLCBUQUdfSUQuU1RSSUtFXSxcbiAgICBbVEFHX05BTUVTLlNUUk9ORywgVEFHX0lELlNUUk9OR10sXG4gICAgW1RBR19OQU1FUy5TVFlMRSwgVEFHX0lELlNUWUxFXSxcbiAgICBbVEFHX05BTUVTLlNVQiwgVEFHX0lELlNVQl0sXG4gICAgW1RBR19OQU1FUy5TVU1NQVJZLCBUQUdfSUQuU1VNTUFSWV0sXG4gICAgW1RBR19OQU1FUy5TVVAsIFRBR19JRC5TVVBdLFxuICAgIFtUQUdfTkFNRVMuVEFCTEUsIFRBR19JRC5UQUJMRV0sXG4gICAgW1RBR19OQU1FUy5UQk9EWSwgVEFHX0lELlRCT0RZXSxcbiAgICBbVEFHX05BTUVTLlRFTVBMQVRFLCBUQUdfSUQuVEVNUExBVEVdLFxuICAgIFtUQUdfTkFNRVMuVEVYVEFSRUEsIFRBR19JRC5URVhUQVJFQV0sXG4gICAgW1RBR19OQU1FUy5URk9PVCwgVEFHX0lELlRGT09UXSxcbiAgICBbVEFHX05BTUVTLlRELCBUQUdfSUQuVERdLFxuICAgIFtUQUdfTkFNRVMuVEgsIFRBR19JRC5USF0sXG4gICAgW1RBR19OQU1FUy5USEVBRCwgVEFHX0lELlRIRUFEXSxcbiAgICBbVEFHX05BTUVTLlRJVExFLCBUQUdfSUQuVElUTEVdLFxuICAgIFtUQUdfTkFNRVMuVFIsIFRBR19JRC5UUl0sXG4gICAgW1RBR19OQU1FUy5UUkFDSywgVEFHX0lELlRSQUNLXSxcbiAgICBbVEFHX05BTUVTLlRULCBUQUdfSUQuVFRdLFxuICAgIFtUQUdfTkFNRVMuVSwgVEFHX0lELlVdLFxuICAgIFtUQUdfTkFNRVMuVUwsIFRBR19JRC5VTF0sXG4gICAgW1RBR19OQU1FUy5TVkcsIFRBR19JRC5TVkddLFxuICAgIFtUQUdfTkFNRVMuVkFSLCBUQUdfSUQuVkFSXSxcbiAgICBbVEFHX05BTUVTLldCUiwgVEFHX0lELldCUl0sXG4gICAgW1RBR19OQU1FUy5YTVAsIFRBR19JRC5YTVBdLFxuXSk7XG5leHBvcnQgZnVuY3Rpb24gZ2V0VGFnSUQodGFnTmFtZSkge1xuICAgIHZhciBfYTtcbiAgICByZXR1cm4gKF9hID0gVEFHX05BTUVfVE9fSUQuZ2V0KHRhZ05hbWUpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBUQUdfSUQuVU5LTk9XTjtcbn1cbmNvbnN0ICQgPSBUQUdfSUQ7XG5leHBvcnQgY29uc3QgU1BFQ0lBTF9FTEVNRU5UUyA9IHtcbiAgICBbTlMuSFRNTF06IG5ldyBTZXQoW1xuICAgICAgICAkLkFERFJFU1MsXG4gICAgICAgICQuQVBQTEVULFxuICAgICAgICAkLkFSRUEsXG4gICAgICAgICQuQVJUSUNMRSxcbiAgICAgICAgJC5BU0lERSxcbiAgICAgICAgJC5CQVNFLFxuICAgICAgICAkLkJBU0VGT05ULFxuICAgICAgICAkLkJHU09VTkQsXG4gICAgICAgICQuQkxPQ0tRVU9URSxcbiAgICAgICAgJC5CT0RZLFxuICAgICAgICAkLkJSLFxuICAgICAgICAkLkJVVFRPTixcbiAgICAgICAgJC5DQVBUSU9OLFxuICAgICAgICAkLkNFTlRFUixcbiAgICAgICAgJC5DT0wsXG4gICAgICAgICQuQ09MR1JPVVAsXG4gICAgICAgICQuREQsXG4gICAgICAgICQuREVUQUlMUyxcbiAgICAgICAgJC5ESVIsXG4gICAgICAgICQuRElWLFxuICAgICAgICAkLkRMLFxuICAgICAgICAkLkRULFxuICAgICAgICAkLkVNQkVELFxuICAgICAgICAkLkZJRUxEU0VULFxuICAgICAgICAkLkZJR0NBUFRJT04sXG4gICAgICAgICQuRklHVVJFLFxuICAgICAgICAkLkZPT1RFUixcbiAgICAgICAgJC5GT1JNLFxuICAgICAgICAkLkZSQU1FLFxuICAgICAgICAkLkZSQU1FU0VULFxuICAgICAgICAkLkgxLFxuICAgICAgICAkLkgyLFxuICAgICAgICAkLkgzLFxuICAgICAgICAkLkg0LFxuICAgICAgICAkLkg1LFxuICAgICAgICAkLkg2LFxuICAgICAgICAkLkhFQUQsXG4gICAgICAgICQuSEVBREVSLFxuICAgICAgICAkLkhHUk9VUCxcbiAgICAgICAgJC5IUixcbiAgICAgICAgJC5IVE1MLFxuICAgICAgICAkLklGUkFNRSxcbiAgICAgICAgJC5JTUcsXG4gICAgICAgICQuSU5QVVQsXG4gICAgICAgICQuTEksXG4gICAgICAgICQuTElOSyxcbiAgICAgICAgJC5MSVNUSU5HLFxuICAgICAgICAkLk1BSU4sXG4gICAgICAgICQuTUFSUVVFRSxcbiAgICAgICAgJC5NRU5VLFxuICAgICAgICAkLk1FVEEsXG4gICAgICAgICQuTkFWLFxuICAgICAgICAkLk5PRU1CRUQsXG4gICAgICAgICQuTk9GUkFNRVMsXG4gICAgICAgICQuTk9TQ1JJUFQsXG4gICAgICAgICQuT0JKRUNULFxuICAgICAgICAkLk9MLFxuICAgICAgICAkLlAsXG4gICAgICAgICQuUEFSQU0sXG4gICAgICAgICQuUExBSU5URVhULFxuICAgICAgICAkLlBSRSxcbiAgICAgICAgJC5TQ1JJUFQsXG4gICAgICAgICQuU0VDVElPTixcbiAgICAgICAgJC5TRUxFQ1QsXG4gICAgICAgICQuU09VUkNFLFxuICAgICAgICAkLlNUWUxFLFxuICAgICAgICAkLlNVTU1BUlksXG4gICAgICAgICQuVEFCTEUsXG4gICAgICAgICQuVEJPRFksXG4gICAgICAgICQuVEQsXG4gICAgICAgICQuVEVNUExBVEUsXG4gICAgICAgICQuVEVYVEFSRUEsXG4gICAgICAgICQuVEZPT1QsXG4gICAgICAgICQuVEgsXG4gICAgICAgICQuVEhFQUQsXG4gICAgICAgICQuVElUTEUsXG4gICAgICAgICQuVFIsXG4gICAgICAgICQuVFJBQ0ssXG4gICAgICAgICQuVUwsXG4gICAgICAgICQuV0JSLFxuICAgICAgICAkLlhNUCxcbiAgICBdKSxcbiAgICBbTlMuTUFUSE1MXTogbmV3IFNldChbJC5NSSwgJC5NTywgJC5NTiwgJC5NUywgJC5NVEVYVCwgJC5BTk5PVEFUSU9OX1hNTF0pLFxuICAgIFtOUy5TVkddOiBuZXcgU2V0KFskLlRJVExFLCAkLkZPUkVJR05fT0JKRUNULCAkLkRFU0NdKSxcbiAgICBbTlMuWExJTktdOiBuZXcgU2V0KCksXG4gICAgW05TLlhNTF06IG5ldyBTZXQoKSxcbiAgICBbTlMuWE1MTlNdOiBuZXcgU2V0KCksXG59O1xuZXhwb3J0IGNvbnN0IE5VTUJFUkVEX0hFQURFUlMgPSBuZXcgU2V0KFskLkgxLCAkLkgyLCAkLkgzLCAkLkg0LCAkLkg1LCAkLkg2XSk7XG5jb25zdCBVTkVTQ0FQRURfVEVYVCA9IG5ldyBTZXQoW1xuICAgIFRBR19OQU1FUy5TVFlMRSxcbiAgICBUQUdfTkFNRVMuU0NSSVBULFxuICAgIFRBR19OQU1FUy5YTVAsXG4gICAgVEFHX05BTUVTLklGUkFNRSxcbiAgICBUQUdfTkFNRVMuTk9FTUJFRCxcbiAgICBUQUdfTkFNRVMuTk9GUkFNRVMsXG4gICAgVEFHX05BTUVTLlBMQUlOVEVYVCxcbl0pO1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1VuZXNjYXBlZFRleHQodG4sIHNjcmlwdGluZ0VuYWJsZWQpIHtcbiAgICByZXR1cm4gVU5FU0NBUEVEX1RFWFQuaGFzKHRuKSB8fCAoc2NyaXB0aW5nRW5hYmxlZCAmJiB0biA9PT0gVEFHX05BTUVTLk5PU0NSSVBUKTtcbn1cbiIsICJpbXBvcnQgeyBQcmVwcm9jZXNzb3IgfSBmcm9tICcuL3ByZXByb2Nlc3Nvci5qcyc7XG5pbXBvcnQgeyBDT0RFX1BPSU5UUyBhcyAkLCBTRVFVRU5DRVMgYXMgJCQsIFJFUExBQ0VNRU5UX0NIQVJBQ1RFUiwgaXNTdXJyb2dhdGUsIGlzVW5kZWZpbmVkQ29kZVBvaW50LCBpc0NvbnRyb2xDb2RlUG9pbnQsIH0gZnJvbSAnLi4vY29tbW9uL3VuaWNvZGUuanMnO1xuaW1wb3J0IHsgVG9rZW5UeXBlLCBnZXRUb2tlbkF0dHIsIH0gZnJvbSAnLi4vY29tbW9uL3Rva2VuLmpzJztcbmltcG9ydCB7IGh0bWxEZWNvZGVUcmVlLCBFbnRpdHlEZWNvZGVyLCBEZWNvZGluZ01vZGUgfSBmcm9tICdlbnRpdGllcy9saWIvZGVjb2RlLmpzJztcbmltcG9ydCB7IEVSUiB9IGZyb20gJy4uL2NvbW1vbi9lcnJvci1jb2Rlcy5qcyc7XG5pbXBvcnQgeyBUQUdfSUQsIGdldFRhZ0lEIH0gZnJvbSAnLi4vY29tbW9uL2h0bWwuanMnO1xuLy9TdGF0ZXNcbnZhciBTdGF0ZTtcbihmdW5jdGlvbiAoU3RhdGUpIHtcbiAgICBTdGF0ZVtTdGF0ZVtcIkRBVEFcIl0gPSAwXSA9IFwiREFUQVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiUkNEQVRBXCJdID0gMV0gPSBcIlJDREFUQVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiUkFXVEVYVFwiXSA9IDJdID0gXCJSQVdURVhUXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQVwiXSA9IDNdID0gXCJTQ1JJUFRfREFUQVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiUExBSU5URVhUXCJdID0gNF0gPSBcIlBMQUlOVEVYVFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiVEFHX09QRU5cIl0gPSA1XSA9IFwiVEFHX09QRU5cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkVORF9UQUdfT1BFTlwiXSA9IDZdID0gXCJFTkRfVEFHX09QRU5cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlRBR19OQU1FXCJdID0gN10gPSBcIlRBR19OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJSQ0RBVEFfTEVTU19USEFOX1NJR05cIl0gPSA4XSA9IFwiUkNEQVRBX0xFU1NfVEhBTl9TSUdOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJSQ0RBVEFfRU5EX1RBR19PUEVOXCJdID0gOV0gPSBcIlJDREFUQV9FTkRfVEFHX09QRU5cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlJDREFUQV9FTkRfVEFHX05BTUVcIl0gPSAxMF0gPSBcIlJDREFUQV9FTkRfVEFHX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlJBV1RFWFRfTEVTU19USEFOX1NJR05cIl0gPSAxMV0gPSBcIlJBV1RFWFRfTEVTU19USEFOX1NJR05cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlJBV1RFWFRfRU5EX1RBR19PUEVOXCJdID0gMTJdID0gXCJSQVdURVhUX0VORF9UQUdfT1BFTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiUkFXVEVYVF9FTkRfVEFHX05BTUVcIl0gPSAxM10gPSBcIlJBV1RFWFRfRU5EX1RBR19OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9MRVNTX1RIQU5fU0lHTlwiXSA9IDE0XSA9IFwiU0NSSVBUX0RBVEFfTEVTU19USEFOX1NJR05cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VORF9UQUdfT1BFTlwiXSA9IDE1XSA9IFwiU0NSSVBUX0RBVEFfRU5EX1RBR19PUEVOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9FTkRfVEFHX05BTUVcIl0gPSAxNl0gPSBcIlNDUklQVF9EQVRBX0VORF9UQUdfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUXCJdID0gMTddID0gXCJTQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVF9EQVNIXCJdID0gMThdID0gXCJTQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRfREFTSFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRVNDQVBFRFwiXSA9IDE5XSA9IFwiU0NSSVBUX0RBVEFfRVNDQVBFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIXCJdID0gMjBdID0gXCJTQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VTQ0FQRURfREFTSF9EQVNIXCJdID0gMjFdID0gXCJTQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfREFTSFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTlwiXSA9IDIyXSA9IFwiU0NSSVBUX0RBVEFfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX09QRU5cIl0gPSAyM10gPSBcIlNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19PUEVOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfTkFNRVwiXSA9IDI0XSA9IFwiU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfU1RBUlRcIl0gPSAyNV0gPSBcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfU1RBUlRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEXCJdID0gMjZdID0gXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSFwiXSA9IDI3XSA9IFwiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSF9EQVNIXCJdID0gMjhdID0gXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOXCJdID0gMjldID0gXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9FTkRcIl0gPSAzMF0gPSBcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfRU5EXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJCRUZPUkVfQVRUUklCVVRFX05BTUVcIl0gPSAzMV0gPSBcIkJFRk9SRV9BVFRSSUJVVEVfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQVRUUklCVVRFX05BTUVcIl0gPSAzMl0gPSBcIkFUVFJJQlVURV9OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBRlRFUl9BVFRSSUJVVEVfTkFNRVwiXSA9IDMzXSA9IFwiQUZURVJfQVRUUklCVVRFX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkJFRk9SRV9BVFRSSUJVVEVfVkFMVUVcIl0gPSAzNF0gPSBcIkJFRk9SRV9BVFRSSUJVVEVfVkFMVUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFUVFJJQlVURV9WQUxVRV9ET1VCTEVfUVVPVEVEXCJdID0gMzVdID0gXCJBVFRSSUJVVEVfVkFMVUVfRE9VQkxFX1FVT1RFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQVRUUklCVVRFX1ZBTFVFX1NJTkdMRV9RVU9URURcIl0gPSAzNl0gPSBcIkFUVFJJQlVURV9WQUxVRV9TSU5HTEVfUVVPVEVEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBVFRSSUJVVEVfVkFMVUVfVU5RVU9URURcIl0gPSAzN10gPSBcIkFUVFJJQlVURV9WQUxVRV9VTlFVT1RFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQUZURVJfQVRUUklCVVRFX1ZBTFVFX1FVT1RFRFwiXSA9IDM4XSA9IFwiQUZURVJfQVRUUklCVVRFX1ZBTFVFX1FVT1RFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0VMRl9DTE9TSU5HX1NUQVJUX1RBR1wiXSA9IDM5XSA9IFwiU0VMRl9DTE9TSU5HX1NUQVJUX1RBR1wiO1xuICAgIFN0YXRlW1N0YXRlW1wiQk9HVVNfQ09NTUVOVFwiXSA9IDQwXSA9IFwiQk9HVVNfQ09NTUVOVFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiTUFSS1VQX0RFQ0xBUkFUSU9OX09QRU5cIl0gPSA0MV0gPSBcIk1BUktVUF9ERUNMQVJBVElPTl9PUEVOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDT01NRU5UX1NUQVJUXCJdID0gNDJdID0gXCJDT01NRU5UX1NUQVJUXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDT01NRU5UX1NUQVJUX0RBU0hcIl0gPSA0M10gPSBcIkNPTU1FTlRfU1RBUlRfREFTSFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVFwiXSA9IDQ0XSA9IFwiQ09NTUVOVFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVF9MRVNTX1RIQU5fU0lHTlwiXSA9IDQ1XSA9IFwiQ09NTUVOVF9MRVNTX1RIQU5fU0lHTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HXCJdID0gNDZdID0gXCJDT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkdcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFOR19EQVNIXCJdID0gNDddID0gXCJDT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkdfREFTSFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HX0RBU0hfREFTSFwiXSA9IDQ4XSA9IFwiQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HX0RBU0hfREFTSFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVF9FTkRfREFTSFwiXSA9IDQ5XSA9IFwiQ09NTUVOVF9FTkRfREFTSFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVF9FTkRcIl0gPSA1MF0gPSBcIkNPTU1FTlRfRU5EXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDT01NRU5UX0VORF9CQU5HXCJdID0gNTFdID0gXCJDT01NRU5UX0VORF9CQU5HXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJET0NUWVBFXCJdID0gNTJdID0gXCJET0NUWVBFXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJCRUZPUkVfRE9DVFlQRV9OQU1FXCJdID0gNTNdID0gXCJCRUZPUkVfRE9DVFlQRV9OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJET0NUWVBFX05BTUVcIl0gPSA1NF0gPSBcIkRPQ1RZUEVfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQUZURVJfRE9DVFlQRV9OQU1FXCJdID0gNTVdID0gXCJBRlRFUl9ET0NUWVBFX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFGVEVSX0RPQ1RZUEVfUFVCTElDX0tFWVdPUkRcIl0gPSA1Nl0gPSBcIkFGVEVSX0RPQ1RZUEVfUFVCTElDX0tFWVdPUkRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkJFRk9SRV9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSXCJdID0gNTddID0gXCJCRUZPUkVfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEXCJdID0gNThdID0gXCJET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX0RPVUJMRV9RVU9URURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRFwiXSA9IDU5XSA9IFwiRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBRlRFUl9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSXCJdID0gNjBdID0gXCJBRlRFUl9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJCRVRXRUVOX0RPQ1RZUEVfUFVCTElDX0FORF9TWVNURU1fSURFTlRJRklFUlNcIl0gPSA2MV0gPSBcIkJFVFdFRU5fRE9DVFlQRV9QVUJMSUNfQU5EX1NZU1RFTV9JREVOVElGSUVSU1wiO1xuICAgIFN0YXRlW1N0YXRlW1wiQUZURVJfRE9DVFlQRV9TWVNURU1fS0VZV09SRFwiXSA9IDYyXSA9IFwiQUZURVJfRE9DVFlQRV9TWVNURU1fS0VZV09SRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQkVGT1JFX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJcIl0gPSA2M10gPSBcIkJFRk9SRV9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URURcIl0gPSA2NF0gPSBcIkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEXCJdID0gNjVdID0gXCJET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NJTkdMRV9RVU9URURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJcIl0gPSA2Nl0gPSBcIkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkJPR1VTX0RPQ1RZUEVcIl0gPSA2N10gPSBcIkJPR1VTX0RPQ1RZUEVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNEQVRBX1NFQ1RJT05cIl0gPSA2OF0gPSBcIkNEQVRBX1NFQ1RJT05cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNEQVRBX1NFQ1RJT05fQlJBQ0tFVFwiXSA9IDY5XSA9IFwiQ0RBVEFfU0VDVElPTl9CUkFDS0VUXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDREFUQV9TRUNUSU9OX0VORFwiXSA9IDcwXSA9IFwiQ0RBVEFfU0VDVElPTl9FTkRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNIQVJBQ1RFUl9SRUZFUkVOQ0VcIl0gPSA3MV0gPSBcIkNIQVJBQ1RFUl9SRUZFUkVOQ0VcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFNQklHVU9VU19BTVBFUlNBTkRcIl0gPSA3Ml0gPSBcIkFNQklHVU9VU19BTVBFUlNBTkRcIjtcbn0pKFN0YXRlIHx8IChTdGF0ZSA9IHt9KSk7XG4vL1Rva2VuaXplciBpbml0aWFsIHN0YXRlcyBmb3IgZGlmZmVyZW50IG1vZGVzXG5leHBvcnQgY29uc3QgVG9rZW5pemVyTW9kZSA9IHtcbiAgICBEQVRBOiBTdGF0ZS5EQVRBLFxuICAgIFJDREFUQTogU3RhdGUuUkNEQVRBLFxuICAgIFJBV1RFWFQ6IFN0YXRlLlJBV1RFWFQsXG4gICAgU0NSSVBUX0RBVEE6IFN0YXRlLlNDUklQVF9EQVRBLFxuICAgIFBMQUlOVEVYVDogU3RhdGUuUExBSU5URVhULFxuICAgIENEQVRBX1NFQ1RJT046IFN0YXRlLkNEQVRBX1NFQ1RJT04sXG59O1xuLy9VdGlsc1xuLy9PUFRJTUlaQVRJT046IHRoZXNlIHV0aWxpdHkgZnVuY3Rpb25zIHNob3VsZCBub3QgYmUgbW92ZWQgb3V0IG9mIHRoaXMgbW9kdWxlLiBWOCBDcmFua3NoYWZ0IHdpbGwgbm90IGlubGluZVxuLy90aGlzIGZ1bmN0aW9ucyBpZiB0aGV5IHdpbGwgYmUgc2l0dWF0ZWQgaW4gYW5vdGhlciBtb2R1bGUgZHVlIHRvIGNvbnRleHQgc3dpdGNoLlxuLy9BbHdheXMgcGVyZm9ybSBpbmxpbmluZyBjaGVjayBiZWZvcmUgbW9kaWZ5aW5nIHRoaXMgZnVuY3Rpb25zICgnbm9kZSAtLXRyYWNlLWlubGluaW5nJykuXG5mdW5jdGlvbiBpc0FzY2lpRGlnaXQoY3ApIHtcbiAgICByZXR1cm4gY3AgPj0gJC5ESUdJVF8wICYmIGNwIDw9ICQuRElHSVRfOTtcbn1cbmZ1bmN0aW9uIGlzQXNjaWlVcHBlcihjcCkge1xuICAgIHJldHVybiBjcCA+PSAkLkxBVElOX0NBUElUQUxfQSAmJiBjcCA8PSAkLkxBVElOX0NBUElUQUxfWjtcbn1cbmZ1bmN0aW9uIGlzQXNjaWlMb3dlcihjcCkge1xuICAgIHJldHVybiBjcCA+PSAkLkxBVElOX1NNQUxMX0EgJiYgY3AgPD0gJC5MQVRJTl9TTUFMTF9aO1xufVxuZnVuY3Rpb24gaXNBc2NpaUxldHRlcihjcCkge1xuICAgIHJldHVybiBpc0FzY2lpTG93ZXIoY3ApIHx8IGlzQXNjaWlVcHBlcihjcCk7XG59XG5mdW5jdGlvbiBpc0FzY2lpQWxwaGFOdW1lcmljKGNwKSB7XG4gICAgcmV0dXJuIGlzQXNjaWlMZXR0ZXIoY3ApIHx8IGlzQXNjaWlEaWdpdChjcCk7XG59XG5mdW5jdGlvbiB0b0FzY2lpTG93ZXIoY3ApIHtcbiAgICByZXR1cm4gY3AgKyAzMjtcbn1cbmZ1bmN0aW9uIGlzV2hpdGVzcGFjZShjcCkge1xuICAgIHJldHVybiBjcCA9PT0gJC5TUEFDRSB8fCBjcCA9PT0gJC5MSU5FX0ZFRUQgfHwgY3AgPT09ICQuVEFCVUxBVElPTiB8fCBjcCA9PT0gJC5GT1JNX0ZFRUQ7XG59XG5mdW5jdGlvbiBpc1NjcmlwdERhdGFEb3VibGVFc2NhcGVTZXF1ZW5jZUVuZChjcCkge1xuICAgIHJldHVybiBpc1doaXRlc3BhY2UoY3ApIHx8IGNwID09PSAkLlNPTElEVVMgfHwgY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR047XG59XG5mdW5jdGlvbiBnZXRFcnJvckZvck51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2UoY29kZSkge1xuICAgIGlmIChjb2RlID09PSAkLk5VTEwpIHtcbiAgICAgICAgcmV0dXJuIEVSUi5udWxsQ2hhcmFjdGVyUmVmZXJlbmNlO1xuICAgIH1cbiAgICBlbHNlIGlmIChjb2RlID4gMTExNDExMSkge1xuICAgICAgICByZXR1cm4gRVJSLmNoYXJhY3RlclJlZmVyZW5jZU91dHNpZGVVbmljb2RlUmFuZ2U7XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzU3Vycm9nYXRlKGNvZGUpKSB7XG4gICAgICAgIHJldHVybiBFUlIuc3Vycm9nYXRlQ2hhcmFjdGVyUmVmZXJlbmNlO1xuICAgIH1cbiAgICBlbHNlIGlmIChpc1VuZGVmaW5lZENvZGVQb2ludChjb2RlKSkge1xuICAgICAgICByZXR1cm4gRVJSLm5vbmNoYXJhY3RlckNoYXJhY3RlclJlZmVyZW5jZTtcbiAgICB9XG4gICAgZWxzZSBpZiAoaXNDb250cm9sQ29kZVBvaW50KGNvZGUpIHx8IGNvZGUgPT09ICQuQ0FSUklBR0VfUkVUVVJOKSB7XG4gICAgICAgIHJldHVybiBFUlIuY29udHJvbENoYXJhY3RlclJlZmVyZW5jZTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG4vL1Rva2VuaXplclxuZXhwb3J0IGNsYXNzIFRva2VuaXplciB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucywgaGFuZGxlcikge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgICB0aGlzLmhhbmRsZXIgPSBoYW5kbGVyO1xuICAgICAgICB0aGlzLnBhdXNlZCA9IGZhbHNlO1xuICAgICAgICAvKiogRW5zdXJlcyB0aGF0IHRoZSBwYXJzaW5nIGxvb3AgaXNuJ3QgcnVuIG11bHRpcGxlIHRpbWVzIGF0IG9uY2UuICovXG4gICAgICAgIHRoaXMuaW5Mb29wID0gZmFsc2U7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgY3VycmVudCBhZGp1c3RlZCBub2RlIGV4aXN0cywgaXMgbm90IGFuIGVsZW1lbnQgaW4gdGhlIEhUTUwgbmFtZXNwYWNlLFxuICAgICAgICAgKiBhbmQgdGhhdCBpdCBpcyBub3QgYW4gaW50ZWdyYXRpb24gcG9pbnQgZm9yIGVpdGhlciBNYXRoTUwgb3IgSFRNTC5cbiAgICAgICAgICpcbiAgICAgICAgICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvcGFyc2luZy5odG1sI3RyZWUtY29uc3RydWN0aW9ufVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5pbkZvcmVpZ25Ob2RlID0gZmFsc2U7XG4gICAgICAgIHRoaXMubGFzdFN0YXJ0VGFnTmFtZSA9ICcnO1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgIHRoaXMuZW50aXR5U3RhcnRQb3MgPSAwO1xuICAgICAgICB0aGlzLmNvbnN1bWVkQWZ0ZXJTbmFwc2hvdCA9IC0xO1xuICAgICAgICB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbiA9IG51bGw7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuID0gbnVsbDtcbiAgICAgICAgdGhpcy5jdXJyZW50QXR0ciA9IHsgbmFtZTogJycsIHZhbHVlOiAnJyB9O1xuICAgICAgICB0aGlzLnByZXByb2Nlc3NvciA9IG5ldyBQcmVwcm9jZXNzb3IoaGFuZGxlcik7XG4gICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uID0gdGhpcy5nZXRDdXJyZW50TG9jYXRpb24oLTEpO1xuICAgICAgICB0aGlzLmVudGl0eURlY29kZXIgPSBuZXcgRW50aXR5RGVjb2RlcihodG1sRGVjb2RlVHJlZSwgKGNwLCBjb25zdW1lZCkgPT4ge1xuICAgICAgICAgICAgLy8gTm90ZTogU2V0IGBwb3NgIF9iZWZvcmVfIGZsdXNoaW5nLCBhcyBmbHVzaGluZyBtaWdodCBkcm9wXG4gICAgICAgICAgICAvLyB0aGUgY3VycmVudCBjaHVuayBhbmQgaW52YWxpZGF0ZSBgZW50aXR5U3RhcnRQb3NgLlxuICAgICAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3IucG9zID0gdGhpcy5lbnRpdHlTdGFydFBvcyArIGNvbnN1bWVkIC0gMTtcbiAgICAgICAgICAgIHRoaXMuX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZShjcCk7XG4gICAgICAgIH0sIGhhbmRsZXIub25QYXJzZUVycm9yXG4gICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICBtaXNzaW5nU2VtaWNvbG9uQWZ0ZXJDaGFyYWN0ZXJSZWZlcmVuY2U6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nU2VtaWNvbG9uQWZ0ZXJDaGFyYWN0ZXJSZWZlcmVuY2UsIDEpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYWJzZW5jZU9mRGlnaXRzSW5OdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlOiAoY29uc3VtZWQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5hYnNlbmNlT2ZEaWdpdHNJbk51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2UsIHRoaXMuZW50aXR5U3RhcnRQb3MgLSB0aGlzLnByZXByb2Nlc3Nvci5wb3MgKyBjb25zdW1lZCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2U6IChjb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gZ2V0RXJyb3JGb3JOdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlKGNvZGUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IpXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoZXJyb3IsIDEpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHVuZGVmaW5lZCk7XG4gICAgfVxuICAgIC8vRXJyb3JzXG4gICAgX2Vycihjb2RlLCBjcE9mZnNldCA9IDApIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgKF9iID0gKF9hID0gdGhpcy5oYW5kbGVyKS5vblBhcnNlRXJyb3IpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hLCB0aGlzLnByZXByb2Nlc3Nvci5nZXRFcnJvcihjb2RlLCBjcE9mZnNldCkpO1xuICAgIH1cbiAgICAvLyBOT1RFOiBgb2Zmc2V0YCBtYXkgbmV2ZXIgcnVuIGFjcm9zcyBsaW5lIGJvdW5kYXJpZXMuXG4gICAgZ2V0Q3VycmVudExvY2F0aW9uKG9mZnNldCkge1xuICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3RhcnRMaW5lOiB0aGlzLnByZXByb2Nlc3Nvci5saW5lLFxuICAgICAgICAgICAgc3RhcnRDb2w6IHRoaXMucHJlcHJvY2Vzc29yLmNvbCAtIG9mZnNldCxcbiAgICAgICAgICAgIHN0YXJ0T2Zmc2V0OiB0aGlzLnByZXByb2Nlc3Nvci5vZmZzZXQgLSBvZmZzZXQsXG4gICAgICAgICAgICBlbmRMaW5lOiAtMSxcbiAgICAgICAgICAgIGVuZENvbDogLTEsXG4gICAgICAgICAgICBlbmRPZmZzZXQ6IC0xLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBfcnVuUGFyc2luZ0xvb3AoKSB7XG4gICAgICAgIGlmICh0aGlzLmluTG9vcClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdGhpcy5pbkxvb3AgPSB0cnVlO1xuICAgICAgICB3aGlsZSAodGhpcy5hY3RpdmUgJiYgIXRoaXMucGF1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnN1bWVkQWZ0ZXJTbmFwc2hvdCA9IDA7XG4gICAgICAgICAgICBjb25zdCBjcCA9IHRoaXMuX2NvbnN1bWUoKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NhbGxTdGF0ZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbkxvb3AgPSBmYWxzZTtcbiAgICB9XG4gICAgLy9BUElcbiAgICBwYXVzZSgpIHtcbiAgICAgICAgdGhpcy5wYXVzZWQgPSB0cnVlO1xuICAgIH1cbiAgICByZXN1bWUod3JpdGVDYWxsYmFjaykge1xuICAgICAgICBpZiAoIXRoaXMucGF1c2VkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BhcnNlciB3YXMgYWxyZWFkeSByZXN1bWVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wYXVzZWQgPSBmYWxzZTtcbiAgICAgICAgLy8gTmVjZXNzYXJ5IGZvciBzeW5jaHJvbm91cyByZXN1bWUuXG4gICAgICAgIGlmICh0aGlzLmluTG9vcClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdGhpcy5fcnVuUGFyc2luZ0xvb3AoKTtcbiAgICAgICAgaWYgKCF0aGlzLnBhdXNlZCkge1xuICAgICAgICAgICAgd3JpdGVDYWxsYmFjayA9PT0gbnVsbCB8fCB3cml0ZUNhbGxiYWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiB3cml0ZUNhbGxiYWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgd3JpdGUoY2h1bmssIGlzTGFzdENodW5rLCB3cml0ZUNhbGxiYWNrKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3Iud3JpdGUoY2h1bmssIGlzTGFzdENodW5rKTtcbiAgICAgICAgdGhpcy5fcnVuUGFyc2luZ0xvb3AoKTtcbiAgICAgICAgaWYgKCF0aGlzLnBhdXNlZCkge1xuICAgICAgICAgICAgd3JpdGVDYWxsYmFjayA9PT0gbnVsbCB8fCB3cml0ZUNhbGxiYWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiB3cml0ZUNhbGxiYWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaW5zZXJ0SHRtbEF0Q3VycmVudFBvcyhjaHVuaykge1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgIHRoaXMucHJlcHJvY2Vzc29yLmluc2VydEh0bWxBdEN1cnJlbnRQb3MoY2h1bmspO1xuICAgICAgICB0aGlzLl9ydW5QYXJzaW5nTG9vcCgpO1xuICAgIH1cbiAgICAvL0hpYmVybmF0aW9uXG4gICAgX2Vuc3VyZUhpYmVybmF0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5wcmVwcm9jZXNzb3IuZW5kT2ZDaHVua0hpdCkge1xuICAgICAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3IucmV0cmVhdCh0aGlzLmNvbnN1bWVkQWZ0ZXJTbmFwc2hvdCk7XG4gICAgICAgICAgICB0aGlzLmNvbnN1bWVkQWZ0ZXJTbmFwc2hvdCA9IDA7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvL0NvbnN1bXB0aW9uXG4gICAgX2NvbnN1bWUoKSB7XG4gICAgICAgIHRoaXMuY29uc3VtZWRBZnRlclNuYXBzaG90Kys7XG4gICAgICAgIHJldHVybiB0aGlzLnByZXByb2Nlc3Nvci5hZHZhbmNlKCk7XG4gICAgfVxuICAgIF9hZHZhbmNlQnkoY291bnQpIHtcbiAgICAgICAgdGhpcy5jb25zdW1lZEFmdGVyU25hcHNob3QgKz0gY291bnQ7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3IuYWR2YW5jZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9jb25zdW1lU2VxdWVuY2VJZk1hdGNoKHBhdHRlcm4sIGNhc2VTZW5zaXRpdmUpIHtcbiAgICAgICAgaWYgKHRoaXMucHJlcHJvY2Vzc29yLnN0YXJ0c1dpdGgocGF0dGVybiwgY2FzZVNlbnNpdGl2ZSkpIHtcbiAgICAgICAgICAgIC8vIFdlIHdpbGwgYWxyZWFkeSBoYXZlIGNvbnN1bWVkIG9uZSBjaGFyYWN0ZXIgYmVmb3JlIGNhbGxpbmcgdGhpcyBtZXRob2QuXG4gICAgICAgICAgICB0aGlzLl9hZHZhbmNlQnkocGF0dGVybi5sZW5ndGggLSAxKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgLy9Ub2tlbiBjcmVhdGlvblxuICAgIF9jcmVhdGVTdGFydFRhZ1Rva2VuKCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IHtcbiAgICAgICAgICAgIHR5cGU6IFRva2VuVHlwZS5TVEFSVF9UQUcsXG4gICAgICAgICAgICB0YWdOYW1lOiAnJyxcbiAgICAgICAgICAgIHRhZ0lEOiBUQUdfSUQuVU5LTk9XTixcbiAgICAgICAgICAgIHNlbGZDbG9zaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGFja1NlbGZDbG9zaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGF0dHJzOiBbXSxcbiAgICAgICAgICAgIGxvY2F0aW9uOiB0aGlzLmdldEN1cnJlbnRMb2NhdGlvbigxKSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgX2NyZWF0ZUVuZFRhZ1Rva2VuKCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IHtcbiAgICAgICAgICAgIHR5cGU6IFRva2VuVHlwZS5FTkRfVEFHLFxuICAgICAgICAgICAgdGFnTmFtZTogJycsXG4gICAgICAgICAgICB0YWdJRDogVEFHX0lELlVOS05PV04sXG4gICAgICAgICAgICBzZWxmQ2xvc2luZzogZmFsc2UsXG4gICAgICAgICAgICBhY2tTZWxmQ2xvc2luZzogZmFsc2UsXG4gICAgICAgICAgICBhdHRyczogW10sXG4gICAgICAgICAgICBsb2NhdGlvbjogdGhpcy5nZXRDdXJyZW50TG9jYXRpb24oMiksXG4gICAgICAgIH07XG4gICAgfVxuICAgIF9jcmVhdGVDb21tZW50VG9rZW4ob2Zmc2V0KSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuID0ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW5UeXBlLkNPTU1FTlQsXG4gICAgICAgICAgICBkYXRhOiAnJyxcbiAgICAgICAgICAgIGxvY2F0aW9uOiB0aGlzLmdldEN1cnJlbnRMb2NhdGlvbihvZmZzZXQpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBfY3JlYXRlRG9jdHlwZVRva2VuKGluaXRpYWxOYW1lKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuID0ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW5UeXBlLkRPQ1RZUEUsXG4gICAgICAgICAgICBuYW1lOiBpbml0aWFsTmFtZSxcbiAgICAgICAgICAgIGZvcmNlUXVpcmtzOiBmYWxzZSxcbiAgICAgICAgICAgIHB1YmxpY0lkOiBudWxsLFxuICAgICAgICAgICAgc3lzdGVtSWQ6IG51bGwsXG4gICAgICAgICAgICBsb2NhdGlvbjogdGhpcy5jdXJyZW50TG9jYXRpb24sXG4gICAgICAgIH07XG4gICAgfVxuICAgIF9jcmVhdGVDaGFyYWN0ZXJUb2tlbih0eXBlLCBjaGFycykge1xuICAgICAgICB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbiA9IHtcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICBjaGFycyxcbiAgICAgICAgICAgIGxvY2F0aW9uOiB0aGlzLmN1cnJlbnRMb2NhdGlvbixcbiAgICAgICAgfTtcbiAgICB9XG4gICAgLy9UYWcgYXR0cmlidXRlc1xuICAgIF9jcmVhdGVBdHRyKGF0dHJOYW1lRmlyc3RDaCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRBdHRyID0ge1xuICAgICAgICAgICAgbmFtZTogYXR0ck5hbWVGaXJzdENoLFxuICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmN1cnJlbnRMb2NhdGlvbiA9IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKDApO1xuICAgIH1cbiAgICBfbGVhdmVBdHRyTmFtZSgpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICB2YXIgX2I7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIGlmIChnZXRUb2tlbkF0dHIodG9rZW4sIHRoaXMuY3VycmVudEF0dHIubmFtZSkgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRva2VuLmF0dHJzLnB1c2godGhpcy5jdXJyZW50QXR0cik7XG4gICAgICAgICAgICBpZiAodG9rZW4ubG9jYXRpb24gJiYgdGhpcy5jdXJyZW50TG9jYXRpb24pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhdHRyTG9jYXRpb25zID0gKChfYSA9IChfYiA9IHRva2VuLmxvY2F0aW9uKS5hdHRycykgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogKF9iLmF0dHJzID0gT2JqZWN0LmNyZWF0ZShudWxsKSkpO1xuICAgICAgICAgICAgICAgIGF0dHJMb2NhdGlvbnNbdGhpcy5jdXJyZW50QXR0ci5uYW1lXSA9IHRoaXMuY3VycmVudExvY2F0aW9uO1xuICAgICAgICAgICAgICAgIC8vIFNldCBlbmQgbG9jYXRpb25cbiAgICAgICAgICAgICAgICB0aGlzLl9sZWF2ZUF0dHJWYWx1ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5kdXBsaWNhdGVBdHRyaWJ1dGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9sZWF2ZUF0dHJWYWx1ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudExvY2F0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMb2NhdGlvbi5lbmRMaW5lID0gdGhpcy5wcmVwcm9jZXNzb3IubGluZTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uLmVuZENvbCA9IHRoaXMucHJlcHJvY2Vzc29yLmNvbDtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uLmVuZE9mZnNldCA9IHRoaXMucHJlcHJvY2Vzc29yLm9mZnNldDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvL1Rva2VuIGVtaXNzaW9uXG4gICAgcHJlcGFyZVRva2VuKGN0KSB7XG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50Q2hhcmFjdGVyVG9rZW4oY3QubG9jYXRpb24pO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IG51bGw7XG4gICAgICAgIGlmIChjdC5sb2NhdGlvbikge1xuICAgICAgICAgICAgY3QubG9jYXRpb24uZW5kTGluZSA9IHRoaXMucHJlcHJvY2Vzc29yLmxpbmU7XG4gICAgICAgICAgICBjdC5sb2NhdGlvbi5lbmRDb2wgPSB0aGlzLnByZXByb2Nlc3Nvci5jb2wgKyAxO1xuICAgICAgICAgICAgY3QubG9jYXRpb24uZW5kT2Zmc2V0ID0gdGhpcy5wcmVwcm9jZXNzb3Iub2Zmc2V0ICsgMTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1cnJlbnRMb2NhdGlvbiA9IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKC0xKTtcbiAgICB9XG4gICAgZW1pdEN1cnJlbnRUYWdUb2tlbigpIHtcbiAgICAgICAgY29uc3QgY3QgPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgdGhpcy5wcmVwYXJlVG9rZW4oY3QpO1xuICAgICAgICBjdC50YWdJRCA9IGdldFRhZ0lEKGN0LnRhZ05hbWUpO1xuICAgICAgICBpZiAoY3QudHlwZSA9PT0gVG9rZW5UeXBlLlNUQVJUX1RBRykge1xuICAgICAgICAgICAgdGhpcy5sYXN0U3RhcnRUYWdOYW1lID0gY3QudGFnTmFtZTtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlci5vblN0YXJ0VGFnKGN0KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChjdC5hdHRycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lbmRUYWdXaXRoQXR0cmlidXRlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY3Quc2VsZkNsb3NpbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVuZFRhZ1dpdGhUcmFpbGluZ1NvbGlkdXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5oYW5kbGVyLm9uRW5kVGFnKGN0KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci5kcm9wUGFyc2VkQ2h1bmsoKTtcbiAgICB9XG4gICAgZW1pdEN1cnJlbnRDb21tZW50KGN0KSB7XG4gICAgICAgIHRoaXMucHJlcGFyZVRva2VuKGN0KTtcbiAgICAgICAgdGhpcy5oYW5kbGVyLm9uQ29tbWVudChjdCk7XG4gICAgICAgIHRoaXMucHJlcHJvY2Vzc29yLmRyb3BQYXJzZWRDaHVuaygpO1xuICAgIH1cbiAgICBlbWl0Q3VycmVudERvY3R5cGUoY3QpIHtcbiAgICAgICAgdGhpcy5wcmVwYXJlVG9rZW4oY3QpO1xuICAgICAgICB0aGlzLmhhbmRsZXIub25Eb2N0eXBlKGN0KTtcbiAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3IuZHJvcFBhcnNlZENodW5rKCk7XG4gICAgfVxuICAgIF9lbWl0Q3VycmVudENoYXJhY3RlclRva2VuKG5leHRMb2NhdGlvbikge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4pIHtcbiAgICAgICAgICAgIC8vTk9URTogaWYgd2UgaGF2ZSBhIHBlbmRpbmcgY2hhcmFjdGVyIHRva2VuLCBtYWtlIGl0J3MgZW5kIGxvY2F0aW9uIGVxdWFsIHRvIHRoZVxuICAgICAgICAgICAgLy9jdXJyZW50IHRva2VuJ3Mgc3RhcnQgbG9jYXRpb24uXG4gICAgICAgICAgICBpZiAobmV4dExvY2F0aW9uICYmIHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuLmxvY2F0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4ubG9jYXRpb24uZW5kTGluZSA9IG5leHRMb2NhdGlvbi5zdGFydExpbmU7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4ubG9jYXRpb24uZW5kQ29sID0gbmV4dExvY2F0aW9uLnN0YXJ0Q29sO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuLmxvY2F0aW9uLmVuZE9mZnNldCA9IG5leHRMb2NhdGlvbi5zdGFydE9mZnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4udHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLkNIQVJBQ1RFUjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZXIub25DaGFyYWN0ZXIodGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuTlVMTF9DSEFSQUNURVI6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVyLm9uTnVsbENoYXJhY3Rlcih0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5XSElURVNQQUNFX0NIQVJBQ1RFUjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZXIub25XaGl0ZXNwYWNlQ2hhcmFjdGVyKHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4gPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9lbWl0RU9GVG9rZW4oKSB7XG4gICAgICAgIGNvbnN0IGxvY2F0aW9uID0gdGhpcy5nZXRDdXJyZW50TG9jYXRpb24oMCk7XG4gICAgICAgIGlmIChsb2NhdGlvbikge1xuICAgICAgICAgICAgbG9jYXRpb24uZW5kTGluZSA9IGxvY2F0aW9uLnN0YXJ0TGluZTtcbiAgICAgICAgICAgIGxvY2F0aW9uLmVuZENvbCA9IGxvY2F0aW9uLnN0YXJ0Q29sO1xuICAgICAgICAgICAgbG9jYXRpb24uZW5kT2Zmc2V0ID0gbG9jYXRpb24uc3RhcnRPZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRDaGFyYWN0ZXJUb2tlbihsb2NhdGlvbik7XG4gICAgICAgIHRoaXMuaGFuZGxlci5vbkVvZih7IHR5cGU6IFRva2VuVHlwZS5FT0YsIGxvY2F0aW9uIH0pO1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgIH1cbiAgICAvL0NoYXJhY3RlcnMgZW1pc3Npb25cbiAgICAvL09QVElNSVpBVElPTjogVGhlIHNwZWNpZmljYXRpb24gdXNlcyBvbmx5IG9uZSB0eXBlIG9mIGNoYXJhY3RlciB0b2tlbiAob25lIHRva2VuIHBlciBjaGFyYWN0ZXIpLlxuICAgIC8vVGhpcyBjYXVzZXMgYSBodWdlIG1lbW9yeSBvdmVyaGVhZCBhbmQgYSBsb3Qgb2YgdW5uZWNlc3NhcnkgcGFyc2VyIGxvb3BzLiBwYXJzZTUgdXNlcyAzIGdyb3VwcyBvZiBjaGFyYWN0ZXJzLlxuICAgIC8vSWYgd2UgaGF2ZSBhIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMgdGhhdCBiZWxvbmcgdG8gdGhlIHNhbWUgZ3JvdXAsIHRoZSBwYXJzZXIgY2FuIHByb2Nlc3MgaXRcbiAgICAvL2FzIGEgc2luZ2xlIHNvbGlkIGNoYXJhY3RlciB0b2tlbi5cbiAgICAvL1NvLCB0aGVyZSBhcmUgMyB0eXBlcyBvZiBjaGFyYWN0ZXIgdG9rZW5zIGluIHBhcnNlNTpcbiAgICAvLzEpVG9rZW5UeXBlLk5VTExfQ0hBUkFDVEVSIC0gXFx1MDAwMC1jaGFyYWN0ZXIgc2VxdWVuY2VzIChlLmcuICdcXHUwMDAwXFx1MDAwMFxcdTAwMDAnKVxuICAgIC8vMilUb2tlblR5cGUuV0hJVEVTUEFDRV9DSEFSQUNURVIgLSBhbnkgd2hpdGVzcGFjZS9uZXctbGluZSBjaGFyYWN0ZXIgc2VxdWVuY2VzIChlLmcuICdcXG4gIFxcclxcdCAgIFxcZicpXG4gICAgLy8zKVRva2VuVHlwZS5DSEFSQUNURVIgLSBhbnkgY2hhcmFjdGVyIHNlcXVlbmNlIHdoaWNoIGRvbid0IGJlbG9uZyB0byBncm91cHMgMSBhbmQgMiAoZS5nLiAnYWJjZGVmMTIzNEBAIyQlXicpXG4gICAgX2FwcGVuZENoYXJUb0N1cnJlbnRDaGFyYWN0ZXJUb2tlbih0eXBlLCBjaCkge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbi50eXBlID09PSB0eXBlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4uY2hhcnMgKz0gY2g7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50TG9jYXRpb24gPSB0aGlzLmdldEN1cnJlbnRMb2NhdGlvbigwKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q3VycmVudENoYXJhY3RlclRva2VuKHRoaXMuY3VycmVudExvY2F0aW9uKTtcbiAgICAgICAgICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci5kcm9wUGFyc2VkQ2h1bmsoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jcmVhdGVDaGFyYWN0ZXJUb2tlbih0eXBlLCBjaCk7XG4gICAgfVxuICAgIF9lbWl0Q29kZVBvaW50KGNwKSB7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBpc1doaXRlc3BhY2UoY3ApXG4gICAgICAgICAgICA/IFRva2VuVHlwZS5XSElURVNQQUNFX0NIQVJBQ1RFUlxuICAgICAgICAgICAgOiBjcCA9PT0gJC5OVUxMXG4gICAgICAgICAgICAgICAgPyBUb2tlblR5cGUuTlVMTF9DSEFSQUNURVJcbiAgICAgICAgICAgICAgICA6IFRva2VuVHlwZS5DSEFSQUNURVI7XG4gICAgICAgIHRoaXMuX2FwcGVuZENoYXJUb0N1cnJlbnRDaGFyYWN0ZXJUb2tlbih0eXBlLCBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCkpO1xuICAgIH1cbiAgICAvL05PVEU6IHVzZWQgd2hlbiB3ZSBlbWl0IGNoYXJhY3RlcnMgZXhwbGljaXRseS5cbiAgICAvL1RoaXMgaXMgYWx3YXlzIGZvciBub24td2hpdGVzcGFjZSBhbmQgbm9uLW51bGwgY2hhcmFjdGVycywgd2hpY2ggYWxsb3dzIHVzIHRvIGF2b2lkIGFkZGl0aW9uYWwgY2hlY2tzLlxuICAgIF9lbWl0Q2hhcnMoY2gpIHtcbiAgICAgICAgdGhpcy5fYXBwZW5kQ2hhclRvQ3VycmVudENoYXJhY3RlclRva2VuKFRva2VuVHlwZS5DSEFSQUNURVIsIGNoKTtcbiAgICB9XG4gICAgLy8gQ2hhcmFjdGVyIHJlZmVyZW5jZSBoZWxwZXJzXG4gICAgX3N0YXJ0Q2hhcmFjdGVyUmVmZXJlbmNlKCkge1xuICAgICAgICB0aGlzLnJldHVyblN0YXRlID0gdGhpcy5zdGF0ZTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNIQVJBQ1RFUl9SRUZFUkVOQ0U7XG4gICAgICAgIHRoaXMuZW50aXR5U3RhcnRQb3MgPSB0aGlzLnByZXByb2Nlc3Nvci5wb3M7XG4gICAgICAgIHRoaXMuZW50aXR5RGVjb2Rlci5zdGFydEVudGl0eSh0aGlzLl9pc0NoYXJhY3RlclJlZmVyZW5jZUluQXR0cmlidXRlKCkgPyBEZWNvZGluZ01vZGUuQXR0cmlidXRlIDogRGVjb2RpbmdNb2RlLkxlZ2FjeSk7XG4gICAgfVxuICAgIF9pc0NoYXJhY3RlclJlZmVyZW5jZUluQXR0cmlidXRlKCkge1xuICAgICAgICByZXR1cm4gKHRoaXMucmV0dXJuU3RhdGUgPT09IFN0YXRlLkFUVFJJQlVURV9WQUxVRV9ET1VCTEVfUVVPVEVEIHx8XG4gICAgICAgICAgICB0aGlzLnJldHVyblN0YXRlID09PSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfU0lOR0xFX1FVT1RFRCB8fFxuICAgICAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9PT0gU3RhdGUuQVRUUklCVVRFX1ZBTFVFX1VOUVVPVEVEKTtcbiAgICB9XG4gICAgX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZShjcCkge1xuICAgICAgICBpZiAodGhpcy5faXNDaGFyYWN0ZXJSZWZlcmVuY2VJbkF0dHJpYnV0ZSgpKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENhbGxpbmcgc3RhdGVzIHRoaXMgd2F5IHR1cm5zIG91dCB0byBiZSBtdWNoIGZhc3RlciB0aGFuIGFueSBvdGhlciBhcHByb2FjaC5cbiAgICBfY2FsbFN0YXRlKGNwKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5zdGF0ZSkge1xuICAgICAgICAgICAgY2FzZSBTdGF0ZS5EQVRBOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVEYXRhKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuUkNEQVRBOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVSY2RhdGEoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5SQVdURVhUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVSYXd0ZXh0KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEE6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGEoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5QTEFJTlRFWFQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVBsYWludGV4dChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlRBR19PUEVOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVUYWdPcGVuKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuRU5EX1RBR19PUEVOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVFbmRUYWdPcGVuKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuVEFHX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVRhZ05hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5SQ0RBVEFfTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVJjZGF0YUxlc3NUaGFuU2lnbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlJDREFUQV9FTkRfVEFHX09QRU46IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVJjZGF0YUVuZFRhZ09wZW4oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5SQ0RBVEFfRU5EX1RBR19OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVSY2RhdGFFbmRUYWdOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuUkFXVEVYVF9MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlUmF3dGV4dExlc3NUaGFuU2lnbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlJBV1RFWFRfRU5EX1RBR19PUEVOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVSYXd0ZXh0RW5kVGFnT3BlbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlJBV1RFWFRfRU5EX1RBR19OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVSYXd0ZXh0RW5kVGFnTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0xFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhTGVzc1RoYW5TaWduKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRU5EX1RBR19PUEVOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRW5kVGFnT3BlbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VORF9UQUdfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVuZFRhZ05hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVTdGFydChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVF9EQVNIOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlU3RhcnREYXNoKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0g6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkRGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfREFTSF9EQVNIOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZERhc2hEYXNoKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWRMZXNzVGhhblNpZ24oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfT1BFTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWRFbmRUYWdPcGVuKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkRW5kVGFnTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfU1RBUlQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVTdGFydChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0g6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkRGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hfREFTSDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWREYXNoRGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlZExlc3NUaGFuU2lnbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfRU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlRW5kKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZWZvcmVBdHRyaWJ1dGVOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQVRUUklCVVRFX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUF0dHJpYnV0ZU5hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BRlRFUl9BVFRSSUJVVEVfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQWZ0ZXJBdHRyaWJ1dGVOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9WQUxVRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmVmb3JlQXR0cmlidXRlVmFsdWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfRE9VQkxFX1FVT1RFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQXR0cmlidXRlVmFsdWVEb3VibGVRdW90ZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfU0lOR0xFX1FVT1RFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQXR0cmlidXRlVmFsdWVTaW5nbGVRdW90ZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfVU5RVU9URUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUF0dHJpYnV0ZVZhbHVlVW5xdW90ZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BRlRFUl9BVFRSSUJVVEVfVkFMVUVfUVVPVEVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBZnRlckF0dHJpYnV0ZVZhbHVlUXVvdGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0VMRl9DTE9TSU5HX1NUQVJUX1RBRzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2VsZkNsb3NpbmdTdGFydFRhZyhjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkJPR1VTX0NPTU1FTlQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzQ29tbWVudChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLk1BUktVUF9ERUNMQVJBVElPTl9PUEVOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVNYXJrdXBEZWNsYXJhdGlvbk9wZW4oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DT01NRU5UX1NUQVJUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50U3RhcnQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DT01NRU5UX1NUQVJUX0RBU0g6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRTdGFydERhc2goY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DT01NRU5UOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVF9MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudExlc3NUaGFuU2lnbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFORzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudExlc3NUaGFuU2lnbkJhbmcoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkdfREFTSDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudExlc3NUaGFuU2lnbkJhbmdEYXNoKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HX0RBU0hfREFTSDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudExlc3NUaGFuU2lnbkJhbmdEYXNoRGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNPTU1FTlRfRU5EX0RBU0g6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRFbmREYXNoKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVF9FTkQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRFbmQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DT01NRU5UX0VORF9CQU5HOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50RW5kQmFuZyhjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkRPQ1RZUEU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURvY3R5cGUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5CRUZPUkVfRE9DVFlQRV9OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZWZvcmVEb2N0eXBlTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkRPQ1RZUEVfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlRG9jdHlwZU5hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BRlRFUl9ET0NUWVBFX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUFmdGVyRG9jdHlwZU5hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1BVQkxJQ19LRVlXT1JEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBZnRlckRvY3R5cGVQdWJsaWNLZXl3b3JkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQkVGT1JFX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVI6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJlZm9yZURvY3R5cGVQdWJsaWNJZGVudGlmaWVyKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVEb2N0eXBlUHVibGljSWRlbnRpZmllckRvdWJsZVF1b3RlZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXJTaW5nbGVRdW90ZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBZnRlckRvY3R5cGVQdWJsaWNJZGVudGlmaWVyKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQkVUV0VFTl9ET0NUWVBFX1BVQkxJQ19BTkRfU1lTVEVNX0lERU5USUZJRVJTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZXR3ZWVuRG9jdHlwZVB1YmxpY0FuZFN5c3RlbUlkZW50aWZpZXJzKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQUZURVJfRE9DVFlQRV9TWVNURU1fS0VZV09SRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQWZ0ZXJEb2N0eXBlU3lzdGVtS2V5d29yZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkJFRk9SRV9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZWZvcmVEb2N0eXBlU3lzdGVtSWRlbnRpZmllcihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXJEb3VibGVRdW90ZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NJTkdMRV9RVU9URUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyU2luZ2xlUXVvdGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQUZURVJfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQWZ0ZXJEb2N0eXBlU3lzdGVtSWRlbnRpZmllcihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkJPR1VTX0RPQ1RZUEU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzRG9jdHlwZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNEQVRBX1NFQ1RJT046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNkYXRhU2VjdGlvbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNEQVRBX1NFQ1RJT05fQlJBQ0tFVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ2RhdGFTZWN0aW9uQnJhY2tldChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNEQVRBX1NFQ1RJT05fRU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDZGF0YVNlY3Rpb25FbmQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DSEFSQUNURVJfUkVGRVJFTkNFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDaGFyYWN0ZXJSZWZlcmVuY2UoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQU1CSUdVT1VTX0FNUEVSU0FORDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQW1iaWd1b3VzQW1wZXJzYW5kKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gc3RhdGUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTdGF0ZSBtYWNoaW5lXG4gICAgLy8gRGF0YSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRGF0YShjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuVEFHX09QRU47XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQU1QRVJTQU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhcnRDaGFyYWN0ZXJSZWZlcmVuY2UoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gIFJDREFUQSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlUmNkYXRhKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5BTVBFUlNBTkQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGFydENoYXJhY3RlclJlZmVyZW5jZSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJDREFUQV9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUkFXVEVYVCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlUmF3dGV4dChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkFXVEVYVF9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGEoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBQTEFJTlRFWFQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVBsYWludGV4dChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFRhZyBvcGVuIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVUYWdPcGVuKGNwKSB7XG4gICAgICAgIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fY3JlYXRlU3RhcnRUYWdUb2tlbigpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlRBR19OQU1FO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVUYWdOYW1lKGNwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAkLkVYQ0xBTUFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLk1BUktVUF9ERUNMQVJBVElPTl9PUEVOO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLlNPTElEVVM6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkVORF9UQUdfT1BFTjtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5RVUVTVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZFF1ZXN0aW9uTWFya0luc3RlYWRPZlRhZ05hbWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVDb21tZW50VG9rZW4oMSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19DT01NRU5UO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzQ29tbWVudChjcCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mQmVmb3JlVGFnTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCcpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5pbnZhbGlkRmlyc3RDaGFyYWN0ZXJPZlRhZ05hbWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlRGF0YShjcCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgIH1cbiAgICAvLyBFbmQgdGFnIG9wZW4gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUVuZFRhZ09wZW4oY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlMZXR0ZXIoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9jcmVhdGVFbmRUYWdUb2tlbigpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlRBR19OQU1FO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVUYWdOYW1lKGNwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ0VuZFRhZ05hbWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZCZWZvcmVUYWdOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8LycpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5pbnZhbGlkRmlyc3RDaGFyYWN0ZXJPZlRhZ05hbWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVDb21tZW50VG9rZW4oMik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19DT01NRU5UO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzQ29tbWVudChjcCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgIH1cbiAgICAvLyBUYWcgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlVGFnTmFtZShjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5TT0xJRFVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNFTEZfQ0xPU0lOR19TVEFSVF9UQUc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50VGFnVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdG9rZW4udGFnTmFtZSArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblRhZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4udGFnTmFtZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChpc0FzY2lpVXBwZXIoY3ApID8gdG9Bc2NpaUxvd2VyKGNwKSA6IGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBSQ0RBVEEgbGVzcy10aGFuIHNpZ24gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVJjZGF0YUxlc3NUaGFuU2lnbihjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuU09MSURVUykge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJDREFUQV9FTkRfVEFHX09QRU47XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQ0RBVEE7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVJjZGF0YShjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUkNEQVRBIGVuZCB0YWcgb3BlbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlUmNkYXRhRW5kVGFnT3BlbihjcCkge1xuICAgICAgICBpZiAoaXNBc2NpaUxldHRlcihjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQ0RBVEFfRU5EX1RBR19OQU1FO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVSY2RhdGFFbmRUYWdOYW1lKGNwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPC8nKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQ0RBVEE7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVJjZGF0YShjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaGFuZGxlU3BlY2lhbEVuZFRhZyhfY3ApIHtcbiAgICAgICAgaWYgKCF0aGlzLnByZXByb2Nlc3Nvci5zdGFydHNXaXRoKHRoaXMubGFzdFN0YXJ0VGFnTmFtZSwgZmFsc2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gIXRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY3JlYXRlRW5kVGFnVG9rZW4oKTtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgdG9rZW4udGFnTmFtZSA9IHRoaXMubGFzdFN0YXJ0VGFnTmFtZTtcbiAgICAgICAgY29uc3QgY3AgPSB0aGlzLnByZXByb2Nlc3Nvci5wZWVrKHRoaXMubGFzdFN0YXJ0VGFnTmFtZS5sZW5ndGgpO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWR2YW5jZUJ5KHRoaXMubGFzdFN0YXJ0VGFnTmFtZS5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlNPTElEVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hZHZhbmNlQnkodGhpcy5sYXN0U3RhcnRUYWdOYW1lLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNFTEZfQ0xPU0lOR19TVEFSVF9UQUc7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWR2YW5jZUJ5KHRoaXMubGFzdFN0YXJ0VGFnTmFtZS5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRUYWdUb2tlbigpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gIXRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUkNEQVRBIGVuZCB0YWcgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlUmNkYXRhRW5kVGFnTmFtZShjcCkge1xuICAgICAgICBpZiAodGhpcy5oYW5kbGVTcGVjaWFsRW5kVGFnKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8LycpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJDREFUQTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlUmNkYXRhKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBSQVdURVhUIGxlc3MtdGhhbiBzaWduIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVSYXd0ZXh0TGVzc1RoYW5TaWduKGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5TT0xJRFVTKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkFXVEVYVF9FTkRfVEFHX09QRU47XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQVdURVhUO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVSYXd0ZXh0KGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBSQVdURVhUIGVuZCB0YWcgb3BlbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlUmF3dGV4dEVuZFRhZ09wZW4oY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlMZXR0ZXIoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkFXVEVYVF9FTkRfVEFHX05BTUU7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVJhd3RleHRFbmRUYWdOYW1lKGNwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPC8nKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQVdURVhUO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVSYXd0ZXh0KGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBSQVdURVhUIGVuZCB0YWcgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlUmF3dGV4dEVuZFRhZ05hbWUoY3ApIHtcbiAgICAgICAgaWYgKHRoaXMuaGFuZGxlU3BlY2lhbEVuZFRhZyhjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPC8nKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQVdURVhUO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVSYXd0ZXh0KGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBsZXNzLXRoYW4gc2lnbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUxlc3NUaGFuU2lnbihjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU09MSURVUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FTkRfVEFHX09QRU47XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRVhDTEFNQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8IScpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCcpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGEoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVuZCB0YWcgb3BlbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVuZFRhZ09wZW4oY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlMZXR0ZXIoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRU5EX1RBR19OQU1FO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRW5kVGFnTmFtZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEE7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGEoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVuZCB0YWcgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVuZFRhZ05hbWUoY3ApIHtcbiAgICAgICAgaWYgKHRoaXMuaGFuZGxlU3BlY2lhbEVuZFRhZyhjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPC8nKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YShjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZXNjYXBlIHN0YXJ0IHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRXNjYXBlU3RhcnQoY3ApIHtcbiAgICAgICAgaWYgKGNwID09PSAkLkhZUEhFTl9NSU5VUykge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVF9EQVNIO1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCctJyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEE7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGEoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVzY2FwZSBzdGFydCBkYXNoIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRXNjYXBlU3RhcnREYXNoKGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfREFTSDtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnLScpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlc2NhcGVkIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRXNjYXBlZChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfREFTSDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy0nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluU2NyaXB0SHRtbENvbW1lbnRMaWtlVGV4dCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZXNjYXBlZCBkYXNoIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRXNjYXBlZERhc2goY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfREFTSDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy0nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluU2NyaXB0SHRtbENvbW1lbnRMaWtlVGV4dCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZXNjYXBlZCBkYXNoIGRhc2ggc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkRGFzaERhc2goY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnLScpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfTEVTU19USEFOX1NJR047XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc+Jyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5TY3JpcHRIdG1sQ29tbWVudExpa2VUZXh0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlc2NhcGVkIGxlc3MtdGhhbiBzaWduIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRXNjYXBlZExlc3NUaGFuU2lnbihjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuU09MSURVUykge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19PUEVOO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzQXNjaWlMZXR0ZXIoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX1NUQVJUO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlU3RhcnQoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8Jyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVzY2FwZWQgZW5kIHRhZyBvcGVuIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRXNjYXBlZEVuZFRhZ09wZW4oY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlMZXR0ZXIoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX05BTUU7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkRW5kVGFnTmFtZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVzY2FwZWQgZW5kIHRhZyBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRXNjYXBlZEVuZFRhZ05hbWUoY3ApIHtcbiAgICAgICAgaWYgKHRoaXMuaGFuZGxlU3BlY2lhbEVuZFRhZyhjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPC8nKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZSBzdGFydCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZVN0YXJ0KGNwKSB7XG4gICAgICAgIGlmICh0aGlzLnByZXByb2Nlc3Nvci5zdGFydHNXaXRoKCQkLlNDUklQVCwgZmFsc2UpICYmXG4gICAgICAgICAgICBpc1NjcmlwdERhdGFEb3VibGVFc2NhcGVTZXF1ZW5jZUVuZCh0aGlzLnByZXByb2Nlc3Nvci5wZWVrKCQkLlNDUklQVC5sZW5ndGgpKSkge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8ICQkLlNDUklQVC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQodGhpcy5fY29uc3VtZSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICghdGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKSkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWQoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnLScpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluU2NyaXB0SHRtbENvbW1lbnRMaWtlVGV4dCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZWQgZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWREYXNoKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSF9EQVNIO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnLScpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblNjcmlwdEh0bWxDb21tZW50TGlrZVRleHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBkYXNoIGRhc2ggc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkRGFzaERhc2goY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnLScpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPicpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblNjcmlwdEh0bWxDb21tZW50TGlrZVRleHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBsZXNzLXRoYW4gc2lnbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWRMZXNzVGhhblNpZ24oY3ApIHtcbiAgICAgICAgaWYgKGNwID09PSAkLlNPTElEVVMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX0VORDtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnLycpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlZChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZSBlbmQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVFbmQoY3ApIHtcbiAgICAgICAgaWYgKHRoaXMucHJlcHJvY2Vzc29yLnN0YXJ0c1dpdGgoJCQuU0NSSVBULCBmYWxzZSkgJiZcbiAgICAgICAgICAgIGlzU2NyaXB0RGF0YURvdWJsZUVzY2FwZVNlcXVlbmNlRW5kKHRoaXMucHJlcHJvY2Vzc29yLnBlZWsoJCQuU0NSSVBULmxlbmd0aCkpKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgJCQuU0NSSVBULmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludCh0aGlzLl9jb25zdW1lKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIXRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEJlZm9yZSBhdHRyaWJ1dGUgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQmVmb3JlQXR0cmlidXRlTmFtZShjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5TT0xJRFVTOlxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOlxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUFmdGVyQXR0cmlidXRlTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRVFVQUxTX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWRFcXVhbHNTaWduQmVmb3JlQXR0cmlidXRlTmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlQXR0cignPScpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVBdHRyKCcnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBdHRyaWJ1dGVOYW1lKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBdHRyaWJ1dGUgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQXR0cmlidXRlTmFtZShjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlNPTElEVVM6XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGVhdmVBdHRyTmFtZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUFmdGVyQXR0cmlidXRlTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRVFVQUxTX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sZWF2ZUF0dHJOYW1lKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfVkFMVUU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRTpcbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZENoYXJhY3RlckluQXR0cmlidXRlTmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci5uYW1lICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci5uYW1lICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLm5hbWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoaXNBc2NpaVVwcGVyKGNwKSA/IHRvQXNjaWlMb3dlcihjcCkgOiBjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQWZ0ZXIgYXR0cmlidXRlIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUFmdGVyQXR0cmlidXRlTmFtZShjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5TT0xJRFVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNFTEZfQ0xPU0lOR19TVEFSVF9UQUc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRVFVQUxTX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9WQUxVRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRUYWdUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5UYWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUF0dHIoJycpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUF0dHJpYnV0ZU5hbWUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEJlZm9yZSBhdHRyaWJ1dGUgdmFsdWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUJlZm9yZUF0dHJpYnV0ZVZhbHVlKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgd2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFUVFJJQlVURV9WQUxVRV9ET1VCTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkFQT1NUUk9QSEU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQVRUUklCVVRFX1ZBTFVFX1NJTkdMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdBdHRyaWJ1dGVWYWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudFRhZ1Rva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFUVFJJQlVURV9WQUxVRV9VTlFVT1RFRDtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUF0dHJpYnV0ZVZhbHVlVW5xdW90ZWQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEF0dHJpYnV0ZSB2YWx1ZSAoZG91YmxlLXF1b3RlZCkgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUF0dHJpYnV0ZVZhbHVlRG91YmxlUXVvdGVkKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9BVFRSSUJVVEVfVkFMVUVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkFNUEVSU0FORDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXJ0Q2hhcmFjdGVyUmVmZXJlbmNlKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5UYWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEF0dHJpYnV0ZSB2YWx1ZSAoc2luZ2xlLXF1b3RlZCkgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUF0dHJpYnV0ZVZhbHVlU2luZ2xlUXVvdGVkKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0FUVFJJQlVURV9WQUxVRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQU1QRVJTQU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhcnRDaGFyYWN0ZXJSZWZlcmVuY2UoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblRhZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQXR0cmlidXRlIHZhbHVlICh1bnF1b3RlZCkgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUF0dHJpYnV0ZVZhbHVlVW5xdW90ZWQoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xlYXZlQXR0clZhbHVlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BTVBFUlNBTkQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGFydENoYXJhY3RlclJlZmVyZW5jZSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGVhdmVBdHRyVmFsdWUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50VGFnVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRTpcbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjpcbiAgICAgICAgICAgIGNhc2UgJC5FUVVBTFNfU0lHTjpcbiAgICAgICAgICAgIGNhc2UgJC5HUkFWRV9BQ0NFTlQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWRDaGFyYWN0ZXJJblVucXVvdGVkQXR0cmlidXRlVmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5UYWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEFmdGVyIGF0dHJpYnV0ZSB2YWx1ZSAocXVvdGVkKSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQWZ0ZXJBdHRyaWJ1dGVWYWx1ZVF1b3RlZChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGVhdmVBdHRyVmFsdWUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlNPTElEVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sZWF2ZUF0dHJWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TRUxGX0NMT1NJTkdfU1RBUlRfVEFHO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGVhdmVBdHRyVmFsdWUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50VGFnVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluVGFnKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdXaGl0ZXNwYWNlQmV0d2VlbkF0dHJpYnV0ZXMpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZWZvcmVBdHRyaWJ1dGVOYW1lKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTZWxmLWNsb3Npbmcgc3RhcnQgdGFnIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTZWxmQ2xvc2luZ1N0YXJ0VGFnKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgICAgICAgICAgdG9rZW4uc2VsZkNsb3NpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRUYWdUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5UYWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZFNvbGlkdXNJblRhZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJlZm9yZUF0dHJpYnV0ZU5hbWUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEJvZ3VzIGNvbW1lbnQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUJvZ3VzQ29tbWVudChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBNYXJrdXAgZGVjbGFyYXRpb24gb3BlbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlTWFya3VwRGVjbGFyYXRpb25PcGVuKGNwKSB7XG4gICAgICAgIGlmICh0aGlzLl9jb25zdW1lU2VxdWVuY2VJZk1hdGNoKCQkLkRBU0hfREFTSCwgdHJ1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUNvbW1lbnRUb2tlbigkJC5EQVNIX0RBU0gubGVuZ3RoICsgMSk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9TVEFSVDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLl9jb25zdW1lU2VxdWVuY2VJZk1hdGNoKCQkLkRPQ1RZUEUsIGZhbHNlKSkge1xuICAgICAgICAgICAgLy8gTk9URTogRG9jdHlwZXMgdG9rZW5zIGFyZSBjcmVhdGVkIHdpdGhvdXQgZml4ZWQgb2Zmc2V0cy4gV2Uga2VlcCB0cmFjayBvZiB0aGUgbW9tZW50IGEgZG9jdHlwZSAqbWlnaHQqIHN0YXJ0IGhlcmUuXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMb2NhdGlvbiA9IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKCQkLkRPQ1RZUEUubGVuZ3RoICsgMSk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLl9jb25zdW1lU2VxdWVuY2VJZk1hdGNoKCQkLkNEQVRBX1NUQVJULCB0cnVlKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaW5Gb3JlaWduTm9kZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DREFUQV9TRUNUSU9OO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5jZGF0YUluSHRtbENvbnRlbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUNvbW1lbnRUb2tlbigkJC5DREFUQV9TVEFSVC5sZW5ndGggKyAxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhID0gJ1tDREFUQVsnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19DT01NRU5UO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vTk9URTogU2VxdWVuY2UgbG9va3VwcyBjYW4gYmUgYWJydXB0ZWQgYnkgaGliZXJuYXRpb24uIEluIHRoYXQgY2FzZSwgbG9va3VwXG4gICAgICAgIC8vcmVzdWx0cyBhcmUgbm8gbG9uZ2VyIHZhbGlkIGFuZCB3ZSB3aWxsIG5lZWQgdG8gc3RhcnQgb3Zlci5cbiAgICAgICAgZWxzZSBpZiAoIXRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIuaW5jb3JyZWN0bHlPcGVuZWRDb21tZW50KTtcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUNvbW1lbnRUb2tlbigyKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19DT01NRU5UO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0NvbW1lbnQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENvbW1lbnQgc3RhcnQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNvbW1lbnRTdGFydChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfU1RBUlRfREFTSDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuYWJydXB0Q2xvc2luZ09mRW1wdHlDb21tZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRDb21tZW50KHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVDtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENvbW1lbnQgc3RhcnQgZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudFN0YXJ0RGFzaChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfRU5EO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5hYnJ1cHRDbG9zaW5nT2ZFbXB0eUNvbW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRDb21tZW50KHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluQ29tbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJy0nO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfRU5EX0RBU0g7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9ICc8JztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkNvbW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRDb21tZW50KHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDb21tZW50IGxlc3MtdGhhbiBzaWduIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDb21tZW50TGVzc1RoYW5TaWduKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5FWENMQU1BVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSAnISc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFORztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJzwnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBsZXNzLXRoYW4gc2lnbiBiYW5nIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDb21tZW50TGVzc1RoYW5TaWduQmFuZyhjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HX0RBU0g7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBsZXNzLXRoYW4gc2lnbiBiYW5nIGRhc2ggc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNvbW1lbnRMZXNzVGhhblNpZ25CYW5nRGFzaChjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HX0RBU0hfREFTSDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0VORF9EQVNIO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50RW5kRGFzaChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBsZXNzLXRoYW4gc2lnbiBiYW5nIGRhc2ggZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudExlc3NUaGFuU2lnbkJhbmdEYXNoRGFzaChjcCkge1xuICAgICAgICBpZiAoY3AgIT09ICQuR1JFQVRFUl9USEFOX1NJR04gJiYgY3AgIT09ICQuRU9GKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm5lc3RlZENvbW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0VORDtcbiAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50RW5kKGNwKTtcbiAgICB9XG4gICAgLy8gQ29tbWVudCBlbmQgZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudEVuZERhc2goY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0VORDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluQ29tbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJy0nO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBlbmQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNvbW1lbnRFbmQoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVYQ0xBTUFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9FTkRfQkFORztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9ICctJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluQ29tbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJy0tJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVDtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENvbW1lbnQgZW5kIGJhbmcgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNvbW1lbnRFbmRCYW5nKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9ICctLSEnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0VORF9EQVNIO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5pbmNvcnJlY3RseUNsb3NlZENvbW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRDb21tZW50KHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluQ29tbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJy0tISc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBET0NUWVBFIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVEb2N0eXBlKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0RPQ1RZUEVfTkFNRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfRE9DVFlQRV9OQU1FO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmVmb3JlRG9jdHlwZU5hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVEb2N0eXBlVG9rZW4obnVsbCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VCZWZvcmVEb2N0eXBlTmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9ET0NUWVBFX05BTUU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZWZvcmVEb2N0eXBlTmFtZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQmVmb3JlIERPQ1RZUEUgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQmVmb3JlRG9jdHlwZU5hbWUoY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlVcHBlcihjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbihTdHJpbmcuZnJvbUNoYXJDb2RlKHRvQXNjaWlMb3dlcihjcCkpKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX05BTUU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVEb2N0eXBlVG9rZW4oUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfTkFNRTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdEb2N0eXBlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbihudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbihudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVEb2N0eXBlVG9rZW4oU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfTkFNRTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgfVxuICAgIC8vIERPQ1RZUEUgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRG9jdHlwZU5hbWUoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9ET0NUWVBFX05BTUU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLm5hbWUgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLm5hbWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoaXNBc2NpaVVwcGVyKGNwKSA/IHRvQXNjaWlMb3dlcihjcCkgOiBjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQWZ0ZXIgRE9DVFlQRSBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBZnRlckRvY3R5cGVOYW1lKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgd2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9jb25zdW1lU2VxdWVuY2VJZk1hdGNoKCQkLlBVQkxJQywgZmFsc2UpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1BVQkxJQ19LRVlXT1JEO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLl9jb25zdW1lU2VxdWVuY2VJZk1hdGNoKCQkLlNZU1RFTSwgZmFsc2UpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1NZU1RFTV9LRVlXT1JEO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvL05PVEU6IHNlcXVlbmNlIGxvb2t1cCBjYW4gYmUgYWJydXB0ZWQgYnkgaGliZXJuYXRpb24uIEluIHRoYXQgY2FzZSBsb29rdXBcbiAgICAgICAgICAgICAgICAvL3Jlc3VsdHMgYXJlIG5vIGxvbmdlciB2YWxpZCBhbmQgd2Ugd2lsbCBuZWVkIHRvIHN0YXJ0IG92ZXIuXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoIXRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5pbnZhbGlkQ2hhcmFjdGVyU2VxdWVuY2VBZnRlckRvY3R5cGVOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfRE9DVFlQRTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBZnRlciBET0NUWVBFIHB1YmxpYyBrZXl3b3JkIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBZnRlckRvY3R5cGVQdWJsaWNLZXl3b3JkKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdXaGl0ZXNwYWNlQWZ0ZXJEb2N0eXBlUHVibGljS2V5d29yZCk7XG4gICAgICAgICAgICAgICAgdG9rZW4ucHVibGljSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkFQT1NUUk9QSEU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdXaGl0ZXNwYWNlQWZ0ZXJEb2N0eXBlUHVibGljS2V5d29yZCk7XG4gICAgICAgICAgICAgICAgdG9rZW4ucHVibGljSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nRG9jdHlwZVB1YmxpY0lkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nUXVvdGVCZWZvcmVEb2N0eXBlUHVibGljSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19ET0NUWVBFO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNEb2N0eXBlKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBCZWZvcmUgRE9DVFlQRSBwdWJsaWMgaWRlbnRpZmllciBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQmVmb3JlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXIoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIC8vIElnbm9yZSB3aGl0ZXNwYWNlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5wdWJsaWNJZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX0RPVUJMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRva2VuLnB1YmxpY0lkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ0RvY3R5cGVQdWJsaWNJZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1F1b3RlQmVmb3JlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfRE9DVFlQRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzRG9jdHlwZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gRE9DVFlQRSBwdWJsaWMgaWRlbnRpZmllciAoZG91YmxlLXF1b3RlZCkgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZURvY3R5cGVQdWJsaWNJZGVudGlmaWVyRG91YmxlUXVvdGVkKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5wdWJsaWNJZCArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmFicnVwdERvY3R5cGVQdWJsaWNJZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLnB1YmxpY0lkICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIChzaW5nbGUtcXVvdGVkKSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXJTaW5nbGVRdW90ZWQoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkFQT1NUUk9QSEU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQUZURVJfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdG9rZW4ucHVibGljSWQgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5hYnJ1cHREb2N0eXBlUHVibGljSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5wdWJsaWNJZCArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQWZ0ZXIgRE9DVFlQRSBwdWJsaWMgaWRlbnRpZmllciBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQWZ0ZXJEb2N0eXBlUHVibGljSWRlbnRpZmllcihjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFVFdFRU5fRE9DVFlQRV9QVUJMSUNfQU5EX1NZU1RFTV9JREVOVElGSUVSUztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VCZXR3ZWVuRG9jdHlwZVB1YmxpY0FuZFN5c3RlbUlkZW50aWZpZXJzKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VCZXR3ZWVuRG9jdHlwZVB1YmxpY0FuZFN5c3RlbUlkZW50aWZpZXJzKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NJTkdMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nUXVvdGVCZWZvcmVEb2N0eXBlU3lzdGVtSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19ET0NUWVBFO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNEb2N0eXBlKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBCZXR3ZWVuIERPQ1RZUEUgcHVibGljIGFuZCBzeXN0ZW0gaWRlbnRpZmllcnMgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUJldHdlZW5Eb2N0eXBlUHVibGljQW5kU3lzdGVtSWRlbnRpZmllcnMoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIC8vIElnbm9yZSB3aGl0ZXNwYWNlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0RPQ1RZUEU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEFmdGVyIERPQ1RZUEUgc3lzdGVtIGtleXdvcmQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUFmdGVyRG9jdHlwZVN5c3RlbUtleXdvcmQoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVTeXN0ZW1LZXl3b3JkKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVTeXN0ZW1LZXl3b3JkKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NJTkdMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdEb2N0eXBlU3lzdGVtSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0RPQ1RZUEU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEJlZm9yZSBET0NUWVBFIHN5c3RlbSBpZGVudGlmaWVyIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVCZWZvcmVEb2N0eXBlU3lzdGVtSWRlbnRpZmllcihjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nUXVvdGVCZWZvcmVEb2N0eXBlU3lzdGVtSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19ET0NUWVBFO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNEb2N0eXBlKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBET0NUWVBFIHN5c3RlbSBpZGVudGlmaWVyIChkb3VibGUtcXVvdGVkKSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXJEb3VibGVRdW90ZWQoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuYWJydXB0RG9jdHlwZVN5c3RlbUlkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIERPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgKHNpbmdsZS1xdW90ZWQpIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVEb2N0eXBlU3lzdGVtSWRlbnRpZmllclNpbmdsZVF1b3RlZChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmFicnVwdERvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBZnRlciBET0NUWVBFIHN5c3RlbSBpZGVudGlmaWVyIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBZnRlckRvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgd2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZENoYXJhY3RlckFmdGVyRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19ET0NUWVBFO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNEb2N0eXBlKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBCb2d1cyBET0NUWVBFIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVCb2d1c0RvY3R5cGUoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENEQVRBIHNlY3Rpb24gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNkYXRhU2VjdGlvbihjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuUklHSFRfU1FVQVJFX0JSQUNLRVQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ0RBVEFfU0VDVElPTl9CUkFDS0VUO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5DZGF0YSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ0RBVEEgc2VjdGlvbiBicmFja2V0IHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDZGF0YVNlY3Rpb25CcmFja2V0KGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5SSUdIVF9TUVVBUkVfQlJBQ0tFVCkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNEQVRBX1NFQ1RJT05fRU5EO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCddJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ0RBVEFfU0VDVElPTjtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlQ2RhdGFTZWN0aW9uKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDREFUQSBzZWN0aW9uIGVuZCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ2RhdGFTZWN0aW9uRW5kKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlJJR0hUX1NRVUFSRV9CUkFDS0VUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCddJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCddXScpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DREFUQV9TRUNUSU9OO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ2RhdGFTZWN0aW9uKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDaGFyYWN0ZXIgcmVmZXJlbmNlIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDaGFyYWN0ZXJSZWZlcmVuY2UoKSB7XG4gICAgICAgIGxldCBsZW5ndGggPSB0aGlzLmVudGl0eURlY29kZXIud3JpdGUodGhpcy5wcmVwcm9jZXNzb3IuaHRtbCwgdGhpcy5wcmVwcm9jZXNzb3IucG9zKTtcbiAgICAgICAgaWYgKGxlbmd0aCA8IDApIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnByZXByb2Nlc3Nvci5sYXN0Q2h1bmtXcml0dGVuKSB7XG4gICAgICAgICAgICAgICAgbGVuZ3RoID0gdGhpcy5lbnRpdHlEZWNvZGVyLmVuZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gV2FpdCBmb3IgdGhlIHJlc3Qgb2YgdGhlIGVudGl0eS5cbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIC8vIE1hcmsgdGhlIGVudGlyZSBidWZmZXIgYXMgcmVhZC5cbiAgICAgICAgICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci5wb3MgPSB0aGlzLnByZXByb2Nlc3Nvci5odG1sLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25zdW1lZEFmdGVyU25hcHNob3QgPSAwO1xuICAgICAgICAgICAgICAgIHRoaXMucHJlcHJvY2Vzc29yLmVuZE9mQ2h1bmtIaXQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAvLyBUaGlzIHdhcyBub3QgYSB2YWxpZCBlbnRpdHkuIEdvIGJhY2sgdG8gdGhlIGJlZ2lubmluZywgYW5kXG4gICAgICAgICAgICAvLyBmaWd1cmUgb3V0IHdoYXQgdG8gZG8uXG4gICAgICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci5wb3MgPSB0aGlzLmVudGl0eVN0YXJ0UG9zO1xuICAgICAgICAgICAgdGhpcy5fZmx1c2hDb2RlUG9pbnRDb25zdW1lZEFzQ2hhcmFjdGVyUmVmZXJlbmNlKCQuQU1QRVJTQU5EKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPVxuICAgICAgICAgICAgICAgICF0aGlzLl9pc0NoYXJhY3RlclJlZmVyZW5jZUluQXR0cmlidXRlKCkgJiYgaXNBc2NpaUFscGhhTnVtZXJpYyh0aGlzLnByZXByb2Nlc3Nvci5wZWVrKDEpKVxuICAgICAgICAgICAgICAgICAgICA/IFN0YXRlLkFNQklHVU9VU19BTVBFUlNBTkRcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnJldHVyblN0YXRlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLy8gV2Ugc3VjY2Vzc2Z1bGx5IHBhcnNlZCBhbiBlbnRpdHkuIFN3aXRjaCB0byB0aGUgcmV0dXJuIHN0YXRlLlxuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IHRoaXMucmV0dXJuU3RhdGU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQW1iaWd1b3MgYW1wZXJzYW5kIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBbWJpZ3VvdXNBbXBlcnNhbmQoY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlBbHBoYU51bWVyaWMoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9mbHVzaENvZGVQb2ludENvbnN1bWVkQXNDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGNwID09PSAkLlNFTUlDT0xPTikge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5rbm93bk5hbWVkQ2hhcmFjdGVyUmVmZXJlbmNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSB0aGlzLnJldHVyblN0YXRlO1xuICAgICAgICAgICAgdGhpcy5fY2FsbFN0YXRlKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBUQUdfSUQgYXMgJCwgTlMsIE5VTUJFUkVEX0hFQURFUlMgfSBmcm9tICcuLi9jb21tb24vaHRtbC5qcyc7XG4vL0VsZW1lbnQgdXRpbHNcbmNvbnN0IElNUExJQ0lUX0VORF9UQUdfUkVRVUlSRUQgPSBuZXcgU2V0KFskLkRELCAkLkRULCAkLkxJLCAkLk9QVEdST1VQLCAkLk9QVElPTiwgJC5QLCAkLlJCLCAkLlJQLCAkLlJULCAkLlJUQ10pO1xuY29uc3QgSU1QTElDSVRfRU5EX1RBR19SRVFVSVJFRF9USE9ST1VHSExZID0gbmV3IFNldChbXG4gICAgLi4uSU1QTElDSVRfRU5EX1RBR19SRVFVSVJFRCxcbiAgICAkLkNBUFRJT04sXG4gICAgJC5DT0xHUk9VUCxcbiAgICAkLlRCT0RZLFxuICAgICQuVEQsXG4gICAgJC5URk9PVCxcbiAgICAkLlRILFxuICAgICQuVEhFQUQsXG4gICAgJC5UUixcbl0pO1xuY29uc3QgU0NPUElOR19FTEVNRU5UU19IVE1MID0gbmV3IFNldChbXG4gICAgJC5BUFBMRVQsXG4gICAgJC5DQVBUSU9OLFxuICAgICQuSFRNTCxcbiAgICAkLk1BUlFVRUUsXG4gICAgJC5PQkpFQ1QsXG4gICAgJC5UQUJMRSxcbiAgICAkLlRELFxuICAgICQuVEVNUExBVEUsXG4gICAgJC5USCxcbl0pO1xuY29uc3QgU0NPUElOR19FTEVNRU5UU19IVE1MX0xJU1QgPSBuZXcgU2V0KFsuLi5TQ09QSU5HX0VMRU1FTlRTX0hUTUwsICQuT0wsICQuVUxdKTtcbmNvbnN0IFNDT1BJTkdfRUxFTUVOVFNfSFRNTF9CVVRUT04gPSBuZXcgU2V0KFsuLi5TQ09QSU5HX0VMRU1FTlRTX0hUTUwsICQuQlVUVE9OXSk7XG5jb25zdCBTQ09QSU5HX0VMRU1FTlRTX01BVEhNTCA9IG5ldyBTZXQoWyQuQU5OT1RBVElPTl9YTUwsICQuTUksICQuTU4sICQuTU8sICQuTVMsICQuTVRFWFRdKTtcbmNvbnN0IFNDT1BJTkdfRUxFTUVOVFNfU1ZHID0gbmV3IFNldChbJC5ERVNDLCAkLkZPUkVJR05fT0JKRUNULCAkLlRJVExFXSk7XG5jb25zdCBUQUJMRV9ST1dfQ09OVEVYVCA9IG5ldyBTZXQoWyQuVFIsICQuVEVNUExBVEUsICQuSFRNTF0pO1xuY29uc3QgVEFCTEVfQk9EWV9DT05URVhUID0gbmV3IFNldChbJC5UQk9EWSwgJC5URk9PVCwgJC5USEVBRCwgJC5URU1QTEFURSwgJC5IVE1MXSk7XG5jb25zdCBUQUJMRV9DT05URVhUID0gbmV3IFNldChbJC5UQUJMRSwgJC5URU1QTEFURSwgJC5IVE1MXSk7XG5jb25zdCBUQUJMRV9DRUxMUyA9IG5ldyBTZXQoWyQuVEQsICQuVEhdKTtcbi8vU3RhY2sgb2Ygb3BlbiBlbGVtZW50c1xuZXhwb3J0IGNsYXNzIE9wZW5FbGVtZW50U3RhY2sge1xuICAgIGdldCBjdXJyZW50VG1wbENvbnRlbnRPck5vZGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0luVGVtcGxhdGUoKSA/IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGVtcGxhdGVDb250ZW50KHRoaXMuY3VycmVudCkgOiB0aGlzLmN1cnJlbnQ7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKGRvY3VtZW50LCB0cmVlQWRhcHRlciwgaGFuZGxlcikge1xuICAgICAgICB0aGlzLnRyZWVBZGFwdGVyID0gdHJlZUFkYXB0ZXI7XG4gICAgICAgIHRoaXMuaGFuZGxlciA9IGhhbmRsZXI7XG4gICAgICAgIHRoaXMuaXRlbXMgPSBbXTtcbiAgICAgICAgdGhpcy50YWdJRHMgPSBbXTtcbiAgICAgICAgdGhpcy5zdGFja1RvcCA9IC0xO1xuICAgICAgICB0aGlzLnRtcGxDb3VudCA9IDA7XG4gICAgICAgIHRoaXMuY3VycmVudFRhZ0lkID0gJC5VTktOT1dOO1xuICAgICAgICB0aGlzLmN1cnJlbnQgPSBkb2N1bWVudDtcbiAgICB9XG4gICAgLy9JbmRleCBvZiBlbGVtZW50XG4gICAgX2luZGV4T2YoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pdGVtcy5sYXN0SW5kZXhPZihlbGVtZW50LCB0aGlzLnN0YWNrVG9wKTtcbiAgICB9XG4gICAgLy9VcGRhdGUgY3VycmVudCBlbGVtZW50XG4gICAgX2lzSW5UZW1wbGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFRhZ0lkID09PSAkLlRFTVBMQVRFICYmIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuY3VycmVudCkgPT09IE5TLkhUTUw7XG4gICAgfVxuICAgIF91cGRhdGVDdXJyZW50RWxlbWVudCgpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50ID0gdGhpcy5pdGVtc1t0aGlzLnN0YWNrVG9wXTtcbiAgICAgICAgdGhpcy5jdXJyZW50VGFnSWQgPSB0aGlzLnRhZ0lEc1t0aGlzLnN0YWNrVG9wXTtcbiAgICB9XG4gICAgLy9NdXRhdGlvbnNcbiAgICBwdXNoKGVsZW1lbnQsIHRhZ0lEKSB7XG4gICAgICAgIHRoaXMuc3RhY2tUb3ArKztcbiAgICAgICAgdGhpcy5pdGVtc1t0aGlzLnN0YWNrVG9wXSA9IGVsZW1lbnQ7XG4gICAgICAgIHRoaXMuY3VycmVudCA9IGVsZW1lbnQ7XG4gICAgICAgIHRoaXMudGFnSURzW3RoaXMuc3RhY2tUb3BdID0gdGFnSUQ7XG4gICAgICAgIHRoaXMuY3VycmVudFRhZ0lkID0gdGFnSUQ7XG4gICAgICAgIGlmICh0aGlzLl9pc0luVGVtcGxhdGUoKSkge1xuICAgICAgICAgICAgdGhpcy50bXBsQ291bnQrKztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhbmRsZXIub25JdGVtUHVzaChlbGVtZW50LCB0YWdJRCwgdHJ1ZSk7XG4gICAgfVxuICAgIHBvcCgpIHtcbiAgICAgICAgY29uc3QgcG9wcGVkID0gdGhpcy5jdXJyZW50O1xuICAgICAgICBpZiAodGhpcy50bXBsQ291bnQgPiAwICYmIHRoaXMuX2lzSW5UZW1wbGF0ZSgpKSB7XG4gICAgICAgICAgICB0aGlzLnRtcGxDb3VudC0tO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RhY2tUb3AtLTtcbiAgICAgICAgdGhpcy5fdXBkYXRlQ3VycmVudEVsZW1lbnQoKTtcbiAgICAgICAgdGhpcy5oYW5kbGVyLm9uSXRlbVBvcChwb3BwZWQsIHRydWUpO1xuICAgIH1cbiAgICByZXBsYWNlKG9sZEVsZW1lbnQsIG5ld0VsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5faW5kZXhPZihvbGRFbGVtZW50KTtcbiAgICAgICAgdGhpcy5pdGVtc1tpZHhdID0gbmV3RWxlbWVudDtcbiAgICAgICAgaWYgKGlkeCA9PT0gdGhpcy5zdGFja1RvcCkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50ID0gbmV3RWxlbWVudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpbnNlcnRBZnRlcihyZWZlcmVuY2VFbGVtZW50LCBuZXdFbGVtZW50LCBuZXdFbGVtZW50SUQpIHtcbiAgICAgICAgY29uc3QgaW5zZXJ0aW9uSWR4ID0gdGhpcy5faW5kZXhPZihyZWZlcmVuY2VFbGVtZW50KSArIDE7XG4gICAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKGluc2VydGlvbklkeCwgMCwgbmV3RWxlbWVudCk7XG4gICAgICAgIHRoaXMudGFnSURzLnNwbGljZShpbnNlcnRpb25JZHgsIDAsIG5ld0VsZW1lbnRJRCk7XG4gICAgICAgIHRoaXMuc3RhY2tUb3ArKztcbiAgICAgICAgaWYgKGluc2VydGlvbklkeCA9PT0gdGhpcy5zdGFja1RvcCkge1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlQ3VycmVudEVsZW1lbnQoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhbmRsZXIub25JdGVtUHVzaCh0aGlzLmN1cnJlbnQsIHRoaXMuY3VycmVudFRhZ0lkLCBpbnNlcnRpb25JZHggPT09IHRoaXMuc3RhY2tUb3ApO1xuICAgIH1cbiAgICBwb3BVbnRpbFRhZ05hbWVQb3BwZWQodGFnTmFtZSkge1xuICAgICAgICBsZXQgdGFyZ2V0SWR4ID0gdGhpcy5zdGFja1RvcCArIDE7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIHRhcmdldElkeCA9IHRoaXMudGFnSURzLmxhc3RJbmRleE9mKHRhZ05hbWUsIHRhcmdldElkeCAtIDEpO1xuICAgICAgICB9IHdoaWxlICh0YXJnZXRJZHggPiAwICYmIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbdGFyZ2V0SWR4XSkgIT09IE5TLkhUTUwpO1xuICAgICAgICB0aGlzLnNob3J0ZW5Ub0xlbmd0aCh0YXJnZXRJZHggPCAwID8gMCA6IHRhcmdldElkeCk7XG4gICAgfVxuICAgIHNob3J0ZW5Ub0xlbmd0aChpZHgpIHtcbiAgICAgICAgd2hpbGUgKHRoaXMuc3RhY2tUb3AgPj0gaWR4KSB7XG4gICAgICAgICAgICBjb25zdCBwb3BwZWQgPSB0aGlzLmN1cnJlbnQ7XG4gICAgICAgICAgICBpZiAodGhpcy50bXBsQ291bnQgPiAwICYmIHRoaXMuX2lzSW5UZW1wbGF0ZSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50bXBsQ291bnQgLT0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3RhY2tUb3AtLTtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUN1cnJlbnRFbGVtZW50KCk7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZXIub25JdGVtUG9wKHBvcHBlZCwgdGhpcy5zdGFja1RvcCA8IGlkeCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcG9wVW50aWxFbGVtZW50UG9wcGVkKGVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5faW5kZXhPZihlbGVtZW50KTtcbiAgICAgICAgdGhpcy5zaG9ydGVuVG9MZW5ndGgoaWR4IDwgMCA/IDAgOiBpZHgpO1xuICAgIH1cbiAgICBwb3BVbnRpbFBvcHBlZCh0YWdOYW1lcywgdGFyZ2V0TlMpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5faW5kZXhPZlRhZ05hbWVzKHRhZ05hbWVzLCB0YXJnZXROUyk7XG4gICAgICAgIHRoaXMuc2hvcnRlblRvTGVuZ3RoKGlkeCA8IDAgPyAwIDogaWR4KTtcbiAgICB9XG4gICAgcG9wVW50aWxOdW1iZXJlZEhlYWRlclBvcHBlZCgpIHtcbiAgICAgICAgdGhpcy5wb3BVbnRpbFBvcHBlZChOVU1CRVJFRF9IRUFERVJTLCBOUy5IVE1MKTtcbiAgICB9XG4gICAgcG9wVW50aWxUYWJsZUNlbGxQb3BwZWQoKSB7XG4gICAgICAgIHRoaXMucG9wVW50aWxQb3BwZWQoVEFCTEVfQ0VMTFMsIE5TLkhUTUwpO1xuICAgIH1cbiAgICBwb3BBbGxVcFRvSHRtbEVsZW1lbnQoKSB7XG4gICAgICAgIC8vTk9URTogaGVyZSB3ZSBhc3N1bWUgdGhhdCB0aGUgcm9vdCA8aHRtbD4gZWxlbWVudCBpcyBhbHdheXMgZmlyc3QgaW4gdGhlIG9wZW4gZWxlbWVudCBzdGFjaywgc29cbiAgICAgICAgLy93ZSBwZXJmb3JtIHRoaXMgZmFzdCBzdGFjayBjbGVhbiB1cC5cbiAgICAgICAgdGhpcy50bXBsQ291bnQgPSAwO1xuICAgICAgICB0aGlzLnNob3J0ZW5Ub0xlbmd0aCgxKTtcbiAgICB9XG4gICAgX2luZGV4T2ZUYWdOYW1lcyh0YWdOYW1lcywgbmFtZXNwYWNlKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgaWYgKHRhZ05hbWVzLmhhcyh0aGlzLnRhZ0lEc1tpXSkgJiYgdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5pdGVtc1tpXSkgPT09IG5hbWVzcGFjZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gICAgY2xlYXJCYWNrVG8odGFnTmFtZXMsIHRhcmdldE5TKSB7XG4gICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuX2luZGV4T2ZUYWdOYW1lcyh0YWdOYW1lcywgdGFyZ2V0TlMpO1xuICAgICAgICB0aGlzLnNob3J0ZW5Ub0xlbmd0aChpZHggKyAxKTtcbiAgICB9XG4gICAgY2xlYXJCYWNrVG9UYWJsZUNvbnRleHQoKSB7XG4gICAgICAgIHRoaXMuY2xlYXJCYWNrVG8oVEFCTEVfQ09OVEVYVCwgTlMuSFRNTCk7XG4gICAgfVxuICAgIGNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpIHtcbiAgICAgICAgdGhpcy5jbGVhckJhY2tUbyhUQUJMRV9CT0RZX0NPTlRFWFQsIE5TLkhUTUwpO1xuICAgIH1cbiAgICBjbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCgpIHtcbiAgICAgICAgdGhpcy5jbGVhckJhY2tUbyhUQUJMRV9ST1dfQ09OVEVYVCwgTlMuSFRNTCk7XG4gICAgfVxuICAgIHJlbW92ZShlbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuX2luZGV4T2YoZWxlbWVudCk7XG4gICAgICAgIGlmIChpZHggPj0gMCkge1xuICAgICAgICAgICAgaWYgKGlkeCA9PT0gdGhpcy5zdGFja1RvcCkge1xuICAgICAgICAgICAgICAgIHRoaXMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLnNwbGljZShpZHgsIDEpO1xuICAgICAgICAgICAgICAgIHRoaXMudGFnSURzLnNwbGljZShpZHgsIDEpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhY2tUb3AtLTtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVDdXJyZW50RWxlbWVudCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlci5vbkl0ZW1Qb3AoZWxlbWVudCwgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vU2VhcmNoXG4gICAgdHJ5UGVla1Byb3Blcmx5TmVzdGVkQm9keUVsZW1lbnQoKSB7XG4gICAgICAgIC8vUHJvcGVybHkgbmVzdGVkIDxib2R5PiBlbGVtZW50IChzaG91bGQgYmUgc2Vjb25kIGVsZW1lbnQgaW4gc3RhY2spLlxuICAgICAgICByZXR1cm4gdGhpcy5zdGFja1RvcCA+PSAxICYmIHRoaXMudGFnSURzWzFdID09PSAkLkJPRFkgPyB0aGlzLml0ZW1zWzFdIDogbnVsbDtcbiAgICB9XG4gICAgY29udGFpbnMoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5kZXhPZihlbGVtZW50KSA+IC0xO1xuICAgIH1cbiAgICBnZXRDb21tb25BbmNlc3RvcihlbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRJZHggPSB0aGlzLl9pbmRleE9mKGVsZW1lbnQpIC0gMTtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnRJZHggPj0gMCA/IHRoaXMuaXRlbXNbZWxlbWVudElkeF0gOiBudWxsO1xuICAgIH1cbiAgICBpc1Jvb3RIdG1sRWxlbWVudEN1cnJlbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YWNrVG9wID09PSAwICYmIHRoaXMudGFnSURzWzBdID09PSAkLkhUTUw7XG4gICAgfVxuICAgIC8vRWxlbWVudCBpbiBzY29wZVxuICAgIGhhc0luRHluYW1pY1Njb3BlKHRhZ05hbWUsIGh0bWxTY29wZSkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IHRuID0gdGhpcy50YWdJRHNbaV07XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBOUy5IVE1MOiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0biA9PT0gdGFnTmFtZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaHRtbFNjb3BlLmhhcyh0bikpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlIE5TLlNWRzoge1xuICAgICAgICAgICAgICAgICAgICBpZiAoU0NPUElOR19FTEVNRU5UU19TVkcuaGFzKHRuKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgTlMuTUFUSE1MOiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChTQ09QSU5HX0VMRU1FTlRTX01BVEhNTC5oYXModG4pKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGhhc0luU2NvcGUodGFnTmFtZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNJbkR5bmFtaWNTY29wZSh0YWdOYW1lLCBTQ09QSU5HX0VMRU1FTlRTX0hUTUwpO1xuICAgIH1cbiAgICBoYXNJbkxpc3RJdGVtU2NvcGUodGFnTmFtZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNJbkR5bmFtaWNTY29wZSh0YWdOYW1lLCBTQ09QSU5HX0VMRU1FTlRTX0hUTUxfTElTVCk7XG4gICAgfVxuICAgIGhhc0luQnV0dG9uU2NvcGUodGFnTmFtZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNJbkR5bmFtaWNTY29wZSh0YWdOYW1lLCBTQ09QSU5HX0VMRU1FTlRTX0hUTUxfQlVUVE9OKTtcbiAgICB9XG4gICAgaGFzTnVtYmVyZWRIZWFkZXJJblNjb3BlKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IHRuID0gdGhpcy50YWdJRHNbaV07XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBOUy5IVE1MOiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChOVU1CRVJFRF9IRUFERVJTLmhhcyh0bikpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFNDT1BJTkdfRUxFTUVOVFNfSFRNTC5oYXModG4pKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBOUy5TVkc6IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFNDT1BJTkdfRUxFTUVOVFNfU1ZHLmhhcyh0bikpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlIE5TLk1BVEhNTDoge1xuICAgICAgICAgICAgICAgICAgICBpZiAoU0NPUElOR19FTEVNRU5UU19NQVRITUwuaGFzKHRuKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBoYXNJblRhYmxlU2NvcGUodGFnTmFtZSkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKSAhPT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3dpdGNoICh0aGlzLnRhZ0lEc1tpXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgdGFnTmFtZToge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRBQkxFOlxuICAgICAgICAgICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGhhc1RhYmxlQm9keUNvbnRleHRJblRhYmxlU2NvcGUoKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgaWYgKHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pICE9PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMudGFnSURzW2ldKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICAgICAgICAgIGNhc2UgJC5USEVBRDpcbiAgICAgICAgICAgICAgICBjYXNlICQuVEZPT1Q6IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5UQUJMRTpcbiAgICAgICAgICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBoYXNJblNlbGVjdFNjb3BlKHRhZ05hbWUpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5pdGVtc1tpXSkgIT09IE5TLkhUTUwpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy50YWdJRHNbaV0pIHtcbiAgICAgICAgICAgICAgICBjYXNlIHRhZ05hbWU6IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5PUFRJT046XG4gICAgICAgICAgICAgICAgY2FzZSAkLk9QVEdST1VQOiB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8vSW1wbGllZCBlbmQgdGFnc1xuICAgIGdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKSB7XG4gICAgICAgIHdoaWxlIChJTVBMSUNJVF9FTkRfVEFHX1JFUVVJUkVELmhhcyh0aGlzLmN1cnJlbnRUYWdJZCkpIHtcbiAgICAgICAgICAgIHRoaXMucG9wKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1Rob3JvdWdobHkoKSB7XG4gICAgICAgIHdoaWxlIChJTVBMSUNJVF9FTkRfVEFHX1JFUVVJUkVEX1RIT1JPVUdITFkuaGFzKHRoaXMuY3VycmVudFRhZ0lkKSkge1xuICAgICAgICAgICAgdGhpcy5wb3AoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbihleGNsdXNpb25JZCkge1xuICAgICAgICB3aGlsZSAodGhpcy5jdXJyZW50VGFnSWQgIT09IGV4Y2x1c2lvbklkICYmIElNUExJQ0lUX0VORF9UQUdfUkVRVUlSRURfVEhPUk9VR0hMWS5oYXModGhpcy5jdXJyZW50VGFnSWQpKSB7XG4gICAgICAgICAgICB0aGlzLnBvcCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwgIi8vQ29uc3RcbmNvbnN0IE5PQUhfQVJLX0NBUEFDSVRZID0gMztcbmV4cG9ydCB2YXIgRW50cnlUeXBlO1xuKGZ1bmN0aW9uIChFbnRyeVR5cGUpIHtcbiAgICBFbnRyeVR5cGVbRW50cnlUeXBlW1wiTWFya2VyXCJdID0gMF0gPSBcIk1hcmtlclwiO1xuICAgIEVudHJ5VHlwZVtFbnRyeVR5cGVbXCJFbGVtZW50XCJdID0gMV0gPSBcIkVsZW1lbnRcIjtcbn0pKEVudHJ5VHlwZSB8fCAoRW50cnlUeXBlID0ge30pKTtcbmNvbnN0IE1BUktFUiA9IHsgdHlwZTogRW50cnlUeXBlLk1hcmtlciB9O1xuLy9MaXN0IG9mIGZvcm1hdHRpbmcgZWxlbWVudHNcbmV4cG9ydCBjbGFzcyBGb3JtYXR0aW5nRWxlbWVudExpc3Qge1xuICAgIGNvbnN0cnVjdG9yKHRyZWVBZGFwdGVyKSB7XG4gICAgICAgIHRoaXMudHJlZUFkYXB0ZXIgPSB0cmVlQWRhcHRlcjtcbiAgICAgICAgdGhpcy5lbnRyaWVzID0gW107XG4gICAgICAgIHRoaXMuYm9va21hcmsgPSBudWxsO1xuICAgIH1cbiAgICAvL05vYWggQXJrJ3MgY29uZGl0aW9uXG4gICAgLy9PUFRJTUlaQVRJT046IGF0IGZpcnN0IHdlIHRyeSB0byBmaW5kIHBvc3NpYmxlIGNhbmRpZGF0ZXMgZm9yIGV4Y2x1c2lvbiB1c2luZ1xuICAgIC8vbGlnaHR3ZWlnaHQgaGV1cmlzdGljcyB3aXRob3V0IHRob3JvdWdoIGF0dHJpYnV0ZXMgY2hlY2suXG4gICAgX2dldE5vYWhBcmtDb25kaXRpb25DYW5kaWRhdGVzKG5ld0VsZW1lbnQsIG5lQXR0cnMpIHtcbiAgICAgICAgY29uc3QgY2FuZGlkYXRlcyA9IFtdO1xuICAgICAgICBjb25zdCBuZUF0dHJzTGVuZ3RoID0gbmVBdHRycy5sZW5ndGg7XG4gICAgICAgIGNvbnN0IG5lVGFnTmFtZSA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShuZXdFbGVtZW50KTtcbiAgICAgICAgY29uc3QgbmVOYW1lc3BhY2VVUkkgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShuZXdFbGVtZW50KTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmVudHJpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0gdGhpcy5lbnRyaWVzW2ldO1xuICAgICAgICAgICAgaWYgKGVudHJ5LnR5cGUgPT09IEVudHJ5VHlwZS5NYXJrZXIpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHsgZWxlbWVudCB9ID0gZW50cnk7XG4gICAgICAgICAgICBpZiAodGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVsZW1lbnQpID09PSBuZVRhZ05hbWUgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShlbGVtZW50KSA9PT0gbmVOYW1lc3BhY2VVUkkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50QXR0cnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEF0dHJMaXN0KGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50QXR0cnMubGVuZ3RoID09PSBuZUF0dHJzTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhbmRpZGF0ZXMucHVzaCh7IGlkeDogaSwgYXR0cnM6IGVsZW1lbnRBdHRycyB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNhbmRpZGF0ZXM7XG4gICAgfVxuICAgIF9lbnN1cmVOb2FoQXJrQ29uZGl0aW9uKG5ld0VsZW1lbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZW50cmllcy5sZW5ndGggPCBOT0FIX0FSS19DQVBBQ0lUWSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgbmVBdHRycyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0QXR0ckxpc3QobmV3RWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGNhbmRpZGF0ZXMgPSB0aGlzLl9nZXROb2FoQXJrQ29uZGl0aW9uQ2FuZGlkYXRlcyhuZXdFbGVtZW50LCBuZUF0dHJzKTtcbiAgICAgICAgaWYgKGNhbmRpZGF0ZXMubGVuZ3RoIDwgTk9BSF9BUktfQ0FQQUNJVFkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIC8vTk9URTogYnVpbGQgYXR0cnMgbWFwIGZvciB0aGUgbmV3IGVsZW1lbnQsIHNvIHdlIGNhbiBwZXJmb3JtIGZhc3QgbG9va3Vwc1xuICAgICAgICBjb25zdCBuZUF0dHJzTWFwID0gbmV3IE1hcChuZUF0dHJzLm1hcCgobmVBdHRyKSA9PiBbbmVBdHRyLm5hbWUsIG5lQXR0ci52YWx1ZV0pKTtcbiAgICAgICAgbGV0IHZhbGlkQ2FuZGlkYXRlcyA9IDA7XG4gICAgICAgIC8vTk9URTogcmVtb3ZlIGJvdHRvbW1vc3QgY2FuZGlkYXRlcywgdW50aWwgTm9haCdzIEFyayBjb25kaXRpb24gd2lsbCBub3QgYmUgbWV0XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2FuZGlkYXRlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgY2FuZGlkYXRlID0gY2FuZGlkYXRlc1tpXTtcbiAgICAgICAgICAgIC8vIFdlIGtub3cgdGhhdCBgY2FuZGlkYXRlLmF0dHJzLmxlbmd0aCA9PT0gbmVBdHRycy5sZW5ndGhgXG4gICAgICAgICAgICBpZiAoY2FuZGlkYXRlLmF0dHJzLmV2ZXJ5KChjQXR0cikgPT4gbmVBdHRyc01hcC5nZXQoY0F0dHIubmFtZSkgPT09IGNBdHRyLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHZhbGlkQ2FuZGlkYXRlcyArPSAxO1xuICAgICAgICAgICAgICAgIGlmICh2YWxpZENhbmRpZGF0ZXMgPj0gTk9BSF9BUktfQ0FQQUNJVFkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbnRyaWVzLnNwbGljZShjYW5kaWRhdGUuaWR4LCAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9NdXRhdGlvbnNcbiAgICBpbnNlcnRNYXJrZXIoKSB7XG4gICAgICAgIHRoaXMuZW50cmllcy51bnNoaWZ0KE1BUktFUik7XG4gICAgfVxuICAgIHB1c2hFbGVtZW50KGVsZW1lbnQsIHRva2VuKSB7XG4gICAgICAgIHRoaXMuX2Vuc3VyZU5vYWhBcmtDb25kaXRpb24oZWxlbWVudCk7XG4gICAgICAgIHRoaXMuZW50cmllcy51bnNoaWZ0KHtcbiAgICAgICAgICAgIHR5cGU6IEVudHJ5VHlwZS5FbGVtZW50LFxuICAgICAgICAgICAgZWxlbWVudCxcbiAgICAgICAgICAgIHRva2VuLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgaW5zZXJ0RWxlbWVudEFmdGVyQm9va21hcmsoZWxlbWVudCwgdG9rZW4pIHtcbiAgICAgICAgY29uc3QgYm9va21hcmtJZHggPSB0aGlzLmVudHJpZXMuaW5kZXhPZih0aGlzLmJvb2ttYXJrKTtcbiAgICAgICAgdGhpcy5lbnRyaWVzLnNwbGljZShib29rbWFya0lkeCwgMCwge1xuICAgICAgICAgICAgdHlwZTogRW50cnlUeXBlLkVsZW1lbnQsXG4gICAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZW1vdmVFbnRyeShlbnRyeSkge1xuICAgICAgICBjb25zdCBlbnRyeUluZGV4ID0gdGhpcy5lbnRyaWVzLmluZGV4T2YoZW50cnkpO1xuICAgICAgICBpZiAoZW50cnlJbmRleCA+PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmVudHJpZXMuc3BsaWNlKGVudHJ5SW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENsZWFycyB0aGUgbGlzdCBvZiBmb3JtYXR0aW5nIGVsZW1lbnRzIHVwIHRvIHRoZSBsYXN0IG1hcmtlci5cbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvcGFyc2luZy5odG1sI2NsZWFyLXRoZS1saXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzLXVwLXRvLXRoZS1sYXN0LW1hcmtlclxuICAgICAqL1xuICAgIGNsZWFyVG9MYXN0TWFya2VyKCkge1xuICAgICAgICBjb25zdCBtYXJrZXJJZHggPSB0aGlzLmVudHJpZXMuaW5kZXhPZihNQVJLRVIpO1xuICAgICAgICBpZiAobWFya2VySWR4ID49IDApIHtcbiAgICAgICAgICAgIHRoaXMuZW50cmllcy5zcGxpY2UoMCwgbWFya2VySWR4ICsgMSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVudHJpZXMubGVuZ3RoID0gMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvL1NlYXJjaFxuICAgIGdldEVsZW1lbnRFbnRyeUluU2NvcGVXaXRoVGFnTmFtZSh0YWdOYW1lKSB7XG4gICAgICAgIGNvbnN0IGVudHJ5ID0gdGhpcy5lbnRyaWVzLmZpbmQoKGVudHJ5KSA9PiBlbnRyeS50eXBlID09PSBFbnRyeVR5cGUuTWFya2VyIHx8IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbnRyeS5lbGVtZW50KSA9PT0gdGFnTmFtZSk7XG4gICAgICAgIHJldHVybiBlbnRyeSAmJiBlbnRyeS50eXBlID09PSBFbnRyeVR5cGUuRWxlbWVudCA/IGVudHJ5IDogbnVsbDtcbiAgICB9XG4gICAgZ2V0RWxlbWVudEVudHJ5KGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW50cmllcy5maW5kKChlbnRyeSkgPT4gZW50cnkudHlwZSA9PT0gRW50cnlUeXBlLkVsZW1lbnQgJiYgZW50cnkuZWxlbWVudCA9PT0gZWxlbWVudCk7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IERPQ1VNRU5UX01PREUgfSBmcm9tICcuLi9jb21tb24vaHRtbC5qcyc7XG5leHBvcnQgY29uc3QgZGVmYXVsdFRyZWVBZGFwdGVyID0ge1xuICAgIC8vTm9kZSBjb25zdHJ1Y3Rpb25cbiAgICBjcmVhdGVEb2N1bWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5vZGVOYW1lOiAnI2RvY3VtZW50JyxcbiAgICAgICAgICAgIG1vZGU6IERPQ1VNRU5UX01PREUuTk9fUVVJUktTLFxuICAgICAgICAgICAgY2hpbGROb2RlczogW10sXG4gICAgICAgIH07XG4gICAgfSxcbiAgICBjcmVhdGVEb2N1bWVudEZyYWdtZW50KCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbm9kZU5hbWU6ICcjZG9jdW1lbnQtZnJhZ21lbnQnLFxuICAgICAgICAgICAgY2hpbGROb2RlczogW10sXG4gICAgICAgIH07XG4gICAgfSxcbiAgICBjcmVhdGVFbGVtZW50KHRhZ05hbWUsIG5hbWVzcGFjZVVSSSwgYXR0cnMpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5vZGVOYW1lOiB0YWdOYW1lLFxuICAgICAgICAgICAgdGFnTmFtZSxcbiAgICAgICAgICAgIGF0dHJzLFxuICAgICAgICAgICAgbmFtZXNwYWNlVVJJLFxuICAgICAgICAgICAgY2hpbGROb2RlczogW10sXG4gICAgICAgICAgICBwYXJlbnROb2RlOiBudWxsLFxuICAgICAgICB9O1xuICAgIH0sXG4gICAgY3JlYXRlQ29tbWVudE5vZGUoZGF0YSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbm9kZU5hbWU6ICcjY29tbWVudCcsXG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgcGFyZW50Tm9kZTogbnVsbCxcbiAgICAgICAgfTtcbiAgICB9LFxuICAgIGNyZWF0ZVRleHROb2RlKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBub2RlTmFtZTogJyN0ZXh0JyxcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgcGFyZW50Tm9kZTogbnVsbCxcbiAgICAgICAgfTtcbiAgICB9LFxuICAgIC8vVHJlZSBtdXRhdGlvblxuICAgIGFwcGVuZENoaWxkKHBhcmVudE5vZGUsIG5ld05vZGUpIHtcbiAgICAgICAgcGFyZW50Tm9kZS5jaGlsZE5vZGVzLnB1c2gobmV3Tm9kZSk7XG4gICAgICAgIG5ld05vZGUucGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7XG4gICAgfSxcbiAgICBpbnNlcnRCZWZvcmUocGFyZW50Tm9kZSwgbmV3Tm9kZSwgcmVmZXJlbmNlTm9kZSkge1xuICAgICAgICBjb25zdCBpbnNlcnRpb25JZHggPSBwYXJlbnROb2RlLmNoaWxkTm9kZXMuaW5kZXhPZihyZWZlcmVuY2VOb2RlKTtcbiAgICAgICAgcGFyZW50Tm9kZS5jaGlsZE5vZGVzLnNwbGljZShpbnNlcnRpb25JZHgsIDAsIG5ld05vZGUpO1xuICAgICAgICBuZXdOb2RlLnBhcmVudE5vZGUgPSBwYXJlbnROb2RlO1xuICAgIH0sXG4gICAgc2V0VGVtcGxhdGVDb250ZW50KHRlbXBsYXRlRWxlbWVudCwgY29udGVudEVsZW1lbnQpIHtcbiAgICAgICAgdGVtcGxhdGVFbGVtZW50LmNvbnRlbnQgPSBjb250ZW50RWxlbWVudDtcbiAgICB9LFxuICAgIGdldFRlbXBsYXRlQ29udGVudCh0ZW1wbGF0ZUVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRlbXBsYXRlRWxlbWVudC5jb250ZW50O1xuICAgIH0sXG4gICAgc2V0RG9jdW1lbnRUeXBlKGRvY3VtZW50LCBuYW1lLCBwdWJsaWNJZCwgc3lzdGVtSWQpIHtcbiAgICAgICAgY29uc3QgZG9jdHlwZU5vZGUgPSBkb2N1bWVudC5jaGlsZE5vZGVzLmZpbmQoKG5vZGUpID0+IG5vZGUubm9kZU5hbWUgPT09ICcjZG9jdW1lbnRUeXBlJyk7XG4gICAgICAgIGlmIChkb2N0eXBlTm9kZSkge1xuICAgICAgICAgICAgZG9jdHlwZU5vZGUubmFtZSA9IG5hbWU7XG4gICAgICAgICAgICBkb2N0eXBlTm9kZS5wdWJsaWNJZCA9IHB1YmxpY0lkO1xuICAgICAgICAgICAgZG9jdHlwZU5vZGUuc3lzdGVtSWQgPSBzeXN0ZW1JZDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB7XG4gICAgICAgICAgICAgICAgbm9kZU5hbWU6ICcjZG9jdW1lbnRUeXBlJyxcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgIHB1YmxpY0lkLFxuICAgICAgICAgICAgICAgIHN5c3RlbUlkLFxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGU6IG51bGwsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZGVmYXVsdFRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKGRvY3VtZW50LCBub2RlKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgc2V0RG9jdW1lbnRNb2RlKGRvY3VtZW50LCBtb2RlKSB7XG4gICAgICAgIGRvY3VtZW50Lm1vZGUgPSBtb2RlO1xuICAgIH0sXG4gICAgZ2V0RG9jdW1lbnRNb2RlKGRvY3VtZW50KSB7XG4gICAgICAgIHJldHVybiBkb2N1bWVudC5tb2RlO1xuICAgIH0sXG4gICAgZGV0YWNoTm9kZShub2RlKSB7XG4gICAgICAgIGlmIChub2RlLnBhcmVudE5vZGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGlkeCA9IG5vZGUucGFyZW50Tm9kZS5jaGlsZE5vZGVzLmluZGV4T2Yobm9kZSk7XG4gICAgICAgICAgICBub2RlLnBhcmVudE5vZGUuY2hpbGROb2Rlcy5zcGxpY2UoaWR4LCAxKTtcbiAgICAgICAgICAgIG5vZGUucGFyZW50Tm9kZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGluc2VydFRleHQocGFyZW50Tm9kZSwgdGV4dCkge1xuICAgICAgICBpZiAocGFyZW50Tm9kZS5jaGlsZE5vZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHByZXZOb2RlID0gcGFyZW50Tm9kZS5jaGlsZE5vZGVzW3BhcmVudE5vZGUuY2hpbGROb2Rlcy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIGlmIChkZWZhdWx0VHJlZUFkYXB0ZXIuaXNUZXh0Tm9kZShwcmV2Tm9kZSkpIHtcbiAgICAgICAgICAgICAgICBwcmV2Tm9kZS52YWx1ZSArPSB0ZXh0O1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0VHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQocGFyZW50Tm9kZSwgZGVmYXVsdFRyZWVBZGFwdGVyLmNyZWF0ZVRleHROb2RlKHRleHQpKTtcbiAgICB9LFxuICAgIGluc2VydFRleHRCZWZvcmUocGFyZW50Tm9kZSwgdGV4dCwgcmVmZXJlbmNlTm9kZSkge1xuICAgICAgICBjb25zdCBwcmV2Tm9kZSA9IHBhcmVudE5vZGUuY2hpbGROb2Rlc1twYXJlbnROb2RlLmNoaWxkTm9kZXMuaW5kZXhPZihyZWZlcmVuY2VOb2RlKSAtIDFdO1xuICAgICAgICBpZiAocHJldk5vZGUgJiYgZGVmYXVsdFRyZWVBZGFwdGVyLmlzVGV4dE5vZGUocHJldk5vZGUpKSB7XG4gICAgICAgICAgICBwcmV2Tm9kZS52YWx1ZSArPSB0ZXh0O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZGVmYXVsdFRyZWVBZGFwdGVyLmluc2VydEJlZm9yZShwYXJlbnROb2RlLCBkZWZhdWx0VHJlZUFkYXB0ZXIuY3JlYXRlVGV4dE5vZGUodGV4dCksIHJlZmVyZW5jZU5vZGUpO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBhZG9wdEF0dHJpYnV0ZXMocmVjaXBpZW50LCBhdHRycykge1xuICAgICAgICBjb25zdCByZWNpcGllbnRBdHRyc01hcCA9IG5ldyBTZXQocmVjaXBpZW50LmF0dHJzLm1hcCgoYXR0cikgPT4gYXR0ci5uYW1lKSk7XG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgYXR0cnMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgIGlmICghcmVjaXBpZW50QXR0cnNNYXAuaGFzKGF0dHJzW2pdLm5hbWUpKSB7XG4gICAgICAgICAgICAgICAgcmVjaXBpZW50LmF0dHJzLnB1c2goYXR0cnNbal0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICAvL1RyZWUgdHJhdmVyc2luZ1xuICAgIGdldEZpcnN0Q2hpbGQobm9kZSkge1xuICAgICAgICByZXR1cm4gbm9kZS5jaGlsZE5vZGVzWzBdO1xuICAgIH0sXG4gICAgZ2V0Q2hpbGROb2Rlcyhub2RlKSB7XG4gICAgICAgIHJldHVybiBub2RlLmNoaWxkTm9kZXM7XG4gICAgfSxcbiAgICBnZXRQYXJlbnROb2RlKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUucGFyZW50Tm9kZTtcbiAgICB9LFxuICAgIGdldEF0dHJMaXN0KGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQuYXR0cnM7XG4gICAgfSxcbiAgICAvL05vZGUgZGF0YVxuICAgIGdldFRhZ05hbWUoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gZWxlbWVudC50YWdOYW1lO1xuICAgIH0sXG4gICAgZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQubmFtZXNwYWNlVVJJO1xuICAgIH0sXG4gICAgZ2V0VGV4dE5vZGVDb250ZW50KHRleHROb2RlKSB7XG4gICAgICAgIHJldHVybiB0ZXh0Tm9kZS52YWx1ZTtcbiAgICB9LFxuICAgIGdldENvbW1lbnROb2RlQ29udGVudChjb21tZW50Tm9kZSkge1xuICAgICAgICByZXR1cm4gY29tbWVudE5vZGUuZGF0YTtcbiAgICB9LFxuICAgIGdldERvY3VtZW50VHlwZU5vZGVOYW1lKGRvY3R5cGVOb2RlKSB7XG4gICAgICAgIHJldHVybiBkb2N0eXBlTm9kZS5uYW1lO1xuICAgIH0sXG4gICAgZ2V0RG9jdW1lbnRUeXBlTm9kZVB1YmxpY0lkKGRvY3R5cGVOb2RlKSB7XG4gICAgICAgIHJldHVybiBkb2N0eXBlTm9kZS5wdWJsaWNJZDtcbiAgICB9LFxuICAgIGdldERvY3VtZW50VHlwZU5vZGVTeXN0ZW1JZChkb2N0eXBlTm9kZSkge1xuICAgICAgICByZXR1cm4gZG9jdHlwZU5vZGUuc3lzdGVtSWQ7XG4gICAgfSxcbiAgICAvL05vZGUgdHlwZXNcbiAgICBpc1RleHROb2RlKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUubm9kZU5hbWUgPT09ICcjdGV4dCc7XG4gICAgfSxcbiAgICBpc0NvbW1lbnROb2RlKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUubm9kZU5hbWUgPT09ICcjY29tbWVudCc7XG4gICAgfSxcbiAgICBpc0RvY3VtZW50VHlwZU5vZGUobm9kZSkge1xuICAgICAgICByZXR1cm4gbm9kZS5ub2RlTmFtZSA9PT0gJyNkb2N1bWVudFR5cGUnO1xuICAgIH0sXG4gICAgaXNFbGVtZW50Tm9kZShub2RlKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobm9kZSwgJ3RhZ05hbWUnKTtcbiAgICB9LFxuICAgIC8vIFNvdXJjZSBjb2RlIGxvY2F0aW9uXG4gICAgc2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihub2RlLCBsb2NhdGlvbikge1xuICAgICAgICBub2RlLnNvdXJjZUNvZGVMb2NhdGlvbiA9IGxvY2F0aW9uO1xuICAgIH0sXG4gICAgZ2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihub2RlKSB7XG4gICAgICAgIHJldHVybiBub2RlLnNvdXJjZUNvZGVMb2NhdGlvbjtcbiAgICB9LFxuICAgIHVwZGF0ZU5vZGVTb3VyY2VDb2RlTG9jYXRpb24obm9kZSwgZW5kTG9jYXRpb24pIHtcbiAgICAgICAgbm9kZS5zb3VyY2VDb2RlTG9jYXRpb24gPSB7IC4uLm5vZGUuc291cmNlQ29kZUxvY2F0aW9uLCAuLi5lbmRMb2NhdGlvbiB9O1xuICAgIH0sXG59O1xuIiwgImltcG9ydCB7IERPQ1VNRU5UX01PREUgfSBmcm9tICcuL2h0bWwuanMnO1xuLy9Db25zdFxuY29uc3QgVkFMSURfRE9DVFlQRV9OQU1FID0gJ2h0bWwnO1xuY29uc3QgVkFMSURfU1lTVEVNX0lEID0gJ2Fib3V0OmxlZ2FjeS1jb21wYXQnO1xuY29uc3QgUVVJUktTX01PREVfU1lTVEVNX0lEID0gJ2h0dHA6Ly93d3cuaWJtLmNvbS9kYXRhL2R0ZC92MTEvaWJteGh0bWwxLXRyYW5zaXRpb25hbC5kdGQnO1xuY29uc3QgUVVJUktTX01PREVfUFVCTElDX0lEX1BSRUZJWEVTID0gW1xuICAgICcrLy9zaWxtYXJpbC8vZHRkIGh0bWwgcHJvIHYwcjExIDE5OTcwMTAxLy8nLFxuICAgICctLy9hcy8vZHRkIGh0bWwgMy4wIGFzd2VkaXQgKyBleHRlbnNpb25zLy8nLFxuICAgICctLy9hZHZhc29mdCBsdGQvL2R0ZCBodG1sIDMuMCBhc3dlZGl0ICsgZXh0ZW5zaW9ucy8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMi4wIGxldmVsIDEvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDIuMCBsZXZlbCAyLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAyLjAgc3RyaWN0IGxldmVsIDEvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDIuMCBzdHJpY3QgbGV2ZWwgMi8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMi4wIHN0cmljdC8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMi4wLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAyLjFlLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAzLjAvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDMuMiBmaW5hbC8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMy4yLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAzLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAwLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAxLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAyLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAzLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QgbGV2ZWwgMC8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0IGxldmVsIDEvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIHN0cmljdCBsZXZlbCAyLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QgbGV2ZWwgMy8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0Ly8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbC8vJyxcbiAgICAnLS8vbWV0cml1cy8vZHRkIG1ldHJpdXMgcHJlc2VudGF0aW9uYWwvLycsXG4gICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDIuMCBodG1sIHN0cmljdC8vJyxcbiAgICAnLS8vbWljcm9zb2Z0Ly9kdGQgaW50ZXJuZXQgZXhwbG9yZXIgMi4wIGh0bWwvLycsXG4gICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDIuMCB0YWJsZXMvLycsXG4gICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDMuMCBodG1sIHN0cmljdC8vJyxcbiAgICAnLS8vbWljcm9zb2Z0Ly9kdGQgaW50ZXJuZXQgZXhwbG9yZXIgMy4wIGh0bWwvLycsXG4gICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDMuMCB0YWJsZXMvLycsXG4gICAgJy0vL25ldHNjYXBlIGNvbW0uIGNvcnAuLy9kdGQgaHRtbC8vJyxcbiAgICAnLS8vbmV0c2NhcGUgY29tbS4gY29ycC4vL2R0ZCBzdHJpY3QgaHRtbC8vJyxcbiAgICBcIi0vL28ncmVpbGx5IGFuZCBhc3NvY2lhdGVzLy9kdGQgaHRtbCAyLjAvL1wiLFxuICAgIFwiLS8vbydyZWlsbHkgYW5kIGFzc29jaWF0ZXMvL2R0ZCBodG1sIGV4dGVuZGVkIDEuMC8vXCIsXG4gICAgXCItLy9vJ3JlaWxseSBhbmQgYXNzb2NpYXRlcy8vZHRkIGh0bWwgZXh0ZW5kZWQgcmVsYXhlZCAxLjAvL1wiLFxuICAgICctLy9zcS8vZHRkIGh0bWwgMi4wIGhvdG1ldGFsICsgZXh0ZW5zaW9ucy8vJyxcbiAgICAnLS8vc29mdHF1YWQgc29mdHdhcmUvL2R0ZCBob3RtZXRhbCBwcm8gNi4wOjoxOTk5MDYwMTo6ZXh0ZW5zaW9ucyB0byBodG1sIDQuMC8vJyxcbiAgICAnLS8vc29mdHF1YWQvL2R0ZCBob3RtZXRhbCBwcm8gNC4wOjoxOTk3MTAxMDo6ZXh0ZW5zaW9ucyB0byBodG1sIDQuMC8vJyxcbiAgICAnLS8vc3B5Z2xhc3MvL2R0ZCBodG1sIDIuMCBleHRlbmRlZC8vJyxcbiAgICAnLS8vc3VuIG1pY3Jvc3lzdGVtcyBjb3JwLi8vZHRkIGhvdGphdmEgaHRtbC8vJyxcbiAgICAnLS8vc3VuIG1pY3Jvc3lzdGVtcyBjb3JwLi8vZHRkIGhvdGphdmEgc3RyaWN0IGh0bWwvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgMyAxOTk1LTAzLTI0Ly8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDMuMiBkcmFmdC8vJyxcbiAgICAnLS8vdzNjLy9kdGQgaHRtbCAzLjIgZmluYWwvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgMy4yLy8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDMuMnMgZHJhZnQvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgNC4wIGZyYW1lc2V0Ly8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDQuMCB0cmFuc2l0aW9uYWwvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgZXhwZXJpbWVudGFsIDE5OTYwNzEyLy8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIGV4cGVyaW1lbnRhbCA5NzA0MjEvLycsXG4gICAgJy0vL3czYy8vZHRkIHczIGh0bWwvLycsXG4gICAgJy0vL3czby8vZHRkIHczIGh0bWwgMy4wLy8nLFxuICAgICctLy93ZWJ0ZWNocy8vZHRkIG1vemlsbGEgaHRtbCAyLjAvLycsXG4gICAgJy0vL3dlYnRlY2hzLy9kdGQgbW96aWxsYSBodG1sLy8nLFxuXTtcbmNvbnN0IFFVSVJLU19NT0RFX05PX1NZU1RFTV9JRF9QVUJMSUNfSURfUFJFRklYRVMgPSBbXG4gICAgLi4uUVVJUktTX01PREVfUFVCTElDX0lEX1BSRUZJWEVTLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDQuMDEgZnJhbWVzZXQvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgNC4wMSB0cmFuc2l0aW9uYWwvLycsXG5dO1xuY29uc3QgUVVJUktTX01PREVfUFVCTElDX0lEUyA9IG5ldyBTZXQoW1xuICAgICctLy93M28vL2R0ZCB3MyBodG1sIHN0cmljdCAzLjAvL2VuLy8nLFxuICAgICctL3czYy9kdGQgaHRtbCA0LjAgdHJhbnNpdGlvbmFsL2VuJyxcbiAgICAnaHRtbCcsXG5dKTtcbmNvbnN0IExJTUlURURfUVVJUktTX1BVQkxJQ19JRF9QUkVGSVhFUyA9IFsnLS8vdzNjLy9kdGQgeGh0bWwgMS4wIGZyYW1lc2V0Ly8nLCAnLS8vdzNjLy9kdGQgeGh0bWwgMS4wIHRyYW5zaXRpb25hbC8vJ107XG5jb25zdCBMSU1JVEVEX1FVSVJLU19XSVRIX1NZU1RFTV9JRF9QVUJMSUNfSURfUFJFRklYRVMgPSBbXG4gICAgLi4uTElNSVRFRF9RVUlSS1NfUFVCTElDX0lEX1BSRUZJWEVTLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDQuMDEgZnJhbWVzZXQvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgNC4wMSB0cmFuc2l0aW9uYWwvLycsXG5dO1xuLy9VdGlsc1xuZnVuY3Rpb24gaGFzUHJlZml4KHB1YmxpY0lkLCBwcmVmaXhlcykge1xuICAgIHJldHVybiBwcmVmaXhlcy5zb21lKChwcmVmaXgpID0+IHB1YmxpY0lkLnN0YXJ0c1dpdGgocHJlZml4KSk7XG59XG4vL0FQSVxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29uZm9ybWluZyh0b2tlbikge1xuICAgIHJldHVybiAodG9rZW4ubmFtZSA9PT0gVkFMSURfRE9DVFlQRV9OQU1FICYmXG4gICAgICAgIHRva2VuLnB1YmxpY0lkID09PSBudWxsICYmXG4gICAgICAgICh0b2tlbi5zeXN0ZW1JZCA9PT0gbnVsbCB8fCB0b2tlbi5zeXN0ZW1JZCA9PT0gVkFMSURfU1lTVEVNX0lEKSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0RG9jdW1lbnRNb2RlKHRva2VuKSB7XG4gICAgaWYgKHRva2VuLm5hbWUgIT09IFZBTElEX0RPQ1RZUEVfTkFNRSkge1xuICAgICAgICByZXR1cm4gRE9DVU1FTlRfTU9ERS5RVUlSS1M7XG4gICAgfVxuICAgIGNvbnN0IHsgc3lzdGVtSWQgfSA9IHRva2VuO1xuICAgIGlmIChzeXN0ZW1JZCAmJiBzeXN0ZW1JZC50b0xvd2VyQ2FzZSgpID09PSBRVUlSS1NfTU9ERV9TWVNURU1fSUQpIHtcbiAgICAgICAgcmV0dXJuIERPQ1VNRU5UX01PREUuUVVJUktTO1xuICAgIH1cbiAgICBsZXQgeyBwdWJsaWNJZCB9ID0gdG9rZW47XG4gICAgaWYgKHB1YmxpY0lkICE9PSBudWxsKSB7XG4gICAgICAgIHB1YmxpY0lkID0gcHVibGljSWQudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKFFVSVJLU19NT0RFX1BVQkxJQ19JRFMuaGFzKHB1YmxpY0lkKSkge1xuICAgICAgICAgICAgcmV0dXJuIERPQ1VNRU5UX01PREUuUVVJUktTO1xuICAgICAgICB9XG4gICAgICAgIGxldCBwcmVmaXhlcyA9IHN5c3RlbUlkID09PSBudWxsID8gUVVJUktTX01PREVfTk9fU1lTVEVNX0lEX1BVQkxJQ19JRF9QUkVGSVhFUyA6IFFVSVJLU19NT0RFX1BVQkxJQ19JRF9QUkVGSVhFUztcbiAgICAgICAgaWYgKGhhc1ByZWZpeChwdWJsaWNJZCwgcHJlZml4ZXMpKSB7XG4gICAgICAgICAgICByZXR1cm4gRE9DVU1FTlRfTU9ERS5RVUlSS1M7XG4gICAgICAgIH1cbiAgICAgICAgcHJlZml4ZXMgPVxuICAgICAgICAgICAgc3lzdGVtSWQgPT09IG51bGwgPyBMSU1JVEVEX1FVSVJLU19QVUJMSUNfSURfUFJFRklYRVMgOiBMSU1JVEVEX1FVSVJLU19XSVRIX1NZU1RFTV9JRF9QVUJMSUNfSURfUFJFRklYRVM7XG4gICAgICAgIGlmIChoYXNQcmVmaXgocHVibGljSWQsIHByZWZpeGVzKSkge1xuICAgICAgICAgICAgcmV0dXJuIERPQ1VNRU5UX01PREUuTElNSVRFRF9RVUlSS1M7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIERPQ1VNRU5UX01PREUuTk9fUVVJUktTO1xufVxuIiwgImltcG9ydCB7IFRBR19JRCBhcyAkLCBOUywgQVRUUlMsIGdldFRhZ0lEIH0gZnJvbSAnLi9odG1sLmpzJztcbi8vTUlNRSB0eXBlc1xuY29uc3QgTUlNRV9UWVBFUyA9IHtcbiAgICBURVhUX0hUTUw6ICd0ZXh0L2h0bWwnLFxuICAgIEFQUExJQ0FUSU9OX1hNTDogJ2FwcGxpY2F0aW9uL3hodG1sK3htbCcsXG59O1xuLy9BdHRyaWJ1dGVzXG5jb25zdCBERUZJTklUSU9OX1VSTF9BVFRSID0gJ2RlZmluaXRpb251cmwnO1xuY29uc3QgQURKVVNURURfREVGSU5JVElPTl9VUkxfQVRUUiA9ICdkZWZpbml0aW9uVVJMJztcbmNvbnN0IFNWR19BVFRSU19BREpVU1RNRU5UX01BUCA9IG5ldyBNYXAoW1xuICAgICdhdHRyaWJ1dGVOYW1lJyxcbiAgICAnYXR0cmlidXRlVHlwZScsXG4gICAgJ2Jhc2VGcmVxdWVuY3knLFxuICAgICdiYXNlUHJvZmlsZScsXG4gICAgJ2NhbGNNb2RlJyxcbiAgICAnY2xpcFBhdGhVbml0cycsXG4gICAgJ2RpZmZ1c2VDb25zdGFudCcsXG4gICAgJ2VkZ2VNb2RlJyxcbiAgICAnZmlsdGVyVW5pdHMnLFxuICAgICdnbHlwaFJlZicsXG4gICAgJ2dyYWRpZW50VHJhbnNmb3JtJyxcbiAgICAnZ3JhZGllbnRVbml0cycsXG4gICAgJ2tlcm5lbE1hdHJpeCcsXG4gICAgJ2tlcm5lbFVuaXRMZW5ndGgnLFxuICAgICdrZXlQb2ludHMnLFxuICAgICdrZXlTcGxpbmVzJyxcbiAgICAna2V5VGltZXMnLFxuICAgICdsZW5ndGhBZGp1c3QnLFxuICAgICdsaW1pdGluZ0NvbmVBbmdsZScsXG4gICAgJ21hcmtlckhlaWdodCcsXG4gICAgJ21hcmtlclVuaXRzJyxcbiAgICAnbWFya2VyV2lkdGgnLFxuICAgICdtYXNrQ29udGVudFVuaXRzJyxcbiAgICAnbWFza1VuaXRzJyxcbiAgICAnbnVtT2N0YXZlcycsXG4gICAgJ3BhdGhMZW5ndGgnLFxuICAgICdwYXR0ZXJuQ29udGVudFVuaXRzJyxcbiAgICAncGF0dGVyblRyYW5zZm9ybScsXG4gICAgJ3BhdHRlcm5Vbml0cycsXG4gICAgJ3BvaW50c0F0WCcsXG4gICAgJ3BvaW50c0F0WScsXG4gICAgJ3BvaW50c0F0WicsXG4gICAgJ3ByZXNlcnZlQWxwaGEnLFxuICAgICdwcmVzZXJ2ZUFzcGVjdFJhdGlvJyxcbiAgICAncHJpbWl0aXZlVW5pdHMnLFxuICAgICdyZWZYJyxcbiAgICAncmVmWScsXG4gICAgJ3JlcGVhdENvdW50JyxcbiAgICAncmVwZWF0RHVyJyxcbiAgICAncmVxdWlyZWRFeHRlbnNpb25zJyxcbiAgICAncmVxdWlyZWRGZWF0dXJlcycsXG4gICAgJ3NwZWN1bGFyQ29uc3RhbnQnLFxuICAgICdzcGVjdWxhckV4cG9uZW50JyxcbiAgICAnc3ByZWFkTWV0aG9kJyxcbiAgICAnc3RhcnRPZmZzZXQnLFxuICAgICdzdGREZXZpYXRpb24nLFxuICAgICdzdGl0Y2hUaWxlcycsXG4gICAgJ3N1cmZhY2VTY2FsZScsXG4gICAgJ3N5c3RlbUxhbmd1YWdlJyxcbiAgICAndGFibGVWYWx1ZXMnLFxuICAgICd0YXJnZXRYJyxcbiAgICAndGFyZ2V0WScsXG4gICAgJ3RleHRMZW5ndGgnLFxuICAgICd2aWV3Qm94JyxcbiAgICAndmlld1RhcmdldCcsXG4gICAgJ3hDaGFubmVsU2VsZWN0b3InLFxuICAgICd5Q2hhbm5lbFNlbGVjdG9yJyxcbiAgICAnem9vbUFuZFBhbicsXG5dLm1hcCgoYXR0cikgPT4gW2F0dHIudG9Mb3dlckNhc2UoKSwgYXR0cl0pKTtcbmNvbnN0IFhNTF9BVFRSU19BREpVU1RNRU5UX01BUCA9IG5ldyBNYXAoW1xuICAgIFsneGxpbms6YWN0dWF0ZScsIHsgcHJlZml4OiAneGxpbmsnLCBuYW1lOiAnYWN0dWF0ZScsIG5hbWVzcGFjZTogTlMuWExJTksgfV0sXG4gICAgWyd4bGluazphcmNyb2xlJywgeyBwcmVmaXg6ICd4bGluaycsIG5hbWU6ICdhcmNyb2xlJywgbmFtZXNwYWNlOiBOUy5YTElOSyB9XSxcbiAgICBbJ3hsaW5rOmhyZWYnLCB7IHByZWZpeDogJ3hsaW5rJywgbmFtZTogJ2hyZWYnLCBuYW1lc3BhY2U6IE5TLlhMSU5LIH1dLFxuICAgIFsneGxpbms6cm9sZScsIHsgcHJlZml4OiAneGxpbmsnLCBuYW1lOiAncm9sZScsIG5hbWVzcGFjZTogTlMuWExJTksgfV0sXG4gICAgWyd4bGluazpzaG93JywgeyBwcmVmaXg6ICd4bGluaycsIG5hbWU6ICdzaG93JywgbmFtZXNwYWNlOiBOUy5YTElOSyB9XSxcbiAgICBbJ3hsaW5rOnRpdGxlJywgeyBwcmVmaXg6ICd4bGluaycsIG5hbWU6ICd0aXRsZScsIG5hbWVzcGFjZTogTlMuWExJTksgfV0sXG4gICAgWyd4bGluazp0eXBlJywgeyBwcmVmaXg6ICd4bGluaycsIG5hbWU6ICd0eXBlJywgbmFtZXNwYWNlOiBOUy5YTElOSyB9XSxcbiAgICBbJ3htbDpsYW5nJywgeyBwcmVmaXg6ICd4bWwnLCBuYW1lOiAnbGFuZycsIG5hbWVzcGFjZTogTlMuWE1MIH1dLFxuICAgIFsneG1sOnNwYWNlJywgeyBwcmVmaXg6ICd4bWwnLCBuYW1lOiAnc3BhY2UnLCBuYW1lc3BhY2U6IE5TLlhNTCB9XSxcbiAgICBbJ3htbG5zJywgeyBwcmVmaXg6ICcnLCBuYW1lOiAneG1sbnMnLCBuYW1lc3BhY2U6IE5TLlhNTE5TIH1dLFxuICAgIFsneG1sbnM6eGxpbmsnLCB7IHByZWZpeDogJ3htbG5zJywgbmFtZTogJ3hsaW5rJywgbmFtZXNwYWNlOiBOUy5YTUxOUyB9XSxcbl0pO1xuLy9TVkcgdGFnIG5hbWVzIGFkanVzdG1lbnQgbWFwXG5leHBvcnQgY29uc3QgU1ZHX1RBR19OQU1FU19BREpVU1RNRU5UX01BUCA9IG5ldyBNYXAoW1xuICAgICdhbHRHbHlwaCcsXG4gICAgJ2FsdEdseXBoRGVmJyxcbiAgICAnYWx0R2x5cGhJdGVtJyxcbiAgICAnYW5pbWF0ZUNvbG9yJyxcbiAgICAnYW5pbWF0ZU1vdGlvbicsXG4gICAgJ2FuaW1hdGVUcmFuc2Zvcm0nLFxuICAgICdjbGlwUGF0aCcsXG4gICAgJ2ZlQmxlbmQnLFxuICAgICdmZUNvbG9yTWF0cml4JyxcbiAgICAnZmVDb21wb25lbnRUcmFuc2ZlcicsXG4gICAgJ2ZlQ29tcG9zaXRlJyxcbiAgICAnZmVDb252b2x2ZU1hdHJpeCcsXG4gICAgJ2ZlRGlmZnVzZUxpZ2h0aW5nJyxcbiAgICAnZmVEaXNwbGFjZW1lbnRNYXAnLFxuICAgICdmZURpc3RhbnRMaWdodCcsXG4gICAgJ2ZlRmxvb2QnLFxuICAgICdmZUZ1bmNBJyxcbiAgICAnZmVGdW5jQicsXG4gICAgJ2ZlRnVuY0cnLFxuICAgICdmZUZ1bmNSJyxcbiAgICAnZmVHYXVzc2lhbkJsdXInLFxuICAgICdmZUltYWdlJyxcbiAgICAnZmVNZXJnZScsXG4gICAgJ2ZlTWVyZ2VOb2RlJyxcbiAgICAnZmVNb3JwaG9sb2d5JyxcbiAgICAnZmVPZmZzZXQnLFxuICAgICdmZVBvaW50TGlnaHQnLFxuICAgICdmZVNwZWN1bGFyTGlnaHRpbmcnLFxuICAgICdmZVNwb3RMaWdodCcsXG4gICAgJ2ZlVGlsZScsXG4gICAgJ2ZlVHVyYnVsZW5jZScsXG4gICAgJ2ZvcmVpZ25PYmplY3QnLFxuICAgICdnbHlwaFJlZicsXG4gICAgJ2xpbmVhckdyYWRpZW50JyxcbiAgICAncmFkaWFsR3JhZGllbnQnLFxuICAgICd0ZXh0UGF0aCcsXG5dLm1hcCgodG4pID0+IFt0bi50b0xvd2VyQ2FzZSgpLCB0bl0pKTtcbi8vVGFncyB0aGF0IGNhdXNlcyBleGl0IGZyb20gZm9yZWlnbiBjb250ZW50XG5jb25zdCBFWElUU19GT1JFSUdOX0NPTlRFTlQgPSBuZXcgU2V0KFtcbiAgICAkLkIsXG4gICAgJC5CSUcsXG4gICAgJC5CTE9DS1FVT1RFLFxuICAgICQuQk9EWSxcbiAgICAkLkJSLFxuICAgICQuQ0VOVEVSLFxuICAgICQuQ09ERSxcbiAgICAkLkRELFxuICAgICQuRElWLFxuICAgICQuREwsXG4gICAgJC5EVCxcbiAgICAkLkVNLFxuICAgICQuRU1CRUQsXG4gICAgJC5IMSxcbiAgICAkLkgyLFxuICAgICQuSDMsXG4gICAgJC5INCxcbiAgICAkLkg1LFxuICAgICQuSDYsXG4gICAgJC5IRUFELFxuICAgICQuSFIsXG4gICAgJC5JLFxuICAgICQuSU1HLFxuICAgICQuTEksXG4gICAgJC5MSVNUSU5HLFxuICAgICQuTUVOVSxcbiAgICAkLk1FVEEsXG4gICAgJC5OT0JSLFxuICAgICQuT0wsXG4gICAgJC5QLFxuICAgICQuUFJFLFxuICAgICQuUlVCWSxcbiAgICAkLlMsXG4gICAgJC5TTUFMTCxcbiAgICAkLlNQQU4sXG4gICAgJC5TVFJPTkcsXG4gICAgJC5TVFJJS0UsXG4gICAgJC5TVUIsXG4gICAgJC5TVVAsXG4gICAgJC5UQUJMRSxcbiAgICAkLlRULFxuICAgICQuVSxcbiAgICAkLlVMLFxuICAgICQuVkFSLFxuXSk7XG4vL0NoZWNrIGV4aXQgZnJvbSBmb3JlaWduIGNvbnRlbnRcbmV4cG9ydCBmdW5jdGlvbiBjYXVzZXNFeGl0KHN0YXJ0VGFnVG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHN0YXJ0VGFnVG9rZW4udGFnSUQ7XG4gICAgY29uc3QgaXNGb250V2l0aEF0dHJzID0gdG4gPT09ICQuRk9OVCAmJlxuICAgICAgICBzdGFydFRhZ1Rva2VuLmF0dHJzLnNvbWUoKHsgbmFtZSB9KSA9PiBuYW1lID09PSBBVFRSUy5DT0xPUiB8fCBuYW1lID09PSBBVFRSUy5TSVpFIHx8IG5hbWUgPT09IEFUVFJTLkZBQ0UpO1xuICAgIHJldHVybiBpc0ZvbnRXaXRoQXR0cnMgfHwgRVhJVFNfRk9SRUlHTl9DT05URU5ULmhhcyh0bik7XG59XG4vL1Rva2VuIGFkanVzdG1lbnRzXG5leHBvcnQgZnVuY3Rpb24gYWRqdXN0VG9rZW5NYXRoTUxBdHRycyh0b2tlbikge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW4uYXR0cnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHRva2VuLmF0dHJzW2ldLm5hbWUgPT09IERFRklOSVRJT05fVVJMX0FUVFIpIHtcbiAgICAgICAgICAgIHRva2VuLmF0dHJzW2ldLm5hbWUgPSBBREpVU1RFRF9ERUZJTklUSU9OX1VSTF9BVFRSO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gYWRqdXN0VG9rZW5TVkdBdHRycyh0b2tlbikge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW4uYXR0cnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgYWRqdXN0ZWRBdHRyTmFtZSA9IFNWR19BVFRSU19BREpVU1RNRU5UX01BUC5nZXQodG9rZW4uYXR0cnNbaV0ubmFtZSk7XG4gICAgICAgIGlmIChhZGp1c3RlZEF0dHJOYW1lICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRva2VuLmF0dHJzW2ldLm5hbWUgPSBhZGp1c3RlZEF0dHJOYW1lO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIGFkanVzdFRva2VuWE1MQXR0cnModG9rZW4pIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRva2VuLmF0dHJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGFkanVzdGVkQXR0ckVudHJ5ID0gWE1MX0FUVFJTX0FESlVTVE1FTlRfTUFQLmdldCh0b2tlbi5hdHRyc1tpXS5uYW1lKTtcbiAgICAgICAgaWYgKGFkanVzdGVkQXR0ckVudHJ5KSB7XG4gICAgICAgICAgICB0b2tlbi5hdHRyc1tpXS5wcmVmaXggPSBhZGp1c3RlZEF0dHJFbnRyeS5wcmVmaXg7XG4gICAgICAgICAgICB0b2tlbi5hdHRyc1tpXS5uYW1lID0gYWRqdXN0ZWRBdHRyRW50cnkubmFtZTtcbiAgICAgICAgICAgIHRva2VuLmF0dHJzW2ldLm5hbWVzcGFjZSA9IGFkanVzdGVkQXR0ckVudHJ5Lm5hbWVzcGFjZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBhZGp1c3RUb2tlblNWR1RhZ05hbWUodG9rZW4pIHtcbiAgICBjb25zdCBhZGp1c3RlZFRhZ05hbWUgPSBTVkdfVEFHX05BTUVTX0FESlVTVE1FTlRfTUFQLmdldCh0b2tlbi50YWdOYW1lKTtcbiAgICBpZiAoYWRqdXN0ZWRUYWdOYW1lICE9IG51bGwpIHtcbiAgICAgICAgdG9rZW4udGFnTmFtZSA9IGFkanVzdGVkVGFnTmFtZTtcbiAgICAgICAgdG9rZW4udGFnSUQgPSBnZXRUYWdJRCh0b2tlbi50YWdOYW1lKTtcbiAgICB9XG59XG4vL0ludGVncmF0aW9uIHBvaW50c1xuZnVuY3Rpb24gaXNNYXRoTUxUZXh0SW50ZWdyYXRpb25Qb2ludCh0biwgbnMpIHtcbiAgICByZXR1cm4gbnMgPT09IE5TLk1BVEhNTCAmJiAodG4gPT09ICQuTUkgfHwgdG4gPT09ICQuTU8gfHwgdG4gPT09ICQuTU4gfHwgdG4gPT09ICQuTVMgfHwgdG4gPT09ICQuTVRFWFQpO1xufVxuZnVuY3Rpb24gaXNIdG1sSW50ZWdyYXRpb25Qb2ludCh0biwgbnMsIGF0dHJzKSB7XG4gICAgaWYgKG5zID09PSBOUy5NQVRITUwgJiYgdG4gPT09ICQuQU5OT1RBVElPTl9YTUwpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhdHRycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGF0dHJzW2ldLm5hbWUgPT09IEFUVFJTLkVOQ09ESU5HKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBhdHRyc1tpXS52YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9PT0gTUlNRV9UWVBFUy5URVhUX0hUTUwgfHwgdmFsdWUgPT09IE1JTUVfVFlQRVMuQVBQTElDQVRJT05fWE1MO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBucyA9PT0gTlMuU1ZHICYmICh0biA9PT0gJC5GT1JFSUdOX09CSkVDVCB8fCB0biA9PT0gJC5ERVNDIHx8IHRuID09PSAkLlRJVExFKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0ludGVncmF0aW9uUG9pbnQodG4sIG5zLCBhdHRycywgZm9yZWlnbk5TKSB7XG4gICAgcmV0dXJuICgoKCFmb3JlaWduTlMgfHwgZm9yZWlnbk5TID09PSBOUy5IVE1MKSAmJiBpc0h0bWxJbnRlZ3JhdGlvblBvaW50KHRuLCBucywgYXR0cnMpKSB8fFxuICAgICAgICAoKCFmb3JlaWduTlMgfHwgZm9yZWlnbk5TID09PSBOUy5NQVRITUwpICYmIGlzTWF0aE1MVGV4dEludGVncmF0aW9uUG9pbnQodG4sIG5zKSkpO1xufVxuIiwgImltcG9ydCB7IFRva2VuaXplciwgVG9rZW5pemVyTW9kZSB9IGZyb20gJy4uL3Rva2VuaXplci9pbmRleC5qcyc7XG5pbXBvcnQgeyBPcGVuRWxlbWVudFN0YWNrIH0gZnJvbSAnLi9vcGVuLWVsZW1lbnQtc3RhY2suanMnO1xuaW1wb3J0IHsgRm9ybWF0dGluZ0VsZW1lbnRMaXN0LCBFbnRyeVR5cGUgfSBmcm9tICcuL2Zvcm1hdHRpbmctZWxlbWVudC1saXN0LmpzJztcbmltcG9ydCB7IGRlZmF1bHRUcmVlQWRhcHRlciB9IGZyb20gJy4uL3RyZWUtYWRhcHRlcnMvZGVmYXVsdC5qcyc7XG5pbXBvcnQgKiBhcyBkb2N0eXBlIGZyb20gJy4uL2NvbW1vbi9kb2N0eXBlLmpzJztcbmltcG9ydCAqIGFzIGZvcmVpZ25Db250ZW50IGZyb20gJy4uL2NvbW1vbi9mb3JlaWduLWNvbnRlbnQuanMnO1xuaW1wb3J0IHsgRVJSIH0gZnJvbSAnLi4vY29tbW9uL2Vycm9yLWNvZGVzLmpzJztcbmltcG9ydCAqIGFzIHVuaWNvZGUgZnJvbSAnLi4vY29tbW9uL3VuaWNvZGUuanMnO1xuaW1wb3J0IHsgVEFHX0lEIGFzICQsIFRBR19OQU1FUyBhcyBUTiwgTlMsIEFUVFJTLCBTUEVDSUFMX0VMRU1FTlRTLCBET0NVTUVOVF9NT0RFLCBOVU1CRVJFRF9IRUFERVJTLCBnZXRUYWdJRCwgfSBmcm9tICcuLi9jb21tb24vaHRtbC5qcyc7XG5pbXBvcnQgeyBUb2tlblR5cGUsIGdldFRva2VuQXR0ciwgfSBmcm9tICcuLi9jb21tb24vdG9rZW4uanMnO1xuLy9NaXNjIGNvbnN0YW50c1xuY29uc3QgSElEREVOX0lOUFVUX1RZUEUgPSAnaGlkZGVuJztcbi8vQWRvcHRpb24gYWdlbmN5IGxvb3BzIGl0ZXJhdGlvbiBjb3VudFxuY29uc3QgQUFfT1VURVJfTE9PUF9JVEVSID0gODtcbmNvbnN0IEFBX0lOTkVSX0xPT1BfSVRFUiA9IDM7XG4vL0luc2VydGlvbiBtb2Rlc1xudmFyIEluc2VydGlvbk1vZGU7XG4oZnVuY3Rpb24gKEluc2VydGlvbk1vZGUpIHtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTklUSUFMXCJdID0gMF0gPSBcIklOSVRJQUxcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJCRUZPUkVfSFRNTFwiXSA9IDFdID0gXCJCRUZPUkVfSFRNTFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIkJFRk9SRV9IRUFEXCJdID0gMl0gPSBcIkJFRk9SRV9IRUFEXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fSEVBRFwiXSA9IDNdID0gXCJJTl9IRUFEXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fSEVBRF9OT19TQ1JJUFRcIl0gPSA0XSA9IFwiSU5fSEVBRF9OT19TQ1JJUFRcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJBRlRFUl9IRUFEXCJdID0gNV0gPSBcIkFGVEVSX0hFQURcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9CT0RZXCJdID0gNl0gPSBcIklOX0JPRFlcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJURVhUXCJdID0gN10gPSBcIlRFWFRcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9UQUJMRVwiXSA9IDhdID0gXCJJTl9UQUJMRVwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX1RBQkxFX1RFWFRcIl0gPSA5XSA9IFwiSU5fVEFCTEVfVEVYVFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX0NBUFRJT05cIl0gPSAxMF0gPSBcIklOX0NBUFRJT05cIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9DT0xVTU5fR1JPVVBcIl0gPSAxMV0gPSBcIklOX0NPTFVNTl9HUk9VUFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX1RBQkxFX0JPRFlcIl0gPSAxMl0gPSBcIklOX1RBQkxFX0JPRFlcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9ST1dcIl0gPSAxM10gPSBcIklOX1JPV1wiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX0NFTExcIl0gPSAxNF0gPSBcIklOX0NFTExcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9TRUxFQ1RcIl0gPSAxNV0gPSBcIklOX1NFTEVDVFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX1NFTEVDVF9JTl9UQUJMRVwiXSA9IDE2XSA9IFwiSU5fU0VMRUNUX0lOX1RBQkxFXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fVEVNUExBVEVcIl0gPSAxN10gPSBcIklOX1RFTVBMQVRFXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiQUZURVJfQk9EWVwiXSA9IDE4XSA9IFwiQUZURVJfQk9EWVwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX0ZSQU1FU0VUXCJdID0gMTldID0gXCJJTl9GUkFNRVNFVFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIkFGVEVSX0ZSQU1FU0VUXCJdID0gMjBdID0gXCJBRlRFUl9GUkFNRVNFVFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIkFGVEVSX0FGVEVSX0JPRFlcIl0gPSAyMV0gPSBcIkFGVEVSX0FGVEVSX0JPRFlcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJBRlRFUl9BRlRFUl9GUkFNRVNFVFwiXSA9IDIyXSA9IFwiQUZURVJfQUZURVJfRlJBTUVTRVRcIjtcbn0pKEluc2VydGlvbk1vZGUgfHwgKEluc2VydGlvbk1vZGUgPSB7fSkpO1xuY29uc3QgQkFTRV9MT0MgPSB7XG4gICAgc3RhcnRMaW5lOiAtMSxcbiAgICBzdGFydENvbDogLTEsXG4gICAgc3RhcnRPZmZzZXQ6IC0xLFxuICAgIGVuZExpbmU6IC0xLFxuICAgIGVuZENvbDogLTEsXG4gICAgZW5kT2Zmc2V0OiAtMSxcbn07XG5jb25zdCBUQUJMRV9TVFJVQ1RVUkVfVEFHUyA9IG5ldyBTZXQoWyQuVEFCTEUsICQuVEJPRFksICQuVEZPT1QsICQuVEhFQUQsICQuVFJdKTtcbmNvbnN0IGRlZmF1bHRQYXJzZXJPcHRpb25zID0ge1xuICAgIHNjcmlwdGluZ0VuYWJsZWQ6IHRydWUsXG4gICAgc291cmNlQ29kZUxvY2F0aW9uSW5mbzogZmFsc2UsXG4gICAgdHJlZUFkYXB0ZXI6IGRlZmF1bHRUcmVlQWRhcHRlcixcbiAgICBvblBhcnNlRXJyb3I6IG51bGwsXG59O1xuLy9QYXJzZXJcbmV4cG9ydCBjbGFzcyBQYXJzZXIge1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMsIGRvY3VtZW50LCBcbiAgICAvKiogQGludGVybmFsICovXG4gICAgZnJhZ21lbnRDb250ZXh0ID0gbnVsbCwgXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHNjcmlwdEhhbmRsZXIgPSBudWxsKSB7XG4gICAgICAgIHRoaXMuZnJhZ21lbnRDb250ZXh0ID0gZnJhZ21lbnRDb250ZXh0O1xuICAgICAgICB0aGlzLnNjcmlwdEhhbmRsZXIgPSBzY3JpcHRIYW5kbGVyO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IG51bGw7XG4gICAgICAgIHRoaXMuc3RvcHBlZCA9IGZhbHNlO1xuICAgICAgICAvKiogQGludGVybmFsICovXG4gICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5JVElBTDtcbiAgICAgICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgICAgICB0aGlzLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5JVElBTDtcbiAgICAgICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgICAgICB0aGlzLmhlYWRFbGVtZW50ID0gbnVsbDtcbiAgICAgICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgICAgICB0aGlzLmZvcm1FbGVtZW50ID0gbnVsbDtcbiAgICAgICAgLyoqIEluZGljYXRlcyB0aGF0IHRoZSBjdXJyZW50IG5vZGUgaXMgbm90IGFuIGVsZW1lbnQgaW4gdGhlIEhUTUwgbmFtZXNwYWNlICovXG4gICAgICAgIHRoaXMuY3VycmVudE5vdEluSFRNTCA9IGZhbHNlO1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIHRlbXBsYXRlIGluc2VydGlvbiBtb2RlIHN0YWNrIGlzIG1haW50YWluZWQgZnJvbSB0aGUgbGVmdC5cbiAgICAgICAgICogSWUuIHRoZSB0b3Btb3N0IGVsZW1lbnQgd2lsbCBhbHdheXMgaGF2ZSBpbmRleCAwLlxuICAgICAgICAgKlxuICAgICAgICAgKiBAaW50ZXJuYWxcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMudG1wbEluc2VydGlvbk1vZGVTdGFjayA9IFtdO1xuICAgICAgICAvKiogQGludGVybmFsICovXG4gICAgICAgIHRoaXMucGVuZGluZ0NoYXJhY3RlclRva2VucyA9IFtdO1xuICAgICAgICAvKiogQGludGVybmFsICovXG4gICAgICAgIHRoaXMuaGFzTm9uV2hpdGVzcGFjZVBlbmRpbmdDaGFyYWN0ZXJUb2tlbiA9IGZhbHNlO1xuICAgICAgICAvKiogQGludGVybmFsICovXG4gICAgICAgIHRoaXMuZnJhbWVzZXRPayA9IHRydWU7XG4gICAgICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgICAgICB0aGlzLmZvc3RlclBhcmVudGluZ0VuYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgICAgICAgLi4uZGVmYXVsdFBhcnNlck9wdGlvbnMsXG4gICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnRyZWVBZGFwdGVyID0gdGhpcy5vcHRpb25zLnRyZWVBZGFwdGVyO1xuICAgICAgICB0aGlzLm9uUGFyc2VFcnJvciA9IHRoaXMub3B0aW9ucy5vblBhcnNlRXJyb3I7XG4gICAgICAgIC8vIEFsd2F5cyBlbmFibGUgbG9jYXRpb24gaW5mbyBpZiB3ZSByZXBvcnQgcGFyc2UgZXJyb3JzLlxuICAgICAgICBpZiAodGhpcy5vblBhcnNlRXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQgIT09IG51bGwgJiYgZG9jdW1lbnQgIT09IHZvaWQgMCA/IGRvY3VtZW50IDogdGhpcy50cmVlQWRhcHRlci5jcmVhdGVEb2N1bWVudCgpO1xuICAgICAgICB0aGlzLnRva2VuaXplciA9IG5ldyBUb2tlbml6ZXIodGhpcy5vcHRpb25zLCB0aGlzKTtcbiAgICAgICAgdGhpcy5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMgPSBuZXcgRm9ybWF0dGluZ0VsZW1lbnRMaXN0KHRoaXMudHJlZUFkYXB0ZXIpO1xuICAgICAgICB0aGlzLmZyYWdtZW50Q29udGV4dElEID0gZnJhZ21lbnRDb250ZXh0ID8gZ2V0VGFnSUQodGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGZyYWdtZW50Q29udGV4dCkpIDogJC5VTktOT1dOO1xuICAgICAgICB0aGlzLl9zZXRDb250ZXh0TW9kZXMoZnJhZ21lbnRDb250ZXh0ICE9PSBudWxsICYmIGZyYWdtZW50Q29udGV4dCAhPT0gdm9pZCAwID8gZnJhZ21lbnRDb250ZXh0IDogdGhpcy5kb2N1bWVudCwgdGhpcy5mcmFnbWVudENvbnRleHRJRCk7XG4gICAgICAgIHRoaXMub3BlbkVsZW1lbnRzID0gbmV3IE9wZW5FbGVtZW50U3RhY2sodGhpcy5kb2N1bWVudCwgdGhpcy50cmVlQWRhcHRlciwgdGhpcyk7XG4gICAgfVxuICAgIC8vIEFQSVxuICAgIHN0YXRpYyBwYXJzZShodG1sLCBvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHBhcnNlciA9IG5ldyB0aGlzKG9wdGlvbnMpO1xuICAgICAgICBwYXJzZXIudG9rZW5pemVyLndyaXRlKGh0bWwsIHRydWUpO1xuICAgICAgICByZXR1cm4gcGFyc2VyLmRvY3VtZW50O1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0RnJhZ21lbnRQYXJzZXIoZnJhZ21lbnRDb250ZXh0LCBvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IG9wdHMgPSB7XG4gICAgICAgICAgICAuLi5kZWZhdWx0UGFyc2VyT3B0aW9ucyxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIH07XG4gICAgICAgIC8vTk9URTogdXNlIGEgPHRlbXBsYXRlPiBlbGVtZW50IGFzIHRoZSBmcmFnbWVudCBjb250ZXh0IGlmIG5vIGNvbnRleHQgZWxlbWVudCB3YXMgcHJvdmlkZWQsXG4gICAgICAgIC8vc28gd2Ugd2lsbCBwYXJzZSBpbiBhIFwiZm9yZ2l2aW5nXCIgbWFubmVyXG4gICAgICAgIGZyYWdtZW50Q29udGV4dCAhPT0gbnVsbCAmJiBmcmFnbWVudENvbnRleHQgIT09IHZvaWQgMCA/IGZyYWdtZW50Q29udGV4dCA6IChmcmFnbWVudENvbnRleHQgPSBvcHRzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoVE4uVEVNUExBVEUsIE5TLkhUTUwsIFtdKSk7XG4gICAgICAgIC8vTk9URTogY3JlYXRlIGEgZmFrZSBlbGVtZW50IHdoaWNoIHdpbGwgYmUgdXNlZCBhcyB0aGUgYGRvY3VtZW50YCBmb3IgZnJhZ21lbnQgcGFyc2luZy5cbiAgICAgICAgLy9UaGlzIGlzIGltcG9ydGFudCBmb3IganNkb20sIHdoZXJlIGEgbmV3IGBkb2N1bWVudGAgY2Fubm90IGJlIGNyZWF0ZWQuIFRoaXMgbGVkIHRvXG4gICAgICAgIC8vZnJhZ21lbnQgcGFyc2luZyBtZXNzaW5nIHdpdGggdGhlIG1haW4gYGRvY3VtZW50YC5cbiAgICAgICAgY29uc3QgZG9jdW1lbnRNb2NrID0gb3B0cy50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCdkb2N1bWVudG1vY2snLCBOUy5IVE1MLCBbXSk7XG4gICAgICAgIGNvbnN0IHBhcnNlciA9IG5ldyB0aGlzKG9wdHMsIGRvY3VtZW50TW9jaywgZnJhZ21lbnRDb250ZXh0KTtcbiAgICAgICAgaWYgKHBhcnNlci5mcmFnbWVudENvbnRleHRJRCA9PT0gJC5URU1QTEFURSkge1xuICAgICAgICAgICAgcGFyc2VyLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2sudW5zaGlmdChJbnNlcnRpb25Nb2RlLklOX1RFTVBMQVRFKTtcbiAgICAgICAgfVxuICAgICAgICBwYXJzZXIuX2luaXRUb2tlbml6ZXJGb3JGcmFnbWVudFBhcnNpbmcoKTtcbiAgICAgICAgcGFyc2VyLl9pbnNlcnRGYWtlUm9vdEVsZW1lbnQoKTtcbiAgICAgICAgcGFyc2VyLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgcGFyc2VyLl9maW5kRm9ybUluRnJhZ21lbnRDb250ZXh0KCk7XG4gICAgICAgIHJldHVybiBwYXJzZXI7XG4gICAgfVxuICAgIGdldEZyYWdtZW50KCkge1xuICAgICAgICBjb25zdCByb290RWxlbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0Rmlyc3RDaGlsZCh0aGlzLmRvY3VtZW50KTtcbiAgICAgICAgY29uc3QgZnJhZ21lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcbiAgICAgICAgdGhpcy5fYWRvcHROb2Rlcyhyb290RWxlbWVudCwgZnJhZ21lbnQpO1xuICAgICAgICByZXR1cm4gZnJhZ21lbnQ7XG4gICAgfVxuICAgIC8vRXJyb3JzXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIF9lcnIodG9rZW4sIGNvZGUsIGJlZm9yZVRva2VuKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCF0aGlzLm9uUGFyc2VFcnJvcilcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgbG9jID0gKF9hID0gdG9rZW4ubG9jYXRpb24pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IEJBU0VfTE9DO1xuICAgICAgICBjb25zdCBlcnIgPSB7XG4gICAgICAgICAgICBjb2RlLFxuICAgICAgICAgICAgc3RhcnRMaW5lOiBsb2Muc3RhcnRMaW5lLFxuICAgICAgICAgICAgc3RhcnRDb2w6IGxvYy5zdGFydENvbCxcbiAgICAgICAgICAgIHN0YXJ0T2Zmc2V0OiBsb2Muc3RhcnRPZmZzZXQsXG4gICAgICAgICAgICBlbmRMaW5lOiBiZWZvcmVUb2tlbiA/IGxvYy5zdGFydExpbmUgOiBsb2MuZW5kTGluZSxcbiAgICAgICAgICAgIGVuZENvbDogYmVmb3JlVG9rZW4gPyBsb2Muc3RhcnRDb2wgOiBsb2MuZW5kQ29sLFxuICAgICAgICAgICAgZW5kT2Zmc2V0OiBiZWZvcmVUb2tlbiA/IGxvYy5zdGFydE9mZnNldCA6IGxvYy5lbmRPZmZzZXQsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMub25QYXJzZUVycm9yKGVycik7XG4gICAgfVxuICAgIC8vU3RhY2sgZXZlbnRzXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIG9uSXRlbVB1c2gobm9kZSwgdGlkLCBpc1RvcCkge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAoX2IgPSAoX2EgPSB0aGlzLnRyZWVBZGFwdGVyKS5vbkl0ZW1QdXNoKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSwgbm9kZSk7XG4gICAgICAgIGlmIChpc1RvcCAmJiB0aGlzLm9wZW5FbGVtZW50cy5zdGFja1RvcCA+IDApXG4gICAgICAgICAgICB0aGlzLl9zZXRDb250ZXh0TW9kZXMobm9kZSwgdGlkKTtcbiAgICB9XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIG9uSXRlbVBvcChub2RlLCBpc1RvcCkge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8pIHtcbiAgICAgICAgICAgIHRoaXMuX3NldEVuZExvY2F0aW9uKG5vZGUsIHRoaXMuY3VycmVudFRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICAoX2IgPSAoX2EgPSB0aGlzLnRyZWVBZGFwdGVyKS5vbkl0ZW1Qb3ApID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hLCBub2RlLCB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50KTtcbiAgICAgICAgaWYgKGlzVG9wKSB7XG4gICAgICAgICAgICBsZXQgY3VycmVudDtcbiAgICAgICAgICAgIGxldCBjdXJyZW50VGFnSWQ7XG4gICAgICAgICAgICBpZiAodGhpcy5vcGVuRWxlbWVudHMuc3RhY2tUb3AgPT09IDAgJiYgdGhpcy5mcmFnbWVudENvbnRleHQpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50ID0gdGhpcy5mcmFnbWVudENvbnRleHQ7XG4gICAgICAgICAgICAgICAgY3VycmVudFRhZ0lkID0gdGhpcy5mcmFnbWVudENvbnRleHRJRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICh7IGN1cnJlbnQsIGN1cnJlbnRUYWdJZCB9ID0gdGhpcy5vcGVuRWxlbWVudHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fc2V0Q29udGV4dE1vZGVzKGN1cnJlbnQsIGN1cnJlbnRUYWdJZCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX3NldENvbnRleHRNb2RlcyhjdXJyZW50LCB0aWQpIHtcbiAgICAgICAgY29uc3QgaXNIVE1MID0gY3VycmVudCA9PT0gdGhpcy5kb2N1bWVudCB8fCB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShjdXJyZW50KSA9PT0gTlMuSFRNTDtcbiAgICAgICAgdGhpcy5jdXJyZW50Tm90SW5IVE1MID0gIWlzSFRNTDtcbiAgICAgICAgdGhpcy50b2tlbml6ZXIuaW5Gb3JlaWduTm9kZSA9ICFpc0hUTUwgJiYgIXRoaXMuX2lzSW50ZWdyYXRpb25Qb2ludCh0aWQsIGN1cnJlbnQpO1xuICAgIH1cbiAgICAvKiogQHByb3RlY3RlZCAqL1xuICAgIF9zd2l0Y2hUb1RleHRQYXJzaW5nKGN1cnJlbnRUb2tlbiwgbmV4dFRva2VuaXplclN0YXRlKSB7XG4gICAgICAgIHRoaXMuX2luc2VydEVsZW1lbnQoY3VycmVudFRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBuZXh0VG9rZW5pemVyU3RhdGU7XG4gICAgICAgIHRoaXMub3JpZ2luYWxJbnNlcnRpb25Nb2RlID0gdGhpcy5pbnNlcnRpb25Nb2RlO1xuICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLlRFWFQ7XG4gICAgfVxuICAgIHN3aXRjaFRvUGxhaW50ZXh0UGFyc2luZygpIHtcbiAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5URVhUO1xuICAgICAgICB0aGlzLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQk9EWTtcbiAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXJNb2RlLlBMQUlOVEVYVDtcbiAgICB9XG4gICAgLy9GcmFnbWVudCBwYXJzaW5nXG4gICAgLyoqIEBwcm90ZWN0ZWQgKi9cbiAgICBfZ2V0QWRqdXN0ZWRDdXJyZW50RWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3BlbkVsZW1lbnRzLnN0YWNrVG9wID09PSAwICYmIHRoaXMuZnJhZ21lbnRDb250ZXh0XG4gICAgICAgICAgICA/IHRoaXMuZnJhZ21lbnRDb250ZXh0XG4gICAgICAgICAgICA6IHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnQ7XG4gICAgfVxuICAgIC8qKiBAcHJvdGVjdGVkICovXG4gICAgX2ZpbmRGb3JtSW5GcmFnbWVudENvbnRleHQoKSB7XG4gICAgICAgIGxldCBub2RlID0gdGhpcy5mcmFnbWVudENvbnRleHQ7XG4gICAgICAgIHdoaWxlIChub2RlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKG5vZGUpID09PSBUTi5GT1JNKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtRWxlbWVudCA9IG5vZGU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBub2RlID0gdGhpcy50cmVlQWRhcHRlci5nZXRQYXJlbnROb2RlKG5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9pbml0VG9rZW5pemVyRm9yRnJhZ21lbnRQYXJzaW5nKCkge1xuICAgICAgICBpZiAoIXRoaXMuZnJhZ21lbnRDb250ZXh0IHx8IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuZnJhZ21lbnRDb250ZXh0KSAhPT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAodGhpcy5mcmFnbWVudENvbnRleHRJRCkge1xuICAgICAgICAgICAgY2FzZSAkLlRJVExFOlxuICAgICAgICAgICAgY2FzZSAkLlRFWFRBUkVBOiB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXJNb2RlLlJDREFUQTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5TVFlMRTpcbiAgICAgICAgICAgIGNhc2UgJC5YTVA6XG4gICAgICAgICAgICBjYXNlICQuSUZSQU1FOlxuICAgICAgICAgICAgY2FzZSAkLk5PRU1CRUQ6XG4gICAgICAgICAgICBjYXNlICQuTk9GUkFNRVM6XG4gICAgICAgICAgICBjYXNlICQuTk9TQ1JJUFQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplck1vZGUuUkFXVEVYVDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5TQ1JJUFQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplck1vZGUuU0NSSVBUX0RBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUExBSU5URVhUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXJNb2RlLlBMQUlOVEVYVDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9UcmVlIG11dGF0aW9uXG4gICAgLyoqIEBwcm90ZWN0ZWQgKi9cbiAgICBfc2V0RG9jdW1lbnRUeXBlKHRva2VuKSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSB0b2tlbi5uYW1lIHx8ICcnO1xuICAgICAgICBjb25zdCBwdWJsaWNJZCA9IHRva2VuLnB1YmxpY0lkIHx8ICcnO1xuICAgICAgICBjb25zdCBzeXN0ZW1JZCA9IHRva2VuLnN5c3RlbUlkIHx8ICcnO1xuICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLnNldERvY3VtZW50VHlwZSh0aGlzLmRvY3VtZW50LCBuYW1lLCBwdWJsaWNJZCwgc3lzdGVtSWQpO1xuICAgICAgICBpZiAodG9rZW4ubG9jYXRpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IGRvY3VtZW50Q2hpbGRyZW4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldENoaWxkTm9kZXModGhpcy5kb2N1bWVudCk7XG4gICAgICAgICAgICBjb25zdCBkb2NUeXBlTm9kZSA9IGRvY3VtZW50Q2hpbGRyZW4uZmluZCgobm9kZSkgPT4gdGhpcy50cmVlQWRhcHRlci5pc0RvY3VtZW50VHlwZU5vZGUobm9kZSkpO1xuICAgICAgICAgICAgaWYgKGRvY1R5cGVOb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5zZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKGRvY1R5cGVOb2RlLCB0b2tlbi5sb2NhdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqIEBwcm90ZWN0ZWQgKi9cbiAgICBfYXR0YWNoRWxlbWVudFRvVHJlZShlbGVtZW50LCBsb2NhdGlvbikge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8pIHtcbiAgICAgICAgICAgIGNvbnN0IGxvYyA9IGxvY2F0aW9uICYmIHtcbiAgICAgICAgICAgICAgICAuLi5sb2NhdGlvbixcbiAgICAgICAgICAgICAgICBzdGFydFRhZzogbG9jYXRpb24sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5zZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKGVsZW1lbnQsIGxvYyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX3Nob3VsZEZvc3RlclBhcmVudE9uSW5zZXJ0aW9uKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2Zvc3RlclBhcmVudEVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50VG1wbENvbnRlbnRPck5vZGU7XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKHBhcmVudCwgZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogRm9yIHNlbGYtY2xvc2luZyB0YWdzLiBBZGQgYW4gZWxlbWVudCB0byB0aGUgdHJlZSwgYnV0IHNraXAgYWRkaW5nIGl0XG4gICAgICogdG8gdGhlIHN0YWNrLlxuICAgICAqL1xuICAgIC8qKiBAcHJvdGVjdGVkICovXG4gICAgX2FwcGVuZEVsZW1lbnQodG9rZW4sIG5hbWVzcGFjZVVSSSkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KHRva2VuLnRhZ05hbWUsIG5hbWVzcGFjZVVSSSwgdG9rZW4uYXR0cnMpO1xuICAgICAgICB0aGlzLl9hdHRhY2hFbGVtZW50VG9UcmVlKGVsZW1lbnQsIHRva2VuLmxvY2F0aW9uKTtcbiAgICB9XG4gICAgLyoqIEBwcm90ZWN0ZWQgKi9cbiAgICBfaW5zZXJ0RWxlbWVudCh0b2tlbiwgbmFtZXNwYWNlVVJJKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQodG9rZW4udGFnTmFtZSwgbmFtZXNwYWNlVVJJLCB0b2tlbi5hdHRycyk7XG4gICAgICAgIHRoaXMuX2F0dGFjaEVsZW1lbnRUb1RyZWUoZWxlbWVudCwgdG9rZW4ubG9jYXRpb24pO1xuICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5wdXNoKGVsZW1lbnQsIHRva2VuLnRhZ0lEKTtcbiAgICB9XG4gICAgLyoqIEBwcm90ZWN0ZWQgKi9cbiAgICBfaW5zZXJ0RmFrZUVsZW1lbnQodGFnTmFtZSwgdGFnSUQpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCh0YWdOYW1lLCBOUy5IVE1MLCBbXSk7XG4gICAgICAgIHRoaXMuX2F0dGFjaEVsZW1lbnRUb1RyZWUoZWxlbWVudCwgbnVsbCk7XG4gICAgICAgIHRoaXMub3BlbkVsZW1lbnRzLnB1c2goZWxlbWVudCwgdGFnSUQpO1xuICAgIH1cbiAgICAvKiogQHByb3RlY3RlZCAqL1xuICAgIF9pbnNlcnRUZW1wbGF0ZSh0b2tlbikge1xuICAgICAgICBjb25zdCB0bXBsID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KHRva2VuLnRhZ05hbWUsIE5TLkhUTUwsIHRva2VuLmF0dHJzKTtcbiAgICAgICAgY29uc3QgY29udGVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLnNldFRlbXBsYXRlQ29udGVudCh0bXBsLCBjb250ZW50KTtcbiAgICAgICAgdGhpcy5fYXR0YWNoRWxlbWVudFRvVHJlZSh0bXBsLCB0b2tlbi5sb2NhdGlvbik7XG4gICAgICAgIHRoaXMub3BlbkVsZW1lbnRzLnB1c2godG1wbCwgdG9rZW4udGFnSUQpO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8pXG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLnNldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24oY29udGVudCwgbnVsbCk7XG4gICAgfVxuICAgIC8qKiBAcHJvdGVjdGVkICovXG4gICAgX2luc2VydEZha2VSb290RWxlbWVudCgpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudChUTi5IVE1MLCBOUy5IVE1MLCBbXSk7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc291cmNlQ29kZUxvY2F0aW9uSW5mbylcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuc2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihlbGVtZW50LCBudWxsKTtcbiAgICAgICAgdGhpcy50cmVlQWRhcHRlci5hcHBlbmRDaGlsZCh0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50LCBlbGVtZW50KTtcbiAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMucHVzaChlbGVtZW50LCAkLkhUTUwpO1xuICAgIH1cbiAgICAvKiogQHByb3RlY3RlZCAqL1xuICAgIF9hcHBlbmRDb21tZW50Tm9kZSh0b2tlbiwgcGFyZW50KSB7XG4gICAgICAgIGNvbnN0IGNvbW1lbnROb2RlID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVDb21tZW50Tm9kZSh0b2tlbi5kYXRhKTtcbiAgICAgICAgdGhpcy50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChwYXJlbnQsIGNvbW1lbnROb2RlKTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvKSB7XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLnNldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24oY29tbWVudE5vZGUsIHRva2VuLmxvY2F0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiogQHByb3RlY3RlZCAqL1xuICAgIF9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKSB7XG4gICAgICAgIGxldCBwYXJlbnQ7XG4gICAgICAgIGxldCBiZWZvcmVFbGVtZW50O1xuICAgICAgICBpZiAodGhpcy5fc2hvdWxkRm9zdGVyUGFyZW50T25JbnNlcnRpb24oKSkge1xuICAgICAgICAgICAgKHsgcGFyZW50LCBiZWZvcmVFbGVtZW50IH0gPSB0aGlzLl9maW5kRm9zdGVyUGFyZW50aW5nTG9jYXRpb24oKSk7XG4gICAgICAgICAgICBpZiAoYmVmb3JlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuaW5zZXJ0VGV4dEJlZm9yZShwYXJlbnQsIHRva2VuLmNoYXJzLCBiZWZvcmVFbGVtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuaW5zZXJ0VGV4dChwYXJlbnQsIHRva2VuLmNoYXJzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHBhcmVudCA9IHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnRUbXBsQ29udGVudE9yTm9kZTtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuaW5zZXJ0VGV4dChwYXJlbnQsIHRva2VuLmNoYXJzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRva2VuLmxvY2F0aW9uKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBzaWJsaW5ncyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0Q2hpbGROb2RlcyhwYXJlbnQpO1xuICAgICAgICBjb25zdCB0ZXh0Tm9kZUlkeCA9IGJlZm9yZUVsZW1lbnQgPyBzaWJsaW5ncy5sYXN0SW5kZXhPZihiZWZvcmVFbGVtZW50KSA6IHNpYmxpbmdzLmxlbmd0aDtcbiAgICAgICAgY29uc3QgdGV4dE5vZGUgPSBzaWJsaW5nc1t0ZXh0Tm9kZUlkeCAtIDFdO1xuICAgICAgICAvL05PVEU6IGlmIHdlIGhhdmUgYSBsb2NhdGlvbiBhc3NpZ25lZCBieSBhbm90aGVyIHRva2VuLCB0aGVuIGp1c3QgdXBkYXRlIHRoZSBlbmQgcG9zaXRpb25cbiAgICAgICAgY29uc3QgdG5Mb2MgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24odGV4dE5vZGUpO1xuICAgICAgICBpZiAodG5Mb2MpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgZW5kTGluZSwgZW5kQ29sLCBlbmRPZmZzZXQgfSA9IHRva2VuLmxvY2F0aW9uO1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci51cGRhdGVOb2RlU291cmNlQ29kZUxvY2F0aW9uKHRleHROb2RlLCB7IGVuZExpbmUsIGVuZENvbCwgZW5kT2Zmc2V0IH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvKSB7XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLnNldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24odGV4dE5vZGUsIHRva2VuLmxvY2F0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiogQHByb3RlY3RlZCAqL1xuICAgIF9hZG9wdE5vZGVzKGRvbm9yLCByZWNpcGllbnQpIHtcbiAgICAgICAgZm9yIChsZXQgY2hpbGQgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEZpcnN0Q2hpbGQoZG9ub3IpOyBjaGlsZDsgY2hpbGQgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEZpcnN0Q2hpbGQoZG9ub3IpKSB7XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmRldGFjaE5vZGUoY2hpbGQpO1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChyZWNpcGllbnQsIGNoaWxkKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiogQHByb3RlY3RlZCAqL1xuICAgIF9zZXRFbmRMb2NhdGlvbihlbGVtZW50LCBjbG9zaW5nVG9rZW4pIHtcbiAgICAgICAgaWYgKHRoaXMudHJlZUFkYXB0ZXIuZ2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihlbGVtZW50KSAmJiBjbG9zaW5nVG9rZW4ubG9jYXRpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IGN0TG9jID0gY2xvc2luZ1Rva2VuLmxvY2F0aW9uO1xuICAgICAgICAgICAgY29uc3QgdG4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCk7XG4gICAgICAgICAgICBjb25zdCBlbmRMb2MgPSBcbiAgICAgICAgICAgIC8vIE5PVEU6IEZvciBjYXNlcyBsaWtlIDxwPiA8cD4gPC9wPiAtIEZpcnN0ICdwJyBjbG9zZXMgd2l0aG91dCBhIGNsb3NpbmdcbiAgICAgICAgICAgIC8vIHRhZyBhbmQgZm9yIGNhc2VzIGxpa2UgPHRkPiA8cD4gPC90ZD4gLSAncCcgY2xvc2VzIHdpdGhvdXQgYSBjbG9zaW5nIHRhZy5cbiAgICAgICAgICAgIGNsb3NpbmdUb2tlbi50eXBlID09PSBUb2tlblR5cGUuRU5EX1RBRyAmJiB0biA9PT0gY2xvc2luZ1Rva2VuLnRhZ05hbWVcbiAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgZW5kVGFnOiB7IC4uLmN0TG9jIH0sXG4gICAgICAgICAgICAgICAgICAgIGVuZExpbmU6IGN0TG9jLmVuZExpbmUsXG4gICAgICAgICAgICAgICAgICAgIGVuZENvbDogY3RMb2MuZW5kQ29sLFxuICAgICAgICAgICAgICAgICAgICBlbmRPZmZzZXQ6IGN0TG9jLmVuZE9mZnNldCxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgIGVuZExpbmU6IGN0TG9jLnN0YXJ0TGluZSxcbiAgICAgICAgICAgICAgICAgICAgZW5kQ29sOiBjdExvYy5zdGFydENvbCxcbiAgICAgICAgICAgICAgICAgICAgZW5kT2Zmc2V0OiBjdExvYy5zdGFydE9mZnNldCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci51cGRhdGVOb2RlU291cmNlQ29kZUxvY2F0aW9uKGVsZW1lbnQsIGVuZExvYyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9Ub2tlbiBwcm9jZXNzaW5nXG4gICAgc2hvdWxkUHJvY2Vzc1N0YXJ0VGFnVG9rZW5JbkZvcmVpZ25Db250ZW50KHRva2VuKSB7XG4gICAgICAgIC8vIENoZWNrIHRoYXQgbmVpdGhlciBjdXJyZW50ID09PSBkb2N1bWVudCwgb3IgbnMgPT09IE5TLkhUTUxcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnROb3RJbkhUTUwpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGxldCBjdXJyZW50O1xuICAgICAgICBsZXQgY3VycmVudFRhZ0lkO1xuICAgICAgICBpZiAodGhpcy5vcGVuRWxlbWVudHMuc3RhY2tUb3AgPT09IDAgJiYgdGhpcy5mcmFnbWVudENvbnRleHQpIHtcbiAgICAgICAgICAgIGN1cnJlbnQgPSB0aGlzLmZyYWdtZW50Q29udGV4dDtcbiAgICAgICAgICAgIGN1cnJlbnRUYWdJZCA9IHRoaXMuZnJhZ21lbnRDb250ZXh0SUQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAoeyBjdXJyZW50LCBjdXJyZW50VGFnSWQgfSA9IHRoaXMub3BlbkVsZW1lbnRzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuU1ZHICYmXG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoY3VycmVudCkgPT09IFROLkFOTk9UQVRJT05fWE1MICYmXG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShjdXJyZW50KSA9PT0gTlMuTUFUSE1MKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgLy8gQ2hlY2sgdGhhdCBgY3VycmVudGAgaXMgbm90IGFuIGludGVncmF0aW9uIHBvaW50IGZvciBIVE1MIG9yIE1hdGhNTCBlbGVtZW50cy5cbiAgICAgICAgdGhpcy50b2tlbml6ZXIuaW5Gb3JlaWduTm9kZSB8fFxuICAgICAgICAgICAgLy8gSWYgaXQgX2lzXyBhbiBpbnRlZ3JhdGlvbiBwb2ludCwgdGhlbiB3ZSBtaWdodCBoYXZlIHRvIGNoZWNrIHRoYXQgaXQgaXMgbm90IGFuIEhUTUxcbiAgICAgICAgICAgIC8vIGludGVncmF0aW9uIHBvaW50LlxuICAgICAgICAgICAgKCh0b2tlbi50YWdJRCA9PT0gJC5NR0xZUEggfHwgdG9rZW4udGFnSUQgPT09ICQuTUFMSUdOTUFSSykgJiZcbiAgICAgICAgICAgICAgICAhdGhpcy5faXNJbnRlZ3JhdGlvblBvaW50KGN1cnJlbnRUYWdJZCwgY3VycmVudCwgTlMuSFRNTCkpKTtcbiAgICB9XG4gICAgLyoqIEBwcm90ZWN0ZWQgKi9cbiAgICBfcHJvY2Vzc1Rva2VuKHRva2VuKSB7XG4gICAgICAgIHN3aXRjaCAodG9rZW4udHlwZSkge1xuICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuQ0hBUkFDVEVSOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNoYXJhY3Rlcih0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5OVUxMX0NIQVJBQ1RFUjoge1xuICAgICAgICAgICAgICAgIHRoaXMub25OdWxsQ2hhcmFjdGVyKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLkNPTU1FTlQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5ET0NUWVBFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkRvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuU1RBUlRfVEFHOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLkVORF9UQUc6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uRW5kVGFnKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMub25Fb2YodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuV0hJVEVTUEFDRV9DSEFSQUNURVI6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uV2hpdGVzcGFjZUNoYXJhY3Rlcih0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9JbnRlZ3JhdGlvbiBwb2ludHNcbiAgICAvKiogQHByb3RlY3RlZCAqL1xuICAgIF9pc0ludGVncmF0aW9uUG9pbnQodGlkLCBlbGVtZW50LCBmb3JlaWduTlMpIHtcbiAgICAgICAgY29uc3QgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShlbGVtZW50KTtcbiAgICAgICAgY29uc3QgYXR0cnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEF0dHJMaXN0KGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gZm9yZWlnbkNvbnRlbnQuaXNJbnRlZ3JhdGlvblBvaW50KHRpZCwgbnMsIGF0dHJzLCBmb3JlaWduTlMpO1xuICAgIH1cbiAgICAvL0FjdGl2ZSBmb3JtYXR0aW5nIGVsZW1lbnRzIHJlY29uc3RydWN0aW9uXG4gICAgLyoqIEBwcm90ZWN0ZWQgKi9cbiAgICBfcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKSB7XG4gICAgICAgIGNvbnN0IGxpc3RMZW5ndGggPSB0aGlzLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5lbnRyaWVzLmxlbmd0aDtcbiAgICAgICAgaWYgKGxpc3RMZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGVuZEluZGV4ID0gdGhpcy5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuZW50cmllcy5maW5kSW5kZXgoKGVudHJ5KSA9PiBlbnRyeS50eXBlID09PSBFbnRyeVR5cGUuTWFya2VyIHx8IHRoaXMub3BlbkVsZW1lbnRzLmNvbnRhaW5zKGVudHJ5LmVsZW1lbnQpKTtcbiAgICAgICAgICAgIGNvbnN0IHVub3BlbklkeCA9IGVuZEluZGV4IDwgMCA/IGxpc3RMZW5ndGggLSAxIDogZW5kSW5kZXggLSAxO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IHVub3BlbklkeDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmVudHJpZXNbaV07XG4gICAgICAgICAgICAgICAgdGhpcy5faW5zZXJ0RWxlbWVudChlbnRyeS50b2tlbiwgdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoZW50cnkuZWxlbWVudCkpO1xuICAgICAgICAgICAgICAgIGVudHJ5LmVsZW1lbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vQ2xvc2UgZWxlbWVudHNcbiAgICAvKiogQHByb3RlY3RlZCAqL1xuICAgIF9jbG9zZVRhYmxlQ2VsbCgpIHtcbiAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhYmxlQ2VsbFBvcHBlZCgpO1xuICAgICAgICB0aGlzLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5jbGVhclRvTGFzdE1hcmtlcigpO1xuICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1JPVztcbiAgICB9XG4gICAgLyoqIEBwcm90ZWN0ZWQgKi9cbiAgICBfY2xvc2VQRWxlbWVudCgpIHtcbiAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24oJC5QKTtcbiAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuUCk7XG4gICAgfVxuICAgIC8vSW5zZXJ0aW9uIG1vZGVzXG4gICAgLyoqIEBwcm90ZWN0ZWQgKi9cbiAgICBfcmVzZXRJbnNlcnRpb25Nb2RlKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5vcGVuRWxlbWVudHMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICAvL0luc2VydGlvbiBtb2RlIHJlc2V0IG1hcFxuICAgICAgICAgICAgc3dpdGNoIChpID09PSAwICYmIHRoaXMuZnJhZ21lbnRDb250ZXh0ID8gdGhpcy5mcmFnbWVudENvbnRleHRJRCA6IHRoaXMub3BlbkVsZW1lbnRzLnRhZ0lEc1tpXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1JPVztcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRIRUFEOlxuICAgICAgICAgICAgICAgIGNhc2UgJC5URk9PVDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkNBUFRJT046IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9DQVBUSU9OO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5DT0xHUk9VUDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuQk9EWToge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0JPRFk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fRlJBTUVTRVQ7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLlNFTEVDVDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZXNldEluc2VydGlvbk1vZGVGb3JTZWxlY3QoaSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IHRoaXMudG1wbEluc2VydGlvbk1vZGVTdGFja1swXTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSB0aGlzLmhlYWRFbGVtZW50ID8gSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEIDogSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuVEQ6XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRIOiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9DRUxMO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuSEVBRDoge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fSEVBRDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9CT0RZO1xuICAgIH1cbiAgICAvKiogQHByb3RlY3RlZCAqL1xuICAgIF9yZXNldEluc2VydGlvbk1vZGVGb3JTZWxlY3Qoc2VsZWN0SWR4KSB7XG4gICAgICAgIGlmIChzZWxlY3RJZHggPiAwKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gc2VsZWN0SWR4IC0gMTsgaSA+IDA7IGktLSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRuID0gdGhpcy5vcGVuRWxlbWVudHMudGFnSURzW2ldO1xuICAgICAgICAgICAgICAgIGlmICh0biA9PT0gJC5URU1QTEFURSkge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuVEFCTEUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1RfSU5fVEFCTEU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1Q7XG4gICAgfVxuICAgIC8vRm9zdGVyIHBhcmVudGluZ1xuICAgIC8qKiBAcHJvdGVjdGVkICovXG4gICAgX2lzRWxlbWVudENhdXNlc0Zvc3RlclBhcmVudGluZyh0bikge1xuICAgICAgICByZXR1cm4gVEFCTEVfU1RSVUNUVVJFX1RBR1MuaGFzKHRuKTtcbiAgICB9XG4gICAgLyoqIEBwcm90ZWN0ZWQgKi9cbiAgICBfc2hvdWxkRm9zdGVyUGFyZW50T25JbnNlcnRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvc3RlclBhcmVudGluZ0VuYWJsZWQgJiYgdGhpcy5faXNFbGVtZW50Q2F1c2VzRm9zdGVyUGFyZW50aW5nKHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCk7XG4gICAgfVxuICAgIC8qKiBAcHJvdGVjdGVkICovXG4gICAgX2ZpbmRGb3N0ZXJQYXJlbnRpbmdMb2NhdGlvbigpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgY29uc3Qgb3BlbkVsZW1lbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5pdGVtc1tpXTtcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5vcGVuRWxlbWVudHMudGFnSURzW2ldKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShvcGVuRWxlbWVudCkgPT09IE5TLkhUTUwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IHBhcmVudDogdGhpcy50cmVlQWRhcHRlci5nZXRUZW1wbGF0ZUNvbnRlbnQob3BlbkVsZW1lbnQpLCBiZWZvcmVFbGVtZW50OiBudWxsIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5UQUJMRToge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmdldFBhcmVudE5vZGUob3BlbkVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBwYXJlbnQsIGJlZm9yZUVsZW1lbnQ6IG9wZW5FbGVtZW50IH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgcGFyZW50OiB0aGlzLm9wZW5FbGVtZW50cy5pdGVtc1tpIC0gMV0sIGJlZm9yZUVsZW1lbnQ6IG51bGwgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgcGFyZW50OiB0aGlzLm9wZW5FbGVtZW50cy5pdGVtc1swXSwgYmVmb3JlRWxlbWVudDogbnVsbCB9O1xuICAgIH1cbiAgICAvKiogQHByb3RlY3RlZCAqL1xuICAgIF9mb3N0ZXJQYXJlbnRFbGVtZW50KGVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgbG9jYXRpb24gPSB0aGlzLl9maW5kRm9zdGVyUGFyZW50aW5nTG9jYXRpb24oKTtcbiAgICAgICAgaWYgKGxvY2F0aW9uLmJlZm9yZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuaW5zZXJ0QmVmb3JlKGxvY2F0aW9uLnBhcmVudCwgZWxlbWVudCwgbG9jYXRpb24uYmVmb3JlRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKGxvY2F0aW9uLnBhcmVudCwgZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9TcGVjaWFsIGVsZW1lbnRzXG4gICAgLyoqIEBwcm90ZWN0ZWQgKi9cbiAgICBfaXNTcGVjaWFsRWxlbWVudChlbGVtZW50LCBpZCkge1xuICAgICAgICBjb25zdCBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gU1BFQ0lBTF9FTEVNRU5UU1tuc10uaGFzKGlkKTtcbiAgICB9XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIG9uQ2hhcmFjdGVyKHRva2VuKSB7XG4gICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLnRva2VuaXplci5pbkZvcmVpZ25Ob2RlKSB7XG4gICAgICAgICAgICBjaGFyYWN0ZXJJbkZvcmVpZ25Db250ZW50KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKHRoaXMuaW5zZXJ0aW9uTW9kZSkge1xuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOSVRJQUw6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluSW5pdGlhbE1vZGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IVE1MOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5CZWZvcmVIdG1sKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuQmVmb3JlSGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5IZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEX05PX1NDUklQVDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5IZWFkTm9TY3JpcHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkFmdGVySGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DQVBUSU9OOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NFTEw6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEVNUExBVEU6IHtcbiAgICAgICAgICAgICAgICBjaGFyYWN0ZXJJbkJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLlRFWFQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX2luc2VydENoYXJhY3RlcnModG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fUk9XOiB7XG4gICAgICAgICAgICAgICAgY2hhcmFjdGVySW5UYWJsZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfVEVYVDoge1xuICAgICAgICAgICAgICAgIGNoYXJhY3RlckluVGFibGVUZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluQ29sdW1uR3JvdXAodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkFmdGVyQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfQk9EWToge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJBZnRlckJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiogQGludGVybmFsICovXG4gICAgb25OdWxsQ2hhcmFjdGVyKHRva2VuKSB7XG4gICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLnRva2VuaXplci5pbkZvcmVpZ25Ob2RlKSB7XG4gICAgICAgICAgICBudWxsQ2hhcmFjdGVySW5Gb3JlaWduQ29udGVudCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoICh0aGlzLmluc2VydGlvbk1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTklUSUFMOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkluaXRpYWxNb2RlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSFRNTDoge1xuICAgICAgICAgICAgICAgIHRva2VuQmVmb3JlSHRtbCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkJlZm9yZUhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluSGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRF9OT19TQ1JJUFQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluSGVhZE5vU2NyaXB0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5BZnRlckhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLlRFWFQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1JPVzoge1xuICAgICAgICAgICAgICAgIGNoYXJhY3RlckluVGFibGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5Db2x1bW5Hcm91cCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQk9EWToge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJCb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5BZnRlckFmdGVyQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBvbkNvbW1lbnQodG9rZW4pIHtcbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudE5vdEluSFRNTCkge1xuICAgICAgICAgICAgYXBwZW5kQ29tbWVudCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoICh0aGlzLmluc2VydGlvbk1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTklUSUFMOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IVE1MOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRF9OT19TQ1JJUFQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT046XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fUk9XOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NFTEw6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9URU1QTEFURTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9GUkFNRVNFVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIGFwcGVuZENvbW1lbnQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX1RFWFQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluVGFibGVUZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgYXBwZW5kQ29tbWVudFRvUm9vdEh0bWxFbGVtZW50KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgYXBwZW5kQ29tbWVudFRvRG9jdW1lbnQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiogQGludGVybmFsICovXG4gICAgb25Eb2N0eXBlKHRva2VuKSB7XG4gICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnNlcnRpb25Nb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5JVElBTDoge1xuICAgICAgICAgICAgICAgIGRvY3R5cGVJbkluaXRpYWxNb2RlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIodG9rZW4sIEVSUi5taXNwbGFjZWREb2N0eXBlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9URVhUOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JblRhYmxlVGV4dCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBvblN0YXJ0VGFnKHRva2VuKSB7XG4gICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuID0gdG9rZW47XG4gICAgICAgIHRoaXMuX3Byb2Nlc3NTdGFydFRhZyh0b2tlbik7XG4gICAgICAgIGlmICh0b2tlbi5zZWxmQ2xvc2luZyAmJiAhdG9rZW4uYWNrU2VsZkNsb3NpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuX2Vycih0b2tlbiwgRVJSLm5vblZvaWRIdG1sRWxlbWVudFN0YXJ0VGFnV2l0aFRyYWlsaW5nU29saWR1cyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUHJvY2Vzc2VzIGEgZ2l2ZW4gc3RhcnQgdGFnLlxuICAgICAqXG4gICAgICogYG9uU3RhcnRUYWdgIGNoZWNrcyBpZiBhIHNlbGYtY2xvc2luZyB0YWcgd2FzIHJlY29nbml6ZWQuIFdoZW4gYSB0b2tlblxuICAgICAqIGlzIG1vdmVkIGluYmV0d2VlbiBtdWx0aXBsZSBpbnNlcnRpb24gbW9kZXMsIHRoaXMgY2hlY2sgZm9yIHNlbGYtY2xvc2luZ1xuICAgICAqIGNvdWxkIGxlYWQgdG8gZmFsc2UgcG9zaXRpdmVzLiBUbyBhdm9pZCB0aGlzLCBgX3Byb2Nlc3NTdGFydFRhZ2AgaXMgdXNlZFxuICAgICAqIGZvciBuZXN0ZWQgY2FsbHMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdG9rZW4gVGhlIHRva2VuIHRvIHByb2Nlc3MuXG4gICAgICogQHByb3RlY3RlZFxuICAgICAqL1xuICAgIF9wcm9jZXNzU3RhcnRUYWcodG9rZW4pIHtcbiAgICAgICAgaWYgKHRoaXMuc2hvdWxkUHJvY2Vzc1N0YXJ0VGFnVG9rZW5JbkZvcmVpZ25Db250ZW50KHRva2VuKSkge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkZvcmVpZ25Db250ZW50KHRoaXMsIHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3N0YXJ0VGFnT3V0c2lkZUZvcmVpZ25Db250ZW50KHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiogQHByb3RlY3RlZCAqL1xuICAgIF9zdGFydFRhZ091dHNpZGVGb3JlaWduQ29udGVudCh0b2tlbikge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuaW5zZXJ0aW9uTW9kZSkge1xuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOSVRJQUw6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluSW5pdGlhbE1vZGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IVE1MOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdCZWZvcmVIdG1sKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnQmVmb3JlSGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEX05PX1NDUklQVDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkTm9TY3JpcHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0FmdGVySGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQk9EWToge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRToge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5UYWJsZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfVEVYVDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5UYWJsZVRleHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT046IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luQ2FwdGlvbih0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJbkNvbHVtbkdyb3VwKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJblRhYmxlQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fUk9XOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJblJvdyh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ0VMTDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5DZWxsKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1Q6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luU2VsZWN0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1RfSU5fVEFCTEU6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luU2VsZWN0SW5UYWJsZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEVNUExBVEU6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luVGVtcGxhdGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0FmdGVyQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luRnJhbWVzZXQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdBZnRlckZyYW1lc2V0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdBZnRlckFmdGVyQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0FmdGVyQWZ0ZXJGcmFtZXNldCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBvbkVuZFRhZyh0b2tlbikge1xuICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IHRva2VuO1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50Tm90SW5IVE1MKSB7XG4gICAgICAgICAgICBlbmRUYWdJbkZvcmVpZ25Db250ZW50KHRoaXMsIHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VuZFRhZ091dHNpZGVGb3JlaWduQ29udGVudCh0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqIEBwcm90ZWN0ZWQgKi9cbiAgICBfZW5kVGFnT3V0c2lkZUZvcmVpZ25Db250ZW50KHRva2VuKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnNlcnRpb25Nb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5JVElBTDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5Jbml0aWFsTW9kZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hUTUw6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdCZWZvcmVIdG1sKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0JlZm9yZUhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJbkhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5IZWFkTm9TY3JpcHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdBZnRlckhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0JPRFk6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJbkJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLlRFWFQ6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJblRleHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5UYWJsZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfVEVYVDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5UYWJsZVRleHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT046IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJbkNhcHRpb24odGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luQ29sdW1uR3JvdXAodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJblRhYmxlQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fUk9XOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5Sb3codGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NFTEw6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJbkNlbGwodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVDoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luU2VsZWN0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1RfSU5fVEFCTEU6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJblNlbGVjdEluVGFibGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RFTVBMQVRFOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5UZW1wbGF0ZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQk9EWToge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0FmdGVyQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJbkZyYW1lc2V0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0FmdGVyRnJhbWVzZXQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0JPRFk6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkFmdGVyQWZ0ZXJCb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIG9uRW9mKHRva2VuKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnNlcnRpb25Nb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5JVElBTDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5Jbml0aWFsTW9kZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hUTUw6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkJlZm9yZUh0bWwodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5CZWZvcmVIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkhlYWROb1NjcmlwdCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT046XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fUk9XOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NFTEw6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRToge1xuICAgICAgICAgICAgICAgIGVvZkluQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuVEVYVDoge1xuICAgICAgICAgICAgICAgIGVvZkluVGV4dCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfVEVYVDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5UYWJsZVRleHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RFTVBMQVRFOiB7XG4gICAgICAgICAgICAgICAgZW9mSW5UZW1wbGF0ZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9GUkFNRVNFVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9GUkFNRVNFVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgc3RvcFBhcnNpbmcodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiogQGludGVybmFsICovXG4gICAgb25XaGl0ZXNwYWNlQ2hhcmFjdGVyKHRva2VuKSB7XG4gICAgICAgIGlmICh0aGlzLnNraXBOZXh0TmV3TGluZSkge1xuICAgICAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmICh0b2tlbi5jaGFycy5jaGFyQ29kZUF0KDApID09PSB1bmljb2RlLkNPREVfUE9JTlRTLkxJTkVfRkVFRCkge1xuICAgICAgICAgICAgICAgIGlmICh0b2tlbi5jaGFycy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0b2tlbi5jaGFycyA9IHRva2VuLmNoYXJzLnN1YnN0cigxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy50b2tlbml6ZXIuaW5Gb3JlaWduTm9kZSkge1xuICAgICAgICAgICAgdGhpcy5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoICh0aGlzLmluc2VydGlvbk1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuVEVYVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9GUkFNRVNFVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2luc2VydENoYXJhY3RlcnModG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ0FQVElPTjpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DRUxMOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RFTVBMQVRFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIHdoaXRlc3BhY2VDaGFyYWN0ZXJJbkJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fUk9XOiB7XG4gICAgICAgICAgICAgICAgY2hhcmFjdGVySW5UYWJsZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfVEVYVDoge1xuICAgICAgICAgICAgICAgIHdoaXRlc3BhY2VDaGFyYWN0ZXJJblRhYmxlVGV4dCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9XG4gICAgfVxufVxuLy9BZG9wdGlvbiBhZ2VuY3kgYWxnb3JpdGhtXG4vLyhzZWU6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3RyZWUtY29uc3RydWN0aW9uLmh0bWwjYWRvcHRpb25BZ2VuY3kpXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy9TdGVwcyA1LTggb2YgdGhlIGFsZ29yaXRobVxuZnVuY3Rpb24gYWFPYnRhaW5Gb3JtYXR0aW5nRWxlbWVudEVudHJ5KHAsIHRva2VuKSB7XG4gICAgbGV0IGZvcm1hdHRpbmdFbGVtZW50RW50cnkgPSBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5nZXRFbGVtZW50RW50cnlJblNjb3BlV2l0aFRhZ05hbWUodG9rZW4udGFnTmFtZSk7XG4gICAgaWYgKGZvcm1hdHRpbmdFbGVtZW50RW50cnkpIHtcbiAgICAgICAgaWYgKCFwLm9wZW5FbGVtZW50cy5jb250YWlucyhmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpKSB7XG4gICAgICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5yZW1vdmVFbnRyeShmb3JtYXR0aW5nRWxlbWVudEVudHJ5KTtcbiAgICAgICAgICAgIGZvcm1hdHRpbmdFbGVtZW50RW50cnkgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCFwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKHRva2VuLnRhZ0lEKSkge1xuICAgICAgICAgICAgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGdlbmVyaWNFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgIH1cbiAgICByZXR1cm4gZm9ybWF0dGluZ0VsZW1lbnRFbnRyeTtcbn1cbi8vU3RlcHMgOSBhbmQgMTAgb2YgdGhlIGFsZ29yaXRobVxuZnVuY3Rpb24gYWFPYnRhaW5GdXJ0aGVzdEJsb2NrKHAsIGZvcm1hdHRpbmdFbGVtZW50RW50cnkpIHtcbiAgICBsZXQgZnVydGhlc3RCbG9jayA9IG51bGw7XG4gICAgbGV0IGlkeCA9IHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wO1xuICAgIGZvciAoOyBpZHggPj0gMDsgaWR4LS0pIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLml0ZW1zW2lkeF07XG4gICAgICAgIGlmIChlbGVtZW50ID09PSBmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwLl9pc1NwZWNpYWxFbGVtZW50KGVsZW1lbnQsIHAub3BlbkVsZW1lbnRzLnRhZ0lEc1tpZHhdKSkge1xuICAgICAgICAgICAgZnVydGhlc3RCbG9jayA9IGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFmdXJ0aGVzdEJsb2NrKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnNob3J0ZW5Ub0xlbmd0aChpZHggPCAwID8gMCA6IGlkeCk7XG4gICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnJlbW92ZUVudHJ5KGZvcm1hdHRpbmdFbGVtZW50RW50cnkpO1xuICAgIH1cbiAgICByZXR1cm4gZnVydGhlc3RCbG9jaztcbn1cbi8vU3RlcCAxMyBvZiB0aGUgYWxnb3JpdGhtXG5mdW5jdGlvbiBhYUlubmVyTG9vcChwLCBmdXJ0aGVzdEJsb2NrLCBmb3JtYXR0aW5nRWxlbWVudCkge1xuICAgIGxldCBsYXN0RWxlbWVudCA9IGZ1cnRoZXN0QmxvY2s7XG4gICAgbGV0IG5leHRFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuZ2V0Q29tbW9uQW5jZXN0b3IoZnVydGhlc3RCbG9jayk7XG4gICAgZm9yIChsZXQgaSA9IDAsIGVsZW1lbnQgPSBuZXh0RWxlbWVudDsgZWxlbWVudCAhPT0gZm9ybWF0dGluZ0VsZW1lbnQ7IGkrKywgZWxlbWVudCA9IG5leHRFbGVtZW50KSB7XG4gICAgICAgIC8vTk9URTogc3RvcmUgdGhlIG5leHQgZWxlbWVudCBmb3IgdGhlIG5leHQgbG9vcCBpdGVyYXRpb24gKGl0IG1heSBiZSBkZWxldGVkIGZyb20gdGhlIHN0YWNrIGJ5IHN0ZXAgOS41KVxuICAgICAgICBuZXh0RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLmdldENvbW1vbkFuY2VzdG9yKGVsZW1lbnQpO1xuICAgICAgICBjb25zdCBlbGVtZW50RW50cnkgPSBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5nZXRFbGVtZW50RW50cnkoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGNvdW50ZXJPdmVyZmxvdyA9IGVsZW1lbnRFbnRyeSAmJiBpID49IEFBX0lOTkVSX0xPT1BfSVRFUjtcbiAgICAgICAgY29uc3Qgc2hvdWxkUmVtb3ZlRnJvbU9wZW5FbGVtZW50cyA9ICFlbGVtZW50RW50cnkgfHwgY291bnRlck92ZXJmbG93O1xuICAgICAgICBpZiAoc2hvdWxkUmVtb3ZlRnJvbU9wZW5FbGVtZW50cykge1xuICAgICAgICAgICAgaWYgKGNvdW50ZXJPdmVyZmxvdykge1xuICAgICAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnJlbW92ZUVudHJ5KGVsZW1lbnRFbnRyeSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5yZW1vdmUoZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBlbGVtZW50ID0gYWFSZWNyZWF0ZUVsZW1lbnRGcm9tRW50cnkocCwgZWxlbWVudEVudHJ5KTtcbiAgICAgICAgICAgIGlmIChsYXN0RWxlbWVudCA9PT0gZnVydGhlc3RCbG9jaykge1xuICAgICAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmJvb2ttYXJrID0gZWxlbWVudEVudHJ5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcC50cmVlQWRhcHRlci5kZXRhY2hOb2RlKGxhc3RFbGVtZW50KTtcbiAgICAgICAgICAgIHAudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQoZWxlbWVudCwgbGFzdEVsZW1lbnQpO1xuICAgICAgICAgICAgbGFzdEVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBsYXN0RWxlbWVudDtcbn1cbi8vU3RlcCAxMy43IG9mIHRoZSBhbGdvcml0aG1cbmZ1bmN0aW9uIGFhUmVjcmVhdGVFbGVtZW50RnJvbUVudHJ5KHAsIGVsZW1lbnRFbnRyeSkge1xuICAgIGNvbnN0IG5zID0gcC50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoZWxlbWVudEVudHJ5LmVsZW1lbnQpO1xuICAgIGNvbnN0IG5ld0VsZW1lbnQgPSBwLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoZWxlbWVudEVudHJ5LnRva2VuLnRhZ05hbWUsIG5zLCBlbGVtZW50RW50cnkudG9rZW4uYXR0cnMpO1xuICAgIHAub3BlbkVsZW1lbnRzLnJlcGxhY2UoZWxlbWVudEVudHJ5LmVsZW1lbnQsIG5ld0VsZW1lbnQpO1xuICAgIGVsZW1lbnRFbnRyeS5lbGVtZW50ID0gbmV3RWxlbWVudDtcbiAgICByZXR1cm4gbmV3RWxlbWVudDtcbn1cbi8vU3RlcCAxNCBvZiB0aGUgYWxnb3JpdGhtXG5mdW5jdGlvbiBhYUluc2VydExhc3ROb2RlSW5Db21tb25BbmNlc3RvcihwLCBjb21tb25BbmNlc3RvciwgbGFzdEVsZW1lbnQpIHtcbiAgICBjb25zdCB0biA9IHAudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShjb21tb25BbmNlc3Rvcik7XG4gICAgY29uc3QgdGlkID0gZ2V0VGFnSUQodG4pO1xuICAgIGlmIChwLl9pc0VsZW1lbnRDYXVzZXNGb3N0ZXJQYXJlbnRpbmcodGlkKSkge1xuICAgICAgICBwLl9mb3N0ZXJQYXJlbnRFbGVtZW50KGxhc3RFbGVtZW50KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IG5zID0gcC50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoY29tbW9uQW5jZXN0b3IpO1xuICAgICAgICBpZiAodGlkID09PSAkLlRFTVBMQVRFICYmIG5zID09PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICBjb21tb25BbmNlc3RvciA9IHAudHJlZUFkYXB0ZXIuZ2V0VGVtcGxhdGVDb250ZW50KGNvbW1vbkFuY2VzdG9yKTtcbiAgICAgICAgfVxuICAgICAgICBwLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKGNvbW1vbkFuY2VzdG9yLCBsYXN0RWxlbWVudCk7XG4gICAgfVxufVxuLy9TdGVwcyAxNS0xOSBvZiB0aGUgYWxnb3JpdGhtXG5mdW5jdGlvbiBhYVJlcGxhY2VGb3JtYXR0aW5nRWxlbWVudChwLCBmdXJ0aGVzdEJsb2NrLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5KSB7XG4gICAgY29uc3QgbnMgPSBwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpO1xuICAgIGNvbnN0IHsgdG9rZW4gfSA9IGZvcm1hdHRpbmdFbGVtZW50RW50cnk7XG4gICAgY29uc3QgbmV3RWxlbWVudCA9IHAudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCh0b2tlbi50YWdOYW1lLCBucywgdG9rZW4uYXR0cnMpO1xuICAgIHAuX2Fkb3B0Tm9kZXMoZnVydGhlc3RCbG9jaywgbmV3RWxlbWVudCk7XG4gICAgcC50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChmdXJ0aGVzdEJsb2NrLCBuZXdFbGVtZW50KTtcbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pbnNlcnRFbGVtZW50QWZ0ZXJCb29rbWFyayhuZXdFbGVtZW50LCB0b2tlbik7XG4gICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucmVtb3ZlRW50cnkoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSk7XG4gICAgcC5vcGVuRWxlbWVudHMucmVtb3ZlKGZvcm1hdHRpbmdFbGVtZW50RW50cnkuZWxlbWVudCk7XG4gICAgcC5vcGVuRWxlbWVudHMuaW5zZXJ0QWZ0ZXIoZnVydGhlc3RCbG9jaywgbmV3RWxlbWVudCwgdG9rZW4udGFnSUQpO1xufVxuLy9BbGdvcml0aG0gZW50cnkgcG9pbnRcbmZ1bmN0aW9uIGNhbGxBZG9wdGlvbkFnZW5jeShwLCB0b2tlbikge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgQUFfT1VURVJfTE9PUF9JVEVSOyBpKyspIHtcbiAgICAgICAgY29uc3QgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSA9IGFhT2J0YWluRm9ybWF0dGluZ0VsZW1lbnRFbnRyeShwLCB0b2tlbik7XG4gICAgICAgIGlmICghZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZnVydGhlc3RCbG9jayA9IGFhT2J0YWluRnVydGhlc3RCbG9jayhwLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5KTtcbiAgICAgICAgaWYgKCFmdXJ0aGVzdEJsb2NrKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5ib29rbWFyayA9IGZvcm1hdHRpbmdFbGVtZW50RW50cnk7XG4gICAgICAgIGNvbnN0IGxhc3RFbGVtZW50ID0gYWFJbm5lckxvb3AocCwgZnVydGhlc3RCbG9jaywgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeS5lbGVtZW50KTtcbiAgICAgICAgY29uc3QgY29tbW9uQW5jZXN0b3IgPSBwLm9wZW5FbGVtZW50cy5nZXRDb21tb25BbmNlc3Rvcihmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpO1xuICAgICAgICBwLnRyZWVBZGFwdGVyLmRldGFjaE5vZGUobGFzdEVsZW1lbnQpO1xuICAgICAgICBpZiAoY29tbW9uQW5jZXN0b3IpXG4gICAgICAgICAgICBhYUluc2VydExhc3ROb2RlSW5Db21tb25BbmNlc3RvcihwLCBjb21tb25BbmNlc3RvciwgbGFzdEVsZW1lbnQpO1xuICAgICAgICBhYVJlcGxhY2VGb3JtYXR0aW5nRWxlbWVudChwLCBmdXJ0aGVzdEJsb2NrLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5KTtcbiAgICB9XG59XG4vL0dlbmVyaWMgdG9rZW4gaGFuZGxlcnNcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBhcHBlbmRDb21tZW50KHAsIHRva2VuKSB7XG4gICAgcC5fYXBwZW5kQ29tbWVudE5vZGUodG9rZW4sIHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUbXBsQ29udGVudE9yTm9kZSk7XG59XG5mdW5jdGlvbiBhcHBlbmRDb21tZW50VG9Sb290SHRtbEVsZW1lbnQocCwgdG9rZW4pIHtcbiAgICBwLl9hcHBlbmRDb21tZW50Tm9kZSh0b2tlbiwgcC5vcGVuRWxlbWVudHMuaXRlbXNbMF0pO1xufVxuZnVuY3Rpb24gYXBwZW5kQ29tbWVudFRvRG9jdW1lbnQocCwgdG9rZW4pIHtcbiAgICBwLl9hcHBlbmRDb21tZW50Tm9kZSh0b2tlbiwgcC5kb2N1bWVudCk7XG59XG5mdW5jdGlvbiBzdG9wUGFyc2luZyhwLCB0b2tlbikge1xuICAgIHAuc3RvcHBlZCA9IHRydWU7XG4gICAgLy8gTk9URTogU2V0IGVuZCBsb2NhdGlvbnMgZm9yIGVsZW1lbnRzIHRoYXQgcmVtYWluIG9uIHRoZSBvcGVuIGVsZW1lbnQgc3RhY2suXG4gICAgaWYgKHRva2VuLmxvY2F0aW9uKSB7XG4gICAgICAgIC8vIE5PVEU6IElmIHdlIGFyZSBub3QgaW4gYSBmcmFnbWVudCwgYGh0bWxgIGFuZCBgYm9keWAgd2lsbCBzdGF5IG9uIHRoZSBzdGFjay5cbiAgICAgICAgLy8gVGhpcyBpcyBhIHByb2JsZW0sIGFzIHdlIG1pZ2h0IG92ZXJ3cml0ZSB0aGVpciBlbmQgcG9zaXRpb24gaGVyZS5cbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gcC5mcmFnbWVudENvbnRleHQgPyAwIDogMjtcbiAgICAgICAgZm9yIChsZXQgaSA9IHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID49IHRhcmdldDsgaS0tKSB7XG4gICAgICAgICAgICBwLl9zZXRFbmRMb2NhdGlvbihwLm9wZW5FbGVtZW50cy5pdGVtc1tpXSwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIC8vIEhhbmRsZSBgaHRtbGAgYW5kIGBib2R5YFxuICAgICAgICBpZiAoIXAuZnJhZ21lbnRDb250ZXh0ICYmIHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wID49IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGh0bWxFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuaXRlbXNbMF07XG4gICAgICAgICAgICBjb25zdCBodG1sTG9jYXRpb24gPSBwLnRyZWVBZGFwdGVyLmdldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24oaHRtbEVsZW1lbnQpO1xuICAgICAgICAgICAgaWYgKGh0bWxMb2NhdGlvbiAmJiAhaHRtbExvY2F0aW9uLmVuZFRhZykge1xuICAgICAgICAgICAgICAgIHAuX3NldEVuZExvY2F0aW9uKGh0bWxFbGVtZW50LCB0b2tlbik7XG4gICAgICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wID49IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9keUVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5pdGVtc1sxXTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9keUxvY2F0aW9uID0gcC50cmVlQWRhcHRlci5nZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKGJvZHlFbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGJvZHlMb2NhdGlvbiAmJiAhYm9keUxvY2F0aW9uLmVuZFRhZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcC5fc2V0RW5kTG9jYXRpb24oYm9keUVsZW1lbnQsIHRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIFRoZSBcImluaXRpYWxcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIGRvY3R5cGVJbkluaXRpYWxNb2RlKHAsIHRva2VuKSB7XG4gICAgcC5fc2V0RG9jdW1lbnRUeXBlKHRva2VuKTtcbiAgICBjb25zdCBtb2RlID0gdG9rZW4uZm9yY2VRdWlya3MgPyBET0NVTUVOVF9NT0RFLlFVSVJLUyA6IGRvY3R5cGUuZ2V0RG9jdW1lbnRNb2RlKHRva2VuKTtcbiAgICBpZiAoIWRvY3R5cGUuaXNDb25mb3JtaW5nKHRva2VuKSkge1xuICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5ub25Db25mb3JtaW5nRG9jdHlwZSk7XG4gICAgfVxuICAgIHAudHJlZUFkYXB0ZXIuc2V0RG9jdW1lbnRNb2RlKHAuZG9jdW1lbnQsIG1vZGUpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuQkVGT1JFX0hUTUw7XG59XG5mdW5jdGlvbiB0b2tlbkluSW5pdGlhbE1vZGUocCwgdG9rZW4pIHtcbiAgICBwLl9lcnIodG9rZW4sIEVSUi5taXNzaW5nRG9jdHlwZSwgdHJ1ZSk7XG4gICAgcC50cmVlQWRhcHRlci5zZXREb2N1bWVudE1vZGUocC5kb2N1bWVudCwgRE9DVU1FTlRfTU9ERS5RVUlSS1MpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuQkVGT1JFX0hUTUw7XG4gICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbn1cbi8vIFRoZSBcImJlZm9yZSBodG1sXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0JlZm9yZUh0bWwocCwgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuSFRNTCkge1xuICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRva2VuQmVmb3JlSHRtbChwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnQmVmb3JlSHRtbChwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKHRuID09PSAkLkhUTUwgfHwgdG4gPT09ICQuSEVBRCB8fCB0biA9PT0gJC5CT0RZIHx8IHRuID09PSAkLkJSKSB7XG4gICAgICAgIHRva2VuQmVmb3JlSHRtbChwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5CZWZvcmVIdG1sKHAsIHRva2VuKSB7XG4gICAgcC5faW5zZXJ0RmFrZVJvb3RFbGVtZW50KCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDtcbiAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xufVxuLy8gVGhlIFwiYmVmb3JlIGhlYWRcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnQmVmb3JlSGVhZChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5IRUFEOiB7XG4gICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIHAuaGVhZEVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5jdXJyZW50O1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9IRUFEO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgdG9rZW5CZWZvcmVIZWFkKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0JlZm9yZUhlYWQocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIGlmICh0biA9PT0gJC5IRUFEIHx8IHRuID09PSAkLkJPRFkgfHwgdG4gPT09ICQuSFRNTCB8fCB0biA9PT0gJC5CUikge1xuICAgICAgICB0b2tlbkJlZm9yZUhlYWQocCwgdG9rZW4pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcC5fZXJyKHRva2VuLCBFUlIuZW5kVGFnV2l0aG91dE1hdGNoaW5nT3BlbkVsZW1lbnQpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHRva2VuQmVmb3JlSGVhZChwLCB0b2tlbikge1xuICAgIHAuX2luc2VydEZha2VFbGVtZW50KFROLkhFQUQsICQuSEVBRCk7XG4gICAgcC5oZWFkRWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLmN1cnJlbnQ7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9IRUFEO1xuICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG59XG4vLyBUaGUgXCJpbiBoZWFkXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luSGVhZChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CQVNFOlxuICAgICAgICBjYXNlICQuQkFTRUZPTlQ6XG4gICAgICAgIGNhc2UgJC5CR1NPVU5EOlxuICAgICAgICBjYXNlICQuTElOSzpcbiAgICAgICAgY2FzZSAkLk1FVEE6IHtcbiAgICAgICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRJVExFOiB7XG4gICAgICAgICAgICBwLl9zd2l0Y2hUb1RleHRQYXJzaW5nKHRva2VuLCBUb2tlbml6ZXJNb2RlLlJDREFUQSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTk9TQ1JJUFQ6IHtcbiAgICAgICAgICAgIGlmIChwLm9wdGlvbnMuc2NyaXB0aW5nRW5hYmxlZCkge1xuICAgICAgICAgICAgICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplck1vZGUuUkFXVEVYVCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk5PRlJBTUVTOlxuICAgICAgICBjYXNlICQuU1RZTEU6IHtcbiAgICAgICAgICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplck1vZGUuUkFXVEVYVCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuU0NSSVBUOiB7XG4gICAgICAgICAgICBwLl9zd2l0Y2hUb1RleHRQYXJzaW5nKHRva2VuLCBUb2tlbml6ZXJNb2RlLlNDUklQVF9EQVRBKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgcC5faW5zZXJ0VGVtcGxhdGUodG9rZW4pO1xuICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuaW5zZXJ0TWFya2VyKCk7XG4gICAgICAgICAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEVNUExBVEU7XG4gICAgICAgICAgICBwLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2sudW5zaGlmdChJbnNlcnRpb25Nb2RlLklOX1RFTVBMQVRFKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5IRUFEOiB7XG4gICAgICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5taXNwbGFjZWRTdGFydFRhZ0ZvckhlYWRFbGVtZW50KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHRva2VuSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luSGVhZChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhFQUQ6IHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJPRFk6XG4gICAgICAgIGNhc2UgJC5CUjpcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHRva2VuSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgcC5fZXJyKHRva2VuLCBFUlIuZW5kVGFnV2l0aG91dE1hdGNoaW5nT3BlbkVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMudG1wbENvdW50ID4gMCkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzVGhvcm91Z2hseSgpO1xuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkICE9PSAkLlRFTVBMQVRFKSB7XG4gICAgICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5jbG9zaW5nT2ZFbGVtZW50V2l0aE9wZW5DaGlsZEVsZW1lbnRzKTtcbiAgICAgICAgfVxuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5URU1QTEFURSk7XG4gICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmNsZWFyVG9MYXN0TWFya2VyKCk7XG4gICAgICAgIHAudG1wbEluc2VydGlvbk1vZGVTdGFjay5zaGlmdCgpO1xuICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLmVuZFRhZ1dpdGhvdXRNYXRjaGluZ09wZW5FbGVtZW50KTtcbiAgICB9XG59XG5mdW5jdGlvbiB0b2tlbkluSGVhZChwLCB0b2tlbikge1xuICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDtcbiAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xufVxuLy8gVGhlIFwiaW4gaGVhZCBubyBzY3JpcHRcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5IZWFkTm9TY3JpcHQocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQkFTRUZPTlQ6XG4gICAgICAgIGNhc2UgJC5CR1NPVU5EOlxuICAgICAgICBjYXNlICQuSEVBRDpcbiAgICAgICAgY2FzZSAkLkxJTks6XG4gICAgICAgIGNhc2UgJC5NRVRBOlxuICAgICAgICBjYXNlICQuTk9GUkFNRVM6XG4gICAgICAgIGNhc2UgJC5TVFlMRToge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk5PU0NSSVBUOiB7XG4gICAgICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5uZXN0ZWROb3NjcmlwdEluSGVhZCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkluSGVhZE5vU2NyaXB0KHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luSGVhZE5vU2NyaXB0KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuTk9TQ1JJUFQ6IHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9IRUFEO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJSOiB7XG4gICAgICAgICAgICB0b2tlbkluSGVhZE5vU2NyaXB0KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLmVuZFRhZ1dpdGhvdXRNYXRjaGluZ09wZW5FbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIHRva2VuSW5IZWFkTm9TY3JpcHQocCwgdG9rZW4pIHtcbiAgICBjb25zdCBlcnJDb2RlID0gdG9rZW4udHlwZSA9PT0gVG9rZW5UeXBlLkVPRiA/IEVSUi5vcGVuRWxlbWVudHNMZWZ0QWZ0ZXJFb2YgOiBFUlIuZGlzYWxsb3dlZENvbnRlbnRJbk5vc2NyaXB0SW5IZWFkO1xuICAgIHAuX2Vycih0b2tlbiwgZXJyQ29kZSk7XG4gICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9IRUFEO1xuICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG59XG4vLyBUaGUgXCJhZnRlciBoZWFkXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0FmdGVySGVhZChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CT0RZOiB7XG4gICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9CT0RZO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkZSQU1FU0VUOiB7XG4gICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fRlJBTUVTRVQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQkFTRTpcbiAgICAgICAgY2FzZSAkLkJBU0VGT05UOlxuICAgICAgICBjYXNlICQuQkdTT1VORDpcbiAgICAgICAgY2FzZSAkLkxJTks6XG4gICAgICAgIGNhc2UgJC5NRVRBOlxuICAgICAgICBjYXNlICQuTk9GUkFNRVM6XG4gICAgICAgIGNhc2UgJC5TQ1JJUFQ6XG4gICAgICAgIGNhc2UgJC5TVFlMRTpcbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOlxuICAgICAgICBjYXNlICQuVElUTEU6IHtcbiAgICAgICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLmFiYW5kb25lZEhlYWRFbGVtZW50Q2hpbGQpO1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucHVzaChwLmhlYWRFbGVtZW50LCAkLkhFQUQpO1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucmVtb3ZlKHAuaGVhZEVsZW1lbnQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkhFQUQ6IHtcbiAgICAgICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLm1pc3BsYWNlZFN0YXJ0VGFnRm9ySGVhZEVsZW1lbnQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgdG9rZW5BZnRlckhlYWQocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnQWZ0ZXJIZWFkKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuQk9EWTpcbiAgICAgICAgY2FzZSAkLkhUTUw6XG4gICAgICAgIGNhc2UgJC5CUjoge1xuICAgICAgICAgICAgdG9rZW5BZnRlckhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICB0ZW1wbGF0ZUVuZFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5lbmRUYWdXaXRob3V0TWF0Y2hpbmdPcGVuRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiB0b2tlbkFmdGVySGVhZChwLCB0b2tlbikge1xuICAgIHAuX2luc2VydEZha2VFbGVtZW50KFROLkJPRFksICQuQk9EWSk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9CT0RZO1xuICAgIG1vZGVJbkJvZHkocCwgdG9rZW4pO1xufVxuLy8gVGhlIFwiaW4gYm9keVwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gbW9kZUluQm9keShwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udHlwZSkge1xuICAgICAgICBjYXNlIFRva2VuVHlwZS5DSEFSQUNURVI6IHtcbiAgICAgICAgICAgIGNoYXJhY3RlckluQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRva2VuVHlwZS5XSElURVNQQUNFX0NIQVJBQ1RFUjoge1xuICAgICAgICAgICAgd2hpdGVzcGFjZUNoYXJhY3RlckluQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRva2VuVHlwZS5DT01NRU5UOiB7XG4gICAgICAgICAgICBhcHBlbmRDb21tZW50KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVG9rZW5UeXBlLlNUQVJUX1RBRzoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBUb2tlblR5cGUuRU5EX1RBRzoge1xuICAgICAgICAgICAgZW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVG9rZW5UeXBlLkVPRjoge1xuICAgICAgICAgICAgZW9mSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICB9XG59XG5mdW5jdGlvbiB3aGl0ZXNwYWNlQ2hhcmFjdGVySW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTtcbn1cbmZ1bmN0aW9uIGNoYXJhY3RlckluQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG59XG5mdW5jdGlvbiBodG1sU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMudG1wbENvdW50ID09PSAwKSB7XG4gICAgICAgIHAudHJlZUFkYXB0ZXIuYWRvcHRBdHRyaWJ1dGVzKHAub3BlbkVsZW1lbnRzLml0ZW1zWzBdLCB0b2tlbi5hdHRycyk7XG4gICAgfVxufVxuZnVuY3Rpb24gYm9keVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgYm9keUVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy50cnlQZWVrUHJvcGVybHlOZXN0ZWRCb2R5RWxlbWVudCgpO1xuICAgIGlmIChib2R5RWxlbWVudCAmJiBwLm9wZW5FbGVtZW50cy50bXBsQ291bnQgPT09IDApIHtcbiAgICAgICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgICAgIHAudHJlZUFkYXB0ZXIuYWRvcHRBdHRyaWJ1dGVzKGJvZHlFbGVtZW50LCB0b2tlbi5hdHRycyk7XG4gICAgfVxufVxuZnVuY3Rpb24gZnJhbWVzZXRTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGNvbnN0IGJvZHlFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMudHJ5UGVla1Byb3Blcmx5TmVzdGVkQm9keUVsZW1lbnQoKTtcbiAgICBpZiAocC5mcmFtZXNldE9rICYmIGJvZHlFbGVtZW50KSB7XG4gICAgICAgIHAudHJlZUFkYXB0ZXIuZGV0YWNoTm9kZShib2R5RWxlbWVudCk7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcEFsbFVwVG9IdG1sRWxlbWVudCgpO1xuICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9GUkFNRVNFVDtcbiAgICB9XG59XG5mdW5jdGlvbiBhZGRyZXNzU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKSB7XG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcbiAgICB9XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG59XG5mdW5jdGlvbiBudW1iZXJlZEhlYWRlclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkge1xuICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG4gICAgfVxuICAgIGlmIChOVU1CRVJFRF9IRUFERVJTLmhhcyhwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQpKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbn1cbmZ1bmN0aW9uIHByZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkge1xuICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG4gICAgfVxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIC8vTk9URTogSWYgdGhlIG5leHQgdG9rZW4gaXMgYSBVKzAwMEEgTElORSBGRUVEIChMRikgY2hhcmFjdGVyIHRva2VuLCB0aGVuIGlnbm9yZSB0aGF0IHRva2VuIGFuZCBtb3ZlXG4gICAgLy9vbiB0byB0aGUgbmV4dCBvbmUuIChOZXdsaW5lcyBhdCB0aGUgc3RhcnQgb2YgcHJlIGJsb2NrcyBhcmUgaWdub3JlZCBhcyBhbiBhdXRob3JpbmcgY29udmVuaWVuY2UuKVxuICAgIHAuc2tpcE5leHROZXdMaW5lID0gdHJ1ZTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbn1cbmZ1bmN0aW9uIGZvcm1TdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGNvbnN0IGluVGVtcGxhdGUgPSBwLm9wZW5FbGVtZW50cy50bXBsQ291bnQgPiAwO1xuICAgIGlmICghcC5mb3JtRWxlbWVudCB8fCBpblRlbXBsYXRlKSB7XG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcbiAgICAgICAgfVxuICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgaWYgKCFpblRlbXBsYXRlKSB7XG4gICAgICAgICAgICBwLmZvcm1FbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuY3VycmVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGxpc3RJdGVtU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIGZvciAobGV0IGkgPSBwLm9wZW5FbGVtZW50cy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgY29uc3QgZWxlbWVudElkID0gcC5vcGVuRWxlbWVudHMudGFnSURzW2ldO1xuICAgICAgICBpZiAoKHRuID09PSAkLkxJICYmIGVsZW1lbnRJZCA9PT0gJC5MSSkgfHxcbiAgICAgICAgICAgICgodG4gPT09ICQuREQgfHwgdG4gPT09ICQuRFQpICYmIChlbGVtZW50SWQgPT09ICQuREQgfHwgZWxlbWVudElkID09PSAkLkRUKSkpIHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3NXaXRoRXhjbHVzaW9uKGVsZW1lbnRJZCk7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoZWxlbWVudElkKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbGVtZW50SWQgIT09ICQuQUREUkVTUyAmJlxuICAgICAgICAgICAgZWxlbWVudElkICE9PSAkLkRJViAmJlxuICAgICAgICAgICAgZWxlbWVudElkICE9PSAkLlAgJiZcbiAgICAgICAgICAgIHAuX2lzU3BlY2lhbEVsZW1lbnQocC5vcGVuRWxlbWVudHMuaXRlbXNbaV0sIGVsZW1lbnRJZCkpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbn1cbmZ1bmN0aW9uIHBsYWludGV4dFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkge1xuICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG4gICAgfVxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAudG9rZW5pemVyLnN0YXRlID0gVG9rZW5pemVyTW9kZS5QTEFJTlRFWFQ7XG59XG5mdW5jdGlvbiBidXR0b25TdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuQlVUVE9OKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLkJVVFRPTik7XG4gICAgfVxuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG59XG5mdW5jdGlvbiBhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBjb25zdCBhY3RpdmVFbGVtZW50RW50cnkgPSBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5nZXRFbGVtZW50RW50cnlJblNjb3BlV2l0aFRhZ05hbWUoVE4uQSk7XG4gICAgaWYgKGFjdGl2ZUVsZW1lbnRFbnRyeSkge1xuICAgICAgICBjYWxsQWRvcHRpb25BZ2VuY3kocCwgdG9rZW4pO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5yZW1vdmUoYWN0aXZlRWxlbWVudEVudHJ5LmVsZW1lbnQpO1xuICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5yZW1vdmVFbnRyeShhY3RpdmVFbGVtZW50RW50cnkpO1xuICAgIH1cbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnB1c2hFbGVtZW50KHAub3BlbkVsZW1lbnRzLmN1cnJlbnQsIHRva2VuKTtcbn1cbmZ1bmN0aW9uIGJTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucHVzaEVsZW1lbnQocC5vcGVuRWxlbWVudHMuY3VycmVudCwgdG9rZW4pO1xufVxuZnVuY3Rpb24gbm9iclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSgkLk5PQlIpKSB7XG4gICAgICAgIGNhbGxBZG9wdGlvbkFnZW5jeShwLCB0b2tlbik7XG4gICAgICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgfVxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnB1c2hFbGVtZW50KHAub3BlbkVsZW1lbnRzLmN1cnJlbnQsIHRva2VuKTtcbn1cbmZ1bmN0aW9uIGFwcGxldFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pbnNlcnRNYXJrZXIoKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbn1cbmZ1bmN0aW9uIHRhYmxlU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC50cmVlQWRhcHRlci5nZXREb2N1bWVudE1vZGUocC5kb2N1bWVudCkgIT09IERPQ1VNRU5UX01PREUuUVVJUktTICYmIHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkge1xuICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG4gICAgfVxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG59XG5mdW5jdGlvbiBhcmVhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGlzSGlkZGVuSW5wdXQodG9rZW4pIHtcbiAgICBjb25zdCBpbnB1dFR5cGUgPSBnZXRUb2tlbkF0dHIodG9rZW4sIEFUVFJTLlRZUEUpO1xuICAgIHJldHVybiBpbnB1dFR5cGUgIT0gbnVsbCAmJiBpbnB1dFR5cGUudG9Mb3dlckNhc2UoKSA9PT0gSElEREVOX0lOUFVUX1RZUEU7XG59XG5mdW5jdGlvbiBpbnB1dFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBpZiAoIWlzSGlkZGVuSW5wdXQodG9rZW4pKSB7XG4gICAgICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgIH1cbiAgICB0b2tlbi5hY2tTZWxmQ2xvc2luZyA9IHRydWU7XG59XG5mdW5jdGlvbiBwYXJhbVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xufVxuZnVuY3Rpb24gaHJTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuICAgIH1cbiAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICB0b2tlbi5hY2tTZWxmQ2xvc2luZyA9IHRydWU7XG59XG5mdW5jdGlvbiBpbWFnZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgdG9rZW4udGFnTmFtZSA9IFROLklNRztcbiAgICB0b2tlbi50YWdJRCA9ICQuSU1HO1xuICAgIGFyZWFTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG59XG5mdW5jdGlvbiB0ZXh0YXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgLy9OT1RFOiBJZiB0aGUgbmV4dCB0b2tlbiBpcyBhIFUrMDAwQSBMSU5FIEZFRUQgKExGKSBjaGFyYWN0ZXIgdG9rZW4sIHRoZW4gaWdub3JlIHRoYXQgdG9rZW4gYW5kIG1vdmVcbiAgICAvL29uIHRvIHRoZSBuZXh0IG9uZS4gKE5ld2xpbmVzIGF0IHRoZSBzdGFydCBvZiB0ZXh0YXJlYSBlbGVtZW50cyBhcmUgaWdub3JlZCBhcyBhbiBhdXRob3JpbmcgY29udmVuaWVuY2UuKVxuICAgIHAuc2tpcE5leHROZXdMaW5lID0gdHJ1ZTtcbiAgICBwLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplck1vZGUuUkNEQVRBO1xuICAgIHAub3JpZ2luYWxJbnNlcnRpb25Nb2RlID0gcC5pbnNlcnRpb25Nb2RlO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuVEVYVDtcbn1cbmZ1bmN0aW9uIHhtcFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkge1xuICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG4gICAgfVxuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgcC5fc3dpdGNoVG9UZXh0UGFyc2luZyh0b2tlbiwgVG9rZW5pemVyTW9kZS5SQVdURVhUKTtcbn1cbmZ1bmN0aW9uIGlmcmFtZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgcC5fc3dpdGNoVG9UZXh0UGFyc2luZyh0b2tlbiwgVG9rZW5pemVyTW9kZS5SQVdURVhUKTtcbn1cbi8vTk9URTogaGVyZSB3ZSBhc3N1bWUgdGhhdCB3ZSBhbHdheXMgYWN0IGFzIGEgdXNlciBhZ2VudCB3aXRoIGVuYWJsZWQgcGx1Z2lucy9mcmFtZXMsIHNvIHdlIHBhcnNlXG4vLzxub2VtYmVkPi88bm9mcmFtZXM+IGFzIHJhd3RleHQuXG5mdW5jdGlvbiByYXdUZXh0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9zd2l0Y2hUb1RleHRQYXJzaW5nKHRva2VuLCBUb2tlbml6ZXJNb2RlLlJBV1RFWFQpO1xufVxuZnVuY3Rpb24gc2VsZWN0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9XG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9PT0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRSB8fFxuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID09PSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT04gfHxcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9PT0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZIHx8XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPT09IEluc2VydGlvbk1vZGUuSU5fUk9XIHx8XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPT09IEluc2VydGlvbk1vZGUuSU5fQ0VMTFxuICAgICAgICAgICAgPyBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRVxuICAgICAgICAgICAgOiBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVDtcbn1cbmZ1bmN0aW9uIG9wdGdyb3VwU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVElPTikge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICB9XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbn1cbmZ1bmN0aW9uIHJiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSgkLlJVQlkpKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICB9XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG59XG5mdW5jdGlvbiBydFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUoJC5SVUJZKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbigkLlJUQyk7XG4gICAgfVxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xufVxuZnVuY3Rpb24gbWF0aFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlbk1hdGhNTEF0dHJzKHRva2VuKTtcbiAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlblhNTEF0dHJzKHRva2VuKTtcbiAgICBpZiAodG9rZW4uc2VsZkNsb3NpbmcpIHtcbiAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuTUFUSE1MKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLk1BVEhNTCk7XG4gICAgfVxuICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIHN2Z1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlblNWR0F0dHJzKHRva2VuKTtcbiAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlblhNTEF0dHJzKHRva2VuKTtcbiAgICBpZiAodG9rZW4uc2VsZkNsb3NpbmcpIHtcbiAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuU1ZHKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLlNWRyk7XG4gICAgfVxuICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGdlbmVyaWNTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG59XG5mdW5jdGlvbiBzdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkk6XG4gICAgICAgIGNhc2UgJC5TOlxuICAgICAgICBjYXNlICQuQjpcbiAgICAgICAgY2FzZSAkLlU6XG4gICAgICAgIGNhc2UgJC5FTTpcbiAgICAgICAgY2FzZSAkLlRUOlxuICAgICAgICBjYXNlICQuQklHOlxuICAgICAgICBjYXNlICQuQ09ERTpcbiAgICAgICAgY2FzZSAkLkZPTlQ6XG4gICAgICAgIGNhc2UgJC5TTUFMTDpcbiAgICAgICAgY2FzZSAkLlNUUklLRTpcbiAgICAgICAgY2FzZSAkLlNUUk9ORzoge1xuICAgICAgICAgICAgYlN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5BOiB7XG4gICAgICAgICAgICBhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkgxOlxuICAgICAgICBjYXNlICQuSDI6XG4gICAgICAgIGNhc2UgJC5IMzpcbiAgICAgICAgY2FzZSAkLkg0OlxuICAgICAgICBjYXNlICQuSDU6XG4gICAgICAgIGNhc2UgJC5INjoge1xuICAgICAgICAgICAgbnVtYmVyZWRIZWFkZXJTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuUDpcbiAgICAgICAgY2FzZSAkLkRMOlxuICAgICAgICBjYXNlICQuT0w6XG4gICAgICAgIGNhc2UgJC5VTDpcbiAgICAgICAgY2FzZSAkLkRJVjpcbiAgICAgICAgY2FzZSAkLkRJUjpcbiAgICAgICAgY2FzZSAkLk5BVjpcbiAgICAgICAgY2FzZSAkLk1BSU46XG4gICAgICAgIGNhc2UgJC5NRU5VOlxuICAgICAgICBjYXNlICQuQVNJREU6XG4gICAgICAgIGNhc2UgJC5DRU5URVI6XG4gICAgICAgIGNhc2UgJC5GSUdVUkU6XG4gICAgICAgIGNhc2UgJC5GT09URVI6XG4gICAgICAgIGNhc2UgJC5IRUFERVI6XG4gICAgICAgIGNhc2UgJC5IR1JPVVA6XG4gICAgICAgIGNhc2UgJC5ESUFMT0c6XG4gICAgICAgIGNhc2UgJC5ERVRBSUxTOlxuICAgICAgICBjYXNlICQuQUREUkVTUzpcbiAgICAgICAgY2FzZSAkLkFSVElDTEU6XG4gICAgICAgIGNhc2UgJC5TRUFSQ0g6XG4gICAgICAgIGNhc2UgJC5TRUNUSU9OOlxuICAgICAgICBjYXNlICQuU1VNTUFSWTpcbiAgICAgICAgY2FzZSAkLkZJRUxEU0VUOlxuICAgICAgICBjYXNlICQuQkxPQ0tRVU9URTpcbiAgICAgICAgY2FzZSAkLkZJR0NBUFRJT046IHtcbiAgICAgICAgICAgIGFkZHJlc3NTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTEk6XG4gICAgICAgIGNhc2UgJC5ERDpcbiAgICAgICAgY2FzZSAkLkRUOiB7XG4gICAgICAgICAgICBsaXN0SXRlbVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CUjpcbiAgICAgICAgY2FzZSAkLklNRzpcbiAgICAgICAgY2FzZSAkLldCUjpcbiAgICAgICAgY2FzZSAkLkFSRUE6XG4gICAgICAgIGNhc2UgJC5FTUJFRDpcbiAgICAgICAgY2FzZSAkLktFWUdFTjoge1xuICAgICAgICAgICAgYXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5IUjoge1xuICAgICAgICAgICAgaHJTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuUkI6XG4gICAgICAgIGNhc2UgJC5SVEM6IHtcbiAgICAgICAgICAgIHJiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlJUOlxuICAgICAgICBjYXNlICQuUlA6IHtcbiAgICAgICAgICAgIHJ0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlBSRTpcbiAgICAgICAgY2FzZSAkLkxJU1RJTkc6IHtcbiAgICAgICAgICAgIHByZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5YTVA6IHtcbiAgICAgICAgICAgIHhtcFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5TVkc6IHtcbiAgICAgICAgICAgIHN2Z1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBodG1sU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJBU0U6XG4gICAgICAgIGNhc2UgJC5MSU5LOlxuICAgICAgICBjYXNlICQuTUVUQTpcbiAgICAgICAgY2FzZSAkLlNUWUxFOlxuICAgICAgICBjYXNlICQuVElUTEU6XG4gICAgICAgIGNhc2UgJC5TQ1JJUFQ6XG4gICAgICAgIGNhc2UgJC5CR1NPVU5EOlxuICAgICAgICBjYXNlICQuQkFTRUZPTlQ6XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJPRFk6IHtcbiAgICAgICAgICAgIGJvZHlTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuRk9STToge1xuICAgICAgICAgICAgZm9ybVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5OT0JSOiB7XG4gICAgICAgICAgICBub2JyU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk1BVEg6IHtcbiAgICAgICAgICAgIG1hdGhTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgIHRhYmxlU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLklOUFVUOiB7XG4gICAgICAgICAgICBpbnB1dFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5QQVJBTTpcbiAgICAgICAgY2FzZSAkLlRSQUNLOlxuICAgICAgICBjYXNlICQuU09VUkNFOiB7XG4gICAgICAgICAgICBwYXJhbVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5JTUFHRToge1xuICAgICAgICAgICAgaW1hZ2VTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQlVUVE9OOiB7XG4gICAgICAgICAgICBidXR0b25TdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQVBQTEVUOlxuICAgICAgICBjYXNlICQuT0JKRUNUOlxuICAgICAgICBjYXNlICQuTUFSUVVFRToge1xuICAgICAgICAgICAgYXBwbGV0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLklGUkFNRToge1xuICAgICAgICAgICAgaWZyYW1lU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlNFTEVDVDoge1xuICAgICAgICAgICAgc2VsZWN0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk9QVElPTjpcbiAgICAgICAgY2FzZSAkLk9QVEdST1VQOiB7XG4gICAgICAgICAgICBvcHRncm91cFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5OT0VNQkVEOlxuICAgICAgICBjYXNlICQuTk9GUkFNRVM6IHtcbiAgICAgICAgICAgIHJhd1RleHRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgIGZyYW1lc2V0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFWFRBUkVBOiB7XG4gICAgICAgICAgICB0ZXh0YXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5OT1NDUklQVDoge1xuICAgICAgICAgICAgaWYgKHAub3B0aW9ucy5zY3JpcHRpbmdFbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgcmF3VGV4dFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGdlbmVyaWNTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuUExBSU5URVhUOiB7XG4gICAgICAgICAgICBwbGFpbnRleHRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ09MOlxuICAgICAgICBjYXNlICQuVEg6XG4gICAgICAgIGNhc2UgJC5URDpcbiAgICAgICAgY2FzZSAkLlRSOlxuICAgICAgICBjYXNlICQuSEVBRDpcbiAgICAgICAgY2FzZSAkLkZSQU1FOlxuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIRUFEOlxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOiB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgdG9rZW5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGdlbmVyaWNTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBib2R5RW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUoJC5CT0RZKSkge1xuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk7XG4gICAgICAgIC8vTk9URTogPGJvZHk+IGlzIG5ldmVyIHBvcHBlZCBmcm9tIHRoZSBzdGFjaywgc28gd2UgbmVlZCB0byB1cGRhdGVkXG4gICAgICAgIC8vdGhlIGVuZCBsb2NhdGlvbiBleHBsaWNpdGx5LlxuICAgICAgICBpZiAocC5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8pIHtcbiAgICAgICAgICAgIGNvbnN0IGJvZHlFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMudHJ5UGVla1Byb3Blcmx5TmVzdGVkQm9keUVsZW1lbnQoKTtcbiAgICAgICAgICAgIGlmIChib2R5RWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHAuX3NldEVuZExvY2F0aW9uKGJvZHlFbGVtZW50LCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBodG1sRW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUoJC5CT0RZKSkge1xuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk7XG4gICAgICAgIGVuZFRhZ0FmdGVyQm9keShwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gYWRkcmVzc0VuZFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUodG4pKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKHRuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBmb3JtRW5kVGFnSW5Cb2R5KHApIHtcbiAgICBjb25zdCBpblRlbXBsYXRlID0gcC5vcGVuRWxlbWVudHMudG1wbENvdW50ID4gMDtcbiAgICBjb25zdCB7IGZvcm1FbGVtZW50IH0gPSBwO1xuICAgIGlmICghaW5UZW1wbGF0ZSkge1xuICAgICAgICBwLmZvcm1FbGVtZW50ID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKChmb3JtRWxlbWVudCB8fCBpblRlbXBsYXRlKSAmJiBwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuRk9STSkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICBpZiAoaW5UZW1wbGF0ZSkge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuRk9STSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoZm9ybUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnJlbW92ZShmb3JtRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBwRW5kVGFnSW5Cb2R5KHApIHtcbiAgICBpZiAoIXAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkge1xuICAgICAgICBwLl9pbnNlcnRGYWtlRWxlbWVudChUTi5QLCAkLlApO1xuICAgIH1cbiAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG59XG5mdW5jdGlvbiBsaUVuZFRhZ0luQm9keShwKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luTGlzdEl0ZW1TY29wZSgkLkxJKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbigkLkxJKTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuTEkpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGRkRW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSh0bikpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24odG4pO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQodG4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIG51bWJlcmVkSGVhZGVyRW5kVGFnSW5Cb2R5KHApIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzTnVtYmVyZWRIZWFkZXJJblNjb3BlKCkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbE51bWJlcmVkSGVhZGVyUG9wcGVkKCk7XG4gICAgfVxufVxuZnVuY3Rpb24gYXBwbGV0RW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSh0bikpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQodG4pO1xuICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5jbGVhclRvTGFzdE1hcmtlcigpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGJyRW5kVGFnSW5Cb2R5KHApIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEZha2VFbGVtZW50KFROLkJSLCAkLkJSKTtcbiAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbn1cbmZ1bmN0aW9uIGdlbmVyaWNFbmRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ05hbWU7XG4gICAgY29uc3QgdGlkID0gdG9rZW4udGFnSUQ7XG4gICAgZm9yIChsZXQgaSA9IHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID4gMDsgaS0tKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5pdGVtc1tpXTtcbiAgICAgICAgY29uc3QgZWxlbWVudElkID0gcC5vcGVuRWxlbWVudHMudGFnSURzW2ldO1xuICAgICAgICAvLyBDb21wYXJlIHRoZSB0YWcgbmFtZSBoZXJlLCBhcyB0aGUgdGFnIG1pZ2h0IG5vdCBiZSBhIGtub3duIHRhZyB3aXRoIGFuIElELlxuICAgICAgICBpZiAodGlkID09PSBlbGVtZW50SWQgJiYgKHRpZCAhPT0gJC5VTktOT1dOIHx8IHAudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbGVtZW50KSA9PT0gdG4pKSB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbih0aWQpO1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wID49IGkpXG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuc2hvcnRlblRvTGVuZ3RoKGkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHAuX2lzU3BlY2lhbEVsZW1lbnQoZWxlbWVudCwgZWxlbWVudElkKSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5BOlxuICAgICAgICBjYXNlICQuQjpcbiAgICAgICAgY2FzZSAkLkk6XG4gICAgICAgIGNhc2UgJC5TOlxuICAgICAgICBjYXNlICQuVTpcbiAgICAgICAgY2FzZSAkLkVNOlxuICAgICAgICBjYXNlICQuVFQ6XG4gICAgICAgIGNhc2UgJC5CSUc6XG4gICAgICAgIGNhc2UgJC5DT0RFOlxuICAgICAgICBjYXNlICQuRk9OVDpcbiAgICAgICAgY2FzZSAkLk5PQlI6XG4gICAgICAgIGNhc2UgJC5TTUFMTDpcbiAgICAgICAgY2FzZSAkLlNUUklLRTpcbiAgICAgICAgY2FzZSAkLlNUUk9ORzoge1xuICAgICAgICAgICAgY2FsbEFkb3B0aW9uQWdlbmN5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5QOiB7XG4gICAgICAgICAgICBwRW5kVGFnSW5Cb2R5KHApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkRMOlxuICAgICAgICBjYXNlICQuVUw6XG4gICAgICAgIGNhc2UgJC5PTDpcbiAgICAgICAgY2FzZSAkLkRJUjpcbiAgICAgICAgY2FzZSAkLkRJVjpcbiAgICAgICAgY2FzZSAkLk5BVjpcbiAgICAgICAgY2FzZSAkLlBSRTpcbiAgICAgICAgY2FzZSAkLk1BSU46XG4gICAgICAgIGNhc2UgJC5NRU5VOlxuICAgICAgICBjYXNlICQuQVNJREU6XG4gICAgICAgIGNhc2UgJC5CVVRUT046XG4gICAgICAgIGNhc2UgJC5DRU5URVI6XG4gICAgICAgIGNhc2UgJC5GSUdVUkU6XG4gICAgICAgIGNhc2UgJC5GT09URVI6XG4gICAgICAgIGNhc2UgJC5IRUFERVI6XG4gICAgICAgIGNhc2UgJC5IR1JPVVA6XG4gICAgICAgIGNhc2UgJC5ESUFMT0c6XG4gICAgICAgIGNhc2UgJC5BRERSRVNTOlxuICAgICAgICBjYXNlICQuQVJUSUNMRTpcbiAgICAgICAgY2FzZSAkLkRFVEFJTFM6XG4gICAgICAgIGNhc2UgJC5TRUFSQ0g6XG4gICAgICAgIGNhc2UgJC5TRUNUSU9OOlxuICAgICAgICBjYXNlICQuU1VNTUFSWTpcbiAgICAgICAgY2FzZSAkLkxJU1RJTkc6XG4gICAgICAgIGNhc2UgJC5GSUVMRFNFVDpcbiAgICAgICAgY2FzZSAkLkJMT0NLUVVPVEU6XG4gICAgICAgIGNhc2UgJC5GSUdDQVBUSU9OOiB7XG4gICAgICAgICAgICBhZGRyZXNzRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5MSToge1xuICAgICAgICAgICAgbGlFbmRUYWdJbkJvZHkocCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuREQ6XG4gICAgICAgIGNhc2UgJC5EVDoge1xuICAgICAgICAgICAgZGRFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkgxOlxuICAgICAgICBjYXNlICQuSDI6XG4gICAgICAgIGNhc2UgJC5IMzpcbiAgICAgICAgY2FzZSAkLkg0OlxuICAgICAgICBjYXNlICQuSDU6XG4gICAgICAgIGNhc2UgJC5INjoge1xuICAgICAgICAgICAgbnVtYmVyZWRIZWFkZXJFbmRUYWdJbkJvZHkocCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQlI6IHtcbiAgICAgICAgICAgIGJyRW5kVGFnSW5Cb2R5KHApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJPRFk6IHtcbiAgICAgICAgICAgIGJvZHlFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIGh0bWxFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkZPUk06IHtcbiAgICAgICAgICAgIGZvcm1FbmRUYWdJbkJvZHkocCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQVBQTEVUOlxuICAgICAgICBjYXNlICQuT0JKRUNUOlxuICAgICAgICBjYXNlICQuTUFSUVVFRToge1xuICAgICAgICAgICAgYXBwbGV0RW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgZ2VuZXJpY0VuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlb2ZJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZW9mSW5UZW1wbGF0ZShwLCB0b2tlbik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzdG9wUGFyc2luZyhwLCB0b2tlbik7XG4gICAgfVxufVxuLy8gVGhlIFwidGV4dFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gZW5kVGFnSW5UZXh0KHAsIHRva2VuKSB7XG4gICAgdmFyIF9hO1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5TQ1JJUFQpIHtcbiAgICAgICAgKF9hID0gcC5zY3JpcHRIYW5kbGVyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChwLCBwLm9wZW5FbGVtZW50cy5jdXJyZW50KTtcbiAgICB9XG4gICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gcC5vcmlnaW5hbEluc2VydGlvbk1vZGU7XG59XG5mdW5jdGlvbiBlb2ZJblRleHQocCwgdG9rZW4pIHtcbiAgICBwLl9lcnIodG9rZW4sIEVSUi5lb2ZJbkVsZW1lbnRUaGF0Q2FuQ29udGFpbk9ubHlUZXh0KTtcbiAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBwLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZTtcbiAgICBwLm9uRW9mKHRva2VuKTtcbn1cbi8vIFRoZSBcImluIHRhYmxlXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBjaGFyYWN0ZXJJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgaWYgKFRBQkxFX1NUUlVDVFVSRV9UQUdTLmhhcyhwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQpKSB7XG4gICAgICAgIHAucGVuZGluZ0NoYXJhY3RlclRva2Vucy5sZW5ndGggPSAwO1xuICAgICAgICBwLmhhc05vbldoaXRlc3BhY2VQZW5kaW5nQ2hhcmFjdGVyVG9rZW4gPSBmYWxzZTtcbiAgICAgICAgcC5vcmlnaW5hbEluc2VydGlvbk1vZGUgPSBwLmluc2VydGlvbk1vZGU7XG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfVEVYVDtcbiAgICAgICAgc3dpdGNoICh0b2tlbi50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5DSEFSQUNURVI6IHtcbiAgICAgICAgICAgICAgICBjaGFyYWN0ZXJJblRhYmxlVGV4dChwLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5XSElURVNQQUNFX0NIQVJBQ1RFUjoge1xuICAgICAgICAgICAgICAgIHdoaXRlc3BhY2VDaGFyYWN0ZXJJblRhYmxlVGV4dChwLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZ25vcmUgbnVsbFxuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0b2tlbkluVGFibGUocCwgdG9rZW4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGNhcHRpb25TdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpO1xuICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmluc2VydE1hcmtlcigpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQ0FQVElPTjtcbn1cbmZ1bmN0aW9uIGNvbGdyb3VwU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUNvbnRleHQoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDtcbn1cbmZ1bmN0aW9uIGNvbFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVDb250ZXh0KCk7XG4gICAgcC5faW5zZXJ0RmFrZUVsZW1lbnQoVE4uQ09MR1JPVVAsICQuQ09MR1JPVVApO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQO1xuICAgIHN0YXJ0VGFnSW5Db2x1bW5Hcm91cChwLCB0b2tlbik7XG59XG5mdW5jdGlvbiB0Ym9keVN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVDb250ZXh0KCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xufVxuZnVuY3Rpb24gdGRTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpO1xuICAgIHAuX2luc2VydEZha2VFbGVtZW50KFROLlRCT0RZLCAkLlRCT0RZKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk7XG4gICAgc3RhcnRUYWdJblRhYmxlQm9keShwLCB0b2tlbik7XG59XG5mdW5jdGlvbiB0YWJsZVN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UQUJMRSkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuVEFCTEUpO1xuICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgcC5fcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBpbnB1dFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIGlmIChpc0hpZGRlbklucHV0KHRva2VuKSkge1xuICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7XG4gICAgfVxuICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGZvcm1TdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBpZiAoIXAuZm9ybUVsZW1lbnQgJiYgcC5vcGVuRWxlbWVudHMudG1wbENvdW50ID09PSAwKSB7XG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICBwLmZvcm1FbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuY3VycmVudDtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgfVxufVxuZnVuY3Rpb24gc3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuVEQ6XG4gICAgICAgIGNhc2UgJC5USDpcbiAgICAgICAgY2FzZSAkLlRSOiB7XG4gICAgICAgICAgICB0ZFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuU1RZTEU6XG4gICAgICAgIGNhc2UgJC5TQ1JJUFQ6XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkNPTDoge1xuICAgICAgICAgICAgY29sU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5GT1JNOiB7XG4gICAgICAgICAgICBmb3JtU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQUJMRToge1xuICAgICAgICAgICAgdGFibGVTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEZPT1Q6XG4gICAgICAgIGNhc2UgJC5USEVBRDoge1xuICAgICAgICAgICAgdGJvZHlTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLklOUFVUOiB7XG4gICAgICAgICAgICBpbnB1dFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ0FQVElPTjoge1xuICAgICAgICAgICAgY2FwdGlvblN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6IHtcbiAgICAgICAgICAgIGNvbGdyb3VwU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UQUJMRSkpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5UQUJMRSk7XG4gICAgICAgICAgICAgICAgcC5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEVNUExBVEU6IHtcbiAgICAgICAgICAgIHRlbXBsYXRlRW5kVGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CT0RZOlxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTDpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOlxuICAgICAgICBjYXNlICQuSFRNTDpcbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEQ6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIOlxuICAgICAgICBjYXNlICQuVEhFQUQ6XG4gICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgLy8gSWdub3JlIHRva2VuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkluVGFibGUocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5JblRhYmxlKHAsIHRva2VuKSB7XG4gICAgY29uc3Qgc2F2ZWRGb3N0ZXJQYXJlbnRpbmdTdGF0ZSA9IHAuZm9zdGVyUGFyZW50aW5nRW5hYmxlZDtcbiAgICBwLmZvc3RlclBhcmVudGluZ0VuYWJsZWQgPSB0cnVlO1xuICAgIC8vIFByb2Nlc3MgdG9rZW4gaW4gYEluIEJvZHlgIG1vZGVcbiAgICBtb2RlSW5Cb2R5KHAsIHRva2VuKTtcbiAgICBwLmZvc3RlclBhcmVudGluZ0VuYWJsZWQgPSBzYXZlZEZvc3RlclBhcmVudGluZ1N0YXRlO1xufVxuLy8gVGhlIFwiaW4gdGFibGUgdGV4dFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gd2hpdGVzcGFjZUNoYXJhY3RlckluVGFibGVUZXh0KHAsIHRva2VuKSB7XG4gICAgcC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zLnB1c2godG9rZW4pO1xufVxuZnVuY3Rpb24gY2hhcmFjdGVySW5UYWJsZVRleHQocCwgdG9rZW4pIHtcbiAgICBwLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnMucHVzaCh0b2tlbik7XG4gICAgcC5oYXNOb25XaGl0ZXNwYWNlUGVuZGluZ0NoYXJhY3RlclRva2VuID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIHRva2VuSW5UYWJsZVRleHQocCwgdG9rZW4pIHtcbiAgICBsZXQgaSA9IDA7XG4gICAgaWYgKHAuaGFzTm9uV2hpdGVzcGFjZVBlbmRpbmdDaGFyYWN0ZXJUb2tlbikge1xuICAgICAgICBmb3IgKDsgaSA8IHAucGVuZGluZ0NoYXJhY3RlclRva2Vucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdG9rZW5JblRhYmxlKHAsIHAucGVuZGluZ0NoYXJhY3RlclRva2Vuc1tpXSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGZvciAoOyBpIDwgcC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBwLl9pbnNlcnRDaGFyYWN0ZXJzKHAucGVuZGluZ0NoYXJhY3RlclRva2Vuc1tpXSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gcC5vcmlnaW5hbEluc2VydGlvbk1vZGU7XG4gICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbn1cbi8vIFRoZSBcImluIGNhcHRpb25cIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmNvbnN0IFRBQkxFX1ZPSURfRUxFTUVOVFMgPSBuZXcgU2V0KFskLkNBUFRJT04sICQuQ09MLCAkLkNPTEdST1VQLCAkLlRCT0RZLCAkLlRELCAkLlRGT09ULCAkLlRILCAkLlRIRUFELCAkLlRSXSk7XG5mdW5jdGlvbiBzdGFydFRhZ0luQ2FwdGlvbihwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKFRBQkxFX1ZPSURfRUxFTUVOVFMuaGFzKHRuKSkge1xuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuQ0FQVElPTikpIHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLkNBUFRJT04pO1xuICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICBzdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5DYXB0aW9uKHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBzd2l0Y2ggKHRuKSB7XG4gICAgICAgIGNhc2UgJC5DQVBUSU9OOlxuICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5DQVBUSU9OKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5DQVBUSU9OKTtcbiAgICAgICAgICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5jbGVhclRvTGFzdE1hcmtlcigpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICAgICAgaWYgKHRuID09PSAkLlRBQkxFKSB7XG4gICAgICAgICAgICAgICAgICAgIGVuZFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CT0RZOlxuICAgICAgICBjYXNlICQuQ09MOlxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6XG4gICAgICAgIGNhc2UgJC5IVE1MOlxuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URDpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEg6XG4gICAgICAgIGNhc2UgJC5USEVBRDpcbiAgICAgICAgY2FzZSAkLlRSOiB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgdG9rZW5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGVuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBUaGUgXCJpbiBjb2x1bW4gZ3JvdXBcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5Db2x1bW5Hcm91cChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5DT0w6IHtcbiAgICAgICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkluQ29sdW1uR3JvdXAocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5Db2x1bW5Hcm91cChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLkNPTEdST1VQKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkNPTDoge1xuICAgICAgICAgICAgLy8gSWdub3JlIHRva2VuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkluQ29sdW1uR3JvdXAocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5JbkNvbHVtbkdyb3VwKHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCA9PT0gJC5DT0xHUk9VUCkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbiAgICB9XG59XG4vLyBUaGUgXCJpbiB0YWJsZSBib2R5XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpO1xuICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1JPVztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5USDpcbiAgICAgICAgY2FzZSAkLlREOiB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQm9keUNvbnRleHQoKTtcbiAgICAgICAgICAgIHAuX2luc2VydEZha2VFbGVtZW50KFROLlRSLCAkLlRSKTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fUk9XO1xuICAgICAgICAgICAgc3RhcnRUYWdJblJvdyhwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTDpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOlxuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIRUFEOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzVGFibGVCb2R5Q29udGV4dEluVGFibGVTY29wZSgpKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUJvZHlDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEhFQUQ6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUodG4pKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUJvZHlDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQUJMRToge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc1RhYmxlQm9keUNvbnRleHRJblRhYmxlU2NvcGUoKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpO1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQk9EWTpcbiAgICAgICAgY2FzZSAkLkNBUFRJT046XG4gICAgICAgIGNhc2UgJC5DT0w6XG4gICAgICAgIGNhc2UgJC5DT0xHUk9VUDpcbiAgICAgICAgY2FzZSAkLkhUTUw6XG4gICAgICAgIGNhc2UgJC5URDpcbiAgICAgICAgY2FzZSAkLlRIOlxuICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgIC8vIElnbm9yZSB0b2tlblxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgZW5kVGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBUaGUgXCJpbiByb3dcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5Sb3cocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5USDpcbiAgICAgICAgY2FzZSAkLlREOiB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCgpO1xuICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0NFTEw7XG4gICAgICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pbnNlcnRNYXJrZXIoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5DQVBUSU9OOlxuICAgICAgICBjYXNlICQuQ09MOlxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6XG4gICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEhFQUQ6XG4gICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRSKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5UYWJsZUJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luUm93KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UUikpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCgpO1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQUJMRToge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRSKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEhFQUQ6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUodG9rZW4udGFnSUQpIHx8IHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRSKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CT0RZOlxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTDpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOlxuICAgICAgICBjYXNlICQuSFRNTDpcbiAgICAgICAgY2FzZSAkLlREOlxuICAgICAgICBjYXNlICQuVEg6IHtcbiAgICAgICAgICAgIC8vIElnbm9yZSBlbmQgdGFnXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBlbmRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIFRoZSBcImluIGNlbGxcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5DZWxsKHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAoVEFCTEVfVk9JRF9FTEVNRU5UUy5oYXModG4pKSB7XG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5URCkgfHwgcC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuVEgpKSB7XG4gICAgICAgICAgICBwLl9jbG9zZVRhYmxlQ2VsbCgpO1xuICAgICAgICAgICAgc3RhcnRUYWdJblJvdyhwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJbkNlbGwocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIHN3aXRjaCAodG4pIHtcbiAgICAgICAgY2FzZSAkLlREOlxuICAgICAgICBjYXNlICQuVEg6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUodG4pKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCh0bik7XG4gICAgICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICAgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1JPVztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQUJMRTpcbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEZPT1Q6XG4gICAgICAgIGNhc2UgJC5USEVBRDpcbiAgICAgICAgY2FzZSAkLlRSOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKHRuKSkge1xuICAgICAgICAgICAgICAgIHAuX2Nsb3NlVGFibGVDZWxsKCk7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5Sb3cocCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJPRFk6XG4gICAgICAgIGNhc2UgJC5DQVBUSU9OOlxuICAgICAgICBjYXNlICQuQ09MOlxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgdG9rZW5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGVuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBUaGUgXCJpbiBzZWxlY3RcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5TZWxlY3QocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuT1BUSU9OOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVElPTikge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuT1BUR1JPVVA6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgPT09ICQuT1BUSU9OKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVEdST1VQKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5IUjoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCA9PT0gJC5PUFRJT04pIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgPT09ICQuT1BUR1JPVVApIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLklOUFVUOlxuICAgICAgICBjYXNlICQuS0VZR0VOOlxuICAgICAgICBjYXNlICQuVEVYVEFSRUE6XG4gICAgICAgIGNhc2UgJC5TRUxFQ1Q6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNlbGVjdFNjb3BlKCQuU0VMRUNUKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlNFTEVDVCk7XG4gICAgICAgICAgICAgICAgcC5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7XG4gICAgICAgICAgICAgICAgaWYgKHRva2VuLnRhZ0lEICE9PSAkLlNFTEVDVCkge1xuICAgICAgICAgICAgICAgICAgICBwLl9wcm9jZXNzU3RhcnRUYWcodG9rZW4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5TQ1JJUFQ6XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luU2VsZWN0KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuT1BUR1JPVVA6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5zdGFja1RvcCA+IDAgJiZcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgPT09ICQuT1BUSU9OICYmXG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMudGFnSURzW3Aub3BlbkVsZW1lbnRzLnN0YWNrVG9wIC0gMV0gPT09ICQuT1BUR1JPVVApIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgPT09ICQuT1BUR1JPVVApIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5PUFRJT046IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgPT09ICQuT1BUSU9OKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuU0VMRUNUOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TZWxlY3RTY29wZSgkLlNFTEVDVCkpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5TRUxFQ1QpO1xuICAgICAgICAgICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICB0ZW1wbGF0ZUVuZFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgfVxufVxuLy8gVGhlIFwiaW4gc2VsZWN0IGluIHRhYmxlXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luU2VsZWN0SW5UYWJsZShwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKHRuID09PSAkLkNBUFRJT04gfHxcbiAgICAgICAgdG4gPT09ICQuVEFCTEUgfHxcbiAgICAgICAgdG4gPT09ICQuVEJPRFkgfHxcbiAgICAgICAgdG4gPT09ICQuVEZPT1QgfHxcbiAgICAgICAgdG4gPT09ICQuVEhFQUQgfHxcbiAgICAgICAgdG4gPT09ICQuVFIgfHxcbiAgICAgICAgdG4gPT09ICQuVEQgfHxcbiAgICAgICAgdG4gPT09ICQuVEgpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuU0VMRUNUKTtcbiAgICAgICAgcC5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7XG4gICAgICAgIHAuX3Byb2Nlc3NTdGFydFRhZyh0b2tlbik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzdGFydFRhZ0luU2VsZWN0KHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJblNlbGVjdEluVGFibGUocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIGlmICh0biA9PT0gJC5DQVBUSU9OIHx8XG4gICAgICAgIHRuID09PSAkLlRBQkxFIHx8XG4gICAgICAgIHRuID09PSAkLlRCT0RZIHx8XG4gICAgICAgIHRuID09PSAkLlRGT09UIHx8XG4gICAgICAgIHRuID09PSAkLlRIRUFEIHx8XG4gICAgICAgIHRuID09PSAkLlRSIHx8XG4gICAgICAgIHRuID09PSAkLlREIHx8XG4gICAgICAgIHRuID09PSAkLlRIKSB7XG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUodG4pKSB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5TRUxFQ1QpO1xuICAgICAgICAgICAgcC5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7XG4gICAgICAgICAgICBwLm9uRW5kVGFnKHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgZW5kVGFnSW5TZWxlY3QocCwgdG9rZW4pO1xuICAgIH1cbn1cbi8vIFRoZSBcImluIHRlbXBsYXRlXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luVGVtcGxhdGUocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIC8vIEZpcnN0LCBoYW5kbGUgdGFncyB0aGF0IGNhbiBzdGFydCB3aXRob3V0IGEgbW9kZSBjaGFuZ2VcbiAgICAgICAgY2FzZSAkLkJBU0U6XG4gICAgICAgIGNhc2UgJC5CQVNFRk9OVDpcbiAgICAgICAgY2FzZSAkLkJHU09VTkQ6XG4gICAgICAgIGNhc2UgJC5MSU5LOlxuICAgICAgICBjYXNlICQuTUVUQTpcbiAgICAgICAgY2FzZSAkLk5PRlJBTUVTOlxuICAgICAgICBjYXNlICQuU0NSSVBUOlxuICAgICAgICBjYXNlICQuU1RZTEU6XG4gICAgICAgIGNhc2UgJC5URU1QTEFURTpcbiAgICAgICAgY2FzZSAkLlRJVExFOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICAvLyBSZS1wcm9jZXNzIHRoZSB0b2tlbiBpbiB0aGUgYXBwcm9wcmlhdGUgbW9kZVxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOlxuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIRUFEOiB7XG4gICAgICAgICAgICBwLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2tbMF0gPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ09MOiB7XG4gICAgICAgICAgICBwLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2tbMF0gPSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQO1xuICAgICAgICAgICAgc3RhcnRUYWdJbkNvbHVtbkdyb3VwKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgcC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrWzBdID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xuICAgICAgICAgICAgc3RhcnRUYWdJblRhYmxlQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEQ6XG4gICAgICAgIGNhc2UgJC5USDoge1xuICAgICAgICAgICAgcC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrWzBdID0gSW5zZXJ0aW9uTW9kZS5JTl9ST1c7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1JPVztcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Sb3cocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgcC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrWzBdID0gSW5zZXJ0aW9uTW9kZS5JTl9CT0RZO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9CT0RZO1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5UZW1wbGF0ZShwLCB0b2tlbikge1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5URU1QTEFURSkge1xuICAgICAgICB0ZW1wbGF0ZUVuZFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gZW9mSW5UZW1wbGF0ZShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy50bXBsQ291bnQgPiAwKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlRFTVBMQVRFKTtcbiAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICAgICAgcC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrLnNoaWZ0KCk7XG4gICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgICAgICBwLm9uRW9mKHRva2VuKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHN0b3BQYXJzaW5nKHAsIHRva2VuKTtcbiAgICB9XG59XG4vLyBUaGUgXCJhZnRlciBib2R5XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0FmdGVyQm9keShwLCB0b2tlbikge1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5IVE1MKSB7XG4gICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRva2VuQWZ0ZXJCb2R5KHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdBZnRlckJvZHkocCwgdG9rZW4pIHtcbiAgICB2YXIgX2E7XG4gICAgaWYgKHRva2VuLnRhZ0lEID09PSAkLkhUTUwpIHtcbiAgICAgICAgaWYgKCFwLmZyYWdtZW50Q29udGV4dCkge1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZO1xuICAgICAgICB9XG4gICAgICAgIC8vTk9URTogPGh0bWw+IGlzIG5ldmVyIHBvcHBlZCBmcm9tIHRoZSBzdGFjaywgc28gd2UgbmVlZCB0byB1cGRhdGVkXG4gICAgICAgIC8vdGhlIGVuZCBsb2NhdGlvbiBleHBsaWNpdGx5LlxuICAgICAgICBpZiAocC5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8gJiYgcC5vcGVuRWxlbWVudHMudGFnSURzWzBdID09PSAkLkhUTUwpIHtcbiAgICAgICAgICAgIHAuX3NldEVuZExvY2F0aW9uKHAub3BlbkVsZW1lbnRzLml0ZW1zWzBdLCB0b2tlbik7XG4gICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGJvZHkgZWxlbWVudCwgaWYgaXQgZG9lc24ndCBoYXZlIGFuIGVuZCB0YWdcbiAgICAgICAgICAgIGNvbnN0IGJvZHlFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuaXRlbXNbMV07XG4gICAgICAgICAgICBpZiAoYm9keUVsZW1lbnQgJiYgISgoX2EgPSBwLnRyZWVBZGFwdGVyLmdldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24oYm9keUVsZW1lbnQpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZW5kVGFnKSkge1xuICAgICAgICAgICAgICAgIHAuX3NldEVuZExvY2F0aW9uKGJvZHlFbGVtZW50LCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRva2VuQWZ0ZXJCb2R5KHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiB0b2tlbkFmdGVyQm9keShwLCB0b2tlbikge1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQk9EWTtcbiAgICBtb2RlSW5Cb2R5KHAsIHRva2VuKTtcbn1cbi8vIFRoZSBcImluIGZyYW1lc2V0XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luRnJhbWVzZXQocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkZSQU1FOiB7XG4gICAgICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5OT0ZSQU1FUzoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luRnJhbWVzZXQocCwgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuRlJBTUVTRVQgJiYgIXAub3BlbkVsZW1lbnRzLmlzUm9vdEh0bWxFbGVtZW50Q3VycmVudCgpKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICBpZiAoIXAuZnJhZ21lbnRDb250ZXh0ICYmIHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCAhPT0gJC5GUkFNRVNFVCkge1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5BRlRFUl9GUkFNRVNFVDtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIFRoZSBcImFmdGVyIGZyYW1lc2V0XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0FmdGVyRnJhbWVzZXQocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTk9GUkFNRVM6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdBZnRlckZyYW1lc2V0KHAsIHRva2VuKSB7XG4gICAgaWYgKHRva2VuLnRhZ0lEID09PSAkLkhUTUwpIHtcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9GUkFNRVNFVDtcbiAgICB9XG59XG4vLyBUaGUgXCJhZnRlciBhZnRlciBib2R5XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0FmdGVyQWZ0ZXJCb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHRva2VuLnRhZ0lEID09PSAkLkhUTUwpIHtcbiAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdG9rZW5BZnRlckFmdGVyQm9keShwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5BZnRlckFmdGVyQm9keShwLCB0b2tlbikge1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQk9EWTtcbiAgICBtb2RlSW5Cb2R5KHAsIHRva2VuKTtcbn1cbi8vIFRoZSBcImFmdGVyIGFmdGVyIGZyYW1lc2V0XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0FmdGVyQWZ0ZXJGcmFtZXNldChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5OT0ZSQU1FUzoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgIH1cbn1cbi8vIFRoZSBydWxlcyBmb3IgcGFyc2luZyB0b2tlbnMgaW4gZm9yZWlnbiBjb250ZW50XG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gbnVsbENoYXJhY3RlckluRm9yZWlnbkNvbnRlbnQocCwgdG9rZW4pIHtcbiAgICB0b2tlbi5jaGFycyA9IHVuaWNvZGUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgIHAuX2luc2VydENoYXJhY3RlcnModG9rZW4pO1xufVxuZnVuY3Rpb24gY2hhcmFjdGVySW5Gb3JlaWduQ29udGVudChwLCB0b2tlbikge1xuICAgIHAuX2luc2VydENoYXJhY3RlcnModG9rZW4pO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xufVxuZnVuY3Rpb24gcG9wVW50aWxIdG1sT3JJbnRlZ3JhdGlvblBvaW50KHApIHtcbiAgICB3aGlsZSAocC50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkocC5vcGVuRWxlbWVudHMuY3VycmVudCkgIT09IE5TLkhUTUwgJiZcbiAgICAgICAgIXAuX2lzSW50ZWdyYXRpb25Qb2ludChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQsIHAub3BlbkVsZW1lbnRzLmN1cnJlbnQpKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5Gb3JlaWduQ29udGVudChwLCB0b2tlbikge1xuICAgIGlmIChmb3JlaWduQ29udGVudC5jYXVzZXNFeGl0KHRva2VuKSkge1xuICAgICAgICBwb3BVbnRpbEh0bWxPckludGVncmF0aW9uUG9pbnQocCk7XG4gICAgICAgIHAuX3N0YXJ0VGFnT3V0c2lkZUZvcmVpZ25Db250ZW50KHRva2VuKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnQgPSBwLl9nZXRBZGp1c3RlZEN1cnJlbnRFbGVtZW50KCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnROcyA9IHAudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGN1cnJlbnQpO1xuICAgICAgICBpZiAoY3VycmVudE5zID09PSBOUy5NQVRITUwpIHtcbiAgICAgICAgICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuTWF0aE1MQXR0cnModG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGN1cnJlbnROcyA9PT0gTlMuU1ZHKSB7XG4gICAgICAgICAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlblNWR1RhZ05hbWUodG9rZW4pO1xuICAgICAgICAgICAgZm9yZWlnbkNvbnRlbnQuYWRqdXN0VG9rZW5TVkdBdHRycyh0b2tlbik7XG4gICAgICAgIH1cbiAgICAgICAgZm9yZWlnbkNvbnRlbnQuYWRqdXN0VG9rZW5YTUxBdHRycyh0b2tlbik7XG4gICAgICAgIGlmICh0b2tlbi5zZWxmQ2xvc2luZykge1xuICAgICAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgY3VycmVudE5zKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIGN1cnJlbnROcyk7XG4gICAgICAgIH1cbiAgICAgICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luRm9yZWlnbkNvbnRlbnQocCwgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuUCB8fCB0b2tlbi50YWdJRCA9PT0gJC5CUikge1xuICAgICAgICBwb3BVbnRpbEh0bWxPckludGVncmF0aW9uUG9pbnQocCk7XG4gICAgICAgIHAuX2VuZFRhZ091dHNpZGVGb3JlaWduQ29udGVudCh0b2tlbik7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID4gMDsgaS0tKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5pdGVtc1tpXTtcbiAgICAgICAgaWYgKHAudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnQpID09PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICBwLl9lbmRUYWdPdXRzaWRlRm9yZWlnbkNvbnRlbnQodG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGFnTmFtZSA9IHAudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbGVtZW50KTtcbiAgICAgICAgaWYgKHRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gdG9rZW4udGFnTmFtZSkge1xuICAgICAgICAgICAgLy9OT1RFOiB1cGRhdGUgdGhlIHRva2VuIHRhZyBuYW1lIGZvciBgX3NldEVuZExvY2F0aW9uYC5cbiAgICAgICAgICAgIHRva2VuLnRhZ05hbWUgPSB0YWdOYW1lO1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuc2hvcnRlblRvTGVuZ3RoKGkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCBudWxsLCAiaW1wb3J0IHsgVEFHX05BTUVTIGFzICQsIE5TLCBoYXNVbmVzY2FwZWRUZXh0IH0gZnJvbSAnLi4vY29tbW9uL2h0bWwuanMnO1xuaW1wb3J0IHsgZXNjYXBlVGV4dCwgZXNjYXBlQXR0cmlidXRlIH0gZnJvbSAnZW50aXRpZXMvbGliL2VzY2FwZS5qcyc7XG5pbXBvcnQgeyBkZWZhdWx0VHJlZUFkYXB0ZXIgfSBmcm9tICcuLi90cmVlLWFkYXB0ZXJzL2RlZmF1bHQuanMnO1xuLy8gU2V0c1xuY29uc3QgVk9JRF9FTEVNRU5UUyA9IG5ldyBTZXQoW1xuICAgICQuQVJFQSxcbiAgICAkLkJBU0UsXG4gICAgJC5CQVNFRk9OVCxcbiAgICAkLkJHU09VTkQsXG4gICAgJC5CUixcbiAgICAkLkNPTCxcbiAgICAkLkVNQkVELFxuICAgICQuRlJBTUUsXG4gICAgJC5IUixcbiAgICAkLklNRyxcbiAgICAkLklOUFVULFxuICAgICQuS0VZR0VOLFxuICAgICQuTElOSyxcbiAgICAkLk1FVEEsXG4gICAgJC5QQVJBTSxcbiAgICAkLlNPVVJDRSxcbiAgICAkLlRSQUNLLFxuICAgICQuV0JSLFxuXSk7XG5mdW5jdGlvbiBpc1ZvaWRFbGVtZW50KG5vZGUsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gKG9wdGlvbnMudHJlZUFkYXB0ZXIuaXNFbGVtZW50Tm9kZShub2RlKSAmJlxuICAgICAgICBvcHRpb25zLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShub2RlKSA9PT0gTlMuSFRNTCAmJlxuICAgICAgICBWT0lEX0VMRU1FTlRTLmhhcyhvcHRpb25zLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUobm9kZSkpKTtcbn1cbmNvbnN0IGRlZmF1bHRPcHRzID0geyB0cmVlQWRhcHRlcjogZGVmYXVsdFRyZWVBZGFwdGVyLCBzY3JpcHRpbmdFbmFibGVkOiB0cnVlIH07XG4vKipcbiAqIFNlcmlhbGl6ZXMgYW4gQVNUIG5vZGUgdG8gYW4gSFRNTCBzdHJpbmcuXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogY29uc3QgcGFyc2U1ID0gcmVxdWlyZSgncGFyc2U1Jyk7XG4gKlxuICogY29uc3QgZG9jdW1lbnQgPSBwYXJzZTUucGFyc2UoJzwhRE9DVFlQRSBodG1sPjxodG1sPjxoZWFkPjwvaGVhZD48Ym9keT5IaSB0aGVyZSE8L2JvZHk+PC9odG1sPicpO1xuICpcbiAqIC8vIFNlcmlhbGl6ZXMgYSBkb2N1bWVudC5cbiAqIGNvbnN0IGh0bWwgPSBwYXJzZTUuc2VyaWFsaXplKGRvY3VtZW50KTtcbiAqXG4gKiAvLyBTZXJpYWxpemVzIHRoZSA8aHRtbD4gZWxlbWVudCBjb250ZW50LlxuICogY29uc3Qgc3RyID0gcGFyc2U1LnNlcmlhbGl6ZShkb2N1bWVudC5jaGlsZE5vZGVzWzFdKTtcbiAqXG4gKiBjb25zb2xlLmxvZyhzdHIpOyAvLz4gJzxoZWFkPjwvaGVhZD48Ym9keT5IaSB0aGVyZSE8L2JvZHk+J1xuICogYGBgXG4gKlxuICogQHBhcmFtIG5vZGUgTm9kZSB0byBzZXJpYWxpemUuXG4gKiBAcGFyYW0gb3B0aW9ucyBTZXJpYWxpemF0aW9uIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemUobm9kZSwgb3B0aW9ucykge1xuICAgIGNvbnN0IG9wdHMgPSB7IC4uLmRlZmF1bHRPcHRzLCAuLi5vcHRpb25zIH07XG4gICAgaWYgKGlzVm9pZEVsZW1lbnQobm9kZSwgb3B0cykpIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICByZXR1cm4gc2VyaWFsaXplQ2hpbGROb2Rlcyhub2RlLCBvcHRzKTtcbn1cbi8qKlxuICogU2VyaWFsaXplcyBhbiBBU1QgZWxlbWVudCBub2RlIHRvIGFuIEhUTUwgc3RyaW5nLCBpbmNsdWRpbmcgdGhlIGVsZW1lbnQgbm9kZS5cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiBjb25zdCBwYXJzZTUgPSByZXF1aXJlKCdwYXJzZTUnKTtcbiAqXG4gKiBjb25zdCBkb2N1bWVudCA9IHBhcnNlNS5wYXJzZUZyYWdtZW50KCc8ZGl2PkhlbGxvLCA8Yj53b3JsZDwvYj4hPC9kaXY+Jyk7XG4gKlxuICogLy8gU2VyaWFsaXplcyB0aGUgPGRpdj4gZWxlbWVudC5cbiAqIGNvbnN0IHN0ciA9IHBhcnNlNS5zZXJpYWxpemVPdXRlcihkb2N1bWVudC5jaGlsZE5vZGVzWzBdKTtcbiAqXG4gKiBjb25zb2xlLmxvZyhzdHIpOyAvLz4gJzxkaXY+SGVsbG8sIDxiPndvcmxkPC9iPiE8L2Rpdj4nXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gbm9kZSBOb2RlIHRvIHNlcmlhbGl6ZS5cbiAqIEBwYXJhbSBvcHRpb25zIFNlcmlhbGl6YXRpb24gb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZU91dGVyKG5vZGUsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBvcHRzID0geyAuLi5kZWZhdWx0T3B0cywgLi4ub3B0aW9ucyB9O1xuICAgIHJldHVybiBzZXJpYWxpemVOb2RlKG5vZGUsIG9wdHMpO1xufVxuZnVuY3Rpb24gc2VyaWFsaXplQ2hpbGROb2RlcyhwYXJlbnROb2RlLCBvcHRpb25zKSB7XG4gICAgbGV0IGh0bWwgPSAnJztcbiAgICAvLyBHZXQgY29udGFpbmVyIG9mIHRoZSBjaGlsZCBub2Rlc1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IG9wdGlvbnMudHJlZUFkYXB0ZXIuaXNFbGVtZW50Tm9kZShwYXJlbnROb2RlKSAmJlxuICAgICAgICBvcHRpb25zLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUocGFyZW50Tm9kZSkgPT09ICQuVEVNUExBVEUgJiZcbiAgICAgICAgb3B0aW9ucy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkocGFyZW50Tm9kZSkgPT09IE5TLkhUTUxcbiAgICAgICAgPyBvcHRpb25zLnRyZWVBZGFwdGVyLmdldFRlbXBsYXRlQ29udGVudChwYXJlbnROb2RlKVxuICAgICAgICA6IHBhcmVudE5vZGU7XG4gICAgY29uc3QgY2hpbGROb2RlcyA9IG9wdGlvbnMudHJlZUFkYXB0ZXIuZ2V0Q2hpbGROb2Rlcyhjb250YWluZXIpO1xuICAgIGlmIChjaGlsZE5vZGVzKSB7XG4gICAgICAgIGZvciAoY29uc3QgY3VycmVudE5vZGUgb2YgY2hpbGROb2Rlcykge1xuICAgICAgICAgICAgaHRtbCArPSBzZXJpYWxpemVOb2RlKGN1cnJlbnROb2RlLCBvcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaHRtbDtcbn1cbmZ1bmN0aW9uIHNlcmlhbGl6ZU5vZGUobm9kZSwgb3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zLnRyZWVBZGFwdGVyLmlzRWxlbWVudE5vZGUobm9kZSkpIHtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZUVsZW1lbnQobm9kZSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnRyZWVBZGFwdGVyLmlzVGV4dE5vZGUobm9kZSkpIHtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVRleHROb2RlKG5vZGUsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy50cmVlQWRhcHRlci5pc0NvbW1lbnROb2RlKG5vZGUpKSB7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVDb21tZW50Tm9kZShub2RlLCBvcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMudHJlZUFkYXB0ZXIuaXNEb2N1bWVudFR5cGVOb2RlKG5vZGUpKSB7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVEb2N1bWVudFR5cGVOb2RlKG5vZGUsIG9wdGlvbnMpO1xuICAgIH1cbiAgICAvLyBSZXR1cm4gYW4gZW1wdHkgc3RyaW5nIGZvciB1bmtub3duIG5vZGVzXG4gICAgcmV0dXJuICcnO1xufVxuZnVuY3Rpb24gc2VyaWFsaXplRWxlbWVudChub2RlLCBvcHRpb25zKSB7XG4gICAgY29uc3QgdG4gPSBvcHRpb25zLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUobm9kZSk7XG4gICAgcmV0dXJuIGA8JHt0bn0ke3NlcmlhbGl6ZUF0dHJpYnV0ZXMobm9kZSwgb3B0aW9ucyl9PiR7aXNWb2lkRWxlbWVudChub2RlLCBvcHRpb25zKSA/ICcnIDogYCR7c2VyaWFsaXplQ2hpbGROb2Rlcyhub2RlLCBvcHRpb25zKX08LyR7dG59PmB9YDtcbn1cbmZ1bmN0aW9uIHNlcmlhbGl6ZUF0dHJpYnV0ZXMobm9kZSwgeyB0cmVlQWRhcHRlciB9KSB7XG4gICAgbGV0IGh0bWwgPSAnJztcbiAgICBmb3IgKGNvbnN0IGF0dHIgb2YgdHJlZUFkYXB0ZXIuZ2V0QXR0ckxpc3Qobm9kZSkpIHtcbiAgICAgICAgaHRtbCArPSAnICc7XG4gICAgICAgIGlmIChhdHRyLm5hbWVzcGFjZSkge1xuICAgICAgICAgICAgc3dpdGNoIChhdHRyLm5hbWVzcGFjZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgTlMuWE1MOiB7XG4gICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gYHhtbDoke2F0dHIubmFtZX1gO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBOUy5YTUxOUzoge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYXR0ci5uYW1lICE9PSAneG1sbnMnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBodG1sICs9ICd4bWxuczonO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gYXR0ci5uYW1lO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBOUy5YTElOSzoge1xuICAgICAgICAgICAgICAgICAgICBodG1sICs9IGB4bGluazoke2F0dHIubmFtZX1gO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgICAgICBodG1sICs9IGAke2F0dHIucHJlZml4fToke2F0dHIubmFtZX1gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGh0bWwgKz0gYXR0ci5uYW1lO1xuICAgICAgICB9XG4gICAgICAgIGh0bWwgKz0gYD1cIiR7ZXNjYXBlQXR0cmlidXRlKGF0dHIudmFsdWUpfVwiYDtcbiAgICB9XG4gICAgcmV0dXJuIGh0bWw7XG59XG5mdW5jdGlvbiBzZXJpYWxpemVUZXh0Tm9kZShub2RlLCBvcHRpb25zKSB7XG4gICAgY29uc3QgeyB0cmVlQWRhcHRlciB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBjb250ZW50ID0gdHJlZUFkYXB0ZXIuZ2V0VGV4dE5vZGVDb250ZW50KG5vZGUpO1xuICAgIGNvbnN0IHBhcmVudCA9IHRyZWVBZGFwdGVyLmdldFBhcmVudE5vZGUobm9kZSk7XG4gICAgY29uc3QgcGFyZW50VG4gPSBwYXJlbnQgJiYgdHJlZUFkYXB0ZXIuaXNFbGVtZW50Tm9kZShwYXJlbnQpICYmIHRyZWVBZGFwdGVyLmdldFRhZ05hbWUocGFyZW50KTtcbiAgICByZXR1cm4gcGFyZW50VG4gJiZcbiAgICAgICAgdHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHBhcmVudCkgPT09IE5TLkhUTUwgJiZcbiAgICAgICAgaGFzVW5lc2NhcGVkVGV4dChwYXJlbnRUbiwgb3B0aW9ucy5zY3JpcHRpbmdFbmFibGVkKVxuICAgICAgICA/IGNvbnRlbnRcbiAgICAgICAgOiBlc2NhcGVUZXh0KGNvbnRlbnQpO1xufVxuZnVuY3Rpb24gc2VyaWFsaXplQ29tbWVudE5vZGUobm9kZSwgeyB0cmVlQWRhcHRlciB9KSB7XG4gICAgcmV0dXJuIGA8IS0tJHt0cmVlQWRhcHRlci5nZXRDb21tZW50Tm9kZUNvbnRlbnQobm9kZSl9LS0+YDtcbn1cbmZ1bmN0aW9uIHNlcmlhbGl6ZURvY3VtZW50VHlwZU5vZGUobm9kZSwgeyB0cmVlQWRhcHRlciB9KSB7XG4gICAgcmV0dXJuIGA8IURPQ1RZUEUgJHt0cmVlQWRhcHRlci5nZXREb2N1bWVudFR5cGVOb2RlTmFtZShub2RlKX0+YDtcbn1cbiIsICJpbXBvcnQgeyBQYXJzZXIgfSBmcm9tICcuL3BhcnNlci9pbmRleC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0VHJlZUFkYXB0ZXIgfSBmcm9tICcuL3RyZWUtYWRhcHRlcnMvZGVmYXVsdC5qcyc7XG5leHBvcnQgeyAvKiogQGludGVybmFsICovIFBhcnNlciB9IGZyb20gJy4vcGFyc2VyL2luZGV4LmpzJztcbmV4cG9ydCB7IHNlcmlhbGl6ZSwgc2VyaWFsaXplT3V0ZXIgfSBmcm9tICcuL3NlcmlhbGl6ZXIvaW5kZXguanMnO1xuZXhwb3J0IHsgRVJSIGFzIEVycm9yQ29kZXMgfSBmcm9tICcuL2NvbW1vbi9lcnJvci1jb2Rlcy5qcyc7XG4vKiogQGludGVybmFsICovXG5leHBvcnQgKiBhcyBmb3JlaWduQ29udGVudCBmcm9tICcuL2NvbW1vbi9mb3JlaWduLWNvbnRlbnQuanMnO1xuZXhwb3J0ICogYXMgaHRtbCBmcm9tICcuL2NvbW1vbi9odG1sLmpzJztcbmV4cG9ydCAqIGFzIFRva2VuIGZyb20gJy4vY29tbW9uL3Rva2VuLmpzJztcbi8qKiBAaW50ZXJuYWwgKi9cbmV4cG9ydCB7IFRva2VuaXplciwgVG9rZW5pemVyTW9kZSB9IGZyb20gJy4vdG9rZW5pemVyL2luZGV4LmpzJztcbi8vIFNob3J0aGFuZHNcbi8qKlxuICogUGFyc2VzIGFuIEhUTUwgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSBodG1sIElucHV0IEhUTUwgc3RyaW5nLlxuICogQHBhcmFtIG9wdGlvbnMgUGFyc2luZyBvcHRpb25zLlxuICogQHJldHVybnMgRG9jdW1lbnRcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiBjb25zdCBwYXJzZTUgPSByZXF1aXJlKCdwYXJzZTUnKTtcbiAqXG4gKiBjb25zdCBkb2N1bWVudCA9IHBhcnNlNS5wYXJzZSgnPCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PkhpIHRoZXJlITwvYm9keT48L2h0bWw+Jyk7XG4gKlxuICogY29uc29sZS5sb2coZG9jdW1lbnQuY2hpbGROb2Rlc1sxXS50YWdOYW1lKTsgLy8+ICdodG1sJ1xuICpgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlKGh0bWwsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gUGFyc2VyLnBhcnNlKGh0bWwsIG9wdGlvbnMpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRnJhZ21lbnQoZnJhZ21lbnRDb250ZXh0LCBodG1sLCBvcHRpb25zKSB7XG4gICAgaWYgKHR5cGVvZiBmcmFnbWVudENvbnRleHQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIG9wdGlvbnMgPSBodG1sO1xuICAgICAgICBodG1sID0gZnJhZ21lbnRDb250ZXh0O1xuICAgICAgICBmcmFnbWVudENvbnRleHQgPSBudWxsO1xuICAgIH1cbiAgICBjb25zdCBwYXJzZXIgPSBQYXJzZXIuZ2V0RnJhZ21lbnRQYXJzZXIoZnJhZ21lbnRDb250ZXh0LCBvcHRpb25zKTtcbiAgICBwYXJzZXIudG9rZW5pemVyLndyaXRlKGh0bWwsIHRydWUpO1xuICAgIHJldHVybiBwYXJzZXIuZ2V0RnJhZ21lbnQoKTtcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuTm9kZX0gTm9kZVxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb2ludH0gUG9pbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUG9zaXRpb259IFBvc2l0aW9uXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiBOb2RlTGlrZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IHR5cGVcbiAqIEBwcm9wZXJ0eSB7UG9zaXRpb25MaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3Bvc2l0aW9uXVxuICpcbiAqIEB0eXBlZGVmIFBvaW50TGlrZVxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbbGluZV1cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2NvbHVtbl1cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29mZnNldF1cbiAqXG4gKiBAdHlwZWRlZiBQb3NpdGlvbkxpa2VcbiAqIEBwcm9wZXJ0eSB7UG9pbnRMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3N0YXJ0XVxuICogQHByb3BlcnR5IHtQb2ludExpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbZW5kXVxuICovXG5cbi8qKlxuICogU2VyaWFsaXplIHRoZSBwb3NpdGlvbmFsIGluZm8gb2YgYSBwb2ludCwgcG9zaXRpb24gKHN0YXJ0IGFuZCBlbmQgcG9pbnRzKSxcbiAqIG9yIG5vZGUuXG4gKlxuICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBQb2ludCB8IFBvaW50TGlrZSB8IFBvc2l0aW9uIHwgUG9zaXRpb25MaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3ZhbHVlXVxuICogICBOb2RlLCBwb3NpdGlvbiwgb3IgcG9pbnQuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBQcmV0dHkgcHJpbnRlZCBwb3NpdGlvbmFsIGluZm8gb2YgYSBub2RlIChgc3RyaW5nYCkuXG4gKlxuICogICBJbiB0aGUgZm9ybWF0IG9mIGEgcmFuZ2UgYGxzOmNzLWxlOmNlYCAod2hlbiBnaXZlbiBgbm9kZWAgb3IgYHBvc2l0aW9uYClcbiAqICAgb3IgYSBwb2ludCBgbDpjYCAod2hlbiBnaXZlbiBgcG9pbnRgKSwgd2hlcmUgYGxgIHN0YW5kcyBmb3IgbGluZSwgYGNgIGZvclxuICogICBjb2x1bW4sIGBzYCBmb3IgYHN0YXJ0YCwgYW5kIGBlYCBmb3IgZW5kLlxuICogICBBbiBlbXB0eSBzdHJpbmcgKGAnJ2ApIGlzIHJldHVybmVkIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyBuZWl0aGVyIGBub2RlYCxcbiAqICAgYHBvc2l0aW9uYCwgbm9yIGBwb2ludGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnlQb3NpdGlvbih2YWx1ZSkge1xuICAvLyBOb3RoaW5nLlxuICBpZiAoIXZhbHVlIHx8IHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIC8vIE5vZGUuXG4gIGlmICgncG9zaXRpb24nIGluIHZhbHVlIHx8ICd0eXBlJyBpbiB2YWx1ZSkge1xuICAgIHJldHVybiBwb3NpdGlvbih2YWx1ZS5wb3NpdGlvbilcbiAgfVxuXG4gIC8vIFBvc2l0aW9uLlxuICBpZiAoJ3N0YXJ0JyBpbiB2YWx1ZSB8fCAnZW5kJyBpbiB2YWx1ZSkge1xuICAgIHJldHVybiBwb3NpdGlvbih2YWx1ZSlcbiAgfVxuXG4gIC8vIFBvaW50LlxuICBpZiAoJ2xpbmUnIGluIHZhbHVlIHx8ICdjb2x1bW4nIGluIHZhbHVlKSB7XG4gICAgcmV0dXJuIHBvaW50KHZhbHVlKVxuICB9XG5cbiAgLy8gP1xuICByZXR1cm4gJydcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1BvaW50IHwgUG9pbnRMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gcG9pbnRcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIHBvaW50KHBvaW50KSB7XG4gIHJldHVybiBpbmRleChwb2ludCAmJiBwb2ludC5saW5lKSArICc6JyArIGluZGV4KHBvaW50ICYmIHBvaW50LmNvbHVtbilcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1Bvc2l0aW9uIHwgUG9zaXRpb25MaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gcG9zXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBwb3NpdGlvbihwb3MpIHtcbiAgcmV0dXJuIHBvaW50KHBvcyAmJiBwb3Muc3RhcnQpICsgJy0nICsgcG9pbnQocG9zICYmIHBvcy5lbmQpXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSB2YWx1ZVxuICogQHJldHVybnMge251bWJlcn1cbiAqL1xuZnVuY3Rpb24gaW5kZXgodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgPyB2YWx1ZSA6IDFcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuTm9kZX0gTm9kZVxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb2ludH0gUG9pbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUG9zaXRpb259IFBvc2l0aW9uXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0ICYge3R5cGU6IHN0cmluZywgcG9zaXRpb24/OiBQb3NpdGlvbiB8IHVuZGVmaW5lZH19IE5vZGVMaWtlXG4gKlxuICogQHR5cGVkZWYgT3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uLlxuICogQHByb3BlcnR5IHtBcnJheTxOb2RlPiB8IG51bGwgfCB1bmRlZmluZWR9IFthbmNlc3RvcnNdXG4gKiAgIFN0YWNrIG9mIChpbmNsdXNpdmUpIGFuY2VzdG9yIG5vZGVzIHN1cnJvdW5kaW5nIHRoZSBtZXNzYWdlIChvcHRpb25hbCkuXG4gKiBAcHJvcGVydHkge0Vycm9yIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2NhdXNlXVxuICogICBPcmlnaW5hbCBlcnJvciBjYXVzZSBvZiB0aGUgbWVzc2FnZSAob3B0aW9uYWwpLlxuICogQHByb3BlcnR5IHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3BsYWNlXVxuICogICBQbGFjZSBvZiBtZXNzYWdlIChvcHRpb25hbCkuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtydWxlSWRdXG4gKiAgIENhdGVnb3J5IG9mIG1lc3NhZ2UgKG9wdGlvbmFsLCBleGFtcGxlOiBgJ215LXJ1bGUnYCkuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtzb3VyY2VdXG4gKiAgIE5hbWVzcGFjZSBvZiB3aG8gc2VudCB0aGUgbWVzc2FnZSAob3B0aW9uYWwsIGV4YW1wbGU6IGAnbXktcGFja2FnZSdgKS5cbiAqL1xuXG5pbXBvcnQge3N0cmluZ2lmeVBvc2l0aW9ufSBmcm9tICd1bmlzdC11dGlsLXN0cmluZ2lmeS1wb3NpdGlvbidcblxuLyoqXG4gKiBNZXNzYWdlLlxuICovXG5leHBvcnQgY2xhc3MgVkZpbGVNZXNzYWdlIGV4dGVuZHMgRXJyb3Ige1xuICAvKipcbiAgICogQ3JlYXRlIGEgbWVzc2FnZSBmb3IgYHJlYXNvbmAuXG4gICAqXG4gICAqID4gXHVEODNFXHVERUE2ICoqTm90ZSoqOiBhbHNvIGhhcyBvYnNvbGV0ZSBzaWduYXR1cmVzLlxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge09wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAgICogQHJldHVybnNcbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge1BvaW50IHwgUG9zaXRpb24gfCBudWxsIHwgdW5kZWZpbmVkfSBwbGFjZVxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnNcbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7Tm9kZSB8IE5vZGVMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGFyZW50XG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnNcbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnNcbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnNcbiAgICpcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZSB8IHN0cmluZ30gY2F1c2VPclJlYXNvblxuICAgKiAgIFJlYXNvbiBmb3IgbWVzc2FnZSwgc2hvdWxkIHVzZSBtYXJrZG93bi5cbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBPcHRpb25zIHwgUG9pbnQgfCBQb3NpdGlvbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zT3JQYXJlbnRPclBsYWNlXVxuICAgKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiAgIFBsYWNlIGluIGNvZGUgd2hlcmUgdGhlIG1lc3NhZ2Ugb3JpZ2luYXRlcyAoZXhhbXBsZTpcbiAgICogICBgJ215LXBhY2thZ2U6bXktcnVsZSdgIG9yIGAnbXktcnVsZSdgKS5cbiAgICogQHJldHVybnNcbiAgICogICBJbnN0YW5jZSBvZiBgVkZpbGVNZXNzYWdlYC5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5XG4gIGNvbnN0cnVjdG9yKGNhdXNlT3JSZWFzb24sIG9wdGlvbnNPclBhcmVudE9yUGxhY2UsIG9yaWdpbikge1xuICAgIHN1cGVyKClcblxuICAgIGlmICh0eXBlb2Ygb3B0aW9uc09yUGFyZW50T3JQbGFjZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIG9yaWdpbiA9IG9wdGlvbnNPclBhcmVudE9yUGxhY2VcbiAgICAgIG9wdGlvbnNPclBhcmVudE9yUGxhY2UgPSB1bmRlZmluZWRcbiAgICB9XG5cbiAgICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgICBsZXQgcmVhc29uID0gJydcbiAgICAvKiogQHR5cGUge09wdGlvbnN9ICovXG4gICAgbGV0IG9wdGlvbnMgPSB7fVxuICAgIGxldCBsZWdhY3lDYXVzZSA9IGZhbHNlXG5cbiAgICBpZiAob3B0aW9uc09yUGFyZW50T3JQbGFjZSkge1xuICAgICAgLy8gUG9pbnQuXG4gICAgICBpZiAoXG4gICAgICAgICdsaW5lJyBpbiBvcHRpb25zT3JQYXJlbnRPclBsYWNlICYmXG4gICAgICAgICdjb2x1bW4nIGluIG9wdGlvbnNPclBhcmVudE9yUGxhY2VcbiAgICAgICkge1xuICAgICAgICBvcHRpb25zID0ge3BsYWNlOiBvcHRpb25zT3JQYXJlbnRPclBsYWNlfVxuICAgICAgfVxuICAgICAgLy8gUG9zaXRpb24uXG4gICAgICBlbHNlIGlmIChcbiAgICAgICAgJ3N0YXJ0JyBpbiBvcHRpb25zT3JQYXJlbnRPclBsYWNlICYmXG4gICAgICAgICdlbmQnIGluIG9wdGlvbnNPclBhcmVudE9yUGxhY2VcbiAgICAgICkge1xuICAgICAgICBvcHRpb25zID0ge3BsYWNlOiBvcHRpb25zT3JQYXJlbnRPclBsYWNlfVxuICAgICAgfVxuICAgICAgLy8gTm9kZS5cbiAgICAgIGVsc2UgaWYgKCd0eXBlJyBpbiBvcHRpb25zT3JQYXJlbnRPclBsYWNlKSB7XG4gICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgYW5jZXN0b3JzOiBbb3B0aW9uc09yUGFyZW50T3JQbGFjZV0sXG4gICAgICAgICAgcGxhY2U6IG9wdGlvbnNPclBhcmVudE9yUGxhY2UucG9zaXRpb25cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gT3B0aW9ucy5cbiAgICAgIGVsc2Uge1xuICAgICAgICBvcHRpb25zID0gey4uLm9wdGlvbnNPclBhcmVudE9yUGxhY2V9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBjYXVzZU9yUmVhc29uID09PSAnc3RyaW5nJykge1xuICAgICAgcmVhc29uID0gY2F1c2VPclJlYXNvblxuICAgIH1cbiAgICAvLyBFcnJvci5cbiAgICBlbHNlIGlmICghb3B0aW9ucy5jYXVzZSAmJiBjYXVzZU9yUmVhc29uKSB7XG4gICAgICBsZWdhY3lDYXVzZSA9IHRydWVcbiAgICAgIHJlYXNvbiA9IGNhdXNlT3JSZWFzb24ubWVzc2FnZVxuICAgICAgb3B0aW9ucy5jYXVzZSA9IGNhdXNlT3JSZWFzb25cbiAgICB9XG5cbiAgICBpZiAoIW9wdGlvbnMucnVsZUlkICYmICFvcHRpb25zLnNvdXJjZSAmJiB0eXBlb2Ygb3JpZ2luID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgaW5kZXggPSBvcmlnaW4uaW5kZXhPZignOicpXG5cbiAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgb3B0aW9ucy5ydWxlSWQgPSBvcmlnaW5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9wdGlvbnMuc291cmNlID0gb3JpZ2luLnNsaWNlKDAsIGluZGV4KVxuICAgICAgICBvcHRpb25zLnJ1bGVJZCA9IG9yaWdpbi5zbGljZShpbmRleCArIDEpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFvcHRpb25zLnBsYWNlICYmIG9wdGlvbnMuYW5jZXN0b3JzICYmIG9wdGlvbnMuYW5jZXN0b3JzKSB7XG4gICAgICBjb25zdCBwYXJlbnQgPSBvcHRpb25zLmFuY2VzdG9yc1tvcHRpb25zLmFuY2VzdG9ycy5sZW5ndGggLSAxXVxuXG4gICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgIG9wdGlvbnMucGxhY2UgPSBwYXJlbnQucG9zaXRpb25cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzdGFydCA9XG4gICAgICBvcHRpb25zLnBsYWNlICYmICdzdGFydCcgaW4gb3B0aW9ucy5wbGFjZVxuICAgICAgICA/IG9wdGlvbnMucGxhY2Uuc3RhcnRcbiAgICAgICAgOiBvcHRpb25zLnBsYWNlXG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtZXhwcmVzc2lvbnMgKi9cbiAgICAvKipcbiAgICAgKiBTdGFjayBvZiBhbmNlc3RvciBub2RlcyBzdXJyb3VuZGluZyB0aGUgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtBcnJheTxOb2RlPiB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmFuY2VzdG9ycyA9IG9wdGlvbnMuYW5jZXN0b3JzIHx8IHVuZGVmaW5lZFxuXG4gICAgLyoqXG4gICAgICogT3JpZ2luYWwgZXJyb3IgY2F1c2Ugb2YgdGhlIG1lc3NhZ2UuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7RXJyb3IgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5jYXVzZSA9IG9wdGlvbnMuY2F1c2UgfHwgdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBTdGFydGluZyBjb2x1bW4gb2YgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtudW1iZXIgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5jb2x1bW4gPSBzdGFydCA/IHN0YXJ0LmNvbHVtbiA6IHVuZGVmaW5lZFxuXG4gICAgLyoqXG4gICAgICogU3RhdGUgb2YgcHJvYmxlbS5cbiAgICAgKlxuICAgICAqICogYHRydWVgIFx1MjAxNCBlcnJvciwgZmlsZSBub3QgdXNhYmxlXG4gICAgICogKiBgZmFsc2VgIFx1MjAxNCB3YXJuaW5nLCBjaGFuZ2UgbWF5IGJlIG5lZWRlZFxuICAgICAqICogYHVuZGVmaW5lZGAgXHUyMDE0IGNoYW5nZSBsaWtlbHkgbm90IG5lZWRlZFxuICAgICAqXG4gICAgICogQHR5cGUge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMuZmF0YWwgPSB1bmRlZmluZWRcblxuICAgIC8qKlxuICAgICAqIFBhdGggb2YgYSBmaWxlICh1c2VkIHRocm91Z2hvdXQgdGhlIGBWRmlsZWAgZWNvc3lzdGVtKS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5maWxlXG5cbiAgICAvLyBGaWVsZCBmcm9tIGBFcnJvcmAuXG4gICAgLyoqXG4gICAgICogUmVhc29uIGZvciBtZXNzYWdlLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLm1lc3NhZ2UgPSByZWFzb25cblxuICAgIC8qKlxuICAgICAqIFN0YXJ0aW5nIGxpbmUgb2YgZXJyb3IuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7bnVtYmVyIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMubGluZSA9IHN0YXJ0ID8gc3RhcnQubGluZSA6IHVuZGVmaW5lZFxuXG4gICAgLy8gRmllbGQgZnJvbSBgRXJyb3JgLlxuICAgIC8qKlxuICAgICAqIFNlcmlhbGl6ZWQgcG9zaXRpb25hbCBpbmZvIG9mIG1lc3NhZ2UuXG4gICAgICpcbiAgICAgKiBPbiBub3JtYWwgZXJyb3JzLCB0aGlzIHdvdWxkIGJlIHNvbWV0aGluZyBsaWtlIGBQYXJzZUVycm9yYCwgYnVpdCBpblxuICAgICAqIGBWRmlsZWAgbWVzc2FnZXMgd2UgdXNlIHRoaXMgc3BhY2UgdG8gc2hvdyB3aGVyZSBhbiBlcnJvciBoYXBwZW5lZC5cbiAgICAgKi9cbiAgICB0aGlzLm5hbWUgPSBzdHJpbmdpZnlQb3NpdGlvbihvcHRpb25zLnBsYWNlKSB8fCAnMToxJ1xuXG4gICAgLyoqXG4gICAgICogUGxhY2Ugb2YgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtQb2ludCB8IFBvc2l0aW9uIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMucGxhY2UgPSBvcHRpb25zLnBsYWNlIHx8IHVuZGVmaW5lZFxuXG4gICAgLyoqXG4gICAgICogUmVhc29uIGZvciBtZXNzYWdlLCBzaG91bGQgdXNlIG1hcmtkb3duLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLnJlYXNvbiA9IHRoaXMubWVzc2FnZVxuXG4gICAgLyoqXG4gICAgICogQ2F0ZWdvcnkgb2YgbWVzc2FnZSAoZXhhbXBsZTogYCdteS1ydWxlJ2ApLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLnJ1bGVJZCA9IG9wdGlvbnMucnVsZUlkIHx8IHVuZGVmaW5lZFxuXG4gICAgLyoqXG4gICAgICogTmFtZXNwYWNlIG9mIG1lc3NhZ2UgKGV4YW1wbGU6IGAnbXktcGFja2FnZSdgKS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5zb3VyY2UgPSBvcHRpb25zLnNvdXJjZSB8fCB1bmRlZmluZWRcblxuICAgIC8vIEZpZWxkIGZyb20gYEVycm9yYC5cbiAgICAvKipcbiAgICAgKiBTdGFjayBvZiBtZXNzYWdlLlxuICAgICAqXG4gICAgICogVGhpcyBpcyB1c2VkIGJ5IG5vcm1hbCBlcnJvcnMgdG8gc2hvdyB3aGVyZSBzb21ldGhpbmcgaGFwcGVuZWQgaW5cbiAgICAgKiBwcm9ncmFtbWluZyBjb2RlLCBpcnJlbGV2YW50IGZvciBgVkZpbGVgIG1lc3NhZ2VzLFxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLnN0YWNrID1cbiAgICAgIGxlZ2FjeUNhdXNlICYmIG9wdGlvbnMuY2F1c2UgJiYgdHlwZW9mIG9wdGlvbnMuY2F1c2Uuc3RhY2sgPT09ICdzdHJpbmcnXG4gICAgICAgID8gb3B0aW9ucy5jYXVzZS5zdGFja1xuICAgICAgICA6ICcnXG5cbiAgICAvLyBUaGUgZm9sbG93aW5nIGZpZWxkcyBhcmUgXHUyMDFDd2VsbCBrbm93blx1MjAxRC5cbiAgICAvLyBOb3Qgc3RhbmRhcmQuXG4gICAgLy8gRmVlbCBmcmVlIHRvIGFkZCBvdGhlciBub24tc3RhbmRhcmQgZmllbGRzIHRvIHlvdXIgbWVzc2FnZXMuXG5cbiAgICAvKipcbiAgICAgKiBTcGVjaWZ5IHRoZSBzb3VyY2UgdmFsdWUgdGhhdFx1MjAxOXMgYmVpbmcgcmVwb3J0ZWQsIHdoaWNoIGlzIGRlZW1lZFxuICAgICAqIGluY29ycmVjdC5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5hY3R1YWxcblxuICAgIC8qKlxuICAgICAqIFN1Z2dlc3QgYWNjZXB0YWJsZSB2YWx1ZXMgdGhhdCBjYW4gYmUgdXNlZCBpbnN0ZWFkIG9mIGBhY3R1YWxgLlxuICAgICAqXG4gICAgICogQHR5cGUge0FycmF5PHN0cmluZz4gfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5leHBlY3RlZFxuXG4gICAgLyoqXG4gICAgICogTG9uZyBmb3JtIGRlc2NyaXB0aW9uIG9mIHRoZSBtZXNzYWdlICh5b3Ugc2hvdWxkIHVzZSBtYXJrZG93bikuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMubm90ZVxuXG4gICAgLyoqXG4gICAgICogTGluayB0byBkb2NzIGZvciB0aGUgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiB0aGlzIG11c3QgYmUgYW4gYWJzb2x1dGUgVVJMIHRoYXQgY2FuIGJlIHBhc3NlZCBhcyBgeGBcbiAgICAgKiA+IHRvIGBuZXcgVVJMKHgpYC5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy51cmxcbiAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLXVudXNlZC1leHByZXNzaW9ucyAqL1xuICB9XG59XG5cblZGaWxlTWVzc2FnZS5wcm90b3R5cGUuZmlsZSA9ICcnXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLm5hbWUgPSAnJ1xuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5yZWFzb24gPSAnJ1xuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5tZXNzYWdlID0gJydcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUuc3RhY2sgPSAnJ1xuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5jb2x1bW4gPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUubGluZSA9IHVuZGVmaW5lZFxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5hbmNlc3RvcnMgPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUuY2F1c2UgPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUuZmF0YWwgPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUucGxhY2UgPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUucnVsZUlkID0gdW5kZWZpbmVkXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLnNvdXJjZSA9IHVuZGVmaW5lZFxuIiwgIi8vIEEgZGVyaXZhdGl2ZSB3b3JrIGJhc2VkIG9uOlxuLy8gPGh0dHBzOi8vZ2l0aHViLmNvbS9icm93c2VyaWZ5L3BhdGgtYnJvd3NlcmlmeT4uXG4vLyBXaGljaCBpcyBsaWNlbnNlZDpcbi8vXG4vLyBNSVQgTGljZW5zZVxuLy9cbi8vIENvcHlyaWdodCAoYykgMjAxMyBKYW1lcyBIYWxsaWRheVxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2Zcbi8vIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW5cbi8vIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG9cbi8vIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mXG4vLyB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sXG4vLyBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbi8vIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1Ncbi8vIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUlxuLy8gQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSXG4vLyBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTlxuLy8gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cbi8vIEEgZGVyaXZhdGl2ZSB3b3JrIGJhc2VkIG9uOlxuLy9cbi8vIFBhcnRzIG9mIHRoYXQgYXJlIGV4dHJhY3RlZCBmcm9tIE5vZGVcdTIwMTlzIGludGVybmFsIGBwYXRoYCBtb2R1bGU6XG4vLyA8aHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2Jsb2IvbWFzdGVyL2xpYi9wYXRoLmpzPi5cbi8vIFdoaWNoIGlzIGxpY2Vuc2VkOlxuLy9cbi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG5leHBvcnQgY29uc3QgbWlucGF0aCA9IHtiYXNlbmFtZSwgZGlybmFtZSwgZXh0bmFtZSwgam9pbiwgc2VwOiAnLyd9XG5cbi8qIGVzbGludC1kaXNhYmxlIG1heC1kZXB0aCwgY29tcGxleGl0eSAqL1xuXG4vKipcbiAqIEdldCB0aGUgYmFzZW5hbWUgZnJvbSBhIHBhdGguXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqICAgRmlsZSBwYXRoLlxuICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbZXh0bmFtZV1cbiAqICAgRXh0ZW5zaW9uIHRvIHN0cmlwLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU3RlbSBvciBiYXNlbmFtZS5cbiAqL1xuZnVuY3Rpb24gYmFzZW5hbWUocGF0aCwgZXh0bmFtZSkge1xuICBpZiAoZXh0bmFtZSAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBleHRuYW1lICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1wiZXh0XCIgYXJndW1lbnQgbXVzdCBiZSBhIHN0cmluZycpXG4gIH1cblxuICBhc3NlcnRQYXRoKHBhdGgpXG4gIGxldCBzdGFydCA9IDBcbiAgbGV0IGVuZCA9IC0xXG4gIGxldCBpbmRleCA9IHBhdGgubGVuZ3RoXG4gIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IHNlZW5Ob25TbGFzaFxuXG4gIGlmIChcbiAgICBleHRuYW1lID09PSB1bmRlZmluZWQgfHxcbiAgICBleHRuYW1lLmxlbmd0aCA9PT0gMCB8fFxuICAgIGV4dG5hbWUubGVuZ3RoID4gcGF0aC5sZW5ndGhcbiAgKSB7XG4gICAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICAgIGlmIChwYXRoLmNvZGVQb2ludEF0KGluZGV4KSA9PT0gNDcgLyogYC9gICovKSB7XG4gICAgICAgIC8vIElmIHdlIHJlYWNoZWQgYSBwYXRoIHNlcGFyYXRvciB0aGF0IHdhcyBub3QgcGFydCBvZiBhIHNldCBvZiBwYXRoXG4gICAgICAgIC8vIHNlcGFyYXRvcnMgYXQgdGhlIGVuZCBvZiB0aGUgc3RyaW5nLCBzdG9wIG5vdy5cbiAgICAgICAgaWYgKHNlZW5Ob25TbGFzaCkge1xuICAgICAgICAgIHN0YXJ0ID0gaW5kZXggKyAxXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChlbmQgPCAwKSB7XG4gICAgICAgIC8vIFdlIHNhdyB0aGUgZmlyc3Qgbm9uLXBhdGggc2VwYXJhdG9yLCBtYXJrIHRoaXMgYXMgdGhlIGVuZCBvZiBvdXJcbiAgICAgICAgLy8gcGF0aCBjb21wb25lbnQuXG4gICAgICAgIHNlZW5Ob25TbGFzaCA9IHRydWVcbiAgICAgICAgZW5kID0gaW5kZXggKyAxXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGVuZCA8IDAgPyAnJyA6IHBhdGguc2xpY2Uoc3RhcnQsIGVuZClcbiAgfVxuXG4gIGlmIChleHRuYW1lID09PSBwYXRoKSB7XG4gICAgcmV0dXJuICcnXG4gIH1cblxuICBsZXQgZmlyc3ROb25TbGFzaEVuZCA9IC0xXG4gIGxldCBleHRuYW1lSW5kZXggPSBleHRuYW1lLmxlbmd0aCAtIDFcblxuICB3aGlsZSAoaW5kZXgtLSkge1xuICAgIGlmIChwYXRoLmNvZGVQb2ludEF0KGluZGV4KSA9PT0gNDcgLyogYC9gICovKSB7XG4gICAgICAvLyBJZiB3ZSByZWFjaGVkIGEgcGF0aCBzZXBhcmF0b3IgdGhhdCB3YXMgbm90IHBhcnQgb2YgYSBzZXQgb2YgcGF0aFxuICAgICAgLy8gc2VwYXJhdG9ycyBhdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcsIHN0b3Agbm93LlxuICAgICAgaWYgKHNlZW5Ob25TbGFzaCkge1xuICAgICAgICBzdGFydCA9IGluZGV4ICsgMVxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZmlyc3ROb25TbGFzaEVuZCA8IDApIHtcbiAgICAgICAgLy8gV2Ugc2F3IHRoZSBmaXJzdCBub24tcGF0aCBzZXBhcmF0b3IsIHJlbWVtYmVyIHRoaXMgaW5kZXggaW4gY2FzZVxuICAgICAgICAvLyB3ZSBuZWVkIGl0IGlmIHRoZSBleHRlbnNpb24gZW5kcyB1cCBub3QgbWF0Y2hpbmcuXG4gICAgICAgIHNlZW5Ob25TbGFzaCA9IHRydWVcbiAgICAgICAgZmlyc3ROb25TbGFzaEVuZCA9IGluZGV4ICsgMVxuICAgICAgfVxuXG4gICAgICBpZiAoZXh0bmFtZUluZGV4ID4gLTEpIHtcbiAgICAgICAgLy8gVHJ5IHRvIG1hdGNoIHRoZSBleHBsaWNpdCBleHRlbnNpb24uXG4gICAgICAgIGlmIChwYXRoLmNvZGVQb2ludEF0KGluZGV4KSA9PT0gZXh0bmFtZS5jb2RlUG9pbnRBdChleHRuYW1lSW5kZXgtLSkpIHtcbiAgICAgICAgICBpZiAoZXh0bmFtZUluZGV4IDwgMCkge1xuICAgICAgICAgICAgLy8gV2UgbWF0Y2hlZCB0aGUgZXh0ZW5zaW9uLCBzbyBtYXJrIHRoaXMgYXMgdGhlIGVuZCBvZiBvdXIgcGF0aFxuICAgICAgICAgICAgLy8gY29tcG9uZW50XG4gICAgICAgICAgICBlbmQgPSBpbmRleFxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBFeHRlbnNpb24gZG9lcyBub3QgbWF0Y2gsIHNvIG91ciByZXN1bHQgaXMgdGhlIGVudGlyZSBwYXRoXG4gICAgICAgICAgLy8gY29tcG9uZW50XG4gICAgICAgICAgZXh0bmFtZUluZGV4ID0gLTFcbiAgICAgICAgICBlbmQgPSBmaXJzdE5vblNsYXNoRW5kXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoc3RhcnQgPT09IGVuZCkge1xuICAgIGVuZCA9IGZpcnN0Tm9uU2xhc2hFbmRcbiAgfSBlbHNlIGlmIChlbmQgPCAwKSB7XG4gICAgZW5kID0gcGF0aC5sZW5ndGhcbiAgfVxuXG4gIHJldHVybiBwYXRoLnNsaWNlKHN0YXJ0LCBlbmQpXG59XG5cbi8qKlxuICogR2V0IHRoZSBkaXJuYW1lIGZyb20gYSBwYXRoLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoXG4gKiAgIEZpbGUgcGF0aC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEZpbGUgcGF0aC5cbiAqL1xuZnVuY3Rpb24gZGlybmFtZShwYXRoKSB7XG4gIGFzc2VydFBhdGgocGF0aClcblxuICBpZiAocGF0aC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gJy4nXG4gIH1cblxuICBsZXQgZW5kID0gLTFcbiAgbGV0IGluZGV4ID0gcGF0aC5sZW5ndGhcbiAgLyoqIEB0eXBlIHtib29sZWFuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgdW5tYXRjaGVkU2xhc2hcblxuICAvLyBQcmVmaXggYC0tYCBpcyBpbXBvcnRhbnQgdG8gbm90IHJ1biBvbiBgMGAuXG4gIHdoaWxlICgtLWluZGV4KSB7XG4gICAgaWYgKHBhdGguY29kZVBvaW50QXQoaW5kZXgpID09PSA0NyAvKiBgL2AgKi8pIHtcbiAgICAgIGlmICh1bm1hdGNoZWRTbGFzaCkge1xuICAgICAgICBlbmQgPSBpbmRleFxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoIXVubWF0Y2hlZFNsYXNoKSB7XG4gICAgICAvLyBXZSBzYXcgdGhlIGZpcnN0IG5vbi1wYXRoIHNlcGFyYXRvclxuICAgICAgdW5tYXRjaGVkU2xhc2ggPSB0cnVlXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGVuZCA8IDBcbiAgICA/IHBhdGguY29kZVBvaW50QXQoMCkgPT09IDQ3IC8qIGAvYCAqL1xuICAgICAgPyAnLydcbiAgICAgIDogJy4nXG4gICAgOiBlbmQgPT09IDEgJiYgcGF0aC5jb2RlUG9pbnRBdCgwKSA9PT0gNDcgLyogYC9gICovXG4gICAgICA/ICcvLydcbiAgICAgIDogcGF0aC5zbGljZSgwLCBlbmQpXG59XG5cbi8qKlxuICogR2V0IGFuIGV4dG5hbWUgZnJvbSBhIHBhdGguXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqICAgRmlsZSBwYXRoLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRXh0bmFtZS5cbiAqL1xuZnVuY3Rpb24gZXh0bmFtZShwYXRoKSB7XG4gIGFzc2VydFBhdGgocGF0aClcblxuICBsZXQgaW5kZXggPSBwYXRoLmxlbmd0aFxuXG4gIGxldCBlbmQgPSAtMVxuICBsZXQgc3RhcnRQYXJ0ID0gMFxuICBsZXQgc3RhcnREb3QgPSAtMVxuICAvLyBUcmFjayB0aGUgc3RhdGUgb2YgY2hhcmFjdGVycyAoaWYgYW55KSB3ZSBzZWUgYmVmb3JlIG91ciBmaXJzdCBkb3QgYW5kXG4gIC8vIGFmdGVyIGFueSBwYXRoIHNlcGFyYXRvciB3ZSBmaW5kLlxuICBsZXQgcHJlRG90U3RhdGUgPSAwXG4gIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IHVubWF0Y2hlZFNsYXNoXG5cbiAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICBjb25zdCBjb2RlID0gcGF0aC5jb2RlUG9pbnRBdChpbmRleClcblxuICAgIGlmIChjb2RlID09PSA0NyAvKiBgL2AgKi8pIHtcbiAgICAgIC8vIElmIHdlIHJlYWNoZWQgYSBwYXRoIHNlcGFyYXRvciB0aGF0IHdhcyBub3QgcGFydCBvZiBhIHNldCBvZiBwYXRoXG4gICAgICAvLyBzZXBhcmF0b3JzIGF0IHRoZSBlbmQgb2YgdGhlIHN0cmluZywgc3RvcCBub3cuXG4gICAgICBpZiAodW5tYXRjaGVkU2xhc2gpIHtcbiAgICAgICAgc3RhcnRQYXJ0ID0gaW5kZXggKyAxXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgaWYgKGVuZCA8IDApIHtcbiAgICAgIC8vIFdlIHNhdyB0aGUgZmlyc3Qgbm9uLXBhdGggc2VwYXJhdG9yLCBtYXJrIHRoaXMgYXMgdGhlIGVuZCBvZiBvdXJcbiAgICAgIC8vIGV4dGVuc2lvbi5cbiAgICAgIHVubWF0Y2hlZFNsYXNoID0gdHJ1ZVxuICAgICAgZW5kID0gaW5kZXggKyAxXG4gICAgfVxuXG4gICAgaWYgKGNvZGUgPT09IDQ2IC8qIGAuYCAqLykge1xuICAgICAgLy8gSWYgdGhpcyBpcyBvdXIgZmlyc3QgZG90LCBtYXJrIGl0IGFzIHRoZSBzdGFydCBvZiBvdXIgZXh0ZW5zaW9uLlxuICAgICAgaWYgKHN0YXJ0RG90IDwgMCkge1xuICAgICAgICBzdGFydERvdCA9IGluZGV4XG4gICAgICB9IGVsc2UgaWYgKHByZURvdFN0YXRlICE9PSAxKSB7XG4gICAgICAgIHByZURvdFN0YXRlID0gMVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoc3RhcnREb3QgPiAtMSkge1xuICAgICAgLy8gV2Ugc2F3IGEgbm9uLWRvdCBhbmQgbm9uLXBhdGggc2VwYXJhdG9yIGJlZm9yZSBvdXIgZG90LCBzbyB3ZSBzaG91bGRcbiAgICAgIC8vIGhhdmUgYSBnb29kIGNoYW5jZSBhdCBoYXZpbmcgYSBub24tZW1wdHkgZXh0ZW5zaW9uLlxuICAgICAgcHJlRG90U3RhdGUgPSAtMVxuICAgIH1cbiAgfVxuXG4gIGlmIChcbiAgICBzdGFydERvdCA8IDAgfHxcbiAgICBlbmQgPCAwIHx8XG4gICAgLy8gV2Ugc2F3IGEgbm9uLWRvdCBjaGFyYWN0ZXIgaW1tZWRpYXRlbHkgYmVmb3JlIHRoZSBkb3QuXG4gICAgcHJlRG90U3RhdGUgPT09IDAgfHxcbiAgICAvLyBUaGUgKHJpZ2h0LW1vc3QpIHRyaW1tZWQgcGF0aCBjb21wb25lbnQgaXMgZXhhY3RseSBgLi5gLlxuICAgIChwcmVEb3RTdGF0ZSA9PT0gMSAmJiBzdGFydERvdCA9PT0gZW5kIC0gMSAmJiBzdGFydERvdCA9PT0gc3RhcnRQYXJ0ICsgMSlcbiAgKSB7XG4gICAgcmV0dXJuICcnXG4gIH1cblxuICByZXR1cm4gcGF0aC5zbGljZShzdGFydERvdCwgZW5kKVxufVxuXG4vKipcbiAqIEpvaW4gc2VnbWVudHMgZnJvbSBhIHBhdGguXG4gKlxuICogQHBhcmFtIHtBcnJheTxzdHJpbmc+fSBzZWdtZW50c1xuICogICBQYXRoIHNlZ21lbnRzLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRmlsZSBwYXRoLlxuICovXG5mdW5jdGlvbiBqb2luKC4uLnNlZ21lbnRzKSB7XG4gIGxldCBpbmRleCA9IC0xXG4gIC8qKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgam9pbmVkXG5cbiAgd2hpbGUgKCsraW5kZXggPCBzZWdtZW50cy5sZW5ndGgpIHtcbiAgICBhc3NlcnRQYXRoKHNlZ21lbnRzW2luZGV4XSlcblxuICAgIGlmIChzZWdtZW50c1tpbmRleF0pIHtcbiAgICAgIGpvaW5lZCA9XG4gICAgICAgIGpvaW5lZCA9PT0gdW5kZWZpbmVkID8gc2VnbWVudHNbaW5kZXhdIDogam9pbmVkICsgJy8nICsgc2VnbWVudHNbaW5kZXhdXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGpvaW5lZCA9PT0gdW5kZWZpbmVkID8gJy4nIDogbm9ybWFsaXplKGpvaW5lZClcbn1cblxuLyoqXG4gKiBOb3JtYWxpemUgYSBiYXNpYyBmaWxlIHBhdGguXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqICAgRmlsZSBwYXRoLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRmlsZSBwYXRoLlxuICovXG4vLyBOb3RlOiBgbm9ybWFsaXplYCBpcyBub3QgZXhwb3NlZCBhcyBgcGF0aC5ub3JtYWxpemVgLCBzbyBzb21lIGNvZGUgaXNcbi8vIG1hbnVhbGx5IHJlbW92ZWQgZnJvbSBpdC5cbmZ1bmN0aW9uIG5vcm1hbGl6ZShwYXRoKSB7XG4gIGFzc2VydFBhdGgocGF0aClcblxuICBjb25zdCBhYnNvbHV0ZSA9IHBhdGguY29kZVBvaW50QXQoMCkgPT09IDQ3IC8qIGAvYCAqL1xuXG4gIC8vIE5vcm1hbGl6ZSB0aGUgcGF0aCBhY2NvcmRpbmcgdG8gUE9TSVggcnVsZXMuXG4gIGxldCB2YWx1ZSA9IG5vcm1hbGl6ZVN0cmluZyhwYXRoLCAhYWJzb2x1dGUpXG5cbiAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMCAmJiAhYWJzb2x1dGUpIHtcbiAgICB2YWx1ZSA9ICcuJ1xuICB9XG5cbiAgaWYgKHZhbHVlLmxlbmd0aCA+IDAgJiYgcGF0aC5jb2RlUG9pbnRBdChwYXRoLmxlbmd0aCAtIDEpID09PSA0NyAvKiAvICovKSB7XG4gICAgdmFsdWUgKz0gJy8nXG4gIH1cblxuICByZXR1cm4gYWJzb2x1dGUgPyAnLycgKyB2YWx1ZSA6IHZhbHVlXG59XG5cbi8qKlxuICogUmVzb2x2ZSBgLmAgYW5kIGAuLmAgZWxlbWVudHMgaW4gYSBwYXRoIHdpdGggZGlyZWN0b3J5IG5hbWVzLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoXG4gKiAgIEZpbGUgcGF0aC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gYWxsb3dBYm92ZVJvb3RcbiAqICAgV2hldGhlciBgLi5gIGNhbiBtb3ZlIGFib3ZlIHJvb3QuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBGaWxlIHBhdGguXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZVN0cmluZyhwYXRoLCBhbGxvd0Fib3ZlUm9vdCkge1xuICBsZXQgcmVzdWx0ID0gJydcbiAgbGV0IGxhc3RTZWdtZW50TGVuZ3RoID0gMFxuICBsZXQgbGFzdFNsYXNoID0gLTFcbiAgbGV0IGRvdHMgPSAwXG4gIGxldCBpbmRleCA9IC0xXG4gIC8qKiBAdHlwZSB7bnVtYmVyIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgY29kZVxuICAvKiogQHR5cGUge251bWJlcn0gKi9cbiAgbGV0IGxhc3RTbGFzaEluZGV4XG5cbiAgd2hpbGUgKCsraW5kZXggPD0gcGF0aC5sZW5ndGgpIHtcbiAgICBpZiAoaW5kZXggPCBwYXRoLmxlbmd0aCkge1xuICAgICAgY29kZSA9IHBhdGguY29kZVBvaW50QXQoaW5kZXgpXG4gICAgfSBlbHNlIGlmIChjb2RlID09PSA0NyAvKiBgL2AgKi8pIHtcbiAgICAgIGJyZWFrXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvZGUgPSA0NyAvKiBgL2AgKi9cbiAgICB9XG5cbiAgICBpZiAoY29kZSA9PT0gNDcgLyogYC9gICovKSB7XG4gICAgICBpZiAobGFzdFNsYXNoID09PSBpbmRleCAtIDEgfHwgZG90cyA9PT0gMSkge1xuICAgICAgICAvLyBFbXB0eS5cbiAgICAgIH0gZWxzZSBpZiAobGFzdFNsYXNoICE9PSBpbmRleCAtIDEgJiYgZG90cyA9PT0gMikge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgcmVzdWx0Lmxlbmd0aCA8IDIgfHxcbiAgICAgICAgICBsYXN0U2VnbWVudExlbmd0aCAhPT0gMiB8fFxuICAgICAgICAgIHJlc3VsdC5jb2RlUG9pbnRBdChyZXN1bHQubGVuZ3RoIC0gMSkgIT09IDQ2IC8qIGAuYCAqLyB8fFxuICAgICAgICAgIHJlc3VsdC5jb2RlUG9pbnRBdChyZXN1bHQubGVuZ3RoIC0gMikgIT09IDQ2IC8qIGAuYCAqL1xuICAgICAgICApIHtcbiAgICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDIpIHtcbiAgICAgICAgICAgIGxhc3RTbGFzaEluZGV4ID0gcmVzdWx0Lmxhc3RJbmRleE9mKCcvJylcblxuICAgICAgICAgICAgaWYgKGxhc3RTbGFzaEluZGV4ICE9PSByZXN1bHQubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICBpZiAobGFzdFNsYXNoSW5kZXggPCAwKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gJydcbiAgICAgICAgICAgICAgICBsYXN0U2VnbWVudExlbmd0aCA9IDBcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuc2xpY2UoMCwgbGFzdFNsYXNoSW5kZXgpXG4gICAgICAgICAgICAgICAgbGFzdFNlZ21lbnRMZW5ndGggPSByZXN1bHQubGVuZ3RoIC0gMSAtIHJlc3VsdC5sYXN0SW5kZXhPZignLycpXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBsYXN0U2xhc2ggPSBpbmRleFxuICAgICAgICAgICAgICBkb3RzID0gMFxuICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJlc3VsdCA9ICcnXG4gICAgICAgICAgICBsYXN0U2VnbWVudExlbmd0aCA9IDBcbiAgICAgICAgICAgIGxhc3RTbGFzaCA9IGluZGV4XG4gICAgICAgICAgICBkb3RzID0gMFxuICAgICAgICAgICAgY29udGludWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYWxsb3dBYm92ZVJvb3QpIHtcbiAgICAgICAgICByZXN1bHQgPSByZXN1bHQubGVuZ3RoID4gMCA/IHJlc3VsdCArICcvLi4nIDogJy4uJ1xuICAgICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoID0gMlxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICByZXN1bHQgKz0gJy8nICsgcGF0aC5zbGljZShsYXN0U2xhc2ggKyAxLCBpbmRleClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN1bHQgPSBwYXRoLnNsaWNlKGxhc3RTbGFzaCArIDEsIGluZGV4KVxuICAgICAgICB9XG5cbiAgICAgICAgbGFzdFNlZ21lbnRMZW5ndGggPSBpbmRleCAtIGxhc3RTbGFzaCAtIDFcbiAgICAgIH1cblxuICAgICAgbGFzdFNsYXNoID0gaW5kZXhcbiAgICAgIGRvdHMgPSAwXG4gICAgfSBlbHNlIGlmIChjb2RlID09PSA0NiAvKiBgLmAgKi8gJiYgZG90cyA+IC0xKSB7XG4gICAgICBkb3RzKytcbiAgICB9IGVsc2Uge1xuICAgICAgZG90cyA9IC0xXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG4vKipcbiAqIE1ha2Ugc3VyZSBgcGF0aGAgaXMgYSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqICAgRmlsZSBwYXRoLlxuICogQHJldHVybnMge2Fzc2VydHMgcGF0aCBpcyBzdHJpbmd9XG4gKiAgIE5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIGFzc2VydFBhdGgocGF0aCkge1xuICBpZiAodHlwZW9mIHBhdGggIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICdQYXRoIG11c3QgYmUgYSBzdHJpbmcuIFJlY2VpdmVkICcgKyBKU09OLnN0cmluZ2lmeShwYXRoKVxuICAgIClcbiAgfVxufVxuXG4vKiBlc2xpbnQtZW5hYmxlIG1heC1kZXB0aCwgY29tcGxleGl0eSAqL1xuIiwgIi8vIFNvbWV3aGF0IGJhc2VkIG9uOlxuLy8gPGh0dHBzOi8vZ2l0aHViLmNvbS9kZWZ1bmN0em9tYmllL25vZGUtcHJvY2Vzcy9ibG9iL21hc3Rlci9icm93c2VyLmpzPi5cbi8vIEJ1dCBJIGRvblx1MjAxOXQgdGhpbmsgb25lIHRpbnkgbGluZSBvZiBjb2RlIGNhbiBiZSBjb3B5cmlnaHRlZC4gXHVEODNEXHVERTA1XG5leHBvcnQgY29uc3QgbWlucHJvYyA9IHtjd2R9XG5cbmZ1bmN0aW9uIGN3ZCgpIHtcbiAgcmV0dXJuICcvJ1xufVxuIiwgIi8qKlxuICogQ2hlY2tzIGlmIGEgdmFsdWUgaGFzIHRoZSBzaGFwZSBvZiBhIFdIQVRXRyBVUkwgb2JqZWN0LlxuICpcbiAqIFVzaW5nIGEgc3ltYm9sIG9yIGluc3RhbmNlb2Ygd291bGQgbm90IGJlIGFibGUgdG8gcmVjb2duaXplIFVSTCBvYmplY3RzXG4gKiBjb21pbmcgZnJvbSBvdGhlciBpbXBsZW1lbnRhdGlvbnMgKGUuZy4gaW4gRWxlY3Ryb24pLCBzbyBpbnN0ZWFkIHdlIGFyZVxuICogY2hlY2tpbmcgc29tZSB3ZWxsIGtub3duIHByb3BlcnRpZXMgZm9yIGEgbGFjayBvZiBhIGJldHRlciB0ZXN0LlxuICpcbiAqIFdlIHVzZSBgaHJlZmAgYW5kIGBwcm90b2NvbGAgYXMgdGhleSBhcmUgdGhlIG9ubHkgcHJvcGVydGllcyB0aGF0IGFyZVxuICogZWFzeSB0byByZXRyaWV2ZSBhbmQgY2FsY3VsYXRlIGR1ZSB0byB0aGUgbGF6eSBuYXR1cmUgb2YgdGhlIGdldHRlcnMuXG4gKlxuICogV2UgY2hlY2sgZm9yIGF1dGggYXR0cmlidXRlIHRvIGRpc3Rpbmd1aXNoIGxlZ2FjeSB1cmwgaW5zdGFuY2Ugd2l0aFxuICogV0hBVFdHIFVSTCBpbnN0YW5jZS5cbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IGZpbGVVcmxPclBhdGhcbiAqICAgRmlsZSBwYXRoIG9yIFVSTC5cbiAqIEByZXR1cm5zIHtmaWxlVXJsT3JQYXRoIGlzIFVSTH1cbiAqICAgV2hldGhlciBpdFx1MjAxOXMgYSBVUkwuXG4gKi9cbi8vIEZyb206IDxodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUvYmxvYi82YTM0MDNjL2xpYi9pbnRlcm5hbC91cmwuanMjTDcyMD5cbmV4cG9ydCBmdW5jdGlvbiBpc1VybChmaWxlVXJsT3JQYXRoKSB7XG4gIHJldHVybiBCb29sZWFuKFxuICAgIGZpbGVVcmxPclBhdGggIT09IG51bGwgJiZcbiAgICAgIHR5cGVvZiBmaWxlVXJsT3JQYXRoID09PSAnb2JqZWN0JyAmJlxuICAgICAgJ2hyZWYnIGluIGZpbGVVcmxPclBhdGggJiZcbiAgICAgIGZpbGVVcmxPclBhdGguaHJlZiAmJlxuICAgICAgJ3Byb3RvY29sJyBpbiBmaWxlVXJsT3JQYXRoICYmXG4gICAgICBmaWxlVXJsT3JQYXRoLnByb3RvY29sICYmXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBpbmRleGluZyBpcyBmaW5lLlxuICAgICAgZmlsZVVybE9yUGF0aC5hdXRoID09PSB1bmRlZmluZWRcbiAgKVxufVxuIiwgImltcG9ydCB7aXNVcmx9IGZyb20gJy4vbWludXJsLnNoYXJlZC5qcydcblxuZXhwb3J0IHtpc1VybH0gZnJvbSAnLi9taW51cmwuc2hhcmVkLmpzJ1xuXG4vLyBTZWU6IDxodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUvYmxvYi82YTM0MDNjL2xpYi9pbnRlcm5hbC91cmwuanM+XG5cbi8qKlxuICogQHBhcmFtIHtVUkwgfCBzdHJpbmd9IHBhdGhcbiAqICAgRmlsZSBVUkwuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBGaWxlIFVSTC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVybFRvUGF0aChwYXRoKSB7XG4gIGlmICh0eXBlb2YgcGF0aCA9PT0gJ3N0cmluZycpIHtcbiAgICBwYXRoID0gbmV3IFVSTChwYXRoKVxuICB9IGVsc2UgaWYgKCFpc1VybChwYXRoKSkge1xuICAgIC8qKiBAdHlwZSB7Tm9kZUpTLkVycm5vRXhjZXB0aW9ufSAqL1xuICAgIGNvbnN0IGVycm9yID0gbmV3IFR5cGVFcnJvcihcbiAgICAgICdUaGUgXCJwYXRoXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIHN0cmluZyBvciBhbiBpbnN0YW5jZSBvZiBVUkwuIFJlY2VpdmVkIGAnICtcbiAgICAgICAgcGF0aCArXG4gICAgICAgICdgJ1xuICAgIClcbiAgICBlcnJvci5jb2RlID0gJ0VSUl9JTlZBTElEX0FSR19UWVBFJ1xuICAgIHRocm93IGVycm9yXG4gIH1cblxuICBpZiAocGF0aC5wcm90b2NvbCAhPT0gJ2ZpbGU6Jykge1xuICAgIC8qKiBAdHlwZSB7Tm9kZUpTLkVycm5vRXhjZXB0aW9ufSAqL1xuICAgIGNvbnN0IGVycm9yID0gbmV3IFR5cGVFcnJvcignVGhlIFVSTCBtdXN0IGJlIG9mIHNjaGVtZSBmaWxlJylcbiAgICBlcnJvci5jb2RlID0gJ0VSUl9JTlZBTElEX1VSTF9TQ0hFTUUnXG4gICAgdGhyb3cgZXJyb3JcbiAgfVxuXG4gIHJldHVybiBnZXRQYXRoRnJvbVVSTFBvc2l4KHBhdGgpXG59XG5cbi8qKlxuICogR2V0IGEgcGF0aCBmcm9tIGEgUE9TSVggVVJMLlxuICpcbiAqIEBwYXJhbSB7VVJMfSB1cmxcbiAqICAgVVJMLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRmlsZSBwYXRoLlxuICovXG5mdW5jdGlvbiBnZXRQYXRoRnJvbVVSTFBvc2l4KHVybCkge1xuICBpZiAodXJsLmhvc3RuYW1lICE9PSAnJykge1xuICAgIC8qKiBAdHlwZSB7Tm9kZUpTLkVycm5vRXhjZXB0aW9ufSAqL1xuICAgIGNvbnN0IGVycm9yID0gbmV3IFR5cGVFcnJvcihcbiAgICAgICdGaWxlIFVSTCBob3N0IG11c3QgYmUgXCJsb2NhbGhvc3RcIiBvciBlbXB0eSBvbiBkYXJ3aW4nXG4gICAgKVxuICAgIGVycm9yLmNvZGUgPSAnRVJSX0lOVkFMSURfRklMRV9VUkxfSE9TVCdcbiAgICB0aHJvdyBlcnJvclxuICB9XG5cbiAgY29uc3QgcGF0aG5hbWUgPSB1cmwucGF0aG5hbWVcbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IHBhdGhuYW1lLmxlbmd0aCkge1xuICAgIGlmIChcbiAgICAgIHBhdGhuYW1lLmNvZGVQb2ludEF0KGluZGV4KSA9PT0gMzcgLyogYCVgICovICYmXG4gICAgICBwYXRobmFtZS5jb2RlUG9pbnRBdChpbmRleCArIDEpID09PSA1MCAvKiBgMmAgKi9cbiAgICApIHtcbiAgICAgIGNvbnN0IHRoaXJkID0gcGF0aG5hbWUuY29kZVBvaW50QXQoaW5kZXggKyAyKVxuICAgICAgaWYgKHRoaXJkID09PSA3MCAvKiBgRmAgKi8gfHwgdGhpcmQgPT09IDEwMiAvKiBgZmAgKi8pIHtcbiAgICAgICAgLyoqIEB0eXBlIHtOb2RlSlMuRXJybm9FeGNlcHRpb259ICovXG4gICAgICAgIGNvbnN0IGVycm9yID0gbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICAnRmlsZSBVUkwgcGF0aCBtdXN0IG5vdCBpbmNsdWRlIGVuY29kZWQgLyBjaGFyYWN0ZXJzJ1xuICAgICAgICApXG4gICAgICAgIGVycm9yLmNvZGUgPSAnRVJSX0lOVkFMSURfRklMRV9VUkxfUEFUSCdcbiAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHBhdGhuYW1lKVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7Tm9kZSwgUG9pbnQsIFBvc2l0aW9ufSBmcm9tICd1bmlzdCdcbiAqIEBpbXBvcnQge09wdGlvbnMgYXMgTWVzc2FnZU9wdGlvbnN9IGZyb20gJ3ZmaWxlLW1lc3NhZ2UnXG4gKiBAaW1wb3J0IHtDb21wYXRpYmxlLCBEYXRhLCBNYXAsIE9wdGlvbnMsIFZhbHVlfSBmcm9tICd2ZmlsZSdcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3QgJiB7dHlwZTogc3RyaW5nLCBwb3NpdGlvbj86IFBvc2l0aW9uIHwgdW5kZWZpbmVkfX0gTm9kZUxpa2VcbiAqL1xuXG5pbXBvcnQge1ZGaWxlTWVzc2FnZX0gZnJvbSAndmZpbGUtbWVzc2FnZSdcbmltcG9ydCB7bWlucGF0aH0gZnJvbSAnI21pbnBhdGgnXG5pbXBvcnQge21pbnByb2N9IGZyb20gJyNtaW5wcm9jJ1xuaW1wb3J0IHt1cmxUb1BhdGgsIGlzVXJsfSBmcm9tICcjbWludXJsJ1xuXG4vKipcbiAqIE9yZGVyIG9mIHNldHRpbmcgKGxlYXN0IHNwZWNpZmljIHRvIG1vc3QpLCB3ZSBuZWVkIHRoaXMgYmVjYXVzZSBvdGhlcndpc2VcbiAqIGB7c3RlbTogJ2EnLCBwYXRoOiAnfi9iLmpzJ31gIHdvdWxkIHRocm93LCBhcyBhIHBhdGggaXMgbmVlZGVkIGJlZm9yZSBhXG4gKiBzdGVtIGNhbiBiZSBzZXQuXG4gKi9cbmNvbnN0IG9yZGVyID0gLyoqIEB0eXBlIHtjb25zdH0gKi8gKFtcbiAgJ2hpc3RvcnknLFxuICAncGF0aCcsXG4gICdiYXNlbmFtZScsXG4gICdzdGVtJyxcbiAgJ2V4dG5hbWUnLFxuICAnZGlybmFtZSdcbl0pXG5cbmV4cG9ydCBjbGFzcyBWRmlsZSB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgdmlydHVhbCBmaWxlLlxuICAgKlxuICAgKiBgb3B0aW9uc2AgaXMgdHJlYXRlZCBhczpcbiAgICpcbiAgICogKiAgIGBzdHJpbmdgIG9yIGBVaW50OEFycmF5YCBcdTIwMTQgYHt2YWx1ZTogb3B0aW9uc31gXG4gICAqICogICBgVVJMYCBcdTIwMTQgYHtwYXRoOiBvcHRpb25zfWBcbiAgICogKiAgIGBWRmlsZWAgXHUyMDE0IHNoYWxsb3cgY29waWVzIGl0cyBkYXRhIG92ZXIgdG8gdGhlIG5ldyBmaWxlXG4gICAqICogICBgb2JqZWN0YCBcdTIwMTQgYWxsIGZpZWxkcyBhcmUgc2hhbGxvdyBjb3BpZWQgb3ZlciB0byB0aGUgbmV3IGZpbGVcbiAgICpcbiAgICogUGF0aCByZWxhdGVkIGZpZWxkcyBhcmUgc2V0IGluIHRoZSBmb2xsb3dpbmcgb3JkZXIgKGxlYXN0IHNwZWNpZmljIHRvXG4gICAqIG1vc3Qgc3BlY2lmaWMpOiBgaGlzdG9yeWAsIGBwYXRoYCwgYGJhc2VuYW1lYCwgYHN0ZW1gLCBgZXh0bmFtZWAsXG4gICAqIGBkaXJuYW1lYC5cbiAgICpcbiAgICogWW91IGNhbm5vdCBzZXQgYGRpcm5hbWVgIG9yIGBleHRuYW1lYCB3aXRob3V0IHNldHRpbmcgZWl0aGVyIGBoaXN0b3J5YCxcbiAgICogYHBhdGhgLCBgYmFzZW5hbWVgLCBvciBgc3RlbWAgdG9vLlxuICAgKlxuICAgKiBAcGFyYW0ge0NvbXBhdGlibGUgfCBudWxsIHwgdW5kZWZpbmVkfSBbdmFsdWVdXG4gICAqICAgRmlsZSB2YWx1ZS5cbiAgICogQHJldHVybnNcbiAgICogICBOZXcgaW5zdGFuY2UuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih2YWx1ZSkge1xuICAgIC8qKiBAdHlwZSB7T3B0aW9ucyB8IFZGaWxlfSAqL1xuICAgIGxldCBvcHRpb25zXG5cbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICBvcHRpb25zID0ge31cbiAgICB9IGVsc2UgaWYgKGlzVXJsKHZhbHVlKSkge1xuICAgICAgb3B0aW9ucyA9IHtwYXRoOiB2YWx1ZX1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgaXNVaW50OEFycmF5KHZhbHVlKSkge1xuICAgICAgb3B0aW9ucyA9IHt2YWx1ZX1cbiAgICB9IGVsc2Uge1xuICAgICAgb3B0aW9ucyA9IHZhbHVlXG4gICAgfVxuXG4gICAgLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLWV4cHJlc3Npb25zICovXG5cbiAgICAvKipcbiAgICAgKiBCYXNlIG9mIGBwYXRoYCAoZGVmYXVsdDogYHByb2Nlc3MuY3dkKClgIG9yIGAnLydgIGluIGJyb3dzZXJzKS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgLy8gUHJldmVudCBjYWxsaW5nIGBjd2RgICh3aGljaCBjb3VsZCBiZSBleHBlbnNpdmUpIGlmIGl0XHUyMDE5cyBub3QgbmVlZGVkO1xuICAgIC8vIHRoZSBlbXB0eSBzdHJpbmcgd2lsbCBiZSBvdmVycmlkZGVuIGluIHRoZSBuZXh0IGJsb2NrLlxuICAgIHRoaXMuY3dkID0gJ2N3ZCcgaW4gb3B0aW9ucyA/ICcnIDogbWlucHJvYy5jd2QoKVxuXG4gICAgLyoqXG4gICAgICogUGxhY2UgdG8gc3RvcmUgY3VzdG9tIGluZm8gKGRlZmF1bHQ6IGB7fWApLlxuICAgICAqXG4gICAgICogSXRcdTIwMTlzIE9LIHRvIHN0b3JlIGN1c3RvbSBkYXRhIGRpcmVjdGx5IG9uIHRoZSBmaWxlIGJ1dCBtb3ZpbmcgaXQgdG9cbiAgICAgKiBgZGF0YWAgaXMgcmVjb21tZW5kZWQuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7RGF0YX1cbiAgICAgKi9cbiAgICB0aGlzLmRhdGEgPSB7fVxuXG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBmaWxlIHBhdGhzIHRoZSBmaWxlIG1vdmVkIGJldHdlZW4uXG4gICAgICpcbiAgICAgKiBUaGUgZmlyc3QgaXMgdGhlIG9yaWdpbmFsIHBhdGggYW5kIHRoZSBsYXN0IGlzIHRoZSBjdXJyZW50IHBhdGguXG4gICAgICpcbiAgICAgKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn1cbiAgICAgKi9cbiAgICB0aGlzLmhpc3RvcnkgPSBbXVxuXG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBtZXNzYWdlcyBhc3NvY2lhdGVkIHdpdGggdGhlIGZpbGUuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7QXJyYXk8VkZpbGVNZXNzYWdlPn1cbiAgICAgKi9cbiAgICB0aGlzLm1lc3NhZ2VzID0gW11cblxuICAgIC8qKlxuICAgICAqIFJhdyB2YWx1ZS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtWYWx1ZX1cbiAgICAgKi9cbiAgICB0aGlzLnZhbHVlXG5cbiAgICAvLyBUaGUgYmVsb3cgYXJlIG5vbi1zdGFuZGFyZCwgdGhleSBhcmUgXHUyMDFDd2VsbC1rbm93blx1MjAxRC5cbiAgICAvLyBBcyBpbiwgdXNlZCBpbiBzZXZlcmFsIHRvb2xzLlxuICAgIC8qKlxuICAgICAqIFNvdXJjZSBtYXAuXG4gICAgICpcbiAgICAgKiBUaGlzIHR5cGUgaXMgZXF1aXZhbGVudCB0byB0aGUgYFJhd1NvdXJjZU1hcGAgdHlwZSBmcm9tIHRoZSBgc291cmNlLW1hcGBcbiAgICAgKiBtb2R1bGUuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7TWFwIHwgbnVsbCB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLm1hcFxuXG4gICAgLyoqXG4gICAgICogQ3VzdG9tLCBub24tc3RyaW5nLCBjb21waWxlZCwgcmVwcmVzZW50YXRpb24uXG4gICAgICpcbiAgICAgKiBUaGlzIGlzIHVzZWQgYnkgdW5pZmllZCB0byBzdG9yZSBub24tc3RyaW5nIHJlc3VsdHMuXG4gICAgICogT25lIGV4YW1wbGUgaXMgd2hlbiB0dXJuaW5nIG1hcmtkb3duIGludG8gUmVhY3Qgbm9kZXMuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7dW5rbm93bn1cbiAgICAgKi9cbiAgICB0aGlzLnJlc3VsdFxuXG4gICAgLyoqXG4gICAgICogV2hldGhlciBhIGZpbGUgd2FzIHNhdmVkIHRvIGRpc2suXG4gICAgICpcbiAgICAgKiBUaGlzIGlzIHVzZWQgYnkgdmZpbGUgcmVwb3J0ZXJzLlxuICAgICAqXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICovXG4gICAgdGhpcy5zdG9yZWRcbiAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLXVudXNlZC1leHByZXNzaW9ucyAqL1xuXG4gICAgLy8gU2V0IHBhdGggcmVsYXRlZCBwcm9wZXJ0aWVzIGluIHRoZSBjb3JyZWN0IG9yZGVyLlxuICAgIGxldCBpbmRleCA9IC0xXG5cbiAgICB3aGlsZSAoKytpbmRleCA8IG9yZGVyLmxlbmd0aCkge1xuICAgICAgY29uc3QgZmllbGQgPSBvcmRlcltpbmRleF1cblxuICAgICAgLy8gTm90ZTogd2Ugc3BlY2lmaWNhbGx5IHVzZSBgaW5gIGluc3RlYWQgb2YgYGhhc093blByb3BlcnR5YCB0byBhY2NlcHRcbiAgICAgIC8vIGB2ZmlsZWBzIHRvby5cbiAgICAgIGlmIChcbiAgICAgICAgZmllbGQgaW4gb3B0aW9ucyAmJlxuICAgICAgICBvcHRpb25zW2ZpZWxkXSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIG9wdGlvbnNbZmllbGRdICE9PSBudWxsXG4gICAgICApIHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogVFMgZG9lc25cdTIwMTl0IHVuZGVyc3RhbmQgYmFzaWMgcmVhbGl0eS5cbiAgICAgICAgdGhpc1tmaWVsZF0gPSBmaWVsZCA9PT0gJ2hpc3RvcnknID8gWy4uLm9wdGlvbnNbZmllbGRdXSA6IG9wdGlvbnNbZmllbGRdXG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gICAgbGV0IGZpZWxkXG5cbiAgICAvLyBTZXQgbm9uLXBhdGggcmVsYXRlZCBwcm9wZXJ0aWVzLlxuICAgIGZvciAoZmllbGQgaW4gb3B0aW9ucykge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogZmluZSB0byBzZXQgb3RoZXIgdGhpbmdzLlxuICAgICAgaWYgKCFvcmRlci5pbmNsdWRlcyhmaWVsZCkpIHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogZmluZSB0byBzZXQgb3RoZXIgdGhpbmdzLlxuICAgICAgICB0aGlzW2ZpZWxkXSA9IG9wdGlvbnNbZmllbGRdXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgYmFzZW5hbWUgKGluY2x1ZGluZyBleHRuYW1lKSAoZXhhbXBsZTogYCdpbmRleC5taW4uanMnYCkuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqICAgQmFzZW5hbWUuXG4gICAqL1xuICBnZXQgYmFzZW5hbWUoKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLnBhdGggPT09ICdzdHJpbmcnXG4gICAgICA/IG1pbnBhdGguYmFzZW5hbWUodGhpcy5wYXRoKVxuICAgICAgOiB1bmRlZmluZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYmFzZW5hbWUgKGluY2x1ZGluZyBleHRuYW1lKSAoYCdpbmRleC5taW4uanMnYCkuXG4gICAqXG4gICAqIENhbm5vdCBjb250YWluIHBhdGggc2VwYXJhdG9ycyAoYCcvJ2Agb24gdW5peCwgbWFjT1MsIGFuZCBicm93c2VycywgYCdcXCdgXG4gICAqIG9uIHdpbmRvd3MpLlxuICAgKiBDYW5ub3QgYmUgbnVsbGlmaWVkICh1c2UgYGZpbGUucGF0aCA9IGZpbGUuZGlybmFtZWAgaW5zdGVhZCkuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBiYXNlbmFtZVxuICAgKiAgIEJhc2VuYW1lLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKiAgIE5vdGhpbmcuXG4gICAqL1xuICBzZXQgYmFzZW5hbWUoYmFzZW5hbWUpIHtcbiAgICBhc3NlcnROb25FbXB0eShiYXNlbmFtZSwgJ2Jhc2VuYW1lJylcbiAgICBhc3NlcnRQYXJ0KGJhc2VuYW1lLCAnYmFzZW5hbWUnKVxuICAgIHRoaXMucGF0aCA9IG1pbnBhdGguam9pbih0aGlzLmRpcm5hbWUgfHwgJycsIGJhc2VuYW1lKVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcGFyZW50IHBhdGggKGV4YW1wbGU6IGAnfidgKS5cbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICogICBEaXJuYW1lLlxuICAgKi9cbiAgZ2V0IGRpcm5hbWUoKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLnBhdGggPT09ICdzdHJpbmcnXG4gICAgICA/IG1pbnBhdGguZGlybmFtZSh0aGlzLnBhdGgpXG4gICAgICA6IHVuZGVmaW5lZFxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgcGFyZW50IHBhdGggKGV4YW1wbGU6IGAnfidgKS5cbiAgICpcbiAgICogQ2Fubm90IGJlIHNldCBpZiB0aGVyZVx1MjAxOXMgbm8gYHBhdGhgIHlldC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IGRpcm5hbWVcbiAgICogICBEaXJuYW1lLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKiAgIE5vdGhpbmcuXG4gICAqL1xuICBzZXQgZGlybmFtZShkaXJuYW1lKSB7XG4gICAgYXNzZXJ0UGF0aCh0aGlzLmJhc2VuYW1lLCAnZGlybmFtZScpXG4gICAgdGhpcy5wYXRoID0gbWlucGF0aC5qb2luKGRpcm5hbWUgfHwgJycsIHRoaXMuYmFzZW5hbWUpXG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBleHRuYW1lIChpbmNsdWRpbmcgZG90KSAoZXhhbXBsZTogYCcuanMnYCkuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqICAgRXh0bmFtZS5cbiAgICovXG4gIGdldCBleHRuYW1lKCkge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5wYXRoID09PSAnc3RyaW5nJ1xuICAgICAgPyBtaW5wYXRoLmV4dG5hbWUodGhpcy5wYXRoKVxuICAgICAgOiB1bmRlZmluZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGV4dG5hbWUgKGluY2x1ZGluZyBkb3QpIChleGFtcGxlOiBgJy5qcydgKS5cbiAgICpcbiAgICogQ2Fubm90IGNvbnRhaW4gcGF0aCBzZXBhcmF0b3JzIChgJy8nYCBvbiB1bml4LCBtYWNPUywgYW5kIGJyb3dzZXJzLCBgJ1xcJ2BcbiAgICogb24gd2luZG93cykuXG4gICAqIENhbm5vdCBiZSBzZXQgaWYgdGhlcmVcdTIwMTlzIG5vIGBwYXRoYCB5ZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBleHRuYW1lXG4gICAqICAgRXh0bmFtZS5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgc2V0IGV4dG5hbWUoZXh0bmFtZSkge1xuICAgIGFzc2VydFBhcnQoZXh0bmFtZSwgJ2V4dG5hbWUnKVxuICAgIGFzc2VydFBhdGgodGhpcy5kaXJuYW1lLCAnZXh0bmFtZScpXG5cbiAgICBpZiAoZXh0bmFtZSkge1xuICAgICAgaWYgKGV4dG5hbWUuY29kZVBvaW50QXQoMCkgIT09IDQ2IC8qIGAuYCAqLykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2BleHRuYW1lYCBtdXN0IHN0YXJ0IHdpdGggYC5gJylcbiAgICAgIH1cblxuICAgICAgaWYgKGV4dG5hbWUuaW5jbHVkZXMoJy4nLCAxKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2BleHRuYW1lYCBjYW5ub3QgY29udGFpbiBtdWx0aXBsZSBkb3RzJylcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnBhdGggPSBtaW5wYXRoLmpvaW4odGhpcy5kaXJuYW1lLCB0aGlzLnN0ZW0gKyAoZXh0bmFtZSB8fCAnJykpXG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBmdWxsIHBhdGggKGV4YW1wbGU6IGAnfi9pbmRleC5taW4uanMnYCkuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqICAgUGF0aC5cbiAgICovXG4gIGdldCBwYXRoKCkge1xuICAgIHJldHVybiB0aGlzLmhpc3RvcnlbdGhpcy5oaXN0b3J5Lmxlbmd0aCAtIDFdXG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBmdWxsIHBhdGggKGV4YW1wbGU6IGAnfi9pbmRleC5taW4uanMnYCkuXG4gICAqXG4gICAqIENhbm5vdCBiZSBudWxsaWZpZWQuXG4gICAqIFlvdSBjYW4gc2V0IGEgZmlsZSBVUkwgKGEgYFVSTGAgb2JqZWN0IHdpdGggYSBgZmlsZTpgIHByb3RvY29sKSB3aGljaCB3aWxsXG4gICAqIGJlIHR1cm5lZCBpbnRvIGEgcGF0aCB3aXRoIGB1cmwuZmlsZVVSTFRvUGF0aGAuXG4gICAqXG4gICAqIEBwYXJhbSB7VVJMIHwgc3RyaW5nfSBwYXRoXG4gICAqICAgUGF0aC5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgc2V0IHBhdGgocGF0aCkge1xuICAgIGlmIChpc1VybChwYXRoKSkge1xuICAgICAgcGF0aCA9IHVybFRvUGF0aChwYXRoKVxuICAgIH1cblxuICAgIGFzc2VydE5vbkVtcHR5KHBhdGgsICdwYXRoJylcblxuICAgIGlmICh0aGlzLnBhdGggIT09IHBhdGgpIHtcbiAgICAgIHRoaXMuaGlzdG9yeS5wdXNoKHBhdGgpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgc3RlbSAoYmFzZW5hbWUgdy9vIGV4dG5hbWUpIChleGFtcGxlOiBgJ2luZGV4Lm1pbidgKS5cbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICogICBTdGVtLlxuICAgKi9cbiAgZ2V0IHN0ZW0oKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLnBhdGggPT09ICdzdHJpbmcnXG4gICAgICA/IG1pbnBhdGguYmFzZW5hbWUodGhpcy5wYXRoLCB0aGlzLmV4dG5hbWUpXG4gICAgICA6IHVuZGVmaW5lZFxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgc3RlbSAoYmFzZW5hbWUgdy9vIGV4dG5hbWUpIChleGFtcGxlOiBgJ2luZGV4Lm1pbidgKS5cbiAgICpcbiAgICogQ2Fubm90IGNvbnRhaW4gcGF0aCBzZXBhcmF0b3JzIChgJy8nYCBvbiB1bml4LCBtYWNPUywgYW5kIGJyb3dzZXJzLCBgJ1xcJ2BcbiAgICogb24gd2luZG93cykuXG4gICAqIENhbm5vdCBiZSBudWxsaWZpZWQgKHVzZSBgZmlsZS5wYXRoID0gZmlsZS5kaXJuYW1lYCBpbnN0ZWFkKS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0ZW1cbiAgICogICBTdGVtLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKiAgIE5vdGhpbmcuXG4gICAqL1xuICBzZXQgc3RlbShzdGVtKSB7XG4gICAgYXNzZXJ0Tm9uRW1wdHkoc3RlbSwgJ3N0ZW0nKVxuICAgIGFzc2VydFBhcnQoc3RlbSwgJ3N0ZW0nKVxuICAgIHRoaXMucGF0aCA9IG1pbnBhdGguam9pbih0aGlzLmRpcm5hbWUgfHwgJycsIHN0ZW0gKyAodGhpcy5leHRuYW1lIHx8ICcnKSlcbiAgfVxuXG4gIC8vIE5vcm1hbCBwcm90b3R5cGFsIG1ldGhvZHMuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBmYXRhbCBtZXNzYWdlIGZvciBgcmVhc29uYCBhc3NvY2lhdGVkIHdpdGggdGhlIGZpbGUuXG4gICAqXG4gICAqIFRoZSBgZmF0YWxgIGZpZWxkIG9mIHRoZSBtZXNzYWdlIGlzIHNldCB0byBgdHJ1ZWAgKGVycm9yOyBmaWxlIG5vdCB1c2FibGUpXG4gICAqIGFuZCB0aGUgYGZpbGVgIGZpZWxkIGlzIHNldCB0byB0aGUgY3VycmVudCBmaWxlIHBhdGguXG4gICAqIFRoZSBtZXNzYWdlIGlzIGFkZGVkIHRvIHRoZSBgbWVzc2FnZXNgIGZpZWxkIG9uIGBmaWxlYC5cbiAgICpcbiAgICogPiBcdUQ4M0VcdURFQTYgKipOb3RlKio6IGFsc28gaGFzIG9ic29sZXRlIHNpZ25hdHVyZXMuXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7TWVzc2FnZU9wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtuZXZlcn1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGxhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7bmV2ZXJ9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7bmV2ZXJ9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlfSBjYXVzZVxuICAgKiBAcGFyYW0ge1BvaW50IHwgUG9zaXRpb24gfCBudWxsIHwgdW5kZWZpbmVkfSBwbGFjZVxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtuZXZlcn1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKlxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlIHwgc3RyaW5nfSBjYXVzZU9yUmVhc29uXG4gICAqICAgUmVhc29uIGZvciBtZXNzYWdlLCBzaG91bGQgdXNlIG1hcmtkb3duLlxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IE1lc3NhZ2VPcHRpb25zIHwgUG9pbnQgfCBQb3NpdGlvbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zT3JQYXJlbnRPclBsYWNlXVxuICAgKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiAgIFBsYWNlIGluIGNvZGUgd2hlcmUgdGhlIG1lc3NhZ2Ugb3JpZ2luYXRlcyAoZXhhbXBsZTpcbiAgICogICBgJ215LXBhY2thZ2U6bXktcnVsZSdgIG9yIGAnbXktcnVsZSdgKS5cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKiAgIE5ldmVyLlxuICAgKiBAdGhyb3dzIHtWRmlsZU1lc3NhZ2V9XG4gICAqICAgTWVzc2FnZS5cbiAgICovXG4gIGZhaWwoY2F1c2VPclJlYXNvbiwgb3B0aW9uc09yUGFyZW50T3JQbGFjZSwgb3JpZ2luKSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogdGhlIG92ZXJsb2FkcyBhcmUgZmluZS5cbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5tZXNzYWdlKGNhdXNlT3JSZWFzb24sIG9wdGlvbnNPclBhcmVudE9yUGxhY2UsIG9yaWdpbilcblxuICAgIG1lc3NhZ2UuZmF0YWwgPSB0cnVlXG5cbiAgICB0aHJvdyBtZXNzYWdlXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGluZm8gbWVzc2FnZSBmb3IgYHJlYXNvbmAgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWxlLlxuICAgKlxuICAgKiBUaGUgYGZhdGFsYCBmaWVsZCBvZiB0aGUgbWVzc2FnZSBpcyBzZXQgdG8gYHVuZGVmaW5lZGAgKGluZm87IGNoYW5nZVxuICAgKiBsaWtlbHkgbm90IG5lZWRlZCkgYW5kIHRoZSBgZmlsZWAgZmllbGQgaXMgc2V0IHRvIHRoZSBjdXJyZW50IGZpbGUgcGF0aC5cbiAgICogVGhlIG1lc3NhZ2UgaXMgYWRkZWQgdG8gdGhlIGBtZXNzYWdlc2AgZmllbGQgb24gYGZpbGVgLlxuICAgKlxuICAgKiA+IFx1RDgzRVx1REVBNiAqKk5vdGUqKjogYWxzbyBoYXMgb2Jzb2xldGUgc2lnbmF0dXJlcy5cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtNZXNzYWdlT3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGxhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlIHwgc3RyaW5nfSBjYXVzZU9yUmVhc29uXG4gICAqICAgUmVhc29uIGZvciBtZXNzYWdlLCBzaG91bGQgdXNlIG1hcmtkb3duLlxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IE1lc3NhZ2VPcHRpb25zIHwgUG9pbnQgfCBQb3NpdGlvbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zT3JQYXJlbnRPclBsYWNlXVxuICAgKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiAgIFBsYWNlIGluIGNvZGUgd2hlcmUgdGhlIG1lc3NhZ2Ugb3JpZ2luYXRlcyAoZXhhbXBsZTpcbiAgICogICBgJ215LXBhY2thZ2U6bXktcnVsZSdgIG9yIGAnbXktcnVsZSdgKS5cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICogICBNZXNzYWdlLlxuICAgKi9cbiAgaW5mbyhjYXVzZU9yUmVhc29uLCBvcHRpb25zT3JQYXJlbnRPclBsYWNlLCBvcmlnaW4pIHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiB0aGUgb3ZlcmxvYWRzIGFyZSBmaW5lLlxuICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLm1lc3NhZ2UoY2F1c2VPclJlYXNvbiwgb3B0aW9uc09yUGFyZW50T3JQbGFjZSwgb3JpZ2luKVxuXG4gICAgbWVzc2FnZS5mYXRhbCA9IHVuZGVmaW5lZFxuXG4gICAgcmV0dXJuIG1lc3NhZ2VcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBtZXNzYWdlIGZvciBgcmVhc29uYCBhc3NvY2lhdGVkIHdpdGggdGhlIGZpbGUuXG4gICAqXG4gICAqIFRoZSBgZmF0YWxgIGZpZWxkIG9mIHRoZSBtZXNzYWdlIGlzIHNldCB0byBgZmFsc2VgICh3YXJuaW5nOyBjaGFuZ2UgbWF5IGJlXG4gICAqIG5lZWRlZCkgYW5kIHRoZSBgZmlsZWAgZmllbGQgaXMgc2V0IHRvIHRoZSBjdXJyZW50IGZpbGUgcGF0aC5cbiAgICogVGhlIG1lc3NhZ2UgaXMgYWRkZWQgdG8gdGhlIGBtZXNzYWdlc2AgZmllbGQgb24gYGZpbGVgLlxuICAgKlxuICAgKiA+IFx1RDgzRVx1REVBNiAqKk5vdGUqKjogYWxzbyBoYXMgb2Jzb2xldGUgc2lnbmF0dXJlcy5cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtNZXNzYWdlT3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGxhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlIHwgc3RyaW5nfSBjYXVzZU9yUmVhc29uXG4gICAqICAgUmVhc29uIGZvciBtZXNzYWdlLCBzaG91bGQgdXNlIG1hcmtkb3duLlxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IE1lc3NhZ2VPcHRpb25zIHwgUG9pbnQgfCBQb3NpdGlvbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zT3JQYXJlbnRPclBsYWNlXVxuICAgKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiAgIFBsYWNlIGluIGNvZGUgd2hlcmUgdGhlIG1lc3NhZ2Ugb3JpZ2luYXRlcyAoZXhhbXBsZTpcbiAgICogICBgJ215LXBhY2thZ2U6bXktcnVsZSdgIG9yIGAnbXktcnVsZSdgKS5cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICogICBNZXNzYWdlLlxuICAgKi9cbiAgbWVzc2FnZShjYXVzZU9yUmVhc29uLCBvcHRpb25zT3JQYXJlbnRPclBsYWNlLCBvcmlnaW4pIHtcbiAgICBjb25zdCBtZXNzYWdlID0gbmV3IFZGaWxlTWVzc2FnZShcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IHRoZSBvdmVybG9hZHMgYXJlIGZpbmUuXG4gICAgICBjYXVzZU9yUmVhc29uLFxuICAgICAgb3B0aW9uc09yUGFyZW50T3JQbGFjZSxcbiAgICAgIG9yaWdpblxuICAgIClcblxuICAgIGlmICh0aGlzLnBhdGgpIHtcbiAgICAgIG1lc3NhZ2UubmFtZSA9IHRoaXMucGF0aCArICc6JyArIG1lc3NhZ2UubmFtZVxuICAgICAgbWVzc2FnZS5maWxlID0gdGhpcy5wYXRoXG4gICAgfVxuXG4gICAgbWVzc2FnZS5mYXRhbCA9IGZhbHNlXG5cbiAgICB0aGlzLm1lc3NhZ2VzLnB1c2gobWVzc2FnZSlcblxuICAgIHJldHVybiBtZXNzYWdlXG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplIHRoZSBmaWxlLlxuICAgKlxuICAgKiA+ICoqTm90ZSoqOiB3aGljaCBlbmNvZGluZ3MgYXJlIHN1cHBvcnRlZCBkZXBlbmRzIG9uIHRoZSBlbmdpbmUuXG4gICAqID4gRm9yIGluZm8gb24gTm9kZS5qcywgc2VlOlxuICAgKiA+IDxodHRwczovL25vZGVqcy5vcmcvYXBpL3V0aWwuaHRtbCN3aGF0d2ctc3VwcG9ydGVkLWVuY29kaW5ncz4uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2VuY29kaW5nPSd1dGY4J11cbiAgICogICBDaGFyYWN0ZXIgZW5jb2RpbmcgdG8gdW5kZXJzdGFuZCBgdmFsdWVgIGFzIHdoZW4gaXRcdTIwMTlzIGEgYFVpbnQ4QXJyYXlgXG4gICAqICAgKGRlZmF1bHQ6IGAndXRmLTgnYCkuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqICAgU2VyaWFsaXplZCBmaWxlLlxuICAgKi9cbiAgdG9TdHJpbmcoZW5jb2RpbmcpIHtcbiAgICBpZiAodGhpcy52YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gJydcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHRoaXMudmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZVxuICAgIH1cblxuICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoZW5jb2RpbmcgfHwgdW5kZWZpbmVkKVxuICAgIHJldHVybiBkZWNvZGVyLmRlY29kZSh0aGlzLnZhbHVlKVxuICB9XG59XG5cbi8qKlxuICogQXNzZXJ0IHRoYXQgYHBhcnRgIGlzIG5vdCBhIHBhdGggKGFzIGluLCBkb2VzIG5vdCBjb250YWluIGBwYXRoLnNlcGApLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGFydFxuICogICBGaWxlIHBhdGggcGFydC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gKiAgIFBhcnQgbmFtZS5cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKiAgIE5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIGFzc2VydFBhcnQocGFydCwgbmFtZSkge1xuICBpZiAocGFydCAmJiBwYXJ0LmluY2x1ZGVzKG1pbnBhdGguc2VwKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdgJyArIG5hbWUgKyAnYCBjYW5ub3QgYmUgYSBwYXRoOiBkaWQgbm90IGV4cGVjdCBgJyArIG1pbnBhdGguc2VwICsgJ2AnXG4gICAgKVxuICB9XG59XG5cbi8qKlxuICogQXNzZXJ0IHRoYXQgYHBhcnRgIGlzIG5vdCBlbXB0eS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0gcGFydFxuICogICBUaGluZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gKiAgIFBhcnQgbmFtZS5cbiAqIEByZXR1cm5zIHthc3NlcnRzIHBhcnQgaXMgc3RyaW5nfVxuICogICBOb3RoaW5nLlxuICovXG5mdW5jdGlvbiBhc3NlcnROb25FbXB0eShwYXJ0LCBuYW1lKSB7XG4gIGlmICghcGFydCkge1xuICAgIHRocm93IG5ldyBFcnJvcignYCcgKyBuYW1lICsgJ2AgY2Fubm90IGJlIGVtcHR5JylcbiAgfVxufVxuXG4vKipcbiAqIEFzc2VydCBgcGF0aGAgZXhpc3RzLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBwYXRoXG4gKiAgIFBhdGguXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogICBEZXBlbmRlbmN5IG5hbWUuXG4gKiBAcmV0dXJucyB7YXNzZXJ0cyBwYXRoIGlzIHN0cmluZ31cbiAqICAgTm90aGluZy5cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0UGF0aChwYXRoLCBuYW1lKSB7XG4gIGlmICghcGF0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcignU2V0dGluZyBgJyArIG5hbWUgKyAnYCByZXF1aXJlcyBgcGF0aGAgdG8gYmUgc2V0IHRvbycpXG4gIH1cbn1cblxuLyoqXG4gKiBBc3NlcnQgYHZhbHVlYCBpcyBhbiBgVWludDhBcnJheWAuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZVxuICogICB0aGluZy5cbiAqIEByZXR1cm5zIHt2YWx1ZSBpcyBVaW50OEFycmF5fVxuICogICBXaGV0aGVyIGB2YWx1ZWAgaXMgYW4gYFVpbnQ4QXJyYXlgLlxuICovXG5mdW5jdGlvbiBpc1VpbnQ4QXJyYXkodmFsdWUpIHtcbiAgcmV0dXJuIEJvb2xlYW4oXG4gICAgdmFsdWUgJiZcbiAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICdieXRlTGVuZ3RoJyBpbiB2YWx1ZSAmJlxuICAgICAgJ2J5dGVPZmZzZXQnIGluIHZhbHVlXG4gIClcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIEVycm9ySW5mb1xuICogICBJbmZvIG9uIGEgYHBhcnNlNWAgZXJyb3IuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gcmVhc29uXG4gKiAgIFJlYXNvbiBvZiBlcnJvci5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBkZXNjcmlwdGlvblxuICogICBNb3JlIGluZm8gb24gZXJyb3IuXG4gKiBAcHJvcGVydHkge2ZhbHNlfSBbdXJsXVxuICogICBUdXJuIG9mZiBpZiB0aGlzIGlzIG5vdCBkb2N1bWVudGVkIGluIHRoZSBodG1sNSBzcGVjIChvcHRpb25hbCkuXG4gKi9cblxuZXhwb3J0IGNvbnN0IGVycm9ycyA9IHtcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGFiYW5kb25lZEhlYWRFbGVtZW50Q2hpbGQ6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIG1ldGFkYXRhIGVsZW1lbnQgYWZ0ZXIgaGVhZCcsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBlbGVtZW50IGFmdGVyIGhlYWQuIEV4cGVjdGVkIHRoZSBlbGVtZW50IGJlZm9yZSBgPC9oZWFkPmAnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGFicnVwdENsb3NpbmdPZkVtcHR5Q29tbWVudDoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgYWJydXB0bHkgY2xvc2VkIGVtcHR5IGNvbW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgPmAgb3IgYC0+YC4gRXhwZWN0ZWQgYC0tPmAgdG8gY2xvc2UgY29tbWVudHMnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBhYnJ1cHREb2N0eXBlUHVibGljSWRlbnRpZmllcjoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgYWJydXB0bHkgY2xvc2VkIHB1YmxpYyBpZGVudGlmaWVyJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGA+YC4gRXhwZWN0ZWQgYSBjbG9zaW5nIGBcImAgb3IgYFxcJ2AgYWZ0ZXIgdGhlIHB1YmxpYyBpZGVudGlmaWVyJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgYWJydXB0RG9jdHlwZVN5c3RlbUlkZW50aWZpZXI6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGFicnVwdGx5IGNsb3NlZCBzeXN0ZW0gaWRlbnRpZmllcicsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBgPmAuIEV4cGVjdGVkIGEgY2xvc2luZyBgXCJgIG9yIGBcXCdgIGFmdGVyIHRoZSBpZGVudGlmaWVyIGlkZW50aWZpZXInXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBhYnNlbmNlT2ZEaWdpdHNJbk51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2U6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIG5vbi1kaWdpdCBhdCBzdGFydCBvZiBudW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2UnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgYFswLTldYCBmb3IgZGVjaW1hbCByZWZlcmVuY2VzIG9yIGBbMC05YS1mQS1GXWAgZm9yIGhleGFkZWNpbWFsIHJlZmVyZW5jZXMnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBjZGF0YUluSHRtbENvbnRlbnQ6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIENEQVRBIHNlY3Rpb24gaW4gSFRNTCcsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBgPCFbQ0RBVEFbYCBpbiBIVE1MLiBSZW1vdmUgaXQsIHVzZSBhIGNvbW1lbnQsIG9yIGVuY29kZSBzcGVjaWFsIGNoYXJhY3RlcnMgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGNoYXJhY3RlclJlZmVyZW5jZU91dHNpZGVVbmljb2RlUmFuZ2U6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIHRvbyBiaWcgbnVtZXJpYyBjaGFyYWN0ZXIgcmVmZXJlbmNlJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkbHkgaGlnaCBjaGFyYWN0ZXIgcmVmZXJlbmNlLiBFeHBlY3RlZCBjaGFyYWN0ZXIgcmVmZXJlbmNlcyB0byBiZSBhdCBtb3N0IGhleGFkZWNpbWFsIDEwZmZmZiAob3IgZGVjaW1hbCAxMTE0MTExKSdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGNsb3NpbmdPZkVsZW1lbnRXaXRoT3BlbkNoaWxkRWxlbWVudHM6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGNsb3NpbmcgdGFnIHdpdGggb3BlbiBjaGlsZCBlbGVtZW50cycsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZGx5IGNsb3NpbmcgdGFnLiBFeHBlY3RlZCBvdGhlciB0YWdzIHRvIGJlIGNsb3NlZCBmaXJzdCcsXG4gICAgdXJsOiBmYWxzZVxuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgY29udHJvbENoYXJhY3RlckluSW5wdXRTdHJlYW06IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGNvbnRyb2wgY2hhcmFjdGVyJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGNvbnRyb2wgY2hhcmFjdGVyIGAleGAuIEV4cGVjdGVkIGEgbm9uLWNvbnRyb2wgY29kZSBwb2ludCwgMHgwMCwgb3IgQVNDSUkgd2hpdGVzcGFjZSdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGNvbnRyb2xDaGFyYWN0ZXJSZWZlcmVuY2U6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGNvbnRyb2wgY2hhcmFjdGVyIHJlZmVyZW5jZScsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZGx5IGNvbnRyb2wgY2hhcmFjdGVyIGluIHJlZmVyZW5jZS4gRXhwZWN0ZWQgYSBub24tY29udHJvbCBjb2RlIHBvaW50LCAweDAwLCBvciBBU0NJSSB3aGl0ZXNwYWNlJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZGlzYWxsb3dlZENvbnRlbnRJbk5vc2NyaXB0SW5IZWFkOiB7XG4gICAgcmVhc29uOiAnRGlzYWxsb3dlZCBjb250ZW50IGluc2lkZSBgPG5vc2NyaXB0PmAgaW4gYDxoZWFkPmAnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgdGV4dCBjaGFyYWN0ZXIgYCVjYC4gT25seSB1c2UgdGV4dCBpbiBgPG5vc2NyaXB0PmBzIGluIGA8Ym9keT5gJyxcbiAgICB1cmw6IGZhbHNlXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBkdXBsaWNhdGVBdHRyaWJ1dGU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGR1cGxpY2F0ZSBhdHRyaWJ1dGUnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWRseSBkb3VibGUgYXR0cmlidXRlLiBFeHBlY3RlZCBhdHRyaWJ1dGVzIHRvIG9jY3VyIG9ubHkgb25jZSdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGVuZFRhZ1dpdGhBdHRyaWJ1dGVzOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBhdHRyaWJ1dGUgb24gY2xvc2luZyB0YWcnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBhdHRyaWJ1dGUuIEV4cGVjdGVkIGA+YCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZW5kVGFnV2l0aFRyYWlsaW5nU29saWR1czoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgc2xhc2ggYXQgZW5kIG9mIGNsb3NpbmcgdGFnJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjLTFgLiBFeHBlY3RlZCBgPmAgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGVuZFRhZ1dpdGhvdXRNYXRjaGluZ09wZW5FbGVtZW50OiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCB1bm9wZW5lZCBlbmQgdGFnJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIHRhZy4gRXhwZWN0ZWQgbm8gZW5kIHRhZyBvciBhbm90aGVyIGVuZCB0YWcnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGVvZkJlZm9yZVRhZ05hbWU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIHRhZyBuYW1lIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlb2ZJbkNkYXRhOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZSBpbiBDREFUQScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBgXV0+YCB0byBjbG9zZSB0aGUgQ0RBVEEnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlb2ZJbkNvbW1lbnQ6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlIGluIGNvbW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgYC0tPmAgdG8gY2xvc2UgdGhlIGNvbW1lbnQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlb2ZJbkRvY3R5cGU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlIGluIGRvY3R5cGUnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGEgdmFsaWQgZG9jdHlwZSAoc3VjaCBhcyBgPCFkb2N0eXBlIGh0bWw+YCknXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlb2ZJbkVsZW1lbnRUaGF0Q2FuQ29udGFpbk9ubHlUZXh0OiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZSBpbiBlbGVtZW50IHRoYXQgY2FuIG9ubHkgY29udGFpbiB0ZXh0JyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIHRleHQgb3IgYSBjbG9zaW5nIHRhZycsXG4gICAgdXJsOiBmYWxzZVxuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZW9mSW5TY3JpcHRIdG1sQ29tbWVudExpa2VUZXh0OiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZSBpbiBjb21tZW50IGluc2lkZSBzY3JpcHQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgYC0tPmAgdG8gY2xvc2UgdGhlIGNvbW1lbnQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlb2ZJblRhZzoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgaW4gdGFnJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGA+YCB0byBjbG9zZSB0aGUgdGFnJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgaW5jb3JyZWN0bHlDbG9zZWRDb21tZW50OiB7XG4gICAgcmVhc29uOiAnSW5jb3JyZWN0bHkgY2xvc2VkIGNvbW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWMtMWAuIEV4cGVjdGVkIGAtLT5gIHRvIGNsb3NlIHRoZSBjb21tZW50J1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgaW5jb3JyZWN0bHlPcGVuZWRDb21tZW50OiB7XG4gICAgcmVhc29uOiAnSW5jb3JyZWN0bHkgb3BlbmVkIGNvbW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBgPCEtLWAgdG8gb3BlbiB0aGUgY29tbWVudCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGludmFsaWRDaGFyYWN0ZXJTZXF1ZW5jZUFmdGVyRG9jdHlwZU5hbWU6IHtcbiAgICByZWFzb246ICdJbnZhbGlkIHNlcXVlbmNlIGFmdGVyIGRvY3R5cGUgbmFtZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIHNlcXVlbmNlIGF0IGAlY2AuIEV4cGVjdGVkIGBwdWJsaWNgIG9yIGBzeXN0ZW1gJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgaW52YWxpZEZpcnN0Q2hhcmFjdGVyT2ZUYWdOYW1lOiB7XG4gICAgcmVhc29uOiAnSW52YWxpZCBmaXJzdCBjaGFyYWN0ZXIgaW4gdGFnIG5hbWUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBhbiBBU0NJSSBsZXR0ZXIgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3BsYWNlZERvY3R5cGU6IHtcbiAgICByZWFzb246ICdNaXNwbGFjZWQgZG9jdHlwZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGRvY3R5cGUuIEV4cGVjdGVkIGRvY3R5cGUgYmVmb3JlIGhlYWQnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3BsYWNlZFN0YXJ0VGFnRm9ySGVhZEVsZW1lbnQ6IHtcbiAgICByZWFzb246ICdNaXNwbGFjZWQgYDxoZWFkPmAgc3RhcnQgdGFnJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIHN0YXJ0IHRhZyBgPGhlYWQ+YC4gRXhwZWN0ZWQgYDxoZWFkPmAgZGlyZWN0bHkgYWZ0ZXIgZG9jdHlwZScsXG4gICAgdXJsOiBmYWxzZVxuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ0F0dHJpYnV0ZVZhbHVlOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyBhdHRyaWJ1dGUgdmFsdWUnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgYCVjLTFgLiBFeHBlY3RlZCBhbiBhdHRyaWJ1dGUgdmFsdWUgb3Igbm8gYCVjLTFgIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNzaW5nRG9jdHlwZToge1xuICAgIHJlYXNvbjogJ01pc3NpbmcgZG9jdHlwZSBiZWZvcmUgb3RoZXIgY29udGVudCcsXG4gICAgZGVzY3JpcHRpb246ICdFeHBlY3RlZCBhIGA8IWRvY3R5cGUgaHRtbD5gIGJlZm9yZSBhbnl0aGluZyBlbHNlJyxcbiAgICB1cmw6IGZhbHNlXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNzaW5nRG9jdHlwZU5hbWU6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIGRvY3R5cGUgbmFtZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGRvY3R5cGUgZW5kIGF0IGAlY2AuIEV4cGVjdGVkIGBodG1sYCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ0RvY3R5cGVQdWJsaWNJZGVudGlmaWVyOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyBwdWJsaWMgaWRlbnRpZmllciBpbiBkb2N0eXBlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgaWRlbnRpZmllciBmb3IgYHB1YmxpY2AgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdEb2N0eXBlU3lzdGVtSWRlbnRpZmllcjoge1xuICAgIHJlYXNvbjogJ01pc3Npbmcgc3lzdGVtIGlkZW50aWZpZXIgaW4gZG9jdHlwZScsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBpZGVudGlmaWVyIGZvciBgc3lzdGVtYCBpbnN0ZWFkIChzdWdnZXN0ZWQ6IGBcImFib3V0OmxlZ2FjeS1jb21wYXRcImApJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ0VuZFRhZ05hbWU6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIG5hbWUgaW4gZW5kIHRhZycsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIGFuIEFTQ0lJIGxldHRlciBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ1F1b3RlQmVmb3JlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXI6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHF1b3RlIGJlZm9yZSBwdWJsaWMgaWRlbnRpZmllciBpbiBkb2N0eXBlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgYFwiYCBvciBgXFwnYCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ1F1b3RlQmVmb3JlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXI6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHF1b3RlIGJlZm9yZSBzeXN0ZW0gaWRlbnRpZmllciBpbiBkb2N0eXBlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgYFwiYCBvciBgXFwnYCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ1NlbWljb2xvbkFmdGVyQ2hhcmFjdGVyUmVmZXJlbmNlOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyBzZW1pY29sb24gYWZ0ZXIgY2hhcmFjdGVyIHJlZmVyZW5jZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIGA7YCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVQdWJsaWNLZXl3b3JkOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyB3aGl0ZXNwYWNlIGFmdGVyIHB1YmxpYyBpZGVudGlmaWVyIGluIGRvY3R5cGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBBU0NJSSB3aGl0ZXNwYWNlIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNzaW5nV2hpdGVzcGFjZUFmdGVyRG9jdHlwZVN5c3RlbUtleXdvcmQ6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHdoaXRlc3BhY2UgYWZ0ZXIgc3lzdGVtIGlkZW50aWZpZXIgaW4gZG9jdHlwZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIEFTQ0lJIHdoaXRlc3BhY2UgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdXaGl0ZXNwYWNlQmVmb3JlRG9jdHlwZU5hbWU6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHdoaXRlc3BhY2UgYmVmb3JlIGRvY3R5cGUgbmFtZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIEFTQ0lJIHdoaXRlc3BhY2UgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdXaGl0ZXNwYWNlQmV0d2VlbkF0dHJpYnV0ZXM6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHdoaXRlc3BhY2UgYmV0d2VlbiBhdHRyaWJ1dGVzJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgQVNDSUkgd2hpdGVzcGFjZSBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ1doaXRlc3BhY2VCZXR3ZWVuRG9jdHlwZVB1YmxpY0FuZFN5c3RlbUlkZW50aWZpZXJzOiB7XG4gICAgcmVhc29uOlxuICAgICAgJ01pc3Npbmcgd2hpdGVzcGFjZSBiZXR3ZWVuIHB1YmxpYyBhbmQgc3lzdGVtIGlkZW50aWZpZXJzIGluIGRvY3R5cGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBBU0NJSSB3aGl0ZXNwYWNlIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBuZXN0ZWRDb21tZW50OiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBuZXN0ZWQgY29tbWVudCcsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGA8IS0tYC4gRXhwZWN0ZWQgYC0tPmAnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBuZXN0ZWROb3NjcmlwdEluSGVhZDoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgbmVzdGVkIGA8bm9zY3JpcHQ+YCBpbiBgPGhlYWQ+YCcsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBgPG5vc2NyaXB0PmAuIEV4cGVjdGVkIGEgY2xvc2luZyB0YWcgb3IgYSBtZXRhIGVsZW1lbnQnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG5vbkNvbmZvcm1pbmdEb2N0eXBlOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBub24tY29uZm9ybWluZyBkb2N0eXBlIGRlY2xhcmF0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdFeHBlY3RlZCBgPCFkb2N0eXBlIGh0bWw+YCBvciBgPCFkb2N0eXBlIGh0bWwgc3lzdGVtIFwiYWJvdXQ6bGVnYWN5LWNvbXBhdFwiPmAnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG5vblZvaWRIdG1sRWxlbWVudFN0YXJ0VGFnV2l0aFRyYWlsaW5nU29saWR1czoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgdHJhaWxpbmcgc2xhc2ggb24gc3RhcnQgdGFnIG9mIG5vbi12b2lkIGVsZW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgL2AuIEV4cGVjdGVkIGA+YCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbm9uY2hhcmFjdGVyQ2hhcmFjdGVyUmVmZXJlbmNlOiB7XG4gICAgcmVhc29uOlxuICAgICAgJ1VuZXhwZWN0ZWQgbm9uY2hhcmFjdGVyIGNvZGUgcG9pbnQgcmVmZXJlbmNlZCBieSBjaGFyYWN0ZXIgcmVmZXJlbmNlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgY29kZSBwb2ludC4gRG8gbm90IHVzZSBub25jaGFyYWN0ZXJzIGluIEhUTUwnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBub25jaGFyYWN0ZXJJbklucHV0U3RyZWFtOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBub25jaGFyYWN0ZXIgY2hhcmFjdGVyJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgY29kZSBwb2ludCBgJXhgLiBEbyBub3QgdXNlIG5vbmNoYXJhY3RlcnMgaW4gSFRNTCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG51bGxDaGFyYWN0ZXJSZWZlcmVuY2U6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIE5VTEwgY2hhcmFjdGVyIHJlZmVyZW5jZWQgYnkgY2hhcmFjdGVyIHJlZmVyZW5jZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGNvZGUgcG9pbnQuIERvIG5vdCB1c2UgTlVMTCBjaGFyYWN0ZXJzIGluIEhUTUwnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBvcGVuRWxlbWVudHNMZWZ0QWZ0ZXJFb2Y6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGNsb3NpbmcgdGFnIGluc3RlYWQnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIHN1cnJvZ2F0ZUNoYXJhY3RlclJlZmVyZW5jZToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgc3Vycm9nYXRlIGNoYXJhY3RlciByZWZlcmVuY2VkIGJ5IGNoYXJhY3RlciByZWZlcmVuY2UnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgY29kZSBwb2ludC4gRG8gbm90IHVzZSBsb25lIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzIGluIEhUTUwnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBzdXJyb2dhdGVJbklucHV0U3RyZWFtOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBzdXJyb2dhdGUgY2hhcmFjdGVyJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGNvZGUgcG9pbnQgYCV4YC4gRG8gbm90IHVzZSBsb25lIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzIGluIEhUTUwnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICB1bmV4cGVjdGVkQ2hhcmFjdGVyQWZ0ZXJEb2N0eXBlU3lzdGVtSWRlbnRpZmllcjoge1xuICAgIHJlYXNvbjogJ0ludmFsaWQgY2hhcmFjdGVyIGFmdGVyIHN5c3RlbSBpZGVudGlmaWVyIGluIGRvY3R5cGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBjaGFyYWN0ZXIgYXQgYCVjYC4gRXhwZWN0ZWQgYD5gJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgdW5leHBlY3RlZENoYXJhY3RlckluQXR0cmlidXRlTmFtZToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgY2hhcmFjdGVyIGluIGF0dHJpYnV0ZSBuYW1lJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIHdoaXRlc3BhY2UsIGAvYCwgYD5gLCBgPWAsIG9yIHByb2JhYmx5IGFuIEFTQ0lJIGxldHRlcidcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIHVuZXhwZWN0ZWRDaGFyYWN0ZXJJblVucXVvdGVkQXR0cmlidXRlVmFsdWU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGNoYXJhY3RlciBpbiB1bnF1b3RlZCBhdHRyaWJ1dGUgdmFsdWUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBRdW90ZSB0aGUgYXR0cmlidXRlIHZhbHVlIHRvIGluY2x1ZGUgaXQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICB1bmV4cGVjdGVkRXF1YWxzU2lnbkJlZm9yZUF0dHJpYnV0ZU5hbWU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVxdWFscyBzaWduIGJlZm9yZSBhdHRyaWJ1dGUgbmFtZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEFkZCBhbiBhdHRyaWJ1dGUgbmFtZSBiZWZvcmUgaXQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICB1bmV4cGVjdGVkTnVsbENoYXJhY3Rlcjoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgTlVMTCBjaGFyYWN0ZXInLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgY29kZSBwb2ludCBgJXhgLiBEbyBub3QgdXNlIE5VTEwgY2hhcmFjdGVycyBpbiBIVE1MJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgdW5leHBlY3RlZFF1ZXN0aW9uTWFya0luc3RlYWRPZlRhZ05hbWU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIHF1ZXN0aW9uIG1hcmsgaW5zdGVhZCBvZiB0YWcgbmFtZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIGFuIEFTQ0lJIGxldHRlciBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgdW5leHBlY3RlZFNvbGlkdXNJblRhZzoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgc2xhc2ggaW4gdGFnJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGAlYy0xYC4gRXhwZWN0ZWQgaXQgZm9sbG93ZWQgYnkgYD5gIG9yIGluIGEgcXVvdGVkIGF0dHJpYnV0ZSB2YWx1ZSdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIHVua25vd25OYW1lZENoYXJhY3RlclJlZmVyZW5jZToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgdW5rbm93biBuYW1lZCBjaGFyYWN0ZXIgcmVmZXJlbmNlJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGNoYXJhY3RlciByZWZlcmVuY2UuIEV4cGVjdGVkIGtub3duIG5hbWVkIGNoYXJhY3RlciByZWZlcmVuY2VzJ1xuICB9XG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtSb290fSBmcm9tICdoYXN0J1xuICogQGltcG9ydCB7UGFyc2VyRXJyb3J9IGZyb20gJ3BhcnNlNSdcbiAqIEBpbXBvcnQge1ZhbHVlfSBmcm9tICd2ZmlsZSdcbiAqIEBpbXBvcnQge0Vycm9yQ29kZSwgT3B0aW9uc30gZnJvbSAnLi90eXBlcy5qcydcbiAqL1xuXG5pbXBvcnQge29rIGFzIGFzc2VydH0gZnJvbSAnZGV2bG9wJ1xuaW1wb3J0IHtmcm9tUGFyc2U1fSBmcm9tICdoYXN0LXV0aWwtZnJvbS1wYXJzZTUnXG5pbXBvcnQge3BhcnNlLCBwYXJzZUZyYWdtZW50fSBmcm9tICdwYXJzZTUnXG5pbXBvcnQge1ZGaWxlfSBmcm9tICd2ZmlsZSdcbmltcG9ydCB7VkZpbGVNZXNzYWdlfSBmcm9tICd2ZmlsZS1tZXNzYWdlJ1xuaW1wb3J0IHtlcnJvcnN9IGZyb20gJy4vZXJyb3JzLmpzJ1xuXG5jb25zdCBiYXNlID0gJ2h0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3BhcnNpbmcuaHRtbCNwYXJzZS1lcnJvci0nXG5cbmNvbnN0IGRhc2hUb0NhbWVsUmUgPSAvLVthLXpdL2dcbmNvbnN0IGZvcm1hdENSZSA9IC8lYyg/OihbLStdKShcXGQrKSk/L2dcbmNvbnN0IGZvcm1hdFhSZSA9IC8leC9nXG5cbmNvbnN0IGZhdGFsaXRpZXMgPSB7MjogdHJ1ZSwgMTogZmFsc2UsIDA6IG51bGx9XG5cbi8qKiBAdHlwZSB7UmVhZG9ubHk8T3B0aW9ucz59ICovXG5jb25zdCBlbXB0eU9wdGlvbnMgPSB7fVxuXG4vKipcbiAqIFR1cm4gc2VyaWFsaXplZCBIVE1MIGludG8gYSBoYXN0IHRyZWUuXG4gKlxuICogQHBhcmFtIHtWRmlsZSB8IFZhbHVlfSB2YWx1ZVxuICogICBTZXJpYWxpemVkIEhUTUwgdG8gcGFyc2UuXG4gKiBAcGFyYW0ge1JlYWRvbmx5PE9wdGlvbnM+IHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAqIEByZXR1cm5zIHtSb290fVxuICogICBUcmVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZnJvbUh0bWwodmFsdWUsIG9wdGlvbnMpIHtcbiAgY29uc3Qgc2V0dGluZ3MgPSBvcHRpb25zIHx8IGVtcHR5T3B0aW9uc1xuICBjb25zdCBvbmVycm9yID0gc2V0dGluZ3Mub25lcnJvclxuICBjb25zdCBmaWxlID0gdmFsdWUgaW5zdGFuY2VvZiBWRmlsZSA/IHZhbHVlIDogbmV3IFZGaWxlKHZhbHVlKVxuICBjb25zdCBwYXJzZUZ1bmN0aW9uID0gc2V0dGluZ3MuZnJhZ21lbnQgPyBwYXJzZUZyYWdtZW50IDogcGFyc2VcbiAgY29uc3QgZG9jdW1lbnQgPSBTdHJpbmcoZmlsZSlcbiAgY29uc3QgcDVEb2N1bWVudCA9IHBhcnNlRnVuY3Rpb24oZG9jdW1lbnQsIHtcbiAgICBzb3VyY2VDb2RlTG9jYXRpb25JbmZvOiB0cnVlLFxuICAgIC8vIE5vdGUgYHBhcnNlNWAgdHlwZXMgY3VycmVudGx5IGRvIG5vdCBhbGxvdyBgdW5kZWZpbmVkYC5cbiAgICBvblBhcnNlRXJyb3I6IHNldHRpbmdzLm9uZXJyb3IgPyBpbnRlcm5hbE9uZXJyb3IgOiBudWxsLFxuICAgIHNjcmlwdGluZ0VuYWJsZWQ6IGZhbHNlXG4gIH0pXG5cbiAgLy8gYHBhcnNlNWAgcmV0dXJucyBkb2N1bWVudCB3aGljaCBhcmUgYWx3YXlzIG1hcHBlZCB0byByb290cy5cbiAgcmV0dXJuIC8qKiBAdHlwZSB7Um9vdH0gKi8gKFxuICAgIGZyb21QYXJzZTUocDVEb2N1bWVudCwge1xuICAgICAgZmlsZSxcbiAgICAgIHNwYWNlOiBzZXR0aW5ncy5zcGFjZSxcbiAgICAgIHZlcmJvc2U6IHNldHRpbmdzLnZlcmJvc2VcbiAgICB9KVxuICApXG5cbiAgLyoqXG4gICAqIEhhbmRsZSBhIHBhcnNlIGVycm9yLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnNlckVycm9yfSBlcnJvclxuICAgKiAgIFBhcnNlNSBlcnJvci5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgZnVuY3Rpb24gaW50ZXJuYWxPbmVycm9yKGVycm9yKSB7XG4gICAgY29uc3QgY29kZSA9IGVycm9yLmNvZGVcbiAgICBjb25zdCBuYW1lID0gY2FtZWxjYXNlKGNvZGUpXG4gICAgY29uc3Qgc2V0dGluZyA9IHNldHRpbmdzW25hbWVdXG4gICAgY29uc3QgY29uZmlnID0gc2V0dGluZyA9PT0gbnVsbCB8fCBzZXR0aW5nID09PSB1bmRlZmluZWQgPyB0cnVlIDogc2V0dGluZ1xuICAgIGNvbnN0IGxldmVsID0gdHlwZW9mIGNvbmZpZyA9PT0gJ251bWJlcicgPyBjb25maWcgOiBjb25maWcgPyAxIDogMFxuXG4gICAgaWYgKGxldmVsKSB7XG4gICAgICBjb25zdCBpbmZvID0gZXJyb3JzW25hbWVdXG4gICAgICBhc3NlcnQoaW5mbywgJ2V4cGVjdGVkIGtub3duIGVycm9yIGZyb20gYHBhcnNlNWAnKVxuXG4gICAgICBjb25zdCBtZXNzYWdlID0gbmV3IFZGaWxlTWVzc2FnZShmb3JtYXQoaW5mby5yZWFzb24pLCB7XG4gICAgICAgIHBsYWNlOiB7XG4gICAgICAgICAgc3RhcnQ6IHtcbiAgICAgICAgICAgIGxpbmU6IGVycm9yLnN0YXJ0TGluZSxcbiAgICAgICAgICAgIGNvbHVtbjogZXJyb3Iuc3RhcnRDb2wsXG4gICAgICAgICAgICBvZmZzZXQ6IGVycm9yLnN0YXJ0T2Zmc2V0XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlbmQ6IHtcbiAgICAgICAgICAgIGxpbmU6IGVycm9yLmVuZExpbmUsXG4gICAgICAgICAgICBjb2x1bW46IGVycm9yLmVuZENvbCxcbiAgICAgICAgICAgIG9mZnNldDogZXJyb3IuZW5kT2Zmc2V0XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBydWxlSWQ6IGNvZGUsXG4gICAgICAgIHNvdXJjZTogJ2hhc3QtdXRpbC1mcm9tLWh0bWwnXG4gICAgICB9KVxuXG4gICAgICBpZiAoZmlsZS5wYXRoKSB7XG4gICAgICAgIG1lc3NhZ2UuZmlsZSA9IGZpbGUucGF0aFxuICAgICAgICBtZXNzYWdlLm5hbWUgPSBmaWxlLnBhdGggKyAnOicgKyBtZXNzYWdlLm5hbWVcbiAgICAgIH1cblxuICAgICAgbWVzc2FnZS5mYXRhbCA9IGZhdGFsaXRpZXNbbGV2ZWxdXG4gICAgICBtZXNzYWdlLm5vdGUgPSBmb3JtYXQoaW5mby5kZXNjcmlwdGlvbilcbiAgICAgIG1lc3NhZ2UudXJsID0gaW5mby51cmwgPT09IGZhbHNlID8gdW5kZWZpbmVkIDogYmFzZSArIGNvZGVcblxuICAgICAgYXNzZXJ0KG9uZXJyb3IsICdgaW50ZXJuYWxPbmVycm9yYCBpcyBub3QgcGFzc2VkIGlmIGBvbmVycm9yYCBpcyBub3Qgc2V0JylcbiAgICAgIG9uZXJyb3IobWVzc2FnZSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGb3JtYXQgYSBodW1hbiByZWFkYWJsZSBzdHJpbmcgYWJvdXQgYW4gZXJyb3IuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAgICAgKiAgIFZhbHVlIHRvIGZvcm1hdC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgICAqICAgRm9ybWF0dGVkLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZvcm1hdCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoZm9ybWF0Q1JlLCBmb3JtYXRDKS5yZXBsYWNlKGZvcm1hdFhSZSwgZm9ybWF0WClcblxuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQgdGhlIGNoYXJhY3Rlci5cbiAgICAgICAqXG4gICAgICAgKiBAcGFyYW0ge3N0cmluZ30gX1xuICAgICAgICogICBNYXRjaC5cbiAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSAkMVxuICAgICAgICogICBTaWduIChgLWAgb3IgYCtgLCBvcHRpb25hbCkuXG4gICAgICAgKiBAcGFyYW0ge3N0cmluZ30gJDJcbiAgICAgICAqICAgT2Zmc2V0LlxuICAgICAgICogQHJldHVybnMge3N0cmluZ31cbiAgICAgICAqICAgRm9ybWF0dGVkLlxuICAgICAgICovXG4gICAgICBmdW5jdGlvbiBmb3JtYXRDKF8sICQxLCAkMikge1xuICAgICAgICBjb25zdCBvZmZzZXQgPVxuICAgICAgICAgICgkMiA/IE51bWJlci5wYXJzZUludCgkMiwgMTApIDogMCkgKiAoJDEgPT09ICctJyA/IC0xIDogMSlcbiAgICAgICAgY29uc3QgY2hhciA9IGRvY3VtZW50LmNoYXJBdChlcnJvci5zdGFydE9mZnNldCArIG9mZnNldClcbiAgICAgICAgcmV0dXJuIHZpc3VhbGl6ZUNoYXJhY3RlcihjaGFyKVxuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdCB0aGUgY2hhcmFjdGVyIGNvZGUuXG4gICAgICAgKlxuICAgICAgICogQHJldHVybnMge3N0cmluZ31cbiAgICAgICAqICAgRm9ybWF0dGVkLlxuICAgICAgICovXG4gICAgICBmdW5jdGlvbiBmb3JtYXRYKCkge1xuICAgICAgICByZXR1cm4gdmlzdWFsaXplQ2hhcmFjdGVyQ29kZShkb2N1bWVudC5jaGFyQ29kZUF0KGVycm9yLnN0YXJ0T2Zmc2V0KSlcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqICAgRXJyb3IgY29kZSBpbiBkYXNoIGNhc2UuXG4gKiBAcmV0dXJucyB7RXJyb3JDb2RlfVxuICogICBFcnJvciBjb2RlIGluIGNhbWVsY2FzZS5cbiAqL1xuZnVuY3Rpb24gY2FtZWxjYXNlKHZhbHVlKSB7XG4gIC8vIFRoaXMgc2hvdWxkIG1hdGNoIGFuIGVycm9yIGNvZGUuXG4gIHJldHVybiAvKiogQHR5cGUge0Vycm9yQ29kZX0gKi8gKHZhbHVlLnJlcGxhY2UoZGFzaFRvQ2FtZWxSZSwgZGFzaFRvQ2FtZWwpKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSAkMFxuICogICBNYXRjaC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIENhbWVsY2FzZWQuXG4gKi9cbmZ1bmN0aW9uIGRhc2hUb0NhbWVsKCQwKSB7XG4gIHJldHVybiAkMC5jaGFyQXQoMSkudG9VcHBlckNhc2UoKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBjaGFyXG4gKiAgIENoYXJhY3Rlci5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEZvcm1hdHRlZC5cbiAqL1xuZnVuY3Rpb24gdmlzdWFsaXplQ2hhcmFjdGVyKGNoYXIpIHtcbiAgcmV0dXJuIGNoYXIgPT09ICdgJyA/ICdgIGAgYCcgOiBjaGFyXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IGNoYXJDb2RlXG4gKiAgIENoYXJhY3RlciBjb2RlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRm9ybWF0dGVkLlxuICovXG5mdW5jdGlvbiB2aXN1YWxpemVDaGFyYWN0ZXJDb2RlKGNoYXJDb2RlKSB7XG4gIHJldHVybiAnMHgnICsgY2hhckNvZGUudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKClcbn1cbiIsICIvKipcbiAqIExpc3Qgb2YgSFRNTCB2b2lkIHRhZyBuYW1lcy5cbiAqXG4gKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn1cbiAqL1xuZXhwb3J0IGNvbnN0IGh0bWxWb2lkRWxlbWVudHMgPSBbXG4gICdhcmVhJyxcbiAgJ2Jhc2UnLFxuICAnYmFzZWZvbnQnLFxuICAnYmdzb3VuZCcsXG4gICdicicsXG4gICdjb2wnLFxuICAnY29tbWFuZCcsXG4gICdlbWJlZCcsXG4gICdmcmFtZScsXG4gICdocicsXG4gICdpbWFnZScsXG4gICdpbWcnLFxuICAnaW5wdXQnLFxuICAna2V5Z2VuJyxcbiAgJ2xpbmsnLFxuICAnbWV0YScsXG4gICdwYXJhbScsXG4gICdzb3VyY2UnLFxuICAndHJhY2snLFxuICAnd2JyJ1xuXVxuIiwgIi8qKlxuICogQGNhbGxiYWNrIEhhbmRsZXJcbiAqICAgSGFuZGxlIGEgdmFsdWUsIHdpdGggYSBjZXJ0YWluIElEIGZpZWxkIHNldCB0byBhIGNlcnRhaW4gdmFsdWUuXG4gKiAgIFRoZSBJRCBmaWVsZCBpcyBwYXNzZWQgdG8gYHp3aXRjaGAsIGFuZCBpdFx1MjAxOXMgdmFsdWUgaXMgdGhpcyBmdW5jdGlvblx1MjAxOXNcbiAqICAgcGxhY2Ugb24gdGhlIGBoYW5kbGVyc2AgcmVjb3JkLlxuICogQHBhcmFtIHsuLi5hbnl9IHBhcmFtZXRlcnNcbiAqICAgQXJiaXRyYXJ5IHBhcmFtZXRlcnMgcGFzc2VkIHRvIHRoZSB6d2l0Y2guXG4gKiAgIFRoZSBmaXJzdCB3aWxsIGJlIGFuIG9iamVjdCB3aXRoIGEgY2VydGFpbiBJRCBmaWVsZCBzZXQgdG8gYSBjZXJ0YWluIHZhbHVlLlxuICogQHJldHVybnMge2FueX1cbiAqICAgQW55dGhpbmchXG4gKi9cblxuLyoqXG4gKiBAY2FsbGJhY2sgVW5rbm93bkhhbmRsZXJcbiAqICAgSGFuZGxlIHZhbHVlcyB0aGF0IGRvIGhhdmUgYSBjZXJ0YWluIElEIGZpZWxkLCBidXQgaXRcdTIwMTlzIHNldCB0byBhIHZhbHVlXG4gKiAgIHRoYXQgaXMgbm90IGxpc3RlZCBpbiB0aGUgYGhhbmRsZXJzYCByZWNvcmQuXG4gKiBAcGFyYW0ge3Vua25vd259IHZhbHVlXG4gKiAgIEFuIG9iamVjdCB3aXRoIGEgY2VydGFpbiBJRCBmaWVsZCBzZXQgdG8gYW4gdW5rbm93biB2YWx1ZS5cbiAqIEBwYXJhbSB7Li4uYW55fSByZXN0XG4gKiAgIEFyYml0cmFyeSBwYXJhbWV0ZXJzIHBhc3NlZCB0byB0aGUgendpdGNoLlxuICogQHJldHVybnMge2FueX1cbiAqICAgQW55dGhpbmchXG4gKi9cblxuLyoqXG4gKiBAY2FsbGJhY2sgSW52YWxpZEhhbmRsZXJcbiAqICAgSGFuZGxlIHZhbHVlcyB0aGF0IGRvIG5vdCBoYXZlIGEgY2VydGFpbiBJRCBmaWVsZC5cbiAqIEBwYXJhbSB7dW5rbm93bn0gdmFsdWVcbiAqICAgQW55IHVua25vd24gdmFsdWUuXG4gKiBAcGFyYW0gey4uLmFueX0gcmVzdFxuICogICBBcmJpdHJhcnkgcGFyYW1ldGVycyBwYXNzZWQgdG8gdGhlIHp3aXRjaC5cbiAqIEByZXR1cm5zIHt2b2lkfG51bGx8dW5kZWZpbmVkfG5ldmVyfVxuICogICBUaGlzIHNob3VsZCBjcmFzaCBvciByZXR1cm4gbm90aGluZy5cbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSB7SW52YWxpZEhhbmRsZXJ9IFtJbnZhbGlkPUludmFsaWRIYW5kbGVyXVxuICogQHRlbXBsYXRlIHtVbmtub3duSGFuZGxlcn0gW1Vua25vd249VW5rbm93bkhhbmRsZXJdXG4gKiBAdGVtcGxhdGUge1JlY29yZDxzdHJpbmcsIEhhbmRsZXI+fSBbSGFuZGxlcnM9UmVjb3JkPHN0cmluZywgSGFuZGxlcj5dXG4gKiBAdHlwZWRlZiBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24gKHJlcXVpcmVkKS5cbiAqIEBwcm9wZXJ0eSB7SW52YWxpZH0gW2ludmFsaWRdXG4gKiAgIEhhbmRsZXIgdG8gdXNlIGZvciBpbnZhbGlkIHZhbHVlcy5cbiAqIEBwcm9wZXJ0eSB7VW5rbm93bn0gW3Vua25vd25dXG4gKiAgIEhhbmRsZXIgdG8gdXNlIGZvciB1bmtub3duIHZhbHVlcy5cbiAqIEBwcm9wZXJ0eSB7SGFuZGxlcnN9IFtoYW5kbGVyc11cbiAqICAgSGFuZGxlcnMgdG8gdXNlLlxuICovXG5cbmNvbnN0IG93biA9IHt9Lmhhc093blByb3BlcnR5XG5cbi8qKlxuICogSGFuZGxlIHZhbHVlcyBiYXNlZCBvbiBhIGZpZWxkLlxuICpcbiAqIEB0ZW1wbGF0ZSB7SW52YWxpZEhhbmRsZXJ9IFtJbnZhbGlkPUludmFsaWRIYW5kbGVyXVxuICogQHRlbXBsYXRlIHtVbmtub3duSGFuZGxlcn0gW1Vua25vd249VW5rbm93bkhhbmRsZXJdXG4gKiBAdGVtcGxhdGUge1JlY29yZDxzdHJpbmcsIEhhbmRsZXI+fSBbSGFuZGxlcnM9UmVjb3JkPHN0cmluZywgSGFuZGxlcj5dXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gKiAgIEZpZWxkIHRvIHN3aXRjaCBvbi5cbiAqIEBwYXJhbSB7T3B0aW9uczxJbnZhbGlkLCBVbmtub3duLCBIYW5kbGVycz59IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uIChyZXF1aXJlZCkuXG4gKiBAcmV0dXJucyB7e3Vua25vd246IFVua25vd24sIGludmFsaWQ6IEludmFsaWQsIGhhbmRsZXJzOiBIYW5kbGVycywgKC4uLnBhcmFtZXRlcnM6IFBhcmFtZXRlcnM8SGFuZGxlcnNba2V5b2YgSGFuZGxlcnNdPik6IFJldHVyblR5cGU8SGFuZGxlcnNba2V5b2YgSGFuZGxlcnNdPiwgKC4uLnBhcmFtZXRlcnM6IFBhcmFtZXRlcnM8VW5rbm93bj4pOiBSZXR1cm5UeXBlPFVua25vd24+fX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHp3aXRjaChrZXksIG9wdGlvbnMpIHtcbiAgY29uc3Qgc2V0dGluZ3MgPSBvcHRpb25zIHx8IHt9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBvbmUgdmFsdWUuXG4gICAqXG4gICAqIEJhc2VkIG9uIHRoZSBib3VuZCBga2V5YCwgYSByZXNwZWN0aXZlIGhhbmRsZXIgd2lsbCBiZSBjYWxsZWQuXG4gICAqIElmIGB2YWx1ZWAgaXMgbm90IGFuIG9iamVjdCwgb3IgZG9lc25cdTIwMTl0IGhhdmUgYSBga2V5YCBwcm9wZXJ0eSwgdGhlIHNwZWNpYWxcbiAgICogXHUyMDFDaW52YWxpZFx1MjAxRCBoYW5kbGVyIHdpbGwgYmUgY2FsbGVkLlxuICAgKiBJZiBgdmFsdWVgIGhhcyBhbiB1bmtub3duIGBrZXlgLCB0aGUgc3BlY2lhbCBcdTIwMUN1bmtub3duXHUyMDFEIGhhbmRsZXIgd2lsbCBiZVxuICAgKiBjYWxsZWQuXG4gICAqXG4gICAqIEFsbCBhcmd1bWVudHMsIGFuZCB0aGUgY29udGV4dCBvYmplY3QsIGFyZSBwYXNzZWQgdGhyb3VnaCB0byB0aGUgaGFuZGxlcixcbiAgICogYW5kIGl0XHUyMDE5cyByZXN1bHQgaXMgcmV0dXJuZWQuXG4gICAqXG4gICAqIEB0aGlzIHt1bmtub3dufVxuICAgKiAgIEFueSBjb250ZXh0IG9iamVjdC5cbiAgICogQHBhcmFtIHt1bmtub3dufSBbdmFsdWVdXG4gICAqICAgQW55IHZhbHVlLlxuICAgKiBAcGFyYW0gey4uLnVua25vd259IHBhcmFtZXRlcnNcbiAgICogICBBcmJpdHJhcnkgcGFyYW1ldGVycyBwYXNzZWQgdG8gdGhlIHp3aXRjaC5cbiAgICogQHByb3BlcnR5IHtIYW5kbGVyfSBpbnZhbGlkXG4gICAqICAgSGFuZGxlIGZvciB2YWx1ZXMgdGhhdCBkbyBub3QgaGF2ZSBhIGNlcnRhaW4gSUQgZmllbGQuXG4gICAqIEBwcm9wZXJ0eSB7SGFuZGxlcn0gdW5rbm93blxuICAgKiAgIEhhbmRsZSB2YWx1ZXMgdGhhdCBkbyBoYXZlIGEgY2VydGFpbiBJRCBmaWVsZCwgYnV0IGl0XHUyMDE5cyBzZXQgdG8gYSB2YWx1ZVxuICAgKiAgIHRoYXQgaXMgbm90IGxpc3RlZCBpbiB0aGUgYGhhbmRsZXJzYCByZWNvcmQuXG4gICAqIEBwcm9wZXJ0eSB7SGFuZGxlcnN9IGhhbmRsZXJzXG4gICAqICAgUmVjb3JkIG9mIGhhbmRsZXJzLlxuICAgKiBAcmV0dXJucyB7dW5rbm93bn1cbiAgICogICBBbnl0aGluZy5cbiAgICovXG4gIGZ1bmN0aW9uIG9uZSh2YWx1ZSwgLi4ucGFyYW1ldGVycykge1xuICAgIC8qKiBAdHlwZSB7SGFuZGxlcnx1bmRlZmluZWR9ICovXG4gICAgbGV0IGZuID0gb25lLmludmFsaWRcbiAgICBjb25zdCBoYW5kbGVycyA9IG9uZS5oYW5kbGVyc1xuXG4gICAgaWYgKHZhbHVlICYmIG93bi5jYWxsKHZhbHVlLCBrZXkpKSB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIEluZGV4YWJsZS5cbiAgICAgIGNvbnN0IGlkID0gU3RyaW5nKHZhbHVlW2tleV0pXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIEluZGV4YWJsZS5cbiAgICAgIGZuID0gb3duLmNhbGwoaGFuZGxlcnMsIGlkKSA/IGhhbmRsZXJzW2lkXSA6IG9uZS51bmtub3duXG4gICAgfVxuXG4gICAgaWYgKGZuKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGlzLCB2YWx1ZSwgLi4ucGFyYW1ldGVycylcbiAgICB9XG4gIH1cblxuICBvbmUuaGFuZGxlcnMgPSBzZXR0aW5ncy5oYW5kbGVycyB8fCB7fVxuICBvbmUuaW52YWxpZCA9IHNldHRpbmdzLmludmFsaWRcbiAgb25lLnVua25vd24gPSBzZXR0aW5ncy51bmtub3duXG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvcjogbWF0Y2hlcyFcbiAgcmV0dXJuIG9uZVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYgQ29yZU9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7UmVhZG9ubHlBcnJheTxzdHJpbmc+fSBbc3Vic2V0PVtdXVxuICogICBXaGV0aGVyIHRvIG9ubHkgZXNjYXBlIHRoZSBnaXZlbiBzdWJzZXQgb2YgY2hhcmFjdGVycy5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW2VzY2FwZU9ubHk9ZmFsc2VdXG4gKiAgIFdoZXRoZXIgdG8gb25seSBlc2NhcGUgcG9zc2libHkgZGFuZ2Vyb3VzIGNoYXJhY3RlcnMuXG4gKiAgIFRob3NlIGNoYXJhY3RlcnMgYXJlIGBcImAsIGAmYCwgYCdgLCBgPGAsIGA+YCwgYW5kIGBgIGAgYGAuXG4gKlxuICogQHR5cGVkZWYgRm9ybWF0T3B0aW9uc1xuICogQHByb3BlcnR5IHsoY29kZTogbnVtYmVyLCBuZXh0OiBudW1iZXIsIG9wdGlvbnM6IENvcmVXaXRoRm9ybWF0T3B0aW9ucykgPT4gc3RyaW5nfSBmb3JtYXRcbiAqICAgRm9ybWF0IHN0cmF0ZWd5LlxuICpcbiAqIEB0eXBlZGVmIHtDb3JlT3B0aW9ucyAmIEZvcm1hdE9wdGlvbnMgJiBpbXBvcnQoJy4vdXRpbC9mb3JtYXQtc21hcnQuanMnKS5Gb3JtYXRTbWFydE9wdGlvbnN9IENvcmVXaXRoRm9ybWF0T3B0aW9uc1xuICovXG5cbmNvbnN0IGRlZmF1bHRTdWJzZXRSZWdleCA9IC9bXCImJzw+YF0vZ1xuY29uc3Qgc3Vycm9nYXRlUGFpcnNSZWdleCA9IC9bXFx1RDgwMC1cXHVEQkZGXVtcXHVEQzAwLVxcdURGRkZdL2dcbmNvbnN0IGNvbnRyb2xDaGFyYWN0ZXJzUmVnZXggPVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29udHJvbC1yZWdleCwgdW5pY29ybi9uby1oZXgtZXNjYXBlXG4gIC9bXFx4MDEtXFx0XFx2XFxmXFx4MEUtXFx4MUZcXHg3RlxceDgxXFx4OERcXHg4RlxceDkwXFx4OURcXHhBMC1cXHVGRkZGXS9nXG5jb25zdCByZWdleEVzY2FwZVJlZ2V4ID0gL1t8XFxcXHt9KClbXFxdXiQrKj8uXS9nXG5cbi8qKiBAdHlwZSB7V2Vha01hcDxSZWFkb25seUFycmF5PHN0cmluZz4sIFJlZ0V4cD59ICovXG5jb25zdCBzdWJzZXRUb1JlZ2V4Q2FjaGUgPSBuZXcgV2Vha01hcCgpXG5cbi8qKlxuICogRW5jb2RlIGNlcnRhaW4gY2hhcmFjdGVycyBpbiBgdmFsdWVgLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHBhcmFtIHtDb3JlV2l0aEZvcm1hdE9wdGlvbnN9IG9wdGlvbnNcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb3JlKHZhbHVlLCBvcHRpb25zKSB7XG4gIHZhbHVlID0gdmFsdWUucmVwbGFjZShcbiAgICBvcHRpb25zLnN1YnNldFxuICAgICAgPyBjaGFyYWN0ZXJzVG9FeHByZXNzaW9uQ2FjaGVkKG9wdGlvbnMuc3Vic2V0KVxuICAgICAgOiBkZWZhdWx0U3Vic2V0UmVnZXgsXG4gICAgYmFzaWNcbiAgKVxuXG4gIGlmIChvcHRpb25zLnN1YnNldCB8fCBvcHRpb25zLmVzY2FwZU9ubHkpIHtcbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgdmFsdWVcbiAgICAgIC8vIFN1cnJvZ2F0ZSBwYWlycy5cbiAgICAgIC5yZXBsYWNlKHN1cnJvZ2F0ZVBhaXJzUmVnZXgsIHN1cnJvZ2F0ZSlcbiAgICAgIC8vIEJNUCBjb250cm9sIGNoYXJhY3RlcnMgKEMwIGV4Y2VwdCBmb3IgTEYsIENSLCBTUDsgREVMOyBhbmQgc29tZSBtb3JlXG4gICAgICAvLyBub24tQVNDSUkgb25lcykuXG4gICAgICAucmVwbGFjZShjb250cm9sQ2hhcmFjdGVyc1JlZ2V4LCBiYXNpYylcbiAgKVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFpclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFsbFxuICAgKi9cbiAgZnVuY3Rpb24gc3Vycm9nYXRlKHBhaXIsIGluZGV4LCBhbGwpIHtcbiAgICByZXR1cm4gb3B0aW9ucy5mb3JtYXQoXG4gICAgICAocGFpci5jaGFyQ29kZUF0KDApIC0gMHhkODAwKSAqIDB4NDAwICtcbiAgICAgICAgcGFpci5jaGFyQ29kZUF0KDEpIC1cbiAgICAgICAgMHhkYzAwICtcbiAgICAgICAgMHgxMDAwMCxcbiAgICAgIGFsbC5jaGFyQ29kZUF0KGluZGV4ICsgMiksXG4gICAgICBvcHRpb25zXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjaGFyYWN0ZXJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhbGxcbiAgICovXG4gIGZ1bmN0aW9uIGJhc2ljKGNoYXJhY3RlciwgaW5kZXgsIGFsbCkge1xuICAgIHJldHVybiBvcHRpb25zLmZvcm1hdChcbiAgICAgIGNoYXJhY3Rlci5jaGFyQ29kZUF0KDApLFxuICAgICAgYWxsLmNoYXJDb2RlQXQoaW5kZXggKyAxKSxcbiAgICAgIG9wdGlvbnNcbiAgICApXG4gIH1cbn1cblxuLyoqXG4gKiBBIHdyYXBwZXIgZnVuY3Rpb24gdGhhdCBjYWNoZXMgdGhlIHJlc3VsdCBvZiBgY2hhcmFjdGVyc1RvRXhwcmVzc2lvbmAgd2l0aCBhIFdlYWtNYXAuXG4gKiBUaGlzIGNhbiBpbXByb3ZlIHBlcmZvcm1hbmNlIHdoZW4gdG9vbGluZyBjYWxscyBgY2hhcmFjdGVyc1RvRXhwcmVzc2lvbmAgcmVwZWF0ZWRseVxuICogd2l0aCB0aGUgc2FtZSBzdWJzZXQuXG4gKlxuICogQHBhcmFtIHtSZWFkb25seUFycmF5PHN0cmluZz59IHN1YnNldFxuICogQHJldHVybnMge1JlZ0V4cH1cbiAqL1xuZnVuY3Rpb24gY2hhcmFjdGVyc1RvRXhwcmVzc2lvbkNhY2hlZChzdWJzZXQpIHtcbiAgbGV0IGNhY2hlZCA9IHN1YnNldFRvUmVnZXhDYWNoZS5nZXQoc3Vic2V0KVxuXG4gIGlmICghY2FjaGVkKSB7XG4gICAgY2FjaGVkID0gY2hhcmFjdGVyc1RvRXhwcmVzc2lvbihzdWJzZXQpXG4gICAgc3Vic2V0VG9SZWdleENhY2hlLnNldChzdWJzZXQsIGNhY2hlZClcbiAgfVxuXG4gIHJldHVybiBjYWNoZWRcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1JlYWRvbmx5QXJyYXk8c3RyaW5nPn0gc3Vic2V0XG4gKiBAcmV0dXJucyB7UmVnRXhwfVxuICovXG5mdW5jdGlvbiBjaGFyYWN0ZXJzVG9FeHByZXNzaW9uKHN1YnNldCkge1xuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IGdyb3VwcyA9IFtdXG4gIGxldCBpbmRleCA9IC0xXG5cbiAgd2hpbGUgKCsraW5kZXggPCBzdWJzZXQubGVuZ3RoKSB7XG4gICAgZ3JvdXBzLnB1c2goc3Vic2V0W2luZGV4XS5yZXBsYWNlKHJlZ2V4RXNjYXBlUmVnZXgsICdcXFxcJCYnKSlcbiAgfVxuXG4gIHJldHVybiBuZXcgUmVnRXhwKCcoPzonICsgZ3JvdXBzLmpvaW4oJ3wnKSArICcpJywgJ2cnKVxufVxuIiwgImNvbnN0IGhleGFkZWNpbWFsUmVnZXggPSAvW1xcZEEtRmEtZl0vXG5cbi8qKlxuICogQ29uZmlndXJhYmxlIHdheXMgdG8gZW5jb2RlIGNoYXJhY3RlcnMgYXMgaGV4YWRlY2ltYWwgcmVmZXJlbmNlcy5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gY29kZVxuICogQHBhcmFtIHtudW1iZXJ9IG5leHRcbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IG9taXRcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0hleGFkZWNpbWFsKGNvZGUsIG5leHQsIG9taXQpIHtcbiAgY29uc3QgdmFsdWUgPSAnJiN4JyArIGNvZGUudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKClcbiAgcmV0dXJuIG9taXQgJiYgbmV4dCAmJiAhaGV4YWRlY2ltYWxSZWdleC50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUobmV4dCkpXG4gICAgPyB2YWx1ZVxuICAgIDogdmFsdWUgKyAnOydcbn1cbiIsICJjb25zdCBkZWNpbWFsUmVnZXggPSAvXFxkL1xuXG4vKipcbiAqIENvbmZpZ3VyYWJsZSB3YXlzIHRvIGVuY29kZSBjaGFyYWN0ZXJzIGFzIGRlY2ltYWwgcmVmZXJlbmNlcy5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gY29kZVxuICogQHBhcmFtIHtudW1iZXJ9IG5leHRcbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IG9taXRcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0RlY2ltYWwoY29kZSwgbmV4dCwgb21pdCkge1xuICBjb25zdCB2YWx1ZSA9ICcmIycgKyBTdHJpbmcoY29kZSlcbiAgcmV0dXJuIG9taXQgJiYgbmV4dCAmJiAhZGVjaW1hbFJlZ2V4LnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0KSlcbiAgICA/IHZhbHVlXG4gICAgOiB2YWx1ZSArICc7J1xufVxuIiwgIi8qKlxuICogTGlzdCBvZiBsZWdhY3kgSFRNTCBuYW1lZCBjaGFyYWN0ZXIgcmVmZXJlbmNlcyB0aGF0IGRvblx1MjAxOXQgbmVlZCBhIHRyYWlsaW5nIHNlbWljb2xvbi5cbiAqXG4gKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn1cbiAqL1xuZXhwb3J0IGNvbnN0IGNoYXJhY3RlckVudGl0aWVzTGVnYWN5ID0gW1xuICAnQUVsaWcnLFxuICAnQU1QJyxcbiAgJ0FhY3V0ZScsXG4gICdBY2lyYycsXG4gICdBZ3JhdmUnLFxuICAnQXJpbmcnLFxuICAnQXRpbGRlJyxcbiAgJ0F1bWwnLFxuICAnQ09QWScsXG4gICdDY2VkaWwnLFxuICAnRVRIJyxcbiAgJ0VhY3V0ZScsXG4gICdFY2lyYycsXG4gICdFZ3JhdmUnLFxuICAnRXVtbCcsXG4gICdHVCcsXG4gICdJYWN1dGUnLFxuICAnSWNpcmMnLFxuICAnSWdyYXZlJyxcbiAgJ0l1bWwnLFxuICAnTFQnLFxuICAnTnRpbGRlJyxcbiAgJ09hY3V0ZScsXG4gICdPY2lyYycsXG4gICdPZ3JhdmUnLFxuICAnT3NsYXNoJyxcbiAgJ090aWxkZScsXG4gICdPdW1sJyxcbiAgJ1FVT1QnLFxuICAnUkVHJyxcbiAgJ1RIT1JOJyxcbiAgJ1VhY3V0ZScsXG4gICdVY2lyYycsXG4gICdVZ3JhdmUnLFxuICAnVXVtbCcsXG4gICdZYWN1dGUnLFxuICAnYWFjdXRlJyxcbiAgJ2FjaXJjJyxcbiAgJ2FjdXRlJyxcbiAgJ2FlbGlnJyxcbiAgJ2FncmF2ZScsXG4gICdhbXAnLFxuICAnYXJpbmcnLFxuICAnYXRpbGRlJyxcbiAgJ2F1bWwnLFxuICAnYnJ2YmFyJyxcbiAgJ2NjZWRpbCcsXG4gICdjZWRpbCcsXG4gICdjZW50JyxcbiAgJ2NvcHknLFxuICAnY3VycmVuJyxcbiAgJ2RlZycsXG4gICdkaXZpZGUnLFxuICAnZWFjdXRlJyxcbiAgJ2VjaXJjJyxcbiAgJ2VncmF2ZScsXG4gICdldGgnLFxuICAnZXVtbCcsXG4gICdmcmFjMTInLFxuICAnZnJhYzE0JyxcbiAgJ2ZyYWMzNCcsXG4gICdndCcsXG4gICdpYWN1dGUnLFxuICAnaWNpcmMnLFxuICAnaWV4Y2wnLFxuICAnaWdyYXZlJyxcbiAgJ2lxdWVzdCcsXG4gICdpdW1sJyxcbiAgJ2xhcXVvJyxcbiAgJ2x0JyxcbiAgJ21hY3InLFxuICAnbWljcm8nLFxuICAnbWlkZG90JyxcbiAgJ25ic3AnLFxuICAnbm90JyxcbiAgJ250aWxkZScsXG4gICdvYWN1dGUnLFxuICAnb2NpcmMnLFxuICAnb2dyYXZlJyxcbiAgJ29yZGYnLFxuICAnb3JkbScsXG4gICdvc2xhc2gnLFxuICAnb3RpbGRlJyxcbiAgJ291bWwnLFxuICAncGFyYScsXG4gICdwbHVzbW4nLFxuICAncG91bmQnLFxuICAncXVvdCcsXG4gICdyYXF1bycsXG4gICdyZWcnLFxuICAnc2VjdCcsXG4gICdzaHknLFxuICAnc3VwMScsXG4gICdzdXAyJyxcbiAgJ3N1cDMnLFxuICAnc3psaWcnLFxuICAndGhvcm4nLFxuICAndGltZXMnLFxuICAndWFjdXRlJyxcbiAgJ3VjaXJjJyxcbiAgJ3VncmF2ZScsXG4gICd1bWwnLFxuICAndXVtbCcsXG4gICd5YWN1dGUnLFxuICAneWVuJyxcbiAgJ3l1bWwnXG5dXG4iLCAiLyoqXG4gKiBNYXAgb2YgbmFtZWQgY2hhcmFjdGVyIHJlZmVyZW5jZXMgZnJvbSBIVE1MIDQuXG4gKlxuICogQHR5cGUge1JlY29yZDxzdHJpbmcsIHN0cmluZz59XG4gKi9cbmV4cG9ydCBjb25zdCBjaGFyYWN0ZXJFbnRpdGllc0h0bWw0ID0ge1xuICBuYnNwOiAnXHUwMEEwJyxcbiAgaWV4Y2w6ICdcdTAwQTEnLFxuICBjZW50OiAnXHUwMEEyJyxcbiAgcG91bmQ6ICdcdTAwQTMnLFxuICBjdXJyZW46ICdcdTAwQTQnLFxuICB5ZW46ICdcdTAwQTUnLFxuICBicnZiYXI6ICdcdTAwQTYnLFxuICBzZWN0OiAnXHUwMEE3JyxcbiAgdW1sOiAnXHUwMEE4JyxcbiAgY29weTogJ1x1MDBBOScsXG4gIG9yZGY6ICdcdTAwQUEnLFxuICBsYXF1bzogJ1x1MDBBQicsXG4gIG5vdDogJ1x1MDBBQycsXG4gIHNoeTogJ1x1MDBBRCcsXG4gIHJlZzogJ1x1MDBBRScsXG4gIG1hY3I6ICdcdTAwQUYnLFxuICBkZWc6ICdcdTAwQjAnLFxuICBwbHVzbW46ICdcdTAwQjEnLFxuICBzdXAyOiAnXHUwMEIyJyxcbiAgc3VwMzogJ1x1MDBCMycsXG4gIGFjdXRlOiAnXHUwMEI0JyxcbiAgbWljcm86ICdcdTAwQjUnLFxuICBwYXJhOiAnXHUwMEI2JyxcbiAgbWlkZG90OiAnXHUwMEI3JyxcbiAgY2VkaWw6ICdcdTAwQjgnLFxuICBzdXAxOiAnXHUwMEI5JyxcbiAgb3JkbTogJ1x1MDBCQScsXG4gIHJhcXVvOiAnXHUwMEJCJyxcbiAgZnJhYzE0OiAnXHUwMEJDJyxcbiAgZnJhYzEyOiAnXHUwMEJEJyxcbiAgZnJhYzM0OiAnXHUwMEJFJyxcbiAgaXF1ZXN0OiAnXHUwMEJGJyxcbiAgQWdyYXZlOiAnXHUwMEMwJyxcbiAgQWFjdXRlOiAnXHUwMEMxJyxcbiAgQWNpcmM6ICdcdTAwQzInLFxuICBBdGlsZGU6ICdcdTAwQzMnLFxuICBBdW1sOiAnXHUwMEM0JyxcbiAgQXJpbmc6ICdcdTAwQzUnLFxuICBBRWxpZzogJ1x1MDBDNicsXG4gIENjZWRpbDogJ1x1MDBDNycsXG4gIEVncmF2ZTogJ1x1MDBDOCcsXG4gIEVhY3V0ZTogJ1x1MDBDOScsXG4gIEVjaXJjOiAnXHUwMENBJyxcbiAgRXVtbDogJ1x1MDBDQicsXG4gIElncmF2ZTogJ1x1MDBDQycsXG4gIElhY3V0ZTogJ1x1MDBDRCcsXG4gIEljaXJjOiAnXHUwMENFJyxcbiAgSXVtbDogJ1x1MDBDRicsXG4gIEVUSDogJ1x1MDBEMCcsXG4gIE50aWxkZTogJ1x1MDBEMScsXG4gIE9ncmF2ZTogJ1x1MDBEMicsXG4gIE9hY3V0ZTogJ1x1MDBEMycsXG4gIE9jaXJjOiAnXHUwMEQ0JyxcbiAgT3RpbGRlOiAnXHUwMEQ1JyxcbiAgT3VtbDogJ1x1MDBENicsXG4gIHRpbWVzOiAnXHUwMEQ3JyxcbiAgT3NsYXNoOiAnXHUwMEQ4JyxcbiAgVWdyYXZlOiAnXHUwMEQ5JyxcbiAgVWFjdXRlOiAnXHUwMERBJyxcbiAgVWNpcmM6ICdcdTAwREInLFxuICBVdW1sOiAnXHUwMERDJyxcbiAgWWFjdXRlOiAnXHUwMEREJyxcbiAgVEhPUk46ICdcdTAwREUnLFxuICBzemxpZzogJ1x1MDBERicsXG4gIGFncmF2ZTogJ1x1MDBFMCcsXG4gIGFhY3V0ZTogJ1x1MDBFMScsXG4gIGFjaXJjOiAnXHUwMEUyJyxcbiAgYXRpbGRlOiAnXHUwMEUzJyxcbiAgYXVtbDogJ1x1MDBFNCcsXG4gIGFyaW5nOiAnXHUwMEU1JyxcbiAgYWVsaWc6ICdcdTAwRTYnLFxuICBjY2VkaWw6ICdcdTAwRTcnLFxuICBlZ3JhdmU6ICdcdTAwRTgnLFxuICBlYWN1dGU6ICdcdTAwRTknLFxuICBlY2lyYzogJ1x1MDBFQScsXG4gIGV1bWw6ICdcdTAwRUInLFxuICBpZ3JhdmU6ICdcdTAwRUMnLFxuICBpYWN1dGU6ICdcdTAwRUQnLFxuICBpY2lyYzogJ1x1MDBFRScsXG4gIGl1bWw6ICdcdTAwRUYnLFxuICBldGg6ICdcdTAwRjAnLFxuICBudGlsZGU6ICdcdTAwRjEnLFxuICBvZ3JhdmU6ICdcdTAwRjInLFxuICBvYWN1dGU6ICdcdTAwRjMnLFxuICBvY2lyYzogJ1x1MDBGNCcsXG4gIG90aWxkZTogJ1x1MDBGNScsXG4gIG91bWw6ICdcdTAwRjYnLFxuICBkaXZpZGU6ICdcdTAwRjcnLFxuICBvc2xhc2g6ICdcdTAwRjgnLFxuICB1Z3JhdmU6ICdcdTAwRjknLFxuICB1YWN1dGU6ICdcdTAwRkEnLFxuICB1Y2lyYzogJ1x1MDBGQicsXG4gIHV1bWw6ICdcdTAwRkMnLFxuICB5YWN1dGU6ICdcdTAwRkQnLFxuICB0aG9ybjogJ1x1MDBGRScsXG4gIHl1bWw6ICdcdTAwRkYnLFxuICBmbm9mOiAnXHUwMTkyJyxcbiAgQWxwaGE6ICdcdTAzOTEnLFxuICBCZXRhOiAnXHUwMzkyJyxcbiAgR2FtbWE6ICdcdTAzOTMnLFxuICBEZWx0YTogJ1x1MDM5NCcsXG4gIEVwc2lsb246ICdcdTAzOTUnLFxuICBaZXRhOiAnXHUwMzk2JyxcbiAgRXRhOiAnXHUwMzk3JyxcbiAgVGhldGE6ICdcdTAzOTgnLFxuICBJb3RhOiAnXHUwMzk5JyxcbiAgS2FwcGE6ICdcdTAzOUEnLFxuICBMYW1iZGE6ICdcdTAzOUInLFxuICBNdTogJ1x1MDM5QycsXG4gIE51OiAnXHUwMzlEJyxcbiAgWGk6ICdcdTAzOUUnLFxuICBPbWljcm9uOiAnXHUwMzlGJyxcbiAgUGk6ICdcdTAzQTAnLFxuICBSaG86ICdcdTAzQTEnLFxuICBTaWdtYTogJ1x1MDNBMycsXG4gIFRhdTogJ1x1MDNBNCcsXG4gIFVwc2lsb246ICdcdTAzQTUnLFxuICBQaGk6ICdcdTAzQTYnLFxuICBDaGk6ICdcdTAzQTcnLFxuICBQc2k6ICdcdTAzQTgnLFxuICBPbWVnYTogJ1x1MDNBOScsXG4gIGFscGhhOiAnXHUwM0IxJyxcbiAgYmV0YTogJ1x1MDNCMicsXG4gIGdhbW1hOiAnXHUwM0IzJyxcbiAgZGVsdGE6ICdcdTAzQjQnLFxuICBlcHNpbG9uOiAnXHUwM0I1JyxcbiAgemV0YTogJ1x1MDNCNicsXG4gIGV0YTogJ1x1MDNCNycsXG4gIHRoZXRhOiAnXHUwM0I4JyxcbiAgaW90YTogJ1x1MDNCOScsXG4gIGthcHBhOiAnXHUwM0JBJyxcbiAgbGFtYmRhOiAnXHUwM0JCJyxcbiAgbXU6ICdcdTAzQkMnLFxuICBudTogJ1x1MDNCRCcsXG4gIHhpOiAnXHUwM0JFJyxcbiAgb21pY3JvbjogJ1x1MDNCRicsXG4gIHBpOiAnXHUwM0MwJyxcbiAgcmhvOiAnXHUwM0MxJyxcbiAgc2lnbWFmOiAnXHUwM0MyJyxcbiAgc2lnbWE6ICdcdTAzQzMnLFxuICB0YXU6ICdcdTAzQzQnLFxuICB1cHNpbG9uOiAnXHUwM0M1JyxcbiAgcGhpOiAnXHUwM0M2JyxcbiAgY2hpOiAnXHUwM0M3JyxcbiAgcHNpOiAnXHUwM0M4JyxcbiAgb21lZ2E6ICdcdTAzQzknLFxuICB0aGV0YXN5bTogJ1x1MDNEMScsXG4gIHVwc2loOiAnXHUwM0QyJyxcbiAgcGl2OiAnXHUwM0Q2JyxcbiAgYnVsbDogJ1x1MjAyMicsXG4gIGhlbGxpcDogJ1x1MjAyNicsXG4gIHByaW1lOiAnXHUyMDMyJyxcbiAgUHJpbWU6ICdcdTIwMzMnLFxuICBvbGluZTogJ1x1MjAzRScsXG4gIGZyYXNsOiAnXHUyMDQ0JyxcbiAgd2VpZXJwOiAnXHUyMTE4JyxcbiAgaW1hZ2U6ICdcdTIxMTEnLFxuICByZWFsOiAnXHUyMTFDJyxcbiAgdHJhZGU6ICdcdTIxMjInLFxuICBhbGVmc3ltOiAnXHUyMTM1JyxcbiAgbGFycjogJ1x1MjE5MCcsXG4gIHVhcnI6ICdcdTIxOTEnLFxuICByYXJyOiAnXHUyMTkyJyxcbiAgZGFycjogJ1x1MjE5MycsXG4gIGhhcnI6ICdcdTIxOTQnLFxuICBjcmFycjogJ1x1MjFCNScsXG4gIGxBcnI6ICdcdTIxRDAnLFxuICB1QXJyOiAnXHUyMUQxJyxcbiAgckFycjogJ1x1MjFEMicsXG4gIGRBcnI6ICdcdTIxRDMnLFxuICBoQXJyOiAnXHUyMUQ0JyxcbiAgZm9yYWxsOiAnXHUyMjAwJyxcbiAgcGFydDogJ1x1MjIwMicsXG4gIGV4aXN0OiAnXHUyMjAzJyxcbiAgZW1wdHk6ICdcdTIyMDUnLFxuICBuYWJsYTogJ1x1MjIwNycsXG4gIGlzaW46ICdcdTIyMDgnLFxuICBub3RpbjogJ1x1MjIwOScsXG4gIG5pOiAnXHUyMjBCJyxcbiAgcHJvZDogJ1x1MjIwRicsXG4gIHN1bTogJ1x1MjIxMScsXG4gIG1pbnVzOiAnXHUyMjEyJyxcbiAgbG93YXN0OiAnXHUyMjE3JyxcbiAgcmFkaWM6ICdcdTIyMUEnLFxuICBwcm9wOiAnXHUyMjFEJyxcbiAgaW5maW46ICdcdTIyMUUnLFxuICBhbmc6ICdcdTIyMjAnLFxuICBhbmQ6ICdcdTIyMjcnLFxuICBvcjogJ1x1MjIyOCcsXG4gIGNhcDogJ1x1MjIyOScsXG4gIGN1cDogJ1x1MjIyQScsXG4gIGludDogJ1x1MjIyQicsXG4gIHRoZXJlNDogJ1x1MjIzNCcsXG4gIHNpbTogJ1x1MjIzQycsXG4gIGNvbmc6ICdcdTIyNDUnLFxuICBhc3ltcDogJ1x1MjI0OCcsXG4gIG5lOiAnXHUyMjYwJyxcbiAgZXF1aXY6ICdcdTIyNjEnLFxuICBsZTogJ1x1MjI2NCcsXG4gIGdlOiAnXHUyMjY1JyxcbiAgc3ViOiAnXHUyMjgyJyxcbiAgc3VwOiAnXHUyMjgzJyxcbiAgbnN1YjogJ1x1MjI4NCcsXG4gIHN1YmU6ICdcdTIyODYnLFxuICBzdXBlOiAnXHUyMjg3JyxcbiAgb3BsdXM6ICdcdTIyOTUnLFxuICBvdGltZXM6ICdcdTIyOTcnLFxuICBwZXJwOiAnXHUyMkE1JyxcbiAgc2RvdDogJ1x1MjJDNScsXG4gIGxjZWlsOiAnXHUyMzA4JyxcbiAgcmNlaWw6ICdcdTIzMDknLFxuICBsZmxvb3I6ICdcdTIzMEEnLFxuICByZmxvb3I6ICdcdTIzMEInLFxuICBsYW5nOiAnXHUyMzI5JyxcbiAgcmFuZzogJ1x1MjMyQScsXG4gIGxvejogJ1x1MjVDQScsXG4gIHNwYWRlczogJ1x1MjY2MCcsXG4gIGNsdWJzOiAnXHUyNjYzJyxcbiAgaGVhcnRzOiAnXHUyNjY1JyxcbiAgZGlhbXM6ICdcdTI2NjYnLFxuICBxdW90OiAnXCInLFxuICBhbXA6ICcmJyxcbiAgbHQ6ICc8JyxcbiAgZ3Q6ICc+JyxcbiAgT0VsaWc6ICdcdTAxNTInLFxuICBvZWxpZzogJ1x1MDE1MycsXG4gIFNjYXJvbjogJ1x1MDE2MCcsXG4gIHNjYXJvbjogJ1x1MDE2MScsXG4gIFl1bWw6ICdcdTAxNzgnLFxuICBjaXJjOiAnXHUwMkM2JyxcbiAgdGlsZGU6ICdcdTAyREMnLFxuICBlbnNwOiAnXHUyMDAyJyxcbiAgZW1zcDogJ1x1MjAwMycsXG4gIHRoaW5zcDogJ1x1MjAwOScsXG4gIHp3bmo6ICdcdTIwMEMnLFxuICB6d2o6ICdcdTIwMEQnLFxuICBscm06ICdcdTIwMEUnLFxuICBybG06ICdcdTIwMEYnLFxuICBuZGFzaDogJ1x1MjAxMycsXG4gIG1kYXNoOiAnXHUyMDE0JyxcbiAgbHNxdW86ICdcdTIwMTgnLFxuICByc3F1bzogJ1x1MjAxOScsXG4gIHNicXVvOiAnXHUyMDFBJyxcbiAgbGRxdW86ICdcdTIwMUMnLFxuICByZHF1bzogJ1x1MjAxRCcsXG4gIGJkcXVvOiAnXHUyMDFFJyxcbiAgZGFnZ2VyOiAnXHUyMDIwJyxcbiAgRGFnZ2VyOiAnXHUyMDIxJyxcbiAgcGVybWlsOiAnXHUyMDMwJyxcbiAgbHNhcXVvOiAnXHUyMDM5JyxcbiAgcnNhcXVvOiAnXHUyMDNBJyxcbiAgZXVybzogJ1x1MjBBQydcbn1cbiIsICIvKipcbiAqIExpc3Qgb2YgbGVnYWN5ICh0aGF0IGRvblx1MjAxOXQgbmVlZCBhIHRyYWlsaW5nIGA7YCkgbmFtZWQgcmVmZXJlbmNlcyB3aGljaCBjb3VsZCxcbiAqIGRlcGVuZGluZyBvbiB3aGF0IGZvbGxvd3MgdGhlbSwgdHVybiBpbnRvIGEgZGlmZmVyZW50IG1lYW5pbmdcbiAqXG4gKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn1cbiAqL1xuZXhwb3J0IGNvbnN0IGRhbmdlcm91cyA9IFtcbiAgJ2NlbnQnLFxuICAnY29weScsXG4gICdkaXZpZGUnLFxuICAnZ3QnLFxuICAnbHQnLFxuICAnbm90JyxcbiAgJ3BhcmEnLFxuICAndGltZXMnXG5dXG4iLCAiaW1wb3J0IHtjaGFyYWN0ZXJFbnRpdGllc0xlZ2FjeX0gZnJvbSAnY2hhcmFjdGVyLWVudGl0aWVzLWxlZ2FjeSdcbmltcG9ydCB7Y2hhcmFjdGVyRW50aXRpZXNIdG1sNH0gZnJvbSAnY2hhcmFjdGVyLWVudGl0aWVzLWh0bWw0J1xuaW1wb3J0IHtkYW5nZXJvdXN9IGZyb20gJy4uL2NvbnN0YW50L2Rhbmdlcm91cy5qcydcblxuY29uc3Qgb3duID0ge30uaGFzT3duUHJvcGVydHlcblxuLyoqXG4gKiBgY2hhcmFjdGVyRW50aXRpZXNIdG1sNGAgYnV0IGludmVydGVkLlxuICpcbiAqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fVxuICovXG5jb25zdCBjaGFyYWN0ZXJzID0ge31cblxuLyoqIEB0eXBlIHtzdHJpbmd9ICovXG5sZXQga2V5XG5cbmZvciAoa2V5IGluIGNoYXJhY3RlckVudGl0aWVzSHRtbDQpIHtcbiAgaWYgKG93bi5jYWxsKGNoYXJhY3RlckVudGl0aWVzSHRtbDQsIGtleSkpIHtcbiAgICBjaGFyYWN0ZXJzW2NoYXJhY3RlckVudGl0aWVzSHRtbDRba2V5XV0gPSBrZXlcbiAgfVxufVxuXG5jb25zdCBub3RBbHBoYW51bWVyaWNSZWdleCA9IC9bXlxcZEEtWmEtel0vXG5cbi8qKlxuICogQ29uZmlndXJhYmxlIHdheXMgdG8gZW5jb2RlIGNoYXJhY3RlcnMgYXMgbmFtZWQgcmVmZXJlbmNlcy5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gY29kZVxuICogQHBhcmFtIHtudW1iZXJ9IG5leHRcbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IG9taXRcbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IGF0dHJpYnV0ZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvTmFtZWQoY29kZSwgbmV4dCwgb21pdCwgYXR0cmlidXRlKSB7XG4gIGNvbnN0IGNoYXJhY3RlciA9IFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSlcblxuICBpZiAob3duLmNhbGwoY2hhcmFjdGVycywgY2hhcmFjdGVyKSkge1xuICAgIGNvbnN0IG5hbWUgPSBjaGFyYWN0ZXJzW2NoYXJhY3Rlcl1cbiAgICBjb25zdCB2YWx1ZSA9ICcmJyArIG5hbWVcblxuICAgIGlmIChcbiAgICAgIG9taXQgJiZcbiAgICAgIGNoYXJhY3RlckVudGl0aWVzTGVnYWN5LmluY2x1ZGVzKG5hbWUpICYmXG4gICAgICAhZGFuZ2Vyb3VzLmluY2x1ZGVzKG5hbWUpICYmXG4gICAgICAoIWF0dHJpYnV0ZSB8fFxuICAgICAgICAobmV4dCAmJlxuICAgICAgICAgIG5leHQgIT09IDYxIC8qIGA9YCAqLyAmJlxuICAgICAgICAgIG5vdEFscGhhbnVtZXJpY1JlZ2V4LnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0KSkpKVxuICAgICkge1xuICAgICAgcmV0dXJuIHZhbHVlXG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlICsgJzsnXG4gIH1cblxuICByZXR1cm4gJydcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIEZvcm1hdFNtYXJ0T3B0aW9uc1xuICogQHByb3BlcnR5IHtib29sZWFufSBbdXNlTmFtZWRSZWZlcmVuY2VzPWZhbHNlXVxuICogICBQcmVmZXIgbmFtZWQgY2hhcmFjdGVyIHJlZmVyZW5jZXMgKGAmYW1wO2ApIHdoZXJlIHBvc3NpYmxlLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbdXNlU2hvcnRlc3RSZWZlcmVuY2VzPWZhbHNlXVxuICogICBQcmVmZXIgdGhlIHNob3J0ZXN0IHBvc3NpYmxlIHJlZmVyZW5jZSwgaWYgdGhhdCByZXN1bHRzIGluIGxlc3MgYnl0ZXMuXG4gKiAgICoqTm90ZSoqOiBgdXNlTmFtZWRSZWZlcmVuY2VzYCBjYW4gYmUgb21pdHRlZCB3aGVuIHVzaW5nIGB1c2VTaG9ydGVzdFJlZmVyZW5jZXNgLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbb21pdE9wdGlvbmFsU2VtaWNvbG9ucz1mYWxzZV1cbiAqICAgV2hldGhlciB0byBvbWl0IHNlbWljb2xvbnMgd2hlbiBwb3NzaWJsZS5cbiAqICAgKipOb3RlKio6IFRoaXMgY3JlYXRlcyB3aGF0IEhUTUwgY2FsbHMgXHUyMDFDcGFyc2UgZXJyb3JzXHUyMDFEIGJ1dCBpcyBvdGhlcndpc2Ugc3RpbGwgdmFsaWQgSFRNTCBcdTIwMTQgZG9uXHUyMDE5dCB1c2UgdGhpcyBleGNlcHQgd2hlbiBidWlsZGluZyBhIG1pbmlmaWVyLlxuICogICBPbWl0dGluZyBzZW1pY29sb25zIGlzIHBvc3NpYmxlIGZvciBjZXJ0YWluIG5hbWVkIGFuZCBudW1lcmljIHJlZmVyZW5jZXMgaW4gc29tZSBjYXNlcy5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW2F0dHJpYnV0ZT1mYWxzZV1cbiAqICAgQ3JlYXRlIGNoYXJhY3RlciByZWZlcmVuY2VzIHdoaWNoIGRvblx1MjAxOXQgZmFpbCBpbiBhdHRyaWJ1dGVzLlxuICogICAqKk5vdGUqKjogYGF0dHJpYnV0ZWAgb25seSBhcHBsaWVzIHdoZW4gb3BlcmF0aW5nIGRhbmdlcm91c2x5IHdpdGhcbiAqICAgYG9taXRPcHRpb25hbFNlbWljb2xvbnM6IHRydWVgLlxuICovXG5cbmltcG9ydCB7dG9IZXhhZGVjaW1hbH0gZnJvbSAnLi90by1oZXhhZGVjaW1hbC5qcydcbmltcG9ydCB7dG9EZWNpbWFsfSBmcm9tICcuL3RvLWRlY2ltYWwuanMnXG5pbXBvcnQge3RvTmFtZWR9IGZyb20gJy4vdG8tbmFtZWQuanMnXG5cbi8qKlxuICogQ29uZmlndXJhYmxlIHdheXMgdG8gZW5jb2RlIGEgY2hhcmFjdGVyIHlpZWxkaW5nIHByZXR0eSBvciBzbWFsbCByZXN1bHRzLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBjb2RlXG4gKiBAcGFyYW0ge251bWJlcn0gbmV4dFxuICogQHBhcmFtIHtGb3JtYXRTbWFydE9wdGlvbnN9IG9wdGlvbnNcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRTbWFydChjb2RlLCBuZXh0LCBvcHRpb25zKSB7XG4gIGxldCBudW1lcmljID0gdG9IZXhhZGVjaW1hbChjb2RlLCBuZXh0LCBvcHRpb25zLm9taXRPcHRpb25hbFNlbWljb2xvbnMpXG4gIC8qKiBAdHlwZSB7c3RyaW5nfHVuZGVmaW5lZH0gKi9cbiAgbGV0IG5hbWVkXG5cbiAgaWYgKG9wdGlvbnMudXNlTmFtZWRSZWZlcmVuY2VzIHx8IG9wdGlvbnMudXNlU2hvcnRlc3RSZWZlcmVuY2VzKSB7XG4gICAgbmFtZWQgPSB0b05hbWVkKFxuICAgICAgY29kZSxcbiAgICAgIG5leHQsXG4gICAgICBvcHRpb25zLm9taXRPcHRpb25hbFNlbWljb2xvbnMsXG4gICAgICBvcHRpb25zLmF0dHJpYnV0ZVxuICAgIClcbiAgfVxuXG4gIC8vIFVzZSB0aGUgc2hvcnRlc3QgbnVtZXJpYyByZWZlcmVuY2Ugd2hlbiByZXF1ZXN0ZWQuXG4gIC8vIEEgc2ltcGxlIGFsZ29yaXRobSB3b3VsZCB1c2UgZGVjaW1hbCBmb3IgYWxsIGNvZGUgcG9pbnRzIHVuZGVyIDEwMCwgYXNcbiAgLy8gdGhvc2UgYXJlIHNob3J0ZXIgdGhhbiBoZXhhZGVjaW1hbDpcbiAgLy9cbiAgLy8gKiBgJiM5OTtgIHZzIGAmI3g2MztgIChkZWNpbWFsIHNob3J0ZXIpXG4gIC8vICogYCYjMTAwO2AgdnMgYCYjeDY0O2AgKGVxdWFsKVxuICAvL1xuICAvLyBIb3dldmVyLCBiZWNhdXNlIHdlIHRha2UgYG5leHRgIGludG8gY29uc2lkZXJhdGlvbiB3aGVuIGBvbWl0YCBpcyB1c2VkLFxuICAvLyBBbmQgaXQgd291bGQgYmUgcG9zc2libGUgdGhhdCBkZWNpbWFscyBhcmUgc2hvcnRlciBvbiBiaWdnZXIgdmFsdWVzIGFzXG4gIC8vIHdlbGwgaWYgYG5leHRgIGlzIGhleGFkZWNpbWFsIGJ1dCBub3QgZGVjaW1hbCwgd2UgaW5zdGVhZCBjb21wYXJlIGJvdGguXG4gIGlmIChcbiAgICAob3B0aW9ucy51c2VTaG9ydGVzdFJlZmVyZW5jZXMgfHwgIW5hbWVkKSAmJlxuICAgIG9wdGlvbnMudXNlU2hvcnRlc3RSZWZlcmVuY2VzXG4gICkge1xuICAgIGNvbnN0IGRlY2ltYWwgPSB0b0RlY2ltYWwoY29kZSwgbmV4dCwgb3B0aW9ucy5vbWl0T3B0aW9uYWxTZW1pY29sb25zKVxuXG4gICAgaWYgKGRlY2ltYWwubGVuZ3RoIDwgbnVtZXJpYy5sZW5ndGgpIHtcbiAgICAgIG51bWVyaWMgPSBkZWNpbWFsXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5hbWVkICYmXG4gICAgKCFvcHRpb25zLnVzZVNob3J0ZXN0UmVmZXJlbmNlcyB8fCBuYW1lZC5sZW5ndGggPCBudW1lcmljLmxlbmd0aClcbiAgICA/IG5hbWVkXG4gICAgOiBudW1lcmljXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2NvcmUuanMnKS5Db3JlT3B0aW9ucyAmIGltcG9ydCgnLi91dGlsL2Zvcm1hdC1zbWFydC5qcycpLkZvcm1hdFNtYXJ0T3B0aW9uc30gT3B0aW9uc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9jb3JlLmpzJykuQ29yZU9wdGlvbnN9IExpZ2h0T3B0aW9uc1xuICovXG5cbmltcG9ydCB7Y29yZX0gZnJvbSAnLi9jb3JlLmpzJ1xuaW1wb3J0IHtmb3JtYXRTbWFydH0gZnJvbSAnLi91dGlsL2Zvcm1hdC1zbWFydC5qcydcbmltcG9ydCB7Zm9ybWF0QmFzaWN9IGZyb20gJy4vdXRpbC9mb3JtYXQtYmFzaWMuanMnXG5cbi8qKlxuICogRW5jb2RlIHNwZWNpYWwgY2hhcmFjdGVycyBpbiBgdmFsdWVgLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBWYWx1ZSB0byBlbmNvZGUuXG4gKiBAcGFyYW0ge09wdGlvbnN9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRW5jb2RlZCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeUVudGl0aWVzKHZhbHVlLCBvcHRpb25zKSB7XG4gIHJldHVybiBjb3JlKHZhbHVlLCBPYmplY3QuYXNzaWduKHtmb3JtYXQ6IGZvcm1hdFNtYXJ0fSwgb3B0aW9ucykpXG59XG5cbi8qKlxuICogRW5jb2RlIHNwZWNpYWwgY2hhcmFjdGVycyBpbiBgdmFsdWVgIGFzIGhleGFkZWNpbWFscy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqICAgVmFsdWUgdG8gZW5jb2RlLlxuICogQHBhcmFtIHtMaWdodE9wdGlvbnN9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRW5jb2RlZCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeUVudGl0aWVzTGlnaHQodmFsdWUsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGNvcmUodmFsdWUsIE9iamVjdC5hc3NpZ24oe2Zvcm1hdDogZm9ybWF0QmFzaWN9LCBvcHRpb25zKSlcbn1cbiIsICIvKipcbiAqIEBpbXBvcnQge0NvbW1lbnQsIFBhcmVudHN9IGZyb20gJ2hhc3QnXG4gKiBAaW1wb3J0IHtTdGF0ZX0gZnJvbSAnLi4vaW5kZXguanMnXG4gKi9cblxuaW1wb3J0IHtzdHJpbmdpZnlFbnRpdGllc30gZnJvbSAnc3RyaW5naWZ5LWVudGl0aWVzJ1xuXG5jb25zdCBodG1sQ29tbWVudFJlZ2V4ID0gL14+fF4tPnw8IS0tfC0tPnwtLSE+fDwhLSQvZ1xuXG4vLyBEZWNsYXJlIGFycmF5cyBhcyB2YXJpYWJsZXMgc28gaXQgY2FuIGJlIGNhY2hlZCBieSBgc3RyaW5naWZ5RW50aXRpZXNgXG5jb25zdCBib2d1c0NvbW1lbnRFbnRpdHlTdWJzZXQgPSBbJz4nXVxuY29uc3QgY29tbWVudEVudGl0eVN1YnNldCA9IFsnPCcsICc+J11cblxuLyoqXG4gKiBTZXJpYWxpemUgYSBjb21tZW50LlxuICpcbiAqIEBwYXJhbSB7Q29tbWVudH0gbm9kZVxuICogICBOb2RlIHRvIGhhbmRsZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBfMVxuICogICBJbmRleCBvZiBgbm9kZWAgaW4gYHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gXzJcbiAqICAgUGFyZW50IG9mIGBub2RlYC5cbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFNlcmlhbGl6ZWQgbm9kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbW1lbnQobm9kZSwgXzEsIF8yLCBzdGF0ZSkge1xuICAvLyBTZWU6IDxodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNjb21tZW50cz5cbiAgcmV0dXJuIHN0YXRlLnNldHRpbmdzLmJvZ3VzQ29tbWVudHNcbiAgICA/ICc8PycgK1xuICAgICAgICBzdHJpbmdpZnlFbnRpdGllcyhcbiAgICAgICAgICBub2RlLnZhbHVlLFxuICAgICAgICAgIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMsIHtcbiAgICAgICAgICAgIHN1YnNldDogYm9ndXNDb21tZW50RW50aXR5U3Vic2V0XG4gICAgICAgICAgfSlcbiAgICAgICAgKSArXG4gICAgICAgICc+J1xuICAgIDogJzwhLS0nICsgbm9kZS52YWx1ZS5yZXBsYWNlKGh0bWxDb21tZW50UmVnZXgsIGVuY29kZSkgKyAnLS0+J1xuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gJDBcbiAgICovXG4gIGZ1bmN0aW9uIGVuY29kZSgkMCkge1xuICAgIHJldHVybiBzdHJpbmdpZnlFbnRpdGllcyhcbiAgICAgICQwLFxuICAgICAgT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcywge1xuICAgICAgICBzdWJzZXQ6IGNvbW1lbnRFbnRpdHlTdWJzZXRcbiAgICAgIH0pXG4gICAgKVxuICB9XG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtEb2N0eXBlLCBQYXJlbnRzfSBmcm9tICdoYXN0J1xuICogQGltcG9ydCB7U3RhdGV9IGZyb20gJy4uL2luZGV4LmpzJ1xuICovXG5cbi8qKlxuICogU2VyaWFsaXplIGEgZG9jdHlwZS5cbiAqXG4gKiBAcGFyYW0ge0RvY3R5cGV9IF8xXG4gKiAgIE5vZGUgdG8gaGFuZGxlLlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IF8yXG4gKiAgIEluZGV4IG9mIGBub2RlYCBpbiBgcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBfM1xuICogICBQYXJlbnQgb2YgYG5vZGVgLlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZG9jdHlwZShfMSwgXzIsIF8zLCBzdGF0ZSkge1xuICByZXR1cm4gKFxuICAgICc8IScgK1xuICAgIChzdGF0ZS5zZXR0aW5ncy51cHBlckRvY3R5cGUgPyAnRE9DVFlQRScgOiAnZG9jdHlwZScpICtcbiAgICAoc3RhdGUuc2V0dGluZ3MudGlnaHREb2N0eXBlID8gJycgOiAnICcpICtcbiAgICAnaHRtbD4nXG4gIClcbn1cbiIsICIvKipcbiAqIENvdW50IGhvdyBvZnRlbiBhIGNoYXJhY3RlciAob3Igc3Vic3RyaW5nKSBpcyB1c2VkIGluIGEgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBWYWx1ZSB0byBzZWFyY2ggaW4uXG4gKiBAcGFyYW0ge3N0cmluZ30gY2hhcmFjdGVyXG4gKiAgIENoYXJhY3RlciAob3Igc3Vic3RyaW5nKSB0byBsb29rIGZvci5cbiAqIEByZXR1cm4ge251bWJlcn1cbiAqICAgTnVtYmVyIG9mIHRpbWVzIGBjaGFyYWN0ZXJgIG9jY3VycmVkIGluIGB2YWx1ZWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjY291bnQodmFsdWUsIGNoYXJhY3Rlcikge1xuICBjb25zdCBzb3VyY2UgPSBTdHJpbmcodmFsdWUpXG5cbiAgaWYgKHR5cGVvZiBjaGFyYWN0ZXIgIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgY2hhcmFjdGVyJylcbiAgfVxuXG4gIGxldCBjb3VudCA9IDBcbiAgbGV0IGluZGV4ID0gc291cmNlLmluZGV4T2YoY2hhcmFjdGVyKVxuXG4gIHdoaWxlIChpbmRleCAhPT0gLTEpIHtcbiAgICBjb3VudCsrXG4gICAgaW5kZXggPSBzb3VyY2UuaW5kZXhPZihjaGFyYWN0ZXIsIGluZGV4ICsgY2hhcmFjdGVyLmxlbmd0aClcbiAgfVxuXG4gIHJldHVybiBjb3VudFxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLk5vZGVzfSBOb2Rlc1xuICovXG5cbi8vIEhUTUwgd2hpdGVzcGFjZSBleHByZXNzaW9uLlxuLy8gU2VlIDxodHRwczovL2luZnJhLnNwZWMud2hhdHdnLm9yZy8jYXNjaWktd2hpdGVzcGFjZT4uXG5jb25zdCByZSA9IC9bIFxcdFxcblxcZlxccl0vZ1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyAqaW50ZXItZWxlbWVudCB3aGl0ZXNwYWNlKi5cbiAqXG4gKiBAcGFyYW0ge05vZGVzIHwgc3RyaW5nfSB0aGluZ1xuICogICBUaGluZyB0byBjaGVjayAoYE5vZGVgIG9yIGBzdHJpbmdgKS5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBgdmFsdWVgIGlzIGludGVyLWVsZW1lbnQgd2hpdGVzcGFjZSAoYGJvb2xlYW5gKTogY29uc2lzdGluZyBvZlxuICogICB6ZXJvIG9yIG1vcmUgb2Ygc3BhY2UsIHRhYiAoYFxcdGApLCBsaW5lIGZlZWQgKGBcXG5gKSwgY2FycmlhZ2UgcmV0dXJuXG4gKiAgIChgXFxyYCksIG9yIGZvcm0gZmVlZCAoYFxcZmApOyBpZiBhIG5vZGUgaXMgcGFzc2VkIGl0IG11c3QgYmUgYSBgVGV4dGAgbm9kZSxcbiAqICAgd2hvc2UgYHZhbHVlYCBmaWVsZCBpcyBjaGVja2VkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gd2hpdGVzcGFjZSh0aGluZykge1xuICByZXR1cm4gdHlwZW9mIHRoaW5nID09PSAnb2JqZWN0J1xuICAgID8gdGhpbmcudHlwZSA9PT0gJ3RleHQnXG4gICAgICA/IGVtcHR5KHRoaW5nLnZhbHVlKVxuICAgICAgOiBmYWxzZVxuICAgIDogZW1wdHkodGhpbmcpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gZW1wdHkodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlLnJlcGxhY2UocmUsICcnKSA9PT0gJydcbn1cbiIsICIvKipcbiAqIEBpbXBvcnQge1BhcmVudHMsIFJvb3RDb250ZW50fSBmcm9tICdoYXN0J1xuICovXG5cbmltcG9ydCB7d2hpdGVzcGFjZX0gZnJvbSAnaGFzdC11dGlsLXdoaXRlc3BhY2UnXG5cbmV4cG9ydCBjb25zdCBzaWJsaW5nQWZ0ZXIgPSBzaWJsaW5ncygxKVxuZXhwb3J0IGNvbnN0IHNpYmxpbmdCZWZvcmUgPSBzaWJsaW5ncygtMSlcblxuLyoqIEB0eXBlIHtBcnJheTxSb290Q29udGVudD59ICovXG5jb25zdCBlbXB0eUNoaWxkcmVuID0gW11cblxuLyoqXG4gKiBGYWN0b3J5IHRvIGNoZWNrIHNpYmxpbmdzIGluIGEgZGlyZWN0aW9uLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmNyZW1lbnRcbiAqL1xuZnVuY3Rpb24gc2libGluZ3MoaW5jcmVtZW50KSB7XG4gIHJldHVybiBzaWJsaW5nXG5cbiAgLyoqXG4gICAqIEZpbmQgYXBwbGljYWJsZSBzaWJsaW5ncyBpbiBhIGRpcmVjdGlvbi5cbiAgICpcbiAgICogQHRlbXBsYXRlIHtQYXJlbnRzfSBQYXJlbnRcbiAgICogICBQYXJlbnQgdHlwZS5cbiAgICogQHBhcmFtIHtQYXJlbnQgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiAgIFBhcmVudC5cbiAgICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gICAqICAgSW5kZXggb2YgY2hpbGQgaW4gYHBhcmVudGAuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gW2luY2x1ZGVXaGl0ZXNwYWNlPWZhbHNlXVxuICAgKiAgIFdoZXRoZXIgdG8gaW5jbHVkZSB3aGl0ZXNwYWNlIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAgICogQHJldHVybnMge1BhcmVudCBleHRlbmRzIHtjaGlsZHJlbjogQXJyYXk8aW5mZXIgQ2hpbGQ+fSA/IENoaWxkIHwgdW5kZWZpbmVkIDogbmV2ZXJ9XG4gICAqICAgQ2hpbGQgb2YgcGFyZW50LlxuICAgKi9cbiAgZnVuY3Rpb24gc2libGluZyhwYXJlbnQsIGluZGV4LCBpbmNsdWRlV2hpdGVzcGFjZSkge1xuICAgIGNvbnN0IHNpYmxpbmdzID0gcGFyZW50ID8gcGFyZW50LmNoaWxkcmVuIDogZW1wdHlDaGlsZHJlblxuICAgIGxldCBvZmZzZXQgPSAoaW5kZXggfHwgMCkgKyBpbmNyZW1lbnRcbiAgICBsZXQgbmV4dCA9IHNpYmxpbmdzW29mZnNldF1cblxuICAgIGlmICghaW5jbHVkZVdoaXRlc3BhY2UpIHtcbiAgICAgIHdoaWxlIChuZXh0ICYmIHdoaXRlc3BhY2UobmV4dCkpIHtcbiAgICAgICAgb2Zmc2V0ICs9IGluY3JlbWVudFxuICAgICAgICBuZXh0ID0gc2libGluZ3Nbb2Zmc2V0XVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IGl0XHUyMDE5cyBhIGNvcnJlY3QgY2hpbGQuXG4gICAgcmV0dXJuIG5leHRcbiAgfVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7RWxlbWVudCwgUGFyZW50c30gZnJvbSAnaGFzdCdcbiAqL1xuXG4vKipcbiAqIEBjYWxsYmFjayBPbWl0SGFuZGxlXG4gKiAgIENoZWNrIGlmIGEgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICogQHBhcmFtIHtFbGVtZW50fSBlbGVtZW50XG4gKiAgIEVsZW1lbnQgdG8gY2hlY2suXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRvIG9taXQgYSB0YWcuXG4gKlxuICovXG5cbmNvbnN0IG93biA9IHt9Lmhhc093blByb3BlcnR5XG5cbi8qKlxuICogRmFjdG9yeSB0byBjaGVjayBpZiBhIGdpdmVuIG5vZGUgY2FuIGhhdmUgYSB0YWcgb21pdHRlZC5cbiAqXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIE9taXRIYW5kbGU+fSBoYW5kbGVyc1xuICogICBPbWlzc2lvbiBoYW5kbGVycywgd2hlcmUgZWFjaCBrZXkgaXMgYSB0YWcgbmFtZSwgYW5kIGVhY2ggdmFsdWUgaXMgdGhlXG4gKiAgIGNvcnJlc3BvbmRpbmcgaGFuZGxlci5cbiAqIEByZXR1cm5zIHtPbWl0SGFuZGxlfVxuICogICBXaGV0aGVyIHRvIG9taXQgYSB0YWcgb2YgYW4gZWxlbWVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9taXNzaW9uKGhhbmRsZXJzKSB7XG4gIHJldHVybiBvbWl0XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGEgZ2l2ZW4gbm9kZSBjYW4gaGF2ZSBhIHRhZyBvbWl0dGVkLlxuICAgKlxuICAgKiBAdHlwZSB7T21pdEhhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9taXQobm9kZSwgaW5kZXgsIHBhcmVudCkge1xuICAgIHJldHVybiAoXG4gICAgICBvd24uY2FsbChoYW5kbGVycywgbm9kZS50YWdOYW1lKSAmJlxuICAgICAgaGFuZGxlcnNbbm9kZS50YWdOYW1lXShub2RlLCBpbmRleCwgcGFyZW50KVxuICAgIClcbiAgfVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7RWxlbWVudCwgUGFyZW50c30gZnJvbSAnaGFzdCdcbiAqL1xuXG5pbXBvcnQge3doaXRlc3BhY2V9IGZyb20gJ2hhc3QtdXRpbC13aGl0ZXNwYWNlJ1xuaW1wb3J0IHtzaWJsaW5nQWZ0ZXJ9IGZyb20gJy4vdXRpbC9zaWJsaW5ncy5qcydcbmltcG9ydCB7b21pc3Npb259IGZyb20gJy4vb21pc3Npb24uanMnXG5cbmV4cG9ydCBjb25zdCBjbG9zaW5nID0gb21pc3Npb24oe1xuICBib2R5LFxuICBjYXB0aW9uOiBoZWFkT3JDb2xncm91cE9yQ2FwdGlvbixcbiAgY29sZ3JvdXA6IGhlYWRPckNvbGdyb3VwT3JDYXB0aW9uLFxuICBkZCxcbiAgZHQsXG4gIGhlYWQ6IGhlYWRPckNvbGdyb3VwT3JDYXB0aW9uLFxuICBodG1sLFxuICBsaSxcbiAgb3B0Z3JvdXAsXG4gIG9wdGlvbixcbiAgcCxcbiAgcnA6IHJ1YnlFbGVtZW50LFxuICBydDogcnVieUVsZW1lbnQsXG4gIHRib2R5LFxuICB0ZDogY2VsbHMsXG4gIHRmb290LFxuICB0aDogY2VsbHMsXG4gIHRoZWFkLFxuICB0clxufSlcblxuLyoqXG4gKiBNYWNybyBmb3IgYDwvaGVhZD5gLCBgPC9jb2xncm91cD5gLCBhbmQgYDwvY2FwdGlvbj5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGhlYWRPckNvbGdyb3VwT3JDYXB0aW9uKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4LCB0cnVlKVxuICByZXR1cm4gKFxuICAgICFuZXh0IHx8XG4gICAgKG5leHQudHlwZSAhPT0gJ2NvbW1lbnQnICYmXG4gICAgICAhKG5leHQudHlwZSA9PT0gJ3RleHQnICYmIHdoaXRlc3BhY2UobmV4dC52YWx1ZS5jaGFyQXQoMCkpKSlcbiAgKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC9odG1sPmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gaHRtbChfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuICFuZXh0IHx8IG5leHQudHlwZSAhPT0gJ2NvbW1lbnQnXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L2JvZHk+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBib2R5KF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gIW5leHQgfHwgbmV4dC50eXBlICE9PSAnY29tbWVudCdcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvcD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIHAoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiBuZXh0XG4gICAgPyBuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgICAobmV4dC50YWdOYW1lID09PSAnYWRkcmVzcycgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdhcnRpY2xlJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2FzaWRlJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2Jsb2NrcXVvdGUnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnZGV0YWlscycgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdkaXYnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnZGwnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnZmllbGRzZXQnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnZmlnY2FwdGlvbicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdmaWd1cmUnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnZm9vdGVyJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2Zvcm0nIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnaDEnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnaDInIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnaDMnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnaDQnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnaDUnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnaDYnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnaGVhZGVyJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2hncm91cCcgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdocicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdtYWluJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ21lbnUnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnbmF2JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ29sJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ3AnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAncHJlJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ3NlY3Rpb24nIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAndGFibGUnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAndWwnKVxuICAgIDogIXBhcmVudCB8fFxuICAgICAgICAvLyBDb25mdXNpbmcgcGFyZW50LlxuICAgICAgICAhKFxuICAgICAgICAgIHBhcmVudC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgICAgICAocGFyZW50LnRhZ05hbWUgPT09ICdhJyB8fFxuICAgICAgICAgICAgcGFyZW50LnRhZ05hbWUgPT09ICdhdWRpbycgfHxcbiAgICAgICAgICAgIHBhcmVudC50YWdOYW1lID09PSAnZGVsJyB8fFxuICAgICAgICAgICAgcGFyZW50LnRhZ05hbWUgPT09ICdpbnMnIHx8XG4gICAgICAgICAgICBwYXJlbnQudGFnTmFtZSA9PT0gJ21hcCcgfHxcbiAgICAgICAgICAgIHBhcmVudC50YWdOYW1lID09PSAnbm9zY3JpcHQnIHx8XG4gICAgICAgICAgICBwYXJlbnQudGFnTmFtZSA9PT0gJ3ZpZGVvJylcbiAgICAgICAgKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC9saT5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGxpKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gIW5leHQgfHwgKG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmIG5leHQudGFnTmFtZSA9PT0gJ2xpJylcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvZHQ+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBkdChfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuIEJvb2xlYW4oXG4gICAgbmV4dCAmJlxuICAgICAgbmV4dC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgIChuZXh0LnRhZ05hbWUgPT09ICdkdCcgfHwgbmV4dC50YWdOYW1lID09PSAnZGQnKVxuICApXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L2RkPmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gZGQoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiAoXG4gICAgIW5leHQgfHxcbiAgICAobmV4dC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgIChuZXh0LnRhZ05hbWUgPT09ICdkdCcgfHwgbmV4dC50YWdOYW1lID09PSAnZGQnKSlcbiAgKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC9ydD5gIG9yIGA8L3JwPmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gcnVieUVsZW1lbnQoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiAoXG4gICAgIW5leHQgfHxcbiAgICAobmV4dC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgIChuZXh0LnRhZ05hbWUgPT09ICdycCcgfHwgbmV4dC50YWdOYW1lID09PSAncnQnKSlcbiAgKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC9vcHRncm91cD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIG9wdGdyb3VwKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gIW5leHQgfHwgKG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmIG5leHQudGFnTmFtZSA9PT0gJ29wdGdyb3VwJylcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvb3B0aW9uPmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gb3B0aW9uKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gKFxuICAgICFuZXh0IHx8XG4gICAgKG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAobmV4dC50YWdOYW1lID09PSAnb3B0aW9uJyB8fCBuZXh0LnRhZ05hbWUgPT09ICdvcHRncm91cCcpKVxuICApXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L3RoZWFkPmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gdGhlYWQoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiBCb29sZWFuKFxuICAgIG5leHQgJiZcbiAgICAgIG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAobmV4dC50YWdOYW1lID09PSAndGJvZHknIHx8IG5leHQudGFnTmFtZSA9PT0gJ3Rmb290JylcbiAgKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC90Ym9keT5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIHRib2R5KF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gKFxuICAgICFuZXh0IHx8XG4gICAgKG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAobmV4dC50YWdOYW1lID09PSAndGJvZHknIHx8IG5leHQudGFnTmFtZSA9PT0gJ3Rmb290JykpXG4gIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvdGZvb3Q+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiB0Zm9vdChfLCBpbmRleCwgcGFyZW50KSB7XG4gIHJldHVybiAhc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L3RyPmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gdHIoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiAhbmV4dCB8fCAobmV4dC50eXBlID09PSAnZWxlbWVudCcgJiYgbmV4dC50YWdOYW1lID09PSAndHInKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC90ZD5gIG9yIGA8L3RoPmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gY2VsbHMoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiAoXG4gICAgIW5leHQgfHxcbiAgICAobmV4dC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgIChuZXh0LnRhZ05hbWUgPT09ICd0ZCcgfHwgbmV4dC50YWdOYW1lID09PSAndGgnKSlcbiAgKVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7RWxlbWVudCwgUGFyZW50c30gZnJvbSAnaGFzdCdcbiAqL1xuXG5pbXBvcnQge3doaXRlc3BhY2V9IGZyb20gJ2hhc3QtdXRpbC13aGl0ZXNwYWNlJ1xuaW1wb3J0IHtzaWJsaW5nQWZ0ZXIsIHNpYmxpbmdCZWZvcmV9IGZyb20gJy4vdXRpbC9zaWJsaW5ncy5qcydcbmltcG9ydCB7Y2xvc2luZ30gZnJvbSAnLi9jbG9zaW5nLmpzJ1xuaW1wb3J0IHtvbWlzc2lvbn0gZnJvbSAnLi9vbWlzc2lvbi5qcydcblxuZXhwb3J0IGNvbnN0IG9wZW5pbmcgPSBvbWlzc2lvbih7XG4gIGJvZHksXG4gIGNvbGdyb3VwLFxuICBoZWFkLFxuICBodG1sLFxuICB0Ym9keVxufSlcblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDxodG1sPmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBub2RlXG4gKiAgIEVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgb3BlbmluZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGh0bWwobm9kZSkge1xuICBjb25zdCBoZWFkID0gc2libGluZ0FmdGVyKG5vZGUsIC0xKVxuICByZXR1cm4gIWhlYWQgfHwgaGVhZC50eXBlICE9PSAnY29tbWVudCdcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDxoZWFkPmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBub2RlXG4gKiAgIEVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgb3BlbmluZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGhlYWQobm9kZSkge1xuICAvKiogQHR5cGUge1NldDxzdHJpbmc+fSAqL1xuICBjb25zdCBzZWVuID0gbmV3IFNldCgpXG5cbiAgLy8gV2hldGhlciBgc3JjZG9jYCBvciBub3QsXG4gIC8vIG1ha2Ugc3VyZSB0aGUgY29udGVudCBtb2RlbCBhdCBsZWFzdCBkb2Vzblx1MjAxOXQgaGF2ZSB0b28gbWFueSBgYmFzZWBzL2B0aXRsZWBzLlxuICBmb3IgKGNvbnN0IGNoaWxkIG9mIG5vZGUuY2hpbGRyZW4pIHtcbiAgICBpZiAoXG4gICAgICBjaGlsZC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgIChjaGlsZC50YWdOYW1lID09PSAnYmFzZScgfHwgY2hpbGQudGFnTmFtZSA9PT0gJ3RpdGxlJylcbiAgICApIHtcbiAgICAgIGlmIChzZWVuLmhhcyhjaGlsZC50YWdOYW1lKSkgcmV0dXJuIGZhbHNlXG4gICAgICBzZWVuLmFkZChjaGlsZC50YWdOYW1lKVxuICAgIH1cbiAgfVxuXG4gIC8vIFx1MjAxQ01heSBiZSBvbWl0dGVkIGlmIHRoZSBlbGVtZW50IGlzIGVtcHR5LFxuICAvLyBvciBpZiB0aGUgZmlyc3QgdGhpbmcgaW5zaWRlIHRoZSBoZWFkIGVsZW1lbnQgaXMgYW4gZWxlbWVudC5cdTIwMURcbiAgY29uc3QgY2hpbGQgPSBub2RlLmNoaWxkcmVuWzBdXG4gIHJldHVybiAhY2hpbGQgfHwgY2hpbGQudHlwZSA9PT0gJ2VsZW1lbnQnXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8Ym9keT5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gbm9kZVxuICogICBFbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIG9wZW5pbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBib2R5KG5vZGUpIHtcbiAgY29uc3QgaGVhZCA9IHNpYmxpbmdBZnRlcihub2RlLCAtMSwgdHJ1ZSlcblxuICByZXR1cm4gKFxuICAgICFoZWFkIHx8XG4gICAgKGhlYWQudHlwZSAhPT0gJ2NvbW1lbnQnICYmXG4gICAgICAhKGhlYWQudHlwZSA9PT0gJ3RleHQnICYmIHdoaXRlc3BhY2UoaGVhZC52YWx1ZS5jaGFyQXQoMCkpKSAmJlxuICAgICAgIShcbiAgICAgICAgaGVhZC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgICAgKGhlYWQudGFnTmFtZSA9PT0gJ21ldGEnIHx8XG4gICAgICAgICAgaGVhZC50YWdOYW1lID09PSAnbGluaycgfHxcbiAgICAgICAgICBoZWFkLnRhZ05hbWUgPT09ICdzY3JpcHQnIHx8XG4gICAgICAgICAgaGVhZC50YWdOYW1lID09PSAnc3R5bGUnIHx8XG4gICAgICAgICAgaGVhZC50YWdOYW1lID09PSAndGVtcGxhdGUnKVxuICAgICAgKSlcbiAgKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPGNvbGdyb3VwPmAuXG4gKiBUaGUgc3BlYyBkZXNjcmliZXMgc29tZSBsb2dpYyBmb3IgdGhlIG9wZW5pbmcgdGFnLCBidXQgaXRcdTIwMTlzIGVhc2llciB0b1xuICogaW1wbGVtZW50IGluIHRoZSBjbG9zaW5nIHRhZywgdG8gdGhlIHNhbWUgZWZmZWN0LCBzbyB3ZSBoYW5kbGUgaXQgdGhlcmVcbiAqIGluc3RlYWQuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBub2RlXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBvcGVuaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gY29sZ3JvdXAobm9kZSwgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBwcmV2aW91cyA9IHNpYmxpbmdCZWZvcmUocGFyZW50LCBpbmRleClcbiAgY29uc3QgaGVhZCA9IHNpYmxpbmdBZnRlcihub2RlLCAtMSwgdHJ1ZSlcblxuICAvLyBQcmV2aW91cyBjb2xncm91cCB3YXMgYWxyZWFkeSBvbWl0dGVkLlxuICBpZiAoXG4gICAgcGFyZW50ICYmXG4gICAgcHJldmlvdXMgJiZcbiAgICBwcmV2aW91cy50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICBwcmV2aW91cy50YWdOYW1lID09PSAnY29sZ3JvdXAnICYmXG4gICAgY2xvc2luZyhwcmV2aW91cywgcGFyZW50LmNoaWxkcmVuLmluZGV4T2YocHJldmlvdXMpLCBwYXJlbnQpXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIEJvb2xlYW4oaGVhZCAmJiBoZWFkLnR5cGUgPT09ICdlbGVtZW50JyAmJiBoZWFkLnRhZ05hbWUgPT09ICdjb2wnKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPHRib2R5PmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBub2RlXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBvcGVuaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gdGJvZHkobm9kZSwgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBwcmV2aW91cyA9IHNpYmxpbmdCZWZvcmUocGFyZW50LCBpbmRleClcbiAgY29uc3QgaGVhZCA9IHNpYmxpbmdBZnRlcihub2RlLCAtMSlcblxuICAvLyBQcmV2aW91cyB0YWJsZSBzZWN0aW9uIHdhcyBhbHJlYWR5IG9taXR0ZWQuXG4gIGlmIChcbiAgICBwYXJlbnQgJiZcbiAgICBwcmV2aW91cyAmJlxuICAgIHByZXZpb3VzLnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgIChwcmV2aW91cy50YWdOYW1lID09PSAndGhlYWQnIHx8IHByZXZpb3VzLnRhZ05hbWUgPT09ICd0Ym9keScpICYmXG4gICAgY2xvc2luZyhwcmV2aW91cywgcGFyZW50LmNoaWxkcmVuLmluZGV4T2YocHJldmlvdXMpLCBwYXJlbnQpXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIEJvb2xlYW4oaGVhZCAmJiBoZWFkLnR5cGUgPT09ICdlbGVtZW50JyAmJiBoZWFkLnRhZ05hbWUgPT09ICd0cicpXG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtFbGVtZW50LCBQYXJlbnRzLCBQcm9wZXJ0aWVzfSBmcm9tICdoYXN0J1xuICogQGltcG9ydCB7U3RhdGV9IGZyb20gJy4uL2luZGV4LmpzJ1xuICovXG5cbmltcG9ydCB7Y2NvdW50fSBmcm9tICdjY291bnQnXG5pbXBvcnQge3N0cmluZ2lmeSBhcyBjb21tYXN9IGZyb20gJ2NvbW1hLXNlcGFyYXRlZC10b2tlbnMnXG5pbXBvcnQge2ZpbmQsIHN2Z30gZnJvbSAncHJvcGVydHktaW5mb3JtYXRpb24nXG5pbXBvcnQge3N0cmluZ2lmeSBhcyBzcGFjZXN9IGZyb20gJ3NwYWNlLXNlcGFyYXRlZC10b2tlbnMnXG5pbXBvcnQge3N0cmluZ2lmeUVudGl0aWVzfSBmcm9tICdzdHJpbmdpZnktZW50aXRpZXMnXG5pbXBvcnQge2Nsb3Npbmd9IGZyb20gJy4uL29taXNzaW9uL2Nsb3NpbmcuanMnXG5pbXBvcnQge29wZW5pbmd9IGZyb20gJy4uL29taXNzaW9uL29wZW5pbmcuanMnXG5cbi8qKlxuICogTWFwcyBvZiBzdWJzZXRzLlxuICpcbiAqIEVhY2ggdmFsdWUgaXMgYSBtYXRyaXggb2YgdHVwbGVzLlxuICogVGhlIHZhbHVlIGF0IGAwYCBjYXVzZXMgcGFyc2UgZXJyb3JzLCB0aGUgdmFsdWUgYXQgYDFgIGlzIHZhbGlkLlxuICogT2YgYm90aCwgdGhlIHZhbHVlIGF0IGAwYCBpcyB1bnNhZmUsIGFuZCB0aGUgdmFsdWUgYXQgYDFgIGlzIHNhZmUuXG4gKlxuICogQHR5cGUge1JlY29yZDwnZG91YmxlJyB8ICduYW1lJyB8ICdzaW5nbGUnIHwgJ3VucXVvdGVkJywgQXJyYXk8W0FycmF5PHN0cmluZz4sIEFycmF5PHN0cmluZz5dPj59XG4gKi9cbmNvbnN0IGNvbnN0YW50cyA9IHtcbiAgLy8gU2VlOiA8aHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jYXR0cmlidXRlLW5hbWUtc3RhdGU+LlxuICBuYW1lOiBbXG4gICAgWydcXHRcXG5cXGZcXHIgJi89Picuc3BsaXQoJycpLCAnXFx0XFxuXFxmXFxyIFwiJlxcJy89PmAnLnNwbGl0KCcnKV0sXG4gICAgWydcXDBcXHRcXG5cXGZcXHIgXCImXFwnLzw9Picuc3BsaXQoJycpLCAnXFwwXFx0XFxuXFxmXFxyIFwiJlxcJy88PT5gJy5zcGxpdCgnJyldXG4gIF0sXG4gIC8vIFNlZTogPGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2F0dHJpYnV0ZS12YWx1ZS0odW5xdW90ZWQpLXN0YXRlPi5cbiAgdW5xdW90ZWQ6IFtcbiAgICBbJ1xcdFxcblxcZlxcciAmPicuc3BsaXQoJycpLCAnXFwwXFx0XFxuXFxmXFxyIFwiJlxcJzw9PmAnLnNwbGl0KCcnKV0sXG4gICAgWydcXDBcXHRcXG5cXGZcXHIgXCImXFwnPD0+YCcuc3BsaXQoJycpLCAnXFwwXFx0XFxuXFxmXFxyIFwiJlxcJzw9PmAnLnNwbGl0KCcnKV1cbiAgXSxcbiAgLy8gU2VlOiA8aHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jYXR0cmlidXRlLXZhbHVlLShzaW5nbGUtcXVvdGVkKS1zdGF0ZT4uXG4gIHNpbmdsZTogW1xuICAgIFtcIiYnXCIuc3BsaXQoJycpLCAnXCImXFwnYCcuc3BsaXQoJycpXSxcbiAgICBbXCJcXDAmJ1wiLnNwbGl0KCcnKSwgJ1xcMFwiJlxcJ2AnLnNwbGl0KCcnKV1cbiAgXSxcbiAgLy8gU2VlOiA8aHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jYXR0cmlidXRlLXZhbHVlLShkb3VibGUtcXVvdGVkKS1zdGF0ZT4uXG4gIGRvdWJsZTogW1xuICAgIFsnXCImJy5zcGxpdCgnJyksICdcIiZcXCdgJy5zcGxpdCgnJyldLFxuICAgIFsnXFwwXCImJy5zcGxpdCgnJyksICdcXDBcIiZcXCdgJy5zcGxpdCgnJyldXG4gIF1cbn1cblxuLyoqXG4gKiBTZXJpYWxpemUgYW4gZWxlbWVudCBub2RlLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gbm9kZVxuICogICBOb2RlIHRvIGhhbmRsZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBgbm9kZWAgaW4gYHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBgbm9kZWAuXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbGVtZW50KG5vZGUsIGluZGV4LCBwYXJlbnQsIHN0YXRlKSB7XG4gIGNvbnN0IHNjaGVtYSA9IHN0YXRlLnNjaGVtYVxuICBjb25zdCBvbWl0ID0gc2NoZW1hLnNwYWNlID09PSAnc3ZnJyA/IGZhbHNlIDogc3RhdGUuc2V0dGluZ3Mub21pdE9wdGlvbmFsVGFnc1xuICBsZXQgc2VsZkNsb3NpbmcgPVxuICAgIHNjaGVtYS5zcGFjZSA9PT0gJ3N2ZydcbiAgICAgID8gc3RhdGUuc2V0dGluZ3MuY2xvc2VFbXB0eUVsZW1lbnRzXG4gICAgICA6IHN0YXRlLnNldHRpbmdzLnZvaWRzLmluY2x1ZGVzKG5vZGUudGFnTmFtZS50b0xvd2VyQ2FzZSgpKVxuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IHBhcnRzID0gW11cbiAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gIGxldCBsYXN0XG5cbiAgaWYgKHNjaGVtYS5zcGFjZSA9PT0gJ2h0bWwnICYmIG5vZGUudGFnTmFtZSA9PT0gJ3N2ZycpIHtcbiAgICBzdGF0ZS5zY2hlbWEgPSBzdmdcbiAgfVxuXG4gIGNvbnN0IGF0dHJpYnV0ZXMgPSBzZXJpYWxpemVBdHRyaWJ1dGVzKHN0YXRlLCBub2RlLnByb3BlcnRpZXMpXG5cbiAgY29uc3QgY29udGVudCA9IHN0YXRlLmFsbChcbiAgICBzY2hlbWEuc3BhY2UgPT09ICdodG1sJyAmJiBub2RlLnRhZ05hbWUgPT09ICd0ZW1wbGF0ZScgPyBub2RlLmNvbnRlbnQgOiBub2RlXG4gIClcblxuICBzdGF0ZS5zY2hlbWEgPSBzY2hlbWFcblxuICAvLyBJZiB0aGUgbm9kZSBpcyBjYXRlZ29yaXNlZCBhcyB2b2lkLCBidXQgaXQgaGFzIGNoaWxkcmVuLCByZW1vdmUgdGhlXG4gIC8vIGNhdGVnb3Jpc2F0aW9uLlxuICAvLyBUaGlzIGVuYWJsZXMgZm9yIGV4YW1wbGUgYG1lbnVpdGVtYHMsIHdoaWNoIGFyZSB2b2lkIGluIFczQyBIVE1MIGJ1dCBub3RcbiAgLy8gdm9pZCBpbiBXSEFUV0cgSFRNTCwgdG8gYmUgc3RyaW5naWZpZWQgcHJvcGVybHkuXG4gIC8vIE5vdGU6IGBtZW51aXRlbWAgaGFzIHNpbmNlIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBIVE1MIHNwZWMsIGFuZCBzbyBpcyBub1xuICAvLyBsb25nZXIgdm9pZC5cbiAgaWYgKGNvbnRlbnQpIHNlbGZDbG9zaW5nID0gZmFsc2VcblxuICBpZiAoYXR0cmlidXRlcyB8fCAhb21pdCB8fCAhb3BlbmluZyhub2RlLCBpbmRleCwgcGFyZW50KSkge1xuICAgIHBhcnRzLnB1c2goJzwnLCBub2RlLnRhZ05hbWUsIGF0dHJpYnV0ZXMgPyAnICcgKyBhdHRyaWJ1dGVzIDogJycpXG5cbiAgICBpZiAoXG4gICAgICBzZWxmQ2xvc2luZyAmJlxuICAgICAgKHNjaGVtYS5zcGFjZSA9PT0gJ3N2ZycgfHwgc3RhdGUuc2V0dGluZ3MuY2xvc2VTZWxmQ2xvc2luZylcbiAgICApIHtcbiAgICAgIGxhc3QgPSBhdHRyaWJ1dGVzLmNoYXJBdChhdHRyaWJ1dGVzLmxlbmd0aCAtIDEpXG4gICAgICBpZiAoXG4gICAgICAgICFzdGF0ZS5zZXR0aW5ncy50aWdodFNlbGZDbG9zaW5nIHx8XG4gICAgICAgIGxhc3QgPT09ICcvJyB8fFxuICAgICAgICAobGFzdCAmJiBsYXN0ICE9PSAnXCInICYmIGxhc3QgIT09IFwiJ1wiKVxuICAgICAgKSB7XG4gICAgICAgIHBhcnRzLnB1c2goJyAnKVxuICAgICAgfVxuXG4gICAgICBwYXJ0cy5wdXNoKCcvJylcbiAgICB9XG5cbiAgICBwYXJ0cy5wdXNoKCc+JylcbiAgfVxuXG4gIHBhcnRzLnB1c2goY29udGVudClcblxuICBpZiAoIXNlbGZDbG9zaW5nICYmICghb21pdCB8fCAhY2xvc2luZyhub2RlLCBpbmRleCwgcGFyZW50KSkpIHtcbiAgICBwYXJ0cy5wdXNoKCc8LycgKyBub2RlLnRhZ05hbWUgKyAnPicpXG4gIH1cblxuICByZXR1cm4gcGFydHMuam9pbignJylcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHBhcmFtIHtQcm9wZXJ0aWVzIHwgbnVsbCB8IHVuZGVmaW5lZH0gcHJvcGVydGllc1xuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gc2VyaWFsaXplQXR0cmlidXRlcyhzdGF0ZSwgcHJvcGVydGllcykge1xuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IHZhbHVlcyA9IFtdXG4gIGxldCBpbmRleCA9IC0xXG4gIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICBsZXQga2V5XG5cbiAgaWYgKHByb3BlcnRpZXMpIHtcbiAgICBmb3IgKGtleSBpbiBwcm9wZXJ0aWVzKSB7XG4gICAgICBpZiAocHJvcGVydGllc1trZXldICE9PSBudWxsICYmIHByb3BlcnRpZXNba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gc2VyaWFsaXplQXR0cmlidXRlKHN0YXRlLCBrZXksIHByb3BlcnRpZXNba2V5XSlcbiAgICAgICAgaWYgKHZhbHVlKSB2YWx1ZXMucHVzaCh2YWx1ZSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB3aGlsZSAoKytpbmRleCA8IHZhbHVlcy5sZW5ndGgpIHtcbiAgICBjb25zdCBsYXN0ID0gc3RhdGUuc2V0dGluZ3MudGlnaHRBdHRyaWJ1dGVzXG4gICAgICA/IHZhbHVlc1tpbmRleF0uY2hhckF0KHZhbHVlc1tpbmRleF0ubGVuZ3RoIC0gMSlcbiAgICAgIDogdW5kZWZpbmVkXG5cbiAgICAvLyBJbiB0aWdodCBtb2RlLCBkb25cdTIwMTl0IGFkZCBhIHNwYWNlIGFmdGVyIHF1b3RlZCBhdHRyaWJ1dGVzLlxuICAgIGlmIChpbmRleCAhPT0gdmFsdWVzLmxlbmd0aCAtIDEgJiYgbGFzdCAhPT0gJ1wiJyAmJiBsYXN0ICE9PSBcIidcIikge1xuICAgICAgdmFsdWVzW2luZGV4XSArPSAnICdcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmFsdWVzLmpvaW4oJycpXG59XG5cbi8qKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAqIEBwYXJhbSB7UHJvcGVydGllc1trZXlvZiBQcm9wZXJ0aWVzXX0gdmFsdWVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIHNlcmlhbGl6ZUF0dHJpYnV0ZShzdGF0ZSwga2V5LCB2YWx1ZSkge1xuICBjb25zdCBpbmZvID0gZmluZChzdGF0ZS5zY2hlbWEsIGtleSlcbiAgY29uc3QgeCA9XG4gICAgc3RhdGUuc2V0dGluZ3MuYWxsb3dQYXJzZUVycm9ycyAmJiBzdGF0ZS5zY2hlbWEuc3BhY2UgPT09ICdodG1sJyA/IDAgOiAxXG4gIGNvbnN0IHkgPSBzdGF0ZS5zZXR0aW5ncy5hbGxvd0Rhbmdlcm91c0NoYXJhY3RlcnMgPyAwIDogMVxuICBsZXQgcXVvdGUgPSBzdGF0ZS5xdW90ZVxuICAvKiogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IHJlc3VsdFxuXG4gIGlmIChpbmZvLm92ZXJsb2FkZWRCb29sZWFuICYmICh2YWx1ZSA9PT0gaW5mby5hdHRyaWJ1dGUgfHwgdmFsdWUgPT09ICcnKSkge1xuICAgIHZhbHVlID0gdHJ1ZVxuICB9IGVsc2UgaWYgKFxuICAgIGluZm8uYm9vbGVhbiB8fFxuICAgIChpbmZvLm92ZXJsb2FkZWRCb29sZWFuICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpXG4gICkge1xuICAgIHZhbHVlID0gQm9vbGVhbih2YWx1ZSlcbiAgfVxuXG4gIGlmIChcbiAgICB2YWx1ZSA9PT0gbnVsbCB8fFxuICAgIHZhbHVlID09PSB1bmRlZmluZWQgfHxcbiAgICB2YWx1ZSA9PT0gZmFsc2UgfHxcbiAgICAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiBOdW1iZXIuaXNOYU4odmFsdWUpKVxuICApIHtcbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIGNvbnN0IG5hbWUgPSBzdHJpbmdpZnlFbnRpdGllcyhcbiAgICBpbmZvLmF0dHJpYnV0ZSxcbiAgICBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLCB7XG4gICAgICAvLyBBbHdheXMgZW5jb2RlIHdpdGhvdXQgcGFyc2UgZXJyb3JzIGluIG5vbi1IVE1MLlxuICAgICAgc3Vic2V0OiBjb25zdGFudHMubmFtZVt4XVt5XVxuICAgIH0pXG4gIClcblxuICAvLyBObyB2YWx1ZS5cbiAgLy8gVGhlcmUgaXMgY3VycmVudGx5IG9ubHkgb25lIGJvb2xlYW4gcHJvcGVydHkgaW4gU1ZHOiBgW2Rvd25sb2FkXWAgb25cbiAgLy8gYDxhPmAuXG4gIC8vIFRoaXMgcHJvcGVydHkgZG9lcyBub3Qgc2VlbSB0byB3b3JrIGluIGJyb3dzZXJzIChGaXJlZm94LCBTYWZhcmksIENocm9tZSksXG4gIC8vIHNvIEkgY2FuXHUyMDE5dCB0ZXN0IGlmIGRyb3BwaW5nIHRoZSB2YWx1ZSB3b3Jrcy5cbiAgLy8gQnV0IEkgYXNzdW1lIHRoYXQgaXQgc2hvdWxkOlxuICAvL1xuICAvLyBgYGBodG1sXG4gIC8vIDwhZG9jdHlwZSBodG1sPlxuICAvLyA8c3ZnIHZpZXdCb3g9XCIwIDAgMTAwIDEwMFwiPlxuICAvLyAgIDxhIGhyZWY9aHR0cHM6Ly9leGFtcGxlLmNvbSBkb3dubG9hZD5cbiAgLy8gICAgIDxjaXJjbGUgY3g9NTAgY3k9NDAgcj0zNSAvPlxuICAvLyAgIDwvYT5cbiAgLy8gPC9zdmc+XG4gIC8vIGBgYFxuICAvL1xuICAvLyBTZWU6IDxodHRwczovL2dpdGh1Yi5jb20vd29vb3JtL3Byb3BlcnR5LWluZm9ybWF0aW9uL2Jsb2IvbWFpbi9saWIvc3ZnLmpzPlxuICBpZiAodmFsdWUgPT09IHRydWUpIHJldHVybiBuYW1lXG5cbiAgLy8gYHNwYWNlc2AgZG9lc25cdTIwMTl0IGFjY2VwdCBhIHNlY29uZCBhcmd1bWVudCwgYnV0IGl0XHUyMDE5cyBnaXZlbiBoZXJlIGp1c3QgdG9cbiAgLy8ga2VlcCB0aGUgY29kZSBjbGVhbmVyLlxuICB2YWx1ZSA9IEFycmF5LmlzQXJyYXkodmFsdWUpXG4gICAgPyAoaW5mby5jb21tYVNlcGFyYXRlZCA/IGNvbW1hcyA6IHNwYWNlcykodmFsdWUsIHtcbiAgICAgICAgcGFkTGVmdDogIXN0YXRlLnNldHRpbmdzLnRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0c1xuICAgICAgfSlcbiAgICA6IFN0cmluZyh2YWx1ZSlcblxuICBpZiAoc3RhdGUuc2V0dGluZ3MuY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXMgJiYgIXZhbHVlKSByZXR1cm4gbmFtZVxuXG4gIC8vIENoZWNrIHVucXVvdGVkIHZhbHVlLlxuICBpZiAoc3RhdGUuc2V0dGluZ3MucHJlZmVyVW5xdW90ZWQpIHtcbiAgICByZXN1bHQgPSBzdHJpbmdpZnlFbnRpdGllcyhcbiAgICAgIHZhbHVlLFxuICAgICAgT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcywge1xuICAgICAgICBhdHRyaWJ1dGU6IHRydWUsXG4gICAgICAgIHN1YnNldDogY29uc3RhbnRzLnVucXVvdGVkW3hdW3ldXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIC8vIElmIHdlIGRvblx1MjAxOXQgd2FudCB1bnF1b3RlZCwgb3IgaWYgYHZhbHVlYCBjb250YWlucyBjaGFyYWN0ZXIgcmVmZXJlbmNlcyB3aGVuXG4gIC8vIHVucXVvdGVkXHUyMDI2XG4gIGlmIChyZXN1bHQgIT09IHZhbHVlKSB7XG4gICAgLy8gSWYgdGhlIGFsdGVybmF0aXZlIGlzIGxlc3MgY29tbW9uIHRoYW4gYHF1b3RlYCwgc3dpdGNoLlxuICAgIGlmIChcbiAgICAgIHN0YXRlLnNldHRpbmdzLnF1b3RlU21hcnQgJiZcbiAgICAgIGNjb3VudCh2YWx1ZSwgcXVvdGUpID4gY2NvdW50KHZhbHVlLCBzdGF0ZS5hbHRlcm5hdGl2ZSlcbiAgICApIHtcbiAgICAgIHF1b3RlID0gc3RhdGUuYWx0ZXJuYXRpdmVcbiAgICB9XG5cbiAgICByZXN1bHQgPVxuICAgICAgcXVvdGUgK1xuICAgICAgc3RyaW5naWZ5RW50aXRpZXMoXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLCB7XG4gICAgICAgICAgLy8gQWx3YXlzIGVuY29kZSB3aXRob3V0IHBhcnNlIGVycm9ycyBpbiBub24tSFRNTC5cbiAgICAgICAgICBzdWJzZXQ6IChxdW90ZSA9PT0gXCInXCIgPyBjb25zdGFudHMuc2luZ2xlIDogY29uc3RhbnRzLmRvdWJsZSlbeF1beV0sXG4gICAgICAgICAgYXR0cmlidXRlOiB0cnVlXG4gICAgICAgIH0pXG4gICAgICApICtcbiAgICAgIHF1b3RlXG4gIH1cblxuICAvLyBEb25cdTIwMTl0IGFkZCBhIGA9YCBmb3IgdW5xdW90ZWQgZW1wdGllcy5cbiAgcmV0dXJuIG5hbWUgKyAocmVzdWx0ID8gJz0nICsgcmVzdWx0IDogcmVzdWx0KVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7UGFyZW50cywgVGV4dH0gZnJvbSAnaGFzdCdcbiAqIEBpbXBvcnQge1Jhd30gZnJvbSAnbWRhc3QtdXRpbC10by1oYXN0J1xuICogQGltcG9ydCB7U3RhdGV9IGZyb20gJy4uL2luZGV4LmpzJ1xuICovXG5cbmltcG9ydCB7c3RyaW5naWZ5RW50aXRpZXN9IGZyb20gJ3N0cmluZ2lmeS1lbnRpdGllcydcblxuLy8gRGVjbGFyZSBhcnJheSBhcyB2YXJpYWJsZSBzbyBpdCBjYW4gYmUgY2FjaGVkIGJ5IGBzdHJpbmdpZnlFbnRpdGllc2BcbmNvbnN0IHRleHRFbnRpdHlTdWJzZXQgPSBbJzwnLCAnJiddXG5cbi8qKlxuICogU2VyaWFsaXplIGEgdGV4dCBub2RlLlxuICpcbiAqIEBwYXJhbSB7UmF3IHwgVGV4dH0gbm9kZVxuICogICBOb2RlIHRvIGhhbmRsZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBfXG4gKiAgIEluZGV4IG9mIGBub2RlYCBpbiBgcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGBub2RlYC5cbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFNlcmlhbGl6ZWQgbm9kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRleHQobm9kZSwgXywgcGFyZW50LCBzdGF0ZSkge1xuICAvLyBDaGVjayBpZiBjb250ZW50IG9mIGBub2RlYCBzaG91bGQgYmUgZXNjYXBlZC5cbiAgcmV0dXJuIHBhcmVudCAmJlxuICAgIHBhcmVudC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAocGFyZW50LnRhZ05hbWUgPT09ICdzY3JpcHQnIHx8IHBhcmVudC50YWdOYW1lID09PSAnc3R5bGUnKVxuICAgID8gbm9kZS52YWx1ZVxuICAgIDogc3RyaW5naWZ5RW50aXRpZXMoXG4gICAgICAgIG5vZGUudmFsdWUsXG4gICAgICAgIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMsIHtcbiAgICAgICAgICBzdWJzZXQ6IHRleHRFbnRpdHlTdWJzZXRcbiAgICAgICAgfSlcbiAgICAgIClcbn1cbiIsICIvKipcbiAqIEBpbXBvcnQge1BhcmVudHN9IGZyb20gJ2hhc3QnXG4gKiBAaW1wb3J0IHtSYXd9IGZyb20gJ21kYXN0LXV0aWwtdG8taGFzdCdcbiAqIEBpbXBvcnQge1N0YXRlfSBmcm9tICcuLi9pbmRleC5qcydcbiAqL1xuXG5pbXBvcnQge3RleHR9IGZyb20gJy4vdGV4dC5qcydcblxuLyoqXG4gKiBTZXJpYWxpemUgYSByYXcgbm9kZS5cbiAqXG4gKiBAcGFyYW0ge1Jhd30gbm9kZVxuICogICBOb2RlIHRvIGhhbmRsZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBgbm9kZWAgaW4gYHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBgbm9kZWAuXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByYXcobm9kZSwgaW5kZXgsIHBhcmVudCwgc3RhdGUpIHtcbiAgcmV0dXJuIHN0YXRlLnNldHRpbmdzLmFsbG93RGFuZ2Vyb3VzSHRtbFxuICAgID8gbm9kZS52YWx1ZVxuICAgIDogdGV4dChub2RlLCBpbmRleCwgcGFyZW50LCBzdGF0ZSlcbn1cbiIsICIvKipcbiAqIEBpbXBvcnQge1BhcmVudHMsIFJvb3R9IGZyb20gJ2hhc3QnXG4gKiBAaW1wb3J0IHtTdGF0ZX0gZnJvbSAnLi4vaW5kZXguanMnXG4gKi9cblxuLyoqXG4gKiBTZXJpYWxpemUgYSByb290LlxuICpcbiAqIEBwYXJhbSB7Um9vdH0gbm9kZVxuICogICBOb2RlIHRvIGhhbmRsZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBfMVxuICogICBJbmRleCBvZiBgbm9kZWAgaW4gYHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gXzJcbiAqICAgUGFyZW50IG9mIGBub2RlYC5cbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFNlcmlhbGl6ZWQgbm9kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJvb3Qobm9kZSwgXzEsIF8yLCBzdGF0ZSkge1xuICByZXR1cm4gc3RhdGUuYWxsKG5vZGUpXG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtOb2RlcywgUGFyZW50c30gZnJvbSAnaGFzdCdcbiAqIEBpbXBvcnQge1N0YXRlfSBmcm9tICcuLi9pbmRleC5qcydcbiAqL1xuXG5pbXBvcnQge3p3aXRjaH0gZnJvbSAnendpdGNoJ1xuaW1wb3J0IHtjb21tZW50fSBmcm9tICcuL2NvbW1lbnQuanMnXG5pbXBvcnQge2RvY3R5cGV9IGZyb20gJy4vZG9jdHlwZS5qcydcbmltcG9ydCB7ZWxlbWVudH0gZnJvbSAnLi9lbGVtZW50LmpzJ1xuaW1wb3J0IHtyYXd9IGZyb20gJy4vcmF3LmpzJ1xuaW1wb3J0IHtyb290fSBmcm9tICcuL3Jvb3QuanMnXG5pbXBvcnQge3RleHR9IGZyb20gJy4vdGV4dC5qcydcblxuLyoqXG4gKiBAdHlwZSB7KG5vZGU6IE5vZGVzLCBpbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkLCBwYXJlbnQ6IFBhcmVudHMgfCB1bmRlZmluZWQsIHN0YXRlOiBTdGF0ZSkgPT4gc3RyaW5nfVxuICovXG5leHBvcnQgY29uc3QgaGFuZGxlID0gendpdGNoKCd0eXBlJywge1xuICBpbnZhbGlkLFxuICB1bmtub3duLFxuICBoYW5kbGVyczoge2NvbW1lbnQsIGRvY3R5cGUsIGVsZW1lbnQsIHJhdywgcm9vdCwgdGV4dH1cbn0pXG5cbi8qKlxuICogRmFpbCB3aGVuIGEgbm9uLW5vZGUgaXMgZm91bmQgaW4gdGhlIHRyZWUuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSBub2RlXG4gKiAgIFVua25vd24gdmFsdWUuXG4gKiBAcmV0dXJucyB7bmV2ZXJ9XG4gKiAgIE5ldmVyLlxuICovXG5mdW5jdGlvbiBpbnZhbGlkKG5vZGUpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBub2RlLCBub3QgYCcgKyBub2RlICsgJ2AnKVxufVxuXG4vKipcbiAqIEZhaWwgd2hlbiBhIG5vZGUgd2l0aCBhbiB1bmtub3duIHR5cGUgaXMgZm91bmQgaW4gdGhlIHRyZWUuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSBub2RlX1xuICogIFVua25vd24gbm9kZS5cbiAqIEByZXR1cm5zIHtuZXZlcn1cbiAqICAgTmV2ZXIuXG4gKi9cbmZ1bmN0aW9uIHVua25vd24obm9kZV8pIHtcbiAgLy8gYHR5cGVgIGlzIGd1YXJhbnRlZWQgYnkgcnVudGltZSBKUy5cbiAgY29uc3Qgbm9kZSA9IC8qKiBAdHlwZSB7Tm9kZXN9ICovIChub2RlXylcbiAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgY29tcGlsZSB1bmtub3duIG5vZGUgYCcgKyBub2RlLnR5cGUgKyAnYCcpXG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtOb2RlcywgUGFyZW50cywgUm9vdENvbnRlbnR9IGZyb20gJ2hhc3QnXG4gKiBAaW1wb3J0IHtTY2hlbWF9IGZyb20gJ3Byb3BlcnR5LWluZm9ybWF0aW9uJ1xuICogQGltcG9ydCB7T3B0aW9ucyBhcyBTdHJpbmdpZnlFbnRpdGllc09wdGlvbnN9IGZyb20gJ3N0cmluZ2lmeS1lbnRpdGllcydcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPbWl0PFN0cmluZ2lmeUVudGl0aWVzT3B0aW9ucywgJ2F0dHJpYnV0ZScgfCAnZXNjYXBlT25seScgfCAnc3Vic2V0Jz59IENoYXJhY3RlclJlZmVyZW5jZXNcbiAqXG4gKiBAdHlwZWRlZiBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzPWZhbHNlXVxuICogICBEbyBub3QgZW5jb2RlIHNvbWUgY2hhcmFjdGVycyB3aGljaCBjYXVzZSBYU1MgdnVsbmVyYWJpbGl0aWVzIGluIG9sZGVyXG4gKiAgIGJyb3dzZXJzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgID4gXHUyNkEwXHVGRTBGICoqRGFuZ2VyKio6IG9ubHkgc2V0IHRoaXMgaWYgeW91IGNvbXBsZXRlbHkgdHJ1c3QgdGhlIGNvbnRlbnQuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbYWxsb3dEYW5nZXJvdXNIdG1sPWZhbHNlXVxuICogICBBbGxvdyBgcmF3YCBub2RlcyBhbmQgaW5zZXJ0IHRoZW0gYXMgcmF3IEhUTUwgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgV2hlbiBgZmFsc2VgLCBgUmF3YCBub2RlcyBhcmUgZW5jb2RlZC5cbiAqXG4gKiAgID4gXHUyNkEwXHVGRTBGICoqRGFuZ2VyKio6IG9ubHkgc2V0IHRoaXMgaWYgeW91IGNvbXBsZXRlbHkgdHJ1c3QgdGhlIGNvbnRlbnQuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbYWxsb3dQYXJzZUVycm9ycz1mYWxzZV1cbiAqICAgRG8gbm90IGVuY29kZSBjaGFyYWN0ZXJzIHdoaWNoIGNhdXNlIHBhcnNlIGVycm9ycyAoZXZlbiB0aG91Z2ggdGhleSB3b3JrKSxcbiAqICAgdG8gc2F2ZSBieXRlcyAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICBOb3QgdXNlZCBpbiB0aGUgU1ZHIHNwYWNlLlxuICpcbiAqICAgPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IGludGVudGlvbmFsbHkgY3JlYXRlcyBwYXJzZSBlcnJvcnMgaW4gbWFya3VwIChob3cgcGFyc2VcbiAqICAgPiBlcnJvcnMgYXJlIGhhbmRsZWQgaXMgd2VsbCBkZWZpbmVkLCBzbyB0aGlzIHdvcmtzIGJ1dCBpc25cdTIwMTl0IHByZXR0eSkuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbYm9ndXNDb21tZW50cz1mYWxzZV1cbiAqICAgVXNlIFx1MjAxQ2JvZ3VzIGNvbW1lbnRzXHUyMDFEIGluc3RlYWQgb2YgY29tbWVudHMgdG8gc2F2ZSBieWVzOiBgPD9jaGFybGllPmBcbiAqICAgaW5zdGVhZCBvZiBgPCEtLWNoYXJsaWUtLT5gIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBpbnRlbnRpb25hbGx5IGNyZWF0ZXMgcGFyc2UgZXJyb3JzIGluIG1hcmt1cCAoaG93IHBhcnNlXG4gKiAgID4gZXJyb3JzIGFyZSBoYW5kbGVkIGlzIHdlbGwgZGVmaW5lZCwgc28gdGhpcyB3b3JrcyBidXQgaXNuXHUyMDE5dCBwcmV0dHkpLlxuICogQHByb3BlcnR5IHtDaGFyYWN0ZXJSZWZlcmVuY2VzIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2NoYXJhY3RlclJlZmVyZW5jZXNdXG4gKiAgIENvbmZpZ3VyZSBob3cgdG8gc2VyaWFsaXplIGNoYXJhY3RlciByZWZlcmVuY2VzIChvcHRpb25hbCkuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbY2xvc2VFbXB0eUVsZW1lbnRzPWZhbHNlXVxuICogICBDbG9zZSBTVkcgZWxlbWVudHMgd2l0aG91dCBhbnkgY29udGVudCB3aXRoIHNsYXNoIChgL2ApIG9uIHRoZSBvcGVuaW5nIHRhZ1xuICogICBpbnN0ZWFkIG9mIGFuIGVuZCB0YWc6IGA8Y2lyY2xlIC8+YCBpbnN0ZWFkIG9mIGA8Y2lyY2xlPjwvY2lyY2xlPmBcbiAqICAgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgU2VlIGB0aWdodFNlbGZDbG9zaW5nYCB0byBjb250cm9sIHdoZXRoZXIgYSBzcGFjZSBpcyB1c2VkIGJlZm9yZSB0aGVcbiAqICAgc2xhc2guXG4gKlxuICogICBOb3QgdXNlZCBpbiB0aGUgSFRNTCBzcGFjZS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtjbG9zZVNlbGZDbG9zaW5nPWZhbHNlXVxuICogICBDbG9zZSBzZWxmLWNsb3Npbmcgbm9kZXMgd2l0aCBhbiBleHRyYSBzbGFzaCAoYC9gKTogYDxpbWcgLz5gIGluc3RlYWQgb2ZcbiAqICAgYDxpbWc+YCAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICBTZWUgYHRpZ2h0U2VsZkNsb3NpbmdgIHRvIGNvbnRyb2wgd2hldGhlciBhIHNwYWNlIGlzIHVzZWQgYmVmb3JlIHRoZVxuICogICBzbGFzaC5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBTVkcgc3BhY2UuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXM9ZmFsc2VdXG4gKiAgIENvbGxhcHNlIGVtcHR5IGF0dHJpYnV0ZXM6IGdldCBgY2xhc3NgIGluc3RlYWQgb2YgYGNsYXNzPVwiXCJgIChkZWZhdWx0OlxuICogICBgZmFsc2VgKS5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBTVkcgc3BhY2UuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogYm9vbGVhbiBhdHRyaWJ1dGVzIChzdWNoIGFzIGBoaWRkZW5gKSBhcmUgYWx3YXlzIGNvbGxhcHNlZC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtvbWl0T3B0aW9uYWxUYWdzPWZhbHNlXVxuICogICBPbWl0IG9wdGlvbmFsIG9wZW5pbmcgYW5kIGNsb3NpbmcgdGFncyAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICBGb3IgZXhhbXBsZSwgaW4gYDxvbD48bGk+b25lPC9saT48bGk+dHdvPC9saT48L29sPmAsIGJvdGggYDwvbGk+YCBjbG9zaW5nXG4gKiAgIHRhZ3MgY2FuIGJlIG9taXR0ZWQuXG4gKiAgIFRoZSBmaXJzdCBiZWNhdXNlIGl0XHUyMDE5cyBmb2xsb3dlZCBieSBhbm90aGVyIGBsaWAsIHRoZSBsYXN0IGJlY2F1c2UgaXRcdTIwMTlzXG4gKiAgIGZvbGxvd2VkIGJ5IG5vdGhpbmcuXG4gKlxuICogICBOb3QgdXNlZCBpbiB0aGUgU1ZHIHNwYWNlLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3ByZWZlclVucXVvdGVkPWZhbHNlXVxuICogICBMZWF2ZSBhdHRyaWJ1dGVzIHVucXVvdGVkIGlmIHRoYXQgcmVzdWx0cyBpbiBsZXNzIGJ5dGVzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBTVkcgc3BhY2UuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbcXVvdGVTbWFydD1mYWxzZV1cbiAqICAgVXNlIHRoZSBvdGhlciBxdW90ZSBpZiB0aGF0IHJlc3VsdHMgaW4gbGVzcyBieXRlcyAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKiBAcHJvcGVydHkge1F1b3RlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3F1b3RlPSdcIiddXG4gKiAgIFByZWZlcnJlZCBxdW90ZSB0byB1c2UgKGRlZmF1bHQ6IGAnXCInYCkuXG4gKiBAcHJvcGVydHkge1NwYWNlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3NwYWNlPSdodG1sJ11cbiAqICAgV2hlbiBhbiBgPHN2Zz5gIGVsZW1lbnQgaXMgZm91bmQgaW4gdGhlIEhUTUwgc3BhY2UsIHRoaXMgcGFja2FnZSBhbHJlYWR5XG4gKiAgIGF1dG9tYXRpY2FsbHkgc3dpdGNoZXMgdG8gYW5kIGZyb20gdGhlIFNWRyBzcGFjZSB3aGVuIGVudGVyaW5nIGFuZCBleGl0aW5nXG4gKiAgIGl0IChkZWZhdWx0OiBgJ2h0bWwnYCkuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogaGFzdCBpcyBub3QgWE1MLlxuICogICA+IEl0IHN1cHBvcnRzIFNWRyBhcyBlbWJlZGRlZCBpbiBIVE1MLlxuICogICA+IEl0IGRvZXMgbm90IHN1cHBvcnQgdGhlIGZlYXR1cmVzIGF2YWlsYWJsZSBpbiBYTUwuXG4gKiAgID4gUGFzc2luZyBTVkcgbWlnaHQgYnJlYWsgYnV0IGZyYWdtZW50cyBvZiBtb2Rlcm4gU1ZHIHNob3VsZCBiZSBmaW5lLlxuICogICA+IFVzZSBbYHhhc3RgXVt4YXN0XSBpZiB5b3UgbmVlZCB0byBzdXBwb3J0IFNWRyBhcyBYTUwuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbdGlnaHRBdHRyaWJ1dGVzPWZhbHNlXVxuICogICBKb2luIGF0dHJpYnV0ZXMgdG9nZXRoZXIsIHdpdGhvdXQgd2hpdGVzcGFjZSwgaWYgcG9zc2libGU6IGdldFxuICogICBgY2xhc3M9XCJhIGJcInRpdGxlPVwiYyBkXCJgIGluc3RlYWQgb2YgYGNsYXNzPVwiYSBiXCIgdGl0bGU9XCJjIGRcImAgdG8gc2F2ZVxuICogICBieXRlcyAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICBOb3QgdXNlZCBpbiB0aGUgU1ZHIHNwYWNlLlxuICpcbiAqICAgPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IGludGVudGlvbmFsbHkgY3JlYXRlcyBwYXJzZSBlcnJvcnMgaW4gbWFya3VwIChob3cgcGFyc2VcbiAqICAgPiBlcnJvcnMgYXJlIGhhbmRsZWQgaXMgd2VsbCBkZWZpbmVkLCBzbyB0aGlzIHdvcmtzIGJ1dCBpc25cdTIwMTl0IHByZXR0eSkuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbdGlnaHRDb21tYVNlcGFyYXRlZExpc3RzPWZhbHNlXVxuICogICBKb2luIGtub3duIGNvbW1hLXNlcGFyYXRlZCBhdHRyaWJ1dGUgdmFsdWVzIHdpdGgganVzdCBhIGNvbW1hIChgLGApLFxuICogICBpbnN0ZWFkIG9mIHBhZGRpbmcgdGhlbSBvbiB0aGUgcmlnaHQgYXMgd2VsbCAoYCxcdTI0MjBgLCB3aGVyZSBgXHUyNDIwYCByZXByZXNlbnRzIGFcbiAqICAgc3BhY2UpIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt0aWdodERvY3R5cGU9ZmFsc2VdXG4gKiAgIERyb3AgdW5uZWVkZWQgc3BhY2VzIGluIGRvY3R5cGVzOiBgPCFkb2N0eXBlaHRtbD5gIGluc3RlYWQgb2ZcbiAqICAgYDwhZG9jdHlwZSBodG1sPmAgdG8gc2F2ZSBieXRlcyAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogaW50ZW50aW9uYWxseSBjcmVhdGVzIHBhcnNlIGVycm9ycyBpbiBtYXJrdXAgKGhvdyBwYXJzZVxuICogICA+IGVycm9ycyBhcmUgaGFuZGxlZCBpcyB3ZWxsIGRlZmluZWQsIHNvIHRoaXMgd29ya3MgYnV0IGlzblx1MjAxOXQgcHJldHR5KS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt0aWdodFNlbGZDbG9zaW5nPWZhbHNlXVxuICogICBEbyBub3QgdXNlIGFuIGV4dHJhIHNwYWNlIHdoZW4gY2xvc2luZyBzZWxmLWNsb3NpbmcgZWxlbWVudHM6IGA8aW1nLz5gXG4gKiAgIGluc3RlYWQgb2YgYDxpbWcgLz5gIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBvbmx5IHVzZWQgaWYgYGNsb3NlU2VsZkNsb3Npbmc6IHRydWVgIG9yXG4gKiAgID4gYGNsb3NlRW1wdHlFbGVtZW50czogdHJ1ZWAuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbdXBwZXJEb2N0eXBlPWZhbHNlXVxuICogICBVc2UgYSBgPCFET0NUWVBFXHUyMDI2YCBpbnN0ZWFkIG9mIGA8IWRvY3R5cGVcdTIwMjZgIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIFVzZWxlc3MgZXhjZXB0IGZvciBYSFRNTC5cbiAqIEBwcm9wZXJ0eSB7UmVhZG9ubHlBcnJheTxzdHJpbmc+IHwgbnVsbCB8IHVuZGVmaW5lZH0gW3ZvaWRzXVxuICogICBUYWcgbmFtZXMgb2YgZWxlbWVudHMgdG8gc2VyaWFsaXplIHdpdGhvdXQgY2xvc2luZyB0YWcgKGRlZmF1bHQ6IGBodG1sLXZvaWQtZWxlbWVudHNgKS5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBTVkcgc3BhY2UuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogSXRcdTIwMTlzIGhpZ2hseSB1bmxpa2VseSB0aGF0IHlvdSB3YW50IHRvIHBhc3MgdGhpcywgYmVjYXVzZVxuICogICA+IGhhc3QgaXMgbm90IGZvciBYTUwsIGFuZCBIVE1MIHdpbGwgbm90IGFkZCBtb3JlIHZvaWQgZWxlbWVudHMuXG4gKlxuICogQHR5cGVkZWYgeydcIicgfCBcIidcIn0gUXVvdGVcbiAqICAgSFRNTCBxdW90ZXMgZm9yIGF0dHJpYnV0ZSB2YWx1ZXMuXG4gKlxuICogQHR5cGVkZWYge09taXQ8UmVxdWlyZWQ8e1trZXkgaW4ga2V5b2YgT3B0aW9uc106IEV4Y2x1ZGU8T3B0aW9uc1trZXldLCBudWxsIHwgdW5kZWZpbmVkPn0+LCAnc3BhY2UnIHwgJ3F1b3RlJz59IFNldHRpbmdzXG4gKlxuICogQHR5cGVkZWYgeydodG1sJyB8ICdzdmcnfSBTcGFjZVxuICogICBOYW1lc3BhY2UuXG4gKlxuICogQHR5cGVkZWYgU3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHByb3BlcnR5IHsobm9kZTogUGFyZW50cyB8IHVuZGVmaW5lZCkgPT4gc3RyaW5nfSBhbGxcbiAqICAgU2VyaWFsaXplIHRoZSBjaGlsZHJlbiBvZiBhIHBhcmVudCBub2RlLlxuICogQHByb3BlcnR5IHtRdW90ZX0gYWx0ZXJuYXRpdmVcbiAqICAgQWx0ZXJuYXRpdmUgcXVvdGUuXG4gKiBAcHJvcGVydHkgeyhub2RlOiBOb2RlcywgaW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCwgcGFyZW50OiBQYXJlbnRzIHwgdW5kZWZpbmVkKSA9PiBzdHJpbmd9IG9uZVxuICogICBTZXJpYWxpemUgb25lIG5vZGUuXG4gKiBAcHJvcGVydHkge1F1b3RlfSBxdW90ZVxuICogICBQcmVmZXJyZWQgcXVvdGUuXG4gKiBAcHJvcGVydHkge1NjaGVtYX0gc2NoZW1hXG4gKiAgIEN1cnJlbnQgc2NoZW1hLlxuICogQHByb3BlcnR5IHtTZXR0aW5nc30gc2V0dGluZ3NcbiAqICAgVXNlciBjb25maWd1cmF0aW9uLlxuICovXG5cbmltcG9ydCB7aHRtbFZvaWRFbGVtZW50c30gZnJvbSAnaHRtbC12b2lkLWVsZW1lbnRzJ1xuaW1wb3J0IHtodG1sLCBzdmd9IGZyb20gJ3Byb3BlcnR5LWluZm9ybWF0aW9uJ1xuaW1wb3J0IHtoYW5kbGV9IGZyb20gJy4vaGFuZGxlL2luZGV4LmpzJ1xuXG4vKiogQHR5cGUge09wdGlvbnN9ICovXG5jb25zdCBlbXB0eU9wdGlvbnMgPSB7fVxuXG4vKiogQHR5cGUge0NoYXJhY3RlclJlZmVyZW5jZXN9ICovXG5jb25zdCBlbXB0eUNoYXJhY3RlclJlZmVyZW5jZXMgPSB7fVxuXG4vKiogQHR5cGUge0FycmF5PG5ldmVyPn0gKi9cbmNvbnN0IGVtcHR5Q2hpbGRyZW4gPSBbXVxuXG4vKipcbiAqIFNlcmlhbGl6ZSBoYXN0IGFzIEhUTUwuXG4gKlxuICogQHBhcmFtIHtBcnJheTxSb290Q29udGVudD4gfCBOb2Rlc30gdHJlZVxuICogICBUcmVlIHRvIHNlcmlhbGl6ZS5cbiAqIEBwYXJhbSB7T3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uIChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIEhUTUwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0h0bWwodHJlZSwgb3B0aW9ucykge1xuICBjb25zdCBvcHRpb25zXyA9IG9wdGlvbnMgfHwgZW1wdHlPcHRpb25zXG4gIGNvbnN0IHF1b3RlID0gb3B0aW9uc18ucXVvdGUgfHwgJ1wiJ1xuICBjb25zdCBhbHRlcm5hdGl2ZSA9IHF1b3RlID09PSAnXCInID8gXCInXCIgOiAnXCInXG5cbiAgaWYgKHF1b3RlICE9PSAnXCInICYmIHF1b3RlICE9PSBcIidcIikge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBxdW90ZSBgJyArIHF1b3RlICsgJ2AsIGV4cGVjdGVkIGBcXCdgIG9yIGBcImAnKVxuICB9XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgY29uc3Qgc3RhdGUgPSB7XG4gICAgb25lLFxuICAgIGFsbCxcbiAgICBzZXR0aW5nczoge1xuICAgICAgb21pdE9wdGlvbmFsVGFnczogb3B0aW9uc18ub21pdE9wdGlvbmFsVGFncyB8fCBmYWxzZSxcbiAgICAgIGFsbG93UGFyc2VFcnJvcnM6IG9wdGlvbnNfLmFsbG93UGFyc2VFcnJvcnMgfHwgZmFsc2UsXG4gICAgICBhbGxvd0Rhbmdlcm91c0NoYXJhY3RlcnM6IG9wdGlvbnNfLmFsbG93RGFuZ2Vyb3VzQ2hhcmFjdGVycyB8fCBmYWxzZSxcbiAgICAgIHF1b3RlU21hcnQ6IG9wdGlvbnNfLnF1b3RlU21hcnQgfHwgZmFsc2UsXG4gICAgICBwcmVmZXJVbnF1b3RlZDogb3B0aW9uc18ucHJlZmVyVW5xdW90ZWQgfHwgZmFsc2UsXG4gICAgICB0aWdodEF0dHJpYnV0ZXM6IG9wdGlvbnNfLnRpZ2h0QXR0cmlidXRlcyB8fCBmYWxzZSxcbiAgICAgIHVwcGVyRG9jdHlwZTogb3B0aW9uc18udXBwZXJEb2N0eXBlIHx8IGZhbHNlLFxuICAgICAgdGlnaHREb2N0eXBlOiBvcHRpb25zXy50aWdodERvY3R5cGUgfHwgZmFsc2UsXG4gICAgICBib2d1c0NvbW1lbnRzOiBvcHRpb25zXy5ib2d1c0NvbW1lbnRzIHx8IGZhbHNlLFxuICAgICAgdGlnaHRDb21tYVNlcGFyYXRlZExpc3RzOiBvcHRpb25zXy50aWdodENvbW1hU2VwYXJhdGVkTGlzdHMgfHwgZmFsc2UsXG4gICAgICB0aWdodFNlbGZDbG9zaW5nOiBvcHRpb25zXy50aWdodFNlbGZDbG9zaW5nIHx8IGZhbHNlLFxuICAgICAgY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXM6IG9wdGlvbnNfLmNvbGxhcHNlRW1wdHlBdHRyaWJ1dGVzIHx8IGZhbHNlLFxuICAgICAgYWxsb3dEYW5nZXJvdXNIdG1sOiBvcHRpb25zXy5hbGxvd0Rhbmdlcm91c0h0bWwgfHwgZmFsc2UsXG4gICAgICB2b2lkczogb3B0aW9uc18udm9pZHMgfHwgaHRtbFZvaWRFbGVtZW50cyxcbiAgICAgIGNoYXJhY3RlclJlZmVyZW5jZXM6XG4gICAgICAgIG9wdGlvbnNfLmNoYXJhY3RlclJlZmVyZW5jZXMgfHwgZW1wdHlDaGFyYWN0ZXJSZWZlcmVuY2VzLFxuICAgICAgY2xvc2VTZWxmQ2xvc2luZzogb3B0aW9uc18uY2xvc2VTZWxmQ2xvc2luZyB8fCBmYWxzZSxcbiAgICAgIGNsb3NlRW1wdHlFbGVtZW50czogb3B0aW9uc18uY2xvc2VFbXB0eUVsZW1lbnRzIHx8IGZhbHNlXG4gICAgfSxcbiAgICBzY2hlbWE6IG9wdGlvbnNfLnNwYWNlID09PSAnc3ZnJyA/IHN2ZyA6IGh0bWwsXG4gICAgcXVvdGUsXG4gICAgYWx0ZXJuYXRpdmVcbiAgfVxuXG4gIHJldHVybiBzdGF0ZS5vbmUoXG4gICAgQXJyYXkuaXNBcnJheSh0cmVlKSA/IHt0eXBlOiAncm9vdCcsIGNoaWxkcmVuOiB0cmVlfSA6IHRyZWUsXG4gICAgdW5kZWZpbmVkLFxuICAgIHVuZGVmaW5lZFxuICApXG59XG5cbi8qKlxuICogU2VyaWFsaXplIGEgbm9kZS5cbiAqXG4gKiBAdGhpcyB7U3RhdGV9XG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEBwYXJhbSB7Tm9kZXN9IG5vZGVcbiAqICAgTm9kZSB0byBoYW5kbGUuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgYG5vZGVgIGluIGBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgYG5vZGVgLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBub2RlLlxuICovXG5mdW5jdGlvbiBvbmUobm9kZSwgaW5kZXgsIHBhcmVudCkge1xuICByZXR1cm4gaGFuZGxlKG5vZGUsIGluZGV4LCBwYXJlbnQsIHRoaXMpXG59XG5cbi8qKlxuICogU2VyaWFsaXplIGFsbCBjaGlsZHJlbiBvZiBgcGFyZW50YC5cbiAqXG4gKiBAdGhpcyB7U3RhdGV9XG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCB3aG9zZSBjaGlsZHJlbiB0byBzZXJpYWxpemUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gYWxsKHBhcmVudCkge1xuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IHJlc3VsdHMgPSBbXVxuICBjb25zdCBjaGlsZHJlbiA9IChwYXJlbnQgJiYgcGFyZW50LmNoaWxkcmVuKSB8fCBlbXB0eUNoaWxkcmVuXG4gIGxldCBpbmRleCA9IC0xXG5cbiAgd2hpbGUgKCsraW5kZXggPCBjaGlsZHJlbi5sZW5ndGgpIHtcbiAgICByZXN1bHRzW2luZGV4XSA9IHRoaXMub25lKGNoaWxkcmVuW2luZGV4XSwgaW5kZXgsIHBhcmVudClcbiAgfVxuXG4gIHJldHVybiByZXN1bHRzLmpvaW4oJycpXG59XG4iLCAiXG5leHBvcnQgaW50ZXJmYWNlIElubGluZUNvZGVQYXJhbWV0ZXJzIHtcblx0bGFuZ3VhZ2U6IHN0cmluZztcblx0dGl0bGU6IHN0cmluZztcblx0aWNvbjogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSW5saW5lQ29kZShjb2RlVGV4dDogc3RyaW5nKToge3BhcmFtZXRlcnM6IElubGluZUNvZGVQYXJhbWV0ZXJzIHwgbnVsbCwgdGV4dDogc3RyaW5nfSB7XG5cdGNvbnN0IG1hdGNoID0gL157KCg/OlteXCIne31cXFxcXXxcXFxcLnxcIig/OlteXCJcXFxcXXxcXFxcLikqXCJ8Jyg/OlteJ1xcXFxdfFxcXFwuKSonKSopfSAqPyhbXiBdLiopJC8uZXhlYyhjb2RlVGV4dCk7XG5cblx0aWYgKHR5cGVvZiBtYXRjaD8uWzFdICE9PSBcInVuZGVmaW5lZFwiICYmIHR5cGVvZiBtYXRjaD8uWzJdICE9PSBcInVuZGVmaW5lZFwiKSB7XG5cdFx0aWYgKG1hdGNoWzFdID09PSBcIlwiKVxuXHRcdFx0cmV0dXJuIHtwYXJhbWV0ZXJzOiBudWxsLCB0ZXh0OiBtYXRjaFsyXX07XG5cdFx0ZWxzZVxuXHRcdFx0cmV0dXJuIHtwYXJhbWV0ZXJzOiBwYXJzZUlubGluZUNvZGVQYXJhbWV0ZXJzKG1hdGNoWzFdKSwgdGV4dDogbWF0Y2hbMl19O1xuXHR9IGVsc2Vcblx0XHRyZXR1cm4ge3BhcmFtZXRlcnM6IG51bGwsIHRleHQ6IGNvZGVUZXh0fTtcbn1cbmZ1bmN0aW9uIHBhcnNlSW5saW5lQ29kZVBhcmFtZXRlcnMocGFyYW1ldGVyTGluZTogc3RyaW5nKTogSW5saW5lQ29kZVBhcmFtZXRlcnMge1xuXHRjb25zdCBpbmxpbmVDb2RlUGFyYW1ldGVyczogSW5saW5lQ29kZVBhcmFtZXRlcnMgPSB7XG5cdFx0bGFuZ3VhZ2U6IFwiXCIsXG5cdFx0dGl0bGU6IFwiXCIsXG5cdFx0aWNvbjogZmFsc2UsXG5cdH07XG5cdGNvbnN0IGxhbmd1YWdlQnJlYWsgPSBwYXJhbWV0ZXJMaW5lLmluZGV4T2YoXCIgXCIpO1xuXHRpbmxpbmVDb2RlUGFyYW1ldGVycy5sYW5ndWFnZSA9IHBhcmFtZXRlckxpbmUuc2xpY2UoMCxsYW5ndWFnZUJyZWFrICE9PSAtMT9sYW5ndWFnZUJyZWFrOnBhcmFtZXRlckxpbmUubGVuZ3RoKS50b0xvd2VyQ2FzZSgpO1xuXHRpZiAobGFuZ3VhZ2VCcmVhayA9PT0gLTEpXG5cdFx0cmV0dXJuIGlubGluZUNvZGVQYXJhbWV0ZXJzO1xuXHRjb25zdCBwYXJhbWV0ZXJTdHJpbmdzID0gcGFyYW1ldGVyTGluZS5zbGljZShsYW5ndWFnZUJyZWFrKzEpLm1hdGNoKC8oPzpbXlxcc1wiJ10rfFwiW15cIl0qXCJ8J1teJ10qJykrL2cpO1xuXHRpZiAoIXBhcmFtZXRlclN0cmluZ3MpXG5cdFx0cmV0dXJuIGlubGluZUNvZGVQYXJhbWV0ZXJzO1xuXHRwYXJhbWV0ZXJTdHJpbmdzLmZvckVhY2goKHBhcmFtZXRlclN0cmluZykgPT4gcGFyc2VJbmxpbmVDb2RlUGFyYW1ldGVyU3RyaW5nKHBhcmFtZXRlclN0cmluZyxpbmxpbmVDb2RlUGFyYW1ldGVycykpO1xuXHRyZXR1cm4gaW5saW5lQ29kZVBhcmFtZXRlcnM7XG59XG5mdW5jdGlvbiBwYXJzZUlubGluZUNvZGVQYXJhbWV0ZXJTdHJpbmcocGFyYW1ldGVyU3RyaW5nOiBzdHJpbmcsIGlubGluZUNvZGVQYXJhbWV0ZXJzOiBJbmxpbmVDb2RlUGFyYW1ldGVycyk6IHZvaWQge1xuXHRpZiAocGFyYW1ldGVyU3RyaW5nLnN0YXJ0c1dpdGgoXCJ0aXRsZTpcIikgfHwgcGFyYW1ldGVyU3RyaW5nLnN0YXJ0c1dpdGgoXCJ0aXRsZT1cIikpIHtcblx0XHRjb25zdCB0aXRsZU1hdGNoID0gLyhbXCInXT8pKFteXFwxXSspXFwxLy5leGVjKHBhcmFtZXRlclN0cmluZy5zbGljZShcInRpdGxlOlwiLmxlbmd0aCkpO1xuXHRcdGlmICh0aXRsZU1hdGNoKVxuXHRcdFx0aW5saW5lQ29kZVBhcmFtZXRlcnMudGl0bGUgPSB0aXRsZU1hdGNoWzJdLnRyaW0oKS5yZXBsYWNlKC9cXFxcey9nLCBcIntcIik7XG5cdH0gZWxzZSBpZiAocGFyYW1ldGVyU3RyaW5nID09PSBcImljb25cIiB8fCAocGFyYW1ldGVyU3RyaW5nLnN0YXJ0c1dpdGgoXCJpY29uOlwiKSAmJiBwYXJhbWV0ZXJTdHJpbmcudG9Mb3dlckNhc2UoKSA9PT0gXCJpY29uOnRydWVcIikpXG5cdFx0aW5saW5lQ29kZVBhcmFtZXRlcnMuaWNvbiA9IHRydWU7XG59XG4iLCAiaW1wb3J0IHsgTEFOR1VBR0VfTkFNRVMsIENvZGVTdHlsZXJUaGVtZVNldHRpbmdzLCBGT0xEX1BMQUNFSE9MREVSLCBHSVRfSUNPTlMsIFNUQU1QX0lDT04sIFNJVEVfSUNPTlMsIFVQREFURV9JQ09OIH0gZnJvbSBcIi4vU2V0dGluZ3NcIjtcbmltcG9ydCB7IENvZGVibG9ja1BhcmFtZXRlcnMsIEhpZ2hsaWdodHMgfSBmcm9tIFwiLi9QYXJzaW5nL0NvZGVibG9ja1BhcnNpbmdcIjtcbmltcG9ydCB7IElubGluZUNvZGVQYXJhbWV0ZXJzIH0gZnJvbSBcIi4vUGFyc2luZy9JbmxpbmVDb2RlUGFyc2luZ1wiO1xuaW1wb3J0IHsgTWFya2Rvd25SZW5kZXJlciwgTWFya2Rvd25WaWV3IH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQgQ29kZVN0eWxlclBsdWdpbiBmcm9tIFwiLi9tYWluXCI7XG5pbXBvcnQgeyB1cGRhdGVFeHRlcm5hbFJlZmVyZW5jZSB9IGZyb20gXCIuL1JlZmVyZW5jaW5nXCI7XG5pbXBvcnQgeyBSZWZlcmVuY2UgfSBmcm9tIFwiLi9QYXJzaW5nL1JlZmVyZW5jZVBhcnNpbmdcIjtcbmltcG9ydCB7IHJlcmVuZGVyIH0gZnJvbSBcIi4vRWRpdGluZ1ZpZXdcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUhlYWRlcihjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCB0aGVtZVNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncywgc291cmNlUGF0aDogc3RyaW5nLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pOiBIVE1MRWxlbWVudCB7XG5cdGNvbnN0IGhlYWRlckNvbnRhaW5lciA9IGNyZWF0ZURpdigpO1xuXHRjb25zdCBpY29uVVJMID0gY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZT9nZXRMYW5ndWFnZUljb24oY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSxwbHVnaW4ubGFuZ3VhZ2VJY29ucyk6dW5kZWZpbmVkO1xuXHRpZiAoIWlzSGVhZGVySGlkZGVuKGNvZGVibG9ja1BhcmFtZXRlcnMsdGhlbWVTZXR0aW5ncyxpY29uVVJMKSkge1xuXHRcdGhlYWRlckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lclwiKTtcblx0XHRpZiAoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSAhPT0gXCJcIikge1xuXHRcdFx0aWYgKGlzTGFuZ3VhZ2VJY29uU2hvd24oY29kZWJsb2NrUGFyYW1ldGVycyx0aGVtZVNldHRpbmdzLGljb25VUkwpKVxuXHRcdFx0XHRoZWFkZXJDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlSW1hZ2VXcmFwcGVyKGljb25VUkwgYXMgc3RyaW5nLGNyZWF0ZURpdigpKSk7XG5cdFx0XHRpZiAoaXNMYW5ndWFnZVRhZ1Nob3duKGNvZGVibG9ja1BhcmFtZXRlcnMsdGhlbWVTZXR0aW5ncykpXG5cdFx0XHRcdGhlYWRlckNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVEaXYoe2NsczogXCJjb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnXCIsIHRleHQ6IGdldExhbmd1YWdlVGFnKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpfSkpO1xuXHRcdH1cblx0XHRoZWFkZXJDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlVGl0bGVDb250YWluZXIoY29kZWJsb2NrUGFyYW1ldGVycywgdGhlbWVTZXR0aW5ncywgc291cmNlUGF0aCwgcGx1Z2luKSk7XG5cdFx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnM/LmV4dGVybmFsUmVmZXJlbmNlKVxuXHRcdFx0aGVhZGVyQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZUV4dGVybmFsUmVmZXJlbmNlQ29udGFpbmVyKGNvZGVibG9ja1BhcmFtZXRlcnMsIHNvdXJjZVBhdGgsIHBsdWdpbikpO1xuXHRcdGlmIChmYWxzZSkgLy9UT0RPIChAbWF5dXJhbmt2KSBBZGQgc2V0dGluZ3MgdG9nZ2xlIG9uY2UgZXhlY3V0ZSBjb2RlIGNvbXBhdGliaWxpdHkgaW1wcm92ZWRcblx0XHRcdGhlYWRlckNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVFeGVjdXRlQ29kZUNvbnRhaW5lcihjb2RlYmxvY2tQYXJhbWV0ZXJzLCBwbHVnaW4pKTtcblx0fSBlbHNlXG5cdFx0aGVhZGVyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLWhpZGRlblwiKTtcblx0cmV0dXJuIGhlYWRlckNvbnRhaW5lcjtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVRpdGxlQ29udGFpbmVyKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzLCBzb3VyY2VQYXRoOiBzdHJpbmcsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbik6IEhUTUxFbGVtZW50IHtcblx0Y29uc3QgdGl0bGVDb250YWluZXIgPSBjcmVhdGVEaXYoe2NsczogXCJjb2RlLXN0eWxlci1oZWFkZXItdGV4dFwifSk7XG5cdGNvbnN0IHRpdGxlID0gY29kZWJsb2NrUGFyYW1ldGVycy50aXRsZSB8fCAoY29kZWJsb2NrUGFyYW1ldGVycy5mb2xkLmVuYWJsZWQ/KGNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5wbGFjZWhvbGRlciB8fCB0aGVtZVNldHRpbmdzLmhlYWRlci5mb2xkUGxhY2Vob2xkZXIgfHwgRk9MRF9QTEFDRUhPTERFUik6XCJcIik7XG5cdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLnJlZmVyZW5jZSA9PT0gXCJcIilcblx0XHR0aXRsZUNvbnRhaW5lci5pbm5lclRleHQgPSB0aXRsZTtcblx0ZWxzZSBpZiAoL14oPzpodHRwcz98ZmlsZSk6XFwvXFwvLy50ZXN0KGNvZGVibG9ja1BhcmFtZXRlcnMucmVmZXJlbmNlKSlcblx0XHRNYXJrZG93blJlbmRlcmVyLnJlbmRlcihwbHVnaW4uYXBwLGBbJHt0aXRsZX1dKCR7Y29kZWJsb2NrUGFyYW1ldGVycy5yZWZlcmVuY2V9KWAsdGl0bGVDb250YWluZXIsc291cmNlUGF0aCxwbHVnaW4pO1xuXHRlbHNlXG5cdFx0TWFya2Rvd25SZW5kZXJlci5yZW5kZXIocGx1Z2luLmFwcCxgW1ske2NvZGVibG9ja1BhcmFtZXRlcnMucmVmZXJlbmNlfXwke3RpdGxlfV1dYCx0aXRsZUNvbnRhaW5lcixzb3VyY2VQYXRoLHBsdWdpbik7IC8vVE9ETyAoQG1heXVyYW5rdikgQWRkIGxpbmtzIHRvIG1ldGFkYXRhIGNhY2hlIHByb3Blcmx5XG5cdHJldHVybiB0aXRsZUNvbnRhaW5lcjtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUV4dGVybmFsUmVmZXJlbmNlQ29udGFpbmVyKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHNvdXJjZVBhdGg6IHN0cmluZywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogSFRNTEVsZW1lbnQge1xuXHQvL1RPRE8gKEBtYXl1cmFua3YpIEFkZCB0aGVtZSBzZXR0aW5ncyB0byBjb25kaXRpb25hbGx5IHNldCBzZWN0aW9uc1xuXHRjb25zdCBleHRlcm5hbFJlZmVyZW5jZUNvbnRhaW5lciA9IGNyZWF0ZURpdih7IGNsczogXCJjb2RlLXN0eWxlci1oZWFkZXItZXh0ZXJuYWwtcmVmZXJlbmNlXCIgfSk7XG5cdGlmIChwbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5leHRlcm5hbFJlZmVyZW5jZS5kaXNwbGF5UmVwb3NpdG9yeSkge1xuXHRcdGNvbnN0IHNpdGVJY29uID0gY3JlYXRlRGl2KHsgY2xzOiBcImV4dGVybmFsLXJlZmVyZW5jZS1yZXBvLWljb25cIiB9KTtcblx0XHRzaXRlSWNvbi5pbm5lckhUTUwgPSBTSVRFX0lDT05TPy5bY29kZWJsb2NrUGFyYW1ldGVycz8uZXh0ZXJuYWxSZWZlcmVuY2U/LmV4dGVybmFsPy5pbmZvPy5zaXRlIGFzIHN0cmluZ10gPz8gU0lURV9JQ09OU1tcImdlbmVyaWNcIl07XG5cdFx0ZXh0ZXJuYWxSZWZlcmVuY2VDb250YWluZXIuYXBwZW5kQ2hpbGQoc2l0ZUljb24pO1xuXHRcdGV4dGVybmFsUmVmZXJlbmNlQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZURpdih7IGNsczogXCJleHRlcm5hbC1yZWZlcmVuY2UtcmVwb1wiLCB0ZXh0OiBjb2RlYmxvY2tQYXJhbWV0ZXJzPy5leHRlcm5hbFJlZmVyZW5jZT8uZXh0ZXJuYWw/LmluZm8/LmF1dGhvciArIFwiL1wiICsgY29kZWJsb2NrUGFyYW1ldGVycz8uZXh0ZXJuYWxSZWZlcmVuY2U/LmV4dGVybmFsPy5pbmZvPy5yZXBvc2l0b3J5IH0pKTtcblx0fVxuXHRpZiAocGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIuZXh0ZXJuYWxSZWZlcmVuY2UuZGlzcGxheVZlcnNpb24pIHtcblx0XHRjb25zdCByZWZJY29uID0gY3JlYXRlRGl2KHsgY2xzOiBcImV4dGVybmFsLXJlZmVyZW5jZS1yZWYtaWNvblwiIH0pO1xuXHRcdHJlZkljb24uaW5uZXJIVE1MID0gR0lUX0lDT05TPy5bY29kZWJsb2NrUGFyYW1ldGVycz8uZXh0ZXJuYWxSZWZlcmVuY2U/LmV4dGVybmFsPy5pbmZvPy5yZWZJbmZvPy50eXBlIGFzIHN0cmluZ10gPz8gR0lUX0lDT05TW1wiYnJhbmNoXCJdO1xuXHRcdGV4dGVybmFsUmVmZXJlbmNlQ29udGFpbmVyLmFwcGVuZENoaWxkKHJlZkljb24pO1xuXHRcdGV4dGVybmFsUmVmZXJlbmNlQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZURpdih7Y2xzOiBcImV4dGVybmFsLXJlZmVyZW5jZS1yZWZcIiwgdGV4dDogY29kZWJsb2NrUGFyYW1ldGVycz8uZXh0ZXJuYWxSZWZlcmVuY2U/LmV4dGVybmFsPy5pbmZvPy5yZWZJbmZvPy5yZWYgYXMgc3RyaW5nfSkpO1xuXHR9XG5cdGlmIChwbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5leHRlcm5hbFJlZmVyZW5jZS5kaXNwbGF5VGltZXN0YW1wKSB7XG5cdFx0Y29uc3Qgc3RhbXBJY29uID0gY3JlYXRlRGl2KHsgY2xzOiBcImV4dGVybmFsLXJlZmVyZW5jZS10aW1lc3RhbXAtaWNvblwiIH0pO1xuXHRcdHN0YW1wSWNvbi5pbm5lckhUTUwgPSBTVEFNUF9JQ09OO1xuXHRcdGV4dGVybmFsUmVmZXJlbmNlQ29udGFpbmVyLmFwcGVuZENoaWxkKHN0YW1wSWNvbik7XG5cdFx0ZXh0ZXJuYWxSZWZlcmVuY2VDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlRGl2KHsgY2xzOiBcImV4dGVybmFsLXJlZmVyZW5jZS10aW1lc3RhbXBcIiwgdGV4dDogY29kZWJsb2NrUGFyYW1ldGVycz8uZXh0ZXJuYWxSZWZlcmVuY2U/LmV4dGVybmFsPy5pbmZvPy5kYXRldGltZSBhcyBzdHJpbmcgfSkpO1xuXHR9XG5cdGNvbnN0IHVwZGF0ZUljb24gPSBjcmVhdGVFbChcImJ1dHRvblwiLCB7IGNsczogXCJleHRlcm5hbC1yZWZlcmVuY2UtdXBkYXRlLWljb25cIn0pO1xuXHR1cGRhdGVJY29uLmlubmVySFRNTCA9IFVQREFURV9JQ09OO1xuXHR1cGRhdGVJY29uLnRpdGxlID0gXCJVcGRhdGUgUmVmZXJlbmNlXCI7XG5cdHVwZGF0ZUljb24uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGFzeW5jIChldmVudCkgPT4ge1xuXHRcdGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuXHRcdGF3YWl0IHVwZGF0ZUV4dGVybmFsUmVmZXJlbmNlKGNvZGVibG9ja1BhcmFtZXRlcnM/LmV4dGVybmFsUmVmZXJlbmNlIGFzIFJlZmVyZW5jZSwgcGx1Z2luKTtcblx0XHRjb25zdCBjb2RlYmxvY2tFbGVtZW50ID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkucGFyZW50RWxlbWVudD8ucGFyZW50RWxlbWVudD8ucGFyZW50RWxlbWVudD8ucXVlcnlTZWxlY3RvcihcImNvZGVcIik7XG5cdFx0aWYgKCFjb2RlYmxvY2tFbGVtZW50KVxuXHRcdFx0cmV0dXJuO1xuXHRcdGNvbnN0IHZpZXcgPSBwbHVnaW4uYXBwLndvcmtzcGFjZS5nZXRBY3RpdmVWaWV3T2ZUeXBlKE1hcmtkb3duVmlldyk7XG5cdFx0aWYgKCF2aWV3KVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0aWYgKHZpZXc/LmdldE1vZGUoKSA9PT0gXCJwcmV2aWV3XCIpIHtcblx0XHRcdGNvZGVibG9ja0VsZW1lbnQuYWRkQ2xhc3MoXCJSRVJFTkRFUi1DT0RFLVNUWUxFUlwiKTtcblx0XHRcdC8vQHRzLWV4cGVjdC1lcnJvciBVbmRvY3VtZW50ZWQgT2JzaWRpYW4gQVBJXG5cdFx0XHRmb3IgKGNvbnN0IHNlY3Rpb24gb2Ygdmlldy5wcmV2aWV3TW9kZS5yZW5kZXJlci5zZWN0aW9ucy5maWx0ZXIocyA9PiAocy5lbCBhcyBIVE1MRWxlbWVudCkucXVlcnlTZWxlY3RvcihcIlJFUkVOREVSLUNPREUtU1RZTEVSXCIpKSkge1xuXHRcdFx0XHRzZWN0aW9uLnJlbmRlcmVkID0gZmFsc2U7XG5cdFx0XHRcdHNlY3Rpb24uaHRtbCA9IFwiXCI7XG5cdFx0XHR9XG5cdFx0XHR2aWV3Py5wcmV2aWV3TW9kZS5yZXJlbmRlcih0cnVlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0XHRcdGNvbnN0IGNtVmlldyA9IHZpZXc/LnNvdXJjZU1vZGUuY21FZGl0b3IuY207XG5cdFx0XHRjb25zdCBwb3MgPSBjbVZpZXcucG9zQXRET00oZXZlbnQudGFyZ2V0KTtcblx0XHRcdGNvbnN0IGN1cnJlbnQ6IG51bWJlciA9IGNtVmlldy5zdGF0ZS5zZWxlY3Rpb24ubWFpbi5oZWFkO1xuXHRcdFx0Y21WaWV3LmRpc3BhdGNoKHsgc2VsZWN0aW9uOiB7IGFuY2hvcjogcG9zLCBoZWFkOiBwb3MgfSwgZWZmZWN0czogcmVyZW5kZXIub2Yoe3BvczogY3VycmVudH0pIH0pO1xuXHRcdFx0Y21WaWV3LmZvY3VzKCk7XG5cdFx0XHRzZXRUaW1lb3V0KCgpPT5jbVZpZXcuZGlzcGF0Y2goeyBzZWxlY3Rpb246IHsgYW5jaG9yOiBjdXJyZW50LCBoZWFkOiBjdXJyZW50IH19KSwxMCk7XG5cdFx0fVxuXHR9KTtcblx0ZXh0ZXJuYWxSZWZlcmVuY2VDb250YWluZXIuYXBwZW5kQ2hpbGQodXBkYXRlSWNvbik7XG5cdHJldHVybiBleHRlcm5hbFJlZmVyZW5jZUNvbnRhaW5lcjtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUV4ZWN1dGVDb2RlQ29udGFpbmVyKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbik6IEhUTUxFbGVtZW50IHtcblx0Y29uc3QgZXhlY3V0ZUNvZGVDb250YWluZXIgPSBjcmVhdGVEaXYoeyBjbHM6IFwiY29kZS1zdHlsZXItaGVhZGVyLWV4ZWN1dGUtY29kZVwiIH0pO1xuXHRjb25zb2xlLmxvZyhcIkRldmVsb3BlciBFcnJvcjogU2VjdGlvbiBub3QgZmluaXNoZWRcIiwgY29kZWJsb2NrUGFyYW1ldGVycywgcGx1Z2luKTtcblx0Ly9UT0RPIChAbWF5dXJhbmt2KSBGaW5pc2hcblx0cmV0dXJuIGV4ZWN1dGVDb2RlQ29udGFpbmVyO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUlubGluZU9wZW5lcihpbmxpbmVDb2RlUGFyYW1ldGVyczogSW5saW5lQ29kZVBhcmFtZXRlcnMsIGxhbmd1YWdlSWNvbnM6IFJlY29yZDxzdHJpbmcsc3RyaW5nPiwgY29udGFpbmVyQ2xhc3NlczogQXJyYXk8c3RyaW5nPiA9IFtcImNvZGUtc3R5bGVyLWlubGluZS1vcGVuZXJcIl0pOiBIVE1MRWxlbWVudCB7XG5cdGNvbnN0IG9wZW5lckNvbnRhaW5lciA9IGNyZWF0ZVNwYW4oe2NsczogY29udGFpbmVyQ2xhc3Nlcy5qb2luKFwiIFwiKX0pO1xuXHRpZiAoaW5saW5lQ29kZVBhcmFtZXRlcnMuaWNvbikge1xuXHRcdGNvbnN0IGljb25VUkwgPSBnZXRMYW5ndWFnZUljb24oaW5saW5lQ29kZVBhcmFtZXRlcnMubGFuZ3VhZ2UsbGFuZ3VhZ2VJY29ucyk7XG5cdFx0aWYgKHR5cGVvZiBpY29uVVJMICE9PSBcInVuZGVmaW5lZFwiKVxuXHRcdFx0b3BlbmVyQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZUltYWdlV3JhcHBlcihpY29uVVJMLGNyZWF0ZVNwYW4oKSxcImNvZGUtc3R5bGVyLWlubGluZS1pY29uXCIpKTtcblx0fVxuXHRpZiAoaW5saW5lQ29kZVBhcmFtZXRlcnMudGl0bGUpXG5cdFx0b3BlbmVyQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW4oe2NsczogXCJjb2RlLXN0eWxlci1pbmxpbmUtdGl0bGVcIiwgdGV4dDogaW5saW5lQ29kZVBhcmFtZXRlcnMudGl0bGV9KSk7XG5cdHJldHVybiBvcGVuZXJDb250YWluZXI7XG59XG5mdW5jdGlvbiBjcmVhdGVJbWFnZVdyYXBwZXIoaWNvblVSTDogc3RyaW5nLCBpbWFnZVdyYXBwZXI6IEhUTUxFbGVtZW50LCBpbWdDbGFzcyA9IFwiY29kZS1zdHlsZXItaWNvblwiKTogSFRNTEVsZW1lbnQge1xuXHRjb25zdCBpbWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaW1nXCIpO1xuXHRpbWcuY2xhc3NMaXN0LmFkZChpbWdDbGFzcyk7XG5cdGltZy5zcmMgPSBpY29uVVJMO1xuXHRpbWFnZVdyYXBwZXIuYXBwZW5kQ2hpbGQoaW1nKTtcblx0cmV0dXJuIGltYWdlV3JhcHBlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExhbmd1YWdlSWNvbihsYW5ndWFnZTogc3RyaW5nLCBsYW5ndWFnZUljb25zOiBSZWNvcmQ8c3RyaW5nLHN0cmluZz4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRyZXR1cm4gbGFuZ3VhZ2VJY29ucz8uW2dldExhbmd1YWdlVGFnKGxhbmd1YWdlKV07XG59XG5mdW5jdGlvbiBnZXRMYW5ndWFnZVRhZyhsYW5ndWFnZTogc3RyaW5nKSB7XG5cdHJldHVybiBMQU5HVUFHRV9OQU1FUz8uW2xhbmd1YWdlXSA/PyAobGFuZ3VhZ2UuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBsYW5ndWFnZS5zbGljZSgxKSB8fCBcIlwiKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0hlYWRlckhpZGRlbihjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCB0aGVtZVNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncywgaWNvblVSTDogc3RyaW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG5cdHJldHVybiAhaXNIZWFkZXJSZXF1aXJlZChjb2RlYmxvY2tQYXJhbWV0ZXJzKSAmJiAoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSA9PT0gXCJcIiB8fCAodGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheSAhPT0gXCJhbHdheXNcIiAmJiAodGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXkgIT09IFwiYWx3YXlzXCIgfHwgKHR5cGVvZiBpY29uVVJMID09IFwidW5kZWZpbmVkXCIpKSkpO1xufVxuZnVuY3Rpb24gaXNMYW5ndWFnZUljb25TaG93bihjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCB0aGVtZVNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncywgaWNvblVSTDogc3RyaW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG5cdHJldHVybiAodHlwZW9mIGljb25VUkwgIT09IFwidW5kZWZpbmVkXCIpICYmICh0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheSA9PT0gXCJhbHdheXNcIiB8fCAoaXNIZWFkZXJSZXF1aXJlZChjb2RlYmxvY2tQYXJhbWV0ZXJzKSAmJiB0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheSA9PT0gXCJpZl9oZWFkZXJfc2hvd25cIikpO1xufVxuZnVuY3Rpb24gaXNMYW5ndWFnZVRhZ1Nob3duKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzKTogYm9vbGVhbiB7XG5cdHJldHVybiB0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy5kaXNwbGF5ID09PSBcImFsd2F5c1wiIHx8IChpc0hlYWRlclJlcXVpcmVkKGNvZGVibG9ja1BhcmFtZXRlcnMpICYmIHRoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLmRpc3BsYXkgPT09IFwiaWZfaGVhZGVyX3Nob3duXCIpO1xufVxuZnVuY3Rpb24gaXNIZWFkZXJSZXF1aXJlZChjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzKTogYm9vbGVhbiB7XG5cdHJldHVybiBjb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQuZW5hYmxlZCB8fCBjb2RlYmxvY2tQYXJhbWV0ZXJzLnRpdGxlICE9PSBcIlwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGluZUNsYXNzKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIGxpbmVOdW1iZXI6IG51bWJlciwgbGluZTogc3RyaW5nKTogQXJyYXk8c3RyaW5nPiB7XG5cdGxldCBjbGFzc0xpc3Q6IEFycmF5PHN0cmluZz4gPSBbXTtcblx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMuaGlnaGxpZ2h0cy5kZWZhdWx0LmxpbmVOdW1iZXJzLmluY2x1ZGVzKGxpbmVOdW1iZXIrY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5vZmZzZXQpIHx8IGNvZGVibG9ja1BhcmFtZXRlcnMuaGlnaGxpZ2h0cy5kZWZhdWx0LnBsYWluVGV4dC5zb21lKHRleHQgPT4gbGluZS5pbmRleE9mKHRleHQpID4gLTEpIHx8IGNvZGVibG9ja1BhcmFtZXRlcnMuaGlnaGxpZ2h0cy5kZWZhdWx0LnJlZ3VsYXJFeHByZXNzaW9ucy5zb21lKHJlZ0V4cCA9PiByZWdFeHAudGVzdChsaW5lKSkpXG5cdFx0Y2xhc3NMaXN0LnB1c2goXCJjb2RlLXN0eWxlci1saW5lLWhpZ2hsaWdodGVkXCIpO1xuXHRPYmplY3QuZW50cmllcyhjb2RlYmxvY2tQYXJhbWV0ZXJzLmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmUpLmZvckVhY2goKFthbHRlcm5hdGl2ZUhpZ2hsaWdodCxoaWdobGlnaHRlZExpbmVzXTogW3N0cmluZyxIaWdobGlnaHRzXSkgPT4ge1xuXHRcdGlmIChoaWdobGlnaHRlZExpbmVzLmxpbmVOdW1iZXJzLmluY2x1ZGVzKGxpbmVOdW1iZXIrY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5vZmZzZXQpIHx8IGhpZ2hsaWdodGVkTGluZXMucGxhaW5UZXh0LnNvbWUodGV4dCA9PiBsaW5lLmluZGV4T2YodGV4dCkgPiAtMSkgfHwgaGlnaGxpZ2h0ZWRMaW5lcy5yZWd1bGFyRXhwcmVzc2lvbnMuc29tZShyZWdFeHAgPT4gcmVnRXhwLnRlc3QobGluZSkpKVxuXHRcdFx0Y2xhc3NMaXN0LnB1c2goYGNvZGUtc3R5bGVyLWxpbmUtaGlnaGxpZ2h0ZWQtJHthbHRlcm5hdGl2ZUhpZ2hsaWdodC5yZXBsYWNlKC9cXHMrL2csIFwiLVwiKS50b0xvd2VyQ2FzZSgpfWApO1xuXHR9KTtcblx0aWYgKGNsYXNzTGlzdC5sZW5ndGggPT09IDApXG5cdFx0Y2xhc3NMaXN0ID0gW1wiY29kZS1zdHlsZXItbGluZVwiXTtcblx0cmV0dXJuIGNsYXNzTGlzdDtcbn1cbiIsICJjb25zdCBNT0RFUyA9IFtcblx0XCJyZWZlcmVuY2VcIixcblx0XCJ5YW1sLWZyb250bWF0dGVyXCIsXG5dO1xuXG5leHBvcnQgZnVuY3Rpb24gYWRkTW9kZXMoKSB7XG5cdE1PREVTLmZvckVhY2gobW9kZSA9PiBhZGRNb2RlKG1vZGUpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVNb2RlcygpIHtcblx0TU9ERVMuZm9yRWFjaChtb2RlID0+IHJlbW92ZU1vZGUobW9kZSkpO1xufVxuZnVuY3Rpb24gYWRkTW9kZShtb2RlTmFtZTogc3RyaW5nKSB7XG5cdC8vQHRzLWV4cGVjdC1lcnJvciBVbmRvY3VtZW50ZWQgT2JzaWRpYW4gQVBJXG5cdHdpbmRvdy5Db2RlTWlycm9yLm1vZGVJbmZvLnB1c2goe1xuXHRcdG5hbWU6IG1vZGVOYW1lLFxuXHRcdG1pbWU6IFwidGV4dC9cIittb2RlTmFtZSxcblx0XHRtb2RlOiBtb2RlTmFtZSxcblx0XHRleHQ6IFttb2RlTmFtZV1cblx0fSk7XG59XG5mdW5jdGlvbiByZW1vdmVNb2RlKG1vZGVOYW1lOiBzdHJpbmcpIHtcblx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0Y29uc3QgbW9kZUluZGV4ID0gd2luZG93LkNvZGVNaXJyb3IubW9kZUluZm8uZmluZEluZGV4KChtb2RlKSA9PiBtb2RlLm1vZGUgPT09IG1vZGVOYW1lKTtcblx0aWYgKG1vZGVJbmRleCAhPT0gLTEpXG5cdFx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0XHR3aW5kb3cuQ29kZU1pcnJvci5tb2RlSW5mby5zcGxpY2UobW9kZUluZGV4LCAxKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZFJlZmVyZW5jZVN5bnRheEhpZ2hsaWdodChDb2RlTWlycm9yOiB0eXBlb2Ygd2luZG93LkNvZGVNaXJyb3IpIHtcblx0Q29kZU1pcnJvci5kZWZpbmVNb2RlKFwicmVmZXJlbmNlXCIsIGZ1bmN0aW9uKGNvbmZpZywgX3BhcnNlckNvbmZpZykge1xuXHRcdGNvbnN0IGtleVBhdHRlcm4gPSAvXihbYS16QS1aMC05Xy1dKylcXHMqKD89OikvO1xuXHRcdGNvbnN0IHZhbHVlUGF0dGVybiA9IC9eKDo/KFxccyooPzpcIig/OlxcXFwufFteXCJdKSpcInxcXFMrKSk/KS87XG5cdFx0cmV0dXJuIHtcblx0XHRcdHN0YXJ0U3RhdGU6ICgpID0+IHsgcmV0dXJuIHsgaW5CbG9jazogZmFsc2UsIGluZGVudDogMCB9OyB9LFxuXHRcdFx0aW5kZW50OiAoc3RhdGUsIHRleHRBZnRlcikgPT4ge1xuXHRcdFx0XHRjb25zdCBpbmRlbnRVbml0ID0gY29uZmlnLmluZGVudFVuaXQ7XG5cdFx0XHRcdGNvbnN0IGluZGVudCA9IHN0YXRlLmluZGVudCB8fCAwO1xuXHRcdFx0XHRpZiAodGV4dEFmdGVyICYmIHRleHRBZnRlci5zdGFydHNXaXRoKFwiLVwiKSkgcmV0dXJuIGluZGVudCArIGluZGVudFVuaXQ7XG5cdFx0XHRcdGVsc2UgcmV0dXJuIGluZGVudDtcblx0XHRcdH0sXG5cdFx0XHR0b2tlbjogKHN0cmVhbSwgc3RhdGUpID0+IHtcblx0XHRcdFx0aWYgKHN0cmVhbS5lYXRTcGFjZSgpKSByZXR1cm4gbnVsbDtcblx0XHRcdFx0aWYgKHN0cmVhbS5tYXRjaCgvXiMuKi8pKSByZXR1cm4gXCJjb21tZW50XCI7XG5cdFx0XHRcdGlmIChzdHJlYW0ubWF0Y2goL15odHRwcz86XFwvXFwvLiovKSkgcmV0dXJuIFwidmFyaWFibGVcIjtcblx0XHRcdFx0aWYgKHN0cmVhbS5tYXRjaCgvXlxcdytcXC9cXHcrXFwvXFx3K1xcL1xcdyskLykpIHJldHVybiBcInZhcmlhYmxlXCI7XG5cdFx0XHRcdGlmIChzdHJlYW0ubWF0Y2goL15cXHcrXFwvXFx3K1xcL1xcdyskLykpIHJldHVybiBcInZhcmlhYmxlXCI7XG5cdFx0XHRcdGlmIChzdHJlYW0ubWF0Y2goL15cXHcrXFwvXFx3KyQvKSkgcmV0dXJuIFwidmFyaWFibGVcIjtcblx0XHRcdFx0aWYgKHN0cmVhbS5tYXRjaCgvXFxbXFxbLitcXF1cXF0vKSkgcmV0dXJuIFwidmFyaWFibGVcIjtcblx0XHRcdFx0aWYgKHN0cmVhbS5tYXRjaChrZXlQYXR0ZXJuKSkgcmV0dXJuIFwic3RyaW5nXCI7XG5cdFx0XHRcdGlmIChzdHJlYW0ubWF0Y2goLzovKSkgcmV0dXJuIFwibWV0YVwiO1xuXHRcdFx0XHRjb25zdCB2YWx1ZU1hdGNoID0gc3RyZWFtLm1hdGNoKHZhbHVlUGF0dGVybik7XG5cdFx0XHRcdGlmICh2YWx1ZU1hdGNoKSB7XG5cdFx0XHRcdFx0aWYgKC8oXCI/KVxcLy4qXFwvXFwxLy5leGVjKHZhbHVlTWF0Y2hbMl0pKSByZXR1cm4gXCJvcGVyYXRvclwiO1xuXHRcdFx0XHRcdGlmICh2YWx1ZU1hdGNoWzJdLnN0YXJ0c1dpdGgoXCJcXFwiXCIpKSB7XG5cdFx0XHRcdFx0XHRzdHJlYW0uc2tpcFRvRW5kKCk7IC8vIENvbnN1bWUgdGhlIHJlc3Qgb2YgdGhlIHN0cmluZ1xuXHRcdFx0XHRcdFx0cmV0dXJuIFwicHJvcGVydHlcIjtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKC9eXFxkKyhcXC5cXGQrKT9cXGIvLnRlc3QodmFsdWVNYXRjaFsyXSkpIHJldHVybiBcIm51bWJlclwiO1xuXHRcdFx0XHRcdGVsc2UgaWYgKC9eKHRydWV8ZmFsc2V8bnVsbClcXGIvLnRlc3QodmFsdWVNYXRjaFsyXSkpIHJldHVybiBcImF0b21cIjtcblx0XHRcdFx0XHRlbHNlIHJldHVybiBudWxsO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKHN0cmVhbS5zb2woKSkge1xuXHRcdFx0XHRcdGNvbnN0IGluZGVudCA9IHN0cmVhbS5pbmRlbnRhdGlvbigpO1xuXHRcdFx0XHRcdGlmIChpbmRlbnQgPiBzdGF0ZS5pbmRlbnQpIHtcblx0XHRcdFx0XHRcdHN0YXRlLmluZGVudCA9IGluZGVudDtcblx0XHRcdFx0XHRcdHJldHVybiBcImluZGVudFwiO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoaW5kZW50IDwgc3RhdGUuaW5kZW50KSB7XG5cdFx0XHRcdFx0XHRzdGF0ZS5pbmRlbnQgPSBpbmRlbnQ7XG5cdFx0XHRcdFx0XHRyZXR1cm4gXCJkZWRlbnRcIjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRzdHJlYW0ubmV4dCgpO1xuXHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdH1cblx0XHR9O1xuXHR9KTtcblx0Q29kZU1pcnJvci5kZWZpbmVNSU1FKFwidGV4dC9yZWZlcmVuY2VcIiwgXCJyZWZlcmVuY2VcIik7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQUFBLFNBQTJDQSxJQUFNQyxJQUFBQTtBQUMxQixrQkFBQSxPQUFaQyxXQUEwQyxZQUFBLE9BQVhDLFVBQ3hDQSxRQUFPRCxVQUFVRCxHQUFBQSxJQUNRLGNBQUEsT0FBWEcsVUFBeUJBLE9BQU9DLE1BQzlDRCxPQUFPLENBQUEsR0FBSUgsRUFBQUEsSUFDZSxZQUFBLE9BQVpDLFVBQ2RBLFFBQWUsUUFBSUQsR0FBQUEsSUFFbkJELEdBQVksUUFBSUMsR0FBQUE7SUFDakIsRUFBRUssTUFBTSxPQUNULE1BQUE7QUFBQTtBQ1RBLFVBQUlDLEtBQXNCLEVDQTFCQSxHQUF3QixDQUFDTCxJQUFTTSxPQUFBQTtBQUNqQyxpQkFBUUMsTUFBT0QsR0FDWEQsQ0FBQUEsR0FBb0JHLEVBQUVGLElBQVlDLEVBQUFBLEtBQUFBLENBQVNGLEdBQW9CRyxFQUFFUixJQUFTTyxFQUFBQSxLQUM1RUUsT0FBT0MsZUFBZVYsSUFBU08sSUFBSyxFQUFFSSxZQUFBQSxNQUFrQkMsS0FBS04sR0FBV0MsRUFBQUEsRUFBQUEsQ0FBQUE7TUFFMUUsR0NOREYsR0FBd0IsQ0FBQ1EsSUFBS0MsT0FBVUwsT0FBT00sVUFBVUMsZUFBZUMsS0FBS0osSUFBS0MsRUFBQUEsR0ND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QUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxXQUFXO0FBQUEsRUFDWCxVQUFVO0FBQUEsRUFDVixNQUFNO0FBQUEsRUFDTixVQUFVO0FBQUEsRUFDVixPQUFPO0FBQUEsRUFDUCxZQUFZO0FBQUEsRUFDWixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxZQUFZO0FBQUEsRUFDWixRQUFRO0FBQUEsRUFDUixTQUFTO0FBQUEsRUFDVCxTQUFTO0FBQUEsRUFDVCxVQUFVO0FBQUEsRUFDVixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxjQUFjO0FBQUEsRUFDZCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxhQUFhO0FBQUEsRUFDYixPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixVQUFVO0FBQUEsRUFDVixpQkFBaUI7QUFBQSxFQUNqQixZQUFZO0FBQUEsRUFDWixjQUFjO0FBQUEsRUFDZCxPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixRQUFRO0FBQUEsRUFDUixnQkFBZ0I7QUFBQSxFQUNoQixPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxpQkFBaUI7QUFBQSxFQUNqQixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDViw0QkFBNEI7QUFBQSxFQUM1QixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxxQkFBcUI7QUFBQSxFQUNyQixPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxZQUFZO0FBQUEsRUFDWixVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxNQUFNO0FBQUEsRUFDTixRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxpQkFBaUI7QUFBQSxFQUNqQixNQUFNO0FBQUEsRUFDTixhQUFhO0FBQUEsRUFDYixVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixhQUFhO0FBQUEsRUFDYixzQkFBc0I7QUFBQSxFQUN0QixPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixhQUFhO0FBQUEsRUFDYixZQUFZO0FBQUEsRUFDWixhQUFhO0FBQUEsRUFDYixXQUFXO0FBQUEsRUFDWCxXQUFXO0FBQUEsRUFDWCxlQUFlO0FBQUEsRUFDZixrQkFBa0I7QUFBQSxFQUNsQixNQUFNO0FBQUEsRUFDTixTQUFTO0FBQUEsRUFDVCxhQUFhO0FBQUEsRUFDYixRQUFRO0FBQUEsRUFDUixlQUFlO0FBQUEsRUFDZixTQUFTO0FBQUEsRUFDVCxTQUFTO0FBQUEsRUFDVCxnQkFBZ0I7QUFBQSxFQUNoQixnQkFBZ0I7QUFBQSxFQUNoQixjQUFjO0FBQUEsRUFDZCxPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxXQUFXO0FBQUEsRUFDWCxZQUFZO0FBQUEsRUFDWixNQUFNO0FBQUEsRUFDTixTQUFTO0FBQUEsRUFDVCxTQUFTO0FBQUEsRUFDVCxjQUFjO0FBQUEsRUFDZCxRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxXQUFXO0FBQUEsRUFDWCxTQUFTO0FBQUEsRUFDVCxNQUFNO0FBQUEsRUFDTixxQkFBcUI7QUFBQSxFQUNyQixVQUFVO0FBQUEsRUFDVixhQUFhO0FBQUEsRUFDYixPQUFPO0FBQUEsRUFDUCxZQUFZO0FBQUEsRUFDWixXQUFXO0FBQUEsRUFDWCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixTQUFTO0FBQUEsRUFDVCxtQkFBbUI7QUFBQSxFQUNuQixjQUFjO0FBQUEsRUFDZCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixTQUFTO0FBQUEsRUFDVCxRQUFRO0FBQUEsRUFDUixjQUFjO0FBQUEsRUFDZCxRQUFRO0FBQUEsRUFDUixTQUFTO0FBQUEsRUFDVCxVQUFVO0FBQUEsRUFDVixZQUFZO0FBQUEsRUFDWixRQUFRO0FBQUEsRUFDUixVQUFVO0FBQUEsRUFDVixnQkFBZ0I7QUFBQSxFQUNoQixPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixNQUFNO0FBQUEsRUFDTixjQUFjO0FBQUEsRUFDZCxTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixjQUFjO0FBQUEsRUFDZCxhQUFhO0FBQUEsRUFDYixZQUFZO0FBQUEsRUFDWixTQUFTO0FBQUEsRUFDVCxjQUFjO0FBQUEsRUFDZCxNQUFNO0FBQUEsRUFDTixXQUFXO0FBQUEsRUFDWCxjQUFjO0FBQUEsRUFDZCxVQUFVO0FBQUEsRUFDVixjQUFjO0FBQUEsRUFDZCxZQUFZO0FBQUEsRUFDWixhQUFhO0FBQUEsRUFDYixVQUFVO0FBQUEsRUFDVixRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixVQUFVO0FBQUEsRUFDVixNQUFNO0FBQUEsRUFDTixLQUFLO0FBQUEsRUFDTCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixrQkFBa0I7QUFBQSxFQUNsQixTQUFTO0FBQUEsRUFDVCxNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixpQkFBaUI7QUFBQSxFQUNqQixjQUFjO0FBQUEsRUFDZCxnQkFBZ0I7QUFBQSxFQUNoQixPQUFPO0FBQUEsRUFD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QUFBLEVBQ04sU0FBUTtBQUFBLEVBQ1IsT0FBTTtBQUFBLEVBQ04sU0FBUTtBQUFBLEVBQ1IsU0FBUTtBQUFBLEVBQ1IsT0FBTTtBQUFBLEVBQ04sV0FBVTtBQUFBLEVBQ1YsU0FBUTtBQUFBLEVBQ1IsUUFBTztBQUFBLEVBQ1AsWUFBVztBQUFBLEVBQ1gsTUFBSztBQUFBLEVBQ0wsVUFBUztBQUFBLEVBQ1QsUUFBTztBQUFBLEVBQ1AsU0FBUTtBQUFBLEVBQ1IsU0FBUTtBQUFBLEVBQ1IsY0FBYTtBQUFBLEVBQ2IsY0FBYTtBQUFBLEVBQ2IsUUFBTztBQUFBLEVBQ1AsT0FBTTtBQUFBLEVBQ04sV0FBVTtBQUFBLEVBQ1YsT0FBTTtBQUFBLEVBQ04sU0FBUTtBQUFBLEVBQ1IsWUFBVztBQUFBLEVBQ1gsWUFBVztBQUFBLEVBQ1gsTUFBSztBQUFBLEVBQ0wscUJBQW9CO0FBQUEsRUFDcEIsUUFBTztBQUFBLEVBQ1AsVUFBUztBQUFBLEVBQ1QsYUFBWTtBQUFBLEVBQ1osT0FBTTtBQUFBLEVBQ04sV0FBVTtBQUFBLEVBQ1YsWUFBVztBQUFBLEVBQ1gsU0FBUTtBQUFBLEVBQ1IsV0FBVTtBQUFBLEVBQ1YsVUFBUztBQUFBLEVBQ1QsY0FBYTtBQUFBLEVBQ2IsUUFBTztBQUFBLEVBQ1AsUUFBTztBQUFBLEVBQ1AsUUFBTztBQUFBLEVBQ1AsU0FBUTtBQUFBLEVBQ1IsbUJBQWtCO0FBQUEsRUFDbEIsY0FBYTtBQUFBLEVBQ2IsUUFBTztBQUFBLEVBQ1AsUUFBTztBQUFBLEVBQ1AsUUFBTztBQUFBLEVBQ1AsU0FBUTtBQUFBLEVBQ1IsU0FBUTtBQUFBLEVBQ1IsT0FBTTtBQUFBLEVBQ04sT0FBTTtBQUFBLEVBQ04sUUFBTztBQUFBLEVBQ1AsY0FBYTtBQUFBLEVBQ2IsUUFBTztBQUFBLEVBQ1AsU0FBUTtBQUFBLEVBQ1IsUUFBTztBQUFBLEVBQ1AsVUFBUztBQUFBLEVBQ1QsWUFBVztBQUFBLEVBQ1gsUUFBTztBQUFBLEVBQ1AsTUFBSztBQUFBLEVBQ0wsVUFBUztBQUFBLEVBQ1QsVUFBUztBQUFBLEVBQ1QsVUFBUztBQUFBLEVBQ1QsYUFBWTtBQUFBLEVBQ1osT0FBTTtBQUFBLEVBQ04sVUFBUztBQUFBLEVBQ1QsTUFBSztBQUFBLEVBQ0wsY0FBYTtBQUFBLEVBQ2IsU0FBUTtBQUFBLEVBQ1IsUUFBTztBQUFBLEVBQ1AsT0FBTTtBQUFBLEVBQ04sVUFBUztBQUFBLEVBQ1QsY0FBYTtBQUFBLEVBQ2IsYUFBWTtBQUFBLEVBQ1osWUFBVztBQUFBLEVBQ1gsU0FBUTtBQUFBLEVBQ1IsY0FBYTtBQUFBLEVBQ2IsTUFBSztBQUFBLEVBQ0wsV0FBVTtBQUFBLEVBQ1YsY0FBYTtBQUFBLEVBQ2IsY0FBYTtBQUFBLEVBQ2IsVUFBUztBQUFBLEVBQ1QsVUFBUztBQUFBLEVBQ1QsY0FBYTtBQUFBLEVBQ2IsWUFBVztBQUFBLEVBQ1gsT0FBTTtBQUFBLEVBQ04sVUFBUztBQUFBLEVBQ1QsUUFBTztBQUFBLEVBQ1AsYUFBWTtBQUFBLEVBQ1osVUFBUztBQUFBLEVBQ1QsY0FBYTtBQUFBLEVBQ2IsUUFBTztBQUFBLEVBQ1AsVUFBUztBQUFBLEVBQ1QsTUFBSztBQUFBLEVBQ0wsVUFBUztBQUFBLEVBQ1QsTUFBSztBQUFBLEVBQ0wsS0FBSTtBQUFBLEVBQ0osT0FBTTtBQUFBLEVBQ04sUUFBTztBQUFBLEVBQ1AsS0FBSTtBQUFBLEVBQ0osVUFBUztBQUFBLEVBQ1QsT0FBTTtBQUFBLEVBQ04sVUFBUztBQUFBLEVBQ1QsT0FBTTtBQUFBLEVBQ04sT0FBTTtBQUFBLEVBQ04sVUFBUztBQUFBLEVBQ1QsU0FBUTtBQUFBLEVBQ1IsUUFBTztBQUFBLEVBQ1AsU0FBUTtBQUFBLEVBQ1IsT0FBTTtBQUFBLEVBQ04sWUFBVztBQUFBLEVBQ1gsT0FBTTtBQUFBLEVBQ04sUUFBTztBQUFBLEVBQ1AsT0FBTTtBQUFBLEVBQ04sWUFBVztBQUFBLEVBQ1gsa0JBQWlCO0FBQUEsRUFDakIsU0FBUTtBQUFBLEVBQ1IsUUFBTztBQUFBLEVBQ1AsTUFBSztBQUFBLEVBQ0wsUUFBTztBQUFBLEVBQ1AsT0FBTTtBQUFBLEVBQ04sUUFBTztBQUFBLEVB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QUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxZQUFZO0FBQUEsSUFDWCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ04sUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFNBQVM7QUFBQSxJQUNSLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxNQUFNO0FBQUEsSUFDTCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsS0FBSztBQUFBLElBQ0osUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ04sUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsV0FBVztBQUFBLElBQ1YsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFNBQVM7QUFBQSxJQUNSLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsZ0JBQWdCO0FBQUEsSUFDZixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsV0FBVztBQUFBLElBQ1YsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxPQUFPO0FBQUEsSUFDTixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsS0FBSztBQUFBLElBQ0osUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFNBQVM7QUFBQSxJQUNSLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsaUJBQWlCO0FBQUEsSUFDaEIsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFVBQVU7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxrQkFBa0I7QUFBQSxJQUNqQixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsZ0JBQWdCO0FBQUEsSUFDZixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ04sUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFVBQVU7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxPQUFPO0FBQUEsSUFDTixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ04sUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFVBQVU7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxNQUFNO0FBQUEsSUFDTCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsNEJBQTRCO0FBQUEsSUFDM0IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxXQUFXO0FBQUEsSUFDVixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsZ0NBQWdDO0FBQUEsSUFDL0IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLHNCQUFzQjtBQUFBLElBQ3JCLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxVQUFVO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsWUFBWTtBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsYUFBYTtBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE1BQU07QUFBQSxJQUNMLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxVQUFVO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsV0FBVztBQUFBLElBQ1YsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFVBQVU7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsY0FBYztBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFdBQVc7QUFBQSxJQUNWLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxNQUFNO0FBQUEsSUFDTCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsY0FBYztBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFNBQVM7QUFBQSxJQUNSLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFNBQVM7QUFBQSxJQUNSLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsSUFDTixlQUFlO0FBQUEsTUFDZDtBQUFBLElBQ0Q7QUFBQSxFQUNEO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxjQUFjO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsWUFBWTtBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFdBQVc7QUFBQSxJQUNWLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxPQUFPO0FBQUEsSUFDTixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsSUFDTixlQUFlO0FBQUEsTUFDZDtBQUFBLElBQ0Q7QUFBQSxFQUNEO0FBQUEsRUFDQSxZQUFZO0FBQUEsSUFDWCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsYUFBYTtBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxXQUFXO0FBQUEsSUFDVixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxJQUNOLGVBQWU7QUFBQSxNQUNkO0FBQUEsSUFDRDtBQUFBLEVBQ0Q7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsaUJBQWlCO0FBQUEsSUFDaEIsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLGVBQWU7QUFBQSxJQUNkLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFVBQVU7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxVQUFVO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ04sUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxNQUNBO0FBQUEsSUFDRDtBQUFBLEVBQ0Q7QUFBQSxFQUNBLFVBQVU7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxjQUFjO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsWUFBWTtBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLGNBQWM7QUFBQSxJQUNiLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxjQUFjO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsSUFDTixlQUFlO0FBQUEsTUFDZDtBQUFBLElBQ0Q7QUFBQSxFQUNEO0FBQUEsRUFDQSxjQUFjO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFB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LFdBQVVBLEdBQUUsV0FBUyxXQUFVQSxHQUFFLFdBQVMsV0FBVUEsR0FBRSxnQkFBYyxXQUFVQSxHQUFFLFdBQVMsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsV0FBUyxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxjQUFZLFdBQVVBLEdBQUUsaUJBQWUsV0FBVUEsR0FBRSxhQUFXLFdBQVVBLEdBQUUsYUFBVyxXQUFVQSxHQUFFLFVBQVEsV0FBVUEsR0FBRSxhQUFXLFdBQVVBLEdBQUUsZUFBYSxXQUFVQSxHQUFFLGdCQUFjLFdBQVVBLEdBQUUsZ0JBQWMsV0FBVUEsR0FBRSxnQkFBYyxXQUFVQSxHQUFFLGdCQUFjLFdBQVVBLEdBQUUsYUFBVyxXQUFVQSxHQUFFLFdBQVMsV0FBVUEsR0FBRSxjQUFZLFdBQVVBLEdBQUUsVUFBUSxXQUFVQSxHQUFFLFVBQVEsV0FBVUEsR0FBRSxhQUFXLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLGNBQVksV0FBVUEsR0FBRSxjQUFZLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLGFBQVcsV0FBVUEsR0FBRSxPQUFLLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLGNBQVksV0FBVUEsR0FBRSxPQUFLLFdBQVVBLEdBQUUsV0FBUyxXQUFVQSxHQUFFLFVBQVEsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsU0FBTyxXQUFVQSxHQUFFLFFBQU0sV0FBVUEsR0FBRSxRQUFNLFdBQVVBLEdBQUUsV0FBUyxXQUFVQSxHQUFFLGdCQUFjLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLGVBQWEsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsYUFBVyxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSx1QkFBcUIsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsYUFBVyxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsY0FBWSxXQUFVQSxHQUFFLGdCQUFjLFdBQVVBLEdBQUUsZUFBYSxXQUFVQSxHQUFFLGlCQUFlLFdBQVVBLEdB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RTtBQUFRLFFBQUFELEtBQUUsRUFBRSxNQUFJRSxLQUFFLEtBQUssRUFBRTtBQUFFO0FBQUEsTUFBTSxLQUFLLEVBQUU7QUFBTSxRQUFBRixLQUFFLEVBQUUsTUFBSUUsRUFBQztBQUFFO0FBQUEsTUFBTSxLQUFLLEVBQUU7QUFBUyxRQUFBRixLQUFFLEVBQUUsTUFBR0UsRUFBQztBQUFFO0FBQUEsTUFBTSxLQUFLLEVBQUU7QUFBQSxNQUFRO0FBQVEsUUFBQUYsS0FBRUU7QUFBQSxJQUFDO0FBQUEsRUFBQztBQUFDLFVBQU9GLEtBQUUsT0FBS0EsS0FBRSxPQUFLQSxNQUFHLE1BQUksS0FBSyxNQUFNQSxLQUFFLEdBQUcsSUFBR0E7QUFBQztBQUExZ0MsSUFBNGdDLElBQUUsQ0FBQ0EsSUFBRUMsT0FBSTtBQUFDLE1BQUlDO0FBQUUsVUFBT0QsSUFBRTtBQUFBLElBQUMsS0FBSyxFQUFFO0FBQVEsTUFBQUMsS0FBRSxHQUFHLENBQUFGLE9BQUdBLEtBQUUsS0FBSyxLQUFHLEtBQUtBLEVBQUMsQ0FBQztBQUFFO0FBQUEsSUFBTSxLQUFLLEVBQUU7QUFBTSxNQUFBRSxLQUFFLEVBQUVGLEtBQUUsR0FBRztBQUFFO0FBQUEsSUFBTSxLQUFLLEVBQUU7QUFBUyxNQUFBRSxLQUFFLEVBQUUsS0FBRyxJQUFFRixFQUFDO0FBQUU7QUFBQSxJQUFNLEtBQUssRUFBRTtBQUFBLElBQVEsS0FBSyxFQUFFO0FBQUEsSUFBSztBQUFRLE1BQUFFLEtBQUVGO0FBQUEsRUFBQztBQUFDLFNBQU9FO0FBQUM7QUFBcnNDLElBQXVzQyxJQUFFLENBQUNGLE9BQUtDLE9BQUk7QUFBQyxRQUFNQyxLQUFFLENBQUMsR0FBRUMsS0FBRSxDQUFDLEdBQUVDLEtBQUUsQ0FBQyxHQUFFQyxLQUFFLENBQUMsR0FBRUMsS0FBRSxDQUFDLEdBQUVDLEtBQUUsQ0FBQyxHQUFFQyxLQUFFLE9BQU8sT0FBTyxDQUFDLEdBQUVDLEtBQUUsT0FBTyxPQUFPLENBQUMsR0FBRUMsS0FBRSxPQUFPLE9BQU8sQ0FBQyxHQUFFQyxLQUFFLEVBQUMs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QUFFLE1BQUcsT0FBTyxLQUFLLENBQUMsRUFBRSxLQUFNLENBQUFGLE9BQUc7QUFBQyxRQUFHLEVBQUVBLEVBQUMsRUFBRSxLQUFLQyxFQUFDLEVBQUUsUUFBT0MsS0FBRUYsSUFBRTtBQUFBLEVBQUUsQ0FBRSxHQUFFLENBQUNFLE1BQUcsQ0FBQyxFQUFFLFFBQVFELEVBQUMsTUFBSUMsS0FBRSxFQUFFLE1BQUssQ0FBQ0EsR0FBRSxPQUFNLElBQUksTUFBTSxDQUFDO0FBQUUsU0FBT0E7QUFBQyxHQUFHRCxFQUFDLEtBQUcsQ0FBQUEsT0FBRztBQUFDLE1BQUlDLElBQUVDLEtBQUU7QUFBRyxRQUFNQyxLQUFFLEVBQUUsT0FBTyxLQUFLSCxFQUFDLENBQUM7QUFBRSxNQUFHLEVBQUVHLEVBQUMsTUFBSUYsS0FBRSxFQUFFRSxFQUFDLElBQUdGLE1BQUdBLE9BQUksRUFBRSxLQUFJO0FBQUMsVUFBTUUsS0FBRSxPQUFPLFFBQVFILEVBQUMsRUFBRSxLQUFNLENBQUFELE9BQUcsQ0FBQyxFQUFFLEtBQUssR0FBR0EsR0FBRSxDQUFDLENBQUMsRUFBRSxDQUFFLEdBQUVLLEtBQUUsT0FBTyxRQUFRSixFQUFDLEVBQUUsS0FBTSxDQUFBRCxPQUFHLEVBQUUsRUFBRSxLQUFLLEdBQUdBLEdBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHQSxHQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUcsQ0FBQyxNQUFNLENBQUNBLEdBQUUsQ0FBQyxDQUFDLEtBQUcsQ0FBQ0EsR0FBRSxDQUFDLEtBQUcsSUFBSztBQUFFLElBQUFJLE1BQUdDLE9BQUlGLEtBQUUsT0FBSUMsT0FBSUYsS0FBRSxFQUFFO0FBQUEsRUFBSTtBQUFDLE1BQUcsQ0FBQ0EsTUFBR0MsR0FBRSxPQUFNLElBQUksTUFBTSxDQUFDO0FBQUUsU0FBT0Q7QUFBQyxHQUFHRCxFQUFDO0FBQTFoUCxJQUE0aFAsS0FBRyxFQUFDLENBQUMsRUFBRSxHQUFHLEVBQUVELElBQUU7QUFBQyxRQUFNQyxNQUFHLENBQUMsRUFBRSxRQUFRRCxFQUFDLElBQUUsRUFBRUEsRUFBQyxJQUFFQSxJQUFHLE1BQU0sRUFBRSxHQUFHLEdBQUVFLEtBQUUsRUFBQyxHQUFFLEVBQUVELEdBQUUsQ0FBQyxLQUFHQSxHQUFFLENBQUMsQ0FBQyxHQUFFLEdBQUUsRUFBRUEsR0FBRSxDQUFDLEtBQUdBLEdBQUUsQ0FBQyxDQUFDLEdBQUUsR0FBRSxFQUFFQSxHQUFFLENBQUMsS0FBR0EsR0FBRSxDQUFDLENBQUMsRUFBQyxHQUFFSSxLQUFFSixHQUFFLENBQUMsS0FBR0EsR0FBRSxDQUFDO0FBQUUsU0FBTyxXQUFTSSxPQUFJSCxHQUFFLElBQUUsRUFBRUcsRUFBQyxJQUFFLE1BQUtIO0FBQUMsR0FBRSxDQUFDLEVBQUUsR0FBRyxFQUFFRixJQUFFO0FBQUMsUUFBTUMsS0FBRUQsR0FBRSxNQUFNLEVBQUUsR0FBRyxHQUFFRSxLQUFFLEVBQUVELEdBQUUsQ0FBQyxLQUFHQSxHQUFFLENBQUMsQ0FBQyxHQUFFRSxLQUFFLEVBQUVGLEdBQUUsQ0FBQyxLQUFHQSxHQUFFLENBQUMsQ0FBQyxHQUFFRyxLQUFFLEVBQUVILEdBQUUsQ0FBQyxLQUFHQSxHQUFFLENBQUMsQ0FBQyxHQUFFSSxLQUFFSixHQUFFLENBQUMsS0FBR0EsR0FBRSxDQUFDLEdBQUVLLEtBQUUsRUFBQyxHQUFFLEtBQUssSUFBSUosSUFBRSxHQUFHLEdBQUUsR0FBRSxLQUFLLElBQUlDLElBQUUsR0FBRyxHQUFFLEdBQUUsS0FBSyxJQUFJQyxJQUFFLEdBQUcsRUFBQztBQUFFLFNBQU8sV0FBU0MsT0FBSUMsR0FBRSxJQUFFLEdBQUdELEVBQUMsSUFBR0M7QUFBQyxHQUFFLENBQUMsRUFBRSxHQUFHLEVBQUVOLElBQUU7QUFBQyxRQUFNQyxLQUFFRCxHQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUVFLEtBQUUsRUFBRUQsR0FBRSxDQUFDLEtBQUdBLEdBQUUsQ0FBQyxDQUFDLEdBQUVFLEtBQUUsRUFBRUYsR0FBRSxDQUFDLEtBQUdBLEdBQUUsQ0FBQyxDQUFDLEdBQUVHLEtBQUUsRUFBRUgsR0FBRSxDQUFDLEtBQUdBLEdBQUUsQ0FBQyxDQUFDLEdBQUVJLEtBQUVKLEdBQUUsQ0FBQyxLQUFHQSxHQUFFLENBQUMsR0FBRUssS0FBRSxFQUFFSixJQUFFQyxJQUFFQyxFQUFDO0FBQUUsU0FBTyxXQUFTQyxPQUFJQyxHQUFFLElBQUUsR0FBR0QsRUFBQyxJQUFHQztBQUFDLEdBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRU4sSUFBRTtBQUFDLFFBQU1DLEtBQUVELEdBQUUsTUFBTSxFQUFFLE1BQU0sR0FBRUUsS0FBRSxFQUFFRCxHQUFFLENBQUMsQ0FBQyxHQUFFRSxLQUFFLEVBQUVGLEdBQUUsQ0FBQyxDQUFDLEdBQUVHLEtBQUUsRUFBRUgsR0FBRSxDQUFDLENBQUMsR0FBRUksS0FBRUosR0FBRSxDQUFDLEdBQUVLLEtBQUUsRUFBRUosSUFBRUMsSUFBRUMsRUFBQztBQUFFLFNBQU8sV0FBU0MsT0FBSUMsR0FBRSxJQUFFLEdBQUdELEVBQUMsSUFBR0M7QUFBQyxHQUFFLENBQUMsRUFBRSxJQUFJLEVBQUVOLElBQUU7QUFBQyxRQUFNQyxLQUFFRCxHQUFFLE1BQU0sRUFBRSxJQUFJLEdBQUVFLEtBQUUsRUFBRUQsR0FBRSxDQUFDLEtBQUdBLEdBQUUsQ0FBQyxDQUFDLEdBQUVFLEtBQUUsRUFBRUYsR0FBRSxDQUFDLEtBQUdBLEdBQUUsQ0FBQyxDQUFDLEdBQUVHLEtBQUUsRUFBRUgsR0FBRSxDQUFDLEtBQUdBLEdBQUUsQ0FBQyxDQUFDLEdBQUVJLEtBQUUsRUFBRUosR0FBRSxDQUFDLEtBQUdBLEdBQUUsQ0FBQyxDQUFDLEdBQUVLLEtBQUVMLEdBQUUsQ0FBQyxLQUFHQSxHQUFFLEVBQUUsR0FBRVcsS0FBRSxFQUFFVixJQUFFQyxJQUFFQyxJQUFFQyxFQUFDO0FBQUUsU0FBTyxXQUFTQyxPQUFJTSxHQUFFLElBQUUsR0FBR04sRUFBQyxJQUFHTTtBQUFDLEVBQUM7QUFBOXhRLElBQWd5USxLQUFHLEVBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRVosSUFBRTtBQUFDLFFBQU1DLEtBQUUsRUFBQyxHQUFFLEVBQUUsR0FBR0QsR0FBRSxDQUFDLEVBQUUsR0FBRSxHQUFFLEVBQUUsR0FBR0EsR0FBRSxDQUFDLEVBQUUsR0FBRSxHQUFFLEVBQUUsR0FBR0EsR0FBRSxDQUFDLEVBQUUsRUFBQztBQUFFLFNBQU8sRUFBRUEsSUFBRSxHQUFHLE1BQUlDLEdBQUUsSUFBRSxLQUFLLElBQUksRUFBRSxHQUFHRCxHQUFFLENBQUMsSUFBRyxJQUFFLEdBQUUsQ0FBQyxJQUFHQztBQUFDLEdBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRUQsSUFBRTtBQUFDLFNBQU8sS0FBSyxJQUFJQSxFQUFDO0FBQUMsR0FBRSxDQUFDLEVBQUUsR0FBRyxFQUFFQSxJQUFFO0FBQUMsUUFBTUMsS0FBRSxFQUFFLEdBQUdELEdBQUUsQ0FBQyxFQUFFLEdBQUVFLEtBQUUsRUFBRSxHQUFHRixHQUFFLENBQUMsRUFBRSxHQUFFRyxLQUFFLEVBQUUsRUFBRUgsR0FBRSxDQUFDLEdBQUVDLElBQUVDLEVBQUM7QUFBRSxTQUFPLEVBQUVGLElBQUUsR0FBRyxNQUFJRyxHQUFFLElBQUUsR0FBR0gsR0FBRSxDQUFDLElBQUdHO0FBQUMsR0FBRSxDQUFDLEVBQUUsTUFBTSxFQUFFSCxJQUFFO0FBQUMsUUFBTUMsS0FBRSxFQUFFLEdBQUdELEdBQUUsQ0FBQyxFQUFFLEdBQUVFLEtBQUUsRUFBRSxHQUFHRixHQUFFLENBQUMsRUFBRSxHQUFFRyxLQUFFLEVBQUUsR0FBR0gsR0FBRSxDQUFDLEVBQUUsR0FBRUksS0FBRSxFQUFFSCxJQUFFQyxJQUFFQyxFQUFDO0FBQUUsU0FBTyxFQUFFSCxJQUFFLEdBQUcsTUFBSUksR0FBRSxJQUFFLEdBQUdKLEdBQUUsQ0FBQyxJQUFHSTtBQUFDLEdBQUUsQ0FBQyxFQUFFLElBQUksRUFBRUosSUFBRTtBQUFDLFFBQU1DLEtBQUUsRUFBRSxHQUFHRCxHQUFFLENBQUMsRUFBRSxHQUFFRSxLQUFFLEVBQUUsR0FBR0YsR0FBRSxDQUFDLEVBQUUsR0FBRUcsS0FBRSxFQUFFLEdBQUdILEdBQUUsQ0FBQyxFQUFFLEdBQUVJ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QSxHQUFFLEdBQUVBLEdBQUUsQ0FBQyxHQUFFLEdBQUUsR0FBR0EsR0FBRSxDQUFDLEVBQUMsQ0FBQyxDQUFFLEdBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRSxDQUFDQSxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFQyxPQUFJSCxHQUFFRCxJQUFFRSxFQUFDLEVBQUUsSUFBSyxDQUFBRixPQUFHRyxLQUFFLEdBQUcsSUFBSSxFQUFFSCxHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxDQUFDLEdBQUVJLEVBQUMsSUFBRSxHQUFHLElBQUksRUFBRUosR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsQ0FBQyxHQUFFSSxHQUFFLFFBQVEsQ0FBRSxHQUFFLE1BQUssQ0FBQ0osSUFBRUMsSUFBRUMsSUFBRUMsSUFBRUMsT0FBSUgsR0FBRUQsSUFBRUUsRUFBQyxFQUFFLElBQUssQ0FBQUYsT0FBR0csS0FBRSxHQUFHLElBQUksRUFBQyxHQUFHLEVBQUVILEdBQUUsR0FBRUEsR0FBRSxHQUFFQSxHQUFFLENBQUMsR0FBRSxHQUFFLEdBQUdBLEdBQUUsQ0FBQyxFQUFDLEdBQUVJLEVBQUMsSUFBRSxHQUFHLEtBQUssRUFBQyxHQUFHLEVBQUVKLEdBQUUsR0FBRUEsR0FBRSxHQUFFQSxHQUFFLENBQUMsR0FBRSxHQUFFLEdBQUdBLEdBQUUsQ0FBQyxFQUFDLEdBQUVJLEdBQUUsUUFBUSxDQUFFLEdBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRSxDQUFDSixJQUFFQyxJQUFFQyxJQUFFQyxJQUFFQyxPQUFJSCxHQUFFRCxJQUFFRSxFQUFDLEVBQUUsSUFBSyxDQUFBRixPQUFHRyxLQUFFLEdBQUcsSUFBSSxFQUFDLEdBQUVILEdBQUUsR0FBRSxHQUFFQSxHQUFFLEdBQUUsR0FBRUEsR0FBRSxFQUFDLEdBQUVJLEVBQUMsSUFBRSxHQUFHLElBQUksRUFBRUosR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsQ0FBQyxHQUFFSSxHQUFFLFFBQVEsQ0FBRSxHQUFFLE1BQUssQ0FBQ0osSUFBRUMsSUFBRUMsSUFBRUMsSUFBRUMsT0FBSUgsR0FBRUQsSUFBRUUsRUFBQyxFQUFFLElBQUssQ0FBQUYsT0FBR0csS0FBRSxHQUFHLElBQUksRUFBQyxHQUFHSCxJQUFFLEdBQUUsR0FBR0EsR0FBRSxDQUFDLEVBQUMsR0FBRUksRUFBQyxJQUFFLEdBQUcsS0FBSyxFQUFDLEdBQUcsRUFBRUosR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsQ0FBQyxHQUFFLEdBQUUsR0FBR0EsR0FBRSxDQUFDLEVBQUMsR0FBRUksR0FBRSxRQUFRLENBQUUsR0FBRSxDQUFDLEVBQUUsTUFBTSxHQUFFLENBQUNKLElBQUVDLElBQUVDLElBQUVDLElBQUVDLE9BQUlILEdBQUVELElBQUVFLEVBQUMsRUFBRSxJQUFLLENBQUFGLE9BQUc7QUFBQyxRQUFNQyxLQUFFLEVBQUVELEdBQUUsR0FBRUEsR0FBRSxHQUFFQSxHQUFFLENBQUM7QUFBRSxTQUFPRyxLQUFFLEdBQUcsT0FBTyxFQUFFRixHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxDQUFDLEdBQUVHLEVBQUMsSUFBRSxHQUFHLE9BQU9ILElBQUVHLEdBQUUsUUFBUTtBQUFDLENBQUUsR0FBRSxTQUFRLENBQUNKLElBQUVDLElBQUVDLElBQUVDLElBQUVDLE9BQUlILEdBQUVELElBQUVFLEVBQUMsRUFBRSxJQUFLLENBQUFGLE9BQUc7QUFBQyxRQUFNQyxLQUFFLEVBQUVELEdBQUUsR0FBRUEsR0FBRSxHQUFFQSxHQUFFLENBQUM7QUFBRSxTQUFPRyxLQUFFLEdBQUcsT0FBTyxFQUFDLEdBQUcsRUFBRUYsR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsQ0FBQyxHQUFFLEdBQUUsR0FBR0QsR0FBRSxDQUFDLEVBQUMsR0FBRUksRUFBQyxJQUFFLEdBQUcsUUFBUSxFQUFDLEdBQUdILElBQUUsR0FBRSxHQUFHRCxHQUFFLENBQUMsRUFBQyxHQUFFSSxHQUFFLFFBQVE7QUFBQyxDQUFFLEVBQUM7QUFBdmpYLElBQXlqWCxLQUFHLEVBQUMsSUFBSUosSUFBRUMsSUFBRTtBQUFDLFFBQU1FLEtBQUVILEdBQUUsSUFBSyxDQUFBQSxPQUFHO0FBQUMsVUFBTUMsS0FBRSxHQUFHRCxFQUFDO0FBQUUsV0FBTyxHQUFHQSxJQUFFQyxFQUFDO0FBQUEsRUFBQyxDQUFFLEdBQUVHLEtBQUVILE9BQUksRUFBRSxjQUFZRSxHQUFFLElBQUssQ0FBQUgsT0FBRztBQUFDLFVBQU1DLE1BQUcsQ0FBQ0QsSUFBRUMsSUFBRUMsT0FBSTtBQUFDLFlBQU1DLEtBQUUsS0FBSyxJQUFJSCxJQUFFQyxJQUFFQyxFQUFDLEdBQUVFLEtBQUUsS0FBSyxJQUFJLE1BQUlKLElBQUUsTUFBSUMsSUFBRSxNQUFJQyxFQUFDLEdBQUVHLEtBQUVMLEtBQUVHLElBQUVHLEtBQUVMLEtBQUVFLElBQUVTLEtBQUVWLEtBQUVDLElBQUVVLEtBQUUsS0FBSyxJQUFJUixJQUFFQyxFQUFDLEdBQUVRLEtBQUVULEtBQUVRLElBQUVFLE1BQUdULEtBQUVPLE1BQUcsR0FBRU4sTUFBR0ssS0FBRU4sS0FBRU8sTUFBRyxHQUFFTCxLQUFFLEtBQUssSUFBSU0sSUFBRUMsSUFBRVIsRUFBQyxJQUFFLEtBQUssSUFBSUYsSUFBRUMsSUFBRU0sRUFBQyxHQUFFSSxLQUFFLE1BQU1SLEVBQUMsS0FBR0EsT0FBSSxJQUFFLEtBQUdBLE1BQUcsSUFBRSxJQUFFQTtBQUFFLGFBQU0sRUFBQyxHQUFFTSxLQUFFRSxLQUFFWixJQUFFLEdBQUVXLEtBQUVDLEtBQUVaLElBQUUsR0FBRUcsS0FBRVMsS0FBRVosR0FBQztBQUFBLElBQUMsR0FBR0osR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsQ0FBQztBQUFFLFdBQU8sRUFBRUEsSUFBRSxHQUFHLE1BQUlDLEdBQUUsSUFBRUQsR0FBRSxJQUFHQztBQUFBLEVBQUMsQ0FBRSxJQUFFO0FBQUssV0FBU0ksR0FBRUwsSUFBRTtBQUFDLFVBQU1HLEtBQUVGLE9BQUksRUFBRSxXQUFTLEVBQUMsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxFQUFDLElBQUUsRUFBQyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUM7QUFBRSxXQUFPRCxHQUFFLE9BQVEsQ0FBQ0EsSUFBRUcsT0FBSTtBQUFDLFlBQU1DLEtBQUUsRUFBRUQsSUFBRSxHQUFHLElBQUVBLEdBQUUsSUFBRSxHQUFFRSxLQUFFLEVBQUMsR0FBRSxLQUFLLElBQUlMLEdBQUUsSUFBRUcsR0FBRSxJQUFFQyxJQUFFLEdBQUcsR0FBRSxHQUFFLEtBQUssSUFBSUosR0FBRSxJQUFFRyxHQUFFLElBQUVDLElBQUUsR0FBRyxHQUFFLEdBQUUsS0FBRyxJQUFFQSxPQUFJLElBQUVKLEdBQUUsR0FBRSxHQUFFTSxLQUFFLE9BQU1OLEtBQUVBLEdBQUUsSUFBRUEsR0FBRSxHQUFFWSxLQUFFLE9BQU1ULEtBQUVBLEdBQUUsSUFBRUEsR0FBRTtBQUFFLGFBQU0sRUFBQyxHQUFHRSxJQUFFLEdBQUdKLE9BQUksRUFBRSxXQUFTLEVBQUMsR0FBRSxLQUFLLElBQUlLLEtBQUVNLEtBQUVSLElBQUUsR0FBRyxFQUFDLElBQUUsRUFBQyxHQUFFLEtBQUssSUFBSUUsS0FBRU0sS0FBRVIsSUFBRSxHQUFHLEVBQUMsRUFBQztBQUFBLElBQUMsR0FBR0QsRUFBQztBQUFBLEVBQUM7QUFBQyxNQUFJRztBQUFFLE1BQUdMLE9BQUksRUFBRSxTQUFTLENBQUFLLEtBQUVELEdBQUVGLEVBQUM7QUFBQSxPQUFNO0FBQUMsVUFBTUgsS0FBRUssR0FBRUQsRUFBQztBQUFFLElBQUFFLE1BQUcsQ0FBQ04sSUFBRUMsSUFBRUMsT0FBSTtBQUFDLFlBQU1DLEtBQUUsS0FBSyxJQUFJSCxJQUFFQyxJQUFFQyxFQUFDLEdBQUVFLEtBQUUsS0FBSyxJQUFJLE1BQUlKLElBQUUsTUFBSUMsSUFBRSxNQUFJQyxFQUFDLEdBQUVHLEtBQUVMLEtBQUVHLElBQUVHLEtBQUVMLEtBQUVFLElBQUVTLEtBQUVWLEtBQUVDLElBQUVVLEtBQUUsS0FBSyxJQUFJUCxJQUFFTSxFQUFDLEdBQUVFLEtBQUVULEtBQUVDLEtBQUVPLElBQUVFLEtBQUVULEtBQUVPLElBQUVOLEtBQUUsS0FBR0ssS0FBRUMsS0FBR0wsS0FBRSxLQUFLLElBQUlNLElBQUVDLElBQUVSLEVBQUMsSUFBRSxLQUFLLElBQUlGLElBQUVDLElBQUVNLEVBQUMsR0FBRUksS0FBRSxNQUFNUixFQUFDLEtBQUdBLE9BQUksSUFBRSxLQUFHQSxNQUFHLElBQUUsSUFBRUE7QUFBRSxhQUFNLEVBQUMsR0FBRU0sS0FBRUUsS0FBRVosSUFBRSxHQUFFVyxLQUFFQyxLQUFFWixJQUFFLEdBQUVHLEtBQUVTLEtBQUVaLEdBQUM7QUFBQSxJQUFDLEdBQUdKLEdBQUUsR0FBRUEsR0FBRSxHQUFFQSxHQUFFLENBQUMsR0FBRU0sR0FBRSxJQUFFTixHQUFFO0FBQUEsRUFBQztBQUFDLFNBQU0sRUFBQyxHQUFFLEVBQUVNLEdBQUUsQ0FBQyxHQUFFLEdBQUUsRUFBRUEsR0FBRSxDQUFDLEdBQUUsR0FBRSxFQUFFQSxHQUFFLENBQUMsR0FBRSxHQUFFLEVBQUVBLEdBQUUsR0FBRSxHQUFFLENBQUMsRUFBQztBQUFDLEdBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRU4sSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFFBQU1DLEtBQUUsS0FBSyxJQUFJSCxJQUFFQyxFQUFDO0FBQUUsU0FBTyxPQUFPRSxHQUFFLEdBQUVELEtBQUUsR0FBRyxJQUFJQyxFQUFDLElBQUUsR0FBRyxJQUFJQSxFQUFDO0FBQUMsR0FBRSxLQUFLSCxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsUUFBTUMsS0FBRSxLQUFLLElBQUlILElBQUVDLEVBQUM7QUFBRSxTQUFPRSxHQUFFLElBQUVELEtBQUUsTUFBSSxHQUFHQyxHQUFFLENBQUMsSUFBRSxHQUFHQSxHQUFFLENBQUMsR0FBRUQsS0FBRSxHQUFHLElBQUlDLEVBQUMsSUFBRSxHQUFHLEtBQUtBLEVBQUM7QUFBQyxHQUFFLENBQUMsRUFBRSxHQUFHLEVBQUVILElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxRQUFNQyxLQUFFLEtBQUssSUFBSUosSUFBRUMsRUFBQztBQUFFLFNBQU8sT0FBT0csR0FBRSxHQUFFRixLQUFFLEdBQUcsSUFBSUUsSUFBRUQsRUFBQyxJQUFFLEdBQUcsSUFBSUMsSUFBRUQsR0FBRSxRQUFRO0FBQUMsR0FBRSxLQUFLSCxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsUUFBTUMsS0FBRSxLQUFLLElBQUlKLElBQUVDLEVBQUM7QUFBRSxTQUFPQyxLQUFFLEdBQUcsSUFBSUUsSUFBRUQsRUFBQyxJQUFFLEdBQUcsS0FBS0MsSUFBRUQsR0FBRSxRQUFRO0FBQUMsR0FBRSxDQUFDLEVBQUUsR0FBRyxFQUFFSCxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsUUFBTUMsS0FBRSxLQUFLLElBQUlKLElBQUVDLEVBQUMsR0FBRUksS0FBRSxFQUFFRCxHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxDQUFDO0FBQUUsU0FBTyxPQUFPQSxHQUFFLEdBQUUsT0FBT0MsR0FBRSxHQUFFSCxLQUFFLEdBQUcsSUFBSUcsSUFBRUYsRUFBQyxJQUFFLEdBQUcsSUFBSUMsSUFBRUQsR0FBRSxRQUFRO0FBQUMsR0FBRSxLQUFLSCxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsUUFBTUMsS0FBRSxLQUFLLElBQUlKLElBQUVDLEVBQUMsR0FBRUksS0FBRSxFQUFFRCxHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxHQUFFQSxHQUFFLENBQUM7QUFBRSxTQUFPRixLQUFFLEdBQUcsSUFBSUcsSUFBRUYsRUFBQyxJQUFFLEdBQUcsS0FBS0MsSUFBRUQsR0FBRSxRQUFRO0FBQUMsR0FBRSxDQUFDLEVBQUUsTUFBTSxFQUFFSCxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsUUFBTUMsS0FBRSxLQUFLLElBQUlKLElBQUVDLEVBQUMsR0FBRUksS0FBRSxFQUFFRCxHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxDQUFDO0FBQUUsU0FBTyxPQUFPQSxHQUFFLEdBQUVGLEtBQUUsR0FBRyxPQUFPRyxJQUFFRixFQUFDLElBQUUsR0FBRyxRQUFRQyxJQUFFRCxHQUFFLFFBQVE7QUFBQyxHQUFFLFFBQVFILElB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QUFBQSxFQUFDO0FBQUEsRUFBQyxZQUFXO0FBQUMsU0FBSyxNQUFJLEVBQUUsS0FBSyxJQUFJLEdBQUUsS0FBSyxJQUFJLEdBQUUsS0FBSyxJQUFJLEdBQUUsS0FBSyxJQUFJLENBQUM7QUFBQSxFQUFDO0FBQUEsRUFBQyxZQUFXO0FBQUMsU0FBSyxNQUFJLEVBQUMsR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFFLEtBQUssSUFBSSxHQUFFLEtBQUssSUFBSSxDQUFDLEdBQUUsR0FBRSxLQUFLLElBQUksRUFBQztBQUFBLEVBQUM7QUFBQSxFQUFDLGFBQVk7QUFBQyxTQUFLLE9BQUssRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLElBQUksR0FBRSxLQUFLLElBQUksQ0FBQztBQUFBLEVBQUM7QUFBQSxFQUFDLFdBQVdBLEtBQUUsQ0FBQyxHQUFFO0FBQUMsV0FBTyxLQUFLLFdBQVMsRUFBQyxHQUFHLEtBQUssVUFBUyxHQUFHQSxHQUFDLEdBQUU7QUFBQSxFQUFJO0FBQUEsRUFBQyxLQUFLQSxJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxFQUFFQSxFQUFDLEdBQUUsS0FBSyxVQUFVLEdBQUUsS0FBSyxVQUFVLEdBQUUsS0FBSyxXQUFXLEdBQUU7QUFBQSxFQUFJO0FBQUEsRUFBQyxLQUFLQSxJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssVUFBVSxHQUFFLEtBQUssVUFBVSxHQUFFLEtBQUssV0FBVyxHQUFFO0FBQUEsRUFBSTtBQUFBLEVBQUMsS0FBS0EsSUFBRTtBQUFDLFdBQU8sS0FBSyxJQUFJLElBQUUsRUFBRUEsSUFBRSxHQUFFLEdBQUcsR0FBRSxLQUFLLFVBQVUsR0FBRSxLQUFLLFVBQVUsR0FBRSxLQUFLLFdBQVcsR0FBRTtBQUFBLEVBQUk7QUFBQSxFQUFDLEtBQUtBLElBQUU7QUFBQyxTQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssVUFBVSxHQUFFLEtBQUssVUFBVSxHQUFFLEtBQUssV0FBVztBQUFBLEVBQUM7QUFBQSxFQUFDLEtBQUtBLElBQUU7QUFBQyxXQUFPLEtBQUssSUFBSSxJQUFFLEVBQUVBLElBQUUsR0FBRSxHQUFHLEdBQUUsS0FBSyxVQUFVLEdBQUUsS0FBSyxVQUFVLEdBQUUsS0FBSyxXQUFXLEdBQUU7QUFBQSxFQUFJO0FBQUEsRUFBQyxLQUFLQSxJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssVUFBVSxHQUFFLEtBQUssVUFBVSxHQUFFLEtBQUssV0FBVyxHQUFFO0FBQUEsRUFBSTtBQUFBLEVBQUMsUUFBUUEsSUFBRTtBQUFDLFdBQU8sS0FBSyxJQUFJLElBQUUsRUFBRUEsSUFBRSxHQUFFLEdBQUcsR0FBRSxLQUFLLGlCQUFpQixHQUFFLEtBQUssVUFBVSxHQUFFLEtBQUssV0FBVyxHQUFFO0FBQUEsRUFBSTtBQUFBLEVBQUMsUUFBUUEsSUFBRTtBQUFDLFdBQU8sS0FBSyxJQUFJLElBQUUsRUFBRUEsSUFBRSxNQUFLLEdBQUcsR0FBRSxLQUFLLGlCQUFpQixHQUFFLEtBQUssVUFBVSxHQUFFLEtBQUssV0FBVyxHQUFFO0FBQUEsRUFBSTtBQUFBLEVBQUMsUUFBUUEsSUFBRTtBQUFDLFdBQU8sS0FBSyxJQUFJLElBQUUsRUFBRUEsSUFBRSxNQUFLLEdBQUcsR0FBRSxLQUFLLGlCQUFpQixHQUFFLEtBQUssVUFBVSxHQUFFLEtBQUssV0FBVyxHQUFFO0FBQUEsRUFBSTtBQUFBLEVBQUMsS0FBS0EsSUFBRTtBQUFDLFdBQU8sS0FBSyxJQUFJLElBQUUsS0FBSyxJQUFJLElBQUUsRUFBRUEsSUFBRSxHQUFFLENBQUMsR0FBRTtBQUFBLEVBQUk7QUFBQSxFQUFDLEtBQUtBLElBQUU7QUFBQyxXQUFPLEtBQUssS0FBSyxJQUFFLEVBQUVBLElBQUUsR0FBRSxHQUFHLEdBQUUsS0FBSyxrQkFBa0IsR0FBRSxLQUFLLFVBQVUsR0FBRSxLQUFLLFVBQVUsR0FBRTtBQUFBLEVBQUk7QUFBQSxFQUFDLEtBQUtBLElBQUU7QUFBQyxXQUFPLEtBQUssS0FBSyxJQUFFLEVBQUVBLElBQUUsR0FBRSxHQUFHLEdBQUUsS0FBSyxrQkFBa0IsR0FBRSxLQUFLLFVBQVUsR0FBRSxLQUFLLFVBQVUsR0FBRTtBQUFBLEVBQUk7QUFBQSxFQUFDLEtBQUtBLElBQUU7QUFBQyxXQUFPLEtBQUssS0FBSyxJQUFFLEVBQUVBLElBQUUsR0FBRSxHQUFHLEdBQUUsS0FBSyxrQkFBa0IsR0FBRSxLQUFLLFVBQVUsR0FBRSxLQUFLLFVBQVUsR0FBRTtBQUFBLEVBQUk7QUFBQSxFQUFDLEtBQUtBLElBQUU7QUFBQyxXQUFPLEtBQUssS0FBSyxJQUFFLEVBQUVBLElBQUUsR0FBRSxHQUFHLEdBQUUsS0FBSyxrQkFBa0IsR0FBRSxLQUFLLFVBQVUsR0FBRSxLQUFLLFVBQVUsR0FBRTtBQUFBLEVBQUk7QUFBQSxFQUFDLElBQUksVUFBUztBQUFDLFdBQU8sS0FBSztBQUFBLEVBQVE7QUFBQSxFQUFDLElBQUksSUFBRztBQUFDLFdBQU8sRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUM7QUFBQSxFQUFDLElBQUksSUFBRztBQUFDLFdBQU8sRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUM7QUFBQSxFQUFDLElBQUksSUFBRztBQUFDLFdBQU8sRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUM7QUFBQSxFQUFDLElBQUksT0FBTTtBQUFDLFdBQU8sRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUM7QUFBQSxFQUFDLElBQUksT0FBTTtBQUFDLFdBQU8sRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUM7QUFBQSxFQUFDLElBQUksT0FBTTtBQUFDLFdBQU8sRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUM7QUFBQSxFQUFDLElBQUksSUFBRztBQUFDLFdBQU8sRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUM7QUFBQSxFQUFDLElBQUksSUFBRztBQUFDLFdBQU8sRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUM7QUFBQSxFQUFDLElBQUksSUFBRztBQUFDLFdBQU8sRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUM7QUFBQSxFQUFDLElBQUksSUFBRztBQUFDLFdBQU8sRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUM7QUFBQSxFQUFDLElBQUksSUFBRztBQUFDLFdBQU8sRUFBRSxLQUFLLEtBQUssR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUM7QUFBQSxFQUFDLElBQUksSUFBRztBQUFDLFdBQU8sRUFBRSxLQUFLLEtBQUssR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUM7QUFBQSxFQUFDLElBQUksSUFBRztBQUFDLFdBQU8sRUFBRSxLQUFLLEtBQUssR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUM7QUFBQSxFQUFDLElBQUksSUFBRztBQUFDLFdBQU8sRUFBRSxLQUFLLEtBQUssR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUM7QUFBQSxFQUFDLElBQUksWUFBVztBQUFDLFdBQU8sR0FBRyxJQUFJLEtBQUssR0FBRztBQUFBLEVBQUM7QUFBQSxFQUFDLElBQUksYUFBWTtBQUFDLFdBQU8sR0FBRyxLQUFLLEtBQUssR0FBRztBQUFBLEVBQUM7QUFBQSxFQUFDLElBQUksWUFBVztBQUFDLFdBQU0sRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQztBQUFBLEVBQUM7QUFBQSxFQUFDLElBQUksYUFBWTtBQUFDLFdBQU0sRUFBQyxHQUFHLEtBQUssV0FBVSxHQUFFLEtBQUssRUFBQztBQUFBLEVBQUM7QUFBQSxFQUFDLElBQUksWUFBVztBQUFDLFdBQU0sRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQztBQUFBLEVBQUM7QUFBQSxFQUFDLElBQUksYUFBWTtBQUFDLFdBQU0sRUFBQyxHQUFHLEtBQUssV0FBVSxHQUFFLEtBQUssRUFBQztBQUFBLEVBQUM7QUFBQSxFQUFDLElBQUksZUFBYztBQUFDLFdBQU0sRUFBQyxHQUFFLEtBQUssTUFBSyxHQUFFLEtBQUssTUFBSyxHQUFFLEtBQUssS0FBSTtBQUFBLEVBQUM7QUFBQSxFQUFDLElBQUksZ0JBQWU7QUFBQyxXQUFNLEVBQUMsR0FBRyxLQUFLLGNBQWEsR0FBRSxLQUFLLEVBQUM7QUFBQSxFQUFDO0FBQUEsRUFBQyxJQUFJLGFBQVk7QUFBQyxXQUFNLEVBQUMsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEVBQUM7QUFBQSxFQUFDO0FBQUEsRUFBQyxJQUFJLGNBQWE7QUFBQyxXQUFNLEVBQUMsR0FBRyxLQUFLLFlBQVcsR0FBRSxLQUFLLEVBQUM7QUFBQSxFQUFDO0FBQUEsRUFBQyxJQUFJLE1BQUs7QUFBQyxXQUFPLEdBQUcsSUFBSSxFQUFDLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxFQUFDLENBQUM7QUFBQSxFQUFDO0FBQUEsRUFBQyxJQUFJLE9BQU07QUFBQyxXQUFPLEdBQUcsSUFBSSxFQUFDLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsTUFBSSxLQUFLLEVBQUMsQ0FBQztBQUFBLEVBQUM7QUFBQSxFQUFDLElBQUksTUFBSztBQUFDLFdBQU8sR0FBRyxJQUFJLEVBQUMsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEVBQUMsR0FBRSxLQUFLLE9BQU87QUFBQSxFQUFDO0FBQUEsRUFBQyxJQUFJLE9BQU07QUFBQyxXQUFPLEdBQUcsSUFBSSxFQUFDLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxFQUFDLEdBQUUsS0FBSyxPQUFPO0FBQUEsRUFBQztBQUFBLEVBQUMsSUFBSSxNQUFLO0FBQUMsV0FBTyxHQUFHLElBQUksRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUM7QUFBQSxFQUFDLElBQUksT0FBTTtBQUFDLFdBQU8sR0FBRyxJQUFJLEVBQUMsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEVBQUMsR0FBRSxLQUFLLE9BQU87QUFBQSxFQUFDO0FBQUEsRUFBQyxJQUFJLFNBQVE7QUFBQyxXQUFPLEdBQUcsT0FBTyxFQUFDLEdBQUUsS0FBSyxNQUFLLEdBQUUsS0FBSyxNQUFLLEdBQUUsS0FBSyxLQUFJLEdBQUUsS0FBSyxPQUFPO0FBQUEsRUFBQztBQUFBLEVBQUMsSUFBSSxVQUFTO0FBQUMsV0FBTyxHQUFHLE9BQU8sRUFBQyxHQUFFLEtBQUssTUFBSyxHQUFFLEtBQUssTUFBSyxHQUFFLEtBQUssTUFBSyxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUM7QUFBQSxFQUFDLElBQUksT0FBTTtBQUFDLFdBQU8sR0FBRyxLQUFLLEVBQUMsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEVBQUMsR0FBRSxLQUFLLE9BQU87QUFBQSxFQUFDO0FBQUEsRUFBQyxJQUFJLFFBQU87QUFBQyxXQUFPLEdBQUcsS0FBSyxFQUFDLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxFQUFDLEdBQUUsS0FBSyxPQUFPO0FBQUEsRUFBQztBQUFBLEVBQUMsT0FBTyxZQUFZQSxJQUFFO0FBQUMsVUFBTUMsS0FBRSxHQUFHRCxFQUFDO0FBQUUsV0FBTyxHQUFHQSxJQUFFQyxJQUFFLEdBQUUsR0FBRyxHQUFHO0FBQUEsRUFBQztBQUFBLEVBQUMsT0FBTyxNQUFNRCxJQUFFO0FBQUMsV0FBTyxHQUFHLElBQUksSUFBRyxZQUFZQSxFQUFDLENBQUM7QUFBQSxFQUFDO0FBQUEsRUFBQyxPQUFPLGFBQWFBLElBQUU7QUFBQyxVQUFNQyxLQUFFLEdBQUdELEVBQUM7QUFBRSxXQUFPLEdBQUdBLElBQUVDLElBQUUsR0FBRSxHQUFHLElBQUk7QUFBQSxFQUFDO0FBQUEsRUFBQyxPQUFPLE9BQU9ELElBQUU7QUFBQyxXQUFPLEdBQUcsSUFBSSxJQUFHLGFBQWFBLEVBQUMsQ0FBQztBQUFBLEVBQUM7QUFBQSxFQUFDLE9BQU8sWUFBWUEsSUFBRUMsS0FBRSxDQUFDLEdBQUU7QUFBQyxVQUFNQyxLQUFFLEdBQUdGLEVBQUM7QUFBRSxXQUFPLEdBQUdBLElBQUVFLElBQUVELEdBQUUsVUFBUyxHQUFHLEdBQUc7QUFBQSxFQUFDO0FBQUEsRUFBQyxPQUFPLE1BQU1ELElBQUVDLEtBQUUsQ0FBQyxHQUFFO0FBQUMsVUFBTUMsS0FBRSxHQUFHRixFQUFDLEdBQUVHLEtBQUUsRUFBRUYsSUFBRUQsRUFBQyxHQUFFSSxLQUFFLEdBQUdKLElBQUVFLElBQUVELEdBQUUsVUFBUyxHQUFHLEdBQUc7QUFBRSxXQUFPLEdBQUcsSUFBSUcsSUFBRUQsRUFBQztBQUFBLEVBQUM7QUFBQSxFQUFDLE9BQU8sYUFBYUgsSUFBRUMsS0FBRSxDQUFDLEdBQUU7QUFBQyxVQUFNQyxLQUFFLEdBQUdGLEVBQUM7QUFBRSxXQUFPLEdBQUdBLElBQUVFLElBQUVELEdBQUUsVUFBUyxHQUFHLElBQUk7QUFBQSxFQUFDO0FBQUEsRUFBQyxPQUFPLE9BQU9ELElBQUVDLEtBQUUsQ0FBQyxHQUFFO0FBQUMsVUFBTUMsS0FBRSxHQUFHRixFQUFDLEdBQUVHLEtBQUUsRUFBRUYsSUFBRUQsRUFBQyxHQUFFSSxLQUFFLEdBQUdKLElBQUVFLElBQUVELEdBQUUsVUFBUyxHQUFHLElBQUk7QUFBRSxXQUFPLEdBQUcsSUFBSUcsSUFBRUQsRUFBQztBQUFBLEVBQUM7QUFBQSxFQUFDLE9BQU8sWUFBWUgsSUFBRUMsS0FBRSxDQUFDLEdBQUU7QUFBQyxVQUFNQyxLQUFFLEdBQUdGLEVBQUM7QUFBRSxXQUFPLEdBQUdBLElBQUVFLElBQUVELEdBQUUsVUFBUyxHQUFHLEdBQUc7QUFBQSxFQUFDO0FBQUEsRUFBQyxPQUFPLE1BQU1ELElBQUVDLEtBQUUsQ0FBQyxHQUFFO0FBQUMsVUFBTUMsS0FBRSxHQUFHRixFQUFDLEdBQUVHLEtBQUUsRUFBRUYsSUFBRUQsRUFBQyxHQUFFSSxLQUFFLEdBQUdKLElBQUVFLElBQUVELEdBQUUsVUFBUyxHQUFHLEdBQUc7QUFBRSxXQUFPLEdBQUcsSUFBSUcsSUFBRUQsRUFBQztBQUFBLEVBQUM7QUFBQSxFQUFDLE9BQU8sYUFBYUgsSUFBRUMsS0FBRSxDQUFDLEdBQUU7QUFBQyxVQUFNQyxLQUFFLEdBQUdGLEVBQUM7QUFBRSxXQUFPLEdBQUdBLElBQUVFLElBQUVELEdBQUUsVUFBUyxHQUFHLElBQUk7QUFBQSxFQUFDO0FBQUEsRUFBQyxPQUFPLE9BQU9ELElBQUVDLEtBQUUsQ0FBQyxHQUFFO0FBQUMsVUFBTUMsS0FBRSxHQUFHRixFQUFDLEdBQUVHLEtBQUUsRUFBRUYsSUFBRUQsRUFBQyxHQUFFSSxLQUFFLEdBQUdKLElBQUVFLElBQUVELEdBQUUsVUFBUyxHQUFHLElBQUk7QUFBRSxXQUFPLEdBQUcsSUFBSUcsSUFBRUQsRUFBQztBQUFBLEVBQUM7QUFBQSxFQUFDLE9BQU8sZUFBZUgsSUFBRUMsS0FBRSxDQUFDLEdBQUU7QUFBQyxVQUFNQyxLQUFFLEdBQUdGLEVBQUM7QUFBRSxXQUFPLEdBQUdBLElBQUVFLElBQUVELEdBQUUsVUFBUyxHQUFHLE1BQU07QUFBQSxFQUFDO0FBQUEsRUFBQyxPQUFPLFNBQVNELElBQUVDLEtBQUUsQ0FBQyxHQUFFO0FBQUMsVUFBTUMsS0FBRSxHQUFHRixFQUFDLEdBQUVHLEtBQUUsRUFBRUYsSUFBRUQsRUFBQyxHQUFFSSxLQUFFLEdBQUdKLElBQUVFLElBQUVELEdBQUUsVUFBUyxHQUFHLE1BQU07QUFBRSxXQUFPLEdBQUcsT0FBT0csSUFBRUQsRUFBQztBQUFBLEVBQUM7QUFBQSxFQUFDLE9BQU8sZ0JBQWdCSCxJQUFFQyxLQUFFLENBQUMsR0FBRTtBQUFDLFVBQU1DLEtBQUUsR0FBR0YsRUFBQztBQUFFLFdBQU8sR0FBR0EsSUFBRUUsSUFBRUQsR0FBRSxVQUFTLEdBQUcsT0FBTztBQUFBLEVBQUM7QUFBQSxFQUFDLE9BQU8sVUFBVUQsSUFBRUMsS0FBRSxDQUFDLEdBQUU7QUFBQyxVQUFNQyxLQUFFLEdBQUdGLEVBQUMsR0FBRUcsS0FBRSxFQUFFRixJQUFFRCxFQUFDLEdBQUVJLEtBQUUsR0FBR0osSUFBRUUsSUFBRUQsR0FBRSxVQUFTLEdBQUcsT0FBTztBQUFFLFdBQU8sR0FBRyxPQUFPRyxJQUFFRCxFQUFDO0FBQUEsRUFBQztBQUFBLEVBQUMsT0FBTyxhQUFhSCxJQUFFQyxLQUFFLENBQUMsR0FBRTtBQUFDLFVBQU1DLEtBQUUsR0FBR0YsRUFBQztBQUFFLFdBQU8sR0FBR0EsSUFBRUUsSUFBRUQsR0FBRSxVQUFTLEdBQUcsSUFBSTtBQUFBLEVBQUM7QUFBQSxFQUFDLE9BQU8sT0FBT0QsSUFBRUMsS0FBRSxDQUFDLEdBQUU7QUFBQyxVQUFNQyxLQUFFLEdBQUdGLEVBQUMsR0FBRUcsS0FBRSxFQUFFRixJQUFFRCxFQUFDLEdBQUVJLEtBQUUsR0FBR0osSUFBRUUsSUFBRUQsR0FBRSxVQUFTLEdBQUcsSUFBSTtBQUFFLFdBQU8sR0FBRyxLQUFLRyxJQUFFRCxFQUFDO0FBQUEsRUFBQztBQUFBLEVBQUMsT0FBTyxjQUFjSCxJQUFFQyxLQUFFLENBQUMsR0FBRTtBQUFDLFVBQU1DLEtBQUUsR0FBR0YsRUFBQztBQUFFLFdBQU8sR0FBR0EsSUFBRUUsSUFBRUQsR0FBRSxVQUFTLEdBQUcsS0FBSztBQUFBLEVBQUM7QUFBQSxFQUFDLE9BQU8sUUFBUUQsSUFBRUMsS0FBRSxDQUFDLEdBQUU7QUFBQyxVQUFNQyxLQUFFLEdBQUdGLEVBQUMsR0FBRUcsS0FBRSxFQUFFRixJQUFFRCxFQUFDLEdBQUVJ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QU8sRUFBRSxJQUFLLENBQUFELE9BQUcsR0FBRyxPQUFPQSxJQUFFLEVBQUVDLE1BQUcsQ0FBQyxHQUFFSCxJQUFFQyxFQUFDLENBQUMsQ0FBRSxJQUFFLEdBQUdELElBQUVDLElBQUUsR0FBRUMsTUFBQSxnQkFBQUEsR0FBRyxVQUFTLEdBQUcsT0FBTyxFQUFFLElBQUssQ0FBQUMsT0FBRyxHQUFHLE9BQU9BLElBQUUsRUFBRUQsTUFBRyxDQUFDLEdBQUVGLElBQUVDLEVBQUMsQ0FBQyxDQUFFO0FBQUEsRUFBQztBQUFBLEVBQUMsT0FBTyxnQkFBZ0JELElBQUVDLEtBQUUsRUFBRSxVQUFTO0FBQUMsV0FBTyxHQUFHLElBQUlELElBQUVDLElBQUUsS0FBRTtBQUFBLEVBQUM7QUFBQSxFQUFDLE9BQU8sVUFBVUQsSUFBRUMsS0FBRSxFQUFFLFVBQVM7QUFBQyxXQUFPLEdBQUcsSUFBSUQsSUFBRUMsSUFBRSxJQUFFO0FBQUEsRUFBQztBQUFBLEVBQUMsT0FBTyxpQkFBaUJELElBQUVDLEtBQUUsRUFBRSxVQUFTO0FBQUMsV0FBTyxHQUFHLEtBQUtELElBQUVDLElBQUUsS0FBRTtBQUFBLEVBQUM7QUFBQSxFQUFDLE9BQU8sV0FBV0QsSUFBRUMsS0FBRSxFQUFFLFVBQVM7QUFBQyxXQUFPLEdBQUcsS0FBS0QsSUFBRUMsSUFBRSxJQUFFO0FBQUEsRUFBQztBQUFBLEVBQUMsT0FBTyxnQkFBZ0JELElBQUVDLElBQUVFLElBQUU7QUFBQyxXQUFNLFlBQVUsT0FBT0YsS0FBRSxHQUFHLElBQUlELElBQUVDLElBQUUsT0FBRyxFQUFFRSxNQUFHLENBQUMsR0FBRSxHQUFHSCxFQUFDLENBQUMsSUFBRSxHQUFHLElBQUlBLElBQUUsRUFBRSxVQUFTLE9BQUcsRUFBRUMsTUFBRyxDQUFDLEdBQUUsR0FBR0QsRUFBQyxDQUFDO0FBQUEsRUFBQztBQUFBLEVBQUMsT0FBTyxVQUFVQSxJQUFFQyxJQUFFRSxJQUFFO0FBQUMsV0FBTSxZQUFVLE9BQU9GLEtBQUUsR0FBRyxJQUFJRCxJQUFFQyxJQUFFLE1BQUcsRUFBRUUsTUFBRyxDQUFDLEdBQUUsR0FBR0gsRUFBQyxDQUFDLElBQUUsR0FBRyxJQUFJQSxJQUFFLEVBQUUsVUFBUyxNQUFHLEVBQUVDLE1BQUcsQ0FBQyxHQUFFLEdBQUdELEVBQUMsQ0FBQztBQUFBLEVBQUM7QUFBQSxFQUFDLE9BQU8saUJBQWlCQSxJQUFFQyxJQUFFRSxJQUFFO0FBQUMsV0FBTSxZQUFVLE9BQU9GLEtBQUUsR0FBRyxLQUFLRCxJQUFFQyxJQUFFLE9BQUcsRUFBRUUsTUFBRyxDQUFDLEdBQUUsR0FBR0gsRUFBQyxDQUFDLElBQUUsR0FBRyxLQUFLQSxJQUFFLEVBQUUsVUFBUyxPQUFHLEVBQUVDLE1BQUcsQ0FBQyxHQUFFLEdBQUdELEVBQUMsQ0FBQztBQUFBLEVBQUM7QUFBQSxFQUFDLE9BQU8sV0FBV0EsSUFBRUMsSUFBRUUsSUFBRTtBQUFDLFdBQU0sWUFBVSxPQUFPRixLQUFFLEdBQUcsS0FBS0QsSUFBRUMsSUFBRSxNQUFHLEVBQUVFLE1BQUcsQ0FBQyxHQUFFLEdBQUdILEVBQUMsQ0FBQyxJQUFFLEdBQUcsS0FBS0EsSUFBRSxFQUFFLFVBQVMsTUFBRyxFQUFFQyxNQUFHLENBQUMsR0FBRSxHQUFHRCxFQUFDLENBQUM7QUFBQSxFQUFDO0FBQUEsRUFBQyxPQUFPLGdCQUFnQkEsSUFBRUMsSUFBRUUsSUFBRTtBQUFDLFdBQU0sWUFBVSxPQUFPRixLQUFFLEdBQUcsSUFBSUQsSUFBRUMsSUFBRSxPQUFHLEVBQUVFLE1BQUcsQ0FBQyxHQUFFLEdBQUdILEVBQUMsQ0FBQyxJQUFFLEdBQUcsSUFBSUEsSUFBRSxFQUFFLFVBQVMsT0FBRyxFQUFFQyxNQUFHLENBQUMsR0FBRSxHQUFHRCxFQUFDLENBQUM7QUFBQSxFQUFDO0FBQUEsRUFBQyxPQUFPLFVBQVVBLElBQUVDLElBQUVFLElBQUU7QUFBQyxXQUFNLFlBQVUsT0FBT0YsS0FBRSxHQUFHLElBQUlELElBQUVDLElBQUUsTUFBRyxFQUFFRSxNQUFHLENBQUMsR0FBRSxHQUFHSCxFQUFDLENBQUMsSUFBRSxHQUFHLElBQUlBLElBQUUsRUFBRSxVQUFTLE1BQUcsRUFBRUMsTUFBRyxDQUFDLEdBQUUsR0FBR0QsRUFBQyxDQUFDO0FBQUEsRUFBQztBQUFBLEVBQUMsT0FBTyxpQkFBaUJBLElBQUVDLElBQUVFLElBQUU7QUFBQyxXQUFNLFlBQVUsT0FBT0YsS0FBRSxHQUFHLEtBQUtELElBQUVDLElBQUUsT0FBRyxFQUFFRSxNQUFHLENBQUMsR0FBRSxHQUFHSCxFQUFDLENBQUMsSUFBRSxHQUFHLEtBQUtBLElBQUUsRUFBRSxVQUFTLE9BQUcsRUFBRUMsTUFBRyxDQUFDLEdBQUUsR0FBR0QsRUFBQyxDQUFDO0FBQUEsRUFBQztBQUFBLEVBQUMsT0FBTyxXQUFXQSxJQUFFQyxJQUFFRSxJQUFFO0FBQUMsV0FBTSxZQUFVLE9BQU9GLEtBQUUsR0FBRyxLQUFLRCxJQUFFQyxJQUFFLE1BQUcsRUFBRUUsTUFBRyxDQUFDLEdBQUUsR0FBR0gsRUFBQyxDQUFDLElBQUUsR0FBRyxLQUFLQSxJQUFFLEVBQUUsVUFBUyxNQUFHLEVBQUVDLE1BQUcsQ0FBQyxHQUFFLEdBQUdELEVBQUMsQ0FBQztBQUFBLEVBQUM7QUFBQSxFQUFDLE9BQU8sbUJBQW1CQSxJQUFFQyxJQUFFRSxJQUFFO0FBQUMsV0FBTSxZQUFVLE9BQU9GLEtBQUUsR0FBRyxPQUFPRCxJQUFFQyxJQUFFLE9BQUcsRUFBRUUsTUFBRyxDQUFDLEdBQUUsR0FBR0gsRUFBQyxDQUFDLElBQUUsR0FBRyxPQUFPQSxJQUFFLEVBQUUsVUFBUyxPQUFHLEVBQUVDLE1BQUcsQ0FBQyxHQUFFLEdBQUdELEVBQUMsQ0FBQztBQUFBLEVBQUM7QUFBQSxFQUFDLE9BQU8sYUFBYUEsSUFBRUMsSUFBRUUsSUFBRTtBQUFDLFdBQU0sWUFBVSxPQUFPRixLQUFFLEdBQUcsT0FBT0QsSUFBRUMsSUFBRSxNQUFHLEVBQUVFLE1BQUcsQ0FBQyxHQUFFLEdBQUdILEVBQUMsQ0FBQyxJQUFFLEdBQUcsT0FBT0EsSUFBRSxFQUFFLFVBQVMsTUFBRyxFQUFFQyxNQUFHLENBQUMsR0FBRSxHQUFHRCxFQUFDLENBQUM7QUFBQSxFQUFDO0FBQUEsRUFBQyxPQUFPLG9CQUFvQkEsSUFBRUMsSUFBRUUsSUFBRTtBQUFDLFdBQU0sWUFBVSxPQUFPRixLQUFFLEdBQUcsUUFBUUQsSUFBRUMsSUFBRSxPQUFHLEVBQUVFLE1BQUcsQ0FBQyxHQUFFLEdBQUdILEVBQUMsQ0FBQyxJQUFFLEdBQUcsUUFBUUEsSUFBRSxFQUFFLFVBQVMsT0FBRyxFQUFFQyxNQUFHLENBQUMsR0FBRSxHQUFHRCxFQUFDLENBQUM7QUFBQSxFQUFDO0FBQUEsRUFBQyxPQUFPLGNBQWNBLElBQUVDLElBQUVFLElBQUU7QUFBQyxXQUFNLFlBQVUsT0FBT0YsS0FBRSxHQUFHLFFBQVFELElBQUVDLElBQUUsTUFBRyxFQUFFRSxNQUFHLENBQUMsR0FBRSxHQUFHSCxFQUFDLENBQUMsSUFBRSxHQUFHLFFBQVFBLElBQUUsRUFBRSxVQUFTLE1BQUcsRUFBRUMsTUFBRyxDQUFDLEdBQUUsR0FBR0QsRUFBQyxDQUFDO0FBQUEsRUFBQztBQUFBLEVBQUMsT0FBTyxVQUFVQSxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsV0FBTSxZQUFVLE9BQU9ELEtBQUUsR0FBR0QsSUFBRUMsSUFBRSxNQUFHLEVBQUVDLE1BQUcsQ0FBQyxHQUFFRixFQUFDLENBQUMsSUFBRSxHQUFHQSxJQUFFLEdBQUUsTUFBRyxFQUFFQyxNQUFHLENBQUMsR0FBRUQsRUFBQyxDQUFDO0FBQUEsRUFBQztBQUFBLEVBQUMsT0FBTyxTQUFTQSxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsV0FBTSxZQUFVLE9BQU9ELEtBQUUsR0FBR0QsSUFBRUMsSUFBRSxPQUFHLEVBQUVDLE1BQUcsQ0FBQyxHQUFFRixFQUFDLENBQUMsSUFBRSxHQUFHQSxJQUFFLEdBQUUsT0FBRyxFQUFFQyxNQUFHLENBQUMsR0FBRUQsRUFBQyxDQUFDO0FBQUEsRUFBQztBQUFBLEVBQUMsT0FBTyxXQUFXQSxJQUFFRyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsV0FBTSxHQUFHRixFQUFDLE1BQUssSUFBRSxHQUFHQSxJQUFFSCxJQUFF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QUEsSUFDWixTQUFTO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsSUFDTixNQUFNO0FBQUEsSUFDTixVQUFVO0FBQUEsSUFDVixTQUFTO0FBQUEsSUFDVCxXQUFXO0FBQUEsSUFDWCxJQUFJO0FBQUEsSUFDSixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixPQUFPO0FBQUEsSUFDUCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxJQUFJO0FBQUEsSUFDSixPQUFPO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixVQUFVO0FBQUEsSUFDVixTQUFTO0FBQUEsSUFDVCxXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixNQUFNO0FBQUEsSUFDTixPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUEsSUFDTixVQUFVO0FBQUEsSUFDVixNQUFNO0FBQUEsSUFDTixTQUFTO0FBQUEsSUFDVCxNQUFNO0FBQUEsSUFDTixLQUFLO0FBQUEsSUFDTCxVQUFVO0FBQUEsSUFDVixLQUFLO0FBQUEsSUFDTCxXQUFXO0FBQUEsSUFDWCxPQUFPO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixLQUFLO0FBQUEsSUFDTCxXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUEsSUFDTixPQUFPO0FBQUEsSUFDUCxVQUFVO0FBQUEsSUFDVixZQUFZO0FBQUEsSUFDWixTQUFTO0FBQUEsSUFDVCxjQUFjO0FBQUEsSUFDZCxZQUFZO0FBQUEsSUFDWixlQUFlO0FBQUEsSUFDZixlQUFlO0FBQUEsSUFDZixnQkFBZ0I7QUFBQSxJQUNoQixnQkFBZ0I7QUFBQSxJQUNoQixRQUFRO0FBQUEsSUFDUixVQUFVO0FBQUEsSUFDVixXQUFXO0FBQUEsSUFDWCxrQkFBa0I7QUFBQSxJQUNsQixVQUFVO0FBQUEsSUFDVixTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxlQUFlO0FBQUEsSUFDZixlQUFlO0FBQUEsSUFDZixtQkFBbUI7QUFBQSxJQUNuQixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsSUFDYixPQUFPO0FBQUEsSUFDUCxZQUFZO0FBQUEsSUFDWixRQUFRO0FBQUEsSUFDUixXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixrQkFBa0I7QUFBQSxJQUNsQixXQUFXO0FBQUEsSUFDWCxTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxZQUFZO0FBQUEsSUFDWixjQUFjO0FBQUEsSUFDZCxTQUFTO0FBQUEsSUFDVCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxZQUFZO0FBQUEsSUFDWixTQUFTO0FBQUEsSUFDVCxrQkFBa0I7QUFBQSxJQUNsQixRQUFRO0FBQUEsSUFDUixjQUFjO0FBQUEsSUFDZCxrQkFBa0I7QUFBQSxJQUNsQixXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYixXQUFXO0FBQUEsSUFDWCxnQkFBZ0I7QUFBQSxJQUNoQixhQUFhO0FBQUEsSUFDYixjQUFjO0FBQUEsSUFDZCxjQUFjO0FBQUEsSUFDZCxhQUFhO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixZQUFZO0FBQUEsSUFDWixZQUFZO0FBQUEsSUFDWixTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixXQUFXO0FBQUEsSUFDWCxZQUFZO0FBQUEsSUFDWixZQUFZO0FBQUEsSUFDWixjQUFjO0FBQUEsSUFDZCxvQkFBb0I7QUFBQSxJQUNwQixTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixhQUFhO0FBQUEsSUFDYiwyQkFBMkI7QUFBQSxJQUMzQixVQUFVO0FBQUEsSUFDVixXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixjQUFjO0FBQUEsSUFDZCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixXQUFXO0FBQUEsSUFDWCxjQUFjO0FBQUEsSUFDZCxVQUFVO0FBQUEsSUFDVixzQkFBc0I7QUFBQSxJQUN0QixVQUFVO0FBQUEsSUFDVixnQkFBZ0I7QUFBQSxJQUNoQixXQUFXO0FBQUEsSUFDWCxTQUFTO0FBQUEsSUFDVCxNQUFNO0FBQUEsSUFDTixTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxNQUFNO0FBQUEsSUFDTixhQUFhO0FBQUEsSUFDYixhQUFhO0FBQUEsSUFDYixTQUFTO0FBQUEsSUFDVCxlQUFlO0FBQUEsSUFDZixxQkFBcUI7QUFBQSxJQUNyQixRQUFRO0FBQUEsSUFDUixTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsSUFDVixnQkFBZ0I7QUFBQSxJQUNoQixLQUFLO0FBQUEsSUFDTCxVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixNQUFNO0FBQUEsSUFDTixTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxPQUFPO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixvQkFBb0I7QUFBQSxJQUNwQiwwQkFBMEI7QUFBQSxJQUMxQixnQkFBZ0I7QUFBQSxJQUNoQixPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUEsSUFDTixPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUEsSUFDTixNQUFNO0FBQUEsSUFDTixZQUFZO0FBQUEsSUFDWixLQUFLO0FBQUEsSUFDTCxRQUFRO0FBQUEsSUFDUixTQUFTO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUEsSUFDTixPQUFPO0FBQUEsSUFDUCxVQUFVO0FBQUEsSUFDVixRQUFRO0FBQUEsSUFDUixPQUFPO0FBQUEsSUFDUCxXQUFXO0FBQUEsSUFDWCxNQUFNO0FBQUEsSUFDTixlQUFlO0FBQUEsSUFDZixRQUFRO0FBQUEsSUFDUixPQUFPO0FBQUEsSUFDUCxPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUEsSUFDTixvQkFBb0I7QUFBQTtBQUFBO0FBQUEsSUFJcEIsT0FBTztBQUFBO0FBQUEsSUFDUCxPQUFPO0FBQUE7QUFBQSxJQUNQLFNBQVM7QUFBQTtBQUFBLElBQ1QsTUFBTTtBQUFBO0FBQUEsSUFDTixZQUFZO0FBQUE7QUFBQSxJQUNaLFNBQVM7QUFBQTtBQUFBLElBQ1QsUUFBUTtBQUFBO0FBQUEsSUFDUixhQUFhO0FBQUE7QUFBQSxJQUNiLGNBQWM7QUFBQTtBQUFBLElBQ2QsYUFBYTtBQUFBO0FBQUEsSUFDYixhQUFhO0FBQUE7QUFBQSxJQUNiLE1BQU07QUFBQTtBQUFBLElBQ04sU0FBUztBQUFBO0FBQUEsSUFDVCxTQUFTO0FBQUE7QUFBQSxJQUNULE9BQU87QUFBQTtBQUFBLElBQ1AsTUFBTTtBQUFBO0FBQUEsSUFDTixVQUFVO0FBQUE7QUFBQSxJQUNWLFVBQVU7QUFBQTtBQUFBLElBQ1YsT0FBTztBQUFBO0FBQUEsSUFDUCxTQUFTO0FBQUE7QUFBQSxJQUNULFNBQVM7QUFBQTtBQUFBLElBQ1QsT0FBTztBQUFBO0FBQUEsSUFDUCxNQUFNO0FBQUE7QUFBQSxJQUNOLE9BQU87QUFBQTtBQUFBLElBQ1AsYUFBYTtBQUFBO0FBQUEsSUFDYixRQUFRO0FBQUE7QUFBQSxJQUNSLFlBQVk7QUFBQTtBQUFBLElBQ1osTUFBTTtBQUFBO0FBQUEsSUFDTixVQUFVO0FBQUE7QUFBQSxJQUNWLFFBQVE7QUFBQTtBQUFBLElBQ1IsY0FBYztBQUFBO0FBQUEsSUFDZCxhQUFhO0FBQUE7QUFBQSxJQUNiLFVBQVU7QUFBQTtBQUFBLElBQ1YsUUFBUTtBQUFBO0FBQUEsSUFDUixTQUFTO0FBQUE7QUFBQSxJQUNULFFBQVE7QUFBQTtBQUFBLElBQ1IsUUFBUTtBQUFBO0FBQUEsSUFDUixTQUFTO0FBQUE7QUFBQSxJQUNULFFBQVE7QUFBQTtBQUFBLElBQ1IsS0FBSztBQUFBO0FBQUEsSUFDTCxhQUFhO0FBQUE7QUFBQSxJQUNiLE9BQU87QUFBQTtBQUFBLElBQ1AsUUFBUTtBQUFBO0FBQUEsSUFDUixXQUFXO0FBQUE7QUFBQSxJQUNYLFNBQVM7QUFBQTtBQUFBLElBQ1QsU0FBUztBQUFBO0FBQUEsSUFDVCxNQUFNO0FBQUE7QUFBQSxJQUNOLFdBQVc7QUFBQTtBQUFBLElBQ1gsV0FBVztBQUFBO0FBQUEsSUFDWCxTQUFTO0FBQUE7QUFBQSxJQUNULFFBQVE7QUFBQTtBQUFBLElBQ1IsT0FBTztBQUFBO0FBQUEsSUFDUCxRQUFRO0FBQUE7QUFBQTtBQUFBLElBR1IsbUJBQW1CO0FBQUEsSUFDbkIsYUFBYTtBQUFBLElBQ2IsVUFBVTtBQUFBLElBQ1YseUJBQXlCO0FBQUEsSUFDekIsdUJBQXVCO0FBQUEsSUFDdkIsUUFBUTtBQUFBLElBQ1IsVUFBVTtBQUFBLElBQ1YsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLElBQ1YsY0FBYztBQUFBLEVBQ2hCO0FBQ0YsQ0FBQzs7O0FDdlRNLElBQU0sTUFBTSxPQUFPO0FBQUEsRUFDeEIsT0FBTztBQUFBLEVBQ1AsWUFBWTtBQUFBLElBQ1YsY0FBYztBQUFBLElBQ2QsbUJBQW1CO0FBQUEsSUFDbkIsWUFBWTtBQUFBLElBQ1osZUFBZTtBQUFBLElBQ2YsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsVUFBVTtBQUFBLElBQ1Ysb0JBQW9CO0FBQUEsSUFDcEIsMkJBQTJCO0FBQUEsSUFDM0IsY0FBYztBQUFBLElBQ2QsZ0JBQWdCO0FBQUEsSUFDaEIsYUFBYTtBQUFBLElBQ2IsVUFBVTtBQUFBLElBQ1Ysa0JBQWtCO0FBQUEsSUFDbEIsa0JBQWtCO0FBQUEsSUFDbEIsYUFBYTtBQUFBLElBQ2IsVUFBVTtBQUFBLElBQ1YsWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLElBQ2QsWUFBWTtBQUFBLElBQ1osVUFBVTtBQUFBLElBQ1YsZ0JBQWdCO0FBQUEsSUFDaEIsYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osV0FBVztBQUFBLElBQ1gsNEJBQTRCO0FBQUEsSUFDNUIsMEJBQTBCO0FBQUEsSUFDMUIsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsY0FBYztBQUFBLElBQ2QsZ0JBQWdCO0FBQUEsSUFDaEIsZUFBZTtBQUFBLElBQ2YsZUFBZTtBQUFBLElBQ2YsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsU0FBUztBQUFBLElBQ1QsYUFBYTtBQUFBLElBQ2IsY0FBYztBQUFBLElBQ2QsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLElBQ1YsT0FBTztBQUFBLElBQ1AsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osU0FBUztBQUFBLElBQ1QsWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLElBQ2QsZUFBZTtBQUFBLElBQ2YsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsa0JBQWtCO0FBQUEsSUFDbEIsVUFBVTtBQUFBLElBQ1YsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLElBQ2IsT0FBTztBQUFBLElBQ1AsWUFBWTtBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osYUFBYTtBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1Isa0JBQWtCO0FBQUEsSUFDbEIsV0FBVztBQUFBLElBQ1gsT0FBTztBQUFBLElBQ1AsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLElBQ2QsU0FBUztBQUFBLElBQ1QsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsY0FBYztBQUFBLElBQ2Qsa0JBQWtCO0FBQUEsSUFDbEIsYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsY0FBYztBQUFBLElBQ2QsY0FBYztBQUFBLElBQ2QsYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsWUFBWTtBQUFBLElBQ1osWUFBWTtBQUFBLElBQ1osU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLElBQ2QsVUFBVTtBQUFBLElBQ1YsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLElBQ1YsVUFBVTtBQUFBLElBQ1YsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsVUFBVTtBQUFBLElBQ1YsVUFBVTtBQUFBLElBQ1YsZ0JBQWdCO0FBQUEsSUFDaEIsV0FBVztBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1Isa0JBQWtCO0FBQUEsSUFDbEIsbUJBQW1CO0FBQUEsSUFDbkIsWUFBWTtBQUFBLElBQ1osU0FBUztBQUFBLElBQ1QsZUFBZTtBQUFBLElBQ2YsZ0JBQWdCO0FBQUEsSUFDaEIsaUJBQWlCO0FBQUEsSUFDakIsZ0JBQWdCO0FBQUEsSUFDaEIsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsdUJBQXVCO0FBQUEsSUFDdkIsd0JBQXdCO0FBQUEsSUFDeEIsaUJBQWlCO0FBQUEsSUFDakIsa0JBQWtCO0FBQUEsSUFDbEIsZUFBZTtBQUFBLElBQ2Ys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QU07QUFBQSxJQUNOLE1BQU07QUFBQSxJQUNOLFNBQVM7QUFBQSxJQUNULGFBQWE7QUFBQSxJQUNiLGNBQWM7QUFBQSxJQUNkLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxJQUNQLFdBQVc7QUFBQSxJQUNYLFlBQVk7QUFBQSxJQUNaLFlBQVk7QUFBQSxJQUNaLFVBQVU7QUFBQSxJQUNWLFFBQVE7QUFBQSxJQUNSLFNBQVM7QUFBQSxJQUNULFlBQVk7QUFBQSxJQUNaLGNBQWM7QUFBQSxJQUNkLGVBQWU7QUFBQSxJQUNmLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxJQUNWLFdBQVc7QUFBQSxJQUNYLGtCQUFrQjtBQUFBLElBQ2xCLFVBQVU7QUFBQSxJQUNWLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxJQUNiLE9BQU87QUFBQSxJQUNQLFlBQVk7QUFBQSxJQUNaLFFBQVE7QUFBQSxJQUNSLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLFlBQVk7QUFBQSxJQUNaLGFBQWE7QUFBQSxJQUNiLFlBQVk7QUFBQSxJQUNaLGFBQWE7QUFBQSxJQUNiLFFBQVE7QUFBQSxJQUNSLGtCQUFrQjtBQUFBLElBQ2xCLFdBQVc7QUFBQSxJQUNYLE9BQU87QUFBQSxJQUNQLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFdBQVc7QUFBQSxJQUNYLFlBQVk7QUFBQSxJQUNaLGNBQWM7QUFBQSxJQUNkLFNBQVM7QUFBQSxJQUNULFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFlBQVk7QUFBQSxJQUNaLFNBQVM7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLGNBQWM7QUFBQSxJQUNkLGtCQUFrQjtBQUFBLElBQ2xCLGFBQWE7QUFBQSxJQUNiLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLGNBQWM7QUFBQSxJQUNkLGNBQWM7QUFBQSxJQUNkLGFBQWE7QUFBQSxJQUNiLFlBQVk7QUFBQSxJQUNaLGFBQWE7QUFBQSxJQUNiLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLFdBQVc7QUFBQSxJQUNYLFVBQVU7QUFBQSxJQUNWLFlBQVk7QUFBQSxJQUNaLFlBQVk7QUFBQSxJQUNaLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLFdBQVc7QUFBQSxJQUNYLFlBQVk7QUFBQSxJQUNaLFlBQVk7QUFBQSxJQUNaLGNBQWM7QUFBQSxJQUNkLFVBQVU7QUFBQSxJQUNWLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxJQUNWLFVBQVU7QUFBQSxJQUNWLFVBQVU7QUFBQSxJQUNWLFdBQVc7QUFBQSxJQUNYLFVBQVU7QUFBQSxJQUNWLFFBQVE7QUFBQSxJQUNSLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFVBQVU7QUFBQSxJQUNWLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLFVBQVU7QUFBQSxJQUNWLFVBQVU7QUFBQSxJQUNWLGdCQUFnQjtBQUFBLElBQ2hCLFdBQVc7QUFBQSxJQUNYLFFBQVE7QUFBQSxJQUNSLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxJQUNiLFFBQVE7QUFBQSxJQUNSLFVBQVU7QUFBQSxJQUNWLFNBQVM7QUFBQSxJQUNULGtCQUFrQjtBQUFBLElBQ2xCLG1CQUFtQjtBQUFBLElBQ25CLFlBQVk7QUFBQSxJQUNaLFNBQVM7QUFBQSxJQUNULE1BQU07QUFBQSxJQUNOLFlBQVk7QUFBQSxJQUNaLHFCQUFxQjtBQUFBLElBQ3JCLGtCQUFrQjtBQUFBLElBQ2xCLGNBQWM7QUFBQSxJQUNkLE9BQU87QUFBQSxJQUNQLE1BQU07QUFBQSxJQUNOLE9BQU87QUFBQSxJQUNQLGVBQWU7QUFBQSxJQUNmLGVBQWU7QUFBQSxJQUNmLFFBQVE7QUFBQSxJQUNSLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFB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bkIsRUFBQUEsV0FBVSxZQUFZLElBQUk7QUFDMUIsRUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsRUFBQUEsV0FBVSxTQUFTLElBQUk7QUFDdkIsRUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsRUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsRUFBQUEsV0FBVSxLQUFLLElBQUk7QUFDbkIsRUFBQUEsV0FBVSxVQUFVLElBQUk7QUFDeEIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsRUFBQUEsV0FBVSxTQUFTLElBQUk7QUFDdkIsRUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsRUFBQUEsV0FBVSxLQUFLLElBQUk7QUFDbkIsRUFBQUEsV0FBVSxLQUFLLElBQUk7QUFDbkIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsRUFBQUEsV0FBVSxVQUFVLElBQUk7QUFDeEIsRUFBQUEsV0FBVSxZQUFZLElBQUk7QUFDMUIsRUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsRUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsRUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsRUFBQUEsV0FBVSxnQkFBZ0IsSUFBSTtBQUM5QixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLEdBQUcsSUFBSTtBQUNqQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFNBQVMsSUFBSTtBQUN2QixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFlBQVksSUFBSTtBQUMxQixFQUFBQSxXQUFVLFNBQVMsSUFBSTtBQUN2QixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLFNBQVMsSUFBSTtBQUN2QixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLEdBQUcsSUFBSTtBQUNqQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLFdBQVcsSUFBSTtBQUN6QixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLEdBQUcsSUFBSTtBQUNqQixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLFNBQVMsSUFBSTtBQUN2QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLFNBQVMsSUFBSTtBQUN2QixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLEdBQUcsSUFBSTtBQUNqQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUN2QixHQUFHLGNBQWMsWUFBWSxDQUFDLEVBQUU7QUFNekIsSUFBSTtBQUFBLENBQ1YsU0FBVUMsU0FBUTtBQUNmLEVBQUFBLFFBQU9BLFFBQU8sU0FBUyxJQUFJLENBQUMsSUFBSTtBQUNoQyxFQUFBQSxRQUFPQSxRQUFPLEdBQUcsSUFBSSxDQUFDLElBQUk7QUFDMUIsRUFBQUEsUUFBT0EsUUFBTyxTQUFTLElBQUksQ0FBQyxJQUFJO0FBQ2hDLEVBQUFBLFFBQU9BLFFBQU8sZ0JBQWdCLElBQUksQ0FBQyxJQUFJO0FBQ3ZDLEVBQUFBLFFBQU9BLFFBQU8sUUFBUSxJQUFJLENBQUMsSUFBSTtBQUMvQixFQUFBQSxRQUFPQSxRQUFPLE1BQU0sSUFBSSxDQUFDLElBQUk7QUFDN0IsRUFBQUEsUUFBT0EsUUFBTyxTQUFTLElBQUksQ0FBQyxJQUFJO0FBQ2hDLEVBQUFBLFFBQU9BLFFBQU8sT0FBTyxJQUFJLENBQUMsSUFBSTtBQUM5QixFQUFBQSxRQUFPQSxRQUFPLEdBQUcsSUFBSSxDQUFDLElBQUk7QUFDMUIsRUFBQUEsUUFBT0EsUUFBTyxNQUFNLElBQUksQ0FBQyxJQUFJO0FBQzdCLEVBQUFBLFFBQU9BLFFBQU8sVUFBVSxJQUFJLEVBQUUsSUFBSTtBQUNsQyxFQUFBQSxRQUFPQSxRQUFPLFNBQVMsSUFBSSxFQUFFLElBQUk7QUFDakMsRUFBQUEsUUFBT0EsUUFBTyxLQUFLLElBQUksRUFBRSxJQUFJO0FBQzdCLEVBQUFBLFFBQU9BLFFBQU8sWUFBWSxJQUFJLEVBQUUsSUFBSTtBQUNwQyxFQUFBQSxRQUFPQSxRQUFPLE1BQU0sSUFBSSxFQUFFLElBQUk7QUFDOUIsRUFBQUEsUUFBT0EsUUFBTyxJQUFJLElBQUksRUFBRSxJQUFJO0FBQzVCLEVBQUFBLFFBQU9BLFFBQU8sUUFBUSxJQUFJLEVBQUUsSUFBSTtBQUNoQyxFQUFBQSxRQUFPQSxRQUFPLFNBQVMsSUFBSSxFQUFFLElBQUk7QUFDakMsRUFBQUEsUUFBT0EsUUFBTyxRQUFRLElBQUksRUFBRSxJQUFJO0FBQ2hDLEVBQUFBLFFBQU9BLFFBQU8sTUFBTSxJQUFJLEVBQUUsSUFBSTtBQUM5QixFQUFBQSxRQUFPQSxRQUFPLEtBQUssSUFBSSxFQUFFLElBQUk7QUFDN0IsRUFBQUEsUUFBT0EsUUFBTyxVQUFVLElBQUksRUFBRSxJQUFJO0FBQ2xDLEVBQUFBLFFBQU9BLFFBQU8sSUFBSSxJQUFJLEVBQUUsSUFBSTtBQUM1QixFQUFBQSxRQUFPQSxRQUFPLE1BQU0sSUFBSSxFQUFFLElBQUk7QUFDOUIsRUFBQUEsUUFBT0EsUUFBTyxTQUFTLElBQUksRUFBRSxJQUFJO0FBQ2pDLEVBQUFBLFFBQU9BLFFBQU8sUUFBUSxJQUFJLEVBQUUsSUFBSTtBQUNoQyxFQUFBQSxRQUFPQSxRQUFPLEtBQUssSUFBSSxFQUFFLElBQUk7QUFDN0IsRUFBQUEsUUFBT0EsUUFBTyxLQUFLLElBQUksRUFBRSxJQUFJO0FBQzdCLEVBQUFBLFFBQU9BLFFBQU8sSUFBSSxJQUFJLEVBQUUsSUFBSTtBQUM1QixFQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsRUFBQUEsUUFBT0EsUUFBTyxJQUFJLElBQUksRUFBRSxJQUFJO0FBQzVCLEVBQUFBLFFBQU9BLFFBQU8sT0FBTyxJQUFJLEVBQUUsSUFBSTtBQUMvQixFQUFBQSxRQUFPQSxRQUFPLFVBQVUsSUFBSSxFQUFFLElBQUk7QUFDbEMsRUFBQUEsUUFBT0EsUUFBTyxZQUFZLElBQUksRUFBRSxJQUFJO0FBQ3BDLEVBQUFBLFFBQU9BLFFBQU8sUUFBUSxJQUFJLEVBQUUsSUFBSTtBQUNoQyxFQUFBQSxRQUFPQSxRQUFPLE1BQU0sSUFBSSxFQUFFLElBQUk7QUFDOUIsRUFBQUEsUUFBT0EsUUFBTyxRQUFRLElBQUksRUFBRSxJQUFJO0FBQ2hDLEVBQUFBLFFBQU9BLFFBQU8sZ0JBQWdCLElBQUksRUFBRSxJQUFJO0FBQ3hDLEVBQUFBLFFBQU9BLFFBQU8sTUFBTSxJQUFJLEVBQUUsSUFBSTtBQUM5QixFQUFBQSxRQUFPQSxRQUFPLE9BQU8sSUFBSSxFQUFFLElBQUk7QUFDL0IsRUFBQUEsUUFBT0EsUUFBTyxVQUFVLElBQUksRUFBRSxJQUFJO0FBQ2xDLEVBQUFBLFFBQU9BLFFBQU8sSUFBSSxJQUFJLEVBQUUsSUFBSTtBQUM1QixFQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsRUFBQUEsUUFBT0EsUUFBTyxJQUFJLElBQUksRUFBRSxJQUFJO0FBQzVCLEVBQUFBLFFBQU9BLFFBQU8sSUFBSSxJQUFJLEVBQUUsSUFBSTtBQUM1QixFQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsRUFBQUEsUUFBT0EsUUFBTyxJQUFJLElBQUksRUFBRSxJQUFJO0FBQzVCLEVBQUFBLFFBQU9BLFFBQU8sTUFBTSxJQUFJLEVBQUUsSUFBSTtBQUM5QixFQUFBQSxRQUFPQSxRQUFPLFFBQVEsSUFBSSxFQUFFLElBQUk7QUFDaEMsRUFBQUEsUUFBT0EsUUFBTyxRQUFRLElBQUksRUFBRSxJQUFJO0FBQ2hDLEVBQUFBLFFBQU9BLFFBQU8sSUFBSSxJQUFJLEVBQUUsSUFBSTtBQUM1QixFQUFBQSxRQUFPQSxRQUFPLE1BQU0sSUFBSSxFQUFFLElBQUk7QUFDOUIsRUFBQUEsUUFBT0EsUUFBTyxHQUFHLElBQUksRUFBRSxJQUFJO0FBQzNCLEVBQUFBLFFBQU9BLFFBQU8sS0FBSyxJQUFJLEVBQUUsSUFBSTtBQUM3QixFQUFBQSxRQUFPQSxRQUFPLE9BQU8sSUFBSSxFQUFFLElBQUk7QUFDL0IsRUFBQUEsUUFBT0EsUUFBTyxPQUFPLElBQUksRUFBRSxJQUFJO0FBQy9CLEVBQUFBLFFBQU9BLFFBQU8sUUFBUSxJQUFJLEVBQUUsSUFBSTtBQUNoQyxFQUFBQSxRQUFPQSxRQUFPLFFBQVEsSUFBSSxFQUFFLElBQUk7QUFDaEMsRUFBQUEsUUFBT0EsUUFBTyxPQUFPLElBQUksRUFBRSxJQUFJO0FBQy9CLEVBQUFBLFFBQU9BLFFBQU8sSUFBSSxJQUFJLEVBQUUsSUFBSTtBQUM1QixFQUFBQSxRQUFPQSxRQUFPLE1BQU0sSUFBSSxFQUFFLElBQUk7QUFDOUIsRUFBQUEsUUFBT0EsUUFBTyxTQUFTLElBQUksRUFBRSxJQUFJO0FBQ2pDLEVBQUFBLFFBQU9BLFFBQU8sTUFBTSxJQUFJLEVBQUUsSUFBSTtBQUM5QixFQUFBQSxRQUFPQSxRQUFPLFlBQVksSUFBSSxFQUFFLElBQUk7QUFDcEMsRUFBQUEsUUFBT0EsUUFBTyxTQUFTLElBQUksRUFBRSxJQUFJO0FBQ2pDLEVBQUFBLFFBQU9BLFFBQU8sTUFBTSxJQUFJLEVBQUUsSUFBSTtBQUM5QixFQUFBQSxRQUFPQSxRQUFPLE1BQU0sSUFBSSxFQUFFLElBQUk7QUFDOUIsRUFBQUEsUUFBT0EsUUFBTyxNQUFNLElBQUksRUFBRSxJQUFJO0FBQzlCLEVBQUFBLFFBQU9BLFFBQU8sUUFBUSxJQUFJLEVBQUUsSUFBSTtBQUNoQyxFQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsRUFBQUEsUUFBT0EsUUFBTyxJQUFJLElBQUksRUFBRSxJQUFJO0FBQzVCLEVBQUFBLFFBQU9BLFFBQU8sSUFBSSxJQUFJLEVBQUUsSUFBSTtBQUM1QixFQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsRUFBQUEsUUFBT0EsUUFBTyxPQUFPLElBQUksRUFBRSxJQUFJO0FBQy9CLEVBQUFBLFFBQU9BLFFBQU8sS0FBSyxJQUFJLEVBQUUsSUFBSTtBQUM3QixFQUFBQSxRQUFPQSxRQUFPLE1BQU0sSUFBSSxFQUFFLElBQUk7QUFDOUIsRUFBQUEsUUFBT0EsUUFBTyxVQUFVLElBQUksRUFBRSxJQUFJO0FBQ2xDLEVBQUFBLFFBQU9BLFFBQU8sU0FBUyxJQUFJLEVBQUUsSUFBSTtBQUNqQyxFQUFBQSxRQUFPQSxRQUFPLFVBQVUsSUFBSSxFQUFFLElBQUk7QUFDbEMsRUFBQUEsUUFBT0EsUUFBTyxRQUFRLElBQUksRUFBRSxJQUFJO0FBQ2hDLEVBQUFBLFFBQU9BLFFBQU8sSUFBSSxJQUFJLEVBQUUsSUFBSTtBQUM1QixFQUFBQSxRQUFPQSxRQUFPLFVBQVUsSUFBSSxFQUFFLElBQUk7QUFDbEMsRUFBQUEsUUFBT0EsUUFBTyxRQUFRLElBQUksRUFBRSxJQUFJO0FBQ2hDLEVBQUFBLFFBQU9BLFFBQU8sR0FBRyxJQUFJLEVBQUUsSUFBSTtBQUMzQixFQUFBQSxRQUFPQSxRQUFPLE9BQU8sSUFBSSxFQUFFLElBQUk7QUFDL0IsRUFBQUEsUUFBT0EsUUFBTyxXQUFXLElBQUksRUFBRSxJQUFJO0FBQ25DLEVBQUFBLFFBQU9BLFFBQU8sS0FBSyxJQUFJLEVBQUUsSUFBSTtBQUM3QixFQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsRUFBQUEsUUFBT0EsUUFBTyxJQUFJLElBQUksRUFBRSxJQUFJO0FBQzVCLEVBQUFBLFFBQU9BLFFBQU8sSUFBSSxJQUFJLEVBQUUsSUFBSTtBQUM1QixFQUFBQSxRQUFPQSxRQUFPLEtBQUssSUFBSSxFQUFFLElBQUk7QUFDN0IsRUFBQUEsUUFBT0EsUUFBTyxNQUFNLElBQUksRUFBRSxJQUFJO0FBQzlCLEVBQUFBLFFBQU9BLFFBQU8sR0FBRyxJQUFJLEVBQUUsSUFBSTtBQUMzQixFQUFBQSxRQUFPQSxRQUFPLFFBQVEsSUFBSSxFQUFFLElBQUk7QUFDaEMsRUFBQUEsUUFBT0EsUUFBTyxRQUFRLElBQUksRUFBRSxJQUFJO0FBQ2hDLEVBQUFBLFFBQU9BLFFBQU8sU0FBUyxJQUFJLEVBQUUsSUFBSTtBQUNqQyxFQUFB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LEVBQ3hCLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxTQUFTLE9BQU8sT0FBTztBQUFBLEVBQ2xDLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLEVBQzVCLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLEVBQzFCLENBQUMsVUFBVSxVQUFVLE9BQU8sUUFBUTtBQUFBLEVBQ3BDLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLEVBQzVCLENBQUMsVUFBVSxTQUFTLE9BQU8sT0FBTztBQUFBLEVBQ2xDLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLEVBQzFCLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLEVBQzFCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLEVBQzlCLENBQUMsVUFBVSxVQUFVLE9BQU8sUUFBUTtBQUFBLEVBQ3BDLENBQUMsVUFBVSxZQUFZLE9BQU8sVUFBVTtBQUFBLEVBQ3hDLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLEVBQzVCLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxnQkFBZ0IsT0FBTyxjQUFjO0FBQUEsRUFDaEQsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLFVBQVUsT0FBTyxRQUFRO0FBQUEsRUFDcEMsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDO0FBQUEsRUFDdEIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFNBQVMsT0FBTyxPQUFPO0FBQUEsRUFDbEMsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFlBQVksT0FBTyxVQUFVO0FBQUEsRUFDeEMsQ0FBQyxVQUFVLFNBQVMsT0FBTyxPQUFPO0FBQUEsRUFDbEMsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFVBQVUsT0FBTyxRQUFRO0FBQUEsRUFDcEMsQ0FBQyxVQUFVLFNBQVMsT0FBTyxPQUFPO0FBQUEsRUFDbEMsQ0FBQyxVQUFVLFVBQVUsT0FBTyxRQUFRO0FBQUEsRUFDcEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLFVBQVUsT0FBTyxRQUFRO0FBQUEsRUFDcEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDO0FBQUEsRUFDdEIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLFdBQVcsT0FBTyxTQUFTO0FBQUEsRUFDdEMsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDO0FBQUEsRUFDdEIsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLFNBQVMsT0FBTyxPQUFPO0FBQUEsRUFDbEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLFNBQVMsT0FBTyxPQUFPO0FBQUEsRUFDbEMsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLFVBQVUsT0FBTyxRQUFRO0FBQUEsRUFDcEMsQ0FBQyxVQUFVLFVBQVUsT0FBTyxRQUFRO0FBQUEsRUFDcEMsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDO0FBQUEsRUFDdEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQzlCLENBQUM7QUFDTSxTQUFTLFNBQVMsU0FBUztBQUM5QixNQUFJQztBQUNKLFVBQVFBLE1BQUssZUFBZSxJQUFJLE9BQU8sT0FBTyxRQUFRQSxRQUFPLFNBQVNBLE1BQUssT0FBTztBQUN0RjtBQUNBLElBQU1DLEtBQUk7QUFDSCxJQUFNLG1CQUFtQjtBQUFBLEVBQzVCLENBQUMsR0FBRyxJQUFJLEdBQUcsb0JBQUksSUFBSTtBQUFBLElBQ2ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLEVBQ04sQ0FBQztBQUFBLEVBQ0QsQ0FBQyxH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LE1BQU0sUUFBUSxXQUFXLEdBQUcsSUFBSSxDQUFDO0FBQUEsRUFDL0QsQ0FBQyxhQUFhLEVBQUUsUUFBUSxPQUFPLE1BQU0sU0FBUyxXQUFXLEdBQUcsSUFBSSxDQUFDO0FBQUEsRUFDakUsQ0FBQyxTQUFTLEVBQUUsUUFBUSxJQUFJLE1BQU0sU0FBUyxXQUFXLEdBQUcsTUFBTSxDQUFDO0FBQUEsRUFDNUQsQ0FBQyxlQUFlLEVBQUUsUUFBUSxTQUFTLE1BQU0sU0FBUyxXQUFXLEdBQUcsTUFBTSxDQUFDO0FBQzNFLENBQUM7QUFFTSxJQUFNLCtCQUErQixJQUFJLElBQUk7QUFBQSxFQUNoRDtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0osRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0FBRXJDLElBQU0sd0JBQXdCLG9CQUFJLElBQUk7QUFBQSxFQUNsQyxPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FBQUEsRUFDRixPQUFFO0FB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QUFhO0FBQUEsSUFDYixLQUFLO0FBQUEsRUFDUDtBQUFBO0FBQUEsRUFFQSxrQkFBa0I7QUFBQSxJQUNoQixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSxZQUFZO0FBQUEsSUFDVixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSxjQUFjO0FBQUEsSUFDWixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSxjQUFjO0FBQUEsSUFDWixRQUFRO0FBQUEsSUFDUixhQUNFO0FBQUEsRUFDSjtBQUFBO0FBQUEsRUFFQSxvQ0FBb0M7QUFBQSxJQUNsQyxRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsSUFDYixLQUFLO0FBQUEsRUFDUDtBQUFBO0FBQUEsRUFFQSxnQ0FBZ0M7QUFBQSxJQUM5QixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSxVQUFVO0FBQUEsSUFDUixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSwwQkFBMEI7QUFBQSxJQUN4QixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSwwQkFBMEI7QUFBQSxJQUN4QixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSwwQ0FBMEM7QUFBQSxJQUN4QyxRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSxnQ0FBZ0M7QUFBQSxJQUM5QixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFQSxrQkFBa0I7QUFBQSxJQUNoQixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsSUFDYixLQUFLO0FBQUEsRUFDUDtBQUFBO0FBQUEsRUFFQSxpQ0FBaUM7QUFBQSxJQUMvQixRQUFRO0FBQUEsSUFDUixhQUNFO0FBQUEsSUFDRixLQUFLO0FBQUEsRUFDUDtBQUFBO0FBQUEsRUFFQSx1QkFBdUI7QUFBQSxJQUNyQixRQUFRO0FBQUEsSUFDUixhQUNFO0FBQUEsRUFDSjtBQUFBO0FBQUEsRUFFQSxnQkFBZ0I7QUFBQSxJQUNkLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxJQUNiLEtBQUs7QUFBQSxFQUNQO0FBQUE7QUFBQSxFQUVBLG9CQUFvQjtBQUFBLElBQ2xCLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLGdDQUFnQztBQUFBLElBQzlCLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLGdDQUFnQztBQUFBLElBQzlCLFFBQVE7QUFBQSxJQUNSLGFBQ0U7QUFBQSxFQUNKO0FBQUE7QUFBQSxFQUVBLG1CQUFtQjtBQUFBLElBQ2pCLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLDJDQUEyQztBQUFBLElBQ3pDLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLDJDQUEyQztBQUFBLElBQ3pDLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLHlDQUF5QztBQUFBLElBQ3ZDLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLDRDQUE0QztBQUFBLElBQzFDLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLDRDQUE0QztBQUFBLElBQzFDLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLG9DQUFvQztBQUFBLElBQ2xDLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLG9DQUFvQztBQUFBLElBQ2xDLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLDJEQUEyRDtBQUFBLElBQ3pELFFBQ0U7QUFBQSxJQUNGLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLGVBQWU7QUFBQSxJQUNiLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLHNCQUFzQjtBQUFBLElBQ3BCLFFBQVE7QUFBQSxJQUNSLGFBQ0U7QUFBQSxJQUNGLEtBQUs7QUFBQSxFQUNQO0FBQUE7QUFBQSxFQUVBLHNCQUFzQjtBQUFBLElBQ3BCLFFBQVE7QUFBQSxJQUNSLGFBQ0U7QUFBQSxJQUNGLEtBQUs7QUFBQSxFQUNQO0FBQUE7QUFBQSxFQUVBLCtDQUErQztBQUFBLElBQzdDLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLGdDQUFnQztBQUFBLElBQzlCLFFBQ0U7QUFBQSxJQUNGLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLDJCQUEyQjtBQUFBLElBQ3pCLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLHdCQUF3QjtBQUFBLElBQ3RCLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLDBCQUEwQjtBQUFBLElBQ3hCLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxJQUNiLEtBQUs7QUFBQSxFQUNQO0FBQUE7QUFBQSxFQUVBLDZCQUE2QjtBQUFBLElBQzNCLFFBQVE7QUFBQSxJQUNSLGFBQ0U7QUFBQSxFQUNKO0FBQUE7QUFBQSxFQUVBLHdCQUF3QjtBQUFBLElBQ3RCLFFBQVE7QUFBQSxJQUNSLGFBQ0U7QUFBQSxFQUNKO0FBQUE7QUFBQSxFQUVBLGlEQUFpRDtBQUFBLElBQy9DLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLG9DQUFvQztBQUFBLElBQ2xDLFFBQVE7QUFBQSxJQUNSLGFBQ0U7QUFBQSxFQUNKO0FBQUE7QUFBQSxFQUVBLDZDQUE2QztBQUFBLElBQzNDLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLHlDQUF5QztBQUFBLElBQ3ZDLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLHlCQUF5QjtBQUFBLElBQ3ZCLFFBQVE7QUFBQSxJQUNSLGFBQ0U7QUFBQSxFQUNKO0FBQUE7QUFBQSxFQUVBLHdDQUF3QztBQUFBLElBQ3RDLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxFQUNmO0FBQUE7QUFBQSxFQUVBLHdCQUF3QjtBQUFBLElBQ3RCLFFBQVE7QUFBQSxJQUNSLGFBQ0U7QUFBQSxFQUNKO0FBQUE7QUFBQSxFQUVBLGdDQUFnQztBQUFBLElBQzlCLFFBQVE7QUFBQSxJQUNSLGFBQ0U7QUFBQSxFQUNKO0FBQ0Y7OztBQzlVQSxJQUFNLE9BQU87QUFFYixJQUFNLGdCQUFnQjtBQUN0QixJQUFNLFlBQVk7QUFDbEIsSUFBTSxZQUFZO0FBRWxCLElBQU0sYUFBYSxFQUFDLEdBQUcsTUFBTSxHQUFHLE9BQU8sR0FBRyxLQUFJO0FBRzlDLElBQU0sZUFBZSxDQUFDO0FBWWYsU0FBUyxTQUFTLE9BQU8sU0FBUztBQUN2QyxRQUFNLFdBQVcsV0FBVztBQUM1QixRQUFNLFVBQVUsU0FBUztBQUN6QixRQUFNLE9BQU8saUJBQWlCLFFBQVEsUUFBUSxJQUFJLE1BQU0sS0FBSztBQUM3RCxRQUFNLGdCQUFnQixTQUFTLFdBQVcsZ0JBQWdCRTtBQUMxRCxRQUFNQyxZQUFXLE9BQU8sSUFBSTtBQUM1QixRQUFNLGFBQWEsY0FBY0EsV0FBVTtBQUFBLElBQ3pDLHdCQUF3QjtBQUFBO0FBQUEsSUFFeEIsY0FBYyxTQUFTLFVBQVUsa0JBQWtCO0FBQUEsSUFDbkQsa0JBQWtCO0FBQUEsRUFDcEIsQ0FBQztBQUdEO0FBQUE7QUFBQSxJQUNFLFdBQVcsWUFBWTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxPQUFPLFNBQVM7QUFBQSxNQUNoQixTQUFTLFNBQVM7QUFBQSxJQUNwQixDQUFDO0FBQUE7QUFXSCxXQUFTLGdCQUFnQixPQUFPO0FBQzlCLFVBQU0sT0FBTyxNQUFNO0FBQ25CLFVBQU0sT0FBT0MsV0FBVSxJQUFJO0FBQzNCLFVBQU0sVUFBVSxTQUFTLElBQUk7QUFDN0IsVUFBTSxTQUFTLFlBQVksUUFBUSxZQUFZLFNBQVksT0FBTztBQUNsRSxVQUFNLFFBQVEsT0FBTyxXQUFXLFdBQVcsU0FBUyxTQUFTLElBQUk7QUFFakUsUUFBSSxPQUFPO0FBQ1QsWUFBTSxPQUFPLE9BQU8sSUFBSTtBQUN4QixNQUFBQyxJQUFPLE1BQU0sb0NBQW9DO0FBRWpELFlBQU0sVUFBVSxJQUFJLGFBQWEsT0FBTyxLQUFLLE1BQU0sR0FBRztBQUFBLFFBQ3BELE9BQU87QUFBQSxVQUNMLE9BQU87QUFBQSxZQUNMLE1BQU0sTUFBTTtBQUFBLFlBQ1osUUFBUSxNQUFNO0FBQUEsWUFDZCxRQUFRLE1BQU07QUFBQSxVQUNoQjtBQUFBLFVBQ0EsS0FBSztBQUFBLFlBQ0gsTUFBTSxNQUFNO0FBQUEsWUFDWixRQUFRLE1BQU07QUFBQSxZQUNkLFFBQVEsTUFBTTtBQUFBLFVBQ2hCO0FBQUEsUUFDRjtBQUFBLFFBQ0EsUUFBUTtBQUFBLFFBQ1IsUUFBUTtBQUFBLE1BQ1YsQ0FBQztBQUVELFVBQUksS0FBSyxNQUFNO0FBQ2IsZ0JBQVEsT0FBTyxLQUFLO0FBQ3BCLGdCQUFRLE9BQU8sS0FBSyxPQUFPLE1BQU0sUUFBUTtBQUFBLE1BQzNDO0FBRUEsY0FBUSxRQUFRLFdBQVcsS0FBSztBQUNoQyxjQUFRLE9BQU8sT0FBTyxLQUFLLFdBQVc7QUFDdEMsY0FBUSxNQUFNLEtBQUssUUFBUSxRQUFRLFNBQVksT0FBTztBQUV0RCxNQUFBQSxJQUFPLFNBQVMseURBQXlEO0FBQ3pFLGNBQVEsT0FBTztBQUFBLElBQ2pCO0FBVUEsYUFBUyxPQUFPQyxRQUFPO0FBQ3JCLGFBQU9BLE9BQU0sUUFBUSxXQUFXLE9BQU8sRUFBRSxRQUFRLFdBQVcsT0FBTztBQWNuRSxlQUFTLFFBQVFDLElBQUcsSUFBSUMsS0FBSTtBQUMxQixjQUFNLFVBQ0hBLE1BQUssT0FBTyxTQUFTQSxLQUFJLEVBQUUsSUFBSSxNQUFNLE9BQU8sTUFBTSxLQUFLO0FBQzFELGNBQU0sT0FBT0wsVUFBUyxPQUFPLE1BQU0sY0FBYyxNQUFNO0FBQ3ZELGVBQU8sbUJBQW1CLElBQUk7QUFBQSxNQUNoQztBQVFBLGVBQVMsVUFBVTtBQUNqQixlQUFPLHVCQUF1QkEsVUFBUyxXQUFXLE1BQU0sV0FBVyxDQUFDO0FBQUEsTUFDdEU7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNGO0FBUUEsU0FBU0MsV0FBVSxPQUFPO0FBRXhCO0FBQUE7QUFBQSxJQUFpQyxNQUFNLFFBQVEsZUFBZSxXQUFXO0FBQUE7QUFDM0U7QUFRQSxTQUFTLFlBQVksSUFBSTtBQUN2QixTQUFPLEdBQUcsT0FBTyxDQUFDLEVBQUUsWUFBWTtBQUNsQztBQVFBLFNBQVMsbUJBQW1CLE1BQU07QUFDaEMsU0FBTyxTQUFTLE1BQU0sVUFBVTtBQUNsQztBQVFBLFNBQVMsdUJBQXVCLFVBQVU7QUFDeEMsU0FBTyxPQUFPLFNBQVMsU0FBUyxFQUFFLEVBQUUsWUFBWTtBQUNsRDs7O0FDdkxPLElBQU0sbUJBQW1CO0FBQUEsRUFDOUI7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0Y7OztBQ3VCQSxJQUFNSyxPQUFNLENBQUMsRUFBRTtBQWNSLFNBQVMsT0FBT0MsTUFBSyxTQUFTO0FBQ25DLFFBQU0sV0FBVyxXQUFXLENBQUM7QUE4QjdCLFdBQVNDLEtBQUksVUFBVSxZQUFZO0FBRWpDLFFBQUksS0FBS0EsS0FBSTtBQUNiLFVBQU0sV0FBV0EsS0FBSTtBQUVyQixRQUFJLFNBQVNGLEtBQUksS0FBSyxPQUFPQyxJQUFHLEdBQUc7QUFFakMsWUFBTSxLQUFLLE9BQU8sTUFBTUEsSUFBRyxDQUFDO0FBRTVCLFdBQUtELEtBQUksS0FBSyxVQUFVLEVBQUUsSUFBSSxTQUFTLEVBQUUsSUFBSUUsS0FBSTtBQUFBLElBQ25EO0FBRUEsUUFBSSxJQUFJO0FBQ04sYUFBTyxHQUFHLEtBQUssTUFBTSxPQUFPLEdBQUcsVUFBVTtBQUFBLElBQzNDO0FBQUEsRUFDRjtBQUVBLEVBQUFBLEtBQUksV0FBVyxTQUFTLFlBQVksQ0FBQztBQUNyQyxFQUFBQSxLQUFJLFVBQVUsU0FBUztBQUN2QixFQUFBQSxLQUFJLFVBQVUsU0FBUztBQUd2QixTQUFPQTtBQUNUOzs7QUN0R0EsSUFBTSxxQkFBcUI7QUFDM0IsSUFBTSxzQkFBc0I7QUFDNUIsSUFBTTtBQUFBO0FBQUEsRUFFSjtBQUFBO0FBQ0YsSUFBTSxtQkFBbUI7QUFHekIsSUFBTSxxQkFBcUIsb0JBQUksUUFBUTtBQVNoQyxTQUFTLEtBQUssT0FBTyxTQUFTO0FBQ25DLFVBQVEsTUFBTTtBQUFBLElBQ1osUUFBUSxTQUNKLDZCQUE2QixRQUFRLE1BQU0sSUFDM0M7QUFBQSxJQUNKO0FBQUEsRUFDRjtBQUVBLE1BQUksUUFBUSxVQUFVLFFBQVEsWUFBWTtBQUN4QyxXQUFPO0FBQUEsRUFDVDtBQUVBLFNBQ0UsTUFFRyxRQUFRLHFCQUFxQixTQUFTLEVBR3RDLFFBQVEsd0JBQXdCLEtBQUs7QUFRMUMsV0FBUyxVQUFVLE1BQU1DLFFBQU9DLE1BQUs7QUFDbkMsV0FBTyxRQUFRO0FBQUEsT0FDWixLQUFLLFdBQVcsQ0FBQyxJQUFJLFNBQVUsT0FDOUIsS0FBSyxXQUFXLENBQUMsSUFDakIsUUFDQTtBQUFBLE1BQ0ZBLEtBQUksV0FBV0QsU0FBUSxDQUFDO0FBQUEsTUFDeEI7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQU9BLFdBQVMsTUFBTSxXQUFXQSxRQUFPQyxNQUFLO0FBQ3BDLFdBQU8sUUFBUTtBQUFBLE1BQ2IsVUFBVSxXQUFXLENBQUM7QUFBQSxNQUN0QkEsS0FBSSxXQUFXRCxTQUFRLENBQUM7QUFBQSxNQUN4QjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0Y7QUFVQSxTQUFTLDZCQUE2QixRQUFRO0FBQzVDLE1BQUksU0FBUyxtQkFBbUIsSUFBSSxNQUFNO0FBRTFDLE1BQUksQ0FBQyxRQUFRO0FBQ1gsYUFBUyx1QkFBdUIsTUFBTTtBQUN0Qyx1QkFBbUIsSUFBSSxRQUFRLE1BQU07QUFBQSxFQUN2QztBQUVBLFNBQU87QUFDVDtBQU1BLFNBQVMsdUJBQXVCLFFBQVE7QUFFdEMsUUFBTSxTQUFTLENBQUM7QUFDaEIsTUFBSUEsU0FBUTtBQUVaLFNBQU8sRUFBRUEsU0FBUSxPQUFPLFFBQVE7QUFDOUIsV0FBTyxLQUFLLE9BQU9BLE1BQUssRUFBRSxRQUFRLGtCQUFrQixNQUFNLENBQUM7QUFBQSxFQUM3RDtBQUVBLFNBQU8sSUFBSSxPQUFPLFFBQVEsT0FBTyxLQUFLLEdBQUcsSUFBSSxLQUFLLEdBQUc7QUFDdkQ7OztBQ3BIQSxJQUFNLG1CQUFtQjtBQVVsQixTQUFTLGNBQWMsTUFBTUUsT0FBTSxNQUFNO0FBQzlDLFFBQU0sUUFBUSxRQUFRLEtBQUssU0FBUyxFQUFFLEVBQUUsWUFBWTtBQUNwRCxTQUFPLFFBQVFBLFNBQVEsQ0FBQyxpQkFBaUIsS0FBSyxPQUFPLGFBQWFBLEtBQUksQ0FBQyxJQUNuRSxRQUNBLFFBQVE7QUFDZDs7O0FDZkEsSUFBTSxlQUFlO0FBVWQsU0FBUyxVQUFVLE1BQU1DLE9BQU0sTUFBTTtBQUMxQyxRQUFNLFFBQVEsT0FBTyxPQUFPLElBQUk7QUFDaEMsU0FBTyxRQUFRQSxTQUFRLENBQUMsYUFBYSxLQUFLLE9BQU8sYUFBYUEsS0FBSSxDQUFDLElBQy9ELFFBQ0EsUUFBUTtBQUNkOzs7QUNWTyxJQUFNLDBCQUEwQjtBQUFBLEVBQ3JDO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0Y7OztBQzNHTyxJQUFNLHlCQUF5QjtBQUFBLEVBQ3BDLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLEtBQUs7QUFBQSxFQUNMLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFNBQVM7QUFBQSxFQUNULE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLFNBQVM7QUFBQSxFQUNULElBQUk7QUFBQSxFQUNKLEtBQUs7QUFBQSxFQUNMLE9BQU87QUFBQSxFQUNQLEtBQUs7QUFBQSxFQUNMLFNBQVM7QUFBQSxFQUNULEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFNBQVM7QUFBQSxFQUNULE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLFNBQVM7QUFBQSxFQUNULElBQUk7QUFBQSxFQUNKLEtBQUs7QUFBQSxFQUNMLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLEtBQUs7QUFBQSxFQUNMLFNBQVM7QUFBQSxFQUNULEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLE9BQU87QUFBQSxFQUNQLFVBQVU7QUFBQSxFQUNWLE9BQU87QUFBQSxFQUNQLEtBQUs7QUFBQSxFQUNMLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFNBQVM7QUFBQSxFQUNULE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLElBQUk7QUFBQSxFQUNKLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLElBQUk7QUFBQSxFQUNKLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLFFBQVE7QUFBQSxFQUNSLEtBQUs7QUFBQSxFQUNMLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLElBQUk7QUFBQSxFQUNKLE9BQU87QUFBQSxFQUNQLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE9BQU87QUFB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Q0FBQztBQUFBLElBQzNHO0FBQ0EsUUFBSSxLQUFLLFNBQVM7QUFDakIsWUFBTSw4QkFBOEIsSUFBSTtBQUFBLFNBQ3BDO0FBQ0osWUFBTSw2QkFBNkIsSUFBSTtBQUN2QyxXQUFLLGtCQUFrQjtBQUFBLElBQ3hCO0FBQUEsRUFDRDtBQUFBLEVBRUEsb0JBQTBCO0FBQ3pCLFNBQUssSUFBSSxVQUFVLGtCQUFrQixDQUFDLFNBQXdCO0FBQzdELFVBQUksS0FBSyxnQkFBZ0IsaUNBQWdCLEtBQUssS0FBSyxRQUFRLE1BQU07QUFDaEUsYUFBSyxLQUFLLFlBQVksU0FBUyxJQUFJO0FBQUEsSUFDckMsQ0FBQztBQUFBLEVBQ0Y7QUFDRDsiLAogICJuYW1lcyI6IFsicm9vdCIsICJmYWN0b3J5IiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImRlZmluZSIsICJhbWQiLCAic2VsZiIsICJfX3dlYnBhY2tfcmVxdWlyZV9fIiwgImRlZmluaXRpb24iLCAia2V5IiwgIm8iLCAiT2JqZWN0IiwgImRlZmluZVByb3BlcnR5IiwgImVudW1lcmFibGUiLCAiZ2V0IiwgIm9iaiIsICJwcm9wIiwgInByb3RvdHlwZSIsICJoYXNPd25Qcm9wZXJ0eSIsICJjYWxsIiwgIlN5bWJvbCIsICJ0b1N0cmluZ1RhZyIsICJ2YWx1ZSIsICJlIiwgInQiLCAiRSIsICJldmVudExpc3RlbmVyIiwgIm1ldGhvZCIsICJlbGVtZW50cyIsICJldmVudHMiLCAiZm4iLCAib3B0aW9ucyIsICJIVE1MQ29sbGVjdGlvbiIsICJOb2RlTGlzdCIsICJBcnJheSIsICJmcm9tIiwgImlzQXJyYXkiLCAiZWwiLCAiZXYiLCAiY2FwdHVyZSIsICJzbGljZSIsICJhcmd1bWVudHMiLCAicCIsICJyIiwgImEiLCAibCIsICJzIiwgImkiLCAiYyIsICJvbiIsICJiaW5kIiwgIm9mZiIsICJjcmVhdGVFbGVtZW50RnJvbVN0cmluZyIsICJodG1sIiwgImRpdiIsICJkb2N1bWVudCIsICJjcmVhdGVFbGVtZW50IiwgImlubmVySFRNTCIsICJ0cmltIiwgImZpcnN0RWxlbWVudENoaWxkIiwgImNyZWF0ZUZyb21UZW1wbGF0ZSIsICJzdHIiLCAicmVtb3ZlQXR0cmlidXRlIiwgIm5hbWUiLCAiZ2V0QXR0cmlidXRlIiwgInJlc29sdmUiLCAiZWxlbWVudCIsICJiYXNlIiwgImNvbiIsICJzdWJ0cmVlIiwgImNoaWxkIiwgImNoaWxkcmVuIiwgImFyciIsICJzdWIiLCAicHVzaCIsICJrZXlzIiwgImxlbmd0aCIsICJldmVudFBhdGgiLCAiZXZ0IiwgInBhdGgiLCAiY29tcG9zZWRQYXRoIiwgInRhcmdldCIsICJwYXJlbnRFbGVtZW50IiwgIndpbmRvdyIsICJyZXNvbHZlRWxlbWVudCIsICJ2YWwiLCAiRWxlbWVudCIsICJzcGxpdCIsICJyZWR1Y2UiLCAicHYiLCAiY3YiLCAiY2kiLCAicXVlcnlTZWxlY3RvciIsICJzaGFkb3dSb290IiwgImFkanVzdGFibGVJbnB1dE51bWJlcnMiLCAibWFwcGVyIiwgInYiLCAiaGFuZGxlU2Nyb2xsIiwgImluYyIsICJOdW1iZXIiLCAic2hpZnRLZXkiLCAiY3RybEtleSIsICJkZWx0YVkiLCAiaW5kZXgiLCAic2VsZWN0aW9uU3RhcnQiLCAicmVwbGFjZSIsICJmb2N1cyIsICJzZXRTZWxlY3Rpb25SYW5nZSIsICJwcmV2ZW50RGVmYXVsdCIsICJkaXNwYXRjaEV2ZW50IiwgIkV2ZW50IiwgInBhc3NpdmUiLCAibWluIiwgIm1heCIsICJmbG9vciIsICJyb3VuZCIsICJNYXRoIiwgImhzdlRvUmdiIiwgImgiLCAiZiIsICJxIiwgIm1vZCIsICJoc3ZUb0hzbCIsICJyZ2JUb0hzdiIsICJnIiwgImIiLCAibWluVmFsIiwgIm1heFZhbCIsICJkZWx0YSIsICJkciIsICJkZyIsICJkYiIsICJjbXlrVG9Ic3YiLCAibSIsICJ5IiwgImsiLCAiaHNsVG9Ic3YiLCAibnMiLCAiaXNOYU4iLCAiaGV4VG9Ic3YiLCAiaGV4IiwgIm1hdGNoIiwgIm1hcCIsICJwYXJzZUludCIsICJwYXJzZVRvSFNWQSIsICJ0b0xvd2VyQ2FzZSIsICJjdHgiLCAiZ2V0Q29udGV4dCIsICJmaWxsU3R5bGUiLCAicmVnZXgiLCAiY215ayIsICJyZ2JhIiwgImhzbGEiLCAiaHN2YSIsICJoZXhhIiwgIm51bWFyaXplIiwgImFycmF5IiwgInRlc3QiLCAidW5kZWZpbmVkIiwgImludmFsaWQiLCAidHlwZSIsICJleGVjIiwgInZhbHVlcyIsICJqb2luIiwgInJhdyIsICJzdWJzdHJpbmciLCAiSFNWYUNvbG9yIiwgIm9yaWdpbmFsIiwgIm5leHQiLCAicHJlY2lzaW9uIiwgInRvRml4ZWQiLCAidGhhdCIsICJ0b0hTVkEiLCAidG9TdHJpbmciLCAidG9IU0xBIiwgInRvUkdCQSIsICJ0b0NNWUsiLCAicmdiIiwgInRvSEVYQSIsICJwYWRTdGFydCIsICJhbHBoYSIsICJ0b1VwcGVyQ2FzZSIsICJjbG9uZSIsICJjbGFtcCIsICJNb3ZlYWJsZSIsICJvcHQiLCAiYXNzaWduIiwgImxvY2siLCAib25jaGFuZ2UiLCAib25zdG9wIiwgIl9rZXlib2FyZCIsICJhY3RpdmVFbGVtZW50IiwgIndyYXBwZXIiLCAidXAiLCAicmlnaHQiLCAiZG93biIsICJsZWZ0IiwgInhtIiwgInltIiwgInVwZGF0ZSIsICJjYWNoZSIsICJ4IiwgInN0YXJ0c1dpdGgiLCAiX3RhcHN0YXJ0IiwgIl8iLCAiX3RhcHN0b3AiLCAiX3RhcG1vdmUiLCAiY2FuY2VsYWJsZSIsICJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCAidG91Y2giLCAidG91Y2hlcyIsICJjbGllbnRYIiwgImNsaWVudFkiLCAid2lkdGgiLCAidG9wIiwgImhlaWdodCIsICJzdHlsZSIsICJvZmZzZXRXaWR0aCIsICJvZmZzZXRIZWlnaHQiLCAiY3giLCAiY3kiLCAidHJpZ2dlciIsICJkZXN0cm95IiwgIlNlbGVjdGFibGUiLCAiY2xhc3NOYW1lIiwgIm9uVGFwIiwgImZvckVhY2giLCAiY2xhc3NMaXN0IiwgInN0b3BQcm9wYWdhdGlvbiIsICJJIiwgInZhcmlhbnRGbGlwT3JkZXIiLCAic3RhcnQiLCAibWlkZGxlIiwgImVuZCIsICJwb3NpdGlvbkZsaXBPcmRlciIsICJib3R0b20iLCAicG9zaXRpb24iLCAibWFyZ2luIiwgInBhZGRpbmciLCAiUSIsICJuIiwgIkhUTUxFbGVtZW50IiwgInJlZmVyZW5jZSIsICJwb3BwZXIiLCAiRXJyb3IiLCAiY29udGFpbmVyIiwgImFycm93IiwgIlYiLCAiQyIsICJNIiwgImRvY3VtZW50RWxlbWVudCIsICJGIiwgIksiLCAiUCIsICJSIiwgInZzIiwgInZtIiwgInZlIiwgImhzIiwgImhtIiwgImhlIiwgIiQiLCAiTCIsICJqIiwgIkIiLCAiTyIsICJkIiwgInUiLCAieiIsICJUIiwgIkgiLCAidyIsICJTIiwgIkQiLCAiRyIsICJQaWNrciIsICJjb25zdHJ1Y3RvciIsICJfaW5pdGlhbGl6aW5nQWN0aXZlIiwgIl9yZWNhbGMiLCAiX25hbm9wb3AiLCAiX3Jvb3QiLCAiX2NvbG9yIiwgIl9sYXN0Q29sb3IiLCAiX3N3YXRjaENvbG9ycyIsICJfc2V0dXBBbmltYXRpb25GcmFtZSIsICJfZXZlbnRMaXN0ZW5lciIsICJpbml0IiwgInNhdmUiLCAiaGlkZSIsICJzaG93IiwgImNsZWFyIiwgImNoYW5nZSIsICJjaGFuZ2VzdG9wIiwgImNhbmNlbCIsICJzd2F0Y2hzZWxlY3QiLCAidGhpcyIsICJERUZBVUxUX09QVElPTlMiLCAic3dhdGNoZXMiLCAiY29tcG9uZW50cyIsICJ0aGVtZSIsICJzbGlkZXJzIiwgImxvY2tPcGFjaXR5IiwgImluY2x1ZGVzIiwgImludGVyYWN0aW9uIiwgInByZXZpZXciLCAib3BhY2l0eSIsICJodWUiLCAicGFsZXR0ZSIsICJfcHJlQnVpbGQiLCAiX2J1aWxkQ29tcG9uZW50cyIsICJfYmluZEV2ZW50cyIsICJfZmluYWxCdWlsZCIsICJjb2xvciIsICJhZGRTd2F0Y2giLCAiYnV0dG9uIiwgImFwcCIsICJjcmVhdGVQb3BwZXIiLCAic2V0QXR0cmlidXRlIiwgIl90IiwgInJlcXVlc3RBbmltYXRpb25GcmFtZSIsICJjYiIsICJzZXRDb2xvciIsICJkZWZhdWx0IiwgIl9yZVBvc2l0aW9uaW5nUGlja2VyIiwgImRlZmF1bHRSZXByZXNlbnRhdGlvbiIsICJfcmVwcmVzZW50YXRpb24iLCAic2V0Q29sb3JSZXByZXNlbnRhdGlvbiIsICJzaG93QWx3YXlzIiwgIl9lbWl0IiwgImluc3RhbmNlIiwgInVzZUFzQnV0dG9uIiwgImlubGluZSIsICJhcHBDbGFzcyIsICJoaWRkZW4iLCAiaW5wdXQiLCAiaW50IiwgImZpbmQiLCAiYWRkIiwgImNvbnRhaW5zIiwgImFwcGVuZENoaWxkIiwgInJlbW92ZUNoaWxkIiwgInBhcmVudCIsICJuZXh0U2libGluZyIsICJpbnNlcnRCZWZvcmUiLCAicmVtb3ZlIiwgInBhcmVudE5vZGUiLCAicmVwbGFjZUNoaWxkIiwgImRpc2FibGVkIiwgImRpc2FibGUiLCAiY29tcGFyaXNvbiIsICJ0cmFuc2l0aW9uIiwgImxhc3RDb2xvciIsICJpbnN0IiwgImNzIiwgInJlcGVhdCIsICJzbyIsICJzaCIsICJnZXRDb2xvciIsICJwaWNrZXIiLCAiY3VycmVudENvbG9yIiwgIl91cGRhdGVPdXRwdXQiLCAiY3NzUkdCYVN0cmluZyIsICJiYWNrZ3JvdW5kIiwgInNldFByb3BlcnR5IiwgInNsaWRlciIsICJiYWNrZ3JvdW5kQ29sb3IiLCAic2VsZWN0YWJsZSIsICJfY29tcG9uZW50cyIsICJldmVudEJpbmRpbmdzIiwgIl9jbGVhckNvbG9yIiwgInNldEhTVkEiLCAiYXBwbHlDb2xvciIsICJyZXN1bHQiLCAic3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uIiwgImNrIiwgImNsb3NlV2l0aEtleSIsICJpc09wZW4iLCAiY29kZSIsICJzb21lIiwgImFkanVzdGFibGVOdW1iZXJzIiwgInJhbmdlcyIsICJzdGVwIiwgInJhbmdlIiwgImdldENvbG9yUmVwcmVzZW50YXRpb24iLCAibnYiLCAidG9QcmVjaXNpb24iLCAiYXV0b1JlcG9zaXRpb24iLCAidGltZW91dCIsICJjbG9zZU9uU2Nyb2xsIiwgInNldFRpbWVvdXQiLCAicnMiLCAiY2xlYXJUaW1lb3V0IiwgIl9ldmVudEJpbmRpbmdzIiwgImJvZHkiLCAiZWIiLCAiaW5uZXJIZWlnaHQiLCAiaW5uZXJXaWR0aCIsICJldmVudFNvdXJjZSIsICJvdXRwdXRQcmVjaXNpb24iLCAic2lsZW50IiwgIl9wYXJzZUxvY2FsQ29sb3IiLCAiYWxwaGFNYWtlc0FDaGFuZ2UiLCAiaTE4biIsICJJMThOX0RFRkFVTFRTIiwgImV2ZW50IiwgImFyZ3MiLCAiY2FsbEJhY2tzIiwgImluZGV4T2YiLCAic3BsaWNlIiwgInJlbW92ZVN3YXRjaCIsICJzd2F0Y2hDb2xvciIsICJjYW5jZWxBbmltYXRpb25GcmFtZSIsICJkZXN0cm95QW5kUmVtb3ZlIiwgInJlY2FsYyIsICJzdHJpbmciLCAidXR5cGUiLCAiY2xpY2siLCAiZ2V0U2VsZWN0ZWRDb2xvciIsICJnZXRSb290IiwgImVuYWJsZSIsICJzdGF0aWMiLCAiVkVSU0lPTiIsICJtb2R1bGUiLCAiY29yZSIsICJpdCIsICJlIiwgImRvY3VtZW50IiwgImlzIiwgIlMiLCAiZiIsICJPIiwgIlAiLCAia2V5IiwgImEiLCAiYiIsICJjIiwgInNvdXJjZSIsICJleHBvcnRzIiwgIm93biIsICJwb3MiLCAicyIsICJpIiwgImwiLCAiY29kZVBvaW50QXQiLCAiaW5kZXgiLCAiZnJvbUNvZGVQb2ludCIsICJ4IiwgInJvb3QiLCAicGFyc2UiLCAidGV4dCIsICJ0b2tlbiIsICJjb21tZW50IiwgInUiLCAicCIsICJidWZmZXIiLCAic3RyaW5naWZ5IiwgInN0YWNrIiwgInYiLCAidmFsdWUiLCAibGlzdCIsICJKU09ONSIsICJpbXBvcnRfb2JzaWRpYW4iLCAic2V0dGluZ3MiLCAiX2EiLCAiaW5kZXgiLCAidCIsICJlIiwgInMiLCAiaSIsICJhIiwgInIiLCAibiIsICJ1IiwgImQiLCAibSIsICJiIiwgInAiLCAiYyIsICJvIiwgIkEiLCAiaCIsICJsIiwgInRleHQiLCAidmFsdWUiLCAiZSIsICJfYSIsICJyZXJlbmRlciIsICJQaWNrciIsICJpIiwgImJvZHkiLCAiX2EiLCAiaW1wb3J0X29ic2lkaWFuIiwgImltcG9ydF9vYnNpZGlhbiIsICJpbXBvcnRfb2JzaWRpYW4iLCAiaSIsICJpbXBvcnRfb2JzaWRpYW4iLCAiaW1wb3J0X29ic2lkaWFuIiwgIl9hIiwgImUiLCAiaW1wb3J0X29ic2lkaWFuIiwgImNoZWNrcyIsICJpbmRleCIsICJhbGwiLCAia2V5IiwgImQiLCAiaXMiLCAiaW5kZXgiLCAib2siLCAiaW5kZXgiLCAiaW5kZXgiLCAia2V5IiwgIl8iLCAiXyIsICJfIiwgImh0bWwiLCAic3ZnIiwgInBhcnNlIiwgImluZGV4IiwgInBhcnNlIiwgInN0cmluZ2lmeSIsICJvd24iLCAiaCIsICJpbmRleCIsICJrZXkiLCAicGFyc2UiLCAidmFsdWUiLCAiaCIsICJodG1sIiwgInMiLCAic3ZnIiwgImluZGV4IiwgInBvaW50IiwgIm93biIsICJzdmciLCAiaHRtbCIsICJvayIsICJpbmRleCIsICJzIiwgImgiLCAicG9zaXRpb24iLCAibG9jYXRpb24iLCAia2V5IiwgIm9wZW5pbmciLCAiY2xvc2luZyIsICJwb2ludCIsICJDT0RFX1BPSU5UUyIsICJFUlIiLCAiaSIsICJUb2tlblR5cGUiLCAiaSIsICJjIiwgImMiLCAiX2EiLCAiQ2hhckNvZGVzIiwgIkJpblRyaWVGbGFncyIsICJFbnRpdHlEZWNvZGVyU3RhdGUiLCAiRGVjb2RpbmdNb2RlIiwgImVycm9ycyIsICJiYXNlIiwgIl9hIiwgIk5TIiwgIkFUVFJTIiwgIkRPQ1VNRU5UX01PREUiLCAiVEFHX05BTUVTIiwgIlRBR19JRCIsICJfYSIsICIkIiwgIlN0YXRlIiwgImlzQXNjaWlBbHBoYU51bWVyaWMiLCAiX2EiLCAiaSIsICJjdCIsICJsb2NhdGlvbiIsICJkb2N1bWVudCIsICJlbGVtZW50IiwgImkiLCAiRW50cnlUeXBlIiwgImkiLCAiZWxlbWVudCIsICJlbnRyeSIsICJkb2N1bWVudCIsICJ0ZXh0IiwgImoiLCAiZWxlbWVudCIsICJsb2NhdGlvbiIsICJpIiwgIkluc2VydGlvbk1vZGUiLCAiZG9jdW1lbnQiLCAiaHRtbCIsICJfYSIsICJlbGVtZW50IiwgImxvY2F0aW9uIiwgInNpYmxpbmdzIiwgImkiLCAicCIsICJpbmRleCIsICJjIiwgInBhcnNlIiwgImh0bWwiLCAicG9zaXRpb24iLCAicG9pbnQiLCAiaW5kZXgiLCAiZXh0bmFtZSIsICJpbmRleCIsICJub3JtYWxpemUiLCAiaW5kZXgiLCAiaW5kZXgiLCAiZmllbGQiLCAiYmFzZW5hbWUiLCAiZGlybmFtZSIsICJhc3NlcnRQYXRoIiwgImV4dG5hbWUiLCAicGFyc2UiLCAiZG9jdW1lbnQiLCAiY2FtZWxjYXNlIiwgIm9rIiwgInZhbHVlIiwgIl8iLCAiJDIiLCAib3duIiwgImtleSIsICJvbmUiLCAiaW5kZXgiLCAiYWxsIiwgIm5leHQiLCAibmV4dCIsICJvd24iLCAibmV4dCIsICJuZXh0IiwgImluZGV4IiwgImVtcHR5IiwgImluY3JlbWVudCIsICJpbmRleCIsICJzaWJsaW5ncyIsICJuZXh0IiwgIm93biIsICJpbmRleCIsICJkdCIsICJodG1sIiwgInAiLCAiXyIsICJpbmRleCIsICJuZXh0IiwgImJvZHkiLCAiaHRtbCIsICJ0Ym9keSIsICJoZWFkIiwgImNoaWxkIiwgImluZGV4IiwgImVsZW1lbnQiLCAiaW5kZXgiLCAic3ZnIiwgImtleSIsICJ4IiwgInkiLCAic3RyaW5naWZ5IiwgIl8iLCAiaW5kZXgiLCAiZWxlbWVudCIsICJlbXB0eU9wdGlvbnMiLCAiZW1wdHlDaGlsZHJlbiIsICJvbmUiLCAiYWxsIiwgInN2ZyIsICJodG1sIiwgImluZGV4IiwgImltcG9ydF9vYnNpZGlhbiIsICJfYSIsICJfYiIsICJfYyIsICJzIiwgIl9hIiwgInRleHQiLCAiZWxlbWVudCIsICJfYSIsICJfIiwgImtleSIsICJ0ZXh0IiwgImZvbGQiLCAiaW5kZXgiLCAicmVzdWx0IiwgIl9hIiwgImNvZGVTZWN0aW9uIiwgIl9hIiwgIl8iLCAiZSIsICJfYSIsICJwb3NpdGlvbiIsICJyZW1vdmVGb2xkTGFuZ3VhZ2VzIiwgImxhbmciLCAiZW1wdHkiLCAicGx1Z2luIiwgImZvbGRTdGFydCIsICJmb2xkRW5kIiwgImkiLCAiY29udmVydENvbW1lbnRMaW5rcyIsICJ0ZXh0IiwgInN0eWxlIiwgImVsZW1lbnQiLCAia2V5IiwgIl9hIl0KfQo= diff --git a/src/ApplyStyling.ts b/src/ApplyStyling.ts index 8b51928..999b4f5 100644 --- a/src/ApplyStyling.ts +++ b/src/ApplyStyling.ts @@ -130,9 +130,9 @@ function styleThemeSettings (themeSettings: CodeStylerThemeSettings, currentThem } ${THEME_STYLES?.[currentTheme]?.border?` .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container { - --code-styler-header-border:`+ //@ts-expect-error Does Exist + --code-styler-header-border:`+ THEME_STYLES[currentTheme].border.style+`; - --header-separator-width-padding: calc(var(--header-separator-width) - `+ //@ts-expect-error Does Exist + --header-separator-width-padding: calc(var(--header-separator-width) - `+ THEME_STYLES[currentTheme].border.size+`px); --folded-bottom-border: var(--code-styler-header-border); } @@ -161,7 +161,7 @@ function styleLanguageColours (themeSettings: CodeStylerThemeSettings, redirectL if (THEME_STYLES?.[currentTheme]?.border) { result += ` .markdown-source-view :not(pre.code-styler-pre) > .code-styler-header-container.language-${languageName} { - --language-border-width: ${ //@ts-expect-error Does exist + --language-border-width: ${ themeSettings.advanced.languageBorderColour?themeSettings.advanced.languageBorderWidth+THEME_STYLES[currentTheme].border.size:0}px; }`; } diff --git a/src/EditingView.ts b/src/EditingView.ts index 177a359..13e654f 100644 --- a/src/EditingView.ts +++ b/src/EditingView.ts @@ -4,7 +4,7 @@ import { Extension, EditorState, StateField, StateEffect, StateEffectType, Range import { syntaxTree, tokenClassNodeProp } from "@codemirror/language"; import { SyntaxNodeRef } from "@lezer/common"; -import { CodeStylerSettings, CodeStylerThemeSettings, SPECIAL_LANGUAGES } from "./Settings"; +import { CodeStylerSettings, CodeStylerThemeSettings, SPECIAL_LANGUAGES, EXECUTE_CODE_SUPPORTED_LANGUAGES } from "./Settings"; import { CodeblockParameters, parseCodeblockParameters, testOpeningLine, trimParameterLine, isCodeblockIgnored, isLanguageIgnored } from "./Parsing/CodeblockParsing"; import { InlineCodeParameters, parseInlineCode } from "./Parsing/InlineCodeParsing"; import { createHeader, createInlineOpener, getLanguageIcon, getLineClass, isHeaderHidden } from "./CodeblockDecorating"; @@ -344,6 +344,15 @@ export function createCodeblockCodeMirrorExtensions(settings: CodeStylerSettings if (syntaxNode.type.name.includes("HyperMD-codeblock-begin")) { const startLine = state.doc.lineAt(syntaxNode.from); codeblockParameters = parseCodeblockParameters(trimParameterLine(startLine.text.toString()),settings.currentTheme); + + // Apply run-* language transformation BEFORE ignore check + if (/run-\w*/.test(codeblockParameters.language)) { + const baseLanguage = codeblockParameters.language.slice(4); + if (EXECUTE_CODE_SUPPORTED_LANGUAGES.includes(baseLanguage)) { + codeblockParameters.language = baseLanguage; + } + } + if (!isLanguageIgnored(codeblockParameters.language,settings.excludedLanguages) && !isCodeblockIgnored(codeblockParameters.language,settings.processedCodeblocksWhitelist) && !codeblockParameters.ignore) { if (!SPECIAL_LANGUAGES.some(regExp => new RegExp(regExp).test(codeblockParameters.language))) builder.add(startLine.from,startLine.from,Decoration.widget({widget: new HeaderWidget(codeblockParameters,foldValue(startLine.from,codeblockParameters.fold.enabled),settings.currentTheme.settings,sourcePath,plugin), block: true, side: -1})); @@ -368,7 +377,8 @@ export function createCodeblockCodeMirrorExtensions(settings: CodeStylerSettings maxLineNum = foldEnd.to-foldStart.from-1+codeblockParameters.lineNumbers.offset; }); const lineNumberMargin = (maxLineNum.toString().length > 2)?maxLineNum.toString().length * state.field(charWidthState):undefined; - builder.add(foldStart.from,foldStart.from,Decoration.line({attributes: {style: `--line-number-gutter-width: ${lineNumberMargin?lineNumberMargin+"px":"calc(var(--line-number-gutter-min-width) - 12px)"};`, class: "code-styler-line"+(["^$"].concat(SPECIAL_LANGUAGES).some(regExp => new RegExp(regExp).test(codeblockParameters.language))?"":` language-${codeblockParameters.language}`)}})); + const effectiveLanguage = codeblockParameters.language; + builder.add(foldStart.from,foldStart.from,Decoration.line({attributes: {style: `--line-number-gutter-width: ${lineNumberMargin?lineNumberMargin+"px":"calc(var(--line-number-gutter-min-width) - 12px)"};`, class: "code-styler-line"+(["^$"].concat(SPECIAL_LANGUAGES).some(regExp => new RegExp(regExp).test(effectiveLanguage))?"":` language-${effectiveLanguage}`)}})); if (showLineNumbers) builder.add(foldStart.from,foldStart.from,Decoration.widget({widget: new LineNumberWidget(0,codeblockParameters,maxLineNum,true)})); for (let i = foldStart.number+1; i <= state.doc.lines; i++) { @@ -380,15 +390,24 @@ export function createCodeblockCodeMirrorExtensions(settings: CodeStylerSettings foldEnd = line; break; } - builder.add(line.from,line.from,Decoration.line({attributes: {style: `--line-number-gutter-width: ${lineNumberMargin?lineNumberMargin+"px":"calc(var(--line-number-gutter-min-width) - 12px)"};`, class: ((SPECIAL_LANGUAGES.some(regExp => new RegExp(regExp).test((iter.value as Decoration).spec.widget.codeblockParameters.language)))?"code-styler-line":getLineClass(codeblockParameters,i-foldStart.number,line.text).join(" "))+(["^$"].concat(SPECIAL_LANGUAGES).some(regExp => new RegExp(regExp).test(codeblockParameters.language))?"":` language-${codeblockParameters.language}`)}})); + const lineClasses = SPECIAL_LANGUAGES.some(regExp => new RegExp(regExp).test(effectiveLanguage)) + ? "code-styler-line" + : getLineClass(codeblockParameters,i-foldStart.number,line.text).join(" "); + const languageClass = ["^$"].concat(SPECIAL_LANGUAGES).some(regExp => new RegExp(regExp).test(effectiveLanguage)) + ? "" + : ` language-${effectiveLanguage}`; + builder.add(line.from,line.from,Decoration.line({attributes: { + style: `--line-number-gutter-width: ${lineNumberMargin?lineNumberMargin+"px":"calc(var(--line-number-gutter-min-width) - 12px)"};`, + class: lineClasses + languageClass + }})); if (showLineNumbers) builder.add(line.from,line.from,Decoration.widget({widget: new LineNumberWidget(i - foldStart.number, codeblockParameters, maxLineNum)})); - if (codeblockParameters.language === "markdown") + if (effectiveLanguage === "markdown") continue; convertCommentLinks(state, line, sourcePath, builder, sourceMode); } if (foldEnd !== null) { - builder.add(foldEnd.from,foldEnd.from,Decoration.line({attributes: {style: `--line-number-gutter-width: ${lineNumberMargin?lineNumberMargin+"px":"calc(var(--line-number-gutter-min-width) - 12px)"};`, class: "code-styler-line"+(["^$"].concat(SPECIAL_LANGUAGES).some(regExp => new RegExp(regExp).test(codeblockParameters.language))?"":` language-${codeblockParameters.language}`)}})); + builder.add(foldEnd.from,foldEnd.from,Decoration.line({attributes: {style: `--line-number-gutter-width: ${lineNumberMargin?lineNumberMargin+"px":"calc(var(--line-number-gutter-min-width) - 12px)"};`, class: "code-styler-line"+(["^$"].concat(SPECIAL_LANGUAGES).some(regExp => new RegExp(regExp).test(effectiveLanguage))?"":` language-${effectiveLanguage}`)}})); if (showLineNumbers) builder.add(foldEnd.from,foldEnd.from,Decoration.widget({widget: new LineNumberWidget(0,codeblockParameters,maxLineNum,true)})); } @@ -491,6 +510,7 @@ export function createCodeblockCodeMirrorExtensions(settings: CodeStylerSettings return addEffects; } + return [ interaction, ignoreListener,ignoreFileListener, diff --git a/src/Parsing/CodeblockParsing.ts b/src/Parsing/CodeblockParsing.ts index e6738bf..10c54af 100644 --- a/src/Parsing/CodeblockParsing.ts +++ b/src/Parsing/CodeblockParsing.ts @@ -218,9 +218,12 @@ function pluginAdjustExecuteCode(codeblockParameters: CodeblockParameters, plugi return codeblockParameters; } function pluginAdjustExecuteCodeRun(codeblockParameters: CodeblockParameters, plugin: CodeStylerPlugin, plugins: Record): CodeblockParameters { - if ("execute-code" in plugins) { - if (EXECUTE_CODE_SUPPORTED_LANGUAGES.includes(codeblockParameters.language.slice(4)) && !isCodeblockIgnored(codeblockParameters.language,plugin.settings.processedCodeblocksWhitelist)) - codeblockParameters.language = codeblockParameters.language.slice(4); + // Transform run-* languages regardless of whether execute-code is present + if (/run-\w*/.test(codeblockParameters.language)) { + const baseLanguage = codeblockParameters.language.slice(4); + if (EXECUTE_CODE_SUPPORTED_LANGUAGES.includes(baseLanguage) && !isCodeblockIgnored(codeblockParameters.language,plugin.settings.processedCodeblocksWhitelist)) { + codeblockParameters.language = baseLanguage; + } } return codeblockParameters; } @@ -242,7 +245,7 @@ function parseCodeblockParameterString(parameterString: string, codeblockParamet addHighlights(parameterString,codeblockParameters,theme); } function manageTitle(parameterString: string, codeblockParameters: CodeblockParameters) { - const titleMatch = /(["']?)([^\1]+)\1/.exec(parameterString.slice("title:".length)); + const titleMatch = /(["']?)([^"']+)\1/.exec(parameterString.slice("title:".length)); if (titleMatch) codeblockParameters.title = titleMatch[2].trim(); parameterString = parameterString.slice("title:".length); @@ -287,7 +290,7 @@ function manageFolding(parameterString: string, codeblockParameters: CodeblockPa placeholder: "", }; } else { - const foldPlaceholderMatch = /(["']?)([^\1]+)\1/.exec(parameterString.slice("fold:".length)); + const foldPlaceholderMatch = /(["']?)([^"']+)\1/.exec(parameterString.slice("fold:".length)); if (foldPlaceholderMatch) { codeblockParameters.fold = { enabled: true, diff --git a/src/Parsing/InlineCodeParsing.ts b/src/Parsing/InlineCodeParsing.ts index 8fdd389..f9a9701 100644 --- a/src/Parsing/InlineCodeParsing.ts +++ b/src/Parsing/InlineCodeParsing.ts @@ -34,7 +34,7 @@ function parseInlineCodeParameters(parameterLine: string): InlineCodeParameters } function parseInlineCodeParameterString(parameterString: string, inlineCodeParameters: InlineCodeParameters): void { if (parameterString.startsWith("title:") || parameterString.startsWith("title=")) { - const titleMatch = /(["']?)([^\1]+)\1/.exec(parameterString.slice("title:".length)); + const titleMatch = /(["']?)([^"']+)\1/.exec(parameterString.slice("title:".length)); if (titleMatch) inlineCodeParameters.title = titleMatch[2].trim().replace(/\\{/g, "{"); } else if (parameterString === "icon" || (parameterString.startsWith("icon:") && parameterString.toLowerCase() === "icon:true")) diff --git a/src/ReadingView.ts b/src/ReadingView.ts index 90d0d1b..4909e39 100644 --- a/src/ReadingView.ts +++ b/src/ReadingView.ts @@ -6,7 +6,7 @@ import { ElementContent, Element } from "hast"; import CodeStylerPlugin from "./main"; import { SETTINGS_SOURCEPATH_PREFIX, TRANSITION_LENGTH } from "./Settings"; -import { CodeblockParameters, getFileContentLines, isCodeblockIgnored, isLanguageIgnored, parseCodeblockSource } from "./Parsing/CodeblockParsing"; +import { CodeblockParameters, getFileContentLines, isCodeblockIgnored, isLanguageIgnored, parseCodeblockSource, parseCodeblockParameters } from "./Parsing/CodeblockParsing"; import { InlineCodeParameters, parseInlineCode } from "./Parsing/InlineCodeParsing"; import { createHeader, createInlineOpener, getLineClass as getLineClasses } from "./CodeblockDecorating"; @@ -93,7 +93,22 @@ async function renderSettings(codeblockPreElements: Array, sourcePa await remakeCodeblocks(codeblockPreElements,codeblocksParameters,sourcePath,true,false,plugin); } async function renderDocument(codeblockPreElements: Array, sourcePath: string, cache: CachedMetadata | null, editingEmbeds: boolean, printing: boolean, plugin: CodeStylerPlugin) { - const codeblocksParameters: Array = await getCodeblocksParameters(sourcePath,cache,plugin,editingEmbeds); + let codeblocksParameters: Array = await getCodeblocksParameters(sourcePath,cache,plugin,editingEmbeds); + + // Handle case where execute-code has transformed run-* blocks + if (codeblocksParameters.length !== codeblockPreElements.length) { + // Fallback: infer parameters from actual DOM elements + codeblocksParameters = codeblockPreElements.map(preElement => { + const codeElement = preElement.querySelector("code"); + const classList = Array.from(codeElement?.classList || []); + const languageClass = classList.find(cls => cls.startsWith("language-")); + const language = languageClass ? languageClass.replace("language-", "") : ""; + + // Create full parameters with proper defaults from theme + return parseCodeblockParameters(`${language}`, plugin.settings.currentTheme); + }); + } + await remakeCodeblocks(codeblockPreElements,codeblocksParameters,sourcePath,!printing,true,plugin); } async function retriggerProcessor(element: HTMLElement, context: {sourcePath: string, getSectionInfo: (element: HTMLElement) => MarkdownSectionInformation | null, frontmatter: FrontMatterCache | undefined}, plugin: CodeStylerPlugin, editingEmbeds: boolean) {