diff --git a/.todo b/.todo index 8ecefde..d48603a 100644 --- a/.todo +++ b/.todo @@ -1,11 +1,4 @@ For Next Release: - ☐ Settings to Add - ☐ Show external in codeblock header - ☐ Conditionally show sections - ☐ External codeblock colours - ☐ Update frequency: "Never": false, "On Load": true - ☐ Update settings converter to reflect - ☐ Update settings tab to reflect ☐ Gitlab compatibility ☐ base64 encode and bundle font (check license) (@last) diff --git a/main.js b/main.js index 8d13496..2d0517a 100644 --- a/main.js +++ b/main.js @@ -1994,6 +1994,11 @@ var THEME_DEFAULT_SETTINGS = { display: "none", displayColour: true }, + externalReference: { + displayRepository: true, + displayVersion: true, + displayTimestamp: true + }, fontSize: 14, foldPlaceholder: "" }, @@ -2038,6 +2043,11 @@ var THEME_FALLBACK_COLOURS = { backgroundColour: "--code-background", textColour: "--code-comment" }, + externalReference: { + displayRepositoryColour: "#00FFFF", + displayVersionColour: "#FF00FF", + displayTimestampColour: "#808080" + }, lineColour: "--color-base-30" }, highlights: { @@ -2104,6 +2114,11 @@ var SOLARIZED_THEME = { backgroundColour: "#B8B5AA", textColour: "#C25F30" }, + externalReference: { + displayRepositoryColour: "#941100", + displayVersionColour: "#ff9300", + displayTimestampColour: "#808080" + }, lineColour: "#EDD489" }, highlights: { @@ -2142,6 +2157,11 @@ var SOLARIZED_THEME = { backgroundColour: "#008080", textColour: "#000000" }, + externalReference: { + displayRepositoryColour: "#00FFFF", + displayVersionColour: "#9437ff", + displayTimestampColour: "#808080" + }, lineColour: "#46cced" }, highlights: { @@ -2183,6 +2203,7 @@ var DEFAULT_SETTINGS = { exampleInlineCode: EXAMPLE_INLINE_CODE, decoratePrint: true, excludedLanguages: EXCLUDED_LANGUAGES, + externalReferenceUpdateOnLoad: false, processedCodeblocksWhitelist: WHITELIST_CODEBLOCKS, redirectLanguages: {}, version: "1.1.4" @@ -2243,7 +2264,16 @@ var settingsUpdaters = { "1.1.1": settingsPreserve, "1.1.2": settingsPreserve, "1.1.3": settingsPreserve, - "1.1.4": settingsPreserve + "1.1.4": settingsPreserve, + "1.1.5": (settings) => settingsVersionUpdate(settings, (theme) => { + theme.settings.header.externalReference = structuredClone(THEME_DEFAULT_SETTINGS.header.externalReference); + theme.colours.light.header.externalReference = structuredClone(THEME_FALLBACK_COLOURS.header.externalReference); + theme.colours.dark.header.externalReference = structuredClone(THEME_FALLBACK_COLOURS.header.externalReference); + return theme; + }, (settings2) => { + settings2.externalReferenceUpdateOnLoad = false; + return settings2; + }) }; var FOLD_PLACEHOLDER = "Folded Code"; var PARAMETERS = ["title", "fold", "ln", "wrap", "unwrap", "ignore"]; @@ -4496,18 +4526,6 @@ var SettingsTab = class extends import_obsidian.PluginSettingTab { this.generateSettings(this.containerEl); } // Create Settings Pages - emptySettings(containerEl) { - containerEl.empty(); - containerEl.createEl("h1", { text: "Settings for the Code Styler Plugin." }); - } - generateSettings(containerEl) { - if (this.page === "main") - this.displayMainSettings(containerEl); - else if (this.page === "codeblock") - this.displayCodeblockSettings(containerEl); - else if (this.page === "inline") - this.displayInlineCodeSettings(containerEl); - } displayMainSettings(containerEl) { this.emptySettings(containerEl); this.generateThemeSettings(containerEl); @@ -4540,6 +4558,18 @@ var SettingsTab = class extends import_obsidian.PluginSettingTab { this.generateInlineCodeSettings(containerEl); } // Create Settings Groups + emptySettings(containerEl) { + containerEl.empty(); + containerEl.createEl("h1", { text: "Settings for the Code Styler Plugin." }); + } + generateSettings(containerEl) { + if (this.page === "main") + this.displayMainSettings(containerEl); + else if (this.page === "codeblock") + this.displayCodeblockSettings(containerEl); + else if (this.page === "inline") + this.displayInlineCodeSettings(containerEl); + } generateSettingsSwitcher(containerEl) { new import_obsidian.Setting(containerEl).setName("Choose Settings Page").setDesc("Change dropdown to modify different groups of settings").addDropdown((dropdown) => dropdown.addOptions(SETTINGS_PAGES).setValue(this.page).onChange((value) => { this.page = value; @@ -4881,11 +4911,13 @@ var SettingsTab = class extends import_obsidian.PluginSettingTab { containerEl.createEl("h5", { text: "Header Language Icon Appearance" }); new import_obsidian.Setting(containerEl).setName("Display Header Language Icons").setDesc('Determine when to show language icons where available. "Title Only" will only show language tags when the title parameter is set.').addDropdown((dropdown) => dropdown.addOptions(DISPLAY_OPTIONS).setValue(this.plugin.settings.currentTheme.settings.header.languageIcon.display).onChange((value) => { this.plugin.settings.currentTheme.settings.header.languageIcon.display = value; - this.generateHeaderIconSettings(); + this.generateHeaderLanguageIconSettings(); this.saveSettings(true); })); this.headerIconsContainer = containerEl.createDiv(); - this.generateHeaderIconSettings(); + this.generateHeaderLanguageIconSettings(); + this.headerExternalReferenceContainer = containerEl.createDiv(); + this.generateHeaderExternalReferenceSettings(); } generateHeaderTagSettings() { this.headerTagsContainer.empty(); @@ -4925,7 +4957,7 @@ var SettingsTab = class extends import_obsidian.PluginSettingTab { ); }); } - generateHeaderIconSettings() { + generateHeaderLanguageIconSettings() { this.headerIconsContainer.empty(); if (this.plugin.settings.currentTheme.settings.header.languageIcon.display === "none") return; @@ -4948,6 +4980,58 @@ var SettingsTab = class extends import_obsidian.PluginSettingTab { })); }); } + generateHeaderExternalReferenceSettings() { + this.headerExternalReferenceContainer.empty(); + this.headerExternalReferenceContainer.createEl("h5", { text: "External Reference Indicators Appearance" }); + new import_obsidian.Setting(this.headerExternalReferenceContainer).setName("Display Repository").setDesc("Display repository in codeblock header for external references.").addToggle((toggle) => toggle.setTooltip("Display Repository").setValue(this.plugin.settings.currentTheme.settings.header.externalReference.displayRepository).onChange((value) => { + this.plugin.settings.currentTheme.settings.header.externalReference.displayRepository = value; + this.saveSettings(); + })).then((setting) => { + this.createPickr( + this.plugin, + this.headerExternalReferenceContainer, + setting, + "codeblock_header_display_repository", + (relevantThemeColours) => relevantThemeColours[getCurrentMode()].header.externalReference.displayRepositoryColour, + (relevantThemeColours, saveColour) => { + relevantThemeColours[getCurrentMode()].header.externalReference.displayRepositoryColour = saveColour; + }, + () => !this.plugin.settings.currentTheme.settings.header.externalReference.displayRepository + ); + }); + new import_obsidian.Setting(this.headerExternalReferenceContainer).setName("Display Repository Name").setDesc("Display repository version in codeblock header for external references.").addToggle((toggle) => toggle.setTooltip("Display Repository Version").setValue(this.plugin.settings.currentTheme.settings.header.externalReference.displayVersion).onChange((value) => { + this.plugin.settings.currentTheme.settings.header.externalReference.displayVersion = value; + this.saveSettings(); + })).then((setting) => { + this.createPickr( + this.plugin, + this.headerExternalReferenceContainer, + setting, + "codeblock_header_display_version", + (relevantThemeColours) => relevantThemeColours[getCurrentMode()].header.externalReference.displayVersionColour, + (relevantThemeColours, saveColour) => { + relevantThemeColours[getCurrentMode()].header.externalReference.displayVersionColour = saveColour; + }, + () => !this.plugin.settings.currentTheme.settings.header.externalReference.displayVersion + ); + }); + new import_obsidian.Setting(this.headerExternalReferenceContainer).setName("Display Reference Timestamp").setDesc("Display the timestamp at which the reference was last updated.").addToggle((toggle) => toggle.setTooltip("Display Timestamp").setValue(this.plugin.settings.currentTheme.settings.header.externalReference.displayTimestamp).onChange((value) => { + this.plugin.settings.currentTheme.settings.header.externalReference.displayTimestamp = value; + this.saveSettings(); + })).then((setting) => { + this.createPickr( + this.plugin, + this.headerExternalReferenceContainer, + setting, + "codeblock_header_display_timestamp", + (relevantThemeColours) => relevantThemeColours[getCurrentMode()].header.externalReference.displayTimestampColour, + (relevantThemeColours, saveColour) => { + relevantThemeColours[getCurrentMode()].header.externalReference.displayTimestampColour = saveColour; + }, + () => !this.plugin.settings.currentTheme.settings.header.externalReference.displayTimestamp + ); + }); + } generateCodeblockHighlightSettings(containerEl) { containerEl.createEl("h3", { text: "Highlighting Appearance" }); new import_obsidian.Setting(containerEl).setName("Codeblock Active Line Highlight").setDesc("If enabled, highlights the active line inside codeblocks.").setClass("code-styler-spaced").addToggle((toggle) => { @@ -5269,6 +5353,10 @@ var SettingsTab = class extends import_obsidian.PluginSettingTab { () => !this.plugin.settings.currentTheme.settings.highlights.activeEditorLine ); }); + new import_obsidian.Setting(this.advancedSettingsContainer).setName("External References Automatic Update on Load").setDesc("If enabled, external references will be updated automatically on load when possible.").addToggle((toggle) => toggle.setTooltip("Toggle auto-update external references").setValue(this.plugin.settings.externalReferenceUpdateOnLoad).onChange((value) => { + this.plugin.settings.externalReferenceUpdateOnLoad = value; + this.saveSettings(); + })); this.disableableComponents["editorActiveLineHighlight"].push(this.pickrs["editor_active_line_highlight"].resetButton); new import_obsidian.Setting(this.advancedSettingsContainer).setName("Reset inbuilt themes").setDesc("This will return all inbuilt themes to the plugin defaults").addButton((button) => button.setButtonText("Reset").onClick(() => { Object.entries(INBUILT_THEMES).forEach(([themeName, theme]) => this.plugin.settings.themes[themeName] = structuredClone(theme)); @@ -5587,6 +5675,9 @@ function getThemeColours(themeModeColours) { "header-language-tag-background-colour": themeModeColours.header.languageTag.backgroundColour, "header-language-tag-text-colour": themeModeColours.header.languageTag.textColour, "header-separator-colour": themeModeColours.header.lineColour, + "header-external-reference-repository": themeModeColours.header.externalReference.displayRepositoryColour, + "header-external-reference-version": themeModeColours.header.externalReference.displayVersionColour, + "header-external-reference-timestamp": themeModeColours.header.externalReference.displayTimestampColour, "active-codeblock-line-colour": themeModeColours.highlights.activeCodeblockLineColour, "active-editor-line-colour": themeModeColours.highlights.activeEditorLineColour, "default-highlight-colour": themeModeColours.highlights.defaultColour, @@ -18159,7 +18250,7 @@ function createHeader(codeblockParameters, themeSettings, sourcePath, plugin) { if (codeblockParameters == null ? void 0 : codeblockParameters.externalReference) headerContainer.appendChild(createExternalReferenceContainer(codeblockParameters, sourcePath, plugin)); if (false) - headerContainer.appendChild(createExecuteCodeContainer(codeblockParameters, themeSettings, plugin)); + headerContainer.appendChild(createExecuteCodeContainer(codeblockParameters, plugin)); } else headerContainer.classList.add("code-styler-header-container-hidden"); return headerContainer; @@ -18178,18 +18269,24 @@ function createTitleContainer(codeblockParameters, themeSettings, sourcePath, pl function createExternalReferenceContainer(codeblockParameters, sourcePath, plugin) { var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x; const externalReferenceContainer = createDiv({ cls: "code-styler-header-external-reference" }); - const siteIcon = createDiv({ cls: "external-reference-repo-icon" }); - siteIcon.innerHTML = (_e = (_d = SITE_ICONS) == null ? void 0 : _d[(_c = (_b = (_a2 = codeblockParameters == null ? void 0 : codeblockParameters.externalReference) == null ? void 0 : _a2.external) == null ? void 0 : _b.info) == null ? void 0 : _c.site]) != null ? _e : SITE_ICONS["generic"]; - externalReferenceContainer.appendChild(siteIcon); - externalReferenceContainer.appendChild(createDiv({ cls: "external-reference-repo", text: ((_h = (_g = (_f = codeblockParameters == null ? void 0 : codeblockParameters.externalReference) == null ? void 0 : _f.external) == null ? void 0 : _g.info) == null ? void 0 : _h.author) + "/" + ((_k = (_j = (_i = codeblockParameters == null ? void 0 : codeblockParameters.externalReference) == null ? void 0 : _i.external) == null ? void 0 : _j.info) == null ? void 0 : _k.repository) })); - const refIcon = createDiv({ cls: "external-reference-ref-icon" }); - refIcon.innerHTML = (_q = (_p = GIT_ICONS) == null ? void 0 : _p[(_o = (_n = (_m = (_l = codeblockParameters == null ? void 0 : codeblockParameters.externalReference) == null ? void 0 : _l.external) == null ? void 0 : _m.info) == null ? void 0 : _n.refInfo) == null ? void 0 : _o.type]) != null ? _q : GIT_ICONS["branch"]; - externalReferenceContainer.appendChild(refIcon); - externalReferenceContainer.appendChild(createDiv({ cls: "external-reference-ref", text: (_u = (_t = (_s = (_r = codeblockParameters == null ? void 0 : codeblockParameters.externalReference) == null ? void 0 : _r.external) == null ? void 0 : _s.info) == null ? void 0 : _t.refInfo) == null ? void 0 : _u.ref })); - const stampIcon = createDiv({ cls: "external-reference-timestamp-icon" }); - stampIcon.innerHTML = STAMP_ICON; - externalReferenceContainer.appendChild(stampIcon); - externalReferenceContainer.appendChild(createDiv({ cls: "external-reference-timestamp", text: (_x = (_w = (_v = codeblockParameters == null ? void 0 : codeblockParameters.externalReference) == null ? void 0 : _v.external) == null ? void 0 : _w.info) == null ? void 0 : _x.datetime })); + if (plugin.settings.currentTheme.settings.header.externalReference.displayRepository) { + const siteIcon = createDiv({ cls: "external-reference-repo-icon" }); + siteIcon.innerHTML = (_e = (_d = SITE_ICONS) == null ? void 0 : _d[(_c = (_b = (_a2 = codeblockParameters == null ? void 0 : codeblockParameters.externalReference) == null ? void 0 : _a2.external) == null ? void 0 : _b.info) == null ? void 0 : _c.site]) != null ? _e : SITE_ICONS["generic"]; + externalReferenceContainer.appendChild(siteIcon); + externalReferenceContainer.appendChild(createDiv({ cls: "external-reference-repo", text: ((_h = (_g = (_f = codeblockParameters == null ? void 0 : codeblockParameters.externalReference) == null ? void 0 : _f.external) == null ? void 0 : _g.info) == null ? void 0 : _h.author) + "/" + ((_k = (_j = (_i = codeblockParameters == null ? void 0 : codeblockParameters.externalReference) == null ? void 0 : _i.external) == null ? void 0 : _j.info) == null ? void 0 : _k.repository) })); + } + if (plugin.settings.currentTheme.settings.header.externalReference.displayVersion) { + const refIcon = createDiv({ cls: "external-reference-ref-icon" }); + refIcon.innerHTML = (_q = (_p = GIT_ICONS) == null ? void 0 : _p[(_o = (_n = (_m = (_l = codeblockParameters == null ? void 0 : codeblockParameters.externalReference) == null ? void 0 : _l.external) == null ? void 0 : _m.info) == null ? void 0 : _n.refInfo) == null ? void 0 : _o.type]) != null ? _q : GIT_ICONS["branch"]; + externalReferenceContainer.appendChild(refIcon); + externalReferenceContainer.appendChild(createDiv({ cls: "external-reference-ref", text: (_u = (_t = (_s = (_r = codeblockParameters == null ? void 0 : codeblockParameters.externalReference) == null ? void 0 : _r.external) == null ? void 0 : _s.info) == null ? void 0 : _t.refInfo) == null ? void 0 : _u.ref })); + } + if (plugin.settings.currentTheme.settings.header.externalReference.displayTimestamp) { + const stampIcon = createDiv({ cls: "external-reference-timestamp-icon" }); + stampIcon.innerHTML = STAMP_ICON; + externalReferenceContainer.appendChild(stampIcon); + externalReferenceContainer.appendChild(createDiv({ cls: "external-reference-timestamp", text: (_x = (_w = (_v = codeblockParameters == null ? void 0 : codeblockParameters.externalReference) == null ? void 0 : _v.external) == null ? void 0 : _w.info) == null ? void 0 : _x.datetime })); + } const updateIcon = createEl("button", { cls: "external-reference-update-icon" }); updateIcon.innerHTML = UPDATE_ICON; updateIcon.title = "Update Reference"; @@ -18204,12 +18301,12 @@ function createExternalReferenceContainer(codeblockParameters, sourcePath, plugi if (!view) return; if ((view == null ? void 0 : view.getMode()) === "preview") { - view == null ? void 0 : view.previewMode.rerender(true); codeblockElement.addClass("RERENDER-CODE-STYLER"); for (const section of view.previewMode.renderer.sections.filter((s3) => s3.el.querySelector("RERENDER-CODE-STYLER"))) { section.rendered = false; section.html = ""; } + view == null ? void 0 : view.previewMode.rerender(true); } else { const cmView = view == null ? void 0 : view.sourceMode.cmEditor.cm; const pos = cmView.posAtDOM(event.target); @@ -19926,7 +20023,7 @@ var CodeStylerPlugin = class extends import_obsidian9.Plugin { await this.app.vault.adapter.mkdir(this.app.vault.configDir + EXTERNAL_REFERENCE_PATH); await this.app.vault.adapter.write(this.app.vault.configDir + EXTERNAL_REFERENCE_CACHE, JSON.stringify({})); } - if (true) + if (this.settings.externalReferenceUpdateOnLoad) await updateExternalReferencedFiles(this); else { await cleanExternalReferencedFiles(this); @@ -19945,4 +20042,4 @@ var CodeStylerPlugin = class extends import_obsidian9.Plugin { @simonwep/pickr/dist/pickr.min.js: (*! Pickr 1.9.0 MIT | https://github.com/Simonwep/pickr *) */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovd2VicGFjay9ib290c3RyYXAiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovc3JjL2pzL3V0aWxzL3V0aWxzLmpzIiwgIm5vZGVfbW9kdWxlcy9Ac2ltb253ZXAvcGlja3IvZGlzdC93ZWJwYWNrOi9zcmMvanMvdXRpbHMvY29sb3IuanMiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3NyYy9qcy91dGlscy9oc3ZhY29sb3IuanMiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3NyYy9qcy9saWJzL21vdmVhYmxlLmpzIiwgIm5vZGVfbW9kdWxlcy9Ac2ltb253ZXAvcGlja3IvZGlzdC93ZWJwYWNrOi9zcmMvanMvbGlicy9zZWxlY3RhYmxlLmpzIiwgIm5vZGVfbW9kdWxlcy9Ac2ltb253ZXAvcGlja3IvZGlzdC93ZWJwYWNrOi9zcmMvanMvdGVtcGxhdGUuanMiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3NyYy9pbmRleC50cyIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovc3JjL2pzL3BpY2tyLmpzIiwgIm5vZGVfbW9kdWxlcy9qc29uNS9kaXN0L2luZGV4LmpzIiwgInNyYy9tYWluLnRzIiwgInNyYy9TZXR0aW5ncy50cyIsICJzcmMvU2V0dGluZ3NUYWIudHMiLCAibm9kZV9tb2R1bGVzL2NvbG9ydHJhbnNsYXRvci9lc20vaW5kZXguanMiLCAic3JjL0FwcGx5U3R5bGluZy50cyIsICJzcmMvRWRpdGluZ1ZpZXcudHMiLCAic3JjL1BhcnNpbmcvQ29kZWJsb2NrUGFyc2luZy50cyIsICJzcmMvRXh0ZXJuYWwvRXhlY3V0ZUNvZGUvQ29kZUJsb2NrQXJncy50cyIsICJzcmMvUmVmZXJlbmNpbmcudHMiLCAic3JjL1BhcnNpbmcvUmVmZXJlbmNlUGFyc2luZy50cyIsICJzcmMvUmVhZGluZ1ZpZXcudHMiLCAibm9kZV9tb2R1bGVzL3VuaXN0LXV0aWwtaXMvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy91bmlzdC11dGlsLXZpc2l0LXBhcmVudHMvbGliL2NvbG9yLmpzIiwgIm5vZGVfbW9kdWxlcy91bmlzdC11dGlsLXZpc2l0LXBhcmVudHMvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9kZXZsb3AvbGliL2RlZmF1bHQuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL3NjaGVtYS5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3V0aWwvbWVyZ2UuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi9ub3JtYWxpemUuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2luZm8uanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL3R5cGVzLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9kZWZpbmVkLWluZm8uanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2NyZWF0ZS5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3hsaW5rLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIveG1sLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9jYXNlLXNlbnNpdGl2ZS10cmFuc2Zvcm0uanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2Nhc2UtaW5zZW5zaXRpdmUtdHJhbnNmb3JtLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIveG1sbnMuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi9hcmlhLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvaHRtbC5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3N2Zy5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL2ZpbmQuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9jb21tYS1zZXBhcmF0ZWQtdG9rZW5zL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtcGFyc2Utc2VsZWN0b3IvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9zcGFjZS1zZXBhcmF0ZWQtdG9rZW5zL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0c2NyaXB0L2xpYi9jcmVhdGUtaC5qcyIsICJub2RlX21vZHVsZXMvaGFzdHNjcmlwdC9saWIvc3ZnLWNhc2Utc2Vuc2l0aXZlLXRhZy1uYW1lcy5qcyIsICJub2RlX21vZHVsZXMvaGFzdHNjcmlwdC9saWIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL3ZmaWxlLWxvY2F0aW9uL2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvd2ViLW5hbWVzcGFjZXMvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1mcm9tLXBhcnNlNS9saWIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L2NvbW1vbi91bmljb2RlLmpzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC9jb21tb24vZXJyb3ItY29kZXMuanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L3Rva2VuaXplci9wcmVwcm9jZXNzb3IuanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L2NvbW1vbi90b2tlbi5qcyIsICJub2RlX21vZHVsZXMvZW50aXRpZXMvbGliL2VzbS9nZW5lcmF0ZWQvZ2VuZXJhdGVkL2RlY29kZS1kYXRhLWh0bWwudHMiLCAibm9kZV9tb2R1bGVzL2VudGl0aWVzL2xpYi9lc20vZ2VuZXJhdGVkL2dlbmVyYXRlZC9kZWNvZGUtZGF0YS14bWwudHMiLCAibm9kZV9tb2R1bGVzL2VudGl0aWVzL2xpYi9lc20vZGVjb2RlX2NvZGVwb2ludC50cyIsICJub2RlX21vZHVsZXMvZW50aXRpZXMvbGliL2VzbS9kZWNvZGUudHMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L2NvbW1vbi9odG1sLmpzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC90b2tlbml6ZXIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L3BhcnNlci9vcGVuLWVsZW1lbnQtc3RhY2suanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L3BhcnNlci9mb3JtYXR0aW5nLWVsZW1lbnQtbGlzdC5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvdHJlZS1hZGFwdGVycy9kZWZhdWx0LmpzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC9jb21tb24vZG9jdHlwZS5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvY29tbW9uL2ZvcmVpZ24tY29udGVudC5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvcGFyc2VyL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9lbnRpdGllcy9saWIvZXNtL2VzY2FwZS50cyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3Qvc2VyaWFsaXplci9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL3VuaXN0LXV0aWwtc3RyaW5naWZ5LXBvc2l0aW9uL2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvdmZpbGUtbWVzc2FnZS9saWIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW5wYXRoLmJyb3dzZXIuanMiLCAibm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW5wcm9jLmJyb3dzZXIuanMiLCAibm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW51cmwuc2hhcmVkLmpzIiwgIm5vZGVfbW9kdWxlcy92ZmlsZS9saWIvbWludXJsLmJyb3dzZXIuanMiLCAibm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLWZyb20taHRtbC9saWIvZXJyb3JzLmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtZnJvbS1odG1sL2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvaHRtbC12b2lkLWVsZW1lbnRzL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy96d2l0Y2gvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL3N0cmluZ2lmeS1lbnRpdGllcy9saWIvY29yZS5qcyIsICJub2RlX21vZHVsZXMvc3RyaW5naWZ5LWVudGl0aWVzL2xpYi91dGlsL3RvLWhleGFkZWNpbWFsLmpzIiwgIm5vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL3V0aWwvdG8tZGVjaW1hbC5qcyIsICJub2RlX21vZHVsZXMvY2hhcmFjdGVyLWVudGl0aWVzLWxlZ2FjeS9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvY2hhcmFjdGVyLWVudGl0aWVzLWh0bWw0L2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL2NvbnN0YW50L2Rhbmdlcm91cy5qcyIsICJub2RlX21vZHVsZXMvc3RyaW5naWZ5LWVudGl0aWVzL2xpYi91dGlsL3RvLW5hbWVkLmpzIiwgIm5vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL3V0aWwvZm9ybWF0LXNtYXJ0LmpzIiwgIm5vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaGFuZGxlL2NvbW1lbnQuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9oYW5kbGUvZG9jdHlwZS5qcyIsICJub2RlX21vZHVsZXMvY2NvdW50L2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtd2hpdGVzcGFjZS9saWIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9vbWlzc2lvbi91dGlsL3NpYmxpbmdzLmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvb21pc3Npb24vb21pc3Npb24uanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9vbWlzc2lvbi9jbG9zaW5nLmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvb21pc3Npb24vb3BlbmluZy5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL2hhbmRsZS9lbGVtZW50LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaGFuZGxlL3RleHQuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9oYW5kbGUvcmF3LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaGFuZGxlL3Jvb3QuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9oYW5kbGUvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9pbmRleC5qcyIsICJzcmMvUGFyc2luZy9JbmxpbmVDb2RlUGFyc2luZy50cyIsICJzcmMvQ29kZWJsb2NrRGVjb3JhdGluZy50cyIsICJzcmMvU3ludGF4SGlnaGxpZ2h0aW5nLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJQaWNrclwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJQaWNrclwiXSA9IGZhY3RvcnkoKTtcbn0pKHNlbGYsICgpID0+IHtcbnJldHVybiAiLCAiLy8gVGhlIHJlcXVpcmUgc2NvcGVcbnZhciBfX3dlYnBhY2tfcmVxdWlyZV9fID0ge307XG5cbiIsICIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCAiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsICIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCAiLyogZXNsaW50LWRpc2FibGUgcHJlZmVyLXJlc3QtcGFyYW1zICovXG5mdW5jdGlvbiBldmVudExpc3RlbmVyKG1ldGhvZCwgZWxlbWVudHMsIGV2ZW50cywgZm4sIG9wdGlvbnMgPSB7fSkge1xuXG4gICAgLy8gTm9ybWFsaXplIGFycmF5XG4gICAgaWYgKGVsZW1lbnRzIGluc3RhbmNlb2YgSFRNTENvbGxlY3Rpb24gfHwgZWxlbWVudHMgaW5zdGFuY2VvZiBOb2RlTGlzdCkge1xuICAgICAgICBlbGVtZW50cyA9IEFycmF5LmZyb20oZWxlbWVudHMpO1xuICAgIH0gZWxzZSBpZiAoIUFycmF5LmlzQXJyYXkoZWxlbWVudHMpKSB7XG4gICAgICAgIGVsZW1lbnRzID0gW2VsZW1lbnRzXTtcbiAgICB9XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZXZlbnRzKSkge1xuICAgICAgICBldmVudHMgPSBbZXZlbnRzXTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGVsIG9mIGVsZW1lbnRzKSB7XG4gICAgICAgIGZvciAoY29uc3QgZXYgb2YgZXZlbnRzKSB7XG4gICAgICAgICAgICBlbFttZXRob2RdKGV2LCBmbiwge2NhcHR1cmU6IGZhbHNlLCAuLi5vcHRpb25zfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcbn1cblxuLyoqXG4gKiBBZGQgZXZlbnQocykgdG8gZWxlbWVudChzKS5cbiAqIEBwYXJhbSBlbGVtZW50cyBET00tRWxlbWVudHNcbiAqIEBwYXJhbSBldmVudHMgRXZlbnQgbmFtZXNcbiAqIEBwYXJhbSBmbiBDYWxsYmFja1xuICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uYWwgb3B0aW9uc1xuICogQHJldHVybiBBcnJheSBwYXNzZWQgYXJndW1lbnRzXG4gKi9cbmV4cG9ydCBjb25zdCBvbiA9IGV2ZW50TGlzdGVuZXIuYmluZChudWxsLCAnYWRkRXZlbnRMaXN0ZW5lcicpO1xuXG4vKipcbiAqIFJlbW92ZSBldmVudChzKSBmcm9tIGVsZW1lbnQocykuXG4gKiBAcGFyYW0gZWxlbWVudHMgRE9NLUVsZW1lbnRzXG4gKiBAcGFyYW0gZXZlbnRzIEV2ZW50IG5hbWVzXG4gKiBAcGFyYW0gZm4gQ2FsbGJhY2tcbiAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbmFsIG9wdGlvbnNcbiAqIEByZXR1cm4gQXJyYXkgcGFzc2VkIGFyZ3VtZW50c1xuICovXG5leHBvcnQgY29uc3Qgb2ZmID0gZXZlbnRMaXN0ZW5lci5iaW5kKG51bGwsICdyZW1vdmVFdmVudExpc3RlbmVyJyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBET00tRWxlbWVudCBvdXQgb2YgYSBzdHJpbmcgKFNpbmdsZSBlbGVtZW50KS5cbiAqIEBwYXJhbSBodG1sIEhUTUwgcmVwcmVzZW50aW5nIGEgc2luZ2xlIGVsZW1lbnRcbiAqIEByZXR1cm5zIHtFbGVtZW50IHwgbnVsbH0gVGhlIGVsZW1lbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFbGVtZW50RnJvbVN0cmluZyhodG1sKSB7XG4gICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgZGl2LmlubmVySFRNTCA9IGh0bWwudHJpbSgpO1xuICAgIHJldHVybiBkaXYuZmlyc3RFbGVtZW50Q2hpbGQ7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBodG1sIGVsZW1lbnQsIGV2ZXJ5IGVsZW1lbnQgd2hpY2ggaGFzXG4gKiBhICc6cmVmJyBhdHRyaWJ1dGUgd2lsbCBiZSBzYXZlZCBpbiBhIG9iamVjdCAod2hpY2ggd2lsbCBiZSByZXR1cm5lZClcbiAqIHdoZXJlIHRoZSB2YWx1ZSBvZiAnOnJlZicgaXMgdGhlIG9iamVjdC1rZXkgYW5kIHRoZSB2YWx1ZSB0aGUgSFRNTEVsZW1lbnQuXG4gKlxuICogSXQncyBwb3NzaWJsZSB0byBjcmVhdGUgYSBoaWVyYXJjaHkgaWYgeW91IGFkZCBhICc6b2JqJyBhdHRyaWJ1dGUuIEV2ZXJ5XG4gKiBzaWJsaW5nIHdpbGwgYmUgYWRkZWQgdG8gdGhlIG9iamVjdCB3aGljaCB3aWxsIGdldCB0aGUgbmFtZSBmcm9tIHRoZSAnZGF0YS1jb24nIGF0dHJpYnV0ZS5cbiAqXG4gKiBJZiB5b3Ugd2FudCB0byBjcmVhdGUgYW4gQXJyYXkgb3V0IG9mIG11bHRpcGxlIGVsZW1lbnRzLCB5b3UgY2FuIHVzZSB0aGUgJzphcnInIGF0dHJpYnV0ZSxcbiAqIHRoZSB2YWx1ZSBkZWZpbmVzIHRoZSBrZXkgYW5kIGFsbCBlbGVtZW50cywgd2hpY2ggaGFzIHRoZSBzYW1lIHBhcmVudCBhbmQgdGhlIHNhbWUgJ2RhdGEtYXJyJyBhdHRyaWJ1dGUsXG4gKiB3b3VsZCBiZSBhZGRlZCB0byBpdC5cbiAqXG4gKiBAcGFyYW0gc3RyIC0gVGhlIEhUTUwgU3RyaW5nLlxuICovXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGcm9tVGVtcGxhdGUoc3RyKSB7XG5cbiAgICAvLyBSZW1vdmVzIGFuIGF0dHJpYnV0ZSBmcm9tIGEgSFRNTEVsZW1lbnQgYW5kIHJldHVybnMgdGhlIHZhbHVlLlxuICAgIGNvbnN0IHJlbW92ZUF0dHJpYnV0ZSA9IChlbCwgbmFtZSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGVsLmdldEF0dHJpYnV0ZShuYW1lKTtcbiAgICAgICAgZWwucmVtb3ZlQXR0cmlidXRlKG5hbWUpO1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfTtcblxuICAgIC8vIFJlY3Vyc2l2ZSBmdW5jdGlvbiB0byByZXNvbHZlIHRlbXBsYXRlXG4gICAgY29uc3QgcmVzb2x2ZSA9IChlbGVtZW50LCBiYXNlID0ge30pID0+IHtcblxuICAgICAgICAvLyBDaGVjayBrZXkgYW5kIGNvbnRhaW5lciBhdHRyaWJ1dGVcbiAgICAgICAgY29uc3QgY29uID0gcmVtb3ZlQXR0cmlidXRlKGVsZW1lbnQsICc6b2JqJyk7XG4gICAgICAgIGNvbnN0IGtleSA9IHJlbW92ZUF0dHJpYnV0ZShlbGVtZW50LCAnOnJlZicpO1xuICAgICAgICBjb25zdCBzdWJ0cmVlID0gY29uID8gKGJhc2VbY29uXSA9IHt9KSA6IGJhc2U7XG5cbiAgICAgICAgLy8gQ2hlY2sgYW5kIHNhdmUgZWxlbWVudFxuICAgICAgICBrZXkgJiYgKGJhc2Vba2V5XSA9IGVsZW1lbnQpO1xuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIEFycmF5LmZyb20oZWxlbWVudC5jaGlsZHJlbikpIHtcbiAgICAgICAgICAgIGNvbnN0IGFyciA9IHJlbW92ZUF0dHJpYnV0ZShjaGlsZCwgJzphcnInKTtcbiAgICAgICAgICAgIGNvbnN0IHN1YiA9IHJlc29sdmUoY2hpbGQsIGFyciA/IHt9IDogc3VidHJlZSk7XG5cbiAgICAgICAgICAgIGlmIChhcnIpIHtcblxuICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZXJlIGlzIGFscmVhZHkgYW4gYXJyYXkgYW5kIGFkZCBlbGVtZW50XG4gICAgICAgICAgICAgICAgKHN1YnRyZWVbYXJyXSB8fCAoc3VidHJlZVthcnJdID0gW10pKVxuICAgICAgICAgICAgICAgICAgICAucHVzaChPYmplY3Qua2V5cyhzdWIpLmxlbmd0aCA/IHN1YiA6IGNoaWxkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBiYXNlO1xuICAgIH07XG5cbiAgICByZXR1cm4gcmVzb2x2ZShjcmVhdGVFbGVtZW50RnJvbVN0cmluZyhzdHIpKTtcbn1cblxuLyoqXG4gKiBQb2x5ZmlsbCBmb3Igc2FmYXJpICYgZmlyZWZveCBmb3IgdGhlIGV2ZW50UGF0aCBldmVudCBwcm9wZXJ0eS5cbiAqIEBwYXJhbSBldnQgVGhlIGV2ZW50IG9iamVjdC5cbiAqIEByZXR1cm4gW1N0cmluZ10gZXZlbnQgcGF0aC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV2ZW50UGF0aChldnQpIHtcbiAgICBsZXQgcGF0aCA9IGV2dC5wYXRoIHx8IChldnQuY29tcG9zZWRQYXRoICYmIGV2dC5jb21wb3NlZFBhdGgoKSk7XG4gICAgaWYgKHBhdGgpIHtcbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfVxuXG4gICAgbGV0IGVsID0gZXZ0LnRhcmdldC5wYXJlbnRFbGVtZW50O1xuICAgIHBhdGggPSBbZXZ0LnRhcmdldCwgZWxdO1xuICAgIHdoaWxlIChlbCA9IGVsLnBhcmVudEVsZW1lbnQpIHtcbiAgICAgICAgcGF0aC5wdXNoKGVsKTtcbiAgICB9XG5cbiAgICBwYXRoLnB1c2goZG9jdW1lbnQsIHdpbmRvdyk7XG4gICAgcmV0dXJuIHBhdGg7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgYSBIVE1MRWxlbWVudCBieSBxdWVyeS5cbiAqIEBwYXJhbSB2YWxcbiAqIEByZXR1cm5zIHtudWxsfERvY3VtZW50fEVsZW1lbnR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlRWxlbWVudCh2YWwpIHtcbiAgICBpZiAodmFsIGluc3RhbmNlb2YgRWxlbWVudCkge1xuICAgICAgICByZXR1cm4gdmFsO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHZhbC5zcGxpdCgvPj4vZykucmVkdWNlKChwdiwgY3YsIGNpLCBhKSA9PiB7XG4gICAgICAgICAgICBwdiA9IHB2LnF1ZXJ5U2VsZWN0b3IoY3YpO1xuICAgICAgICAgICAgcmV0dXJuIGNpIDwgYS5sZW5ndGggLSAxID8gcHYuc2hhZG93Um9vdCA6IHB2O1xuICAgICAgICB9LCBkb2N1bWVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogQ3JlYXRlcyB0aGUgYWJpbGl0eSB0byBjaGFuZ2UgbnVtYmVycyBpbiBhbiBpbnB1dCBmaWVsZCB3aXRoIHRoZSBzY3JvbGwtd2hlZWwuXG4gKiBAcGFyYW0gZWxcbiAqIEBwYXJhbSBtYXBwZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkanVzdGFibGVJbnB1dE51bWJlcnMoZWwsIG1hcHBlciA9IHYgPT4gdikge1xuXG4gICAgZnVuY3Rpb24gaGFuZGxlU2Nyb2xsKGUpIHtcbiAgICAgICAgY29uc3QgaW5jID0gKFswLjAwMSwgMC4wMSwgMC4xXSlbTnVtYmVyKGUuc2hpZnRLZXkgfHwgZS5jdHJsS2V5ICogMildICogKGUuZGVsdGFZIDwgMCA/IDEgOiAtMSk7XG5cbiAgICAgICAgbGV0IGluZGV4ID0gMDtcbiAgICAgICAgbGV0IG9mZiA9IGVsLnNlbGVjdGlvblN0YXJ0O1xuICAgICAgICBlbC52YWx1ZSA9IGVsLnZhbHVlLnJlcGxhY2UoL1tcXGQuXSsvZywgKHYsIGkpID0+IHtcblxuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgbnVtYmVyIGlzIGluIGN1cnNvciByYW5nZSBhbmQgaW5jcmVhc2UgaXRcbiAgICAgICAgICAgIGlmIChpIDw9IG9mZiAmJiBpICsgdi5sZW5ndGggPj0gb2ZmKSB7XG4gICAgICAgICAgICAgICAgb2ZmID0gaTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbWFwcGVyKE51bWJlcih2KSwgaW5jLCBpbmRleCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZWwuZm9jdXMoKTtcbiAgICAgICAgZWwuc2V0U2VsZWN0aW9uUmFuZ2Uob2ZmLCBvZmYpO1xuXG4gICAgICAgIC8vIFByZXZlbnQgZGVmYXVsdCBhbmQgdHJpZ2dlciBpbnB1dCBldmVudFxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGVsLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdpbnB1dCcpKTtcbiAgICB9XG5cbiAgICAvLyBCaW5kIGV2ZW50c1xuICAgIG9uKGVsLCAnZm9jdXMnLCAoKSA9PiBvbih3aW5kb3csICd3aGVlbCcsIGhhbmRsZVNjcm9sbCwge3Bhc3NpdmU6IGZhbHNlfSkpO1xuICAgIG9uKGVsLCAnYmx1cicsICgpID0+IG9mZih3aW5kb3csICd3aGVlbCcsIGhhbmRsZVNjcm9sbCkpO1xufVxuIiwgIi8vIFNob3J0aGFuZHNcbmNvbnN0IHttaW4sIG1heCwgZmxvb3IsIHJvdW5kfSA9IE1hdGg7XG5cbi8qKlxuICogVHJpZXMgdG8gY29udmVydCBhIGNvbG9yIG5hbWUgdG8gcmdiL2EgaGV4IHJlcHJlc2VudGF0aW9uXG4gKiBAcGFyYW0gbmFtZVxuICogQHJldHVybnMge3N0cmluZyB8IENhbnZhc0dyYWRpZW50IHwgQ2FudmFzUGF0dGVybn1cbiAqL1xuZnVuY3Rpb24gc3RhbmRhcmRpemVDb2xvcihuYW1lKSB7XG5cbiAgICAvLyBTaW5jZSBpbnZhbGlkIGNvbG9yJ3Mgd2lsbCBiZSBwYXJzZWQgYXMgYmxhY2ssIGZpbHRlciB0aGVtIG91dFxuICAgIGlmIChuYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdibGFjaycpIHtcbiAgICAgICAgcmV0dXJuICcjMDAwJztcbiAgICB9XG5cbiAgICBjb25zdCBjdHggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKS5nZXRDb250ZXh0KCcyZCcpO1xuICAgIGN0eC5maWxsU3R5bGUgPSBuYW1lO1xuICAgIHJldHVybiBjdHguZmlsbFN0eWxlID09PSAnIzAwMCcgPyBudWxsIDogY3R4LmZpbGxTdHlsZTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IEhTViBzcGVjdHJ1bSB0byBSR0IuXG4gKiBAcGFyYW0gaCBIdWVcbiAqIEBwYXJhbSBzIFNhdHVyYXRpb25cbiAqIEBwYXJhbSB2IFZhbHVlXG4gKiBAcmV0dXJucyB7bnVtYmVyW119IEFycmF5IHdpdGggcmdiIHZhbHVlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhzdlRvUmdiKGgsIHMsIHYpIHtcbiAgICBoID0gKGggLyAzNjApICogNjtcbiAgICBzIC89IDEwMDtcbiAgICB2IC89IDEwMDtcblxuICAgIGNvbnN0IGkgPSBmbG9vcihoKTtcblxuICAgIGNvbnN0IGYgPSBoIC0gaTtcbiAgICBjb25zdCBwID0gdiAqICgxIC0gcyk7XG4gICAgY29uc3QgcSA9IHYgKiAoMSAtIGYgKiBzKTtcbiAgICBjb25zdCB0ID0gdiAqICgxIC0gKDEgLSBmKSAqIHMpO1xuXG4gICAgY29uc3QgbW9kID0gaSAlIDY7XG4gICAgY29uc3QgciA9IFt2LCBxLCBwLCBwLCB0LCB2XVttb2RdO1xuICAgIGNvbnN0IGcgPSBbdCwgdiwgdiwgcSwgcCwgcF1bbW9kXTtcbiAgICBjb25zdCBiID0gW3AsIHAsIHQsIHYsIHYsIHFdW21vZF07XG5cbiAgICByZXR1cm4gW1xuICAgICAgICByICogMjU1LFxuICAgICAgICBnICogMjU1LFxuICAgICAgICBiICogMjU1XG4gICAgXTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IEhTViBzcGVjdHJ1bSB0byBIZXguXG4gKiBAcGFyYW0gaCBIdWVcbiAqIEBwYXJhbSBzIFNhdHVyYXRpb25cbiAqIEBwYXJhbSB2IFZhbHVlXG4gKiBAcmV0dXJucyB7c3RyaW5nW119IEhleCB2YWx1ZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhzdlRvSGV4KGgsIHMsIHYpIHtcbiAgICByZXR1cm4gaHN2VG9SZ2IoaCwgcywgdikubWFwKHYgPT5cbiAgICAgICAgcm91bmQodikudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsICcwJylcbiAgICApO1xufVxuXG4vKipcbiAqIENvbnZlcnQgSFNWIHNwZWN0cnVtIHRvIENNWUsuXG4gKiBAcGFyYW0gaCBIdWVcbiAqIEBwYXJhbSBzIFNhdHVyYXRpb25cbiAqIEBwYXJhbSB2IFZhbHVlXG4gKiBAcmV0dXJucyB7bnVtYmVyW119IENNWUsgdmFsdWVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoc3ZUb0NteWsoaCwgcywgdikge1xuICAgIGNvbnN0IHJnYiA9IGhzdlRvUmdiKGgsIHMsIHYpO1xuICAgIGNvbnN0IHIgPSByZ2JbMF0gLyAyNTU7XG4gICAgY29uc3QgZyA9IHJnYlsxXSAvIDI1NTtcbiAgICBjb25zdCBiID0gcmdiWzJdIC8gMjU1O1xuXG4gICAgY29uc3QgayA9IG1pbigxIC0gciwgMSAtIGcsIDEgLSBiKTtcbiAgICBjb25zdCBjID0gayA9PT0gMSA/IDAgOiAoMSAtIHIgLSBrKSAvICgxIC0gayk7XG4gICAgY29uc3QgbSA9IGsgPT09IDEgPyAwIDogKDEgLSBnIC0gaykgLyAoMSAtIGspO1xuICAgIGNvbnN0IHkgPSBrID09PSAxID8gMCA6ICgxIC0gYiAtIGspIC8gKDEgLSBrKTtcblxuICAgIHJldHVybiBbXG4gICAgICAgIGMgKiAxMDAsXG4gICAgICAgIG0gKiAxMDAsXG4gICAgICAgIHkgKiAxMDAsXG4gICAgICAgIGsgKiAxMDBcbiAgICBdO1xufVxuXG4vKipcbiAqIENvbnZlcnQgSFNWIHNwZWN0cnVtIHRvIEhTTC5cbiAqIEBwYXJhbSBoIEh1ZVxuICogQHBhcmFtIHMgU2F0dXJhdGlvblxuICogQHBhcmFtIHYgVmFsdWVcbiAqIEByZXR1cm5zIHtudW1iZXJbXX0gSFNMIHZhbHVlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gaHN2VG9Ic2woaCwgcywgdikge1xuICAgIHMgLz0gMTAwO1xuICAgIHYgLz0gMTAwO1xuXG4gICAgY29uc3QgbCA9ICgyIC0gcykgKiB2IC8gMjtcblxuICAgIGlmIChsICE9PSAwKSB7XG4gICAgICAgIGlmIChsID09PSAxKSB7XG4gICAgICAgICAgICBzID0gMDtcbiAgICAgICAgfSBlbHNlIGlmIChsIDwgMC41KSB7XG4gICAgICAgICAgICBzID0gcyAqIHYgLyAobCAqIDIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcyA9IHMgKiB2IC8gKDIgLSBsICogMik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gW1xuICAgICAgICBoLFxuICAgICAgICBzICogMTAwLFxuICAgICAgICBsICogMTAwXG4gICAgXTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IFJHQiB0byBIU1YuXG4gKiBAcGFyYW0gciBSZWRcbiAqIEBwYXJhbSBnIEdyZWVuXG4gKiBAcGFyYW0gYiBCbHVlXG4gKiBAcmV0dXJuIHtudW1iZXJbXX0gSFNWIHZhbHVlcy5cbiAqL1xuZnVuY3Rpb24gcmdiVG9Ic3YociwgZywgYikge1xuICAgIHIgLz0gMjU1O1xuICAgIGcgLz0gMjU1O1xuICAgIGIgLz0gMjU1O1xuXG4gICAgY29uc3QgbWluVmFsID0gbWluKHIsIGcsIGIpO1xuICAgIGNvbnN0IG1heFZhbCA9IG1heChyLCBnLCBiKTtcbiAgICBjb25zdCBkZWx0YSA9IG1heFZhbCAtIG1pblZhbDtcblxuICAgIGxldCBoLCBzO1xuICAgIGNvbnN0IHYgPSBtYXhWYWw7XG4gICAgaWYgKGRlbHRhID09PSAwKSB7XG4gICAgICAgIGggPSBzID0gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgICBzID0gZGVsdGEgLyBtYXhWYWw7XG4gICAgICAgIGNvbnN0IGRyID0gKCgobWF4VmFsIC0gcikgLyA2KSArIChkZWx0YSAvIDIpKSAvIGRlbHRhO1xuICAgICAgICBjb25zdCBkZyA9ICgoKG1heFZhbCAtIGcpIC8gNikgKyAoZGVsdGEgLyAyKSkgLyBkZWx0YTtcbiAgICAgICAgY29uc3QgZGIgPSAoKChtYXhWYWwgLSBiKSAvIDYpICsgKGRlbHRhIC8gMikpIC8gZGVsdGE7XG5cbiAgICAgICAgaWYgKHIgPT09IG1heFZhbCkge1xuICAgICAgICAgICAgaCA9IGRiIC0gZGc7XG4gICAgICAgIH0gZWxzZSBpZiAoZyA9PT0gbWF4VmFsKSB7XG4gICAgICAgICAgICBoID0gKDEgLyAzKSArIGRyIC0gZGI7XG4gICAgICAgIH0gZWxzZSBpZiAoYiA9PT0gbWF4VmFsKSB7XG4gICAgICAgICAgICBoID0gKDIgLyAzKSArIGRnIC0gZHI7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaCA8IDApIHtcbiAgICAgICAgICAgIGggKz0gMTtcbiAgICAgICAgfSBlbHNlIGlmIChoID4gMSkge1xuICAgICAgICAgICAgaCAtPSAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIFtcbiAgICAgICAgaCAqIDM2MCxcbiAgICAgICAgcyAqIDEwMCxcbiAgICAgICAgdiAqIDEwMFxuICAgIF07XG59XG5cbi8qKlxuICogQ29udmVydCBDTVlLIHRvIEhTVi5cbiAqIEBwYXJhbSBjIEN5YW5cbiAqIEBwYXJhbSBtIE1hZ2VudGFcbiAqIEBwYXJhbSB5IFllbGxvd1xuICogQHBhcmFtIGsgS2V5IChCbGFjaylcbiAqIEByZXR1cm4ge251bWJlcltdfSBIU1YgdmFsdWVzLlxuICovXG5mdW5jdGlvbiBjbXlrVG9Ic3YoYywgbSwgeSwgaykge1xuICAgIGMgLz0gMTAwO1xuICAgIG0gLz0gMTAwO1xuICAgIHkgLz0gMTAwO1xuICAgIGsgLz0gMTAwO1xuXG4gICAgY29uc3QgciA9ICgxIC0gbWluKDEsIGMgKiAoMSAtIGspICsgaykpICogMjU1O1xuICAgIGNvbnN0IGcgPSAoMSAtIG1pbigxLCBtICogKDEgLSBrKSArIGspKSAqIDI1NTtcbiAgICBjb25zdCBiID0gKDEgLSBtaW4oMSwgeSAqICgxIC0gaykgKyBrKSkgKiAyNTU7XG5cbiAgICByZXR1cm4gWy4uLnJnYlRvSHN2KHIsIGcsIGIpXTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IEhTTCB0byBIU1YuXG4gKiBAcGFyYW0gaCBIdWVcbiAqIEBwYXJhbSBzIFNhdHVyYXRpb25cbiAqIEBwYXJhbSBsIExpZ2h0bmVzc1xuICogQHJldHVybiB7bnVtYmVyW119IEhTViB2YWx1ZXMuXG4gKi9cbmZ1bmN0aW9uIGhzbFRvSHN2KGgsIHMsIGwpIHtcbiAgICBzIC89IDEwMDtcbiAgICBsIC89IDEwMDtcbiAgICBzICo9IGwgPCAwLjUgPyBsIDogMSAtIGw7XG5cbiAgICBjb25zdCBucyA9ICgyICogcyAvIChsICsgcykpICogMTAwO1xuICAgIGNvbnN0IHYgPSAobCArIHMpICogMTAwO1xuICAgIHJldHVybiBbaCwgaXNOYU4obnMpID8gMCA6IG5zLCB2XTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IEhFWCB0byBIU1YuXG4gKiBAcGFyYW0gaGV4IEhleGFkZWNpbWFsIHN0cmluZyBvZiByZ2IgY29sb3JzLCBjYW4gaGF2ZSBsZW5ndGggMyBvciA2LlxuICogQHJldHVybiB7bnVtYmVyW119IEhTViB2YWx1ZXMuXG4gKi9cbmZ1bmN0aW9uIGhleFRvSHN2KGhleCkge1xuICAgIHJldHVybiByZ2JUb0hzdiguLi5oZXgubWF0Y2goLy57Mn0vZykubWFwKHYgPT4gcGFyc2VJbnQodiwgMTYpKSk7XG59XG5cbi8qKlxuICogVHJ5J3MgdG8gcGFyc2UgYSBzdHJpbmcgd2hpY2ggcmVwcmVzZW50cyBhIGNvbG9yIHRvIGEgSFNWIGFycmF5LlxuICogQ3VycmVudCBzdXBwb3J0ZWQgdHlwZXMgYXJlIGNteWssIHJnYmEsIGhzbGEgYW5kIGhleGFkZWNpbWFsLlxuICogQHBhcmFtIHN0clxuICogQHJldHVybiB7Kn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlVG9IU1ZBKHN0cikge1xuXG4gICAgLy8gQ2hlY2sgaWYgc3RyaW5nIGlzIGEgY29sb3ItbmFtZVxuICAgIHN0ciA9IHN0ci5tYXRjaCgvXlthLXpBLVpdKyQvKSA/IHN0YW5kYXJkaXplQ29sb3Ioc3RyKSA6IHN0cjtcblxuICAgIC8vIFJlZ3VsYXIgZXhwcmVzc2lvbnMgdG8gbWF0Y2ggZGlmZmVyZW50IHR5cGVzIG9mIGNvbG9yIHJlcHJlc2VudGlvblxuICAgIGNvbnN0IHJlZ2V4ID0ge1xuICAgICAgICBjbXlrOiAvXmNteWtcXEQrKFtcXGQuXSspXFxEKyhbXFxkLl0rKVxcRCsoW1xcZC5dKylcXEQrKFtcXGQuXSspL2ksXG4gICAgICAgIHJnYmE6IC9ecmdiYT9cXEQrKFtcXGQuXSspKCU/KVxcRCsoW1xcZC5dKykoJT8pXFxEKyhbXFxkLl0rKSglPylcXEQqPygoW1xcZC5dKykoJT8pfCQpL2ksXG4gICAgICAgIGhzbGE6IC9eaHNsYT9cXEQrKFtcXGQuXSspXFxEKyhbXFxkLl0rKVxcRCsoW1xcZC5dKylcXEQqPygoW1xcZC5dKykoJT8pfCQpL2ksXG4gICAgICAgIGhzdmE6IC9eaHN2YT9cXEQrKFtcXGQuXSspXFxEKyhbXFxkLl0rKVxcRCsoW1xcZC5dKylcXEQqPygoW1xcZC5dKykoJT8pfCQpL2ksXG4gICAgICAgIGhleGE6IC9eIz8oKFtcXGRBLUZhLWZdezMsNH0pfChbXFxkQS1GYS1mXXs2fSl8KFtcXGRBLUZhLWZdezh9KSkkL2lcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogVGFrZXMgYW4gQXJyYXkgb2YgYW55IHR5cGUsIGNvbnZlcnQgc3RyaW5ncyB3aGljaCByZXByZXNlbnRzXG4gICAgICogYSBudW1iZXIgdG8gYSBudW1iZXIgYW4gYW55dGhpbmcgZWxzZSB0byB1bmRlZmluZWQuXG4gICAgICogQHBhcmFtIGFycmF5XG4gICAgICogQHJldHVybiB7Kn1cbiAgICAgKi9cbiAgICBjb25zdCBudW1hcml6ZSA9IGFycmF5ID0+IGFycmF5Lm1hcCh2ID0+IC9eKHxcXGQrKVxcLlxcZCt8XFxkKyQvLnRlc3QodikgPyBOdW1iZXIodikgOiB1bmRlZmluZWQpO1xuXG4gICAgbGV0IG1hdGNoO1xuICAgIGludmFsaWQ6IGZvciAoY29uc3QgdHlwZSBpbiByZWdleCkge1xuXG4gICAgICAgIC8vIENoZWNrIGlmIGN1cnJlbnQgc2NoZW1lIHBhc3NlZFxuICAgICAgICBpZiAoIShtYXRjaCA9IHJlZ2V4W3R5cGVdLmV4ZWMoc3RyKSkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVHJ5IHRvIGNvbnZlcnRcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdjbXlrJzoge1xuICAgICAgICAgICAgICAgIGNvbnN0IFssIGMsIG0sIHksIGtdID0gbnVtYXJpemUobWF0Y2gpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGMgPiAxMDAgfHwgbSA+IDEwMCB8fCB5ID4gMTAwIHx8IGsgPiAxMDApIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWsgaW52YWxpZDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlczogY215a1RvSHN2KGMsIG0sIHksIGspLCB0eXBlfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ3JnYmEnOiB7XG4gICAgICAgICAgICAgICAgbGV0IFssIHIsICwgZywgLCBiLCAsICwgYV0gPSBudW1hcml6ZShtYXRjaCk7XG5cbiAgICAgICAgICAgICAgICByID0gbWF0Y2hbMl0gPT09ICclJyA/IChyIC8gMTAwKSAqIDI1NSA6IHI7XG4gICAgICAgICAgICAgICAgZyA9IG1hdGNoWzRdID09PSAnJScgPyAoZyAvIDEwMCkgKiAyNTUgOiBnO1xuICAgICAgICAgICAgICAgIGIgPSBtYXRjaFs2XSA9PT0gJyUnID8gKGIgLyAxMDApICogMjU1IDogYjtcbiAgICAgICAgICAgICAgICBhID0gbWF0Y2hbOV0gPT09ICclJyA/IChhIC8gMTAwKSA6IGE7XG5cbiAgICAgICAgICAgICAgICBpZiAociA+IDI1NSB8fCBnID4gMjU1IHx8IGIgPiAyNTUgfHwgYSA8IDAgfHwgYSA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWsgaW52YWxpZDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlczogWy4uLnJnYlRvSHN2KHIsIGcsIGIpLCBhXSwgYSwgdHlwZX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdoZXhhJzoge1xuICAgICAgICAgICAgICAgIGxldCBbLCBoZXhdID0gbWF0Y2g7XG5cbiAgICAgICAgICAgICAgICBpZiAoaGV4Lmxlbmd0aCA9PT0gNCB8fCBoZXgubGVuZ3RoID09PSAzKSB7XG4gICAgICAgICAgICAgICAgICAgIGhleCA9IGhleC5zcGxpdCgnJykubWFwKHYgPT4gdiArIHYpLmpvaW4oJycpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IHJhdyA9IGhleC5zdWJzdHJpbmcoMCwgNik7XG4gICAgICAgICAgICAgICAgbGV0IGEgPSBoZXguc3Vic3RyaW5nKDYpO1xuXG4gICAgICAgICAgICAgICAgLy8gQ29udmVydCAwIC0gMjU1IHRvIDAgLSAxIGZvciBvcGFjaXR5XG4gICAgICAgICAgICAgICAgYSA9IGEgPyAocGFyc2VJbnQoYSwgMTYpIC8gMjU1KSA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWVzOiBbLi4uaGV4VG9Ic3YocmF3KSwgYV0sIGEsIHR5cGV9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnaHNsYSc6IHtcbiAgICAgICAgICAgICAgICBsZXQgWywgaCwgcywgbCwgLCBhXSA9IG51bWFyaXplKG1hdGNoKTtcbiAgICAgICAgICAgICAgICBhID0gbWF0Y2hbNl0gPT09ICclJyA/IChhIC8gMTAwKSA6IGE7XG5cbiAgICAgICAgICAgICAgICBpZiAoaCA+IDM2MCB8fCBzID4gMTAwIHx8IGwgPiAxMDAgfHwgYSA8IDAgfHwgYSA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWsgaW52YWxpZDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlczogWy4uLmhzbFRvSHN2KGgsIHMsIGwpLCBhXSwgYSwgdHlwZX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdoc3ZhJzoge1xuICAgICAgICAgICAgICAgIGxldCBbLCBoLCBzLCB2LCAsIGFdID0gbnVtYXJpemUobWF0Y2gpO1xuICAgICAgICAgICAgICAgIGEgPSBtYXRjaFs2XSA9PT0gJyUnID8gKGEgLyAxMDApIDogYTtcblxuICAgICAgICAgICAgICAgIGlmIChoID4gMzYwIHx8IHMgPiAxMDAgfHwgdiA+IDEwMCB8fCBhIDwgMCB8fCBhID4gMSkge1xuICAgICAgICAgICAgICAgICAgICBicmVhayBpbnZhbGlkO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWVzOiBbaCwgcywgdiwgYV0sIGEsIHR5cGV9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHt2YWx1ZXM6IG51bGwsIHR5cGU6IG51bGx9O1xufVxuIiwgImltcG9ydCB7aHN2VG9DbXlrLCBoc3ZUb0hleCwgaHN2VG9Ic2wsIGhzdlRvUmdifSBmcm9tICcuL2NvbG9yJztcblxuLyoqXG4gKiBTaW1wbGUgY2xhc3Mgd2hpY2ggaG9sZHMgdGhlIHByb3BlcnRpZXNcbiAqIG9mIHRoZSBjb2xvciByZXByZXNlbnRpb24gbW9kZWwgaHNsYSAoaHVlIHNhdHVyYXRpb24gbGlnaHRuZXNzIGFscGhhKVxuICovXG5leHBvcnQgZnVuY3Rpb24gSFNWYUNvbG9yKGggPSAwLCBzID0gMCwgdiA9IDAsIGEgPSAxKSB7XG4gICAgY29uc3QgbWFwcGVyID0gKG9yaWdpbmFsLCBuZXh0KSA9PiAocHJlY2lzaW9uID0gLTEpID0+IHtcbiAgICAgICAgcmV0dXJuIG5leHQofnByZWNpc2lvbiA/IG9yaWdpbmFsLm1hcCh2ID0+IE51bWJlcih2LnRvRml4ZWQocHJlY2lzaW9uKSkpIDogb3JpZ2luYWwpO1xuICAgIH07XG5cbiAgICBjb25zdCB0aGF0ID0ge1xuICAgICAgICBoLCBzLCB2LCBhLFxuXG4gICAgICAgIHRvSFNWQSgpIHtcbiAgICAgICAgICAgIGNvbnN0IGhzdmEgPSBbdGhhdC5oLCB0aGF0LnMsIHRoYXQudiwgdGhhdC5hXTtcbiAgICAgICAgICAgIGhzdmEudG9TdHJpbmcgPSBtYXBwZXIoaHN2YSwgYXJyID0+IGBoc3ZhKCR7YXJyWzBdfSwgJHthcnJbMV19JSwgJHthcnJbMl19JSwgJHt0aGF0LmF9KWApO1xuICAgICAgICAgICAgcmV0dXJuIGhzdmE7XG4gICAgICAgIH0sXG5cbiAgICAgICAgdG9IU0xBKCkge1xuICAgICAgICAgICAgY29uc3QgaHNsYSA9IFsuLi5oc3ZUb0hzbCh0aGF0LmgsIHRoYXQucywgdGhhdC52KSwgdGhhdC5hXTtcbiAgICAgICAgICAgIGhzbGEudG9TdHJpbmcgPSBtYXBwZXIoaHNsYSwgYXJyID0+IGBoc2xhKCR7YXJyWzBdfSwgJHthcnJbMV19JSwgJHthcnJbMl19JSwgJHt0aGF0LmF9KWApO1xuICAgICAgICAgICAgcmV0dXJuIGhzbGE7XG4gICAgICAgIH0sXG5cbiAgICAgICAgdG9SR0JBKCkge1xuICAgICAgICAgICAgY29uc3QgcmdiYSA9IFsuLi5oc3ZUb1JnYih0aGF0LmgsIHRoYXQucywgdGhhdC52KSwgdGhhdC5hXTtcbiAgICAgICAgICAgIHJnYmEudG9TdHJpbmcgPSBtYXBwZXIocmdiYSwgYXJyID0+IGByZ2JhKCR7YXJyWzBdfSwgJHthcnJbMV19LCAke2FyclsyXX0sICR7dGhhdC5hfSlgKTtcbiAgICAgICAgICAgIHJldHVybiByZ2JhO1xuICAgICAgICB9LFxuXG4gICAgICAgIHRvQ01ZSygpIHtcbiAgICAgICAgICAgIGNvbnN0IGNteWsgPSBoc3ZUb0NteWsodGhhdC5oLCB0aGF0LnMsIHRoYXQudik7XG4gICAgICAgICAgICBjbXlrLnRvU3RyaW5nID0gbWFwcGVyKGNteWssIGFyciA9PiBgY215aygke2FyclswXX0lLCAke2FyclsxXX0lLCAke2FyclsyXX0lLCAke2FyclszXX0lKWApO1xuICAgICAgICAgICAgcmV0dXJuIGNteWs7XG4gICAgICAgIH0sXG5cbiAgICAgICAgdG9IRVhBKCkge1xuICAgICAgICAgICAgY29uc3QgaGV4ID0gaHN2VG9IZXgodGhhdC5oLCB0aGF0LnMsIHRoYXQudik7XG5cbiAgICAgICAgICAgIC8vIENoZWNrIGlmIGFscGhhIGNoYW5uZWwgbWFrZSBzZW5zZSwgY29udmVydCBpdCB0byAyNTUgbnVtYmVyIHNwYWNlLCBjb252ZXJ0XG4gICAgICAgICAgICAvLyBUbyBoZXggYW5kIHBhZCBpdCB3aXRoIHplcm9zIGlmIG5lZWRldC5cbiAgICAgICAgICAgIGNvbnN0IGFscGhhID0gdGhhdC5hID49IDEgPyAnJyA6IE51bWJlcigodGhhdC5hICogMjU1KS50b0ZpeGVkKDApKVxuICAgICAgICAgICAgICAgIC50b1N0cmluZygxNilcbiAgICAgICAgICAgICAgICAudG9VcHBlckNhc2UoKS5wYWRTdGFydCgyLCAnMCcpO1xuXG4gICAgICAgICAgICBhbHBoYSAmJiBoZXgucHVzaChhbHBoYSk7XG4gICAgICAgICAgICBoZXgudG9TdHJpbmcgPSAoKSA9PiBgIyR7aGV4LmpvaW4oJycpLnRvVXBwZXJDYXNlKCl9YDtcbiAgICAgICAgICAgIHJldHVybiBoZXg7XG4gICAgICAgIH0sXG5cbiAgICAgICAgY2xvbmU6ICgpID0+IEhTVmFDb2xvcih0aGF0LmgsIHRoYXQucywgdGhhdC52LCB0aGF0LmEpXG4gICAgfTtcblxuICAgIHJldHVybiB0aGF0O1xufVxuIiwgImltcG9ydCAqIGFzIF8gZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xuXG5jb25zdCBjbGFtcCA9IHYgPT4gTWF0aC5tYXgoTWF0aC5taW4odiwgMSksIDApO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTW92ZWFibGUob3B0KSB7XG5cbiAgICBjb25zdCB0aGF0ID0ge1xuXG4gICAgICAgIC8vIEFzc2lnbiBkZWZhdWx0IHZhbHVlc1xuICAgICAgICBvcHRpb25zOiBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICAgIGxvY2s6IG51bGwsXG4gICAgICAgICAgICBvbmNoYW5nZTogKCkgPT4gMCxcbiAgICAgICAgICAgIG9uc3RvcDogKCkgPT4gMFxuICAgICAgICB9LCBvcHQpLFxuXG4gICAgICAgIF9rZXlib2FyZChlKSB7XG4gICAgICAgICAgICBjb25zdCB7b3B0aW9uc30gPSB0aGF0O1xuICAgICAgICAgICAgY29uc3Qge3R5cGUsIGtleX0gPSBlO1xuXG4gICAgICAgICAgICAvLyBDaGVjayB0byBzZWUgaWYgdGhlIE1vdmFibGUgaXMgZm9jdXNlZCBhbmQgdGhlbiBtb3ZlIGl0IGJhc2VkIG9uIGFycm93IGtleSBpbnB1dHNcbiAgICAgICAgICAgIC8vIEZvciBpbXByb3ZlZCBhY2Nlc3NpYmlsaXR5XG4gICAgICAgICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gb3B0aW9ucy53cmFwcGVyKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qge2xvY2t9ID0gdGhhdC5vcHRpb25zO1xuICAgICAgICAgICAgICAgIGNvbnN0IHVwID0ga2V5ID09PSAnQXJyb3dVcCc7XG4gICAgICAgICAgICAgICAgY29uc3QgcmlnaHQgPSBrZXkgPT09ICdBcnJvd1JpZ2h0JztcbiAgICAgICAgICAgICAgICBjb25zdCBkb3duID0ga2V5ID09PSAnQXJyb3dEb3duJztcbiAgICAgICAgICAgICAgICBjb25zdCBsZWZ0ID0ga2V5ID09PSAnQXJyb3dMZWZ0JztcblxuICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSAna2V5ZG93bicgJiYgKHVwIHx8IHJpZ2h0IHx8IGRvd24gfHwgbGVmdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHhtID0gMDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHltID0gMDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAobG9jayA9PT0gJ3YnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB4bSA9ICh1cCB8fCByaWdodCkgPyAxIDogLTE7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobG9jayA9PT0gJ2gnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB4bSA9ICh1cCB8fCByaWdodCkgPyAtMSA6IDE7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB5bSA9IHVwID8gLTEgOiAoZG93biA/IDEgOiAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHhtID0gbGVmdCA/IC0xIDogKHJpZ2h0ID8gMSA6IDApO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhhdC51cGRhdGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFtcCh0aGF0LmNhY2hlLnggKyAoMC4wMSAqIHhtKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFtcCh0aGF0LmNhY2hlLnkgKyAoMC4wMSAqIHltKSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5LnN0YXJ0c1dpdGgoJ0Fycm93JykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5vcHRpb25zLm9uc3RvcCgpO1xuICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIF90YXBzdGFydChldnQpIHtcbiAgICAgICAgICAgIF8ub24oZG9jdW1lbnQsIFsnbW91c2V1cCcsICd0b3VjaGVuZCcsICd0b3VjaGNhbmNlbCddLCB0aGF0Ll90YXBzdG9wKTtcbiAgICAgICAgICAgIF8ub24oZG9jdW1lbnQsIFsnbW91c2Vtb3ZlJywgJ3RvdWNobW92ZSddLCB0aGF0Ll90YXBtb3ZlKTtcblxuICAgICAgICAgICAgaWYgKGV2dC5jYW5jZWxhYmxlKSB7XG4gICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFRyaWdnZXJcbiAgICAgICAgICAgIHRoYXQuX3RhcG1vdmUoZXZ0KTtcbiAgICAgICAgfSxcblxuICAgICAgICBfdGFwbW92ZShldnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHtvcHRpb25zLCBjYWNoZX0gPSB0aGF0O1xuICAgICAgICAgICAgY29uc3Qge2xvY2ssIGVsZW1lbnQsIHdyYXBwZXJ9ID0gb3B0aW9ucztcbiAgICAgICAgICAgIGNvbnN0IGIgPSB3cmFwcGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgICAgICBsZXQgeCA9IDAsIHkgPSAwO1xuICAgICAgICAgICAgaWYgKGV2dCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvdWNoID0gZXZ0ICYmIGV2dC50b3VjaGVzICYmIGV2dC50b3VjaGVzWzBdO1xuICAgICAgICAgICAgICAgIHggPSBldnQgPyAodG91Y2ggfHwgZXZ0KS5jbGllbnRYIDogMDtcbiAgICAgICAgICAgICAgICB5ID0gZXZ0ID8gKHRvdWNoIHx8IGV2dCkuY2xpZW50WSA6IDA7XG5cbiAgICAgICAgICAgICAgICAvLyBSZXNldCB0byBib3VuZHNcbiAgICAgICAgICAgICAgICBpZiAoeCA8IGIubGVmdCkge1xuICAgICAgICAgICAgICAgICAgICB4ID0gYi5sZWZ0O1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoeCA+IGIubGVmdCArIGIud2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgeCA9IGIubGVmdCArIGIud2lkdGg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh5IDwgYi50b3ApIHtcbiAgICAgICAgICAgICAgICAgICAgeSA9IGIudG9wO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoeSA+IGIudG9wICsgYi5oZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgeSA9IGIudG9wICsgYi5oZWlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gTm9ybWFsaXplXG4gICAgICAgICAgICAgICAgeCAtPSBiLmxlZnQ7XG4gICAgICAgICAgICAgICAgeSAtPSBiLnRvcDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2FjaGUpIHtcbiAgICAgICAgICAgICAgICB4ID0gY2FjaGUueCAqIGIud2lkdGg7XG4gICAgICAgICAgICAgICAgeSA9IGNhY2hlLnkgKiBiLmhlaWdodDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGxvY2sgIT09ICdoJykge1xuICAgICAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUubGVmdCA9IGBjYWxjKCR7eCAvIGIud2lkdGggKiAxMDB9JSAtICR7ZWxlbWVudC5vZmZzZXRXaWR0aCAvIDJ9cHgpYDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGxvY2sgIT09ICd2Jykge1xuICAgICAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUudG9wID0gYGNhbGMoJHt5IC8gYi5oZWlnaHQgKiAxMDB9JSAtICR7ZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyfXB4KWA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoYXQuY2FjaGUgPSB7eDogeCAvIGIud2lkdGgsIHk6IHkgLyBiLmhlaWdodH07XG4gICAgICAgICAgICBjb25zdCBjeCA9IGNsYW1wKHggLyBiLndpZHRoKTtcbiAgICAgICAgICAgIGNvbnN0IGN5ID0gY2xhbXAoeSAvIGIuaGVpZ2h0KTtcblxuICAgICAgICAgICAgc3dpdGNoIChsb2NrKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAndic6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLm9uY2hhbmdlKGN4KTtcbiAgICAgICAgICAgICAgICBjYXNlICdoJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMub25jaGFuZ2UoY3kpO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLm9uY2hhbmdlKGN4LCBjeSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG5cbiAgICAgICAgX3RhcHN0b3AoKSB7XG4gICAgICAgICAgICB0aGF0Lm9wdGlvbnMub25zdG9wKCk7XG4gICAgICAgICAgICBfLm9mZihkb2N1bWVudCwgWydtb3VzZXVwJywgJ3RvdWNoZW5kJywgJ3RvdWNoY2FuY2VsJ10sIHRoYXQuX3RhcHN0b3ApO1xuICAgICAgICAgICAgXy5vZmYoZG9jdW1lbnQsIFsnbW91c2Vtb3ZlJywgJ3RvdWNobW92ZSddLCB0aGF0Ll90YXBtb3ZlKTtcbiAgICAgICAgfSxcblxuICAgICAgICB0cmlnZ2VyKCkge1xuICAgICAgICAgICAgdGhhdC5fdGFwbW92ZSgpO1xuICAgICAgICB9LFxuXG4gICAgICAgIHVwZGF0ZSh4ID0gMCwgeSA9IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHtsZWZ0LCB0b3AsIHdpZHRoLCBoZWlnaHR9ID0gdGhhdC5vcHRpb25zLndyYXBwZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMubG9jayA9PT0gJ2gnKSB7XG4gICAgICAgICAgICAgICAgeSA9IHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoYXQuX3RhcG1vdmUoe1xuICAgICAgICAgICAgICAgIGNsaWVudFg6IGxlZnQgKyB3aWR0aCAqIHgsXG4gICAgICAgICAgICAgICAgY2xpZW50WTogdG9wICsgaGVpZ2h0ICogeVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZGVzdHJveSgpIHtcbiAgICAgICAgICAgIGNvbnN0IHtvcHRpb25zLCBfdGFwc3RhcnQsIF9rZXlib2FyZH0gPSB0aGF0O1xuICAgICAgICAgICAgXy5vZmYoZG9jdW1lbnQsIFsna2V5ZG93bicsICdrZXl1cCddLCBfa2V5Ym9hcmQpO1xuICAgICAgICAgICAgXy5vZmYoW29wdGlvbnMud3JhcHBlciwgb3B0aW9ucy5lbGVtZW50XSwgJ21vdXNlZG93bicsIF90YXBzdGFydCk7XG4gICAgICAgICAgICBfLm9mZihbb3B0aW9ucy53cmFwcGVyLCBvcHRpb25zLmVsZW1lbnRdLCAndG91Y2hzdGFydCcsIF90YXBzdGFydCwge1xuICAgICAgICAgICAgICAgIHBhc3NpdmU6IGZhbHNlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBJbml0aWxpemVcbiAgICBjb25zdCB7b3B0aW9ucywgX3RhcHN0YXJ0LCBfa2V5Ym9hcmR9ID0gdGhhdDtcbiAgICBfLm9uKFtvcHRpb25zLndyYXBwZXIsIG9wdGlvbnMuZWxlbWVudF0sICdtb3VzZWRvd24nLCBfdGFwc3RhcnQpO1xuICAgIF8ub24oW29wdGlvbnMud3JhcHBlciwgb3B0aW9ucy5lbGVtZW50XSwgJ3RvdWNoc3RhcnQnLCBfdGFwc3RhcnQsIHtcbiAgICAgICAgcGFzc2l2ZTogZmFsc2VcbiAgICB9KTtcblxuICAgIF8ub24oZG9jdW1lbnQsIFsna2V5ZG93bicsICdrZXl1cCddLCBfa2V5Ym9hcmQpO1xuXG4gICAgcmV0dXJuIHRoYXQ7XG59XG4iLCAiaW1wb3J0ICogYXMgXyBmcm9tICcuLi91dGlscy91dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFNlbGVjdGFibGUob3B0ID0ge30pIHtcbiAgICBvcHQgPSBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgb25jaGFuZ2U6ICgpID0+IDAsXG4gICAgICAgIGNsYXNzTmFtZTogJycsXG4gICAgICAgIGVsZW1lbnRzOiBbXVxuICAgIH0sIG9wdCk7XG5cbiAgICBjb25zdCBvblRhcCA9IF8ub24ob3B0LmVsZW1lbnRzLCAnY2xpY2snLCBldnQgPT4ge1xuICAgICAgICBvcHQuZWxlbWVudHMuZm9yRWFjaChlID0+XG4gICAgICAgICAgICBlLmNsYXNzTGlzdFtldnQudGFyZ2V0ID09PSBlID8gJ2FkZCcgOiAncmVtb3ZlJ10ob3B0LmNsYXNzTmFtZSlcbiAgICAgICAgKTtcblxuICAgICAgICBvcHQub25jaGFuZ2UoZXZ0KTtcblxuICAgICAgICAvLyBGaXggZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS9TaW1vbndlcC9waWNrci9pc3N1ZXMvMjQzXG4gICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIGRlc3Ryb3k6ICgpID0+IF8ub2ZmKC4uLm9uVGFwKVxuICAgIH07XG59XG4iLCAiaW1wb3J0ICogYXMgXyBmcm9tICcuL3V0aWxzL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgaW5zdGFuY2UgPT4ge1xuXG4gICAgY29uc3Qge1xuICAgICAgICBjb21wb25lbnRzLFxuICAgICAgICB1c2VBc0J1dHRvbixcbiAgICAgICAgaW5saW5lLFxuICAgICAgICBhcHBDbGFzcyxcbiAgICAgICAgdGhlbWUsXG4gICAgICAgIGxvY2tPcGFjaXR5XG4gICAgfSA9IGluc3RhbmNlLm9wdGlvbnM7XG5cbiAgICAvLyBVdGlsc1xuICAgIGNvbnN0IGhpZGRlbiA9IGNvbiA9PiBjb24gPyAnJyA6ICdzdHlsZT1cImRpc3BsYXk6bm9uZVwiIGhpZGRlbic7XG4gICAgY29uc3QgdCA9IHN0ciA9PiBpbnN0YW5jZS5fdChzdHIpO1xuXG4gICAgY29uc3Qgcm9vdCA9IF8uY3JlYXRlRnJvbVRlbXBsYXRlKGBcbiAgICAgIDxkaXYgOnJlZj1cInJvb3RcIiBjbGFzcz1cInBpY2tyXCI+XG5cbiAgICAgICAgJHt1c2VBc0J1dHRvbiA/ICcnIDogJzxidXR0b24gdHlwZT1cImJ1dHRvblwiIDpyZWY9XCJidXR0b25cIiBjbGFzcz1cInBjci1idXR0b25cIj48L2J1dHRvbj4nfVxuXG4gICAgICAgIDxkaXYgOnJlZj1cImFwcFwiIGNsYXNzPVwicGNyLWFwcCAke2FwcENsYXNzIHx8ICcnfVwiIGRhdGEtdGhlbWU9XCIke3RoZW1lfVwiICR7aW5saW5lID8gJ3N0eWxlPVwicG9zaXRpb246IHVuc2V0XCInIDogJyd9IGFyaWEtbGFiZWw9XCIke3QoJ3VpOmRpYWxvZycsICdjb2xvciBwaWNrZXIgZGlhbG9nJyl9XCIgcm9sZT1cIndpbmRvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwY3Itc2VsZWN0aW9uXCIgJHtoaWRkZW4oY29tcG9uZW50cy5wYWxldHRlKX0+XG4gICAgICAgICAgICA8ZGl2IDpvYmo9XCJwcmV2aWV3XCIgY2xhc3M9XCJwY3ItY29sb3ItcHJldmlld1wiICR7aGlkZGVuKGNvbXBvbmVudHMucHJldmlldyl9PlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiA6cmVmPVwibGFzdENvbG9yXCIgY2xhc3M9XCJwY3ItbGFzdC1jb2xvclwiIGFyaWEtbGFiZWw9XCIke3QoJ2J0bjpsYXN0LWNvbG9yJyl9XCI+PC9idXR0b24+XG4gICAgICAgICAgICAgIDxkaXYgOnJlZj1cImN1cnJlbnRDb2xvclwiIGNsYXNzPVwicGNyLWN1cnJlbnQtY29sb3JcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IDpvYmo9XCJwYWxldHRlXCIgY2xhc3M9XCJwY3ItY29sb3ItcGFsZXR0ZVwiPlxuICAgICAgICAgICAgICA8ZGl2IDpyZWY9XCJwaWNrZXJcIiBjbGFzcz1cInBjci1waWNrZXJcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiA6cmVmPVwicGFsZXR0ZVwiIGNsYXNzPVwicGNyLXBhbGV0dGVcIiB0YWJpbmRleD1cIjBcIiBhcmlhLWxhYmVsPVwiJHt0KCdhcmlhOnBhbGV0dGUnKX1cIiByb2xlPVwibGlzdGJveFwiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgOm9iaj1cImh1ZVwiIGNsYXNzPVwicGNyLWNvbG9yLWNob29zZXJcIiAke2hpZGRlbihjb21wb25lbnRzLmh1ZSl9PlxuICAgICAgICAgICAgICA8ZGl2IDpyZWY9XCJwaWNrZXJcIiBjbGFzcz1cInBjci1waWNrZXJcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiA6cmVmPVwic2xpZGVyXCIgY2xhc3M9XCJwY3ItaHVlIHBjci1zbGlkZXJcIiB0YWJpbmRleD1cIjBcIiBhcmlhLWxhYmVsPVwiJHt0KCdhcmlhOmh1ZScpfVwiIHJvbGU9XCJzbGlkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IDpvYmo9XCJvcGFjaXR5XCIgY2xhc3M9XCJwY3ItY29sb3Itb3BhY2l0eVwiICR7aGlkZGVuKGNvbXBvbmVudHMub3BhY2l0eSl9PlxuICAgICAgICAgICAgICA8ZGl2IDpyZWY9XCJwaWNrZXJcIiBjbGFzcz1cInBjci1waWNrZXJcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiA6cmVmPVwic2xpZGVyXCIgY2xhc3M9XCJwY3Itb3BhY2l0eSBwY3Itc2xpZGVyXCIgdGFiaW5kZXg9XCIwXCIgYXJpYS1sYWJlbD1cIiR7dCgnYXJpYTpvcGFjaXR5JywgJ29wYWNpdHkgc2VsZWN0aW9uIHNsaWRlcicpfVwiIHJvbGU9XCJzbGlkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBjci1zd2F0Y2hlcyAke2NvbXBvbmVudHMucGFsZXR0ZSA/ICcnIDogJ3Bjci1sYXN0J31cIiA6cmVmPVwic3dhdGNoZXNcIj48L2Rpdj5cblxuICAgICAgICAgIDxkaXYgOm9iaj1cImludGVyYWN0aW9uXCIgY2xhc3M9XCJwY3ItaW50ZXJhY3Rpb25cIiAke2hpZGRlbihPYmplY3Qua2V5cyhjb21wb25lbnRzLmludGVyYWN0aW9uKS5sZW5ndGgpfT5cbiAgICAgICAgICAgIDxpbnB1dCA6cmVmPVwicmVzdWx0XCIgY2xhc3M9XCJwY3ItcmVzdWx0XCIgdHlwZT1cInRleHRcIiBzcGVsbGNoZWNrPVwiZmFsc2VcIiAke2hpZGRlbihjb21wb25lbnRzLmludGVyYWN0aW9uLmlucHV0KX0gYXJpYS1sYWJlbD1cIiR7dCgnYXJpYTppbnB1dCcsICdjb2xvciBpbnB1dCBmaWVsZCcpfVwiPlxuXG4gICAgICAgICAgICA8aW5wdXQgOmFycj1cIm9wdGlvbnNcIiBjbGFzcz1cInBjci10eXBlXCIgZGF0YS10eXBlPVwiSEVYQVwiIHZhbHVlPVwiJHtsb2NrT3BhY2l0eSA/ICdIRVgnIDogJ0hFWEEnfVwiIHR5cGU9XCJidXR0b25cIiAke2hpZGRlbihjb21wb25lbnRzLmludGVyYWN0aW9uLmhleCl9PlxuICAgICAgICAgICAgPGlucHV0IDphcnI9XCJvcHRpb25zXCIgY2xhc3M9XCJwY3ItdHlwZVwiIGRhdGEtdHlwZT1cIlJHQkFcIiB2YWx1ZT1cIiR7bG9ja09wYWNpdHkgPyAnUkdCJyA6ICdSR0JBJ31cIiB0eXBlPVwiYnV0dG9uXCIgJHtoaWRkZW4oY29tcG9uZW50cy5pbnRlcmFjdGlvbi5yZ2JhKX0+XG4gICAgICAgICAgICA8aW5wdXQgOmFycj1cIm9wdGlvbnNcIiBjbGFzcz1cInBjci10eXBlXCIgZGF0YS10eXBlPVwiSFNMQVwiIHZhbHVlPVwiJHtsb2NrT3BhY2l0eSA/ICdIU0wnIDogJ0hTTEEnfVwiIHR5cGU9XCJidXR0b25cIiAke2hpZGRlbihjb21wb25lbnRzLmludGVyYWN0aW9uLmhzbGEpfT5cbiAgICAgICAgICAgIDxpbnB1dCA6YXJyPVwib3B0aW9uc1wiIGNsYXNzPVwicGNyLXR5cGVcIiBkYXRhLXR5cGU9XCJIU1ZBXCIgdmFsdWU9XCIke2xvY2tPcGFjaXR5ID8gJ0hTVicgOiAnSFNWQSd9XCIgdHlwZT1cImJ1dHRvblwiICR7aGlkZGVuKGNvbXBvbmVudHMuaW50ZXJhY3Rpb24uaHN2YSl9PlxuICAgICAgICAgICAgPGlucHV0IDphcnI9XCJvcHRpb25zXCIgY2xhc3M9XCJwY3ItdHlwZVwiIGRhdGEtdHlwZT1cIkNNWUtcIiB2YWx1ZT1cIkNNWUtcIiB0eXBlPVwiYnV0dG9uXCIgJHtoaWRkZW4oY29tcG9uZW50cy5pbnRlcmFjdGlvbi5jbXlrKX0+XG5cbiAgICAgICAgICAgIDxpbnB1dCA6cmVmPVwic2F2ZVwiIGNsYXNzPVwicGNyLXNhdmVcIiB2YWx1ZT1cIiR7dCgnYnRuOnNhdmUnKX1cIiB0eXBlPVwiYnV0dG9uXCIgJHtoaWRkZW4oY29tcG9uZW50cy5pbnRlcmFjdGlvbi5zYXZlKX0gYXJpYS1sYWJlbD1cIiR7dCgnYXJpYTpidG46c2F2ZScpfVwiPlxuICAgICAgICAgICAgPGlucHV0IDpyZWY9XCJjYW5jZWxcIiBjbGFzcz1cInBjci1jYW5jZWxcIiB2YWx1ZT1cIiR7dCgnYnRuOmNhbmNlbCcpfVwiIHR5cGU9XCJidXR0b25cIiAke2hpZGRlbihjb21wb25lbnRzLmludGVyYWN0aW9uLmNhbmNlbCl9IGFyaWEtbGFiZWw9XCIke3QoJ2FyaWE6YnRuOmNhbmNlbCcpfVwiPlxuICAgICAgICAgICAgPGlucHV0IDpyZWY9XCJjbGVhclwiIGNsYXNzPVwicGNyLWNsZWFyXCIgdmFsdWU9XCIke3QoJ2J0bjpjbGVhcicpfVwiIHR5cGU9XCJidXR0b25cIiAke2hpZGRlbihjb21wb25lbnRzLmludGVyYWN0aW9uLmNsZWFyKX0gYXJpYS1sYWJlbD1cIiR7dCgnYXJpYTpidG46Y2xlYXInKX1cIj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgKTtcblxuICAgIGNvbnN0IGludCA9IHJvb3QuaW50ZXJhY3Rpb247XG5cbiAgICAvLyBTZWxlY3Qgb3B0aW9uIHdoaWNoIGlzIG5vdCBoaWRkZW5cbiAgICBpbnQub3B0aW9ucy5maW5kKG8gPT4gIW8uaGlkZGVuICYmICFvLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpKTtcblxuICAgIC8vIEFwcGVuZCBtZXRob2QgdG8gZmluZCBjdXJyZW50bHkgYWN0aXZlIG9wdGlvblxuICAgIGludC50eXBlID0gKCkgPT4gaW50Lm9wdGlvbnMuZmluZChlID0+IGUuY2xhc3NMaXN0LmNvbnRhaW5zKCdhY3RpdmUnKSk7XG4gICAgcmV0dXJuIHJvb3Q7XG59O1xuIiwgInR5cGUgRGlyZWN0aW9uID0gJ3RvcCcgfCAnbGVmdCcgfCAnYm90dG9tJyB8ICdyaWdodCc7XG50eXBlIEFsaWdubWVudCA9ICdzdGFydCcgfCAnbWlkZGxlJyB8ICdlbmQnO1xuXG5leHBvcnQgdHlwZSBWYXJpYW50RmxpcE9yZGVyID0ge1xuICAgIHN0YXJ0OiBzdHJpbmc7XG4gICAgbWlkZGxlOiBzdHJpbmc7XG4gICAgZW5kOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBQb3NpdGlvbkZsaXBPcmRlciA9IHtcbiAgICB0b3A6IHN0cmluZztcbiAgICByaWdodDogc3RyaW5nO1xuICAgIGJvdHRvbTogc3RyaW5nO1xuICAgIGxlZnQ6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIE5hbm9Qb3BQb3NpdGlvbiA9IGAke0RpcmVjdGlvbn0tJHtBbGlnbm1lbnR9YCB8IERpcmVjdGlvbjtcblxuZXhwb3J0IHR5cGUgTmFub1BvcE9wdGlvbnMgPSB7XG4gICAgY29udGFpbmVyOiBET01SZWN0O1xuICAgIHBvc2l0aW9uOiBOYW5vUG9wUG9zaXRpb247XG4gICAgdmFyaWFudEZsaXBPcmRlcjogVmFyaWFudEZsaXBPcmRlcjtcbiAgICBwb3NpdGlvbkZsaXBPcmRlcjogUG9zaXRpb25GbGlwT3JkZXI7XG4gICAgbWFyZ2luOiBudW1iZXI7XG4gICAgcmVmZXJlbmNlPzogSFRNTEVsZW1lbnQ7XG4gICAgcG9wcGVyPzogSFRNTEVsZW1lbnQ7XG4gICAgYXJyb3c/OiBIVE1MRWxlbWVudDtcbiAgICBwYWRkaW5nPzogbnVtYmVyO1xufTtcblxudHlwZSBBdmFpbGFibGVQb3NpdGlvbnMgPSB7XG4gICAgdDogbnVtYmVyO1xuICAgIGI6IG51bWJlcjtcbiAgICBsOiBudW1iZXI7XG4gICAgcjogbnVtYmVyO1xufTtcblxudHlwZSBBdmFpbGFibGVWYXJpYW50cyA9IHtcbiAgICB2czogbnVtYmVyO1xuICAgIHZtOiBudW1iZXI7XG4gICAgdmU6IG51bWJlcjtcbiAgICBoczogbnVtYmVyO1xuICAgIGhtOiBudW1iZXI7XG4gICAgaGU6IG51bWJlcjtcbn07XG5cbnR5cGUgUG9zaXRpb25QYWlycyA9IFtEaXJlY3Rpb24sIERpcmVjdGlvbl07XG5cbmV4cG9ydCB0eXBlIFBvc2l0aW9uTWF0Y2ggPSAndHMnIHwgJ3RtJyB8ICd0ZScgfCAnYnMnIHwgJ2JtJyB8ICdiZScgfCAnbHMnIHwgJ2xtJyB8ICdsZScgfCAncnMnIHwgJ3JtJyB8ICdyZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmFub1BvcCB7XG4gICAgdXBkYXRlKHVwZGF0ZWRPcHRpb25zPzogUGFydGlhbDxOYW5vUG9wT3B0aW9ucz4pOiBQb3NpdGlvbk1hdGNoIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOYW5vUG9wQ29uc3RydWN0b3Ige1xuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHJlZmVyZW5jZSBSZWZlcmVuY2UgZWxlbWVudFxuICAgICAqIEBwYXJhbSBwb3BwZXIgQWN0dWFsIHBvcHBlciBlbGVtZW50XG4gICAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uYWwgb3B0aW9uc1xuICAgICAqL1xuICAgIChyZWZlcmVuY2U6IEhUTUxFbGVtZW50LCBwb3BwZXI6IEhUTUxFbGVtZW50LCBvcHRpb25zPzogUGFydGlhbDxOYW5vUG9wT3B0aW9ucz4pOiBOYW5vUG9wO1xuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIG9wdGlvbnMgUGFydGlhbCBvcHRpb25zIHdoaWNoIGdldCBtZXJnZWQgd2l0aCB0aGUgY3VycmVudCBvbmVcbiAgICAgKi9cbiAgICAob3B0aW9ucz86IFBhcnRpYWw8TmFub1BvcE9wdGlvbnM+KTogTmFub1BvcDtcbn1cblxuLy8gRXhwb3J0IGN1cnJlbnQgdmVyc2lvblxuZXhwb3J0IGNvbnN0IHZlcnNpb24gPSBWRVJTSU9OO1xuXG4vLyBFeHBvcnQgZGVmYXVsdFxuZXhwb3J0IGNvbnN0IGRlZmF1bHRzID0ge1xuICAgIHZhcmlhbnRGbGlwT3JkZXI6IHtzdGFydDogJ3NtZScsIG1pZGRsZTogJ21zZScsIGVuZDogJ2Vtcyd9LFxuICAgIHBvc2l0aW9uRmxpcE9yZGVyOiB7dG9wOiAndGJybCcsIHJpZ2h0OiAncmx0YicsIGJvdHRvbTogJ2J0cmwnLCBsZWZ0OiAnbHJidCd9LFxuICAgIHBvc2l0aW9uOiAnYm90dG9tJyxcbiAgICBtYXJnaW46IDgsXG4gICAgcGFkZGluZzogMFxufTtcblxuLyoqXG4gKiBSZXBvc2l0aW9ucyBhbiBlbGVtZW50IG9uY2UgdXNpbmcgdGhlIHByb3ZpZGVkIG9wdGlvbnMgYW5kIGVsZW1lbnRzLlxuICogQHBhcmFtIHJlZmVyZW5jZSBSZWZlcmVuY2UgZWxlbWVudFxuICogQHBhcmFtIHBvcHBlciBQb3BwZXIgZWxlbWVudFxuICogQHBhcmFtIG9wdCBPcHRpb25hbCwgYWRkaXRpb25hbCBvcHRpb25zXG4gKi9cbmV4cG9ydCBjb25zdCByZXBvc2l0aW9uID0gKFxuICAgIHJlZmVyZW5jZTogSFRNTEVsZW1lbnQsXG4gICAgcG9wcGVyOiBIVE1MRWxlbWVudCxcbiAgICBvcHQ/OiBQYXJ0aWFsPE5hbm9Qb3BPcHRpb25zPlxuKTogUG9zaXRpb25NYXRjaCB8IG51bGwgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgICAgY29udGFpbmVyLFxuICAgICAgICBhcnJvdyxcbiAgICAgICAgbWFyZ2luLFxuICAgICAgICBwYWRkaW5nLFxuICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgdmFyaWFudEZsaXBPcmRlcixcbiAgICAgICAgcG9zaXRpb25GbGlwT3JkZXJcbiAgICB9ID0ge1xuICAgICAgICBjb250YWluZXI6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxcbiAgICAgICAgLi4uZGVmYXVsdHMsXG4gICAgICAgIC4uLm9wdFxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZXNldCBwb3NpdGlvbiB0byByZXNvbHZlIHZpZXdwb3J0XG4gICAgICogU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9wb3NpdGlvbiNmaXhlZFxuICAgICAqL1xuICAgIGNvbnN0IHtsZWZ0OiBvcmlnaW5hbExlZnQsIHRvcDogb3JpZ2luYWxUb3B9ID0gcG9wcGVyLnN0eWxlO1xuICAgIHBvcHBlci5zdHlsZS5sZWZ0ID0gJzAnO1xuICAgIHBvcHBlci5zdHlsZS50b3AgPSAnMCc7XG5cbiAgICBjb25zdCByZWZCb3ggPSByZWZlcmVuY2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgcG9wQm94ID0gcG9wcGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgLyoqXG4gICAgICogSG9sZHMgY29vcmRpbmF0ZXMgb2YgdG9wLCBsZWZ0LCBib3R0b20gYW5kIHJpZ2h0IGFsaWdubWVudFxuICAgICAqL1xuICAgIGNvbnN0IHBvc2l0aW9uU3RvcmU6IEF2YWlsYWJsZVBvc2l0aW9ucyA9IHtcbiAgICAgICAgdDogcmVmQm94LnRvcCAtIHBvcEJveC5oZWlnaHQgLSBtYXJnaW4sXG4gICAgICAgIGI6IHJlZkJveC5ib3R0b20gKyBtYXJnaW4sXG4gICAgICAgIHI6IHJlZkJveC5yaWdodCArIG1hcmdpbixcbiAgICAgICAgbDogcmVmQm94LmxlZnQgLSBwb3BCb3gud2lkdGggLSBtYXJnaW5cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogSG9sZHMgY29ycmVzcG9uZGluZyB2YXJpYW50cyAoc3RhcnQsIG1pZGRsZSwgZW5kKS5cbiAgICAgKiBUaGUgdmFsdWVzIGRlcGVuZCBvbiBob3Jpem9udGFsIC8gdmVydGljYWwgb3JpZW50YXRpb25cbiAgICAgKi9cbiAgICBjb25zdCB2YXJpYW50U3RvcmU6IEF2YWlsYWJsZVZhcmlhbnRzID0ge1xuICAgICAgICB2czogcmVmQm94LmxlZnQsXG4gICAgICAgIHZtOiByZWZCb3gubGVmdCArIHJlZkJveC53aWR0aCAvIDIgLSBwb3BCb3gud2lkdGggLyAyLFxuICAgICAgICB2ZTogcmVmQm94LmxlZnQgKyByZWZCb3gud2lkdGggLSBwb3BCb3gud2lkdGgsXG4gICAgICAgIGhzOiByZWZCb3gudG9wLFxuICAgICAgICBobTogcmVmQm94LmJvdHRvbSAtIHJlZkJveC5oZWlnaHQgLyAyIC0gcG9wQm94LmhlaWdodCAvIDIsXG4gICAgICAgIGhlOiByZWZCb3guYm90dG9tIC0gcG9wQm94LmhlaWdodFxuICAgIH07XG5cbiAgICAvLyBFeHRyYWN0IHBvc2l0aW9uIGFuZCB2YXJpYW50XG4gICAgLy8gVG9wLXN0YXJ0IC0+IHRvcCBpcyBcInBvc2l0aW9uXCIgYW5kIFwic3RhcnRcIiBpcyB0aGUgdmFyaWFudFxuICAgIGNvbnN0IFtwb3NLZXksIHZhcktleSA9ICdtaWRkbGUnXSA9IHBvc2l0aW9uLnNwbGl0KCctJyk7XG4gICAgY29uc3QgcG9zaXRpb25zID0gcG9zaXRpb25GbGlwT3JkZXJbcG9zS2V5IGFzIGtleW9mIFBvc2l0aW9uRmxpcE9yZGVyXTtcbiAgICBjb25zdCB2YXJpYW50cyA9IHZhcmlhbnRGbGlwT3JkZXJbdmFyS2V5IGFzIGtleW9mIFZhcmlhbnRGbGlwT3JkZXJdO1xuXG4gICAgLy8gVHJ5IG91dCBhbGwgcG9zc2libGUgY29tYmluYXRpb25zLCBzdGFydGluZyB3aXRoIHRoZSBwcmVmZXJyZWQgb25lLlxuICAgIGNvbnN0IHt0b3AsIGxlZnQsIGJvdHRvbSwgcmlnaHR9ID0gY29udGFpbmVyO1xuXG4gICAgZm9yIChjb25zdCBwIG9mIHBvc2l0aW9ucykge1xuICAgICAgICBjb25zdCB2ZXJ0aWNhbCA9IChwID09PSAndCcgfHwgcCA9PT0gJ2InKTtcblxuICAgICAgICAvLyBUaGUgcG9zaXRpb24tdmFsdWVcbiAgICAgICAgbGV0IHBvc2l0aW9uVmFsID0gcG9zaXRpb25TdG9yZVtwIGFzIGtleW9mIEF2YWlsYWJsZVBvc2l0aW9uc107XG5cbiAgICAgICAgLy8gV2hpY2ggcHJvcGVydHkgaGFzIHRvIGJlIGNoYW5nZXMuXG4gICAgICAgIGNvbnN0IFtwb3NpdGlvbktleSwgdmFyaWFudEtleV0gPSAodmVydGljYWwgPyBbJ3RvcCcsICdsZWZ0J10gOiBbJ2xlZnQnLCAndG9wJ10pIGFzIFBvc2l0aW9uUGFpcnM7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGJveCByZWZlcnMgdG8gdGhlIHNpemUgb2YgdGhlIHBvcHBlciBlbGVtZW50LiBEZXBlbmRpbmcgb24gdGhlIG9yaWVudGF0aW9uIHRoaXMgaXMgd2lkdGggb3IgaGVpZ2h0LlxuICAgICAgICAgKiBUaGUgbGltaXQgaXMgdGhlIGNvcnJlc3BvbmRpbmcsIG1heGltdW0gdmFsdWUgZm9yIHRoaXMgcG9zaXRpb24uXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBbcG9zaXRpb25TaXplLCB2YXJpYW50U2l6ZV0gPSB2ZXJ0aWNhbCA/IFtwb3BCb3guaGVpZ2h0LCBwb3BCb3gud2lkdGhdIDogW3BvcEJveC53aWR0aCwgcG9wQm94LmhlaWdodF07XG5cbiAgICAgICAgY29uc3QgW3Bvc2l0aW9uTWF4aW11bSwgdmFyaWFudE1heGltdW1dID0gdmVydGljYWwgPyBbYm90dG9tLCByaWdodF0gOiBbcmlnaHQsIGJvdHRvbV07XG4gICAgICAgIGNvbnN0IFtwb3NpdGlvbk1pbmltdW0sIHZhcmlhbnRNaW5pbXVtXSA9IHZlcnRpY2FsID8gW3RvcCwgbGVmdF0gOiBbbGVmdCwgdG9wXTtcblxuICAgICAgICAvLyBTa2lwIHByZS1jbGlwcGVkIHZhbHVlc1xuICAgICAgICBpZiAocG9zaXRpb25WYWwgPCBwb3NpdGlvbk1pbmltdW0gfHwgKHBvc2l0aW9uVmFsICsgcG9zaXRpb25TaXplICsgcGFkZGluZykgPiBwb3NpdGlvbk1heGltdW0pIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCB2IG9mIHZhcmlhbnRzKSB7XG5cbiAgICAgICAgICAgIC8vIFRoZSBwb3NpdGlvbi12YWx1ZSwgdGhlIHJlbGF0ZWQgc2l6ZSB2YWx1ZSBvZiB0aGUgcG9wcGVyIGFuZCB0aGUgbGltaXRcbiAgICAgICAgICAgIGxldCB2YXJpYW50VmFsID0gdmFyaWFudFN0b3JlWygodmVydGljYWwgPyAndicgOiAnaCcpICsgdikgYXMga2V5b2YgQXZhaWxhYmxlVmFyaWFudHNdO1xuXG4gICAgICAgICAgICBpZiAodmFyaWFudFZhbCA8IHZhcmlhbnRNaW5pbXVtIHx8ICh2YXJpYW50VmFsICsgdmFyaWFudFNpemUgKyBwYWRkaW5nKSA+IHZhcmlhbnRNYXhpbXVtKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFN1YnRyYWN0IHBvcEJveCdzIGluaXRpYWwgcG9zaXRpb25cbiAgICAgICAgICAgIHZhcmlhbnRWYWwgLT0gcG9wQm94W3ZhcmlhbnRLZXldO1xuICAgICAgICAgICAgcG9zaXRpb25WYWwgLT0gcG9wQm94W3Bvc2l0aW9uS2V5XTtcblxuICAgICAgICAgICAgLy8gQXBwbHkgc3R5bGVzIGFuZCBub3JtYWxpemUgdmlld3BvcnRcbiAgICAgICAgICAgIHBvcHBlci5zdHlsZVt2YXJpYW50S2V5XSA9IGAke3ZhcmlhbnRWYWx9cHhgO1xuICAgICAgICAgICAgcG9wcGVyLnN0eWxlW3Bvc2l0aW9uS2V5XSA9IGAke3Bvc2l0aW9uVmFsfXB4YDtcblxuICAgICAgICAgICAgaWYgKGFycm93KSB7XG4gICAgICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIHJlZkJveCdzIGNlbnRlciBvZmZzZXQgZnJvbSBpdHMgdmFyaWFudCBwb3NpdGlvbiBmb3IgYXJyb3cgcG9zaXRpb25pbmdcbiAgICAgICAgICAgICAgICBjb25zdCByZWZCb3hDZW50ZXJPZmZzZXQgPSB2ZXJ0aWNhbCA/IHJlZkJveC53aWR0aCAvIDIgOiByZWZCb3guaGVpZ2h0IC8gMjtcblxuICAgICAgICAgICAgICAgIC8vIFdoZW4gcmVmQm94IGlzIGxhcmdlciB0aGFuIHBvcEJveCwgaGF2ZSB0aGUgYXJyb3cncyB2YXJpYW50IHBvc2l0aW9uIGJlIHRoZSBjZW50ZXIgb2YgcG9wQm94IGluc3RlYWQuXG4gICAgICAgICAgICAgICAgY29uc3QgYXJyb3dWYXJpYW50VmFsID0gcmVmQm94Q2VudGVyT2Zmc2V0ICogMiA8IHZhcmlhbnRTaXplID9cbiAgICAgICAgICAgICAgICAgICAgcmVmQm94W3ZhcmlhbnRLZXldICsgcmVmQm94Q2VudGVyT2Zmc2V0IDogdmFyaWFudFZhbCArIHZhcmlhbnRTaXplIC8gMjtcblxuICAgICAgICAgICAgICAgIC8vIEFycm93IHBvc2l0aW9uIGlzIGVpdGhlciBvbiBvbmUgc2lkZSBvZiB0aGUgcG9wQm94IG9yIHRoZSBvdGhlci5cbiAgICAgICAgICAgICAgICBpZiAocG9zaXRpb25WYWwgPCByZWZCb3hbcG9zaXRpb25LZXldKSB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uVmFsICs9IHBvc2l0aW9uU2l6ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBBcHBseSBzdHlsZXMgdG8gYXJyb3dcbiAgICAgICAgICAgICAgICBhcnJvdy5zdHlsZVt2YXJpYW50S2V5XSA9IGAke2Fycm93VmFyaWFudFZhbH1weGA7XG4gICAgICAgICAgICAgICAgYXJyb3cuc3R5bGVbcG9zaXRpb25LZXldID0gYCR7cG9zaXRpb25WYWx9cHhgO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gKHAgKyB2KSBhcyBQb3NpdGlvbk1hdGNoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmV2ZXJ0IHN0eWxlIHZhbHVlcyAod29uJ3Qgd29yayB3aXRoIHN0eWxlZC1lbGVtZW50cyBvciBzaW1pbGFyIHN5c3RlbXMpXG4gICAgLy8gXCJGaXhcIiBmb3IgaHR0cHM6Ly9naXRodWIuY29tL1NpbW9ud2VwL25hbm9wb3AvaXNzdWVzLzdcbiAgICBwb3BwZXIuc3R5bGUubGVmdCA9IG9yaWdpbmFsTGVmdDtcbiAgICBwb3BwZXIuc3R5bGUudG9wID0gb3JpZ2luYWxUb3A7XG5cbiAgICByZXR1cm4gbnVsbDtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhIHN0YXRlZnVsIHBvcHBlci5cbiAqIFlvdSBjYW4gZWl0aGVyLi4uXG4gKiAuLi4gcGFzcyBhbiBvcHRpb25zIG9iamVjdDogY3JlYXRlUG9wcGVyKDxvcHRpb25zPilcbiAqIC4uLiBwYXNzIGJvdGggdGhlIHJlZmVyZW5jZSBhbmQgcG9wcGVyOiBjcmVhdGUoPHJlZj4sIDxlbD4sIDw/b3B0aW9ucz4pXG4gKiAuLi4gcGFzcyBub3RoaW5nLCBpbiB0aGlzIGNhc2UgeW91J2xsIGhhdmUgdG8gc2V0IGF0IGxlYXN0IGJvdGggYSByZWZlcmVuY2UgYW5kIGEgcG9wcGVyIGluIHVwZGF0ZS5cbiAqXG4gKiBAcGFyYW0gcmVmZXJlbmNlIHwgb3B0aW9ucyBSZWZlcmVuY2UgZWxlbWVudCBvciBvcHRpb25zXG4gKiBAcGFyYW0gcG9wcGVyIFBvcHBlciBlbGVtZW50XG4gKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25hbCBhZGRpdGlvbmFsIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZVBvcHBlcjogTmFub1BvcENvbnN0cnVjdG9yID0gKFxuICAgIHJlZmVyZW5jZT86IEhUTUxFbGVtZW50IHwgUGFydGlhbDxOYW5vUG9wT3B0aW9ucz4sXG4gICAgcG9wcGVyPzogSFRNTEVsZW1lbnQsXG4gICAgb3B0aW9ucz86IFBhcnRpYWw8TmFub1BvcE9wdGlvbnM+XG4pOiBOYW5vUG9wID0+IHtcblxuICAgIC8vIFJlc29sdmUgb3B0aW9uc1xuICAgIGNvbnN0IGJhc2VPcHRpb25zOiBQYXJ0aWFsPE5hbm9Qb3BPcHRpb25zPiA9IHR5cGVvZiByZWZlcmVuY2UgPT09ICdvYmplY3QnICYmICEocmVmZXJlbmNlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpID9cbiAgICAgICAgcmVmZXJlbmNlIDoge3JlZmVyZW5jZSwgcG9wcGVyLCAuLi5vcHRpb25zfTtcblxuICAgIHJldHVybiB7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJlcG9zaXRpb25zIHRoZSBjdXJyZW50IHBvcHBlci5cbiAgICAgICAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uYWwgb3B0aW9ucyB3aGljaCBnZXQgbWVyZ2VkIHdpdGggdGhlIGN1cnJlbnQgb25lcy5cbiAgICAgICAgICovXG4gICAgICAgIHVwZGF0ZShvcHRpb25zOiBQYXJ0aWFsPE5hbm9Qb3BPcHRpb25zPiA9IGJhc2VPcHRpb25zKTogUG9zaXRpb25NYXRjaCB8IG51bGwge1xuICAgICAgICAgICAgY29uc3Qge3JlZmVyZW5jZSwgcG9wcGVyfSA9IE9iamVjdC5hc3NpZ24oYmFzZU9wdGlvbnMsIG9wdGlvbnMpO1xuXG4gICAgICAgICAgICBpZiAoIXBvcHBlciB8fCAhcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdQb3BwZXItIG9yIHJlZmVyZW5jZS1lbGVtZW50IG1pc3NpbmcuJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZXBvc2l0aW9uKHJlZmVyZW5jZSwgcG9wcGVyLCBiYXNlT3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9O1xufTtcbiIsICJpbXBvcnQgKiBhcyBfIGZyb20gJy4vdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHtwYXJzZVRvSFNWQX0gZnJvbSAnLi91dGlscy9jb2xvcic7XG5pbXBvcnQge0hTVmFDb2xvcn0gZnJvbSAnLi91dGlscy9oc3ZhY29sb3InO1xuaW1wb3J0IE1vdmVhYmxlIGZyb20gJy4vbGlicy9tb3ZlYWJsZSc7XG5pbXBvcnQgU2VsZWN0YWJsZSBmcm9tICcuL2xpYnMvc2VsZWN0YWJsZSc7XG5pbXBvcnQgYnVpbGRQaWNrciBmcm9tICcuL3RlbXBsYXRlJztcbmltcG9ydCB7Y3JlYXRlUG9wcGVyfSBmcm9tICduYW5vcG9wJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGlja3Ige1xuXG4gICAgLy8gRXhwb3NlIHBpY2tyIHV0aWxzXG4gICAgc3RhdGljIHV0aWxzID0gXztcblxuICAgIC8vIEFzc2lnbiB2ZXJzaW9uIGFuZCBleHBvcnRcbiAgICBzdGF0aWMgdmVyc2lvbiA9IFZFUlNJT047XG5cbiAgICAvLyBEZWZhdWx0IHN0cmluZ3NcbiAgICBzdGF0aWMgSTE4Tl9ERUZBVUxUUyA9IHtcblxuICAgICAgICAvLyBTdHJpbmdzIHZpc2libGUgaW4gdGhlIFVJXG4gICAgICAgICd1aTpkaWFsb2cnOiAnY29sb3IgcGlja2VyIGRpYWxvZycsXG4gICAgICAgICdidG46dG9nZ2xlJzogJ3RvZ2dsZSBjb2xvciBwaWNrZXIgZGlhbG9nJyxcbiAgICAgICAgJ2J0bjpzd2F0Y2gnOiAnY29sb3Igc3dhdGNoJyxcbiAgICAgICAgJ2J0bjpsYXN0LWNvbG9yJzogJ3VzZSBwcmV2aW91cyBjb2xvcicsXG4gICAgICAgICdidG46c2F2ZSc6ICdTYXZlJyxcbiAgICAgICAgJ2J0bjpjYW5jZWwnOiAnQ2FuY2VsJyxcbiAgICAgICAgJ2J0bjpjbGVhcic6ICdDbGVhcicsXG5cbiAgICAgICAgLy8gU3RyaW5ncyB1c2VkIGZvciBhcmlhLWxhYmVsc1xuICAgICAgICAnYXJpYTpidG46c2F2ZSc6ICdzYXZlIGFuZCBjbG9zZScsXG4gICAgICAgICdhcmlhOmJ0bjpjYW5jZWwnOiAnY2FuY2VsIGFuZCBjbG9zZScsXG4gICAgICAgICdhcmlhOmJ0bjpjbGVhcic6ICdjbGVhciBhbmQgY2xvc2UnLFxuICAgICAgICAnYXJpYTppbnB1dCc6ICdjb2xvciBpbnB1dCBmaWVsZCcsXG4gICAgICAgICdhcmlhOnBhbGV0dGUnOiAnY29sb3Igc2VsZWN0aW9uIGFyZWEnLFxuICAgICAgICAnYXJpYTpodWUnOiAnaHVlIHNlbGVjdGlvbiBzbGlkZXInLFxuICAgICAgICAnYXJpYTpvcGFjaXR5JzogJ3NlbGVjdGlvbiBzbGlkZXInXG4gICAgfTtcblxuICAgIC8vIERlZmF1bHQgb3B0aW9uc1xuICAgIHN0YXRpYyBERUZBVUxUX09QVElPTlMgPSB7XG4gICAgICAgIGFwcENsYXNzOiBudWxsLFxuICAgICAgICB0aGVtZTogJ2NsYXNzaWMnLFxuICAgICAgICB1c2VBc0J1dHRvbjogZmFsc2UsXG4gICAgICAgIHBhZGRpbmc6IDgsXG4gICAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgY29tcGFyaXNvbjogdHJ1ZSxcbiAgICAgICAgY2xvc2VPblNjcm9sbDogZmFsc2UsXG4gICAgICAgIG91dHB1dFByZWNpc2lvbjogMCxcbiAgICAgICAgbG9ja09wYWNpdHk6IGZhbHNlLFxuICAgICAgICBhdXRvUmVwb3NpdGlvbjogdHJ1ZSxcbiAgICAgICAgY29udGFpbmVyOiAnYm9keScsXG5cbiAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgaW50ZXJhY3Rpb246IHt9XG4gICAgICAgIH0sXG5cbiAgICAgICAgaTE4bjoge30sXG4gICAgICAgIHN3YXRjaGVzOiBudWxsLFxuICAgICAgICBpbmxpbmU6IGZhbHNlLFxuICAgICAgICBzbGlkZXJzOiBudWxsLFxuXG4gICAgICAgIGRlZmF1bHQ6ICcjNDI0NDVhJyxcbiAgICAgICAgZGVmYXVsdFJlcHJlc2VudGF0aW9uOiBudWxsLFxuICAgICAgICBwb3NpdGlvbjogJ2JvdHRvbS1taWRkbGUnLFxuICAgICAgICBhZGp1c3RhYmxlTnVtYmVyczogdHJ1ZSxcbiAgICAgICAgc2hvd0Fsd2F5czogZmFsc2UsXG5cbiAgICAgICAgY2xvc2VXaXRoS2V5OiAnRXNjYXBlJ1xuICAgIH07XG5cbiAgICAvLyBXaWxsIGJlIHVzZWQgdG8gcHJldmVudCBzcGVjaWZpYyBhY3Rpb25zIGR1cmluZyBpbml0aWxpemF0aW9uXG4gICAgX2luaXRpYWxpemluZ0FjdGl2ZSA9IHRydWU7XG5cbiAgICAvLyBJZiB0aGUgY3VycmVudCBjb2xvciB2YWx1ZSBzaG91bGQgYmUgcmVjYWxjdWxhdGVkXG4gICAgX3JlY2FsYyA9IHRydWU7XG5cbiAgICAvLyBQb3NpdGlvbmluZyBlbmdpbmUgYW5kIERPTS1UcmVlXG4gICAgX25hbm9wb3AgPSBudWxsO1xuICAgIF9yb290ID0gbnVsbDtcblxuICAgIC8vIEN1cnJlbnQgYW5kIGxhc3QgY29sb3IgZm9yIGNvbXBhcmlzb25cbiAgICBfY29sb3IgPSBIU1ZhQ29sb3IoKTtcbiAgICBfbGFzdENvbG9yID0gSFNWYUNvbG9yKCk7XG4gICAgX3N3YXRjaENvbG9ycyA9IFtdO1xuXG4gICAgLy8gQW5pbWF0aW9uIGZyYW1lIHVzZWQgZm9yIHNldHVwLlxuICAgIC8vIFdpbGwgYmUgY2FuY2VsbGVkIGluIGNhc2Ugb2YgZGVzdHJ1Y3Rpb24uXG4gICAgX3NldHVwQW5pbWF0aW9uRnJhbWUgPSBudWxsO1xuXG4gICAgLy8gRXZlbmxpc3RlbmVyIG5hbWU6IFtjYWxsYmFja3NdXG4gICAgX2V2ZW50TGlzdGVuZXIgPSB7XG4gICAgICAgIGluaXQ6IFtdLFxuICAgICAgICBzYXZlOiBbXSxcbiAgICAgICAgaGlkZTogW10sXG4gICAgICAgIHNob3c6IFtdLFxuICAgICAgICBjbGVhcjogW10sXG4gICAgICAgIGNoYW5nZTogW10sXG4gICAgICAgIGNoYW5nZXN0b3A6IFtdLFxuICAgICAgICBjYW5jZWw6IFtdLFxuICAgICAgICBzd2F0Y2hzZWxlY3Q6IFtdXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKG9wdCkge1xuXG4gICAgICAgIC8vIEFzc2lnbiBkZWZhdWx0IHZhbHVlc1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHQgPSBPYmplY3QuYXNzaWduKHsuLi5QaWNrci5ERUZBVUxUX09QVElPTlN9LCBvcHQpO1xuXG4gICAgICAgIGNvbnN0IHtzd2F0Y2hlcywgY29tcG9uZW50cywgdGhlbWUsIHNsaWRlcnMsIGxvY2tPcGFjaXR5LCBwYWRkaW5nfSA9IG9wdDtcblxuICAgICAgICBpZiAoWyduYW5vJywgJ21vbm9saXRoJ10uaW5jbHVkZXModGhlbWUpICYmICFzbGlkZXJzKSB7XG4gICAgICAgICAgICBvcHQuc2xpZGVycyA9ICdoJztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENoZWNrIGludGVyYWN0aW9uIHNlY3Rpb25cbiAgICAgICAgaWYgKCFjb21wb25lbnRzLmludGVyYWN0aW9uKSB7XG4gICAgICAgICAgICBjb21wb25lbnRzLmludGVyYWN0aW9uID0ge307XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPdmVyd3JpdGUgcGFsZXR0ZSBpZiBwcmV2aWV3LCBvcGFjaXR5IG9yIGh1ZSBhcmUgdHJ1ZVxuICAgICAgICBjb25zdCB7cHJldmlldywgb3BhY2l0eSwgaHVlLCBwYWxldHRlfSA9IGNvbXBvbmVudHM7XG4gICAgICAgIGNvbXBvbmVudHMub3BhY2l0eSA9ICghbG9ja09wYWNpdHkgJiYgb3BhY2l0eSk7XG4gICAgICAgIGNvbXBvbmVudHMucGFsZXR0ZSA9IHBhbGV0dGUgfHwgcHJldmlldyB8fCBvcGFjaXR5IHx8IGh1ZTtcblxuICAgICAgICAvLyBJbml0aWFsaXplIHBpY2tlclxuICAgICAgICB0aGlzLl9wcmVCdWlsZCgpO1xuICAgICAgICB0aGlzLl9idWlsZENvbXBvbmVudHMoKTtcbiAgICAgICAgdGhpcy5fYmluZEV2ZW50cygpO1xuICAgICAgICB0aGlzLl9maW5hbEJ1aWxkKCk7XG5cbiAgICAgICAgLy8gQXBwZW5kIHByZS1kZWZpbmVkIHN3YXRjaCBjb2xvcnNcbiAgICAgICAgaWYgKHN3YXRjaGVzICYmIHN3YXRjaGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgc3dhdGNoZXMuZm9yRWFjaChjb2xvciA9PiB0aGlzLmFkZFN3YXRjaChjb2xvcikpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSW5pdGlhbGl6ZSBwb3NpdGlvbmluZyBlbmdpbmVcbiAgICAgICAgY29uc3Qge2J1dHRvbiwgYXBwfSA9IHRoaXMuX3Jvb3Q7XG4gICAgICAgIHRoaXMuX25hbm9wb3AgPSBjcmVhdGVQb3BwZXIoYnV0dG9uLCBhcHAsIHtcbiAgICAgICAgICAgIG1hcmdpbjogcGFkZGluZ1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBJbml0aWFsaXplIGFjY2Vzc2liaWxpdHlcbiAgICAgICAgYnV0dG9uLnNldEF0dHJpYnV0ZSgncm9sZScsICdidXR0b24nKTtcbiAgICAgICAgYnV0dG9uLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsIHRoaXMuX3QoJ2J0bjp0b2dnbGUnKSk7XG5cbiAgICAgICAgLy8gSW5pdGlsaXphdGlvbiBpcyBmaW5pc2gsIHBpY2tyIGlzIHZpc2libGUgYW5kIHJlYWR5IGZvciB1c2FnZVxuICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgdGhpcy5fc2V0dXBBbmltYXRpb25GcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoZnVuY3Rpb24gY2IoKSB7XG5cbiAgICAgICAgICAgIC8vIFRPRE86IFBlcmZvcm1hbmNlIGlzc3VlIGR1ZSB0byBoaWdoIGNhbGwtcmF0ZT9cbiAgICAgICAgICAgIGlmICghYXBwLm9mZnNldFdpZHRoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3RBbmltYXRpb25GcmFtZShjYik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEFwcGx5IGRlZmF1bHQgY29sb3JcbiAgICAgICAgICAgIHRoYXQuc2V0Q29sb3Iob3B0LmRlZmF1bHQpO1xuICAgICAgICAgICAgdGhhdC5fcmVQb3NpdGlvbmluZ1BpY2tlcigpO1xuXG4gICAgICAgICAgICAvLyBJbml0aWFsaXplIGNvbG9yIHJlcHJlc2VudGF0aW9uXG4gICAgICAgICAgICBpZiAob3B0LmRlZmF1bHRSZXByZXNlbnRhdGlvbikge1xuICAgICAgICAgICAgICAgIHRoYXQuX3JlcHJlc2VudGF0aW9uID0gb3B0LmRlZmF1bHRSZXByZXNlbnRhdGlvbjtcbiAgICAgICAgICAgICAgICB0aGF0LnNldENvbG9yUmVwcmVzZW50YXRpb24odGhhdC5fcmVwcmVzZW50YXRpb24pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBTaG93IHBpY2tyIGlmIGxvY2tlZFxuICAgICAgICAgICAgaWYgKG9wdC5zaG93QWx3YXlzKSB7XG4gICAgICAgICAgICAgICAgdGhhdC5zaG93KCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEluaXRpYWxpemF0aW9uIGlzIGRvbmUgLSBwaWNrciBpcyB1c2FibGUsIGZpcmUgaW5pdCBldmVudFxuICAgICAgICAgICAgdGhhdC5faW5pdGlhbGl6aW5nQWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICB0aGF0Ll9lbWl0KCdpbml0Jyk7XG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgaW5zdGFuY2UgdmlhIG1ldGhvZFxuICAgIHN0YXRpYyBjcmVhdGUgPSBvcHRpb25zID0+IG5ldyBQaWNrcihvcHRpb25zKTtcblxuICAgIC8vIERvZXMgb25seSB0aGUgYWJzb2x1dGx5IGJhc2ljIHRoaW5nIHRvIGluaXRpYWxpemUgdGhlIGNvbXBvbmVudHNcbiAgICBfcHJlQnVpbGQoKSB7XG4gICAgICAgIGNvbnN0IHtvcHRpb25zfSA9IHRoaXM7XG5cbiAgICAgICAgLy8gUmVzb2x2ZSBlbGVtZW50c1xuICAgICAgICBmb3IgKGNvbnN0IHR5cGUgb2YgWydlbCcsICdjb250YWluZXInXSkge1xuICAgICAgICAgICAgb3B0aW9uc1t0eXBlXSA9IF8ucmVzb2x2ZUVsZW1lbnQob3B0aW9uc1t0eXBlXSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDcmVhdGUgZWxlbWVudCBhbmQgYXBwZW5kIGl0IHRvIGJvZHkgdG9cbiAgICAgICAgLy8gUHJldmVudCBpbml0aWFsaXphdGlvbiBlcnJvcnNcbiAgICAgICAgdGhpcy5fcm9vdCA9IGJ1aWxkUGlja3IodGhpcyk7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgYSBjdXN0b20gYnV0dG9uIGlzIHVzZWRcbiAgICAgICAgaWYgKG9wdGlvbnMudXNlQXNCdXR0b24pIHtcbiAgICAgICAgICAgIHRoaXMuX3Jvb3QuYnV0dG9uID0gb3B0aW9ucy5lbDsgLy8gUmVwbGFjZSBidXR0b24gd2l0aCBjdXN0b21pemVkIGJ1dHRvblxuICAgICAgICB9XG5cbiAgICAgICAgb3B0aW9ucy5jb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5fcm9vdC5yb290KTtcbiAgICB9XG5cbiAgICBfZmluYWxCdWlsZCgpIHtcbiAgICAgICAgY29uc3Qgb3B0ID0gdGhpcy5vcHRpb25zO1xuICAgICAgICBjb25zdCByb290ID0gdGhpcy5fcm9vdDtcblxuICAgICAgICAvLyBSZW1vdmUgZnJvbSBib2R5XG4gICAgICAgIG9wdC5jb250YWluZXIucmVtb3ZlQ2hpbGQocm9vdC5yb290KTtcblxuICAgICAgICBpZiAob3B0LmlubGluZSkge1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gb3B0LmVsLnBhcmVudEVsZW1lbnQ7XG5cbiAgICAgICAgICAgIGlmIChvcHQuZWwubmV4dFNpYmxpbmcpIHtcbiAgICAgICAgICAgICAgICBwYXJlbnQuaW5zZXJ0QmVmb3JlKHJvb3QuYXBwLCBvcHQuZWwubmV4dFNpYmxpbmcpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQocm9vdC5hcHApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3B0LmNvbnRhaW5lci5hcHBlbmRDaGlsZChyb290LmFwcCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEb24ndCByZXBsYWNlIHRoZSB0aGUgZWxlbWVudCBpZiBhIGN1c3RvbSBidXR0b24gaXMgdXNlZFxuICAgICAgICBpZiAoIW9wdC51c2VBc0J1dHRvbikge1xuXG4gICAgICAgICAgICAvLyBSZXBsYWNlIGVsZW1lbnQgd2l0aCBhY3R1YWwgY29sb3ItcGlja2VyXG4gICAgICAgICAgICBvcHQuZWwucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQocm9vdC5yb290LCBvcHQuZWwpO1xuICAgICAgICB9IGVsc2UgaWYgKG9wdC5pbmxpbmUpIHtcbiAgICAgICAgICAgIG9wdC5lbC5yZW1vdmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENoZWNrIGlmIGl0IHNob3VsZCBiZSBpbW1lZGlhdGx5IGRpc2FibGVkXG4gICAgICAgIGlmIChvcHQuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgY29sb3IgY29tcGFyaXNvbiBpcyBkaXNhYmxlZCwgaWYgeWVzIC0gcmVtb3ZlIHRyYW5zaXRpb25zIHNvIGV2ZXJ5dGhpbmcga2VlcHMgc21vb3RobHlcbiAgICAgICAgaWYgKCFvcHQuY29tcGFyaXNvbikge1xuICAgICAgICAgICAgcm9vdC5idXR0b24uc3R5bGUudHJhbnNpdGlvbiA9ICdub25lJztcblxuICAgICAgICAgICAgaWYgKCFvcHQudXNlQXNCdXR0b24pIHtcbiAgICAgICAgICAgICAgICByb290LnByZXZpZXcubGFzdENvbG9yLnN0eWxlLnRyYW5zaXRpb24gPSAnbm9uZSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICB9XG5cbiAgICBfYnVpbGRDb21wb25lbnRzKCkge1xuXG4gICAgICAgIC8vIEluc3RhbmNlIHJlZmVyZW5jZVxuICAgICAgICBjb25zdCBpbnN0ID0gdGhpcztcbiAgICAgICAgY29uc3QgY3MgPSB0aGlzLm9wdGlvbnMuY29tcG9uZW50cztcbiAgICAgICAgY29uc3Qgc2xpZGVycyA9IChpbnN0Lm9wdGlvbnMuc2xpZGVycyB8fCAndicpLnJlcGVhdCgyKTtcbiAgICAgICAgY29uc3QgW3NvLCBzaF0gPSBzbGlkZXJzLm1hdGNoKC9eW3ZoXSskL2cpID8gc2xpZGVycyA6IFtdO1xuXG4gICAgICAgIC8vIFJlLWFzc2lnbiBpZiBudWxsXG4gICAgICAgIGNvbnN0IGdldENvbG9yID0gKCkgPT5cbiAgICAgICAgICAgIHRoaXMuX2NvbG9yIHx8ICh0aGlzLl9jb2xvciA9IHRoaXMuX2xhc3RDb2xvci5jbG9uZSgpKTtcblxuICAgICAgICBjb25zdCBjb21wb25lbnRzID0ge1xuXG4gICAgICAgICAgICBwYWxldHRlOiBNb3ZlYWJsZSh7XG4gICAgICAgICAgICAgICAgZWxlbWVudDogaW5zdC5fcm9vdC5wYWxldHRlLnBpY2tlcixcbiAgICAgICAgICAgICAgICB3cmFwcGVyOiBpbnN0Ll9yb290LnBhbGV0dGUucGFsZXR0ZSxcblxuICAgICAgICAgICAgICAgIG9uc3RvcDogKCkgPT4gaW5zdC5fZW1pdCgnY2hhbmdlc3RvcCcsICdzbGlkZXInLCBpbnN0KSxcbiAgICAgICAgICAgICAgICBvbmNoYW5nZSh4LCB5KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghY3MucGFsZXR0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29sb3IgPSBnZXRDb2xvcigpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7X3Jvb3QsIG9wdGlvbnN9ID0gaW5zdDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qge2xhc3RDb2xvciwgY3VycmVudENvbG9yfSA9IF9yb290LnByZXZpZXc7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBpbnB1dCBmaWVsZCBvbmx5IGlmIHRoZSB1c2VyIGlzIGN1cnJlbnRseSBub3QgdHlwaW5nXG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnN0Ll9yZWNhbGMpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIHNhdHVyYXRpb24gYmFzZWQgb24gdGhlIHBvc2l0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvci5zID0geCAqIDEwMDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IudiA9IDEwMCAtIHkgKiAxMDA7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFByZXZlbnQgZmFsbGluZyB1bmRlciB6ZXJvXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvci52IDwgMCA/IGNvbG9yLnYgPSAwIDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluc3QuX3VwZGF0ZU91dHB1dCgnc2xpZGVyJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBTZXQgcGlja2VyIGFuZCBncmFkaWVudCBjb2xvclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjc3NSR0JhU3RyaW5nID0gY29sb3IudG9SR0JBKCkudG9TdHJpbmcoMCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kID0gY3NzUkdCYVN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cmFwcGVyLnN0eWxlLmJhY2tncm91bmQgPSBgXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCByZ2JhKDAsIDAsIDAsICR7Y29sb3IuYX0pLCB0cmFuc3BhcmVudCksXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgaHNsYSgke2NvbG9yLmh9LCAxMDAlLCA1MCUsICR7Y29sb3IuYX0pLCByZ2JhKDI1NSwgMjU1LCAyNTUsICR7Y29sb3IuYX0pKVxuICAgICAgICAgICAgICAgICAgICBgO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIGNvbG9yIGlzIGxvY2tlZFxuICAgICAgICAgICAgICAgICAgICBpZiAoIW9wdGlvbnMuY29tcGFyaXNvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3Jvb3QuYnV0dG9uLnN0eWxlLnNldFByb3BlcnR5KCctLXBjci1jb2xvcicsIGNzc1JHQmFTdHJpbmcpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdXNlciBjaGFuZ2VzIHRoZSBjb2xvciwgcmVtb3ZlIHRoZSBjbGVhcmVkIGljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIF9yb290LmJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCdjbGVhcicpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFvcHRpb25zLnVzZUFzQnV0dG9uICYmICFpbnN0Ll9sYXN0Q29sb3IpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXBwbHkgY29sb3IgdG8gYm90aCB0aGUgbGFzdCBhbmQgY3VycmVudCBjb2xvciBzaW5jZSB0aGUgY3VycmVudCBzdGF0ZSBpcyBjbGVhcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXN0Q29sb3Iuc3R5bGUuc2V0UHJvcGVydHkoJy0tcGNyLWNvbG9yJywgY3NzUkdCYVN0cmluZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGVyZSdzIGEgc3dhdGNoIHdoaWNoIGNvbG9yIG1hdGNoZXMgdGhlIGN1cnJlbnQgb25lXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhleGEgPSBjb2xvci50b0hFWEEoKS50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHtlbCwgY29sb3J9IG9mIGluc3QuX3N3YXRjaENvbG9ycykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZWwuY2xhc3NMaXN0W2hleGEgPT09IGNvbG9yLnRvSEVYQSgpLnRvU3RyaW5nKCkgPyAnYWRkJyA6ICdyZW1vdmUnXSgncGNyLWFjdGl2ZScpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gQ2hhbmdlIGN1cnJlbnQgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudENvbG9yLnN0eWxlLnNldFByb3BlcnR5KCctLXBjci1jb2xvcicsIGNzc1JHQmFTdHJpbmcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgICBodWU6IE1vdmVhYmxlKHtcbiAgICAgICAgICAgICAgICBsb2NrOiBzaCA9PT0gJ3YnID8gJ2gnIDogJ3YnLFxuICAgICAgICAgICAgICAgIGVsZW1lbnQ6IGluc3QuX3Jvb3QuaHVlLnBpY2tlcixcbiAgICAgICAgICAgICAgICB3cmFwcGVyOiBpbnN0Ll9yb290Lmh1ZS5zbGlkZXIsXG5cbiAgICAgICAgICAgICAgICBvbnN0b3A6ICgpID0+IGluc3QuX2VtaXQoJ2NoYW5nZXN0b3AnLCAnc2xpZGVyJywgaW5zdCksXG4gICAgICAgICAgICAgICAgb25jaGFuZ2Uodikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNzLmh1ZSB8fCAhY3MucGFsZXR0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29sb3IgPSBnZXRDb2xvcigpO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBodWVcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluc3QuX3JlY2FsYykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IuaCA9IHYgKiAzNjA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmJhY2tncm91bmRDb2xvciA9IGBoc2woJHtjb2xvci5ofSwgMTAwJSwgNTAlKWA7XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHMucGFsZXR0ZS50cmlnZ2VyKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgICAgIG9wYWNpdHk6IE1vdmVhYmxlKHtcbiAgICAgICAgICAgICAgICBsb2NrOiBzbyA9PT0gJ3YnID8gJ2gnIDogJ3YnLFxuICAgICAgICAgICAgICAgIGVsZW1lbnQ6IGluc3QuX3Jvb3Qub3BhY2l0eS5waWNrZXIsXG4gICAgICAgICAgICAgICAgd3JhcHBlcjogaW5zdC5fcm9vdC5vcGFjaXR5LnNsaWRlcixcblxuICAgICAgICAgICAgICAgIG9uc3RvcDogKCkgPT4gaW5zdC5fZW1pdCgnY2hhbmdlc3RvcCcsICdzbGlkZXInLCBpbnN0KSxcbiAgICAgICAgICAgICAgICBvbmNoYW5nZSh2KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghY3Mub3BhY2l0eSB8fCAhY3MucGFsZXR0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29sb3IgPSBnZXRDb2xvcigpO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBvcGFjaXR5XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnN0Ll9yZWNhbGMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yLmEgPSBNYXRoLnJvdW5kKHYgKiAxZTIpIC8gMTAwO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gVXBkYXRlIGNvbG9yXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kID0gYHJnYmEoMCwgMCwgMCwgJHtjb2xvci5hfSlgO1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRzLnBhbGV0dGUudHJpZ2dlcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgICBzZWxlY3RhYmxlOiBTZWxlY3RhYmxlKHtcbiAgICAgICAgICAgICAgICBlbGVtZW50czogaW5zdC5fcm9vdC5pbnRlcmFjdGlvbi5vcHRpb25zLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2FjdGl2ZScsXG5cbiAgICAgICAgICAgICAgICBvbmNoYW5nZShlKSB7XG4gICAgICAgICAgICAgICAgICAgIGluc3QuX3JlcHJlc2VudGF0aW9uID0gZS50YXJnZXQuZ2V0QXR0cmlidXRlKCdkYXRhLXR5cGUnKS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgICAgICAgICBpbnN0Ll9yZWNhbGMgJiYgaW5zdC5fdXBkYXRlT3V0cHV0KCdzd2F0Y2gnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuX2NvbXBvbmVudHMgPSBjb21wb25lbnRzO1xuICAgIH1cblxuICAgIF9iaW5kRXZlbnRzKCkge1xuICAgICAgICBjb25zdCB7X3Jvb3QsIG9wdGlvbnN9ID0gdGhpcztcblxuICAgICAgICBjb25zdCBldmVudEJpbmRpbmdzID0gW1xuXG4gICAgICAgICAgICAvLyBDbGVhciBjb2xvclxuICAgICAgICAgICAgXy5vbihfcm9vdC5pbnRlcmFjdGlvbi5jbGVhciwgJ2NsaWNrJywgKCkgPT4gdGhpcy5fY2xlYXJDb2xvcigpKSxcblxuICAgICAgICAgICAgLy8gU2VsZWN0IGxhc3QgY29sb3Igb24gY2xpY2tcbiAgICAgICAgICAgIF8ub24oW1xuICAgICAgICAgICAgICAgIF9yb290LmludGVyYWN0aW9uLmNhbmNlbCxcbiAgICAgICAgICAgICAgICBfcm9vdC5wcmV2aWV3Lmxhc3RDb2xvclxuICAgICAgICAgICAgXSwgJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0SFNWQSguLi4odGhpcy5fbGFzdENvbG9yIHx8IHRoaXMuX2NvbG9yKS50b0hTVkEoKSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdCgnY2FuY2VsJyk7XG4gICAgICAgICAgICB9KSxcblxuICAgICAgICAgICAgLy8gU2F2ZSBjb2xvclxuICAgICAgICAgICAgXy5vbihfcm9vdC5pbnRlcmFjdGlvbi5zYXZlLCAnY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgIXRoaXMuYXBwbHlDb2xvcigpICYmICFvcHRpb25zLnNob3dBbHdheXMgJiYgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICB9KSxcblxuICAgICAgICAgICAgLy8gVXNlciBpbnB1dFxuICAgICAgICAgICAgXy5vbihfcm9vdC5pbnRlcmFjdGlvbi5yZXN1bHQsIFsna2V5dXAnLCAnaW5wdXQnXSwgZSA9PiB7XG5cbiAgICAgICAgICAgICAgICAvLyBGaXJlIGxpc3RlbmVyIGlmIGluaXRpYWxpemF0aW9uIGlzIGZpbmlzaCBhbmQgY2hhbmdlZCBjb2xvciB3YXMgdmFsaWRcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zZXRDb2xvcihlLnRhcmdldC52YWx1ZSwgdHJ1ZSkgJiYgIXRoaXMuX2luaXRpYWxpemluZ0FjdGl2ZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0KCdjaGFuZ2UnLCB0aGlzLl9jb2xvciwgJ2lucHV0JywgdGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXQoJ2NoYW5nZXN0b3AnLCAnaW5wdXQnLCB0aGlzKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgICAgIC8vIERldGVjdCB1c2VyIGlucHV0IGFuZCBkaXNhYmxlIGF1dG8tcmVjYWxjdWxhdGlvblxuICAgICAgICAgICAgXy5vbihfcm9vdC5pbnRlcmFjdGlvbi5yZXN1bHQsIFsnZm9jdXMnLCAnYmx1ciddLCBlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZWNhbGMgPSBlLnR5cGUgPT09ICdibHVyJztcbiAgICAgICAgICAgICAgICB0aGlzLl9yZWNhbGMgJiYgdGhpcy5fdXBkYXRlT3V0cHV0KG51bGwpO1xuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgICAgIC8vIENhbmNlbCBpbnB1dCBkZXRlY3Rpb24gb24gY29sb3IgY2hhbmdlXG4gICAgICAgICAgICBfLm9uKFtcbiAgICAgICAgICAgICAgICBfcm9vdC5wYWxldHRlLnBhbGV0dGUsXG4gICAgICAgICAgICAgICAgX3Jvb3QucGFsZXR0ZS5waWNrZXIsXG4gICAgICAgICAgICAgICAgX3Jvb3QuaHVlLnNsaWRlcixcbiAgICAgICAgICAgICAgICBfcm9vdC5odWUucGlja2VyLFxuICAgICAgICAgICAgICAgIF9yb290Lm9wYWNpdHkuc2xpZGVyLFxuICAgICAgICAgICAgICAgIF9yb290Lm9wYWNpdHkucGlja2VyXG4gICAgICAgICAgICBdLCBbJ21vdXNlZG93bicsICd0b3VjaHN0YXJ0J10sICgpID0+IHRoaXMuX3JlY2FsYyA9IHRydWUsIHtwYXNzaXZlOiB0cnVlfSlcbiAgICAgICAgXTtcblxuICAgICAgICAvLyBQcm92aWRlIGhpZGluZyAvIHNob3dpbmcgYWJpbGl0aWVzIG9ubHkgaWYgc2hvd0Fsd2F5cyBpcyBmYWxzZVxuICAgICAgICBpZiAoIW9wdGlvbnMuc2hvd0Fsd2F5cykge1xuICAgICAgICAgICAgY29uc3QgY2sgPSBvcHRpb25zLmNsb3NlV2l0aEtleTtcblxuICAgICAgICAgICAgZXZlbnRCaW5kaW5ncy5wdXNoKFxuXG4gICAgICAgICAgICAgICAgLy8gU2F2ZSBhbmQgaGlkZSAvIHNob3cgcGlja2VyXG4gICAgICAgICAgICAgICAgXy5vbihfcm9vdC5idXR0b24sICdjbGljaycsICgpID0+IHRoaXMuaXNPcGVuKCkgPyB0aGlzLmhpZGUoKSA6IHRoaXMuc2hvdygpKSxcblxuICAgICAgICAgICAgICAgIC8vIENsb3NlIHdpdGggZXNjYXBlIGtleVxuICAgICAgICAgICAgICAgIF8ub24oZG9jdW1lbnQsICdrZXl1cCcsIGUgPT4gdGhpcy5pc09wZW4oKSAmJiAoZS5rZXkgPT09IGNrIHx8IGUuY29kZSA9PT0gY2spICYmIHRoaXMuaGlkZSgpKSxcblxuICAgICAgICAgICAgICAgIC8vIENhbmNlbCBzZWxlY3RpbmcgaWYgdGhlIHVzZXIgdGFwcyBiZWhpbmQgdGhlIGNvbG9yIHBpY2tlclxuICAgICAgICAgICAgICAgIF8ub24oZG9jdW1lbnQsIFsndG91Y2hzdGFydCcsICdtb3VzZWRvd24nXSwgZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT3BlbigpICYmICFfLmV2ZW50UGF0aChlKS5zb21lKGVsID0+IGVsID09PSBfcm9vdC5hcHAgfHwgZWwgPT09IF9yb290LmJ1dHRvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwge2NhcHR1cmU6IHRydWV9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE1ha2UgaW5wdXQgYWRqdXN0YWJsZSBpZiBlbmFibGVkXG4gICAgICAgIGlmIChvcHRpb25zLmFkanVzdGFibGVOdW1iZXJzKSB7XG4gICAgICAgICAgICBjb25zdCByYW5nZXMgPSB7XG4gICAgICAgICAgICAgICAgcmdiYTogWzI1NSwgMjU1LCAyNTUsIDFdLFxuICAgICAgICAgICAgICAgIGhzdmE6IFszNjAsIDEwMCwgMTAwLCAxXSxcbiAgICAgICAgICAgICAgICBoc2xhOiBbMzYwLCAxMDAsIDEwMCwgMV0sXG4gICAgICAgICAgICAgICAgY215azogWzEwMCwgMTAwLCAxMDAsIDEwMF1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIF8uYWRqdXN0YWJsZUlucHV0TnVtYmVycyhfcm9vdC5pbnRlcmFjdGlvbi5yZXN1bHQsIChvLCBzdGVwLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJhbmdlID0gcmFuZ2VzW3RoaXMuZ2V0Q29sb3JSZXByZXNlbnRhdGlvbigpLnRvTG93ZXJDYXNlKCldO1xuXG4gICAgICAgICAgICAgICAgaWYgKHJhbmdlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1heCA9IHJhbmdlW2luZGV4XTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBDYWxjdWxhdGUgbmV4dCByZWFzb25hYmxlIG51bWJlclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBudiA9IG8gKyAobWF4ID49IDEwMCA/IHN0ZXAgKiAxMDAwIDogc3RlcCk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gQXBwbHkgcmFuZ2Ugb2YgemVybyB1cCB0byBtYXgsIGZpeCBmbG9hdGluZy1wb2ludCBpc3N1ZXNcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG52IDw9IDAgPyAwIDogTnVtYmVyKChudiA8IG1heCA/IG52IDogbWF4KS50b1ByZWNpc2lvbigzKSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG87XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLmF1dG9SZXBvc2l0aW9uICYmICFvcHRpb25zLmlubGluZSkge1xuICAgICAgICAgICAgbGV0IHRpbWVvdXQgPSBudWxsO1xuICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG5cbiAgICAgICAgICAgIC8vIFJlLWNhbGMgcG9zaXRpb24gb24gd2luZG93IHJlc2l6ZSwgc2Nyb2xsIGFuZCB3aGVlbFxuICAgICAgICAgICAgZXZlbnRCaW5kaW5ncy5wdXNoKFxuICAgICAgICAgICAgICAgIF8ub24od2luZG93LCBbJ3Njcm9sbCcsICdyZXNpemUnXSwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5pc09wZW4oKSkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5jbG9zZU9uU2Nyb2xsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aW1lb3V0ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGltZW91dCA9IG51bGwsIDEwMCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgcG9zaXRpb24gb24gZXZlcnkgZnJhbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24gcnMoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX3JlUG9zaXRpb25pbmdQaWNrZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRpbWVvdXQgIT09IG51bGwpICYmIHJlcXVlc3RBbmltYXRpb25GcmFtZShycyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aW1lb3V0ID0gbnVsbCwgMTAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIHtjYXB0dXJlOiB0cnVlfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTYXZlIGJpbmRpbmdzXG4gICAgICAgIHRoaXMuX2V2ZW50QmluZGluZ3MgPSBldmVudEJpbmRpbmdzO1xuICAgIH1cblxuICAgIF9yZVBvc2l0aW9uaW5nUGlja2VyKCkge1xuICAgICAgICBjb25zdCB7b3B0aW9uc30gPSB0aGlzO1xuXG4gICAgICAgIC8vIE5vIHJlcG9zaXRpb25pbmcgbmVlZGVkIGlmIGlubGluZVxuICAgICAgICBpZiAoIW9wdGlvbnMuaW5saW5lKSB7XG4gICAgICAgICAgICBjb25zdCBzdWNjZXNzID0gdGhpcy5fbmFub3BvcC51cGRhdGUoe1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lcjogZG9jdW1lbnQuYm9keS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogb3B0aW9ucy5wb3NpdGlvblxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmICghc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVsID0gdGhpcy5fcm9vdC5hcHA7XG4gICAgICAgICAgICAgICAgY29uc3QgZWIgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICBlbC5zdHlsZS50b3AgPSBgJHsod2luZG93LmlubmVySGVpZ2h0IC0gZWIuaGVpZ2h0KSAvIDJ9cHhgO1xuICAgICAgICAgICAgICAgIGVsLnN0eWxlLmxlZnQgPSBgJHsod2luZG93LmlubmVyV2lkdGggLSBlYi53aWR0aCkgLyAyfXB4YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIF91cGRhdGVPdXRwdXQoZXZlbnRTb3VyY2UpIHtcbiAgICAgICAgY29uc3Qge19yb290LCBfY29sb3IsIG9wdGlvbnN9ID0gdGhpcztcblxuICAgICAgICAvLyBDaGVjayBpZiBjb21wb25lbnQgaXMgcHJlc2VudFxuICAgICAgICBpZiAoX3Jvb3QuaW50ZXJhY3Rpb24udHlwZSgpKSB7XG5cbiAgICAgICAgICAgIC8vIENvbnN0cnVjdCBmdW5jdGlvbiBuYW1lIGFuZCBjYWxsIGlmIHByZXNlbnRcbiAgICAgICAgICAgIGNvbnN0IG1ldGhvZCA9IGB0byR7X3Jvb3QuaW50ZXJhY3Rpb24udHlwZSgpLmdldEF0dHJpYnV0ZSgnZGF0YS10eXBlJyl9YDtcbiAgICAgICAgICAgIF9yb290LmludGVyYWN0aW9uLnJlc3VsdC52YWx1ZSA9IHR5cGVvZiBfY29sb3JbbWV0aG9kXSA9PT0gJ2Z1bmN0aW9uJyA/XG4gICAgICAgICAgICAgICAgX2NvbG9yW21ldGhvZF0oKS50b1N0cmluZyhvcHRpb25zLm91dHB1dFByZWNpc2lvbikgOiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZpcmUgbGlzdGVuZXIgaWYgaW5pdGlhbGl6YXRpb24gaXMgZmluaXNoXG4gICAgICAgIGlmICghdGhpcy5faW5pdGlhbGl6aW5nQWN0aXZlICYmIHRoaXMuX3JlY2FsYykge1xuICAgICAgICAgICAgdGhpcy5fZW1pdCgnY2hhbmdlJywgX2NvbG9yLCBldmVudFNvdXJjZSwgdGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBfY2xlYXJDb2xvcihzaWxlbnQgPSBmYWxzZSkge1xuICAgICAgICBjb25zdCB7X3Jvb3QsIG9wdGlvbnN9ID0gdGhpcztcblxuICAgICAgICAvLyBDaGFuZ2Ugb25seSB0aGUgYnV0dG9uIGNvbG9yIGlmIGl0IGlzbid0IGN1c3RvbWl6ZWRcbiAgICAgICAgaWYgKCFvcHRpb25zLnVzZUFzQnV0dG9uKSB7XG4gICAgICAgICAgICBfcm9vdC5idXR0b24uc3R5bGUuc2V0UHJvcGVydHkoJy0tcGNyLWNvbG9yJywgJ3JnYmEoMCwgMCwgMCwgMC4xNSknKTtcbiAgICAgICAgfVxuXG4gICAgICAgIF9yb290LmJ1dHRvbi5jbGFzc0xpc3QuYWRkKCdjbGVhcicpO1xuXG4gICAgICAgIGlmICghb3B0aW9ucy5zaG93QWx3YXlzKSB7XG4gICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2xhc3RDb2xvciA9IG51bGw7XG4gICAgICAgIGlmICghdGhpcy5faW5pdGlhbGl6aW5nQWN0aXZlICYmICFzaWxlbnQpIHtcblxuICAgICAgICAgICAgLy8gRmlyZSBsaXN0ZW5lclxuICAgICAgICAgICAgdGhpcy5fZW1pdCgnc2F2ZScsIG51bGwpO1xuICAgICAgICAgICAgdGhpcy5fZW1pdCgnY2xlYXInKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9wYXJzZUxvY2FsQ29sb3Ioc3RyKSB7XG4gICAgICAgIGNvbnN0IHt2YWx1ZXMsIHR5cGUsIGF9ID0gcGFyc2VUb0hTVkEoc3RyKTtcbiAgICAgICAgY29uc3Qge2xvY2tPcGFjaXR5fSA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgY29uc3QgYWxwaGFNYWtlc0FDaGFuZ2UgPSBhICE9PSB1bmRlZmluZWQgJiYgYSAhPT0gMTtcblxuICAgICAgICAvLyBJZiBubyBvcGFjaXR5IGlzIGFwcGxpZWQsIGFkZCB1bmRlZmluZWQgYXQgdGhlIHZlcnkgZW5kIHdoaWNoIGdldHNcbiAgICAgICAgLy8gU2V0IHRvIDEgaW4gc2V0SFNWQVxuICAgICAgICBpZiAodmFsdWVzICYmIHZhbHVlcy5sZW5ndGggPT09IDMpIHtcbiAgICAgICAgICAgIHZhbHVlc1szXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2YWx1ZXM6ICghdmFsdWVzIHx8IChsb2NrT3BhY2l0eSAmJiBhbHBoYU1ha2VzQUNoYW5nZSkpID8gbnVsbCA6IHZhbHVlcyxcbiAgICAgICAgICAgIHR5cGVcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBfdChrZXkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5pMThuW2tleV0gfHwgUGlja3IuSTE4Tl9ERUZBVUxUU1trZXldO1xuICAgIH1cblxuICAgIF9lbWl0KGV2ZW50LCAuLi5hcmdzKSB7XG4gICAgICAgIHRoaXMuX2V2ZW50TGlzdGVuZXJbZXZlbnRdLmZvckVhY2goY2IgPT4gY2IoLi4uYXJncywgdGhpcykpO1xuICAgIH1cblxuICAgIG9uKGV2ZW50LCBjYikge1xuICAgICAgICB0aGlzLl9ldmVudExpc3RlbmVyW2V2ZW50XS5wdXNoKGNiKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgb2ZmKGV2ZW50LCBjYikge1xuICAgICAgICBjb25zdCBjYWxsQmFja3MgPSAodGhpcy5fZXZlbnRMaXN0ZW5lcltldmVudF0gfHwgW10pO1xuICAgICAgICBjb25zdCBpbmRleCA9IGNhbGxCYWNrcy5pbmRleE9mKGNiKTtcblxuICAgICAgICBpZiAofmluZGV4KSB7XG4gICAgICAgICAgICBjYWxsQmFja3Muc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFwcGVuZHMgYSBjb2xvciB0byB0aGUgc3dhdGNoIHBhbGV0dGVcbiAgICAgKiBAcGFyYW0gY29sb3JcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBhZGRTd2F0Y2goY29sb3IpIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlc30gPSB0aGlzLl9wYXJzZUxvY2FsQ29sb3IoY29sb3IpO1xuXG4gICAgICAgIGlmICh2YWx1ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHtfc3dhdGNoQ29sb3JzLCBfcm9vdH0gPSB0aGlzO1xuICAgICAgICAgICAgY29uc3QgY29sb3IgPSBIU1ZhQ29sb3IoLi4udmFsdWVzKTtcblxuICAgICAgICAgICAgLy8gQ3JlYXRlIG5ldyBzd2F0Y2ggSFRNTEVsZW1lbnRcbiAgICAgICAgICAgIGNvbnN0IGVsID0gXy5jcmVhdGVFbGVtZW50RnJvbVN0cmluZyhcbiAgICAgICAgICAgICAgICBgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgc3R5bGU9XCItLXBjci1jb2xvcjogJHtjb2xvci50b1JHQkEoKS50b1N0cmluZygwKX1cIiBhcmlhLWxhYmVsPVwiJHt0aGlzLl90KCdidG46c3dhdGNoJyl9XCIvPmBcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIC8vIEFwcGVuZCBlbGVtZW50IGFuZCBzYXZlIHN3YXRjaCBkYXRhXG4gICAgICAgICAgICBfcm9vdC5zd2F0Y2hlcy5hcHBlbmRDaGlsZChlbCk7XG4gICAgICAgICAgICBfc3dhdGNoQ29sb3JzLnB1c2goe2VsLCBjb2xvcn0pO1xuXG4gICAgICAgICAgICAvLyBCaW5kIGV2ZW50XG4gICAgICAgICAgICB0aGlzLl9ldmVudEJpbmRpbmdzLnB1c2goXG4gICAgICAgICAgICAgICAgXy5vbihlbCwgJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEhTVkEoLi4uY29sb3IudG9IU1ZBKCksIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0KCdzd2F0Y2hzZWxlY3QnLCBjb2xvcik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXQoJ2NoYW5nZScsIGNvbG9yLCAnc3dhdGNoJywgdGhpcyk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgYSBzd2F0Y2ggY29sb3IgYnkgaXQncyBpbmRleFxuICAgICAqIEBwYXJhbSBpbmRleFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgICAqL1xuICAgIHJlbW92ZVN3YXRjaChpbmRleCkge1xuICAgICAgICBjb25zdCBzd2F0Y2hDb2xvciA9IHRoaXMuX3N3YXRjaENvbG9yc1tpbmRleF07XG5cbiAgICAgICAgLy8gQ2hlY2sgc3dhdGNoIGRhdGFcbiAgICAgICAgaWYgKHN3YXRjaENvbG9yKSB7XG4gICAgICAgICAgICBjb25zdCB7ZWx9ID0gc3dhdGNoQ29sb3I7XG5cbiAgICAgICAgICAgIC8vIFJlbW92ZSBIVE1MIGNoaWxkIGFuZCBzd2F0Y2ggZGF0YVxuICAgICAgICAgICAgdGhpcy5fcm9vdC5zd2F0Y2hlcy5yZW1vdmVDaGlsZChlbCk7XG4gICAgICAgICAgICB0aGlzLl9zd2F0Y2hDb2xvcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGFwcGx5Q29sb3Ioc2lsZW50ID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3Qge3ByZXZpZXcsIGJ1dHRvbn0gPSB0aGlzLl9yb290O1xuXG4gICAgICAgIC8vIENoYW5nZSBwcmV2aWV3IGFuZCBjdXJyZW50IGNvbG9yXG4gICAgICAgIGNvbnN0IGNzc1JHQmFTdHJpbmcgPSB0aGlzLl9jb2xvci50b1JHQkEoKS50b1N0cmluZygwKTtcbiAgICAgICAgcHJldmlldy5sYXN0Q29sb3Iuc3R5bGUuc2V0UHJvcGVydHkoJy0tcGNyLWNvbG9yJywgY3NzUkdCYVN0cmluZyk7XG5cbiAgICAgICAgLy8gQ2hhbmdlIG9ubHkgdGhlIGJ1dHRvbiBjb2xvciBpZiBpdCBpc24ndCBjdXN0b21pemVkXG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zLnVzZUFzQnV0dG9uKSB7XG4gICAgICAgICAgICBidXR0b24uc3R5bGUuc2V0UHJvcGVydHkoJy0tcGNyLWNvbG9yJywgY3NzUkdCYVN0cmluZyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBVc2VyIGNoYW5nZWQgdGhlIGNvbG9yIHNvIHJlbW92ZSB0aGUgY2xlYXIgY2xhc1xuICAgICAgICBidXR0b24uY2xhc3NMaXN0LnJlbW92ZSgnY2xlYXInKTtcblxuICAgICAgICAvLyBTYXZlIGxhc3QgY29sb3JcbiAgICAgICAgdGhpcy5fbGFzdENvbG9yID0gdGhpcy5fY29sb3IuY2xvbmUoKTtcblxuICAgICAgICAvLyBGaXJlIGxpc3RlbmVyXG4gICAgICAgIGlmICghdGhpcy5faW5pdGlhbGl6aW5nQWN0aXZlICYmICFzaWxlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXQoJ3NhdmUnLCB0aGlzLl9jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXN0cm95J3MgYWxsIGZ1bmN0aW9uYWxpdHlzXG4gICAgICovXG4gICAgZGVzdHJveSgpIHtcblxuICAgICAgICAvLyBDYW5jZWwgc2V0dXAtZnJhbWUgaWYgc2V0XG4gICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX3NldHVwQW5pbWF0aW9uRnJhbWUpO1xuXG4gICAgICAgIC8vIFVuYmluZCBldmVudHNcbiAgICAgICAgdGhpcy5fZXZlbnRCaW5kaW5ncy5mb3JFYWNoKGFyZ3MgPT4gXy5vZmYoLi4uYXJncykpO1xuXG4gICAgICAgIC8vIERlc3Ryb3kgc3ViLWNvbXBvbmVudHNcbiAgICAgICAgT2JqZWN0LmtleXModGhpcy5fY29tcG9uZW50cylcbiAgICAgICAgICAgIC5mb3JFYWNoKGtleSA9PiB0aGlzLl9jb21wb25lbnRzW2tleV0uZGVzdHJveSgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXN0cm95J3MgYWxsIGZ1bmN0aW9uYWxpdHlzIGFuZCByZW1vdmVzXG4gICAgICogdGhlIHBpY2tyIGVsZW1lbnQuXG4gICAgICovXG4gICAgZGVzdHJveUFuZFJlbW92ZSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICAgIGNvbnN0IHtyb290LCBhcHB9ID0gdGhpcy5fcm9vdDtcblxuICAgICAgICAvLyBSZW1vdmUgZWxlbWVudFxuICAgICAgICBpZiAocm9vdC5wYXJlbnRFbGVtZW50KSB7XG4gICAgICAgICAgICByb290LnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQocm9vdCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZW1vdmUgLnBjci1hcHBcbiAgICAgICAgYXBwLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoYXBwKTtcblxuICAgICAgICAvLyBUaGVyZSBhcmUgcmVmZXJlbmNlcyB0byB2YXJpb3VzIERPTSBlbGVtZW50cyBzdG9yZWQgaW4gdGhlIHBpY2tyIGluc3RhbmNlXG4gICAgICAgIC8vIFRoaXMgY2xlYW5zIGFsbCBvZiB0aGVtIHRvIGF2b2lkIGRldGFjaGVkIERPTXNcbiAgICAgICAgT2JqZWN0LmtleXModGhpcylcbiAgICAgICAgICAgIC5mb3JFYWNoKGtleSA9PiB0aGlzW2tleV0gPSBudWxsKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIaWRlcyB0aGUgY29sb3ItcGlja2VyIHVpLlxuICAgICAqL1xuICAgIGhpZGUoKSB7XG4gICAgICAgIGlmICh0aGlzLmlzT3BlbigpKSB7XG4gICAgICAgICAgICB0aGlzLl9yb290LmFwcC5jbGFzc0xpc3QucmVtb3ZlKCd2aXNpYmxlJyk7XG4gICAgICAgICAgICB0aGlzLl9lbWl0KCdoaWRlJyk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93cyB0aGUgY29sb3ItcGlja2VyIHVpLlxuICAgICAqL1xuICAgIHNob3coKSB7XG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zLmRpc2FibGVkICYmICF0aGlzLmlzT3BlbigpKSB7XG4gICAgICAgICAgICB0aGlzLl9yb290LmFwcC5jbGFzc0xpc3QuYWRkKCd2aXNpYmxlJyk7XG4gICAgICAgICAgICB0aGlzLl9yZVBvc2l0aW9uaW5nUGlja2VyKCk7XG4gICAgICAgICAgICB0aGlzLl9lbWl0KCdzaG93JywgdGhpcy5fY29sb3IpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHJldHVybiB7Ym9vbGVhbn0gSWYgdGhlIGNvbG9yIHBpY2tlciBpcyBjdXJyZW50bHkgb3BlblxuICAgICAqL1xuICAgIGlzT3BlbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3QuYXBwLmNsYXNzTGlzdC5jb250YWlucygndmlzaWJsZScpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBhIHNwZWNpZmljIGNvbG9yLlxuICAgICAqIEBwYXJhbSBoIEh1ZVxuICAgICAqIEBwYXJhbSBzIFNhdHVyYXRpb25cbiAgICAgKiBAcGFyYW0gdiBWYWx1ZVxuICAgICAqIEBwYXJhbSBhIEFscGhhIGNoYW5uZWwgKDAgLSAxKVxuICAgICAqIEBwYXJhbSBzaWxlbnQgSWYgdGhlIGJ1dHRvbiBzaG91bGQgbm90IGNoYW5nZSB0aGUgY29sb3JcbiAgICAgKiBAcmV0dXJuIGJvb2xlYW4gaWYgdGhlIGNvbG9yIGhhcyBiZWVuIGFjY2VwdGVkXG4gICAgICovXG4gICAgc2V0SFNWQShoID0gMzYwLCBzID0gMCwgdiA9IDAsIGEgPSAxLCBzaWxlbnQgPSBmYWxzZSkge1xuXG4gICAgICAgIC8vIERlYWN0aXZhdGUgY29sb3IgY2FsY3VsYXRpb25cbiAgICAgICAgY29uc3QgcmVjYWxjID0gdGhpcy5fcmVjYWxjOyAvLyBTYXZlIHN0YXRlXG4gICAgICAgIHRoaXMuX3JlY2FsYyA9IGZhbHNlO1xuXG4gICAgICAgIC8vIFZhbGlkYXRlIGlucHV0XG4gICAgICAgIGlmIChoIDwgMCB8fCBoID4gMzYwIHx8IHMgPCAwIHx8IHMgPiAxMDAgfHwgdiA8IDAgfHwgdiA+IDEwMCB8fCBhIDwgMCB8fCBhID4gMSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT3ZlcnJpZGUgY3VycmVudCBjb2xvciBhbmQgcmUtYWN0aXZlIGNvbG9yIGNhbGN1bGF0aW9uXG4gICAgICAgIHRoaXMuX2NvbG9yID0gSFNWYUNvbG9yKGgsIHMsIHYsIGEpO1xuXG4gICAgICAgIC8vIFVwZGF0ZSBzbGlkZXIgYW5kIHBhbGV0dGVcbiAgICAgICAgY29uc3Qge2h1ZSwgb3BhY2l0eSwgcGFsZXR0ZX0gPSB0aGlzLl9jb21wb25lbnRzO1xuICAgICAgICBodWUudXBkYXRlKChoIC8gMzYwKSk7XG4gICAgICAgIG9wYWNpdHkudXBkYXRlKGEpO1xuICAgICAgICBwYWxldHRlLnVwZGF0ZShzIC8gMTAwLCAxIC0gKHYgLyAxMDApKTtcblxuICAgICAgICAvLyBDaGVjayBpZiBjYWxsIGlzIHNpbGVudFxuICAgICAgICBpZiAoIXNpbGVudCkge1xuICAgICAgICAgICAgdGhpcy5hcHBseUNvbG9yKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBVcGRhdGUgb3V0cHV0IGlmIHJlY2FsY3VsYXRpb24gaXMgZW5hYmxlZFxuICAgICAgICBpZiAocmVjYWxjKSB7XG4gICAgICAgICAgICB0aGlzLl91cGRhdGVPdXRwdXQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlc3RvcmUgb2xkIHN0YXRlXG4gICAgICAgIHRoaXMuX3JlY2FsYyA9IHJlY2FsYztcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHJpZXMgdG8gcGFyc2UgYSBzdHJpbmcgd2hpY2ggcmVwcmVzZW50cyBhIGNvbG9yLlxuICAgICAqIEV4YW1wbGVzOiAjZmZmXG4gICAgICogICAgICAgICAgIHJnYiAxMCAxMCAyMDBcbiAgICAgKiAgICAgICAgICAgaHN2YSAxMCAyMCA1IDAuNVxuICAgICAqIEBwYXJhbSBzdHJpbmdcbiAgICAgKiBAcGFyYW0gc2lsZW50XG4gICAgICovXG4gICAgc2V0Q29sb3Ioc3RyaW5nLCBzaWxlbnQgPSBmYWxzZSkge1xuXG4gICAgICAgIC8vIENoZWNrIGlmIG51bGxcbiAgICAgICAgaWYgKHN0cmluZyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5fY2xlYXJDb2xvcihzaWxlbnQpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7dmFsdWVzLCB0eXBlfSA9IHRoaXMuX3BhcnNlTG9jYWxDb2xvcihzdHJpbmcpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIGNvbG9yIGlzIG9rXG4gICAgICAgIGlmICh2YWx1ZXMpIHtcblxuICAgICAgICAgICAgLy8gQ2hhbmdlIHNlbGVjdGVkIGNvbG9yIGZvcm1hdFxuICAgICAgICAgICAgY29uc3QgdXR5cGUgPSB0eXBlLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICBjb25zdCB7b3B0aW9uc30gPSB0aGlzLl9yb290LmludGVyYWN0aW9uO1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gb3B0aW9ucy5maW5kKGVsID0+IGVsLmdldEF0dHJpYnV0ZSgnZGF0YS10eXBlJykgPT09IHV0eXBlKTtcblxuICAgICAgICAgICAgLy8gQXV0byBzZWxlY3Qgb25seSBpZiBub3QgaGlkZGVuXG4gICAgICAgICAgICBpZiAodGFyZ2V0ICYmICF0YXJnZXQuaGlkZGVuKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBlbCBvZiBvcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgIGVsLmNsYXNzTGlzdFtlbCA9PT0gdGFyZ2V0ID8gJ2FkZCcgOiAncmVtb3ZlJ10oJ2FjdGl2ZScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVXBkYXRlIGNvbG9yIChmaXJlcyAnc2F2ZScgZXZlbnQgaWYgc2lsZW50IGlzICdmYWxzZScpXG4gICAgICAgICAgICBpZiAoIXRoaXMuc2V0SFNWQSguLi52YWx1ZXMsIHNpbGVudCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFVwZGF0ZSByZXByZXNlbnRhdGlvbiAoZmlyZXMgJ2NoYW5nZScgZXZlbnQpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZXRDb2xvclJlcHJlc2VudGF0aW9uKHV0eXBlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGFuZ2VzIHRoZSBjb2xvciBfcmVwcmVzZW50YXRpb24uXG4gICAgICogQWxsb3dlZCB2YWx1ZXMgYXJlIEhFWCwgUkdCLCBIU1YsIEhTTCBhbmQgQ01ZS1xuICAgICAqIEBwYXJhbSB0eXBlXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IGlmIHRoZSBzZWxlY3RlZCB0eXBlIHdhcyB2YWxpZC5cbiAgICAgKi9cbiAgICBzZXRDb2xvclJlcHJlc2VudGF0aW9uKHR5cGUpIHtcblxuICAgICAgICAvLyBGb3JjZSB1cHBlcmNhc2UgdG8gYWxsb3cgYSBjYXNlLXNlbnNpdGl2IGNvbXBhcmlzb25cbiAgICAgICAgdHlwZSA9IHR5cGUudG9VcHBlckNhc2UoKTtcblxuICAgICAgICAvLyBGaW5kIGJ1dHRvbiB3aXRoIGdpdmVuIHR5cGUgYW5kIHRyaWdnZXIgY2xpY2sgZXZlbnRcbiAgICAgICAgcmV0dXJuICEhdGhpcy5fcm9vdC5pbnRlcmFjdGlvbi5vcHRpb25zXG4gICAgICAgICAgICAuZmluZCh2ID0+IHYuZ2V0QXR0cmlidXRlKCdkYXRhLXR5cGUnKS5zdGFydHNXaXRoKHR5cGUpICYmICF2LmNsaWNrKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgY29sb3IgcmVwcmVzZW50YWlvbi4gU2VlIHNldENvbG9yUmVwcmVzZW50YXRpb25cbiAgICAgKiBAcmV0dXJucyB7Kn1cbiAgICAgKi9cbiAgICBnZXRDb2xvclJlcHJlc2VudGF0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVwcmVzZW50YXRpb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHJldHVybnMgSFNWYUNvbG9yIEN1cnJlbnQgSFNWYUNvbG9yIG9iamVjdC5cbiAgICAgKi9cbiAgICBnZXRDb2xvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbG9yO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBjb2xvci5cbiAgICAgKiBAcmV0dXJucyB7e2EsIHRvSFNWQSwgdG9IRVhBLCBzLCB2LCBoLCBjbG9uZSwgdG9DTVlLLCB0b0hTTEEsIHRvUkdCQX19XG4gICAgICovXG4gICAgZ2V0U2VsZWN0ZWRDb2xvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xhc3RDb2xvcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBUaGUgcm9vdCBIVE1MRWxlbWVudCB3aXRoIGFsbCBoaXMgY29tcG9uZW50cy5cbiAgICAgKi9cbiAgICBnZXRSb290KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcm9vdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEaXNhYmxlIHBpY2tyXG4gICAgICovXG4gICAgZGlzYWJsZSgpIHtcbiAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgIHRoaXMub3B0aW9ucy5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuX3Jvb3QuYnV0dG9uLmNsYXNzTGlzdC5hZGQoJ2Rpc2FibGVkJyk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVuYWJsZSBwaWNrclxuICAgICAqL1xuICAgIGVuYWJsZSgpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3Jvb3QuYnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoJ2Rpc2FibGVkJyk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn1cbiIsICIoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuXHR0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcgPyBtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKSA6XG5cdHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShmYWN0b3J5KSA6XG5cdChnbG9iYWwuSlNPTjUgPSBmYWN0b3J5KCkpO1xufSh0aGlzLCAoZnVuY3Rpb24gKCkgeyAndXNlIHN0cmljdCc7XG5cblx0ZnVuY3Rpb24gY3JlYXRlQ29tbW9uanNNb2R1bGUoZm4sIG1vZHVsZSkge1xuXHRcdHJldHVybiBtb2R1bGUgPSB7IGV4cG9ydHM6IHt9IH0sIGZuKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMpLCBtb2R1bGUuZXhwb3J0cztcblx0fVxuXG5cdHZhciBfZ2xvYmFsID0gY3JlYXRlQ29tbW9uanNNb2R1bGUoZnVuY3Rpb24gKG1vZHVsZSkge1xuXHQvLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvODYjaXNzdWVjb21tZW50LTExNTc1OTAyOFxuXHR2YXIgZ2xvYmFsID0gbW9kdWxlLmV4cG9ydHMgPSB0eXBlb2Ygd2luZG93ICE9ICd1bmRlZmluZWQnICYmIHdpbmRvdy5NYXRoID09IE1hdGhcblx0ICA/IHdpbmRvdyA6IHR5cGVvZiBzZWxmICE9ICd1bmRlZmluZWQnICYmIHNlbGYuTWF0aCA9PSBNYXRoID8gc2VsZlxuXHQgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXctZnVuY1xuXHQgIDogRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblx0aWYgKHR5cGVvZiBfX2cgPT0gJ251bWJlcicpIHsgX19nID0gZ2xvYmFsOyB9IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZWZcblx0fSk7XG5cblx0dmFyIF9jb3JlID0gY3JlYXRlQ29tbW9uanNNb2R1bGUoZnVuY3Rpb24gKG1vZHVsZSkge1xuXHR2YXIgY29yZSA9IG1vZHVsZS5leHBvcnRzID0geyB2ZXJzaW9uOiAnMi42LjUnIH07XG5cdGlmICh0eXBlb2YgX19lID09ICdudW1iZXInKSB7IF9fZSA9IGNvcmU7IH0gLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuXHR9KTtcblx0dmFyIF9jb3JlXzEgPSBfY29yZS52ZXJzaW9uO1xuXG5cdHZhciBfaXNPYmplY3QgPSBmdW5jdGlvbiAoaXQpIHtcblx0ICByZXR1cm4gdHlwZW9mIGl0ID09PSAnb2JqZWN0JyA/IGl0ICE9PSBudWxsIDogdHlwZW9mIGl0ID09PSAnZnVuY3Rpb24nO1xuXHR9O1xuXG5cdHZhciBfYW5PYmplY3QgPSBmdW5jdGlvbiAoaXQpIHtcblx0ICBpZiAoIV9pc09iamVjdChpdCkpIHsgdGhyb3cgVHlwZUVycm9yKGl0ICsgJyBpcyBub3QgYW4gb2JqZWN0IScpOyB9XG5cdCAgcmV0dXJuIGl0O1xuXHR9O1xuXG5cdHZhciBfZmFpbHMgPSBmdW5jdGlvbiAoZXhlYykge1xuXHQgIHRyeSB7XG5cdCAgICByZXR1cm4gISFleGVjKCk7XG5cdCAgfSBjYXRjaCAoZSkge1xuXHQgICAgcmV0dXJuIHRydWU7XG5cdCAgfVxuXHR9O1xuXG5cdC8vIFRoYW5rJ3MgSUU4IGZvciBoaXMgZnVubnkgZGVmaW5lUHJvcGVydHlcblx0dmFyIF9kZXNjcmlwdG9ycyA9ICFfZmFpbHMoZnVuY3Rpb24gKCkge1xuXHQgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdhJywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSkuYSAhPSA3O1xuXHR9KTtcblxuXHR2YXIgZG9jdW1lbnQgPSBfZ2xvYmFsLmRvY3VtZW50O1xuXHQvLyB0eXBlb2YgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBpcyAnb2JqZWN0JyBpbiBvbGQgSUVcblx0dmFyIGlzID0gX2lzT2JqZWN0KGRvY3VtZW50KSAmJiBfaXNPYmplY3QoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG5cdHZhciBfZG9tQ3JlYXRlID0gZnVuY3Rpb24gKGl0KSB7XG5cdCAgcmV0dXJuIGlzID8gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpdCkgOiB7fTtcblx0fTtcblxuXHR2YXIgX2llOERvbURlZmluZSA9ICFfZGVzY3JpcHRvcnMgJiYgIV9mYWlscyhmdW5jdGlvbiAoKSB7XG5cdCAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfZG9tQ3JlYXRlKCdkaXYnKSwgJ2EnLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfSB9KS5hICE9IDc7XG5cdH0pO1xuXG5cdC8vIDcuMS4xIFRvUHJpbWl0aXZlKGlucHV0IFssIFByZWZlcnJlZFR5cGVdKVxuXG5cdC8vIGluc3RlYWQgb2YgdGhlIEVTNiBzcGVjIHZlcnNpb24sIHdlIGRpZG4ndCBpbXBsZW1lbnQgQEB0b1ByaW1pdGl2ZSBjYXNlXG5cdC8vIGFuZCB0aGUgc2Vjb25kIGFyZ3VtZW50IC0gZmxhZyAtIHByZWZlcnJlZCB0eXBlIGlzIGEgc3RyaW5nXG5cdHZhciBfdG9QcmltaXRpdmUgPSBmdW5jdGlvbiAoaXQsIFMpIHtcblx0ICBpZiAoIV9pc09iamVjdChpdCkpIHsgcmV0dXJuIGl0OyB9XG5cdCAgdmFyIGZuLCB2YWw7XG5cdCAgaWYgKFMgJiYgdHlwZW9mIChmbiA9IGl0LnRvU3RyaW5nKSA9PSAnZnVuY3Rpb24nICYmICFfaXNPYmplY3QodmFsID0gZm4uY2FsbChpdCkpKSB7IHJldHVybiB2YWw7IH1cblx0ICBpZiAodHlwZW9mIChmbiA9IGl0LnZhbHVlT2YpID09ICdmdW5jdGlvbicgJiYgIV9pc09iamVjdCh2YWwgPSBmbi5jYWxsKGl0KSkpIHsgcmV0dXJuIHZhbDsgfVxuXHQgIGlmICghUyAmJiB0eXBlb2YgKGZuID0gaXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIV9pc09iamVjdCh2YWwgPSBmbi5jYWxsKGl0KSkpIHsgcmV0dXJuIHZhbDsgfVxuXHQgIHRocm93IFR5cGVFcnJvcihcIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZVwiKTtcblx0fTtcblxuXHR2YXIgZFAgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG5cblx0dmFyIGYgPSBfZGVzY3JpcHRvcnMgPyBPYmplY3QuZGVmaW5lUHJvcGVydHkgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKSB7XG5cdCAgX2FuT2JqZWN0KE8pO1xuXHQgIFAgPSBfdG9QcmltaXRpdmUoUCwgdHJ1ZSk7XG5cdCAgX2FuT2JqZWN0KEF0dHJpYnV0ZXMpO1xuXHQgIGlmIChfaWU4RG9tRGVmaW5lKSB7IHRyeSB7XG5cdCAgICByZXR1cm4gZFAoTywgUCwgQXR0cmlidXRlcyk7XG5cdCAgfSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9IH1cblx0ICBpZiAoJ2dldCcgaW4gQXR0cmlidXRlcyB8fCAnc2V0JyBpbiBBdHRyaWJ1dGVzKSB7IHRocm93IFR5cGVFcnJvcignQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQhJyk7IH1cblx0ICBpZiAoJ3ZhbHVlJyBpbiBBdHRyaWJ1dGVzKSB7IE9bUF0gPSBBdHRyaWJ1dGVzLnZhbHVlOyB9XG5cdCAgcmV0dXJuIE87XG5cdH07XG5cblx0dmFyIF9vYmplY3REcCA9IHtcblx0XHRmOiBmXG5cdH07XG5cblx0dmFyIF9wcm9wZXJ0eURlc2MgPSBmdW5jdGlvbiAoYml0bWFwLCB2YWx1ZSkge1xuXHQgIHJldHVybiB7XG5cdCAgICBlbnVtZXJhYmxlOiAhKGJpdG1hcCAmIDEpLFxuXHQgICAgY29uZmlndXJhYmxlOiAhKGJpdG1hcCAmIDIpLFxuXHQgICAgd3JpdGFibGU6ICEoYml0bWFwICYgNCksXG5cdCAgICB2YWx1ZTogdmFsdWVcblx0ICB9O1xuXHR9O1xuXG5cdHZhciBfaGlkZSA9IF9kZXNjcmlwdG9ycyA/IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcblx0ICByZXR1cm4gX29iamVjdERwLmYob2JqZWN0LCBrZXksIF9wcm9wZXJ0eURlc2MoMSwgdmFsdWUpKTtcblx0fSA6IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcblx0ICBvYmplY3Rba2V5XSA9IHZhbHVlO1xuXHQgIHJldHVybiBvYmplY3Q7XG5cdH07XG5cblx0dmFyIGhhc093blByb3BlcnR5ID0ge30uaGFzT3duUHJvcGVydHk7XG5cdHZhciBfaGFzID0gZnVuY3Rpb24gKGl0LCBrZXkpIHtcblx0ICByZXR1cm4gaGFzT3duUHJvcGVydHkuY2FsbChpdCwga2V5KTtcblx0fTtcblxuXHR2YXIgaWQgPSAwO1xuXHR2YXIgcHggPSBNYXRoLnJhbmRvbSgpO1xuXHR2YXIgX3VpZCA9IGZ1bmN0aW9uIChrZXkpIHtcblx0ICByZXR1cm4gJ1N5bWJvbCgnLmNvbmNhdChrZXkgPT09IHVuZGVmaW5lZCA/ICcnIDoga2V5LCAnKV8nLCAoKytpZCArIHB4KS50b1N0cmluZygzNikpO1xuXHR9O1xuXG5cdHZhciBfbGlicmFyeSA9IGZhbHNlO1xuXG5cdHZhciBfc2hhcmVkID0gY3JlYXRlQ29tbW9uanNNb2R1bGUoZnVuY3Rpb24gKG1vZHVsZSkge1xuXHR2YXIgU0hBUkVEID0gJ19fY29yZS1qc19zaGFyZWRfXyc7XG5cdHZhciBzdG9yZSA9IF9nbG9iYWxbU0hBUkVEXSB8fCAoX2dsb2JhbFtTSEFSRURdID0ge30pO1xuXG5cdChtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG5cdCAgcmV0dXJuIHN0b3JlW2tleV0gfHwgKHN0b3JlW2tleV0gPSB2YWx1ZSAhPT0gdW5kZWZpbmVkID8gdmFsdWUgOiB7fSk7XG5cdH0pKCd2ZXJzaW9ucycsIFtdKS5wdXNoKHtcblx0ICB2ZXJzaW9uOiBfY29yZS52ZXJzaW9uLFxuXHQgIG1vZGU6IF9saWJyYXJ5ID8gJ3B1cmUnIDogJ2dsb2JhbCcsXG5cdCAgY29weXJpZ2h0OiAnXHUwMEE5IDIwMTkgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSknXG5cdH0pO1xuXHR9KTtcblxuXHR2YXIgX2Z1bmN0aW9uVG9TdHJpbmcgPSBfc2hhcmVkKCduYXRpdmUtZnVuY3Rpb24tdG8tc3RyaW5nJywgRnVuY3Rpb24udG9TdHJpbmcpO1xuXG5cdHZhciBfcmVkZWZpbmUgPSBjcmVhdGVDb21tb25qc01vZHVsZShmdW5jdGlvbiAobW9kdWxlKSB7XG5cdHZhciBTUkMgPSBfdWlkKCdzcmMnKTtcblxuXHR2YXIgVE9fU1RSSU5HID0gJ3RvU3RyaW5nJztcblx0dmFyIFRQTCA9ICgnJyArIF9mdW5jdGlvblRvU3RyaW5nKS5zcGxpdChUT19TVFJJTkcpO1xuXG5cdF9jb3JlLmluc3BlY3RTb3VyY2UgPSBmdW5jdGlvbiAoaXQpIHtcblx0ICByZXR1cm4gX2Z1bmN0aW9uVG9TdHJpbmcuY2FsbChpdCk7XG5cdH07XG5cblx0KG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKE8sIGtleSwgdmFsLCBzYWZlKSB7XG5cdCAgdmFyIGlzRnVuY3Rpb24gPSB0eXBlb2YgdmFsID09ICdmdW5jdGlvbic7XG5cdCAgaWYgKGlzRnVuY3Rpb24pIHsgX2hhcyh2YWwsICduYW1lJykgfHwgX2hpZGUodmFsLCAnbmFtZScsIGtleSk7IH1cblx0ICBpZiAoT1trZXldID09PSB2YWwpIHsgcmV0dXJuOyB9XG5cdCAgaWYgKGlzRnVuY3Rpb24pIHsgX2hhcyh2YWwsIFNSQykgfHwgX2hpZGUodmFsLCBTUkMsIE9ba2V5XSA/ICcnICsgT1trZXldIDogVFBMLmpvaW4oU3RyaW5nKGtleSkpKTsgfVxuXHQgIGlmIChPID09PSBfZ2xvYmFsKSB7XG5cdCAgICBPW2tleV0gPSB2YWw7XG5cdCAgfSBlbHNlIGlmICghc2FmZSkge1xuXHQgICAgZGVsZXRlIE9ba2V5XTtcblx0ICAgIF9oaWRlKE8sIGtleSwgdmFsKTtcblx0ICB9IGVsc2UgaWYgKE9ba2V5XSkge1xuXHQgICAgT1trZXldID0gdmFsO1xuXHQgIH0gZWxzZSB7XG5cdCAgICBfaGlkZShPLCBrZXksIHZhbCk7XG5cdCAgfVxuXHQvLyBhZGQgZmFrZSBGdW5jdGlvbiN0b1N0cmluZyBmb3IgY29ycmVjdCB3b3JrIHdyYXBwZWQgbWV0aG9kcyAvIGNvbnN0cnVjdG9ycyB3aXRoIG1ldGhvZHMgbGlrZSBMb0Rhc2ggaXNOYXRpdmVcblx0fSkoRnVuY3Rpb24ucHJvdG90eXBlLCBUT19TVFJJTkcsIGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuXHQgIHJldHVybiB0eXBlb2YgdGhpcyA9PSAnZnVuY3Rpb24nICYmIHRoaXNbU1JDXSB8fCBfZnVuY3Rpb25Ub1N0cmluZy5jYWxsKHRoaXMpO1xuXHR9KTtcblx0fSk7XG5cblx0dmFyIF9hRnVuY3Rpb24gPSBmdW5jdGlvbiAoaXQpIHtcblx0ICBpZiAodHlwZW9mIGl0ICE9ICdmdW5jdGlvbicpIHsgdGhyb3cgVHlwZUVycm9yKGl0ICsgJyBpcyBub3QgYSBmdW5jdGlvbiEnKTsgfVxuXHQgIHJldHVybiBpdDtcblx0fTtcblxuXHQvLyBvcHRpb25hbCAvIHNpbXBsZSBjb250ZXh0IGJpbmRpbmdcblxuXHR2YXIgX2N0eCA9IGZ1bmN0aW9uIChmbiwgdGhhdCwgbGVuZ3RoKSB7XG5cdCAgX2FGdW5jdGlvbihmbik7XG5cdCAgaWYgKHRoYXQgPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gZm47IH1cblx0ICBzd2l0Y2ggKGxlbmd0aCkge1xuXHQgICAgY2FzZSAxOiByZXR1cm4gZnVuY3Rpb24gKGEpIHtcblx0ICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSk7XG5cdCAgICB9O1xuXHQgICAgY2FzZSAyOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIpIHtcblx0ICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSwgYik7XG5cdCAgICB9O1xuXHQgICAgY2FzZSAzOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIsIGMpIHtcblx0ICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSwgYiwgYyk7XG5cdCAgICB9O1xuXHQgIH1cblx0ICByZXR1cm4gZnVuY3Rpb24gKC8qIC4uLmFyZ3MgKi8pIHtcblx0ICAgIHJldHVybiBmbi5hcHBseSh0aGF0LCBhcmd1bWVudHMpO1xuXHQgIH07XG5cdH07XG5cblx0dmFyIFBST1RPVFlQRSA9ICdwcm90b3R5cGUnO1xuXG5cdHZhciAkZXhwb3J0ID0gZnVuY3Rpb24gKHR5cGUsIG5hbWUsIHNvdXJjZSkge1xuXHQgIHZhciBJU19GT1JDRUQgPSB0eXBlICYgJGV4cG9ydC5GO1xuXHQgIHZhciBJU19HTE9CQUwgPSB0eXBlICYgJGV4cG9ydC5HO1xuXHQgIHZhciBJU19TVEFUSUMgPSB0eXBlICYgJGV4cG9ydC5TO1xuXHQgIHZhciBJU19QUk9UTyA9IHR5cGUgJiAkZXhwb3J0LlA7XG5cdCAgdmFyIElTX0JJTkQgPSB0eXBlICYgJGV4cG9ydC5CO1xuXHQgIHZhciB0YXJnZXQgPSBJU19HTE9CQUwgPyBfZ2xvYmFsIDogSVNfU1RBVElDID8gX2dsb2JhbFtuYW1lXSB8fCAoX2dsb2JhbFtuYW1lXSA9IHt9KSA6IChfZ2xvYmFsW25hbWVdIHx8IHt9KVtQUk9UT1RZUEVdO1xuXHQgIHZhciBleHBvcnRzID0gSVNfR0xPQkFMID8gX2NvcmUgOiBfY29yZVtuYW1lXSB8fCAoX2NvcmVbbmFtZV0gPSB7fSk7XG5cdCAgdmFyIGV4cFByb3RvID0gZXhwb3J0c1tQUk9UT1RZUEVdIHx8IChleHBvcnRzW1BST1RPVFlQRV0gPSB7fSk7XG5cdCAgdmFyIGtleSwgb3duLCBvdXQsIGV4cDtcblx0ICBpZiAoSVNfR0xPQkFMKSB7IHNvdXJjZSA9IG5hbWU7IH1cblx0ICBmb3IgKGtleSBpbiBzb3VyY2UpIHtcblx0ICAgIC8vIGNvbnRhaW5zIGluIG5hdGl2ZVxuXHQgICAgb3duID0gIUlTX0ZPUkNFRCAmJiB0YXJnZXQgJiYgdGFyZ2V0W2tleV0gIT09IHVuZGVmaW5lZDtcblx0ICAgIC8vIGV4cG9ydCBuYXRpdmUgb3IgcGFzc2VkXG5cdCAgICBvdXQgPSAob3duID8gdGFyZ2V0IDogc291cmNlKVtrZXldO1xuXHQgICAgLy8gYmluZCB0aW1lcnMgdG8gZ2xvYmFsIGZvciBjYWxsIGZyb20gZXhwb3J0IGNvbnRleHRcblx0ICAgIGV4cCA9IElTX0JJTkQgJiYgb3duID8gX2N0eChvdXQsIF9nbG9iYWwpIDogSVNfUFJPVE8gJiYgdHlwZW9mIG91dCA9PSAnZnVuY3Rpb24nID8gX2N0eChGdW5jdGlvbi5jYWxsLCBvdXQpIDogb3V0O1xuXHQgICAgLy8gZXh0ZW5kIGdsb2JhbFxuXHQgICAgaWYgKHRhcmdldCkgeyBfcmVkZWZpbmUodGFyZ2V0LCBrZXksIG91dCwgdHlwZSAmICRleHBvcnQuVSk7IH1cblx0ICAgIC8vIGV4cG9ydFxuXHQgICAgaWYgKGV4cG9ydHNba2V5XSAhPSBvdXQpIHsgX2hpZGUoZXhwb3J0cywga2V5LCBleHApOyB9XG5cdCAgICBpZiAoSVNfUFJPVE8gJiYgZXhwUHJvdG9ba2V5XSAhPSBvdXQpIHsgZXhwUHJvdG9ba2V5XSA9IG91dDsgfVxuXHQgIH1cblx0fTtcblx0X2dsb2JhbC5jb3JlID0gX2NvcmU7XG5cdC8vIHR5cGUgYml0bWFwXG5cdCRleHBvcnQuRiA9IDE7ICAgLy8gZm9yY2VkXG5cdCRleHBvcnQuRyA9IDI7ICAgLy8gZ2xvYmFsXG5cdCRleHBvcnQuUyA9IDQ7ICAgLy8gc3RhdGljXG5cdCRleHBvcnQuUCA9IDg7ICAgLy8gcHJvdG9cblx0JGV4cG9ydC5CID0gMTY7ICAvLyBiaW5kXG5cdCRleHBvcnQuVyA9IDMyOyAgLy8gd3JhcFxuXHQkZXhwb3J0LlUgPSA2NDsgIC8vIHNhZmVcblx0JGV4cG9ydC5SID0gMTI4OyAvLyByZWFsIHByb3RvIG1ldGhvZCBmb3IgYGxpYnJhcnlgXG5cdHZhciBfZXhwb3J0ID0gJGV4cG9ydDtcblxuXHQvLyA3LjEuNCBUb0ludGVnZXJcblx0dmFyIGNlaWwgPSBNYXRoLmNlaWw7XG5cdHZhciBmbG9vciA9IE1hdGguZmxvb3I7XG5cdHZhciBfdG9JbnRlZ2VyID0gZnVuY3Rpb24gKGl0KSB7XG5cdCAgcmV0dXJuIGlzTmFOKGl0ID0gK2l0KSA/IDAgOiAoaXQgPiAwID8gZmxvb3IgOiBjZWlsKShpdCk7XG5cdH07XG5cblx0Ly8gNy4yLjEgUmVxdWlyZU9iamVjdENvZXJjaWJsZShhcmd1bWVudClcblx0dmFyIF9kZWZpbmVkID0gZnVuY3Rpb24gKGl0KSB7XG5cdCAgaWYgKGl0ID09IHVuZGVmaW5lZCkgeyB0aHJvdyBUeXBlRXJyb3IoXCJDYW4ndCBjYWxsIG1ldGhvZCBvbiAgXCIgKyBpdCk7IH1cblx0ICByZXR1cm4gaXQ7XG5cdH07XG5cblx0Ly8gdHJ1ZSAgLT4gU3RyaW5nI2F0XG5cdC8vIGZhbHNlIC0+IFN0cmluZyNjb2RlUG9pbnRBdFxuXHR2YXIgX3N0cmluZ0F0ID0gZnVuY3Rpb24gKFRPX1NUUklORykge1xuXHQgIHJldHVybiBmdW5jdGlvbiAodGhhdCwgcG9zKSB7XG5cdCAgICB2YXIgcyA9IFN0cmluZyhfZGVmaW5lZCh0aGF0KSk7XG5cdCAgICB2YXIgaSA9IF90b0ludGVnZXIocG9zKTtcblx0ICAgIHZhciBsID0gcy5sZW5ndGg7XG5cdCAgICB2YXIgYSwgYjtcblx0ICAgIGlmIChpIDwgMCB8fCBpID49IGwpIHsgcmV0dXJuIFRPX1NUUklORyA/ICcnIDogdW5kZWZpbmVkOyB9XG5cdCAgICBhID0gcy5jaGFyQ29kZUF0KGkpO1xuXHQgICAgcmV0dXJuIGEgPCAweGQ4MDAgfHwgYSA+IDB4ZGJmZiB8fCBpICsgMSA9PT0gbCB8fCAoYiA9IHMuY2hhckNvZGVBdChpICsgMSkpIDwgMHhkYzAwIHx8IGIgPiAweGRmZmZcblx0ICAgICAgPyBUT19TVFJJTkcgPyBzLmNoYXJBdChpKSA6IGFcblx0ICAgICAgOiBUT19TVFJJTkcgPyBzLnNsaWNlKGksIGkgKyAyKSA6IChhIC0gMHhkODAwIDw8IDEwKSArIChiIC0gMHhkYzAwKSArIDB4MTAwMDA7XG5cdCAgfTtcblx0fTtcblxuXHR2YXIgJGF0ID0gX3N0cmluZ0F0KGZhbHNlKTtcblx0X2V4cG9ydChfZXhwb3J0LlAsICdTdHJpbmcnLCB7XG5cdCAgLy8gMjEuMS4zLjMgU3RyaW5nLnByb3RvdHlwZS5jb2RlUG9pbnRBdChwb3MpXG5cdCAgY29kZVBvaW50QXQ6IGZ1bmN0aW9uIGNvZGVQb2ludEF0KHBvcykge1xuXHQgICAgcmV0dXJuICRhdCh0aGlzLCBwb3MpO1xuXHQgIH1cblx0fSk7XG5cblx0dmFyIGNvZGVQb2ludEF0ID0gX2NvcmUuU3RyaW5nLmNvZGVQb2ludEF0O1xuXG5cdHZhciBtYXggPSBNYXRoLm1heDtcblx0dmFyIG1pbiA9IE1hdGgubWluO1xuXHR2YXIgX3RvQWJzb2x1dGVJbmRleCA9IGZ1bmN0aW9uIChpbmRleCwgbGVuZ3RoKSB7XG5cdCAgaW5kZXggPSBfdG9JbnRlZ2VyKGluZGV4KTtcblx0ICByZXR1cm4gaW5kZXggPCAwID8gbWF4KGluZGV4ICsgbGVuZ3RoLCAwKSA6IG1pbihpbmRleCwgbGVuZ3RoKTtcblx0fTtcblxuXHR2YXIgZnJvbUNoYXJDb2RlID0gU3RyaW5nLmZyb21DaGFyQ29kZTtcblx0dmFyICRmcm9tQ29kZVBvaW50ID0gU3RyaW5nLmZyb21Db2RlUG9pbnQ7XG5cblx0Ly8gbGVuZ3RoIHNob3VsZCBiZSAxLCBvbGQgRkYgcHJvYmxlbVxuXHRfZXhwb3J0KF9leHBvcnQuUyArIF9leHBvcnQuRiAqICghISRmcm9tQ29kZVBvaW50ICYmICRmcm9tQ29kZVBvaW50Lmxlbmd0aCAhPSAxKSwgJ1N0cmluZycsIHtcblx0ICAvLyAyMS4xLjIuMiBTdHJpbmcuZnJvbUNvZGVQb2ludCguLi5jb2RlUG9pbnRzKVxuXHQgIGZyb21Db2RlUG9pbnQ6IGZ1bmN0aW9uIGZyb21Db2RlUG9pbnQoeCkge1xuXHQgICAgdmFyIGFyZ3VtZW50cyQxID0gYXJndW1lbnRzO1xuXHQgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuXHQgICAgdmFyIHJlcyA9IFtdO1xuXHQgICAgdmFyIGFMZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuXHQgICAgdmFyIGkgPSAwO1xuXHQgICAgdmFyIGNvZGU7XG5cdCAgICB3aGlsZSAoYUxlbiA+IGkpIHtcblx0ICAgICAgY29kZSA9ICthcmd1bWVudHMkMVtpKytdO1xuXHQgICAgICBpZiAoX3RvQWJzb2x1dGVJbmRleChjb2RlLCAweDEwZmZmZikgIT09IGNvZGUpIHsgdGhyb3cgUmFuZ2VFcnJvcihjb2RlICsgJyBpcyBub3QgYSB2YWxpZCBjb2RlIHBvaW50Jyk7IH1cblx0ICAgICAgcmVzLnB1c2goY29kZSA8IDB4MTAwMDBcblx0ICAgICAgICA/IGZyb21DaGFyQ29kZShjb2RlKVxuXHQgICAgICAgIDogZnJvbUNoYXJDb2RlKCgoY29kZSAtPSAweDEwMDAwKSA+PiAxMCkgKyAweGQ4MDAsIGNvZGUgJSAweDQwMCArIDB4ZGMwMClcblx0ICAgICAgKTtcblx0ICAgIH0gcmV0dXJuIHJlcy5qb2luKCcnKTtcblx0ICB9XG5cdH0pO1xuXG5cdHZhciBmcm9tQ29kZVBvaW50ID0gX2NvcmUuU3RyaW5nLmZyb21Db2RlUG9pbnQ7XG5cblx0Ly8gVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBEbyBub3QgZWRpdC5cblx0dmFyIFNwYWNlX1NlcGFyYXRvciA9IC9bXFx1MTY4MFxcdTIwMDAtXFx1MjAwQVxcdTIwMkZcXHUyMDVGXFx1MzAwMF0vO1xuXHR2YXIgSURfU3RhcnQgPSAvW1xceEFBXFx4QjVcXHhCQVxceEMwLVxceEQ2XFx4RDgtXFx4RjZcXHhGOC1cXHUwMkMxXFx1MDJDNi1cXHUwMkQxXFx1MDJFMC1cXHUwMkU0XFx1MDJFQ1xcdTAyRUVcXHUwMzcwLVxcdTAzNzRcXHUwMzc2XFx1MDM3N1xcdTAzN0EtXFx1MDM3RFxcdTAzN0ZcXHUwMzg2XFx1MDM4OC1cXHUwMzhBXFx1MDM4Q1xcdTAzOEUtXFx1MDNBMVxcdTAzQTMtXFx1MDNGNVxcdTAzRjctXFx1MDQ4MVxcdTA0OEEtXFx1MDUyRlxcdTA1MzEtXFx1MDU1NlxcdTA1NTlcXHUwNTYxLVxcdTA1ODdcXHUwNUQwLVxcdTA1RUFcXHUwNUYwLVxcdTA1RjJcXHUwNjIwLVxcdTA2NEFcXHUwNjZFXFx1MDY2RlxcdTA2NzEtXFx1MDZEM1xcdTA2RDVcXHUwNkU1XFx1MDZFNlxcdTA2RUVcXHUwNkVGXFx1MDZGQS1cXHUwNkZDXFx1MDZGRlxcdTA3MTBcXHUwNzEyLVxcdTA3MkZcXHUwNzRELVxcdTA3QTVcXHUwN0IxXFx1MDdDQS1cXHUwN0VBXFx1MDdGNFxcdTA3RjVcXHUwN0ZBXFx1MDgwMC1cXHUwODE1XFx1MDgxQVxcdTA4MjRcXHUwODI4XFx1MDg0MC1cXHUwODU4XFx1MDg2MC1cXHUwODZBXFx1MDhBMC1cXHUwOEI0XFx1MDhCNi1cXHUwOEJEXFx1MDkwNC1cXHUwOTM5XFx1MDkzRFxcdTA5NTBcXHUwOTU4LVxcdTA5NjFcXHUwOTcxLVxcdTA5ODBcXHUwOTg1LVxcdTA5OENcXHUwOThGXFx1MDk5MFxcdTA5OTMtXFx1MDlBOFxcdTA5QUEtXFx1MDlCMFxcdTA5QjJcXHUwOUI2LVxcdTA5QjlcXHUwOUJEXFx1MDlDRVxcdTA5RENcXHUwOUREXFx1MDlERi1cXHUwOUUxXFx1MDlGMFxcdTA5RjFcXHUwOUZDXFx1MEEwNS1cXHUwQTBBXFx1MEEwRlxcdTBBMTBcXHUwQTEzLVxcdTBBMjhcXHUwQTJBLVxcdTBBMzBcXHUwQTMyXFx1MEEzM1xcdTBBMzVcXHUwQTM2XFx1MEEzOFxcdTBBMzlcXHUwQTU5LVxcdTBBNUNcXHUwQTVFXFx1MEE3Mi1cXHUwQTc0XFx1MEE4NS1cXHUwQThEXFx1MEE4Ri1cXHUwQTkxXFx1MEE5My1cXHUwQUE4XFx1MEFBQS1cXHUwQUIwXFx1MEFCMlxcdTBBQjNcXHUwQUI1LVxcdTBBQjlcXHUwQUJEXFx1MEFEMFxcdTBBRTBcXHUwQUUxXFx1MEFGOVxcdTBCMDUtXFx1MEIwQ1xcdTBCMEZcXHUwQjEwXFx1MEIxMy1cXHUwQjI4XFx1MEIyQS1cXHUwQjMwXFx1MEIzMlxcdTBCMzNcXHUwQjM1LVxcdTBCMzlcXHUwQjNEXFx1MEI1Q1xcdTBCNURcXHUwQjVGLVxcdTBCNjFcXHUwQjcxXFx1MEI4M1xcdTBCODUtXFx1MEI4QVxcdTBCOEUtXFx1MEI5MFxcdTBCOTItXFx1MEI5NVxcdTBCOTlcXHUwQjlBXFx1MEI5Q1xcdTBCOUVcXHUwQjlGXFx1MEJBM1xcdTBCQTRcXHUwQkE4LVxcdTBCQUFcXHUwQkFFLVxcdTBCQjlcXHUwQkQwXFx1MEMwNS1cXHUwQzBDXFx1MEMwRS1cXHUwQzEwXFx1MEMxMi1cXHUwQzI4XFx1MEMyQS1cXHUwQzM5XFx1MEMzRFxcdTBDNTgtXFx1MEM1QVxcdTBDNjBcXHUwQzYxXFx1MEM4MFxcdTBDODUtXFx1MEM4Q1xcdTBDOEUtXFx1MEM5MFxcdTBDOTItXFx1MENBOFxcdTBDQUEtXFx1MENCM1xcdTBDQjUtXFx1MENCOVxcdTBDQkRcXHUwQ0RFXFx1MENFMFxcdTBDRTFcXHUwQ0YxXFx1MENGMlxcdTBEMDUtXFx1MEQwQ1xcdTBEMEUtXFx1MEQxMFxcdTBEMTItXFx1MEQzQVxcdTBEM0RcXHUwRDRFXFx1MEQ1NC1cXHUwRDU2XFx1MEQ1Ri1cXHUwRDYxXFx1MEQ3QS1cXHUwRDdGXFx1MEQ4NS1cXHUwRDk2XFx1MEQ5QS1cXHUwREIxXFx1MERCMy1cXHUwREJCXFx1MERCRFxcdTBEQzAtXFx1MERDNlxcdTBFMDEtXFx1MEUzMFxcdTBFMzJcXHUwRTMzXFx1MEU0MC1cXHUwRTQ2XFx1MEU4MVxcdTBFODJcXHUwRTg0XFx1MEU4N1xcdTBFODhcXHUwRThBXFx1MEU4RFxcdTBFOTQtXFx1MEU5N1xcdTBFOTktXFx1MEU5RlxcdTBFQTEtXFx1MEVBM1xcdTBFQTVcXHUwRUE3XFx1MEVBQVxcdTBFQUJcXHUwRUFELVxcdTBFQjBcXHUwRUIyXFx1MEVCM1xcdTBFQkRcXHUwRUMwLVxcdTBFQzRcXHUwRUM2XFx1MEVEQy1cXHUwRURGXFx1MEYwMFxcdTBGNDAtXFx1MEY0N1xcdTBGNDktXFx1MEY2Q1xcdTBGODgtXFx1MEY4Q1xcdTEwMDAtXFx1MTAyQVxcdTEwM0ZcXHUxMDUwLVxcdTEwNTVcXHUxMDVBLVxcdTEwNURcXHUxMDYxXFx1MTA2NVxcdTEwNjZcXHUxMDZFLVxcdTEwNzBcXHUxMDc1LVxcdTEwODFcXHUxMDhFXFx1MTBBMC1cXHUxMEM1XFx1MTBDN1xcdTEwQ0RcXHUxMEQwLVxcdTEwRkFcXHUxMEZDLVxcdTEyNDhcXHUxMjRBLVxcdTEyNERcXHUxMjUwLVxcdTEyNTZcXHUxMjU4XFx1MTI1QS1cXHUxMjVEXFx1MTI2MC1cXHUxMjg4XFx1MTI4QS1cXHUxMjhEXFx1MTI5MC1cXHUxMkIwXFx1MTJCMi1cXHUxMkI1XFx1MTJCOC1cXHUxMkJFXFx1MTJDMFxcdTEyQzItXFx1MTJDNVxcdTEyQzgtXFx1MTJENlxcdTEyRDgtXFx1MTMxMFxcdTEzMTItXFx1MTMxNVxcdTEzMTgtXFx1MTM1QVxcdTEzODAtXFx1MTM4RlxcdTEzQTAtXFx1MTNGNVxcdTEzRjgtXFx1MTNGRFxcdTE0MDEtXFx1MTY2Q1xcdTE2NkYtXFx1MTY3RlxcdTE2ODEtXFx1MTY5QVxcdTE2QTAtXFx1MTZFQVxcdTE2RUUtXFx1MTZGOFxcdTE3MDAtXFx1MTcwQ1xcdTE3MEUtXFx1MTcxMVxcdTE3MjAtXFx1MTczMVxcdTE3NDAtXFx1MTc1MVxcdTE3NjAtXFx1MTc2Q1xcdTE3NkUtXFx1MTc3MFxcdTE3ODAtXFx1MTdCM1xcdTE3RDdcXHUxN0RDXFx1MTgyMC1cXHUxODc3XFx1MTg4MC1cXHUxODg0XFx1MTg4Ny1cXHUxOEE4XFx1MThBQVxcdTE4QjAtXFx1MThGNVxcdTE5MDAtXFx1MTkxRVxcdTE5NTAtXFx1MTk2RFxcdTE5NzAtXFx1MTk3NFxcdTE5ODAtXFx1MTlBQlxcdTE5QjAtXFx1MTlDOVxcdTFBMDAtXFx1MUExNlxcdTFBMjAtXFx1MUE1NFxcdTFBQTdcXHUxQjA1LVxcdTFCMzNcXHUxQjQ1LVxcdTFCNEJcXHUxQjgzLVxcdTFCQTBcXHUxQkFFXFx1MUJBRlxcdTFCQkEtXFx1MUJFNVxcdTFDMDAtXFx1MUMyM1xcdTFDNEQtXFx1MUM0RlxcdTFDNUEtXFx1MUM3RFxcdTFDODAtXFx1MUM4OFxcdTFDRTktXFx1MUNFQ1xcdTFDRUUtXFx1MUNGMVxcdTFDRjVcXHUxQ0Y2XFx1MUQwMC1cXHUxREJGXFx1MUUwMC1cXHUxRjE1XFx1MUYxOC1cXHUxRjFEXFx1MUYyMC1cXHUxRjQ1XFx1MUY0OC1cXHUxRjREXFx1MUY1MC1cXHUxRjU3XFx1MUY1OVxcdTFGNUJcXHUxRjVEXFx1MUY1Ri1cXHUxRjdEXFx1MUY4MC1cXHUxRkI0XFx1MUZCNi1cXHUxRkJDXFx1MUZCRVxcdTFGQzItXFx1MUZDNFxcdTFGQzYtXFx1MUZDQ1xcdTFGRDAtXFx1MUZEM1xcdTFGRDYtXFx1MUZEQlxcdTFGRTAtXFx1MUZFQ1xcdTFGRjItXFx1MUZGNFxcdTFGRjYtXFx1MUZGQ1xcdTIwNzFcXHUyMDdGXFx1MjA5MC1cXHUyMDlDXFx1MjEwMlxcdTIxMDdcXHUyMTBBLVxcdTIxMTNcXHUyMTE1XFx1MjExOS1cXHUyMTFEXFx1MjEyNFxcdTIxMjZcXHUyMTI4XFx1MjEyQS1cXHUyMTJEXFx1MjEyRi1cXHUyMTM5XFx1MjEzQy1cXHUyMTNGXFx1MjE0NS1cXHUyMTQ5XFx1MjE0RVxcdTIxNjAtXFx1MjE4OFxcdTJDMDAtXFx1MkMyRVxcdTJDMzAtXFx1MkM1RVxcdTJDNjAtXFx1MkNFNFxcdTJDRUItXFx1MkNFRVxcdTJDRjJcXHUyQ0YzXFx1MkQwMC1cXHUyRDI1XFx1MkQyN1xcdTJEMkRcXHUyRDMwLVxcdTJENjdcXHUyRDZGXFx1MkQ4MC1cXHUyRDk2XFx1MkRBMC1cXHUyREE2XFx1MkRBOC1cXHUyREFFXFx1MkRCMC1cXHUyREI2XFx1MkRCOC1cXHUyREJFXFx1MkRDMC1cXHUyREM2XFx1MkRDOC1cXHUyRENFXFx1MkREMC1cXHUyREQ2XFx1MkREOC1cXHUyRERFXFx1MkUyRlxcdTMwMDUtXFx1MzAwN1xcdTMwMjEtXFx1MzAyOVxcdTMwMzEtXFx1MzAzNVxcdTMwMzgtXFx1MzAzQ1xcdTMwNDEtXFx1MzA5NlxcdTMwOUQtXFx1MzA5RlxcdTMwQTEtXFx1MzBGQVxcdTMwRkMtXFx1MzBGRlxcdTMxMDUtXFx1MzEyRVxcdTMxMzEtXFx1MzE4RVxcdTMxQTAtXFx1MzFCQVxcdTMxRjAtXFx1MzFGRlxcdTM0MDAtXFx1NERCNVxcdTRFMDAtXFx1OUZFQVxcdUEwMDAtXFx1QTQ4Q1xcdUE0RDAtXFx1QTRGRFxcdUE1MDAtXFx1QTYwQ1xcdUE2MTAtXFx1QTYxRlxcdUE2MkFcXHVBNjJCXFx1QTY0MC1cXHVBNjZFXFx1QTY3Ri1cXHVBNjlEXFx1QTZBMC1cXHVBNkVGXFx1QTcxNy1cXHVBNzFGXFx1QTcyMi1cXHVBNzg4XFx1QTc4Qi1cXHVBN0FFXFx1QTdCMC1cXHVBN0I3XFx1QTdGNy1cXHVBODAxXFx1QTgwMy1cXHVBODA1XFx1QTgwNy1cXHVBODBBXFx1QTgwQy1cXHVBODIyXFx1QTg0MC1cXHVBODczXFx1QTg4Mi1cXHVBOEIzXFx1QThGMi1cXHVBOEY3XFx1QThGQlxcdUE4RkRcXHVBOTBBLVxcdUE5MjVcXHVBOTMwLVxcdUE5NDZcXHVBOTYwLVxcdUE5N0NcXHVBOTg0LVxcdUE5QjJcXHVBOUNGXFx1QTlFMC1cXHVBOUU0XFx1QTlFNi1cXHVBOUVGXFx1QTlGQS1cXHVBOUZFXFx1QUEwMC1cXHVBQTI4XFx1QUE0MC1cXHVBQTQyXFx1QUE0NC1cXHVBQTRCXFx1QUE2MC1cXHVBQTc2XFx1QUE3QVxcdUFBN0UtXFx1QUFBRlxcdUFBQjFcXHVBQUI1XFx1QUFCNlxcdUFBQjktXFx1QUFCRFxcdUFBQzBcXHVBQUMyXFx1QUFEQi1cXHVBQUREXFx1QUFFMC1cXHVBQUVBXFx1QUFGMi1cXHVBQUY0XFx1QUIwMS1cXHVBQjA2XFx1QUIwOS1cXHVBQjBFXFx1QUIxMS1cXHVBQjE2XFx1QUIyMC1cXHVBQjI2XFx1QUIyOC1cXHVBQjJFXFx1QUIzMC1cXHVBQjVBXFx1QUI1Qy1cXHVBQjY1XFx1QUI3MC1cXHVBQkUyXFx1QUMwMC1cXHVEN0EzXFx1RDdCMC1cXHVEN0M2XFx1RDdDQi1cXHVEN0ZCXFx1RjkwMC1cXHVGQTZEXFx1RkE3MC1cXHVGQUQ5XFx1RkIwMC1cXHVGQjA2XFx1RkIxMy1cXHVGQjE3XFx1RkIxRFxcdUZCMUYtXFx1RkIyOFxcdUZCMkEtXFx1RkIzNlxcdUZCMzgtXFx1RkIzQ1xcdUZCM0VcXHVGQjQwXFx1RkI0MVxcdUZCNDNcXHVGQjQ0XFx1RkI0Ni1cXHVGQkIxXFx1RkJEMy1cXHVGRDNEXFx1RkQ1MC1cXHVGRDhGXFx1RkQ5Mi1cXHVGREM3XFx1RkRGMC1cXHVGREZCXFx1RkU3MC1cXHVGRTc0XFx1RkU3Ni1cXHVGRUZDXFx1RkYyMS1cXHVGRjNBXFx1RkY0MS1cXHVGRjVBXFx1RkY2Ni1cXHVGRkJFXFx1RkZDMi1cXHVGRkM3XFx1RkZDQS1cXHVGRkNGXFx1RkZEMi1cXHVGRkQ3XFx1RkZEQS1cXHVGRkRDXXxcXHVEODAwW1xcdURDMDAtXFx1REMwQlxcdURDMEQtXFx1REMyNlxcdURDMjgtXFx1REMzQVxcdURDM0NcXHVEQzNEXFx1REMzRi1cXHVEQzREXFx1REM1MC1cXHVEQzVEXFx1REM4MC1cXHVEQ0ZBXFx1REQ0MC1cXHVERDc0XFx1REU4MC1cXHVERTlDXFx1REVBMC1cXHVERUQwXFx1REYwMC1cXHVERjFGXFx1REYyRC1cXHVERjRBXFx1REY1MC1cXHVERjc1XFx1REY4MC1cXHVERjlEXFx1REZBMC1cXHVERkMzXFx1REZDOC1cXHVERkNGXFx1REZEMS1cXHVERkQ1XXxcXHVEODAxW1xcdURDMDAtXFx1REM5RFxcdURDQjAtXFx1RENEM1xcdURDRDgtXFx1RENGQlxcdUREMDAtXFx1REQyN1xcdUREMzAtXFx1REQ2M1xcdURFMDAtXFx1REYzNlxcdURGNDAtXFx1REY1NVxcdURGNjAtXFx1REY2N118XFx1RDgwMltcXHVEQzAwLVxcdURDMDVcXHVEQzA4XFx1REMwQS1cXHVEQzM1XFx1REMzN1xcdURDMzhcXHVEQzNDXFx1REMzRi1cXHVEQzU1XFx1REM2MC1cXHVEQzc2XFx1REM4MC1cXHVEQzlFXFx1RENFMC1cXHVEQ0YyXFx1RENGNFxcdURDRjVcXHVERDAwLVxcdUREMTVcXHVERDIwLVxcdUREMzlcXHVERDgwLVxcdUREQjdcXHVEREJFXFx1RERCRlxcdURFMDBcXHVERTEwLVxcdURFMTNcXHVERTE1LVxcdURFMTdcXHVERTE5LVxcdURFMzNcXHVERTYwLVxcdURFN0NcXHVERTgwLVxcdURFOUNcXHVERUMwLVxcdURFQzdcXHVERUM5LVxcdURFRTRcXHVERjAwLVxcdURGMzVcXHVERjQwLVxcdURGNTVcXHVERjYwLVxcdURGNzJcXHVERjgwLVxcdURGOTFdfFxcdUQ4MDNbXFx1REMwMC1cXHVEQzQ4XFx1REM4MC1cXHVEQ0IyXFx1RENDMC1cXHVEQ0YyXXxcXHVEODA0W1xcdURDMDMtXFx1REMzN1xcdURDODMtXFx1RENBRlxcdURDRDAtXFx1RENFOFxcdUREMDMtXFx1REQyNlxcdURENTAtXFx1REQ3MlxcdURENzZcXHVERDgzLVxcdUREQjJcXHVEREMxLVxcdUREQzRcXHVERERBXFx1REREQ1xcdURFMDAtXFx1REUxMVxcdURFMTMtXFx1REUyQlxcdURFODAtXFx1REU4NlxcdURFODhcXHVERThBLVxcdURFOERcXHVERThGLVxcdURFOURcXHVERTlGLVxcdURFQThcXHVERUIwLVxcdURFREVcXHVERjA1LVxcdURGMENcXHVERjBGXFx1REYxMFxcdURGMTMtXFx1REYyOFxcdURGMkEtXFx1REYzMFxcdURGMzJcXHVERjMzXFx1REYzNS1cXHVERjM5XFx1REYzRFxcdURGNTBcXHVERjVELVxcdURGNjFdfFxcdUQ4MDVbXFx1REMwMC1cXHVEQzM0XFx1REM0Ny1cXHVEQzRBXFx1REM4MC1cXHVEQ0FGXFx1RENDNFxcdURDQzVcXHVEQ0M3XFx1REQ4MC1cXHVEREFFXFx1REREOC1cXHVERERCXFx1REUwMC1cXHVERTJGXFx1REU0NFxcdURFODAtXFx1REVBQVxcdURGMDAtXFx1REYxOV18XFx1RDgwNltcXHVEQ0EwLVxcdURDREZcXHVEQ0ZGXFx1REUwMFxcdURFMEItXFx1REUzMlxcdURFM0FcXHVERTUwXFx1REU1Qy1cXHVERTgzXFx1REU4Ni1cXHVERTg5XFx1REVDMC1cXHVERUY4XXxcXHVEODA3W1xcdURDMDAtXFx1REMwOFxcdURDMEEtXFx1REMyRVxcdURDNDBcXHVEQzcyLVxcdURDOEZcXHVERDAwLVxcdUREMDZcXHVERDA4XFx1REQwOVxcdUREMEItXFx1REQzMFxcdURENDZdfFxcdUQ4MDhbXFx1REMwMC1cXHVERjk5XXxcXHVEODA5W1xcdURDMDAtXFx1REM2RVxcdURDODAtXFx1REQ0M118W1xcdUQ4MENcXHVEODFDLVxcdUQ4MjBcXHVEODQwLVxcdUQ4NjhcXHVEODZBLVxcdUQ4NkNcXHVEODZGLVxcdUQ4NzJcXHVEODc0LVxcdUQ4NzldW1xcdURDMDAtXFx1REZGRl18XFx1RDgwRFtcXHVEQzAwLVxcdURDMkVdfFxcdUQ4MTFbXFx1REMwMC1cXHVERTQ2XXxcXHVEODFBW1xcdURDMDAtXFx1REUzOFxcdURFNDAtXFx1REU1RVxcdURFRDAtXFx1REVFRFxcdURGMDAtXFx1REYyRlxcdURGNDAtXFx1REY0M1xcdURGNjMtXFx1REY3N1xcdURGN0QtXFx1REY4Rl18XFx1RDgxQltcXHVERjAwLVxcdURGNDRcXHVERjUwXFx1REY5My1cXHVERjlGXFx1REZFMFxcdURGRTFdfFxcdUQ4MjFbXFx1REMwMC1cXHVERkVDXXxcXHVEODIyW1xcdURDMDAtXFx1REVGMl18XFx1RDgyQ1tcXHVEQzAwLVxcdUREMUVcXHVERDcwLVxcdURFRkJdfFxcdUQ4MkZbXFx1REMwMC1cXHVEQzZBXFx1REM3MC1cXHVEQzdDXFx1REM4MC1cXHVEQzg4XFx1REM5MC1cXHVEQzk5XXxcXHVEODM1W1xcdURDMDAtXFx1REM1NFxcdURDNTYtXFx1REM5Q1xcdURDOUVcXHVEQzlGXFx1RENBMlxcdURDQTVcXHVEQ0E2XFx1RENBOS1cXHVEQ0FDXFx1RENBRS1cXHVEQ0I5XFx1RENCQlxcdURDQkQtXFx1RENDM1xcdURDQzUtXFx1REQwNVxcdUREMDctXFx1REQwQVxcdUREMEQtXFx1REQxNFxcdUREMTYtXFx1REQxQ1xcdUREMUUtXFx1REQzOVxcdUREM0ItXFx1REQzRVxcdURENDAtXFx1REQ0NFxcdURENDZcXHVERDRBLVxcdURENTBcXHVERDUyLVxcdURFQTVcXHVERUE4LVxcdURFQzBcXHVERUMyLVxcdURFREFcXHVERURDLVxcdURFRkFcXHVERUZDLVxcdURGMTRcXHVERjE2LVxcdURGMzRcXHVERjM2LVxcdURGNEVcXHVERjUwLVxcdURGNkVcXHVERjcwLVxcdURGODhcXHVERjhBLVxcdURGQThcXHVERkFBLVxcdURGQzJcXHVERkM0LVxcdURGQ0JdfFxcdUQ4M0FbXFx1REMwMC1cXHVEQ0M0XFx1REQwMC1cXHVERDQzXXxcXHVEODNCW1xcdURFMDAtXFx1REUwM1xcdURFMDUtXFx1REUxRlxcdURFMjFcXHVERTIyXFx1REUyNFxcdURFMjdcXHVERTI5LVxcdURFMzJcXHVERTM0LVxcdURFMzdcXHVERTM5XFx1REUzQlxcdURFNDJcXHVERTQ3XFx1REU0OVxcdURFNEJcXHVERTRELVxcdURFNEZcXHVERTUxXFx1REU1MlxcdURFNTRcXHVERTU3XFx1REU1OVxcdURFNUJcXHVERTVEXFx1REU1RlxcdURFNjFcXHVERTYyXFx1REU2NFxcdURFNjctXFx1REU2QVxcdURFNkMtXFx1REU3MlxcdURFNzQtXFx1REU3N1xcdURFNzktXFx1REU3Q1xcdURFN0VcXHVERTgwLVxcdURFODlcXHVERThCLVxcdURFOUJcXHVERUExLVxcdURFQTNcXHVERUE1LVxcdURFQTlcXHVERUFCLVxcdURFQkJdfFxcdUQ4NjlbXFx1REMwMC1cXHVERUQ2XFx1REYwMC1cXHVERkZGXXxcXHVEODZEW1xcdURDMDAtXFx1REYzNFxcdURGNDAtXFx1REZGRl18XFx1RDg2RVtcXHVEQzAwLVxcdURDMURcXHVEQzIwLVxcdURGRkZdfFxcdUQ4NzNbXFx1REMwMC1cXHVERUExXFx1REVCMC1cXHVERkZGXXxcXHVEODdBW1xcdURDMDAtXFx1REZFMF18XFx1RDg3RVtcXHVEQzAwLVxcdURFMURdLztcblx0dmFyIElEX0NvbnRpbnVlID0gL1tcXHhBQVxceEI1XFx4QkFcXHhDMC1cXHhENlxceEQ4LVxceEY2XFx4RjgtXFx1MDJDMVxcdTAyQzYtXFx1MDJEMVxcdTAyRTAtXFx1MDJFNFxcdTAyRUNcXHUwMkVFXFx1MDMwMC1cXHUwMzc0XFx1MDM3NlxcdTAzNzdcXHUwMzdBLVxcdTAzN0RcXHUwMzdGXFx1MDM4NlxcdTAzODgtXFx1MDM4QVxcdTAzOENcXHUwMzhFLVxcdTAzQTFcXHUwM0EzLVxcdTAzRjVcXHUwM0Y3LVxcdTA0ODFcXHUwNDgzLVxcdTA0ODdcXHUwNDhBLVxcdTA1MkZcXHUwNTMxLVxcdTA1NTZcXHUwNTU5XFx1MDU2MS1cXHUwNTg3XFx1MDU5MS1cXHUwNUJEXFx1MDVCRlxcdTA1QzFcXHUwNUMyXFx1MDVDNFxcdTA1QzVcXHUwNUM3XFx1MDVEMC1cXHUwNUVBXFx1MDVGMC1cXHUwNUYyXFx1MDYxMC1cXHUwNjFBXFx1MDYyMC1cXHUwNjY5XFx1MDY2RS1cXHUwNkQzXFx1MDZENS1cXHUwNkRDXFx1MDZERi1cXHUwNkU4XFx1MDZFQS1cXHUwNkZDXFx1MDZGRlxcdTA3MTAtXFx1MDc0QVxcdTA3NEQtXFx1MDdCMVxcdTA3QzAtXFx1MDdGNVxcdTA3RkFcXHUwODAwLVxcdTA4MkRcXHUwODQwLVxcdTA4NUJcXHUwODYwLVxcdTA4NkFcXHUwOEEwLVxcdTA4QjRcXHUwOEI2LVxcdTA4QkRcXHUwOEQ0LVxcdTA4RTFcXHUwOEUzLVxcdTA5NjNcXHUwOTY2LVxcdTA5NkZcXHUwOTcxLVxcdTA5ODNcXHUwOTg1LVxcdTA5OENcXHUwOThGXFx1MDk5MFxcdTA5OTMtXFx1MDlBOFxcdTA5QUEtXFx1MDlCMFxcdTA5QjJcXHUwOUI2LVxcdTA5QjlcXHUwOUJDLVxcdTA5QzRcXHUwOUM3XFx1MDlDOFxcdTA5Q0ItXFx1MDlDRVxcdTA5RDdcXHUwOURDXFx1MDlERFxcdTA5REYtXFx1MDlFM1xcdTA5RTYtXFx1MDlGMVxcdTA5RkNcXHUwQTAxLVxcdTBBMDNcXHUwQTA1LVxcdTBBMEFcXHUwQTBGXFx1MEExMFxcdTBBMTMtXFx1MEEyOFxcdTBBMkEtXFx1MEEzMFxcdTBBMzJcXHUwQTMzXFx1MEEzNVxcdTBBMzZcXHUwQTM4XFx1MEEzOVxcdTBBM0NcXHUwQTNFLVxcdTBBNDJcXHUwQTQ3XFx1MEE0OFxcdTBBNEItXFx1MEE0RFxcdTBBNTFcXHUwQTU5LVxcdTBBNUNcXHUwQTVFXFx1MEE2Ni1cXHUwQTc1XFx1MEE4MS1cXHUwQTgzXFx1MEE4NS1cXHUwQThEXFx1MEE4Ri1cXHUwQTkxXFx1MEE5My1cXHUwQUE4XFx1MEFBQS1cXHUwQUIwXFx1MEFCMlxcdTBBQjNcXHUwQUI1LVxcdTBBQjlcXHUwQUJDLVxcdTBBQzVcXHUwQUM3LVxcdTBBQzlcXHUwQUNCLVxcdTBBQ0RcXHUwQUQwXFx1MEFFMC1cXHUwQUUzXFx1MEFFNi1cXHUwQUVGXFx1MEFGOS1cXHUwQUZGXFx1MEIwMS1cXHUwQjAzXFx1MEIwNS1cXHUwQjBDXFx1MEIwRlxcdTBCMTBcXHUwQjEzLVxcdTBCMjhcXHUwQjJBLVxcdTBCMzBcXHUwQjMyXFx1MEIzM1xcdTBCMzUtXFx1MEIzOVxcdTBCM0MtXFx1MEI0NFxcdTBCNDdcXHUwQjQ4XFx1MEI0Qi1cXHUwQjREXFx1MEI1NlxcdTBCNTdcXHUwQjVDXFx1MEI1RFxcdTBCNUYtXFx1MEI2M1xcdTBCNjYtXFx1MEI2RlxcdTBCNzFcXHUwQjgyXFx1MEI4M1xcdTBCODUtXFx1MEI4QVxcdTBCOEUtXFx1MEI5MFxcdTBCOTItXFx1MEI5NVxcdTBCOTlcXHUwQjlBXFx1MEI5Q1xcdTBCOUVcXHUwQjlGXFx1MEJBM1xcdTBCQTRcXHUwQkE4LVxcdTBCQUFcXHUwQkFFLVxcdTBCQjlcXHUwQkJFLVxcdTBCQzJcXHUwQkM2LVxcdTBCQzhcXHUwQkNBLVxcdTBCQ0RcXHUwQkQwXFx1MEJEN1xcdTBCRTYtXFx1MEJFRlxcdTBDMDAtXFx1MEMwM1xcdTBDMDUtXFx1MEMwQ1xcdTBDMEUtXFx1MEMxMFxcdTBDMTItXFx1MEMyOFxcdTBDMkEtXFx1MEMzOVxcdTBDM0QtXFx1MEM0NFxcdTBDNDYtXFx1MEM0OFxcdTBDNEEtXFx1MEM0RFxcdTBDNTVcXHUwQzU2XFx1MEM1OC1cXHUwQzVBXFx1MEM2MC1cXHUwQzYzXFx1MEM2Ni1cXHUwQzZGXFx1MEM4MC1cXHUwQzgzXFx1MEM4NS1cXHUwQzhDXFx1MEM4RS1cXHUwQzkwXFx1MEM5Mi1cXHUwQ0E4XFx1MENBQS1cXHUwQ0IzXFx1MENCNS1cXHUwQ0I5XFx1MENCQy1cXHUwQ0M0XFx1MENDNi1cXHUwQ0M4XFx1MENDQS1cXHUwQ0NEXFx1MENENVxcdTBDRDZcXHUwQ0RFXFx1MENFMC1cXHUwQ0UzXFx1MENFNi1cXHUwQ0VGXFx1MENGMVxcdTBDRjJcXHUwRDAwLVxcdTBEMDNcXHUwRDA1LVxcdTBEMENcXHUwRDBFLVxcdTBEMTBcXHUwRDEyLVxcdTBENDRcXHUwRDQ2LVxcdTBENDhcXHUwRDRBLVxcdTBENEVcXHUwRDU0LVxcdTBENTdcXHUwRDVGLVxcdTBENjNcXHUwRDY2LVxcdTBENkZcXHUwRDdBLVxcdTBEN0ZcXHUwRDgyXFx1MEQ4M1xcdTBEODUtXFx1MEQ5NlxcdTBEOUEtXFx1MERCMVxcdTBEQjMtXFx1MERCQlxcdTBEQkRcXHUwREMwLVxcdTBEQzZcXHUwRENBXFx1MERDRi1cXHUwREQ0XFx1MERENlxcdTBERDgtXFx1MERERlxcdTBERTYtXFx1MERFRlxcdTBERjJcXHUwREYzXFx1MEUwMS1cXHUwRTNBXFx1MEU0MC1cXHUwRTRFXFx1MEU1MC1cXHUwRTU5XFx1MEU4MVxcdTBFODJcXHUwRTg0XFx1MEU4N1xcdTBFODhcXHUwRThBXFx1MEU4RFxcdTBFOTQtXFx1MEU5N1xcdTBFOTktXFx1MEU5RlxcdTBFQTEtXFx1MEVBM1xcdTBFQTVcXHUwRUE3XFx1MEVBQVxcdTBFQUJcXHUwRUFELVxcdTBFQjlcXHUwRUJCLVxcdTBFQkRcXHUwRUMwLVxcdTBFQzRcXHUwRUM2XFx1MEVDOC1cXHUwRUNEXFx1MEVEMC1cXHUwRUQ5XFx1MEVEQy1cXHUwRURGXFx1MEYwMFxcdTBGMThcXHUwRjE5XFx1MEYyMC1cXHUwRjI5XFx1MEYzNVxcdTBGMzdcXHUwRjM5XFx1MEYzRS1cXHUwRjQ3XFx1MEY0OS1cXHUwRjZDXFx1MEY3MS1cXHUwRjg0XFx1MEY4Ni1cXHUwRjk3XFx1MEY5OS1cXHUwRkJDXFx1MEZDNlxcdTEwMDAtXFx1MTA0OVxcdTEwNTAtXFx1MTA5RFxcdTEwQTAtXFx1MTBDNVxcdTEwQzdcXHUxMENEXFx1MTBEMC1cXHUxMEZBXFx1MTBGQy1cXHUxMjQ4XFx1MTI0QS1cXHUxMjREXFx1MTI1MC1cXHUxMjU2XFx1MTI1OFxcdTEyNUEtXFx1MTI1RFxcdTEyNjAtXFx1MTI4OFxcdTEyOEEtXFx1MTI4RFxcdTEyOTAtXFx1MTJCMFxcdTEyQjItXFx1MTJCNVxcdTEyQjgtXFx1MTJCRVxcdTEyQzBcXHUxMkMyLVxcdTEyQzVcXHUxMkM4LVxcdTEyRDZcXHUxMkQ4LVxcdTEzMTBcXHUxMzEyLVxcdTEzMTVcXHUxMzE4LVxcdTEzNUFcXHUxMzVELVxcdTEzNUZcXHUxMzgwLVxcdTEzOEZcXHUxM0EwLVxcdTEzRjVcXHUxM0Y4LVxcdTEzRkRcXHUxNDAxLVxcdTE2NkNcXHUxNjZGLVxcdTE2N0ZcXHUxNjgxLVxcdTE2OUFcXHUxNkEwLVxcdTE2RUFcXHUxNkVFLVxcdTE2RjhcXHUxNzAwLVxcdTE3MENcXHUxNzBFLVxcdTE3MTRcXHUxNzIwLVxcdTE3MzRcXHUxNzQwLVxcdTE3NTNcXHUxNzYwLVxcdTE3NkNcXHUxNzZFLVxcdTE3NzBcXHUxNzcyXFx1MTc3M1xcdTE3ODAtXFx1MTdEM1xcdTE3RDdcXHUxN0RDXFx1MTdERFxcdTE3RTAtXFx1MTdFOVxcdTE4MEItXFx1MTgwRFxcdTE4MTAtXFx1MTgxOVxcdTE4MjAtXFx1MTg3N1xcdTE4ODAtXFx1MThBQVxcdTE4QjAtXFx1MThGNVxcdTE5MDAtXFx1MTkxRVxcdTE5MjAtXFx1MTkyQlxcdTE5MzAtXFx1MTkzQlxcdTE5NDYtXFx1MTk2RFxcdTE5NzAtXFx1MTk3NFxcdTE5ODAtXFx1MTlBQlxcdTE5QjAtXFx1MTlDOVxcdTE5RDAtXFx1MTlEOVxcdTFBMDAtXFx1MUExQlxcdTFBMjAtXFx1MUE1RVxcdTFBNjAtXFx1MUE3Q1xcdTFBN0YtXFx1MUE4OVxcdTFBOTAtXFx1MUE5OVxcdTFBQTdcXHUxQUIwLVxcdTFBQkRcXHUxQjAwLVxcdTFCNEJcXHUxQjUwLVxcdTFCNTlcXHUxQjZCLVxcdTFCNzNcXHUxQjgwLVxcdTFCRjNcXHUxQzAwLVxcdTFDMzdcXHUxQzQwLVxcdTFDNDlcXHUxQzRELVxcdTFDN0RcXHUxQzgwLVxcdTFDODhcXHUxQ0QwLVxcdTFDRDJcXHUxQ0Q0LVxcdTFDRjlcXHUxRDAwLVxcdTFERjlcXHUxREZCLVxcdTFGMTVcXHUxRjE4LVxcdTFGMURcXHUxRjIwLVxcdTFGNDVcXHUxRjQ4LVxcdTFGNERcXHUxRjUwLVxcdTFGNTdcXHUxRjU5XFx1MUY1QlxcdTFGNURcXHUxRjVGLVxcdTFGN0RcXHUxRjgwLVxcdTFGQjRcXHUxRkI2LVxcdTFGQkNcXHUxRkJFXFx1MUZDMi1cXHUxRkM0XFx1MUZDNi1cXHUxRkNDXFx1MUZEMC1cXHUxRkQzXFx1MUZENi1cXHUxRkRCXFx1MUZFMC1cXHUxRkVDXFx1MUZGMi1cXHUxRkY0XFx1MUZGNi1cXHUxRkZDXFx1MjAzRlxcdTIwNDBcXHUyMDU0XFx1MjA3MVxcdTIwN0ZcXHUyMDkwLVxcdTIwOUNcXHUyMEQwLVxcdTIwRENcXHUyMEUxXFx1MjBFNS1cXHUyMEYwXFx1MjEwMlxcdTIxMDdcXHUyMTBBLVxcdTIxMTNcXHUyMTE1XFx1MjExOS1cXHUyMTFEXFx1MjEyNFxcdTIxMjZcXHUyMTI4XFx1MjEyQS1cXHUyMTJEXFx1MjEyRi1cXHUyMTM5XFx1MjEzQy1cXHUyMTNGXFx1MjE0NS1cXHUyMTQ5XFx1MjE0RVxcdTIxNjAtXFx1MjE4OFxcdTJDMDAtXFx1MkMyRVxcdTJDMzAtXFx1MkM1RVxcdTJDNjAtXFx1MkNFNFxcdTJDRUItXFx1MkNGM1xcdTJEMDAtXFx1MkQyNVxcdTJEMjdcXHUyRDJEXFx1MkQzMC1cXHUyRDY3XFx1MkQ2RlxcdTJEN0YtXFx1MkQ5NlxcdTJEQTAtXFx1MkRBNlxcdTJEQTgtXFx1MkRBRVxcdTJEQjAtXFx1MkRCNlxcdTJEQjgtXFx1MkRCRVxcdTJEQzAtXFx1MkRDNlxcdTJEQzgtXFx1MkRDRVxcdTJERDAtXFx1MkRENlxcdTJERDgtXFx1MkRERVxcdTJERTAtXFx1MkRGRlxcdTJFMkZcXHUzMDA1LVxcdTMwMDdcXHUzMDIxLVxcdTMwMkZcXHUzMDMxLVxcdTMwMzVcXHUzMDM4LVxcdTMwM0NcXHUzMDQxLVxcdTMwOTZcXHUzMDk5XFx1MzA5QVxcdTMwOUQtXFx1MzA5RlxcdTMwQTEtXFx1MzBGQVxcdTMwRkMtXFx1MzBGRlxcdTMxMDUtXFx1MzEyRVxcdTMxMzEtXFx1MzE4RVxcdTMxQTAtXFx1MzFCQVxcdTMxRjAtXFx1MzFGRlxcdTM0MDAtXFx1NERCNVxcdTRFMDAtXFx1OUZFQVxcdUEwMDAtXFx1QTQ4Q1xcdUE0RDAtXFx1QTRGRFxcdUE1MDAtXFx1QTYwQ1xcdUE2MTAtXFx1QTYyQlxcdUE2NDAtXFx1QTY2RlxcdUE2NzQtXFx1QTY3RFxcdUE2N0YtXFx1QTZGMVxcdUE3MTctXFx1QTcxRlxcdUE3MjItXFx1QTc4OFxcdUE3OEItXFx1QTdBRVxcdUE3QjAtXFx1QTdCN1xcdUE3RjctXFx1QTgyN1xcdUE4NDAtXFx1QTg3M1xcdUE4ODAtXFx1QThDNVxcdUE4RDAtXFx1QThEOVxcdUE4RTAtXFx1QThGN1xcdUE4RkJcXHVBOEZEXFx1QTkwMC1cXHVBOTJEXFx1QTkzMC1cXHVBOTUzXFx1QTk2MC1cXHVBOTdDXFx1QTk4MC1cXHVBOUMwXFx1QTlDRi1cXHVBOUQ5XFx1QTlFMC1cXHVBOUZFXFx1QUEwMC1cXHVBQTM2XFx1QUE0MC1cXHVBQTREXFx1QUE1MC1cXHVBQTU5XFx1QUE2MC1cXHVBQTc2XFx1QUE3QS1cXHVBQUMyXFx1QUFEQi1cXHVBQUREXFx1QUFFMC1cXHVBQUVGXFx1QUFGMi1cXHVBQUY2XFx1QUIwMS1cXHVBQjA2XFx1QUIwOS1cXHVBQjBFXFx1QUIxMS1cXHVBQjE2XFx1QUIyMC1cXHVBQjI2XFx1QUIyOC1cXHVBQjJFXFx1QUIzMC1cXHVBQjVBXFx1QUI1Qy1cXHVBQjY1XFx1QUI3MC1cXHVBQkVBXFx1QUJFQ1xcdUFCRURcXHVBQkYwLVxcdUFCRjlcXHVBQzAwLVxcdUQ3QTNcXHVEN0IwLVxcdUQ3QzZcXHVEN0NCLVxcdUQ3RkJcXHVGOTAwLVxcdUZBNkRcXHVGQTcwLVxcdUZBRDlcXHVGQjAwLVxcdUZCMDZcXHVGQjEzLVxcdUZCMTdcXHVGQjFELVxcdUZCMjhcXHVGQjJBLVxcdUZCMzZcXHVGQjM4LVxcdUZCM0NcXHVGQjNFXFx1RkI0MFxcdUZCNDFcXHVGQjQzXFx1RkI0NFxcdUZCNDYtXFx1RkJCMVxcdUZCRDMtXFx1RkQzRFxcdUZENTAtXFx1RkQ4RlxcdUZEOTItXFx1RkRDN1xcdUZERjAtXFx1RkRGQlxcdUZFMDAtXFx1RkUwRlxcdUZFMjAtXFx1RkUyRlxcdUZFMzNcXHVGRTM0XFx1RkU0RC1cXHVGRTRGXFx1RkU3MC1cXHVGRTc0XFx1RkU3Ni1cXHVGRUZDXFx1RkYxMC1cXHVGRjE5XFx1RkYyMS1cXHVGRjNBXFx1RkYzRlxcdUZGNDEtXFx1RkY1QVxcdUZGNjYtXFx1RkZCRVxcdUZGQzItXFx1RkZDN1xcdUZGQ0EtXFx1RkZDRlxcdUZGRDItXFx1RkZEN1xcdUZGREEtXFx1RkZEQ118XFx1RDgwMFtcXHVEQzAwLVxcdURDMEJcXHVEQzBELVxcdURDMjZcXHVEQzI4LVxcdURDM0FcXHVEQzNDXFx1REMzRFxcdURDM0YtXFx1REM0RFxcdURDNTAtXFx1REM1RFxcdURDODAtXFx1RENGQVxcdURENDAtXFx1REQ3NFxcdURERkRcXHVERTgwLVxcdURFOUNcXHVERUEwLVxcdURFRDBcXHVERUUwXFx1REYwMC1cXHVERjFGXFx1REYyRC1cXHVERjRBXFx1REY1MC1cXHVERjdBXFx1REY4MC1cXHVERjlEXFx1REZBMC1cXHVERkMzXFx1REZDOC1cXHVERkNGXFx1REZEMS1cXHVERkQ1XXxcXHVEODAxW1xcdURDMDAtXFx1REM5RFxcdURDQTAtXFx1RENBOVxcdURDQjAtXFx1RENEM1xcdURDRDgtXFx1RENGQlxcdUREMDAtXFx1REQyN1xcdUREMzAtXFx1REQ2M1xcdURFMDAtXFx1REYzNlxcdURGNDAtXFx1REY1NVxcdURGNjAtXFx1REY2N118XFx1RDgwMltcXHVEQzAwLVxcdURDMDVcXHVEQzA4XFx1REMwQS1cXHVEQzM1XFx1REMzN1xcdURDMzhcXHVEQzNDXFx1REMzRi1cXHVEQzU1XFx1REM2MC1cXHVEQzc2XFx1REM4MC1cXHVEQzlFXFx1RENFMC1cXHVEQ0YyXFx1RENGNFxcdURDRjVcXHVERDAwLVxcdUREMTVcXHVERDIwLVxcdUREMzlcXHVERDgwLVxcdUREQjdcXHVEREJFXFx1RERCRlxcdURFMDAtXFx1REUwM1xcdURFMDVcXHVERTA2XFx1REUwQy1cXHVERTEzXFx1REUxNS1cXHVERTE3XFx1REUxOS1cXHVERTMzXFx1REUzOC1cXHVERTNBXFx1REUzRlxcdURFNjAtXFx1REU3Q1xcdURFODAtXFx1REU5Q1xcdURFQzAtXFx1REVDN1xcdURFQzktXFx1REVFNlxcdURGMDAtXFx1REYzNVxcdURGNDAtXFx1REY1NVxcdURGNjAtXFx1REY3MlxcdURGODAtXFx1REY5MV18XFx1RDgwM1tcXHVEQzAwLVxcdURDNDhcXHVEQzgwLVxcdURDQjJcXHVEQ0MwLVxcdURDRjJdfFxcdUQ4MDRbXFx1REMwMC1cXHVEQzQ2XFx1REM2Ni1cXHVEQzZGXFx1REM3Ri1cXHVEQ0JBXFx1RENEMC1cXHVEQ0U4XFx1RENGMC1cXHVEQ0Y5XFx1REQwMC1cXHVERDM0XFx1REQzNi1cXHVERDNGXFx1REQ1MC1cXHVERDczXFx1REQ3NlxcdUREODAtXFx1RERDNFxcdUREQ0EtXFx1RERDQ1xcdURERDAtXFx1REREQVxcdURERENcXHVERTAwLVxcdURFMTFcXHVERTEzLVxcdURFMzdcXHVERTNFXFx1REU4MC1cXHVERTg2XFx1REU4OFxcdURFOEEtXFx1REU4RFxcdURFOEYtXFx1REU5RFxcdURFOUYtXFx1REVBOFxcdURFQjAtXFx1REVFQVxcdURFRjAtXFx1REVGOVxcdURGMDAtXFx1REYwM1xcdURGMDUtXFx1REYwQ1xcdURGMEZcXHVERjEwXFx1REYxMy1cXHVERjI4XFx1REYyQS1cXHVERjMwXFx1REYzMlxcdURGMzNcXHVERjM1LVxcdURGMzlcXHVERjNDLVxcdURGNDRcXHVERjQ3XFx1REY0OFxcdURGNEItXFx1REY0RFxcdURGNTBcXHVERjU3XFx1REY1RC1cXHVERjYzXFx1REY2Ni1cXHVERjZDXFx1REY3MC1cXHVERjc0XXxcXHVEODA1W1xcdURDMDAtXFx1REM0QVxcdURDNTAtXFx1REM1OVxcdURDODAtXFx1RENDNVxcdURDQzdcXHVEQ0QwLVxcdURDRDlcXHVERDgwLVxcdUREQjVcXHVEREI4LVxcdUREQzBcXHVEREQ4LVxcdURERERcXHVERTAwLVxcdURFNDBcXHVERTQ0XFx1REU1MC1cXHVERTU5XFx1REU4MC1cXHVERUI3XFx1REVDMC1cXHVERUM5XFx1REYwMC1cXHVERjE5XFx1REYxRC1cXHVERjJCXFx1REYzMC1cXHVERjM5XXxcXHVEODA2W1xcdURDQTAtXFx1RENFOVxcdURDRkZcXHVERTAwLVxcdURFM0VcXHVERTQ3XFx1REU1MC1cXHVERTgzXFx1REU4Ni1cXHVERTk5XFx1REVDMC1cXHVERUY4XXxcXHVEODA3W1xcdURDMDAtXFx1REMwOFxcdURDMEEtXFx1REMzNlxcdURDMzgtXFx1REM0MFxcdURDNTAtXFx1REM1OVxcdURDNzItXFx1REM4RlxcdURDOTItXFx1RENBN1xcdURDQTktXFx1RENCNlxcdUREMDAtXFx1REQwNlxcdUREMDhcXHVERDA5XFx1REQwQi1cXHVERDM2XFx1REQzQVxcdUREM0NcXHVERDNEXFx1REQzRi1cXHVERDQ3XFx1REQ1MC1cXHVERDU5XXxcXHVEODA4W1xcdURDMDAtXFx1REY5OV18XFx1RDgwOVtcXHVEQzAwLVxcdURDNkVcXHVEQzgwLVxcdURENDNdfFtcXHVEODBDXFx1RDgxQy1cXHVEODIwXFx1RDg0MC1cXHVEODY4XFx1RDg2QS1cXHVEODZDXFx1RDg2Ri1cXHVEODcyXFx1RDg3NC1cXHVEODc5XVtcXHVEQzAwLVxcdURGRkZdfFxcdUQ4MERbXFx1REMwMC1cXHVEQzJFXXxcXHVEODExW1xcdURDMDAtXFx1REU0Nl18XFx1RDgxQVtcXHVEQzAwLVxcdURFMzhcXHVERTQwLVxcdURFNUVcXHVERTYwLVxcdURFNjlcXHVERUQwLVxcdURFRURcXHVERUYwLVxcdURFRjRcXHVERjAwLVxcdURGMzZcXHVERjQwLVxcdURGNDNcXHVERjUwLVxcdURGNTlcXHVERjYzLVxcdURGNzdcXHVERjdELVxcdURGOEZdfFxcdUQ4MUJbXFx1REYwMC1cXHVERjQ0XFx1REY1MC1cXHVERjdFXFx1REY4Ri1cXHVERjlGXFx1REZFMFxcdURGRTFdfFxcdUQ4MjFbXFx1REMwMC1cXHVERkVDXXxcXHVEODIyW1xcdURDMDAtXFx1REVGMl18XFx1RDgyQ1tcXHVEQzAwLVxcdUREMUVcXHVERDcwLVxcdURFRkJdfFxcdUQ4MkZbXFx1REMwMC1cXHVEQzZBXFx1REM3MC1cXHVEQzdDXFx1REM4MC1cXHVEQzg4XFx1REM5MC1cXHVEQzk5XFx1REM5RFxcdURDOUVdfFxcdUQ4MzRbXFx1REQ2NS1cXHVERDY5XFx1REQ2RC1cXHVERDcyXFx1REQ3Qi1cXHVERDgyXFx1REQ4NS1cXHVERDhCXFx1RERBQS1cXHVEREFEXFx1REU0Mi1cXHVERTQ0XXxcXHVEODM1W1xcdURDMDAtXFx1REM1NFxcdURDNTYtXFx1REM5Q1xcdURDOUVcXHVEQzlGXFx1RENBMlxcdURDQTVcXHVEQ0E2XFx1RENBOS1cXHVEQ0FDXFx1RENBRS1cXHVEQ0I5XFx1RENCQlxcdURDQkQtXFx1RENDM1xcdURDQzUtXFx1REQwNVxcdUREMDctXFx1REQwQVxcdUREMEQtXFx1REQxNFxcdUREMTYtXFx1REQxQ1xcdUREMUUtXFx1REQzOVxcdUREM0ItXFx1REQzRVxcdURENDAtXFx1REQ0NFxcdURENDZcXHVERDRBLVxcdURENTBcXHVERDUyLVxcdURFQTVcXHVERUE4LVxcdURFQzBcXHVERUMyLVxcdURFREFcXHVERURDLVxcdURFRkFcXHVERUZDLVxcdURGMTRcXHVERjE2LVxcdURGMzRcXHVERjM2LVxcdURGNEVcXHVERjUwLVxcdURGNkVcXHVERjcwLVxcdURGODhcXHVERjhBLVxcdURGQThcXHVERkFBLVxcdURGQzJcXHVERkM0LVxcdURGQ0JcXHVERkNFLVxcdURGRkZdfFxcdUQ4MzZbXFx1REUwMC1cXHVERTM2XFx1REUzQi1cXHVERTZDXFx1REU3NVxcdURFODRcXHVERTlCLVxcdURFOUZcXHVERUExLVxcdURFQUZdfFxcdUQ4MzhbXFx1REMwMC1cXHVEQzA2XFx1REMwOC1cXHVEQzE4XFx1REMxQi1cXHVEQzIxXFx1REMyM1xcdURDMjRcXHVEQzI2LVxcdURDMkFdfFxcdUQ4M0FbXFx1REMwMC1cXHVEQ0M0XFx1RENEMC1cXHVEQ0Q2XFx1REQwMC1cXHVERDRBXFx1REQ1MC1cXHVERDU5XXxcXHVEODNCW1xcdURFMDAtXFx1REUwM1xcdURFMDUtXFx1REUxRlxcdURFMjFcXHVERTIyXFx1REUyNFxcdURFMjdcXHVERTI5LVxcdURFMzJcXHVERTM0LVxcdURFMzdcXHVERTM5XFx1REUzQlxcdURFNDJcXHVERTQ3XFx1REU0OVxcdURFNEJcXHVERTRELVxcdURFNEZcXHVERTUxXFx1REU1MlxcdURFNTRcXHVERTU3XFx1REU1OVxcdURFNUJcXHVERTVEXFx1REU1RlxcdURFNjFcXHVERTYyXFx1REU2NFxcdURFNjctXFx1REU2QVxcdURFNkMtXFx1REU3MlxcdURFNzQtXFx1REU3N1xcdURFNzktXFx1REU3Q1xcdURFN0VcXHVERTgwLVxcdURFODlcXHVERThCLVxcdURFOUJcXHVERUExLVxcdURFQTNcXHVERUE1LVxcdURFQTlcXHVERUFCLVxcdURFQkJdfFxcdUQ4NjlbXFx1REMwMC1cXHVERUQ2XFx1REYwMC1cXHVERkZGXXxcXHVEODZEW1xcdURDMDAtXFx1REYzNFxcdURGNDAtXFx1REZGRl18XFx1RDg2RVtcXHVEQzAwLVxcdURDMURcXHVEQzIwLVxcdURGRkZdfFxcdUQ4NzNbXFx1REMwMC1cXHVERUExXFx1REVCMC1cXHVERkZGXXxcXHVEODdBW1xcdURDMDAtXFx1REZFMF18XFx1RDg3RVtcXHVEQzAwLVxcdURFMURdfFxcdURCNDBbXFx1REQwMC1cXHVEREVGXS87XG5cblx0dmFyIHVuaWNvZGUgPSB7XG5cdFx0U3BhY2VfU2VwYXJhdG9yOiBTcGFjZV9TZXBhcmF0b3IsXG5cdFx0SURfU3RhcnQ6IElEX1N0YXJ0LFxuXHRcdElEX0NvbnRpbnVlOiBJRF9Db250aW51ZVxuXHR9O1xuXG5cdHZhciB1dGlsID0ge1xuXHQgICAgaXNTcGFjZVNlcGFyYXRvcjogZnVuY3Rpb24gaXNTcGFjZVNlcGFyYXRvciAoYykge1xuXHQgICAgICAgIHJldHVybiB0eXBlb2YgYyA9PT0gJ3N0cmluZycgJiYgdW5pY29kZS5TcGFjZV9TZXBhcmF0b3IudGVzdChjKVxuXHQgICAgfSxcblxuXHQgICAgaXNJZFN0YXJ0Q2hhcjogZnVuY3Rpb24gaXNJZFN0YXJ0Q2hhciAoYykge1xuXHQgICAgICAgIHJldHVybiB0eXBlb2YgYyA9PT0gJ3N0cmluZycgJiYgKFxuXHQgICAgICAgICAgICAoYyA+PSAnYScgJiYgYyA8PSAneicpIHx8XG5cdCAgICAgICAgKGMgPj0gJ0EnICYmIGMgPD0gJ1onKSB8fFxuXHQgICAgICAgIChjID09PSAnJCcpIHx8IChjID09PSAnXycpIHx8XG5cdCAgICAgICAgdW5pY29kZS5JRF9TdGFydC50ZXN0KGMpXG5cdCAgICAgICAgKVxuXHQgICAgfSxcblxuXHQgICAgaXNJZENvbnRpbnVlQ2hhcjogZnVuY3Rpb24gaXNJZENvbnRpbnVlQ2hhciAoYykge1xuXHQgICAgICAgIHJldHVybiB0eXBlb2YgYyA9PT0gJ3N0cmluZycgJiYgKFxuXHQgICAgICAgICAgICAoYyA+PSAnYScgJiYgYyA8PSAneicpIHx8XG5cdCAgICAgICAgKGMgPj0gJ0EnICYmIGMgPD0gJ1onKSB8fFxuXHQgICAgICAgIChjID49ICcwJyAmJiBjIDw9ICc5JykgfHxcblx0ICAgICAgICAoYyA9PT0gJyQnKSB8fCAoYyA9PT0gJ18nKSB8fFxuXHQgICAgICAgIChjID09PSAnXFx1MjAwQycpIHx8IChjID09PSAnXFx1MjAwRCcpIHx8XG5cdCAgICAgICAgdW5pY29kZS5JRF9Db250aW51ZS50ZXN0KGMpXG5cdCAgICAgICAgKVxuXHQgICAgfSxcblxuXHQgICAgaXNEaWdpdDogZnVuY3Rpb24gaXNEaWdpdCAoYykge1xuXHQgICAgICAgIHJldHVybiB0eXBlb2YgYyA9PT0gJ3N0cmluZycgJiYgL1swLTldLy50ZXN0KGMpXG5cdCAgICB9LFxuXG5cdCAgICBpc0hleERpZ2l0OiBmdW5jdGlvbiBpc0hleERpZ2l0IChjKSB7XG5cdCAgICAgICAgcmV0dXJuIHR5cGVvZiBjID09PSAnc3RyaW5nJyAmJiAvWzAtOUEtRmEtZl0vLnRlc3QoYylcblx0ICAgIH0sXG5cdH07XG5cblx0dmFyIHNvdXJjZTtcblx0dmFyIHBhcnNlU3RhdGU7XG5cdHZhciBzdGFjaztcblx0dmFyIHBvcztcblx0dmFyIGxpbmU7XG5cdHZhciBjb2x1bW47XG5cdHZhciB0b2tlbjtcblx0dmFyIGtleTtcblx0dmFyIHJvb3Q7XG5cblx0dmFyIHBhcnNlID0gZnVuY3Rpb24gcGFyc2UgKHRleHQsIHJldml2ZXIpIHtcblx0ICAgIHNvdXJjZSA9IFN0cmluZyh0ZXh0KTtcblx0ICAgIHBhcnNlU3RhdGUgPSAnc3RhcnQnO1xuXHQgICAgc3RhY2sgPSBbXTtcblx0ICAgIHBvcyA9IDA7XG5cdCAgICBsaW5lID0gMTtcblx0ICAgIGNvbHVtbiA9IDA7XG5cdCAgICB0b2tlbiA9IHVuZGVmaW5lZDtcblx0ICAgIGtleSA9IHVuZGVmaW5lZDtcblx0ICAgIHJvb3QgPSB1bmRlZmluZWQ7XG5cblx0ICAgIGRvIHtcblx0ICAgICAgICB0b2tlbiA9IGxleCgpO1xuXG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlLlxuXHQgICAgICAgIC8vIGlmICghcGFyc2VTdGF0ZXNbcGFyc2VTdGF0ZV0pIHtcblx0ICAgICAgICAvLyAgICAgdGhyb3cgaW52YWxpZFBhcnNlU3RhdGUoKVxuXHQgICAgICAgIC8vIH1cblxuXHQgICAgICAgIHBhcnNlU3RhdGVzW3BhcnNlU3RhdGVdKCk7XG5cdCAgICB9IHdoaWxlICh0b2tlbi50eXBlICE9PSAnZW9mJylcblxuXHQgICAgaWYgKHR5cGVvZiByZXZpdmVyID09PSAnZnVuY3Rpb24nKSB7XG5cdCAgICAgICAgcmV0dXJuIGludGVybmFsaXplKHsnJzogcm9vdH0sICcnLCByZXZpdmVyKVxuXHQgICAgfVxuXG5cdCAgICByZXR1cm4gcm9vdFxuXHR9O1xuXG5cdGZ1bmN0aW9uIGludGVybmFsaXplIChob2xkZXIsIG5hbWUsIHJldml2ZXIpIHtcblx0ICAgIHZhciB2YWx1ZSA9IGhvbGRlcltuYW1lXTtcblx0ICAgIGlmICh2YWx1ZSAhPSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcblx0ICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcblx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xuXHQgICAgICAgICAgICAgICAgdmFyIGtleSA9IFN0cmluZyhpKTtcblx0ICAgICAgICAgICAgICAgIHZhciByZXBsYWNlbWVudCA9IGludGVybmFsaXplKHZhbHVlLCBrZXksIHJldml2ZXIpO1xuXHQgICAgICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID09PSB1bmRlZmluZWQpIHtcblx0ICAgICAgICAgICAgICAgICAgICBkZWxldGUgdmFsdWVba2V5XTtcblx0ICAgICAgICAgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHZhbHVlLCBrZXksIHtcblx0ICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHJlcGxhY2VtZW50LFxuXHQgICAgICAgICAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcblx0ICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcblx0ICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuXHQgICAgICAgICAgICAgICAgICAgIH0pO1xuXHQgICAgICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgZm9yICh2YXIga2V5JDEgaW4gdmFsdWUpIHtcblx0ICAgICAgICAgICAgICAgIHZhciByZXBsYWNlbWVudCQxID0gaW50ZXJuYWxpemUodmFsdWUsIGtleSQxLCByZXZpdmVyKTtcblx0ICAgICAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCQxID09PSB1bmRlZmluZWQpIHtcblx0ICAgICAgICAgICAgICAgICAgICBkZWxldGUgdmFsdWVba2V5JDFdO1xuXHQgICAgICAgICAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodmFsdWUsIGtleSQxLCB7XG5cdCAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiByZXBsYWNlbWVudCQxLFxuXHQgICAgICAgICAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcblx0ICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcblx0ICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuXHQgICAgICAgICAgICAgICAgICAgIH0pO1xuXHQgICAgICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfVxuXHQgICAgfVxuXG5cdCAgICByZXR1cm4gcmV2aXZlci5jYWxsKGhvbGRlciwgbmFtZSwgdmFsdWUpXG5cdH1cblxuXHR2YXIgbGV4U3RhdGU7XG5cdHZhciBidWZmZXI7XG5cdHZhciBkb3VibGVRdW90ZTtcblx0dmFyIHNpZ247XG5cdHZhciBjO1xuXG5cdGZ1bmN0aW9uIGxleCAoKSB7XG5cdCAgICBsZXhTdGF0ZSA9ICdkZWZhdWx0Jztcblx0ICAgIGJ1ZmZlciA9ICcnO1xuXHQgICAgZG91YmxlUXVvdGUgPSBmYWxzZTtcblx0ICAgIHNpZ24gPSAxO1xuXG5cdCAgICBmb3IgKDs7KSB7XG5cdCAgICAgICAgYyA9IHBlZWsoKTtcblxuXHQgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZS5cblx0ICAgICAgICAvLyBpZiAoIWxleFN0YXRlc1tsZXhTdGF0ZV0pIHtcblx0ICAgICAgICAvLyAgICAgdGhyb3cgaW52YWxpZExleFN0YXRlKGxleFN0YXRlKVxuXHQgICAgICAgIC8vIH1cblxuXHQgICAgICAgIHZhciB0b2tlbiA9IGxleFN0YXRlc1tsZXhTdGF0ZV0oKTtcblx0ICAgICAgICBpZiAodG9rZW4pIHtcblx0ICAgICAgICAgICAgcmV0dXJuIHRva2VuXG5cdCAgICAgICAgfVxuXHQgICAgfVxuXHR9XG5cblx0ZnVuY3Rpb24gcGVlayAoKSB7XG5cdCAgICBpZiAoc291cmNlW3Bvc10pIHtcblx0ICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21Db2RlUG9pbnQoc291cmNlLmNvZGVQb2ludEF0KHBvcykpXG5cdCAgICB9XG5cdH1cblxuXHRmdW5jdGlvbiByZWFkICgpIHtcblx0ICAgIHZhciBjID0gcGVlaygpO1xuXG5cdCAgICBpZiAoYyA9PT0gJ1xcbicpIHtcblx0ICAgICAgICBsaW5lKys7XG5cdCAgICAgICAgY29sdW1uID0gMDtcblx0ICAgIH0gZWxzZSBpZiAoYykge1xuXHQgICAgICAgIGNvbHVtbiArPSBjLmxlbmd0aDtcblx0ICAgIH0gZWxzZSB7XG5cdCAgICAgICAgY29sdW1uKys7XG5cdCAgICB9XG5cblx0ICAgIGlmIChjKSB7XG5cdCAgICAgICAgcG9zICs9IGMubGVuZ3RoO1xuXHQgICAgfVxuXG5cdCAgICByZXR1cm4gY1xuXHR9XG5cblx0dmFyIGxleFN0YXRlcyA9IHtcblx0ICAgIGRlZmF1bHQ6IGZ1bmN0aW9uIGRlZmF1bHQkMSAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnXFx0Jzpcblx0ICAgICAgICBjYXNlICdcXHYnOlxuXHQgICAgICAgIGNhc2UgJ1xcZic6XG5cdCAgICAgICAgY2FzZSAnICc6XG5cdCAgICAgICAgY2FzZSAnXFx1MDBBMCc6XG5cdCAgICAgICAgY2FzZSAnXFx1RkVGRic6XG5cdCAgICAgICAgY2FzZSAnXFxuJzpcblx0ICAgICAgICBjYXNlICdcXHInOlxuXHQgICAgICAgIGNhc2UgJ1xcdTIwMjgnOlxuXHQgICAgICAgIGNhc2UgJ1xcdTIwMjknOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnLyc6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnY29tbWVudCc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdlb2YnKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh1dGlsLmlzU3BhY2VTZXBhcmF0b3IoYykpIHtcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICAvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUuXG5cdCAgICAgICAgLy8gaWYgKCFsZXhTdGF0ZXNbcGFyc2VTdGF0ZV0pIHtcblx0ICAgICAgICAvLyAgICAgdGhyb3cgaW52YWxpZExleFN0YXRlKHBhcnNlU3RhdGUpXG5cdCAgICAgICAgLy8gfVxuXG5cdCAgICAgICAgcmV0dXJuIGxleFN0YXRlc1twYXJzZVN0YXRlXSgpXG5cdCAgICB9LFxuXG5cdCAgICBjb21tZW50OiBmdW5jdGlvbiBjb21tZW50ICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICcqJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdtdWx0aUxpbmVDb21tZW50Jztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICcvJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdzaW5nbGVMaW5lQ29tbWVudCc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH0sXG5cblx0ICAgIG11bHRpTGluZUNvbW1lbnQ6IGZ1bmN0aW9uIG11bHRpTGluZUNvbW1lbnQgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJyonOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ211bHRpTGluZUNvbW1lbnRBc3Rlcmlzayc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZWFkKCk7XG5cdCAgICB9LFxuXG5cdCAgICBtdWx0aUxpbmVDb21tZW50QXN0ZXJpc2s6IGZ1bmN0aW9uIG11bHRpTGluZUNvbW1lbnRBc3RlcmlzayAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnKic6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICcvJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWZhdWx0Jztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlIHVuZGVmaW5lZDpcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICBsZXhTdGF0ZSA9ICdtdWx0aUxpbmVDb21tZW50Jztcblx0ICAgIH0sXG5cblx0ICAgIHNpbmdsZUxpbmVDb21tZW50OiBmdW5jdGlvbiBzaW5nbGVMaW5lQ29tbWVudCAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnXFxuJzpcblx0ICAgICAgICBjYXNlICdcXHInOlxuXHQgICAgICAgIGNhc2UgJ1xcdTIwMjgnOlxuXHQgICAgICAgIGNhc2UgJ1xcdTIwMjknOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlZmF1bHQnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgdW5kZWZpbmVkOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbignZW9mJylcblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZWFkKCk7XG5cdCAgICB9LFxuXG5cdCAgICB2YWx1ZTogZnVuY3Rpb24gdmFsdWUgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJ3snOlxuXHQgICAgICAgIGNhc2UgJ1snOlxuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ3B1bmN0dWF0b3InLCByZWFkKCkpXG5cblx0ICAgICAgICBjYXNlICduJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsaXRlcmFsKCd1bGwnKTtcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdudWxsJywgbnVsbClcblxuXHQgICAgICAgIGNhc2UgJ3QnOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxpdGVyYWwoJ3J1ZScpO1xuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ2Jvb2xlYW4nLCB0cnVlKVxuXG5cdCAgICAgICAgY2FzZSAnZic6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGl0ZXJhbCgnYWxzZScpO1xuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ2Jvb2xlYW4nLCBmYWxzZSlcblxuXHQgICAgICAgIGNhc2UgJy0nOlxuXHQgICAgICAgIGNhc2UgJysnOlxuXHQgICAgICAgICAgICBpZiAocmVhZCgpID09PSAnLScpIHtcblx0ICAgICAgICAgICAgICAgIHNpZ24gPSAtMTtcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ3NpZ24nO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJy4nOlxuXHQgICAgICAgICAgICBidWZmZXIgPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxQb2ludExlYWRpbmcnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJzAnOlxuXHQgICAgICAgICAgICBidWZmZXIgPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ3plcm8nO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJzEnOlxuXHQgICAgICAgIGNhc2UgJzInOlxuXHQgICAgICAgIGNhc2UgJzMnOlxuXHQgICAgICAgIGNhc2UgJzQnOlxuXHQgICAgICAgIGNhc2UgJzUnOlxuXHQgICAgICAgIGNhc2UgJzYnOlxuXHQgICAgICAgIGNhc2UgJzcnOlxuXHQgICAgICAgIGNhc2UgJzgnOlxuXHQgICAgICAgIGNhc2UgJzknOlxuXHQgICAgICAgICAgICBidWZmZXIgPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxJbnRlZ2VyJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICdJJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsaXRlcmFsKCduZmluaXR5Jyk7XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbignbnVtZXJpYycsIEluZmluaXR5KVxuXG5cdCAgICAgICAgY2FzZSAnTic6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGl0ZXJhbCgnYU4nKTtcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdudW1lcmljJywgTmFOKVxuXG5cdCAgICAgICAgY2FzZSAnXCInOlxuXHQgICAgICAgIGNhc2UgXCInXCI6XG5cdCAgICAgICAgICAgIGRvdWJsZVF1b3RlID0gKHJlYWQoKSA9PT0gJ1wiJyk7XG5cdCAgICAgICAgICAgIGJ1ZmZlciA9ICcnO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdzdHJpbmcnO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXG5cdCAgICBpZGVudGlmaWVyTmFtZVN0YXJ0RXNjYXBlOiBmdW5jdGlvbiBpZGVudGlmaWVyTmFtZVN0YXJ0RXNjYXBlICgpIHtcblx0ICAgICAgICBpZiAoYyAhPT0gJ3UnKSB7XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgdmFyIHUgPSB1bmljb2RlRXNjYXBlKCk7XG5cdCAgICAgICAgc3dpdGNoICh1KSB7XG5cdCAgICAgICAgY2FzZSAnJCc6XG5cdCAgICAgICAgY2FzZSAnXyc6XG5cdCAgICAgICAgICAgIGJyZWFrXG5cblx0ICAgICAgICBkZWZhdWx0OlxuXHQgICAgICAgICAgICBpZiAoIXV0aWwuaXNJZFN0YXJ0Q2hhcih1KSkge1xuXHQgICAgICAgICAgICAgICAgdGhyb3cgaW52YWxpZElkZW50aWZpZXIoKVxuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgYnJlYWtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBidWZmZXIgKz0gdTtcblx0ICAgICAgICBsZXhTdGF0ZSA9ICdpZGVudGlmaWVyTmFtZSc7XG5cdCAgICB9LFxuXG5cdCAgICBpZGVudGlmaWVyTmFtZTogZnVuY3Rpb24gaWRlbnRpZmllck5hbWUgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJyQnOlxuXHQgICAgICAgIGNhc2UgJ18nOlxuXHQgICAgICAgIGNhc2UgJ1xcdTIwMEMnOlxuXHQgICAgICAgIGNhc2UgJ1xcdTIwMEQnOlxuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJ1xcXFwnOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2lkZW50aWZpZXJOYW1lRXNjYXBlJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHV0aWwuaXNJZENvbnRpbnVlQ2hhcihjKSkge1xuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ2lkZW50aWZpZXInLCBidWZmZXIpXG5cdCAgICB9LFxuXG5cdCAgICBpZGVudGlmaWVyTmFtZUVzY2FwZTogZnVuY3Rpb24gaWRlbnRpZmllck5hbWVFc2NhcGUgKCkge1xuXHQgICAgICAgIGlmIChjICE9PSAndScpIHtcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICB2YXIgdSA9IHVuaWNvZGVFc2NhcGUoKTtcblx0ICAgICAgICBzd2l0Y2ggKHUpIHtcblx0ICAgICAgICBjYXNlICckJzpcblx0ICAgICAgICBjYXNlICdfJzpcblx0ICAgICAgICBjYXNlICdcXHUyMDBDJzpcblx0ICAgICAgICBjYXNlICdcXHUyMDBEJzpcblx0ICAgICAgICAgICAgYnJlYWtcblxuXHQgICAgICAgIGRlZmF1bHQ6XG5cdCAgICAgICAgICAgIGlmICghdXRpbC5pc0lkQ29udGludWVDaGFyKHUpKSB7XG5cdCAgICAgICAgICAgICAgICB0aHJvdyBpbnZhbGlkSWRlbnRpZmllcigpXG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICBicmVha1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGJ1ZmZlciArPSB1O1xuXHQgICAgICAgIGxleFN0YXRlID0gJ2lkZW50aWZpZXJOYW1lJztcblx0ICAgIH0sXG5cblx0ICAgIHNpZ246IGZ1bmN0aW9uIHNpZ24kMSAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnLic6XG5cdCAgICAgICAgICAgIGJ1ZmZlciA9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbFBvaW50TGVhZGluZyc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnMCc6XG5cdCAgICAgICAgICAgIGJ1ZmZlciA9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnemVybyc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnMSc6XG5cdCAgICAgICAgY2FzZSAnMic6XG5cdCAgICAgICAgY2FzZSAnMyc6XG5cdCAgICAgICAgY2FzZSAnNCc6XG5cdCAgICAgICAgY2FzZSAnNSc6XG5cdCAgICAgICAgY2FzZSAnNic6XG5cdCAgICAgICAgY2FzZSAnNyc6XG5cdCAgICAgICAgY2FzZSAnOCc6XG5cdCAgICAgICAgY2FzZSAnOSc6XG5cdCAgICAgICAgICAgIGJ1ZmZlciA9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbEludGVnZXInO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJ0knOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxpdGVyYWwoJ25maW5pdHknKTtcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdudW1lcmljJywgc2lnbiAqIEluZmluaXR5KVxuXG5cdCAgICAgICAgY2FzZSAnTic6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGl0ZXJhbCgnYU4nKTtcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdudW1lcmljJywgTmFOKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH0sXG5cblx0ICAgIHplcm86IGZ1bmN0aW9uIHplcm8gKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJy4nOlxuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsUG9pbnQnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJ2UnOlxuXHQgICAgICAgIGNhc2UgJ0UnOlxuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsRXhwb25lbnQnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJ3gnOlxuXHQgICAgICAgIGNhc2UgJ1gnOlxuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdoZXhhZGVjaW1hbCc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiBuZXdUb2tlbignbnVtZXJpYycsIHNpZ24gKiAwKVxuXHQgICAgfSxcblxuXHQgICAgZGVjaW1hbEludGVnZXI6IGZ1bmN0aW9uIGRlY2ltYWxJbnRlZ2VyICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICcuJzpcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbFBvaW50Jztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICdlJzpcblx0ICAgICAgICBjYXNlICdFJzpcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbEV4cG9uZW50Jztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHV0aWwuaXNEaWdpdChjKSkge1xuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ251bWVyaWMnLCBzaWduICogTnVtYmVyKGJ1ZmZlcikpXG5cdCAgICB9LFxuXG5cdCAgICBkZWNpbWFsUG9pbnRMZWFkaW5nOiBmdW5jdGlvbiBkZWNpbWFsUG9pbnRMZWFkaW5nICgpIHtcblx0ICAgICAgICBpZiAodXRpbC5pc0RpZ2l0KGMpKSB7XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxGcmFjdGlvbic7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH0sXG5cblx0ICAgIGRlY2ltYWxQb2ludDogZnVuY3Rpb24gZGVjaW1hbFBvaW50ICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICdlJzpcblx0ICAgICAgICBjYXNlICdFJzpcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbEV4cG9uZW50Jztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHV0aWwuaXNEaWdpdChjKSkge1xuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsRnJhY3Rpb24nO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ251bWVyaWMnLCBzaWduICogTnVtYmVyKGJ1ZmZlcikpXG5cdCAgICB9LFxuXG5cdCAgICBkZWNpbWFsRnJhY3Rpb246IGZ1bmN0aW9uIGRlY2ltYWxGcmFjdGlvbiAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnZSc6XG5cdCAgICAgICAgY2FzZSAnRSc6XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxFeHBvbmVudCc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh1dGlsLmlzRGlnaXQoYykpIHtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdudW1lcmljJywgc2lnbiAqIE51bWJlcihidWZmZXIpKVxuXHQgICAgfSxcblxuXHQgICAgZGVjaW1hbEV4cG9uZW50OiBmdW5jdGlvbiBkZWNpbWFsRXhwb25lbnQgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJysnOlxuXHQgICAgICAgIGNhc2UgJy0nOlxuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsRXhwb25lbnRTaWduJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHV0aWwuaXNEaWdpdChjKSkge1xuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsRXhwb25lbnRJbnRlZ2VyJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfSxcblxuXHQgICAgZGVjaW1hbEV4cG9uZW50U2lnbjogZnVuY3Rpb24gZGVjaW1hbEV4cG9uZW50U2lnbiAoKSB7XG5cdCAgICAgICAgaWYgKHV0aWwuaXNEaWdpdChjKSkge1xuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsRXhwb25lbnRJbnRlZ2VyJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfSxcblxuXHQgICAgZGVjaW1hbEV4cG9uZW50SW50ZWdlcjogZnVuY3Rpb24gZGVjaW1hbEV4cG9uZW50SW50ZWdlciAoKSB7XG5cdCAgICAgICAgaWYgKHV0aWwuaXNEaWdpdChjKSkge1xuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ251bWVyaWMnLCBzaWduICogTnVtYmVyKGJ1ZmZlcikpXG5cdCAgICB9LFxuXG5cdCAgICBoZXhhZGVjaW1hbDogZnVuY3Rpb24gaGV4YWRlY2ltYWwgKCkge1xuXHQgICAgICAgIGlmICh1dGlsLmlzSGV4RGlnaXQoYykpIHtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnaGV4YWRlY2ltYWxJbnRlZ2VyJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfSxcblxuXHQgICAgaGV4YWRlY2ltYWxJbnRlZ2VyOiBmdW5jdGlvbiBoZXhhZGVjaW1hbEludGVnZXIgKCkge1xuXHQgICAgICAgIGlmICh1dGlsLmlzSGV4RGlnaXQoYykpIHtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdudW1lcmljJywgc2lnbiAqIE51bWJlcihidWZmZXIpKVxuXHQgICAgfSxcblxuXHQgICAgc3RyaW5nOiBmdW5jdGlvbiBzdHJpbmcgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJ1xcXFwnOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSBlc2NhcGUoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICdcIic6XG5cdCAgICAgICAgICAgIGlmIChkb3VibGVRdW90ZSkge1xuXHQgICAgICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdzdHJpbmcnLCBidWZmZXIpXG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgXCInXCI6XG5cdCAgICAgICAgICAgIGlmICghZG91YmxlUXVvdGUpIHtcblx0ICAgICAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbignc3RyaW5nJywgYnVmZmVyKVxuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICdcXG4nOlxuXHQgICAgICAgIGNhc2UgJ1xccic6XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblxuXHQgICAgICAgIGNhc2UgJ1xcdTIwMjgnOlxuXHQgICAgICAgIGNhc2UgJ1xcdTIwMjknOlxuXHQgICAgICAgICAgICBzZXBhcmF0b3JDaGFyKGMpO1xuXHQgICAgICAgICAgICBicmVha1xuXG5cdCAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgfSxcblxuXHQgICAgc3RhcnQ6IGZ1bmN0aW9uIHN0YXJ0ICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICd7Jzpcblx0ICAgICAgICBjYXNlICdbJzpcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdwdW5jdHVhdG9yJywgcmVhZCgpKVxuXG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlIHNpbmNlIHRoZSBkZWZhdWx0IGxleFN0YXRlIGhhbmRsZXMgZW9mLlxuXHQgICAgICAgIC8vIGNhc2UgdW5kZWZpbmVkOlxuXHQgICAgICAgIC8vICAgICByZXR1cm4gbmV3VG9rZW4oJ2VvZicpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgbGV4U3RhdGUgPSAndmFsdWUnO1xuXHQgICAgfSxcblxuXHQgICAgYmVmb3JlUHJvcGVydHlOYW1lOiBmdW5jdGlvbiBiZWZvcmVQcm9wZXJ0eU5hbWUgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJyQnOlxuXHQgICAgICAgIGNhc2UgJ18nOlxuXHQgICAgICAgICAgICBidWZmZXIgPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2lkZW50aWZpZXJOYW1lJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICdcXFxcJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdpZGVudGlmaWVyTmFtZVN0YXJ0RXNjYXBlJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICd9Jzpcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdwdW5jdHVhdG9yJywgcmVhZCgpKVxuXG5cdCAgICAgICAgY2FzZSAnXCInOlxuXHQgICAgICAgIGNhc2UgXCInXCI6XG5cdCAgICAgICAgICAgIGRvdWJsZVF1b3RlID0gKHJlYWQoKSA9PT0gJ1wiJyk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ3N0cmluZyc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh1dGlsLmlzSWRTdGFydENoYXIoYykpIHtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnaWRlbnRpZmllck5hbWUnO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXG5cdCAgICBhZnRlclByb3BlcnR5TmFtZTogZnVuY3Rpb24gYWZ0ZXJQcm9wZXJ0eU5hbWUgKCkge1xuXHQgICAgICAgIGlmIChjID09PSAnOicpIHtcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdwdW5jdHVhdG9yJywgcmVhZCgpKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH0sXG5cblx0ICAgIGJlZm9yZVByb3BlcnR5VmFsdWU6IGZ1bmN0aW9uIGJlZm9yZVByb3BlcnR5VmFsdWUgKCkge1xuXHQgICAgICAgIGxleFN0YXRlID0gJ3ZhbHVlJztcblx0ICAgIH0sXG5cblx0ICAgIGFmdGVyUHJvcGVydHlWYWx1ZTogZnVuY3Rpb24gYWZ0ZXJQcm9wZXJ0eVZhbHVlICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICcsJzpcblx0ICAgICAgICBjYXNlICd9Jzpcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdwdW5jdHVhdG9yJywgcmVhZCgpKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH0sXG5cblx0ICAgIGJlZm9yZUFycmF5VmFsdWU6IGZ1bmN0aW9uIGJlZm9yZUFycmF5VmFsdWUgKCkge1xuXHQgICAgICAgIGlmIChjID09PSAnXScpIHtcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdwdW5jdHVhdG9yJywgcmVhZCgpKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGxleFN0YXRlID0gJ3ZhbHVlJztcblx0ICAgIH0sXG5cblx0ICAgIGFmdGVyQXJyYXlWYWx1ZTogZnVuY3Rpb24gYWZ0ZXJBcnJheVZhbHVlICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICcsJzpcblx0ICAgICAgICBjYXNlICddJzpcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdwdW5jdHVhdG9yJywgcmVhZCgpKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH0sXG5cblx0ICAgIGVuZDogZnVuY3Rpb24gZW5kICgpIHtcblx0ICAgICAgICAvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUgc2luY2UgaXQncyBoYW5kbGVkIGJ5IHRoZSBkZWZhdWx0IGxleFN0YXRlLlxuXHQgICAgICAgIC8vIGlmIChjID09PSB1bmRlZmluZWQpIHtcblx0ICAgICAgICAvLyAgICAgcmVhZCgpXG5cdCAgICAgICAgLy8gICAgIHJldHVybiBuZXdUb2tlbignZW9mJylcblx0ICAgICAgICAvLyB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXHR9O1xuXG5cdGZ1bmN0aW9uIG5ld1Rva2VuICh0eXBlLCB2YWx1ZSkge1xuXHQgICAgcmV0dXJuIHtcblx0ICAgICAgICB0eXBlOiB0eXBlLFxuXHQgICAgICAgIHZhbHVlOiB2YWx1ZSxcblx0ICAgICAgICBsaW5lOiBsaW5lLFxuXHQgICAgICAgIGNvbHVtbjogY29sdW1uLFxuXHQgICAgfVxuXHR9XG5cblx0ZnVuY3Rpb24gbGl0ZXJhbCAocykge1xuXHQgICAgZm9yICh2YXIgaSA9IDAsIGxpc3QgPSBzOyBpIDwgbGlzdC5sZW5ndGg7IGkgKz0gMSkge1xuXHQgICAgICAgIHZhciBjID0gbGlzdFtpXTtcblxuXHQgICAgICAgIHZhciBwID0gcGVlaygpO1xuXG5cdCAgICAgICAgaWYgKHAgIT09IGMpIHtcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgIH1cblx0fVxuXG5cdGZ1bmN0aW9uIGVzY2FwZSAoKSB7XG5cdCAgICB2YXIgYyA9IHBlZWsoKTtcblx0ICAgIHN3aXRjaCAoYykge1xuXHQgICAgY2FzZSAnYic6XG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIHJldHVybiAnXFxiJ1xuXG5cdCAgICBjYXNlICdmJzpcblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgcmV0dXJuICdcXGYnXG5cblx0ICAgIGNhc2UgJ24nOlxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICByZXR1cm4gJ1xcbidcblxuXHQgICAgY2FzZSAncic6XG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIHJldHVybiAnXFxyJ1xuXG5cdCAgICBjYXNlICd0Jzpcblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgcmV0dXJuICdcXHQnXG5cblx0ICAgIGNhc2UgJ3YnOlxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICByZXR1cm4gJ1xcdidcblxuXHQgICAgY2FzZSAnMCc6XG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIGlmICh1dGlsLmlzRGlnaXQocGVlaygpKSkge1xuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmV0dXJuICdcXDAnXG5cblx0ICAgIGNhc2UgJ3gnOlxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICByZXR1cm4gaGV4RXNjYXBlKClcblxuXHQgICAgY2FzZSAndSc6XG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIHJldHVybiB1bmljb2RlRXNjYXBlKClcblxuXHQgICAgY2FzZSAnXFxuJzpcblx0ICAgIGNhc2UgJ1xcdTIwMjgnOlxuXHQgICAgY2FzZSAnXFx1MjAyOSc6XG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIHJldHVybiAnJ1xuXG5cdCAgICBjYXNlICdcXHInOlxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICBpZiAocGVlaygpID09PSAnXFxuJykge1xuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmV0dXJuICcnXG5cblx0ICAgIGNhc2UgJzEnOlxuXHQgICAgY2FzZSAnMic6XG5cdCAgICBjYXNlICczJzpcblx0ICAgIGNhc2UgJzQnOlxuXHQgICAgY2FzZSAnNSc6XG5cdCAgICBjYXNlICc2Jzpcblx0ICAgIGNhc2UgJzcnOlxuXHQgICAgY2FzZSAnOCc6XG5cdCAgICBjYXNlICc5Jzpcblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cblx0ICAgIGNhc2UgdW5kZWZpbmVkOlxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH1cblxuXHQgICAgcmV0dXJuIHJlYWQoKVxuXHR9XG5cblx0ZnVuY3Rpb24gaGV4RXNjYXBlICgpIHtcblx0ICAgIHZhciBidWZmZXIgPSAnJztcblx0ICAgIHZhciBjID0gcGVlaygpO1xuXG5cdCAgICBpZiAoIXV0aWwuaXNIZXhEaWdpdChjKSkge1xuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH1cblxuXHQgICAgYnVmZmVyICs9IHJlYWQoKTtcblxuXHQgICAgYyA9IHBlZWsoKTtcblx0ICAgIGlmICghdXRpbC5pc0hleERpZ2l0KGMpKSB7XG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfVxuXG5cdCAgICBidWZmZXIgKz0gcmVhZCgpO1xuXG5cdCAgICByZXR1cm4gU3RyaW5nLmZyb21Db2RlUG9pbnQocGFyc2VJbnQoYnVmZmVyLCAxNikpXG5cdH1cblxuXHRmdW5jdGlvbiB1bmljb2RlRXNjYXBlICgpIHtcblx0ICAgIHZhciBidWZmZXIgPSAnJztcblx0ICAgIHZhciBjb3VudCA9IDQ7XG5cblx0ICAgIHdoaWxlIChjb3VudC0tID4gMCkge1xuXHQgICAgICAgIHZhciBjID0gcGVlaygpO1xuXHQgICAgICAgIGlmICghdXRpbC5pc0hleERpZ2l0KGMpKSB7XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgfVxuXG5cdCAgICByZXR1cm4gU3RyaW5nLmZyb21Db2RlUG9pbnQocGFyc2VJbnQoYnVmZmVyLCAxNikpXG5cdH1cblxuXHR2YXIgcGFyc2VTdGF0ZXMgPSB7XG5cdCAgICBzdGFydDogZnVuY3Rpb24gc3RhcnQgKCkge1xuXHQgICAgICAgIGlmICh0b2tlbi50eXBlID09PSAnZW9mJykge1xuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkRU9GKClcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBwdXNoKCk7XG5cdCAgICB9LFxuXG5cdCAgICBiZWZvcmVQcm9wZXJ0eU5hbWU6IGZ1bmN0aW9uIGJlZm9yZVByb3BlcnR5TmFtZSAoKSB7XG5cdCAgICAgICAgc3dpdGNoICh0b2tlbi50eXBlKSB7XG5cdCAgICAgICAgY2FzZSAnaWRlbnRpZmllcic6XG5cdCAgICAgICAgY2FzZSAnc3RyaW5nJzpcblx0ICAgICAgICAgICAga2V5ID0gdG9rZW4udmFsdWU7XG5cdCAgICAgICAgICAgIHBhcnNlU3RhdGUgPSAnYWZ0ZXJQcm9wZXJ0eU5hbWUnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJ3B1bmN0dWF0b3InOlxuXHQgICAgICAgICAgICAvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUgc2luY2UgaXQncyBoYW5kbGVkIGJ5IHRoZSBsZXhTdGF0ZS5cblx0ICAgICAgICAgICAgLy8gaWYgKHRva2VuLnZhbHVlICE9PSAnfScpIHtcblx0ICAgICAgICAgICAgLy8gICAgIHRocm93IGludmFsaWRUb2tlbigpXG5cdCAgICAgICAgICAgIC8vIH1cblxuXHQgICAgICAgICAgICBwb3AoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICdlb2YnOlxuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkRU9GKClcblx0ICAgICAgICB9XG5cblx0ICAgICAgICAvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUgc2luY2UgaXQncyBoYW5kbGVkIGJ5IHRoZSBsZXhTdGF0ZS5cblx0ICAgICAgICAvLyB0aHJvdyBpbnZhbGlkVG9rZW4oKVxuXHQgICAgfSxcblxuXHQgICAgYWZ0ZXJQcm9wZXJ0eU5hbWU6IGZ1bmN0aW9uIGFmdGVyUHJvcGVydHlOYW1lICgpIHtcblx0ICAgICAgICAvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUgc2luY2UgaXQncyBoYW5kbGVkIGJ5IHRoZSBsZXhTdGF0ZS5cblx0ICAgICAgICAvLyBpZiAodG9rZW4udHlwZSAhPT0gJ3B1bmN0dWF0b3InIHx8IHRva2VuLnZhbHVlICE9PSAnOicpIHtcblx0ICAgICAgICAvLyAgICAgdGhyb3cgaW52YWxpZFRva2VuKClcblx0ICAgICAgICAvLyB9XG5cblx0ICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gJ2VvZicpIHtcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZEVPRigpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcGFyc2VTdGF0ZSA9ICdiZWZvcmVQcm9wZXJ0eVZhbHVlJztcblx0ICAgIH0sXG5cblx0ICAgIGJlZm9yZVByb3BlcnR5VmFsdWU6IGZ1bmN0aW9uIGJlZm9yZVByb3BlcnR5VmFsdWUgKCkge1xuXHQgICAgICAgIGlmICh0b2tlbi50eXBlID09PSAnZW9mJykge1xuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkRU9GKClcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBwdXNoKCk7XG5cdCAgICB9LFxuXG5cdCAgICBiZWZvcmVBcnJheVZhbHVlOiBmdW5jdGlvbiBiZWZvcmVBcnJheVZhbHVlICgpIHtcblx0ICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gJ2VvZicpIHtcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZEVPRigpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09ICdwdW5jdHVhdG9yJyAmJiB0b2tlbi52YWx1ZSA9PT0gJ10nKSB7XG5cdCAgICAgICAgICAgIHBvcCgpO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICBwdXNoKCk7XG5cdCAgICB9LFxuXG5cdCAgICBhZnRlclByb3BlcnR5VmFsdWU6IGZ1bmN0aW9uIGFmdGVyUHJvcGVydHlWYWx1ZSAoKSB7XG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlIHNpbmNlIGl0J3MgaGFuZGxlZCBieSB0aGUgbGV4U3RhdGUuXG5cdCAgICAgICAgLy8gaWYgKHRva2VuLnR5cGUgIT09ICdwdW5jdHVhdG9yJykge1xuXHQgICAgICAgIC8vICAgICB0aHJvdyBpbnZhbGlkVG9rZW4oKVxuXHQgICAgICAgIC8vIH1cblxuXHQgICAgICAgIGlmICh0b2tlbi50eXBlID09PSAnZW9mJykge1xuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkRU9GKClcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBzd2l0Y2ggKHRva2VuLnZhbHVlKSB7XG5cdCAgICAgICAgY2FzZSAnLCc6XG5cdCAgICAgICAgICAgIHBhcnNlU3RhdGUgPSAnYmVmb3JlUHJvcGVydHlOYW1lJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICd9Jzpcblx0ICAgICAgICAgICAgcG9wKCk7XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlIHNpbmNlIGl0J3MgaGFuZGxlZCBieSB0aGUgbGV4U3RhdGUuXG5cdCAgICAgICAgLy8gdGhyb3cgaW52YWxpZFRva2VuKClcblx0ICAgIH0sXG5cblx0ICAgIGFmdGVyQXJyYXlWYWx1ZTogZnVuY3Rpb24gYWZ0ZXJBcnJheVZhbHVlICgpIHtcblx0ICAgICAgICAvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUgc2luY2UgaXQncyBoYW5kbGVkIGJ5IHRoZSBsZXhTdGF0ZS5cblx0ICAgICAgICAvLyBpZiAodG9rZW4udHlwZSAhPT0gJ3B1bmN0dWF0b3InKSB7XG5cdCAgICAgICAgLy8gICAgIHRocm93IGludmFsaWRUb2tlbigpXG5cdCAgICAgICAgLy8gfVxuXG5cdCAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09ICdlb2YnKSB7XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRFT0YoKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHN3aXRjaCAodG9rZW4udmFsdWUpIHtcblx0ICAgICAgICBjYXNlICcsJzpcblx0ICAgICAgICAgICAgcGFyc2VTdGF0ZSA9ICdiZWZvcmVBcnJheVZhbHVlJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICddJzpcblx0ICAgICAgICAgICAgcG9wKCk7XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlIHNpbmNlIGl0J3MgaGFuZGxlZCBieSB0aGUgbGV4U3RhdGUuXG5cdCAgICAgICAgLy8gdGhyb3cgaW52YWxpZFRva2VuKClcblx0ICAgIH0sXG5cblx0ICAgIGVuZDogZnVuY3Rpb24gZW5kICgpIHtcblx0ICAgICAgICAvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUgc2luY2UgaXQncyBoYW5kbGVkIGJ5IHRoZSBsZXhTdGF0ZS5cblx0ICAgICAgICAvLyBpZiAodG9rZW4udHlwZSAhPT0gJ2VvZicpIHtcblx0ICAgICAgICAvLyAgICAgdGhyb3cgaW52YWxpZFRva2VuKClcblx0ICAgICAgICAvLyB9XG5cdCAgICB9LFxuXHR9O1xuXG5cdGZ1bmN0aW9uIHB1c2ggKCkge1xuXHQgICAgdmFyIHZhbHVlO1xuXG5cdCAgICBzd2l0Y2ggKHRva2VuLnR5cGUpIHtcblx0ICAgIGNhc2UgJ3B1bmN0dWF0b3InOlxuXHQgICAgICAgIHN3aXRjaCAodG9rZW4udmFsdWUpIHtcblx0ICAgICAgICBjYXNlICd7Jzpcblx0ICAgICAgICAgICAgdmFsdWUgPSB7fTtcblx0ICAgICAgICAgICAgYnJlYWtcblxuXHQgICAgICAgIGNhc2UgJ1snOlxuXHQgICAgICAgICAgICB2YWx1ZSA9IFtdO1xuXHQgICAgICAgICAgICBicmVha1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGJyZWFrXG5cblx0ICAgIGNhc2UgJ251bGwnOlxuXHQgICAgY2FzZSAnYm9vbGVhbic6XG5cdCAgICBjYXNlICdudW1lcmljJzpcblx0ICAgIGNhc2UgJ3N0cmluZyc6XG5cdCAgICAgICAgdmFsdWUgPSB0b2tlbi52YWx1ZTtcblx0ICAgICAgICBicmVha1xuXG5cdCAgICAvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUuXG5cdCAgICAvLyBkZWZhdWx0OlxuXHQgICAgLy8gICAgIHRocm93IGludmFsaWRUb2tlbigpXG5cdCAgICB9XG5cblx0ICAgIGlmIChyb290ID09PSB1bmRlZmluZWQpIHtcblx0ICAgICAgICByb290ID0gdmFsdWU7XG5cdCAgICB9IGVsc2Uge1xuXHQgICAgICAgIHZhciBwYXJlbnQgPSBzdGFja1tzdGFjay5sZW5ndGggLSAxXTtcblx0ICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwYXJlbnQpKSB7XG5cdCAgICAgICAgICAgIHBhcmVudC5wdXNoKHZhbHVlKTtcblx0ICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocGFyZW50LCBrZXksIHtcblx0ICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcblx0ICAgICAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuXHQgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcblx0ICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcblx0ICAgICAgICAgICAgfSk7XG5cdCAgICAgICAgfVxuXHQgICAgfVxuXG5cdCAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuXHQgICAgICAgIHN0YWNrLnB1c2godmFsdWUpO1xuXG5cdCAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG5cdCAgICAgICAgICAgIHBhcnNlU3RhdGUgPSAnYmVmb3JlQXJyYXlWYWx1ZSc7XG5cdCAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgcGFyc2VTdGF0ZSA9ICdiZWZvcmVQcm9wZXJ0eU5hbWUnO1xuXHQgICAgICAgIH1cblx0ICAgIH0gZWxzZSB7XG5cdCAgICAgICAgdmFyIGN1cnJlbnQgPSBzdGFja1tzdGFjay5sZW5ndGggLSAxXTtcblx0ICAgICAgICBpZiAoY3VycmVudCA9PSBudWxsKSB7XG5cdCAgICAgICAgICAgIHBhcnNlU3RhdGUgPSAnZW5kJztcblx0ICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoY3VycmVudCkpIHtcblx0ICAgICAgICAgICAgcGFyc2VTdGF0ZSA9ICdhZnRlckFycmF5VmFsdWUnO1xuXHQgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgIHBhcnNlU3RhdGUgPSAnYWZ0ZXJQcm9wZXJ0eVZhbHVlJztcblx0ICAgICAgICB9XG5cdCAgICB9XG5cdH1cblxuXHRmdW5jdGlvbiBwb3AgKCkge1xuXHQgICAgc3RhY2sucG9wKCk7XG5cblx0ICAgIHZhciBjdXJyZW50ID0gc3RhY2tbc3RhY2subGVuZ3RoIC0gMV07XG5cdCAgICBpZiAoY3VycmVudCA9PSBudWxsKSB7XG5cdCAgICAgICAgcGFyc2VTdGF0ZSA9ICdlbmQnO1xuXHQgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGN1cnJlbnQpKSB7XG5cdCAgICAgICAgcGFyc2VTdGF0ZSA9ICdhZnRlckFycmF5VmFsdWUnO1xuXHQgICAgfSBlbHNlIHtcblx0ICAgICAgICBwYXJzZVN0YXRlID0gJ2FmdGVyUHJvcGVydHlWYWx1ZSc7XG5cdCAgICB9XG5cdH1cblxuXHQvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUuXG5cdC8vIGZ1bmN0aW9uIGludmFsaWRQYXJzZVN0YXRlICgpIHtcblx0Ly8gICAgIHJldHVybiBuZXcgRXJyb3IoYEpTT041OiBpbnZhbGlkIHBhcnNlIHN0YXRlICcke3BhcnNlU3RhdGV9J2ApXG5cdC8vIH1cblxuXHQvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUuXG5cdC8vIGZ1bmN0aW9uIGludmFsaWRMZXhTdGF0ZSAoc3RhdGUpIHtcblx0Ly8gICAgIHJldHVybiBuZXcgRXJyb3IoYEpTT041OiBpbnZhbGlkIGxleCBzdGF0ZSAnJHtzdGF0ZX0nYClcblx0Ly8gfVxuXG5cdGZ1bmN0aW9uIGludmFsaWRDaGFyIChjKSB7XG5cdCAgICBpZiAoYyA9PT0gdW5kZWZpbmVkKSB7XG5cdCAgICAgICAgcmV0dXJuIHN5bnRheEVycm9yKChcIkpTT041OiBpbnZhbGlkIGVuZCBvZiBpbnB1dCBhdCBcIiArIGxpbmUgKyBcIjpcIiArIGNvbHVtbikpXG5cdCAgICB9XG5cblx0ICAgIHJldHVybiBzeW50YXhFcnJvcigoXCJKU09ONTogaW52YWxpZCBjaGFyYWN0ZXIgJ1wiICsgKGZvcm1hdENoYXIoYykpICsgXCInIGF0IFwiICsgbGluZSArIFwiOlwiICsgY29sdW1uKSlcblx0fVxuXG5cdGZ1bmN0aW9uIGludmFsaWRFT0YgKCkge1xuXHQgICAgcmV0dXJuIHN5bnRheEVycm9yKChcIkpTT041OiBpbnZhbGlkIGVuZCBvZiBpbnB1dCBhdCBcIiArIGxpbmUgKyBcIjpcIiArIGNvbHVtbikpXG5cdH1cblxuXHQvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUuXG5cdC8vIGZ1bmN0aW9uIGludmFsaWRUb2tlbiAoKSB7XG5cdC8vICAgICBpZiAodG9rZW4udHlwZSA9PT0gJ2VvZicpIHtcblx0Ly8gICAgICAgICByZXR1cm4gc3ludGF4RXJyb3IoYEpTT041OiBpbnZhbGlkIGVuZCBvZiBpbnB1dCBhdCAke2xpbmV9OiR7Y29sdW1ufWApXG5cdC8vICAgICB9XG5cblx0Ly8gICAgIGNvbnN0IGMgPSBTdHJpbmcuZnJvbUNvZGVQb2ludCh0b2tlbi52YWx1ZS5jb2RlUG9pbnRBdCgwKSlcblx0Ly8gICAgIHJldHVybiBzeW50YXhFcnJvcihgSlNPTjU6IGludmFsaWQgY2hhcmFjdGVyICcke2Zvcm1hdENoYXIoYyl9JyBhdCAke2xpbmV9OiR7Y29sdW1ufWApXG5cdC8vIH1cblxuXHRmdW5jdGlvbiBpbnZhbGlkSWRlbnRpZmllciAoKSB7XG5cdCAgICBjb2x1bW4gLT0gNTtcblx0ICAgIHJldHVybiBzeW50YXhFcnJvcigoXCJKU09ONTogaW52YWxpZCBpZGVudGlmaWVyIGNoYXJhY3RlciBhdCBcIiArIGxpbmUgKyBcIjpcIiArIGNvbHVtbikpXG5cdH1cblxuXHRmdW5jdGlvbiBzZXBhcmF0b3JDaGFyIChjKSB7XG5cdCAgICBjb25zb2xlLndhcm4oKFwiSlNPTjU6ICdcIiArIChmb3JtYXRDaGFyKGMpKSArIFwiJyBpbiBzdHJpbmdzIGlzIG5vdCB2YWxpZCBFQ01BU2NyaXB0OyBjb25zaWRlciBlc2NhcGluZ1wiKSk7XG5cdH1cblxuXHRmdW5jdGlvbiBmb3JtYXRDaGFyIChjKSB7XG5cdCAgICB2YXIgcmVwbGFjZW1lbnRzID0ge1xuXHQgICAgICAgIFwiJ1wiOiBcIlxcXFwnXCIsXG5cdCAgICAgICAgJ1wiJzogJ1xcXFxcIicsXG5cdCAgICAgICAgJ1xcXFwnOiAnXFxcXFxcXFwnLFxuXHQgICAgICAgICdcXGInOiAnXFxcXGInLFxuXHQgICAgICAgICdcXGYnOiAnXFxcXGYnLFxuXHQgICAgICAgICdcXG4nOiAnXFxcXG4nLFxuXHQgICAgICAgICdcXHInOiAnXFxcXHInLFxuXHQgICAgICAgICdcXHQnOiAnXFxcXHQnLFxuXHQgICAgICAgICdcXHYnOiAnXFxcXHYnLFxuXHQgICAgICAgICdcXDAnOiAnXFxcXDAnLFxuXHQgICAgICAgICdcXHUyMDI4JzogJ1xcXFx1MjAyOCcsXG5cdCAgICAgICAgJ1xcdTIwMjknOiAnXFxcXHUyMDI5Jyxcblx0ICAgIH07XG5cblx0ICAgIGlmIChyZXBsYWNlbWVudHNbY10pIHtcblx0ICAgICAgICByZXR1cm4gcmVwbGFjZW1lbnRzW2NdXG5cdCAgICB9XG5cblx0ICAgIGlmIChjIDwgJyAnKSB7XG5cdCAgICAgICAgdmFyIGhleFN0cmluZyA9IGMuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNik7XG5cdCAgICAgICAgcmV0dXJuICdcXFxceCcgKyAoJzAwJyArIGhleFN0cmluZykuc3Vic3RyaW5nKGhleFN0cmluZy5sZW5ndGgpXG5cdCAgICB9XG5cblx0ICAgIHJldHVybiBjXG5cdH1cblxuXHRmdW5jdGlvbiBzeW50YXhFcnJvciAobWVzc2FnZSkge1xuXHQgICAgdmFyIGVyciA9IG5ldyBTeW50YXhFcnJvcihtZXNzYWdlKTtcblx0ICAgIGVyci5saW5lTnVtYmVyID0gbGluZTtcblx0ICAgIGVyci5jb2x1bW5OdW1iZXIgPSBjb2x1bW47XG5cdCAgICByZXR1cm4gZXJyXG5cdH1cblxuXHR2YXIgc3RyaW5naWZ5ID0gZnVuY3Rpb24gc3RyaW5naWZ5ICh2YWx1ZSwgcmVwbGFjZXIsIHNwYWNlKSB7XG5cdCAgICB2YXIgc3RhY2sgPSBbXTtcblx0ICAgIHZhciBpbmRlbnQgPSAnJztcblx0ICAgIHZhciBwcm9wZXJ0eUxpc3Q7XG5cdCAgICB2YXIgcmVwbGFjZXJGdW5jO1xuXHQgICAgdmFyIGdhcCA9ICcnO1xuXHQgICAgdmFyIHF1b3RlO1xuXG5cdCAgICBpZiAoXG5cdCAgICAgICAgcmVwbGFjZXIgIT0gbnVsbCAmJlxuXHQgICAgICAgIHR5cGVvZiByZXBsYWNlciA9PT0gJ29iamVjdCcgJiZcblx0ICAgICAgICAhQXJyYXkuaXNBcnJheShyZXBsYWNlcilcblx0ICAgICkge1xuXHQgICAgICAgIHNwYWNlID0gcmVwbGFjZXIuc3BhY2U7XG5cdCAgICAgICAgcXVvdGUgPSByZXBsYWNlci5xdW90ZTtcblx0ICAgICAgICByZXBsYWNlciA9IHJlcGxhY2VyLnJlcGxhY2VyO1xuXHQgICAgfVxuXG5cdCAgICBpZiAodHlwZW9mIHJlcGxhY2VyID09PSAnZnVuY3Rpb24nKSB7XG5cdCAgICAgICAgcmVwbGFjZXJGdW5jID0gcmVwbGFjZXI7XG5cdCAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocmVwbGFjZXIpKSB7XG5cdCAgICAgICAgcHJvcGVydHlMaXN0ID0gW107XG5cdCAgICAgICAgZm9yICh2YXIgaSA9IDAsIGxpc3QgPSByZXBsYWNlcjsgaSA8IGxpc3QubGVuZ3RoOyBpICs9IDEpIHtcblx0ICAgICAgICAgICAgdmFyIHYgPSBsaXN0W2ldO1xuXG5cdCAgICAgICAgICAgIHZhciBpdGVtID0gKHZvaWQgMCk7XG5cblx0ICAgICAgICAgICAgaWYgKHR5cGVvZiB2ID09PSAnc3RyaW5nJykge1xuXHQgICAgICAgICAgICAgICAgaXRlbSA9IHY7XG5cdCAgICAgICAgICAgIH0gZWxzZSBpZiAoXG5cdCAgICAgICAgICAgICAgICB0eXBlb2YgdiA9PT0gJ251bWJlcicgfHxcblx0ICAgICAgICAgICAgICAgIHYgaW5zdGFuY2VvZiBTdHJpbmcgfHxcblx0ICAgICAgICAgICAgICAgIHYgaW5zdGFuY2VvZiBOdW1iZXJcblx0ICAgICAgICAgICAgKSB7XG5cdCAgICAgICAgICAgICAgICBpdGVtID0gU3RyaW5nKHYpO1xuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgaWYgKGl0ZW0gIT09IHVuZGVmaW5lZCAmJiBwcm9wZXJ0eUxpc3QuaW5kZXhPZihpdGVtKSA8IDApIHtcblx0ICAgICAgICAgICAgICAgIHByb3BlcnR5TGlzdC5wdXNoKGl0ZW0pO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfVxuXHQgICAgfVxuXG5cdCAgICBpZiAoc3BhY2UgaW5zdGFuY2VvZiBOdW1iZXIpIHtcblx0ICAgICAgICBzcGFjZSA9IE51bWJlcihzcGFjZSk7XG5cdCAgICB9IGVsc2UgaWYgKHNwYWNlIGluc3RhbmNlb2YgU3RyaW5nKSB7XG5cdCAgICAgICAgc3BhY2UgPSBTdHJpbmcoc3BhY2UpO1xuXHQgICAgfVxuXG5cdCAgICBpZiAodHlwZW9mIHNwYWNlID09PSAnbnVtYmVyJykge1xuXHQgICAgICAgIGlmIChzcGFjZSA+IDApIHtcblx0ICAgICAgICAgICAgc3BhY2UgPSBNYXRoLm1pbigxMCwgTWF0aC5mbG9vcihzcGFjZSkpO1xuXHQgICAgICAgICAgICBnYXAgPSAnICAgICAgICAgICcuc3Vic3RyKDAsIHNwYWNlKTtcblx0ICAgICAgICB9XG5cdCAgICB9IGVsc2UgaWYgKHR5cGVvZiBzcGFjZSA9PT0gJ3N0cmluZycpIHtcblx0ICAgICAgICBnYXAgPSBzcGFjZS5zdWJzdHIoMCwgMTApO1xuXHQgICAgfVxuXG5cdCAgICByZXR1cm4gc2VyaWFsaXplUHJvcGVydHkoJycsIHsnJzogdmFsdWV9KVxuXG5cdCAgICBmdW5jdGlvbiBzZXJpYWxpemVQcm9wZXJ0eSAoa2V5LCBob2xkZXIpIHtcblx0ICAgICAgICB2YXIgdmFsdWUgPSBob2xkZXJba2V5XTtcblx0ICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuXHQgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlLnRvSlNPTjUgPT09ICdmdW5jdGlvbicpIHtcblx0ICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUudG9KU09ONShrZXkpO1xuXHQgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZS50b0pTT04gPT09ICdmdW5jdGlvbicpIHtcblx0ICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUudG9KU09OKGtleSk7XG5cdCAgICAgICAgICAgIH1cblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAocmVwbGFjZXJGdW5jKSB7XG5cdCAgICAgICAgICAgIHZhbHVlID0gcmVwbGFjZXJGdW5jLmNhbGwoaG9sZGVyLCBrZXksIHZhbHVlKTtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBOdW1iZXIpIHtcblx0ICAgICAgICAgICAgdmFsdWUgPSBOdW1iZXIodmFsdWUpO1xuXHQgICAgICAgIH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBTdHJpbmcpIHtcblx0ICAgICAgICAgICAgdmFsdWUgPSBTdHJpbmcodmFsdWUpO1xuXHQgICAgICAgIH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBCb29sZWFuKSB7XG5cdCAgICAgICAgICAgIHZhbHVlID0gdmFsdWUudmFsdWVPZigpO1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHN3aXRjaCAodmFsdWUpIHtcblx0ICAgICAgICBjYXNlIG51bGw6IHJldHVybiAnbnVsbCdcblx0ICAgICAgICBjYXNlIHRydWU6IHJldHVybiAndHJ1ZSdcblx0ICAgICAgICBjYXNlIGZhbHNlOiByZXR1cm4gJ2ZhbHNlJ1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG5cdCAgICAgICAgICAgIHJldHVybiBxdW90ZVN0cmluZyh2YWx1ZSwgZmFsc2UpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcblx0ICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuXHQgICAgICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBzZXJpYWxpemVBcnJheSh2YWx1ZSkgOiBzZXJpYWxpemVPYmplY3QodmFsdWUpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuXHQgICAgfVxuXG5cdCAgICBmdW5jdGlvbiBxdW90ZVN0cmluZyAodmFsdWUpIHtcblx0ICAgICAgICB2YXIgcXVvdGVzID0ge1xuXHQgICAgICAgICAgICBcIidcIjogMC4xLFxuXHQgICAgICAgICAgICAnXCInOiAwLjIsXG5cdCAgICAgICAgfTtcblxuXHQgICAgICAgIHZhciByZXBsYWNlbWVudHMgPSB7XG5cdCAgICAgICAgICAgIFwiJ1wiOiBcIlxcXFwnXCIsXG5cdCAgICAgICAgICAgICdcIic6ICdcXFxcXCInLFxuXHQgICAgICAgICAgICAnXFxcXCc6ICdcXFxcXFxcXCcsXG5cdCAgICAgICAgICAgICdcXGInOiAnXFxcXGInLFxuXHQgICAgICAgICAgICAnXFxmJzogJ1xcXFxmJyxcblx0ICAgICAgICAgICAgJ1xcbic6ICdcXFxcbicsXG5cdCAgICAgICAgICAgICdcXHInOiAnXFxcXHInLFxuXHQgICAgICAgICAgICAnXFx0JzogJ1xcXFx0Jyxcblx0ICAgICAgICAgICAgJ1xcdic6ICdcXFxcdicsXG5cdCAgICAgICAgICAgICdcXDAnOiAnXFxcXDAnLFxuXHQgICAgICAgICAgICAnXFx1MjAyOCc6ICdcXFxcdTIwMjgnLFxuXHQgICAgICAgICAgICAnXFx1MjAyOSc6ICdcXFxcdTIwMjknLFxuXHQgICAgICAgIH07XG5cblx0ICAgICAgICB2YXIgcHJvZHVjdCA9ICcnO1xuXG5cdCAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xuXHQgICAgICAgICAgICB2YXIgYyA9IHZhbHVlW2ldO1xuXHQgICAgICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICAgICAgY2FzZSBcIidcIjpcblx0ICAgICAgICAgICAgY2FzZSAnXCInOlxuXHQgICAgICAgICAgICAgICAgcXVvdGVzW2NdKys7XG5cdCAgICAgICAgICAgICAgICBwcm9kdWN0ICs9IGM7XG5cdCAgICAgICAgICAgICAgICBjb250aW51ZVxuXG5cdCAgICAgICAgICAgIGNhc2UgJ1xcMCc6XG5cdCAgICAgICAgICAgICAgICBpZiAodXRpbC5pc0RpZ2l0KHZhbHVlW2kgKyAxXSkpIHtcblx0ICAgICAgICAgICAgICAgICAgICBwcm9kdWN0ICs9ICdcXFxceDAwJztcblx0ICAgICAgICAgICAgICAgICAgICBjb250aW51ZVxuXHQgICAgICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50c1tjXSkge1xuXHQgICAgICAgICAgICAgICAgcHJvZHVjdCArPSByZXBsYWNlbWVudHNbY107XG5cdCAgICAgICAgICAgICAgICBjb250aW51ZVxuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgaWYgKGMgPCAnICcpIHtcblx0ICAgICAgICAgICAgICAgIHZhciBoZXhTdHJpbmcgPSBjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpO1xuXHQgICAgICAgICAgICAgICAgcHJvZHVjdCArPSAnXFxcXHgnICsgKCcwMCcgKyBoZXhTdHJpbmcpLnN1YnN0cmluZyhoZXhTdHJpbmcubGVuZ3RoKTtcblx0ICAgICAgICAgICAgICAgIGNvbnRpbnVlXG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICBwcm9kdWN0ICs9IGM7XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdmFyIHF1b3RlQ2hhciA9IHF1b3RlIHx8IE9iamVjdC5rZXlzKHF1b3RlcykucmVkdWNlKGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiAocXVvdGVzW2FdIDwgcXVvdGVzW2JdKSA/IGEgOiBiOyB9KTtcblxuXHQgICAgICAgIHByb2R1Y3QgPSBwcm9kdWN0LnJlcGxhY2UobmV3IFJlZ0V4cChxdW90ZUNoYXIsICdnJyksIHJlcGxhY2VtZW50c1txdW90ZUNoYXJdKTtcblxuXHQgICAgICAgIHJldHVybiBxdW90ZUNoYXIgKyBwcm9kdWN0ICsgcXVvdGVDaGFyXG5cdCAgICB9XG5cblx0ICAgIGZ1bmN0aW9uIHNlcmlhbGl6ZU9iamVjdCAodmFsdWUpIHtcblx0ICAgICAgICBpZiAoc3RhY2suaW5kZXhPZih2YWx1ZSkgPj0gMCkge1xuXHQgICAgICAgICAgICB0aHJvdyBUeXBlRXJyb3IoJ0NvbnZlcnRpbmcgY2lyY3VsYXIgc3RydWN0dXJlIHRvIEpTT041Jylcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBzdGFjay5wdXNoKHZhbHVlKTtcblxuXHQgICAgICAgIHZhciBzdGVwYmFjayA9IGluZGVudDtcblx0ICAgICAgICBpbmRlbnQgPSBpbmRlbnQgKyBnYXA7XG5cblx0ICAgICAgICB2YXIga2V5cyA9IHByb3BlcnR5TGlzdCB8fCBPYmplY3Qua2V5cyh2YWx1ZSk7XG5cdCAgICAgICAgdmFyIHBhcnRpYWwgPSBbXTtcblx0ICAgICAgICBmb3IgKHZhciBpID0gMCwgbGlzdCA9IGtleXM7IGkgPCBsaXN0Lmxlbmd0aDsgaSArPSAxKSB7XG5cdCAgICAgICAgICAgIHZhciBrZXkgPSBsaXN0W2ldO1xuXG5cdCAgICAgICAgICAgIHZhciBwcm9wZXJ0eVN0cmluZyA9IHNlcmlhbGl6ZVByb3BlcnR5KGtleSwgdmFsdWUpO1xuXHQgICAgICAgICAgICBpZiAocHJvcGVydHlTdHJpbmcgIT09IHVuZGVmaW5lZCkge1xuXHQgICAgICAgICAgICAgICAgdmFyIG1lbWJlciA9IHNlcmlhbGl6ZUtleShrZXkpICsgJzonO1xuXHQgICAgICAgICAgICAgICAgaWYgKGdhcCAhPT0gJycpIHtcblx0ICAgICAgICAgICAgICAgICAgICBtZW1iZXIgKz0gJyAnO1xuXHQgICAgICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICAgICAgbWVtYmVyICs9IHByb3BlcnR5U3RyaW5nO1xuXHQgICAgICAgICAgICAgICAgcGFydGlhbC5wdXNoKG1lbWJlcik7XG5cdCAgICAgICAgICAgIH1cblx0ICAgICAgICB9XG5cblx0ICAgICAgICB2YXIgZmluYWw7XG5cdCAgICAgICAgaWYgKHBhcnRpYWwubGVuZ3RoID09PSAwKSB7XG5cdCAgICAgICAgICAgIGZpbmFsID0gJ3t9Jztcblx0ICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICB2YXIgcHJvcGVydGllcztcblx0ICAgICAgICAgICAgaWYgKGdhcCA9PT0gJycpIHtcblx0ICAgICAgICAgICAgICAgIHByb3BlcnRpZXMgPSBwYXJ0aWFsLmpvaW4oJywnKTtcblx0ICAgICAgICAgICAgICAgIGZpbmFsID0gJ3snICsgcHJvcGVydGllcyArICd9Jztcblx0ICAgICAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgICAgIHZhciBzZXBhcmF0b3IgPSAnLFxcbicgKyBpbmRlbnQ7XG5cdCAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzID0gcGFydGlhbC5qb2luKHNlcGFyYXRvcik7XG5cdCAgICAgICAgICAgICAgICBmaW5hbCA9ICd7XFxuJyArIGluZGVudCArIHByb3BlcnRpZXMgKyAnLFxcbicgKyBzdGVwYmFjayArICd9Jztcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHN0YWNrLnBvcCgpO1xuXHQgICAgICAgIGluZGVudCA9IHN0ZXBiYWNrO1xuXHQgICAgICAgIHJldHVybiBmaW5hbFxuXHQgICAgfVxuXG5cdCAgICBmdW5jdGlvbiBzZXJpYWxpemVLZXkgKGtleSkge1xuXHQgICAgICAgIGlmIChrZXkubGVuZ3RoID09PSAwKSB7XG5cdCAgICAgICAgICAgIHJldHVybiBxdW90ZVN0cmluZyhrZXksIHRydWUpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdmFyIGZpcnN0Q2hhciA9IFN0cmluZy5mcm9tQ29kZVBvaW50KGtleS5jb2RlUG9pbnRBdCgwKSk7XG5cdCAgICAgICAgaWYgKCF1dGlsLmlzSWRTdGFydENoYXIoZmlyc3RDaGFyKSkge1xuXHQgICAgICAgICAgICByZXR1cm4gcXVvdGVTdHJpbmcoa2V5LCB0cnVlKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGZvciAodmFyIGkgPSBmaXJzdENoYXIubGVuZ3RoOyBpIDwga2V5Lmxlbmd0aDsgaSsrKSB7XG5cdCAgICAgICAgICAgIGlmICghdXRpbC5pc0lkQ29udGludWVDaGFyKFN0cmluZy5mcm9tQ29kZVBvaW50KGtleS5jb2RlUG9pbnRBdChpKSkpKSB7XG5cdCAgICAgICAgICAgICAgICByZXR1cm4gcXVvdGVTdHJpbmcoa2V5LCB0cnVlKVxuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmV0dXJuIGtleVxuXHQgICAgfVxuXG5cdCAgICBmdW5jdGlvbiBzZXJpYWxpemVBcnJheSAodmFsdWUpIHtcblx0ICAgICAgICBpZiAoc3RhY2suaW5kZXhPZih2YWx1ZSkgPj0gMCkge1xuXHQgICAgICAgICAgICB0aHJvdyBUeXBlRXJyb3IoJ0NvbnZlcnRpbmcgY2lyY3VsYXIgc3RydWN0dXJlIHRvIEpTT041Jylcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBzdGFjay5wdXNoKHZhbHVlKTtcblxuXHQgICAgICAgIHZhciBzdGVwYmFjayA9IGluZGVudDtcblx0ICAgICAgICBpbmRlbnQgPSBpbmRlbnQgKyBnYXA7XG5cblx0ICAgICAgICB2YXIgcGFydGlhbCA9IFtdO1xuXHQgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcblx0ICAgICAgICAgICAgdmFyIHByb3BlcnR5U3RyaW5nID0gc2VyaWFsaXplUHJvcGVydHkoU3RyaW5nKGkpLCB2YWx1ZSk7XG5cdCAgICAgICAgICAgIHBhcnRpYWwucHVzaCgocHJvcGVydHlTdHJpbmcgIT09IHVuZGVmaW5lZCkgPyBwcm9wZXJ0eVN0cmluZyA6ICdudWxsJyk7XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdmFyIGZpbmFsO1xuXHQgICAgICAgIGlmIChwYXJ0aWFsLmxlbmd0aCA9PT0gMCkge1xuXHQgICAgICAgICAgICBmaW5hbCA9ICdbXSc7XG5cdCAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgaWYgKGdhcCA9PT0gJycpIHtcblx0ICAgICAgICAgICAgICAgIHZhciBwcm9wZXJ0aWVzID0gcGFydGlhbC5qb2luKCcsJyk7XG5cdCAgICAgICAgICAgICAgICBmaW5hbCA9ICdbJyArIHByb3BlcnRpZXMgKyAnXSc7XG5cdCAgICAgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgICAgICB2YXIgc2VwYXJhdG9yID0gJyxcXG4nICsgaW5kZW50O1xuXHQgICAgICAgICAgICAgICAgdmFyIHByb3BlcnRpZXMkMSA9IHBhcnRpYWwuam9pbihzZXBhcmF0b3IpO1xuXHQgICAgICAgICAgICAgICAgZmluYWwgPSAnW1xcbicgKyBpbmRlbnQgKyBwcm9wZXJ0aWVzJDEgKyAnLFxcbicgKyBzdGVwYmFjayArICddJztcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHN0YWNrLnBvcCgpO1xuXHQgICAgICAgIGluZGVudCA9IHN0ZXBiYWNrO1xuXHQgICAgICAgIHJldHVybiBmaW5hbFxuXHQgICAgfVxuXHR9O1xuXG5cdHZhciBKU09ONSA9IHtcblx0ICAgIHBhcnNlOiBwYXJzZSxcblx0ICAgIHN0cmluZ2lmeTogc3RyaW5naWZ5LFxuXHR9O1xuXG5cdHZhciBsaWIgPSBKU09ONTtcblxuXHR2YXIgZXM1ID0gbGliO1xuXG5cdHJldHVybiBlczU7XG5cbn0pKSk7XG4iLCAiaW1wb3J0IHsgUGx1Z2luLCBNYXJrZG93blZpZXcsIFdvcmtzcGFjZUxlYWYgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IHsgY29udmVydFNldHRpbmdzLCBERUZBVUxUX1NFVFRJTkdTLCBMQU5HVUFHRVMsIENvZGVTdHlsZXJTZXR0aW5ncywgUkVGRVJFTkNFX0NPREVCTE9DSywgRVhURVJOQUxfUkVGRVJFTkNFX1BBVEgsIEVYVEVSTkFMX1JFRkVSRU5DRV9DQUNIRSB9IGZyb20gXCIuL1NldHRpbmdzXCI7XG5pbXBvcnQgeyBTZXR0aW5nc1RhYiB9IGZyb20gXCIuL1NldHRpbmdzVGFiXCI7XG5pbXBvcnQgeyByZW1vdmVTdHlsZXNBbmRDbGFzc2VzLCB1cGRhdGVTdHlsaW5nIH0gZnJvbSBcIi4vQXBwbHlTdHlsaW5nXCI7XG5pbXBvcnQgeyBjcmVhdGVDb2RlYmxvY2tDb2RlTWlycm9yRXh0ZW5zaW9ucywgZWRpdGluZ0RvY3VtZW50Rm9sZCB9IGZyb20gXCIuL0VkaXRpbmdWaWV3XCI7XG5pbXBvcnQgeyBkZXN0cm95UmVhZGluZ01vZGVFbGVtZW50cywgcmVhZGluZ0RvY3VtZW50Rm9sZCwgZXhlY3V0ZUNvZGVNdXRhdGlvbk9ic2VydmVyLCByZWFkaW5nVmlld0NvZGVibG9ja0RlY29yYXRpbmdQb3N0UHJvY2Vzc29yLCByZWFkaW5nVmlld0lubGluZURlY29yYXRpbmdQb3N0UHJvY2Vzc29yIH0gZnJvbSBcIi4vUmVhZGluZ1ZpZXdcIjtcbmltcG9ydCB7IGNsZWFuRXh0ZXJuYWxSZWZlcmVuY2VkRmlsZXMsIHJlZmVyZW5jZUNvZGVibG9ja1Byb2Nlc3NvciwgdXBkYXRlRXh0ZXJuYWxSZWZlcmVuY2VkRmlsZXMgfSBmcm9tIFwiLi9SZWZlcmVuY2luZ1wiO1xuaW1wb3J0IHsgYWRkTW9kZXMsIHJlbW92ZU1vZGVzIH0gZnJvbSBcIi4vU3ludGF4SGlnaGxpZ2h0aW5nXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvZGVTdHlsZXJQbHVnaW4gZXh0ZW5kcyBQbHVnaW4ge1xuXHRzZXR0aW5nczogQ29kZVN0eWxlclNldHRpbmdzO1xuXHRleGVjdXRlQ29kZU11dGF0aW9uT2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXI7XG5cdGxhbmd1YWdlSWNvbnM6IFJlY29yZDxzdHJpbmcsc3RyaW5nPjtcblx0c2l6ZXM6IHtcblx0XHRmb250OiBzdHJpbmc7XG5cdFx0em9vbTogc3RyaW5nO1xuXHR9O1xuXG5cdGFzeW5jIG9ubG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRhd2FpdCB0aGlzLmxvYWRTZXR0aW5ncygpOyAvLyBMb2FkIFNldHRpbmdzXG5cdFx0Y29uc3Qgc2V0dGluZ3NUYWIgPSBuZXcgU2V0dGluZ3NUYWIodGhpcy5hcHAsdGhpcyk7XG5cdFx0dGhpcy5hZGRTZXR0aW5nVGFiKHNldHRpbmdzVGFiKTtcblxuXHRcdGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyXCIpOyAvLyBMb2FkIFN0eWxlc1xuXHRcdHVwZGF0ZVN0eWxpbmcodGhpcy5zZXR0aW5ncyx0aGlzLmFwcCk7XG5cblx0XHR0aGlzLmxhbmd1YWdlSWNvbnMgPSBPYmplY3Qua2V5cyhMQU5HVUFHRVMpLnJlZHVjZSgocmVzdWx0OiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSwga2V5OiBzdHJpbmcpID0+IHsgLy8gTG9hZCBJY29uc1xuXHRcdFx0aWYgKExBTkdVQUdFU1trZXldPy5pY29uKVxuXHRcdFx0XHRyZXN1bHRba2V5XSA9IFVSTC5jcmVhdGVPYmplY3RVUkwobmV3IEJsb2IoW2A8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+JHtMQU5HVUFHRVNba2V5XS5pY29ufTwvc3ZnPmBdLCB7IHR5cGU6IFwiaW1hZ2Uvc3ZnK3htbFwiIH0pKTtcblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fSx7fSk7XG5cdFx0dGhpcy5zaXplcyA9IHtcblx0XHRcdGZvbnQ6IGRvY3VtZW50LmJvZHkuZ2V0Q3NzUHJvcGVydHlWYWx1ZShcIi0tZm9udC10ZXh0LXNpemVcIiksXG5cdFx0XHR6b29tOiBkb2N1bWVudC5ib2R5LmdldENzc1Byb3BlcnR5VmFsdWUoXCItLXpvb20tZmFjdG9yXCIpLFxuXHRcdH07XG5cblx0XHR0aGlzLmV4ZWN1dGVDb2RlTXV0YXRpb25PYnNlcnZlciA9IGV4ZWN1dGVDb2RlTXV0YXRpb25PYnNlcnZlcjsgLy8gQWRkIGV4ZWN1dGUgY29kZSBtdXRhdGlvbiBvYnNlcnZlclxuXG5cdFx0YWRkTW9kZXMoKTtcblx0XHR0aGlzLnJlZ2lzdGVyTWFya2Rvd25Db2RlQmxvY2tQcm9jZXNzb3IoUkVGRVJFTkNFX0NPREVCTE9DSywgYXN5bmMgKHNvdXJjZSwgZWwsIGN0eCkgPT4geyBhd2FpdCByZWZlcmVuY2VDb2RlYmxvY2tQcm9jZXNzb3Ioc291cmNlLCBlbCwgY3R4LCB0aGlzKTt9KTtcblxuXHRcdHRoaXMucmVnaXN0ZXJNYXJrZG93blBvc3RQcm9jZXNzb3IoYXN5bmMgKGVsLGN0eCkgPT4ge2F3YWl0IHJlYWRpbmdWaWV3Q29kZWJsb2NrRGVjb3JhdGluZ1Bvc3RQcm9jZXNzb3IoZWwsY3R4LHRoaXMpO30pOyAvLyBBZGQgY29kZWJsb2NrIGRlY29yYXRpbmcgbWFya2Rvd25Qb3N0UHJvY2Vzc29yXG5cdFx0dGhpcy5yZWdpc3Rlck1hcmtkb3duUG9zdFByb2Nlc3Nvcihhc3luYyAoZWwsY3R4KSA9PiB7YXdhaXQgcmVhZGluZ1ZpZXdJbmxpbmVEZWNvcmF0aW5nUG9zdFByb2Nlc3NvcihlbCxjdHgsdGhpcyk7fSk7IC8vIEFkZCBpbmxpbmUgY29kZSBkZWNvcmF0aW5nIG1hcmtkb3duUG9zdFByb2Nlc3NvclxuXG5cdFx0dGhpcy5yZWdpc3RlckVkaXRvckV4dGVuc2lvbihjcmVhdGVDb2RlYmxvY2tDb2RlTWlycm9yRXh0ZW5zaW9ucyh0aGlzLnNldHRpbmdzLHRoaXMpKTsgLy8gQWRkIGNvZGVtaXJyb3IgZXh0ZW5zaW9uc1xuXG5cdFx0bGV0IHpvb21UaW1lb3V0OiBOb2RlSlMuVGltZW91dCA9IHNldFRpbWVvdXQoKCk9Pnt9KTtcblx0XHR0aGlzLnJlZ2lzdGVyRXZlbnQodGhpcy5hcHAud29ya3NwYWNlLm9uKFwiY3NzLWNoYW5nZVwiLCgpPT57XG5cdFx0XHR1cGRhdGVTdHlsaW5nKHRoaXMuc2V0dGluZ3MsdGhpcy5hcHApOyAvLyBVcGRhdGUgc3R5bGluZyBvbiBjc3MgY2hhbmdlc1xuXHRcdFx0Y29uc3QgY3VycmVudEZvbnRTaXplID0gZG9jdW1lbnQuYm9keS5nZXRDc3NQcm9wZXJ0eVZhbHVlKFwiLS1mb250LXRleHQtc2l6ZVwiKTtcblx0XHRcdGlmICh0aGlzLnNpemVzLmZvbnQgIT09IGN1cnJlbnRGb250U2l6ZSkge1xuXHRcdFx0XHR0aGlzLnNpemVzLmZvbnQgPSBjdXJyZW50Rm9udFNpemU7XG5cdFx0XHRcdGNsZWFyVGltZW91dCh6b29tVGltZW91dCk7XG5cdFx0XHRcdHpvb21UaW1lb3V0ID0gc2V0VGltZW91dCgoKT0+e1xuXHRcdFx0XHRcdHRoaXMucmVuZGVyUmVhZGluZ1ZpZXcoKTsgLy8gUmUtcmVuZGVyIG9uIGZvbnQgc2l6ZSBjaGFuZ2VzXG5cdFx0XHRcdH0sMTAwMCk7XG5cdFx0XHR9XG5cdFx0fSx0aGlzKSk7XG5cdFx0dGhpcy5yZWdpc3RlckV2ZW50KHRoaXMuYXBwLndvcmtzcGFjZS5vbihcInJlc2l6ZVwiLCgpPT57XG5cdFx0XHRjb25zdCBjdXJyZW50Wm9vbVNpemUgPSBkb2N1bWVudC5ib2R5LmdldENzc1Byb3BlcnR5VmFsdWUoXCItLXpvb20tZmFjdG9yXCIpO1xuXHRcdFx0aWYgKHRoaXMuc2l6ZXMuem9vbSAhPT0gY3VycmVudFpvb21TaXplKSB7XG5cdFx0XHRcdHRoaXMuc2l6ZXMuem9vbSA9IGN1cnJlbnRab29tU2l6ZTtcblx0XHRcdFx0Y2xlYXJUaW1lb3V0KHpvb21UaW1lb3V0KTtcblx0XHRcdFx0em9vbVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT57XG5cdFx0XHRcdFx0dGhpcy5yZW5kZXJSZWFkaW5nVmlldygpOyAvLyBSZS1yZW5kZXIgb24gem9vbSBjaGFuZ2VzXG5cdFx0XHRcdH0sMTAwMCk7XG5cdFx0XHR9XG5cdFx0fSx0aGlzKSk7XG5cblx0XHR0aGlzLmFkZENvbW1hbmQoe2lkOiBcImZvbGQtYWxsXCIsIG5hbWU6IFwiRm9sZCBhbGwgY29kZWJsb2Nrc1wiLCBjYWxsYmFjazogKCk9Pntcblx0XHRcdGNvbnN0IGFjdGl2ZVZpZXcgPSB0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0QWN0aXZlVmlld09mVHlwZShNYXJrZG93blZpZXcpO1xuXHRcdFx0aWYgKGFjdGl2ZVZpZXcpIHtcblx0XHRcdFx0aWYgKGFjdGl2ZVZpZXcuZ2V0TW9kZSgpID09PSBcInByZXZpZXdcIilcblx0XHRcdFx0XHRyZWFkaW5nRG9jdW1lbnRGb2xkKGFjdGl2ZVZpZXcuY29udGVudEVsLHRydWUpO1xuXHRcdFx0XHRlbHNlIGlmIChhY3RpdmVWaWV3LmdldE1vZGUoKSA9PT0gXCJzb3VyY2VcIilcblx0XHRcdFx0XHQvL0B0cy1leHBlY3QtZXJyb3IgVW5kb2N1bWVudGVkIE9ic2lkaWFuIEFQSVxuXHRcdFx0XHRcdGVkaXRpbmdEb2N1bWVudEZvbGQoYWN0aXZlVmlldy5lZGl0b3IuY20uZG9jVmlldy52aWV3LHRydWUpO1xuXHRcdFx0fVxuXHRcdH19KTtcblx0XHR0aGlzLmFkZENvbW1hbmQoe2lkOiBcInVuZm9sZC1hbGxcIiwgbmFtZTogXCJVbmZvbGQgYWxsIGNvZGVibG9ja3NcIiwgY2FsbGJhY2s6ICgpPT57XG5cdFx0XHRjb25zdCBhY3RpdmVWaWV3ID0gdGhpcy5hcHAud29ya3NwYWNlLmdldEFjdGl2ZVZpZXdPZlR5cGUoTWFya2Rvd25WaWV3KTtcblx0XHRcdGlmIChhY3RpdmVWaWV3KSB7XG5cdFx0XHRcdGlmIChhY3RpdmVWaWV3LmdldE1vZGUoKSA9PT0gXCJwcmV2aWV3XCIpXG5cdFx0XHRcdFx0cmVhZGluZ0RvY3VtZW50Rm9sZChhY3RpdmVWaWV3LmNvbnRlbnRFbCxmYWxzZSk7XG5cdFx0XHRcdGVsc2UgaWYgKGFjdGl2ZVZpZXcuZ2V0TW9kZSgpID09PSBcInNvdXJjZVwiKVxuXHRcdFx0XHRcdC8vQHRzLWV4cGVjdC1lcnJvciBVbmRvY3VtZW50ZWQgT2JzaWRpYW4gQVBJXG5cdFx0XHRcdFx0ZWRpdGluZ0RvY3VtZW50Rm9sZChhY3RpdmVWaWV3LmVkaXRvci5jbS5kb2NWaWV3LnZpZXcsZmFsc2UpO1xuXHRcdFx0fVxuXHRcdH19KTtcblx0XHR0aGlzLmFkZENvbW1hbmQoe2lkOiBcInJlc2V0LWFsbFwiLCBuYW1lOiBcIlJlc2V0IGZvbGQgc3RhdGUgZm9yIGFsbCBjb2RlYmxvY2tzXCIsIGNhbGxiYWNrOiAoKT0+e1xuXHRcdFx0Y29uc3QgYWN0aXZlVmlldyA9IHRoaXMuYXBwLndvcmtzcGFjZS5nZXRBY3RpdmVWaWV3T2ZUeXBlKE1hcmtkb3duVmlldyk7XG5cdFx0XHRpZiAoYWN0aXZlVmlldykge1xuXHRcdFx0XHRpZiAoYWN0aXZlVmlldy5nZXRNb2RlKCkgPT09IFwicHJldmlld1wiKVxuXHRcdFx0XHRcdHJlYWRpbmdEb2N1bWVudEZvbGQoYWN0aXZlVmlldy5jb250ZW50RWwpO1xuXHRcdFx0XHRlbHNlIGlmIChhY3RpdmVWaWV3LmdldE1vZGUoKSA9PT0gXCJzb3VyY2VcIilcblx0XHRcdFx0XHQvL0B0cy1leHBlY3QtZXJyb3IgVW5kb2N1bWVudGVkIE9ic2lkaWFuIEFQSVxuXHRcdFx0XHRcdGVkaXRpbmdEb2N1bWVudEZvbGQoYWN0aXZlVmlldy5lZGl0b3IuY20uZG9jVmlldy52aWV3KTtcblx0XHRcdH1cblx0XHR9fSk7XG5cdFx0dGhpcy5hZGRDb21tYW5kKHtpZDogXCJ1cGRhdGUtcmVmZXJlbmNlcy12YXVsdFwiLCBuYW1lOiBcIlVwZGF0ZSBhbGwgZXh0ZXJuYWwgcmVmZXJlbmNlcyBpbiB2YXVsdFwiLCBjYWxsYmFjazogYXN5bmMgKCk9Pntcblx0XHRcdGF3YWl0IHVwZGF0ZUV4dGVybmFsUmVmZXJlbmNlZEZpbGVzKHRoaXMpO1xuXHRcdH19KTtcblx0XHR0aGlzLmFkZENvbW1hbmQoe2lkOiBcInVwZGF0ZS1yZWZlcmVuY2VzLXBhZ2VcIiwgbmFtZTogXCJVcGRhdGUgYWxsIGV4dGVybmFsIHJlZmVyZW5jZXMgaW4gbm90ZVwiLCBjYWxsYmFjazogYXN5bmMgKCk9Pntcblx0XHRcdGF3YWl0IHVwZGF0ZUV4dGVybmFsUmVmZXJlbmNlZEZpbGVzKHRoaXMsIHRoaXMuYXBwLndvcmtzcGFjZS5nZXRBY3RpdmVGaWxlKCk/LnBhdGgpO1xuXHRcdH19KTtcblx0XHR0aGlzLmFkZENvbW1hbmQoe2lkOiBcImNsZWFuLXJlZmVyZW5jZXNcIiwgbmFtZTogXCJSZW1vdmUgYWxsIHVubmVlZGVkIGV4dGVybmFsIHJlZmVyZW5jZXNcIiwgY2FsbGJhY2s6IGFzeW5jICgpPT57XG5cdFx0XHRhd2FpdCBjbGVhbkV4dGVybmFsUmVmZXJlbmNlZEZpbGVzKHRoaXMpO1xuXHRcdH19KTtcblxuXHRcdHRoaXMuYXBwLndvcmtzcGFjZS5vbkxheW91dFJlYWR5KGFzeW5jICgpID0+IHRoaXMuaW5pdGlhbGlzZU9uTGF5b3V0KCkpOyAvLyBBZGQgZGVjb3JhdGlvbiBvbiBlbmFibGluZyBvZiBwbHVnaW5cblxuXHRcdGNvbnNvbGUubG9nKFwiTG9hZGVkIHBsdWdpbjogQ29kZSBTdHlsZXJcIik7XG5cdH1cblxuXHRvbnVubG9hZCgpOiB2b2lkIHtcblx0XHRyZW1vdmVNb2RlcygpO1xuXHRcdHRoaXMuZXhlY3V0ZUNvZGVNdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcblx0XHRyZW1vdmVTdHlsZXNBbmRDbGFzc2VzKCk7XG5cdFx0ZGVzdHJveVJlYWRpbmdNb2RlRWxlbWVudHMoKTtcblx0XHRmb3IgKGNvbnN0IHVybCBvZiBPYmplY3QudmFsdWVzKHRoaXMubGFuZ3VhZ2VJY29ucykpIC8vIFVubG9hZCBpY29uc1xuXHRcdFx0VVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuXHRcdGNvbnNvbGUubG9nKFwiVW5sb2FkZWQgcGx1Z2luOiBDb2RlIFN0eWxlclwiKTtcblx0fVxuXG5cdGFzeW5jIGxvYWRTZXR0aW5ncygpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHR0aGlzLnNldHRpbmdzID0gey4uLnN0cnVjdHVyZWRDbG9uZShERUZBVUxUX1NFVFRJTkdTKSwgLi4uY29udmVydFNldHRpbmdzKGF3YWl0IHRoaXMubG9hZERhdGEoKSl9O1xuXHR9XG5cblx0YXN5bmMgc2F2ZVNldHRpbmdzKCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGF3YWl0IHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XG5cdFx0dGhpcy5hcHAud29ya3NwYWNlLnVwZGF0ZU9wdGlvbnMoKTtcblx0XHR1cGRhdGVTdHlsaW5nKHRoaXMuc2V0dGluZ3MsdGhpcy5hcHApO1xuXHR9XG5cblx0YXN5bmMgaW5pdGlhbGlzZU9uTGF5b3V0KCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGlmICghKGF3YWl0IHRoaXMuYXBwLnZhdWx0LmFkYXB0ZXIuZXhpc3RzKHRoaXMuYXBwLnZhdWx0LmNvbmZpZ0RpciArIEVYVEVSTkFMX1JFRkVSRU5DRV9QQVRIKSkpIHsvLyBDcmVhdGUgZm9sZGVyIGZvciBleHRlcm5hbCByZWZlcmVuY2VzXG5cdFx0XHRhd2FpdCB0aGlzLmFwcC52YXVsdC5hZGFwdGVyLm1rZGlyKHRoaXMuYXBwLnZhdWx0LmNvbmZpZ0RpciArIEVYVEVSTkFMX1JFRkVSRU5DRV9QQVRIKTtcblx0XHRcdGF3YWl0IHRoaXMuYXBwLnZhdWx0LmFkYXB0ZXIud3JpdGUodGhpcy5hcHAudmF1bHQuY29uZmlnRGlyICsgRVhURVJOQUxfUkVGRVJFTkNFX0NBQ0hFLCBKU09OLnN0cmluZ2lmeSh7fSkpO1xuXHRcdH1cblx0XHRpZiAodHJ1ZSkgLy9UT0RPIChAbWF5dXJhbmt2KSBDaGFuZ2UgdG8gYmUgYmFzZWQgb24gdXBkYXRlIG9uIGxvYWQgc2V0dGluZ1xuXHRcdFx0YXdhaXQgdXBkYXRlRXh0ZXJuYWxSZWZlcmVuY2VkRmlsZXModGhpcyk7XG5cdFx0ZWxzZSB7XG5cdFx0XHRhd2FpdCBjbGVhbkV4dGVybmFsUmVmZXJlbmNlZEZpbGVzKHRoaXMpO1xuXHRcdFx0dGhpcy5yZW5kZXJSZWFkaW5nVmlldygpO1xuXHRcdH1cblx0fVxuXG5cdHJlbmRlclJlYWRpbmdWaWV3KCk6IHZvaWQge1xuXHRcdHRoaXMuYXBwLndvcmtzcGFjZS5pdGVyYXRlUm9vdExlYXZlcygobGVhZjogV29ya3NwYWNlTGVhZikgPT4ge1xuXHRcdFx0aWYgKGxlYWYudmlldyBpbnN0YW5jZW9mIE1hcmtkb3duVmlldyAmJiBsZWFmLnZpZXcuZ2V0TW9kZSgpID09PSBcInByZXZpZXdcIilcblx0XHRcdFx0bGVhZi52aWV3LnByZXZpZXdNb2RlLnJlcmVuZGVyKHRydWUpO1xuXHRcdH0pO1xuXHR9XG59XG4iLCAiLy8gVHlwaW5nXG5leHBvcnQgdHlwZSBIRVggPSBgIyR7c3RyaW5nfWA7XG5leHBvcnQgdHlwZSBDU1MgPSBgLS0ke3N0cmluZ31gO1xuZXhwb3J0IHR5cGUgQ29sb3VyID0gSEVYIHwgQ1NTO1xuZXhwb3J0IHR5cGUgUGVyY2VudGFnZSA9IGAke251bWJlcn0lYDtcbmV4cG9ydCB0eXBlIERpc3BsYXkgPSBcIm5vbmVcIiB8IFwiaWZfaGVhZGVyX3Nob3duXCIgfCBcImFsd2F5c1wiO1xuXG4vLyBJbnRlcmZhY2UgQ3JlYXRpb25cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZVN0eWxlclRoZW1lTW9kZUNvbG91cnMge1xuXHRjb2RlYmxvY2s6IHtcblx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBDb2xvdXI7XG5cdFx0dGV4dENvbG91cjogQ29sb3VyO1xuXHR9LFxuXHRndXR0ZXI6IHtcblx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBDb2xvdXI7XG5cdFx0dGV4dENvbG91cjogQ29sb3VyO1xuXHRcdGFjdGl2ZVRleHRDb2xvdXI6IENvbG91cjtcblx0fSxcblx0aGVhZGVyOiB7XG5cdFx0YmFja2dyb3VuZENvbG91cjogQ29sb3VyO1xuXHRcdHRpdGxlOiB7XG5cdFx0XHR0ZXh0Q29sb3VyOiBDb2xvdXI7XG5cdFx0fSxcblx0XHRsYW5ndWFnZVRhZzoge1xuXHRcdFx0YmFja2dyb3VuZENvbG91cjogQ29sb3VyO1xuXHRcdFx0dGV4dENvbG91cjogQ29sb3VyO1xuXHRcdH0sXG5cdFx0bGluZUNvbG91cjogQ29sb3VyO1xuXHR9LFxuXHRoaWdobGlnaHRzOiB7XG5cdFx0YWN0aXZlQ29kZWJsb2NrTGluZUNvbG91cjogQ29sb3VyO1xuXHRcdGFjdGl2ZUVkaXRvckxpbmVDb2xvdXI6IENvbG91cjtcblx0XHRkZWZhdWx0Q29sb3VyOiBDb2xvdXI7XG5cdFx0YWx0ZXJuYXRpdmVIaWdobGlnaHRzOiBSZWNvcmQ8c3RyaW5nLENvbG91cj47XG5cdH0sXG5cdGlubGluZToge1xuXHRcdGJhY2tncm91bmRDb2xvdXI6IENvbG91cjtcblx0XHR0ZXh0Q29sb3VyOiBDb2xvdXI7XG5cdFx0YWN0aXZlVGV4dENvbG91cjogQ29sb3VyO1xuXHRcdHRpdGxlVGV4dENvbG91cjogQ29sb3VyXG5cdH1cblx0YWR2YW5jZWQ6IHtcblx0XHRidXR0b25Db2xvdXI6IENvbG91cjtcblx0XHRidXR0b25BY3RpdmVDb2xvdXI6IENvbG91cjtcblx0fVxufVxuZXhwb3J0IGludGVyZmFjZSBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncyB7XG5cdGNvZGVibG9jazoge1xuXHRcdGxpbmVOdW1iZXJzOiBib29sZWFuO1xuXHRcdHVud3JhcExpbmVzOiBib29sZWFuO1xuXHRcdHdyYXBMaW5lc0FjdGl2ZTogYm9vbGVhbjtcblx0XHRjdXJ2YXR1cmU6IG51bWJlcjtcblx0fSxcblx0Z3V0dGVyOiB7XG5cdFx0aGlnaGxpZ2h0OiBib29sZWFuO1xuXHRcdGFjdGl2ZUxpbmU6IGJvb2xlYW47XG5cdH0sXG5cdGhlYWRlcjoge1xuXHRcdHRpdGxlOiB7XG5cdFx0XHR0ZXh0Rm9udDogc3RyaW5nO1xuXHRcdFx0dGV4dEJvbGQ6IGJvb2xlYW47XG5cdFx0XHR0ZXh0SXRhbGljOiBib29sZWFuO1xuXHRcdH0sXG5cdFx0bGFuZ3VhZ2VUYWc6IHtcblx0XHRcdGRpc3BsYXk6IERpc3BsYXk7XG5cdFx0XHR0ZXh0Rm9udDogc3RyaW5nO1xuXHRcdFx0dGV4dEJvbGQ6IGJvb2xlYW47XG5cdFx0XHR0ZXh0SXRhbGljOiBib29sZWFuO1xuXHRcdH0sXG5cdFx0bGFuZ3VhZ2VJY29uOiB7XG5cdFx0XHRkaXNwbGF5OiBEaXNwbGF5O1xuXHRcdFx0ZGlzcGxheUNvbG91cjogYm9vbGVhbjtcblx0XHR9LFxuXHRcdGZvbnRTaXplOiBudW1iZXI7XG5cdFx0Zm9sZFBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cdH0sXG5cdGhpZ2hsaWdodHM6IHtcblx0XHRhY3RpdmVDb2RlYmxvY2tMaW5lOiBib29sZWFuO1xuXHRcdGFjdGl2ZUVkaXRvckxpbmU6IGJvb2xlYW47XG5cdH0sXG5cdGlubGluZToge1xuXHRcdHN5bnRheEhpZ2hsaWdodDogYm9vbGVhbjtcblx0XHRzdHlsZTogYm9vbGVhbjtcblx0XHRmb250V2VpZ2h0OiBudW1iZXI7XG5cdFx0Y3VydmF0dXJlOiBudW1iZXI7XG5cdFx0cGFkZGluZ1ZlcnRpY2FsOiBudW1iZXI7XG5cdFx0cGFkZGluZ0hvcml6b250YWw6IG51bWJlcjtcblx0XHRtYXJnaW5Ib3Jpem9udGFsOiBudW1iZXI7XG5cdFx0dGl0bGVGb250V2VpZ2h0OiBudW1iZXI7XG5cdH0sXG5cdGFkdmFuY2VkOiB7XG5cdFx0Z3JhZGllbnRIaWdobGlnaHRzOiBib29sZWFuO1xuXHRcdGdyYWRpZW50SGlnaGxpZ2h0c0NvbG91clN0b3A6IFBlcmNlbnRhZ2U7XG5cdFx0bGFuZ3VhZ2VCb3JkZXJDb2xvdXI6IGJvb2xlYW47XG5cdFx0bGFuZ3VhZ2VCb3JkZXJXaWR0aDogbnVtYmVyO1xuXHRcdGljb25TaXplOiBudW1iZXI7XG5cdH07XG59XG5leHBvcnQgaW50ZXJmYWNlIENvZGVTdHlsZXJUaGVtZUNvbG91cnMge1xuXHRsaWdodDogQ29kZVN0eWxlclRoZW1lTW9kZUNvbG91cnM7XG5cdGRhcms6IENvZGVTdHlsZXJUaGVtZU1vZGVDb2xvdXJzO1xufVxuZXhwb3J0IGludGVyZmFjZSBDb2RlU3R5bGVyVGhlbWUge1xuXHRzZXR0aW5nczogQ29kZVN0eWxlclRoZW1lU2V0dGluZ3M7XG5cdGNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnM7XG59XG5leHBvcnQgaW50ZXJmYWNlIENvZGVTdHlsZXJTZXR0aW5ncyB7XG5cdHRoZW1lczogUmVjb3JkPHN0cmluZyxDb2RlU3R5bGVyVGhlbWU+O1xuXHRzZWxlY3RlZFRoZW1lOiBzdHJpbmc7XG5cdGN1cnJlbnRUaGVtZTogQ29kZVN0eWxlclRoZW1lO1xuXHRuZXdUaGVtZTogc3RyaW5nO1xuXHRuZXdIaWdobGlnaHQ6IHN0cmluZztcblx0ZXhhbXBsZUNvZGVibG9ja1BhcmFtZXRlcnM6IHN0cmluZztcblx0ZXhhbXBsZUNvZGVibG9ja0NvbnRlbnQ6IHN0cmluZztcblx0ZXhhbXBsZUlubGluZUNvZGU6IHN0cmluZztcblx0ZGVjb3JhdGVQcmludDogYm9vbGVhbjtcblx0ZXhjbHVkZWRMYW5ndWFnZXM6IHN0cmluZztcblx0cHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdDogc3RyaW5nO1xuXHRyZWRpcmVjdExhbmd1YWdlczogUmVjb3JkPHN0cmluZyx7Y29sb3VyPzogQ29sb3VyLCBpY29uPzogc3RyaW5nfT47XG5cdHZlcnNpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYW5ndWFnZSB7XG5cdGljb24/OiBzdHJpbmc7XG5cdGNvbG91cj86IENvbG91cjtcblx0aW5saW5lQ29tbWVudD86IEFycmF5PHN0cmluZz47XG5cdGJsb2NrQ29tbWVudD86IEFycmF5PHtcblx0XHRvcGVuOiBzdHJpbmc7XG5cdFx0Y2xvc2U6IHN0cmluZztcblx0XHRjb250aW51YXRpb24/OiBzdHJpbmc7IC8vIERlZmF1bHQ6IE5vbmVcblx0XHRtdWx0aWxpbmU/OiBzdHJpbmc7IC8vIERlZmF1bHQ6IHRydWVcblx0fT47XG59XG5cbi8vIFRoZW1lIERlZmF1bHRzXG5jb25zdCBUSEVNRV9ERUZBVUxUX1NFVFRJTkdTOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncyA9IHtcblx0Y29kZWJsb2NrOiB7XG5cdFx0bGluZU51bWJlcnM6IHRydWUsXG5cdFx0dW53cmFwTGluZXM6IHRydWUsXG5cdFx0d3JhcExpbmVzQWN0aXZlOiBmYWxzZSxcblx0XHRjdXJ2YXR1cmU6IDQsXG5cdH0sXG5cdGd1dHRlcjoge1xuXHRcdGhpZ2hsaWdodDogdHJ1ZSxcblx0XHRhY3RpdmVMaW5lOiBmYWxzZSxcblx0fSxcblx0aGVhZGVyOiB7XG5cdFx0dGl0bGU6IHtcblx0XHRcdHRleHRGb250OiBcIlwiLFxuXHRcdFx0dGV4dEJvbGQ6IGZhbHNlLFxuXHRcdFx0dGV4dEl0YWxpYzogdHJ1ZSxcblx0XHR9LFxuXHRcdGxhbmd1YWdlVGFnOiB7XG5cdFx0XHRkaXNwbGF5OiBcIm5vbmVcIixcblx0XHRcdHRleHRGb250OiBcIlwiLFxuXHRcdFx0dGV4dEJvbGQ6IHRydWUsXG5cdFx0XHR0ZXh0SXRhbGljOiBmYWxzZSxcblx0XHR9LFxuXHRcdGxhbmd1YWdlSWNvbjoge1xuXHRcdFx0ZGlzcGxheTogXCJub25lXCIsXG5cdFx0XHRkaXNwbGF5Q29sb3VyOiB0cnVlLFxuXHRcdH0sXG5cdFx0Zm9udFNpemU6IDE0LFxuXHRcdGZvbGRQbGFjZWhvbGRlcjogXCJcIixcblx0fSxcblx0aGlnaGxpZ2h0czoge1xuXHRcdGFjdGl2ZUNvZGVibG9ja0xpbmU6IGZhbHNlLFxuXHRcdGFjdGl2ZUVkaXRvckxpbmU6IGZhbHNlLFxuXHR9LFxuXHRpbmxpbmU6IHtcblx0XHRzeW50YXhIaWdobGlnaHQ6IHRydWUsXG5cdFx0c3R5bGU6IHRydWUsXG5cdFx0Zm9udFdlaWdodDogNCxcblx0XHRjdXJ2YXR1cmU6IDYsXG5cdFx0cGFkZGluZ1ZlcnRpY2FsOiA1LFxuXHRcdHBhZGRpbmdIb3Jpem9udGFsOiA1LFxuXHRcdG1hcmdpbkhvcml6b250YWw6IDAsXG5cdFx0dGl0bGVGb250V2VpZ2h0OiA4LFxuXHR9LFxuXHRhZHZhbmNlZDoge1xuXHRcdGdyYWRpZW50SGlnaGxpZ2h0czogZmFsc2UsXG5cdFx0Z3JhZGllbnRIaWdobGlnaHRzQ29sb3VyU3RvcDogXCI3MCVcIixcblx0XHRsYW5ndWFnZUJvcmRlckNvbG91cjogZmFsc2UsXG5cdFx0bGFuZ3VhZ2VCb3JkZXJXaWR0aDogNSxcblx0XHRpY29uU2l6ZTogMjgsXG5cdH0sXG59O1xuZXhwb3J0IGNvbnN0IFRIRU1FX0ZBTExCQUNLX0NPTE9VUlM6IENvZGVTdHlsZXJUaGVtZU1vZGVDb2xvdXJzID0ge1xuXHRjb2RlYmxvY2s6IHtcblx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIi0tY29kZS1iYWNrZ3JvdW5kXCIsXG5cdFx0dGV4dENvbG91cjogXCItLWNvZGUtbm9ybWFsXCIsXG5cdH0sXG5cdGd1dHRlcjoge1xuXHRcdGJhY2tncm91bmRDb2xvdXI6IFwiLS1jb2RlLWJhY2tncm91bmRcIixcblx0XHR0ZXh0Q29sb3VyOiBcIi0tdGV4dC1mYWludFwiLFxuXHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiLS10ZXh0LW11dGVkXCIsXG5cdH0sXG5cdGhlYWRlcjoge1xuXHRcdGJhY2tncm91bmRDb2xvdXI6IFwiLS1jb2RlLWJhY2tncm91bmRcIixcblx0XHR0aXRsZToge1xuXHRcdFx0dGV4dENvbG91cjogXCItLWNvZGUtY29tbWVudFwiLFxuXHRcdH0sXG5cdFx0bGFuZ3VhZ2VUYWc6IHtcblx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFwiLS1jb2RlLWJhY2tncm91bmRcIixcblx0XHRcdHRleHRDb2xvdXI6IFwiLS1jb2RlLWNvbW1lbnRcIixcblx0XHR9LFxuXHRcdGxpbmVDb2xvdXI6IFwiLS1jb2xvci1iYXNlLTMwXCIsXG5cdH0sXG5cdGhpZ2hsaWdodHM6IHtcblx0XHRhY3RpdmVDb2RlYmxvY2tMaW5lQ29sb3VyOiBcIi0tY29sb3ItYmFzZS0zMFwiLFxuXHRcdGFjdGl2ZUVkaXRvckxpbmVDb2xvdXI6IFwiLS1jb2xvci1iYXNlLTIwXCIsXG5cdFx0ZGVmYXVsdENvbG91cjogXCItLXRleHQtaGlnaGxpZ2h0LWJnXCIsXG5cdFx0YWx0ZXJuYXRpdmVIaWdobGlnaHRzOiB7fSxcblx0fSxcblx0aW5saW5lOiB7XG5cdFx0YmFja2dyb3VuZENvbG91cjogXCItLWNvZGUtYmFja2dyb3VuZFwiLFxuXHRcdHRleHRDb2xvdXI6IFwiLS1jb2RlLW5vcm1hbFwiLFxuXHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiLS1jb2RlLW5vcm1hbFwiLFxuXHRcdHRpdGxlVGV4dENvbG91cjogXCItLWNvZGUtY29tbWVudFwiLFxuXHR9LFxuXHRhZHZhbmNlZDoge1xuXHRcdGJ1dHRvbkNvbG91cjogXCItLXRleHQtbXV0ZWRcIixcblx0XHRidXR0b25BY3RpdmVDb2xvdXI6IFwiLS10ZXh0LW5vcm1hbFwiLFxuXHR9XG59O1xuXG4vLyBDb2xvciBTY2hlbWVzXG5jb25zdCBTT0xBUklaRUQ6IFJlY29yZDxzdHJpbmcsQ29sb3VyPiA9IHtcblx0XCJiYXNlMDNcIjogXCIjMDAyYjM2XCIsXG5cdFwiYmFzZTAyXCI6IFwiIzA3MzY0MlwiLFxuXHRcImJhc2UwMVwiOiBcIiM1ODZlNzVcIixcblx0XCJiYXNlMDBcIjogXCIjNjU3YjgzXCIsXG5cdFwiYmFzZTBcIjogXCIjODM5NDk2XCIsXG5cdFwiYmFzZTFcIjogXCIjOTNhMWExXCIsXG5cdFwiYmFzZTJcIjogXCIjZWVlOGQ1XCIsXG5cdFwiYmFzZTNcIjogXCIjZmRmNmUzXCIsXG5cdFwieWVsbG93XCI6IFwiI2I1ODkwMFwiLFxuXHRcIm9yYW5nZVwiOiBcIiNjYjRiMTZcIixcblx0XCJyZWRcIjogXCIjZGMzMjJmXCIsXG5cdFwibWFnZW50YVwiOiBcIiNkMzM2ODJcIixcblx0XCJ2aW9sZXRcIjogXCIjNmM3MWM0XCIsXG5cdFwiYmx1ZVwiOiBcIiMyNjhiZDJcIixcblx0XCJjeWFuXCI6IFwiIzJhYTE5OFwiLFxuXHRcImdyZWVuXCI6IFwiIzg1OTkwMFwiLFxufTtcbi8vIGNvbnN0IENBVFBVQ0NJTjogUmVjb3JkPHN0cmluZyxDb2xvdXI+ID0ge1xuLy8gXHRsYXR0ZToge1xuLy8gXHRcdGJhY2tncm91bmRDb2xvcjogXCIjZWZmMWY1XCIsXG4vLyBcdFx0Zm9yZWdyb3VuZENvbG9yOiBcIiM0YzRmNjlcIixcbi8vIFx0XHRzZWxlY3Rpb25Db2xvcjogXCIjYWNiMGJlXCIsXG4vLyBcdFx0Y3Vyc29yQ29sb3I6IFwiI2RjOGE3OFwiLFxuLy8gXHRcdGN1cnNvckFjY2VudENvbG9yOiBcIiNlZmYxZjVcIixcbi8vIFx0XHRjb2xvcnM6IHtcbi8vIFx0XHRcdGJsYWNrOiBcIiM1YzVmNzdcIixcbi8vIFx0XHRcdGJsdWU6IFwiIzFlNjZmNVwiLFxuLy8gXHRcdFx0cmVkOiBcIiNkMjBmMzlcIixcbi8vIFx0XHRcdGdyZWVuOiBcIiM0MGEwMmJcIixcbi8vIFx0XHRcdHllbGxvdzogXCIjZGY4ZTFkXCIsXG4vLyBcdFx0XHRtYWdlbnRhOiBcIiNlYTc2Y2JcIixcbi8vIFx0XHRcdGN5YW46IFwiIzE3OTI5OVwiLFxuLy8gXHRcdFx0d2hpdGU6IFwiI2FjYjBiZVwiLFxuLy8gXHRcdFx0bGlnaHRCbGFjazogXCIjNmM2Zjg1XCIsXG4vLyBcdFx0XHRsaWdodFdoaXRlOiBcIiNiY2MwY2NcIixcbi8vIFx0XHRcdGxpZ2h0Qmx1ZTogXCIjMWU2NmY1XCIsXG4vLyBcdFx0XHRsaWdodFJlZDogXCIjZDIwZjM5XCIsXG4vLyBcdFx0XHRsaWdodEdyZWVuOiBcIiM0MGEwMmJcIixcbi8vIFx0XHRcdGxpZ2h0WWVsbG93OiBcIiNkZjhlMWRcIixcbi8vIFx0XHRcdGxpZ2h0TWFnZW50YTogXCIjZWE3NmNiXCIsXG4vLyBcdFx0XHRsaWdodEN5YW46IFwiIzE3OTI5OVwiLFxuLy8gXHRcdH0sXG4vLyBcdH0sXG4vLyBcdGZyYXBwXHUwMEU5OiB7XG4vLyBcdFx0YmFja2dyb3VuZENvbG9yOiBcIiMzMDM0NDZcIixcbi8vIFx0XHRmb3JlZ3JvdW5kQ29sb3I6IFwiI2M2ZDBmNVwiLFxuLy8gXHRcdHNlbGVjdGlvbkNvbG9yOiBcIiM2MjY4ODBcIixcbi8vIFx0XHRjdXJzb3JDb2xvcjogXCIjZjJkNWNmXCIsXG4vLyBcdFx0Y3Vyc29yQWNjZW50Q29sb3I6IFwiIzIzMjYzNFwiLFxuLy8gXHRcdGNvbG9yczoge1xuLy8gXHRcdFx0YmxhY2s6IFwiIzUxNTc2ZFwiLFxuLy8gXHRcdFx0Ymx1ZTogXCIjOGNhYWVlXCIsXG4vLyBcdFx0XHRyZWQ6IFwiI2U3ODI4NFwiLFxuLy8gXHRcdFx0Z3JlZW46IFwiI2E2ZDE4OVwiLFxuLy8gXHRcdFx0eWVsbG93OiBcIiNlNWM4OTBcIixcbi8vIFx0XHRcdG1hZ2VudGE6IFwiI2Y0YjhlNFwiLFxuLy8gXHRcdFx0Y3lhbjogXCIjODFjOGJlXCIsXG4vLyBcdFx0XHR3aGl0ZTogXCIjYjViZmUyXCIsXG4vLyBcdFx0XHRsaWdodEJsYWNrOiBcIiM2MjY4ODBcIixcbi8vIFx0XHRcdGxpZ2h0V2hpdGU6IFwiI2E1YWRjZVwiLFxuLy8gXHRcdFx0bGlnaHRCbHVlOiBcIiM4Y2FhZWVcIixcbi8vIFx0XHRcdGxpZ2h0UmVkOiBcIiNlNzgyODRcIixcbi8vIFx0XHRcdGxpZ2h0R3JlZW46IFwiI2E2ZDE4OVwiLFxuLy8gXHRcdFx0bGlnaHRZZWxsb3c6IFwiI2U1Yzg5MFwiLFxuLy8gXHRcdFx0bGlnaHRNYWdlbnRhOiBcIiNmNGI4ZTRcIixcbi8vIFx0XHRcdGxpZ2h0Q3lhbjogXCIjODFjOGJlXCIsXG4vLyBcdFx0fSxcbi8vIFx0fSxcbi8vIFx0bWFjY2hpYXRvOiB7XG4vLyBcdFx0YmFja2dyb3VuZENvbG9yOiBcIiMyNDI3M2FcIixcbi8vIFx0XHRmb3JlZ3JvdW5kQ29sb3I6IFwiI2NhZDNmNVwiLFxuLy8gXHRcdHNlbGVjdGlvbkNvbG9yOiBcIiM1YjYwNzhcIixcbi8vIFx0XHRjdXJzb3JDb2xvcjogXCIjZjRkYmQ2XCIsXG4vLyBcdFx0Y3Vyc29yQWNjZW50Q29sb3I6IFwiIzE4MTkyNlwiLFxuLy8gXHRcdGNvbG9yczoge1xuLy8gXHRcdFx0YmxhY2s6IFwiIzQ5NGQ2NFwiLFxuLy8gXHRcdFx0Ymx1ZTogXCIjOGFhZGY0XCIsXG4vLyBcdFx0XHRyZWQ6IFwiI2VkODc5NlwiLFxuLy8gXHRcdFx0Z3JlZW46IFwiI2E2ZGE5NVwiLFxuLy8gXHRcdFx0eWVsbG93OiBcIiNlZWQ0OWZcIixcbi8vIFx0XHRcdG1hZ2VudGE6IFwiI2Y1YmRlNlwiLFxuLy8gXHRcdFx0Y3lhbjogXCIjOGJkNWNhOGJkNWNhXCIsXG4vLyBcdFx0XHR3aGl0ZTogXCIjYjhjMGUwXCIsXG4vLyBcdFx0XHRsaWdodEJsYWNrOiBcIiM1YjYwNzhcIixcbi8vIFx0XHRcdGxpZ2h0V2hpdGU6IFwiI2E1YWRjYlwiLFxuLy8gXHRcdFx0bGlnaHRCbHVlOiBcIiM4YWFkZjRcIixcbi8vIFx0XHRcdGxpZ2h0UmVkOiBcIiNlZDg3OTZcIixcbi8vIFx0XHRcdGxpZ2h0R3JlZW46IFwiI2E2ZGE5NVwiLFxuLy8gXHRcdFx0bGlnaHRZZWxsb3c6IFwiI2VlZDQ5ZlwiLFxuLy8gXHRcdFx0bGlnaHRNYWdlbnRhOiBcIiNmNWJkZTZcIixcbi8vIFx0XHRcdGxpZ2h0Q3lhbjogXCIjOGJkNWNhXCIsXG4vLyBcdFx0fSxcbi8vIFx0fSxcbi8vIFx0bW9jaGE6IHtcbi8vIFx0XHRiYWNrZ3JvdW5kQ29sb3I6IFwiIzFlMWUyZVwiLFxuLy8gXHRcdGZvcmVncm91bmRDb2xvcjogXCIjY2RkNmY0XCIsXG4vLyBcdFx0c2VsZWN0aW9uQ29sb3I6IFwiIzU4NWI3MFwiLFxuLy8gXHRcdGN1cnNvckNvbG9yOiBcIiNmNWUwZGNcIixcbi8vIFx0XHRjdXJzb3JBY2NlbnRDb2xvcjogXCIjMTExMTFiXCIsXG4vLyBcdFx0Y29sb3JzOiB7XG4vLyBcdFx0XHRibGFjazogXCIjNDU0NzVBXCIsXG4vLyBcdFx0XHRibHVlOiBcIiM4OWI0ZmFcIixcbi8vIFx0XHRcdHJlZDogXCIjZjM4YmE4XCIsXG4vLyBcdFx0XHRncmVlbjogXCIjYTZlM2ExXCIsXG4vLyBcdFx0XHR5ZWxsb3c6IFwiI2Y5ZTJhZlwiLFxuLy8gXHRcdFx0bWFnZW50YTogXCIjZjVjMmU3XCIsXG4vLyBcdFx0XHRjeWFuOiBcIiM5NGUyZDVcIixcbi8vIFx0XHRcdHdoaXRlOiBcIiNiYWMyZGVcIixcbi8vIFx0XHRcdGxpZ2h0QmxhY2s6IFwiIzU4NWI3MFwiLFxuLy8gXHRcdFx0bGlnaHRXaGl0ZTogXCIjYTZhZGM4XCIsXG4vLyBcdFx0XHRsaWdodEJsdWU6IFwiIzg5YjRmYVwiLFxuLy8gXHRcdFx0bGlnaHRSZWQ6IFwiI2YzOGJhOFwiLFxuLy8gXHRcdFx0bGlnaHRHcmVlbjogXCIjYTZlM2ExXCIsXG4vLyBcdFx0XHRsaWdodFllbGxvdzogXCIjZjllMmFmXCIsXG4vLyBcdFx0XHRsaWdodE1hZ2VudGE6IFwiI2Y1YzJlN1wiLFxuLy8gXHRcdFx0bGlnaHRDeWFuOiBcIiM5NGUyZDVcIixcbi8vIFx0XHR9LFxuLy8gXHR9LFxuLy8gfTtcbi8vIGNvbnN0IEdSVVZCT1g6IFJlY29yZDxzdHJpbmcsQ29sb3VyPiA9IHtcbi8vIFx0ZGFyazBfaGFyZDogXCIjMWQyMDIxXCIsXG4vLyBcdGRhcmswOiBcIiMyODI4MjhcIixcbi8vIFx0ZGFyazBfc29mdDogXCIjMzIzMDJmXCIsXG4vLyBcdGRhcmsxOiBcIiMzYzM4MzZcIixcbi8vIFx0ZGFyazI6IFwiIzUwNDk0NVwiLFxuLy8gXHRkYXJrMzogXCIjNjY1YzU0XCIsXG4vLyBcdGRhcms0OiBcIiM3YzZmNjRcIixcblxuLy8gXHRncmF5XzI0NTogXCIjOTI4Mzc0XCIsXG4vLyBcdGdyYXlfMjQ0OiBcIiM5MjgzNzRcIixcblxuLy8gXHRsaWdodDBfaGFyZDogXCIjZjlmNWQ3XCIsXG4vLyBcdGxpZ2h0MDogXCIjZmJmMWM3XCIsXG4vLyBcdGxpZ2h0MF9zb2Z0OiBcIiNmMmU1YmNcIixcbi8vIFx0bGlnaHQxOiBcIiNlYmRiYjJcIixcbi8vIFx0bGlnaHQyOiBcIiNkNWM0YTFcIixcbi8vIFx0bGlnaHQzOiBcIiNiZGFlOTNcIixcbi8vIFx0bGlnaHQ0OiBcIiNhODk5ODRcIixcblxuLy8gXHRicmlnaHRfcmVkOiBcIiNmYjQ5MzRcIixcbi8vIFx0YnJpZ2h0X2dyZWVuOiBcIiNiOGJiMjZcIixcbi8vIFx0YnJpZ2h0X3llbGxvdzogXCIjZmFiZDJmXCIsXG4vLyBcdGJyaWdodF9ibHVlOiBcIiM4M2E1OThcIixcbi8vIFx0YnJpZ2h0X3B1cnBsZTogXCIjZDM4NjliXCIsXG4vLyBcdGJyaWdodF9hcXVhOiBcIiM4ZWMwN2NcIixcbi8vIFx0YnJpZ2h0X29yYW5nZTogXCIjZmU4MDE5XCIsXG5cbi8vIFx0bmV1dHJhbF9yZWQ6IFwiI2NjMjQxZFwiLFxuLy8gXHRuZXV0cmFsX2dyZWVuOiBcIiM5ODk3MWFcIixcbi8vIFx0bmV1dHJhbF95ZWxsb3c6IFwiI2Q3OTkyMVwiLFxuLy8gXHRuZXV0cmFsX2JsdWU6IFwiIzQ1ODU4OFwiLFxuLy8gXHRuZXV0cmFsX3B1cnBsZTogXCIjYjE2Mjg2XCIsXG4vLyBcdG5ldXRyYWxfYXF1YTogXCIjNjg5ZDZhXCIsXG4vLyBcdG5ldXRyYWxfb3JhbmdlOiBcIiNkNjVkMGVcIixcblxuLy8gXHRmYWRlZF9yZWQ6IFwiIzlkMDAwNlwiLFxuLy8gXHRmYWRlZF9ncmVlbjogXCIjNzk3NDBlXCIsXG4vLyBcdGZhZGVkX3llbGxvdzogXCIjYjU3NjE0XCIsXG4vLyBcdGZhZGVkX2JsdWU6IFwiIzA3NjY3OFwiLFxuLy8gXHRmYWRlZF9wdXJwbGU6IFwiIzhmM2Y3MVwiLFxuLy8gXHRmYWRlZF9hcXVhOiBcIiM0MjdiNThcIixcbi8vIFx0ZmFkZWRfb3JhbmdlOiBcIiNhZjNhMDNcIixcbi8vIH07XG4vLyBjb25zdCBOT1JEOiBSZWNvcmQ8c3RyaW5nLENvbG91cj4gPSB7XG5cbi8vIH07XG4vLyBjb25zdCBEUkFDVUxBOiBSZWNvcmQ8c3RyaW5nLENvbG91cj4gPSB7XG5cbi8vIH07XG5cbi8vIFRoZW1lIENyZWF0aW9uXG5jb25zdCBERUZBVUxUX1RIRU1FOiBDb2RlU3R5bGVyVGhlbWUgPSB7XG5cdHNldHRpbmdzOiBUSEVNRV9ERUZBVUxUX1NFVFRJTkdTLFxuXHRjb2xvdXJzOiB7XG5cdFx0bGlnaHQ6IFRIRU1FX0ZBTExCQUNLX0NPTE9VUlMsXG5cdFx0ZGFyazogVEhFTUVfRkFMTEJBQ0tfQ09MT1VSUyxcblx0fSxcbn07XG5jb25zdCBTT0xBUklaRURfVEhFTUU6IENvZGVTdHlsZXJUaGVtZSA9IHtcblx0c2V0dGluZ3M6IFRIRU1FX0RFRkFVTFRfU0VUVElOR1MsXG5cdGNvbG91cnM6IHtcblx0XHRsaWdodDoge1xuXHRcdFx0Y29kZWJsb2NrOiB7XG5cdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFNPTEFSSVpFRC5iYXNlMyxcblx0XHRcdFx0dGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG5cdFx0XHR9LFxuXHRcdFx0Z3V0dGVyOiB7XG5cdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFNPTEFSSVpFRC5iYXNlMixcblx0XHRcdFx0dGV4dENvbG91cjogXCIjNmM2YzZjXCIsXG5cdFx0XHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiIzhjOGM4Y1wiLFxuXHRcdFx0fSxcblx0XHRcdGhlYWRlcjoge1xuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIiNENUNDQjRcIixcblx0XHRcdFx0dGl0bGU6IHtcblx0XHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiM4NjY3MDRcIixcblx0XHRcdFx0fSxcblx0XHRcdFx0bGFuZ3VhZ2VUYWc6IHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIiNCOEI1QUFcIixcblx0XHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNDMjVGMzBcIixcblx0XHRcdFx0fSxcblx0XHRcdFx0bGluZUNvbG91cjogXCIjRURENDg5XCIsXG5cdFx0XHR9LFxuXHRcdFx0aGlnaGxpZ2h0czoge1xuXHRcdFx0XHRhY3RpdmVDb2RlYmxvY2tMaW5lQ29sb3VyOiBTT0xBUklaRUQuYmFzZTIsXG5cdFx0XHRcdGFjdGl2ZUVkaXRvckxpbmVDb2xvdXI6IFwiIzYwNDYwNjMzXCIsXG5cdFx0XHRcdGRlZmF1bHRDb2xvdXI6IFwiI0U5REZCQVwiLFxuXHRcdFx0XHRhbHRlcm5hdGl2ZUhpZ2hsaWdodHM6IHt9LFxuXHRcdFx0fSxcblx0XHRcdGlubGluZToge1xuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBTT0xBUklaRUQuYmFzZTMsXG5cdFx0XHRcdHRleHRDb2xvdXI6IFwiI2JhYmFiYVwiLFxuXHRcdFx0XHRhY3RpdmVUZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcblx0XHRcdFx0dGl0bGVUZXh0Q29sb3VyOiBcIiNDMjVGMzBcIixcblx0XHRcdH0sXG5cdFx0XHRhZHZhbmNlZDoge1xuXHRcdFx0XHRidXR0b25Db2xvdXI6IFwiLS10ZXh0LW11dGVkXCIsXG5cdFx0XHRcdGJ1dHRvbkFjdGl2ZUNvbG91cjogXCItLXRleHQtbm9ybWFsXCIsXG5cdFx0XHR9XG5cdFx0fSxcblx0XHRkYXJrOiB7XG5cdFx0XHRjb2RlYmxvY2s6IHtcblx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogU09MQVJJWkVELmJhc2UwMyxcblx0XHRcdFx0dGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG5cdFx0XHR9LFxuXHRcdFx0Z3V0dGVyOiB7XG5cdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFNPTEFSSVpFRC5iYXNlMDIsXG5cdFx0XHRcdHRleHRDb2xvdXI6IFwiIzZjNmM2Y1wiLFxuXHRcdFx0XHRhY3RpdmVUZXh0Q29sb3VyOiBcIiM0YzRjNGNcIixcblx0XHRcdH0sXG5cdFx0XHRoZWFkZXI6IHtcblx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogXCIjMGE0NTU0XCIsXG5cdFx0XHRcdHRpdGxlOiB7XG5cdFx0XHRcdFx0dGV4dENvbG91cjogXCIjZGFkYWRhXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGxhbmd1YWdlVGFnOiB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogXCIjMDA4MDgwXCIsXG5cdFx0XHRcdFx0dGV4dENvbG91cjogXCIjMDAwMDAwXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGxpbmVDb2xvdXI6IFwiIzQ2Y2NlZFwiLFxuXHRcdFx0fSxcblx0XHRcdGhpZ2hsaWdodHM6IHtcblx0XHRcdFx0YWN0aXZlQ29kZWJsb2NrTGluZUNvbG91cjogU09MQVJJWkVELmJhc2UwMixcblx0XHRcdFx0YWN0aXZlRWRpdG9yTGluZUNvbG91cjogXCIjNDY4ZWViMzNcIixcblx0XHRcdFx0ZGVmYXVsdENvbG91cjogXCIjMDU0YjVjXCIsXG5cdFx0XHRcdGFsdGVybmF0aXZlSGlnaGxpZ2h0czoge30sXG5cdFx0XHR9LFxuXHRcdFx0aW5saW5lOiB7XG5cdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFNPTEFSSVpFRC5iYXNlMDMsXG5cdFx0XHRcdHRleHRDb2xvdXI6IFwiI2JhYmFiYVwiLFxuXHRcdFx0XHRhY3RpdmVUZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcblx0XHRcdFx0dGl0bGVUZXh0Q29sb3VyOiBcIiMwMDAwMDBcIixcblx0XHRcdH0sXG5cdFx0XHRhZHZhbmNlZDoge1xuXHRcdFx0XHRidXR0b25Db2xvdXI6IFwiLS10ZXh0LW11dGVkXCIsXG5cdFx0XHRcdGJ1dHRvbkFjdGl2ZUNvbG91cjogXCItLXRleHQtbm9ybWFsXCIsXG5cdFx0XHR9XG5cdFx0fSxcblx0fSxcbn07XG4vLyBjb25zdCBOT1JEX1RIRU1FID0ge1xuXG4vLyB9O1xuLy8gY29uc3QgRFJBQ1VMQV9USEVNRSA9IHtcblxuLy8gfTtcbi8vIGNvbnN0IENBVFBVQ0NJTl9USEVNRSA9IHtcblxuLy8gfTtcbi8vIGNvbnN0IEdSVVZCT1hfVEhFTUUgPSB7XG4vLyBcdHNldHRpbmdzOiBUSEVNRV9ERUZBVUxUX1NFVFRJTkdTLFxuLy8gXHRjb2xvdXJzOiB7XG4vLyBcdFx0bGlnaHQ6IHtcbi8vIFx0XHRcdGNvZGVibG9jazoge1xuLy8gXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBHUlVWQk9YLmxpZ2h0MCxcbi8vIFx0XHRcdFx0dGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG4vLyBcdFx0XHR9LFxuLy8gXHRcdFx0Z3V0dGVyOiB7XG4vLyBcdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IEdSVVZCT1gubGlnaHQxLFxuLy8gXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiM2YzZjNmNcIixcbi8vIFx0XHRcdFx0YWN0aXZlVGV4dENvbG91cjogXCIjOGM4YzhjXCIsXG4vLyBcdFx0XHR9LFxuLy8gXHRcdFx0aGVhZGVyOiB7XG4vLyBcdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFwiI0Q1Q0NCNFwiLFxuLy8gXHRcdFx0XHR0aXRsZToge1xuLy8gXHRcdFx0XHRcdHRleHRDb2xvdXI6IFwiIzg2NjcwNFwiLFxuLy8gXHRcdFx0XHR9LFxuLy8gXHRcdFx0XHRsYW5ndWFnZVRhZzoge1xuLy8gXHRcdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFwiI0I4QjVBQVwiLFxuLy8gXHRcdFx0XHRcdHRleHRDb2xvdXI6IFwiI0MyNUYzMFwiLFxuLy8gXHRcdFx0XHR9LFxuLy8gXHRcdFx0XHRsaW5lQ29sb3VyOiBcIiNFREQ0ODlcIixcbi8vIFx0XHRcdH0sXG4vLyBcdFx0XHRoaWdobGlnaHRzOiB7XG4vLyBcdFx0XHRcdGFjdGl2ZUNvZGVibG9ja0xpbmVDb2xvdXI6IEdSVVZCT1gubGlnaHQxLFxuLy8gXHRcdFx0XHRhY3RpdmVFZGl0b3JMaW5lQ29sb3VyOiBcIiM2MDQ2MDYzM1wiLFxuLy8gXHRcdFx0XHRkZWZhdWx0Q29sb3VyOiBcIiNFOURGQkFcIixcbi8vIFx0XHRcdFx0YWx0ZXJuYXRpdmVIaWdobGlnaHRzOiB7fSxcbi8vIFx0XHRcdH0sXG4vLyBcdFx0XHRpbmxpbmU6IHtcbi8vIFx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogR1JVVkJPWC5saWdodDAsXG4vLyBcdFx0XHRcdHRleHRDb2xvdXI6IFwiI2JhYmFiYVwiLFxuLy8gXHRcdFx0XHRhY3RpdmVUZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcbi8vIFx0XHRcdFx0dGl0bGVUZXh0Q29sb3VyOiBcIiNDMjVGMzBcIixcbi8vIFx0XHRcdH0sXG4vLyBcdFx0XHRhZHZhbmNlZDoge1xuLy8gXHRcdFx0XHRidXR0b25Db2xvdXI6IFwiLS10ZXh0LW11dGVkXCIsXG4vLyBcdFx0XHRcdGJ1dHRvbkFjdGl2ZUNvbG91cjogXCItLXRleHQtbm9ybWFsXCIsXG4vLyBcdFx0XHR9XG4vLyBcdFx0fSxcbi8vIFx0XHRkYXJrOiB7XG4vLyBcdFx0XHRjb2RlYmxvY2s6IHtcbi8vIFx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogR1JVVkJPWC5kYXJrMCxcbi8vIFx0XHRcdFx0dGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG4vLyBcdFx0XHR9LFxuLy8gXHRcdFx0Z3V0dGVyOiB7XG4vLyBcdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IEdSVVZCT1guZGFyazEsXG4vLyBcdFx0XHRcdHRleHRDb2xvdXI6IFwiIzZjNmM2Y1wiLFxuLy8gXHRcdFx0XHRhY3RpdmVUZXh0Q29sb3VyOiBcIiM0YzRjNGNcIixcbi8vIFx0XHRcdH0sXG4vLyBcdFx0XHRoZWFkZXI6IHtcbi8vIFx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogXCIjMGE0NTU0XCIsXG4vLyBcdFx0XHRcdHRpdGxlOiB7XG4vLyBcdFx0XHRcdFx0dGV4dENvbG91cjogXCIjZGFkYWRhXCIsXG4vLyBcdFx0XHRcdH0sXG4vLyBcdFx0XHRcdGxhbmd1YWdlVGFnOiB7XG4vLyBcdFx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogXCIjMDA4MDgwXCIsXG4vLyBcdFx0XHRcdFx0dGV4dENvbG91cjogXCIjMDAwMDAwXCIsXG4vLyBcdFx0XHRcdH0sXG4vLyBcdFx0XHRcdGxpbmVDb2xvdXI6IFwiIzQ2Y2NlZFwiLFxuLy8gXHRcdFx0fSxcbi8vIFx0XHRcdGhpZ2hsaWdodHM6IHtcbi8vIFx0XHRcdFx0YWN0aXZlQ29kZWJsb2NrTGluZUNvbG91cjogR1JVVkJPWC5kYXJrMSxcbi8vIFx0XHRcdFx0YWN0aXZlRWRpdG9yTGluZUNvbG91cjogXCIjNDY4ZWViMzNcIixcbi8vIFx0XHRcdFx0ZGVmYXVsdENvbG91cjogXCIjMDU0YjVjXCIsXG4vLyBcdFx0XHRcdGFsdGVybmF0aXZlSGlnaGxpZ2h0czoge30sXG4vLyBcdFx0XHR9LFxuLy8gXHRcdFx0aW5saW5lOiB7XG4vLyBcdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IEdSVVZCT1guZGFyazAsXG4vLyBcdFx0XHRcdHRleHRDb2xvdXI6IFwiI2JhYmFiYVwiLFxuLy8gXHRcdFx0XHRhY3RpdmVUZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcbi8vIFx0XHRcdFx0dGl0bGVUZXh0Q29sb3VyOiBcIiMwMDAwMDBcIixcbi8vIFx0XHRcdH0sXG4vLyBcdFx0XHRhZHZhbmNlZDoge1xuLy8gXHRcdFx0XHRidXR0b25Db2xvdXI6IFwiLS10ZXh0LW11dGVkXCIsXG4vLyBcdFx0XHRcdGJ1dHRvbkFjdGl2ZUNvbG91cjogXCItLXRleHQtbm9ybWFsXCIsXG4vLyBcdFx0XHR9XG4vLyBcdFx0fSxcbi8vIFx0fSxcbi8vIH07XG5cbmV4cG9ydCBjb25zdCBJTkJVSUxUX1RIRU1FUzogUmVjb3JkPHN0cmluZyxDb2RlU3R5bGVyVGhlbWU+ID0ge1xuXHRcIkRlZmF1bHRcIjogREVGQVVMVF9USEVNRSxcblx0XCJTb2xhcml6ZWRcIjogU09MQVJJWkVEX1RIRU1FLFxufTtcblxuLy8gRGVmYXVsdCBWYWx1ZXNcbmV4cG9ydCBjb25zdCBFWEFNUExFX0NPREVCTE9DS19QQVJBTUVURVJTID0gXCJweXRob24gdGl0bGU6Zm9vXCI7XG5leHBvcnQgY29uc3QgRVhBTVBMRV9DT0RFQkxPQ0tfQ09OVEVOVCA9IFwicHJpbnQoXFxcIlRoaXMgbGluZSBpcyB2ZXJ5IGxvbmcgYW5kIHNob3VsZCBiZSB1c2VkIGFzIGFuIGV4YW1wbGUgZm9yIGhvdyB0aGUgcGx1Z2luIGRlYWxzIHdpdGggd3JhcHBpbmcgYW5kIHVud3JhcHBpbmcgdmVyeSBsb25nIGxpbmVzIGdpdmVuIHRoZSBjaG9pY2Ugb2YgY29kZWJsb2NrIHBhcmFtZXRlcnMgYW5kIHNldHRpbmdzLlxcXCIpXFxucHJpbnQoXFxcIlRoaXMgbGluZSBpcyBoaWdobGlnaHRlZC5cXFwiKVwiO1xuZXhwb3J0IGNvbnN0IEVYQU1QTEVfSU5MSU5FX0NPREUgPSBcIntweXRob24gaWNvbiB0aXRsZTpmb299IHByaW50KFxcXCJUaGlzIGlzIGlubGluZSBjb2RlXFxcIilcIjtcbmV4cG9ydCBjb25zdCBFWENMVURFRF9MQU5HVUFHRVMgPSBcImFkLSosIHJlZmVyZW5jZVwiO1xuZXhwb3J0IGNvbnN0IFdISVRFTElTVF9DT0RFQkxPQ0tTID0gXCJydW4tKiwgaW5jbHVkZVwiO1xuXG4vLyBQbHVnaW4gZGVmYXVsdCBzZXR0aW5nc1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0VUVElOR1M6IENvZGVTdHlsZXJTZXR0aW5ncyA9IHtcblx0dGhlbWVzOiBzdHJ1Y3R1cmVkQ2xvbmUoSU5CVUlMVF9USEVNRVMpLFxuXHRzZWxlY3RlZFRoZW1lOiBcIkRlZmF1bHRcIixcblx0Y3VycmVudFRoZW1lOiBzdHJ1Y3R1cmVkQ2xvbmUoREVGQVVMVF9USEVNRSksXG5cdG5ld1RoZW1lOiBcIlwiLFxuXHRuZXdIaWdobGlnaHQ6IFwiXCIsXG5cdGV4YW1wbGVDb2RlYmxvY2tQYXJhbWV0ZXJzOiBFWEFNUExFX0NPREVCTE9DS19QQVJBTUVURVJTLFxuXHRleGFtcGxlQ29kZWJsb2NrQ29udGVudDogRVhBTVBMRV9DT0RFQkxPQ0tfQ09OVEVOVCxcblx0ZXhhbXBsZUlubGluZUNvZGU6IEVYQU1QTEVfSU5MSU5FX0NPREUsXG5cdGRlY29yYXRlUHJpbnQ6IHRydWUsXG5cdGV4Y2x1ZGVkTGFuZ3VhZ2VzOiBFWENMVURFRF9MQU5HVUFHRVMsXG5cdHByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3Q6IFdISVRFTElTVF9DT0RFQkxPQ0tTLFxuXHRyZWRpcmVjdExhbmd1YWdlczoge30sXG5cdHZlcnNpb246IFwiMS4xLjRcIixcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0U2V0dGluZ3Moc2V0dGluZ3M6IENvZGVTdHlsZXJTZXR0aW5ncyk6IENvZGVTdHlsZXJTZXR0aW5ncyB7XG5cdGlmICh0eXBlb2Ygc2V0dGluZ3M/LnZlcnNpb24gPT09IFwidW5kZWZpbmVkXCIpXG5cdFx0cmV0dXJuIHNldHRpbmdzQ2xlYXIoKTtcblx0d2hpbGUgKHNlbXZlck5ld2VyKERFRkFVTFRfU0VUVElOR1MudmVyc2lvbixzZXR0aW5ncy52ZXJzaW9uKSkge1xuXHRcdGlmIChzZXR0aW5ncy52ZXJzaW9uIGluIHNldHRpbmdzVXBkYXRlcnMpXG5cdFx0XHRzZXR0aW5ncyA9IHNldHRpbmdzVXBkYXRlcnNbc2V0dGluZ3MudmVyc2lvbl0oc2V0dGluZ3MpO1xuXHRcdGVsc2Vcblx0XHRcdHNldHRpbmdzID0gc2V0dGluZ3NDbGVhcigpO1xuXHR9XG5cdHJldHVybiBzZXR0aW5ncztcbn1cbmZ1bmN0aW9uIHNlbXZlck5ld2VyKG5ld1ZlcnNpb246IHN0cmluZywgb2xkVmVyc2lvbjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdHJldHVybiBuZXdWZXJzaW9uLmxvY2FsZUNvbXBhcmUob2xkVmVyc2lvbiwgdW5kZWZpbmVkLCB7IG51bWVyaWM6IHRydWUgfSkgPT09IDE7XG59XG5mdW5jdGlvbiBzZXR0aW5nc1ZlcnNpb25VcGRhdGUoc2V0dGluZ3M6IENvZGVTdHlsZXJTZXR0aW5ncywgdGhlbWVVcGRhdGVyOiAodGhlbWU6IENvZGVTdHlsZXJUaGVtZSk9PkNvZGVTdHlsZXJUaGVtZSA9ICh0aGVtZSk9PnRoZW1lLCBvdGhlclNldHRpbmdzVXBkYXRlcjogKHNldHRpbmdzOiBDb2RlU3R5bGVyU2V0dGluZ3MpPT5Db2RlU3R5bGVyU2V0dGluZ3MgPSAoc2V0dGluZ3MpPT5zZXR0aW5ncywgcmVkaXJlY3RMYW5ndWFnZXNVcGRhdGVyOiAocmVkaXJlY3RMYW5ndWFnZXM6IFJlY29yZDxzdHJpbmcse2NvbG91cj86IENvbG91ciwgaWNvbj86IHN0cmluZ30+KT0+UmVjb3JkPHN0cmluZyx7Y29sb3VyPzogQ29sb3VyLCBpY29uPzogc3RyaW5nfT4gPSAocmVkaXJlY3RMYW5ndWFnZXMpPT5yZWRpcmVjdExhbmd1YWdlcyk6IENvZGVTdHlsZXJTZXR0aW5ncyB7XG5cdGZvciAoY29uc3QgW25hbWUsIHRoZW1lXSBvZiBPYmplY3QuZW50cmllcyhzZXR0aW5ncy50aGVtZXMpKSB7XG5cdFx0c2V0dGluZ3MudGhlbWVzW25hbWVdID0gdGhlbWVVcGRhdGVyKHRoZW1lKTtcblx0fVxuXHRzZXR0aW5ncy5jdXJyZW50VGhlbWUgPSBzdHJ1Y3R1cmVkQ2xvbmUoc2V0dGluZ3MudGhlbWVzW3NldHRpbmdzLnNlbGVjdGVkVGhlbWVdKTtcblx0c2V0dGluZ3MucmVkaXJlY3RMYW5ndWFnZXMgPSByZWRpcmVjdExhbmd1YWdlc1VwZGF0ZXIoc2V0dGluZ3MucmVkaXJlY3RMYW5ndWFnZXMpO1xuXHRzZXR0aW5ncyA9IG90aGVyU2V0dGluZ3NVcGRhdGVyKHNldHRpbmdzKTtcblx0c2V0dGluZ3MudmVyc2lvbiA9IE9iamVjdC5rZXlzKHNldHRpbmdzVXBkYXRlcnMpLmZpbmQoKHZhbHVlLGluZGV4LGFycmF5KT0+YXJyYXk/LltpbmRleC0xXT09PXNldHRpbmdzLnZlcnNpb24pID8/IFwiMS4wLjBcIjtcblx0cmV0dXJuIHNldHRpbmdzO1xufVxuZnVuY3Rpb24gc2V0dGluZ3NQcmVzZXJ2ZShzZXR0aW5nczogQ29kZVN0eWxlclNldHRpbmdzKTogQ29kZVN0eWxlclNldHRpbmdzIHtcblx0c2V0dGluZ3MudmVyc2lvbiA9IE9iamVjdC5rZXlzKHNldHRpbmdzVXBkYXRlcnMpLmZpbmQoKHZhbHVlLGluZGV4LGFycmF5KT0+YXJyYXk/LltpbmRleC0xXT09PXNldHRpbmdzLnZlcnNpb24pID8/IFwiMS4wLjBcIjtcblx0cmV0dXJuIHNldHRpbmdzO1xufVxuZnVuY3Rpb24gc2V0dGluZ3NDbGVhcigpOiBDb2RlU3R5bGVyU2V0dGluZ3Mge1xuXHRyZXR1cm4gREVGQVVMVF9TRVRUSU5HUztcbn1cblxuY29uc3Qgc2V0dGluZ3NVcGRhdGVyczogUmVjb3JkPHN0cmluZywoc2V0dGluZ3M6IENvZGVTdHlsZXJTZXR0aW5ncyk9PkNvZGVTdHlsZXJTZXR0aW5ncz4gPSB7XG5cdFwiMS4wLjBcIjogc2V0dGluZ3NDbGVhcixcblx0XCIxLjAuMVwiOiBzZXR0aW5nc0NsZWFyLFxuXHRcIjEuMC4yXCI6IHNldHRpbmdzQ2xlYXIsXG5cdFwiMS4wLjNcIjogc2V0dGluZ3NDbGVhcixcblx0XCIxLjAuNFwiOiBzZXR0aW5nc0NsZWFyLFxuXHRcIjEuMC41XCI6IHNldHRpbmdzQ2xlYXIsXG5cdFwiMS4wLjZcIjogc2V0dGluZ3NDbGVhcixcblx0XCIxLjAuN1wiOiBzZXR0aW5nc1ByZXNlcnZlLFxuXHRcIjEuMC44XCI6IHNldHRpbmdzUHJlc2VydmUsXG5cdFwiMS4wLjlcIjogc2V0dGluZ3NQcmVzZXJ2ZSxcblx0XCIxLjAuMTBcIjogKHNldHRpbmdzKT0+c2V0dGluZ3NWZXJzaW9uVXBkYXRlKHNldHRpbmdzLCh0aGVtZSk9Pntcblx0XHR0aGVtZS5zZXR0aW5ncy5pbmxpbmUuc3R5bGUgPSB0cnVlO1xuXHRcdHJldHVybiB0aGVtZTtcblx0fSwoc2V0dGluZ3MpPT57Ly9AdHMtZXhwZWN0LWVycm9yIE9sZGVyIGludGVyZmFjZSB2ZXJzaW9uc1xuXHRcdGRlbGV0ZSBzZXR0aW5ncy5zcGVjaWFsTGFuZ3VhZ2VzO1xuXHRcdHJldHVybiBzZXR0aW5ncztcblx0fSksXG5cdFwiMS4wLjExXCI6IHNldHRpbmdzUHJlc2VydmUsXG5cdFwiMS4xLjBcIjogc2V0dGluZ3NQcmVzZXJ2ZSxcblx0XCIxLjEuMVwiOiBzZXR0aW5nc1ByZXNlcnZlLFxuXHRcIjEuMS4yXCI6IHNldHRpbmdzUHJlc2VydmUsXG5cdFwiMS4xLjNcIjogc2V0dGluZ3NQcmVzZXJ2ZSxcblx0XCIxLjEuNFwiOiBzZXR0aW5nc1ByZXNlcnZlLFxufTtcblxuLy8gQ29uc3RhbnRzXG5leHBvcnQgY29uc3QgRk9MRF9QTEFDRUhPTERFUiA9IFwiRm9sZGVkIENvZGVcIjtcbmV4cG9ydCBjb25zdCBQQVJBTUVURVJTID0gW1widGl0bGVcIixcImZvbGRcIixcImxuXCIsXCJ3cmFwXCIsXCJ1bndyYXBcIixcImlnbm9yZVwiXTtcbmV4cG9ydCBjb25zdCBUUkFOU0lUSU9OX0xFTkdUSCA9IDI0MDsgLy8gMjQwbXNcbmV4cG9ydCBjb25zdCBTUEVDSUFMX0xBTkdVQUdFUyA9IFtcIl5yZWZlcmVuY2UkXCIsXCJeZm9vZm9vXCIsXCJecHJldmlldyRcIixcIl5pbmNsdWRlJFwiLFwiXm91dHB1dCRcIixcIl5ydW4tLiskXCJdO1xuZXhwb3J0IGNvbnN0IFNFVFRJTkdTX1NPVVJDRVBBVEhfUFJFRklYID0gXCJAQ29kZS1TdHlsZXItU2V0dGluZ3M6XCI7XG5leHBvcnQgY29uc3QgTE9DQUxfUFJFRklYID0gXCJAL1wiO1xuZXhwb3J0IGNvbnN0IFJFRkVSRU5DRV9DT0RFQkxPQ0sgPSBcInJlZmVyZW5jZVwiO1xuZXhwb3J0IGNvbnN0IEVYVEVSTkFMX1JFRkVSRU5DRV9QQVRIID0gXCIvcGx1Z2lucy9jb2RlLXN0eWxlci9yZWZlcmVuY2UtZmlsZXMvXCI7XG5leHBvcnQgY29uc3QgRVhURVJOQUxfUkVGRVJFTkNFX0NBQ0hFID0gRVhURVJOQUxfUkVGRVJFTkNFX1BBVEggKyBcImNhY2hlLmpzb25cIjtcbmV4cG9ydCBjb25zdCBFWFRFUk5BTF9SRUZFUkVOQ0VfSU5GT19TVUZGSVggPSBcIi1pbmZvLmpzb25cIjtcbmV4cG9ydCBjb25zdCBHSVRfSUNPTlM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG5cdFwiYnJhbmNoXCI6IFwiJiN4ZTBhMDtcIixcblx0XCJ0cmVlXCI6IFwiJiN4ZWFmYztcIiwgLy8gY29tbWl0XG59O1xuZXhwb3J0IGNvbnN0IFNJVEVfSUNPTlM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG5cdFwiZ2l0aHViXCI6IFwiJiN4ZjA5YjtcIixcblx0XCJnaXRsYWJcIjogXCImI3hlNjVjO1wiLFxuXHRcImJpdGJ1Y2tldFwiOiBcIiYjeGU3MDM7XCIsXG5cdFwic291cmNlZm9yZ2VcIjogXCImI3hmMDIzODtcIixcblx0XCJnZW5lcmljXCI6IFwiJiN4ZjA1OWY7XCIsXG59O1xuZXhwb3J0IGNvbnN0IFNUQU1QX0lDT04gPSBcIiYjeGYwMGYwO1wiO1xuZXhwb3J0IGNvbnN0IFVQREFURV9JQ09OID0gXCImI3hlMzQ4O1wiO1xuXG5jb25zdCBQUklTTV9MQU5HVUFHRVM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0geyAvLyBQcmlzbSBMYW5ndWFnZXM6IGh0dHBzOi8vcHJpc21qcy5jb20vcGx1Z2lucy9zaG93LWxhbmd1YWdlL1xuXHQvLyBcIm5vbmVcIjogXCJQbGFpbiB0ZXh0XCIsIC8vIE5PVEU6IE9ic2lkaWFuIHVzZXMgdGhpcyBmb3IgY29kZWJsb2NrcyB3aXRob3V0IGxhbmd1YWdlIG5hbWVzXG5cdFwicGxhaW5cIjogXCJQbGFpbiB0ZXh0XCIsXG5cdFwicGxhaW50ZXh0XCI6IFwiUGxhaW4gdGV4dFwiLFxuXHRcInRleHRcIjogXCJQbGFpbiB0ZXh0XCIsXG5cdFwidHh0XCI6IFwiUGxhaW4gdGV4dFwiLFxuXHRcImh0bWxcIjogXCJIVE1MXCIsXG5cdFwieG1sXCI6IFwiWE1MXCIsXG5cdFwic3ZnXCI6IFwiU1ZHXCIsXG5cdFwibWF0aG1sXCI6IFwiTWF0aE1MXCIsXG5cdFwic3NtbFwiOiBcIlNTTUxcIixcblx0XCJyc3NcIjogXCJSU1NcIixcblx0XCJjc3NcIjogXCJDU1NcIixcblx0XCJjbGlrZVwiOiBcIkMtbGlrZVwiLFxuXHRcImpzXCI6IFwiSmF2YVNjcmlwdFwiLFxuXHRcImFiYXBcIjogXCJBQkFQXCIsXG5cdFwiYWJuZlwiOiBcIkFCTkZcIixcblx0XCJhbFwiOiBcIkFMXCIsXG5cdFwiYW50bHI0XCI6IFwiQU5UTFI0XCIsXG5cdFwiZzRcIjogXCJBTlRMUjRcIixcblx0XCJhcGFjaGVjb25mXCI6IFwiQXBhY2hlIENvbmZpZ3VyYXRpb25cIixcblx0XCJhcGxcIjogXCJBUExcIixcblx0XCJhcWxcIjogXCJBUUxcIixcblx0XCJpbm9cIjogXCJBcmR1aW5vXCIsXG5cdFwiYXJmZlwiOiBcIkFSRkZcIixcblx0XCJhcm1hc21cIjogXCJBUk0gQXNzZW1ibHlcIixcblx0XCJhcm0tYXNtXCI6IFwiQVJNIEFzc2VtYmx5XCIsXG5cdFwiYXJ0XCI6IFwiQXJ0dXJvXCIsXG5cdFwiYXNjaWlkb2NcIjogXCJBc2NpaURvY1wiLFxuXHRcImFkb2NcIjogXCJBc2NpaURvY1wiLFxuXHRcImFzcG5ldFwiOiBcIkFTUC5ORVQgKEMjKVwiLFxuXHRcImFzbTY1MDJcIjogXCI2NTAyIEFzc2VtYmx5XCIsXG5cdFwiYXNtYXRtZWxcIjogXCJBdG1lbCBBVlIgQXNzZW1ibHlcIixcblx0XCJhdXRvaG90a2V5XCI6IFwiQXV0b0hvdGtleVwiLFxuXHRcImF1dG9pdFwiOiBcIkF1dG9JdFwiLFxuXHRcImF2aXN5bnRoXCI6IFwiQXZpU3ludGhcIixcblx0XCJhdnNcIjogXCJBdmlTeW50aFwiLFxuXHRcImF2cm8taWRsXCI6IFwiQXZybyBJRExcIixcblx0XCJhdmRsXCI6IFwiQXZybyBJRExcIixcblx0XCJhd2tcIjogXCJBV0tcIixcblx0XCJnYXdrXCI6IFwiR0FXS1wiLFxuXHRcInNoXCI6IFwiU2hlbGxcIixcblx0XCJiYXNpY1wiOiBcIkJBU0lDXCIsXG5cdFwiYmJjb2RlXCI6IFwiQkJjb2RlXCIsXG5cdFwiYmJqXCI6IFwiQkJqXCIsXG5cdFwiYm5mXCI6IFwiQk5GXCIsXG5cdFwicmJuZlwiOiBcIlJCTkZcIixcblx0XCJicW5cIjogXCJCUU5cIixcblx0XCJic2xcIjogXCJCU0wgKDFDOkVudGVycHJpc2UpXCIsXG5cdFwib3NjcmlwdFwiOiBcIk9uZVNjcmlwdFwiLFxuXHRcImNzaGFycFwiOiBcIkMjXCIsXG5cdFwiY3NcIjogXCJDI1wiLFxuXHRcImRvdG5ldFwiOiBcIkMjXCIsXG5cdFwiY3BwXCI6IFwiQysrXCIsXG5cdFwiY2ZzY3JpcHRcIjogXCJDRlNjcmlwdFwiLFxuXHRcImNmY1wiOiBcIkNGU2NyaXB0XCIsXG5cdFwiY2lsXCI6IFwiQ0lMXCIsXG5cdFwiY2lsa2NcIjogXCJDaWxrL0NcIixcblx0XCJjaWxrLWNcIjogXCJDaWxrL0NcIixcblx0XCJjaWxrY3BwXCI6IFwiQ2lsay9DKytcIixcblx0XCJjaWxrLWNwcFwiOiBcIkNpbGsvQysrXCIsXG5cdFwiY2lsa1wiOiBcIkNpbGsvQysrXCIsXG5cdFwiY21ha2VcIjogXCJDTWFrZVwiLFxuXHRcImNvYm9sXCI6IFwiQ09CT0xcIixcblx0XCJjb2ZmZWVcIjogXCJDb2ZmZWVTY3JpcHRcIixcblx0XCJjb25jXCI6IFwiQ29uY3VybmFzXCIsXG5cdFwiY3NwXCI6IFwiQ29udGVudC1TZWN1cml0eS1Qb2xpY3lcIixcblx0XCJjc3MtZXh0cmFzXCI6IFwiQ1NTIEV4dHJhc1wiLFxuXHRcImNzdlwiOiBcIkNTVlwiLFxuXHRcImN1ZVwiOiBcIkNVRVwiLFxuXHRcImRhdGF3ZWF2ZVwiOiBcIkRhdGFXZWF2ZVwiLFxuXHRcImRheFwiOiBcIkRBWFwiLFxuXHRcImRqYW5nb1wiOiBcIkRqYW5nby9KaW5qYTJcIixcblx0XCJqaW5qYTJcIjogXCJEamFuZ28vSmluamEyXCIsXG5cdFwiZG5zLXpvbmUtZmlsZVwiOiBcIkROUyB6b25lIGZpbGVcIixcblx0XCJkbnMtem9uZVwiOiBcIkROUyB6b25lIGZpbGVcIixcblx0XCJkb2NrZXJmaWxlXCI6IFwiRG9ja2VyXCIsXG5cdFwiZG90XCI6IFwiRE9UIChHcmFwaHZpeilcIixcblx0XCJndlwiOiBcIkRPVCAoR3JhcGh2aXopXCIsXG5cdFwiZWJuZlwiOiBcIkVCTkZcIixcblx0XCJlZGl0b3Jjb25maWdcIjogXCJFZGl0b3JDb25maWdcIixcblx0XCJlanNcIjogXCJFSlNcIixcblx0XCJldGx1YVwiOiBcIkVtYmVkZGVkIEx1YSB0ZW1wbGF0aW5nXCIsXG5cdFwiZXJiXCI6IFwiRVJCXCIsXG5cdFwiZXhjZWwtZm9ybXVsYVwiOiBcIkV4Y2VsIEZvcm11bGFcIixcblx0XCJ4bHN4XCI6IFwiRXhjZWwgRm9ybXVsYVwiLFxuXHRcInhsc1wiOiBcIkV4Y2VsIEZvcm11bGFcIixcblx0XCJmc2hhcnBcIjogXCJGI1wiLFxuXHRcImZpcmVzdG9yZS1zZWN1cml0eS1ydWxlc1wiOiBcIkZpcmVzdG9yZSBzZWN1cml0eSBydWxlc1wiLFxuXHRcImZ0bFwiOiBcIkZyZWVNYXJrZXIgVGVtcGxhdGUgTGFuZ3VhZ2VcIixcblx0XCJnbWxcIjogXCJHYW1lTWFrZXIgTGFuZ3VhZ2VcIixcblx0XCJnYW1lbWFrZXJsYW5ndWFnZVwiOiBcIkdhbWVNYWtlciBMYW5ndWFnZVwiLFxuXHRcImdhcFwiOiBcIkdBUCAoQ0FTKVwiLFxuXHRcImdjb2RlXCI6IFwiRy1jb2RlXCIsXG5cdFwiZ2RzY3JpcHRcIjogXCJHRFNjcmlwdFwiLFxuXHRcImdlZGNvbVwiOiBcIkdFRENPTVwiLFxuXHRcImdldHRleHRcIjogXCJnZXR0ZXh0XCIsXG5cdFwicG9cIjogXCJnZXR0ZXh0XCIsXG5cdFwiZ2xzbFwiOiBcIkdMU0xcIixcblx0XCJnblwiOiBcIkdOXCIsXG5cdFwiZ25pXCI6IFwiR05cIixcblx0XCJsaW5rZXItc2NyaXB0XCI6IFwiR05VIExpbmtlciBTY3JpcHRcIixcblx0XCJsZFwiOiBcIkdOVSBMaW5rZXIgU2NyaXB0XCIsXG5cdFwiZ28tbW9kdWxlXCI6IFwiR28gbW9kdWxlXCIsXG5cdFwiZ28tbW9kXCI6IFwiR28gbW9kdWxlXCIsXG5cdFwiZ3JhcGhxbFwiOiBcIkdyYXBoUUxcIixcblx0XCJoYnNcIjogXCJIYW5kbGViYXJzXCIsXG5cdFwiaHNcIjogXCJIYXNrZWxsXCIsXG5cdFwiaGNsXCI6IFwiSENMXCIsXG5cdFwiaGxzbFwiOiBcIkhMU0xcIixcblx0XCJodHRwXCI6IFwiSFRUUFwiLFxuXHRcImhwa3BcIjogXCJIVFRQIFB1YmxpYy1LZXktUGluc1wiLFxuXHRcImhzdHNcIjogXCJIVFRQIFN0cmljdC1UcmFuc3BvcnQtU2VjdXJpdHlcIixcblx0XCJpY2hpZ29qYW1cIjogXCJJY2hpZ29KYW1cIixcblx0XCJpY3UtbWVzc2FnZS1mb3JtYXRcIjogXCJJQ1UgTWVzc2FnZSBGb3JtYXRcIixcblx0XCJpZHJcIjogXCJJZHJpc1wiLFxuXHRcImlnbm9yZVwiOiBcIi5pZ25vcmVcIixcblx0XCJnaXRpZ25vcmVcIjogXCIuZ2l0aWdub3JlXCIsXG5cdFwiaGdpZ25vcmVcIjogXCIuaGdpZ25vcmVcIixcblx0XCJucG1pZ25vcmVcIjogXCIubnBtaWdub3JlXCIsXG5cdFwiaW5mb3JtN1wiOiBcIkluZm9ybSA3XCIsXG5cdFwiamF2YWRvY1wiOiBcIkphdmFEb2NcIixcblx0XCJqYXZhZG9jbGlrZVwiOiBcIkphdmFEb2MtbGlrZVwiLFxuXHRcImphdmFzdGFja3RyYWNlXCI6IFwiSmF2YSBzdGFjayB0cmFjZVwiLFxuXHRcImpxXCI6IFwiSlFcIixcblx0XCJqc2RvY1wiOiBcIkpTRG9jXCIsXG5cdFwianMtZXh0cmFzXCI6IFwiSlMgRXh0cmFzXCIsXG5cdFwianNvblwiOiBcIkpTT05cIixcblx0XCJ3ZWJtYW5pZmVzdFwiOiBcIldlYiBBcHAgTWFuaWZlc3RcIixcblx0XCJqc29uNVwiOiBcIkpTT041XCIsXG5cdFwianNvbnBcIjogXCJKU09OUFwiLFxuXHRcImpzc3RhY2t0cmFjZVwiOiBcIkpTIHN0YWNrIHRyYWNlXCIsXG5cdFwianMtdGVtcGxhdGVzXCI6IFwiSlMgVGVtcGxhdGVzXCIsXG5cdFwia2VlcGFsaXZlZFwiOiBcIktlZXBhbGl2ZWQgQ29uZmlndXJlXCIsXG5cdFwia3RzXCI6IFwiS290bGluIFNjcmlwdFwiLFxuXHRcImt0XCI6IFwiS290bGluXCIsXG5cdFwia3VtaXJcIjogXCJLdU1pciAoXHUwNDFBXHUwNDQzXHUwNDFDXHUwNDM4XHUwNDQwKVwiLFxuXHRcImt1bVwiOiBcIkt1TWlyIChcdTA0MUFcdTA0NDNcdTA0MUNcdTA0MzhcdTA0NDApXCIsXG5cdFwibGF0ZXhcIjogXCJMYVRlWFwiLFxuXHRcInRleFwiOiBcIlRlWFwiLFxuXHRcImNvbnRleHRcIjogXCJDb25UZVh0XCIsXG5cdFwibGlseXBvbmRcIjogXCJMaWx5UG9uZFwiLFxuXHRcImx5XCI6IFwiTGlseVBvbmRcIixcblx0XCJlbWFjc1wiOiBcIkxpc3BcIixcblx0XCJlbGlzcFwiOiBcIkxpc3BcIixcblx0XCJlbWFjcy1saXNwXCI6IFwiTGlzcFwiLFxuXHRcImxsdm1cIjogXCJMTFZNIElSXCIsXG5cdFwibG9nXCI6IFwiTG9nIGZpbGVcIixcblx0XCJsb2xjb2RlXCI6IFwiTE9MQ09ERVwiLFxuXHRcIm1hZ21hXCI6IFwiTWFnbWEgKENBUylcIixcblx0XCJtZFwiOiBcIk1hcmtkb3duXCIsXG5cdFwibWFya3VwLXRlbXBsYXRpbmdcIjogXCJNYXJrdXAgdGVtcGxhdGluZ1wiLFxuXHRcIm1hdGxhYlwiOiBcIk1BVExBQlwiLFxuXHRcIm1heHNjcmlwdFwiOiBcIk1BWFNjcmlwdFwiLFxuXHRcIm1lbFwiOiBcIk1FTFwiLFxuXHRcIm1ldGFmb250XCI6IFwiTUVUQUZPTlRcIixcblx0XCJtb25nb2RiXCI6IFwiTW9uZ29EQlwiLFxuXHRcIm1vb25cIjogXCJNb29uU2NyaXB0XCIsXG5cdFwibjFxbFwiOiBcIk4xUUxcIixcblx0XCJuNGpzXCI6IFwiTjRKU1wiLFxuXHRcIm40anNkXCI6IFwiTjRKU1wiLFxuXHRcIm5hbmQydGV0cmlzLWhkbFwiOiBcIk5hbmQgVG8gVGV0cmlzIEhETFwiLFxuXHRcIm5hbmlzY3JpcHRcIjogXCJOYW5pbm92ZWwgU2NyaXB0XCIsXG5cdFwibmFuaVwiOiBcIk5hbmlub3ZlbCBTY3JpcHRcIixcblx0XCJuYXNtXCI6IFwiTkFTTVwiLFxuXHRcIm5lb25cIjogXCJORU9OXCIsXG5cdFwibmdpbnhcIjogXCJuZ2lueFwiLFxuXHRcIm5zaXNcIjogXCJOU0lTXCIsXG5cdFwib2JqZWN0aXZlY1wiOiBcIk9iamVjdGl2ZS1DXCIsXG5cdFwib2JqY1wiOiBcIk9iamVjdGl2ZS1DXCIsXG5cdFwib2NhbWxcIjogXCJPQ2FtbFwiLFxuXHRcIm9wZW5jbFwiOiBcIk9wZW5DTFwiLFxuXHRcIm9wZW5xYXNtXCI6IFwiT3BlblFhc21cIixcblx0XCJxYXNtXCI6IFwiT3BlblFhc21cIixcblx0XCJwYXJpZ3BcIjogXCJQQVJJL0dQXCIsXG5cdFwib2JqZWN0cGFzY2FsXCI6IFwiT2JqZWN0IFBhc2NhbFwiLFxuXHRcInBzbFwiOiBcIlBBVFJPTCBTY3JpcHRpbmcgTGFuZ3VhZ2VcIixcblx0XCJwY2F4aXNcIjogXCJQQy1BeGlzXCIsXG5cdFwicHhcIjogXCJQQy1BeGlzXCIsXG5cdFwicGVvcGxlY29kZVwiOiBcIlBlb3BsZUNvZGVcIixcblx0XCJwY29kZVwiOiBcIlBlb3BsZUNvZGVcIixcblx0XCJwaHBcIjogXCJQSFBcIixcblx0XCJwaHBkb2NcIjogXCJQSFBEb2NcIixcblx0XCJwaHAtZXh0cmFzXCI6IFwiUEhQIEV4dHJhc1wiLFxuXHRcInBsYW50LXVtbFwiOiBcIlBsYW50VU1MXCIsXG5cdFwicGxhbnR1bWxcIjogXCJQbGFudFVNTFwiLFxuXHRcInBsc3FsXCI6IFwiUEwvU1FMXCIsXG5cdFwicG93ZXJxdWVyeVwiOiBcIlBvd2VyUXVlcnlcIixcblx0XCJwcVwiOiBcIlBvd2VyUXVlcnlcIixcblx0XCJtc2NyaXB0XCI6IFwiUG93ZXJRdWVyeVwiLFxuXHRcInBvd2Vyc2hlbGxcIjogXCJQb3dlclNoZWxsXCIsXG5cdFwicHJvbXFsXCI6IFwiUHJvbVFMXCIsXG5cdFwicHJvcGVydGllc1wiOiBcIi5wcm9wZXJ0aWVzXCIsXG5cdFwicHJvdG9idWZcIjogXCJQcm90b2NvbCBCdWZmZXJzXCIsXG5cdFwicHVyZWJhc2ljXCI6IFwiUHVyZUJhc2ljXCIsXG5cdFwicGJmYXNtXCI6IFwiUHVyZUJhc2ljXCIsXG5cdFwicHVyc1wiOiBcIlB1cmVTY3JpcHRcIixcblx0XCJweVwiOiBcIlB5dGhvblwiLFxuXHRcInFzaGFycFwiOiBcIlEjXCIsXG5cdFwicXNcIjogXCJRI1wiLFxuXHRcInFcIjogXCJRIChrZGIrIGRhdGFiYXNlKVwiLFxuXHRcInFtbFwiOiBcIlFNTFwiLFxuXHRcInJrdFwiOiBcIlJhY2tldFwiLFxuXHRcImNzaHRtbFwiOiBcIlJhem9yIEMjXCIsXG5cdFwicmF6b3JcIjogXCJSYXpvciBDI1wiLFxuXHRcImpzeFwiOiBcIlJlYWN0IEpTWFwiLFxuXHRcInRzeFwiOiBcIlJlYWN0IFRTWFwiLFxuXHRcInJlbnB5XCI6IFwiUmVuJ3B5XCIsXG5cdFwicnB5XCI6IFwiUmVuJ3B5XCIsXG5cdFwicmVzXCI6IFwiUmVTY3JpcHRcIixcblx0XCJyZXN0XCI6IFwicmVTVCAocmVTdHJ1Y3R1cmVkVGV4dClcIixcblx0XCJyb2JvdGZyYW1ld29ya1wiOiBcIlJvYm90IEZyYW1ld29ya1wiLFxuXHRcInJvYm90XCI6IFwiUm9ib3QgRnJhbWV3b3JrXCIsXG5cdFwicmJcIjogXCJSdWJ5XCIsXG5cdFwic2FzXCI6IFwiU0FTXCIsXG5cdFwic2Fzc1wiOiBcIlNhc3MgKFNhc3MpXCIsXG5cdFwic2Nzc1wiOiBcIlNhc3MgKFNDU1MpXCIsXG5cdFwic2hlbGwtc2Vzc2lvblwiOiBcIlNoZWxsIHNlc3Npb25cIixcblx0XCJzaC1zZXNzaW9uXCI6IFwiU2hlbGwgc2Vzc2lvblwiLFxuXHRcInNoZWxsc2Vzc2lvblwiOiBcIlNoZWxsIHNlc3Npb25cIixcblx0XCJzbWxcIjogXCJTTUxcIixcblx0XCJzbWxualwiOiBcIlNNTC9OSlwiLFxuXHRcInNvbGlkaXR5XCI6IFwiU29saWRpdHkgKEV0aGVyZXVtKVwiLFxuXHRcInNvbFwiOiBcIlNvbGlkaXR5IChFdGhlcmV1bSlcIixcblx0XCJzb2x1dGlvbi1maWxlXCI6IFwiU29sdXRpb24gZmlsZVwiLFxuXHRcInNsblwiOiBcIlNvbHV0aW9uIGZpbGVcIixcblx0XCJzb3lcIjogXCJTb3kgKENsb3N1cmUgVGVtcGxhdGUpXCIsXG5cdFwic3BhcnFsXCI6IFwiU1BBUlFMXCIsXG5cdFwicnFcIjogXCJTUEFSUUxcIixcblx0XCJzcGx1bmstc3BsXCI6IFwiU3BsdW5rIFNQTFwiLFxuXHRcInNxZlwiOiBcIlNRRjogU3RhdHVzIFF1byBGdW5jdGlvbiAoQXJtYSAzKVwiLFxuXHRcInNxbFwiOiBcIlNRTFwiLFxuXHRcInN0YXRhXCI6IFwiU3RhdGEgQWRvXCIsXG5cdFwiaWVjc3RcIjogXCJTdHJ1Y3R1cmVkIFRleHQgKElFQyA2MTEzMS0zKVwiLFxuXHRcInN1cGVyY29sbGlkZXJcIjogXCJTdXBlckNvbGxpZGVyXCIsXG5cdFwic2NsYW5nXCI6IFwiU3VwZXJDb2xsaWRlclwiLFxuXHRcInN5c3RlbWRcIjogXCJTeXN0ZW1kIGNvbmZpZ3VyYXRpb24gZmlsZVwiLFxuXHRcInQ0LXRlbXBsYXRpbmdcIjogXCJUNCB0ZW1wbGF0aW5nXCIsXG5cdFwidDQtY3NcIjogXCJUNCBUZXh0IFRlbXBsYXRlcyAoQyMpXCIsXG5cdFwidDRcIjogXCJUNCBUZXh0IFRlbXBsYXRlcyAoQyMpXCIsXG5cdFwidDQtdmJcIjogXCJUNCBUZXh0IFRlbXBsYXRlcyAoVkIpXCIsXG5cdFwidGFwXCI6IFwiVEFQXCIsXG5cdFwidHQyXCI6IFwiVGVtcGxhdGUgVG9vbGtpdCAyXCIsXG5cdFwidG9tbFwiOiBcIlRPTUxcIixcblx0XCJ0cmlja2xlXCI6IFwidHJpY2tsZVwiLFxuXHRcInRyb3lcIjogXCJ0cm95XCIsXG5cdFwidHJpZ1wiOiBcIlRyaUdcIixcblx0XCJ0c1wiOiBcIlR5cGVTY3JpcHRcIixcblx0XCJ0c2NvbmZpZ1wiOiBcIlRTQ29uZmlnXCIsXG5cdFwidXNjcmlwdFwiOiBcIlVucmVhbFNjcmlwdFwiLFxuXHRcInVjXCI6IFwiVW5yZWFsU2NyaXB0XCIsXG5cdFwidW9yYXpvclwiOiBcIlVPIFJhem9yIFNjcmlwdFwiLFxuXHRcInVyaVwiOiBcIlVSSVwiLFxuXHRcInVybFwiOiBcIlVSTFwiLFxuXHRcInZibmV0XCI6IFwiVkIuTmV0XCIsXG5cdFwidmhkbFwiOiBcIlZIRExcIixcblx0XCJ2aW1cIjogXCJ2aW1cIixcblx0XCJ2aXN1YWwtYmFzaWNcIjogXCJWaXN1YWwgQmFzaWNcIixcblx0XCJ2YmFcIjogXCJWQkFcIixcblx0XCJ2YlwiOiBcIlZpc3VhbCBCYXNpY1wiLFxuXHRcIndhc21cIjogXCJXZWJBc3NlbWJseVwiLFxuXHRcIndlYi1pZGxcIjogXCJXZWIgSURMXCIsXG5cdFwid2ViaWRsXCI6IFwiV2ViIElETFwiLFxuXHRcIndnc2xcIjogXCJXR1NMXCIsXG5cdFwid2lraVwiOiBcIldpa2kgbWFya3VwXCIsXG5cdFwid29sZnJhbVwiOiBcIldvbGZyYW0gbGFuZ3VhZ2VcIixcblx0XCJuYlwiOiBcIk1hdGhlbWF0aWNhIE5vdGVib29rXCIsXG5cdFwid2xcIjogXCJXb2xmcmFtIGxhbmd1YWdlXCIsXG5cdFwieGVvcmFjdWJlXCI6IFwiWGVvcmFDdWJlXCIsXG5cdFwieG1sLWRvY1wiOiBcIlhNTCBkb2MgKC5uZXQpXCIsXG5cdFwieG9qb1wiOiBcIlhvam8gKFJFQUxiYXNpYylcIixcblx0XCJ4cXVlcnlcIjogXCJYUXVlcnlcIixcblx0XCJ5YW1sXCI6IFwiWUFNTFwiLFxuXHRcInltbFwiOiBcIllBTUxcIixcblx0XCJ5YW5nXCI6IFwiWUFOR1wiLFxufTtcbmNvbnN0IE1BTlVBTF9QUklTTV9MQU5HVUFHRVM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0geyAvLyBNYW51YWxseSBnZW5lcmF0ZWQgbGlzdCBmcm9tIGh0dHBzOi8vcHJpc21qcy5jb20vICAtICAyOTcgbGFuZ3VhZ2VzXG5cdFwiY3NzXCI6XCJDU1NcIixcblx0XCJjbGlrZVwiOlwiQy1saWtlXCIsXG5cdFwiamF2YXNjcmlwdFwiOlwiSmF2YVNjcmlwdFwiLFxuXHRcImpzXCI6XCJKYXZhU2NyaXB0XCIsXG5cdFwiYWJhcFwiOlwiQUJBUFwiLFxuXHRcImFibmZcIjpcIkFCTkZcIixcblx0XCJhY3Rpb25zY3JpcHRcIjpcIkFjdGlvblNjcmlwdFwiLFxuXHRcImFkYVwiOlwiQWRhXCIsXG5cdFwiYWdkYVwiOlwiQWdkYVwiLFxuXHRcImFsXCI6XCJBTFwiLFxuXHRcImFudGxyNFwiOlwiQU5UTFI0XCIsXG5cdFwiZzRcIjpcIkFOVExSNFwiLFxuXHRcImFwYWNoZWNvbmZcIjpcIkFwYWNoZSBDb25maWd1cmF0aW9uXCIsXG5cdFwiYXBleFwiOlwiQXBleFwiLFxuXHRcImFwbFwiOlwiQVBMXCIsXG5cdFwiYXBwbGVzY3JpcHRcIjpcIkFwcGxlU2NyaXB0XCIsXG5cdFwiYXFsXCI6XCJBUUxcIixcblx0XCJhcmR1aW5vXCI6XCJBcmR1aW5vXCIsXG5cdFwiaW5vXCI6XCJBcmR1aW5vXCIsXG5cdFwiYXJmZlwiOlwiQVJGRlwiLFxuXHRcImFybWFzbVwiOlwiQVJNIEFzc2VtYmx5XCIsXG5cdFwiYXJtLWFzbVwiOlwiQVJNIEFzc2VtYmx5XCIsXG5cdFwiYXJ0dXJvXCI6XCJBcnR1cm9cIixcblx0XCJhcnRcIjpcIkFydHVyb1wiLFxuXHRcImFzY2lpZG9jXCI6XCJBc2NpaURvY1wiLFxuXHRcImFkb2NcIjpcIkFzY2lpRG9jXCIsXG5cdFwiYXNwbmV0XCI6XCJBU1AuTkVUIChDIylcIixcblx0XCJhc202NTAyXCI6XCI2NTAyIEFzc2VtYmx5XCIsXG5cdFwiYXNtYXRtZWxcIjpcIkF0bWVsIEFWUiBBc3NlbWJseVwiLFxuXHRcImF1dG9ob3RrZXlcIjpcIkF1dG9Ib3RrZXlcIixcblx0XCJhdXRvaXRcIjpcIkF1dG9JdFwiLFxuXHRcImF2aXN5bnRoXCI6XCJBdmlTeW50aFwiLFxuXHRcImF2c1wiOlwiQXZpU3ludGhcIixcblx0XCJhdnJvLWlkbFwiOlwiQXZybyBJRExcIixcblx0XCJhdmRsXCI6XCJBdnJvIElETFwiLFxuXHRcImF3a1wiOlwiQVdLXCIsXG5cdFwiZ2F3a1wiOlwiR0FXS1wiLFxuXHRcImJhc2hcIjpcIkJhc2hcIixcblx0XCJzaFwiOlwiU2hlbGxcIixcblx0XCJzaGVsbFwiOlwiU2hlbGxcIixcblx0XCJiYXNpY1wiOlwiQkFTSUNcIixcblx0XCJiYXRjaFwiOlwiQmF0Y2hcIixcblx0XCJiYmNvZGVcIjpcIkJCY29kZVwiLFxuXHRcInNob3J0Y29kZVwiOlwiQkJjb2RlXCIsXG5cdFwiYmJqXCI6XCJCQmpcIixcblx0XCJiaXJiXCI6XCJCaXJiXCIsXG5cdFwiYmlzb25cIjpcIkJpc29uXCIsXG5cdFwiYm5mXCI6XCJCTkZcIixcblx0XCJyYm5mXCI6XCJCTkZcIixcblx0XCJicW5cIjpcIkJRTlwiLFxuXHRcImJyYWluZnVja1wiOlwiQnJhaW5mdWNrXCIsXG5cdFwiYnJpZ2h0c2NyaXB0XCI6XCJCcmlnaHRTY3JpcHRcIixcblx0XCJicm9cIjpcIkJyb1wiLFxuXHRcImJzbFwiOlwiQlNMICgxQylcIixcblx0XCJvc2NyaXB0XCI6XCJCU0wgKDFDKVwiLFxuXHRcImNcIjpcIkNcIixcblx0XCJjc2hhcnBcIjpcIkMjXCIsXG5cdFwiY3NcIjpcIkMjXCIsXG5cdFwiZG90bmV0XCI6XCJDI1wiLFxuXHRcImNwcFwiOlwiQysrXCIsXG5cdFwiY2ZzY3JpcHRcIjpcIkNGU2NyaXB0XCIsXG5cdFwiY2ZjXCI6XCJDRlNjcmlwdFwiLFxuXHRcImNoYWlzY3JpcHRcIjpcIkNoYWlTY3JpcHRcIixcblx0XCJjaWxcIjpcIkNJTFwiLFxuXHRcImNpbGtjXCI6XCJDaWxrL0NcIixcblx0XCJjaWxrLWNcIjpcIkNpbGsvQ1wiLFxuXHRcImNpbGtjcHBcIjpcIkNpbGsvQysrXCIsXG5cdFwiY2lsay1jcHBcIjpcIkNpbGsvQysrXCIsXG5cdFwiY2lsa1wiOlwiQ2lsay9DKytcIixcblx0XCJjbG9qdXJlXCI6XCJDbG9qdXJlXCIsXG5cdFwiY21ha2VcIjpcIkNNYWtlXCIsXG5cdFwiY29ib2xcIjpcIkNPQk9MXCIsXG5cdFwiY29mZmVlc2NyaXB0XCI6XCJDb2ZmZWVTY3JpcHRcIixcblx0XCJjb2ZmZWVcIjpcIkNvZmZlZVNjcmlwdFwiLFxuXHRcImNvbmN1cm5hc1wiOlwiQ29uY3VybmFzXCIsXG5cdFwiY29uY1wiOlwiQ29uY3VybmFzXCIsXG5cdFwiY3NwXCI6XCJDb250ZW50LVNlY3VyaXR5LVBvbGljeVwiLFxuXHRcImNvb2tsYW5nXCI6XCJDb29rbGFuZ1wiLFxuXHRcImNvcVwiOlwiQ29xXCIsXG5cdFwiY3J5c3RhbFwiOlwiQ3J5c3RhbFwiLFxuXHRcImNzcy1leHRyYXNcIjpcIkNTUyBFeHRyYXNcIixcblx0XCJjc3ZcIjpcIkNTVlwiLFxuXHRcImN1ZVwiOlwiQ1VFXCIsXG5cdFwiY3lwaGVyXCI6XCJDeXBoZXJcIixcblx0XCJkXCI6XCJEXCIsXG5cdFwiZGFydFwiOlwiRGFydFwiLFxuXHRcImRhdGF3ZWF2ZVwiOlwiRGF0YVdlYXZlXCIsXG5cdFwiZGF4XCI6XCJEQVhcIixcblx0XCJkaGFsbFwiOlwiRGhhbGxcIixcblx0XCJkaWZmXCI6XCJEaWZmXCIsXG5cdFwiZGphbmdvXCI6XCJEamFuZ28vSmluamEyXCIsXG5cdFwiamluamEyXCI6XCJEamFuZ28vSmluamEyXCIsXG5cdFwiZG5zLXpvbmUtZmlsZVwiOlwiRE5TIHpvbmUgZmlsZVwiLFxuXHRcImRucy16b25lXCI6XCJETlMgem9uZSBmaWxlXCIsXG5cdFwiZG9ja2VyXCI6XCJEb2NrZXJcIixcblx0XCJkb2NrZXJmaWxlXCI6XCJEb2NrZXJcIixcblx0XCJkb3RcIjpcIkRPVCAoR3JhcGh2aXopXCIsXG5cdFwiZ3ZcIjpcIkRPVCAoR3JhcGh2aXopXCIsXG5cdFwiZWJuZlwiOlwiRUJORlwiLFxuXHRcImVkaXRvcmNvbmZpZ1wiOlwiRWRpdG9yQ29uZmlnXCIsXG5cdFwiZWlmZmVsXCI6XCJFaWZmZWxcIixcblx0XCJlanNcIjpcIkVKU1wiLFxuXHRcImV0YVwiOlwiRUpTXCIsXG5cdFwiZWxpeGlyXCI6XCJFbGl4aXJcIixcblx0XCJlbG1cIjpcIkVsbVwiLFxuXHRcImV0bHVhXCI6XCJFbWJlZGRlZCBMdWEgdGVtcGxhdGluZ1wiLFxuXHRcImVyYlwiOlwiRVJCXCIsXG5cdFwiZXJsYW5nXCI6XCJFcmxhbmdcIixcblx0XCJleGNlbC1mb3JtdWxhXCI6XCJFeGNlbCBGb3JtdWxhXCIsXG5cdFwieGxzeFwiOlwiRXhjZWwgRm9ybXVsYVwiLFxuXHRcInhsc1wiOlwiRXhjZWwgRm9ybXVsYVwiLFxuXHRcImZzaGFycFwiOlwiRiNcIixcblx0XCJmYWN0b3JcIjpcIkZhY3RvclwiLFxuXHRcImZhbHNlXCI6XCJGYWxzZVwiLFxuXHRcImZpcmVzdG9yZS1zZWN1cml0eS1ydWxlc1wiOlwiRmlyZXN0b3JlIHNlY3VyaXR5IHJ1bGVzXCIsXG5cdFwiZmxvd1wiOlwiRmxvd1wiLFxuXHRcImZvcnRyYW5cIjpcIkZvcnRyYW5cIixcblx0XCJmdGxcIjpcIkZyZWVNYXJrZXIgVGVtcGxhdGUgTGFuZ3VhZ2VcIixcblx0XCJnbWxcIjpcIkdhbWVNYWtlciBMYW5ndWFnZVwiLFxuXHRcImdhbWVtYWtlcmxhbmd1YWdlXCI6XCJHYW1lTWFrZXIgTGFuZ3VhZ2VcIixcblx0XCJnYXBcIjpcIkdBUCAoQ0FTKVwiLFxuXHRcImdjb2RlXCI6XCJHLWNvZGVcIixcblx0XCJnZHNjcmlwdFwiOlwiR0RTY3JpcHRcIixcblx0XCJnZWRjb21cIjpcIkdFRENPTVwiLFxuXHRcImdldHRleHRcIjpcImdldHRleHRcIixcblx0XCJwb1wiOlwiZ2V0dGV4dFwiLFxuXHRcImdoZXJraW5cIjpcIkdoZXJraW5cIixcblx0XCJnaXRcIjpcIkdpdFwiLFxuXHRcImdsc2xcIjpcIkdMU0xcIixcblx0XCJnblwiOlwiR05cIixcblx0XCJnbmlcIjpcIkdOXCIsXG5cdFwibGlua2VyLXNjcmlwdFwiOlwiR05VIExpbmtlciBTY3JpcHRcIixcblx0XCJsZFwiOlwiR05VIExpbmtlciBTY3JpcHRcIixcblx0XCJnb1wiOlwiR29cIixcblx0XCJnby1tb2R1bGVcIjpcIkdvIG1vZHVsZVwiLFxuXHRcImdvLW1vZFwiOlwiR28gbW9kdWxlXCIsXG5cdFwiZ3JhZGxlXCI6XCJHcmFkbGVcIixcblx0XCJncmFwaHFsXCI6XCJHcmFwaFFMXCIsXG5cdFwiZ3Jvb3Z5XCI6XCJHcm9vdnlcIixcblx0XCJoYW1sXCI6XCJIYW1sXCIsXG5cdFwiaGFuZGxlYmFyc1wiOlwiSGFuZGxlYmFyc1wiLFxuXHRcImhic1wiOlwiSGFuZGxlYmFyc1wiLFxuXHRcIm11c3RhY2hlXCI6XCJIYW5kbGViYXJzXCIsXG5cdFwiaGFza2VsbFwiOlwiSGFza2VsbFwiLFxuXHRcImhzXCI6XCJIYXNrZWxsXCIsXG5cdFwiaGF4ZVwiOlwiSGF4ZVwiLFxuXHRcImhjbFwiOlwiSENMXCIsXG5cdFwiaGxzbFwiOlwiSExTTFwiLFxuXHRcImhvb25cIjpcIkhvb25cIixcblx0XCJodHRwXCI6XCJIVFRQXCIsXG5cdFwiaHBrcFwiOlwiSFRUUCBQdWJsaWMtS2V5LVBpbnNcIixcblx0XCJoc3RzXCI6XCJIVFRQIFN0cmljdC1UcmFuc3BvcnQtU2VjdXJpdHlcIixcblx0XCJpY2hpZ29qYW1cIjpcIkljaGlnb0phbVwiLFxuXHRcImljb25cIjpcIkljb25cIixcblx0XCJpY3UtbWVzc2FnZS1mb3JtYXRcIjpcIklDVSBNZXNzYWdlIEZvcm1hdFwiLFxuXHRcImlkcmlzXCI6XCJJZHJpc1wiLFxuXHRcImlkclwiOlwiSWRyaXNcIixcblx0XCJpbmZvcm03XCI6XCJJbmZvcm0gN1wiLFxuXHRcImluaVwiOlwiSW5pXCIsXG5cdFwiaW9cIjpcIklvXCIsXG5cdFwialwiOlwiSlwiLFxuXHRcImphdmFcIjpcIkphdmFcIixcblx0XCJqYXZhZG9jXCI6XCJKYXZhRG9jXCIsXG5cdFwiamF2YWRvY2xpa2VcIjpcIkphdmFEb2MtbGlrZVwiLFxuXHRcImphdmFzdGFja3RyYWNlXCI6XCJKYXZhIHN0YWNrIHRyYWNlXCIsXG5cdFwiamV4bFwiOlwiSmV4bFwiLFxuXHRcImpvbGllXCI6XCJKb2xpZVwiLFxuXHRcImpxXCI6XCJKUVwiLFxuXHRcImpzZG9jXCI6XCJKU0RvY1wiLFxuXHRcImpzLWV4dHJhc1wiOlwiSlMgRXh0cmFzXCIsXG5cdFwianNvblwiOlwiSlNPTlwiLFxuXHRcIndlYm1hbmlmZXN0XCI6XCJKU09OXCIsXG5cdFwianNvbjVcIjpcIkpTT041XCIsXG5cdFwianNvbnBcIjpcIkpTT05QXCIsXG5cdFwianNzdGFja3RyYWNlXCI6XCJKUyBzdGFjayB0cmFjZVwiLFxuXHRcImpzLXRlbXBsYXRlc1wiOlwiSlMgVGVtcGxhdGVzXCIsXG5cdFwianVsaWFcIjpcIkp1bGlhXCIsXG5cdFwia2VlcGFsaXZlZFwiOlwiS2VlcGFsaXZlZCBDb25maWd1cmVcIixcblx0XCJrZXltYW5cIjpcIktleW1hblwiLFxuXHRcImtvdGxpblwiOlwiS290bGluXCIsXG5cdFwia3RcIjpcIktvdGxpblwiLFxuXHRcImt0c1wiOlwiS290bGluXCIsXG5cdFwia3VtaXJcIjpcIkt1TWlyIChcdTA0MUFcdTA0NDNcdTA0MUNcdTA0MzhcdTA0NDApXCIsXG5cdFwia3VtXCI6XCJLdU1pciAoXHUwNDFBXHUwNDQzXHUwNDFDXHUwNDM4XHUwNDQwKVwiLFxuXHRcImt1c3RvXCI6XCJLdXN0b1wiLFxuXHRcImxhdGV4XCI6XCJMYVRlWFwiLFxuXHRcInRleFwiOlwiTGFUZVhcIixcblx0XCJjb250ZXh0XCI6XCJMYVRlWFwiLFxuXHRcImxhdHRlXCI6XCJMYXR0ZVwiLFxuXHRcImxlc3NcIjpcIkxlc3NcIixcblx0XCJsaWx5cG9uZFwiOlwiTGlseVBvbmRcIixcblx0XCJseVwiOlwiTGlseVBvbmRcIixcblx0XCJsaXF1aWRcIjpcIkxpcXVpZFwiLFxuXHRcImxpc3BcIjpcIkxpc3BcIixcblx0XCJlbWFjc1wiOlwiTGlzcFwiLFxuXHRcImVsaXNwXCI6XCJMaXNwXCIsXG5cdFwiZW1hY3MtbGlzcFwiOlwiTGlzcFwiLFxuXHRcImxpdmVzY3JpcHRcIjpcIkxpdmVTY3JpcHRcIixcblx0XCJsbHZtXCI6XCJMTFZNIElSXCIsXG5cdFwibG9nXCI6XCJMb2cgZmlsZVwiLFxuXHRcImxvbGNvZGVcIjpcIkxPTENPREVcIixcblx0XCJsdWFcIjpcIkx1YVwiLFxuXHRcIm1hZ21hXCI6XCJNYWdtYSAoQ0FTKVwiLFxuXHRcIm1ha2VmaWxlXCI6XCJNYWtlZmlsZVwiLFxuXHRcIm1hcmtkb3duXCI6XCJNYXJrZG93blwiLFxuXHRcIm1kXCI6XCJNYXJrZG93blwiLFxuXHRcIm1hcmt1cC10ZW1wbGF0aW5nXCI6XCJNYXJrdXAgdGVtcGxhdGluZ1wiLFxuXHRcIm1hdGFcIjpcIk1hdGFcIixcblx0XCJtYXRsYWJcIjpcIk1BVExBQlwiLFxuXHRcIm1heHNjcmlwdFwiOlwiTUFYU2NyaXB0XCIsXG5cdFwibWVsXCI6XCJNRUxcIixcblx0XCJtZXJtYWlkXCI6XCJNZXJtYWlkXCIsXG5cdFwibWV0YWZvbnRcIjpcIk1FVEFGT05UXCIsXG5cdFwibWl6YXJcIjpcIk1pemFyXCIsXG5cdFwibW9uZ29kYlwiOlwiTW9uZ29EQlwiLFxuXHRcIm1vbmtleVwiOlwiTW9ua2V5XCIsXG5cdFwibW9vbnNjcmlwdFwiOlwiTW9vblNjcmlwdFwiLFxuXHRcIm1vb25cIjpcIk1vb25TY3JpcHRcIixcblx0XCJuMXFsXCI6XCJOMVFMXCIsXG5cdFwibjRqc1wiOlwiTjRKU1wiLFxuXHRcIm40anNkXCI6XCJONEpTXCIsXG5cdFwibmFuZDJ0ZXRyaXMtaGRsXCI6XCJOYW5kIFRvIFRldHJpcyBIRExcIixcblx0XCJuYW5pc2NyaXB0XCI6XCJOYW5pbm92ZWwgU2NyaXB0XCIsXG5cdFwibmFuaVwiOlwiTmFuaW5vdmVsIFNjcmlwdFwiLFxuXHRcIm5hc21cIjpcIk5BU01cIixcblx0XCJuZW9uXCI6XCJORU9OXCIsXG5cdFwibmV2b2RcIjpcIk5ldm9kXCIsXG5cdFwibmdpbnhcIjpcIm5naW54XCIsXG5cdFwibmltXCI6XCJOaW1cIixcblx0XCJuaXhcIjpcIk5peFwiLFxuXHRcIm5zaXNcIjpcIk5TSVNcIixcblx0XCJvYmplY3RpdmVjXCI6XCJPYmplY3RpdmUtQ1wiLFxuXHRcIm9iamNcIjpcIk9iamVjdGl2ZS1DXCIsXG5cdFwib2NhbWxcIjpcIk9DYW1sXCIsXG5cdFwib2RpblwiOlwiT2RpblwiLFxuXHRcIm9wZW5jbFwiOlwiT3BlbkNMXCIsXG5cdFwib3BlbnFhc21cIjpcIk9wZW5RYXNtXCIsXG5cdFwicWFzbVwiOlwiT3BlblFhc21cIixcblx0XCJvelwiOlwiT3pcIixcblx0XCJwYXJpZ3BcIjpcIlBBUkkvR1BcIixcblx0XCJwYXJzZXJcIjpcIlBhcnNlclwiLFxuXHRcInBhc2NhbFwiOlwiUGFzY2FsXCIsXG5cdFwicGFzY2FsaWdvXCI6XCJQYXNjYWxpZ29cIixcblx0XCJwc2xcIjpcIlBBVFJPTCBTY3JpcHRpbmcgTGFuZ3VhZ2VcIixcblx0XCJwY2F4aXNcIjpcIlBDLUF4aXNcIixcblx0XCJweFwiOlwiUEMtQXhpc1wiLFxuXHRcInBlb3BsZWNvZGVcIjpcIlBlb3BsZUNvZGVcIixcblx0XCJwY29kZVwiOlwiUGVvcGxlQ29kZVwiLFxuXHRcInBlcmxcIjpcIlBlcmxcIixcblx0XCJwaHBcIjpcIlBIUFwiLFxuXHRcInBocGRvY1wiOlwiUEhQRG9jXCIsXG5cdFwicGhwLWV4dHJhc1wiOlwiUEhQIEV4dHJhc1wiLFxuXHRcInBsYW50LXVtbFwiOlwiUGxhbnRVTUxcIixcblx0XCJwbGFudHVtbFwiOlwiUGxhbnRVTUxcIixcblx0XCJwbHNxbFwiOlwiUEwvU1FMXCIsXG5cdFwicG93ZXJxdWVyeVwiOlwiUG93ZXJRdWVyeVwiLFxuXHRcInBxXCI6XCJQb3dlclF1ZXJ5XCIsXG5cdFwibXNjcmlwdFwiOlwiUG93ZXJRdWVyeVwiLFxuXHRcInBvd2Vyc2hlbGxcIjpcIlBvd2VyU2hlbGxcIixcblx0XCJwcm9jZXNzaW5nXCI6XCJQcm9jZXNzaW5nXCIsXG5cdFwicHJvbG9nXCI6XCJQcm9sb2dcIixcblx0XCJwcm9tcWxcIjpcIlByb21RTFwiLFxuXHRcInByb3BlcnRpZXNcIjpcIi5wcm9wZXJ0aWVzXCIsXG5cdFwicHJvdG9idWZcIjpcIlByb3RvY29sIEJ1ZmZlcnNcIixcblx0XCJwdWdcIjpcIlB1Z1wiLFxuXHRcInB1cHBldFwiOlwiUHVwcGV0XCIsXG5cdFwicHVyZVwiOlwiUHVyZVwiLFxuXHRcInB1cmViYXNpY1wiOlwiUHVyZUJhc2ljXCIsXG5cdFwicGJmYXNtXCI6XCJQdXJlQmFzaWNcIixcblx0XCJwdXJlc2NyaXB0XCI6XCJQdXJlU2NyaXB0XCIsXG5cdFwicHVyc1wiOlwiUHVyZVNjcmlwdFwiLFxuXHRcInB5dGhvblwiOlwiUHl0aG9uXCIsXG5cdFwicHlcIjpcIlB5dGhvblwiLFxuXHRcInFzaGFycFwiOlwiUSNcIixcblx0XCJxc1wiOlwiUSNcIixcblx0XCJxXCI6XCJRIChrZGIrIGRhdGFiYXNlKVwiLFxuXHRcInFtbFwiOlwiUU1MXCIsXG5cdFwicW9yZVwiOlwiUW9yZVwiLFxuXHRcInJcIjpcIlJcIixcblx0XCJyYWNrZXRcIjpcIlJhY2tldFwiLFxuXHRcInJrdFwiOlwiUmFja2V0XCIsXG5cdFwiY3NodG1sXCI6XCJSYXpvciBDI1wiLFxuXHRcImpzeFwiOlwiUmVhY3QgSlNYXCIsXG5cdFwidHN4XCI6XCJSZWFjdCBUU1hcIixcblx0XCJyZWFzb25cIjpcIlJlYXNvblwiLFxuXHRcInJlZ2V4XCI6XCJSZWdleFwiLFxuXHRcInJlZ29cIjpcIlJlZ29cIixcblx0XCJyZW5weVwiOlwiUmVuJ3B5XCIsXG5cdFwicnB5XCI6XCJSZW4ncHlcIixcblx0XCJyZXNjcmlwdFwiOlwiUmVTY3JpcHRcIixcblx0XCJyZXNcIjpcIlJlU2NyaXB0XCIsXG5cdFwicmVzdFwiOlwicmVTVCAocmVTdHJ1Y3R1cmVkVGV4dClcIixcblx0XCJyaXBcIjpcIlJpcFwiLFxuXHRcInJvYm9jb25mXCI6XCJSb2JvY29uZlwiLFxuXHRcInJvYm90ZnJhbWV3b3JrXCI6XCJSb2JvdCBGcmFtZXdvcmtcIixcblx0XCJyb2JvdFwiOlwiUm9ib3QgRnJhbWV3b3JrXCIsXG5cdFwicnVieVwiOlwiUnVieVwiLFxuXHRcInJiXCI6XCJSdWJ5XCIsXG5cdFwicnVzdFwiOlwiUnVzdFwiLFxuXHRcInNhc1wiOlwiU0FTXCIsXG5cdFwic2Fzc1wiOlwiU2FzcyAoU2FzcylcIixcblx0XCJzY3NzXCI6XCJTYXNzIChTQ1NTKVwiLFxuXHRcInNjYWxhXCI6XCJTY2FsYVwiLFxuXHRcInNjaGVtZVwiOlwiU2NoZW1lXCIsXG5cdFwic2hlbGwtc2Vzc2lvblwiOlwiU2hlbGwgc2Vzc2lvblwiLFxuXHRcInNoLXNlc3Npb25cIjpcIlNoZWxsIHNlc3Npb25cIixcblx0XCJzaGVsbHNlc3Npb25cIjpcIlNoZWxsIHNlc3Npb25cIixcblx0XCJzbWFsaVwiOlwiU21hbGlcIixcblx0XCJzbWFsbHRhbGtcIjpcIlNtYWxsdGFsa1wiLFxuXHRcInNtYXJ0eVwiOlwiU21hcnR5XCIsXG5cdFwic21sXCI6XCJTTUxcIixcblx0XCJzbWxualwiOlwiU01MXCIsXG5cdFwic29saWRpdHlcIjpcIlNvbGlkaXR5IChFdGhlcmV1bSlcIixcblx0XCJzb2xcIjpcIlNvbGlkaXR5IChFdGhlcmV1bSlcIixcblx0XCJzb2x1dGlvbi1maWxlXCI6XCJTb2x1dGlvbiBmaWxlXCIsXG5cdFwic2xuXCI6XCJTb2x1dGlvbiBmaWxlXCIsXG5cdFwic295XCI6XCJTb3kgKENsb3N1cmUgVGVtcGxhdGUpXCIsXG5cdFwic3BhcnFsXCI6XCJTUEFSUUxcIixcblx0XCJycVwiOlwiU1BBUlFMXCIsXG5cdFwic3BsdW5rLXNwbFwiOlwiU3BsdW5rIFNQTFwiLFxuXHRcInNxZlwiOlwiU1FGXCIsXG5cdFwic3FsXCI6XCJTUUxcIixcblx0XCJzcXVpcnJlbFwiOlwiU3F1aXJyZWxcIixcblx0XCJzdGFuXCI6XCJTdGFuXCIsXG5cdFwic3RhdGFcIjpcIlN0YXRhIEFkb1wiLFxuXHRcImllY3N0XCI6XCJTdHJ1Y3R1cmVkIFRleHQgKElFQyA2MTEzMS0zKVwiLFxuXHRcInN0eWx1c1wiOlwiU3R5bHVzXCIsXG5cdFwic3VwZXJjb2xsaWRlclwiOlwiU3VwZXJDb2xsaWRlclwiLFxuXHRcInNjbGFuZ1wiOlwiU3VwZXJDb2xsaWRlclwiLFxuXHRcInN3aWZ0XCI6XCJTd2lmdFwiLFxuXHRcInN5c3RlbWRcIjpcIlN5c3RlbWQgY29uZmlndXJhdGlvbiBmaWxlXCIsXG5cdFwidDQtdGVtcGxhdGluZ1wiOlwiVDQgdGVtcGxhdGluZ1wiLFxuXHRcInQ0LWNzXCI6XCJUNCBUZXh0IFRlbXBsYXRlcyAoQyMpXCIsXG5cdFwidDRcIjpcIlQ0IFRleHQgVGVtcGxhdGVzIChDIylcIixcblx0XCJ0NC12YlwiOlwiVDQgVGV4dCBUZW1wbGF0ZXMgKFZCKVwiLFxuXHRcInRhcFwiOlwiVEFQXCIsXG5cdFwidGNsXCI6XCJUY2xcIixcblx0XCJ0dDJcIjpcIlRlbXBsYXRlIFRvb2xraXQgMlwiLFxuXHRcInRleHRpbGVcIjpcIlRleHRpbGVcIixcblx0XCJ0b21sXCI6XCJUT01MXCIsXG5cdFwidHJlbW9yXCI6XCJUcmVtb3JcIixcblx0XCJ0cmlja2xlXCI6XCJUcmVtb3JcIixcblx0XCJ0cm95XCI6XCJUcmVtb3JcIixcblx0XCJ0dXJ0bGVcIjpcIlR1cnRsZVwiLFxuXHRcInRyaWdcIjpcIlR1cnRsZVwiLFxuXHRcInR3aWdcIjpcIlR3aWdcIixcblx0XCJ0eXBlc2NyaXB0XCI6XCJUeXBlU2NyaXB0XCIsXG5cdFwidHNcIjpcIlR5cGVTY3JpcHRcIixcblx0XCJ0eXBvc2NyaXB0XCI6XCJUeXBvU2NyaXB0XCIsXG5cdFwidHNjb25maWdcIjpcIlRTQ29uZmlnXCIsXG5cdFwidW5yZWFsc2NyaXB0XCI6XCJVbnJlYWxTY3JpcHRcIixcblx0XCJ1c2NyaXB0XCI6XCJVbnJlYWxTY3JpcHRcIixcblx0XCJ1Y1wiOlwiVW5yZWFsU2NyaXB0XCIsXG5cdFwidW9yYXpvclwiOlwiVU8gUmF6b3IgU2NyaXB0XCIsXG5cdFwidXJpXCI6XCJVUklcIixcblx0XCJ1cmxcIjpcIlVSSVwiLFxuXHRcInZcIjpcIlZcIixcblx0XCJ2YWxhXCI6XCJWYWxhXCIsXG5cdFwidmJuZXRcIjpcIlZCLk5ldFwiLFxuXHRcInZlbG9jaXR5XCI6XCJWZWxvY2l0eVwiLFxuXHRcInZlcmlsb2dcIjpcIlZlcmlsb2dcIixcblx0XCJ2aGRsXCI6XCJWSERMXCIsXG5cdFwidmltXCI6XCJ2aW1cIixcblx0XCJ2aXN1YWwtYmFzaWNcIjpcIlZpc3VhbCBCYXNpY1wiLFxuXHRcInZiXCI6XCJWaXN1YWwgQmFzaWNcIixcblx0XCJ3YXJwc2NyaXB0XCI6XCJXYXJwU2NyaXB0XCIsXG5cdFwid2FzbVwiOlwiV2ViQXNzZW1ibHlcIixcblx0XCJ3ZWItaWRsXCI6XCJXZWIgSURMXCIsXG5cdFwid2ViaWRsXCI6XCJXZWIgSURMXCIsXG5cdFwid2dzbFwiOlwiV0dTTFwiLFxuXHRcIndpa2lcIjpcIldpa2kgbWFya3VwXCIsXG5cdFwid29sZnJhbVwiOlwiV29sZnJhbSBsYW5ndWFnZVwiLFxuXHRcIm1hdGhlbWF0aWNhXCI6XCJXb2xmcmFtIGxhbmd1YWdlXCIsXG5cdFwibmJcIjpcIldvbGZyYW0gbGFuZ3VhZ2VcIixcblx0XCJ3bFwiOlwiV29sZnJhbSBsYW5ndWFnZVwiLFxuXHRcIndyZW5cIjpcIldyZW5cIixcblx0XCJ4ZW9yYVwiOlwiWGVvcmFcIixcblx0XCJ4ZW9yYWN1YmVcIjpcIlhlb3JhXCIsXG5cdFwieG1sLWRvY1wiOlwiWE1MIGRvYyAoLm5ldClcIixcblx0XCJ4b2pvXCI6XCJYb2pvIChSRUFMYmFzaWMpXCIsXG5cdFwieHF1ZXJ5XCI6XCJYUXVlcnlcIixcblx0XCJ5YW1sXCI6XCJZQU1MXCIsXG5cdFwieW1sXCI6XCJZQU1MXCIsXG5cdFwieWFuZ1wiOlwiWUFOR1wiLFxuXHRcInppZ1wiOlwiWmlnXCJcbn07XG5jb25zdCBNQU5VQUxfTEFOR1VBR0VTOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSA9IHsgLy8gTWFudWFsbHkgY3JlYXRlZCBsaXN0XG5cdFwiZmlzaFwiOlwiRmlzaFwiLFxuXHRcIm9jdGF2ZVwiOlwiT2N0YXZlXCIsXG5cdFwibWF4aW1hXCI6XCJNYXhpbWFcIixcblx0XCJteXNxbFwiOlwiU1FMXCIsXG5cdFwicG9zdGdyZXNxbFwiOlwiU1FMXCIsXG5cdFwicnNjcmlwdFwiOlwiUlwiLFxuXHRcInNoZWxsc2NyaXB0XCI6XCJTaGVsbFwiLFxuXHRcInNxbGl0ZVwiOlwiU1FMXCIsXG5cdFwienNoXCI6XCJac2hcIixcbn07XG5leHBvcnQgY29uc3QgTEFOR1VBR0VfTkFNRVM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0gey4uLlBSSVNNX0xBTkdVQUdFUywuLi5NQU5VQUxfUFJJU01fTEFOR1VBR0VTLC4uLk1BTlVBTF9MQU5HVUFHRVN9O1xuXG5leHBvcnQgY29uc3QgTEFOR1VBR0VTOiB7W2tleTogc3RyaW5nXTogTGFuZ3VhZ2V9ID0ge1xuXHRcIi5naXRpZ25vcmVcIjoge1xuXHRcdGNvbG91cjogXCIjZGQ0YzM1XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjkuNDcyLDE0Ljc1MywxNy4yNDcsMi41MjhhMS44LDEuOCwwLDAsMC0yLjU1LDBMMTIuMTU4LDUuMDY3bDMuMjIsMy4yMmEyLjE0MSwyLjE0MSwwLDAsMSwyLjcxMiwyLjczbDMuMSwzLjFhMi4xNDMsMi4xNDMsMCwxLDEtMS4yODUsMS4yMWwtMi44OTUtMi44OTV2Ny42MTdhMi4xNDEsMi4xNDEsMCwxLDEtMS43NjQtLjA2MlYxMi4zYTIuMTQ2LDIuMTQ2LDAsMCwxLTEuMTY1LTIuODE0TDEwLjkxMSw2LjMxNCwyLjUyOCwxNC43YTEuOCwxLjgsMCwwLDAsMCwyLjU1MUwxNC43NTMsMjkuNDcyYTEuOCwxLjgsMCwwLDAsMi41NSwwTDI5LjQ3MiwxNy4zYTEuOCwxLjgsMCwwLDAsMC0yLjU1MVxcXCIgc3R5bGU9XFxcImZpbGw6I2RkNGMzNVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi4xNTgsNS4wNjdsMy4yMiwzLjIyYTIuMTQxLDIuMTQxLDAsMCwxLDIuNzEyLDIuNzNsMy4xLDMuMWEyLjE0MywyLjE0MywwLDEsMS0xLjI4NSwxLjIxbC0yLjg5NS0yLjg5NXY3LjYxN2EyLjE0MSwyLjE0MSwwLDEsMS0xLjc2NC0uMDYyVjEyLjNhMi4xNDYsMi4xNDYsMCwwLDEtMS4xNjUtMi44MTRMMTAuOTExLDYuMzE0XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIjXCIsXG5cdFx0XSxcblx0fSxcblx0XCIuaGdpZ25vcmVcIjoge1xuXHRcdGNvbG91cjogXCIjYmZiZmJmXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjguMDQyLDIzLjE3MmM0Ljk4OS04LjMtMS4wNTQtMjEuNzUxLTEyLjEtMjAuMzg0QzUuOTU1LDQuMDIyLDUuNzk0LDE0LjUzLDE0LjU5MywxNy4wMjZjNy42MTQsMi4xNjIsMS41NzMsNi45OTIsMS43NDksMTAuMjA4czYuNjIsNC4zODIsMTEuNy00LjA2M1xcXCIgc3R5bGU9XFxcImZpbGw6IzFiMWIxYlxcXCIvPjxjaXJjbGUgY3g9XFxcIjkuNzg0XFxcIiBjeT1cXFwiMjQuMjU3XFxcIiByPVxcXCI0LjMzMlxcXCIgc3R5bGU9XFxcImZpbGw6IzFiMWIxYlxcXCIvPjxjaXJjbGUgY3g9XFxcIjQuODM1XFxcIiBjeT1cXFwiMTUuMDk5XFxcIiByPVxcXCIyLjgzNVxcXCIgc3R5bGU9XFxcImZpbGw6IzFiMWIxYlxcXCIvPjxwYXRoIGQ9XFxcIk0yOC4yMzEsMjIuODM1YzQuOTg5LTguMy0xLjA1NC0yMS43NTEtMTIuMS0yMC4zODRDNi4xNDQsMy42ODYsNS45ODMsMTQuMTk0LDE0Ljc4MSwxNi42OWM3LjYxNCwyLjE2MiwxLjU3Myw2Ljk5MiwxLjc0OSwxMC4yMDhzNi42Miw0LjM4MiwxMS43LTQuMDYzXFxcIiBzdHlsZT1cXFwiZmlsbDojYmZiZmJmXFxcIi8+PGNpcmNsZSBjeD1cXFwiOS45NzJcXFwiIGN5PVxcXCIyMy45MjFcXFwiIHI9XFxcIjQuMzMyXFxcIiBzdHlsZT1cXFwiZmlsbDojYmZiZmJmXFxcIi8+PGNpcmNsZSBjeD1cXFwiNS4wMjNcXFwiIGN5PVxcXCIxNC43NjJcXFwiIHI9XFxcIjIuODM1XFxcIiBzdHlsZT1cXFwiZmlsbDojYmZiZmJmXFxcIi8+PHBhdGggZD1cXFwiTTE3LjgxMSwyOC4xNjhhLjY2OS42NjksMCwwLDEsLjYzNS0uOTk0LDcsNywwLDAsMCwzLjctLjc0NmMzLjI0Ny0xLjg0MSw4LjI0NC0xMC43LDUuNzMxLTE2LjI4NUExMi43NywxMi43NywwLDAsMCwyNS4wNDksNS43Yy0uMjM2LS4yNDktLjEtLjIzNi4wNTktLjE1MmExMC4wOCwxMC4wOCwwLDAsMSwyLjg1NywzLjY3NiwxNC41NzgsMTQuNTc4LDAsMCwxLDEuMSwxMC4yNzljLS40OTQsMS44MTctMi4yLDUuOTI4LTQuNjkxLDcuNzA2cy01LjQyNCwyLjgtNi41NjMuOTU1TTE1LjU0OCwxNi42NzNjLTEuNy0uNS0zLjg5NC0xLjIwOC01LjE2My0yLjg2N0E4LjA4OCw4LjA4OCwwLDAsMSw4Ljg1NCwxMC40OWMtLjA0My0uMjctLjA4LS41LDAtLjU1OGEyMS44ODIsMjEuODgyLDAsMCwwLDEuNjg4LDIuNzIzLDYuNDg3LDYuNDg3LDAsMCwwLDMuNTI2LDIuMjU2LDEyLjM4MywxMi4zODMsMCwwLDEsMy44NjcsMS4zN2MuNzM5LjYyOS44LDEuOTg5LjU1MiwyLjE0MnMtLjc1OS0xLjEtMi45MzgtMS43NDltLTguMTU1LDEwLjRjMy4zNjksMy4xMjEsOC40MzktMS4xNjYsNi4yMDctNC45NTQtLjI1MS0uNDI1LS41NzYtLjc0OS0uNDY5LS40MjMuNzE0LDIuMTc4LjA1NCwzLjktMS4xNzYsNC43ODhhNC4wNjMsNC4wNjMsMCwwLDEtNC4xOTIuMzI4Yy0uMzktLjItLjU1MS4wOTItLjM3LjI2MW0tMy45My0xMC4xNmMuMDE4LjIuMjkyLjQ1OC43MjIuNTc2YTIuOTY5LDIuOTY5LDAsMCwwLDIuNTUtLjQxMywyLjc1OSwyLjc1OSwwLDAsMCwuODEtMy40NTJjLS4xNzItLjMwOC0uNC0uNTMzLS4yMTgtLjA0MUEyLjY4LDIuNjgsMCwwLDEsNi4xNDgsMTYuNTNhMi40MzksMi40MzksMCwwLDEtMi4xLjE2NGMtLjM5MS0uMTE5LS42LjAxNi0uNTguMjIzXFxcIi8+PHBhdGggZD1cXFwiTTE5LjA1NiwyOC40MDdjLS4wMzMuMzg5LjQxNC40NjYsMS4wMTYuMzc2YTYuNzU1LDYuNzU1LDAsMCwwLDIuMzEzLS42NDgsOS41NCw5LjU0LDAsMCwwLDMuMzE0LTIuNjNjMi42NjItMy40NzMsMy42LTcuNTgyLDMuNDYtOC4xNzNBMTYuMTcyLDE2LjE3MiwwLDAsMSwyNywyMi42OTJjLTEuODg4LDIuOTY4LTMuMjU2LDQuNTQ4LTYuNDEzLDUuMzE0LS44NzkuMjEzLTEuNDg1LS4xMTItMS41MjkuNG0tNy0xMy41QTcuOTY3LDcuOTY3LDAsMCwwLDE0LjYsMTYuMDg5YTEyLjIsMTIuMiwwLDAsMSwyLjk2LDEuMzFjLjM3OC4yNTMuNjE4LjgxOS42NDIuMzE3cy0uMjg1LS45MzQtLjk3Ni0xLjE2NGExNS4yNzQsMTUuMjc0LDAsMCwwLTIuMDA5LS42NzRjLS40ODUtLjEtMS4yNzMtLjI4NS0xLjk0OS0uNDkzLS4zNzEtLjExNC0uNzQ4LS4zMTMtMS4yMTQtLjQ4M00xMC4wMzcsMjcuNzE4Yy40MjktLjA5LDIuOTI0LS43MzYsMy41MS0yLjc4OC4xODMtLjY0LjIxNS0uNTExLjE2NC0uMTY1YTMuOCwzLjgsMCwwLDEtMy4zNTgsMy4xMjNjLS4yODkuMDMtLjY2OC0uMS0uMzE1LS4xN001LjA0NiwxNy4yYTcuOTkxLDcuOTkxLDAsMCwwLDEuMTk1LS4zMzYsMi4zODMsMi4zODMsMCwwLDAsMS4yMzItMS43NDFjLjA2NC0uNTA1LjA4My0uMzc4LjEwOS0uMWEyLjYyNywyLjYyNywwLDAsMS0yLjE0NywyLjMyNGMtLjIuMDI4LS41Ni4wMTEtLjM4OS0uMTQzXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTI3LjU0LDE3LjQ0NmMyLjEyNC02LjEyMy0yLjMyMS0xNS4zNy0xMS4zMTUtMTQuMjU4LTguMTI2LDEtOC4yNTcsOS41NTctMS4xLDExLjU5LDguMTEyLDEuMjI4LDMuMjI3LDcuMzQ3LDIuNTM1LDEwLjQzMy0uNjIxLDIuNzY2LDYuNTU1LDMuMjIxLDkuODc2LTcuNzY1TTcuMjE5LDI2LjJhMi4wMjgsMi4wMjgsMCwwLDEsMS4zMzIuNDQyLDMuNTI1LDMuNTI1LDAsMCwwLDMuNzU1LS45ODNBNC4xNTQsNC4xNTQsMCwwLDAsMTIuODY5LDIyYy0uODA2LTIuMzE5LTQuMjI5LTIuMjc4LTUuNzU4LS4zNTMtMS42NTQsMi4xNS0uNCw0LjUzOS4xMDgsNC41NDhNMi42NzYsMTUuNDUxYTEuMTY2LDEuMTY2LDAsMCwwLC45MDguODYzYy43MzEuMS44OC40MzQsMS43NDMuMjYzQTIuNDY0LDIuNDY0LDAsMCwwLDcuMSwxNC45MTZhMS43NzEsMS43NzEsMCwwLDAtLjgyNC0yLjE0LDIuNjg5LDIuNjg5LDAsMCwwLTMuMDQ3LjM2MywyLjI2MywyLjI2MywwLDAsMC0uNTU4LDIuMzEyXFxcIiBzdHlsZT1cXFwiZmlsbDojOTk5XFxcIi8+PHBhdGggZD1cXFwiTTIxLjk4MSwyMi4yMjhjLTIuMi0uMjcyLTUuMzYsNC42OS0yLjM3OCw0LjEwOWgwYTUuNjQ1LDUuNjQ1LDAsMCwwLDMuNjgzLTEuOTMyLDIzLjEzNiwyMy4xMzYsMCwwLDAsNC4wNTUtNy4yYy41LTEuODYxLjI1MS00Ljc0NS0uMjY5LTIuMDM2LS41MzMsMi43ODEtMi44OTMsNy4zMzYtNS4wOTEsNy4wNjRNMTAuNTIzLDI2LjM2MkEyLjc3OCwyLjc3OCwwLDAsMCwxMi41LDIyLjk5Yy0uMTY1LTEuMjc2LS44NjEsMS41ODQtMi4xNSwyLjAxMi0xLjk1My42NDgtMS43MzMsMS44NjEuMTc2LDEuMzYxbS00Ljk3OC0xMC4yYy42NjMtLjE3MywxLjU0LTEuMDc3LDEuMS0xLjc2Ny0uNTM3LS44NS0yLjAzMy0uMTIyLTIuMDg0LjgyNHMuMjc3LDEuMTI3Ljk3OS45NDNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmM2YzZjNcXFwiLz5cIixcblx0fSxcblx0XCIubnBtaWdub3JlXCI6IHtcblx0XHRjb2xvdXI6IFwiI2NiMzgzN1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTIsMTAuNTU1SDMwdjkuMzM1SDE2djEuNTU2SDkuNzc4VjE5Ljg4OUgyWm0xLjU1Niw3Ljc3OUg2LjY2N1YxMy42NjZIOC4yMjJ2NC42NjdIOS43NzhWMTIuMTExSDMuNTU2Wm03Ljc3OC02LjIyM3Y3Ljc3OWgzLjExMVYxOC4zMzRoMy4xMTFWMTIuMTExWm0zLjExMSwxLjU1NkgxNnYzLjExMkgxNC40NDRabTQuNjY3LTEuNTU2djYuMjIzaDMuMTExVjEzLjY2NmgxLjU1NnY0LjY2N2gxLjU1NlYxMy42NjZoMS41NTZ2NC42NjdoMS41NTZWMTIuMTExWlxcXCIgc3R5bGU9XFxcImZpbGw6I2NiMzgzN1xcXCIvPlwiLFxuXHR9LFxuXHRcIi5wcm9wZXJ0aWVzXCI6IHtcblx0XHRjb2xvdXI6IFwiIzk5YjhjNFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTIzLjI2NSwyNC4zODFsLjktLjg5NGM0LjE2NC4xMzYsNC4yMjgtLjAxLDQuNDExLS40MzhsMS4xNDQtMi43ODVMMjkuODA1LDIwbC0uMDkzLS4yMzFjLS4wNDktLjEyMi0uMi0uNDg2LTIuOC0yLjk2NVYxNS41YzMtMi44OSwyLjkzNi0zLjAzOCwyLjc2NS0zLjQ2MUwyOC41MzgsOS4yMjVjLS4xNzEtLjQyMi0uMjM2LS41ODctNC4zNy0uNDc0bC0uOS0uOTNhMjAuMTY2LDIwLjE2NiwwLDAsMC0uMTQxLTQuMTA2bC0uMTE2LS4yNjMtMi45NzQtMS4zYy0uNDM4LS4yLS41OTItLjI3Mi0zLjQsMi43ODZsLTEuMjYyLS4wMTljLTIuODkxLTMuMDg2LTMuMDI4LTMuMDMtMy40NjEtMi44NTVMOS4xNDksMy4xODJjLS40MzMuMTc1LS41ODYuMjM3LS40MTgsNC40MzdsLS44OTMuODljLTQuMTYyLS4xMzYtNC4yMjYuMDEyLTQuNDA3LjQzOEwyLjI4NSwxMS43MzMsMi4xOTUsMTJsLjA5NC4yMzJjLjA0OS4xMi4xOTQuNDgsMi44LDIuOTYybDAsMS4zYy0zLDIuODktMi45MzUsMy4wMzgtMi43NjMsMy40NjJsMS4xMzgsMi44MTdjLjE3NC40MzEuMjM2LjU4NCw0LjM2OS40NzZsLjkuOTM1YTIwLjI0MywyMC4yNDMsMCwwLDAsLjEzNyw0LjFsLjExNi4yNjUsMi45OTMsMS4zMDhjLjQzNS4xODIuNTg2LjI0NywzLjM4Ni0yLjhsMS4yNjIuMDE2YzIuODk1LDMuMDksMy4wNDMsMy4wMywzLjQ2NiwyLjg1OWwyLjc1OS0xLjExNUMyMy4yODgsMjguNjQ0LDIzLjQ0LDI4LjU4MywyMy4yNjUsMjQuMzgxWk0xMS40MDcsMTcuODU3YTQuOTU3LDQuOTU3LDAsMSwxLDYuNDg4LDIuODI0QTUuMDE0LDUuMDE0LDAsMCwxLDExLjQwNywxNy44NTdaXFxcIiBzdHlsZT1cXFwiZmlsbDojOTliOGM0XFxcIi8+XCIsXG5cdH0sXG5cdFwiNjUwMiBBc3NlbWJseVwiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMDAwYmZcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjgzNi42M1xcXCIgeTE9XFxcIjM2LjIwNVxcXCIgeDI9XFxcIjg0My44MDJcXFwiIHkyPVxcXCIxNC40OFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSg1MjUuOTIyIDMwLjI0OSkgcm90YXRlKDE4MCkgc2NhbGUoMC42MDcgMC42MDcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMC4yNzVcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2Fzc2VtYmx5PC90aXRsZT48cGF0aCBkPVxcXCJNMTYsMmMtMS4yNDYsMy4wNTYtMiw1LjA1Ny0zLjM5MSw4LjAyMkEyMS44ODQsMjEuODg0LDAsMCwwLDE2LjIsMTMuMTU2YTE0Ljg1OCwxNC44NTgsMCwwLDEtNC0yLjI4M0MxMC40MywxNC41NzksNy42NDYsMTkuODU1LDIsMzBjNS4xODYtMi45OTQsOS4wMTItNC42NDgsMTIuNjkxLTQuOTY2VjI0LjJoLS44MzR2LS44MzdoLjgzNFYyNC4yaDEuNjc1VjIyLjUyMUgxNC42OTF2LS44MzRoLS44MzRWMjAuMDEzaC44MzR2LS44MzRoMS42NzV2LjgzNEgxNy4ydi44MzdoLS44Mzd2LS44MzdIMTQuNjkxdjEuNjc1aDEuNjc1di44MzRIMTcuMlYyNC4yaC0uODM3di43ODNjMy45OC4xLDguMDA2LDEuNzcyLDEzLjYzNCw1LjAyMS0uODYzLTEuNTg5LTEuNjM2LTMuMDIxLTIuMzcyLTQuMzg1YTI1LjUyNiwyNS41MjYsMCwwLDAtNC44MzMtMy4zMzNBMTQuNDM2LDE0LjQzNiwwLDAsMSwyNi42NSwyMy44QzE5LjE3LDkuODcyLDE4LjU2NSw4LjAyLDE2LDJaTTEwLjUxMSwxOS4xNzloMS42NzF2LjgzNGguODM3djUuMDIxaC0uODM3VjIyLjUyMUgxMC41MTF2Mi41MTJIOS42NzNWMjAuMDEzaC44MzdabTAsLjgzNHYxLjY3NWgxLjY3MVYyMC4wMTNabTcuNTI2LS44MzRoLjgzN3YuODM0aC44Mzd2LjgzN2guODM0di0uODM3aC44Mzd2LS44MzRoLjgzN3Y1Ljg1NWgtLjgzN1YyMC44NWgtLjgzN3YuODM3aC0uODM0VjIwLjg1aC0uODM3djQuMTg0aC0uODM3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwMDBiZlxcXCIvPjxwYXRoIGQ9XFxcIk0yMy44ODEsMTguNjQyYy02LjA2OS04LjIzNy03LjQ3Ni0xNC44NzYtNy44MzItMTYuNDYxQTE3NS4yMTcsMTc1LjIxNywwLDAsMCwyMy44ODEsMTguNjQyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjtmaWxsLW9wYWNpdHk6MC4xNjU2ODA0NjgwODI0MjhcXFwiLz48cGF0aCBkPVxcXCJNMTYuMDUxLDIuMTIsMTUuNiwzLjIyN2MtLjE1OS4zOTEtLjMxMS43NjUtLjQ2MSwxLjEzMXMtLjMuNzI0LS40NDgsMS4wNzctLjMuNy0uNDQ4LDEuMDUzLS4zLjcwNi0uNDY1LDEuMDY2LS4zMjkuNzI5LS41MDYsMS4xMTEtLjM2Mi43NzgtLjU2MSwxLjE5M2MtLjAyOC4wNTctLjA2MS4xMjMtLjA4OS4xODFBMjEuODcyLDIxLjg3MiwwLDAsMCwxNi4yLDEzLjE1NmExNC44NzksMTQuODc5LDAsMCwxLTMuOTg5LTIuMjc2bC0uMTQuMjg3Yy0uMDY1LjEzMy0uMTQ0LjI4My0uMjEyLjQybC0uMTA2LjIxOWMtLjg3OCwxLjc5My0yLjAwNiwzLjk4NC0zLjUyNCw2LjgyMiwzLjU1MS0yLDcuMzgxLTQuODg3LDE0LjMzOC0yLjQtLjM0OS0uNjYxLS42Ny0xLjI4LS45NzEtMS44NjNzLS41ODEtMS4xMjgtLjg0MS0xLjY0NC0uNS0xLS43MjUtMS40NjMtLjQzMy0uOS0uNjI5LTEuMzEzLS4zOC0uODE4LS41NTQtMS4yLS4zMzktLjc1NC0uNS0xLjExOFMxOC4wNDcsNi45LDE3LjksNi41NDZzLS4yOTEtLjcwOS0uNDM0LTEuMDY2Yy0uMDM2LS4wOTEtLjA3My0uMTg2LS4xMDktLjI3N0MxNi45NDksNC4yNDcsMTYuNTM2LDMuMjU4LDE2LjA1MSwyLjEyWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPlwiLFxuXHR9LFxuXHRcIkFjdGlvblNjcmlwdFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNjNDE3MThcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yLDE1LjI4MWMxLjkxOCwwLDIuMTEtMS4wNTUsMi4xMS0xLjkxOGExNy4xMTksMTcuMTE5LDAsMCwwLS4xOTItMi4yMDUsMTguNzIzLDE4LjcyMywwLDAsMS0uMTkyLTIuMjA1YzAtMi40LDEuNjMtMy40NTIsMy44MzYtMy40NTJoLjU3NVY2LjkzOEg3LjY1OGMtMS41MzQsMC0yLjExLjc2Ny0yLjExLDIuMjA1YTE0LjQxMiwxNC40MTIsMCwwLDAsLjE5MiwxLjkxOCwxNC4zMDYsMTQuMzA2LDAsMCwxLC4xOTIsMi4wMTRjMCwxLjcyNi0uNjcxLDIuNDkzLTEuOTE4LDIuODc3di4xYzEuMTUxLjI4OCwxLjkxOCwxLjE1MSwxLjkxOCwyLjg3N2ExNC4zMDYsMTQuMzA2LDAsMCwxLS4xOTIsMi4wMTQsMTMsMTMsMCwwLDAtLjE5MiwxLjkxOGMwLDEuNDM4LjU3NSwyLjMsMi4xMSwyLjNoLjQ3OVYyNi42SDcuNTYyYy0yLjIwNSwwLTMuODM2LS45NTktMy44MzYtMy42NDRhMTguNzIzLDE4LjcyMywwLDAsMSwuMTkyLTIuMjA1LDE1LjY4LDE1LjY4LDAsMCwwLC4xOTItMi4xMWMwLS44NjMtLjI4OC0xLjkxOC0yLjExLTEuOTE4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2M0MTcxOFxcXCIvPjxwYXRoIGQ9XFxcIk05LjQ3OSwxOC4wNjIsOC4yMzMsMjEuOEg2LjZMMTAuNjMsOS45MTFoMS44MjJMMTYuNDc5LDIxLjhIMTQuOTQ1TDEzLjcsMTguMDYyWm0zLjkzMi0xLjE1MUwxMi4yNiwxMy40NTlhOS4zNjQsOS4zNjQsMCwwLDEtLjU3NS0yLjIwNWgwYy0uMTkyLjY3MS0uMzg0LDEuNDM4LS41NzUsMi4xMUw5Ljk1OSwxNi44MTVoMy40NTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzQxNzE4XFxcIi8+PHBhdGggZD1cXFwiTTE3LjkxOCwxOS45NzlhNS45NDEsNS45NDEsMCwwLDAsMi43ODEuNzY3YzEuNTM0LDAsMi40OTMtLjg2MywyLjQ5My0yLjAxNHMtLjY3MS0xLjcyNi0yLjIwNS0yLjRjLTEuOTE4LS42NzEtMy4xNjQtMS43MjYtMy4xNjQtMy4zNTYsMC0xLjgyMiwxLjUzNC0zLjI2LDMuODM2LTMuMjZhNS4xMzUsNS4xMzUsMCwwLDEsMi41ODkuNTc1bC0uMzg0LDEuMjQ3YTUuNTE5LDUuNTE5LDAsMCwwLTIuMy0uNDc5Yy0xLjYzLDAtMi4yMDUuOTU5LTIuMjA1LDEuODIyLDAsMS4xNTEuNzY3LDEuNjMsMi40LDIuMywyLjAxNC43NjcsMy4wNjgsMS43MjYsMy4wNjgsMy40NTIsMCwxLjgyMi0xLjM0MiwzLjQ1Mi00LjEyMywzLjQ1MmE1LjgwNyw1LjgwNywwLDAsMS0zLjA2OC0uNzY3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2M0MTcxOFxcXCIvPjxwYXRoIGQ9XFxcIk0zMCwxNi42MjNjLTEuOTE4LDAtMi4xMSwxLjE1MS0yLjExLDEuOTE4YTE1LjY4LDE1LjY4LDAsMCwwLC4xOTIsMi4xMSwxNS43MzgsMTUuNzM4LDAsMCwxLC4xOTIsMi4yMDVjMCwyLjY4NS0xLjYzLDMuNjQ0LTMuODM2LDMuNjQ0aC0uNTc1VjI1LjA2MmguNDc5YzEuNDM4LDAsMi4xMS0uODYzLDIuMTEtMi4zYTEzLDEzLDAsMCwwLS4xOTItMS45MTgsMTQuMzA2LDE0LjMwNiwwLDAsMS0uMTkyLTIuMDE0YzAtMS43MjYuNzY3LTIuNTg5LDEuOTE4LTIuODc3di0uMWMtMS4xNTEtLjI4OC0xLjkxOC0xLjE1MS0xLjkxOC0yLjg3N2ExNC4zMDYsMTQuMzA2LDAsMCwxLC4xOTItMi4wMTQsMTMsMTMsMCwwLDAsLjE5Mi0xLjkxOGMwLTEuNDM4LS41NzUtMi4yMDUtMi4xMS0yLjNoLS40NzlWNS40aC41NzVjMi4yMDUsMCwzLjgzNiwxLjA1NSwzLjgzNiwzLjQ1MmExNy4xMTksMTcuMTE5LDAsMCwxLS4xOTIsMi4yMDUsMTcuMTE5LDE3LjExOSwwLDAsMC0uMTkyLDIuMjA1YzAsLjk1OS4yODgsMS45MTgsMi4xMSwxLjkxOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjNDE3MThcXFwiLz5cIixcblx0fSxcblx0XCJBZGFcIjoge1xuXHRcdGNvbG91cjogXCIjMGYyM2MzXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjQuNTU0LDIwLjA3NWMuMjA5LjI3LDEuMzU2Ljk2MSwxLjM3LDEuMjQ2YTYuOTIxLDYuOTIxLDAsMCwwLTEuNC0uMzI0Yy0uNDY4LS4xNDItLjk1MS0uMjkzLTEuNDEyLS40OGE5LjIsOS4yLDAsMCwxLTIuMzc1LTEuM0EzLjE0NiwzLjE0NiwwLDAsMSwxOS4zLDE2Ljc1YTEuNzIyLDEuNzIyLDAsMCwxLDEuNzY3LTEuODIyLDMuNTg0LDMuNTg0LDAsMCwxLDEuNTkzLjMyMWMuMTQ2LjA2NiwxLjMxLjYwNiwxLjI1Ni44MDlhNS41LDUuNSwwLDAsMC0xLjQxLS4xMTJjLS42NDkuMjQ0LS40LjgyOC0uMTY4LDEuMzExYTcuODc3LDcuODc3LDAsMCwwLDEuMDc4LDEuNTU0QzIzLjU4LDE5LjAwNSwyNC4zLDIwLjA4MiwyNC41NTQsMjAuMDc1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzBmMjNjM1xcXCIvPjxwYXRoIGQ9XFxcIk0yNC4xNDEsMTYuMjc2Yy4xMjgtLjU5LjgxOS0xLjM4NCwxLjM0NC0uNzczYTQuMiw0LjIsMCwwLDEsLjU3OCwxLjkxOGMuMTIuNjU2LjIsMS4zMjcuMjYxLDEuOTgyLjAzOC4zNzkuMzQsMS43OTQuMTIzLDIuMDc1YTIzLjI0LDIzLjI0LDAsMCwxLTIuOTIyLTIuODM4LDMuNzYzLDMuNzYzLDAsMCwxLS45MjUtMS43QzIyLjUsMTUuODY3LDIzLjQ3OSwxNi4yMSwyNC4xNDEsMTYuMjc2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMTk3OFxcXCIvPjxwYXRoIGQ9XFxcIk0yNi4zLDE3Ljc4MWMuMTQxLS43MzItLjQwNi0yLjU5Mi0xLjA2Ny0yLjk0OWEuMDYuMDYsMCwwLDAsLjA0NC0uMDA3Yy0uMTU2LS40NDQtMS4zNTksMS4xMTYtMS4yMjgsMS4xNzQtLjMxNi0uMTM4Ljc3NC0xLjk4NC45ODgtMi4xNi43LS41NzgsMS4zNzItLjA4NiwxLjg0NS41NDNhNi4wMzYsNi4wMzYsMCwwLDEsLjczMyw0LjQzNCw0LjUsNC41LDAsMCwxLS40MjEsMS4zMTJjLS4xLjIyLS40NSwxLjEtLjY4MiwxLjE3NEExNC43NTQsMTQuNzU0LDAsMCwwLDI2LjMsMTcuNzgxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzBmMjNjM1xcXCIvPjxwYXRoIGQ9XFxcIk0zLjY4Nyw4LjRjLjE3OS0uMTg4LS4wNDEtMS41MjcuMzI0LTEuNTQ4LjI2Mi0uMDE1LjU1MywxLjc0MS42MjcsMS45NjhhOS4yLDkuMiwwLDAsMCwxLjEyNywyLjMyOSw3LjUyOSw3LjUyOSwwLDAsMCw0LjAxNiwyLjk3OCw0LjU1LDQuNTUsMCwwLDAsMi4zNjYuMmMuOTMxLS4yMDgsMS44Mi0uNTc3LDIuNzU3LS43NjUsMS4zNS0uMjcsMy4zNDItLjM1Miw0LjQzOC42NDcuNy42NDEuMzc2Ljc2LjA0MywxLjQyMWEyLjQ0NSwyLjQ0NSwwLDAsMCwuMTc4LDIuNTYyYy4yMzUuMzQyLDEuMDMzLjgyNy42NzUsMS4wOTQtLjU2Ny40MjQtMS4yNzctLjQ1Mi0xLjYzNi0uNzc2LTEuNC0xLjI2NC0yLjcxMS0xLjMxMy00LjQ5Mi0xLjA3NGE4Ljk4Nyw4Ljk4NywwLDAsMS00Ljg4My0uNzA4QTkuNDY5LDkuNDY5LDAsMCwxLDMuNjg3LDguNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTkuOTQxLDMwYTMuNjE1LDMuNjE1LDAsMCwxLTIuMzI1LS44MTdjLjQ2OS0uMDkyLDEuMDIxLjAyNSwxLjUwOC0uMDQ0YTkuNyw5LjcsMCwwLDAsMS43NTQtLjQzQTEwLjUzNywxMC41MzcsMCwwLDAsMjMuOSwyNy4xNTVhNi41NSw2LjU1LDAsMCwwLDIuNzU3LTUuMjE0Yy4xNDktLjA4OC4zMTYsMS4wMzQuMzE5LDEuMDkxYTUuNzg5LDUuNzg5LDAsMCwxLS4xOSwxLjcyNyw2Ljg2Nyw2Ljg2NywwLDAsMS0xLjQyMywyLjc3NEE3LjI4Niw3LjI4NiwwLDAsMSwxOS45NDEsMzBaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTE4Ljk2MiwxOS4xMDlhNS43Niw1Ljc2LDAsMCwxLTIuMDUuODU5LDEzLjM4LDEzLjM4LDAsMCwxLTIuMjI0LjU0OSw4Ljg2MSw4Ljg2MSwwLDAsMS00LjQzNS0uNTEsOS45MzksOS45MzksMCwwLDEtMy44NDktMi40QzYuMDUyLDE3LjI0LDQuMywxNS4xOSw0Ljg1NiwxNC41NTdjLjI0OC0uMjgyLjg3NS44NDYsMSwuOTkyYTUsNSwwLDAsMCwxLjM1NywxLjExLDEwLjkxNywxMC45MTcsMCwwLDAsNC4wMzUsMS40NTYsNi42OTMsNi42OTMsMCwwLDAsMi4zNC0uMDk0LDEyLjc0MywxMi43NDMsMCwwLDEsMS42OTQtLjQ4NSw0LDQsMCwwLDEsMi4xMTMuNDU3QzE3LjczOSwxOC4xNjMsMTguOTE4LDE4LjczNiwxOC45NjIsMTkuMTA5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0yOC4zMTMsMTUuMDc4YTE5LjI3NywxOS4yNzcsMCwwLDEtLjQ1MywzLjc3NGMtLjE3Ni0uMjQyLjAxNi0xLjQ3LDAtMS43OTJhNi4wMzIsNi4wMzIsMCwwLDAtLjM4NC0yLjA4N0E0LjkyNSw0LjkyNSwwLDAsMCwyNi4xLDEzLjMxMmExNC43MjgsMTQuNzI4LDAsMCwxLTEuMjctMS41MzZjLTEuODM3LTIuMzgyLTMuMjQ1LTUuMjExLTIuOS04LjMuMDM0LS4zMDguMDY5LTEuNDQ4LjQxMS0xLjQ0NS4xNTIsMCwuMjY2LDEuNTYxLjI5LDEuNzE4YTEyLjUyNywxMi41MjcsMCwwLDAsMS4yMjQsNC4xMTZjLjY3LDEuMjIyLDEuOTQ3LDIuMDIzLDIuODI1LDMuMUE2LjU3OSw2LjU3OSwwLDAsMSwyOC4zMTMsMTUuMDc4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0xNS43LDI2LjkzNWExMC44NDUsMTAuODQ1LDAsMCwwLDYuNDM2LS42ODcsNi45NDEsNi45NDEsMCwwLDAsNC4yNzgtNC40MThjLjMxOS4yLS4wNDgsMS41MjktLjEyOCwxLjc4MWE1LjcyNiw1LjcyNiwwLDAsMS0xLjAxLDEuODEzLDguOTMzLDguOTMzLDAsMCwxLTMuMjU3LDIuNTE0QzIwLjMxNiwyOC43MSwxNi4zNTcsMjkuNTksMTUuNywyNi45MzVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTE5LjE1MSwxOS4zNzZjLjM2NywyLjEwNy0yLjk1NywzLjEyNC00LjQ3OCwzLjIxMy0xLjg1OS4xMS00LjkyOS0uMjkyLTYuMDYtMi4wMzEtLjY3My0xLjAzNS43ODEtLjA5LDEuMTg4LjA1OGE4LjY2Myw4LjY2MywwLDAsMCwzLjA2LjUsMTEuNiwxMS42LDAsMCwwLDMuMzA1LS41LDEzLjcyNSwxMy43MjUsMCwwLDAsMS41MzMtLjU3NkMxOCwxOS45MDgsMTguODIzLDE5LjM0OSwxOS4xNTEsMTkuMzc2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0yNC4xNDIsMjMuNDZjLjQtLjk0NS0xLjg4My0xLjU3OC0yLjQ0NS0xLjg1OGE0Ljg1Nyw0Ljg1NywwLDAsMS0xLjMxNS0uODY3Yy0uMTgxLS4xODEtLjg3Mi0uOTItLjgwNy0xLjIxOWE0LjkxMiw0LjkxMiwwLDAsMSwxLjA4Ny0uMTc1LDUuOTMsNS45MywwLDAsMSwuODU1LjU4OCwxMC4zMjMsMTAuMzIzLDAsMCwwLC45NjQuNUExNS42MTUsMTUuNjE1LDAsMCwwLDI0LjYsMjEuMmMuMzA4LjA5LDEuNTQ5LjIwOCwxLjcyNy40MjhDMjYuMjg3LDIxLjkyNCwyNC4zNTcsMjMuNjQ5LDI0LjE0MiwyMy40NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMjYuMSwyMi4xNzJjLjI2NS40My0xLjA4LDEuODMxLTEuMzYzLDIuMTA1YTkuMzQsOS4zNCwwLDAsMS0yLjU2NiwxLjcyOCw3Ljc0OCw3Ljc0OCwwLDAsMS0yLjU2Ljc1M2MtLjY3OS4wNTgtMS45NjYtLjEyNC0yLjE0MS0uOTc5YTYuOTUxLDYuOTUxLDAsMCwxLDEuMTc3LS4wODZjLjQ2Mi0uMDU5LjkyMS0uMTQ5LDEuMzc2LS4yNDZhMTMuMDY1LDEzLjA2NSwwLDAsMCwyLjE4NC0uNjQ1LDExLjUwNiwxMS41MDYsMCwwLDAsMi4wODQtMS4xMSwxMC44NzIsMTAuODcyLDAsMCwwLDEuMDc4LS44MjJDMjUuNDc0LDIyLjc4MSwyNS45ODYsMjIuMTY4LDI2LjEsMjIuMTcyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0xOC43NTgsMTEuOTY1Yy0uMS0xLjMwOCwyLjYxMi0xLjMsMy4yNzEtMS4wOTJhNS45NzYsNS45NzYsMCwwLDEsMi45ODIsMi40NzVjLTEuMDgyLjgtMi40NDkuMDk0LTMuMy0uNjU0YTQuMzI0LDQuMzI0LDAsMCwwLTEuNDgxLTEuMDI5QzE5LjQyMSwxMS40LDE5LjQxMiwxMS43NTksMTguNzU4LDExLjk2NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMjUuNzgzLDEzLjM0MWMtLjQ0NC0uMDI5LS4zMTYuMDcxLS42NDctLjIxMi0uMzU4LS4zMDctLjYxNC0uNzk1LS45NDUtMS4xNDEtLjUzNC0uNTU4LTEuMjQyLS44OTUtMS43MjMtMS40ODVhNy4yNjksNy4yNjksMCwwLDEtMS42MjQtNC44NDhjLjAxOC0xLjQ4OS40MDcuMTg3LjU1MS42NzVhMTIuMjc2LDEyLjI3NiwwLDAsMCwxLjEyNiwyLjcwOCw0Ni4wNTUsNDYuMDU1LDAsMCwwLDMuNCw0LjMyMUMyNS44ODIsMTMuMzYxLDI1LjgyNCwxMy4zMzgsMjUuNzgzLDEzLjM0MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMjAuMDY4LDE0Ljc1NmMuMDMzLS42MjUtLjkxMS0uNzkyLTEuMjExLTEuNDItLjE2NC0uMzQzLS4yMTEtLjU2OS4wMjktLjcuMDgyLS4wNDUuMzgzLjAxMi41LS4wMi4yNzEtLjA3Ni4zMzUtLjI3My41ODEtLjRBMS4xOTMsMS4xOTMsMCwwLDEsMjEuNiwxMy4yMzcsMS44MjEsMS44MjEsMCwwLDEsMjAuMDY4LDE0Ljc1NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMjAuNSwxNC43NDVhMS45MzEsMS45MzEsMCwwLDAsMS4zMjMtMS43Yy41MjQuMTM5LjkyOC42NTgsMS41MjEuNzcxYTIuNTg0LDIuNTg0LDAsMCwwLDEuMDI5LS4wMTdjLjIwNy0uMDQ1LjU0LS4yNzQuNzIxLS4yNTktLjAzMy4xNjMtLjQ2NC41NDYtLjU2NS43MTdhNC4yNDIsNC4yNDIsMCwwLDAtLjM4OC45Yy0uMjI5Ljc0MS0uMDYxLjczOS0uNzA5LjMxMWE0LjI4NCw0LjI4NCwwLDAsMC0xLjk1Ny0uNzJDMjEuMjA5LDE0LjcyMiwyMC41OTQsMTQuNzY3LDIwLjUsMTQuNzQ1WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0xOS45MDUsMjAuNzM0YTIuMDA4LDIuMDA4LDAsMCwxLTEuNCwxLjcxMmMtLjIwNS4wOTEtMi4wMTguNzMzLTIuMDMyLjM0OC0uMDA3LS4yLDEuNjI0LS45NTQsMS44MDktMS4xMWEzLjM1NSwzLjM1NSwwLDAsMCwuODY3LTEuMDcxYy4wNTUtLjExMi4yMzItLjkyNS4yNzEtLjk0M0MxOS42NDQsMTkuNTY0LDE5LjkwOCwyMC42LDE5LjkwNSwyMC43MzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTExLjM3MywxMi41MzJhMTAuNjI1LDEwLjYyNSwwLDAsMSwzLjcxLS45MTQsMTAuMjgyLDEwLjI4MiwwLDAsMSwxLjg2NS4wMjRjLjM2Ni4wMzksMS40NjkuMDU0LDEuNzQuMzQzYS4yNTUuMjU1LDAsMCwxLS4yNzMuMTczYy0uMDM3LjA3Ny4yNTEuMzcxLjMuNDI1LS4wMzQuMDM0LTEuNDQ1LS40LTEuNTcyLS40MjRhMTAuNjMyLDEwLjYzMiwwLDAsMC0yLjI4Mi0uMTM0LDE2LDE2LDAsMCwwLTEuODQxLjE5NEE2LjIyNCw2LjIyNCwwLDAsMSwxMS4zNzMsMTIuNTMyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0yMi41MTIsMTAuNzMxYTEuODg4LDEuODg4LDAsMCwxLTEuNTE3LS42Yy0uMjQ3LS4zNDktLjczNy0xLjY5Mi0uMzg1LTIuMDIxLjIwOS0uMi4zODQuNjYyLjQ4NC44NDZBMTAuODIyLDEwLjgyMiwwLDAsMCwyMi41MTIsMTAuNzMxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0yNy43ODgsMTkuMmExOS4yMTIsMTkuMjEyLDAsMCwxLS43NDksMy4zMTNjLS4xNzMtLjA3Ny0uMjc1LS43NzgtLjU2Mi0uOTVhNC4wNyw0LjA3LDAsMCwwLC43Ni0xLjE1NEMyNy4zODksMjAuMTA3LDI3LjU0LDE5LjM2MywyNy43ODgsMTkuMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTkuOTgxLDExLjg0M2MtLjEzMi4yNjgtLjkzMiwxLjEtMS4xMTguNDgxQzE4Ljc1NiwxMS45NjgsMTkuNzM5LDExLjQ4MywxOS45ODEsMTEuODQzWm0tLjc0Ny40NWMuMjI4LjAwNi4wMTItLjI0OC4wMTItLjI2NkMxOS4yNDUsMTEuOTg0LDE4Ljg3OCwxMi4yOTMsMTkuMjM0LDEyLjI5M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIi0tXCIsXG5cdFx0XSxcblx0fSxcblx0XCJBTFwiOiB7XG5cdFx0Y29sb3VyOiBcIiMyZWE5OGVcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xMS42MTYsNy45ODZBMS41NTksMS41NTksMCwwLDAsMTAuMTYsN0gxMC4xYTEuNTU4LDEuNTU4LDAsMCwwLTEuNDU2Ljk4NkwyLDI1SDUuODA2bDEuMDE1LTIuODM0aDYuNjIxTDE0LjQ1NywyNWgzLjhaTTcuOTQ0LDE4Ljk1NmwyLjE4OC02LjExMSwyLjE4OCw2LjExNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyZWE5OGVcXFwiLz48cGF0aCBkPVxcXCJNMjMuODI5LDIxLjY3MVY3LjEyOUgyMC4zVjIyLjc0N0EyLjM0NiwyLjM0NiwwLDAsMCwyMi41NywyNUgzMFYyMS42NzJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMmVhOThlXFxcIi8+XCIsXG5cdH0sXG5cdFwiQU5UTFI0XCI6IHtcblx0XHRjb2xvdXI6IFwiI2U0NGEzMlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE0LjE3Nyw3LjI3OGEyLjA4LDIuMDgsMCwwLDEsMy4wNDEtLjhBMy41NzEsMy41NzEsMCwwLDEsMTguMiw4LjAyMmMxLjM1NiwzLjEyMiwyLjksNi4xNjUsNC4xMTksOS4zNDUuNjQ1LDEuNSwxLjQyOSwyLjkzOCwxLjk5NCw0LjQ2OGExLjQ1NSwxLjQ1NSwwLDAsMS0yLjI1OCwxLjM3NmMtMi44LTEuNTcyLTUuNjI4LTMuMDk0LTguMzg1LTQuNzMxLDIuMDA5LjAwOCw0LjAxOC0uMDA4LDYuMDI1LjAxM2ExOS43MDcsMTkuNzA3LDAsMCwwLTEuMjg4LTIuOTE4Yy0uNzgxLTEuODU4LTEuNi0zLjctMi4zNTgtNS41NjVhOS43ODMsOS43ODMsMCwwLDAtMS4wMzIsMi4xMjVjLTEuMywzLjE4Mi0yLjg3LDYuMjQxLTQuMTM2LDkuNDM1LS4yODEuNTktLjQyNCwxLjM0NC0xLjAzNSwxLjY5YTEuNDQ3LDEuNDQ3LDAsMCwxLTIuMDk0LS43MzhjLS4yNDEtLjYxLjE1MS0xLjIuMzgyLTEuNzQzLjc3OS0xLjcyNSwxLjY0NS0zLjQxMywyLjI4My01LjJDMTEuNjUsMTIuOCwxMi45MTYsMTAuMDQxLDE0LjE3Nyw3LjI3OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZWZlZmVcXFwiLz48cGF0aCBkPVxcXCJNMTMuODE3LDIuMkExMy45MjMsMTMuOTIzLDAsMCwxLDI5LjUyNiwxMi41NDlhMTMuNzMzLDEzLjczMywwLDAsMS0yLjA4MiwxMS41MTlBMTQuMDc0LDE0LjA3NCwwLDAsMSw3LjczOCwyNy4yOTNhMTMuODUyLDEzLjg1MiwwLDAsMS01LjYxNS05LjQ4M0ExNC4xNTIsMTQuMTUyLDAsMCwxLDMuNDUxLDkuODUsMTMuOTYxLDEzLjk2MSwwLDAsMSwxMy44MTcsMi4ybS4zNTksNS4wOGMtMS4yNjEsMi43NjItMi41MjYsNS41MjUtMy43NjIsOC4zLS42MzgsMS43ODYtMS41LDMuNDczLTIuMjgzLDUuMi0uMjMxLjU0Mi0uNjIzLDEuMTMzLS4zODIsMS43NDNhMS40NDcsMS40NDcsMCwwLDAsMi4wOTQuNzM4Yy42MS0uMzQ3Ljc1My0xLjEsMS4wMzUtMS42OSwxLjI2Ni0zLjE5NCwyLjgzMy02LjI1Myw0LjEzNi05LjQzNWE5Ljc4Myw5Ljc4MywwLDAsMSwxLjAzMi0yLjEyNWMuNzU2LDEuODY4LDEuNTc3LDMuNzA3LDIuMzU4LDUuNTY1YTE5LjcwNywxOS43MDcsMCwwLDEsMS4yODgsMi45MThjLTIuMDA3LS4wMi00LjAxNi0uMDA1LTYuMDI1LS4wMTMsMi43NTcsMS42MzcsNS41ODgsMy4xNTksOC4zODUsNC43MzFhMS40NTUsMS40NTUsMCwwLDAsMi4yNTgtMS4zNzZjLS41NjUtMS41MjktMS4zNDktMi45NzEtMS45OTQtNC40NjgtMS4yMi0zLjE3OS0yLjc2Mi02LjIyMy00LjExOS05LjM0NWEzLjU3MSwzLjU3MSwwLDAsMC0uOTgyLTEuNTQ0QTIuMDgsMi4wOCwwLDAsMCwxNC4xNzcsNy4yNzhaXFxcIiBzdHlsZT1cXFwiZmlsbDojZTQ0YTMyXFxcIi8+XCIsXG5cdH0sXG5cdFwiQXBhY2hlIENvbmZpZ3VyYXRpb25cIjoge1xuXHRcdGNvbG91cjogXCIjYzkyMDM3XCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItNTYwMi42ODJcXFwiIHkxPVxcXCI3NjguNTQxXFxcIiB4Mj1cXFwiLTU1OTguNzI3XFxcIiB5Mj1cXFwiNzYzLjkxN1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLjQyMywgLTAuOTA2LCAtMC45MDYsIC0wLjQyMywgMzA4Mi44NTMsIC00NzQ4LjU1MSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmNjk5MjNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzEyXFxcIiBzdG9wLWNvbG9yPVxcXCIjZjc5YTIzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjgzOFxcXCIgc3RvcC1jb2xvcj1cXFwiI2U5NzgyNlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiLTU2MzEuOTUyXFxcIiB5MT1cXFwiNzY5LjA1MlxcXCIgeDI9XFxcIi01NjAzLjczN1xcXCIgeTI9XFxcIjc2OS4wNTJcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMC40MjMsIC0wLjkwNiwgLTAuOTA2LCAtMC40MjMsIDMwODIuODUzLCAtNDc0OC41NTEpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwLjMyM1xcXCIgc3RvcC1jb2xvcj1cXFwiIzllMjA2NFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42M1xcXCIgc3RvcC1jb2xvcj1cXFwiI2M5MjAzN1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43NTFcXFwiIHN0b3AtY29sb3I9XFxcIiNjZDIzMzVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNlOTc4MjZcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIi01NjI4LjU0NlxcXCIgeTE9XFxcIjc2Ni4yMjFcXFwiIHgyPVxcXCItNTYxMS43MzNcXFwiIHkyPVxcXCI3NjYuMjIxXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDAuNDIzLCAtMC45MDYsIC0wLjkwNiwgLTAuNDIzLCAzMDgyLjg1MywgLTQ3NDguNTUxKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzI4MjY2MlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4wOTVcXFwiIHN0b3AtY29sb3I9XFxcIiM2NjJlOGRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzg4XFxcIiBzdG9wLWNvbG9yPVxcXCIjOWYyMDY0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk0OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2NkMjAzMlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJkXFxcIiB4MT1cXFwiLTU2MzAuMzY3XFxcIiB5MT1cXFwiNzY5LjMxNlxcXCIgeDI9XFxcIi01NjAyLjE1MlxcXCIgeTI9XFxcIjc2OS4zMTZcXFwiIHhsaW5rOmhyZWY9XFxcIiNiXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJlXFxcIiB4MT1cXFwiLTU2MjguMzFcXFwiIHkxPVxcXCI3NjguOTMzXFxcIiB4Mj1cXFwiLTU2MTMuNDgyXFxcIiB5Mj1cXFwiNzY4LjkzM1xcXCIgeGxpbms6aHJlZj1cXFwiI2NcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImZcXFwiIHgxPVxcXCItNTYzMC4zNjdcXFwiIHkxPVxcXCI3NjYuMzk0XFxcIiB4Mj1cXFwiLTU2MDIuMTUyXFxcIiB5Mj1cXFwiNzY2LjM5NFxcXCIgeGxpbms6aHJlZj1cXFwiI2JcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImdcXFwiIHgxPVxcXCItNTYzMi4xMThcXFwiIHkxPVxcXCI3NjYuNTM5XFxcIiB4Mj1cXFwiLTU2MDMuOTAyXFxcIiB5Mj1cXFwiNzY2LjUzOVxcXCIgeGxpbms6aHJlZj1cXFwiI2JcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImhcXFwiIHgxPVxcXCItNTYzMC4zNjdcXFwiIHkxPVxcXCI3NjUuNTI2XFxcIiB4Mj1cXFwiLTU2MDIuMTUyXFxcIiB5Mj1cXFwiNzY1LjUyNlxcXCIgeGxpbms6aHJlZj1cXFwiI2JcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImlcXFwiIHgxPVxcXCItNTYzMC4zNjdcXFwiIHkxPVxcXCI3NjUuNjI1XFxcIiB4Mj1cXFwiLTU2MDIuMTUyXFxcIiB5Mj1cXFwiNzY1LjYyNVxcXCIgeGxpbms6aHJlZj1cXFwiI2JcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImpcXFwiIHgxPVxcXCItNTYxNC41MTZcXFwiIHkxPVxcXCI3NjUuNjQ1XFxcIiB4Mj1cXFwiLTU2MDguMjhcXFwiIHkyPVxcXCI3NjUuNjQ1XFxcIiB4bGluazpocmVmPVxcXCIjYlxcXCIvPjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2FwYWNoZTwvdGl0bGU+PHBhdGggZD1cXFwiTTE5Ljk5MywyLjEzM2ExMC4yNjcsMTAuMjY3LDAsMCwwLTIuMDQsMi4wNTZsLjgsMS41MWExOS43MzMsMTkuNzMzLDAsMCwxLDEuNzA4LTIuMTQ0Yy4wNDQtLjA0OS4wNjgtLjA3Mi4wNjgtLjA3MmwtLjA2OC4wNzJhMTcuODY1LDE3Ljg2NSwwLDAsMC0xLjYsMi4xNzQsMzAuMSwzMC4xLDAsMCwwLDMuMTExLS4zODUsMy4yODgsMy4yODgsMCwwLDAtLjMtMi41UzIwLjksMS42LDE5Ljk5MywyLjEzM1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMTguNjM4LDEwLjc0OWwuMDE4LDAtLjExNS4wMTMtLjAyMS4wMDlaXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lXFxcIi8+PHBhdGggZD1cXFwiTTE3LjgyMSwxMy40NTVjLS4wNjYuMDE1LS4xMzIuMDI2LS4yLjAzNkMxNy42ODksMTMuNDgxLDE3Ljc1NiwxMy40NjksMTcuODIxLDEzLjQ1NVpcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmVcXFwiLz48cGF0aCBkPVxcXCJNMTIuMjcsMTkuNTI0Yy4wMDktLjAyMy4wMTctLjA0NS4wMjUtLjA2OHEuMjY0LS43LjUyMy0xLjM1Ny4yOTEtLjc0MS41NzUtMS40MzYuMy0uNzMzLjU5LTEuNDE4LjMwNS0uNzE4LjYtMS4zODQuMjQtLjU0Mi40NzQtMS4wNDkuMDc4LS4xNjkuMTU1LS4zMzUuMTUzLS4zMjkuMy0uNjQ1LjEzOC0uMjkxLjI3NC0uNTdjLjAzLS4wNjIuMDYtLjEyMy4wOS0uMTg1bC4wMTUtLjAzLS4xLjAxMS0uMDc4LS4xNTRjLS4wMDcuMDE1LS4wMTUuMDMtLjAyMy4wNDVxLS4yMTEuNDE4LS40MTcuODQ1LS4xMTkuMjQ2LS4yMzguNDk1LS4zMjguNjg5LS42NDUsMS4zODlUMTMuNzY2LDE1LjFxLS4zLjctLjU5NCwxLjR0LS41NjcsMS4zODdxLS4yODkuNzItLjU2MiwxLjQyNi0uMDYyLjE1OS0uMTIzLjMxOC0uMjE5LjU2OS0uNDI2LDEuMTI0bC4xMjMuMjQzLjExLS4wMTIuMDEyLS4wMzNRMTIuMDA4LDIwLjIxNiwxMi4yNywxOS41MjRaXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lXFxcIi8+PHBhdGggZD1cXFwiTTE3LjU3LDEzLjVaXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lXFxcIi8+PHBhdGggZD1cXFwiTTE3LjMwNSwxNC44MThsLS4zMTUuMDU1aDBsLjE2MS0uMDI1QzE3LjIsMTQuODM5LDE3LjI1MywxNC44MjksMTcuMzA1LDE0LjgxOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZTIwMmVcXFwiLz48cGF0aCBkPVxcXCJNMTcuMzA1LDE0LjgxOGwtLjMxNS4wNTVoMGwuMTYxLS4wMjVDMTcuMiwxNC44MzksMTcuMjUzLDE0LjgyOSwxNy4zMDUsMTQuODE4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2JlMjAyZTtvcGFjaXR5OjAuMzQ5OTk5OTk0MDM5NTM1NTtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy41NzMsMTMuNWgwbC4wNS0uMDA3Yy4wNjgtLjAxLjEzNS0uMDIyLjItLjAzNmwtLjI0OC4wNDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmUyMDJlXFxcIi8+PHBhdGggZD1cXFwiTTE3LjU3MywxMy41aDBsLjA1LS4wMDdjLjA2OC0uMDEuMTM1LS4wMjIuMi0uMDM2bC0uMjQ4LjA0MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZTIwMmU7b3BhY2l0eTowLjM0OTk5OTk5NDAzOTUzNTU7aXNvbGF0aW9uOmlzb2xhdGVcXFwiLz48cGF0aCBkPVxcXCJNMTYuMzk0LDkuNnEuMzY1LS42ODIuNzM5LTEuMzMyLjM4OC0uNjc0Ljc4NC0xLjMwNWwuMDQ2LS4wNzVxLjM5Mi0uNjIuNzktMS4xOTFsLS44LTEuNTEtLjE4Mi4yMjVjLS4yMzEuMjg4LS40Ny42LS43MTYuOTI1LS4yNzcuMzctLjU2Mi43NjQtLjg1MSwxLjE3OS0uMjY3LjM4My0uNTM4Ljc4NC0uODA5LDEuMi0uMjMxLjM1My0uNDYyLjcxNy0uNjkyLDEuMDlsLS4wMjYuMDQyTDE1LjcxOCwxMC45UTE2LjA1MiwxMC4yNDQsMTYuMzk0LDkuNlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMTEuNjUxLDIxLjE5MnEtLjIwNy41NjgtLjQxNSwxLjE1OWwtLjAwNi4wMTctLjA1OS4xNjdjLS4wOTMuMjY2LS4xNzUuNS0uMzYxLDEuMDQ5YTIuMTA3LDIuMTA3LDAsMCwxLC43ODYuOTI2LDEuNjgsMS42OCwwLDAsMC0uNTQ0LTEuMTU0LDMuNjIxLDMuNjIxLDAsMCwwLDMuNDg5LTEuNDIsMi43OTEsMi43OTEsMCwwLDAsLjE2NS0uMzEzLDEuNDUxLDEuNDUxLDAsMCwxLTEuNC41MTNsMCwwLDAsMGE0LjA1OSw0LjA1OSwwLDAsMCwyLjA0Ni0xLjY3MmMuMTExLS4xNzguMjE4LS4zNzIuMzI4LS41ODdhMy4zLDMuMywwLDAsMS0zLjEwOSwxLjAxbC0uODQyLjA5MkMxMS43LDIxLjA1LDExLjY3NywyMS4xMjEsMTEuNjUxLDIxLjE5MlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYylcXFwiLz48cGF0aCBkPVxcXCJNMTIuMDQ0LDE5LjMwNnEuMjczLS43MDYuNTYyLTEuNDI2LjI3Ni0uNjkuNTY3LTEuMzg3dC41OTQtMS40cS4zMDgtLjcxMS42MjktMS40MTl0LjY0NS0xLjM4OXEuMTE4LS4yNDguMjM4LS40OTUuMjA3LS40MjYuNDE3LS44NDVjLjAwNy0uMDE1LjAxNS0uMDMuMDIzLS4wNDVMMTQuNjc3LDguODQ3bC0uMDUxLjA4M2MtLjI0Mi40LS40ODQuOC0uNzIxLDEuMjE2cy0uNDc1Ljg0NC0uNywxLjI3NnEtLjI5MS41NDctLjU2OCwxLjFsLS4xMS4yMjVjLS4yMjcuNDY3LS40MzIuOTE4LS42MTcsMS4zNTJxLS4zMTUuNzM3LS41NTYsMS40MDZjLS4xMDcuMjkzLS4yLjU3Ni0uMjkyLjg0Ny0uMDczLjIzMi0uMTQyLjQ2NC0uMjA4LjdxLS4yMzQuODE4LS40LDEuNjMxTDExLjUsMjAuNzQ4cS4yMDgtLjU1NC40MjYtMS4xMjRaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2QpXFxcIi8+PHBhdGggZD1cXFwiTTEwLjQzNSwxOC43NTVhMTYuMDcsMTYuMDcsMCwwLDAtLjI3MiwxLjk3NGMwLC4wMjMsMCwuMDQ2LS4wMDUuMDY5YTQuMTUsNC4xNSwwLDAsMC0xLjItMS4wMjksNS44MjUsNS44MjUsMCwwLDEsMS4xNzIsMi42OTMsMi42NDIsMi42NDIsMCwwLDEtMS4zMjUtLjIyNiwyLjY2MiwyLjY2MiwwLDAsMCwxLjEzLjY4NiwzLjI0NywzLjI0NywwLDAsMC0xLjU3MS43ODMsMy4zNTksMy4zNTksMCwwLDEsMS44NjEtLjM0MkM5LjUxLDI1LjM4OSw4Ljc5MywyNy42MjYsOC4wNzYsMzBhLjYyNS42MjUsMCwwLDAsLjQyNS0uNDEzYy4xMjgtLjQzLjk3Ni0zLjI1MSwyLjMwNi02Ljk1OWwuMTE1LS4zMTguMDMyLS4wODlxLjIxMS0uNTgzLjQzNy0xLjE5bC4xLS4yNzcsMC0uMDA1TDEwLjQ1LDE4LjY4NEMxMC40NDUsMTguNzA3LDEwLjQzOSwxOC43MzEsMTAuNDM1LDE4Ljc1NVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZSlcXFwiLz48cGF0aCBkPVxcXCJNMTUuODgsMTEuMDc4bC0uMDkuMTg1cS0uMTM1LjI3OS0uMjc0LjU3LS4xNS4zMTUtLjMuNjQ1Yy0uMDUyLjExMS0uMS4yMjItLjE1NS4zMzVxLS4yMzQuNTA4LS40NzQsMS4wNDktLjMuNjY2LS42LDEuMzg0LS4yOTEuNjg1LS41OSwxLjQxOC0uMjg0LjctLjU3NSwxLjQzNi0uMjU5LjY2MS0uNTIzLDEuMzU3Yy0uMDA5LjAyMy0uMDE3LjA0NS0uMDI1LjA2OHEtLjI2Mi42OTMtLjUyOSwxLjQyMmwtLjAxMi4wMzMuODQyLS4wOTItLjA1LS4wMDlhNiw2LDAsMCwwLDMuMjEtMS44MDcsNy45ODQsNy45ODQsMCwwLDAsMS4xLTEuNTI0LDEzLjEzOSwxMy4xMzksMCwwLDAsLjcwNi0xLjQ2N2MuMTk1LS40NzIuMzgyLS45ODIuNTYyLTEuNTM2YTMuMDUzLDMuMDUzLDAsMCwxLS43ODguMjc0Yy0uMDUxLjAxMS0uMS4wMjEtLjE1Ni4wM3MtLjEwNy4wMTgtLjE2MS4wMjVoMGEzLjY2OCwzLjY2OCwwLDAsMCwxLjk2Mi0xLjkxMywzLjM0NCwzLjM0NCwwLDAsMS0xLjEzLjQ5NWMtLjA2Ni4wMTUtLjEzMi4wMjYtLjIuMDM2bC0uMDUuMDA3aDBhMy44MjEsMy44MjEsMCwwLDAsLjgzOS0uNDY5Yy4wNTEtLjAzOC4xLS4wNzguMTQ4LS4xMi4wNzMtLjA2My4xNDItLjEyOS4yMDgtLjIuMDQyLS4wNDQuMDgzLS4wOS4xMjMtLjEzOGEzLjI3LDMuMjcsMCwwLDAsLjI2My0uMzYyYy4wMjUtLjA0LjA1LS4wOC4wNzQtLjEyMi4wMzEtLjA2LjA2MS0uMTE5LjA5LS4xNzguMTMxLS4yNjQuMjM2LS41LjMxOS0uNzA2LjA0Mi0uMS4wNzgtLjIuMTA5LS4yODguMDEzLS4wMzUuMDI1LS4wNy4wMzYtLjEuMDMzLS4xLjA2LS4xODcuMDgxLS4yNjVhMi42MDUsMi42MDUsMCwwLDAsLjA2Mi0uMjc1aDBhMS4wMSwxLjAxLDAsMCwxLS4xMDkuMDc1LDMuOTY1LDMuOTY1LDAsMCwxLTEuMTYyLjRsLjc3My0uMDg1LS43NzMuMDg1LS4wMTgsMC0uMTE5LjAxOS4wMjEtLjAwOS0yLjY0NS4yOVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZilcXFwiLz48cGF0aCBkPVxcXCJNMTguODU4LDUuNzNjLS4yMzUuMzYxLS40OTIuNzcxLS43NjgsMS4yMzZsLS4wNDQuMDc0cS0uMzU4LjYtLjc1OSwxLjMyNy0uMzQ2LjYyNi0uNzE5LDEuMzQ3LS4zMjYuNjI5LS42NzIsMS4zMzZsMi42NDUtLjI5QTMuMjE2LDMuMjE2LDAsMCwwLDE5Ljk5LDkuNjJjLjA4OS0uMTI4LjE3OC0uMjYyLjI2Ny0uNC4yNzItLjQyNC41MzgtLjg5MS43NzYtMS4zNTVhMTQuMDc0LDE0LjA3NCwwLDAsMCwuNTg4LTEuMjk0LDYuOCw2LjgsMCwwLDAsLjIzMy0uN2MuMDQ4LS4xODQuMDg2LS4zNTguMTE1LS41MjRBMzAuMTUyLDMwLjE1MiwwLDAsMSwxOC44NTgsNS43M1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZylcXFwiLz48cGF0aCBkPVxcXCJNMTcuMTQ5LDE0Ljg0OGMtLjA1My4wMDktLjEwNy4wMTgtLjE2MS4wMjVoMEMxNy4wNDIsMTQuODY2LDE3LjEsMTQuODU3LDE3LjE0OSwxNC44NDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmUyMDJlXFxcIi8+PHBhdGggZD1cXFwiTTE3LjE0OSwxNC44NDhjLS4wNTMuMDA5LS4xMDcuMDE4LS4xNjEuMDI1aDBDMTcuMDQyLDE0Ljg2NiwxNy4xLDE0Ljg1NywxNy4xNDksMTQuODQ4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2JlMjAyZTtvcGFjaXR5OjAuMzQ5OTk5OTk0MDM5NTM1NTtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy4xNDksMTQuODQ4Yy0uMDUzLjAwOS0uMTA3LjAxOC0uMTYxLjAyNWgwQzE3LjA0MiwxNC44NjYsMTcuMSwxNC44NTcsMTcuMTQ5LDE0Ljg0OFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaClcXFwiLz48cGF0aCBkPVxcXCJNMTcuNTcsMTMuNWwuMDUtLjAwNy0uMDUuMDA3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2JlMjAyZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy41NywxMy41bC4wNS0uMDA3LS4wNS4wMDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmUyMDJlO29wYWNpdHk6MC4zNDk5OTk5OTQwMzk1MzU1O2lzb2xhdGlvbjppc29sYXRlXFxcIi8+PHBhdGggZD1cXFwiTTE3LjU3LDEzLjVsLjA1LS4wMDctLjA1LjAwN1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaSlcXFwiLz48cGF0aCBkPVxcXCJNMTcuNTcyLDEzLjVoMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZTIwMmVcXFwiLz48cGF0aCBkPVxcXCJNMTcuNTcyLDEzLjVoMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZTIwMmU7b3BhY2l0eTowLjM0OTk5OTk5NDAzOTUzNTU7aXNvbGF0aW9uOmlzb2xhdGVcXFwiLz48cGF0aCBkPVxcXCJNMTcuNTcyLDEzLjVoMFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjailcXFwiLz5cIixcblx0fSxcblx0XCJBcGV4XCI6IHtcblx0XHRjb2xvdXI6IFwiIzBmOWJkN1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTEzLjY1Miw4LjMzOEE0LjkwNiw0LjkwNiwwLDAsMSwxNy4yLDYuODE0YTQuOTU3LDQuOTU3LDAsMCwxLDQuMzIsMi41Niw1Ljk3Miw1Ljk3MiwwLDAsMSwyLjQ0Mi0uNTE5LDYuMDg5LDYuMDg5LDAsMSwxLTEuMTg5LDEyLjA2LDQuNDEyLDQuNDEyLDAsMCwxLTUuNzgyLDEuODE2QTUuMDM0LDUuMDM0LDAsMCwxLDcuNjM0LDIyLjVhNC42NDYsNC42NDYsMCwwLDEtLjk2LjEsNC43MzIsNC43MzIsMCwwLDEtMi4zMzctOC44MTIsNS40MzgsNS40MzgsMCwwLDEsOS4zMTUtNS40NTNcXFwiIHN0eWxlPVxcXCJmaWxsOiMwZjliZDdcXFwiLz48cGF0aCBkPVxcXCJNMjUuMzc2LDMwLjk2NmgtLjU2MWE0LjY1OCw0LjY1OCwwLDAsMS0xLjI4NC0uMTM3LDEuOSwxLjksMCwwLDEtLjgxOC0uNDgyLDEuNzI2LDEuNzI2LDAsMCwxLS40NTUtLjg0Myw2Ljc3LDYuNzcsMCwwLDEtLjEwNi0xLjQxMyw1Ljg4OSw1Ljg4OSwwLDAsMC0uMDg0LTEuMzMsMSwxLDAsMCwwLS4zLS41NDQsMS4yMjMsMS4yMjMsMCwwLDAtLjY2LS4xNzlsLS4yMzYtLjAxNFYyNC4xNDVsLjIzNi0uMDE0YTEuNDgyLDEuNDgyLDAsMCwwLC41NDktLjEuNzA2LjcwNiwwLDAsMCwuMjczLS4yNjQsMS4zOTQsMS4zOTQsMCwwLDAsLjE4MS0uNTI5LDYuNjgzLDYuNjgzLDAsMCwwLC4wNDQtLjkzOSw4LjEzMiw4LjEzMiwwLDAsMSwuMTEyLTEuNjQzLDEuNywxLjcsMCwwLDEsLjQ0OC0uODQxLDIuMTQ0LDIuMTQ0LDAsMCwxLC45MDYtLjQ5Miw0LjUxNCw0LjUxNCwwLDAsMSwxLjItLjExNmguNTYxdjEuOWgtLjI1YTIuNTg5LDIuNTg5LDAsMCwwLS43NDMuMDU2LjI4NC4yODQsMCwwLDAtLjE0OC4xMTcuODM5LjgzOSwwLDAsMC0uMDU0LjM4NnEwLC4zNzItLjA1MywxLjQxM2EzLjc0LDMuNzQsMCwwLDEtLjE2NiwxLjAwOSwxLjk0NSwxLjk0NSwwLDAsMS0uNjkzLDEsMi4wMSwyLjAxLDAsMCwxLC43LDEuMDQ0LDQuNjI3LDQuNjI3LDAsMCwxLC4xNjMsMS4wNzljLjAyNy42NTcuMDQxLDEuMDc0LjA0MSwxLjI1NmEuODcxLjg3MSwwLDAsMCwuMDU3LjQwOEEuMzQzLjM0MywwLDAsMCwyNC40LDI5YTIuMzgyLDIuMzgyLDAsMCwwLC43MjguMDZoLjI1WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0yMS4xMTgsMjUuNzg4VjI0LjM4MmExLjc1MiwxLjc1MiwwLDAsMCwuNjQ1LS4xMjkuOTM2LjkzNiwwLDAsMCwuMzc1LS4zNTQsMS42MjEsMS42MjEsMCwwLDAsLjIxNy0uNjI0QTYuODgsNi44OCwwLDAsMCwyMi40LDIyLjNhOCw4LDAsMCwxLC4xMDUtMS41ODUsMS40NTYsMS40NTYsMCwwLDEsLjM4MS0uNzIxLDEuOSwxLjksMCwwLDEsLjgtLjQzMSw0LjMzNiw0LjMzNiwwLDAsMSwxLjEyNS0uMTA1aC4zMTF2MS40YTIuODc2LDIuODc2LDAsMCwwLS44MzUuMDczLjUzLjUzLDAsMCwwLS4yNzIuMjIzLDEuMDc5LDEuMDc5LDAsMCwwLS4wODguNTEzcTAsLjM2OS0uMDUzLDEuNGEzLjUzMSwzLjUzMSwwLDAsMS0uMTUyLjk0LDEuOTE4LDEuOTE4LDAsMCwxLS4zMTMuNTk1LDIuNDcsMi40NywwLDAsMS0uNTgzLjQ4NiwyLjA0NSwyLjA0NSwwLDAsMSwuNTY1LjQ2NiwxLjg2OSwxLjg2OSwwLDAsMSwuMzM3LjY0Nyw0LjQxLDQuNDEsMCwwLDEsLjE1MiwxLjAycS4wNDEuOTczLjA0MSwxLjI0MmExLjEsMS4xLDAsMCwwLC4wOTQuNTM5LjU4NC41ODQsMCwwLDAsLjI4NC4yMzEsMi42NDksMi42NDksMCwwLDAsLjgyMy4wNzl2MS40MDZoLS4zMTFBNC40NzQsNC40NzQsMCwwLDEsMjMuNiwzMC41OWExLjY0NCwxLjY0NCwwLDAsMS0uNzEyLS40MTksMS40NzgsMS40NzgsMCwwLDEtLjM5LS43MjQsNi42MjEsNi42MjEsMCwwLDEtLjEtMS4zNTYsNi4zNzQsNi4zNzQsMCwwLDAtLjA5NC0xLjQsMS4yMzIsMS4yMzIsMCwwLDAtLjM5LS42NzFBMS40MzEsMS40MzEsMCwwLDAsMjEuMTE4LDI1Ljc4OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDcyYTBcXFwiLz48cGF0aCBkPVxcXCJNMjcuMDExLDMwLjk2NkgyNi40NVYyOS4wNTloLjI1QTIuMzI5LDIuMzI5LDAsMCwwLDI3LjQyNiwyOWEuMzIzLjMyMywwLDAsMCwuMTY1LS4xMjcuODEyLjgxMiwwLDAsMCwuMDU4LS4zNzlxMC0uMzYuMDUtMS4zNzVhMy43MjUsMy43MjUsMCwwLDEsLjE3My0xLjA0NywyLjIyMywyLjIyMywwLDAsMSwuMzg3LS43LDIuMTQ1LDIuMTQ1LDAsMCwxLC4zLS4yOTIsMi4xNDEsMi4xNDEsMCwwLDEtLjQtLjQsMi42MTIsMi42MTIsMCwwLDEtLjQyMS0xLjA5MiwxNy41MjUsMTcuNTI1LDAsMCwxLS4xLTEuODQxLDEuMzU3LDEuMzU3LDAsMCwwLS4wNTMtLjQ3OWMtLjAwOC0uMDE2LS4wMzEtLjA2Mi0uMTM2LS4xMDZhMi41MjQsMi41MjQsMCwwLDAtLjc1Ny0uMDZoLS4yNVYxOS4yaC41NjFhNC43OTMsNC43OTMsMCwwLDEsMS4yODMuMTMzLDEuODQxLDEuODQxLDAsMCwxLC44MTguNDg1LDEuNzgxLDEuNzgxLDAsMCwxLC40NTMuODQzLDYuNiw2LjYsMCwwLDEsLjEwOSwxLjQxNCw2LjM1OSw2LjM1OSwwLDAsMCwuMDc5LDEuMzM2Ljk5Mi45OTIsMCwwLDAsLjMuNTM3LDEuMjI2LDEuMjI2LDAsMCwwLC42NjQuMThsLjIzNi4wMTR2MS44NzlsLS4yMzYuMDE0YTEuNDgyLDEuNDgyLDAsMCwwLS41NDkuMS42ODYuNjg2LDAsMCwwLS4yNy4yNjIsMS40ODQsMS40ODQsMCwwLDAtLjE4Ni41MzQsNi43NDMsNi43NDMsMCwwLDAtLjA0My45MzEsOC4zODMsOC4zODMsMCwwLDEtLjEwOCwxLjY0NCwxLjY5NCwxLjY5NCwwLDAsMS0uNDQ2Ljg0NiwyLjE0MywyLjE0MywwLDAsMS0uOTEzLjQ5MkE0LjUsNC41LDAsMCwxLDI3LjAxMSwzMC45NjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTMwLjcwOCwyNS43ODhhMS43NTIsMS43NTIsMCwwLDAtLjY0NS4xMjkuOTE4LjkxOCwwLDAsMC0uMzcyLjM1NCwxLjcyNSwxLjcyNSwwLDAsMC0uMjIuNjI0LDYuODIsNi44MiwwLDAsMC0uMDQ3Ljk3Myw4LjI3LDguMjcsMCwwLDEtLjEsMS41ODgsMS40MzksMS40MzksMCwwLDEtLjM3OC43MjQsMS45LDEuOSwwLDAsMS0uODA5LjQzMSw0LjMzNiw0LjMzNiwwLDAsMS0xLjEyNS4xMDVIMjYuN1YyOS4zMWEyLjY1MiwyLjY1MiwwLDAsMCwuODItLjA3OUEuNTcyLjU3MiwwLDAsMCwyNy44LDI5LDEuMDUsMS4wNSwwLDAsMCwyNy45LDI4LjVxMC0uMzU3LjA1LTEuMzY1YTMuNTMsMy41MywwLDAsMSwuMTU4LS45NzYsMS45NzYsMS45NzYsMCwwLDEsLjM0My0uNjIxQTIuMDM4LDIuMDM4LDAsMCwxLDI5LDI1LjA4NWEyLjQxNiwyLjQxNiwwLDAsMS0uNjMzLS41NTEsMi4zMzksMi4zMzksMCwwLDEtLjM3NS0uOTg0LDE3LjU2NCwxNy41NjQsMCwwLDEtLjA5NC0xLjgsMS41NzEsMS41NzEsMCwwLDAtLjA3OS0uNTg2LjQ4Ny40ODcsMCwwLDAtLjI2NC0uMjI2LDIuOCwyLjgsMCwwLDAtLjg1My0uMDc5di0xLjRoLjMxMWE0LjU3Niw0LjU3NiwwLDAsMSwxLjIxMy4xMjMsMS41ODcsMS41ODcsMCwwLDEsLjcwOS40MTksMS41MjksMS41MjksMCwwLDEsLjM5LjcyNyw2LjQzNiw2LjQzNiwwLDAsMSwuMSwxLjM1Niw2Ljg0Miw2Ljg0MiwwLDAsMCwuMDg4LDEuNCwxLjIyMywxLjIyMywwLDAsMCwuMzkzLjY3MSwxLjQ0NywxLjQ0NywwLDAsMCwuOC4yMzFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA3MmEwXFxcIi8+XCIsXG5cdH0sXG5cdFwiQVBMXCI6IHtcblx0XHRjb2xvdXI6IFwiI2QyZDJkMlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTMwLDI4LjI3NSwxNiwyLDIsMjguMjc1SDE0LjE2MlYzMGgzLjY3NlYyOC4yNzVaTTE3LjgzOCwyNC44MjZWMTMuMTYxbDYuMjE1LDExLjY2NVptLTkuODkxLDAsNi4yMTUtMTEuNjY1VjI0LjgyNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIlx1MjM1RFwiLFxuXHRcdF0sXG5cdH0sXG5cdFwiQXBwbGVTY3JpcHRcIjoge1xuXHRcdGNvbG91cjogXCIjYThjMmFiXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTcuMTgxLDQuNDM3QTUuOTkzLDUuOTkzLDAsMCwxLDIxLjU3OSwyYTUuOTc5LDUuOTc5LDAsMCwxLTEuNDQ3LDQuNDc2LDQuNzI5LDQuNzI5LDAsMCwxLTQuMTcsMS45NjFBNS4yLDUuMiwwLDAsMSwxNy4xODEsNC40MzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojYThjMmFiXFxcIi8+PHBhdGggZD1cXFwiTTE2LjIsMTAuMDM0Yy45NDYsMCwyLjctMS4zLDQuOTg5LTEuM2E2LjI0OSw2LjI0OSwwLDAsMSw1LjQ4NCwyLjgsNi4wOCw2LjA4LDAsMCwwLTMuMDI4LDUuMyw2LjIzNSw2LjIzNSwwLDAsMCwzLjc3Miw1LjdzLTIuNjM3LDcuNDIyLTYuMiw3LjQyMmMtMS42MzYsMC0yLjkwOC0xLjEtNC42MzEtMS4xLTEuNzU3LDAtMy41LDEuMTQ0LTQuNjM1LDEuMTQ0QzguNywzMCw0LjU4NywyMi45NTksNC41ODcsMTcuM2MwLTUuNTY4LDMuNDc4LTguNDg5LDYuNzQtOC40ODlDMTMuNDQ4LDguODExLDE1LjA5MywxMC4wMzQsMTYuMiwxMC4wMzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojYThjMmFiXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCItLVwiLFxuXHRcdFx0XCIjXCIsXG5cdFx0XSxcblx0fSxcblx0XCJBcmR1aW5vXCI6IHtcblx0XHRjb2xvdXI6IFwiIzJkOTA5NFwiLFxuXHRcdGljb246IFwiPGRlZnM+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJhXFxcIiBjeD1cXFwiNzY3LjE3OVxcXCIgY3k9XFxcIjUxNjkuNTQzXFxcIiByPVxcXCIxNC45ODlcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTcxOC4xMTIgLTQ5NTMuOTE3KSBzY2FsZSgwLjk1NSAwLjk2MilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMzNmJhYzBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMyZDkwOTRcXFwiLz48L3JhZGlhbEdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2FyZHVpbm88L3RpdGxlPjxwYXRoIGQ9XFxcIk0yOS42NDUsMTUuOTI1QTEzLjc3LDEzLjc3LDAsMSwxLDE1Ljg3NiwyLjA1NiwxMy44MTksMTMuODE5LDAsMCwxLDI5LjY0NSwxNS45MjVaXFxcIiBzdHlsZT1cXFwic3Ryb2tlOiMwMjc5N2U7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS13aWR0aDoxLjEzNjcyMjg0NTQ5NjkyNjdweDtmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMTAuNTgxLDExLjY0OGMyLjQxLS4wNzYsMy4zNTkuODM0LDQuNjA1LDIuMDY5LjI4NS4yODIuNTc5LjU5LjkuOTIxbC45MjItLjk5MWE2LjIyMyw2LjIyMywwLDAsMSwzLjI1Ni0xLjkzYzEuOTM5LS4yMTEsMy4xMTktLjEyMiw0LjMxMS44MTRhNS4wMjMsNS4wMjMsMCwwLDEsMi4yNDUsMy45LDUuNjUzLDUuNjUzLDAsMCwxLTMuMjUsNS4xNTYsNS45NzUsNS45NzUsMCwwLDEtMy45MTMuMTM1LDcuNjU2LDcuNjU2LDAsMCwxLTMuNTQxLTIuOTg3Yy0xLjY3OCwyLjE0Mi0zLjE4NywzLjI1My01LjIzNSwzLjE1NS03LjQ1Mi0uMzU0LTYuODQyLTEwLjA3NS0uMy0xMC4yNDdabTEuNjU3LDcuOTk0YTkuMTkzLDkuMTkzLDAsMCwwLDIuODU2LTIuOWMtLjc0LTEuMjQzLTIuMjA5LTIuODI0LTMuNDU1LTMuMTM0YTQuMzI4LDQuMzI4LDAsMCwwLTMuMjI0Ljc3NywzLjM4NCwzLjM4NCwwLDAsMC0uNzYyLDMuNjg2LDMuNjc0LDMuNjc0LDAsMCwwLDQuNTg1LDEuNTdabS0yLjk4LTMuNDg3LDMuMjc4LjAwNXYxLjIxbC0zLjI4My4wMDVabTEzLjQ0OCwzLjZBMy44NDMsMy44NDMsMCwwLDAsMjQuOTM3LDE3YTMuNDU4LDMuNDU4LDAsMCwwLTEuODYzLTMuMTA5LDMuNjQ4LDMuNjQ4LDAsMCwwLTQuMi43MjgsNy4zNjQsNy4zNjQsMCwwLDAtMS42NDksMi4xNTFBOC45MzYsOC45MzYsMCwwLDAsMTkuMiwxOS4yNTIsNC4wMjIsNC4wMjIsMCwwLDAsMjIuNzA2LDE5Ljc1NFptLTEuOTU1LTIuMzc2LTEuMDg4LS4wMDgsMC0xLjIxNywxLjA5MSwwVjE1LjA3NWwxLjEwNy0uMDA4LS4wMDcsMS4wOTMsMS4wODUsMHYxLjE2NWwtMS4wMjEtLjAwOHYxLjEySDIwLjc1M1pcXFwiIHN0eWxlPVxcXCJzdHJva2U6IzAwMDtzdHJva2Utd2lkdGg6MC4xMjEwMzA5NjQ4MDkyNzQ4MnB4O29wYWNpdHk6MC4xNjgwOTk5OTk0Mjc3OTU0O2lzb2xhdGlvbjppc29sYXRlXFxcIi8+PHBhdGggZD1cXFwiTTQuOTE3LDE2LjMzN2MwLDUuMzQ4LDcuMzU0LDcuMzQsMTAuOTg3LDEuODk0LDMuNzY1LDUuNjQ3LDEwLjgyNCwzLjI4LDEwLjgyNC0xLjlTMTkuNyw4LjY1NiwxNS45LDE0LjQ0MWMtMy42LTUuNzE5LTEwLjk4Ny0zLjQ1My0xMC45ODcsMS45Wm0xLjkzMSwwYzAtMy44Niw1LjQ1NS01LjA3OCw3Ljk5MiwwLTIuNTg4LDQuODg5LTcuOTkyLDMuODU5LTcuOTkyLDBabTEwLjExOSwwYzIuMjg2LTUuMTc4LDcuODg5LTMuNzUxLDcuODcyLjAwOFMxOS4xODYsMjEuMjc3LDE2Ljk2NywxNi4zMzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmO3N0cm9rZTojMDAwO3N0cm9rZS13aWR0aDowLjI0MjA2MTkyOTYxODU0OTY0cHhcXFwiLz48cmVjdCB4PVxcXCI4Ljg5OFxcXCIgeT1cXFwiMTUuNzk1XFxcIiB3aWR0aD1cXFwiMy4yMzdcXFwiIGhlaWdodD1cXFwiMS4wNjdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIwLjY0NCAxNi44NDYgMTkuNTc2IDE2Ljg0NiAxOS41NzYgMTUuNzEyIDIwLjY0NCAxNS43MTIgMjAuNjQ0IDE0LjY0NCAyMS43NzkgMTQuNjQ0IDIxLjc3OSAxNS43MTIgMjIuODQ3IDE1LjcxMiAyMi44NDcgMTYuODQ2IDIxLjc3OSAxNi44NDYgMjEuNzc5IDE3LjkxNCAyMC42NDQgMTcuOTE0IDIwLjY0NCAxNi44NDZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0fSxcblx0XCJBUk0gQXNzZW1ibHlcIjoge1xuXHRcdGNvbG91cjogXCIjMDAwMGJmXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCI4MzYuNjNcXFwiIHkxPVxcXCIzNi4yMDVcXFwiIHgyPVxcXCI4NDMuODAyXFxcIiB5Mj1cXFwiMTQuNDhcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoNTI1LjkyMiAzMC4yNDkpIHJvdGF0ZSgxODApIHNjYWxlKDAuNjA3IDAuNjA3KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjAuMjc1XFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9hc3NlbWJseTwvdGl0bGU+PHBhdGggZD1cXFwiTTE2LDJjLTEuMjQ2LDMuMDU2LTIsNS4wNTctMy4zOTEsOC4wMjJBMjEuODg0LDIxLjg4NCwwLDAsMCwxNi4yLDEzLjE1NmExNC44NTgsMTQuODU4LDAsMCwxLTQtMi4yODNDMTAuNDMsMTQuNTc5LDcuNjQ2LDE5Ljg1NSwyLDMwYzUuMTg2LTIuOTk0LDkuMDEyLTQuNjQ4LDEyLjY5MS00Ljk2NlYyNC4yaC0uODM0di0uODM3aC44MzRWMjQuMmgxLjY3NVYyMi41MjFIMTQuNjkxdi0uODM0aC0uODM0VjIwLjAxM2guODM0di0uODM0aDEuNjc1di44MzRIMTcuMnYuODM3aC0uODM3di0uODM3SDE0LjY5MXYxLjY3NWgxLjY3NXYuODM0SDE3LjJWMjQuMmgtLjgzN3YuNzgzYzMuOTguMSw4LjAwNiwxLjc3MiwxMy42MzQsNS4wMjEtLjg2My0xLjU4OS0xLjYzNi0zLjAyMS0yLjM3Mi00LjM4NWEyNS41MjYsMjUuNTI2LDAsMCwwLTQuODMzLTMuMzMzQTE0LjQzNiwxNC40MzYsMCwwLDEsMjYuNjUsMjMuOEMxOS4xNyw5Ljg3MiwxOC41NjUsOC4wMiwxNiwyWk0xMC41MTEsMTkuMTc5aDEuNjcxdi44MzRoLjgzN3Y1LjAyMWgtLjgzN1YyMi41MjFIMTAuNTExdjIuNTEySDkuNjczVjIwLjAxM2guODM3Wm0wLC44MzR2MS42NzVoMS42NzFWMjAuMDEzWm03LjUyNi0uODM0aC44Mzd2LjgzNGguODM3di44MzdoLjgzNHYtLjgzN2guODM3di0uODM0aC44Mzd2NS44NTVoLS44MzdWMjAuODVoLS44Mzd2LjgzN2gtLjgzNFYyMC44NWgtLjgzN3Y0LjE4NGgtLjgzN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDAwYmZcXFwiLz48cGF0aCBkPVxcXCJNMjMuODgxLDE4LjY0MmMtNi4wNjktOC4yMzctNy40NzYtMTQuODc2LTcuODMyLTE2LjQ2MUExNzUuMjE3LDE3NS4yMTcsMCwwLDAsMjMuODgxLDE4LjY0MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmY7ZmlsbC1vcGFjaXR5OjAuMTY1NjgwNDY4MDgyNDI4XFxcIi8+PHBhdGggZD1cXFwiTTE2LjA1MSwyLjEyLDE1LjYsMy4yMjdjLS4xNTkuMzkxLS4zMTEuNzY1LS40NjEsMS4xMzFzLS4zLjcyNC0uNDQ4LDEuMDc3LS4zLjctLjQ0OCwxLjA1My0uMy43MDYtLjQ2NSwxLjA2Ni0uMzI5LjcyOS0uNTA2LDEuMTExLS4zNjIuNzc4LS41NjEsMS4xOTNjLS4wMjguMDU3LS4wNjEuMTIzLS4wODkuMTgxQTIxLjg3MiwyMS44NzIsMCwwLDAsMTYuMiwxMy4xNTZhMTQuODc5LDE0Ljg3OSwwLDAsMS0zLjk4OS0yLjI3NmwtLjE0LjI4N2MtLjA2NS4xMzMtLjE0NC4yODMtLjIxMi40MmwtLjEwNi4yMTljLS44NzgsMS43OTMtMi4wMDYsMy45ODQtMy41MjQsNi44MjIsMy41NTEtMiw3LjM4MS00Ljg4NywxNC4zMzgtMi40LS4zNDktLjY2MS0uNjctMS4yOC0uOTcxLTEuODYzcy0uNTgxLTEuMTI4LS44NDEtMS42NDQtLjUtMS0uNzI1LTEuNDYzLS40MzMtLjktLjYyOS0xLjMxMy0uMzgtLjgxOC0uNTU0LTEuMi0uMzM5LS43NTQtLjUtMS4xMThTMTguMDQ3LDYuOSwxNy45LDYuNTQ2cy0uMjkxLS43MDktLjQzNC0xLjA2NmMtLjAzNi0uMDkxLS4wNzMtLjE4Ni0uMTA5LS4yNzdDMTYuOTQ5LDQuMjQ3LDE2LjUzNiwzLjI1OCwxNi4wNTEsMi4xMlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz5cIixcblx0fSxcblx0XCJBc2NpaURvY1wiOiB7XG5cdFx0Y29sb3VyOiBcIiNlNDAwNDZcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0zMCwzMEgyVjJIMzBaXFxcIiBzdHlsZT1cXFwiZmlsbDojZTQwMDQ2XFxcIi8+PHBhdGggZD1cXFwiTTIzLjczMSwyNC44M2EuNTg5LjU4OSwwLDAsMS0uNzYzLS4zMzdMMTYuNzI0LDkuMjY5LDEzLjkzLDE1Ljk5aDEuODMzYS41OS41OSwwLDAsMS0uMDI0LDEuMThIOC45YS41OS41OSwwLDAsMSwuMDI0LTEuMThoMy43MjdsMC0uMDEzTDE2LjE4NCw3LjVhLjU5MS41OTEsMCwwLDEsLjUzMy0uMzYzaDBhLjU5Mi41OTIsMCwwLDEsLjU1Ny4zNjZsNi43ODUsMTYuNTQ2LjAwOS4wMjFBLjU5LjU5LDAsMCwxLDIzLjczMSwyNC44M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTQuNTE2LDE4Ljc5MUg3LjY3OWEuNTkuNTksMCwwLDAtLjAyNCwxLjE4SDExTDkuMzA5LDI0LjA0M2EuNTkuNTksMCwwLDAsMS4wODUuNDY0bDAtLjAxMSwxLjg3NS00LjUwOS4wMDUtLjAxNmgyLjIxNWEuNTkuNTksMCwwLDAsLjAyMy0xLjE4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIkFTUC5ORVQgKEMjKVwiOiB7XG5cdFx0Y29sb3VyOiBcIiMzM2E5ZGNcIixcblx0XHRpY29uOiBcIjx0aXRsZT5maWxlX3R5cGVfYXNweDwvdGl0bGU+PHBvbHlnb24gcG9pbnRzPVxcXCIyMi43NSAyIDYuMzUgMiA2LjM1IDMwIDI5LjY1IDMwIDI5LjY1IDkgMjIuNzUgMlxcXCIgc3R5bGU9XFxcImZpbGw6I2M1YzVjNVxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjcuMzUgMjcuNyA4Ljc1IDI3LjcgOC43NSA0LjMgMjAuNDUgNC4zIDIwLjQ1IDExLjMgMjcuNDUgMTEuMyAyNy40NSAyNy43IDI3LjM1IDI3LjdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNWY1ZjVcXFwiLz48cGF0aCBkPVxcXCJNMTIuMSwzMC45OTRBMTEuMDk0LDExLjA5NCwwLDEsMSwyMy4xOTQsMTkuOSwxMS4xMDYsMTEuMTA2LDAsMCwxLDEyLjEsMzAuOTk0Wm0wLTIwLjNBOS4yLDkuMiwwLDEsMCwyMS4zLDE5LjksOS4yMTYsOS4yMTYsMCwwLDAsMTIuMSwxMC43WlxcXCIgc3R5bGU9XFxcImZpbGw6IzMzYTlkY1xcXCIvPjxyZWN0IHg9XFxcIjIuMDk5XFxcIiB5PVxcXCIxOS40NTVcXFwiIHdpZHRoPVxcXCIyMC4wMDNcXFwiIGhlaWdodD1cXFwiMC44OVxcXCIgc3R5bGU9XFxcImZpbGw6IzMzYTlkYztzdHJva2U6IzMzYTlkYztzdHJva2UtbWl0ZXJsaW1pdDoxMFxcXCIvPjxwYXRoIGQ9XFxcIk0xMi4zMjUsMTUuNzYzYTMxLjkzLDMxLjkzLDAsMCwxLTguNDg0LTEuMTFsLjI0Mi0uODA3YTMxLjM3NCwzMS4zNzQsMCwwLDAsMTUuOTkyLDBsLjIzOS44MDdBMjguMDc2LDI4LjA3NiwwLDAsMSwxMi4zMjUsMTUuNzYzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzMzYTlkYztzdHJva2U6IzMzYTlkYztzdHJva2UtbWl0ZXJsaW1pdDoxMFxcXCIvPjxwYXRoIGQ9XFxcIk00LjEsMjUuNzI0bC0uMjM5LS44MDdhMzEuNjUyLDMxLjY1MiwwLDAsMSwxNi40NzIsMGwtLjI0Mi44MDdBMzEuMzgsMzEuMzgsMCwwLDAsNC4xLDI1LjcyNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzM2E5ZGM7c3Ryb2tlOiMzM2E5ZGM7c3Ryb2tlLW1pdGVybGltaXQ6MTBcXFwiLz48cGF0aCBkPVxcXCJNOC41MzYsMjkuMDU1QTI1LjQzOCwyNS40MzgsMCwwLDEsOCwxMC42MDhsLjc3Ni4zMzFhMjQuNTU4LDI0LjU1OCwwLDAsMCwuNTMzLDE3Ljc4M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMzM2E5ZGM7c3Ryb2tlOiMzM2E5ZGM7c3Ryb2tlLW1pdGVybGltaXQ6MTBcXFwiLz48cGF0aCBkPVxcXCJNMTUuNiwyOS4wNTVsLS43NzYtLjMzM2EyNC41NTksMjQuNTU5LDAsMCwwLC41MzEtMTcuNzgzbC43NzYtLjMzMUEyNS40NDMsMjUuNDQzLDAsMCwxLDE1LjYsMjkuMDU1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzMzYTlkYztzdHJva2U6IzMzYTlkYztzdHJva2UtbWl0ZXJsaW1pdDoxMFxcXCIvPjxyZWN0IHg9XFxcIjExLjY1NVxcXCIgeT1cXFwiOS44OThcXFwiIHdpZHRoPVxcXCIwLjg4OVxcXCIgaGVpZ2h0PVxcXCIyMC4zNzFcXFwiIHN0eWxlPVxcXCJmaWxsOiMzM2E5ZGM7c3Ryb2tlOiMzM2E5ZGM7c3Ryb2tlLW1pdGVybGltaXQ6MTBcXFwiLz5cIixcblx0fSxcblx0XCJBdXRvSG90a2V5XCI6IHtcblx0XHRjb2xvdXI6IFwiI2Q4ZDhkOFwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiNTQuNjA0XFxcIiB5MT1cXFwiMTY4LjM4OFxcXCIgeDI9XFxcIjU0LjYwNFxcXCIgeTI9XFxcIjE5NC44ODVcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTM4LjYwNCAtMTY1LjYzNilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNkOGQ4ZDhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNhM2EzYTNcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIjY4Ljc1NlxcXCIgeTE9XFxcIjIwOS4xNTJcXFwiIHgyPVxcXCI5MS42MzhcXFwiIHkyPVxcXCIyMDkuMTUyXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC01MC42MDEgLTE1OS40NDkpIHNjYWxlKDAuODMyIDAuODM3KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2Q3ZDdkN1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41XFxcIiBzdG9wLWNvbG9yPVxcXCIjZTdlN2U3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZDdkN2Q3XFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9hdXRvaG90a2V5PC90aXRsZT48cmVjdCB4PVxcXCIyXFxcIiB5PVxcXCIyLjgyNFxcXCIgd2lkdGg9XFxcIjI4XFxcIiBoZWlnaHQ9XFxcIjI2LjM1M1xcXCIgcng9XFxcIjMuMDg4XFxcIiByeT1cXFwiMy4wODhcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMjYuODU2LDI5LjE4MUg1LjE0NEEzLjE0OCwzLjE0OCwwLDAsMSwyLDI2LjAzN1Y1Ljk2M0EzLjE0OCwzLjE0OCwwLDAsMSw1LjE0NCwyLjgxOUgyNi44NTZBMy4xNDgsMy4xNDgsMCwwLDEsMzAsNS45NjNWMjYuMDM3QTMuMTQ4LDMuMTQ4LDAsMCwxLDI2Ljg1NiwyOS4xODFaTTUuMTQ0LDIuOTYzYTMsMywwLDAsMC0zLDNoMFYyNi4wMzdhMywzLDAsMCwwLDMsM0gyNi44NTZhMywzLDAsMCwwLDMtM1Y1Ljk2M2EzLDMsMCwwLDAtMy0zWlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkOGQ4ZFxcXCIvPjxyZWN0IHg9XFxcIjQuMzEzXFxcIiB5PVxcXCI0LjY0MVxcXCIgd2lkdGg9XFxcIjIzLjE2OVxcXCIgaGVpZ2h0PVxcXCIyMS45NFxcXCIgcng9XFxcIjIuNTcxXFxcIiByeT1cXFwiMi41NzFcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMjQuOTExLDI2LjY0MUg2Ljg4NEEyLjYzNCwyLjYzNCwwLDAsMSw0LjI1MywyNC4wMVY3LjIxMkEyLjYzNCwyLjYzNCwwLDAsMSw2Ljg4NCw0LjU4MUgyNC45MTFhMi42MzQsMi42MzQsMCwwLDEsMi42MzEsMi42MzF2MTYuOEEyLjYzNCwyLjYzNCwwLDAsMSwyNC45MTEsMjYuNjQxWk02Ljg4NCw0LjdBMi41MTQsMi41MTQsMCwwLDAsNC4zNzMsNy4yMTJ2MTYuOGEyLjUxNCwyLjUxNCwwLDAsMCwyLjUxMSwyLjUxMUgyNC45MTFhMi41MTQsMi41MTQsMCwwLDAsMi41MTEtMi41MTFWNy4yMTJBMi41MTQsMi41MTQsMCwwLDAsMjQuOTExLDQuN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmOGY4ZjhcXFwiLz48cGF0aCBkPVxcXCJNNi4xNDUsMjMuOWwyLjM0My02LjFoLjg3bDIuNSw2LjFoLS45MmwtLjcxMi0xLjg0OEg3LjY3M0w3LDIzLjlaTTcuOSwyMS40SDkuOTc0bC0uNjM3LTEuN3EtLjI5MS0uNzctLjQzMy0xLjI2NUE3Ljc3Niw3Ljc3NiwwLDAsMSw4LjU3NiwxOS42WlxcXCIvPjxwYXRoIGQ9XFxcIk0xMy42MDcsMjMuOVYxNy44aC44MDd2Mi41aDMuMTcxVjE3LjhoLjgwN3Y2LjFoLS44MDdWMjEuMDIxaC0zLjE3VjIzLjlaXFxcIi8+PHBhdGggZD1cXFwiTTIwLjQ3OCwyMy45VjE3LjhoLjgwN3YzLjAyNWwzLjAzLTMuMDI1aDEuMDk0TDIyLjg1LDIwLjI2NywyNS41MjIsMjMuOUgyNC40NTZsLTIuMTcyLTMuMDg4LTEsLjk3NFYyMy45WlxcXCIvPlwiLFxuXHR9LFxuXHRcIkF1dG9JdFwiOiB7XG5cdFx0Y29sb3VyOiBcIiM1ZDgzYWNcIixcblx0XHRpY29uOiBcIjxjaXJjbGUgY3g9XFxcIjE2XFxcIiBjeT1cXFwiMTZcXFwiIHI9XFxcIjEyLjU1MVxcXCIgc3R5bGU9XFxcImZpbGw6IzVkODNhY1xcXCIvPjxwYXRoIGQ9XFxcIk0yLDE2QTE0LDE0LDAsMSwxLDE2LDMwLDE0LDE0LDAsMCwxLDIsMTZaTTE2LDQuNzg5QTExLjIxMSwxMS4yMTEsMCwxLDAsMjcuMjExLDE2LDExLjIxMSwxMS4yMTEsMCwwLDAsMTYsNC43ODlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjBmMGYwXFxcIi8+PHBhdGggZD1cXFwiTTI0LjU3NiwyMC4xNTZsLTYuNC05LjI2NGEzLjEzMSwzLjEzMSwwLDAsMC0uODE5LS44MTksMi4zNiwyLjM2LDAsMCwwLTIuNDQyLjAyMywzLjU0MywzLjU0MywwLDAsMC0uODEyLjhMNy41MzMsMjAuMTU2aDMuNzUybDQuODA4LTYuOCwxLjgzOCwyLjcxcS4yNi4zNjguNTQ0Ljc4OXQuNS43cS0uMzY4LS4wMzEtLjg2NS0uMDMxaC0zLjUzbC0xLjkxNCwyLjYzNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMGYwZjBcXFwiLz5cIixcblx0fSxcblx0XCJBdnJvIElETFwiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMDQwZmZcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yLDExLjY0OWguMDI1YTQuNzg1LDQuNzg1LDAsMCwwLDIuOTExLDEuMzM2YzIuMzA4LjIyMSw0LjU5LS40ODUsNi45LS4zMjZhNy4wMyw3LjAzLDAsMCwxLDIuNjguNjY0Yy41LS4zMTkuOTg5LS42NjIsMS40ODYtLjk4OS41LjMyNy45ODQuNjc0LDEuNDg4Ljk4OWE2LjgzNCw2LjgzNCwwLDAsMSwyLjQ4Ny0uNjVjMS45OTUtLjE2NywzLjk2Ny4zMDgsNS45NTcuMzU5YTUuMiw1LjIsMCwwLDAsNC4wMjYtMS4zODNIMzB2LjIzNmMtLjE3OC43NDctLjg4MiwxLjE3Ni0xLjI4NCwxLjc5YTQuOTQ4LDQuOTQ4LDAsMCwxLS43MzEuNzkxLDMuOCwzLjgsMCwwLDEtLjU2NS43NDgsMi41NTEsMi41NTEsMCwwLDAtLjU5NC41NDEsMi4xODEsMi4xODEsMCwwLDEtLjk2Ljc0OSwxLjE0OSwxLjE0OSwwLDAsMS0uNTY1LjU2LDYuNjksNi42OSwwLDAsMS0xLjk0LjE4NGMuNzIzLjU0OCwxLjUsMS4wMiwyLjI0NiwxLjUzNS43ODIuNTEzLDEuNTQsMS4wNjEsMi4zMjYsMS41NjhINC4wODljMS41LTEuMDU4LDMuMDU3LTIuMDM1LDQuNTUtMy4xQTYuOCw2LjgsMCwwLDEsNi43LDE3LjA2NWExLjE1NSwxLjE1NSwwLDAsMS0uNTY5LS41NjIsMi4yOCwyLjI4LDAsMCwxLTEuMDQzLS44NmMtLjI2OC0uMy0uNjctLjQ2Ni0uODUzLS44NDMtLjItLjQzNi0uNjU4LS42NjQtLjkwOS0xLjA2Ny0uNC0uNjQyLTEuMTM3LTEuMDc2LTEuMzI3LTEuODQ2di0uMjM5bTIuOTM5LDguNTI4cTExLjA1OS4wMDksMjIuMTIsMGMtMy42NjgtMi41MS03LjM3Ni00Ljk2MS0xMS4wNTktNy40NDgtMy42ODQsMi40ODctNy4zOTIsNC45NDEtMTEuMDYxLDcuNDQ5TTQuMTY3LDEzLjJhNy44NDIsNy44NDIsMCwwLDAsMi44NC43MzFjMS4xNjMuMTIzLDIuMzQxLjA0NiwzLjUuMjM2YTIuNywyLjcsMCwwLDEsMS42MDcuNzgxYy42NTktLjQ1MiwxLjMzMi0uODg1LDEuOTg3LTEuMzQybC4wMTItLjA2NGE1LjI5NCw1LjI5NCwwLDAsMC0xLjg3Ny0uNWMtMi42OTMtLjMxNi01LjM4Ny43MTItOC4wNjcuMTZtMTMuNjUyLjM1NmMuNjg4LjQ2NiwxLjM4Mi45MjUsMi4wNywxLjM5MmEyLjQ4OCwyLjQ4OCwwLDAsMSwxLjMtLjcxOSwxOS44NTksMTkuODU5LDAsMCwxLDMuMTM3LS4yNDgsOS4xMDUsOS4xMDUsMCwwLDAsMy41LS43NjhjLTIuNTgyLjUtNS4xNjgtLjQwOS03Ljc2MS0uMmE2LjI1Niw2LjI1NiwwLDAsMC0yLjI0NS41NDVNMy4zMzksMTMuMTY2YTcuMjY0LDcuMjY0LDAsMCwwLDIuNzIzLDEuM2MtLjIxOS0uMTUzLS4zNzYtLjQxNi0uNjU3LS40NTdhNy45NTUsNy45NTUsMCwwLDEtMi4wNjYtLjg0NG0yMy4zMzMuODI1Yy0uMzE3LjAyMy0uNS4zLS43MzMuNDczYTcuMjMyLDcuMjMyLDAsMCwwLDIuNzI0LTEuMyw4LjEwNiw4LjEwNiwwLDAsMS0xLjk5MS44MjRtLTIyLjUuMTI2YTUuMTIxLDUuMTIxLDAsMCwwLDIuNTg5LDEuMWMtLjExNS0uMTI4LS4yMDktLjMxMi0uNC0uMzM0YTEwLjQ1OSwxMC40NTksMCwwLDEtMi4xOS0uNzcxbTIxLjQ2Ny43NjhjLS4xODkuMDIyLS4yODQuMi0uMzk0LjMzNmE1LjE4Nyw1LjE4NywwLDAsMCwyLjYtMS4xMDksMTAuNDc3LDEwLjQ3NywwLDAsMS0yLjIuNzczTTYuMywxNC4yMDZhMy4yNDMsMy4yNDMsMCwwLDAsMi40NDUuMzUyYy0uMS0uMDgtLjE4MS0uMjE1LS4zMjUtLjIwNnEtMS4wNjMtLjA0LTIuMTItLjE0Nm0xNy4zNTEuMTM5Yy0uMTcxLS4wMTktLjI5MS4xLS40MDYuMjExYTMuMTA4LDMuMTA4LDAsMCwwLDIuNDItLjM1MnEtMSwuMTEyLTIuMDE0LjE0MW0tMTYuNzQxLjUzOGEzLjY2OSwzLjY2OSwwLDAsMCwyLjQ4Mi4zMTksMS4xMDcsMS4xMDcsMCwwLDAtLjI4MS0uMzc2LDUuMTU4LDUuMTU4LDAsMCwxLTIuMi4wNTdtMTUuNy4zMThhMy42NzgsMy42NzgsMCwwLDAsMi40ODctLjMxOSw1LjEyNyw1LjEyNywwLDAsMS0yLjItLjA1NywxLjEsMS4xLDAsMCwwLS4yODMuMzc2TTQuODM4LDE0Ljk3N2E0LjExLDQuMTEsMCwwLDAsMi4xMzMuODQxYy0uMDU3LS4wODQtLjExNC0uMTY4LS4xNzEtLjI1NGE2Ljk0OCw2Ljk0OCwwLDAsMS0xLjk2Mi0uNTg3bTIwLjM2MS41ODktLjE2OS4yNTNhNC4xNDEsNC4xNDEsMCwwLDAsMi4xMzYtLjg0Myw3LjAxNSw3LjAxNSwwLDAsMS0xLjk2Ny41OW0tMTguMS0uMTNhLjguOCwwLDAsMCwuNTM0LjMxLDcuNTc5LDcuNTc5LDAsMCwwLDIuMDM3LS4wNzNjLS4wMDktLjAzLS4wMjctLjA5LS4wMzYtLjEyLS40NTctLjA1MS0uOTIzLjA3NC0xLjM4NS4wNDdBNy4wNTQsNy4wNTQsMCwwLDEsNy4xLDE1LjQzN20xNi4xOTEuMTUxYTYuMjgsNi4yOCwwLDAsMC0uOTEzLS4wNDFsLS4wNDIuMTI2YTcuNDE2LDcuNDE2LDAsMCwwLDIuMDQ1LjA3Mi43LjcsMCwwLDAsLjUyMi0uMzMxLDQuMzQ5LDQuMzQ5LDAsMCwxLTEuNjEzLjE3NG0tMTcuNTIuMzI3YTMuMTIsMy4xMiwwLDAsMCwxLjc1NC40ODFjLS4wNjUtLjI0LS4zMzQtLjItLjUyMy0uMjM2LS40MTktLjA0MS0uODE2LS4xODYtMS4yMzEtLjI0Nk0yNSwxNi4xNjNjLS4xODguMDQxLS40NTItLjAwNi0uNTIxLjIzMmEyLjg3NCwyLjg3NCwwLDAsMCwxLjczMi0uNDgyYy0uNC4wNzktLjguMjA3LTEuMjExLjI1MU03LjczNSwxNi4xMTlhMSwxLDAsMCwwLC43ODkuMjc1LDkuMzMxLDkuMzMxLDAsMCwwLDEuMzI1LS4xNThjLS4wMjEtLjA5My0uMDA5LS4yNzgtLjE2My0uMjI4YTkuOTgzLDkuOTgzLDAsMCwxLTEuOTUxLjExMW0xNC40MTUuMTE4YTguMTU3LDguMTU3LDAsMCwwLDEuNDEyLjE1NC45LjksMCwwLDAsLjctLjI3NCw5LjM4Nyw5LjM4NywwLDAsMS0xLjkzNC0uMTFjLS4xNi0uMDYtLjE1NS4xMzItLjE3Ni4yM20tMTUuNDM4LjQ0YTEuOTYyLDEuOTYyLDAsMCwwLDEuMy4xODFsLS4wOTEtLjEyNmMtLjQuMDA2LS44MDctLjAyMi0xLjIwOS0uMDU1bTEuNjE1LjA0M2ExLjAzLDEuMDMsMCwwLDAsLjcxNi4yOTRjLjE3OS0uMTI1LjM1OC0uMjUyLjUzMS0uMzg2YTUuNzQ3LDUuNzQ3LDAsMCwxLTEuMjQ3LjA5Mm0xNC4xLS4wOTNjLjIzNy4xNDQuNDY3LjQ3Ny43ODIuMzQ1LjE2Ni0uMDUuMzY5LS4wODkuNDYxLS4yNTdhNS4yNzEsNS4yNzEsMCwwLDEtMS4yNDMtLjA4OG0xLjcxMy4yNjNhMi4wMDcsMi4wMDcsMCwwLDAsMS4xNDUtLjIxMywxMC4yNjksMTAuMjY5LDAsMCwxLTEuMTQ0LjA0OUMyMy45OTMsMTYuNjY3LDIzLjk4NCwxNi45NjEsMjQuMTM4LDE2Ljg5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNDBmZlxcXCIvPjxwYXRoIGQ9XFxcIk03LjQzNSwxOC44ODZRMTEuNzE5LDE2LjAxMywxNiwxMy4xMzdsOS4zLDYuMjQ0Yy4yMjEuMTQ3LjQzOS4zLjY0OC40NjRxLTkuOTQ3LS4wMS0xOS44OTQsMGMuNDQzLS4zNDQuOTItLjY0LDEuMzgzLS45NThtOC4yNTUtNS4wNjZjLS40NTcsMS44NTktLjkwNywzLjcxOS0xLjM3NSw1LjU3Ni41Mi4wMTUsMS4wNDEuMDEyLDEuNTYyLDBxLS4wMTMtMi44NDEsMC01LjY4bC0uMTg0LjFtLTIuNSwxLjY4NGMuMjU1Ljg1OS40OCwxLjcyOC43NjMsMi41NzkuMjg5LTEuMjM4LjYtMi40NzEuOS0zLjcwNy0uNTUuMzg2LTEuMTE0Ljc1LTEuNjY4LDEuMTI5bTMuMzU3LS44NzNjLS4wMDYuNjgyLDAsMS4zNjQsMCwyLjA0NmEyLjEsMi4xLDAsMCwwLDEuMDE0LS4yNTRjLjE5My0uMTQ1LjEtLjQwOS4wMTEtLjU4NmE0LjI3Niw0LjI3NiwwLDAsMC0xLjAyNC0xLjIwN00xOC4zMjcsMTYuNGMtLjEuNTQ0LS42NjYuNzkyLTEuMTUxLjkuNDc0LjcuOTYsMS4zODksMS40MTYsMi4xLjQ2OS4wMjQuOTQuMDExLDEuNDExLjAwOWExLjYzMSwxLjYzMSwwLDAsMSwuMTYtMi45NzZjLS44MzQtLjYtMS43LTEuMTQtMi41NDQtMS43MjcuMzQ5LjUuODMxLDEuMDM3LjcwOCwxLjdtLTYuODIyLjI0MmMuMjY3LjkyMS41MjksMS44NDUuNzk0LDIuNzY3LjQ0LDAsLjg4LjAwOCwxLjMyMS0uMDA3LS4zMzktMS4xNjEtLjY4NS0yLjMxOS0xLjAwOS0zLjQ4NC0uMzg1LjIxNS0uNzM3LjQ4Mi0xLjEuNzI0bTguOC40NTJhLjk0Ni45NDYsMCwwLDAsLjA1NywxLjdjLjUzMy4wOS44NTUtLjUzMy43NzktLjk5LS4wMjYtLjQtLjQtLjg2MS0uODM2LS43MTRNNy40LDE5LjRxMS4zMjQuMDE4LDIuNjUsMGMuMjU2LS43LjQxMy0xLjQ2OC42MjktMi4yLTEuMS43MTUtMi4xODcsMS40NjEtMy4yNzksMi4xOTRtMTQuMzc3LTEuOWExLjYxNiwxLjYxNiwwLDAsMS0uODc2LDEuOWMxLjIzMy4wMTgsMi40NjUuMDE1LDMuNywwLS45MzQtLjY0NC0xLjg4My0xLjI2Ni0yLjgyMi0xLjltLTUuMjIzLjExNWMtLjAxLjYsMCwxLjIsMCwxLjguNDE1LDAsLjgzMSwwLDEuMjQ4LDAtLjQxOS0uNi0uOC0xLjIxOS0xLjI0My0xLjc5NG0tNS41NDYuOTQxaC4zNDZjLS4wNTUtLjE4Ny0uMTA4LS4zNzYtLjE2Ni0uNTYyYTMuNzUxLDMuNzUxLDAsMCwwLS4xODEuNTYzbS0uMTguNjkzYy0uMDE1LjA0LS4wNDUuMTE5LS4wNjEuMTU5LjI3NS0uMDI2LjU5LjA3MS44NDItLjA1QzExLjQ1MywxOS4xMTIsMTEuMDc0LDE5LjI3NSwxMC44MjYsMTkuMjQ0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNDBmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIkFXS1wiOiB7XG5cdFx0Y29sb3VyOiBcIiNkMmQyZDJcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yNi45MjUsMjcuNzM3QzIzLjQzMSwyNi4xLDI0LjYwNiwxNC41ODgsMTMuODEsOC4zMTksMTQuMDg5LDUuNzkyLDE0Ljc1OC0uNSw3Ljk2MSwzLDYuODQ1LDMuMTI4LDQuOTA3LDIuMzMxLDQsNC44MzF2LjExNEMxNi45MTgsMy45LjA4OCwxMC41MywxNi43NSwyNS44NDRjLS4zNzMuMTc2LS42NzQtLjMyNS0xLjk3LjFsLS4wMTQuMDE2Yy0xLjcyMiwxLjEzNSwxLjkzMy43NjgsNC4xNTQsMS4yNzQtMS42MTEuNDE3LTUuNTk0LTEuMTM3LTYuMywxLjY0NS44NzctLjM3LDEsLjMyOSwxLjA3NiwxLjA3N0EyNi4yNzcsMjYuMjc3LDAsMCwxLDIyLjM3OSwyNy41YzEuMS4yODUsNC4xMTgsMi4wNDksNS4xMjIuNTUxQzI3LjUxOSwyNy45MywyNy4yMjEsMjcuODc2LDI2LjkyNSwyNy43MzdaXFxcIi8+PHBhdGggZD1cXFwiTTEwLjQ0NiwyLjk3bC0uMTIxLjA4OGEuMjY2LjI2NiwwLDAsMC0uMDExLjM3Ny4yMTEuMjExLDAsMCwwLC4wNDUuMDM5LjQxNi40MTYsMCwwLDAsLjUyMS0uMDYzLjI2My4yNjMsMCwwLDAsLjA3OC0uMzY0bC0uMDEtLjAxNGMtLjA3Ni0uMTQzLS4xNjMtLjE3Ny0uMzQtLjEyN0MxMC41NTMsMi45MjUsMTAuNSwyLjk0NiwxMC40NDYsMi45N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTgsMjYuMzY4Yy4xNTEtLjA0MS4zMTgtLjgyOC4xNzQtLjk0OUE2LjI5LDYuMjksMCwwLDAsMTkuNCwyNi40ODVjMS4wMjMsMS4wMDcsMi42NjUtLjAzMiwzLjQ4Mi43NTlhMTAuNzM2LDEwLjczNiwwLDAsMCwxLjk1NywxLjAyN2MtLjEzOS0uMTUxLS4wMjktLjE0NC4xNzktLjAxMS0uMTMtLjMzOC00LjQyMS01LjE1Ni01LjIyNi03LjE4LjA5NS4yOTMtMS42MDgtLjgyNC0yLjA3Ni0xLjQxOS0uMDI4LjA1Ni0uMDkyLS4yNTEtLjIyOC0uNDM0LS4wNDEuMDUtLjItLjQzMy0uMy0uNzI4LjAzNy4xODctLjQ2Mi0uNS0uNjUtLjgxOC0uMDU2LjA5LS43MTkuMzcyLS44MDkuMjg2LS43MjktLjQsMi41MjksNC4wNjYuMTIyLDIuNTU5LjY3Ni42ODMuNjE0LjQtMS4wOTUtLjg1Mi4zNjQuNDUyLS4zMTcuMzEyLTEuNTUzLTEuNTIzLjE4Ni4yLS4yMTgtLjU3Ni0uMjE4LS41NzZhMi42OTIsMi42OTIsMCwwLDAtLjEzMy0uNDgzYy0uMDU2LS4zMi0uMjQxLS43MjMtLjEyLS42NS0xLjQ0NC0xLjU1NiwxLjMxNC0zLjMuNzE5LTMuNjcxLS4xMTEsMC0uMDI3LjAxNy0uMTUxLS4xMDYtLjA5LDAtLjQ2OC4yODUtLjU4Ny0uMjM0LjAwNi4xMzItLjAzNC40MDYtLjE1My0uMS0uMDIzLjA1Mi4wMTUuMS0uMDMuMTQ1LS4yMjUtLjU3Ni0uNzcyLTEuNi0xLjIxNy0yLjUzOS0uMTU4LjE1NS0uMTM4LS4wNzYtLjE5My0xLjA5Mi4wNTMuMTQ0LS4yMjUsMS45MjEtLjIuMTMtLjEyOC4wMDcuMTA4LDEuMjU4LS4zNDMuMjEtLjE0MS4wNS0uMzA1LS4zNjMtLjM0MS0xLjE3OC0uMDQ4LjYyMy0uMjkuMTg3LS41LS45MjMtLjI2OS41MDgtMS42LDEuNzQzLS4zMzMsNy42MjItLjA1My0uMzEzLjE4Ni4zNDEuNzU1LDIuNDI3LjAyMS0uMDM5LS4wMjItLjA4My4wMzgtLjEzMWE2LjMyNCw2LjMyNCwwLDAsMCwuNjc3LDEuMzY1Yy41NDQuNjU4Ljk5NSwyLjA3NC44LDEuMjc3YTExLjg2NywxMS44NjcsMCwwLDAsMi41NTQsMy4yNDlBMzQuNDIzLDM0LjQyMywwLDAsMCwxOCwyNi4zNjhaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTEwLjgyMywyLjU1N2EuMjkxLjI5MSwwLDAsMC0uMDUxLS4wMjJjLS4yMjEtLjA0LS40MjkuMTUzLS42NTQuMDMyLS4xNDUuMDg1LS4yNTctLjAzNi0uMzc1LS4wNzNhLjIyNC4yMjQsMCwwLDAtLjIuMDE0LDUuODIzLDUuODIzLDAsMCwwLS44MTQuNTgyLDEuMDM3LDEuMDM3LDAsMCwwLS4yNzMuNDQ5Yy0uMDIxLjA0OC0uMDM3LjEyNi4wNS4xMzdhMi4zLDIuMywwLDAsMCwuNjgyLjA0NWMuMTc3LS4wMjguMjc3LS4xNTIuNDE4LS4yMjFhMS4yLDEuMiwwLDAsMCwuNTkyLS42OGMuMDY0LS4xNzUuMTYxLS4xNjcuMjgtLjJTMTAuNywyLjYyLDEwLjgyMywyLjU1N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTAuMzI1LDMuMDU4bC4xMjEtLjA4OGEuMTE3LjExNywwLDAsMSwuMTIuMDY0Yy4wNDQuMS4xMDYuMTEyLjE5My4wNDcuMDMzLS4wMjUuMDcxLS4wNTguMTE4LS4wMjdhLjExOS4xMTksMCwwLDEsLjA0MS4xMjguMjc2LjI3NiwwLDAsMS0uMTg3LjI0OC4yNjYuMjY2LDAsMCwxLS4zLS4wM0MxMC4zNDEsMy4zMDgsMTAuMjYsMy4yLDEwLjMyNSwzLjA1OFpcXFwiLz5cIixcblx0fSxcblx0XCJCYXRjaFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNkOWI0MDBcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yOS40LDI3LjZIMi41VjQuNUgyOS40Wm0tMjUuOS0xSDI4LjRWNS41SDMuNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkOWI0MDBcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjYuMDc3IDE5LjMxNiA1LjUyMiAxOC40ODQgMTAuMzY2IDE1LjI1NSA1LjQ3OSAxMS4xODQgNi4xMiAxMC40MTYgMTIuMDM1IDE1LjM0NCA2LjA3NyAxOS4zMTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNkOWI0MDBcXFwiLz48cmVjdCB4PVxcXCIxMi43XFxcIiB5PVxcXCIxOC4yXFxcIiB3aWR0aD1cXFwiNy44XFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiNkOWI0MDBcXFwiLz48cmVjdCB4PVxcXCIyLjVcXFwiIHk9XFxcIjUuNVxcXCIgd2lkdGg9XFxcIjI2LjlcXFwiIGhlaWdodD1cXFwiMS45XFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+XCIsXG5cdH0sXG5cdFwiQyNcIjoge1xuXHRcdGNvbG91cjogXCIjMzY4ODMyXCIsXG5cdFx0aWNvbjogXCI8dGl0bGU+ZmlsZV90eXBlX2NzaGFycDwvdGl0bGU+PHBhdGggZD1cXFwiTTE5Ljc5Miw3LjA3MWgyLjU1M1Y5LjYyNEgyNC45VjcuMDcxaDIuNTUyVjkuNjI0SDMwdjIuNTUyaC0yLjU1djIuNTUxSDMwVjE3LjI4SDI3LjQ0OXYyLjU1MkgyNC45di0yLjU1bC0yLjU1LDAsMCwyLjU1MkgxOS43OTN2LTIuNTVsLTIuNTUzLDBWMTQuNzI1aDIuNTUzVjEyLjE3OUgxNy4yNFY5LjYyMmgyLjU1NFptMi41NTMsNy42NThIMjQuOVYxMi4xNzZIMjIuMzQ1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzM2ODgzMlxcXCIvPjxwYXRoIGQ9XFxcIk0xNC42ODksMjQuMDEzYTEwLjIsMTAuMiwwLDAsMS00LjY1My45MTUsNy42LDcuNiwwLDAsMS01Ljg5LTIuMzM2QTguODM5LDguODM5LDAsMCwxLDIsMTYuMzY3LDkuNDM2LDkuNDM2LDAsMCwxLDQuNDEyLDkuNjQ4YTguMTgxLDguMTgxLDAsMCwxLDYuMjU5LTIuNTc3LDExLjEsMTEuMSwwLDAsMSw0LjAxOC42Mzh2My43NDVhNi44MSw2LjgxLDAsMCwwLTMuNzIzLTEuMDM2LDQuNzkzLDQuNzkzLDAsMCwwLTMuNywxLjUyOSw1Ljg3OSw1Ljg3OSwwLDAsMC0xLjQwNyw0LjE0Miw1Ljc3NCw1Ljc3NCwwLDAsMCwxLjMyOCwzLjk5Miw0LjU1MSw0LjU1MSwwLDAsMCwzLjU3NSwxLjQ4Nyw3LjI4OCw3LjI4OCwwLDAsMCwzLjkyNy0xLjEwOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzNjg4MzJcXFwiLz5cIixcblx0fSxcblx0XCJDXCI6IHtcblx0XHRjb2xvdXI6IFwiIzAwNWY5MVwiLFxuXHRcdGljb246IFwiPHRpdGxlPmZpbGVfdHlwZV9jPC90aXRsZT48cGF0aCBkPVxcXCJNMTAuNjc2LDE1Ljk3M2ExMC4wNTIsMTAuMDUyLDAsMCwwLDEuMTc1LDUuMTUxLDUuNDQ2LDUuNDQ2LDAsMCwwLDYuMzA2LDIuNDA4LDQuMjg0LDQuMjg0LDAsMCwwLDMuMDktMy42Yy4xMDctLjYuMTA5LS42MS4xMDktLjYxLDEuNzM3LjI1MSw0LjUzNy42NTgsNi4yNzQuOTA2bC0uMTEuNDRhMTEuMjU2LDExLjI1NiwwLDAsMS0yLjcsNS4zOSw5LjQzOSw5LjQzOSwwLDAsMS01LjM2NiwyLjY4OCwxNC42MSwxNC42MSwwLDAsMS04LjI3Ny0uODE5QTEwLjE1MSwxMC4xNTEsMCwwLDEsNS40LDIxLjY4N2ExNi4yMjUsMTYuMjI1LDAsMCwxLC4wMTktMTEuNDUsMTAuNTM4LDEwLjUzOCwwLDAsMSw4Ljk2My03LjA1NCwxMy4zNTMsMTMuMzUzLDAsMCwxLDYuNjY2LjU1NSw5LjU3MSw5LjU3MSwwLDAsMSw2LjE2Nyw2LjljLjA5NC4zNTIuMTE0LjQxNy4xMTQuNDE3LTEuOTMyLjM1MS00LjMxOS44LTYuMjM4LDEuMjE1LS4zNjItMS45MTUtMS4yNjUtMy40MjgtMy4yLTMuOWE1LjI2Myw1LjI2MywwLDAsMC02LjYxNiwzLjU3LDEwLjQ5LDEwLjQ5LDAsMCwwLS4zODUsMS40MzlBMTIuMzEsMTIuMzEsMCwwLDAsMTAuNjc2LDE1Ljk3M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDVmOTFcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIi8vXCIsXG5cdFx0XSxcblx0fSxcblx0XCJDKytcIjoge1xuXHRcdGNvbG91cjogXCIjOTg0YzkzXCIsXG5cdFx0aWNvbjogXCI8dGl0bGU+ZmlsZV90eXBlX2NwcDwvdGl0bGU+PHBhdGggZD1cXFwiTTE0Ljc0MiwyNC4wNDdhMTAuMjQyLDEwLjI0MiwwLDAsMS00LjY3My45MTlBNy42MjgsNy42MjgsMCwwLDEsNC4xNTUsMjIuNjIsOC44NzYsOC44NzYsMCwwLDEsMiwxNi4zNjksOS40NzYsOS40NzYsMCwwLDEsNC40MjIsOS42MjFhOC4yMTYsOC4yMTYsMCwwLDEsNi4yODUtMi41ODgsMTEuMTUxLDExLjE1MSwwLDAsMSw0LjAzNS42NDF2My43NjFBNi44MzksNi44MzksMCwwLDAsMTEsMTAuMzk1LDQuODEzLDQuODEzLDAsMCwwLDcuMjg4LDExLjkzYTUuOSw1LjksMCwwLDAtMS40MTMsNC4xNTlBNS44LDUuOCwwLDAsMCw3LjIwOSwyMC4xYTQuNTcsNC41NywwLDAsMCwzLjU5LDEuNDkzLDcuMzE5LDcuMzE5LDAsMCwwLDMuOTQzLTEuMTEzWlxcXCIgc3R5bGU9XFxcImZpbGw6Izk4NGM5M1xcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTcuMTEyIDE0LjgyOSAxNy4xMTIgMTIuNDg1IDE5LjQ1NiAxMi40ODUgMTkuNDU2IDE0LjgyOSAyMS44IDE0LjgyOSAyMS44IDE3LjE3MiAxOS40NTYgMTcuMTcyIDE5LjQ1NiAxOS41MTUgMTcuMTEyIDE5LjUxNSAxNy4xMTIgMTcuMTcyIDE0Ljc3IDE3LjE3MiAxNC43NyAxNC44MjggMTcuMTEyIDE0LjgyOVxcXCIgc3R5bGU9XFxcImZpbGw6Izk4NGM5M1xcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjUuMzEzIDE0LjgyOSAyNS4zMTMgMTIuNDg1IDI3LjY1NyAxMi40ODUgMjcuNjU3IDE0LjgyOSAzMCAxNC44MjkgMzAgMTcuMTcyIDI3LjY1NyAxNy4xNzIgMjcuNjU3IDE5LjUxNSAyNS4zMTMgMTkuNTE1IDI1LjMxMyAxNy4xNzIgMjIuOTcxIDE3LjE3MiAyMi45NzEgMTQuODI4IDI1LjMxMyAxNC44MjlcXFwiIHN0eWxlPVxcXCJmaWxsOiM5ODRjOTNcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIi8vXCIsXG5cdFx0XSxcblx0fSxcblx0XCJDbG9qdXJlXCI6IHtcblx0XHRjb2xvdXI6IFwiIzkxZGM0N1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE2LDJBMTQsMTQsMCwxLDAsMzAsMTYsMTQuMDE2LDE0LjAxNiwwLDAsMCwxNiwyXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE1LjQ4OCwxNi4yNTJjLS4xMjYuMjczLS4yNjUuNTc5LS40MDguOUEyMi45NjMsMjIuOTYzLDAsMCwwLDEzLjgsMjAuNjA1YTUuMTgxLDUuMTgxLDAsMCwwLS4xMTksMS4xNTVjMCwuMTc0LjAwOS4zNTYuMDI0LjU0MmE2LjY1OCw2LjY1OCwwLDAsMCw0LjQxMy4wNjcsMy45NjYsMy45NjYsMCwwLDEtLjQ0LS40NjZjLS45LTEuMTQ2LTEuNC0yLjgyNy0yLjE5NC01LjY1MlxcXCIgc3R5bGU9XFxcImZpbGw6IzkxZGM0N1xcXCIvPjxwYXRoIGQ9XFxcIk0xMi4xNjksMTAuNTU2YTYuNjc3LDYuNjc3LDAsMCwwLS4wNzcsMTAuODgxYy40MTEtMS43MSwxLjQ0LTMuMjc2LDIuOTgzLTYuNDE1LS4wOTItLjI1Mi0uMi0uNTI3LS4zMTMtLjgxN2ExMC4yMDcsMTAuMjA3LDAsMCwwLTEuNi0yLjg4Miw0LjQzOSw0LjQzOSwwLDAsMC0xLS43NjdcXFwiIHN0eWxlPVxcXCJmaWxsOiM5MWRjNDdcXFwiLz48cGF0aCBkPVxcXCJNMjEuODQsMjMuN2ExMC44NzcsMTAuODc3LDAsMCwxLTIuMjU3LS40NzFBOC4wMzYsOC4wMzYsMCwwLDEsMTAuNzE2LDkuOTgyYTUuOSw1LjksMCwwLDAtMS40LS4xNzFjLTIuMzU4LjAyMi00Ljg0OCwxLjMyNy01Ljg4NCw0Ljg1MmE2LjYwNiw2LjYwNiwwLDAsMC0uMDc0LDEuMzYxLDEyLjY0OSwxMi42NDksMCwwLDAsMjMsNy4yNzQsMTQuNzM3LDE0LjczNywwLDAsMS0zLjQ0OC40NTlBOC44ODEsOC44ODEsMCwwLDEsMjEuODQsMjMuN1xcXCIgc3R5bGU9XFxcImZpbGw6IzYzYjEzMlxcXCIvPjxwYXRoIGQ9XFxcIk0xOS40NjMsMjEuMjQ0YTMuNTMsMy41MywwLDAsMCwuNS4xNzJBNi42OSw2LjY5LDAsMCwwLDIyLjcsMTYuMDIzaDBhNi42ODEsNi42ODEsMCwwLDAtOC43OS02LjM0OGMxLjM1OCwxLjU0OCwyLjAxMSwzLjc2MSwyLjY0Myw2LjE4MXYwcy4yLjY3My41NDcsMS41NjJhMTUuNDM0LDE1LjQzNCwwLDAsMCwxLjM2MywyLjc4OCwyLjkyNCwyLjkyNCwwLDAsMCwxLDEuMDM2XFxcIiBzdHlsZT1cXFwiZmlsbDojOTBiNGZlXFxcIi8+PHBhdGggZD1cXFwiTTE2LjAxMywzLjM3MkExMi42MzIsMTIuNjMyLDAsMCwwLDUuNzMxLDguNjU2YTYuNDI1LDYuNDI1LDAsMCwxLDMuNDgtMS4wMDksNi44LDYuOCwwLDAsMSwzLjE4Mi43NzJjLjEzNC4wNzcuMjYxLjE2LjM4Ni4yNDZhOC4wMzgsOC4wMzgsMCwwLDEsMTEuMjczLDcuMzU4aDBhOC4wMTMsOC4wMTMsMCwwLDEtMi4zOTEsNS43MTksOS44NzEsOS44NzEsMCwwLDAsMS4xNDMuMDY0LDYuMjQsNi4yNCwwLDAsMCw0LjA1MS0xLjI2Myw1LjM0OCw1LjM0OCwwLDAsMCwxLjctMi45MDZBMTIuNjMyLDEyLjYzMiwwLDAsMCwxNi4wMTMsMy4zNzJcXFwiIHN0eWxlPVxcXCJmaWxsOiM1ODgxZDhcXFwiLz5cIixcblx0fSxcblx0XCJDTWFrZVwiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMWEzMDBcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjkuOTU1XFxcIiB5MT1cXFwiOS4wOTZcXFwiIHgyPVxcXCIxNi42OFxcXCIgeTI9XFxcIjIzLjMyNFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLCAwLCAwLCAtMSwgMCwgMzIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMTAxMWExXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNjk2OWUxXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCIxNi4yMzFcXFwiIHkxPVxcXCIxOS42NTVcXFwiIHgyPVxcXCIyNS42MThcXFwiIHkyPVxcXCIzLjc4MlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLCAwLCAwLCAtMSwgMCwgMzIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjYjQwZTBlXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmY1OTU5XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImNcXFwiIHgxPVxcXCIyMS42NjNcXFwiIHkxPVxcXCI0LjgyM1xcXCIgeDI9XFxcIjguMzgxXFxcIiB5Mj1cXFwiNS45MzhcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIDMyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzAxYTMwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzAxZGYwMFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJkXFxcIiB4MT1cXFwiMTQuNjQzXFxcIiB5MT1cXFwiOC4zNjhcXFwiIHgyPVxcXCIxNC40NzJcXFwiIHkyPVxcXCIxNC4xNDVcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIDMyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzg0ODQ4NFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2QyZDJkMlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfY21ha2U8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNy4yNTcsMTYuOTE5LDIuMjQ2LDI5Ljc0OSwxNS45OTQsMi4yODNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTIuMjYyLDI5Ljc2OGwtLjAzOC0uMDNMMTYuMDEyLDIuMTkzbC4wMDguMDg4TDE3LjI4MywxNi45M2wtLjAxLjAwOFpNMTUuOTc3LDIuMzc0LDIuMzI0LDI5LjY0OSwxNy4yMywxNi45MDhaXFxcIi8+PHBhdGggZD1cXFwiTTE3Ljk1MiwyNC45MzEsMTYsMi4yOCwyOS43NjcsMjkuNzUxWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0yOS44MTgsMjkuOGwtLjA2MS0uMDI1TDE3LjkyOSwyNC45NDhsMC0uMDE1TDE1Ljk3NSwyLjI4MmwuMDQ3LS4wMTNaTTE3Ljk3NiwyNC45MTMsMjkuNzE1LDI5LjcsMTYuMDM2LDIuNDA4WlxcXCIvPjxwYXRoIGQ9XFxcIk0xMS4xNiwyMi4wOTRsMTguNjIxLDcuNjU0SDIuMjVaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTI5Ljc4MSwyOS43NzNIMi4xODNsLjA1MS0uMDQ0LDguOTIxLTcuNjY1LjAxNC4wMDYsMTguNjIyLDcuNjU1Wm0tMjcuNDY0LS4wNUgyOS42NTRsLTE4LjQ4OS03LjZaXFxcIi8+PHBhdGggZD1cXFwiTTExLjE4OSwyMi4xMTJsNi4wNTktNS4xNjguODQzLDcuOThaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2QpXFxcIi8+PHBhdGggZD1cXFwiTTE4LjE0OSwyNWwtLjA3Ny0uMDMyLTYuOTc4LTIuODQyLDYuMTk0LTUuMjgzLjAxLjA5NFptLTYuODY1LTIuOSw2Ljc0OCwyLjc0OS0uODI0LTcuOFpcXFwiLz48cGF0aCBkPVxcXCJNMjkuNywyOS45MTFIMi4yODVhLjIyMS4yMjEsMCwwLDEtLjE4Mi0uMDg4LjIyMi4yMjIsMCwwLDEsLjAyMi0uMkwxNS44NjQsMi4xODdhLjE2OS4xNjksMCwwLDEsLjE0LS4xaDBhLjE1NC4xNTQsMCwwLDEsLjEzLjA4NUwyOS44NjcsMjkuNjA3YS4yMzguMjM4LDAsMCwxLC4wMi4yMjZBLjIxMS4yMTEsMCwwLDEsMjkuNywyOS45MTFabS0yNy40NjgtLjE2YS40ODQuNDg0LDAsMCwwLC4wNTcuMDExaDI3LjRsLjA3My0uMDA5YS4yMjEuMjIxLDAsMCwwLS4wMjgtLjA3N0wxNiwyLjI0OCwxNiwyLjI2LDIuMjYxLDI5LjY4NGEuMjc5LjI3OSwwLDAsMC0uMDI1LjA2N1pcXFwiLz5cIixcblx0fSxcblx0XCJDT0JPTFwiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMDVjYTVcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yMi4yNCw2LjU0NmE0LjQ0OSw0LjQ0OSwwLDAsMCwxLjc2NS0yLjUyMiw0LjYzNiw0LjYzNiwwLDAsMS0uMDE4LDIuMTU3Yy0uMjIzLjU4Mi0uNTY3LDEuMTA3LS44MzQsMS42NjlhMjEuNzcyLDIxLjc3MiwwLDAsMSw0LjU1OS0yLjkzOEMyNy4yMyw2LjQsMjUuODkxLDcuMywyNC45MDcsOC40NDJjLjE5LjQwOS4yOC45ODkuOCwxLjEwOWE1LjAzNiw1LjAzNiwwLDAsMCwyLjUuMTU1Yy45MTItLjMxMywxLjM0NS0xLjI1OCwxLjgtMi4wMzVWOS4xNGExNS43MzgsMTUuNzM4LDAsMCwxLS41ODIsMS43NDhjLjIuNTQ3LjQwOSwxLjA5Mi41ODIsMS42NDd2Ljk1MmMtLjIxNC4zNjgtLjQ0Mi43MjYtLjY2MywxLjA4OWE1LjI5Myw1LjI5MywwLDAsMC0xLjA2OC0xLjE2Miw0LjAzLDQuMDMsMCwwLDAtMS44NTEtLjEyNSwzLjIxMiwzLjIxMiwwLDAsMCwyLjQxMywxLjQ3Yy0uMzU5LjM3LS42NjMuOTEyLTEuMjMuOTY5LTEuNjQxLjI0Ny0zLjIwNy0uNTA1LTQuODM5LS41LS4yODIuMDItLjcwNy4wMjQtLjc4NS4zNzIsMCwuNzM1LjIxNywxLjQ1My4xOSwyLjE4OC0uMDU5LDEuMjU4LS41MTIsMi40NjYtLjUyOSwzLjcyNmExMy43ODUsMTMuNzg1LDAsMCwwLC44MzgsMy40NDhjLS41MjMtLjA3Ny0xLjA0NC0uMTY2LTEuNTYyLS4yNi0uMS4yMDgtLjE4NC40Mi0uMjYuNjM0QTQuNTE0LDQuNTE0LDAsMCwwLDIxLjgsMjYuNTMxYy0uMDYxLjEyNy0uMTgyLjM4MS0uMjQxLjUwOGwtLjU3My4xMzhjLS4xMzEuMjQ3LS4yNjMuNDkyLS40LjczOWE0LjQyMSw0LjQyMSwwLDAsMC0yLjIuMDYxYy0uNDY2LS4xODYtLjkyOC0uMzc2LTEuMzg5LS41NjdhNS45MzksNS45MzksMCwwLDAsLjQwNy0yLjMxNWMtLjI4Mi0uOTgyLTEuNi0uOTg0LTItMS44NzdhNi4yMzMsNi4yMzMsMCwwLDEtMS4wMjItMi44NTFjLS44MjMtLjQzMy0xLjQ1NS0xLjIyMS0yLjQtMS40LS4wNDguNDA5LS4wODMuODItLjE1MywxLjIyN0E2LjAxNSw2LjAxNSwwLDAsMSwxMC40ODEsMjIuNmMuMDM5LjQyMi4wNzkuODQyLjEyLDEuMjY1LjM0Ni4zMjQuNjkxLjY0OCwxLjAzMy45NzRhOS43NTIsOS43NTIsMCwwLDEtMS40MjYuNzEzLDExLjExNCwxMS4xMTQsMCwwLDEtMS42ODcuMDc3Yy0uMjU4LS4yNTQtLjUxOC0uNTA4LS43NzctLjc2NGE0Ljg3MSw0Ljg3MSwwLDAsMCwuMTE0LTIuNjA4Yy4xNzEtLjQuMzI2LS44MTIuNDc1LTEuMjIxYTUuNTY1LDUuNTY1LDAsMCwxLTMuMDEuMjA2LDUuMTIsNS4xMiwwLDAsMS0zLjI5LTQuMzMsMy44NTksMy44NTksMCwwLDEsMS40MDctMy4yNjhBNi40MSw2LjQxLDAsMCwwLDMuMiwxNi4yNTlhMy4wMzgsMy4wMzgsMCwwLDAsMi41LDIuNDY2LDMuNDYyLDMuNDYyLDAsMCwwLDEuOTYtLjY0Myw3LjQ4LDcuNDgsMCwwLDEsLjM2My00LjEzMyw1LjUyNCw1LjUyNCwwLDAsMSwzLjU4Ni0yLjY2LDQuMjM1LDQuMjM1LDAsMCwwLDIuMDExLTEuNTY2LDEwLjY3LDEwLjY3LDAsMCwxLDEuNTI5LTEuMzNjLS4yMjgtLjIxOS0uNDUzLS40NC0uNjgtLjY1OUEyLjE1NCwyLjE1NCwwLDAsMCwxNS45LDYuMDIzYzEuMjg0LS4zLDIuNTUxLS42NjEsMy44Mi0xLjAxMWEzLjc5MywzLjc5MywwLDAsMCwxLjQxNS42MDZjLjMxNy4zNDYuNDk0LDEuMTU3LDEuMS45MjhNMTguNDU4LDE5LjkwOGMuMDQyLjc2OC0uMDQ4LDEuNjY1LjY3NCwyLjE1NSwwLS43NTUtLjA0Ni0xLjUwNy0uMS0yLjI2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNWNhNVxcXCIvPlwiLFxuXHR9LFxuXHRcIkNvZmZlZVNjcmlwdFwiOiB7XG5cdFx0Y29sb3VyOiBcIiM2ZjRlMzdcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xMy4xMTQsNS43MjhjLjAyNS4xNTMtLjA1MS4yOC0uMzA2LjQwOGEzLjQ1NywzLjQ1NywwLDAsMC0xLjYzLS4yMjljLS42MzcuMDUxLTEuMTcyLjI1NS0xLjEuNjg4LjEuNDMzLjcxMy42ODgsMS44MDguNTg2LDIuNjc0LS4yMjksMi42NDktMi4wMzgsNi41NzEtMi4zOTQsMy4wNTYtLjI4LDQuNzYzLjY2Miw0Ljk5MiwxLjgwOC4xNzguODkxLS41NiwxLjc1Ny0yLjc3NiwxLjkzNi0xLjk2MS4xNzgtMy4xMDctLjM1Ny0zLjIwOS0uODkxLS4wNTEtLjI4LjEtLjY4OCwxLjA0NC0uNzkuMS40MzMuNjM3Ljg5MSwxLjkxLjc2NEMyMS4zNDEsNy41MzYsMjIuMSw3LjIsMjIsNi43Yy0uMS0uNTM1LTEuMDctLjg0LTIuNi0uNzEzLTMuMTA3LjI4LTMuODcxLDEuOTg3LTYuNTIsMi4yMTZDMTEsOC4zNzYsOS40NzIsNy42ODksOS4yNjgsNi42N2MtLjA3Ni0uMzgyLS4wNzYtMS4yNzMsMS45MS0xLjQ1MiwxLjAxOS0uMDc2LDEuODM0LjEsMS45MzYuNTA5Wk0zLjE4MSwxNi4zNzRBNS4yNzksNS4yNzksMCwwLDAsMi4wMSwxOS45OWE0LjIwNiw0LjIwNiwwLDAsMCwxLjY1NSwzLjA1Niw0LDQsMCwwLDAsMy4zNjIuNzksMTEuNDM0LDExLjQzNCwwLDAsMCwxLjUtLjQ4NCw0LjIzOCw0LjIzOCwwLDAsMS0yLjc1MS0xLjAxOSw0LjEzLDQuMTMsMCwwLDEtMS43MzItMi44MjdBMy43OSwzLjc5LDAsMCwxLDQuNjU4LDE2LjUsMy45NzcsMy45NzcsMCwwLDEsNy40MDksMTVhNC44MDYsNC44MDYsMCwwLDEsMy4yMDkuOTQyLDYuOTUsNi45NSwwLDAsMC0uODY2LS44NjYsNC4xLDQuMSwwLDAsMC0zLjQ2NC0uNjg4LDUuMiw1LjIsMCwwLDAtMy4xMDcsMS45ODdaTTE2LjgzMywxMC40OUE0MC44MzcsNDAuODM3LDAsMCwxLDguNSw5LjdDNi4yMzcsOS4xNCw1LjA0LDguNTI5LDUuMDQsNy43NGMwLS4zMzEuMTUzLS42MTEuNjExLS45NDItMS40MjYuNTYtMi4xOSwxLjAxOS0yLjE5LDEuNzMyLjA3Ni43OSwxLjM1LDEuNTc5LDMuOTQ4LDIuMTlhMzkuNDQzLDM5LjQ0MywwLDAsMCw5LjM0Ny45NDJBMzguOTkzLDM4Ljk5MywwLDAsMCwyNi4xLDEwLjcyYzIuNi0uNjExLDMuODQ2LTEuNDI2LDMuODQ2LTIuMTksMC0uNTYtLjU2LTEuMS0xLjU3OS0xLjVhLjg2Mi44NjIsMCwwLDEsLjQwOC42ODhjMCwuNzktMS4xNzIsMS40MjYtMy41NCwxLjk2MUEzOS4zMjQsMzkuMzI0LDAsMCwxLDE2LjgzMywxMC40OVptOS4zNzMsMi4xOWE0Mi4zMTUsNDIuMzE1LDAsMCwxLTkuMzQ3Ljk0Miw0NC4xNDQsNDQuMTQ0LDAsMCwxLTkuNDI0LS45NDJjLTIuMTktLjU2LTMuMzYyLTEuMTcyLTMuNzY5LTEuODA4YTIzLjE4NiwyMy4xODYsMCwwLDAsMi42LDcuNjQxYy45NDIsMS40MjYsMS44ODUsMi42NzQsMi44MjcsNC4wMjRhOS44ODMsOS44ODMsMCwwLDEsLjg2NiwyLjM2OSw0LjU1OSw0LjU1OSwwLDAsMCwyLjYsMS43MzIsMTAuNjExLDEwLjYxMSwwLDAsMCw0LjE3Ny42MTFoLjE1M2ExMS44MzksMTEuODM5LDAsMCwwLDQuMy0uNjExLDQuODY5LDQuODY5LDAsMCwwLDIuNTIxLTEuNzMyaC4wNzZhOS41OTIsOS41OTIsMCwwLDEsLjc5LTIuMzY5Yy45NDItMS4zNSwxLjg4NS0yLjYsMi44MjctNC4wMjRBMjQuNjIsMjQuNjIsMCwwLDAsMzAsMTAuODcyQzI5LjQ5MSwxMS41ODUsMjguMzE5LDEyLjIsMjYuMjA1LDEyLjY4MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2ZjRlMzdcXFwiLz5cIixcblx0fSxcblx0XCJDcnlzdGFsXCI6IHtcblx0XHRjb2xvdXI6IFwiI2M4YzhjOFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTI5Ljk0MSwxOS44MTYsMTkuOCwyOS45MjhjLS4wMjguMDI4LS4wODUuMDI4LS4xNjkuMDI4TDUuOCwyNi4yNjdjLS4wMjgsMC0uMDg0LS4wMjgtLjExMy0uMTEzTDIsMTIuMzUyYS40MTkuNDE5LDAsMCwxLC4wMjgtLjE2OUwxMi4xNjgsMi4wNzJjLjAyOC0uMDI4LjA4NC0uMDI4LjE2OS0uMDI4bDEzLjgzLDMuNzE4Yy4wMjgsMCwuMDg0LjAyOC4xMTMuMTEzbDMuNjksMTMuOEMzMC4wMjYsMTkuNzMyLDMwLDE5Ljc4OCwyOS45NDEsMTkuODE2Wk0xNi4zOTMsOC44MzIsMi44MTcsMTIuNDkzcS0uMDQyLDAsMCwuMDg0TDEyLjc2LDIyLjUyYy4wMjguMDI4LjAyOCwwLC4wODQsMEwxNi41MDYsOC45NzJDMTYuNDQ5LDguODMyLDE2LjM5Myw4LjgzMiwxNi4zOTMsOC44MzJaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzhjOGM4XFxcIi8+XCIsXG5cdH0sXG5cdFwiQ1NTXCI6IHtcblx0XHRjb2xvdXI6IFwiIzE1NzJiNlwiLFxuXHRcdGljb246IFwiPHBvbHlnb24gcG9pbnRzPVxcXCI1LjkwMiAyNy4yMDEgMy42NTYgMiAyOC4zNDQgMiAyNi4wOTUgMjcuMTk3IDE1Ljk4NSAzMCA1LjkwMiAyNy4yMDFcXFwiIHN0eWxlPVxcXCJmaWxsOiMxNTcyYjZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2IDI3Ljg1OCAyNC4xNyAyNS41OTMgMjYuMDkyIDQuMDYxIDE2IDQuMDYxIDE2IDI3Ljg1OFxcXCIgc3R5bGU9XFxcImZpbGw6IzMzYTlkY1xcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYgMTMuMTkxIDIwLjA5IDEzLjE5MSAyMC4zNzIgMTAuMDI2IDE2IDEwLjAyNiAxNiA2LjkzNSAxNi4wMTEgNi45MzUgMjMuNzUgNi45MzUgMjMuNjc2IDcuNzY0IDIyLjkxNyAxNi4yODIgMTYgMTYuMjgyIDE2IDEzLjE5MVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYuMDE5IDIxLjIxOCAxNi4wMDUgMjEuMjIyIDEyLjU2MyAyMC4yOTIgMTIuMzQzIDE3LjgyNyAxMC42NyAxNy44MjcgOS4yNCAxNy44MjcgOS42NzMgMjIuNjggMTYuMDA0IDI0LjQzOCAxNi4wMTkgMjQuNDM0IDE2LjAxOSAyMS4yMThcXFwiIHN0eWxlPVxcXCJmaWxsOiNlYmViZWJcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE5LjgyNyAxNi4xNTEgMTkuNDU1IDIwLjI5IDE2LjAwOCAyMS4yMiAxNi4wMDggMjQuNDM2IDIyLjM0NCAyMi42OCAyMi4zOTEgMjIuMTU4IDIyLjkyOCAxNi4xNTEgMTkuODI3IDE2LjE1MVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYuMDExIDYuOTM1IDE2LjAxMSA4Ljg1NSAxNi4wMTEgMTAuMDE4IDE2LjAxMSAxMC4wMjYgOC41NTUgMTAuMDI2IDguNTU1IDEwLjAyNiA4LjU0NSAxMC4wMjYgOC40ODMgOS4zMzEgOC4zNDIgNy43NjQgOC4yNjggNi45MzUgMTYuMDExIDYuOTM1XFxcIiBzdHlsZT1cXFwiZmlsbDojZWJlYmViXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNiAxMy4xOTEgMTYgMTUuMTExIDE2IDE2LjI3NCAxNiAxNi4yODIgMTIuNjExIDE2LjI4MiAxMi42MTEgMTYuMjgyIDEyLjYwMSAxNi4yODIgMTIuNTM5IDE1LjU4NyAxMi4zOTkgMTQuMDIgMTIuMzI1IDEzLjE5MSAxNiAxMy4xOTFcXFwiIHN0eWxlPVxcXCJmaWxsOiNlYmViZWJcXFwiLz5cIixcblx0fSxcblx0XCJDU1ZcIjoge1xuXHRcdGNvbG91cjogXCIjYzJjMmMyXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjIuMDM4LDJINi4zNzVhMS43NTUsMS43NTUsMCwwLDAtMS43NSwxLjc1djI0LjVBMS43NTUsMS43NTUsMCwwLDAsNi4zNzUsMzBoMTkuMjVhMS43NTUsMS43NTUsMCwwLDAsMS43NS0xLjc1VjYuODU2Wm0uNTI1LDIuODQ0LDEuNjYzLDEuNTMxSDIyLjU2M1pNNi4zNzUsMjguMjVWMy43NUgyMC44MTNWOC4xMjVoNC44MTNWMjguMjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+PHJlY3QgeD1cXFwiOC4xMjVcXFwiIHk9XFxcIjE1LjA5N1xcXCIgd2lkdGg9XFxcIjEzLjA3NlxcXCIgaGVpZ2h0PVxcXCIxLjc1XFxcIiBzdHlsZT1cXFwiZmlsbDojODI5ZWMyXFxcIi8+PHJlY3QgeD1cXFwiOC4xMjVcXFwiIHk9XFxcIjI0LjQzOVxcXCIgd2lkdGg9XFxcIjkuNzYyXFxcIiBoZWlnaHQ9XFxcIjEuNzVcXFwiIHN0eWxlPVxcXCJmaWxsOiM4MjllYzJcXFwiLz48cmVjdCB4PVxcXCI4LjEyNVxcXCIgeT1cXFwiMTkuNzYzXFxcIiB3aWR0aD1cXFwiMTUuNzVcXFwiIGhlaWdodD1cXFwiMS43NVxcXCIgc3R5bGU9XFxcImZpbGw6IzgyOWVjMlxcXCIvPjxyZWN0IHg9XFxcIjguMTI1XFxcIiB5PVxcXCIxMC4yM1xcXCIgd2lkdGg9XFxcIjE1Ljc1XFxcIiBoZWlnaHQ9XFxcIjEuNzVcXFwiIHN0eWxlPVxcXCJmaWxsOiM4MjllYzJcXFwiLz5cIixcblx0fSxcblx0XCJEXCI6IHtcblx0XHRjb2xvdXI6IFwiI2IwMzkzMVwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMTg1LjQ1NVxcXCIgeTE9XFxcIjE2MDEuNjQxXFxcIiB4Mj1cXFwiMTgxLjk1NVxcXCIgeTI9XFxcIjE2MzAuMjI0XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC02Mi41MjMgLTY2Ni42NDYpIHNjYWxlKDAuNDI3KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCIxNzYuMTM2XFxcIiB5MT1cXFwiMTYwMC41XFxcIiB4Mj1cXFwiMTcyLjYzNlxcXCIgeTI9XFxcIjE2MjkuMDgzXFxcIiB4bGluazpocmVmPVxcXCIjYVxcXCIvPjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2RsYW5nPC90aXRsZT48cGF0aCBkPVxcXCJNMy45NzgsMTUuNDYyLDMuOTY5LDguNTA5QS41ODguNTg4LDAsMCwxLDQuNSw3Ljk0N2EuNjU4LjY1OCwwLDAsMSwuMDc2LDBsNi4wNzQtLjAwOWExNS43LDE1LjcsMCwwLDEsNi4wNjcuOTUsOC45LDguOSwwLDAsMSwyLjI0NCwxLjM1OSw0LjQ2OSw0LjQ2OSwwLDAsMSwyLjk0Ni0xLjA4Myw0LjExLDQuMTEsMCwwLDEsNC4yNzYsMy45MkE0LjExLDQuMTEsMCwwLDEsMjEuOTA3LDE3Yy0uMDg5LDAtLjE3Ny0uMDA4LS4yNjUtLjAxMmE2LjYxNyw2LjYxNywwLDAsMS0uMjMyLjk1Myw4NS4zODMsODUuMzgzLDAsMCwxLDguNTksMi42VjJIMlYxNS40UTIuOTkyLDE1LjQyLDMuOTc4LDE1LjQ2MlptMjIuOC03Ljk0NGExLjMyLDEuMzIsMCwwLDEsMS4zNzQsMS4yNTksMS4zNzksMS4zNzksMCwwLDEtMi43NDcsMEExLjMyLDEuMzIsMCwwLDEsMjYuNzgsNy41MTdaXFxcIiBzdHlsZT1cXFwiZmlsbDojYjAzOTMxXFxcIi8+PHBhdGggZD1cXFwiTTE3Ljg2MSwxNS43ODdhNC4xMTQsNC4xMTQsMCwwLDAtMS43NDgtMy40NTgsNS44MTQsNS44MTQsMCwwLDAtMS41MDgtLjgyMiw3LjM1NCw3LjM1NCwwLDAsMC0xLjYyOS0uNDM4LDIxLjYyOSwyMS42MjksMCwwLDAtMi41ODgtLjFsLTIuNjE5LDAsLjAwNiw0LjczN2E4OC44MjcsODguODI3LDAsMCwxLDkuOTEsMS40MDhBNC45MTksNC45MTksMCwwLDAsMTcuODYxLDE1Ljc4N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNiMDM5MzFcXFwiLz48cGF0aCBkPVxcXCJNMjAuOTkzLDE4Ljk3OWE3LjkwNiw3LjkwNiwwLDAsMS0yLjEyOCwyLjU4Miw5LjczOSw5LjczOSwwLDAsMS0zLjI1NiwxLjcxLDExLjU1OCwxMS41NTgsMCwwLDEtMS45NzEuNDcyaC0uMDE1YTMxLjg1NywzMS44NTcsMCwwLDEtMy4zMjYuMTExbC01LjYyNS4wMjJhLjYxNi42MTYsMCwwLDEtLjY4Ni0uNjgxbC0uMDEtNy43MzRRMi45OTIsMTUuNDIsMiwxNS40VjMwSDMwVjIwLjU0NGE4NS4zODMsODUuMzgzLDAsMCwwLTguNTktMi42QTYuOTg1LDYuOTg1LDAsMCwxLDIwLjk5MywxOC45NzlaXFxcIiBzdHlsZT1cXFwiZmlsbDojYjAzOTMxXFxcIi8+PHBhdGggZD1cXFwiTTIwLjk5MywxOC45NzlhNy45MDYsNy45MDYsMCwwLDEtMi4xMjgsMi41ODIsOS43MzksOS43MzksMCwwLDEtMy4yNTYsMS43MSwxMS41NTgsMTEuNTU4LDAsMCwxLTEuOTcxLjQ3MmgtLjAxNWEzMS44NTcsMzEuODU3LDAsMCwxLTMuMzI2LjExMWwtNS42MjUuMDIyYS42MTYuNjE2LDAsMCwxLS42ODYtLjY4MWwtLjAxLTcuNzM0UTIuOTkyLDE1LjQyLDIsMTUuNFYzMEgzMFYyMC41NDRhODUuMzgzLDg1LjM4MywwLDAsMC04LjU5LTIuNkE2Ljk4NSw2Ljk4NSwwLDAsMSwyMC45OTMsMTguOTc5WlxcXCIgc3R5bGU9XFxcIm9wYWNpdHk6MC4zMDAwMDAwMTE5MjA5Mjk7aXNvbGF0aW9uOmlzb2xhdGU7ZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTEwLjQ3NywyMC44MzVhMTYuMDE0LDE2LjAxNCwwLDAsMCwyLjg3Ny0uMiw3LjYzMyw3LjYzMywwLDAsMCwxLjYyOC0uNSw1LjYyOCw1LjYyOCwwLDAsMCwxLjE4Ny0uNzQ4LDQuNDU3LDQuNDU3LDAsMCwwLDEuNTE4LTIuMjcxLDg4LjY5MSw4OC42OTEsMCwwLDAtOS45MS0xLjQwOGwuMDA2LDUuMTMzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2IwMzkzMVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC40NzcsMjAuODM1YTE2LjAxNCwxNi4wMTQsMCwwLDAsMi44NzctLjIsNy42MzMsNy42MzMsMCwwLDAsMS42MjgtLjUsNS42MjgsNS42MjgsMCwwLDAsMS4xODctLjc0OCw0LjQ1Nyw0LjQ1NywwLDAsMCwxLjUxOC0yLjI3MSw4OC42OTEsODguNjkxLDAsMCwwLTkuOTEtMS40MDhsLjAwNiw1LjEzM1pcXFwiIHN0eWxlPVxcXCJvcGFjaXR5OjAuMzAwMDAwMDExOTIwOTI5O2lzb2xhdGlvbjppc29sYXRlO2ZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC4zODMsMTEuNzQ2YTYuOTkzLDYuOTkzLDAsMCwxLDEuMzYsNC4xNDgsNi42MTgsNi42MTgsMCwwLDEtLjEsMS4xYy4wODgsMCwuMTc2LjAxMi4yNjUuMDEyYTQuMTEsNC4xMSwwLDAsMCw0LjI3Ni0zLjkyLDQuMTEsNC4xMSwwLDAsMC00LjI3Ni0zLjkyLDQuNDcsNC40NywwLDAsMC0yLjk0NiwxLjA4M0E4LjEyMyw4LjEyMywwLDAsMSwyMC4zODMsMTEuNzQ2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxlbGxpcHNlIGN4PVxcXCIyNi43OFxcXCIgY3k9XFxcIjguNzc3XFxcIiByeD1cXFwiMS4zNzRcXFwiIHJ5PVxcXCIxLjI1OVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk00LjY3MywyMy44NzdsNS42MjUtLjAyMmEzMS44NzEsMzEuODcxLDAsMCwwLDMuMzI2LS4xMTFoLjAxNWExMS40OSwxMS40OSwwLDAsMCwxLjk3MS0uNDcyLDkuNzM5LDkuNzM5LDAsMCwwLDMuMjU2LTEuNzEsNy45MDYsNy45MDYsMCwwLDAsMi4xMjgtMi41ODIsNi45ODUsNi45ODUsMCwwLDAsLjQxNy0xLjAzNCw3LjA1Niw3LjA1NiwwLDAsMCwuMzMyLTIuMDUxLDYuOTkyLDYuOTkyLDAsMCwwLTEuMzYtNC4xNDgsOC4xLDguMSwwLDAsMC0xLjQyMS0xLjUsOC44NzgsOC44NzgsMCwwLDAtMi4yNDQtMS4zNTksMTUuNjg2LDE1LjY4NiwwLDAsMC02LjA2Ny0uOTVsLTYuMDc0LjAwOWEuNjU4LjY1OCwwLDAsMC0uMDc2LDAsLjU4OC41ODgsMCwwLDAtLjUzMi41NjJsLjAwOSw2Ljk1Mi4wMSw3LjczNEEuNjE2LjYxNiwwLDAsMCw0LjY3MywyMy44NzdabTMuMS0xMi45MDgsMi42MTksMGEyMS42MjMsMjEuNjIzLDAsMCwxLDIuNTg4LjEsNy4zNTQsNy4zNTQsMCwwLDEsMS42MjkuNDM4LDUuODE0LDUuODE0LDAsMCwxLDEuNTA4LjgyMiw0LjExNiw0LjExNiwwLDAsMSwxLjc0OCwzLjQ1OCw0LjkwNSw0LjkwNSwwLDAsMS0uMTc1LDEuMzI3LDQuNDU3LDQuNDU3LDAsMCwxLTEuNTE4LDIuMjcxLDUuNjEzLDUuNjEzLDAsMCwxLTEuMTg3Ljc0OCw3LjY2Niw3LjY2NiwwLDAsMS0xLjYyOC41LDE2LjAwOSwxNi4wMDksMCwwLDEtMi44NzcuMmwtMi42OTQsMC0uMDA2LTUuMTMzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcdGlubGluZUNvbW1lbnQ6IFtcblx0XHRcdFwiLy9cIixcblx0XHRdLFxuXHR9LFxuXHRcIkRhcnRcIjoge1xuXHRcdGNvbG91cjogXCIjNThiNmYwXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTYuNzM5LDIuMDM3YTEuMzE0LDEuMzE0LDAsMCwwLS45MTYuMzc3bC0uMDEzLjAxTDcuMjIsNy4zODlsOC41NjYsOC41NjZ2LjAwNmwxMC4zLDEwLjMsMS45NjMtMy41MzZMMjAuOTY4LDUuNzI4bC0zLjMtMy4zYTEuMzA3LDEuMzA3LDAsMCwwLS45MjctLjM4OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NmMzZmFcXFwiLz48cGF0aCBkPVxcXCJNNy4yNSw3LjM1LDIuMjg4LDE1LjkzMWwtLjAxLjAxM2ExLjMyMiwxLjMyMiwwLDAsMC0uMzc4LjkxOSwxLjMsMS4zLDAsMCwwLC4zODcuOTI0TDYuNCwyMS45bDE2LjA4NCw2LjMyNywzLjYzNi0yLjAyLS4xLS4xLS4wMjUsMC0xMC4wODMtMTAuMUgxNS45TDcuMjUsNy4zNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMTU4OTZcXFwiLz48cGF0aCBkPVxcXCJNNy4xOTIsNy4zNjJsOC43NjQsOC43NzNoLjAxM2wxMC4wODcsMTAuMSwzLjgzOS0uNzMyTDI5LjksMTQuMTRsLTQuMDU0LTMuOTczYTYuNTIxLDYuNTIxLDAsMCwwLTMuNjI0LTEuNjE2bDAtLjA0NEw3LjE5Miw3LjM2MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzU5OTdcXFwiLz48cGF0aCBkPVxcXCJNNy4yNTYsNy40MTFsOC43NjgsOC43Njh2LjAxM0wyNi4xMTYsMjYuMjg0bC0uNzM0LDMuODM5SDE0LjAyMmwtMy45NzEtNC4wNTZhNi41MjIsNi41MjIsMCwwLDEtMS42MTQtMy42MjVsLS4wNDQsMEw3LjI1Niw3LjQxMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM1OGI2ZjBcXFwiLz5cIixcblx0fSxcblx0XCJEaGFsbFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNiN2I3YjdcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xNiwyLjA3QTEzLjkzLDEzLjkzLDAsMSwxLDIsMTYsMTMuOTMsMTMuOTMsMCwwLDEsMTYsMi4wN1pNMTMuMjgsMjIuMzJhMS40OSwxLjQ5LDAsMSwxLTEsMS44M0ExLjQ5LDEuNDksMCwwLDEsMTMuMjgsMjIuMzJabTgtMTUuNjhhLjUzLjUzLDAsMCwxLC4zOC42Ni41Mi41MiwwLDAsMS0uNjUuMzhsLS41LS4xM2E0Mi42Nyw0Mi42NywwLDAsMC0uMzcsNy4wN0MxOC4wNiwxNi40NSwxNC4zOSwyMiwxNC4zOSwyMmwxLjkzLTcuMThhMSwxLDAsMCwwLC44OS0uNjUuOTEuOTEsMCwwLDAtMS43NS0uNDcsMSwxLDAsMCwwLC40NSwxTDE0LDIxLjg1YTY4LjM4LDY4LjM4LDAsMCwwLTEuMzQtOS4yNSwzNC4yOCwzNC4yOCwwLDAsMCwzLjIxLTYuMzFsLS41LS4xM0EuNTUuNTUsMCwwLDEsMTUsNS41YS41My41MywwLDAsMSwuNjYtLjM4bDUuNjgsMS41MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiN2I3Yjc7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz5cIixcblx0fSxcblx0XCJEaWZmXCI6IHtcblx0XHRjb2xvdXI6IFwiI2MwMDAwMFwiLFxuXHRcdGljb246IFwiPHJlY3QgeD1cXFwiNi45NzVcXFwiIHk9XFxcIjNcXFwiIHdpZHRoPVxcXCIxOC4wNVxcXCIgaGVpZ2h0PVxcXCI2LjAxN1xcXCIgc3R5bGU9XFxcImZpbGw6I2MwMDAwMFxcXCIvPjxwYXRoIGQ9XFxcIk0xMi45OTIsMTAuOTV2Ni4wMTdINi45NzV2Ni4wMTdoNi4wMTdWMjloNi4wMTdWMjIuOTgzaDYuMDE3VjE2Ljk2N0gxOS4wMDhWMTAuOTVaXFxcIiBzdHlsZT1cXFwiZmlsbDpncmVlblxcXCIvPlwiLFxuXHR9LFxuXHRcIkRqYW5nby9KaW5qYTJcIjoge1xuXHRcdGNvbG91cjogXCIjZmYwMDAwXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImFcXFwiIGN4PVxcXCIxNlxcXCIgY3k9XFxcIi0xMTkuMjgzXFxcIiByPVxcXCIxMy41XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEsIDAsIDAsIC0wLjk0NSwgMCwgLTk2LjczNSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM1NzU3NTdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMyZjJmMmZcXFwiLz48L3JhZGlhbEdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2ppbmphPC90aXRsZT48cGF0aCBkPVxcXCJNMjkuMzQsMy4yNDFhMzguMjcxLDM4LjI3MSwwLDAsMS05LjQ1MSwzLjA0Yy00LjI0MS41NS0xMi4zMjksMS4xLTEzLjkzNS43MTJBMjMuMywyMy4zLDAsMCwxLDMuMiw2LjE1MWwuMzM0LDEuMTMyTDIuNSw4LjE4OGwuMTgzLjMyMy40MjQuMDMyLDEuMy4xNjIuMTgzLjU4Mi43MjcuMDY2LjM2NCwxLjIyOHMxLjU0NC4xMywyLC4xMywxLjM2My0uMDY0LDEuMzYzLS4wNjRsLjAzLjQ4NS4zMzQuMDY0di41NWwtLjcyOC42NDguMTgzLjAzMnYuMjI1YTE1LjgxNiwxNS44MTYsMCwwLDEtMi4zLjAzNGMtLjY2Ni0uMS0uNzg4LS4xLS43ODgtLjFsLS4wNi4wNjQtLjAzLjI5MWguMTUxbC4wNiwxLjI2MiwzLjM2My0uMTMtLjI0Myw0LjM2NS0uMDMuNTQ5LTIuODQ4LS4xNjItLjAzLTEuMTY0aC42MzVsLjA2MS0uNDUzLjU3NS0uMTMuMDkxLS4xMjgtMi4xNTEtLjUxOC0xLjYzNi40ODUuMjczLjIyN2guMjczbC4wMy4zODkuNTc1LjAzMlYxOC43bC0uNjM1LjE2Mi4xMjEuMjU3LjE1MS4xdi44NzNoLjM5NHY0LjA0MWwtLjYzNy4xLjA5MSwxLjE2NC4zOTMuMDY2LS4wNiwyLjY1MSwxLjcyNy4wMzItLjM2NC0yLjYxOSwyLjYwNS0uMDY0LS4xODEsMS40MjItLjI0MywxLDIuNjM1LjAzMi4wMy0yLjU4NiwxLjgxNy0uMTYyLS4wOSwxLjY0OS0uMDYxLjk2OWgxLjU0NmwtLjA2MS0yLjY1MS4yMTMuMDM0LjA2LTEuMjYyaC0uMjQzbC0uMDktLjUxOEwxMy44LDIxLjlsLjA2LTEuNzEzaC4zMzNWMTkuMTQ5bC0uNDI0LjAzMi4wNjEtMS4yMi40OTMtLjA0OS4wMjMtLjQuMjgtLjA0MS4yODctLjIxOEwxMy4xODcsMTYuOWwtMS43MTIuMzc5LjE2Ny4yNzQuMTgxLS4wMTUuMjExLS4wMDguMDM5LjUuNDc3LS4wMjMuMDA5LDEuMDgyLTIuMDUzLS4wNDcuMDY5LTEuMTU2LjA2Ny0xLjA1MVYxNS40NTVMMTAuNywxNGw0LjExMS0uMjEsNC44OTItLjI4Mi4wNDYuOTI5LS4xNzQsMi4yMzFMMTkuNSwxOC43NDRsLTEuOC0uMDMyLS4wMDktMS40NTUuNjY3LS4wMjQuMDMtLjQxMS4yNzMtLjA0MS0uMDE0LS4wODEuMjczLS4wMTUuMTUxLS4yTDE3LjAzNCwxNiwxNSwxNi40NGwuMTQ0LjI1MS4yMjctLjAxN3YuMTE0aC4yOHYuNDZsLjYuMDA4LS4wMDcsMS4yNzdoLS42MDVsLS4wMDkuMjkxLjIxMy4wMjQtLjAyMywxLjEwOC40NDcuMDI0LS4wNTMsNC4zOS0uNTkxLjEyLjAwNy4yMWguMjA2djEuMTI0aC4zNGwtLjA5LDEuNTM2TDE1Ljk3NCwyOC43bDIuMTUxLjA1Ni0uMDY5LTEuMTY0LS4xNTgtLjk2OS0uMDMxLS44NDEsMS44MjYtLjAzMi0uMDUzLDEuMy0uMDA5LDEuMzc0LDEuMDMxLjA4MSwxLjQtLjA1Ni40NC0uMTMtLjI0My0uNzM2LS4wNi0xLjE1Ni0uMTE0LS44MjQsMS43NDItLjA2NC0uMDc2LDEuMDEtLjAwNywxLjU4NS43LjA2NC42OS0uMDE1LjMzMy0uMTA1LS4yLTEuNUwyNS4yLDI1LjQ0NWwuMy0uMDMyTDI1LjUsMjQuNGwuMDgzLS4wMTctLjAxNC0uMjE4aC0uMzQxbC0uMDY5LS43NDRMMjUuMTMsMjAuMmwuMjU3LS4wMDhWMTkuMTMzbC4xMDcuMDE3di0uMjFsLS4zOC0uMDM0LjAwOS0xLjIyOC42MzUtLjA1Ni0uMDM3LS40MTMuMjgtLjAyNC0uMDE2LS4wODEuMzcxLS4xODYtMS44ODYtLjM3OS0xLjkxNi4zODkuMTIxLjIyNi4zLS4wMjQuMDE2LjFoLjI1bC4wMTQuNDg1LjYyMS0uMDA4LjA1MywxLjE4OC0yLjItLjAxNy0uMjU3LTEuNzg2LS4yMDYtLjk0Ni0uMTY2LTEuNy4xLS45OTMsNC4zNzctLjMzMi4wMTQtMS40NzkuMjItLjA1Ni0uMDE0LS4yMjUtLjE2Ny0uMXMtMi4zOTMuMzU1LTMuMTUxLjQzNmwtLjM3MS4wNC0uMDIzLS4yNzQtLjkwNS0uNDc0LjAxMS0uNTUyLjMxMS0uMDA5LjAyMy0uNzU5YTI0LjgwNywyNC44MDcsMCwwLDAsMi41NDQtLjI4M2MuNjg5LS4xNjIsMS42NjYtLjMyMywxLjY2Ni0uMzIzTDI2LjIsNy44MDlsLjkxNy0uMjY3LjA3Ni0uMjEsMi4wNzQtLjU3NC4yMzYtLjE5NC0uNzg4LTEuNzIyLjA3Ni0uMzg5LjQtLjIxLjI4OC0uODgxWk0xOS4zNzQsOS44bC0uMDExLjYyNi40Ny4wMi0uMDMuNTk0LS45MjEuNi0uMDU3LjE3NC4zNzEsMCwwLC4xNDYtMi44MTQuMTM3LjAxOS0uNDE2LjEyOC0uMjA3LjAwOS0uMTMzLDAtLjI4Ni4wOC0uMTkuMDMtLjE1NHYtLjExbC4xMjEtLjQ4NVptLTUuODg1LjUzMy0uMDY5LjQyMS4yMi4yNTktLjAxNC40NTMuMi4zMTUtLjA1My4zNzIuMTUxLjIxOC0yLjg3MS4xMTMtLjAwNy0uMS4zMzMtLjA0MS4wMTYtLjEyMi0uNzI3LS4zOTUtLjAzOS0uNjMxLjM0OC0uMDE3LjAzLS42OFptNC4yNDksOS43LDEuNzQyLjExM0wxOS40MiwyMi41bC4yMjcsMS45MjNMMTcuOCwyNC4zNTRabS0xMS42NjMuMSwyLjc4OC4xNDVMOC42MiwyMS45djEuMzU5bC4yLjc1OS0yLjcyNy4xM1ptMTcuODQzLjAxNXY0LjAxbC0xLjc3Mi4xMy0uMDYxLTIuMTE4LS4yLTEuOTczWk0xMC41LDIwLjI0bDIuMDYuMDA4LjAyMSwzLjcxOEwxMC42NTcsMjRsLS4xLTEuMjA1LS4wMDctMS4yWlxcXCIgc3R5bGU9XFxcInN0cm9rZTpyZWQ7c3Ryb2tlLXdpZHRoOjAuNXB4O2ZpbGw6dXJsKCNhKVxcXCIvPlwiLFxuXHR9LFxuXHRcIkRvY2tlclwiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMDk2ZTZcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xNi41NCwxMi42NjNIMTkuNHYyLjkyNGgxLjQ0NmE2LjI3Miw2LjI3MiwwLDAsMCwxLjk4OC0uMzMzLDUuMDkxLDUuMDkxLDAsMCwwLC45NjYtLjQzNiwzLjU4NCwzLjU4NCwwLDAsMS0uNjctMS44NDksMy45MDcsMy45MDcsMCwwLDEsLjctMi43NTNsLjMtLjM0OC4zNTguMjg4YTQuNTU4LDQuNTU4LDAsMCwxLDEuNzk1LDIuODkyLDQuMzc1LDQuMzc1LDAsMCwxLDMuMzE5LjMwOWwuMzkzLjIyNi0uMjA3LjRhNC4xNDEsNC4xNDEsMCwwLDEtNC4xNTcsMS45ODNjLTIuNDgsNi4xNjgtNy44NzEsOS4wODgtMTQuNDA5LDkuMDg4LTMuMzc4LDAtNi40NzYtMS4yNjMtOC4yNDEtNC4yNTlsLS4wMjktLjA0OUwyLjcsMjAuMjI3YTguMzE2LDguMzE2LDAsMCwxLS42NTktNC4yMDhsLjA0LS40MzNINC41MjZWMTIuNjYzSDcuMzg3VjkuOGg1LjcyMVY2Ljk0MkgxNi41NHY1LjcyMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDk2ZTZcXFwiLz48cGF0aCBkPVxcXCJNMTIuMDA2LDI0LjU2N2E2LjAyMiw2LjAyMiwwLDAsMS0zLjE0LTMuMDg5LDEwLjMyOSwxMC4zMjksMCwwLDEtMi4yNjQuMzQzcS0uNS4wMjgtMS4wNDUuMDI4LS42MzIsMC0xLjMzMS0uMDM3YTkuMDUxLDkuMDUxLDAsMCwwLDcsMi43NjlRMTEuNjE4LDI0LjU4MSwxMi4wMDYsMjQuNTY3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk03LjA4LDEzLjM0NmguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdINi43VjEzLjM0NlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNjgsMGguMnYyLjA2N2gtLjJWMTMuMzQ2Wk01LDEzLjE0SDcuNDgydjIuNDc5SDVabTIuODU5LTIuODYxaDIuNDh2Mi40NzlINy44NjNabTIuMDc3LjIwN2guMnYyLjA2NmgtLjJabS0uMzc2LDBoLjJ2Mi4wNjZoLS4yWm0tLjM3NiwwaC4ydjIuMDY2aC0uMlYxMC40ODZabS0uMzc2LDBoLjJ2Mi4wNjZoLS4yWm0tLjM3NiwwaC4ydjIuMDY2aC0uMlptLS4zNjgsMGguMnYyLjA2NmgtLjJabS0uMjA3LDIuNjUzaDIuNDh2Mi40OEg3Ljg2M1YxMy4xNFptMi4wNzcuMjA3aC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yVjEzLjM0NlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM2OCwwaC4ydjIuMDY3aC0uMlptMi42NTQtLjIwN0gxMy4ydjIuNDhoLTIuNDhWMTMuMTRabTIuMDc2LjIwN0gxM3YyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM2OCwwaC4ydjIuMDY3aC0uMlptLS4yMDYtMy4wNjdIMTMuMnYyLjQ3OWgtMi40OFYxMC4yNzlabTIuMDc2LjIwN0gxM3YyLjA2NmgtLjJabS0uMzc2LDBoLjJ2Mi4wNjZoLS4yWm0tLjM3NiwwaC4ydjIuMDY2aC0uMlptLS4zNzYsMGguMnYyLjA2NmgtLjJabS0uMzc2LDBoLjJ2Mi4wNjZoLS4yWm0tLjM2OCwwaC4ydjIuMDY2aC0uMlptMi42NTQsMi42NTNoMi40Nzl2Mi40OGgtMi40OFYxMy4xNFptMi4wNzYuMjA3aC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzY4LDBoLjE5MnYyLjA2N2gtLjJWMTMuMzQ2Wm0tLjIwNi0zLjA2N2gyLjQ3OXYyLjQ3OWgtMi40OFYxMC4yNzlabTIuMDc2LjIwN2guMnYyLjA2NmgtLjJabS0uMzc2LDBoLjJ2Mi4wNjZoLS4yWm0tLjM3NiwwaC4ydjIuMDY2aC0uMlptLS4zNzYsMGguMnYyLjA2NmgtLjJabS0uMzc2LDBoLjJ2Mi4wNjZoLS4yWm0tLjM2OCwwaC4xOTJ2Mi4wNjZoLS4yVjEwLjQ4NlptLS4yMDYtMy4wNjdoMi40NzlWOS45aC0yLjQ4VjcuNDE5Wm0yLjA3Ni4yMDZoLjJWOS42OTFoLS4yWm0tLjM3NiwwaC4yVjkuNjkxaC0uMlptLS4zNzYsMGguMlY5LjY5MWgtLjJabS0uMzc2LDBoLjJWOS42OTFoLS4yWm0tLjM3NiwwaC4yVjkuNjkxaC0uMlptLS4zNjgsMGguMTkyVjkuNjkxaC0uMlY3LjYyNVptMi42NTQsNS41MTRoMi40Nzl2Mi40OGgtMi40OFYxMy4xNFptMi4wNzYuMjA3aC4xOTV2Mi4wNjdoLS4yVjEzLjM0NlptLS4zNzYsMGguMjA2djIuMDY3aC0uMjA2Wm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yMDVWMTMuMzQ2Wm0tLjM2OCwwaC4ydjIuMDY3aC0uMTk0VjEzLjM0NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTAuMTg4LDE5LjYzOGEuNjg0LjY4NCwwLDEsMS0uNjg0LjY4NEEuNjg0LjY4NCwwLDAsMSwxMC4xODgsMTkuNjM4Wm0wLC4xOTRhLjQ4OS40ODksMCwwLDEsLjE3Ny4wMzMuMi4yLDAsMSwwLC4yNzUuMjY5LjQ5LjQ5LDAsMSwxLS40NTMtLjNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdH0sXG5cdFwiRE9UIChHcmFwaHZpeilcIjoge1xuXHRcdGNvbG91cjogXCIjNGVkMWY4XCIsXG5cdFx0aWNvbjogXCI8cG9seWdvbiBwb2ludHM9XFxcIjIzLjk0MiAzMCAxMi42NzkgMzAgMS40MTcgMzAgMS40MTcgMTYgMS40MTcgMiAxMi42NzkgMiAyMy45NDIgMiAyMy45NDIgMTYgMjMuOTQyIDMwXFxcIiBzdHlsZT1cXFwiZmlsbDojZTZlNmU2XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjMuMjAyXFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjcuNDJcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMTEuNjM4XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjE1Ljg1NlxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIyMC4wNzRcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMjQuMjkzXFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjI4LjUxMVxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjJcXFwiIHk9XFxcIjMuMjAyXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuNTczXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiNi4yMThcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMTAuNDM2XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjE0LjY1NVxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIxOC44NzNcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMjMuMDkxXFxcIiB5PVxcXCIzLjIwMlxcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjU3M1xcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxnIHN0eWxlPVxcXCJvcGFjaXR5OjAuNVxcXCI+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjI3LjQ1NlxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIyNi40MDJcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMjUuMzQ3XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjIzLjIzOFxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIyMi4xODRcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMjEuMTI5XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjE5LjAyXFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjE3Ljk2NVxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIxNi45MTFcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMTQuODAyXFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjEzLjc0N1xcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIxMi42OTNcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMTAuNTgzXFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjkuNTI5XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjguNDc0XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjYuMzY1XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjUuMzExXFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjQuMjU2XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PC9nPjxnIHN0eWxlPVxcXCJvcGFjaXR5OjAuNVxcXCI+PHJlY3QgeD1cXFwiMjIuMDM2XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIwLjk4MlxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIxOS45MjdcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMTcuODE4XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjE2Ljc2NFxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIxNS43MDlcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMTMuNlxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIxMi41NDVcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMTEuNDkxXFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjkuMzgyXFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjguMzI3XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjcuMjczXFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjUuMTY0XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjQuMTA5XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjMuMDU1XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjwvZz48cGF0aCBkPVxcXCJNMTMsOC45NzZjLTIuMzA4LDAtNC4xMzEtMS4yNzQtNC4xOTMtMi45NjloMGEyLjc3NSwyLjc3NSwwLDAsMSwxLjI1My0yLjMyLDUuMyw1LjMsMCwwLDEsMi45NDMtLjk2Myw1LjI5NCw1LjI5NCwwLDAsMSwzLjAwNi43NDMsMi43NzUsMi43NzUsMCwwLDEsMS40MjEsMi4yMjFjLjA2NSwxLjc1Mi0xLjc3OSwzLjE5NC00LjIsMy4yODNDMTMuMTU4LDguOTc0LDEzLjA4LDguOTc2LDEzLDguOTc2Wm0uMjMyLTUuMnEtLjA5NSwwLS4xOSwwYTQuMjM4LDQuMjM4LDAsMCwwLTIuMzU0Ljc1NiwxLjc2MSwxLjc2MSwwLDAsMC0uODI4LDEuNDM1QzkuOSw3LjA5LDExLjQyOCw3Ljk3OCwxMy4yLDcuOTE3czMuMjIzLTEuMDY5LDMuMTgxLTIuMTkxYTEuNzYxLDEuNzYxLDAsMCwwLS45MzItMS4zNjlBNC4xNjUsNC4xNjUsMCwwLDAsMTMuMjM0LDMuNzczWlxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxwYXRoIGQ9XFxcIk02LjQsMjkuMjgxQTUuMjM4LDUuMjM4LDAsMCwxLDMuNiwyOC41MTlhMi43NzUsMi43NzUsMCwwLDEtMS40MS0yLjIyOWMtLjA1Ni0xLjc1MiwxLjgtMy4xODUsNC4yMTMtMy4yNjJzNC4zNTYsMS4yMzYsNC40MTIsMi45ODhBMi43NzUsMi43NzUsMCwwLDEsOS41NDgsMjguMzNhNS4zLDUuMywwLDAsMS0yLjk0OC45NDhRNi41LDI5LjI4MSw2LjQsMjkuMjgxWm0uMTg2LTUuMi0uMTU2LDBjLTEuNzY2LjA1Ni0zLjIyOSwxLjA1Mi0zLjE5MywyLjE3NGExLjc2MSwxLjc2MSwwLDAsMCwuOTI0LDEuMzc0LDQuMjM1LDQuMjM1LDAsMCwwLDIuNC41OTMsNC4yMzUsNC4yMzUsMCwwLDAsMi4zNTctLjc0NCwxLjc2MSwxLjc2MSwwLDAsMCwuODM1LTEuNDNDOS43MjQsMjQuOTYxLDguMjksMjQuMDgsNi41OTEsMjQuMDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjU2NTY1XFxcIi8+PHBhdGggZD1cXFwiTTE5LjI2MSwyOS4yNmE1LjIzOCw1LjIzOCwwLDAsMS0yLjgwNy0uNzYyLDIuNzc1LDIuNzc1LDAsMCwxLTEuNDEtMi4yMjloMGMtLjA1NS0xLjc1MiwxLjgtMy4xODUsNC4yMTMtMy4yNjJhNS4zLDUuMywwLDAsMSwzLC43NTlBMi42LDIuNiwwLDAsMSwyMi40LDI4LjMxYTUuMyw1LjMsMCwwLDEtMi45NDguOTQ4UTE5LjM1OCwyOS4yNiwxOS4yNjEsMjkuMjZaTTE2LjEsMjYuMjM2YTEuNzYxLDEuNzYxLDAsMCwwLC45MjQsMS4zNzQsNC41Nyw0LjU3LDAsMCwwLDQuNzU3LS4xNTEsMS41NTgsMS41NTgsMCwwLDAtLjA4OS0yLjgsNC4yMjYsNC4yMjYsMCwwLDAtMi40LS41OTNjLTEuNzY2LjA1Ni0zLjIyOCwxLjA1Mi0zLjE5MywyLjE3NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNNi4yLDIzLjQ3N0EyNy40LDI3LjQsMCwwLDEsOS43NjksOC45ODZsLjY4Ny4zOTFBMjYuNjA5LDI2LjYwOSwwLDAsMCw2Ljk4NiwyMy40NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNMTAuODUzLDcuOTU3YTcuMTcxLDcuMTcxLDAsMCwwLS4wNzUsMi4zMmwtLjc1OC0uOTMtMS4xNzgtLjIzQTcuMTY1LDcuMTY1LDAsMCwwLDEwLjg1Myw3Ljk1N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNMTkuODU0LDIzLjQ3N2wtLjc5LS4wMjdhMjYuNTksMjYuNTksMCwwLDAtLjkxNS03Ljg4NCwyNi42MjQsMjYuNjI0LDAsMCwwLTIuNTU0LTYuMTg5bC42ODctLjM5MWEyNy40MjMsMjcuNDIzLDAsMCwxLDIuNjMsNi4zNzNBMjcuMzcyLDI3LjM3MiwwLDAsMSwxOS44NTQsMjMuNDc3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxwYXRoIGQ9XFxcIk0xNS4yLDcuOTU3YTcuMTcxLDcuMTcxLDAsMCwwLDIuMDExLDEuMTU5bC0xLjE3OC4yMy0uNzU4LjkzQTcuMTY1LDcuMTY1LDAsMCwwLDE1LjIsNy45NTdaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjU2NTY1XFxcIi8+PHJlY3QgeD1cXFwiMTEuMzQ4XFxcIiB5PVxcXCI5Ljk0NVxcXCIgd2lkdGg9XFxcIjMuNTE1XFxcIiBoZWlnaHQ9XFxcIjAuNzkxXFxcIiB0cmFuc2Zvcm09XFxcIm1hdHJpeCgwLjAxNiwgLTEsIDEsIDAuMDE2LCAyLjU1NywgMjMuMjc5KVxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxwYXRoIGQ9XFxcIk0xMy4wNTQsMTMuNTI5YTcuMTcxLDcuMTcxLDAsMCwwLTEuMS0yLjA0NmwxLjEyMi40MjYsMS4xMzUtLjM5QTcuMTY1LDcuMTY1LDAsMCwwLDEzLjA1NCwxMy41MjlaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjU2NTY1XFxcIi8+PHJlY3QgeD1cXFwiNy44MDlcXFwiIHk9XFxcIjIwLjA4MVxcXCIgd2lkdGg9XFxcIjQuNzU3XFxcIiBoZWlnaHQ9XFxcIjAuNzkxXFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMTIuNTYgMTguMTA4KSByb3RhdGUoLTU3LjYwMylcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNOC4xNDcsMjMuNjk0YTcuMTcxLDcuMTcxLDAsMCwwLC4xMzMtMi4zMTdsLjczNC45NDksMS4xNzEuMjZBNy4xNjUsNy4xNjUsMCwwLDAsOC4xNDcsMjMuNjk0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxyZWN0IHg9XFxcIjE1LjQxOFxcXCIgeT1cXFwiMTguMDUxXFxcIiB3aWR0aD1cXFwiMC43OTFcXFwiIGhlaWdodD1cXFwiNC45MTlcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC04LjI1NyAxMC45NTEpIHJvdGF0ZSgtMzAuNzA4KVxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy44LDIzLjg1NmE3LjE3MSw3LjE3MSwwLDAsMC0yLjAwNi0xLjE2OGwxLjE3OS0uMjI1Ljc2Mi0uOTI3QTcuMTY1LDcuMTY1LDAsMCwwLDE3LjgsMjMuODU2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxwYXRoIGQ9XFxcIk0xMy4wMjQsMTkuMTI1YTUuMjM4LDUuMjM4LDAsMCwxLTIuODA3LS43NjIsMi43NzUsMi43NzUsMCwwLDEtMS40MS0yLjIyOSwyLjc3NSwyLjc3NSwwLDAsMSwxLjI2Ni0yLjMxNCw1LjMsNS4zLDAsMCwxLDIuOTQ4LS45NDgsNi43MTIsNi43MTIsMCwwLDEsMi4xMzQuMzEzbC0uMzMxLDFhNS42NjgsNS42NjgsMCwwLDAtMS43NjktLjI2MSw0LjIzOCw0LjIzOCwwLDAsMC0yLjM1OC43NDQsMS43NjEsMS43NjEsMCwwLDAtLjgzNSwxLjQzLDEuNzYxLDEuNzYxLDAsMCwwLC45MjQsMS4zNzQsNC4yNDIsNC4yNDIsMCwwLDAsMi40LjU5Myw1LjcsNS43LDAsMCwwLDEuNjc4LS4zNzhsLjM3OC45ODVhNi44NDQsNi44NDQsMCwwLDEtMi4wMjIuNDQ4UTEzLjEyMSwxOS4xMjUsMTMuMDI0LDE5LjEyNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNMTUuNDM1LDEyLjg3NmE0LjMzOCw0LjMzOCwwLDAsMC0uOTg0LDEuNjIyLDIuMDY0LDIuMDY0LDAsMCwxLS4wMTYsMi44MDYsNC40LDQuNCwwLDAsMCwuOTgyLDEuNiwzLjkzMiwzLjkzMiwwLDAsMCwuMDc4LTUuOTg2QzE1LjQ3NiwxMi45LDE1LjQ1NCwxMi44OTMsMTUuNDM1LDEyLjg3NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNMTkuNTI1LDE1LjI3OGEyNy45MzEsMjcuOTMxLDAsMCwwLTEuMjYzLTMuNzQyLDQuMzc2LDQuMzc2LDAsMCwwLTEuNzc3LjUxNywyNi4wNjMsMjYuMDYzLDAsMCwxLDEuMjUzLDMuNjg1LDI2LjAzOCwyNi4wMzgsMCwwLDEsLjczNCw0LjUzNCw0LjM0Nyw0LjM0NywwLDAsMCwxLjgyNS0uMzUxQTI3LjksMjcuOSwwLDAsMCwxOS41MjUsMTUuMjc4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4xNTMsMTIuMjI5QTQuNDM3LDQuNDM3LDAsMSwwLDIyLjMsMTMuNSw0LjQzNyw0LjQzNywwLDAsMCwxNi4xNTMsMTIuMjI5Wm00LjgxMiw3LjMzMmE0LjM0Niw0LjM0NiwwLDEsMSwxLjI0OS02LjAxOEE0LjM0Niw0LjM0NiwwLDAsMSwyMC45NjUsMTkuNTYxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzJjMjkyOFxcXCIvPjxwYXRoIGQ9XFxcIk0yMi4wMTUsMTkuMTg2YS44MjIuODIyLDAsMCwwLS4xOTItLjIwOSw0LjM0Nyw0LjM0NywwLDAsMS0uMzMzLjMxOSw0LjUyMiw0LjUyMiwwLDAsMS0uNDQ2LjMzNyw0LjczLDQuNzMsMCwwLDEtLjk0LjQ3Ny42NjkuNjY5LDAsMCwwLC4wMzEuMS42NC42NCwwLDAsMCwuMDQ3LjA5NGwuNDg3LjhMMjIuNSwxOS45ODRaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjgyODI4XFxcIi8+PHJlY3QgeD1cXFwiMjAuNzkzXFxcIiB5PVxcXCIyMC43ODRcXFwiIHdpZHRoPVxcXCIyLjE0N1xcXCIgaGVpZ2h0PVxcXCIwLjQ0XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtNy43NCAxNC40NjUpIHJvdGF0ZSgtMzEuMzk0KVxcXCIgc3R5bGU9XFxcImZpbGw6IzI4MjgyOFxcXCIvPjxyZWN0IHg9XFxcIjIyLjg2OFxcXCIgeT1cXFwiMjAuOTZcXFwiIHdpZHRoPVxcXCIyLjE0N1xcXCIgaGVpZ2h0PVxcXCI2Ljg4N1xcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTkuMjA3IDE2LjA0NCkgcm90YXRlKC0zMS4zOTQpXFxcIiBzdHlsZT1cXFwiZmlsbDojMjgyODI4XFxcIi8+PHBhdGggZD1cXFwiTTI3LjA1NCwyNy40NDNsLS4yMzYtLjM4Ny0xLjgzMywxLjExOS4yMzYuMzg3YS45MjQuOTI0LDAsMCwwLDEuMjc5LjE1OWwuMTEtLjA2N0EuOTI0LjkyNCwwLDAsMCwyNy4wNTQsMjcuNDQzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzI4MjgyOFxcXCIvPjxwYXRoIGQ9XFxcIk0yMC42OCwxNC44NDVhLjMxNS4zMTUsMCwwLDEsLjMzOC4wMjcsMS4wNzgsMS4wNzgsMCwwLDEsLjI5NC41NzgsMS4xLDEuMSwwLDAsMSwuMDI5LjY1NC4zMjcuMzI3LDAsMCwxLS4yNzguMi40NjguNDY4LDAsMCwxLS4zNy0uMS45MjIuOTIyLDAsMCwxLS4yNjItLjUuOTU1Ljk1NSwwLDAsMS0uMDEtLjU4NUEuNDY2LjQ2NiwwLDAsMSwyMC42OCwxNC44NDVabS4wNi4yMjdhLjE0OS4xNDksMCwwLDAtLjA3NC4wNjMuMjQ3LjI0NywwLDAsMC0uMDI3LjEzMiwxLjYyNiwxLjYyNiwwLDAsMCwuMDY0LjM1NSwxLjU5MiwxLjU5MiwwLDAsMCwuMTEyLjMyOS4yNjguMjY4LDAsMCwwLC4wOTQuMTEuMTQyLjE0MiwwLDAsMCwuMDk0LjAxNS4xMjEuMTIxLDAsMCwwLC4wNzgtLjA0OC4yMTEuMjExLDAsMCwwLC4wMjgtLjEyOCwyLjY0MywyLjY0MywwLDAsMC0uMTg2LS43MjIuMjM1LjIzNSwwLDAsMC0uMDkzLS4xMDdBLjExNi4xMTYsMCwwLDAsMjAuNzM5LDE1LjA3MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjEuNjk0LDE0LjRhLjMuMywwLDAsMSwuMzQ2LjA1NywxLjQ5MywxLjQ5MywwLDAsMSwuMzI1LjcsMS41MjEsMS41MjEsMCwwLDEsLjA2Ljc3MS4zMS4zMSwwLDAsMS0uMjcuMjI4LjQ0Ni40NDYsMCwwLDEtLjM3OS0uMTM3LDEuMzEsMS4zMSwwLDAsMS0uMjkyLS42MTcsMS4zNDEsMS4zNDEsMCwwLDEtLjA0MS0uN0EuNDQxLjQ0MSwwLDAsMSwyMS42OTQsMTQuNFptLjA3Mi4yNzNhLjEzNi4xMzYsMCwwLDAtLjA3Mi4wNjkuMzE1LjMxNSwwLDAsMC0uMDIxLjE1NSwyLjM1MSwyLjM1MSwwLDAsMCwuMDg0LjQyNywyLjMxLDIuMzEsMCwwLDAsLjEzMS40LjM0Ny4zNDcsMCwwLDAsLjEuMTM1LjEzLjEzLDAsMCwwLC4xLjAyMS4xMS4xMSwwLDAsMCwuMDc2LS4wNTQuMjc1LjI3NSwwLDAsMCwuMDIyLS4xNSwzLjc3MywzLjc3MywwLDAsMC0uMjI0LS44NjIuMzExLjMxMSwwLDAsMC0uMS0uMTMyQS4xLjEsMCwwLDAsMjEuNzY2LDE0LjY3NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjMuNDcyLDE1LjkzNGwtLjI2OS4wMzgtLjM3OS0xLjQzOWEuOTU1Ljk1NSwwLDAsMS0uMjU3LjM5MmwtLjA4Ny0uMzMxYS44NDEuODQxLDAsMCwwLC4xNjktLjI2Ljg3NC44NzQsMCwwLDAsLjA3NS0uMzgzbC4yLS4wODlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTI0LjQ1NSwxNS43OTRsLS4yNjkuMDM4LS40MjktMS42MjVhMSwxLDAsMCwxLS4yNDcuNDI5bC0uMS0uMzc2YS44NzQuODc0LDAsMCwwLC4xNjItLjI4NCwxLjAyOCwxLjAyOCwwLDAsMCwuMDY0LS40MjRsLjItLjA4OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjQuNjM2LDEzLjExN2MuMTI3LS4wNTUuMjQ5LS4wMDguMzY5LjE0NGEzLjExLDMuMTEsMCwwLDEsLjQxNiwxLjAzNCwzLjE0MywzLjE0MywwLDAsMSwuMTUxLDEuMTFjLS4wMjkuMTktLjExMS4yOTQtLjI0Ny4zMTJzLS4yNzItLjA1OS0uNC0uMjMxYTIuODU1LDIuODU1LDAsMCwxLS4zODEtLjk1LDIuODcxLDIuODcxLDAsMCwxLS4xMzItMS4wMzlBLjQzNy40MzcsMCwwLDEsMjQuNjM2LDEzLjExN1ptLjEwNy40YS4xMjQuMTI0LDAsMCwwLS4wNjcuMDg4LjU4NC41ODQsMCwwLDAsMCwuMjIxLDUuMjE4LDUuMjE4LDAsMCwwLC4xMzkuNjM1LDUuMTUzLDUuMTUzLDAsMCwwLC4xODQuNi42Ni42NiwwLDAsMCwuMTIuMjA4LjExOC4xMTgsMCwwLDAsLjEuMDQuMS4xLDAsMCwwLC4wNzEtLjA3Mi41MjguNTI4LDAsMCwwLDAtLjIxNiw1LjQ0Miw1LjQ0MiwwLDAsMC0uMTQ0LS42NTMsNS40NDcsNS40NDcsMCwwLDAtLjE4OS0uNjE5LjYxMi42MTIsMCwwLDAtLjExOS0uMjA1QS4wOTMuMDkzLDAsMCwwLDI0Ljc0MywxMy41MjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTI2LjYzOCwxNS40ODhsLS4yNjkuMDM4LS41NC0yLjAzOUExLjE1MSwxLjE1MSwwLDAsMSwyNS42LDE0bC0uMTI2LS40NzVhLjk5Ljk5LDAsMCwwLC4xNDgtLjMzNywxLjQzNiwxLjQzNiwwLDAsMCwuMDM5LS41MTVsLjItLjA4OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjYuNjY2LDEyLjIzNmMuMTI3LS4wNTUuMjU1LjAxMi4zODUuMmE0LjU4NCw0LjU4NCwwLDAsMSwuNDc4LDEuMjY4LDQuNjIsNC42MiwwLDAsMSwuMjEzLDEuMzQzYy0uMDE4LjIyOS0uMS4zNTItLjIzMi4zN3MtLjI3OC0uMDgxLS40MjEtLjNhNC4yODQsNC4yODQsMCwwLDEtLjQ0My0xLjE3OSw0LjI4Myw0LjI4MywwLDAsMS0uMTk0LTEuMjcyQzI2LjQ2OCwxMi40MzgsMjYuNTM5LDEyLjI5MSwyNi42NjYsMTIuMjM2Wm0uMTMxLjVxLS4wNDYuMDE4LS4wNjQuMWEuODI5LjgyOSwwLDAsMCwuMDA5LjI2Niw3Ljg1Niw3Ljg1NiwwLDAsMCwuMTc4Ljc3OXEuMTQzLjU0MS4yMjEuNzM4YS45NDcuOTQ3LDAsMCwwLC4xMzQuMjU4LjExOS4xMTksMCwwLDAsLjEuMDUycS4wNDgtLjAwOS4wNjgtLjA4NWEuNzYyLjc2MiwwLDAsMC0uMDA4LS4yNjIsOC4xMTcsOC4xMTcsMCwwLDAtLjE4Mi0uOHEtLjE0OC0uNTU3LS4yMjctLjc1N2EuODkyLjg5MiwwLDAsMC0uMTMzLS4yNTZRMjYuODQzLDEyLjcxNCwyNi44LDEyLjczMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjcuNjgxLDExLjhjLjEyNy0uMDU1LjI1Ny4wMjMuMzkzLjIzNGE1LjQzMSw1LjQzMSwwLDAsMSwuNTA5LDEuMzg1LDUuNDY3LDUuNDY3LDAsMCwxLC4yNDQsMS40NmMtLjAxMy4yNDktLjA4OC4zODEtLjIyNC40cy0uMjgxLS4wOTItLjQzLS4zMjhhNS4xMSw1LjExLDAsMCwxLS40NzMtMS4yOTQsNS4xLDUuMSwwLDAsMS0uMjI1LTEuMzg4QzI3LjQ4NiwxMi4wMDgsMjcuNTU1LDExLjg1MSwyNy42ODEsMTEuOFptLjE0NC41NDJxLS4wNDYuMDE4LS4wNjIuMTA2YS45Ny45NywwLDAsMCwuMDE1LjI4OXEuMDQuMjU5LjIuODUxdC4yNC44MDdhMS4xMTIsMS4xMTIsMCwwLDAsLjE0LjI4NHEuMDU3LjA2Ny4xMDYuMDU5dC4wNjYtLjA5MWEuOS45LDAsMCwwLS4wMTQtLjI4NHEtLjA0LS4yNi0uMi0uODY3dC0uMjQ1LS44MjdhMS4wNTMsMS4wNTMsMCwwLDAtLjE0LS4yODFRMjcuODcxLDEyLjMyLDI3LjgyNSwxMi4zMzhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTI5LjkxNSwxNS4wMzRsLS4yNy4wMzctLjcwNi0yLjY2MWExLjQ3OCwxLjQ3OCwwLDAsMS0uMTkyLjYzNmwtLjE2Ni0uNjI1QTEuMjQ4LDEuMjQ4LDAsMCwwLDI4LjcwOCwxMmEyLjIxNCwyLjIxNCwwLDAsMCwwLS42NTNsLjItLjA4OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjkuNzEyLDEwLjkyMWMuMTI3LS4wNTQuMjYzLjA0My40MDkuMjk0YTcuMzQ1LDcuMzQ1LDAsMCwxLC41NzIsMS42MTlBNy4zODIsNy4zODIsMCwwLDEsMzEsMTQuNTI3YzAsLjI4OC0uMDcyLjQ0LS4yMDkuNDU4cy0uMjg2LS4xMTQtLjQ0Ny0uMzkzYTYuOTg0LDYuOTg0LDAsMCwxLS41MzUtMS41MjQsNi45NDQsNi45NDQsMCwwLDEtLjI4Ny0xLjYyMUMyOS41MjMsMTEuMTUxLDI5LjU4NiwxMC45NzUsMjkuNzEyLDEwLjkyMVptLjE2OC42MzNxLS4wNDYuMDE4LS4wNTkuMTE5YTEuMjg3LDEuMjg3LDAsMCwwLC4wMjcuMzM0cS4wNTEuMy4yMzUuOTk0dC4yNzcuOTQ2YTEuNDg0LDEuNDg0LDAsMCwwLC4xNTQuMzM0cS4wNi4wOC4xMDkuMDcxdC4wNjMtLjFhMS4yLDEuMiwwLDAsMC0uMDI2LS4zM3EtLjA1MS0uMy0uMjM5LTEuMDExdC0uMjgyLS45NjVhMS40MiwxLjQyLDAsMCwwLS4xNTMtLjMzMlEyOS45MjYsMTEuNTM2LDI5Ljg4LDExLjU1M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjEuMTY3LDE2LjM2MmEuNDIyLjQyMiwwLDAsMSwuMzE4LjE4NSwxLjAwNSwxLjAwNSwwLDAsMS0uMjc3LDEuMDMuNDIuNDIsMCwwLDEtLjM2NiwwLC41OS41OSwwLDAsMS0uMzExLS4yNjEuODA4LjgwOCwwLDAsMSwuMjU0LS44OTNBLjU2MS41NjEsMCwwLDEsMjEuMTY3LDE2LjM2MlptLS4wNTEuMTg5YS4xNzUuMTc1LDAsMCwwLS4xOTIuMDg3LDEuNDg3LDEuNDg3LDAsMCwwLS4xNTUuNTY3LjIxNi4yMTYsMCwwLDAsLjAzOS4xMjQuMTkxLjE5MSwwLDAsMCwuMDg0LjA1OC4xNDUuMTQ1LDAsMCwwLC4xODgtLjA2OSwxLjY2NiwxLjY2NiwwLDAsMCwuMTY0LS42LjE4OS4xODksMCwwLDAtLjA0LS4xMjFBLjE2My4xNjMsMCwwLDAsMjEuMTE3LDE2LjU1MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjIuMzc2LDE2LjU0OGEuMzgyLjM4MiwwLDAsMSwuMzExLjIxMiwxLjAyNCwxLjAyNCwwLDAsMS0uMDE5LjY2LDEuMDIyLDEuMDIyLDAsMCwxLS4zMTUuNTgxLjM4LjM4LDAsMCwxLS4zNzMuMDI1LjUzMy41MzMsMCwwLDEtLjMtLjI5LDEuMTg5LDEuMTg5LDAsMCwxLC4zMDktMS4xQS41LjUsMCwwLDEsMjIuMzc2LDE2LjU0OFptLS4wNjIuMjNhLjE2Ny4xNjcsMCwwLDAtLjEuMDEzLjIzNS4yMzUsMCwwLDAtLjEuMSwyLjIxOSwyLjIxOSwwLDAsMC0uMTg5LjY5NC4yNjkuMjY5LDAsMCwwLC4wMzMuMTQ3LjE2Ny4xNjcsMCwwLDAsLjA4My4wNjQuMTQzLjE0MywwLDAsMCwuMSwwLC4yMDYuMjA2LDAsMCwwLC4wOTQtLjEsMi40MzYsMi40MzYsMCwwLDAsLjItLjcyNy4yNC4yNCwwLDAsMC0uMDM0LS4xNDRBLjE0MS4xNDEsMCwwLDAsMjIuMzE0LDE2Ljc3OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjMuMzcsMTguNTQxbC0uMjgxLS4xMS4zMjgtMS4yMjVhMSwxLDAsMCwxLS40NDIuMTUybC4wNzUtLjI4MWEuODgxLjg4MSwwLDAsMCwuMjkyLS4xLjY4LjY4LDAsMCwwLC4yNTktLjIzOGwuMjQyLjAzN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjQuNzkzLDE2LjkxOWEuMzQ4LjM0OCwwLDAsMSwuMy4yNjYsMS43NTEsMS43NTEsMCwwLDEtLjA3NS44NywxLjc0OSwxLjc0OSwwLDAsMS0uMzcxLjc5MS4zNDUuMzQ1LDAsMCwxLS4zODguMDc4LjQ4OC40ODgsMCwwLDEtLjI4OC0uMzQ4LDEuNTg3LDEuNTg3LDAsMCwxLC4wNjctLjc5LDEuNTc3LDEuNTc3LDAsMCwxLC4zNTQtLjcyN0EuNDU3LjQ1NywwLDAsMSwyNC43OTMsMTYuOTE5Wm0tLjA4NC4zMTJhLjE0My4xNDMsMCwwLDAtLjEwNy4wMjUuMzUzLjM1MywwLDAsMC0uMTA2LjE0MSw0LjEyNiw0LjEyNiwwLDAsMC0uMjU3Ljk0OC40MDguNDA4LDAsMCwwLC4wMjEuMTkyLjE0My4xNDMsMCwwLDAsLjA4LjA3NS4xMi4xMiwwLDAsMCwuMS0uMDExLjMxOC4zMTgsMCwwLDAsLjEwNS0uMTM3LDQuNDE4LDQuNDE4LDAsMCwwLC4yNjYtLjk4MS4zNzQuMzc0LDAsMCwwLS4wMjItLjE4OUEuMTE5LjExOSwwLDAsMCwyNC43MSwxNy4yMzFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTI1LjY0OSwxOS40M2wtLjI4MS0uMTEuNDI4LTEuNmExLjAzMywxLjAzMywwLDAsMS0uNDYyLjIyN2wuMS0uMzcxYS45LjksMCwwLDAsLjMtLjE1MS45My45MywwLDAsMCwuMjgxLS4zMjFsLjI0Mi4wMzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTI3LjIxMSwxNy4yOTFhLjM0NC4zNDQsMCwwLDEsLjI4Mi4zMTksMi42OTIsMi42OTIsMCwwLDEtLjEzMSwxLjA4LDIuNjksMi42OSwwLDAsMS0uNDI3LDEsLjM0LjM0LDAsMCwxLS40LjEzLjQ4Ny40ODcsMCwwLDEtLjI3My0uNDA1LDIuNDk0LDIuNDk0LDAsMCwxLC4xMjItMSwyLjQ3LDIuNDcsMCwwLDEsLjQxLS45MzdBLjQ1MS40NTEsMCwwLDEsMjcuMjExLDE3LjI5MVptLS4xMDYuMzk0YS4xMzMuMTMzLDAsMCwwLS4xMS4wMzYuNTA5LjUwOSwwLDAsMC0uMTE3LjE4Miw2LjYyMiw2LjYyMiwwLDAsMC0uMzI1LDEuMi41OTEuNTkxLDAsMCwwLC4wMDkuMjM3LjEzMy4xMzMsMCwwLDAsLjA3Ny4wODYuMTEuMTEsMCwwLDAsLjEwNy0uMDIzLjQ2NS40NjUsMCwwLDAsLjExNi0uMTc4LDQuNjM5LDQuNjM5LDAsMCwwLC4yLS42MTksNC42NTgsNC42NTgsMCwwLDAsLjEzNi0uNjE1LjU1Mi41NTIsMCwwLDAtLjAxLS4yMzVBLjExLjExLDAsMCwwLDI3LjEwNSwxNy42ODVaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTI3LjkyNywyMC4zMmwtLjI4MS0uMTEuNTI4LTEuOTcxYTEuMTM0LDEuMTM0LDAsMCwxLS40ODIuM2wuMTIzLS40NmEuOTcyLjk3MiwwLDAsMCwuMzE3LS4yLDEuMjQ4LDEuMjQ4LDAsMCwwLC4zLS40bC4yNDIuMDM3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZmY4MFxcXCIvPjxwYXRoIGQ9XFxcIk0yOC45NTMsMjAuNzIxbC0uMjgxLS4xMS41NzMtMi4xMzlhMS4yLDEuMiwwLDAsMS0uNDkxLjMzNmwuMTM0LS41YTEuMDIsMS4wMiwwLDAsMCwuMzIzLS4yMiwxLjQxMywxLjQxMywwLDAsMCwuMzE0LS40NGwuMjQyLjAzN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMzAuNzE3LDE3LjgzYy4xNTEuMDIzLjIzOC4xNTUuMjYyLjRhNC40MzYsNC40MzYsMCwwLDEtLjIxMywxLjM4NSw0LjQzNCw0LjQzNCwwLDAsMS0uNTA5LDEuMzA3Yy0uMTQuMTk1LS4yOC4yNjMtLjQyMi4yMDdzLS4yMjYtLjIyLS4yNS0uNDg5YTQuMTk0LDQuMTk0LDAsMCwxLC4yLTEuMyw0LjE0Myw0LjE0MywwLDAsMSwuNDkyLTEuMjQxQzMwLjQyLDE3LjksMzAuNTY2LDE3LjgwNywzMC43MTcsMTcuODNabS0uMTM3LjUxM2EuMTMyLjEzMiwwLDAsMC0uMTE1LjA1My44LjgsMCwwLDAtLjEzMy4yNDEsNy41ODcsNy41ODcsMCwwLDAtLjI0NC43OTEsNy41MzksNy41MzksMCwwLDAtLjE4Ljc3OS45My45MywwLDAsMC0uMDA5LjMuMTMxLjEzMSwwLDAsMCwuMDczLjEuMTA4LjEwOCwwLDAsMCwuMTExLS4wMzkuNzQyLjc0MiwwLDAsMCwuMTMyLS4yMzcsNy44LDcuOCwwLDAsMCwuMjQ4LS44MDYsNy44MzUsNy44MzUsMCwwLDAsLjE4NS0uOC44ODQuODg0LDAsMCwwLC4wMDgtLjNRMzAuNjMzLDE4LjM1MywzMC41OCwxOC4zNDNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+XCIsXG5cdH0sXG5cdFwiRWRpdG9yQ29uZmlnXCI6IHtcblx0XHRjb2xvdXI6IFwiI2UzZTNmOFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTguNzA5LDE4LjM1MWExLjI2NywxLjI2NywwLDAsMCwuNTMyLTEuMzc5QzguNjkyLDE3LjIwNyw4LjcxOCwxNy43NDksOC43MDksMTguMzUxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2UzZTNmOFxcXCIvPjxwYXRoIGQ9XFxcIk0xNC45MjQsMTkuODUyYS44NzEuODcxLDAsMCwwLC42Mi0xLjEzNUExLjQzLDEuNDMsMCwwLDAsMTQuOTI0LDE5Ljg1MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlM2UzZjhcXFwiLz48cGF0aCBkPVxcXCJNMi43MTMsMjcuMDc5YTEuNTM4LDEuNTM4LDAsMCwwLC41MjQsMS4zNTNjMS40MTQuNzk0LDYuMzcyLjE3NSw4LjA1Ni0uMmExNC45OTQsMTQuOTk0LDAsMCwwLDIuNDI2LTEuMjEzLDIyLjY0MywyMi42NDMsMCwwLDAsNC43MTMtMi41NTdjMS4wODItLjc5NCwyLjgtMy4wMjksMi45ODUtNC4zNjRsLTEuNDc1LS4zMzJjLS4wMzUsMS41LS4zNzUsMS44NDItMS43MTEsMi4xOTFhMTAuNjYyLDEwLjY2MiwwLDAsMS0zLjU3LjE0LDMuMzYyLDMuMzYyLDAsMCwxLTIuMzEzLTEuNTYyYy0xLjA2NS0xLjQxNC4yMzYtMi40LTEuNDQ5LTIuNS0xLjc3MiwyLjE3My00LjkuNjExLTYuMjY3LjM5M2EzMC4wNjYsMzAuMDY2LDAsMCwwLTEuOTM4LDcuNiwyLjc0OCwyLjc0OCwwLDAsMSwyLjEzOC4zMjNjMi42ODgsMS4wMzkuMzQsMS45NTUtLjczMywxLjY4NUMzLjM2OCwyNy44NjQsMy4xNDEsMjcuMzg0LDIuNzEzLDI3LjA3OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZGZkZmRcXFwiLz48cGF0aCBkPVxcXCJNNi4yMzEsMTQuNTM3YTExLjUzOSwxMS41MzksMCwwLDEsMi45ODUsMS4xMjZjMS41MS43NTEsMS43ODEuNjQ2LDEuOTIsMS42OTMuMDE3LjE5Mi0uMDE3LjMuNTMyLjQ3MS45MjUuMjg4LS41MzItLjIyNywxLjk0Ni0uMjE4QTE2LjY0LDE2LjY0LDAsMCwxLDE5LjU1OSwxOC45Yy40NTQuMjg4LjM2Ny42NTUsMS45LjYxMWExOC43NjcsMTguNzY3LDAsMCwwLTEuMi02LjE2MmMtLjg2NC0yLjAwNy0yLjAwNy0yLjMxMy00LjMzOC0zLjA2NC0xLjM2Mi0uNDM2LTUuMzU5LS45MTYtNi42LS4xNDgtMS4xNjEuNzI0LTEuMzc5LDEuNTg5LTIuNDYxLDMuMTA3QTUuMzY2LDUuMzY2LDAsMCwwLDYuMjMxLDE0LjUzN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZGZkZmRcXFwiLz48cGF0aCBkPVxcXCJNMTUuODQsMTguMjQ2Yy44NzMuMzU4LS4wNDQsMi42NzEtMS4yNTcsMi4xMTItLjM5My0xLjEwOC41NDEtMS43MzcuNzk0LTIuMjM0YTguNTEsOC41MSwwLDAsMC0yLjQ2MS0uMTQ4Yy0uNTc2LjIxOC0uNzA3LDEuNDQ5LS40MSwyLjAyNSwxLjQsMi43NDEsNy41NjcsMi4xNTYsNi45MTMuMDI2LS4yNjItLjg2NC0uNTA2LTEtMS4zODgtMS4zQTYuODg1LDYuODg1LDAsMCwwLDE1Ljg0LDE4LjI0NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZGZkZmRcXFwiLz48cGF0aCBkPVxcXCJNNC44NjksMTcuOTQxYy43LjY3MiwyLjI3OC43NzcsMy4zLjgyOUM4LjMsMTcuNDE3LDguNDEzLDE2LjQsOS41LDE2LjQ4M2ExLjYsMS42LDAsMCwxLS4zMDUsMi4xMywxLjM4NiwxLjM4NiwwLDAsMCwxLjM2Mi0xLjc2MywxNC41NDIsMTQuNTQyLDAsMCwwLTQuNDYtMS44OTRBOS41MDYsOS41MDYsMCwwLDAsNC44NjksMTcuOTQxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZkZmRmZFxcXCIvPjxwYXRoIGQ9XFxcIk0zLjIyOCwyNi41ODFjLjU3Ni0uMDUyLDIuMDc3LjM4NCwyLjIuODczQzQuNDk0LDI3LjU2OCwzLjMwNywyNy40OCwzLjIyOCwyNi41ODFabS0uNTE1LjVjLjQyOC4zMDUuNjU1Ljc4NiwxLjM4OC45NiwxLjA3NC4yNzEsMy40MjEtLjY0Ni43MzMtMS42ODVBMi43NDgsMi43NDgsMCwwLDAsMi43LDI2LjAzMmEzMC4wNjYsMzAuMDY2LDAsMCwxLDEuOTM4LTcuNmMxLjM3LjIxOCw0LjQ5NSwxLjc4MSw2LjI2Ny0uMzkzLDEuNjg1LjEuMzg0LDEuMDgyLDEuNDQ5LDIuNUEzLjM2MiwzLjM2MiwwLDAsMCwxNC42NjIsMjIuMWExMC42NjIsMTAuNjYyLDAsMCwwLDMuNTctLjE0YzEuMzM1LS4zNDksMS42NzYtLjY5LDEuNzExLTIuMTkxbDEuNDc1LjMzMmMtLjE4MywxLjMzNS0xLjksMy41Ny0yLjk4NSw0LjM2NGEyMi42NDMsMjIuNjQzLDAsMCwxLTQuNzEzLDIuNTU3LDE0Ljk5NCwxNC45OTQsMCwwLDEtMi40MjYsMS4yMTNjLTEuNjg1LjM3NS02LjY0MiwxLTguMDU2LjJBMS41MzgsMS41MzgsMCwwLDEsMi43MTMsMjcuMDc5Wm0xMi4yMTEtNy4yMjdhMS40MywxLjQzLDAsMCwxLC42Mi0xLjEzNUEuODcxLjg3MSwwLDAsMSwxNC45MjQsMTkuODUyWm0uOTE2LTEuNjA2YTYuODg1LDYuODg1LDAsMCwxLDIuMTkxLjQ4Yy44ODIuMywxLjEyNi40MzYsMS4zODgsMS4zLjY1NSwyLjEzLTUuNTE2LDIuNzE0LTYuOTEzLS4wMjYtLjMtLjU3Ni0uMTY2LTEuODA3LjQxLTIuMDI1YTguNTEsOC41MSwwLDAsMSwyLjQ2MS4xNDhjLS4yNTMuNS0xLjE4NywxLjEyNi0uNzk0LDIuMjM0QzE1LjgsMjAuOTE3LDE2LjcxMywxOC42LDE1Ljg0LDE4LjI0NlptLTcuMTMxLjFjLjAwOS0uNi0uMDE3LTEuMTQzLjUzMi0xLjM3OUExLjI2NywxLjI2NywwLDAsMSw4LjcwOSwxOC4zNTFabS0zLjg0LS40MWE5LjUwNiw5LjUwNiwwLDAsMSwxLjIyMi0yLjk4NSwxNC41NDIsMTQuNTQyLDAsMCwxLDQuNDYsMS44OTRBMS4zODYsMS4zODYsMCwwLDEsOS4xOSwxOC42MTNhMS42LDEuNiwwLDAsMCwuMzA1LTIuMTNjLTEuMDgyLS4wNzktMS4yLjkzNC0xLjMyNywyLjI4N0M3LjE0NywxOC43MTcsNS41NjcsMTguNjEzLDQuODY5LDE3Ljk0MVpNNCwxNy4yNDJjLS4zMjMtLjg5LS4zMjMtMi4yNzgsMS4wNDctMi4zOTJsLS43LDEuOTQ2QzQuMTYyLDE3LjIxNiw0LjE2MiwxNy4xMiw0LDE3LjI0MlptMi4yMzQtMi43MDZhNS4zNjYsNS4zNjYsMCwwLDEsLjYyOC0xLjI5MmMxLjA4Mi0xLjUxOSwxLjMtMi4zODMsMi40NjEtMy4xMDcsMS4yMzktLjc2OCw1LjIzNy0uMjg4LDYuNi4xNDgsMi4zMy43NTEsMy40NzQsMS4wNTYsNC4zMzgsMy4wNjRhMTguNzY3LDE4Ljc2NywwLDAsMSwxLjIsNi4xNjJjLTEuNTM2LjA0NC0xLjQ0OS0uMzIzLTEuOS0uNjExYTE2LjY0LDE2LjY0LDAsMCwwLTUuOTQ0LTEuMjkyYy0yLjQ3OS0uMDA5LTEuMDIxLjUwNi0xLjk0Ni4yMTgtLjU1LS4xNzUtLjUxNS0uMjc5LS41MzItLjQ3MS0uMTQtMS4wNDctLjQxLS45NDMtMS45Mi0xLjY5M0ExMS41MzksMTEuNTM5LDAsMCwwLDYuMjMxLDE0LjUzN1ptMTUuNDQ5LS40MjhjLS4xNjYtLjU1LjE0LS41MTUuNjcyLS44OWE5LjAyMSw5LjAyMSwwLDAsMSwuOTI1LS42NTVjMS40MDUtLjc4Niw0LjAyNC0uOTE2LDUuMTQxLjAxN0EyLjQ3OSwyLjQ3OSwwLDAsMSwyOS41LDE0LjY1YTUuODM4LDUuODM4LDAsMCwxLTIuNjE4LDMuODMyLDUuMjEzLDUuMjEzLDAsMCwxLTQuNzgzLDEuMmMtLjE1Ny0uMzg0LS4wMzUtMi44MTktLjIxOC0zLjcxOC0uMTY2LS44LS4wNzktLjg5LjM4NC0xLjM3LDEuMzYyLTEuNDE0LDQuMzEyLTIuNDQ0LDUuOTg4LTEuMjMxLjcwNy41MjQuNTA2LjcyNC44NzMsMS4xMjYuNDU0LS40ODktLjM5My0yLjEzLTMuNTE3LTIuMDI1QzIzLjQ4NiwxMi41MjksMjIuNTcsMTQuMTg3LDIxLjY4LDE0LjEwOVpNOC45NzEsOS4xNDNhOC4wOTQsOC4wOTQsMCwwLDEsMi4yNzgtNC42QzEyLjYsMy41LDE0LjAxNiwyLjUwOSwxNi4wOTQsMy42ODdjLjUxNS4yODguNDg5LjQzNi41NDEsMS4xNTJhMy4zMTIsMy4zMTIsMCwwLDEtLjE5MiwxLjVjLTEuMzc5LDQuNDUxLTIuNTMxLDEuODk0LTYuOTQ4LDIuOTVhNi4zNzQsNi4zNzQsMCwwLDEsMi4xMjEtMy40MTNjMS4yLTEuMTYxLDIuMDYtMS45MTEsMy44NTgtMS42NjdhMS44NDIsMS44NDIsMCwwLDEtLjA1MiwyLjMyMmMtLjgsMS4yOTItMSwxLjIxMy0uODgyLDIuMDk1LjYyOC0uMTU3LjgyLS43NjgsMS4xMDgtMS4zNzksMS43NTQtMy42NjYtLjc5NC00LjExMS0yLjM1Ny0zLjQzOUExMC4zNzIsMTAuMzcyLDAsMCwwLDkuNzY2LDcuNTU0Yy0uMTIyLjI0NC0uMjUzLjU1OS0uMzY3LjgyOVptNi45MTMuMTgzQzE2LjA2Nyw4LjIzNSwxNy4xNSw3Ljk2NCwxNy4xNSw0LjZjMC0xLjQ0OS0xLjc4MS0yLjc0OS00LjExMS0xLjc4MS0yLC44Mi0yLjMsMS40NDktMy4zNjksMy4wNTUtMSwxLjUxOS0uOTY5LDMuMTg2LTEuODMzLDQuNTkxLS4yNTMuNC0uNDguNTQxLS43NTkuOTQzLS4yLjMtLjM0OS42NzItLjU1LDEuMDIxQTEyLjk0LDEyLjk0LDAsMCwwLDUuMzY3LDE0LjRjLTEuMDQ3LjAyNi0xLjkyOS4wNDQtMi4wMzQsMS4xMjYtLjE0LDEuNDg0LjU1OSwxLjg1LjU1OSwyLjQwOS0uMDA5LjYtMi40NTMsNi42NzctMS43NzIsMTAuMy4xOTIsMSwuODQ3LDEsMS44OTQsMS4xMjZhMTcuOTMsMTcuOTMsMCwwLDAsOC4wNTYtLjcwN2w0LjEtMS45NjRhMTguODUsMTguODUsMCwwLDAsMy41NjEtMi41LDEyLjM4MywxMi4zODMsMCwwLDAsMS4zMDktMS43MTksMy4yMTMsMy4yMTMsMCwwLDAsLjgtMi4yMDgsOC40NzMsOC40NzMsMCwwLDEsMi45ODUsMWMtLjA2MS42LS4zNTguMzE0LS4zNTguODU1YTEuMzU1LDEuMzU1LDAsMCwwLDEuMDQ3LS44OWMtLjM1OC0uNTI0LS43MzMtLjQzNi0xLjI0OC0uODU1YTguMjEyLDguMjEyLDAsMCwxLDEuNzE5LS43MDdjMS4yMjItLjUwNiwzLjMwOC0yLjA0MiwzLjgyMy0zLjQzOWE0LjQ0OSw0LjQ0OSwwLDAsMC0uNTU5LTMuNzM2LDUuNDQ0LDUuNDQ0LDAsMCwwLTMuNjQ4LTEuMTYxYy0xLjU4LDAtMy4yMTIsMS4xMzUtNC40ODYsMS42MjMtLjQ4OS0uNDI4LS41MjQtLjkxNi0uODgyLTEuMzg4QTEyLjI4MSwxMi4yODEsMCwwLDAsMTUuODg0LDkuMzI2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAyMDIwMlxcXCIvPjxwYXRoIGQ9XFxcIk0yMS42OCwxNC4xMDljLjg5LjA3OSwxLjgwNy0xLjU4LDMuOTI4LTEuNjUsMy4xMjUtLjEsMy45NzEsMS41MzYsMy41MTcsMi4wMjUtLjM2Ny0uNC0uMTY2LS42LS44NzMtMS4xMjYtMS42NzYtMS4yMTMtNC42MjYtLjE4My01Ljk4OCwxLjIzMS0uNDYzLjQ4LS41NS41NjctLjM4NCwxLjM3LjE4My45LjA2MSwzLjMzNC4yMTgsMy43MThhNS4yMTMsNS4yMTMsMCwwLDAsNC43ODMtMS4yQTUuODM4LDUuODM4LDAsMCwwLDI5LjUsMTQuNjVhMi40NzksMi40NzksMCwwLDAtMS4wODItMi4wNjljLTEuMTE3LS45MzQtMy43MzYtLjgtNS4xNDEtLjAxN2E5LjAyMSw5LjAyMSwwLDAsMC0uOTI1LjY1NUMyMS44MTksMTMuNTk0LDIxLjUxNCwxMy41NTksMjEuNjgsMTQuMTA5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZkZjJmMlxcXCIvPjxwYXRoIGQ9XFxcIk04Ljk3MSw5LjE0Myw5LjQsOC4zODNjLjExMy0uMjcxLjI0NC0uNTg1LjM2Ny0uODI5QTEwLjM3MiwxMC4zNzIsMCwwLDEsMTMuMjkyLDMuODFjMS41NjItLjY3Miw0LjExMS0uMjI3LDIuMzU3LDMuNDM5LS4yODguNjExLS40OCwxLjIyMi0xLjEwOCwxLjM3OS0uMTIyLS44ODIuMDc5LS44Ljg4Mi0yLjA5NWExLjg0MiwxLjg0MiwwLDAsMCwuMDUyLTIuMzIyYy0xLjgtLjI0NC0yLjY2Mi41MDYtMy44NTgsMS42NjdBNi4zNzQsNi4zNzQsMCwwLDAsOS41LDkuMjkxYzQuNDE2LTEuMDU2LDUuNTY5LDEuNSw2Ljk0OC0yLjk1YTMuMzEyLDMuMzEyLDAsMCwwLC4xOTItMS41Yy0uMDUyLS43MTYtLjAyNi0uODY0LS41NDEtMS4xNTItMi4wNzctMS4xNzgtMy40OTEtLjE5Mi00Ljg0NC44NTVBOC4wOTQsOC4wOTQsMCwwLDAsOC45NzEsOS4xNDNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmVmM2YzXFxcIi8+PHBhdGggZD1cXFwiTTQsMTcuMjQyYy4xNjYtLjEyMi4xNjYtLjAyNi4zNDktLjQ0NWwuNy0xLjk0NkMzLjY3MywxNC45NjQsMy42NzMsMTYuMzUyLDQsMTcuMjQyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2VmZWZlZlxcXCIvPjxwYXRoIGQ9XFxcIk01LjQyOCwyNy40NTRjLS4xMjItLjQ4OS0xLjYyMy0uOTI1LTIuMi0uODczQzMuMzA3LDI3LjQ4LDQuNDk0LDI3LjU2OCw1LjQyOCwyNy40NTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmFmMWYxXFxcIi8+XCIsXG5cdH0sXG5cdFwiRUpTXCI6IHtcblx0XHRjb2xvdXI6IFwiIzkwYTkzYVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTIsMTcuNjcyVjE0LjMyOGwxMS44Ni02LjJWMTEuMkw1LjEsMTUuOTM5bDguNzYyLDQuODM1djMuMVptMjcuODE0LTguODhMMTkuNDY1LDIzLjIyOUgxNS45MTJMMjYuMjgxLDguNzkxWk0yNi45NDcsMjEuNWEuNzk0Ljc5NCwwLDAsMCwuNjE5LS4yNzgsMS4wNjEsMS4wNjEsMCwwLDAsLjI0OC0uNzMyLDEuMTQxLDEuMTQxLDAsMCwwLS4yNDgtLjc1My43NjguNzY4LDAsMCwwLTEuMjE3LDAsMS4xNDEsMS4xNDEsMCwwLDAtLjI0OC43NTMsMS4wOSwxLjA5LDAsMCwwLC4yMzcuNzMyQS43NjMuNzYzLDAsMCwwLDI2Ljk0NywyMS41Wm0yLjE4NiwxLjA0MmEzLjIzNywzLjIzNywwLDAsMS00LjM1Mi0uMDEsMi44NjQsMi44NjQsMCwwLDEsMC00LjEsMy4yMjMsMy4yMjMsMCwwLDEsNC4zNTIsMEEyLjc3MywyLjc3MywwLDAsMSwzMCwyMC40ODYsMi43NCwyLjc0LDAsMCwxLDI5LjEzNCwyMi41MzhaTTE4LjgyMSwxMy4wNjFhLjc5NC43OTQsMCwwLDAsLjYxOS0uMjc4LDEuMDYxLDEuMDYxLDAsMCwwLC4yNDgtLjczMiwxLjE0MSwxLjE0MSwwLDAsMC0uMjQ4LS43NTMuNzY5Ljc2OSwwLDAsMC0xLjIxNywwLDEuMTQxLDEuMTQxLDAsMCwwLS4yNDguNzUzLDEuMDksMS4wOSwwLDAsMCwuMjM3LjczMkEuNzYzLjc2MywwLDAsMCwxOC44MjEsMTMuMDYxWk0yMS4wMDcsMTQuMWEzLjIzNywzLjIzNywwLDAsMS00LjM1Mi0uMDEsMi44NjQsMi44NjQsMCwwLDEsMC00LjEsMy4yMjMsMy4yMjMsMCwwLDEsNC4zNTIsMCwyLjc3MywyLjc3MywwLDAsMSwuODY2LDIuMDYzQTIuNzQsMi43NCwwLDAsMSwyMS4wMDcsMTQuMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM5MGE5M2FcXFwiLz5cIixcblx0fSxcblx0XCJFbGl4aXJcIjoge1xuXHRcdGNvbG91cjogXCIjNDUyNDU5XCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxNy4yNDlcXFwiIHkxPVxcXCItMzM1LjU5N1xcXCIgeDI9XFxcIjE0Ljk3M1xcXCIgeTI9XFxcIi0zMDkuOTk0XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEsIDAsIDAsIC0xLCAwLCAtMzA2KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjAxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZjdmNmY4XFxcIiBzdG9wLW9wYWNpdHk9XFxcIjAuMDRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMDlcXFwiIHN0b3AtY29sb3I9XFxcIiNhYTljYjNcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMC4zOVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yXFxcIiBzdG9wLWNvbG9yPVxcXCIjNmY1NjdlXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjAuNjZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzJcXFwiIHN0b3AtY29sb3I9XFxcIiM0NTI0NTlcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMC44NlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41XFxcIiBzdG9wLWNvbG9yPVxcXCIjMmQwODQzXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjAuOTdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMyNjAwM2RcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2VsaXhpcjwvdGl0bGU+PHBhdGggZD1cXFwiTTE3LjgsOC41OTFjMi4wNzksNC41ODQsNy42NCw2LjUsNy4xNDEsMTIuNDc0LS41ODIsNy4wMTctNS41NTEsOC43ODQtOC4zMTYsOC45MDlhOC44MTUsOC44MTUsMCwwLDEtOS40LTcuNDg1QzUuNjE4LDE1LjA0NiwxMi42NTUsMy42MzIsMTYuNzA5LDJBMTUuMDgzLDE1LjA4MywwLDAsMCwxNy44LDguNTkxWm0tLjE2NiwxOC44NTdhLjQyMy40MjMsMCwwLDAtLjA1Ny0uMzI3Yy0uNTkzLTEuMS01LjgxLTEuNjQ1LTYuOTA3LTEuNzUyYTguMjcyLDguMjcyLDAsMCwwLDEuNjM1LDEuMyw3Ljc2Niw3Ljc2NiwwLDAsMCwyLjgxNCwxLjA0MUMxNS45MjIsMjcuODMxLDE3LjQ2NywyNy45MzMsMTcuNjM1LDI3LjQ0N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM3YzY0OGZcXFwiLz48ZyBzdHlsZT1cXFwib3BhY2l0eTowLjI1XFxcIj48cGF0aCBkPVxcXCJNMTguMjQ4LDEwLjYxOGM0LjQ3LDQuODIzLDYuNDQ1LDQuOTc5LDYuMjM3LDEwLjQ3OC0uMjQ5LDYuNDc2LTQuNTQzLDguMTkxLTcuMDU4LDguNDItNC4yLjU1MS03LjQ5NS0xLjUyOC04LjM1OC01LjY4NkM3LjMxMiwxNy4wNjMsMTIuOTc4LDYuMDIzLDE2LjYzNyw0LjM2QTE1LjMyMywxNS4zMjMsMCwwLDAsMTguMjU4LDEwLjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjYwMDNkXFxcIi8+PC9nPjxnIHN0eWxlPVxcXCJvcGFjaXR5OjAuNzVcXFwiPjxwYXRoIGQ9XFxcIk0xNy4zODUsOS45MjFDMjAuMzY5LDE0LDI0LjMxOSwxMy43LDI1LDE5LjY0MWMuMDk0LDYuOTIzLTMuNiw5LjI4My02LjIzNyw5Ljk0OC00LjUsMS4yNzktOC41MTQtLjY0NS0xMC4wOTQtNS0zLjAzNS03LDIuNjUxLTE4LjUxNCw2LjMxLTIwLjkxNWExNS4wODMsMTUuMDgzLDAsMCwwLDIuMzcsNi4yMzdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PC9nPlwiLFxuXHR9LFxuXHRcIkVsbVwiOiB7XG5cdFx0Y29sb3VyOiBcIiM4Y2Q2MzZcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xNiwxNi43NjgsMi43NjgsMzBIMjkuMjMyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzVmYjRjYlxcXCIvPjxwYXRoIGQ9XFxcIk0yNC4xMywyMy4zNjIsMzAsMjkuMjMyVjE3LjQ5MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZWE0MDBcXFwiLz48cGF0aCBkPVxcXCJNMTUuMjMyLDE2LDIsMi43NjhWMjkuMjMyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzU5NjI3N1xcXCIvPjxwYXRoIGQ9XFxcIk0zMCwxNC40NDhWMkgxNy41NTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojNWZiNGNiXFxcIi8+PHBhdGggZD1cXFwiTTIzLjM5Miw5LjM3Nmw2LjU5NCw2LjU5NC02LjYyNCw2LjYyNEwxNi43NjgsMTZaTTIuNzY4LDIsOC44NjMsOC4xSDIyLjExMUwxNi4wMTYsMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4Y2Q2MzZcXFwiLz48cGF0aCBkPVxcXCJNMTYsMTUuMjMybDYuMDUxLTYuMDUxSDkuOTQ5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlYTQwMFxcXCIvPlwiLFxuXHR9LFxuXHRcIkVSQlwiOiB7XG5cdFx0Y29sb3VyOiBcIiM5MjFhMWVcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk03LjI1LDI0Ljc1aDE3LjVMMTIuNSwxMi41LDcuMjUsMTcuNzVaTTIsMzBIMzBWMkgxNkwyLDE2Wm0yNS4zNzUtMi42MjVINC42MjV2LTEwLjVsMTIuMjUtMTIuMjVoMTAuNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM5MjFhMWVcXFwiLz5cIixcblx0fSxcblx0XCJFcmxhbmdcIjoge1xuXHRcdGNvbG91cjogXCIjYTIwMDNlXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNNi4zODgsMjMuODY3YTExLjAxMiwxMS4wMTIsMCwwLDEtMy40NDEtOC4yMzQsMTAuNzY1LDEwLjc2NSwwLDAsMSwyLjg2NC03LjVIMnYxNS43M1ptMjAuMDY2LDBhMTYuNDQsMTYuNDQsMCwwLDAsMi41MzctMy4xMzZsLTQuMjE4LTEuODczYTguMzA2LDguMzA2LDAsMCwxLTYuNjQxLDQuMTJjLTQuMzU5LS4wMTQtNi4wNzItMy4zMjktNi4wNjMtNy41ODRIMjguMzZhNi40NjUsNi40NjUsMCwwLDAsMC0uOTM1LDkuMDU3LDkuMDU3LDAsMCwwLTIuMDI5LTYuMzI2SDMwdjE1LjczSDI2LjQ1NlpNMTIuMzMyLDExLjc0MmEzLjcyMywzLjcyMywwLDAsMSwzLjktMy4yMywzLjI5LDMuMjksMCwwLDEsMy41MzIsMy4yM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNhMjAwM2VcXFwiLz5cIixcblx0fSxcblx0XCJGI1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMzNzhiYmFcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yLDE2LDE1LjI4OCwyLjcxMlY5LjM1Nkw4LjY0NCwxNmw2LjY0NCw2LjY0NHY2LjY0NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzNzhiYmFcXFwiLz48cGF0aCBkPVxcXCJNMTAuNTQyLDE2bDQuNzQ2LTQuNzQ2djkuNDkyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzM3OGJiYVxcXCIvPjxwYXRoIGQ9XFxcIk0zMCwxNiwxNi4yMzcsMi43MTJWOS4zNTZMMjIuODgxLDE2bC02LjY0NCw2LjY0NHY2LjY0NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzMGI5ZGJcXFwiLz5cIixcblx0fSxcblx0XCJGaXJlc3RvcmUgc2VjdXJpdHkgcnVsZXNcIjoge1xuXHRcdGNvbG91cjogXCIjZjY4MjBjXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNNS44LDI0LjZsLjE3LS4yMzdMMTMuOTksOS4xNDlsLjAxNy0uMTYxLTMuNTM1LTYuNjRhLjY1Ni42NTYsMCwwLDAtMS4yMjcuMjA3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYzI0YVxcXCIvPjxwYXRoIGQ9XFxcIk01LjksMjQuNDJsLjEyOC0uMjVMMTMuOTY1LDkuMTE0LDEwLjQzOSwyLjQ0OGEuNi42LDAsMCwwLTEuMTMzLjIwNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmE3MTJcXFwiLz48cGF0aCBkPVxcXCJNMTYuNTg0LDE0LjAxbDIuNjMyLTIuN0wxNi41ODMsNi4yODlhLjY3OC42NzgsMCwwLDAtMS4xOTUsMEwxMy45ODEsOC45NzFWOS4yWlxcXCIgc3R5bGU9XFxcImZpbGw6I2Y0YmQ2MlxcXCIvPjxwYXRoIGQ9XFxcIk0xNi41MzcsMTMuOSwxOS4xLDExLjI4LDE2LjUzNyw2LjRhLjU4OS41ODksMCwwLDAtMS4wNzQtLjA0N0wxNC4wNDksOS4wODJsLS4wNDIuMTM5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYTUwZVxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNS44MDIgMjQuNjAxIDUuODc5IDI0LjUyMyA2LjE1OCAyNC40MSAxNi40MTggMTQuMTg4IDE2LjU0OCAxMy44MzQgMTMuOTg5IDguOTU2IDUuODAyIDI0LjYwMVxcXCIgc3R5bGU9XFxcImZpbGw6I2Y2ODIwY1xcXCIvPjxwYXRoIGQ9XFxcIk0xNi45MTIsMjkuNzU2LDI2LjIsMjQuNTc3LDIzLjU0Niw4LjI0NkEuNjM1LjYzNSwwLDAsMCwyMi40NzEsNy45TDUuOCwyNC42bDkuMjMzLDUuMTU1YTEuOTI3LDEuOTI3LDAsMCwwLDEuODc4LDBcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZGUwNjhcXFwiLz48cGF0aCBkPVxcXCJNMjYuMTE1LDI0LjUzNCwyMy40ODMsOC4zMjZhLjU1Ny41NTcsMCwwLDAtLjk2Ny0uMzUzTDUuOSwyNC41NjlsOS4xMzEsNS4xYTEuOTEyLDEuOTEyLDAsMCwwLDEuODYzLDBaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmNjYTNmXFxcIi8+PHBhdGggZD1cXFwiTTE2LjkxMiwyOS42YTEuOTI3LDEuOTI3LDAsMCwxLTEuODc4LDBMNS44NzYsMjQuNTIyLDUuOCwyNC42bDkuMjMzLDUuMTU1YTEuOTI3LDEuOTI3LDAsMCwwLDEuODc4LDBMMjYuMiwyNC41NzdsLS4wMjMtLjE0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlYWIzN1xcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjMuMjAxIDEzIDE1LjQwNSAxNi41MzQgMTUuNDA1IDI3LjYwMyAyMS42MjUgMjQuNzg1IDIxLjYyNSAzMSAzMSAyNi43NDMgMzEgMTYuNTM0IDIzLjIwMSAxM1xcXCIgc3R5bGU9XFxcImZpbGw6IzI1MjUyNVxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjMuMjAxIDE0LjczIDE2Ljk4NSAxNy41NDkgMTYuOTg1IDIwLjMyNyAyMy4yMDEgMTcuNTA3IDI5LjQyMSAyMC4zMjcgMjkuNDIxIDE3LjU0OSAyMy4yMDEgMTQuNzNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIzLjIwMSAxOS41NjQgMTYuOTg1IDIyLjM4MSAxNi45ODUgMjUuMTU4IDIzLjIwMSAyMi4zMzcgMjkuNDIxIDI1LjE1OCAyOS40MjEgMjIuMzgxIDIzLjIwMSAxOS41NjRcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI4LjYwNiAyNi4wOTggMjUuNTUxIDI0LjcxMiAyMy4yMDEgMjUuNzc4IDIzLjIwMSAyOC41NDggMjguNjA2IDI2LjA5OFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIkZsb3dcIjoge1xuXHRcdGNvbG91cjogXCIjZmZiMDQ3XCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItNjcuOTA3XFxcIiB5MT1cXFwiLTMwOC41NTFcXFwiIHgyPVxcXCItNjcuODU3XFxcIiB5Mj1cXFwiLTMwOC41NjRcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoODcuODIyLCAwLCAwLCAtODguNTMzLCA1OTg0LjUzMiwgLTI3MjkwLjYxNylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmQ0NDFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmIwNDdcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIi02Ny42NzRcXFwiIHkxPVxcXCItMzEwLjEyMVxcXCIgeDI9XFxcIi02Ny42NDdcXFwiIHkyPVxcXCItMzEwLjA2M1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg4Ny44MjIsIDAsIDAsIC04OC41MzMsIDU5NjQuNjY3LCAtMjc0NDMpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZkNzU0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZiNTMyXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImNcXFwiIHgxPVxcXCItNjcuMDI5XFxcIiB5MT1cXFwiLTMxMC45MVxcXCIgeDI9XFxcIi02Ny4wMjlcXFwiIHkyPVxcXCItMzEwLjg2XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDg3LjgyMiwgMCwgMCwgLTg4LjUzMywgNTkwMi44LCAtMjc1MTguNzMzKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZDY0MlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZDQ0MVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmYjUzMlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJkXFxcIiB4MT1cXFwiLTY2LjI1MlxcXCIgeTE9XFxcIi0zMTAuMzc3XFxcIiB4Mj1cXFwiLTY2LjMyXFxcIiB5Mj1cXFwiLTMxMC4zNjJcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMTA2LjE5OCwgMCwgMCwgLTg4LjU1MSwgNzA0OC40MjgsIC0yNzQ3NC4xNjcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZkNDQxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZhODI5XFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9mbG93PC90aXRsZT48cGF0aCBkPVxcXCJNMjMuNDI2LDI5LjQxVjIyLjE3MmgtNy4xOGw3LjE4LDcuMjM4XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZkZjUxO2ZpbGwtb3BhY2l0eTowLjY5OTk5OTk4ODA3OTA3MVxcXCIvPjxwYXRoIGQ9XFxcIk0yNC4yMzEsMjUuMzA2VjE3LjQ3N0gxNi40NjZsNy43NjYsNy44MjlcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjg5MDA7ZmlsbC1vcGFjaXR5OjAuNjk5OTk5OTg4MDc5MDcxXFxcIi8+PHBhdGggZD1cXFwiTTE5LjUxNSwyMi4xNzFWMzBoNy43NjZsLTcuNzY2LTcuODI5XFxcIiBzdHlsZT1cXFwiZmlsbC1vcGFjaXR5OjAuNjk5OTk5OTg4MDc5MDcxO2ZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMi42MDgsMThWMTEuODA5SDE2LjQ2NkwyMi42MDgsMThcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmRmNGY7ZmlsbC1vcGFjaXR5OjAuNjk5OTk5OTg4MDc5MDcxXFxcIi8+PHBhdGggZD1cXFwiTTI1LjUyNCwxNi41MjVWOC43SDE3Ljc1OWw3Ljc2Niw3LjgyOVxcXCIgc3R5bGU9XFxcImZpbGwtb3BhY2l0eTowLjc5OTk5OTk1MjMxNjI4NDtmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMTIuMjg4LDJWOS44MjloNy43NjZMMTIuMjg4LDJcXFwiIHN0eWxlPVxcXCJmaWxsLW9wYWNpdHk6MC44MDAwMDAwMTE5MjA5Mjk7ZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTE0LjExLDE0LjI2MlY2LjQzM0g0LjcxOWw3LjczMiw3LjgzLDEuNjU5LDBcXFwiIHN0eWxlPVxcXCJmaWxsLW9wYWNpdHk6MC44Nzk5OTk5OTUyMzE2Mjg7ZmlsbDp1cmwoI2QpXFxcIi8+PHBhdGggZD1cXFwiTTE0LjExLDI5Ljk1OFYyMC40ODdINC43MTlsOS4zOTEsOS40NzFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmI3MDA7ZmlsbC1vcGFjaXR5OjAuNjk5OTk5OTg4MDc5MDcxXFxcIi8+PHBhdGggZD1cXFwiTTE0LjExMiwyMi4xMTRWMTQuMjg1SDYuMzQ2bDcuNzY2LDcuODI5XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiNzAwO2ZpbGwtb3BhY2l0eTowLjVcXFwiLz48cGF0aCBkPVxcXCJNMTYuNDY1LDExLjgwOXY3LjgyOWg3Ljc2NmwtNy43NjYtNy44MjlcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmNkMjU7ZmlsbC1vcGFjaXR5OjAuNjk5OTk5OTg4MDc5MDcxXFxcIi8+PHBhdGggZD1cXFwiTTE0LjA5MiwxMi42OTFWNC44NjJINi4zMjZsNy43NjYsNy44MjlcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjg5MDA7ZmlsbC1vcGFjaXR5OjAuNzAwMDAwMDQ3NjgzNzE2XFxcIi8+PHBhdGggZD1cXFwiTTE2LjI0NiwyMi4xNzFWMzBoNy43NjZsLTcuNzY2LTcuODI5XFxcIiBzdHlsZT1cXFwiZmlsbDojZmY4OTAwO2ZpbGwtb3BhY2l0eTowLjY5OTk5OTk4ODA3OTA3MVxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjEuMTIyIDIyLjE3MiAxOC42MDkgMTkuNjM4IDE2LjQ2NSAxOS42MzggMTYuNDY2IDExLjgwOSAyMC44NDcgMTEuODA5IDE4Ljg4MiA5LjgyOSAxNC4wOTIgOS44MjkgMTQuMTEgMTQuMjYyIDE0LjExIDIwLjQ4NyAxNC4xMSAzMCAxNi4yNDYgMzAgMTYuMjQ2IDIyLjE3MiAyMS4xMjIgMjIuMTcyXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdH0sXG5cdFwiRm9ydHJhblwiOiB7XG5cdFx0Y29sb3VyOiBcIiM3MzRmOTZcIixcblx0XHRpY29uOiBcIjxnIGlkPVxcXCJnMzc2OFxcXCI+PHJlY3QgaWQ9XFxcInJlY3Q4ODFcXFwiIHg9XFxcIjIuMzRcXFwiIHk9XFxcIjIuMzRcXFwiIHdpZHRoPVxcXCIyNy4zM1xcXCIgaGVpZ2h0PVxcXCIyNy4zM1xcXCIgcng9XFxcIjUuMDhcXFwiIHN0eWxlPVxcXCJmaWxsOiM3MzRmOTZcXFwiLz48cGF0aCBpZD1cXFwicGF0aDE0MTJcXFwiIGQ9XFxcIk02LjA2LDI1LjVjMC0xLjA5LDAtMS4xOS4xLTEuMTlsMS4yNS0uMDZjMSwwLDEuMTgtLjA2LDEuNDItLjE5YS43NC43NCwwLDAsMCwuMzktLjM3Yy4xMi0uMjMuMTItLjI5LjEyLTcuNzIsMC03LDAtNy41LS4xLTcuNjdhMS4wNiwxLjA2LDAsMCwwLS42My0uNSwxMC4yMywxMC4yMywwLDAsMC0xLjM4LS4xbC0xLjE3LDBWNS4zMkgyNS45NHY4LjgySDI0Ljg5YTguNTYsOC41NiwwLDAsMS0xLjItLjA1Yy0uMTQsMC0uMTUtLjA1LS4yMi0uOTVhMTIuNzMsMTIuNzMsMCwwLDAtLjM1LTIuNDMsMy4yMiwzLjIyLDAsMCwwLTIuNjMtMi44MWMtLjU3LS4xLTMuMS0uMi01LjE5LS4ySDEzLjg3djYuNjNsLjc1LDBBNi4zMyw2LjMzLDAsMCwwLDE2LjQ5LDE0YTEuODgsMS44OCwwLDAsMCwuODktLjkxLDUuODYsNS44NiwwLDAsMCwuMzktMS43NWMwLS4zMy4wOC0uNjYuMS0uNzNzMC0uMTMsMS4xOC0uMTNIMjAuMlYyMS4wNkgxNy44NWwwLS42MWE3Ljg1LDcuODUsMCwwLDAtLjU0LTIuNjZjLS4zNi0uNjgtMS4wNS0xLTIuNDUtMS4wOGwtLjc2LS4wNy0uMiwwLDAsMy4zNGMwLDMuNTEsMCwzLjY1LjMsMy45NHMuNDMuMzIsMy4yMi40MmMuMDUsMCwuMDcuMjguMDcsMS4xOXYxLjE4SDYuMDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PC9nPlwiLFxuXHR9LFxuXHRcIkZyZWVNYXJrZXIgVGVtcGxhdGUgTGFuZ3VhZ2VcIjoge1xuXHRcdGNvbG91cjogXCIjMDA1MGIyXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjQuMDIzLDIwLjksMjUuNDA4LDIzbDQuNjE1LTdMMjUuNDA4LDlsLTEuMzg1LDIuMUwyNy4yNTUsMTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1MGIyXFxcIi8+PHBhdGggZD1cXFwiTTcuOTc3LDExLjEsNi41OTIsOSwxLjk3NywxNmw0LjYxNSw3LDEuMzg1LTIuMUw0Ljc0NSwxNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDUwYjJcXFwiLz48cGF0aCBkPVxcXCJNMTMuMDM1LDloMi44bC0uNDk0LDIuOGgyLjhMMTguNjM1LDloMi44bC0uNDk0LDIuOGgyLjhsLS40OTUsMi44aC0yLjhsLS40OTMsMi44aDIuOGwtLjQ5NCwyLjhoLTIuOEwxOC45NjcsMjNoLTIuOGwuNDkzLTIuOC0yLjgsMEwxMy4zNzUsMjNIMTAuNTY3bC40OTMtMi44LTIuOCwwLC40OTQtMi44aDIuOGwuNDkzLTIuNzkzaC0yLjhMOS43NDEsMTEuOGgyLjhabTEuMzE5LDguNGgyLjhsLjQ5NC0yLjhoLTIuOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDUwYjJcXFwiLz5cIixcblx0fSxcblx0XCJHYW1lTWFrZXIgTGFuZ3VhZ2VcIjoge1xuXHRcdGNvbG91cjogXCIjOGJjMzRhXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTQuMjE2LDI0LjE2N2gtLjk4OWEzLjI0LDMuMjQsMCwwLDEtMi44MTEtMS42NDlMNi42NjcsMTZsNC42ODEtOC4xNjdIMTYuMmwtNC4zNCw4LjE3Ni4wNTcuMDMyTDEzLjkzNiwxOS41SDE2LjgyWk04LjQ1NSwxMC41MzVsLTEuMjctMi4yMWExLDEsMCwwLDAtLjg1OS0uNDkySDJsNCw2Ljk5MlpNMjEuNTQsOS40ODJhMy4yMzksMy4yMzksMCwwLDAtMi44MTItMS42NDlIMTcuNTIzTDE1LjA0NSwxMi41SDE4LjAyTDIwLjA4MywxNmwtNC41MzEsOC4xNjdoNS4wNTZMMjUuMzMzLDE2Wk0yNiwxNy4xNzJsLTIuNDcsNC4yNywxLjI4MywyLjIzM2ExLDEsMCwwLDAsLjg1OS40OTJIMzBaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGJjMzRhXFxcIi8+XCIsXG5cdH0sXG5cdFwiRy1jb2RlXCI6IHtcblx0XHRjb2xvdXI6IFwiI2JhMDAwMFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE3LjMzMywxNi4zNTZoMEwxNy4zMDksMjAuOGwtMi4xLTEuMDE4LjAyMy00LjQzN2gwbDEwLjU1OC0zLjAzOCwyLjEwNiwxLjAxM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZTAwMDBcXFwiLz48cGF0aCBkPVxcXCJNMjQuNDkyLDE4LjU3NmExNC45MDksMTQuOTA5LDAsMCwxLTEuMzQzLDMuMDc0LDcuODYsNy44NiwwLDAsMS0xLjM5LDEuODI5LDYuOCw2LjgsMCwwLDEtMS43LDEuMzI0LDcuNDA1LDcuNDA1LDAsMCwxLTIuMDA2Ljg1NSw2LDYsMCwwLDEtMy4wNzIuMjNBNC42NjgsNC42NjgsMCwwLDEsMTIuNDQsMjQuNjRhNS4zMjIsNS4zMjIsMCwwLDEtLjYzNi0uNjI5bC0uNTA4LS4yNDRhNC43MTcsNC43MTcsMCwwLDAsLjQ1Ny4xODEsNS41Miw1LjUyLDAsMCwxLTEuMDE1LTEuNzU4LDguMTM1LDguMTM1LDAsMCwxLS40My0xLjUzM2MtLjAyMy0uMTMxLS4wNDMtLjIzOS0uMDYxLS4zNGE3LjI5Miw3LjI5MiwwLDAsMCwuMzc3LDEuMzU0LDUuODM2LDUuODM2LDAsMCwwLDEuNjE0LDIuMzE5Yy4wNi4wNTQuMTI3LjEuMTkuMTQ4LjA0LjAwOC4wNzguMDIyLjExOS4wMjlhNi40NTQsNi40NTQsMCwwLDAsMi45MjgtLjIxOSw4LjQsOC40LDAsMCwwLDEuOTEtLjgwNyw3LjY1OCw3LjY1OCwwLDAsMCwxLjU4OS0xLjIyNyw4LjY2Miw4LjY2MiwwLDAsMCwxLjI5LTEuNjksMTIuNjY3LDEyLjY2NywwLDAsMCwxLjAxOS0yLjE5NEwyMy4zLDE5Yy4wNTYtLjE1My4wOTEtLjI1NC4wOTEtLjI1NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZTAwMDBcXFwiLz48cGF0aCBkPVxcXCJNMjQuNTI0LDQuMDEzYTExLjYsMTEuNiwwLDAsMC02LjU4OC0xLjk5NCwxMy44LDEzLjgsMCwwLDAtOS4zNzMsNC44NEExOC4yNDMsMTguMjQzLDAsMCwwLDQsMTguOGMuMDIxLDMuODUxLDEuNDgxLDcuODA2LDUuMTEyLDkuNTc1YTEzLjU2MywxMy41NjMsMCwwLDAsNC4xNTksMS41NjQsMTIuMTE0LDEyLjExNCwwLDAsMCw2Ljg2OS0xLjUyOWMtMi43MzQsMS4zMzMtNi4xMiwxLjk5My04Ljg5NC40LTIuNjg5LTEuNTQzLTMuOTgzLTQuNzI0LTQuMjIxLTcuNy0uNTEyLTYuNCwzLjEtMTMuNjQsOS4xMzItMTYuMjgxLDMuNTEyLTEuNTM3LDcuMzA3LTEuNTg1LDEwLjIzOSwxLjFDMjYuNzI3LDUuMjQ0LDI1LDQuMzA1LDI0LjUyNCw0LjAxM1ptLTE0LjM1OSwyNC44LS4xMzgtLjA5M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZTAwMDBcXFwiLz48cGF0aCBkPVxcXCJNMjIuNTI5LDI2Ljc4OGMtMy4wNDQsMi41ODItNy45Miw0LjE0OS0xMS41NTQsMS44NTdDNy4yNCwyNi4yODksNi41MywyMS4wODksNy4yMTIsMTcuMDgzYTE3LjIxOCwxNy4yMTgsMCwwLDEsNi43LTEwLjk3YzMuNzcxLTIuNjM2LDguODgtMy40OSwxMi40ODktLjE4MmwtMi4yNywzLjI5MWMtMi41MS0yLjM1NS02LjMtMS45NTYtOC45NDUtLjA1MkExMi40MzQsMTIuNDM0LDAsMCwwLDEwLjUsMTYuMmMtLjY2MiwyLjYyMy0uNSw2LjAxMSwxLjUsOC4wNDcsMi4wODgsMi4xMjksNS4xMTIsMi4xMTYsNy42NTYuOEExMC4zMzQsMTAuMzM0LDAsMCwwLDI0LjUsMTguNjM2TDE3LjMwNywyMC44bC4wMjItNC40MzhMMjcuODksMTMuMzE5bC4xLjgwNmgwQTE2LjYyNSwxNi42MjUsMCwwLDEsMjIuNTI5LDI2Ljc4OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiYTAwMDBcXFwiLz5cIixcblx0fSxcblx0XCJHRFNjcmlwdFwiOiB7XG5cdFx0Y29sb3VyOiBcIiM0NzhjYmZcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yOC4xNjYsMjEuMDI5djEuNjUyYS4zNzQuMzc0LDAsMCwxLS4yNi4zNTdsLTIuNi44NDFhLjM2Ny4zNjcsMCwwLDEtLjMzNS0uMDU0LjM3NC4zNzQsMCwwLDEtLjE1NS0uM3YtMS44bC0yLjQzOC40NjRWMjQuMDJhLjM3NS4zNzUsMCwwLDEtLjMyNS4zNzFsLTMuNTI1LjQ4M2MtLjAxNiwwLS4wMzQsMC0uMDUxLDBBLjM3NC4zNzQsMCwwLDEsMTguMSwyNC41VjIyLjU1N2wtMS44MTkuMDA4aC0uMjY3bC0xLjgxOS0uMDA4VjI0LjVhLjM3NS4zNzUsMCwwLDEtLjM3NS4zNzZjLS4wMTcsMC0uMDM0LDAtLjA1MiwwbC0zLjUyNS0uNDgzYS4zNzUuMzc1LDAsMCwxLS4zMjQtLjM3MVYyMi4xODRsLTIuNDM5LS40NjR2MS44YS4zNzQuMzc0LDAsMCwxLS4xNTQuMy4zNy4zNywwLDAsMS0uMzM2LjA1NGwtMi42LS44NDFhLjM3NC4zNzQsMCwwLDEtLjI1OS0uMzU3VjIxLjAyOWwtMS42MDgtLjU0MWE0LjU1OCw0LjU1OCwwLDAsMC0uMTI0LDEuMDRjMCw0LjMxNyw2LjA4Miw3LjY1LDEzLjYsNy42NzRoLjAxOWM3LjUxNy0uMDI0LDEzLjYtMy4zNTYsMTMuNi03LjY3NGE0LjU0LDQuNTQsMCwwLDAtLjEtLjk1WlxcXCIgZmlsbD1cXFwiIzQ3OGNiZlxcXCIvPjxwYXRoIGQ9XFxcIk0zLjcxMSwxMy4zNzNWMjAuMWwuOTA3LjMwNmEuMzc0LjM3NCwwLDAsMSwuMjU2LjM1NXYxLjY1bDEuODU1LjZWMjEuMjY3YS4zNzYuMzc2LDAsMCwxLC40NDUtLjM2OWwzLjE4OS42MDlhLjM3NC4zNzQsMCwwLDEsLjMwNS4zNjh2MS44MThsMi43NzUuMzc5di0xLjg5YS4zNzQuMzc0LDAsMCwxLC4zNzYtLjM3NWgwbDIuMzI3LjAwOSwyLjMyNi0uMDA5YS4zNzQuMzc0LDAsMCwxLC4zNzcuMzc1djEuODlsMi43NzUtLjM3OVYyMS44NzRhLjM3My4zNzMsMCwwLDEsLjMtLjM2OGwzLjE4OS0uNjA5YS4zNzcuMzc3LDAsMCwxLC40NDYuMzY5djEuNzQxbDEuODU1LS42VjIwLjc2YS4zNzQuMzc0LDAsMCwxLC4yNTUtLjM1NWwuNjE4LS4yMDhWMTMuMzczaC4wMTdBMjYuNzkyLDI2Ljc5MiwwLDAsMCwzMCwxMC45MzFhMTkuMDIsMTkuMDIsMCwwLDAtMi41MDktMy4yODhBMjQuNTA3LDI0LjUwNywwLDAsMCwyNSw5LjA5MWExMy4wMSwxMy4wMSwwLDAsMC0xLjI3OS0xLjA1MiwxNS4zNjUsMTUuMzY1LDAsMCwwLTEuMzc1LS44OTQsMjguMzUzLDI4LjM1MywwLDAsMCwuMjMyLTMuMDcxQTE1Ljk2OCwxNS45NjgsMCwwLDAsMTguODQ3LDIuOGEyNi40NCwyNi40NCwwLDAsMC0xLjM4NSwyLjcsOS40Niw5LjQ2LDAsMCwwLTEuNDUzLS4xMTZoLS4wMThhOS40NTcsOS40NTcsMCwwLDAtMS40NTQuMTE2LDI2LjI3NSwyNi4yNzUsMCwwLDAtMS4zODUtMi43QTE1Ljk2MSwxNS45NjEsMCwwLDAsOS40MjIsNC4wNzVhMjguMTQyLDI4LjE0MiwwLDAsMCwuMjMyLDMuMDcxLDE1LjMxMiwxNS4zMTIsMCwwLDAtMS4zNzYuODk0QTEzLjA2LDEzLjA2LDAsMCwwLDcsOS4wOTFhMjQuNTUzLDI0LjU1MywwLDAsMC0yLjQ5LTEuNDQ4QTE5LjAyLDE5LjAyLDAsMCwwLDIsMTAuOTMxYTI2Ljc5MiwyNi43OTIsMCwwLDAsMS42OTQsMi40NDNaXFxcIiBmaWxsPVxcXCIjNDc4Y2JmXFxcIi8+PHBhdGggZD1cXFwibTEyLjQ2MiAxNi42YTIuNzM5IDIuNzM5IDAgMSAxLTIuNzQtMi43MzggMi43MzkgMi43MzkgMCAwIDEgMi43NCAyLjczOFxcXCIgZmlsbD1cXFwiI2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIm0xMS44IDE2Ljc2NGExLjgxOSAxLjgxOSAwIDEgMS0xLjgxOS0xLjgxOSAxLjgxNyAxLjgxNyAwIDAgMSAxLjgxOSAxLjgxOVxcXCIgZmlsbD1cXFwiIzQxNDA0MlxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4xNjYsMTkuNTlhLjg0NC44NDQsMCwwLDEtLjg4Mi0uOFYxNi4yNjdhLjg4Ni44ODYsMCwwLDEsMS43NjQsMHYyLjUyMmEuODQ1Ljg0NSwwLDAsMS0uODgzLjhcXFwiIGZpbGw9XFxcIiNmZmZcXFwiLz48cGF0aCBkPVxcXCJtMTkuODcxIDE2LjZhMi43MzkgMi43MzkgMCAxIDAgMi43NC0yLjczOCAyLjczOSAyLjczOSAwIDAgMC0yLjc0IDIuNzM4XFxcIiBmaWxsPVxcXCIjZmZmXFxcIi8+PHBhdGggZD1cXFwibTIwLjUzMSAxNi43NjRhMS44MTggMS44MTggMCAxIDAgMS44MTctMS44MTkgMS44MTcgMS44MTcgMCAwIDAtMS44MTcgMS44MTlcXFwiIGZpbGw9XFxcIiM0MTQwNDJcXFwiLz5cIixcblx0fSxcblx0XCJHaXRcIjoge1xuXHRcdGNvbG91cjogXCIjZGQ0YzM1XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjkuNDcyLDE0Ljc1MywxNy4yNDcsMi41MjhhMS44LDEuOCwwLDAsMC0yLjU1LDBMMTIuMTU4LDUuMDY3bDMuMjIsMy4yMmEyLjE0MSwyLjE0MSwwLDAsMSwyLjcxMiwyLjczbDMuMSwzLjFhMi4xNDMsMi4xNDMsMCwxLDEtMS4yODUsMS4yMWwtMi44OTUtMi44OTV2Ny42MTdhMi4xNDEsMi4xNDEsMCwxLDEtMS43NjQtLjA2MlYxMi4zYTIuMTQ2LDIuMTQ2LDAsMCwxLTEuMTY1LTIuODE0TDEwLjkxMSw2LjMxNCwyLjUyOCwxNC43YTEuOCwxLjgsMCwwLDAsMCwyLjU1MUwxNC43NTMsMjkuNDcyYTEuOCwxLjgsMCwwLDAsMi41NSwwTDI5LjQ3MiwxNy4zYTEuOCwxLjgsMCwwLDAsMC0yLjU1MVxcXCIgc3R5bGU9XFxcImZpbGw6I2RkNGMzNVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi4xNTgsNS4wNjdsMy4yMiwzLjIyYTIuMTQxLDIuMTQxLDAsMCwxLDIuNzEyLDIuNzNsMy4xLDMuMWEyLjE0MywyLjE0MywwLDEsMS0xLjI4NSwxLjIxbC0yLjg5NS0yLjg5NXY3LjYxN2EyLjE0MSwyLjE0MSwwLDEsMS0xLjc2NC0uMDYyVjEyLjNhMi4xNDYsMi4xNDYsMCwwLDEtMS4xNjUtMi44MTRMMTAuOTExLDYuMzE0XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdH0sXG5cdFwiR0xTTFwiOiB7XG5cdFx0Y29sb3VyOiBcIiM0Mzg2YjVcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk03Ljc3OSwxOC45MjNBMi4zMzMsMi4zMzMsMCwwLDEsNS40LDE3LjE2Yy4zMDYsMS40NjIsMS45NjEsMi44OTIsNy4xODMsMy41MjlhMTQuMjI4LDE0LjIyOCwwLDAsMCw5LjIzMi0xLjYxMnMuNzMzLS4zMjIuMjkzLjE3NmMwLDAtMy4xMDcsMi44NzMtOS4yLDIuOVMxLjk3LDE5LjEwNywyLDE2Yy0uMDI5LTMuMTA3LDQuODA2LTYuMTg1LDEwLjktNi4xNTVzOS4yLDIuOSw5LjIsMi45Yy40NC41LS4yOTMuMTc2LS4yOTMuMTc2LTEuMDg0LS43LTQuMjg2LTIuMDg5LTkuMjMyLTEuNjEyLTQuODY2LjQ2OS02LjQ1MywyLjEyMi02Ljk4MSwzLjIzNWEzLjI1NCwzLjI1NCwwLDAsMC0uMzE4LDEuMjQsMi40MjQsMi40MjQsMCwwLDEsMi41LTIuMzE2QTIuNTA3LDIuNTA3LDAsMCwxLDEwLjMsMTYuMTk1LDIuNTA2LDIuNTA2LDAsMCwxLDcuNzc5LDE4LjkyWm0xOS42NDctMS4wNzRIMzB2LjkzN0gyNi4zNDRWMTMuNjA5aDEuMDgydjQuMjRaTTIzLjQ1NCwxNmgyLjE2M3YyLjc5MUgyNC45bC0uMTA4LS42NDlhMS45LDEuOSwwLDAsMS0xLjYxNC43ODYsMi40MTQsMi40MTQsMCwwLDEtMi4zNzktMi43MTEsMi40ODUsMi40ODUsMCwwLDEsMi41MzEtMi43NEEyLjA1MywyLjA1MywwLDAsMSwyNS42LDE1LjIxN0gyNC41MTVhMS4xMzYsMS4xMzYsMCwwLDAtMS4xMzItLjg1MWMtLjc3MSwwLTEuNDg1LjUzNC0xLjQ4NSwxLjg2LDAsMS40MTMuNzcxLDEuNzgxLDEuNTA2LDEuNzgxYTEuMjgsMS4yOCwwLDAsMCwxLjI1NC0xLjEzOWgtMS4yVjE2Wk03Ljc4MSwxNC4xYTEuODYsMS44NiwwLDAsMC0xLjgsMi4xMDUsMS44NiwxLjg2LDAsMCwwLDEuOCwyLjEwNSwxLjg2LDEuODYsMCwwLDAsMS44LTIuMTA1QTEuODYsMS44NiwwLDAsMCw3Ljc4MSwxNC4xWm0yLjkxMSwxLjM4M2guNTI1di40NjhoLjAxM2ExLjEyLDEuMTIsMCwwLDEsLjk4Ny0uNTYzLDEuNTY1LDEuNTY1LDAsMCwxLDEuNTA2LDEuNjc3LDEuNjc1LDEuNjc1LDAsMCwxLTEuNTgzLDEuODI0LDEsMSwwLDAsMS0uODgtLjQ0M2gtLjAxM1YyMC4xaC0uNTU3VjE1LjQ3OVpNMTIuMSwxOC40Yy42MDgsMCwxLjAxOS0uNTI3LDEuMDE5LTEuMjU0LDAtLjQyNC0uMTcxLTEuMjY0LTEuMDMyLTEuMjY0LS44LDAtLjg5My44NjctLjg5MywxLjQwNiwwLC44OC41NTEsMS4xMTQuOTA1LDEuMTE0Wm01LS42NTJhMS4zNzgsMS4zNzgsMCwwLDEtMS40ODgsMS4xMzMsMS40ODcsMS40ODcsMCwwLDEtMS40ODItMS42NThjMC0xLjAyNS40OTQtMS44NDIsMS41ODgtMS44NDIuOTU2LDAsMS40MjQuNzYsMS40MjQsMS45MzFIMTQuNzIxYzAsLjY5LjMyMywxLjA4OS45NjIsMS4wODlhLjg0MS44NDEsMCwwLDAsLjg1NC0uNjUySDE3LjFabS0uNTktLjg4Yy0uMDMyLS41MTMtLjI0Ny0uOTg3LS45MjQtLjk4N2EuOTcyLjk3MiwwLDAsMC0uOTE4Ljk4N2gxLjg0MlptMy43MTMsMS45MTdoLS41NTdWMTYuNzUxYzAtLjU3Ni0uMTY1LS44NjctLjcwOS0uODY3LS4zMTcsMC0uODc0LjItLjg3NCwxLjF2MS44aC0uNTU3VjE1LjQ3OWguNTI1di40NjhoLjAxM2ExLjIsMS4yLDAsMCwxLDEtLjU2MywxLjA0NiwxLjA0NiwwLDAsMSwxLjE1OCwxLjE1MnYyLjI1M1xcXCIgc3R5bGU9XFxcImZpbGw6IzQzODZiNVxcXCIvPlwiLFxuXHR9LFxuXHRcIkdvIG1vZHVsZVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNjZTMyNjJcIixcblx0XHRpY29uOiBcIjxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgMjU0LjUgMjI1XFxcIj48dGl0bGU+ZmlsZV90eXBlX2dvX3BhY2thZ2U8L3RpdGxlPjxwYXRoIGQ9XFxcIk02MS45NDksMTMuMDY4YzE2LjA2LS4xNDcsMzIuMTQzLDAsNDguMjExLS4wNjItMy44MSwxNi40MDgtNy40NjYsMzIuODYyLTExLjI2MSw0OS4yNzdIMjUuNTQ4Yy0yLjMxOSwwLTQuNjM3LjA3Ny02Ljk1Ni0uMDkzQzMzLDQ1Ljc3NSw0Ny41NjYsMjkuNSw2MS45NDksMTMuMDY4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2YyZTZjOVxcXCIvPjxwYXRoIGQ9XFxcIk0xNDMuNTA5LDEzLjAxNGg0OC4wNzJjMTQuNDM3LDE2LjQzMSwyOS4wMTMsMzIuNzIzLDQzLjQxMSw0OS4xNzctOS4yNzQuMTkzLTE4LjU0OSwwLTI3LjgyMy4wODVIMTU0LjY1NEMxNTEuMDA2LDQ1LjgzNywxNDcuMTExLDI5LjQ2LDE0My41MDksMTMuMDE0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2YyZTZjOVxcXCIvPjxwYXRoIGQ9XFxcIk0xMTAuMTYsMTMuMDE0aDMzLjM0OWMzLjYsMTYuNDQ2LDcuNDg5LDMyLjgyMywxMS4xNiw0OS4yNTRIOTguOUMxMDIuNjk0LDQ1Ljg2OCwxMDYuMzUsMjkuNDIyLDExMC4xNiwxMy4wMTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWZjNzVlXFxcIi8+PHBhdGggZD1cXFwiTTE4LjU5Miw2Mi4xODNjMi4zMTkuMTcsNC42MzcuMDg1LDYuOTU2LjA5M0g5OC45cTAsMjYuMDI2LjA1NCw1Mi4wNTJhMTguODU3LDE4Ljg1NywwLDAsMCwxLjk3OS4xMzloNTIuMTE0YTE0LjY5MywxNC42OTMsMCwwLDAsMS41NDYtLjEwOGMuMTQ3LTE3LjM2NiwwLTM0LjczMi4wNy01Mi4xaDUyLjUxNmM5LjI3NC0uMDQ2LDE4LjU0OS4xMDgsMjcuODIzLS4wODVWMjEyLjYySDE4LjZRMTguNTkyLDEzNy40MDUsMTguNTkyLDYyLjE4M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNlN2JmNTVcXFwiLz48cGF0aCBkPVxcXCJNOTguOSw2Mi4yOTFoNTUuNzY5Yy0uMDYyLDE3LjM2Ni4wODUsMzQuNzMyLS4wNyw1Mi4xLS41MTguMDU0LTEuMDM2LjA5My0xLjU0Ni4xMDhIMTAwLjk0YTE4Ljg1NywxOC44NTcsMCwwLDEtMS45NzEtLjEzMUM5OC44NjEsOTYuOTkzLDk4Ljk2OSw3OS42MzQsOTguOSw2Mi4yOTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojZGJiNTUxXFxcIi8+PHJlY3QgeD1cXFwiMzQuMzg5XFxcIiB5PVxcXCIxNjMuNjgyXFxcIiB3aWR0aD1cXFwiNzIuNDE3XFxcIiBoZWlnaHQ9XFxcIjI3Ljg4NVxcXCIgc3R5bGU9XFxcImZpbGw6I2YyZjJmMlxcXCIvPjxwYXRoIGQ9XFxcIk02MS40MjIsMTM3LjA4NWMtLjM4OCwwLS40ODctLjE5NC0uMjkxLS40ODdsMi4wNDEtMi42MjVhMS4zOTMsMS4zOTMsMCwwLDEsMS4wNjktLjQ4N2gzNC43Yy4zODgsMCwuNDg3LjI5MS4yOTEuNTg0TDk3LjU4MiwxMzYuNmExLjQ4MSwxLjQ4MSwwLDAsMS0uOTcyLjU4NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZTMyNjJcXFwiLz48cGF0aCBkPVxcXCJNNDYuNzQsMTQ2LjAyOGMtLjM4OCwwLS40ODctLjE5NC0uMjkxLS40ODdsMi4wNDEtMi42MjVhMS4zOTMsMS4zOTMsMCwwLDEsMS4wNjktLjQ4N0g5My44OWEuNDQ3LjQ0NywwLDAsMSwuNDg3LjU4NGwtLjc3OCwyLjMzM2EuODUuODUsMCwwLDEtLjg3NS41ODRaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2UzMjYyXFxcIi8+PHBhdGggZD1cXFwiTTcwLjI2NCwxNTQuOTcxYy0uMzg4LDAtLjQ4Ny0uMjkxLS4yOTEtLjU4NGwxLjM1Ny0yLjQzYTEuMjg5LDEuMjg5LDAsMCwxLC45NzItLjU4NEg5MS43NDdjLjM4OCwwLC41ODQuMjkxLjU4NC42ODFsLS4xOTQsMi4zMzNhLjczMS43MzEsMCwwLDEtLjY4MS42ODFaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2UzMjYyXFxcIi8+PHBhdGggZD1cXFwiTTE3MS4xNjMsMTM1LjMzNWMtNi4xMjQsMS41NTYtMTAuMywyLjcyMi0xNi4zMyw0LjI4LTEuNDYyLjM4OC0xLjU1Ni40ODctMi44MTktLjk3MmExMy4wMTEsMTMuMDExLDAsMCwwLTQuNTY5LTMuNjk0Yy02LjEyNC0zLjAxMy0xMi4wNTQtMi4xMzgtMTcuNTk0LDEuNDYyYTIwLjY3MSwyMC42NzEsMCwwLDAtOS45MTgsMTguNDY5LDE1LjI0MiwxNS4yNDIsMCwwLDAsMTMuMTIzLDE1LjI2MWM2LjYxLjg3NSwxMi4xNTEtMS40NjIsMTYuNTI1LTYuNDE1Ljg3NS0xLjA2OSwxLjY1My0yLjIzNiwyLjYyNS0zLjZIMTMzLjQ0NmMtMi4wNDEsMC0yLjUyOC0xLjI2My0xLjg0Ny0yLjkxNiwxLjI2My0zLjAxMywzLjYtOC4wNjgsNC45NTgtMTAuNmEyLjYyNSwyLjYyNSwwLDAsMSwyLjQzLTEuNTU2aDM1LjM4NGMtLjE5NCwyLjYyNS0uMTk0LDUuMjQ5LS41ODQsNy44NzRhNDEuNDU2LDQxLjQ1NiwwLDAsMS03Ljk2NywxOS4wNDJjLTYuOTk1LDkuMjM0LTE2LjEzNiwxNC45Ny0yNy43LDE2LjUyNS05LjUyNiwxLjI2My0xOC4zNzQtLjU4NC0yNi4xNDgtNi40MTVBMzAuNTMzLDMwLjUzMywwLDAsMSw5OS42MjUsMTYwLjUxYy0xLjI2My0xMC42LDEuODQ3LTIwLjEyMiw4LjI2Mi0yOC40ODFBNDMuMTM3LDQzLjEzNywwLDAsMSwxMzUuMSwxMTUuMjEyYzkuMTM3LTEuNjUzLDE3Ljg4Ni0uNTg0LDI1Ljc2LDQuNzYzQTMwLjQ3MSwzMC40NzEsMCwwLDEsMTcyLjE0LDEzMy42OEMxNzIuNzE5LDEzNC41NTgsMTcyLjMzLDEzNS4wNDQsMTcxLjE2MywxMzUuMzM1WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NlMzI2MlxcXCIvPjxwYXRoIGQ9XFxcIk0yMDMuMzM4LDE4OS4wOWMtOC44NDYtLjE5NC0xNi45MTMtMi43MjItMjMuNzE5LTguNTU0YTMwLjQ4NSwzMC40ODUsMCwwLDEtMTAuNS0xOC43NjFjLTEuNzUtMTAuOTg0LDEuMjYzLTIwLjcsNy44NzQtMjkuMzU2LDcuMS05LjMzMSwxNS42NTEtMTQuMTkyLDI3LjIxOC0xNi4yMzMsOS45MTgtMS43NSwxOS4yNDctLjc3OCwyNy43LDQuOTU4LDcuNjgsNS4yNDksMTIuNDQyLDEyLjM0NSwxMy43MDYsMjEuNjc2LDEuNjUzLDEzLjEyMy0yLjEzOCwyMy44MTYtMTEuMTc5LDMyLjk1M2E0NC41NDIsNDQuNTQyLDAsMCwxLTIzLjMyOSwxMi40NDJDMjA4LjQ5LDE4OC43LDIwNS44NjYsMTg4LjgsMjAzLjMzOCwxODkuMDlabTIzLjEzNS0zOS4yNzFhMjcuOTc4LDI3Ljk3OCwwLDAsMC0uMjkxLTMuMjA4LDE2LjAxMywxNi4wMTMsMCwwLDAtMTguMzc1LTEzLjIzNXEtLjczNC4xMTktMS40NTQuMzA2Yy05LjA0LDIuMDQxLTE0Ljg3Myw3Ljc3Ny0xNy4wMTEsMTYuOTEzYTE2LjAwOSwxNi4wMDksMCwwLDAsOC45NDMsMTguMzc0LDE3LjgyLDE3LjgyLDAsMCwwLDE1Ljg0NS0uNTg0YzcuNjc5LTMuOTg1LDExLjg1OS0xMC4yMDYsMTIuMzQ4LTE4LjU2NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZTMyNjJcXFwiLz48L3N2Zz5cIixcblx0fSxcblx0XCJHb1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMGFjZDdcIixcblx0XHRpY29uOiBcIjxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgMjU0LjUgMjI1XFxcIj48dGl0bGU+ZmlsZV90eXBlX2dvPC90aXRsZT48cGF0aCBkPVxcXCJNLTQ2LjkyNiw4OWMtLjYyMSwwLS43NzctLjMxMS0uNDY2LS43NzdsMy4yNjItNC4xOTRhMi4yMjUsMi4yMjUsMCwwLDEsMS43MDgtLjc3N0gxMy4wMjZjLjYyMSwwLC43NzcuNDY2LjQ2Ni45MzJsLTIuNjQsNC4wMzhhMi4zNjcsMi4zNjcsMCwwLDEtMS41NTMuOTMyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYWNkN1xcXCIvPjxwYXRoIGQ9XFxcIk0tNzAuMzc5LDEwMy4yODVjLS42MjEsMC0uNzc3LS4zMTEtLjQ2Ni0uNzc3bDMuMjYyLTQuMTk0YTIuMjI1LDIuMjI1LDAsMCwxLDEuNzA4LS43NzdINC45NWEuNzE0LjcxNCwwLDAsMSwuNzc3LjkzMkw0LjQ4NCwxMDIuMmExLjM1OCwxLjM1OCwwLDAsMS0xLjQuOTMyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYWNkN1xcXCIvPjxwYXRoIGQ9XFxcIk0tMzIuNzkyLDExNy41NzRjLS42MjEsMC0uNzc3LS40NjYtLjQ2Ni0uOTMybDIuMTc0LTMuODgzYTIuMDYsMi4wNiwwLDAsMSwxLjU1My0uOTMySDEuNTMzYy42MjEsMCwuOTMyLjQ2Ni45MzIsMS4wODdsLS4zMTEsMy43MjhhMS4xNjcsMS4xNjcsMCwwLDEtMS4wODcsMS4wODdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBhY2Q3XFxcIi8+PHBhdGggZD1cXFwiTTEyOC40MjYsODYuMmMtOS43ODUsMi40ODUtMTYuNDY0LDQuMzQ5LTI2LjA5Myw2LjgzNC0yLjMzLjYyMS0yLjQ4NS43NzctNC41LTEuNTUzLTIuMzMtMi42NC00LjAzOC00LjM0OS03LjMtNS45LTkuNzg1LTQuODE1LTE5LjI1OS0zLjQxNy0yOC4xMTIsMi4zMy0xMC41NjEsNi44MzQtMTYsMTYuOTI5LTE1Ljg0MiwyOS41MS4xNTUsMTIuNDI1LDguNywyMi42NzYsMjAuOTY4LDI0LjM4NSwxMC41NjEsMS40LDE5LjQxNC0yLjMzLDI2LjQtMTAuMjUxLDEuNC0xLjcwOCwyLjY0LTMuNTcyLDQuMTk0LTUuNzQ3SDY4LjE2M2MtMy4yNjIsMC00LjAzOC0yLjAxOS0yLjk1MS00LjY1OSwyLjAxOS00LjgxNSw1Ljc0Ny0xMi44OTEsNy45MjEtMTYuOTI5YTQuMTk0LDQuMTk0LDAsMCwxLDMuODgzLTIuNDg1aDU2LjUzNWMtLjMxMSw0LjE5NC0uMzExLDguMzg3LS45MzIsMTIuNTgxYTY2LjIzOSw2Ni4yMzksMCwwLDEtMTIuNzM2LDMwLjQ0MkMxMDguNywxNTkuNTEsOTQuMSwxNjguNjczLDc1LjYxOCwxNzEuMTU4Yy0xNS4yMjEsMi4wMTktMjkuMzU1LS45MzItNDEuNzgtMTAuMjUxYTQ4Ljc4NSw0OC43ODUsMCwwLDEtMTkuNzI1LTM0LjQ4Yy0yLjAxOS0xNi45MjksMi45NTEtMzIuMTUsMTMuMi00NS41MDhDMzguMzQyLDY2LjQ3NSw1Mi45NDIsNTcuMzEyLDcwLjgsNTQuMDVjMTQuNi0yLjY0LDI4LjU3OC0uOTMyLDQxLjE1OSw3LjYxYTQ4LjY4Niw0OC42ODYsMCwwLDEsMTguMDE3LDIxLjlDMTMwLjkxMSw4NC45NTgsMTMwLjI4OSw4NS43MzUsMTI4LjQyNiw4Ni4yWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYWNkN1xcXCIvPjxwYXRoIGQ9XFxcIk0xNzkuODM1LDE3Mi4wOWMtMTQuMTM0LS4zMTEtMjcuMDI1LTQuMzQ5LTM3LjktMTMuNjY4YTQ4LjcxMSw0OC43MTEsMCwwLDEtMTYuNzc0LTI5Ljk3NmMtMi44LTE3LjU1MSwyLjAxOS0zMy4wODIsMTIuNTgxLTQ2LjkwNSwxMS4zMzgtMTQuOTEsMjUuMDA2LTIyLjY3Niw0My40ODgtMjUuOTM4LDE1Ljg0Mi0yLjgsMzAuNzUzLTEuMjQzLDQ0LjI2NSw3LjkyMSwxMi4yNyw4LjM4NywxOS44OCwxOS43MjUsMjEuOSwzNC42MzUsMi42NCwyMC45NjgtMy40MTcsMzguMDUyLTE3Ljg2MSw1Mi42NTJhNzEuMTcsNzEuMTcsMCwwLDEtMzcuMjc2LDE5Ljg4QzE4OC4wNjcsMTcxLjQ2OSwxODMuODc0LDE3MS42MjQsMTc5LjgzNSwxNzIuMDlaTTIxNi44LDEwOS4zNDNhNDQuNyw0NC43LDAsMCwwLS40NjYtNS4xMjVjLTIuOC0xNS4zNzYtMTYuOTI5LTI0LjA3NC0zMS42ODQtMjAuNjU3LTE0LjQ0NCwzLjI2Mi0yMy43NjMsMTIuNDI1LTI3LjE4LDI3LjAyNWEyNS41NzksMjUuNTc5LDAsMCwwLDE0LjI4OSwyOS4zNTVjOC41NDIsMy43MjgsMTcuMDg1LDMuMjYyLDI1LjMxNy0uOTMyQzIwOS4zNDUsMTMyLjY0LDIxNi4wMjQsMTIyLjcsMjE2LjgsMTA5LjM0M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGFjZDdcXFwiLz48L3N2Zz5cIixcblx0fSxcblx0XCJHcmFkbGVcIjoge1xuXHRcdGNvbG91cjogXCIjMDA2NTMzXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTMuNSw2Ljk2NWg3LjkyM2w0LDYuODg3SDI5Ljk4QTE0LjEsMTQuMSwwLDAsMCwxMS4wMjQsMi45MzJMMTMuNSw2Ljk2NVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNjUzM1xcXCIvPjxwYXRoIGQ9XFxcIk0yNS42MjgsMThsLTQuMjA5LDcuMjUySDEwLjgwNkw1LjUsMTYuMTA4LDkuNzM5LDguOCw3LjQsNC45ODFBMTQuMDMsMTQuMDMsMCwxLDAsMzAsMThIMjUuNjI4XFxcIiBzdHlsZT1cXFwiZmlsbDojODJiODE2XFxcIi8+PHBhdGggZD1cXFwiTTIxLjA2MSwxNS45NjNhNS4wMjYsNS4wMjYsMCwxLDEtNS4wMjYtNSw1LjAxMyw1LjAxMywwLDAsMSw1LjAyNiw1XFxcIiBzdHlsZT1cXFwiZmlsbDojMDA2NTMyXFxcIi8+XCIsXG5cdH0sXG5cdFwiR3JhcGhRTFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNlMTAwOThcIixcblx0XHRpY29uOiBcIjxyZWN0IHg9XFxcIi0wLjQzXFxcIiB5PVxcXCIxMi41MzRcXFwiIHdpZHRoPVxcXCIyMi45MDFcXFwiIGhlaWdodD1cXFwiMS4xODdcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC01Ljg1OCAxNi4xMDcpIHJvdGF0ZSgtNTkuOTk5KVxcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxyZWN0IHg9XFxcIjQuNTQ1XFxcIiB5PVxcXCIyMS4xNjJcXFwiIHdpZHRoPVxcXCIyMi45MDJcXFwiIGhlaWdodD1cXFwiMS4xODdcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cmVjdCB4PVxcXCIxMC40M1xcXCIgeT1cXFwiMTguMDA4XFxcIiB3aWR0aD1cXFwiMS4xODdcXFwiIGhlaWdodD1cXFwiMTMuMjI3XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMTUuODEyIDIxLjg1Nykgcm90YXRlKC01OS45OTkpXFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHJlY3QgeD1cXFwiMjAuMzgxXFxcIiB5PVxcXCIwLjc3MVxcXCIgd2lkdGg9XFxcIjEuMTg3XFxcIiBoZWlnaHQ9XFxcIjEzLjIyN1xcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoNC4wOTIgMjEuODU2KSByb3RhdGUoLTU5Ljk5OSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cmVjdCB4PVxcXCI0LjQxMlxcXCIgeT1cXFwiNi43ODdcXFwiIHdpZHRoPVxcXCIxMy4yMjdcXFwiIGhlaWdodD1cXFwiMS4xODdcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0yLjIxMyA2LjUwMikgcm90YXRlKC0zMC4wMDEpXFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHJlY3QgeD1cXFwiMjAuMzg5XFxcIiB5PVxcXCIxLjY3N1xcXCIgd2lkdGg9XFxcIjEuMTg3XFxcIiBoZWlnaHQ9XFxcIjIyLjkwMVxcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTMuNzUzIDEyLjI1KSByb3RhdGUoLTMwLjAwMSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cmVjdCB4PVxcXCI1LjQ1NFxcXCIgeT1cXFwiOS4zODZcXFwiIHdpZHRoPVxcXCIxLjE4N1xcXCIgaGVpZ2h0PVxcXCIxMy4yMjhcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cmVjdCB4PVxcXCIyNS4zNlxcXCIgeT1cXFwiOS4zODZcXFwiIHdpZHRoPVxcXCIxLjE4N1xcXCIgaGVpZ2h0PVxcXCIxMy4yMjhcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cmVjdCB4PVxcXCIxNS4yMjJcXFwiIHk9XFxcIjI0LjA5N1xcXCIgd2lkdGg9XFxcIjExLjUwNFxcXCIgaGVpZ2h0PVxcXCIxLjAzN1xcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTkuNDk4IDEzLjc4NSkgcm90YXRlKC0zMC4wMDEpXFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHBhdGggZD1cXFwiTTI4LjEyLDIzYTIuNSwyLjUsMCwxLDEtLjkxNS0zLjQxMUEyLjUsMi41LDAsMCwxLDI4LjEyLDIzXFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHBhdGggZD1cXFwiTTguMiwxMS41YTIuNSwyLjUsMCwxLDEtLjkxNS0zLjQxMUEyLjUsMi41LDAsMCwxLDguMiwxMS41XFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHBhdGggZD1cXFwiTTMuODgsMjNhMi41LDIuNSwwLDEsMSwzLjQxMS45MTVBMi41LDIuNSwwLDAsMSwzLjg4LDIzXFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHBhdGggZD1cXFwiTTIzLjgsMTEuNWEyLjUsMi41LDAsMSwxLDMuNDExLjkxNUEyLjUsMi41LDAsMCwxLDIzLjgsMTEuNVxcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxwYXRoIGQ9XFxcIk0xNiwzMGEyLjUsMi41LDAsMSwxLDIuNS0yLjVBMi40OTMsMi40OTMsMCwwLDEsMTYsMzBcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cGF0aCBkPVxcXCJNMTYsNi45OTFhMi41LDIuNSwwLDEsMSwyLjUtMi41LDIuNDkzLDIuNDkzLDAsMCwxLTIuNSwyLjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz5cIixcblx0fSxcblx0XCJHcm9vdnlcIjoge1xuXHRcdGNvbG91cjogXCIjNjM5OGFhXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNNy40NTMsMjkuODY1YzAtLjA3NC40OTQtMS43MTcsMS4xLTMuNjUxQTIxLjgwOCwyMS44MDgsMCwwLDAsOS41LDIyLjZjLS4wNzktLjA1Ni0uMzUuMDQ1LS42LjIyNC0uNzY0LjUzOC0uOTIuNC0xLjQ5MS0xLjM1Ni0uNjE3LTEuOS0uNjM5LTIuMDkxLS4zMTctMi44MS4yMS0uNDcuMi0uNTc5LS4xNDctMS4yNzdhMy43NSwzLjc1LDAsMCwxLS4zNzctMS4wNDRjMC0uMjYtMS40MTMtMS40MzgtMy42NDctMy4wNEEzLjg0NSwzLjg0NSwwLDAsMSwyLDEyLjVhMTAuNDc3LDEwLjQ3NywwLDAsMSwyLjM3OC0uMDM5bDIuMzc4LjEuMjMyLS43NDFjLjk4MS0zLjEzLDIuNDYzLTUuOTU3LDMuMTIyLTUuOTU3LjEzNywwLC40MTYuMjY1LjYxOS41ODguMzMxLjUyNy4zNzYuODUzLjQzNSwzLjEyNmEyMy4wMTMsMjMuMDEzLDAsMCwwLC4xNjUsMi43MzljLjA1NS4xMS4yMjgtLjAzNS4zODUtLjMyMi4yLS4zNjcuNDEyLS40NjcuNzEtLjMzNXMuNDg1LjA0My42NDYtLjM0NWMuMjQyLS41ODIsMS40NTUtNC41MTMsMS40NTUtNC43MTcsMC0uMDY5LjI0LS45LjUzNC0xLjg0NnMuNjMxLTIuMDM2Ljc1MS0yLjQyNGMuMjEzLS42ODguMjQ2LS42MDcsMS41MjQsMy43MjYsMS4zMiw0LjQ3NCwyLjAzLDYuMTI0LDIuMzg1LDUuNTQ0LjI0OC0uNCwxLjU1LS40MjgsMS45MTQtLjAzNC4yMDcuMjI0LjMzOC4yMjEuNDUzLS4wMS4yMzctLjQ4LjgtLjQuOTUzLjE0LjExNy40MjMuMTQ3LjQyMy4zMiwwYS44MTIuODEyLDAsMCwxLC42OTItLjQ2NmMuMzg5LDAsLjUzOC4xNjQuNjY2LjczNWwuMTY1LjczNSwyLjU1OC0uMTgzQTExLjUyMSwxMS41MjEsMCwwLDEsMzAsMTIuNDY4YTIwLjc5LDIwLjc5LDAsMCwxLTIuMzIxLDEuODg5Yy0xLjI3Ny45Ni0yLjM0MiwxLjc3NS0yLjM2OCwxLjgxYTE3LjYwNywxNy42MDcsMCwwLDAsLjEyOCwxLjg2NywxMS4wNzUsMTEuMDc1LDAsMCwxLS41NDQsNS43MTMsNC4zMDgsNC4zMDgsMCwwLDEtMS4wMjEsMS40OWMtLjI3OC4xODYtLjUwNi40LS41MDYuNDg2cy4zLDEuMDc3LjY2LDIuMjEyQTkuNjgyLDkuNjgyLDAsMCwxLDI0LjU2OCwzMGMtLjEwOSwwLTIuNzU3LTIuMDctNi44NzYtNS4zNzNhMTEuMTQzLDExLjE0MywwLDAsMC0xLjY0My0xLjE4NGMtLjE3MSwwLTEuNjQ5LDEuMTMzLTUuOTg0LDQuNTg4LTIuNTE0LDItMi42MTIsMi4wNzMtMi42MTIsMS44MzVabTUuMTU4LTQuNzI3YzEuMzM3LTEuMDUxLDIuNjY0LTIuMDc4LDIuOTQ3LTIuMjgyLjQ4OC0uMzUxLjY1MS0uMjYzLDMuMDIxLDEuNjMxLDEuMzc4LDEuMSwyLjczNywyLjE3NCwzLjAyMSwyLjM4NHMuODY4LjY2NiwxLjMsMS4wMTNjLjQ5MS40Ljc0Mi40OTIuNjc0LjI1Ni0uNzctMi42MzQtLjc5My0yLjY3OC0xLjMyNy0yLjQ3Ni0uNjQ0LjI0NC0xLjA0My0uMDA2LTEuMjQ5LS43ODNhMS43MzksMS43MzksMCwwLDEsLjI0LTEuNDUxLDIuMzc3LDIuMzc3LDAsMCwwLS4yMjEtMi43MzEsNC4yODksNC4yODksMCwwLDEtLjY4Ni0xLjUzbC0uMjQxLTEuMDIzLS41MTcuNzFjLS42MzYuODczLTEuNDExLjkxOC0yLjA1OS4xMTlsLS40NzctLjU4OC0uNTU0Ljc2MmMtLjU1NS43NjMtMS4xOTQuODYyLTEuODQ0LjI4NC0uMTc5LS4xNTktLjI1OC0uMS0uMjU4LjJhMS4yNCwxLjI0LDAsMCwxLS4zNzUuNzc3Yy0uNjE5LjU3LTEuMjIzLjQxOS0xLjYzMy0uNDA5TDEyLDE5LjI0OWwtLjMuNzc1YTcuMDMyLDcuMDMyLDAsMCwxLS44NTMsMS40NzksMTMuODkxLDEzLjg5MSwwLDAsMC0xLjQ1NSwzLjY2M2MtLjUsMS42MjctLjksMy4wNDItLjksMy4xNDNzLjM4MS0uMTQxLjg0Ny0uNTM4LDEuOTQyLTEuNTgyLDMuMjc5LTIuNjMzWm0xMS4zNDMtMS4xMzFjMS4wMTUtMS4xNTQsMS4yNS0zLjI4OC44LTcuMjcxLS4zNzUtMy4zMjktLjU2Mi00LjQxOS0uNzg0LTQuNTY1LS4xNTQtLjEtLjE3Ny4wMS0uMDkxLjQyNi41NjIsMi43LjU5Myw0LjA1My4xLDQuNDM0LS4zMzcuMjYyLS42OTUtLjcxOS0uOTc2LTIuNjc1LS4yMTgtMS41MTUtLjQ0NS0yLjItLjYxNy0xLjg1YTMuMzU5LDMuMzU5LDAsMCwwLC4xNiwxLjA3LDI2LjcxOCwyNi43MTgsMCwwLDEsLjM5NCwzLjM4MSwyMS43NTcsMjEuNzU3LDAsMCwwLC4zNzUsMy4xNTFjLjMwOS45ODUuOC43NDcsMS4xMTgtLjU0cy4zNS0uNDI1LjA0NCwxLjA1NWMtLjMxNywxLjUzNi0xLjI2LDItMi4zNTIsMS4xNS0uMTc1LS4xMzYtLjIzNCwwLS4yMzQuNTU1YTQuOTg4LDQuOTg4LDAsMCwxLS4zLDEuNWwtLjMuNzY1LjQwOC4xMzlBMi4yNDcsMi4yNDcsMCwwLDAsMjMuOTU0LDI0LjAwN1pNOS4zNDYsMjEuNDY4YzIuMTE4LTEuMjMyLDIuNS0yLjY2OCwxLjc5My02LjgwNWEyMS45NDEsMjEuOTQxLDAsMCwxLS4zLTIuM2MwLTEuMDI5LS4yNTYtLjU1NC0uNDQ4LjgzMi0uMjU0LDEuODMyLTEuMDE2LDMuMzg5LTEuNjU3LDMuMzgzLS41NTctLjAwNS0uNzM4LS4yMS0uOTY4LTEuMDk0LS40MTMtMS41ODUuMDM3LTQuMDE4LDEuMTg0LTYuNDA2Ljg0LTEuNzQ5LDEuMy0xLjkwOCwxLjMtLjQ0OCwwLDIuMjc2LS43NzYsNS42MjUtMS4xODQsNS4xMTVhMy44MTQsMy44MTQsMCwwLDEsLjA2NS0yLjJjLjItLjcyLjE1Ny0xLjgxOC0uMDY2LTEuODE4LS4yNTksMC0uNzczLDEuOTEtLjg0MSwzLjEyNy0uMDYsMS4wNzYtLjAyMiwxLjMzOC4yMzEsMS42MTIuODg4Ljk2MiwyLjA1Mi0xLjk3MywyLjExMS01LjMyMy4wMzEtMS43NTktLjEzOC0yLjI1NC0uNjc0LTEuOTgyLS43ODEuNC0yLjg4Myw1Ljg4My0yLjg4Myw3LjUyMywwLDEuMjgzLjMxOSwyLjE4Ni44OCwyLjQ5MS45NTQuNTE5LDEuODc2LS40LDIuNTI5LTIuNTMxbC4yNzUtLjg5NFYxNC45N2MwLDEuNzU5LS41NjcsMi42ODYtMi4zNTcsMy44NTJhOC44OTMsOC44OTMsMCwwLDAtLjg1Mi42LDkuNzU4LDkuNzU4LDAsMCwwLC44OTIsMi41MzQsNS4yODMsNS4yODMsMCwwLDAsLjk2OS0uNDg0Wm0xMi43NjQtMi4xODRjLjIxMy0uNDc1LjI1LS45OTIuMi0yLjgxNy0uMDUtMS45ODYtLjEtMi4zMzctLjQ4Ni0zLjE0NC0uNjkxLTEuNDU4LTEuNTQ0LTEuMDg2LTEuMDQ1LjQ1NS4yNjUuODIuNTg5LjY4LjQ3NS0uMjA1LS4wOTEtLjcuMDc5LS43MjMuMzc1LS4wNDEuNTU2LDEuMjgxLjQxNiwzLjA1NS0uMjQyLDMuMDU1LS40NSwwLS41OS0uMzktLjg4My0yLjQ1OWE2Ljc1Miw2Ljc1MiwwLDAsMC0uMzYyLTEuNzE0Yy0uMjE3LDAtLjMxNC4zODgtLjE3OS43MThhMjguMjMsMjguMjMsMCwwLDEsLjQ1MiwyLjg1OWMuNDQxLDMuNTA3LDEuMDU3LDQuNzA3LDEuNjksMy4yOTNabS04LjM4LjA1NmEzLjM4NSwzLjM4NSwwLDAsMCwuMDk1LTEuMzNjLS4wNi0xLjAwOC0uMDk0LTEuMDgxLS4zNjQtLjc5LS4zODcuNDE5LS44LS4zNzUtLjk0NC0xLjgtLjEwNy0xLjA4Mi0uMTQtMS4wNjEuNjQtLjQxNS4xLjA4MS4zNDYtLjE5NC41NTMtLjYxMS4zNzctLjc2My41LTEuNjguMjI4LTEuNjgtLjA4MSwwLS4xNDcuMTM0LS4xNDcuMywwLC40MjktLjQuMzY4LS40OTQtLjA3NS0uMDUzLS4yNTgtLjE2Ni0uMTY3LS4zNjcuMy0uMTYuMzY5LS4zNTYuNjcxLS40MzQuNjcxcy0uMTg1LS4zLS4yMzctLjY3MWMtLjA5LS42NDYtLjEtLjY1LS4zLS4xMTNhLjk1MS45NTEsMCwwLDAtLjAxLjk2NCwxOC44MTgsMTguODE4LDAsMCwxLC41MjEsMy43OTFjMCwxLjE3NC44LDIuMSwxLjI2NywxLjQ2M1ptMi42ODgtMS41NTZhNy4wNTUsNy4wNTUsMCwwLDAsLjQxNi00LjI1OWMtLjIzNi0xLjE0MS0uNjQ1LTEuNTY4LTEuMjIyLTEuMjc1LS40MjkuMjE4LTEuMDgyLDIuNzQ2LTEuMDg0LDQuMiwwLDIuMjYyLDEuMDYsMy4wMTUsMS44OSwxLjMzN1ptLTEuMDA3LTEuNzkyYTMuNzcsMy43NywwLDAsMS0uMjktMS40MTZjMC0uNzQ1LjAyMi0uNzcyLjItLjMuMjIuNTg2LjYxMS42ODguNzYxLjJhMS4wMzUsMS4wMzUsMCwwLDAtLjA2NS0uNjU2Yy0uMjMyLS40NjktLjItMS4xMDcuMDQ5LTEuMTA3LjI4LDAsLjY3MiwxLjE1NC42NzIsMS45ODIsMCwuNjA5LS42MTMsMS44OTMtLjksMS44OTMtLjA3LDAtLjI2LS4yNjgtLjQyMi0uNlpNMTkuMzQ4LDE3LjdhNi40NDcsNi40NDcsMCwwLDAtLjE0MS00LjkxOGMtLjM1OC0uNzczLTEuMTUzLS45MDYtMS40NzktLjI0OGExMS42MDcsMTEuNjA3LDAsMCwwLS40ODksMy44OTVDMTcuNDc3LDE4LjM0OCwxOC43MTYsMTkuMSwxOS4zNDgsMTcuN1pNMTguMSwxNS41MjdhMi40OTIsMi40OTIsMCwwLDEtLjMxOC0xLjU2NWMuMDA4LS45MDkuMDMxLS45OTEuMTM1LS40NzIuMTUzLjc2NC40NzMsMS4wNTIuNzUzLjY3OS4xNzQtLjIzMS4xNjYtLjM0MS0uMDUtLjY3Ni0uMjg4LS40NDctLjM0NC0xLjA3OS0uMS0xLjA3OWE1LjAzNyw1LjAzNywwLDAsMSwxLjAxNywyLjI1YzAsLjQ4LS41NjQsMS4zMjctLjg4NCwxLjMyN0MxOC41MjcsMTUuOTkxLDE4LjI3NiwxNS43ODIsMTguMSwxNS41MjdabTguNjYyLTEuMzE4LDEuNTQ3LTEuMTc1LTEuNjU4LS4wMTJjLTEuNDg0LS4wMTEtMS42NTguMDQzLTEuNjU2LjUxYTExLjUzMiwxMS41MzIsMCwwLDAsLjIsMS44NTdjLjAxMSwwLC43MTYtLjUzNCwxLjU2Ny0xLjE4Wk02LjUzNSwxNGwuMTU4LS45NDlMNS4zLDEyLjk1NmMtLjc2NC0uMDUyLTEuMzg5LS4wMTItMS4zODkuMDg4YTE0LjEsMTQuMSwwLDAsMCwyLjQ0NywxLjkzNEM2LjM3MSwxNC45NjEsNi40NDgsMTQuNTIxLDYuNTM1LDE0Wm05LjUyNi0yLjk0MWExLjYyNCwxLjYyNCwwLDAsMSwuODE5LjZjLjE5Mi4zNDkuMjc2LjMyNi41NzMtLjE2My4xOTEtLjMxNS40NC0uNTcyLjU1My0uNTcycy4yLS4wNjYuMi0uMTQ2YzAtLjI3OC0yLjEyMi03LjMwNi0yLjItNy4zcy0yLjI3LDcuMzg2LTIuMzM3LDcuOTI1Yy0uMDI4LjIyNi4wNi4zMDkuMjMxLjIxOS4xNTItLjA4MS4zNjMuMDYzLjQ2OC4zMTkuMTcuNDE1LjI0LjM4Mi42NDQtLjMwNi4zODQtLjY1NC41NDQtLjc0MiwxLjA0OC0uNTc5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzMzM1xcXCIvPjxwYXRoIGQ9XFxcIk0xNC41LDEyLjE3NWEuODUuODUsMCwwLDEtLjExNS0uMi43MzcuNzM3LDAsMCwwLS4xOTQtLjI5LjI4MS4yODEsMCwwLDAtLjMtLjA2MWMtLjA4Ny4wMzUtLjExMS4wMzktLjE1LjAyNC0uMDY1LS4wMjYtLjA4OS0uMTA2LS4wNy0uMjQyLjAyMy0uMTY5LjItLjgyNS41NDgtMi4wNTQuNzExLTIuNSwxLjY2Ni01LjY0NiwxLjc3Mi01LjgzOS4wMTItLjAyMS4wMTItLjAyMS4wMjQsMCwuMDYzLjExNC40MzIsMS4yNjYuOTM3LDIuOTIyLjY4MiwyLjI0LDEuMjUsNC4yMSwxLjI1LDQuMzM5LDAsLjA3OS0uMDYuMTI3LS4xODYuMTQ3LS4xNTcuMDI2LS4zMzkuMjEyLS41ODcuNmExLjY3NCwxLjY3NCwwLDAsMS0uMjI2LjMxYy0uMDQ4LjA0Ni0uMDUyLjA0OC0uMS4wNDhzLS4wNTYsMC0uMS0uMDQzYS45NTguOTU4LDAsMCwxLS4xLS4xNDQsMS4yNjgsMS4yNjgsMCwwLDAtLjQxNC0uNDIyLDEuNTI1LDEuNTI1LDAsMCwwLS43MzgtLjI4MS40MzQuNDM0LDAsMCwwLS40LjE1NiwyLjcxOCwyLjcxOCwwLDAsMC0uNDE2LjZjLS4yNTcuNDI1LS4zNDguNTEzLS40NDEuNDI2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzYzOThhYVxcXCIvPjxwYXRoIGQ9XFxcIk02LjI1MiwxNC45MjhhMTkuMDU1LDE5LjA1NSwwLDAsMS0yLjMtMS44MzhjLS4wMzEtLjAzOC0uMDM0LS4wNDQtLjAyNS0uMDU3YTIuNywyLjcsMCwwLDEsMS4xNC0uMDg1Yy4yMy4wMTIsMS42MTkuMSwxLjYyMS4xMDhzLS4zLDEuNzc5LS4zMjEsMS44ODFDNi4zNTcsMTQuOTgxLDYuMzM3LDE0Ljk3OSw2LjI1MiwxNC45MjhaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjM5OGFhXFxcIi8+PHBhdGggZD1cXFwiTTI1LjE3NywxNS4zNUExNC4yMzksMTQuMjM5LDAsMCwxLDI1LDEzLjU2YS41NTMuNTUzLDAsMCwxLC4wNDQtLjI5Yy4wODEtLjE1MS4yNDUtLjIwNS43LS4yMy4yMjgtLjAxMywxLjI4MS0uMDE1LDIuMDI1LDBsLjUyMS4wMDhMMjcuMDI5LDE0Yy0xLjE0NC44NjctMS44MSwxLjM2OS0xLjgzNCwxLjM4Mi0uMDA2LDAtLjAxMi0uMDA2LS4wMTgtLjAyN2gwWlxcXCIgc3R5bGU9XFxcImZpbGw6IzYzOThhYVxcXCIvPjxwYXRoIGQ9XFxcIk04LjUwNiwyOC4yODFjMC0uMDcxLjE0OS0uNi41MjctMS44NzguOTA1LTMuMDU3LDEuMzE5LTQuMTY1LDEuODI3LTQuODkyYTcuNjY0LDcuNjY0LDAsMCwwLC45NjktMS43OTJMMTIsMTkuMjkybC4yMjUuNDQ4Yy4zOTQuNzg0LjYzMiwxLjAxMSwxLjA2MiwxLjAxNmExLjIzOSwxLjIzOSwwLDAsMCwxLjEtMS4xMzdjMC0uMTI0LjA0NC0uMjUxLjA4Ni0uMjUxYTEuMTE5LDEuMTE5LDAsMCwxLC4yMjYuMTQsMS4yNzEsMS4yNzEsMCwwLDAsLjY2Ni4zLjg3OS44NzksMCwwLDAsLjYwOS0uMTQ4LDIuNDcsMi40NywwLDAsMCwuNzExLS43NjRjLjE4Ny0uMjUyLjM0Ny0uNDU5LjM1NC0uNDU5cy4xNDMuMTU5LjMuMzUyYTUuMDkxLDUuMDkxLDAsMCwwLC40MjIuNDY3LDEuMDQ5LDEuMDQ5LDAsMCwwLDEuNTQ5LS4wOCw2LjExMSw2LjExMSwwLDAsMCwuNDY3LS41NzJjLjE2OC0uMjI4LjMwNy0uNDEuMzEtLjRzLjA2Ni4yNjkuMTQxLjU4NC4xNjkuNjcuMjA5Ljc4OWEzLjgyNiwzLjgyNiwwLDAsMCwuNjQyLDEuMjM0LDIuMTcsMi4xNywwLDAsMSwuNDY2LDEuMjQ2LDMuMDUxLDMuMDUxLDAsMCwxLS4zNTIsMS40NDcsMi4wNywyLjA3LDAsMCwwLS4yNjcuOTM0LDIuMDE3LDIuMDE3LDAsMCwwLC4yMTMuODUxLjc3My43NzMsMCwwLDAsMS4wNjkuNDEzLDEuMzUxLDEuMzUxLDAsMCwxLC4zMTYtLjA2OGMuMiwwLC4zMTUuMTkzLjU0Mi44ODEuMTU3LjQ3NC41LDEuNjM3LjUsMS42OTUsMCwuMDMtLjAxNi4wNTEtLjAzOS4wNTFhMS40ODYsMS40ODYsMCwwLDEtLjQwNy0uMjI0Yy0uMi0uMTQ0LTIuNjEyLTIuMDI5LTMuNDA4LTIuNjYzLTIuMTI4LTEuNjkzLTIuODI4LTIuMjMzLTMuMTcxLTIuNDQ2LS4zNy0uMjMtLjYyMi0uMjg1LS44MjctLjE3Ny0uMjU0LjEzMy0zLjcyNiwyLjg0Ny01Ljc1MSw0LjVBMTAuODQ2LDEwLjg0NiwwLDAsMSw4LjY1LDI4LjI1MWMtLjE0OS4wODMtLjE0My4wODEtLjE0My4wM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM2Mzk4YWFcXFwiLz5cIixcblx0fSxcblx0XCJIYW1sXCI6IHtcblx0XHRjb2xvdXI6IFwiI2VjZGZhN1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE1LjMxMSwxNi4wNDMsMTMuNCwyOS43MjZhNi4zMjIsNi4zMjIsMCwwLDEtNS45NTYtMS4yNWwzLjEtMTMuMjY2TDQuNjksMy4zNGE4LjAzMSw4LjAzMSwwLDAsMSwzLjc5LS42NDZsNS4xNDQsOS43LDguOTE0LTcuNTgxczMsMS4wNDEsMy4yNywyLjA0MWwtMTAuNSw5LjE4NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlY2RmYTdcXFwiLz48cGF0aCBkPVxcXCJNMjcuMDE2LDE3LjQxMWE0LjI0NCw0LjI0NCwwLDAsMC0uNTQxLS44MTIsNS43LDUuNywwLDAsMC0xLjQ1OC0xLjE4Nyw3LjMzMSw3LjMzMSwwLDAsMC0xLjY4Ny0uNzkxbC0uMjI5LS4wNjItLjE4Ny0uMDYyYy0uMTI1LS4wNDItLjIyOS0uMS0uMzMzLS4xNDZhMS4yODIsMS4yODIsMCwwLDEtLjQ1OC0uNDE3QTEuNzU0LDEuNzU0LDAsMCwxLDIyLDEyLjY0MmEyLjUxOCwyLjUxOCwwLDAsMSwuMS0uMzc1Yy4wNDItLjEyNS4wODMtLjI1LjEyNS0uNGEyLjY5MSwyLjY5MSwwLDAsMCwuMDYyLS42bC4xLS4wODMsMS4yNS0xLjA0MWMuMjI5LS4xODcuNDU4LS40LjY4Ny0uNTgzYTIuMiwyLjIsMCwwLDEsLjIyOS4xNDZzLjY0Ni4wNjIsMS0uOTE2bC0uMTg3LS4xMjUuMTI1LS4xLjMxMi0uMjcxYS42MTMuNjEzLDAsMCwwLC4yMjktLjM3NS41MjkuNTI5LDAsMCwwLS40MTcuMTI1bC0uMzMzLjI1LS4yMjkuMTY3TDIyLjE4NCw2LjQ3OGMuMTQ2LS4xMjUuMjcxLS4yMjkuNDE3LS4zNTRsLjYtLjU0MS4wNjItLjA2MmMuMDYyLjA0Mi4xLjA4My4xNjcuMTI1LjE0Ni4xLjMxMi4yMDguNDU4LjI5MmwuOTE2LjVjLjI5Mi4xNjcuNi4zMzMuOTE2LjQ3OWEzLjMyMywzLjMyMywwLDAsMCwuNDc5LjIwOGMuMDgzLjAyMS4xNjcuMDYyLjI1LjA4My4wNDIsMCwuMS4wMjEuMTQ2LjAyMWguMWEuMTUxLjE1MSwwLDAsMCwuMTI1LS4wODNWNy4xMjNhLjA3Ny4wNzcsMCwwLDEsLjAyMS0uMDYyVjYuOTc3YS4xMDguMTA4LDAsMCwwLS4wNDItLjA4M2MtLjAyMS0uMDQyLS4wNjItLjA4My0uMDgzLS4xMjVhMS41OSwxLjU5LDAsMCwwLS4xODctLjE4N2MtLjEyNS0uMTI1LS4yNzEtLjIyOS0uNC0uMzMzLS4yNzEtLjIwOC0uNTYyLS40LS44NTQtLjU4M2E3LjU0NSw3LjU0NSwwLDAsMC0uOS0uNSwzLjMyMywzLjMyMywwLDAsMC0uNDc5LS4yMDhjLS4wODMtLjAyMS0uMTY3LS4wNjItLjI3MS0uMDgzLS4wNDIsMC0uMS0uMDIxLS4xNjctLjAyMWEuMzEuMzEsMCwwLDAtLjEyNS4wMjEuNTIyLjUyMiwwLDAsMC0uMTY3LjEsMS42LDEuNiwwLDAsMC0uMzc1LjIwOGwtLjYyNS4zNTRjLS4xODcuMTQ2LS40LjMxMi0uNTgzLjQ1OGwtLjIwOC0uMTQ2cy0uODc1LjA4My0uNTgzLjY0NmwuMDgzLjA4M2MtLjgzMy42ODctMS42NDUsMS40LTIuNDU3LDIuMDgzLS44MzMuNzA4LTEuNjQ1LDEuNDE2LTIuNDc4LDIuMTQ1bC0xLjIyOSwxLjA4M2ExLjg3OCwxLjg3OCwwLDAsMS0uMjA4LjE4N2MtLjA0Mi0uMTI1LS4xLS4yMjktLjE0Ni0uMzMzbC0uMjkyLS42MjUtLjU2Mi0xLjI1Yy0uMzc1LS44MzMtLjc1LTEuNjY2LTEuMTQ1LTIuNUwxMS4yMDksNC44OTVsLS4xODctLjM3NWguMjVzLjA4My0uNjg3LS40MTctLjgxMmExLjQsMS40LDAsMCwwLS4yMDguMDIxYy0uMTg3LS4zNzUtLjM1NC0uNzUtLjU0MS0xLjEyNWgwbC0uMDgzLS4zMTJBLjMzLjMzLDAsMCwwLDkuOSwyLjFhLjM1Mi4zNTIsMCwwLDAtLjEtLjA0MmMtLjA2Mi0uMDIxLS4xLS4wMjEtLjE2Ny0uMDQyQTEuMjgxLDEuMjgxLDAsMCwwLDkuMzU1LDJhNC4wNTcsNC4wNTcsMCwwLDAtLjUyMS4wNDIsOC43NjcsOC43NjcsMCwwLDAtMS4wMi4xODdjLS4zMzMuMDgzLS42NjYuMTY3LTEsLjI3MWEzLjI3MiwzLjI3MiwwLDAsMC0uNDc5LjE4N2wtLjI1LjEyNWMtLjA0Mi4wMjEtLjA4My4wNjItLjEyNS4wODNMNS45LDIuOTU4Yy0uMDIxLjAyMS0uMDIxLjA0Mi0uMDQyLjA2MnYuMDYyaDBWMy4xYS4xNjQuMTY0LDAsMCwwLC4xLjEyNWMuMDQyLjAyMS4wNjIuMDQyLjA4My4wNDJhMS4zMjcsMS4zMjcsMCwwLDEsLjE0Ni4wNDIsMS4xODgsMS4xODgsMCwwLDAsLjI3MS4wMjEsNC4zODQsNC4zODQsMCwwLDAsLjUyMS0uMDQyYy4zMzMtLjA0Mi42ODctLjA4MywxLjAyLS4xNDZsMS4wMi0uMTY3Yy4xNjctLjAyMS4zMzMtLjA2Mi41MjEtLjEuMTQ2LjI5Mi4yOTIuNi40MzcuOS0uOTU4LjA4My0yLjQ1Ny4yMDgtMy4zOTUuMzEyLS4xLS4xODctLjE4Ny0uMzU0LS4yOTItLjU0MWEuMTI3LjEyNywwLDAsMC0uMTQ2LS4wNjIuMTA4LjEwOCwwLDAsMC0uMDYyLjE0NmMuMDYyLjE2Ny4xMjUuMzEyLjE4Ny40NzlhMS4xNjcsMS4xNjcsMCwwLDAtLjUuMTI1QTEuODI4LDEuODI4LDAsMCwwLDYuNCw1LjY0NWEzLjU2NywzLjU2NywwLDAsMSwuNDU4LS4xMjVsLjQzNywxLDEuMjUsMi44MzIsMS4yNywyLjgzMmMuNDE3LjkzNy44NTQsMS44NzQsMS4yOTEsMi44MzJoMGEuMDIuMDIsMCwwLDAsLjAyMS4wMjFsLS4xODcuNjI1LS41LDEuNzQ5Yy0uMzEyLDEuMTY2LS42LDIuMzUzLS45LDMuNTJMOS4xMDUsMjIuN2wtLjQxNywxLjc3Yy0uMjkyLDEuMTg3LS41NjIsMi4zNTMtLjksMy41MmEuMTI1LjEyNSwwLDAsMCwuMDIxLjA4MywzLjA3NiwzLjA3NiwwLDAsMCwuNi41NjIsNi4wNDgsNi4wNDgsMCwwLDAsLjY4Ny40MTcsOS40LDkuNCwwLDAsMCwxLjUuNiw2Ljk3Miw2Ljk3MiwwLDAsMCwxLjYyNC4yNzEsMy43MjgsMy43MjgsMCwwLDAsLjgzMy0uMDQyLDYuNTQ3LDYuNTQ3LDAsMCwwLC44MzMtLjE2Ny4yNTQuMjU0LDAsMCwwLC4xNjctLjE4N3YtLjAyMWMuMjI5LTEuMTQ1LjQxNy0yLjMxMi42MjUtMy40NTdsLjU4My0zLjQ3OGMuMTg3LTEuMTY2LjQtMi4zMTIuNTgzLTMuNDc4LjAyMS0uMTI1LjA0Mi0uMjcxLjA2Mi0uNC4wNDIuMDQyLjA2Mi4xLjEuMTQ2YTQuMTM3LDQuMTM3LDAsMCwwLC43MDguNjQ2LDcuMjEyLDcuMjEyLDAsMCwwLDEuNTgzLjgzMywxMS43NzQsMTEuNzc0LDAsMCwwLDEuNjY2LjUsMTAuMTgyLDEwLjE4MiwwLDAsMCwxLjEuMTg3LDIuNjIxLDIuNjIxLDAsMCwwLS4yNSwxLjIwOC4xMTUuMTE1LDAsMCwwLC4wNjIuMWguMDIxYTUuMTY0LDUuMTY0LDAsMCwwLDEuMjcuNDc5LDQuMzMzLDQuMzMzLDAsMCwwLDEuMzc1LjA2MiwyLjYyNywyLjYyNywwLDAsMCwxLjMzMy0uNTYyLDIuODI0LDIuODI0LDAsMCwwLC44MTItMS4xNjZsLjAyMS0uMDIxVjIxLjFsLjA2Mi0uNTYydi0uMDIxYTUuNDI3LDUuNDI3LDAsMCwwLC42MjUtLjQxNywyLjcxLDIuNzEsMCwwLDAsLjY0Ni0uNzI5LDEuODMzLDEuODMzLDAsMCwwLC4yNS0xLDIuNTYzLDIuNTYzLDAsMCwwLS4yOTItLjk1OFptLS40LTEwLjVabS0xLjQ3OS0xLjFhNy4xMiw3LjEyLDAsMCwxLC44MzMuNTQxYy4xMjUuMS4yNzEuMTg3LjQuMzEyYTEuMjU3LDEuMjU3LDAsMCwxLC4xNjcuMTY3bC4wNDIuMDQyaC0uMDQyYy0uMDgzLS4wMjEtLjE0Ni0uMDQyLS4yMjktLjA2Mi0uMTQ2LS4wNjItLjMxMi0uMTI1LS40NTgtLjE4N2E3LjEzMiw3LjEzMiwwLDAsMS0uODc1LS40NzlBNS42MSw1LjYxLDAsMCwxLDI0LjIsNS41MmEyLjUsMi41LDAsMCwxLS4yMjktLjI1bC4zMTIuMTI1YTYuNCw2LjQsMCwwLDEsLjg1NC40MTdabS0xLjQxNi0uOTE2LjAyMS4wMjF2LjA0MmEuMDIuMDIsMCwwLDAtLjAyMS0uMDIxVjQuODk1Wk04Ljg3NiwyLjU2MmE1LjAyMSw1LjAyMSwwLDAsMS0uOTM3LjMzMyw1LjM0Nyw1LjM0NywwLDAsMS0uOTc5LjE2Nyw0LjAxMyw0LjAxMywwLDAsMS0uNS4wMjEuNzgxLjc4MSwwLDAsMS0uMjI5LS4wMjFINi4xNjljLjAyMSwwLC4wMjEtLjAyMS4wNDItLjAyMS4wNjItLjA0Mi4xNDYtLjA2Mi4yMDgtLjEuMTQ2LS4wNjIuMzEyLS4xLjQ1OC0uMTY3LjMxMi0uMDgzLjY0Ni0uMTY3Ljk3OS0uMjI5YTguNCw4LjQsMCwwLDEsLjk3OS0uMTI1QTEuNTc2LDEuNTc2LDAsMCwwLDkuMTQ3LDIuNGExLjUzNiwxLjUzNiwwLDAsMS0uMjcxLjE2N1ptMTQuNDUzLDcuMS0xLjI5MSwxLTEuMjkxLDEuMDJjLS4zNTQuMjkyLS43MDguNTgzLTEuMDYyLjg1NC4wMjEtLjAyMS4wNDItLjA2Mi4wNjItLjA4My4xNjctLjIyOS4zMzMtLjQzNy41LS42NDYuMzU0LS40MTcuNjg3LS44NTQsMS4wNjItMS4yNXMuNzcxLS43OTEsMS4xNjYtMS4xNDVhNC44NzIsNC44NzIsMCwwLDEsLjY0Ni0uNWwuMTg3LS4xMjVjLjE4Ny4xNDYuNC4yOTIuNTgzLjQzNy0uMTY3LjE0Ni0uMzc1LjI5Mi0uNTYyLjQzN1pNOC4wNjQsNy4xbC4xLjFhNS42Myw1LjYzLDAsMCwxLC41ODMuNjQ2LDIuMjEsMi4yMSwwLDAsMSwuMzc1LjcyOS45MjEuOTIxLDAsMCwxLS4wNjIuNjI1bC0uMDIxLS4wNjJMOC4wNjQsNy4xWm0xLjAyLDIuMTY2YS43Mi43MiwwLDAsMCwuMTQ2LS4yNS44NjYuODY2LDAsMCwwLC4wNDItLjQ1OEExLjcsMS43LDAsMCwwLDguOSw3LjcyN2E0LjAxNSw0LjAxNSwwLDAsMC0uOTc5LS45bC0uMjI5LS40NzljLS4xNDYtLjMxMi0uMjkyLS42MjUtLjQ1OC0uOTE2LjMxMi0uMDgzLjY4Ny0uMjA4LDEuMS0uMzEyQTIwLjMxMywyMC4zMTMsMCwwLDEsOS4zNTUsN2E3Ljk2Myw3Ljk2MywwLDAsMSwuNzcxLDIuNTQxYy4wMjEuMjA4LDAsLjQzNywwLC42NjZzMCwuNDU4LjAyMS42ODdhNy42MDksNy42MDksMCwwLDAsLjE0Ni45NThMOS4wODQsOS4yNjhaTTE0LDI2LjI0MmEuOS45LDAsMCwxLS4xODcuMjA4LjQuNCwwLDAsMS0uMzMzLjEuMzU4LjM1OCwwLDAsMS0uMjI5LS4yMjkuOTgxLjk4MSwwLDAsMS0uMDgzLS4zNTQsMi4yNzUsMi4yNzUsMCwwLDEsLjA0Mi0uNzUsMi44MTYsMi44MTYsMCwwLDEsLjIyOS0uNzA4LDEuNDc4LDEuNDc4LDAsMCwxLC4yMDgtLjI5Mi4zNDEuMzQxLDAsMCwxLC4yOTItLjEyNWMuMSwwLC4yMDguMS4yNzEuMjA4YS43NC43NCwwLDAsMSwuMDgzLjE4N2wtLjI1LDEuNDc5Yy0uMDIxLjEtLjAyMS4xODctLjA0Mi4yNzFabTEuMjI5LTcuMTg1LS4zNzUsMi4xODdhMy4zMjksMy4zMjksMCwwLDAtLjEtLjQzN2MtLjEtLjQtLjIyOS0uNzcxLS4zNTQtMS4xNDVhMTUuNTM3LDE1LjUzNywwLDAsMC0uOTU4LTIuMTY2Yy4yMjkuNzcxLjUsMS41Ljc3MSwyLjI0OS4xNDYuMzc1LjI3MS43NS40LDEuMWwuMTg3LjU2MmMwLC4wMjEuMDIxLjA2Mi4wMjEuMDgzLS4wNjIuMzMzLS4xMjUuNjY2LS4xNjcsMS4wMmwtLjMxMiwxLjljLS4wMjEtLjA0Mi0uMDIxLS4wODMtLjA0Mi0uMTI1YS40ODYuNDg2LDAsMCwwLS4zMTItLjI5Mi41MjUuNTI1LDAsMCwwLS40MTcuMTI1LDEuOTQ0LDEuOTQ0LDAsMCwwLS4yNzEuMzEyLDIuMDM2LDIuMDM2LDAsMCwwLS4yNzEuNzUsMi4xMzEsMi4xMzEsMCwwLDAsMCwuODEyLDEuMDIxLDEuMDIxLDAsMCwwLC4xNDYuNC40ODYuNDg2LDAsMCwwLC4zMzMuMjcxLjQyOC40MjgsMCwwLDAsLjM3NS0uMTY3Yy4wNDItLjA0Mi4wODMtLjEuMTI1LS4xNDYtLjE0Ni45NzktLjMxMiwxLjk1OC0uNDU4LDIuOTU3YTIuNzI3LDIuNzI3LDAsMCwxLS41NjIuMTI1Yy0uMjUuMDQyLS41LjA2Mi0uNzUuMDgzYTUuNTMxLDUuNTMxLDAsMCwxLTEuNTQxLS4xNDYsNy44NDYsNy44NDYsMCwwLDEtMS41LS40NzksMy42MjUsMy42MjUsMCwwLDEtMS4yMjktLjg1NGMuMzEyLTEuMTQ1LjY2Ni0yLjI5MSwxLjAyLTMuNDM2bC41NDEtMS43MjkuNTIxLTEuNzQ5Yy4zNTQtMS4xNjYuNzA4LTIuMzMzLDEuMDQxLTMuNS4xNjctLjU4My4zMTItMS4xNjYuNDc5LTEuNzQ5YTMuNjI2LDMuNjI2LDAsMCwwLC4xODctMS44MzN2LS4wMjFjLS4wMjEtLjAyMS0uMDQyLS4wMjEtLjA0MiwwYTMuMTA5LDMuMTA5LDAsMCwwLS4yNS4yOTJjLS4yMjktLjUyMS0uNDc5LTEuMDItLjcwOC0xLjU0MWE0Ljc2NSw0Ljc2NSwwLDAsMS0uMTY3LS41ODMsNy4xNjUsNy4xNjUsMCwwLDEtLjIwOC0xLjMxMmMtLjAyMS0uMjI5LS4wMjEtLjQzNy0uMDIxLS42NjZzLjAyMS0uNDU4LDAtLjY4N2E3LjYyNSw3LjYyNSwwLDAsMC0uODMzLTIuNiwxMi41ODcsMTIuNTg3LDAsMCwwLTEuMS0xLjgzM2MuNjg3LS4xODcsMS40MTYtLjM3NSwyLS40NzkuMDgzLjE4Ny4xODcuMzU0LjI3MS41NDFMMTEuOTM4LDcuNmwxLjI1LDIuNDM3LjYyNSwxLjIwOC4zMTIuNmMuMDgzLjEyNS4xMjUuMjcxLjIwOC4zNzVsLS44MTIuNzVhLjA2OS4wNjksMCwwLDAsMCwuMS4wNzMuMDczLDAsMCwwLC4xLjAyMWMuNDM3LS4zMTIuODc1LS42NDYsMS4zMTItLjk3OWwxLjMxMi0xYy44NzUtLjY2NiwxLjcyOS0xLjMzMywyLjU4Mi0yczEuNzA4LTEuMzU0LDIuNTYyLTIuMDQxbC4wMjEtLjAyMWEyNC4zMTYsMjQuMzE2LDAsMCwwLDEuODc0LDEuNjQ1LDYuMTYyLDYuMTYyLDAsMCwwLS44NzUuNTQxLDguOTQzLDguOTQzLDAsMCwwLTEuMjI5LDEuMTI1LDEyLjI3OSwxMi4yNzksMCwwLDAtMS4wNDEsMS4yOTEsMTEuNzc4LDExLjc3OCwwLDAsMC0uNjQ2LDFjLTEuMjcsMS4wNDEtMi41MiwyLjEtMy43MjgsMy4yMDdhLjEyOC4xMjgsMCwwLDAtLjAyMS4xNDYuMTM4LjEzOCwwLDAsMCwuMTQ2LjA0Miw5LjEzNCw5LjEzNCwwLDAsMC0uMzEyLDEuMjVjLS4xMjUuNTgzLS4yNSwxLjE2Ni0uMzU0LDEuNzQ5Wm05LjIwNSwyLjc5MWEyLjUyNywyLjUyNywwLDAsMS0xLjAyLjQ1OCwzLjc2NywzLjc2NywwLDAsMS0xLjE4Ny4wNDIsNy4zNjEsNy4zNjEsMCwwLDEtMS4xNDUtLjIwOCwyLjAzNywyLjAzNywwLDAsMSwuMTY3LTEuMDQxYy4xNDYuMDIxLjI3MS4wMjEuNDE3LjA0MmEuMTE0LjExNCwwLDAsMCwuMTI1LS4wODMuMTI0LjEyNCwwLDAsMC0uMDgzLS4xNjdoMGMtLjEtLjA0Mi0uMTg3LS4wNjItLjI5Mi0uMWEyLjc3MSwyLjc3MSwwLDAsMSwuMjkyLS40Yy4xMjUtLjEyNS4yNS0uMjUuMzc1LS4zNTRhMy45OTIsMy45OTIsMCwwLDAsLjg1NC40LDIuODgxLDIuODgxLDAsMCwwLDEuMTI1LjEsMS41NSwxLjU1LDAsMCwwLDEuMDItLjU0MSwxLjUyNCwxLjUyNCwwLDAsMCwuMzU0LS45MTYuODUuODUsMCwwLDEsLjAyMS40LDQuNTExLDQuNTExLDAsMCwxLS4wODMuNTIxbC0uMDYyLjMxMkwyNSwyMC40OTRhLjkxOS45MTksMCwwLDAtLjMzMy4zNTQuNzUxLjc1MSwwLDAsMCwuNDc5LDBjLjAyMSwwLC4wMjEtLjAyMS4wNDItLjAyMS0uMDIxLjA2Mi0uMDIxLjEtLjA0Mi4xNjdhMi41NTIsMi41NTIsMCwwLDEtLjcwOC44NTRaTTI2LjUsMTkuMTE5YTIuMiwyLjIsMCwwLDEtLjQ1OC42MjUsMi42MzgsMi42MzgsMCwwLDEtLjI3MS4yMjksMi41ODUsMi41ODUsMCwwLDAtLjA2Mi0uNTYyLDEuNTM0LDEuNTM0LDAsMCwwLS4wODMtLjI5Mi41MzEuNTMxLDAsMCwwLS4xODctLjI1aDBjLS4wMjEsMC0uMDQyLDAtLjA0Mi4wMjFoMGExLjk1LDEuOTUsMCwwLDEtLjU2Mi43NzEsMS40MjksMS40MjksMCwwLDEtLjgxMi4yOTIsMi44NTcsMi44NTcsMCwwLDEtLjkxNi0uMTI1Yy0uMzEyLS4wODMtLjYyNS0uMTg3LS45MzctLjI5MmwtLjA0Mi0uMDIxYS4yLjIsMCwwLDAtLjE4Ny4wNDJjLS4xNjcuMjA4LS4yOTIuNC0uNDM3LjYtLjEuMTY3LS4xODcuMzEyLS4yNzEuNDc5LS4zNzUtLjE0Ni0uNzI5LS4yNzEtMS4xLS40MTctLjUyMS0uMjA4LTEuMDQxLS40MTctMS41Mi0uNjY2YTcuNjQ4LDcuNjQ4LDAsMCwxLTEuNC0uODEyLDIuOTQ5LDIuOTQ5LDAsMCwxLS45NzktMS4wNjJ2LS4wMjFhLjQwOS40MDksMCwwLDAtLjE4Ny0uMTg3YzAtLjA0Mi4wMjEtLjEuMDIxLS4xNDZhNy4zNyw3LjM3LDAsMCwwLC4xLTEuNTJjMS42ODctMS4xODcsMy4zMzItMi40MzcsNC45NTctMy43MjhsLS4wNjIuMTg3YTMuMjcsMy4yNywwLDAsMC0uMTQ2LDEuMDJBMi4wODksMi4wODksMCwwLDAsMjIuMTIyLDE1LjFhMi44MjUsMi44MjUsMCwwLDAsLjQ3OS4xODdsLjI1LjA2Mi4yMDguMDQyYTYuNjQ1LDYuNjQ1LDAsMCwxLDEuNTQxLjYyNSw2LjE1Niw2LjE1NiwwLDAsMSwxLjMxMi45NzksMi4yNzUsMi4yNzUsMCwwLDEsLjcwOCwxLjMzMywxLjUxLDEuNTEsMCwwLDEtLjEyNS43OTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojM2YzZTI5XFxcIi8+PHBhdGggZD1cXFwiTTEyLjY2NywyMy45MDlhMi4xNjEsMi4xNjEsMCwwLDAtLjM1NC43NzEsMS41NTYsMS41NTYsMCwwLDAtLjA2Mi40MTdsLS4wMjEuNDE3YTQuNTMzLDQuNTMzLDAsMCwwLC4xNDYsMS42NjYsNy42NDcsNy42NDcsMCwwLDAsLjY2NiwxLjUyYy0uMDgzLS4yNzEtLjE4Ny0uNTIxLS4yNzEtLjc3MXMtLjE2Ny0uNTIxLS4yMjktLjc5MWE1Ljg5LDUuODksMCwwLDEtLjEtMS42bC4wMjEtLjQxN2EyLjU1MiwyLjU1MiwwLDAsMSwuMDQyLS40LDMuMTM3LDMuMTM3LDAsMCwxLC4yOTItLjcyOSwyLjk2NywyLjk2NywwLDAsMSwuNTIxLS42MjUsMi41OTEsMi41OTEsMCwwLDEsLjY2Ni0uNDc5LDIuNzYsMi43NiwwLDAsMC0xLjMxMiwxLjAyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzNmM2UyOVxcXCIvPlwiLFxuXHR9LFxuXHRcIkhhbmRsZWJhcnNcIjoge1xuXHRcdGNvbG91cjogXCIjYzE5NzcwXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTIuMywxMy4xYTQuMjM4LDQuMjM4LDAsMCwxLDIuNzI4LjlBNC41OTIsNC41OTIsMCwwLDEsMTYsMTUuMTI3YTQuMTQ0LDQuMTQ0LDAsMCwxLDIuMDM5LTEuNzQ3LDQuNzU3LDQuNzU3LDAsMCwxLDMuMjg2LjAxOSw3LjgzMyw3LjgzMywwLDAsMSwyLjQ0MywxLjU1OGMuNTY4LjUsMS4wOTQsMS4wNSwxLjY3OSwxLjUzM2EzLjQsMy40LDAsMCwwLDEuMDE5LjYxNCwxLjQyLDEuNDIsMCwwLDAsMS40Ni0uMzc5Ljk2NS45NjUsMCwwLDAtLjA1NS0xLjMyMy41NDUuNTQ1LDAsMCwwLS44LjEwOC42NTkuNjU5LDAsMCwwLC4wNS42ODYsMS4yMjIsMS4yMjIsMCwwLDEtLjYtLjkyNiwxLjAyMiwxLjAyMiwwLDAsMSwuNjkxLTEuMDMyLDIuMDA1LDIuMDA1LDAsMCwxLDIuMzEyLjY2MSwzLjI1OCwzLjI1OCwwLDAsMSwuNDQsMi4zMDgsMi43NjIsMi43NjIsMCwwLDEtMS4xMzcsMS44NzIsNS4wNTEsNS4wNTEsMCwwLDEtMy4wMTMuOCw4LjQ4OCw4LjQ4OCwwLDAsMS0yLjkzMi0uNjNjLTEuNTU4LS42MjYtMy4wMTYtMS40OTItNC42MjUtMS45OTJhMTMuOTc3LDEzLjk3NywwLDAsMC0xLjctLjM2M2MtLjQzLjAwNy0uODYxLS4wMTUtMS4yOS4wMTVhNS42OTIsNS42OTIsMCwwLDAtMS41MzQuMzQ5Yy0xLjYzNi41MDktMy4xMTYsMS40LTQuNywyLjAyNGE3LjYyNSw3LjYyNSwwLDAsMS00LjI0OS40NzQsMy43NCwzLjc0LDAsMCwxLTIuMTI1LTEuMTRBMi44NTYsMi44NTYsMCwwLDEsMiwxNi42NjhhMi43MjIsMi43MjIsMCwwLDEsLjU1NS0xLjg3NCwxLjk5NCwxLjk5NCwwLDAsMSwxLjY4Ny0uNjgsMS40MjUsMS40MjUsMCwwLDEsMS4wNjMuNTIsMS4wNCwxLjA0LDAsMCwxLC4xMjIuOTExLDEuNDU3LDEuNDU3LDAsMCwxLS41NTYuNjQ0LjY0My42NDMsMCwwLDAsLjA1MS0uNjgxLjU0Ny41NDcsMCwwLDAtLjgzMS0uMDc5Ljk3NS45NzUsMCwwLDAtLjE1MSwxLjExLDEuMzMxLDEuMzMxLDAsMCwwLDEuMDMyLjYyMywyLjMzMiwyLjMzMiwwLDAsMCwxLjYtLjdBMjguNTI2LDI4LjUyNiwwLDAsMSw5LjQsMTQuMDUzLDUuMjUxLDUuMjUxLDAsMCwxLDEyLjMsMTMuMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMTk3NzBcXFwiLz5cIixcblx0fSxcblx0XCJIYXNrZWxsXCI6IHtcblx0XHRjb2xvdXI6IFwiI0MwNDUwNFwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMC45OTZcXFwiIHkxPVxcXCItMjA2LjA1N1xcXCIgeDI9XFxcIjAuOTUxXFxcIiB5Mj1cXFwiLTIwNi4wNTdcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMjU5Ljk0MSwgMCwgMCwgLTE4My40ODcsIC0yMzcuOTQxLCAtMzc3OTIuNzg4KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZhYmEwOVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2I0MmMwMVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfaGFza2VsbDI8L3RpdGxlPjxwYXRoIGQ9XFxcIk0yLDI1Ljg4Miw4LjU4OCwxNiwyLDYuMTE4SDYuOTQxTDEzLjUyOSwxNiw2Ljk0MSwyNS44ODJabTYuNTg4LDBMMTUuMTc3LDE2LDguNTg4LDYuMTE4aDQuOTQxTDI2LjcwNiwyNS44ODJIMjEuNzY1bC00LjExNy02LjE3Ni00LjExOCw2LjE3NlpNMjQuNTEsMjAuMTE4bC0yLjItMy4yOTRIMzB2My4yOTRabS0zLjI5NC00Ljk0MS0yLjItMy4yOTRIMzB2My4yOTRaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+XCIsXG5cdH0sXG5cdFwiSGF4ZVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNmNjg3MTJcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xNiw1LjUsNS41LDE2LDE2LDI2LjUsMjYuNSwxNiwxNiw1LjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNjg3MTJcXFwiLz48cGF0aCBkPVxcXCJNMiwyLDE2LDUuNSw1LjUsMTYsMiwyXFxcIiBzdHlsZT1cXFwiZmlsbDojZmFiMjBiXFxcIi8+PHBhdGggZD1cXFwiTTMwLDIsMjYuNSwxNiwxNiw1LjUsMzAsMlxcXCIgc3R5bGU9XFxcImZpbGw6I2Y0NzIxNlxcXCIvPjxwYXRoIGQ9XFxcIk0zMCwzMCwxNiwyNi41LDI2LjUsMTYsMzAsMzBcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMjVjMTlcXFwiLz48cGF0aCBkPVxcXCJNMiwzMCw1LjUsMTYsMTYsMjYuNSwyLDMwXFxcIiBzdHlsZT1cXFwiZmlsbDojZjg5YzBlXFxcIi8+PHBhdGggZD1cXFwiTTE2LDUuNSwyLDJIOWw3LDMuNVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZiYzcwN1xcXCIvPjxwYXRoIGQ9XFxcIk0xNiw1LjUsMzAsMkgyM0wxNiw1LjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYmM3MDdcXFwiLz48cGF0aCBkPVxcXCJNMTYsMjYuNSwzMCwzMEgyM2wtNy0zLjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNjg3MTJcXFwiLz48cGF0aCBkPVxcXCJNMTYsMjYuNSwyLDMwSDlsNy0zLjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMjVjMTlcXFwiLz48cGF0aCBkPVxcXCJNNS41LDE2LDIsMzBWMjNsMy41LTdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmYyMDBcXFwiLz48cGF0aCBkPVxcXCJNNS41LDE2LDIsMlY5bDMuNSw3XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmMjAwXFxcIi8+PHBhdGggZD1cXFwiTTI2LjUsMTYsMzAsMlY5bC0zLjUsN1xcXCIgc3R5bGU9XFxcImZpbGw6I2YxNDcxZFxcXCIvPjxwYXRoIGQ9XFxcIk0yNi41LDE2LDMwLDMwVjIzbC0zLjUtN1xcXCIgc3R5bGU9XFxcImZpbGw6I2YxNDcxZFxcXCIvPlwiLFxuXHR9LFxuXHRcIkhMU0xcIjoge1xuXHRcdGNvbG91cjogXCIjMDAwMGZmXCIsXG5cdFx0aWNvbjogXCI8cG9seWdvbiBwb2ludHM9XFxcIjkuNTI1IDIxLjk0NyA3LjU2IDIxLjk0NyA3LjU2IDE3LjEgMy45NTggMTcuMSAzLjk1OCAyMS45NDcgMiAyMS45NDcgMiAxMC4wNDQgMy45NTggMTAuMDQ0IDMuOTU4IDE0Ljc5MiA3LjU2IDE0Ljc5MiA3LjU2IDEwLjA0NCA5LjUyNSAxMC4wNDQgOS41MjUgMjEuOTQ3XFxcIiBzdHlsZT1cXFwiZmlsbDpibHVlXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNi42OTIgMjEuOTQ3IDExLjUxMyAyMS45NDcgMTEuNTEzIDEwLjA0NCAxMy40NzIgMTAuMDQ0IDEzLjQ3MiAxOS43NzMgMTYuNjkyIDE5Ljc3MyAxNi42OTIgMjEuOTQ3XFxcIiBzdHlsZT1cXFwiZmlsbDpibHVlXFxcIi8+PHBhdGggZD1cXFwiTTE3LjQ2MiwyMS40OTFWMTguODM0YTMuNjc2LDMuNjc2LDAsMCwwLDEuMTQ2LjkwOSwyLjgwOSwyLjgwOSwwLDAsMCwxLjI0OS4zLDIuMDUsMi4wNSwwLDAsMCwuNjQ2LS4wOTIsMS4zMDksMS4zMDksMCwwLDAsLjQ2MS0uMjUyLDEuMDI5LDEuMDI5LDAsMCwwLC4yNzYtLjM4MiwxLjIzMSwxLjIzMSwwLDAsMCwuMDkxLS40NzgsMS4zLDEuMywwLDAsMC0uMTQ1LS42MjMsMS45MDcsMS45MDcsMCwwLDAtLjQtLjUwNiw0LjA3Nyw0LjA3NywwLDAsMC0uNi0uNDQ4cS0uMzQ2LS4yMTUtLjc0Ni0uNDM5YTQuMDQ1LDQuMDQ1LDAsMCwxLTEuNTE5LTEuNDE5LDMuODg0LDMuODg0LDAsMCwxLS41LTIuMDI2LDQuMjMyLDQuMjMyLDAsMCwxLC4yNzMtMS42LDMuMDIsMy4wMiwwLDAsMSwuNzQ0LTEuMSwyLjkzOCwyLjkzOCwwLDAsMSwxLjA4OC0uNjM0LDQuMTY3LDQuMTY3LDAsMCwxLDEuMzEtLjIsNS44MTYsNS44MTYsMCwwLDEsMS4yLjExMSwzLjgsMy44LDAsMCwxLC45NjcuMzQ1djIuNDgyYTIuODU5LDIuODU5LDAsMCwwLS40NzYtLjM2NSwzLjIxMiwzLjIxMiwwLDAsMC0uNTMtLjI2MkEzLjEsMy4xLDAsMCwwLDIxLjQ2LDEyYTIuNzk0LDIuNzk0LDAsMCwwLS41MTItLjA1LDEuOTk0LDEuOTk0LDAsMCwwLS42MDYuMDg3LDEuMzQ3LDEuMzQ3LDAsMCwwLS40NjEuMjQ1LDEuMDkyLDEuMDkyLDAsMCwwLS4yOTEuMzc3LDEuMTQ0LDEuMTQ0LDAsMCwwLS4xLjQ5NCwxLjIsMS4yLDAsMCwwLC4xMTUuNTM2LDEuNjU3LDEuNjU3LDAsMCwwLC4zMjguNDQ4LDMuNDYxLDMuNDYxLDAsMCwwLC41MTUuNDE1Yy4yLjEzNi40My4yNzUuNjg2LjQxOWE3LjA5NCw3LjA5NCwwLDAsMSwuOTM2LjYzNSwzLjcxMiwzLjcxMiwwLDAsMSwuNzEzLjc1OSwzLjI2OSwzLjI2OSwwLDAsMSwuNDU1Ljk2Nyw0LjU3Myw0LjU3MywwLDAsMSwuMTU4LDEuMjY2LDQuNDM5LDQuNDM5LDAsMCwxLS4yNzcsMS42NzIsMi44ODgsMi44ODgsMCwwLDEtLjc0OSwxLjEsMi44MjMsMi44MjMsMCwwLDEtMS4xLjYsNC43NDIsNC43NDIsMCwwLDEtMS4zMjUuMTgyLDUuNDc2LDUuNDc2LDAsMCwxLTEuMzYxLS4xNjZBMy40MSwzLjQxLDAsMCwxLDE3LjQ2MiwyMS40OTFaXFxcIiBzdHlsZT1cXFwiZmlsbDpibHVlXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIzMCAyMS45NDcgMjQuODIyIDIxLjk0NyAyNC44MjIgMTAuMDQ0IDI2Ljc4IDEwLjA0NCAyNi43OCAxOS43NzMgMzAgMTkuNzczIDMwIDIxLjk0N1xcXCIgc3R5bGU9XFxcImZpbGw6Ymx1ZVxcXCIvPlwiLFxuXHR9LFxuXHRcIkhUTUxcIjoge1xuXHRcdGNvbG91cjogXCIjZTQ0ZjI2XCIsXG5cdFx0aWNvbjogXCI8cG9seWdvbiBwb2ludHM9XFxcIjUuOTAyIDI3LjIwMSAzLjY1NSAyIDI4LjM0NSAyIDI2LjA5NSAyNy4xOTcgMTUuOTg1IDMwIDUuOTAyIDI3LjIwMVxcXCIgc3R5bGU9XFxcImZpbGw6I2U0NGYyNlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYgMjcuODU4IDI0LjE3IDI1LjU5MyAyNi4wOTIgNC4wNjEgMTYgNC4wNjEgMTYgMjcuODU4XFxcIiBzdHlsZT1cXFwiZmlsbDojZjE2NjJhXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNiAxMy40MDcgMTEuOTEgMTMuNDA3IDExLjYyOCAxMC4yNDIgMTYgMTAuMjQyIDE2IDcuMTUxIDE1Ljk4OSA3LjE1MSA4LjI1IDcuMTUxIDguMzI0IDcuOTgxIDkuMDgzIDE2LjQ5OCAxNiAxNi40OTggMTYgMTMuNDA3XFxcIiBzdHlsZT1cXFwiZmlsbDojZWJlYmViXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNiAyMS40MzQgMTUuOTg2IDIxLjQzOCAxMi41NDQgMjAuNTA5IDEyLjMyNCAxOC4wNDQgMTAuNjUxIDE4LjA0NCA5LjIyMSAxOC4wNDQgOS42NTQgMjIuODk2IDE1Ljk4NiAyNC42NTQgMTYgMjQuNjUgMTYgMjEuNDM0XFxcIiBzdHlsZT1cXFwiZmlsbDojZWJlYmViXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNS45ODkgMTMuNDA3IDE1Ljk4OSAxNi40OTggMTkuNzk1IDE2LjQ5OCAxOS40MzcgMjAuNTA3IDE1Ljk4OSAyMS40MzcgMTUuOTg5IDI0LjY1MyAyMi4zMjYgMjIuODk2IDIyLjM3MiAyMi4zNzQgMjMuMDk4IDE0LjIzNyAyMy4xNzQgMTMuNDA3IDIyLjM0MSAxMy40MDcgMTUuOTg5IDEzLjQwN1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTUuOTg5IDcuMTUxIDE1Ljk4OSA5LjA3MSAxNS45ODkgMTAuMjM1IDE1Ljk4OSAxMC4yNDIgMjMuNDQ1IDEwLjI0MiAyMy40NDUgMTAuMjQyIDIzLjQ1NSAxMC4yNDIgMjMuNTE3IDkuNTQ4IDIzLjY1OCA3Ljk4MSAyMy43MzIgNy4xNTEgMTUuOTg5IDcuMTUxXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdH0sXG5cdFwiSFRUUFwiOiB7XG5cdFx0Y29sb3VyOiBcIiMzYjYxYTZcIixcblx0XHRpY29uOiBcIjxkZWZzPjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiYVxcXCIgY3g9XFxcIjEyLjI3OFxcXCIgY3k9XFxcIjI0LjU1N1xcXCIgcj1cXFwiMTguMzcxXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEsIDAsIDAsIC0xLCAtMC4wMDEsIDM0LjAwMSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNkM2U5ZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMTU1XFxcIiBzdG9wLWNvbG9yPVxcXCIjZDNlOWZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjc1XFxcIiBzdG9wLWNvbG9yPVxcXCIjNDA3NGFlXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMzY0ODZjXFxcIi8+PC9yYWRpYWxHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImJcXFwiIGN4PVxcXCIxMC42NTdcXFwiIGN5PVxcXCIyNi43NDZcXFwiIHI9XFxcIjI2LjY2XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEsIDAsIDAsIC0xLCAtMC4wMDEsIDM0LjAwMSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMC4xNjVcXFwiLz48L3JhZGlhbEdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiY1xcXCIgY3g9XFxcIi00NS4wNVxcXCIgY3k9XFxcIjkuMjg1XFxcIiByPVxcXCI0LjExNVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMjEuOTcxIDQxLjk0Mikgcm90YXRlKDE0My43MzQpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjBcXFwiLz48L3JhZGlhbEdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiZFxcXCIgY3g9XFxcIi00MS40NTZcXFwiIGN5PVxcXCIzMi4xNTRcXFwiIHI9XFxcIjQuMTE1XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDMuNTcxIDg3LjA3NSkgcm90YXRlKDE0My43MzQpIHNjYWxlKDEuMjk3KVxcXCIgeGxpbms6aHJlZj1cXFwiI2NcXFwiLz48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImVcXFwiIGN4PVxcXCItNDguNDg1XFxcIiBjeT1cXFwiMTMuMjM5XFxcIiByPVxcXCI0LjExNVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMjMuMDg0IDU1LjQxMykgcm90YXRlKDE0My43MzQpXFxcIiB4bGluazpocmVmPVxcXCIjY1xcXCIvPjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiZlxcXCIgY3g9XFxcIi00MC44ODNcXFwiIGN5PVxcXCIxNi4wMzZcXFwiIHI9XFxcIjQuMTE1XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KC0wLjg3LCAwLjYzOSwgLTAuNjM4LCAtMC44NywgLTkuMzUxLCA0Ny43MDYpXFxcIiB4bGluazpocmVmPVxcXCIjY1xcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZ1xcXCIgeDE9XFxcIi02Ni41MDJcXFwiIHkxPVxcXCIyLjIxOVxcXCIgeDI9XFxcIi02NC42MjZcXFwiIHkyPVxcXCI2Ljc0OVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLjkzOSwgLTAuODc5LCAtMC42ODMsIC0wLjczLCA4NC44MSwgLTMzLjYyOClcXFwiIHhsaW5rOmhyZWY9XFxcIiNjXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJoXFxcIiB4MT1cXFwiLTI2Ljc5MVxcXCIgeTE9XFxcIjM5LjE1OVxcXCIgeDI9XFxcIi0yNC45OTlcXFwiIHkyPVxcXCI0NC42ODNcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMS4xMzEsIDAuNjEzLCAwLjQ3NywgLTAuODc5LCAyMS42NDgsIDY5LjA3MSlcXFwiIHhsaW5rOmhyZWY9XFxcIiNjXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJpXFxcIiB4MT1cXFwiLTYzLjM4NFxcXCIgeTE9XFxcIjguMTc3XFxcIiB4Mj1cXFwiLTYzLjU3XFxcIiB5Mj1cXFwiNC42OVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLjkxOCwgLTAuODU5LCAtMC42NjgsIC0wLjcxMywgNzcuODU3LCAtMzYuNDkzKVxcXCIgeGxpbms6aHJlZj1cXFwiI2NcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImpcXFwiIHgxPVxcXCItOTkuMjU5XFxcIiB5MT1cXFwiODkuNTQ1XFxcIiB4Mj1cXFwiLTk4LjgyNVxcXCIgeTI9XFxcIjkzLjAyM1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgtMS4yOCwgLTAuMTI2LCAtMC4wOTgsIDAuOTk1LCAtMTAxLjYzNywgLTkzLjAxNSlcXFwiIHhsaW5rOmhyZWY9XFxcIiNjXFxcIi8+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJrXFxcIiBjeD1cXFwiLTIwLjcxMlxcXCIgY3k9XFxcIjU3LjYxXFxcIiByPVxcXCIyLjgzNlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLCAtMC44NDMsIC0wLjcyMSwgMCwgMjYuNjI1LCAtMjEuNjk2KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzcyOWZjZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzNiNjFhNlxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJsXFxcIiBjeD1cXFwiLTIwLjcxMlxcXCIgY3k9XFxcIjM5Ljg1OFxcXCIgcj1cXFwiMi44MzZcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoMjYuNjI1IDYzLjA5Nikgcm90YXRlKDkwKSBzY2FsZSgwLjg0MyAwLjcyMSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM3MjlmY2ZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM1MDllMmZcXFwiLz48L3JhZGlhbEdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2h0dHA8L3RpdGxlPjxwYXRoIGQ9XFxcIk0yOC4wMjYsMTQuMkExMS44NzcsMTEuODc3LDAsMSwxLDE2LjE0OSwyLjMyNSwxMS44NzgsMTEuODc4LDAsMCwxLDI4LjAyNiwxNC4yWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4xNDksMjYuMzg2QTEyLjE4MywxMi4xODMsMCwxLDEsMjguMzMzLDE0LjIsMTIuMiwxMi4yLDAsMCwxLDE2LjE0OSwyNi4zODZabTAtMjMuNzU0QTExLjU3MSwxMS41NzEsMCwxLDAsMjcuNzIsMTQuMiwxMS41ODQsMTEuNTg0LDAsMCwwLDE2LjE0OSwyLjYzMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzOTM5NmNcXFwiLz48cGF0aCBkPVxcXCJNMjcuNjkzLDEyLjQyNGgwbC0uMzI4LjM3MWE3LDcsMCwwLDAtLjY1Ni0uNjQ0bC0uNS4wNzQtLjQ2LS41MTl2LjY0M2wuMzk0LjMuMjYyLjMuMzUtLjRjLjA4OC4xNjUuMTc1LjMzLjI2My41di40OTVsLS4zOTQuNDQ1LS43MjIuNS0uNTQ2LjU0NS0uMzUtLjQuMTc1LS40NDUtLjM1LS40LS41OTEtMS4yNjItLjUtLjU2OUwyMy42LDEyLjFsLjIuNzE4LjM3MS40MjFhMTcuMDY5LDE3LjA2OSwwLDAsMCwuNywxLjc4Myw5Ljk3OSw5Ljk3OSwwLDAsMCwxLjI2OC0uMXYuMzQ3bC0uNTI1LDEuMjg3LS40ODEuNTQ0LS4zOTQuODQzVjE5LjMzbC4xMzIuNTQ1LS4yMTkuMjQ3LS40ODIuMy0uNS40MjEuNDE2LjQ3LS41NjkuNS4xMDkuMzIxLS44NTMuOTY2SDIyLjJsLS40ODEuM2gtLjMwN3YtLjRsLS4xMy0uNzkzYy0uMTY5LS41LS4zNDYtLjk5MS0uNTI1LTEuNDg0LDAtLjM2NC4wMjItLjcyNS4wNDQtMS4wODlsLjIxOS0uNDk1LS4zMDctLjU5NS4wMjItLjgxNy0uNDE2LS40Ny4yMDgtLjY4LS4zMzgtLjM4NEgxOS42bC0uMi0uMjIzLS41OTEuMzcyLS4yNC0uMjczLS41NDcuNDdMMTYuOTExLDE1LjI3bC0uNDM3LTEuMDQuMzk0LS41OTMtLjIxOS0uMjQ3LjQ4MS0xLjEzOWMuMzk1LS40OTEuODA3LS45NjMsMS4yMjUtMS40MzZsLjc0NC0uMi44MzEtLjEuNTY5LjE0OS44MDkuODE2LjI4NC0uMzIxLjM5My0uMDQ5Ljc0NC4yNDdIMjMuM2wuMzk0LS4zNDcuMTc1LS4yNDctLjM5NC0uMjQ3LS42NTYtLjA0OWE2LjYsNi42LDAsMCwwLS41NjgtLjc0M2wtLjIxOS4xLS4wODguNjQ0LS4zOTQtLjQ0NS0uMDg3LS41LS40MzctLjM0NmgtLjE3NmwuNDM4LjQ5NS0uMTc1LjQ0NS0uMzUuMS4yMTktLjQ0NS0uMzk0LS4yLS4zNDktLjQtLjY1Ny4xNDgtLjA4Ny4yLS4zOTQuMjQ4LS4yMTkuNTQ1LS41NDYuMjcyLS4yNDEtLjI3MkgxNy44M1Y5LjQyOGwuNTY5LS4zaC40MzdsLS4wODgtLjM0NkwxOC40LDguNDM4bC41OS0uMTI0LjMyOC0uMzcxLjI2Mi0uNDQ2aC40ODJsLS4xMzItLjM0Ni4zMDctLjJ2LjRsLjY1Ni4xNDguNjU2LS41NDQuMDQ0LS4yNDguNTY4LS40YTQuMzUzLDQuMzUzLDAsMCwwLS42MTIuMVY1Ljk2M2wuMjE5LS41aC0uMjE5bC0uNDguNDQ1LS4xMzIuMjQ4LjEzMi4zNDctLjIxOS41OTMtLjM1LS4yLS4zMDYtLjM0Ni0uNDgyLjM0Ni0uMTc1LS43OTIuODMxLS41NDR2LS4zbC41MjUtLjM0Ni44MzEtLjIuNTY5LjIsMS4wNDkuMi0uMjYyLjNIMjIuNTFsLjU2OS41OTQuNDM3LS40OTUuMTMzLS4yMThhMTUuNTMsMTUuNTMsMCwwLDEsMi42MzUsMy4xNDdBMTEuNDUyLDExLjQ1MiwwLDAsMSwyNy42OTMsMTIuNDI0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIwNGE4NztmaWxsLW9wYWNpdHk6MC43MTM0NTAzMTI2MTQ0NDA5XFxcIi8+PHBhdGggZD1cXFwiTTE2Ljg2MSw1LjUxN2wtLjA0NC4zLjMwNy4yLjUyNC0uMzQ2LS4yNjItLjMtLjM1LjItLjE3NC0uMDVcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMDRhODc7ZmlsbC1vcGFjaXR5OjAuNzEzNDUwMzEyNjE0NDQwOVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy4zNDMsMy40ODhsLTEuMTM4LS40NDYtMS4zMTIuMTQ4LTEuNjE5LjQ0NS0uMzA2LjMsMS4wMDYuNjkzdi40bC0uMzk0LjQuNTI1LDEuMDQuMzQ5LS4yLjQzOC0uNjkzYTE1LjA1MywxNS4wNTMsMCwwLDAsMS45MjQtLjc0M2wuNTI1LTEuMzM3XFxcIiBzdHlsZT1cXFwiZmlsbDojMjA0YTg3O2ZpbGwtb3BhY2l0eTowLjcxMzQ1MDMxMjYxNDQ0MDlcXFwiLz48cGF0aCBkPVxcXCJNMTguNTI0LDcuNjQ3LDE4LjM0OSw3LjJsLS4zMDcuMS4wODguNTQ0LjM5NC0uMlxcXCIgc3R5bGU9XFxcImZpbGw6IzIwNGE4NztmaWxsLW9wYWNpdHk6MC43MTM0NTAzMTI2MTQ0NDA5XFxcIi8+PHBhdGggZD1cXFwiTTE4LjcsNy41NDdsLS4wODguNTk1LjQ4MS0uMS4zNS0uMzQ2LS4zMDYtLjNjLS4xLS4yNzQtLjIyMS0uNTI5LS4zNS0uNzkyaC0uMjYydi4zbC4xNzQuMnYuNDQ1XFxcIiBzdHlsZT1cXFwiZmlsbDojMjA0YTg3O2ZpbGwtb3BhY2l0eTowLjcxMzQ1MDMxMjYxNDQ0MDlcXFwiLz48cGF0aCBkPVxcXCJNMTIuMjI1LDE2Ljk1M2wtLjM1LS42OTMtLjY1Ni0uMTQ4LS4zNS0uOTQtLjg3NS4xLS43NDMtLjU0NC0uNzg4LjY5M3YuMTA5YTMsMywwLDAsMS0uNzQzLS4yMDlsLS4xNzUtLjQ5NVYxNC4yOGwtLjUyNS4wNDlxLjA2Ni0uNTIuMTMxLTEuMDM5SDYuODQ1bC0uMzA2LjQtLjMwNi4xNDhMNS44LDEzLjU4N2wtLjA0NC0uNTQ1LjA4OC0uNTk0LjY1Ni0uNDk1SDcuMDJsLjA4Ny0uMy42NTYuMTQ4LjQ4MS41OTUuMDg4LS45OTEuODMxLS42OTMuMzA2LS43NDMuNjEyLS4yNDcuMzUtLjQ5NS43ODctLjE0OS4zOTQtLjU5M0gxMC40MzJsLjc0NC0uMzQ3SDExLjdsLjc0NC0uMjQ4LjA4OC0uMy0uMjYzLS4yNDgtLjMwNi0uMS4wODgtLjMtLjIxOS0uNDQ1LS41MjUuMi4wODgtLjQtLjYxMi0uMzQ3TDEwLjMsNi44bC4wNDQuMy0uNDgxLjItLjMwNi42NDMtLjEzMS0uNTk0TDguNTk0LDdsLS4xMzEtLjQ0NSwxLjA5NC0uNjQ0LjQ4MS0uNDQ1LjA0NC0uNTQ0LS4yNjItLjE0OS0uMzUtLjA1LS4yMTkuNTQ1cy0uMzY2LjA3Mi0uNDYuMDk1QTEyLjUsMTIuNSwwLDAsMCw0LjYsMTMuMzcxYTYuNzg5LDYuNzg5LDAsMCwwLC40MDkuNzExbC45MTguNTQ0LjkxOC4yNDguMzk0LjUuNjEyLjQ0NS4zNS0uMDQ5LjI2Mi4xMTh2LjA4bC0uMzUuOTQtLjI2My40LjA4OC4yLS4yMTkuNzQyLjc4NywxLjQzNi43ODcuNjkzLjM1LjQ5NUw5LjYsMjEuOWwuMjYzLjU5M0w5LjYsMjMuNjM3cy0uMDIxLS4wMDcuMDEzLjEwN2E1LjI3OCw1LjI3OCwwLDAsMCwxLjQ4OC44MDlsLjE2MS0uMTIzLS4wODctLjI0Ny4zNS0uMzQ3LjEzMS0uMzQ3LjU2OS0uMi40MzctMS4wODktLjEzMS0uMy4zMDYtLjQ0NS42NTYtLjE0OS4zNS0uNzkyLS4wODgtLjk5LjUyNS0uNzQzLjA4OC0uNzQzYy0uNzE4LS4zNTYtMS40My0uNzIzLTIuMTQzLTEuMDg5XFxcIiBzdHlsZT1cXFwiZmlsbDojMjA0YTg3O2ZpbGwtb3BhY2l0eTowLjcxMzQ1MDMxMjYxNDQ0MDlcXFwiLz48cGF0aCBkPVxcXCJNMTEuMjYzLDUuNzE1bC40MzcuM2guMzVWNS42NjZsLS40MzctLjItLjM1LjI0N1xcXCIgc3R5bGU9XFxcImZpbGw6IzIwNGE4NztmaWxsLW9wYWNpdHk6MC43MTM0NTAzMTI2MTQ0NDA5XFxcIi8+PHBhdGggZD1cXFwiTTEwLjEyNiw1LjMxOWwtLjIxOS41NDRoLjQzOGwuMjE5LS41Yy4xODktLjEzMy4zNzYtLjI2OC41NjgtLjRsLjQzOC4xNDkuODc1LjU5NC40MzgtLjQtLjQ4Mi0uMi0uMjE5LS40NDYtLjgzMS0uMS0uMDQ0LS4yNDgtLjM5NC4xLS4xNzUuMzQ2LS4yMTktLjQ0Ni0uMDg3LjIuMDQ0LjUtLjM1LjNcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMDRhODc7ZmlsbC1vcGFjaXR5OjAuNzEzNDUwMzEyNjE0NDQwOVxcXCIvPjxwYXRoIGQ9XFxcIk0xMS43LDQuMDgxbC4yMTktLjIuNDM4LS4xYTYuOSw2LjksMCwwLDEsLjkxOC0uMzQ3bC0uMTc0LS4zLS41NjUuMDgxLS4yNjcuMjY2LS40NC4wNjQtLjM5MS4xODQtLjE5LjA5Mi0uMTE2LjE1NS41NjguMVxcXCIgc3R5bGU9XFxcImZpbGw6IzIwNGE4NztmaWxsLW9wYWNpdHk6MC43MTM0NTAzMTI2MTQ0NDA5XFxcIi8+PHBhdGggZD1cXFwiTTEyLjQ0NCw4Ljc4NWwuMjYzLS40LS4zOTQtLjMuMTMxLjY5M1xcXCIgc3R5bGU9XFxcImZpbGw6IzIwNGE4NztmaWxsLW9wYWNpdHk6MC43MTM0NTAzMTI2MTQ0NDA5XFxcIi8+PHBhdGggZD1cXFwiTTE2LjE0OSwyNS43ODNBMTEuNTgsMTEuNTgsMCwxLDEsMjcuNzI5LDE0LjIsMTEuNTkzLDExLjU5MywwLDAsMSwxNi4xNDksMjUuNzgzWm0wLTIyLjU0OEExMC45NjgsMTAuOTY4LDAsMSwwLDI3LjExNywxNC4yLDEwLjk4LDEwLjk4LDAsMCwwLDE2LjE0OSwzLjIzNVpcXFwiIHN0eWxlPVxcXCJvcGFjaXR5OjAuMzk1NjA0NDAxODI2ODU4NTtpc29sYXRpb246aXNvbGF0ZTtmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNNS41NDEsMTAuMjQxYTQuMTE1LDQuMTE1LDAsMSwwLDYuNjM2LTQuODY2aDBBNC4xMTUsNC4xMTUsMCwwLDAsNS41NCwxMC4yNFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYylcXFwiLz48cGF0aCBkPVxcXCJNNy44MzYsOC41NThhMS4yNjgsMS4yNjgsMCwxLDAsMi4wNDYtMS41aDBhMS4yNjgsMS4yNjgsMCwwLDAtMi4wNDYsMS41WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNy45NTIsMjQuOGE1LjMzNyw1LjMzNywwLDEsMCw4LjYwNy02LjMxMnYwQTUuMzM3LDUuMzM3LDAsMCwwLDE3Ljk1LDI0LjhaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2QpXFxcIi8+PHBhdGggZD1cXFwiTTIwLjkyOCwyMi42MTZhMS42NDUsMS42NDUsMCwxLDAsMi42NTMtMS45NDZoMGExLjY0NSwxLjY0NSwwLDAsMC0yLjY1MywxLjk0NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNNC44NTksMTguNDkzQTQuMTE1LDQuMTE1LDAsMSwwLDExLjUsMTMuNjI2aDBhNC4xMTUsNC4xMTUsMCwwLDAtNi42MzYsNC44NjZaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2UpXFxcIi8+PHBhdGggZD1cXFwiTTcuMTU0LDE2LjgwOWExLjI2OCwxLjI2OCwwLDEsMCwyLjA0Ni0xLjVoMGExLjI2OCwxLjI2OCwwLDAsMC0yLjA0NiwxLjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTEyLjQwOCwxMC4yNjlBNC40NDEsNC40NDEsMCwxLDAsMTkuNTcsNS4wMTZoMGE0LjQ0MSw0LjQ0MSwwLDEsMC03LjE2Miw1LjI1M1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZilcXFwiLz48cGF0aCBkPVxcXCJNMTQuODg1LDguNDUyYTEuMzY5LDEuMzY5LDAsMSwwLDIuMjA4LTEuNjE5aDBhMS4zNjksMS4zNjksMCwxLDAtMi4yMDgsMS42MTlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTEyLjY4LDI2LjIzOGEzLjgzLDMuODMsMCwwLDEtMi45MDktMS4wODdjLTEuMTMzLTEuMjEtMS4yLTMuMjU1LS4yLTUuNzU3YTIxLjU0MiwyMS41NDIsMCwwLDEsNS4zMDctNy4zMjZDMjAuMDY0LDcuMjE1LDI1Ljk0NSw1LjM1NiwyOC4yNyw3LjgzOWMxLjEzMywxLjIxMSwxLjIsMy4yNTUuMiw1Ljc1N2EyMS41NTMsMjEuNTUzLDAsMCwxLTUuMzA4LDcuMzI2QTIxLjU1MSwyMS41NTEsMCwwLDEsMTUuNSwyNS43MzMsOS4yMjksOS4yMjksMCwwLDEsMTIuNjgsMjYuMjM4Wk0yNS4zNDIsNy4yOGMtMi43LDAtNi42LDEuOTA4LTEwLjEsNS4xODNBMjEsMjEsMCwwLDAsMTAuMDcxLDE5LjZjLS45MjEsMi4zLS44ODcsNC4xMzguMDk0LDUuMTg3czIuODE3LDEuMiw1LjE2OS40MzdhMjEsMjEsMCwwLDAsNy40Ni00LjY5MiwyMSwyMSwwLDAsMCw1LjE3NS03LjEzMmMuOTIxLTIuMy44ODgtNC4xMzgtLjA5NS01LjE4N0EzLjM0LDMuMzQsMCwwLDAsMjUuMzQyLDcuMjhaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2cpXFxcIi8+PHBhdGggZD1cXFwiTTIxLjY4MSwyMi4wOTRhMjAuNjMzLDIwLjYzMywwLDAsMS05LjMzOS0yLjc1OUM2LjEsMTUuOTUsMi40NzMsMTAuOTU3LDQuMDk0LDcuOTY4Yy43OS0xLjQ1OCwyLjctMi4xNzUsNS40LTIuMDEyQTIxLjU0MiwyMS41NDIsMCwwLDEsMTguMTIsOC42NzRhMjEuNTQ1LDIxLjU0NSwwLDAsMSw2Ljk4Nyw1Ljc0NmMxLjYsMi4xNjcsMi4wNTEsNC4xNjMsMS4yNjEsNS42MjFDMjUuNjIyLDIxLjQxNiwyMy45MTUsMjIuMDk0LDIxLjY4MSwyMi4wOTRaTTguNzU5LDYuNDc0Yy0yLjEsMC0zLjU3Mi42MTItNC4xOSwxLjc1MUMzLjExNywxMC45LDYuNzIsMTUuNjc0LDEyLjYsMTguODZzMTEuODQzLDMuNiwxMy4yOTQuOTI0Yy42ODUtMS4yNjMuMjUxLTMuMDU0LTEuMjItNS4wNDJhMjEsMjEsMCwwLDAtNi44MS01LjU5M0EyMSwyMSwwLDAsMCw5LjQ1OSw2LjVROS4xLDYuNDc0LDguNzU5LDYuNDc0WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNoKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMCwyNC4wNzhhMy43NTcsMy43NTcsMCwwLDEtMi44NTEtMS4wNjVjLTEuMTEtMS4xODctMS4xODEtMy4xODktLjItNS42MzlhMjEuMDYyLDIxLjA2MiwwLDAsMSw1LjE4OS03LjE2M2M1LjA3My00Ljc0NywxMC44My02LjU2MywxMy4xLTQuMTMyaDBjMi4yNzUsMi40MzEuMDgzLDguMDUzLTQuOTksMTIuOGEyMS4wNTksMjEuMDU5LDAsMCwxLTcuNDkxLDQuN0E5LjAyNCw5LjAyNCwwLDAsMSwxMCwyNC4wNzhaTTIyLjM3Myw1LjU1M2MtMi42MywwLTYuNDM5LDEuODY0LTkuODU2LDUuMDYyQTIwLjUsMjAuNSwwLDAsMCw3LjQ2MywxNy41OGMtLjksMi4yMzktLjg2Niw0LjAzNC4wOSw1LjA1NXMyLjc0NSwxLjE3Miw1LjAzOC40MjRhMjAuNTEzLDIwLjUxMywwLDAsMCw3LjI4NC00LjU4MmM0Ljc2Ni00LjQ2LDYuOTk0LTkuODUzLDQuOTY1LTEyLjAyaDBBMy4yNTYsMy4yNTYsMCwwLDAsMjIuMzczLDUuNTUzWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNpKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy41MTIsMTkuNDEzYy0uODYsMC0xLjc0OC0uMDQzLTIuNjU5LS4xMzNDNy43ODQsMTguNTg0LDIuNTA3LDE1LjM4OCwyLjg0LDEyaDBjLjMzMy0zLjM4Myw2LjEzMy01LjQ5LDEzLjItNC43OTFzMTIuMzQ1LDMuODkyLDEyLjAxMiw3LjI3NUMyNy43NjMsMTcuNDM2LDIzLjMyNCwxOS40MTMsMTcuNTEyLDE5LjQxM1pNMy4zNzgsMTIuMDU3Yy0uMywzLjAzMSw0Ljg3Myw2LjAzLDExLjUyOCw2LjY4NnMxMi4zMTItMS4yNzcsMTIuNjExLTQuMzA4UzIyLjY0NCw4LjQwNiwxNS45ODgsNy43NSwzLjY3Nyw5LjAyNywzLjM3OCwxMi4wNTdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2opXFxcIi8+PHBhdGggZD1cXFwiTTYuMjUxLDI5Ljk2Nmg2LjY3NFYyMC44MDloMi45ODFMOS41NDgsMTEuNDM0LDMuMjk1LDIwLjc4MmwyLjk1OC4wMzFaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2spXFxcIi8+PHBhdGggZD1cXFwiTTEyLjkyNCwzMC4wNDVINi4yNTFhLjA0OS4wNDksMCwwLDEtLjAzOS0uMDIzYy0uMDEtLjAxNS0uMDE2LTMuMTM1LS4wMTYtMy4xNTZsMC01Ljk3NS0yLjktLjAzYS4wNi4wNiwwLDAsMS0uMDUxLS4wNDguMS4xLDAsMCwxLC4wMTEtLjA4NUw5LjUwOCwxMS4zOGEuMDU2LjA1NiwwLDAsMSwuMDQxLS4wMjUuMDUuMDUsMCwwLDEsLjA0LjAyNGw2LjM1Nyw5LjM3NWEuMS4xLDAsMCwxLC4wMTEuMDg2LjA1OS4wNTksMCwwLDEtLjA1MS4wNDhIMTIuOTh2OS4wNzhDMTIuOTgsMzAuMDEsMTIuOTU1LDMwLjA0NSwxMi45MjQsMzAuMDQ1Wm0tNi42MTgtLjE1OGg2LjU2MlYyMC44MDljMC0uMDQ0LjAyNS0uMDc5LjA1Ni0uMDc5aDIuODVMOS41NDksMTEuNTQ5LDMuNDI0LDIwLjdsMi44My4wM2MuMDMxLDAsLjA1NS4wMzYuMDU1LjA3OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxODM4NjhcXFwiLz48cGF0aCBkPVxcXCJNMTkuMDUzLDIwLjU4N2wtMi45NTguMDMxLDYuMjU0LDkuMzQ4LDYuMzU3LTkuMzc1SDI1LjcyNFYxMS40MzRIMTkuMDUxWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNsKVxcXCIvPjxwYXRoIGQ9XFxcIk0yNS43OCwxMS40MzR2OS4wNzhoMi45MjVhLjA1OS4wNTksMCwwLDEsLjA1MS4wNDguMS4xLDAsMCwxLS4wMTEuMDg2bC02LjM1Nyw5LjM3NWEuMDUuMDUsMCwwLDEtLjA0LjAyNC4wNTYuMDU2LDAsMCwxLS4wNDEtLjAyNWwtNi4yNTQtOS4zNDhhLjEuMSwwLDAsMS0uMDExLS4wODUuMDYuMDYsMCwwLDEsLjA1MS0uMDQ4bDIuOS0uMDMsMC01Ljk3NWMwLS4wMjEuMDA2LTMuMTQxLjAxNi0zLjE1NmEuMDQ5LjA0OSwwLDAsMSwuMDM5LS4wMjNoNi42NzRDMjUuNzU1LDExLjM1NSwyNS43OCwxMS4zOSwyNS43OCwxMS40MzRabS02LjY3Miw5LjE1M2MwLC4wNDMtLjAyNS4wNzktLjA1NS4wNzlsLTIuODMuMDMsNi4xMjUsOS4xNTYsNi4yMjYtOS4xODFoLTIuODVjLS4wMzEsMC0uMDU2LS4wMzUtLjA1Ni0uMDc5VjExLjUxM0gxOS4xMDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMTgzODY4XFxcIi8+XCIsXG5cdH0sXG5cdFwiSWRyaXNcIjoge1xuXHRcdGNvbG91cjogXCIjOGEwODE5XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTMuMzc2LDYuMmMzLjYsMS4xLDQuNSwyLDUuOCw1LjItLjMtNC0xLjktNS42LTUuOC01LjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGEwODE5XFxcIi8+PHBhdGggZD1cXFwiTTguMzc2LDEyLjRjMi4zLjcsNSwxLjMsNiw1LjcuNC01LjUtMi4yLTUuOC02LTUuN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM4YTA4MTlcXFwiLz48cGF0aCBkPVxcXCJNOS45NzYsOC44YzMuNS43LDUuNywxLjcsNyw2LjIuMy01LjgtMi45LTYuNC03LTYuMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4YTA4MTlcXFwiLz48cGF0aCBkPVxcXCJNMTQuNTc2LDJjMTkuMSwxMi40LTQuMiwxMi43LjgsMjcuMWwzLC45Yy04LjMtMTEuMiwxOC40LTE3LTMuOC0yOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4YTA4MTlcXFwiLz5cIixcblx0fSxcblx0XCJJbmlcIjoge1xuXHRcdGNvbG91cjogXCIjOTliOGM0XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjMuMjY1LDI0LjM4MWwuOS0uODk0YzQuMTY0LjEzNiw0LjIyOC0uMDEsNC40MTEtLjQzOGwxLjE0NC0yLjc4NUwyOS44MDUsMjBsLS4wOTMtLjIzMWMtLjA0OS0uMTIyLS4yLS40ODYtMi44LTIuOTY1VjE1LjVjMy0yLjg5LDIuOTM2LTMuMDM4LDIuNzY1LTMuNDYxTDI4LjUzOCw5LjIyNWMtLjE3MS0uNDIyLS4yMzYtLjU4Ny00LjM3LS40NzRsLS45LS45M2EyMC4xNjYsMjAuMTY2LDAsMCwwLS4xNDEtNC4xMDZsLS4xMTYtLjI2My0yLjk3NC0xLjNjLS40MzgtLjItLjU5Mi0uMjcyLTMuNCwyLjc4NmwtMS4yNjItLjAxOWMtMi44OTEtMy4wODYtMy4wMjgtMy4wMy0zLjQ2MS0yLjg1NUw5LjE0OSwzLjE4MmMtLjQzMy4xNzUtLjU4Ni4yMzctLjQxOCw0LjQzN2wtLjg5My44OWMtNC4xNjItLjEzNi00LjIyNi4wMTItNC40MDcuNDM4TDIuMjg1LDExLjczMywyLjE5NSwxMmwuMDk0LjIzMmMuMDQ5LjEyLjE5NC40OCwyLjgsMi45NjJsMCwxLjNjLTMsMi44OS0yLjkzNSwzLjAzOC0yLjc2MywzLjQ2MmwxLjEzOCwyLjgxN2MuMTc0LjQzMS4yMzYuNTg0LDQuMzY5LjQ3NmwuOS45MzVhMjAuMjQzLDIwLjI0MywwLDAsMCwuMTM3LDQuMWwuMTE2LjI2NSwyLjk5MywxLjMwOGMuNDM1LjE4Mi41ODYuMjQ3LDMuMzg2LTIuOGwxLjI2Mi4wMTZjMi44OTUsMy4wOSwzLjA0MywzLjAzLDMuNDY2LDIuODU5bDIuNzU5LTEuMTE1QzIzLjI4OCwyOC42NDQsMjMuNDQsMjguNTgzLDIzLjI2NSwyNC4zODFaTTExLjQwNywxNy44NTdhNC45NTcsNC45NTcsMCwxLDEsNi40ODgsMi44MjRBNS4wMTQsNS4wMTQsMCwwLDEsMTEuNDA3LDE3Ljg1N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM5OWI4YzRcXFwiLz5cIixcblx0fSxcblx0XCJJb1wiOiB7XG5cdFx0Y29sb3VyOiBcIiNjMmMyYzJcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yLDIuODg3SDcuMDc1VjcuNTFIMlptLjA1Miw2LjgzSDcuMDRWMjguNjI2SDIuMDUyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwYXRoIGQ9XFxcIk0xMy4yNzEsMjYuNDU0YTkuNzkxLDkuNzkxLDAsMCwxLTIuNjE2LTcuMTc4LDEwLjE0OCwxMC4xNDgsMCwwLDEsMi42MTYtNy4zNDMsOS4zMjEsOS4zMjEsMCwwLDEsNy4wNDctMi43Miw5LjM0LDkuMzQsMCwwLDEsNy4wNzUsMi43MkExMC4xNjgsMTAuMTY4LDAsMCwxLDMwLDE5LjI3NmE5LjgwOSw5LjgwOSwwLDAsMS0yLjYwNyw3LjE3OCw5LjQ1Niw5LjQ1NiwwLDAsMS03LjA3NSwyLjY1OUE5LjQzNiw5LjQzNiwwLDAsMSwxMy4yNzEsMjYuNDU0Wm0xMC40MzYtMi45NzJhNi43LDYuNywwLDAsMCwxLjE2Ni00LjI1OCw2Ljk0Myw2Ljk0MywwLDAsMC0xLjE2Ni00LjM1NCw0LjA0Nyw0LjA0NywwLDAsMC0zLjM4OS0xLjQ4Niw0LjAyMiw0LjAyMiwwLDAsMC0zLjM4LDEuNDg2LDYuOTkxLDYuOTkxLDAsMCwwLTEuMTU2LDQuMzU0LDYuNzQ0LDYuNzQ0LDAsMCwwLDEuMTU2LDQuMjU4LDQuMDUzLDQuMDUzLDAsMCwwLDMuMzgsMS40NkE0LjA3OCw0LjA3OCwwLDAsMCwyMy43MDcsMjMuNDgyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPlwiLFxuXHR9LFxuXHRcIkphdmFcIjoge1xuXHRcdGNvbG91cjogXCIjNTM4MmExXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTIuMzI1LDIzLjY1NHMtMS4wNy42MjIuNzYxLjgzM2ExNi4wMjMsMTYuMDIzLDAsMCwwLDUuOC0uMjQ2LDEwLjA4OCwxMC4wODgsMCwwLDAsMS41NDEuNzUyYy01LjQ4MSwyLjM0OS0xMi40MDUtLjEzNi04LjEtMS4zMzlcXFwiIHN0eWxlPVxcXCJmaWxsOiM1MzgyYTFcXFwiLz48cGF0aCBkPVxcXCJNMTEuNjU2LDIwLjU4OHMtMS4yLjg4OC42MzMsMS4wNzhhMjIuNjE4LDIyLjYxOCwwLDAsMCw3LjQ4MS0uMzU5LDMuMzIsMy4zMiwwLDAsMCwxLjE1Mi43Yy02LjYyNywxLjkzOC0xNC4wMDkuMTUzLTkuMjY2LTEuNDIxXFxcIiBzdHlsZT1cXFwiZmlsbDojNTM4MmExXFxcIi8+PHBhdGggZD1cXFwiTTE3LjMsMTUuMzg4YTIuMDUxLDIuMDUxLDAsMCwxLS4zNTUsMi45NTRzMy40MjktMS43NywxLjg1NC0zLjk4N2MtMS40NzEtMi4wNjctMi42LTMuMDk1LDMuNTA4LTYuNjM2LDAsMC05LjU4NiwyLjM5NC01LjAwNyw3LjY2OVxcXCIgc3R5bGU9XFxcImZpbGw6IzUzODJhMVxcXCIvPjxwYXRoIGQ9XFxcIk0yNC41NTIsMjUuOTIxcy43OTIuNjUyLS44NzIsMS4xNTdjLTMuMTY0Ljk1OC0xMy4xNjgsMS4yNDgtMTUuOTQ4LjAzOC0xLS40MzUuODc0LTEuMDM4LDEuNDY0LTEuMTY0YTMuOCwzLjgsMCwwLDEsLjk2Ni0uMTA4Yy0xLjExMS0uNzgzLTcuMTgxLDEuNTM3LTMuMDgzLDIuMiwxMS4xNzYsMS44MTIsMjAuMzcyLS44MTYsMTcuNDczLTIuMTI0XFxcIiBzdHlsZT1cXFwiZmlsbDojNTM4MmExXFxcIi8+PHBhdGggZD1cXFwiTTEyLjg0LDE3LjQxMnMtNS4wODksMS4yMDktMS44LDEuNjQ4YTM4LjIyNSwzOC4yMjUsMCwwLDAsNi43MzEtLjA3MmMyLjEwNi0uMTc4LDQuMjIxLS41NTUsNC4yMjEtLjU1NWE4LjkzNCw4LjkzNCwwLDAsMC0xLjI4LjY4NWMtNS4xNjgsMS4zNTktMTUuMTUxLjcyNy0xMi4yNzctLjY2M2E5LjYyOSw5LjYyOSwwLDAsMSw0LjQwNy0xLjA0MlxcXCIgc3R5bGU9XFxcImZpbGw6IzUzODJhMVxcXCIvPjxwYXRoIGQ9XFxcIk0yMS45NjksMjIuNTE1YzUuMjUzLTIuNzMsMi44MjQtNS4zNTMsMS4xMjktNWEzLjkzMiwzLjkzMiwwLDAsMC0uNi4xNjEuOTU3Ljk1NywwLDAsMSwuNDQ5LS4zNDZjMy4zNTQtMS4xNzksNS45MzMsMy40NzgtMS4wODMsNS4zMjJhLjQ1OC40NTgsMCwwLDAsLjEwNi0uMTM4XFxcIiBzdHlsZT1cXFwiZmlsbDojNTM4MmExXFxcIi8+PHBhdGggZD1cXFwiTTE4LjgsMnMyLjkwOSwyLjkxLTIuNzU5LDcuMzg2Yy00LjU0NiwzLjU5LTEuMDM3LDUuNjM3LDAsNy45NzUtMi42NTMtMi4zOTQtNC42LTQuNS0zLjI5NC02LjQ2M0MxNC42NjQsOC4wMTksMTkuOTc2LDYuNjIzLDE4LjgsMlxcXCIgc3R5bGU9XFxcImZpbGw6IzUzODJhMVxcXCIvPjxwYXRoIGQ9XFxcIk0xMy4zNTYsMjkuOTEyYzUuMDQyLjMyMywxMi43ODYtLjE3OSwxMi45NjktMi41NjUsMCwwLS4zNTMuOS00LjE2NywxLjYyM2E0MS40NTgsNDEuNDU4LDAsMCwxLTEyLjc2LjJzLjY0NS41MzMsMy45NTkuNzQ2XFxcIiBzdHlsZT1cXFwiZmlsbDojNTM4MmExXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIvL1wiLFxuXHRcdF0sXG5cdH0sXG5cdFwiSmF2YVNjcmlwdFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNmNWRlMTlcIixcblx0XHRpY29uOiBcIjxyZWN0IHg9XFxcIjJcXFwiIHk9XFxcIjJcXFwiIHdpZHRoPVxcXCIyOFxcXCIgaGVpZ2h0PVxcXCIyOFxcXCIgc3R5bGU9XFxcImZpbGw6I2Y1ZGUxOVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC44MDksMjMuODc1YTIuODY2LDIuODY2LDAsMCwwLDIuNiwxLjZjMS4wOSwwLDEuNzg3LS41NDUsMS43ODctMS4zLDAtLjktLjcxNi0xLjIyMi0xLjkxNi0xLjc0N2wtLjY1OC0uMjgyYy0xLjktLjgwOS0zLjE2LTEuODIyLTMuMTYtMy45NjQsMC0xLjk3MywxLjUtMy40NzYsMy44NTMtMy40NzZhMy44ODksMy44ODksMCwwLDEsMy43NDIsMi4xMDdMMjUsMTguMTI4QTEuNzg5LDEuNzg5LDAsMCwwLDIzLjMxMSwxN2ExLjE0NSwxLjE0NSwwLDAsMC0xLjI1OSwxLjEyOGMwLC43ODkuNDg5LDEuMTA5LDEuNjE4LDEuNmwuNjU4LjI4MmMyLjIzNi45NTksMy41LDEuOTM2LDMuNSw0LjEzMywwLDIuMzY5LTEuODYxLDMuNjY3LTQuMzYsMy42NjdhNS4wNTUsNS4wNTUsMCwwLDEtNC43OTUtMi42OTFabS05LjI5NS4yMjhjLjQxMy43MzMuNzg5LDEuMzUzLDEuNjkzLDEuMzUzLjg2NCwwLDEuNDEtLjMzOCwxLjQxLTEuNjUzVjE0Ljg1NmgyLjYzMXY4Ljk4MmMwLDIuNzI0LTEuNiwzLjk2NC0zLjkyOSwzLjk2NGE0LjA4NSw0LjA4NSwwLDAsMS0zLjk0Ny0yLjRaXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIvL1wiLFxuXHRcdF0sXG5cdH0sXG5cdFwiSlNPTlwiOiB7XG5cdFx0Y29sb3VyOiBcIiNmNWRlMTlcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk00LjAxNCwxNC45NzZhMi41MSwyLjUxLDAsMCwwLDEuNTY3LS41MThBMi4zNzcsMi4zNzcsMCwwLDAsNi4zODYsMTMuMSwxNS4yNjEsMTUuMjYxLDAsMCwwLDYuNiwxMC4xNTZxLjAxMi0yLjA4NS4wNzUtMi43NDdhNS4yMzYsNS4yMzYsMCwwLDEsLjQxOC0xLjY4NiwzLjAyNSwzLjAyNSwwLDAsMSwuNzU1LTEuMDE4QTMuMDQ2LDMuMDQ2LDAsMCwxLDksNC4xMjUsNi43NjIsNi43NjIsMCwwLDEsMTAuNTQ0LDRoLjdWNS45NmgtLjM4N2EyLjMzOCwyLjMzOCwwLDAsMC0xLjcyMy40NjhBMy40LDMuNCwwLDAsMCw4LjcwOSw4LjUyYTM2LjA1NCwzNi4wNTQsMCwwLDEtLjEzNyw0LjEzMyw0LjczNCw0LjczNCwwLDAsMS0uNzY4LDIuMDZBNC41NjcsNC41NjcsMCwwLDEsNi4xLDE2YTMuODA5LDMuODA5LDAsMCwxLDEuOTkyLDEuNzU0LDguODYxLDguODYxLDAsMCwxLC42MTgsMy44NjVxMCwyLjQzNS4wNSwyLjlBMS43NTUsMS43NTUsMCwwLDAsOS4yNjQsMjUuN2EyLjYzOSwyLjYzOSwwLDAsMCwxLjU5Mi4zMzdoLjM4N1YyOGgtLjdhNS42NTUsNS42NTUsMCwwLDEtMS43NzMtLjIsMi45NywyLjk3LDAsMCwxLTEuMzI0LS45MywzLjM1MywzLjM1MywwLDAsMS0uNjgxLTEuNjNBMjQuMTc1LDI0LjE3NSwwLDAsMSw2LjYsMjIuMDA2LDE2LjQ2OSwxNi40NjksMCwwLDAsNi4zODYsMTguOWEyLjQwOCwyLjQwOCwwLDAsMC0uODA1LTEuMzYxLDIuNDg5LDIuNDg5LDAsMCwwLTEuNTY3LS41MjRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjVkZTE5XFxcIi8+PHBhdGggZD1cXFwiTTI3Ljk4NiwxNy4wMTFhMi40ODksMi40ODksMCwwLDAtMS41NjcuNTI0LDIuNDA4LDIuNDA4LDAsMCwwLS44MDUsMS4zNjEsMTYuNDY5LDE2LjQ2OSwwLDAsMC0uMjEyLDMuMTA5LDI0LjE3NSwyNC4xNzUsMCwwLDEtLjE2OSwzLjIzNCwzLjM1MywzLjM1MywwLDAsMS0uNjgxLDEuNjMsMi45NywyLjk3LDAsMCwxLTEuMzI0LjkzLDUuNjU1LDUuNjU1LDAsMCwxLTEuNzczLjJoLS43VjI2LjA0aC4zODdhMi42MzksMi42MzksMCwwLDAsMS41OTItLjMzNywxLjc1NSwxLjc1NSwwLDAsMCwuNTA2LTEuMTg2cS4wNS0uNDYyLjA1LTIuOWE4Ljg2MSw4Ljg2MSwwLDAsMSwuNjE4LTMuODY1QTMuODA5LDMuODA5LDAsMCwxLDI1LjksMTZhNC41NjcsNC41NjcsMCwwLDEtMS43LTEuMjg2LDQuNzM0LDQuNzM0LDAsMCwxLS43NjgtMi4wNiwzNi4wNTQsMzYuMDU0LDAsMCwxLS4xMzctNC4xMzMsMy40LDMuNCwwLDAsMC0uNDI1LTIuMDkyLDIuMzM4LDIuMzM4LDAsMCwwLTEuNzIzLS40NjhoLS4zODdWNGguN0E2Ljc2Miw2Ljc2MiwwLDAsMSwyMyw0LjEyNWEzLjA0NiwzLjA0NiwwLDAsMSwxLjE0OS41ODEsMy4wMjUsMy4wMjUsMCwwLDEsLjc1NSwxLjAxOCw1LjIzNiw1LjIzNiwwLDAsMSwuNDE4LDEuNjg2cS4wNjIuNjYyLjA3NSwyLjc0N2ExNS4yNjEsMTUuMjYxLDAsMCwwLC4yMTIsMi45NDcsMi4zNzcsMi4zNzcsMCwwLDAsLjgwNSwxLjM1NSwyLjUxLDIuNTEsMCwwLDAsMS41NjcuNTE4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2Y1ZGUxOVxcXCIvPlwiLFxuXHR9LFxuXHRcIkpTT041XCI6IHtcblx0XHRjb2xvdXI6IFwiIzkwOTA5MFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTEyLjgxNSwxNS4xNjdsLjY4LTUuNjc2aDYuNDg5djJoLTQuNEwxNS4zMjksMTMuN2EyLjQsMi40LDAsMCwxLC4yNTItLjEyMiwyLjk2MiwyLjk2MiwwLDAsMSwuMzc0LS4xMywyLjksMi45LDAsMCwxLC40NTgtLjEwNiwyLjgzNCwyLjgzNCwwLDAsMSwuNTEyLS4wNDYsMy45ODMsMy45ODMsMCwwLDEsMS40NjYuMjUyLDIuNzM2LDIuNzM2LDAsMCwxLDEuMDc2LjcyMywzLjE2NywzLjE2NywwLDAsMSwuNjY0LDEuMTY4LDUsNSwwLDAsMSwuMjI4LDEuNTg4LDQuMTU3LDQuMTU3LDAsMCwxLS4yMzYsMS4zODcsMy4zMDcsMy4zMDcsMCwwLDEtMS45LDIuMDI5LDQuMyw0LjMsMCwwLDEtMS43MTUuMzEyLDQuNzUsNC43NSwwLDAsMS0xLjQ1OC0uMjI4LDQuMDU0LDQuMDU0LDAsMCwxLTEuMjUyLS42NTYsMy4zNTksMy4zNTksMCwwLDEtLjg3OC0xLjA0NiwyLjc4NywyLjc4NywwLDAsMS0uMzItMS4zODJIMTUuMThhMS40NTgsMS40NTgsMCwwLDAsLjM5Ljk3LDEuMzgzLDEuMzgzLDAsMCwwLDEuNTU4LjIwNiwxLjA4OSwxLjA4OSwwLDAsMCwuNC0uNDEyLDEuNzQ5LDEuNzQ5LDAsMCwwLC4yMDYtLjYxOCw0LjMsNC4zLDAsMCwwLC4wNjItLjc0LDIuNzA5LDIuNzA5LDAsMCwwLS4wOTItLjc0LDEuNTA2LDEuNTA2LDAsMCwwLS4yODItLjU1OCwxLjIyOSwxLjIyOSwwLDAsMC0uNS0uMzQ5LDEuNzgsMS43OCwwLDAsMC0uNzE4LS4xMywyLjEyMSwyLjEyMSwwLDAsMC0uNS4wNTQsMS44MDUsMS44MDUsMCwwLDAtLjM4Mi4xMzgsMS4zMTgsMS4zMTgsMCwwLDAtLjI3NC4xOSwxLjI4LDEuMjgsMCwwLDAtLjE5LjJsLTIuMDQ4LS40ODJcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNNS45ODUsMjMuMzQzYTQuNDUsNC40NSwwLDAsMS0xLjMxMS0uNTgsMy4yLDMuMiwwLDAsMS0uODQ4LS44MjQsMy4wMTIsMy4wMTIsMCwwLDEtLjQ1OC0xLjAwOCw0Ljg3OSw0Ljg3OSwwLDAsMS0uMTMtMS4xNDN2LTEuNTVhMi4zLDIuMywwLDAsMC0uMDc2LS42MTgsMS4xODQsMS4xODQsMCwwLDAtLjIyMi0uNDY2Ljk2OS45NjksMCwwLDAtLjM4Mi0uMzA2QTEuMzI0LDEuMzI0LDAsMCwwLDIsMTYuNzQ0VjE1LjAxMmExLjA3NCwxLjA3NCwwLDAsMCwuOTM3LS40LDEuODQxLDEuODQxLDAsMCwwLC4zLTEuMXYtMS41NWE0Ljg3OSw0Ljg3OSwwLDAsMSwuMTMtMS4xNDMsMy4wMzcsMy4wMzcsMCwwLDEsLjQ1OC0xLjAwOEEzLjE3LDMuMTcsMCwwLDEsNC42NzEsOWE0LjQ4Miw0LjQ4MiwwLDAsMSwxLjMxMS0uNThsLjQ4LDEuMzQ0YTEuMjIyLDEuMjIyLDAsMCwwLS40ODguMzI4LDEuNzQyLDEuNzQyLDAsMCwwLS4zMDYuNSwyLjUyNCwyLjUyNCwwLDAsMC0uMTYuNjM0LDUuODI3LDUuODI3LDAsMCwwLS4wNDYuNzR2MS41NUEyLjg0NCwyLjg0NCwwLDAsMSw1LjEyNiwxNC45YTIuMzcsMi4zNywwLDAsMS0xLjA3Ni45ODMsMi4zNTYsMi4zNTYsMCwwLDEsMS4wNzYuOTkyLDIuODA4LDIuODA4LDAsMCwxLC4zMzYsMS4zNzR2MS41NWE1LjgyNyw1LjgyNywwLDAsMCwuMDQ2Ljc0LDIuNTg2LDIuNTg2LDAsMCwwLC4xNi42MzQsMS42ODQsMS42ODQsMCwwLDAsLjMwNi41QTEuMjIyLDEuMjIyLDAsMCwwLDYuNDYyLDIyYzAtLjAwNS0uNDc3LDEuMzQ0LS40NzcsMS4zNDRcXFwiIHN0eWxlPVxcXCJmaWxsOiM5OTlcXFwiLz48cGF0aCBkPVxcXCJNOC4yMTUsMTkuMzkzYTEuMjg5LDEuMjg5LDAsMCwxLC4xLS41MTIsMS4yMTIsMS4yMTIsMCwwLDEsLjI5LS40LDEuMzczLDEuMzczLDAsMCwxLC40NS0uMjc0LDEuNjM3LDEuNjM3LDAsMCwxLC41OC0uMSwxLjU1NSwxLjU1NSwwLDAsMSwuNTcyLjEsMS4yNjksMS4yNjksMCwwLDEsLjQ1LjI3NCwxLjA3NywxLjA3NywwLDAsMSwuMjkuNCwxLjI5NCwxLjI5NCwwLDAsMSwwLDEuMDI0LDEuMTUxLDEuMTUxLDAsMCwxLS4yOS40MTIsMS4zODgsMS4zODgsMCwwLDEtLjQ1LjI2OCwxLjYxMywxLjYxMywwLDAsMS0uNTcyLjEsMS41NzgsMS41NzgsMCwwLDEtLjU4LS4xLDEuNDA5LDEuNDA5LDAsMCwxLS40NS0uMjY4LDEuMjI5LDEuMjI5LDAsMCwxLS4zOS0uOTI0bTAtNi4wODhhMS4yODksMS4yODksMCwwLDEsLjEtLjUxMiwxLjIxMiwxLjIxMiwwLDAsMSwuMjktLjQsMS4zNzMsMS4zNzMsMCwwLDEsLjQ1LS4yNzQsMS42MzcsMS42MzcsMCwwLDEsLjU4LS4xLDEuNTU1LDEuNTU1LDAsMCwxLC41NzIuMSwxLjI2OSwxLjI2OSwwLDAsMSwuNDUuMjc0LDEuMDc3LDEuMDc3LDAsMCwxLC4yOS40LDEuMjk0LDEuMjk0LDAsMCwxLDAsMS4wMjQsMS4xNTEsMS4xNTEsMCwwLDEtLjI5LjQxMiwxLjM4OCwxLjM4OCwwLDAsMS0uNDUuMjY4LDEuNjEzLDEuNjEzLDAsMCwxLS41NzIuMSwxLjU3OCwxLjU3OCwwLDAsMS0uNTgtLjEsMS40MDksMS40MDksMCwwLDEtLjQ1LS4yNjgsMS4yMjksMS4yMjksMCwwLDEtLjM5LS45MjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM5OTlcXFwiLz48cGF0aCBkPVxcXCJNMjQuMjQsMjAuMjkzYTMuNjQ4LDMuNjQ4LDAsMCwxLS4xMjIuOTI5LDQuNTM0LDQuNTM0LDAsMCwxLS4zMzYuODkxLDQuNzA2LDQuNzA2LDAsMCwxLS41LjgwNyw0LjAwNSw0LjAwNSwwLDAsMS0uNjEuNjY0bC0xLjMtLjYxYy4wODEtLjE3My4xNjgtLjM0OS4yNi0uNTI2YTQuODQ2LDQuODQ2LDAsMCwwLC4yNjgtLjU1OCw0LjQ0Myw0LjQ0MywwLDAsMCwuMjA2LS42NTYsMy40MDYsMy40MDYsMCwwLDAsLjA4NC0uOFYxOC42NTZoMi4wNTlsLS4wMDgsMS42MzZcXFwiIHN0eWxlPVxcXCJmaWxsOiM5OTlcXFwiLz48cGF0aCBkPVxcXCJNMjUuNTM4LDIxLjk5NGExLjI1MSwxLjI1MSwwLDAsMCwuNDg4LS4zMjgsMS43MDcsMS43MDcsMCwwLDAsLjMwNi0uNSwyLjUyNSwyLjUyNSwwLDAsMCwuMTYtLjYzNCw1LjgyNiw1LjgyNiwwLDAsMCwuMDQ2LS43NHYtMS41NWEyLjg0NCwyLjg0NCwwLDAsMSwuMzM2LTEuMzgyLDIuMzY0LDIuMzY0LDAsMCwxLDEuMDg0LS45ODMsMi4zNjQsMi4zNjQsMCwwLDEtMS4wODQtLjk4MywyLjg0NCwyLjg0NCwwLDAsMS0uMzM2LTEuMzgydi0xLjU1YTUuODI3LDUuODI3LDAsMCwwLS4wNDYtLjc0LDIuNTg2LDIuNTg2LDAsMCwwLS4xNi0uNjM0LDEuNjg0LDEuNjg0LDAsMCwwLS4zMDYtLjUsMS4yMjIsMS4yMjIsMCwwLDAtLjQ4OC0uMzI4bC40OC0xLjMzOEE0LjQ1LDQuNDUsMCwwLDEsMjcuMzI5LDlhMy4wOTIsMy4wOTIsMCwwLDEsLjg0OC44MTUsMi44OTIsMi44OTIsMCwwLDEsLjQ1LDEuMDA4LDQuNjA2LDQuNjA2LDAsMCwxLC4xMzgsMS4xNDN2MS41NWEyLjY1NSwyLjY1NSwwLDAsMCwuMDY4LjYyNiwxLjQ0OCwxLjQ0OCwwLDAsMCwuMjIyLjQ3NCwxLjAzNywxLjAzNywwLDAsMCwuMzgyLjMsMS4zNzYsMS4zNzYsMCwwLDAsLjU2NC4xMDZ2MS43MzFhMS4wNzcsMS4wNzcsMCwwLDAtLjk0Ni40MTIsMS44MjgsMS44MjgsMCwwLDAtLjI5LDEuMDg0djEuNTVhNC42MDYsNC42MDYsMCwwLDEtLjEzOCwxLjE0MywyLjkxNSwyLjkxNSwwLDAsMS0uNDUsMS4wMDgsMy4xNTcsMy4xNTcsMCwwLDEtLjg0OC44MjQsNC40ODIsNC40ODIsMCwwLDEtMS4zMTEuNThsLS40OC0xLjM1MlxcXCIgc3R5bGU9XFxcImZpbGw6Izk5OVxcXCIvPlwiLFxuXHR9LFxuXHRcIkp1bGlhXCI6IHtcblx0XHRjb2xvdXI6IFwiIzQwNjNkOFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTcuNDQ4LDIxLjk4M1YxMy43NzVsLTIuNDMyLjY2OXY4LjcyOWEyLjY2LDIuNjYsMCwwLDEtLjEwNi45MjkuMzM2LjMzNiwwLDAsMS0uMzA4LjIzOS40MDUuNDA1LDAsMCwxLS4yMTItLjA3NCwxLjI4MiwxLjI4MiwwLDAsMS0uMjg3LS4zLDIuODEzLDIuODEzLDAsMCwwLS4zNzctLjQwOS44NzQuODc0LDAsMCwwLS42MTEtLjIwNywxLjIyLDEuMjIsMCwwLDAtLjgxMi4yNTUuNzg5Ljc4OSwwLDAsMC0uMy42MjdBLjkwNy45MDcsMCwwLDAsMi41NDIsMjVhMy4xMTUsMy4xMTUsMCwwLDAsMS41NjEuMzE5LDcuMDY1LDcuMDY1LDAsMCwwLDEuMzctLjEyMiwyLjM2MSwyLjM2MSwwLDAsMCwxLjA1Ny0uNDgzLDIuMjkyLDIuMjkyLDAsMCwwLC42OC0xLjAxNCw1LjA5NCw1LjA5NCwwLDAsMCwuMjM5LTEuNzE1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzI1MjUyNVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC44MjUsMTQuMDA4SDguNHY1LjYxOGEyLjI0MSwyLjI0MSwwLDAsMCwuMjE4Ljk3NywyLjQ4OSwyLjQ4OSwwLDAsMCwuNi44LDIuOSwyLjksMCwwLDAsLjg5Mi41MzYsMy4wNDUsMy4wNDUsMCwwLDAsMS4xLjIsMi41NSwyLjU1LDAsMCwwLDEuMDUxLS4yNDQsNC4zNDcsNC4zNDcsMCwwLDAsMS4wMTktLjY0OHYuNzQzSDE1LjcxVjE0LjAwOEgxMy4yODl2NS43NTZhMi43NjQsMi43NjQsMCwwLDEtLjY0OC43MDYsMS4xMzksMS4xMzksMCwwLDEtLjY0OC4yODEsMS4xNTUsMS4xNTUsMCwwLDEtLjQ1Ny0uMDksMS4yNjMsMS4yNjMsMCwwLDEtLjM3Mi0uMjM5LDEuMDYsMS4wNiwwLDAsMS0uMjUtLjM1NiwxLjA5MSwxLjA5MSwwLDAsMS0uMDktLjQ0MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyNTI1MjVcXFwiLz48cGF0aCBkPVxcXCJNMTkuMDc0LDIxLjk4M1YxMC4xMzJsLTIuNDExLjY2OVYyMS45ODNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjUyNTI1XFxcIi8+PHBhdGggZD1cXFwiTTIwLjAzOCwxNC40NDR2Ny41NGgyLjQyMVYxMy43NzVaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjUyNTI1XFxcIi8+PHBhdGggZD1cXFwiTTI3LjU2OCwxNy44NjN2Mi4zcS0uMzcyLjI3Ni0uNjc0LjQ1N2ExLjE2NSwxLjE2NSwwLDAsMS0uNi4xODEuNDY4LjQ2OCwwLDAsMS0uMjc2LS4wOSwxLDEsMCwwLDEtLjIzNC0uMjM5LDEuMTM4LDEuMTM4LDAsMCwxLS4xNjUtLjM1NiwxLjU3NiwxLjU3NiwwLDAsMS0uMDU4LS40My45NjguOTY4LDAsMCwxLC4xODEtLjU1MiwyLjMwNiwyLjMwNiwwLDAsMSwuNDczLS41LDQuNTcyLDQuNTcyLDAsMCwxLC42NDgtLjQzLDcuNjEyLDcuNjEyLDAsMCwxLC43MDYtLjM0NVpNMzAsMjEuOTgzVjE2YTIuMDgzLDIuMDgzLDAsMCwwLS4xOTEtLjksMS43NzksMS43NzksMCwwLDAtLjU5NS0uNjksMy4wMDYsMy4wMDYsMCwwLDAtMS4wMjUtLjQ0MSw2LjIyNSw2LjIyNSwwLDAsMC0xLjQ4MS0uMTU0LDUuNzM1LDUuNzM1LDAsMCwwLTEuMzI3LjE0OSw0LjYsNC42LDAsMCwwLTEuMS40LDIuMzczLDIuMzczLDAsMCwwLS43NTkuNjExLDEuMjE2LDEuMjE2LDAsMCwwLS4yODEuNzcuOTU4Ljk1OCwwLDAsMCwuMzE5LjczOCwxLjE3OCwxLjE3OCwwLDAsMCwuODI4LjI5MiwxLjM2NCwxLjM2NCwwLDAsMCwuNTQ3LS4xLjguOCwwLDAsMCwuMzM1LS4yNTUuOTg2Ljk4NiwwLDAsMCwuMTY1LS4zNzIsMS45NzgsMS45NzgsMCwwLDAsLjA0OC0uNDM1LDEuMDMxLDEuMDMxLDAsMCwxLC4yMjMtLjY2OS45NzUuOTc1LDAsMCwxLC44LS4yNzYsMS4wMDgsMS4wMDgsMCwwLDEsLjc4MS4zMTksMS41OTQsMS41OTQsMCwwLDEsLjI5MiwxLjA4M3YuNzg2bC0uMjY1LjA2NHEtLjQ4OC4xNDktLjk4OC4zMTN0LS45NjEuMzYxYTcuODg0LDcuODg0LDAsMCwwLS44NjUuNDMsMy41MTEsMy41MTEsMCwwLDAtLjcwNi41MzEsMi4zMTksMi4zMTksMCwwLDAtLjQ3OC42NjksMS45MTgsMS45MTgsMCwwLDAtLjE3NS44MjgsMi4wMzQsMi4wMzQsMCwwLDAsLjE2NS44MjMsMS44NzYsMS44NzYsMCwwLDAsLjQ3My42NTMsMi4yNTUsMi4yNTUsMCwwLDAsLjc0OS40MzUsMi45MDcsMi45MDcsMCwwLDAsLjk5My4xNTksMy42NzksMy42NzksMCwwLDAsLjctLjA1OCwyLjUwOSwyLjUwOSwwLDAsMCwuNTM2LS4xNjUsMi4yMDksMi4yMDksMCwwLDAsLjQzLS4yNXEuMTkxLS4xNDMuMzkzLS4zMTN2LjYzN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMyNTI1MjVcXFwiLz48Y2lyY2xlIGN4PVxcXCI2LjIwNFxcXCIgY3k9XFxcIjExLjY3MlxcXCIgcj1cXFwiMS41XFxcIiBzdHlsZT1cXFwiZmlsbDojNjY4MmRmXFxcIi8+PHBhdGggZD1cXFwiTTYuMiwxMy4yODdhMS42MTUsMS42MTUsMCwxLDEsMS42MTUtMS42MTVBMS42MTcsMS42MTcsMCwwLDEsNi4yLDEzLjI4N1ptMC0zYTEuMzg1LDEuMzg1LDAsMSwwLDEuMzg1LDEuMzg1QTEuMzg2LDEuMzg2LDAsMCwwLDYuMiwxMC4yODdaXFxcIiBzdHlsZT1cXFwiZmlsbDojNDA2M2Q4XFxcIi8+PGNpcmNsZSBjeD1cXFwiMjEuNDE3XFxcIiBjeT1cXFwiMTEuNjcyXFxcIiByPVxcXCIxLjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNkNTYzNWNcXFwiLz48cGF0aCBkPVxcXCJNMjEuNDE3LDEzLjI4N2ExLjYxNSwxLjYxNSwwLDEsMSwxLjYxNS0xLjYxNUExLjYxNywxLjYxNywwLDAsMSwyMS40MTcsMTMuMjg3Wm0wLTNBMS4zODUsMS4zODUsMCwxLDAsMjIuOCwxMS42NzIsMS4zODYsMS4zODYsMCwwLDAsMjEuNDE3LDEwLjI4N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjYjNjMzNcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMy4zODVcXFwiIGN5PVxcXCI4LjI5N1xcXCIgcj1cXFwiMS41XFxcIiBzdHlsZT1cXFwiZmlsbDojNjBhZDUxXFxcIi8+PHBhdGggZD1cXFwiTTIzLjM4NSw5LjkxMkExLjYxNSwxLjYxNSwwLDEsMSwyNSw4LjMsMS42MTcsMS42MTcsMCwwLDEsMjMuMzg1LDkuOTEyWm0wLTNBMS4zODUsMS4zODUsMCwxLDAsMjQuNzcsOC4zLDEuMzg2LDEuMzg2LDAsMCwwLDIzLjM4NSw2LjkxMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzODk4MjZcXFwiLz48Y2lyY2xlIGN4PVxcXCIyNS4zNTRcXFwiIGN5PVxcXCIxMS42NzJcXFwiIHI9XFxcIjEuNVxcXCIgc3R5bGU9XFxcImZpbGw6I2FhNzljMVxcXCIvPjxwYXRoIGQ9XFxcIk0yNS4zNTQsMTMuMjg3YTEuNjE1LDEuNjE1LDAsMSwxLDEuNjE1LTEuNjE1QTEuNjE3LDEuNjE3LDAsMCwxLDI1LjM1NCwxMy4yODdabTAtM2ExLjM4NSwxLjM4NSwwLDEsMCwxLjM4NSwxLjM4NUExLjM4NiwxLjM4NiwwLDAsMCwyNS4zNTQsMTAuMjg3WlxcXCIgc3R5bGU9XFxcImZpbGw6Izk1NThiMlxcXCIvPlwiLFxuXHR9LFxuXHRcIktvdGxpblwiOiB7XG5cdFx0Y29sb3VyOiBcIiM5ZDRiOWRcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjMxMS4zMzZcXFwiIHkxPVxcXCIxNDUyLjA2NFxcXCIgeDI9XFxcIjI4My4zNDJcXFwiIHkyPVxcXCIxNDgwLjA1OFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMjgxLjQgLTE0NTApXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZTQ0ODU3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQ3XFxcIiBzdG9wLWNvbG9yPVxcXCIjOWQ0YjlkXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNmQ1ZmFhXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9rb3RsaW48L3RpdGxlPjxwYXRoIGQ9XFxcIk0zMCwzMEgyVjJIMzBMMTYsMTZaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+XCIsXG5cdH0sXG5cdFwiS3VzdG9cIjoge1xuXHRcdGNvbG91cjogXCIjNTliNGQ5XCIsXG5cdFx0aWNvbjogXCI8cmVjdCB4PVxcXCIwLjU1XFxcIiB5PVxcXCIyMi4zMzlcXFwiIHdpZHRoPVxcXCIxNS40MzNcXFwiIGhlaWdodD1cXFwiMi43OTZcXFwiIHJ4PVxcXCIwLjQzOVxcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTE0LjM2MyAxMi43OTcpIHJvdGF0ZSgtNDQuOTk5KVxcXCIgc3R5bGU9XFxcImZpbGw6I2I4ZDQzMlxcXCIvPjxyZWN0IHg9XFxcIjEuMzcyXFxcIiB5PVxcXCIxNi4zODJcXFwiIHdpZHRoPVxcXCI5Ljg1OVxcXCIgaGVpZ2h0PVxcXCIyLjc5NlxcXCIgcng9XFxcIjAuNDM5XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMTAuNzI3IDkuNjYzKSByb3RhdGUoLTQ0Ljk5OSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNiOGQ0MzJcXFwiLz48cmVjdCB4PVxcXCI5LjIzMlxcXCIgeT1cXFwiMjQuMzAxXFxcIiB3aWR0aD1cXFwiOS44NTlcXFwiIGhlaWdodD1cXFwiMi43OTZcXFwiIHJ4PVxcXCIwLjQzOVxcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTE0LjAyNCAxNy41NDEpIHJvdGF0ZSgtNDQuOTk5KVxcXCIgc3R5bGU9XFxcImZpbGw6I2I4ZDQzMlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMzAgMiAyIDIgMzAgMjkuOTk5IDMwIDJcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDc4ZDRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjEwLjI4MiAxMC4yODIgMjEuNzE4IDIxLjcxOCAzMCAxMy40MzYgMzAgMiAxOC41NjQgMiAxMC4yODIgMTAuMjgyXFxcIiBzdHlsZT1cXFwiZmlsbDojNTliNGQ5XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIzMCAyOS45OTkgMzAgMiAxNiAxNiAzMCAyOS45OTlcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmY7b3BhY2l0eTowLjIwMDAwMDAwMjk4MDIzMjI0O2lzb2xhdGlvbjppc29sYXRlXFxcIi8+PHJlY3QgeD1cXFwiMTYuMjI2XFxcIiB5PVxcXCI5LjAwMVxcXCIgd2lkdGg9XFxcIjIuNzk2XFxcIiBoZWlnaHQ9XFxcIjIuNzk2XFxcIiByeD1cXFwiMC42MjJcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0yLjE5MiAxNS41MDcpIHJvdGF0ZSgtNDQuOTk5KVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxyZWN0IHg9XFxcIjIwLjE4XFxcIiB5PVxcXCI1LjA0OFxcXCIgd2lkdGg9XFxcIjIuNzk2XFxcIiBoZWlnaHQ9XFxcIjIuNzk2XFxcIiByeD1cXFwiMC42MjJcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDEuNzYyIDE3LjE0Nikgcm90YXRlKC00NC45OTkpXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHJlY3QgeD1cXFwiMjAuMThcXFwiIHk9XFxcIjEyLjk1NVxcXCIgd2lkdGg9XFxcIjIuNzk2XFxcIiBoZWlnaHQ9XFxcIjIuNzk2XFxcIiByeD1cXFwiMC42MjJcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0zLjgyOSAxOS40NjEpIHJvdGF0ZSgtNDQuOTk5KVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxyZWN0IHg9XFxcIjI0LjEzM1xcXCIgeT1cXFwiOS4wMDJcXFwiIHdpZHRoPVxcXCIyLjc5NlxcXCIgaGVpZ2h0PVxcXCIyLjc5NlxcXCIgcng9XFxcIjAuNjIyXFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgwLjEyNCAyMS4wOTkpIHJvdGF0ZSgtNDQuOTk5KVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIkxhVGVYXCI6IHtcblx0XHRjb2xvdXI6IFwiI2NmY2ZjZlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTExLjMzMywxMy4xMjJjLS4xMjgtMS41NjItLjI0MS0yLjc1Ni0yLjI4Ny0yLjc1Nkg3LjkxdjguNGgyLjE0NXYuNjExbC0zLjA4My0uMDI5LTMuMDgyLjAyOXYtLjYxMUg2LjAzNHYtOC40SDQuODg0Yy0yLjA0NiwwLTIuMTU5LDEuMjA4LTIuMjg3LDIuNzU2SDJsLjI4NC0zLjM2N2g5LjM2MmwuMjg0LDMuMzY3aC0uNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZmNmY2ZcXFwiLz48cGF0aCBkPVxcXCJNMTkuMjg5LDIyLjUzSDEwLjQxVjIxLjkyaDEuNTA2VjEzLjQ2N0gxMC40MXYtLjYxMWg4LjYzN2wuNDEyLDMuMzY3aC0uNmMtLjIxMy0xLjgzMy0uNjgyLTIuNzU2LTIuODU1LTIuNzU2SDEzLjc5MVYxNy4yaC44MzhjMS4zNjQsMCwxLjUwNS0uNiwxLjUwNS0xLjY2MmguNnYzLjkzNWgtLjZjMC0xLjA4LS4xNDItMS42NjItMS41MDUtMS42NjJoLS44Mzh2NC4xMDZoMi4yMTZjMi40NzIsMCwzLTEuMTA4LDMuMy0zLjIyNWguNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZmNmY2ZcXFwiLz48cGF0aCBkPVxcXCJNMjcuNzI3LDE5LjE4NmMtLjU0LDAtMS45NiwwLTIuNDE1LjAyOVYxOC42aDEuMTc5bC0yLjU1Ny0zLjU1Mi0yLjUyOSwzLjM4MUE0LjEsNC4xLDAsMCwwLDIyLjcsMTguNnYuNjExYy0uMzU1LS4wMjktMS41NzYtLjAyOS0yLjAxNy0uMDI5LS40LDAtMS41NDgsMC0xLjg3NS4wMjlWMTguNmguMzgzYTcuNDU5LDcuNDU5LDAsMCwwLC44MjQtLjA0M2MuNS0uMDQzLjU0LS4wODUuNjY3LS4yNTZMMjMuNTM2LDE0LjVsLTMuMTUzLTQuNDE4SDE5VjkuNDdjLjM4NC4wMjgsMS43OS4wMjgsMi4yNzMuMDI4LjU4MiwwLDEuOTE4LDAsMi40MjktLjAyOHYuNjExSDIyLjUyOGwyLjExNywyLjk1NSwyLjA3NC0yLjc4NGE0LjEsNC4xLDAsMCwwLTEuMjkzLS4xN1Y5LjQ3Yy4zNTYuMDI4LDEuNTkxLjAyOCwyLjAzMi4wMjguNCwwLDEuNTM0LDAsMS44NjEtLjAyOHYuNjExaC0uMzY5YTUuMjY0LDUuMjY0LDAsMCwwLS44MzguMDQzYy0uNDY5LjA0My0uNTI2LjA3MS0uNjY3LjI1NmwtMi40LDMuMjFMMjguNjM2LDE4LjZIMzB2LjYxMUMyOS42NDUsMTkuMTg2LDI4LjE4MiwxOS4xODYsMjcuNzI3LDE5LjE4NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZmNmY2ZcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIiVcIixcblx0XHRdLFxuXHR9LFxuXHRcIkxlc3NcIjoge1xuXHRcdGNvbG91cjogXCIjMmE0Zjg0XCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItMy42MDlcXFwiIHkxPVxcXCItNDkyLjY4NVxcXCIgeDI9XFxcIi0zLjYwOVxcXCIgeTI9XFxcIi00ODAuMjcxXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDE5LjcxMiA1MDIuODkxKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMC4xNVxcXCIgc3RvcC1jb2xvcj1cXFwiIzJhNGY4NFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zODhcXFwiIHN0b3AtY29sb3I9XFxcIiMyOTRlODJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMxNzJlNGVcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2xlc3M8L3RpdGxlPjxwYXRoIGQ9XFxcIk0yOC41NTksMjAuMjI2YTIuNCwyLjQsMCwwLDEtMi4zOTQsMi4zOTRINi4wNGEyLjQsMi40LDAsMCwxLTIuMzk0LTIuMzk0VjEyLjZBMi40LDIuNCwwLDAsMSw2LjA0LDEwLjIwNkgyNi4xNjVBMi40LDIuNCwwLDAsMSwyOC41NTksMTIuNlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMjQuMzQ5LDE2LjI1YTEuOTcyLDEuOTcyLDAsMCwxLDEuNTc4LDEuODkxLDEuNjksMS42OSwwLDAsMS0uNjUzLDEuNCwyLjkzNCwyLjkzNCwwLDAsMS0xLjg2Mi41NTksNC41NTgsNC41NTgsMCwwLDEtMi4yNDEtLjYxOCwxLjk4NiwxLjk4NiwwLDAsMSwuMTYtLjY2OSwxLjgzLDEuODMsMCwwLDEsLjM1LS41NzYsMy43LDMuNywwLDAsMCwxLjY0OS40OTMuOTY1Ljk2NSwwLDAsMCwuNTEtLjExMi4zMzkuMzM5LDAsMCwwLC4xNzgtLjNxMC0uMzUzLS41NDYtLjUyOWwtLjY1My0uMjQ3cS0xLjQ4Mi0uNTQtMS40ODItMS43NjJhMS43NTMsMS43NTMsMCwwLDEsLjYyMy0xLjQxNiwyLjU4NywyLjU4NywwLDAsMSwxLjY3OC0uNjQ4LDUuMDk0LDUuMDk0LDAsMCwxLDEuMTUuMTQ3LDQuNTU1LDQuNTU1LDAsMCwxLDEuMDMyLjQ3MiwxLjY2OCwxLjY2OCwwLDAsMS0uMTMuNzIyLDEuMjIsMS4yMiwwLDAsMS0uMzguNTU4LDQuMjYxLDQuMjYxLDAsMCwwLTEuNjYtLjQ0Ni41NDQuNTQ0LDAsMCwwLS4zNjIuMTA2LjMzOC4zMzgsMCwwLDAtLjEyNC4yN3EwLC4yODIuNDUxLjQ0NmwuNzM2LjI1OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNmY2ZjZcXFwiLz48cGF0aCBkPVxcXCJNMTkuMSwxNi4yNWExLjk3MiwxLjk3MiwwLDAsMSwxLjU3NywxLjg5MSwxLjY5MSwxLjY5MSwwLDAsMS0uNjUyLDEuNCwyLjkzNywyLjkzNywwLDAsMS0xLjg2Mi41NTksNC41Niw0LjU2LDAsMCwxLTIuMjQxLS42MTgsMS45ODEsMS45ODEsMCwwLDEsLjE2LS42NjksMS44MjEsMS44MjEsMCwwLDEsLjM1LS41NzYsMy43LDMuNywwLDAsMCwxLjY0OS40OTMuOTYzLjk2MywwLDAsMCwuNTEtLjExMi4zNC4zNCwwLDAsMCwuMTc4LS4zcTAtLjM1My0uNTQ2LS41MjlsLS42NTMtLjI0N3EtMS40ODItLjU0LTEuNDgyLTEuNzYyYTEuNzUyLDEuNzUyLDAsMCwxLC42MjMtMS40MTYsMi41ODUsMi41ODUsMCwwLDEsMS42NzctLjY0OCw1LjA4OCw1LjA4OCwwLDAsMSwxLjE1LjE0Nyw0LjU1Miw0LjU1MiwwLDAsMSwxLjAzMi40NzIsMS42NjgsMS42NjgsMCwwLDEtLjEzLjcyMiwxLjIyLDEuMjIsMCwwLDEtLjM4LjU1OCw0LjI2Myw0LjI2MywwLDAsMC0xLjY2MS0uNDQ2LjU0My41NDMsMCwwLDAtLjM2Mi4xMDYuMzM5LjMzOSwwLDAsMC0uMTI0LjI3cTAsLjI4Mi40NTEuNDQ2bC43MzYuMjU5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2Y2ZjZmNlxcXCIvPjxwYXRoIGQ9XFxcIk0xNS4yNjQsMTYuMzMzYTIuODIyLDIuODIyLDAsMCwwLS4xNzItMSwyLjIzOSwyLjIzOSwwLDAsMC0uNDkyLS43ODcsMi4yOCwyLjI4LDAsMCwwLS43NzctLjUxNywyLjczNywyLjczNywwLDAsMC0xLjAyNi0uMzE0LDIuOCwyLjgsMCwwLDAtMS4xOC4zNjEsMi4yNTYsMi4yNTYsMCwwLDAtLjgzLjY0NiwyLjc2NSwyLjc2NSwwLDAsMC0uNDg3Ljk2OSw0LjQsNC40LDAsMCwwLS4xNiwxLjIxNiw1LjY4MSw1LjY4MSwwLDAsMCwuMTMsMS4yNTcsMi42MjgsMi42MjgsMCwwLDAsLjQ0NSwxLDIuMTA3LDIuMTA3LDAsMCwwLC44MTguNjU3LDIuOTM1LDIuOTM1LDAsMCwwLDEuMjUxLjI3NywzLjk1MiwzLjk1MiwwLDAsMCwyLjMyNC0uNzEyLDEuODY1LDEuODY1LDAsMCwwLS40ODQtMS4wODEsNi4xODgsNi4xODgsMCwwLDEtLjg1Ny4yNjIsMy4yMDgsMy4yMDgsMCwwLDEtLjY1Ni4wNzksMS4wMTcsMS4wMTcsMCwwLDEtLjgxNS0uMjksMS4xODcsMS4xODcsMCwwLDEtLjI3MS0uNzdoMy4wODNBNC40NDcsNC40NDcsMCwwLDAsMTUuMjY0LDE2LjMzM1ptLTMuMjQ4LjA4MWEyLjQzMywyLjQzMywwLDAsMSwuMjE4LTEsLjYzMi42MzIsMCwwLDEsLjU1OS0uMjY0LjY2LjY2LDAsMCwxLC41ODIuMjgyLDEuNzQ5LDEuNzQ5LDAsMCwxLC4xOTQuODU2di4xM0gxMi4wMTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjZmNmY2XFxcIi8+PHBhdGggZD1cXFwiTTI5LjE4LDE3LjJhMS42MDUsMS42MDUsMCwwLDAtLjUzLDEuMjY1djIuMDUxYTEuODEsMS44MSwwLDAsMS0uNjgzLDEuNTU3LDIuOCwyLjgsMCwwLDEtMS42NTQuNTQ5bC0uMzczLDBWMjEuNTk0YTEuMjQxLDEuMjQxLDAsMCwwLC41OTUtLjMzNCwxLjM2OSwxLjM2OSwwLDAsMCwuNDE5LTEuMDQ3VjE4LjU1NmEyLjU0NSwyLjU0NSwwLDAsMSwuMjU3LTEuMzIzLDIuNSwyLjUsMCwwLDEsMS4yLS44MzgsMi41MjgsMi41MjgsMCwwLDEtMS4zMjQtMS4xNzksMi45NTYsMi45NTYsMCwwLDEtLjEzNS0xLjE2NVYxMi41MzNhMS40NTgsMS40NTgsMCwwLDAtLjM2Ni0xLjA1NCwxLjE1MiwxLjE1MiwwLDAsMC0uNjQ4LS4zMTR2LS45NmMuNDQ1LDAsLjY2OSwwLC45MjgsMGExLjY3NiwxLjY3NiwwLDAsMSwxLjAyMy40NDIsMiwyLDAsMCwxLC42NzMsMS4wMDksMi4zMywyLjMzLDAsMCwxLC4wODYuN3YxLjc1N2ExLjg0NiwxLjg0NiwwLDAsMCwuNSwxLjM4MywyLjExMywyLjExMywwLDAsMCwuODU0LjQ3OXYuNzk0YTEuOTQzLDEuOTQzLDAsMCwwLS44Mi40MjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjZmNmY2O3N0cm9rZTojNDA0MDQwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjI1cHhcXFwiLz48cGF0aCBkPVxcXCJNNS41OTQsMTAuMjA2SDUuMjZhMS42NzMsMS42NzMsMCwwLDAtMS4wMjMuNDQyLDEuNzEsMS43MSwwLDAsMC0uNjczLDEuMDA5LDMuNTMxLDMuNTMxLDAsMCwwLS4wMzguN3YxLjc1N0ExLjg2NywxLjg2NywwLDAsMSwyLjk4MSwxNS41LDIuODQ3LDIuODQ3LDAsMCwxLDIsMTUuOTc3di43OTNhMi41NTIsMi41NTIsMCwwLDEsLjk0Ny40MjYsMS42MzgsMS42MzgsMCwwLDEsLjU3NywxLjI2NXYyLjA1MUExLjc4MSwxLjc4MSwwLDAsMCw0LjE2LDIyLjA3YTIuOCwyLjgsMCwwLDAsMS42NTQuNTVsLjQyMSwwVjIxLjU5NGExLjQ3LDEuNDcsMCwwLDEtLjY0My0uMzM0LDEuMzU1LDEuMzU1LDAsMCwxLS4zNzEtMS4wNDdWMTguNTU3YTIuNTE2LDIuNTE2LDAsMCwwLS4zMDUtMS4zMjMsMi41LDIuNSwwLDAsMC0xLjItLjgzOCwyLjUyOSwyLjUyOSwwLDAsMCwxLjMyNC0xLjE3OCwyLjg1NywyLjg1NywwLDAsMCwuMTgzLTEuMTY1VjEyLjUzNEExLjQ2MiwxLjQ2MiwwLDAsMSw1LjU0LDExLjQ4YTEuMzEzLDEuMzEzLDAsMCwxLC41NzUtLjI3MWwuNDI4LDBWMTAuMjA2SDUuNTk0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2Y2ZjZmNjtzdHJva2U6IzQwNDA0MDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yNXB4XFxcIi8+PHBhdGggZD1cXFwiTTkuNTM3LDE4LjUyOWgtLjMyYy0uMzQ4LDAtLjQ3OS0uMTgzLS40NzktLjU1MVYxMS4yMTlhMS4yNTYsMS4yNTYsMCwwLDAtLjI2OC0uODU2Yy0uMTUtLjE2NC0uNDExLS4xNjItLjc4My0uMTYySDYuOTY0bC0uMDg1LDB2OC4xMDZhMS44NzUsMS44NzUsMCwwLDAsLjM1MiwxLjI0LDEuNDQxLDEuNDQxLDAsMCwwLDEuMTQ1LjM5Myw3Ljg1OSw3Ljg1OSwwLDAsMCwxLjI2OS0uMTE4LDIuMjMsMi4yMywwLDAsMCwuMDM2LS41MDksMi4yNzgsMi4yNzgsMCwwLDAtLjE0Mi0uNzgyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2Y2ZjZmNlxcXCIvPlwiLFxuXHR9LFxuXHRcIkxpcXVpZFwiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMDQ5OTlcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yOS45ODgsMjIuMzcybC0uNzQ4LjA0OGE1LjIwOSw1LjIwOSwwLDAsMS0yLjk5LS42NzEsNy44LDcuOCwwLDAsMC03LjgsMCw1LjI3NSw1LjI3NSwwLDAsMS01LjMuMDFBNy4yNjIsNy4yNjIsMCwwLDAsOS4yNjMsMjAuN2E3LjIyOSw3LjIyOSwwLDAsMC0zLjk0LDEuMDYsNC43NTEsNC43NTEsMCwwLDEtMi40Ny43bC0uODM4LDBjMCwuODg5LS4wMDksMS43MzktLjAxNSwyLjUxNWwuODYxLDBhNy4yMzcsNy4yMzcsMCwwLDAsMy43NS0xLjA1Miw0Ljc2Myw0Ljc2MywwLDAsMSwyLjY1OS0uNyw0LjgzNSw0LjgzNSwwLDAsMSwyLjYzNC43MTgsNy43OTQsNy43OTQsMCwwLDAsNy44LDAsNS4yODcsNS4yODcsMCwwLDEsNS4zMTksMCw3LjcwOSw3LjcwOSwwLDAsMCw0LjQuOTg5TDMwLDI0Ljg4OEMyOS45OTUsMjQuMSwyOS45OTEsMjMuMjQ5LDI5Ljk4OCwyMi4zNzJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA0OTk5XFxcIi8+PHBhdGggZD1cXFwiTTI5Ljk4MywxNS41ODFsLS43NDMuMDQ3YTUuMjI2LDUuMjI2LDAsMCwxLTIuOTktLjY3MSw3LjgsNy44LDAsMCwwLTcuOCwwLDUuMjc4LDUuMjc4LDAsMCwxLTUuMy4wMUE3LjMxMiw3LjMxMiwwLDAsMCw5LjI2MywxMy45MWE3LjMsNy4zLDAsMCwwLTMuOTQxLDEuMDYsNC43NDIsNC43NDIsMCwwLDEtMi40NjkuN2wtLjgyOCwwYzAsLjg0OSwwLDEuNjkzLDAsMi41MTVsLjg0LDBhNy4yMzcsNy4yMzcsMCwwLDAsMy43NS0xLjA1Miw0LjcsNC43LDAsMCwxLDIuNjU5LS43LDQuOCw0LjgsMCwwLDEsMi42MzQuNzE4LDcuNzk0LDcuNzk0LDAsMCwwLDcuOCwwLDUuMjg3LDUuMjg3LDAsMCwxLDUuMzE5LDAsNy43MDksNy43MDksMCwwLDAsNC40Ljk4OWwuNTY4LS4wMzdDMjkuOTgzLDE3LjI2OSwyOS45ODMsMTYuNDI0LDI5Ljk4MywxNS41ODFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA0OTk5XFxcIi8+PHBhdGggZD1cXFwiTTI5LjI0LDkuMTM3YTUuMjU0LDUuMjU0LDAsMCwxLTIuOTktLjY3MSw3LjgsNy44LDAsMCwwLTcuOCwwLDUuMjc1LDUuMjc1LDAsMCwxLTUuMy4wMDlBNy4xNiw3LjE2LDAsMCwwLDkuMjYzLDcuNDJhNy4xNTksNy4xNTksMCwwLDAtMy45NCwxLjA1OSw0LjczOCw0LjczOCwwLDAsMS0yLjQ2OS43bC0uODM0LDBjMCwuODIsMCwxLjY2NCwwLDIuNTE3bC44MzYsMGE3LjIzNyw3LjIzNywwLDAsMCwzLjc1LTEuMDUyLDQuNzM4LDQuNzM4LDAsMCwxLDIuNjU5LS43MDYsNC44MTQsNC44MTQsMCwwLDEsMi42MzQuNzE5LDcuNzkxLDcuNzkxLDAsMCwwLDcuOCwwLDUuMjkzLDUuMjkzLDAsMCwxLDUuMzE5LDAsNy43MzIsNy43MzIsMCwwLDAsNC40Ljk4OGwuNTY4LS4wMzdjMC0uODU5LDAtMS43LjAwNy0yLjUxNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDQ5OTlcXFwiLz5cIixcblx0fSxcblx0XCJMaXNwXCI6IHtcblx0XHRjb2xvdXI6IFwiIzgzODFjNVwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMTkyNS43ODVcXFwiIHkxPVxcXCItMTM4My4wNzVcXFwiIHgyPVxcXCIyMzAyLjM1MVxcXCIgeTI9XFxcIi0xODY4LjU1N1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLjA0OCwgMCwgMCwgLTAuMDQ1LCAtODIuNTM5LCAtNTQuNjUpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjODM4MWM1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU2NlxcXCIgc3RvcC1jb2xvcj1cXFwiIzdlNTViM1xcXCIgc3RvcC1vcGFjaXR5PVxcXCIwLjk5NlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E1MmVjYlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwLjk5MlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiMjIxNC4xODdcXFwiIHkxPVxcXCItMTc1MC4yMjVcXFwiIHgyPVxcXCIxOTMwLjk3NFxcXCIgeTI9XFxcIi0xNDA4LjM0MlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLjA1NCwgMCwgMCwgLTAuMDU0LCAtOTUuMTg4LCAtNjguNDg3KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzQxMWY1ZFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzViMmE4NVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfZW1hY3M8L3RpdGxlPjxwYXRoIGQ9XFxcIk0yOS4zNjMsMTZBMTMuMzY0LDEzLjM2NCwwLDEsMSwxNiwyLjUsMTMuNDMyLDEzLjQzMiwwLDAsMSwyOS4zNjMsMTZaXFxcIiBzdHlsZT1cXFwic3Ryb2tlLXdpZHRoOjAuNzVweDtmaWxsOnVybCgjYSk7c3Ryb2tlOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMTEuNDA2LDI1LjQ4M2ExOC4xNTcsMTguMTU3LDAsMCwwLDIuNTg3LS4wNDgsNDEuNzI4LDQxLjcyOCwwLDAsMCw0LjUtLjYzOSwzMC42NzEsMzAuNjcxLDAsMCwwLDMuMTMyLS44MzljMS4xNDItLjQyMSwxLjc2NC0uNzc4LDIuMDQzLTEuMjg0YS42Mi42MiwwLDAsMC0uNDQxLS42OTJjLTEuMzQ3LS41NjUtMi45MDgtLjQ2My02LS41MjgtMy40MjctLjExOC00LjU2Ny0uNjkxLTUuMTc0LTEuMTUzLS41ODItLjQ2OS0uMjktMS43NjUsMi4yMDYtMi45MDdhNTQuMjY2LDU0LjI2NiwwLDAsMSw2LjE4NC0xLjczYy0xLjY1OS0uODItNC43NTMtMi4yNjItNS4zODktMi41NzMtLjU1OC0uMjczLTEuNDUxLS42ODQtMS42NDQtMS4xODItLjIxOS0uNDc4LjUxOC0uODg5LjkzLTEuMDA3YTIwLjMsMjAuMywwLDAsMSw0LjktLjY0Nyw0LjMwOCw0LjMwOCwwLDAsMCwxLS4wNjlBMS43NjcsMS43NjcsMCwwLDAsMjEuODc5LDcuOWEyLjc3NSwyLjc3NSwwLDAsMC0zLjI4Ni0xLjgxQzE3LjIyLDYuMzM4LDEzLjkwOCw3LjMsMTMuOTA4LDcuM2M0LjA5My0uMDM1LDQuNzc5LjAzMyw1LjA4NS40NjEuMTgxLjI1My0uMDgyLjYtMS4xNzQuNzc3LTEuMTg5LjE5NC0zLjY1OS40MjgtMy42NTkuNDI4LTIuMzcuMTQxLTQuMDQuMTUtNC41NCwxLjIxLS4zMjcuNjkzLjM0OSwxLjMuNjQ1LDEuNjg4YTEyLjcyOCwxMi43MjgsMCwwLDAsNC4yMjUsMi43Yy40MzguMjA4LDEuNzIzLjYsMS43MjMuNmExMS41MiwxMS41MiwwLDAsMC04LjEsMi4yODdjLTEuODA3LDEuNjcyLTEuMDA4LDMuNjY1LDIuNjk1LDQuODkxYTEyLjc1NSwxMi43NTUsMCwwLDAsNi41MzQuNzcyYzEuOTIyLS4xLDIuMjI0LS4wNDIsMi4yNDQuMTE2LjAyNy4yMjItMi4xMzQuNzczLTIuNzI0Ljk0NC0xLjUuNDMzLTUuNDM2LDEuMzA3LTUuNDU2LDEuMzEyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIkxpdmVTY3JpcHRcIjoge1xuXHRcdGNvbG91cjogXCIjMzE3ZWFjXCIsXG5cdFx0aWNvbjogXCI8cG9seWdvbiBwb2ludHM9XFxcIjUuNTA0IDIuMDA3IDguOTg2IDIgOC45ODYgMjEuNzQ2IDEwLjc1OSAxOS45ODcgMTAuNzU5IDMuNzU1IDEyLjQ5NyAzLjc1NSAxMi40OTcgMTguMjQgMTQuMjUzIDE2LjQ4NyAxNC4yNTMgMy43NTUgMTUuOTk3IDMuNzU1IDE1Ljk5NyAxNC43MjkgMTcuNzM1IDEyLjk2MiAxNy43MzUgMy43NTUgMTkuNDYxIDMuNzU1IDE5LjQ2MSAxMS4yMjUgMjEuMjQ1IDkuNDYxIDIxLjI0NSAzLjc1NSAyMi45NzIgMy43NTUgMjIuOTcyIDcuNzIzIDI0LjczOCA1Ljk3NSAyNC43MzkgMy43NTUgMjYuNDgzIDMuNzU1IDI2LjQ4MyA1LjQ4MiAyOC4yMDkgNS40ODIgMjguMjA5IDcuMjY3IDI1LjkxMSA3LjI2OCAyNC4xODQgOC45OTMgMjguMjA5IDguOTkzIDI4LjIwOSAxMC43MTkgMjIuNDM4IDEwLjcxOSAyMC42OTggMTIuNTA0IDI4LjIwOSAxMi41MDQgMjguMjA5IDE0LjIzIDE4Ljk2MSAxNC4yMyAxNy4yMDUgMTYuMDE0IDI4LjIwOSAxNi4wMTQgMjguMjA5IDE3Ljc0MSAxNS40NTUgMTcuNzQxIDEzLjcxNSAxOS40OTYgMjguMjA5IDE5LjQ5NiAyOC4yMDkgMjEuMjUyIDExLjk4IDIxLjI1MiAxMC4yNDIgMjIuOTc4IDI5Ljk4MiAyMi45NzggMjkuOTg5IDI2LjQ4OSA4Ljk4NiAyNi40ODkgOC45ODYgMzAgNS41MDQgMzAgNS41MDQgMjYuNDg5IDIuMDExIDI2LjQ4OSAyLjAxMSAyMi45NzggNS41MDQgMjIuOTc4IDUuNTAzIDIgNS41MDQgMi4wMDdcXFwiIHN0eWxlPVxcXCJmaWxsOiMzMTdlYWNcXFwiLz5cIixcblx0fSxcblx0XCJMb2cgZmlsZVwiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMGJkMDJcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yOS40LDI3LjZIMi41VjQuNUgyOS40Wm0tMjUuOS0xSDI4LjRWNS41SDMuNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCIyLjVcXFwiIHk9XFxcIjUuNVxcXCIgd2lkdGg9XFxcIjI2LjlcXFwiIGhlaWdodD1cXFwiMS45XFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiMTEuMzMzXFxcIiB5PVxcXCI5LjVcXFwiIHdpZHRoPVxcXCI4LjE2N1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiMTEuMzMzXFxcIiB5PVxcXCIxMi4wODNcXFwiIHdpZHRoPVxcXCIxMi41XFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCIxMS4zMzNcXFwiIHk9XFxcIjE0Ljc1XFxcIiB3aWR0aD1cXFwiMTAuNjE3XFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCIxMS4zMzNcXFwiIHk9XFxcIjE3LjU4M1xcXCIgd2lkdGg9XFxcIjE0LjE2N1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiMTEuMzMzXFxcIiB5PVxcXCIyMC41XFxcIiB3aWR0aD1cXFwiOS44MzRcXFwiIGhlaWdodD1cXFwiMVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYmQwMlxcXCIvPjxyZWN0IHg9XFxcIjExLjVcXFwiIHk9XFxcIjIzLjA4M1xcXCIgd2lkdGg9XFxcIjEyLjE2N1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiNS41XFxcIiB5PVxcXCI5LjVcXFwiIHdpZHRoPVxcXCI0LjMzM1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiNS41XFxcIiB5PVxcXCIxMi4wODNcXFwiIHdpZHRoPVxcXCI0LjMzM1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiNS41XFxcIiB5PVxcXCIxMi4wODNcXFwiIHdpZHRoPVxcXCI0LjMzM1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiNS41XFxcIiB5PVxcXCIxNC42NjdcXFwiIHdpZHRoPVxcXCI0LjMzM1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiNS41XFxcIiB5PVxcXCIxNy4yNVxcXCIgd2lkdGg9XFxcIjQuMzMzXFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCI1LjVcXFwiIHk9XFxcIjIwLjVcXFwiIHdpZHRoPVxcXCI0LjMzM1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiNS41XFxcIiB5PVxcXCIyMy4wODNcXFwiIHdpZHRoPVxcXCI0LjMzM1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+XCIsXG5cdH0sXG5cdFwiTE9MQ09ERVwiOiB7XG5cdFx0Y29sb3VyOiBcIiM4ZDI3MDFcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yMS4zLDMuNzNhMy45NCwzLjk0LDAsMCwxLDEuMDQxLS42Miw4LjQzNSw4LjQzNSwwLDAsMSwuNTU2LDMuMzg1LDI0Ljg2NSwyNC44NjUsMCwwLDEtLjY0Myw1LjAxOWMtLjM2OC0uMTgtLjczNi0uMzY0LTEuMS0uNTU0YTExLjc1NCwxMS43NTQsMCwwLDAsLjI3My0zLjc0NywzLjA4LDMuMDgsMCwwLDAtLjI1NS0uODY1LDUuMTQyLDUuMTQyLDAsMCwwLTIuMDE2LDIuMDdjLS4zMTktLjI0LS42NTItLjQ1OS0uOTg1LS42NzZBMTUuNzE2LDE1LjcxNiwwLDAsMSwyMS4zLDMuNzNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWRlZGVkXFxcIi8+PHBhdGggZD1cXFwiTTE5LjQ1MSw4LjZhNC41NzQsNC41NzQsMCwwLDEsMS41MDktMS41NjMsNi42ODUsNi42ODUsMCwwLDEsLjA5LDIuNjcxQzIwLjUxNyw5LjM0MywxOS45NzUsOC45ODcsMTkuNDUxLDguNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZGVkZWRcXFwiLz48cGF0aCBkPVxcXCJNMTYuNDYxLDEwLjA3NmMtLjAzOC0xLjEzNC0uMDMxLTIuMjY5LS4wMjYtMy40LS45LjQ5My0xLjc1OCwxLjA3MS0yLjY0OCwxLjU4OS0uNDUzLjI3LS45MDguNTM2LTEuMzYuODA4LjIyNC0uMTYzLjQ1Ny0uMzEyLjY5LS40NjItLjg2MS0xLjIyNC0xLjk3MS0yLjUtMy41My0yLjc0OGExMC45NjQsMTAuOTY0LDAsMCwwLS4zNjUsNS4xNDdjLjMxOC0uMTk1LjYzMy0uNC45NjItLjU3Mi0uNDc0LjMxOS0uOTY0LjYxNS0xLjQ0Ni45Mi0uOTU3LjYtMS45MjIsMS4xOTItMi44OTIsMS43NzdhMS4yMzIsMS4yMzIsMCwwLDAtLjM5MS4zMmMtLjEsMS4zOTUtLjM0LDQuMzkyLS4zNCw0LjM5Mi0uMjU0LDMuNjY4LS41MjIsNy4zMzYtLjgyNiwxMSw0LjA2Mi4zNDMsOC4xMTguNzQyLDEyLjE3OSwxLjA3NkMxNi40NTgsMjMuMywxNi40NzIsMTYuNjksMTYuNDYxLDEwLjA3NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZGVkZWRcXFwiLz48cGF0aCBkPVxcXCJNMjEuMSwyLjk3N0E1Ljg4NCw1Ljg4NCwwLDAsMSwyMi43MDYsMmExMC4wNjQsMTAuMDY0LDAsMCwxLC43NzIsNC42MDYsMjQuNTkxLDI0LjU5MSwwLDAsMS0uNTA4LDQuNDU5YzEuMi44NDYsMi40MzMsMS42NDUsMy42MTgsMi41MDlxLjQ0LDYuMzguOTA3LDEyLjc1OGMuMDY2LjgzOS4wOTQsMS42OC4yMTYsMi41MTMtMy4wMjkuMjc5LTYuMDU3LjU5MS05LjA4NS44ODZhMTkuMTM3LDE5LjEzNywwLDAsMC0yLjE1OC4yN3YtLjA4M2MtLjAxLTYuNjE0LDAtMTMuMjI3LS4wMDctMTkuODQxLS4wMzgtMS4xMzQtLjAzMS0yLjI2OS0uMDI2LTMuNHYtLjFjLjQwNi4yOTIuODI2LjU2MiwxLjI0My44MzlBMTYuMjc0LDE2LjI3NCwwLDAsMSwyMS4xLDIuOTc3Wm0uMi43NTJhMTUuNzE2LDE1LjcxNiwwLDAsMC0zLjEyOCw0LjAxMWMuMzM0LjIxNy42NjYuNDM3Ljk4NS42NzZhNS4xNDIsNS4xNDIsMCwwLDEsMi4wMTYtMi4wNywzLjA4LDMuMDgsMCwwLDEsLjI1NS44NjUsMTEuNzU0LDExLjc1NCwwLDAsMS0uMjczLDMuNzQ3Yy4zNjQuMTkuNzMxLjM3NCwxLjEuNTU0YTI0Ljg2NSwyNC44NjUsMCwwLDAsLjY0My01LjAxOSw4LjQzNSw4LjQzNSwwLDAsMC0uNTU2LTMuMzg1QTMuOTQsMy45NCwwLDAsMCwyMS4zLDMuNzNaTTE5LjQ1MSw4LjZjLjUyNC4zODMsMS4wNjYuNzM5LDEuNiwxLjEwOGE2LjY4NSw2LjY4NSwwLDAsMC0uMDktMi42NzFBNC41NzQsNC41NzQsMCwwLDAsMTkuNDUxLDguNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNOS4yMTksNS4wNjJhMy41ODEsMy41ODEsMCwwLDEsMi4yMDUuNzQ4QTEyLjksMTIuOSwwLDAsMSwxMy43ODgsOC4yNmMtLjQ1My4yNy0uOTA4LjUzNi0xLjM2LjgwOC4yMjQtLjE2My40NTctLjMxMi42OS0uNDYyLS44NjEtMS4yMjQtMS45NzEtMi41LTMuNTMtMi43NDhhMTAuOTY0LDEwLjk2NCwwLDAsMC0uMzY1LDUuMTQ3Yy4zMTgtLjE5NS42MzMtLjQuOTYyLS41NzItLjQ3NC4zMTktLjk2NC42MTUtMS40NDYuOTJBMTQuMSwxNC4xLDAsMCwxLDkuMjE5LDUuMDYyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC41MDcsOC40NzZhMi40NTUsMi40NTUsMCwwLDEsMS41MTcuODhsLS4zNi4yQTIuNjksMi42OSwwLDAsMCwxMC43MzksOWEzLjMxOCwzLjMxOCwwLDAsMC0uMTY1LDEuMjgxbC0uMzQ0LjExQTcuMDIxLDcuMDIxLDAsMCwxLDEwLjUwNyw4LjQ3NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNMTIuMTM5LDEwLjY5M2EuNDg3LjQ4NywwLDAsMSwuNTQyLjAxLDEuNTUyLDEuNTUyLDAsMCwxLC4wNjIuNmMtLjAzOS43ODQuMDI0LDEuNTczLS4wNzYsMi4zNTRhMS4wMTMsMS4wMTMsMCwwLDEtMS4wMTIuODg2Yy0uMjMzLS4wNS0uMjc4LS4zNDEtLjI3OC0uNTQxLDAtLjY3NS4xLTEuMzQ3LjA2Ni0yLjAyNEExLjMsMS4zLDAsMCwxLDEyLjEzOSwxMC42OTNabS4xNSwxLjA4NGEuODkxLjg5MSwwLDAsMCwuMjUxLS44NjZDMTIuMjE4LDExLjA2MSwxMS45LDExLjUwNywxMi4yODksMTEuNzc3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC41LDEzLjcyOGExNy42NzEsMTcuNjcxLDAsMCwxLDEuOTI4LS44MjJjLS4wMjQuMDY0LS4wNjkuMTkxLS4wOTIuMjU1LS42NDkuMzU4LTEuMzYuNi0yLjAyMS45MzhhMTIuMTE4LDEyLjExOCwwLDAsMC0zLjIzOCwyLjI0OEE3LjIsNy4yLDAsMCwxLDEwLDE3LjM4MWE0LjE2Niw0LjE2NiwwLDAsMSwuOTgtMS4yNDZBMTIuNzI3LDEyLjcyNywwLDAsMSwxNC41LDEzLjcyOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNNy42MjgsMTMuMjMxYS45ODkuOTg5LDAsMCwxLC41OTQtLjE1MiwxOC4xMTQsMTguMTE0LDAsMCwxLS4xLDIuNjU0LjcxMy43MTMsMCwwLDEtLjg5Mi42NTgsMjEuMSwyMS4xLDAsMCwxLC4wODItMi4yMjZBMS4zODMsMS4zODMsMCwwLDEsNy42MjgsMTMuMjMxWm0uMTc5LjgzMWMuMjY4LS4xMTIuMzE5LS40MTMuNDEyLS42NTRDNy44MiwxMy4zMTIsNy43NzUsMTMuNzgzLDcuODA3LDE0LjA2MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNMTAuODIzLDE3LjA5NGExMy45MzQsMTMuOTM0LDAsMCwxLDQuNjEyLTEuOTY4Yy0uMDEuMDY4LS4wMjkuMjA2LS4wMzkuMjc0YTE0LjI3MywxNC4yNzMsMCwwLDAtNC40NzUsMS45MTQsMi42MjYsMi42MjYsMCwwLDEtLjY4MS4zNDNDMTAuMywxNy4zNTYsMTAuNiwxNy4yNDksMTAuODIzLDE3LjA5NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNNS4yNjQsMTcuNTlBNS4xNDQsNS4xNDQsMCwwLDEsOCwxNy4xYTEuNSwxLjUsMCwwLDEsMS4xNDIuNjY1QTYuODU0LDYuODU0LDAsMCwwLDcuNiwxNy4yNzhhNi45NjcsNi45NjcsMCwwLDAtMi40ODQuNTY0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC41NzgsMTcuNzI1YTkuNTksOS41OSwwLDAsMSwzLjYxLS41NjZjLjI0LjAyMS4zMjEuMi4zMTMuNDI0YTMuMjM4LDMuMjM4LDAsMCwwLTEuOTU2LS4wOSwyMS42ODgsMjEuNjg4LDAsMCwwLTIuNTU3LjY1OEM5Ljk5NSwxNy44MjksMTAuMzQ1LDE3LjgwOSwxMC41NzgsMTcuNzI1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk05LjI2OCwxNy42NzZjLjE0OS0uMTc2LjUzMy0uMzMyLjY2NC0uMDYyYTEuMywxLjMsMCwwLDEtLjUxNi45OTNDOS4yNjgsMTguMzM3LDguOTczLDE3Ljk1Miw5LjI2OCwxNy42NzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGQyNzAxXFxcIi8+PHBhdGggZD1cXFwiTTUuNzQ0LDE4LjYyOWE1LjksNS45LDAsMCwxLDMuMTgyLS42MThjLS4xODIuMjM1LS40OTMuMTc4LS43NTEuMjA4YTUuNjYzLDUuNjYzLDAsMCwwLTEuNzIuMzNjLS4zNDQuMTI4LS42NjUuMzEtMS4wMi40MDlBLjYuNiwwLDAsMSw1Ljc0NCwxOC42MjlaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGQyNzAxXFxcIi8+PHBhdGggZD1cXFwiTTYuOSwxOS4xMTRhOS42NzYsOS42NzYsMCwwLDEsMi4yLS44NTRjLS4xLjMtLjQ0MS4zMzgtLjcuNDQ0YTcuODM5LDcuODM5LDAsMCwwLTIuNTY0LDEuNDE1QzUuOTM4LDE5LjU4NCw2LjQ4OCwxOS4zNjksNi45LDE5LjExNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNMTEuNjM1LDE5LjdhMy4xMSwzLjExLDAsMCwwLDEuOTEtMS4zODNjLjM0Ny0uMS4yNzMuMjc1LjI2LjQ5NGEyLjA1NiwyLjA1NiwwLDAsMS0uOTUsMS4wMzYsMTIuMzY1LDEyLjM2NSwwLDAsMS0xLjgyNyw2LjQxOUEyLjM0MiwyLjM0MiwwLDAsMSw4Ljg3OSwyNy41YTIuMjUxLDIuMjUxLDAsMCwxLTEuNTM1LTEuNDksMTAuODk0LDEwLjg5NCwwLDAsMS0uNjktNC42NjVjLS4xNTctLjExMi0uMzY5LS4xNzktLjQ2LS4zNjItLjEzLS4yLjAxMS0uNDI1LjA0Ny0uNjMxLjE5LjE1MS4zNDUuMzkyLjYwNi40MmEzLjYxNywzLjYxNywwLDAsMCwxLjg2My0uNCwxLjU4OCwxLjU4OCwwLDAsMCwuNzA5LS42NjIsMy44ODEsMy44ODEsMCwwLDAsLjQzMS4yNjZBNC4yOCw0LjI4LDAsMCwwLDExLjYzNSwxOS43Wm0tMi4yLjgzNWE0LjEzMiw0LjEzMiwwLDAsMS0yLjQ2Mi44MDksMTEuMDQ5LDExLjA0OSwwLDAsMCwuMzU4LDMuNTI2LDMuMjI2LDMuMjI2LDAsMCwxLC45LTEuMjgyLDIuMDU1LDIuMDU1LDAsMCwxLDIuMy0uMiwyLjMsMi4zLDAsMCwxLC44ODQsMS4xNzIsMTQuNjU5LDE0LjY1OSwwLDAsMCwxLjAwNS00LjQ4OUE1LjE2Nyw1LjE2NywwLDAsMSw5LjQzNSwyMC41MzJabS0uMzI5LDMuMjZhMi4yNzMsMi4yNzMsMCwwLDAtMS41LDEuNDM0Yy0uMTIzLjI2OS4xLjUxNy4yMjUuNzM4LjMzMS40NjIuNzk1LDEsMS40MzEuODkzYTIuODY4LDIuODY4LDAsMCwwLDEuNzY5LTEuNkExLjYsMS42LDAsMCwwLDkuMTA2LDIzLjc5MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz5cIixcblx0fSxcblx0XCJMdWFcIjoge1xuXHRcdGNvbG91cjogXCIjMDUwMDgwXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTYuNSwzMGwtLjAxMS0uMzIxYy40LS4wMTQuOC0uMDQ1LDEuMTktLjA5NGwuMDM5LjMxOUMxNy4zMTIsMjkuOTUyLDE2LjksMjkuOTg0LDE2LjUsMzBabS0xLjIyMi0uMDExYy0uNC0uMDIxLS44MTQtLjA2MS0xLjIxNi0uMTE4bC4wNDUtLjMxOGMuMzkzLjA1NS43OTMuMDk0LDEuMTg4LjExNVpNMTguOTIsMjkuN2wtLjA2Ny0uMzE0Yy4zODctLjA4My43NzYtLjE4NCwxLjE1NS0uM2wuMDk0LjMwN0MxOS43MTQsMjkuNTExLDE5LjMxNiwyOS42MTUsMTguOTIsMjkuN1ptLTYuMDYzLS4wNTNjLS40LS4wOTEtLjc5MS0uMi0xLjE3Ny0uMzI2bC4xLS4zMDZjLjM3Ny4xMjIuNzY0LjIzLDEuMTUuMzE5Wm04LjQtLjY2NS0uMTIxLS4zYy4zNjQtLjE0OC43MjgtLjMxNCwxLjA4LS40OTNsLjAwNiwwLC4xNDUuMjg2LDAsMEMyMiwyOC42NjEsMjEuNjI2LDI4LjgzMSwyMS4yNTMsMjguOTgyWm0tMTAuNzE4LS4wODhjLS4zNzQtLjE1OC0uNzQ1LS4zMzUtMS4xLS41MjRsLjE1LS4yODRjLjM1LjE4Ni43MTMuMzU4LDEuMDc4LjUxMlptMTIuODkzLTEuMDIxLS4xNy0uMjczYy4zMzctLjIxLjY2OC0uNDM3Ljk4NC0uNjc1bC4xOTMuMjU3QzI0LjExMSwyNy40MjUsMjMuNzcyLDI3LjY1OCwyMy40MjgsMjcuODczWk04LjM3OSwyNy43NTFjLS4zNDEtLjIyLS42NzYtLjQ1OS0xLS43MDhsLjItLjI1M2MuMzEyLjI0My42NC40NzYuOTcyLjY5MVptMTctMS4zNDYtLjIxNS0uMjM5Yy4yOTQtLjI2NS41OC0uNTQ2Ljg1MS0uODM2bC4yMzUuMjE5QzI1Ljk3MiwyNS44NDYsMjUuNjc5LDI2LjEzNCwyNS4zNzgsMjYuNFpNNi40NTQsMjYuMjUyYy0uMy0uMjc2LS41ODUtLjU2OS0uODU2LS44N2wuMjM5LS4yMTVjLjI2NS4yOTQuNTQ3LjU4LjgzNi44NVpNMjcuMDQxLDI0LjYybC0uMjUzLS4yYy4yNDQtLjMxMi40NzYtLjYzOS42OTItLjk3MmwuMjcuMTc1QzI3LjUyOSwyMy45NjYsMjcuMjksMjQuMywyNy4wNDEsMjQuNjJaTTQuODIsMjQuNDM5Yy0uMjQ0LS4zMjQtLjQ3Ni0uNjYyLS42OTItMS4wMDdsLjI3Mi0uMTdjLjIxLjMzNy40MzguNjY4LjY3Ni45ODRabTIzLjU0Ny0xLjg2Ny0uMjg0LS4xNTFjLjE4Ni0uMzUuMzU4LS43MTMuNTEzLTEuMDc4bC4zLjEyNUMyOC43MzUsMjEuODQzLDI4LjU1OCwyMi4yMTQsMjguMzY4LDIyLjU3MlptLTI0Ljg0MS0uMi0uMDA2LS4wMTJjLS4xODMtLjM1OS0uMzUyLS43MjgtLjUtMS4xbC4zLS4xMjFjLjE0Ny4zNjIuMzEyLjcyNC40OTEsMS4wNzRsLjAwNi4wMTJaTTI5LjMyLDIwLjMyNWwtLjMwNi0uMWMuMTIyLS4zNzcuMjMtLjc2NC4zMTktMS4xNWwuMzEzLjA3MkMyOS41NTUsMTkuNTQzLDI5LjQ0NiwxOS45MzksMjkuMzIsMjAuMzI1Wk0yLjYwOCwyMC4xMDdjLS4xMi0uMzg4LS4yMjMtLjc4Ni0uMzA4LTEuMTgybC4zMTQtLjA2N2MuMDgzLjM4Ny4xODQuNzc2LjMsMS4xNTVaTTI5Ljg3LDE3Ljk0NmwtLjMxOC0uMDQ1Yy4wNTYtLjM5My4wOTQtLjc5My4xMTUtMS4xODhsLjMyMS4wMTdDMjkuOTY3LDE3LjEzNSwyOS45MjcsMTcuNTQ0LDI5Ljg3LDE3Ljk0NlpNMi4xLDE3LjcyYy0uMDUtLjQtLjA4Mi0uODEyLS4xLTEuMjE4bC4zMjEtLjAxMWMuMDE0LjQuMDQ2LjguMDk0LDEuMTlabTI3LjU4Mi0yLjJjLS4wMTQtLjQtLjA0NS0uOC0uMDkzLTEuMTlsLjMxOS0uMDM5Yy4wNDkuNC4wODIuODEzLjEsMS4yMThaTTIuMzMxLDE1LjMsMi4wMSwxNS4yOGMuMDIxLS40MDUuMDYxLS44MTQuMTE3LTEuMjE2bC4zMTguMDQ1QzIuMzksMTQuNSwyLjM1MiwxNC45LDIuMzMxLDE1LjNabTI3LjA1Ny0yLjE0NGMtLjA4My0uMzg3LS4xODQtLjc3Ni0uMy0xLjE1NUwyOS40LDExLjljLjExOS4zODguMjIzLjc4Ni4zMDcsMS4xODNaTTIuNjYzLDEyLjkzNGwtLjMxMy0uMDcyYy4wOTEtLjQuMi0uNzkxLjMyNi0xLjE3N2wuMzA2LjFDMi44NTksMTIuMTYxLDIuNzUyLDEyLjU0OCwyLjY2MywxMi45MzRabTI2LjAyNi0yLjA2MmMtLjE0OS0uMzY2LS4zMTUtLjczMi0uNS0xLjA4NmwuMjg2LS4xNDZjLjE4NS4zNjMuMzU1LjczNi41MDcsMS4xMTFaTTMuNCwxMC42NjVsLS4zLS4xMjVjLjE1OC0uMzc0LjMzNC0uNzQ1LjUyNC0xLjFsLjI4NC4xNUMzLjcyNCw5LjkzNywzLjU1MiwxMC4zLDMuNCwxMC42NjVaTTQuNTEzLDguNTU3bC0uMjctLjE3NGMuMjItLjM0MS40NTgtLjY3Ni43MDctMWwuMjU0LjJDNC45NjEsNy45LDQuNzI4LDguMjI0LDQuNTEzLDguNTU3Wk01Ljk3Nyw2LjY3NmwtLjIzNS0uMjE5Yy4yNzYtLjMuNTY5LS41ODUuODctLjg1N2wuMjE1LjIzOUM2LjUzMyw2LjEsNi4yNDcsNi4zODYsNS45NzcsNi42NzZabTEuNzctMS42LS4xOTMtLjI1N2MuMzIzLS4yNDQuNjYyLS40NzcsMS4wMDctLjY5MmwuMTcuMjcyQzguMzk0LDQuNjE0LDguMDYzLDQuODQxLDcuNzQ3LDUuMDc5Wm0xNS43MDUtLjU1OC0uMDE4LS4wMTIuMTc1LS4yNy4wMTguMDExWm0tMS4wNDctLjYxNmMtLjM1LS4xODYtLjcxMy0uMzU4LTEuMDc4LS41MTJsLjEyNS0uM2MuMzc0LjE1OC43NDUuMzM0LDEuMS41MjRaTTkuNzY5LDMuODE1bC0uMTQ2LS4yODYuMDE4LS4wMDljLjM1Ni0uMTgxLjcyNC0uMzQ5LDEuMDkzLS41bC4xMjEuM2MtLjM2MS4xNDctLjcyLjMxMS0xLjA2OC40ODhabTEwLjQ0LS44MzhjLS4zNzctLjEyMi0uNzY0LS4yMjktMS4xNTEtLjMxN2wuMDcyLS4zMTNjLjQuMDkxLjc5Mi4yLDEuMTc4LjMyNVptLTguMjI5LS4wNi0uMDk0LS4zMDdjLjM4OC0uMTE5Ljc4Ni0uMjIzLDEuMTgyLS4zMDhsLjA2Ny4zMTRDMTIuNzQ3LDIuNywxMi4zNTksMi44LDExLjk4LDIuOTE3Wm01LjktLjQ3M2MtLjM5My0uMDU1LS43OTMtLjA5Mi0xLjE4OC0uMTEzbC4wMTYtLjMyMWMuNDA1LjAyMS44MTQuMDU5LDEuMjE2LjExNVptLTMuNTcyLS4wMjYtLjA0LS4zMTljLjQtLjA1LjgxMi0uMDgzLDEuMjE4LS4xbC4wMTIuMzIxQzE1LjEwNiwyLjMzNywxNC43MDUsMi4zNjksMTQuMzEyLDIuNDE4WlxcXCIgc3R5bGU9XFxcImZpbGw6Z3JheVxcXCIvPjxjaXJjbGUgY3g9XFxcIjE2XFxcIiBjeT1cXFwiMTUuOTk4XFxcIiByPVxcXCIxMC43MDhcXFwiIHN0eWxlPVxcXCJmaWxsOm5hdnlcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMC40MzVcXFwiIGN5PVxcXCIxMS41NjJcXFwiIHI9XFxcIjMuMTM2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PGNpcmNsZSBjeD1cXFwiMjYuNzA4XFxcIiBjeT1cXFwiNS4yOVxcXCIgcj1cXFwiMy4xMzdcXFwiIHN0eWxlPVxcXCJmaWxsOm5hdnlcXFwiLz48cGF0aCBkPVxcXCJNMTMuMSwyMS4zNTJ2LS43OUg5LjYyOVYxNC4zMjZoLS45djcuMDI2SDEzLjFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTcuOTE2LDIxLjM1MlYxNi4zaC0uOHYyLjc4NWMwLDEuMDMxLS41NCwxLjcwNi0xLjM3OCwxLjcwNkEuOTUuOTUsMCwwLDEsMTQuNywxOS44VjE2LjNoLS44djMuODE3YzAsLjgzOC42MjYsMS4zNzgsMS42MDksMS4zNzhhMS44NjMsMS44NjMsMCwwLDAsMS42ODctLjkyNXYuNzgxaC43MjNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjMuNzkxLDIxLjMzM3YtLjYwN2EuNjY0LjY2NCwwLDAsMS0uMTczLjAxOWMtLjI3OSwwLS40MzQtLjE0NS0uNDM0LS40VjE3LjUzNmMwLS45LS42NTUtMS4zNzgtMS45LTEuMzc4LTEuMjI0LDAtMS45NzYuNDcyLTIuMDI0LDEuNjM4aC44MWMuMDY3LS42MTcuNDM0LS45LDEuMTg1LS45LjcyMywwLDEuMTI4LjI3LDEuMTI4Ljc1MnYuMjEyYzAsLjMzNy0uMi40ODItLjgzOC41NTlhNS43NjMsNS43NjMsMCwwLDAtMS42MTkuMzA4LDEuMzI3LDEuMzI3LDAsMCwwLS44ODcsMS4zMTFjMCwuOTE2LjYzNiwxLjQ1NSwxLjY1OCwxLjQ1NWEyLjM2MywyLjM2MywwLDAsMCwxLjcxNS0uNzQyLjg1NS44NTUsMCwwLDAsLjgyOS42NjUsMS45NjcsMS45NjcsMCwwLDAsLjU0OS0uMDg3bS0xLjQwNy0xLjcyNWExLjM2NiwxLjM2NiwwLDAsMS0xLjUxMywxLjE4NWMtLjYyNiwwLS45OTMtLjIyMi0uOTkzLS43NzEsMC0uNTMuMzU3LS43NjEsMS4yMTQtLjg4N2E0LDQsMCwwLDAsMS4yOTEtLjI3OXYuNzUyXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCItLVwiLFxuXHRcdF0sXG5cdH0sXG5cdFwiTWFya2Rvd25cIjoge1xuXHRcdGNvbG91cjogXCIjNzU1ODM4XCIsXG5cdFx0aWNvbjogXCI8cmVjdCB4PVxcXCIyLjVcXFwiIHk9XFxcIjcuOTU1XFxcIiB3aWR0aD1cXFwiMjdcXFwiIGhlaWdodD1cXFwiMTYuMDkxXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojNzU1ODM4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI1LjkwOSAyMC42MzYgNS45MDkgMTEuMzY0IDguNjM2IDExLjM2NCAxMS4zNjQgMTQuNzczIDE0LjA5MSAxMS4zNjQgMTYuODE4IDExLjM2NCAxNi44MTggMjAuNjM2IDE0LjA5MSAyMC42MzYgMTQuMDkxIDE1LjMxOCAxMS4zNjQgMTguNzI3IDguNjM2IDE1LjMxOCA4LjYzNiAyMC42MzYgNS45MDkgMjAuNjM2XFxcIiBzdHlsZT1cXFwiZmlsbDojNzU1ODM4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMi45NTUgMjAuNjM2IDE4Ljg2NCAxNi4xMzYgMjEuNTkxIDE2LjEzNiAyMS41OTEgMTEuMzY0IDI0LjMxOCAxMS4zNjQgMjQuMzE4IDE2LjEzNiAyNy4wNDUgMTYuMTM2IDIyLjk1NSAyMC42MzZcXFwiIHN0eWxlPVxcXCJmaWxsOiM3NTU4MzhcXFwiLz5cIixcblx0fSxcblx0XCJNQVRMQUJcIjoge1xuXHRcdGNvbG91cjogXCIjZWY2YzNlXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxNi44MDNcXFwiIHkxPVxcXCIxNi42MzFcXFwiIHgyPVxcXCIxNS4wMTNcXFwiIHkyPVxcXCIyMi40MTFcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIDMyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzUxMlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yM1xcXCIgc3RvcC1jb2xvcj1cXFwiIzUyM1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zNlxcXCIgc3RvcC1jb2xvcj1cXFwiIzUzNFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41MVxcXCIgc3RvcC1jb2xvcj1cXFwiIzY0NVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42NlxcXCIgc3RvcC1jb2xvcj1cXFwiIzU2OFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44NFxcXCIgc3RvcC1jb2xvcj1cXFwiIzI5ZFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiMjkuNzFcXFwiIHkxPVxcXCIxOC45ODNcXFwiIHgyPVxcXCIxMS43MVxcXCIgeTI9XFxcIjE0LjU2M1xcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMC4wODFcXFwiIHN0b3AtY29sb3I9XFxcIiNjMzNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMTg5XFxcIiBzdG9wLWNvbG9yPVxcXCIjZGU1MjM5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjMxM1xcXCIgc3RvcC1jb2xvcj1cXFwiI2YwNmUzZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40MjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmYTgwNDJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZlODY0M1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41OFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZhN2Y0MlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42OTZcXFwiIHN0b3AtY29sb3I9XFxcIiNlZjZjM2VcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuODMzXFxcIiBzdG9wLWNvbG9yPVxcXCIjZGM0YzM3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjkxNlxcXCIgc3RvcC1jb2xvcj1cXFwiI2NmMzYzM1xcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfbWF0bGFiPC90aXRsZT48cGF0aCBkPVxcXCJNMiwxNy41NWw3Ljk3LTMuMjJhMjAuNywyMC43LDAsMCwxLDIuNzItMi45NWMuNjYtLjM1LDEuOS0uMTYsNC4xNy0yLjk4LDIuMi0yLjc1LDIuOS01LjEsMy45My01LjEsMS42MywwLDIuODMsMy41Miw0LjY1LDguODVBMTE1LjYyOSwxMTUuNjI5LDAsMCwwLDMwLDI0LjEyYy0xLjktMS43Ny0zLjUyLTMuNjgtNS4zNy0zLjYzLTEuNzIuMDQtMy42MywyLjA4LTUuNzIsNC43LTEuNjYsMi4xLTMuODYsMy41NC00LjcyLDMuNTEsMCwwLTIuMjItNi4yOC00LjA4LTcuM2EyLjY0MSwyLjY0MSwwLDAsMC0yLjM5LjJMMiwxNy41NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM0OWRcXFwiLz48cGF0aCBkPVxcXCJNMTkuOCw0LjAyYy0uNjcuOS0xLjQ4LDIuNTUtMi45NCw0LjM4LTIuMjcsMi44Mi0zLjUsMi42My00LjE3LDIuOThhMTkuNjc0LDE5LjY3NCwwLDAsMC0yLjcyLDIuOTVsMy4zLDIuNDFjMi44LTMuODIsNC4zLTcuOTYsNS40Ny0xMC42NEExMy41NzksMTMuNTc5LDAsMCwxLDE5LjgsNC4wMlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMjAuOCwzLjNjLTIuMTgsMC0zLjY3LDExLjQ4LTExLjcyLDE3Ljg5LDIuMjYtLjM3LDQuMjIsNS4yNCw1LjEyLDcuNTEsNC0uNjgsNy4yLTguMzMsMTAuNDMtOC4yMSwxLjg1LjA3LDMuNDcsMS44Niw1LjM3LDMuNjNDMjUuNjYsMTUsMjMuNjMsMy4zLDIwLjgsMy4zWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPlwiLFxuXHRcdGlubGluZUNvbW1lbnQ6IFtcblx0XHRcdFwiJVwiLFxuXHRcdF0sXG5cdH0sXG5cdFwiTUFYU2NyaXB0XCI6IHtcblx0XHRjb2xvdXI6IFwiIzAwNjk2YlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE0LjQsNy41NjgsMjAuMjEyLDJINy4yNzNMNC44NDgsNy41MzZsOS41NTcuMDMyWk00Ljg0OCw3LjUzNmw2Ljg0NCwyLjZMMTQuNCw3LjU2OG0tLjAxMywzLjYyMi0yLjctMS4wNTNMNS4yNjMsMTYuMWw2LjI4Niw1LjgyMywyLjgwOC0xLjFMMTQuNCw3LjU2OG0wLDAsMTIuOCw4LjM3NkwyMC4yMTIsMk0yNy4yLDE1Ljk0NCwxNC4zOTEsMTEuMTltLS4wMzUsOS42MzYtLjAzMiwzLjY4NU0yMC4yMjgsMzBsLTguNjc5LTguMDczTDQuOCwyNC40NjQsNy4yNTcsMzBabTAsMEwyNy4yLDE1Ljk0NCwxNC4zMjUsMjQuNTEyTTI3LjIsMTUuOTQ0LDE0LjM1NywyMC44MjZcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMxZDFkMWI7c3Ryb2tlLW1pdGVybGltaXQ6MjIuOTI1NTg0NzkzMDkwODI7c3Ryb2tlLXdpZHRoOjAuMDI4MzQ5OTk5MzM4Mzg4NDQzcHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE0LjM5MSAxMS4xOSAyNy4yIDE1Ljk0NCAxNC40MDUgNy41NjggMTQuMzkxIDExLjE5IDE0LjM5MSAxMS4xOVxcXCIgc3R5bGU9XFxcImZpbGw6IzE4MWIxNztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjcuMiAxNS45NDQgMTQuMzU3IDIwLjgyNiAxNC4zMjUgMjQuNTA5IDE0LjMyNiAyNC41MTEgMjcuMiAxNS45NDQgMjcuMiAxNS45NDRcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTFkMWE7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE0LjQwNSA3LjU2OCAyNy4yIDE1Ljk0NCAyMC4yMTIgMiAxNC40MDUgNy41NjggMTQuNDA1IDcuNTY4XFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1ZjVlO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyNy4yIDE1Ljk0NCAxNC4zMjYgMjQuNTExIDIwLjIyOCAzMCAyNy4yIDE1Ljk0NCAyNy4yIDE1Ljk0NFxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNDI0MjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTQuMzU3IDIwLjgyNiAyNy4yIDE1Ljk0NCAxNC4zOTEgMTEuMTkgMTQuMzU3IDIwLjgyNiAxNC4zNTcgMjAuODI2XFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1MTUyO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNC4zNTcgMjAuODI2IDE0LjM5MSAxMS4xOSAxMS42OTIgMTAuMTM3IDUuMjYzIDE2LjEwNCAxMS41NDkgMjEuOTI3IDE0LjM1NyAyMC44MjYgMTQuMzU3IDIwLjgyNlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNjk2YjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTEuNjkyIDEwLjEzNyAxNC4zOTEgMTEuMTkgMTQuNDA1IDcuNTY4IDExLjY5MiAxMC4xMzcgMTEuNjkyIDEwLjEzN1xcXCIgc3R5bGU9XFxcImZpbGw6IzFiMjcyNTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTQuMzU3IDIwLjgyNiAxMS41NDkgMjEuOTI3IDE0LjMyNSAyNC41MDkgMTQuMzU3IDIwLjgyNiAxNC4zNTcgMjAuODI2XFxcIiBzdHlsZT1cXFwiZmlsbDojMWMyNjI0O2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNC4zMjUgMjQuNTEyIDQuOCAyNC40NjQgNy4yNTcgMzAgMjAuMjI4IDMwIDE0LjMyNiAyNC41MTEgMTQuMzI1IDI0LjUxMiAxNC4zMjUgMjQuNTEyXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA2NDY2O2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI0Ljg0OCA3LjUzNiAxNC40MDUgNy41NjggMjAuMjEyIDIgNy4yNzMgMiA0Ljg0OCA3LjUzNiA0Ljg0OCA3LjUzNlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNzY3YTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTQuNDA1IDcuNTY4IDQuODQ4IDcuNTM2IDExLjY5MiAxMC4xMzcgMTQuNDA1IDcuNTY4IDE0LjQwNSA3LjU2OFxcXCIgc3R5bGU9XFxcImZpbGw6IzFlMzkzODtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTEuNTQ5IDIxLjkyNyA0LjggMjQuNDY0IDE0LjMyNSAyNC41MTIgMTQuMzI1IDI0LjUwOSAxMS41NDkgMjEuOTI3IDExLjU0OSAyMS45MjdcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMDMwMmU7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz5cIixcblx0fSxcblx0XCJNRUxcIjoge1xuXHRcdGNvbG91cjogXCIjMDZhMGEyXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItNjExLjM0OFxcXCIgeTE9XFxcIi02Ny40ODhcXFwiIHgyPVxcXCItNjAwLjI3MlxcXCIgeTI9XFxcIi02NS4zMzVcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMS40MzcsIDAsIDAsIC0xLjQzNywgODk0LjQxNywgLTgyLjI5MilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMwZjYwNjdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNVxcXCIgc3RvcC1jb2xvcj1cXFwiIzA1YWJhY1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzU4YmVjNFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiLTYwMy41OTRcXFwiIHkxPVxcXCItNzcuNjk5XFxcIiB4Mj1cXFwiLTYwMi4wMTFcXFwiIHkyPVxcXCItNTkuNjA0XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEuNDM3LCAwLCAwLCAtMS40MzcsIDg5NC40MTcsIC04Mi4yOTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMTE3YzgzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiMyMWI1YjVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM3ZWQ0ZDRcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIi02MTIuNzU3XFxcIiB5MT1cXFwiLTU5LjkwNlxcXCIgeDI9XFxcIi02MTYuOTM0XFxcIiB5Mj1cXFwiLTcyLjc2XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEuNDM3LCAwLCAwLCAtMS40MzcsIDg5NC40MTcsIC04Mi4yOTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjOWFjY2QzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiM3MmFlYjNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzMTdkN2ZcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZFxcXCIgeDE9XFxcIi02MjEuODUxXFxcIiB5MT1cXFwiLTc0LjU3OVxcXCIgeDI9XFxcIi02MTQuODRcXFwiIHkyPVxcXCItNzIuMzAxXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEuNDM3LCAwLCAwLCAtMS40MzcsIDg5NC40MTcsIC04Mi4yOTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMjE2MjZlXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiMxNTdjODRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMwM2EzYTVcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZVxcXCIgeDE9XFxcIi02MTYuMzY5XFxcIiB5MT1cXFwiLTY0LjQ2OVxcXCIgeDI9XFxcIi02MjUuMzRcXFwiIHkyPVxcXCItNzIuODM1XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEuNDM3LCAwLCAwLCAtMS40MzcsIDg5NC40MTcsIC04Mi4yOTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMGI3YzgxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiMwNjhkOTBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMxNmIxYjFcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZlxcXCIgeDE9XFxcIi02MDguMDcyXFxcIiB5MT1cXFwiLTc0LjY3OFxcXCIgeDI9XFxcIi02MDMuNDg4XFxcIiB5Mj1cXFwiLTcwLjk2NlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLjQzNywgMCwgMCwgLTEuNDM3LCA4OTQuNDE3LCAtODIuMjkyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzBhOGE4ZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41XFxcIiBzdG9wLWNvbG9yPVxcXCIjMGY3YzgyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMWE1OTY0XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImdcXFwiIHgxPVxcXCItNjAxLjEzNFxcXCIgeTE9XFxcIi03MC4xMTNcXFwiIHgyPVxcXCItNjA2LjAwOFxcXCIgeTI9XFxcIi02Ny4wNjdcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMS40MzcsIDAsIDAsIC0xLjQzNywgODk0LjQxNywgLTgyLjI5MilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMyNTZhNzdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNVxcXCIgc3RvcC1jb2xvcj1cXFwiIzBkOTQ5OVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzA2YTBhMlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfbWF5YTwvdGl0bGU+PHBhdGggZD1cXFwiTTIxLjYsMy40NjJIMzBMMTguNzY3LDI0LjIxMXMtMS44OTMtNS41LTIuNzA2LTcuNDU5XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTIzLjY2OSwyOS4xMThIMzBWMy40NjJDMjkuOTk1LDE2Ljg2OSwyNC4zNiwyOS4xMTgsMjMuNjY5LDI5LjExOFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMTguNzY3LDI0LjIxMUgxMy41NDFMMiwzLjQ2MmMyLjA0Ny0uMjYsNi4xMzUtLjYxMSw4LjE2LS43NzZaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTguNjkzLDE2LjAxOUM2Ljk2LDIyLjg2NiwxLjk5NSwyOS4zMiwyLDI5LjMxNGM1Ljc1MiwwLDYuOTkxLS44MzUsNi45OTEtMS4yNzZWMTYuNTRDOC44OSwxNi4zNyw4Ljc5NCwxNi4xOTQsOC42OTMsMTYuMDE5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNkKVxcXCIvPjxwYXRoIGQ9XFxcIk0yLDMuNDYyVjI5LjMxNGMzLjE0Ny01LjIsNC45ODEtOC42LDYuNi0xMy40NUM0LjYsOC43OTQsMiwzLjQ2MiwyLDMuNDYyWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNlKVxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjIzLjIzMyAyOC4xMDIgMjMuNjY5IDI5LjExOCAyMy42NjkgMTUuNjQ3IDIzLjIzMyAxNi4zNzVcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZilcXFwiLz48cGF0aCBkPVxcXCJNMjMuNjQ3LDE1LjY3M3YxMy40bC4wMTYuMDQzYy40NTIsMCw2LjMzMi0xNC41LDYuMzMyLTI1LjY1NkMyOS45OTUsMy40NjIsMjYuNDA2LDEwLjk0NywyMy42NDcsMTUuNjczWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNnKVxcXCIvPlwiLFxuXHR9LFxuXHRcIk1vbmdvREJcIjoge1xuXHRcdGNvbG91cjogXCIjNDFhMjQ3XCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItNjQ1LjczMlxcXCIgeTE9XFxcIjgzOS4xODhcXFwiIHgyPVxcXCItNjU0LjU5XFxcIiB5Mj1cXFwiODM5LjI1XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KC0wLjk3NywgLTAuMzIzLCAtMC4yOSwgMC44NzcsIC0zNzUuOTQ0LCAtOTI4LjI4NylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjAuMjMxXFxcIiBzdG9wLWNvbG9yPVxcXCIjOTk5ODc1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU2M1xcXCIgc3RvcC1jb2xvcj1cXFwiIzliOTk3N1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42ODNcXFwiIHN0b3AtY29sb3I9XFxcIiNhMDlmN2VcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzY4XFxcIiBzdG9wLWNvbG9yPVxcXCIjYTlhODg5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjgzN1xcXCIgc3RvcC1jb2xvcj1cXFwiI2I3YjY5YVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44OTZcXFwiIHN0b3AtY29sb3I9XFxcIiNjOWM3YjBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTQ4XFxcIiBzdG9wLWNvbG9yPVxcXCIjZGVkZGNiXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5NFxcXCIgc3RvcC1jb2xvcj1cXFwiI2Y4ZjZlYlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZiZjllZlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiLTY0NC4yODdcXFwiIHkxPVxcXCI4MjMuNDA1XFxcIiB4Mj1cXFwiLTY1Ny4wMjhcXFwiIHkyPVxcXCI4NDUuNDc2XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KC0wLjk3NywgLTAuMzIzLCAtMC4yOSwgMC44NzcsIC0zNzUuOTQ0LCAtOTI4LjI4NylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM0OGE1NDdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzZjkxNDNcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIi02NDMuMzg2XFxcIiB5MT1cXFwiODM5LjQ4NVxcXCIgeDI9XFxcIi02NTIuNDE4XFxcIiB5Mj1cXFwiODMzLjQxN1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgtMC45NzcsIC0wLjMyMywgLTAuMjksIDAuODc3LCAtMzc1Ljk0NCwgLTkyOC4yODcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNDFhMjQ3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjM1MlxcXCIgc3RvcC1jb2xvcj1cXFwiIzRiYTc0YlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45NTZcXFwiIHN0b3AtY29sb3I9XFxcIiM2N2I1NTRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM2OWI2NTVcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX21vbmdvPC90aXRsZT48cGF0aCBkPVxcXCJNMTYuNjIsMzBsLS43NTEtLjI0OXMuMS0zLjgtMS4yNzUtNC4wNjdjLS45LTEuMDQ4LjEzMy00NC43NDEsMy40MjMtLjE0OWEyLjcxMiwyLjcxMiwwLDAsMC0xLjMzMywxLjUyM0ExNC4xLDE0LjEsMCwwLDAsMTYuNjIsMzBaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTE3LjAyNiwyNi4zMjlhMTMuMjIzLDEzLjIyMywwLDAsMCw1LTEzLjIyNUMyMC41NTYsNi42MTksMTcuMDc1LDQuNDg3LDE2LjcsMy42NzNhOS43OTIsOS43OTIsMCwwLDEtLjgyNS0xLjZsLjI3NywxOC4wNjlTMTUuNTc4LDI1LjY2NCwxNy4wMjYsMjYuMzI5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNS40ODcsMjYuNTY5UzkuMzY2LDIyLjQsOS43MiwxNS4wMjVBMTUuNTQsMTUuNTQsMCwwLDEsMTUuMjM5LDMuMzc3LDEuNzI1LDEuNzI1LDAsMCwwLDE1Ljg0NiwyYy4zODEuODIuMzE5LDEyLjI0My4zNTksMTMuNTc5QzE2LjM2LDIwLjc3NiwxNS45MTYsMjUuNTg4LDE1LjQ4NywyNi41NjlaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+XCIsXG5cdH0sXG5cdFwibmdpbnhcIjoge1xuXHRcdGNvbG91cjogXCIjMDE5NjM5XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTUuOTQ4LDJoLjA2NWExMC40MTgsMTAuNDE4LDAsMCwxLC45NzIuNTI4UTIyLjQxNCw1LjY1LDI3Ljg0Myw4Ljc3NGEuNzkyLjc5MiwwLDAsMSwuNDE0Ljc4OGMtLjAwOCw0LjM4OSwwLDguNzc3LS4wMDUsMTMuMTY0YS44MTMuODEzLDAsMCwxLS4zNTYuNTA3cS01Ljc3MywzLjMyNC0xMS41NDcsNi42NDRhLjU4Ny41ODcsMCwwLDEtLjY1Ny4wMzdROS45MTIsMjYuNiw0LjE0MywyMy4yNzRhLjcuNywwLDAsMS0uNC0uNjY2cTAtNi41ODIsMC0xMy4xNjNhLjY5My42OTMsMCwwLDEsLjM4Ny0uNjdROS41NTIsNS42NTcsMTQuOTc0LDIuNTM1Yy4zMjItLjE4NC42MzgtLjM3OS45NzQtLjUzNVxcXCIgc3R5bGU9XFxcImZpbGw6IzAxOTYzOVxcXCIvPjxwYXRoIGQ9XFxcIk04Ljc2NywxMC41MzhxMCw1LjQyOSwwLDEwLjg1OWExLjUwOSwxLjUwOSwwLDAsMCwuNDI3LDEuMDg3LDEuNjQ3LDEuNjQ3LDAsMCwwLDIuMDYuMjA2LDEuNTY0LDEuNTY0LDAsMCwwLC42ODUtMS4yOTNjMC0yLjYyLS4wMDUtNS4yNCwwLTcuODZxMy41ODMsNC4yOSw3LjE4MSw4LjU2OGEyLjgzMywyLjgzMywwLDAsMCwyLjYuNzgyLDEuNTYxLDEuNTYxLDAsMCwwLDEuMjUxLTEuMzcxcS4wMDgtNS41NDEsMC0xMS4wODFhMS41ODIsMS41ODIsMCwwLDAtMy4xNTIsMGMwLDIuNjYyLS4wMTYsNS4zMjEsMCw3Ljk4Mi0yLjM0Ni0yLjc2Ni00LjY2My01LjU1Ni03LTguMzMyQTIuODE3LDIuODE3LDAsMCwwLDEwLjE3LDkuMDMzLDEuNTc5LDEuNTc5LDAsMCwwLDguNzY3LDEwLjUzOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0fSxcblx0XCJOaW1cIjoge1xuXHRcdGNvbG91cjogXCIjZmZlOTUzXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTYuMTExLDYuNDA1cy0xLjA3My44NDctMi4xNjcsMS42OWExNS4zNjEsMTUuMzYxLDAsMCwwLTQuNTI3LjY1MWMtMS4xLS43LTIuMDctMS40NjktMi4wNy0xLjQ2OVM2LjUyLDguNyw2LDkuNTM1YTExLjM4MiwxMS4zODIsMCwwLDAtMi4yMzYsMS40ODJDMi45NjEsMTAuNywyLjAzLDEwLjMxLDIsMTAuM2MxLjA2MywyLjE0NSwxLjc3OCw0LjI5MiwzLjcyMiw1LjU4MywzLjEtNC44ODksMTcuNDgtNC40MzksMjAuNjM5LS4wMjhDMjguNCwxNC43ODcsMjkuMiwxMi41LDMwLDEwLjM4Yy0uMDg4LjAyOS0xLjE4MS4zOTUtMS44ODkuNjY1YTExLjQ4OSwxMS40ODksMCwwLDAtMS45ODYtMS41MWMtLjUzNy0uOTg0LTEuMzE5LTIuMzEzLTEuMzE5LTIuMzEzcy0uOTI3LjY4OS0yLDEuNDRhMjEuMjY1LDIxLjI2NSwwLDAsMC00LjY4MS0uNTEyYy0xLS44MjYtMi4wMTQtMS43NDYtMi4wMTQtMS43NDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjNkNDAwXFxcIi8+PHBhdGggZD1cXFwiTTMuMSwxNC44NTRsMi41NTQsNi4xODVjNC40MzUsNS44NSwxNS43NTksNi4yNTcsMjAuNy4xMTMsMS4xNjgtMi42MzMsMi43NDUtNi4zMzMsMi43NDUtNi4zMzNhMTMuMzc5LDEzLjM3OSwwLDAsMS00LjYsMy44NjksMTIuMjE3LDEyLjIxNywwLDAsMS0yLjk4My43OTNsLTUuNDY1LTIuODMyLTUuNSwyLjc3NWExNS42NzksMTUuNjc5LDAsMCwxLTIuOTgzLS43NjRBMTQuMDc2LDE0LjA3NiwwLDAsMSwzLjEsMTQuODU0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZTk1M1xcXCIvPlwiLFxuXHRcdGlubGluZUNvbW1lbnQ6IFtcblx0XHRcdFwiI1wiLFxuXHRcdF0sXG5cdH0sXG5cdFwiTml4XCI6IHtcblx0XHRjb2xvdXI6IFwiIzUyNzdjM1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTEzLDExLjExNSw2LjE4MywyMy43Niw0LjU5LDIwLjg3bDEuODM5LTMuMzg3LTMuNjUxLS4wMUwyLDE2LjAyOWwuOC0xLjQ3Nyw1LjIuMDE4LDEuODY4LTMuNDQ3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzdlYmFlNDtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xMy41MjcsMjEuMjIzaDEzLjY0bC0xLjU0MSwyLjkyMi0zLjY1OC0uMDExLDEuODE3LDMuMzg5LS43NzksMS40NDktMS41OTMsMC0yLjU4NC00LjgyNS0zLjcyMi0uMDA4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzdlYmFlNDtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0yMS40NjcsMTUuNjgyLDE0LjY0NywzLjAzN2wzLjEzNC0uMDMyTDE5LjYsNi40bDEuODM0LTMuMzc5aDEuNTU3TDIzLjc4Niw0LjUsMjEuMTc0LDkuMzA3bDEuODU0LDMuNDU1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzdlYmFlNDtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xMC41NDIsMTYuMzI0bDYuODIxLDEyLjY0NUwxNC4yMjksMjlsLTEuODIxLTMuNC0xLjgzNCwzLjM4SDkuMDE2bC0uOC0xLjQ3NkwxMC44MzEsMjIuNyw4Ljk3NiwxOS4yNDNaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTI3N2MzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE4LjQ2NCwxMC43NTFINC44MjNMNi4zNjUsNy44MjlsMy42NTguMDExTDguMjA3LDQuNDUxLDguOTg2LDNsMS41OTIsMCwyLjU4NCw0LjgyNSwzLjcyMi4wMDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTI3N2MzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE5LDIwLjg4OCwyNS44MTcsOC4yNDRsMS41OTMsMi44OUwyNS41NzEsMTQuNTJsMy42NTEuMDFMMzAsMTUuOTc5bC0uOCwxLjQ3Ny01LjItLjAxOC0xLjg2OCwzLjQ0N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM1Mjc3YzM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz5cIixcblx0fSxcblx0XCJOU0lTXCI6IHtcblx0XHRjb2xvdXI6IFwiI2E0MmQyNlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTI3LjQzNSwxNi4wMzcsMjIuMDEyLDIxLjQ2bDUuNDIzLDUuNDIzXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1NzdiXFxcIi8+PHBhdGggZD1cXFwiTTI2Ljg4NCwxNS41SDE2LjA0OGw1LjQyMyw1LjQyM1xcXCIgc3R5bGU9XFxcImZpbGw6IzAwNzlhYVxcXCIvPjxwYXRoIGQ9XFxcIk0yNi44ODQsMTQuNzEyLDIxLjQ2MSw5LjI4OWwtNS40MjMsNS40MjNcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDk2ZDNcXFwiLz48cGF0aCBkPVxcXCJNMjAuNTI4LDkuMTMxSDkuNjgzbDUuNDIzLDUuNDIzTTI3LjQzNSwzLjMyNSwyMi4wMTIsOC43NDhsNS40MjMsNS40MjNcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMWIwZjBcXFwiLz48cGF0aCBkPVxcXCJNMjAuNTI4LDguMzU2LDE1LjEwNSwyLjkzMyw5LjY4Myw4LjM1NlxcXCIgc3R5bGU9XFxcImZpbGw6IzI3YmNmM1xcXCIvPjxwYXRoIGQ9XFxcIk0xNC4xNzIsMi43NzVIMy4zMjdMOC43NDksOC4yXFxcIiBzdHlsZT1cXFwiZmlsbDojNGZjOWY1XFxcIi8+PHBhdGggZD1cXFwiTTQuNTY4LDE1Ljk2Myw5Ljk5MSwxMC41NCw0LjU2OCw1LjExN1xcXCIgc3R5bGU9XFxcImZpbGw6Izc5MjAxYlxcXCIvPjxwYXRoIGQ9XFxcIk0xMC41NDEsMTEuMDkxLDUuMTE5LDE2LjUxM0gxNS45NjRcXFwiIHN0eWxlPVxcXCJmaWxsOiNhNDJkMjZcXFwiLz48cGF0aCBkPVxcXCJNNS4xMTksMTcuMjg4bDUuNDIzLDUuNDIzLDUuNDIzLTUuNDIzXFxcIiBzdHlsZT1cXFwiZmlsbDojY2MzODJmXFxcIi8+PHBhdGggZD1cXFwiTTQuNTY4LDE3LjgyOVYyOC42NzVsNS40MjMtNS40MjNMOC40LDIxLjY2NW0xMy45MTYsMS4yTDE2LjksMTcuNDQ3bC01LjQyMyw1LjQyM1xcXCIgc3R5bGU9XFxcImZpbGw6I2YwNDUzZlxcXCIvPjxwYXRoIGQ9XFxcIk0xMS40NzUsMjMuNjQ0LDE2LjksMjkuMDY3bDUuNDIzLTUuNDIzXFxcIiBzdHlsZT1cXFwiZmlsbDojZjI2MjVkXFxcIi8+PHBhdGggZD1cXFwiTTE3Ljg0LDI5LjIyNUgyOC42ODVMMjMuMjYzLDIzLjhcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNDdmN2RcXFwiLz48cGF0aCBkPVxcXCJNMjkuODg5LDI5LjMzN2wtMS42OC0xLjY4VjIuMzkyYS4zNzQuMzc0LDAsMCwwLS4yNDMtLjM1NUEuMjYzLjI2MywwLDAsMCwyNy44MjcsMmEuMzU5LjM1OSwwLDAsMC0uMjcxLjExMkwyMS40NzEsOC4yLDE1LjM4NSwyLjExMiwxNS4zLDIuMDM3aC0uMDM3QS4zMDcuMzA3LDAsMCwwLDE1LjEwNSwySDIuNGEuNDM0LjQzNCwwLDAsMC0uMjg5LjExMkEuMzguMzgsMCwwLDAsMiwyLjM5MmEuMzU5LjM1OSwwLDAsMCwuMTEyLjI3MWwxLjY4LDEuNjhWMjkuNjE3YS4zNzQuMzc0LDAsMCwwLC4yNDMuMzU1QS4zODcuMzg3LDAsMCwwLDQuMTg1LDMwYS4zNTkuMzU5LDAsMCwwLC4yNzEtLjExMkwxMC41NDEsMjMuOGw2LjA4NSw2LjA4NS4wODQuMDc1aC4wMzdBLjI1NC4yNTQsMCwwLDAsMTYuOSwzMEgyOS42MDlhLjM5NS4zOTUsMCwwLDAsLjI4LS42NjNaTTI3LjQzNSwzLjMyNVYxNC4xNzFMMjIuMDEyLDguNzQ4bDUuNDIzLTUuNDIzWk05Ljk5MSwxMC41NCw0LjU2OCwxNS45NjNWNS4xMTdMOS45OTEsMTAuNTRaTTkuNjgzLDkuMTMxSDIwLjUyOGwtNS40MjMsNS40MjNMOS42ODMsOS4xMzFabS44NTksMS45Niw1LjQyMyw1LjQyM0g1LjExOWw1LjQyMy01LjQyM1pNMTYuOSwxNy40NDdsNS40MjMsNS40MjNIMTEuNDc1TDE2LjksMTcuNDQ3Wk0xNi4wNDgsMTUuNUgyNi44OTNsLTUuNDIzLDUuNDIzTDE2LjA0OCwxNS41Wm01Ljk2NCw1Ljk2NCw1LjQyMy01LjQyM1YyNi44ODNMMjIuMDEyLDIxLjQ2Wm00Ljg3Mi02Ljc0OEgxNi4wNDhsNS40MjMtNS40MjMsNS40MTMsNS40MjNaTTIwLjUyOCw4LjM1Nkg5LjY4M2w1LjQyMy01LjQyMyw1LjQyMyw1LjQyM1pNMy4zMjcsMi43NzVIMTQuMTcyTDguNzQ5LDguMlptMS4yNDEsMjUuOVYxNy44MjlMOC40LDIxLjY2NWwxLjU4NywxLjU4N0w0LjU2OCwyOC42NzVabS41NTEtMTEuMzg3SDE1Ljk2NGwtNS40MjMsNS40MjNMNS4xMTksMTcuMjg4Wk0xNi45LDI5LjA2N2wtNS40MjMtNS40MjNIMjIuMzJMMTYuOSwyOS4wNjdabS45NDMuMTU5TDIzLjI2MywyMy44bDUuNDIzLDUuNDIzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ2NDA0OVxcXCIvPlwiLFxuXHR9LFxuXHRcIk9iamVjdCBQYXNjYWxcIjoge1xuXHRcdGNvbG91cjogXCIjRkY2MzQ0XCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxNlxcXCIgeTE9XFxcIi0wLjQ0M1xcXCIgeDI9XFxcIjE2XFxcIiB5Mj1cXFwiMjIuMDQyXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwLjAyMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmMGMxNVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzlhMGMwZlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfZGVscGhpPC90aXRsZT48Y2lyY2xlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjE2XFxcIiByPVxcXCIxNFxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy41NDUsMTYuMjQzSDQuOTI0YS45MTQuOTE0LDAsMCwwLTEuMDkyLjgycS4wMzMuNDI5LjEuODQ5YTEyLjQsMTIuNCwwLDAsMCwyNC41MzIsMHEuMDc1LS41LjEwOC0xLjAyMUMyOC40NzgsMTYuNTIzLDI4LjIxMSwxNi4yMDcsMjcuNTQ1LDE2LjI0M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjY0NDNcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCIxOC40OCAxMS42NCAyMy43MDcgNy4yNjYgMTkuNzg3IDUuODggMTYgMTEuMDUzXFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiMTUuNjggMTEuMDI2IDE4LjY0IDUuODggMTQuODUzIDUuODggMTMuMzA3IDExLjI5M1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjEzLjA0IDExLjM3MyAxMy42IDYuNzA2IDEwLjU4NyA3Ljk2IDExLjAxMyAxMi43NlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjEwLjc0NyAxMyA5Ljc4NyA4Ljc2IDcuNzA3IDEwLjg0IDkuNjUzIDE0LjY4XFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiOS4zODcgMTUuMDUzIDcuNDkzIDEyLjM3NiA2LjY0IDE0LjQ2NiA5LjA0IDE2LjUxN1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjkuMDQgMTYuNzU3IDYuNjQgMTUuMjEzIDYuNDggMTcuNCA5LjIgMTguMzMzXFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiOS4yMjcgMTguODQ2IDYuNjQgMTguMDQgNy4yMjcgMTkuOCA5LjU0NyAxOS44XFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiOS43MDcgMjAuMDkzIDcuNzA3IDIwLjM4NiA4LjYyNyAyMS43NDYgMTAuMjY3IDIxXFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTIwLjAyMywxMy4wODlhNi42MSw2LjYxLDAsMCwwLTQuNTMtMkE2LjI5Myw2LjI5MywwLDAsMCwxMS4zLDIyLjA3bDQuOTQxLjEyOS0yLjA4LTQuMTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWVlO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE2LjUsMjIuMzY2bC01LjI2Ny0uMTM4LS4wNDQtLjAzOWE2LjQ1Myw2LjQ1MywwLDAsMSw0LjMtMTEuMjY0LDYuNzg3LDYuNzg3LDAsMCwxLDQuNjQzLDIuMDVsLjEyMy4xMjMtNS45LDQuOTgyWm0tNS4xNC0uNDU1LDQuNjE2LjEyMUwxMy45NjEsMThsNS44MjUtNC45MTlhNi40Myw2LjQzLDAsMCwwLTQuMjkyLTEuODM1LDYuMTMzLDYuMTMzLDAsMCwwLTQuMTMxLDEwLjY2N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZTRiMmVcXFwiLz48cGF0aCBkPVxcXCJNMTIuMDEzLDIwLjQ5M2MtNC4xNzMtNS44MTMsMi4xMDktOC4xNzIsMi40NzgtOC40NTMuNDUxLS4zNDQtNy41OSwxLjc4NS0zLjIyNiw4Ljg4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2YwNGUzMTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjAuNzIgMTIuNiAxMy41MiAxNy41NjcgMTMuNzMzIDE4LjU3MyAyMS40NjcgMTcuMDI2IDIwLjcyIDEyLjZcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZWU7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTMuNjEsMTguNzYxLDEzLjM0MSwxNy41bDcuNDk1LTUuMTcuODE0LDQuODI4Wm0uMDg5LTEuMTIzLjE1OC43NDdMMjEuMjgzLDE2LjksMjAuNiwxMi44NzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWU0YjJlXFxcIi8+PHBhdGggZD1cXFwiTTE1LjcyMywyMS4zMTljLTMuOTMtLjY2OC00LjI4My40MjgtNC4yODMuNDI4TDEwLjI2NywyNC40NHMxLjEyLS45MDcsNS40OTMsMGwuNzYtMS4zODhaXFxcIiBzdHlsZT1cXFwiZmlsbDojZGQwYzEzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE0LjEyMiwyMS42Yy0uMDItLjItMS4xLS4zMTktMS42NzctLjEyMy0uNzMyLjI0OS0xLjIxOSwxLjE0Mi0xLjA0NSwxLjIxM2ExLjk3NSwxLjk3NSwwLDAsMSwxLjEyNS0uOTg2QzEzLjQ0NywyMS40OTMsMTQuMTQyLDIxLjgsMTQuMTIyLDIxLjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmY2ZTRmO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE1LjUyLDE4LjYwNmExMS4xLDExLjEsMCwwLDAsMS41NDcsMS40ODcsNi45LDYuOSwwLDAsMSwyLjcyLDQuMTA3Yy0uMTA3LDEuMDY3LTEuOTczLDEuNzYtMS45NzMsMS43NmwtMy4zMDctNy4xOTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWVlO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE3LjczLDI2LjE2MWwtMy40NTctNy41MjEsMS4zMi0uMjA4LjA1Ny4wODFhMTAuODY5LDEwLjg2OSwwLDAsMCwxLjUxMiwxLjQ1MSw3LDcsMCwwLDEsMi43ODIsNC4yMDdsMCwuMDIyLDAsLjAyMmMtLjExNSwxLjE1My0yLDEuODY0LTIuMDc3LDEuODk0Wm0tMi45OS03LjI3LDMuMTU1LDYuODYzYy40MTQtLjE3OCwxLjYzLS43NjMsMS43My0xLjU0OGE2Ljc5Myw2Ljc5MywwLDAsMC0yLjY0OC0zLjk4MWwtLjAxLS4wMDdhMTEuOTQsMTEuOTQsMCwwLDEtMS41MTctMS40MzlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWU0YjJlXFxcIi8+PHBhdGggZD1cXFwiTTI4LDEyLjc0MmMuMDI1LjM5NC4wMzQuNzkyLjAyNSwxLjE5NGExMy45NDYsMTMuOTQ2LDAsMCwxLTE5LjksMTIuM0ExMi44NiwxMi44NiwwLDAsMCwyOCwxMi43NDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWFlMGRmO2ZpbGwtcnVsZTpldmVub2RkO29wYWNpdHk6MC4yXFxcIi8+PHBhdGggZD1cXFwiTTIuMzgzLDEzLjg5M0ExMy45NDEsMTMuOTQxLDAsMCwxLDI1LjcsNS44M3MtNS4wMDksNS45NzktMTAuNTg0LDcuOTA3UzIuMzgzLDEzLjg5MywyLjM4MywxMy44OTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWFlMGRmO29wYWNpdHk6MC4yXFxcIi8+PHBhdGggZD1cXFwiTTMuNjE4LDE4LjY5NGMtLjA0NC0uMzkyLS4wNzItLjc5LS4wODMtMS4xOTFDMy4zMjksOS44MDcsMTAuMDEyLDQuMiwxNy43MDgsMy45OTFhMTQuMiwxNC4yLDAsMCwxLDUuNzE5LDEuNDU4LDEzLjEyOCwxMy4xMjgsMCwwLDAtNy4xODgtMi4zNjljLTcuMS4xOS0xMy4zMDYsNS4zLTEzLjExNiwxMi40QTEyLjg3MywxMi44NzMsMCwwLDAsMy42MTgsMTguNjk0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VhZTBkZjtmaWxsLXJ1bGU6ZXZlbm9kZDtvcGFjaXR5OjAuMlxcXCIvPlwiLFxuXHR9LFxuXHRcIk9iamVjdGl2ZS1DXCI6IHtcblx0XHRjb2xvdXI6IFwiI2MyYzJjMlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTExLjI5LDE1Ljk3NmE4Ljg5Miw4Ljg5MiwwLDAsMCwxLjAzOSw0LjU1Nyw0LjgxOCw0LjgxOCwwLDAsMCw1LjU3OSwyLjEzLDMuNzg5LDMuNzg5LDAsMCwwLDIuNzM0LTMuMTgxYy4wOTUtLjUzNS4xLS41NC4xLS41NCwxLjUzNy4yMjIsNC4wMTQuNTgyLDUuNTUuOGwtLjEuMzg5QTkuOTU4LDkuOTU4LDAsMCwxLDIzLjgsMjQuOWE4LjM1LDguMzUsMCwwLDEtNC43NDcsMi4zNzgsMTIuOTI1LDEyLjkyNSwwLDAsMS03LjMyMi0uNzI1LDguOTgsOC45OCwwLDAsMS01LjEwNi01LjUyNEExNC4zNTMsMTQuMzUzLDAsMCwxLDYuNjQyLDEwLjlhOS4zMjMsOS4zMjMsMCwwLDEsNy45MjktNi4yNCwxMS44MTIsMTEuODEyLDAsMCwxLDUuOS40OTEsOC40NjcsOC40NjcsMCwwLDEsNS40NTYsNi4xYy4wODMuMzExLjEuMzY5LjEuMzY5LTEuNzA5LjMxMS0zLjgyMS43MDUtNS41MTgsMS4wNzVDMjAuMTg2LDExLDE5LjM4Nyw5LjY2NiwxNy42NzgsOS4yNWE0LjY1Niw0LjY1NiwwLDAsMC01Ljg1MywzLjE1OCw5LjI4LDkuMjgsMCwwLDAtLjM0MSwxLjI3M0ExMC44OSwxMC44OSwwLDAsMCwxMS4yOSwxNS45NzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyLjAzMyAzMCAyLjAzMyAyIDcuOTY3IDIgNy45NjcgNC4yMjcgNC43MjMgNC4yMjcgNC43MjMgMjcuNzczIDcuOTY3IDI3Ljc3MyA3Ljk2NyAzMCAyLjAzMyAzMFxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjkuOTY3IDI5Ljk5OSAyNC4wMzMgMjkuOTk5IDI0LjAzMyAyNy43NzEgMjcuMjc3IDI3Ljc3MSAyNy4yNzcgNC4yMjYgMjQuMDMzIDQuMjI2IDI0LjAzMyAxLjk5OSAyOS45NjcgMS45OTkgMjkuOTY3IDI5Ljk5OVxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPlwiLFxuXHR9LFxuXHRcIk9DYW1sXCI6IHtcblx0XHRjb2xvdXI6IFwiI2YyOTEwNFwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTc0NS42MjNcXFwiIHkxPVxcXCItOTIuNzZcXFwiIHgyPVxcXCItNzQ1LjYyM1xcXCIgeTI9XFxcIi04NS4xMDhcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoNzU4IDExMy4yOClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmMjkxMDRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNlYzY4MTNcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIi03NDEuOTlcXFwiIHkxPVxcXCItMTA5LjQ3N1xcXCIgeDI9XFxcIi03NDEuOTlcXFwiIHkyPVxcXCItODUuMDk5XFxcIiB4bGluazpocmVmPVxcXCIjYVxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIi03NTIuMTExXFxcIiB5MT1cXFwiLTkzLjkxOFxcXCIgeDI9XFxcIi03NTIuMTExXFxcIiB5Mj1cXFwiLTg1LjI4NFxcXCIgeGxpbms6aHJlZj1cXFwiI2FcXFwiLz48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9vY2FtbDwvdGl0bGU+PHBhdGggZD1cXFwiTTE2LjU3MSwyNS4yNDZhNC4yOCw0LjI4LDAsMCwwLS4wMzktLjcwOWMtLjA1OS0uMi0uMi0uMjE3LS4zLS4zNzRhMy41MDcsMy41MDcsMCwwLDEtLjUzMi0xLjQ3N2MtLjAyLS40NTMtLjItLjg4Ni0uMjE3LTEuMzM5LS4wMi0uMjE3LjAyLS40NTMsMC0uNjY5YTEuOTYzLDEuOTYzLDAsMCwwLS4wMzktLjMxNSwxLjEzMywxLjEzMywwLDAsMC0uMDM5LS4ybC4wNTktLjEzOGEyLjcyLDIuNzIsMCwwLDEsLjY1LS4wMzljLjI1NiwwLC41MTIuMDIuNzY4LjAyYTcuOTYxLDcuOTYxLDAsMCwwLDEuNTM2LS4wNTksMy43MjIsMy43MjIsMCwwLDAsMS45NDktLjg0Nyw0Ljk0Niw0Ljk0NiwwLDAsMCwxLjUzNi0yLjAwOGMuMTc3LS4zOTQuMTc3LTEuMDgzLjU1MS0xLjQuNDMzLS4zNzQsMS4xODEtLjMzNSwxLjY5My0uNTcxYTEuMTg3LDEuMTg3LDAsMCwxLC44MDctLjEzOGMuMjE3LjAzOS42My4zMTUuNzI5LS4wNTktLjA3OS0uMDM5LS4xLS4xMzgtLjEzOC0uMTc3LjQxNC0uMDM5LDAtMS0uMTU4LTEuMkEyLjIyNSwyLjIyNSwwLDAsMCwyNC4yNSwxM2EzLjUwOSwzLjUwOSwwLDAsMC0xLjUzNi0uMjE3Yy0uODg2LjE3Ny0uODI3LS4zMzUtMS4zMzktLjMzNS0uNjMsMC0xLjczMy4wMzktMS45My42M2ExLjU0LDEuNTQsMCwwLDEtLjMzNS41MTJjLS4xMzguMTc3LjAyLjM1NC0uMDM5LjU3MS0uMDc5LjIxNy0uMTc3Ljk4NS0uMjc2LDEuMjYtLjE3Ny40NTMtLjM5NCwxLjAyNC0uNzg4LDEuMDI0YTMuMTUyLDMuMTUyLDAsMCwxLTEuNDM3LS4wNzljLS4yNzYtLjEtLjcyOS0uMjU2LS45NDUtLjMzNS0xLjAyNC0uNDMzLTEuMi0uOTA2LTEuMi0uOTA2YTMuMDI2LDMuMDI2LDAsMCwxLS41MTItLjg2NmMtLjExOC0uNDE0LS4zMTUtLjc2OC0uMzk0LTFzLS4zLS41OTEtLjQ1My0uOTg1YTIuNjY3LDIuNjY3LDAsMCwwLS43MDktMS4wNjNjLS4zMTUtLjI3Ni0uNjEtLjcyOS0xLjI2LS41OTFhMS42NDEsMS42NDEsMCwwLDAtLjg2Ni4zMTVjLS4yMTcuMTc3LS4zLjU3MS0uNDkyLjg4Ni0uMTE4LjE3Ny0uMzE1LjcwOS0uNTEyLDEuMTYyYTEuOTI5LDEuOTI5LDAsMCwxLS4zMzUuNjVjLS4xMTguMDc5LS4yNTYuMi0uNDE0LjEzOGEuOTI0LjkyNCwwLDAsMS0uMzE1LS4yLDUuMzM0LDUuMzM0LDAsMCwxLS43MDktMS4xMjIsMTEuMSwxMS4xLDAsMCwwLS43ODgtMS4yNDEsMS4wMTYsMS4wMTYsMCwwLDAtLjk4NS0uNTUxYy0xLjAyNCwwLTEuMS41NzEtMS41NTYsMS40MThhNS41NzQsNS41NzQsMCwwLDEtLjY2OSwxLjRjLS4yMzYuMjU2LS45NDUsMS4zMzktMS40NTcsMS41MTZIMnY3LjYyYy4wMzktLjEuMDU5LS4yLjEtLjI3Ni4yLS40MTQuNjUtLjgwNy45MDYtMS4yMjFhMy41LDMuNSwwLDAsMCwuMzc0LS43MDksMy43NDMsMy43NDMsMCwwLDEsLjIzNi0uNzA5Ljc5NC43OTQsMCwwLDEsLjU3MS0uMzM1Yy4zNTQtLjA1OS42NS40OTIsMS4wODMuNzA5LjIuMDc5LDEuMDYzLjM5NCwxLjMxOS40NTMuNDMzLjEuOTA2LjIsMS4zMzkuMjc2LjIzNi4wMzkuNDUzLjA3OS43MDkuMWE3LjMsNy4zLDAsMCwxLDEuMDgzLjEsMi4yNzcsMi4yNzcsMCwwLDAtLjgwNywxLjIyMWMtLjE1OC40MzMtLjI3Ni45MjUtLjQ3MywxLjMzOS0uMjE3LjQ3My0uNjY5LjY2OS0uNjEsMS4yMjFhMi42NjgsMi42NjgsMCwwLDEsLjAyLjY4OSw0LjAwOSw0LjAwOSwwLDAsMS0uMjE3LjY4OWMtLjEuMzE1LS4yMTcsMS4zNTktLjM1NCwxLjY3NGwuOTA2LS4xMThoMEExMC42OTIsMTAuNjkyLDAsMCwwLDguNCwyNi4zODhhMy43MzcsMy43MzcsMCwwLDEsLjcyOS0xLjI4Yy4zMzUtLjM3NC4zMTUtLjg0Ny41MTItMS4zYTEyLjQ4OCwxMi40ODgsMCwwLDEsLjc2OC0xLjNjLjQ5Mi0uODA3LjgwNy0xLjgxMiwxLjg1MS0yLjAyOGEzLjMsMy4zLDAsMCwxLDEuMDI0LjcwOSw0LjQ1Miw0LjQ1MiwwLDAsMSwuODg2LDEuMSwxMi44NTEsMTIuODUxLDAsMCwxLC44ODYsMi42NzgsMS4yMjcsMS4yMjcsMCwwLDAsLjM5NC43MDksNS40NjIsNS40NjIsMCwwLDEsLjQzMy43MjljLjA3OS4xNzcuMi41NzEuMy43ODhhNi4yNjcsNi4yNjcsMCwwLDEsLjMxNS44MjdsLjg0Ny0uMDJoLjAydi0uMDJBOS43NTQsOS43NTQsMCwwLDEsMTYuNTcxLDI1LjI0NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTYuMjE3LDI3LjIzNWMtLjEtLjItLjIxNy0uNjEtLjMtLjc4OGE1LjQ2Miw1LjQ2MiwwLDAsMC0uNDMzLS43MjksMS4xMTksMS4xMTksMCwwLDEtLjM5NC0uNzA5LDEyLjQ4NywxMi40ODcsMCwwLDAtLjg4Ni0yLjY3OCw0LjQ1Miw0LjQ1MiwwLDAsMC0uODg2LTEuMSwzLjMsMy4zLDAsMCwwLTEuMDI0LS43MDljLTEuMDQ0LjItMS4zNTksMS4yMjEtMS44NTEsMi4wMjhhMTIuNDg4LDEyLjQ4OCwwLDAsMC0uNzY4LDEuM2MtLjIuNDMzLS4xNzcuOTI1LS41MTIsMS4zYTMuNDQzLDMuNDQzLDAsMCwwLS43MjksMS4yOGMtLjAzOS4xLS4xMTgsMS4wODMtLjIxNywxLjMxOWgwbDEuNTM2LS4xYzEuNDM3LjEsMS4wMjQuNjUsMy4yNDkuNTMybDMuNTI1LS4xMThoMEE2LjI2Nyw2LjI2NywwLDAsMCwxNi4yMTcsMjcuMjM1WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yNi40NTYsMy44SDUuNTQ0QTMuNTIxLDMuNTIxLDAsMCwwLDIuMDIsNy4zMjh2Ny42NzloMGMuNTEyLS4xNzcsMS4yMjEtMS4yNiwxLjQ1Ny0xLjUxNmE1LjkxMyw1LjkxMywwLDAsMCwuNjY5LTEuNGMuNDUzLS44MjcuNTMyLTEuNDE4LDEuNTU2LTEuNDE4YTEuMDE2LDEuMDE2LDAsMCwxLC45ODUuNTUxLDkuNTQ3LDkuNTQ3LDAsMCwxLC43ODgsMS4yNDEsNC44NDksNC44NDksMCwwLDAsLjcwOSwxLjEyMiwyLDIsMCwwLDAsLjMxNS4yYy4xNTguMDU5LjMtLjA1OS40MTQtLjEzOEExLjkyOSwxLjkyOSwwLDAsMCw5LjI0NiwxM2MuMi0uNDUzLjM5NC0uOTY1LjUxMi0xLjE2Mi4yLS4zMTUuMjc2LS43MDkuNDkyLS44ODZhMS41OSwxLjU5LDAsMCwxLC44NjYtLjMxNWMuNjUtLjEzOC45NDUuMzE1LDEuMjYuNTkxYTMuMjg1LDMuMjg1LDAsMCwxLC43MDksMS4wNjNjLjE1OC4zOTQuMzU0Ljc2OC40NTMuOTg1YTguOTQ2LDguOTQ2LDAsMCwxLC4zOTQsMSwzLjcxMywzLjcxMywwLDAsMCwuNTEyLjg2NnMuMTc3LjQ3MywxLjIuOTA2YTguNzQ5LDguNzQ5LDAsMCwwLC45NDUuMzM1LDMuMTUyLDMuMTUyLDAsMCwwLDEuNDM3LjA3OWMuMzk0LDAsLjYxLS41NzEuNzg4LTEuMDI0LjEtLjI3Ni4yMTctMS4wNDQuMjc2LTEuMjZzLS4xLS4zNzQuMDM5LS41NzFjLjE1OC0uMjE3LjI1Ni0uMjM2LjMzNS0uNTEyLjItLjYxLDEuMy0uNjMsMS45My0uNjMuNTMyLDAsLjQ1My41MTIsMS4zMzkuMzM1YTMuMjQzLDMuMjQzLDAsMCwxLDEuNTM2LjIxNywyLjIyNSwyLjIyNSwwLDAsMSwxLjE0Mi41NTFjLjE1OC4yLjU3MSwxLjE2Mi4xNTgsMS4yLjAzOS4wMzkuMDc5LjEzOC4xMzguMTc3LS4xLjM3NC0uNDkyLjEtLjcyOS4wNTlhMS4xODcsMS4xODcsMCwwLDAtLjgwNy4xMzhjLS41MTIuMjE3LTEuMjQxLjItMS42OTMuNTcxLS4zNzQuMzE1LS4zNzQsMS0uNTUxLDEuNGE1LjE2Nyw1LjE2NywwLDAsMS0xLjUzNiwyLjAwOCwzLjksMy45LDAsMCwxLTEuOTQ5Ljg0Nyw3Ljk2MSw3Ljk2MSwwLDAsMS0xLjUzNi4wNTljLS4yNTYtLjAyLS41MTItLjAyLS43NjgtLjAyLS4xNTgsMC0uNjY5LS4wMi0uNjUuMDM5bC0uMDU5LjEzOGEuNy43LDAsMCwwLC4wMzkuMmMuMDIuMTE4LjAyLjIxNy4wMzkuMzE1LDAsLjIxNy0uMDIuNDUzLDAsLjY2OS4wMi40NTMuMi44NjYuMjE3LDEuMzM5YTMuMjYsMy4yNiwwLDAsMCwuNTMyLDEuNDc3Yy4xLjE1OC4yMzYuMTc3LjMuMzc0YTQuMTYzLDQuMTYzLDAsMCwxLC4wMzkuNzA5LDkuNjg1LDkuNjg1LDAsMCwwLC44MjcsMi43NTd2LjAyaDBjLjUxMi0uMDc5LDEuMDQ0LS4yNzYsMS43MTMtLjM3NCwxLjI0MS0uMTc3LDIuOTU0LS4xLDQuMDU2LS4yLDIuOC0uMjU2LDQuMzEyLDEuMTQyLDYuODEzLjU3MVY3LjMyOEEzLjU1MSwzLjU1MSwwLDAsMCwyNi40NTYsMy44Wk0xNi4wMiwyMC4zNDNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTguNDc4LDIzLjU3M2MuMi0uNDMzLjMxNS0uOTA2LjQ3My0xLjMzOWEyLjI3NywyLjI3NywwLDAsMSwuODA3LTEuMjIxLDcuMyw3LjMsMCwwLDAtMS4wODMtLjFjLS4yMzYtLjAyLS40NzMtLjA1OS0uNzA5LS4xLS40MzMtLjA3OS0uOTI1LS4xNzctMS4zMzktLjI3Ni0uMjU2LS4wNTktMS4xNDItLjM3NC0xLjMxOS0uNDUzLS40NTMtLjItLjc0OC0uNzY4LTEuMDgzLS43MDlhLjc5NC43OTQsMCwwLDAtLjU3MS4zMzUsMy43NDMsMy43NDMsMCwwLDAtLjIzNi43MDljLS4xLjIzNi0uMjU2LjQ3My0uMzc0LjcwOWExMi4yODksMTIuMjg5LDAsMCwwLS45MjUsMS4yYy0uMDM5LjEtLjA1OS4yLS4xLjN2NC43NDVhNS40LDUuNCwwLDAsMSwuNzI5LjE1OCw4Ljc3LDguNzcsMCwwLDAsNC4zNzEuMzU0bC4xNzctLjAyaDBjLjEzOC0uMzE1LjI1Ni0xLjM1OS4zNTQtMS42NzRhNS40OTQsNS40OTQsMCwwLDAsLjIxNy0uNjg5LDIuNjY4LDIuNjY4LDAsMCwwLS4wMi0uNjg5QzcuODA5LDI0LjI0Miw4LjI2MiwyNC4wNDUsOC40NzgsMjMuNTczWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNjKVxcXCIvPlwiLFxuXHR9LFxuXHRcIk9jdGF2ZVwiOiB7XG5cdFx0Y29sb3VyOiBcIiM3N2NjZTFcIixcblx0XHRpY29uOiBcIjxkZWZzIGlkPVxcXCJkZWZzMjg3NFxcXCI+IDxyYWRpYWxHcmFkaWVudCBjeD1cXFwiMTgyLjk4MzdcXFwiIGN5PVxcXCIzOTUuMDQ4NzFcXFwiIHI9XFxcIjE0OC45NTMwOVxcXCIgZng9XFxcIjE4Mi45ODM3XFxcIiBmeT1cXFwiMzk1LjA0ODcxXFxcIiBpZD1cXFwicmFkaWFsR3JhZGllbnQzMDMzXFxcIiB4bGluazpocmVmPVxcXCIjbGluZWFyR3JhZGllbnQzNzU1XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLjIyOTE0MzM0LC0wLjI0OTAxNDc5LDAuNzY0MzU3MiwwLjgzMDY0MjY4LC0yNzIuODUzMzcsLTE1OS42OTQ4MilcXFwiIC8+IDxsaW5lYXJHcmFkaWVudCBpZD1cXFwibGluZWFyR3JhZGllbnQzNzU1XFxcIj4gPHN0b3AgaWQ9XFxcInN0b3AzNzU3XFxcIiBzdHlsZT1cXFwic3RvcC1jb2xvcjojMDA4Y2JlO3N0b3Atb3BhY2l0eToxXFxcIiBvZmZzZXQ9XFxcIjBcXFwiIC8+IDxzdG9wIGlkPVxcXCJzdG9wMzc1OVxcXCIgc3R5bGU9XFxcInN0b3AtY29sb3I6I2IyZmZmZjtzdG9wLW9wYWNpdHk6MVxcXCIgb2Zmc2V0PVxcXCIxXFxcIiAvPiA8L2xpbmVhckdyYWRpZW50PiA8L2RlZnM+IDxnIGlkPVxcXCJsYXllcjFcXFwiIHRyYW5zZm9ybT1cXFwic2NhbGUoMC4xMTI5NikgdHJhbnNsYXRlKC0yMzMuMzU1NDQsLTM5MC43MTgwMilcXFwiPiA8ZyB0cmFuc2Zvcm09XFxcIm1hdHJpeCg4LjQ1MTk3MjMsMCwwLDguNDUxOTcyMywtMjc4LjQ1MDEyLC00MDMuODI5NzUpXFxcIiBpZD1cXFwiZzMwMjVcXFwiPiA8cGF0aCBkPVxcXCJtIDY2LjQzMjEwMyw5Ny40ODg2NzkgYyAtNS4xOTU4NCw1LjY0NjQzMSAtMy45MzY2MSwxNi4xNjkwMzEgMi44MTEwNywyMy41MDE4NzEgNi43NDc2OCw3LjMzMjg1IDE2LjQyODk4LDguNjk5NTUgMjEuNjI0ODMsMy4wNTMxMiA1LjE5NTg1LC01LjY0NjQzIDMuOTQwMiwtMTYuMTY5NDYgLTIuODA3NDksLTIzLjUwMjMgLTYuNzQ3NjgsLTcuMzMyODYxIC0xNi40MzI1NiwtOC42OTkxMzEgLTIxLjYyODQxLC0zLjA1MjY5MSB6IG0gNC43MTE0OSwyLjM0NTUzIGMgNC4wODI1NiwtNC40MzY1OSAxMS41ODksLTMuNDcxNTIgMTYuNzY3NDEsMi4xNTU5NjEgNS4xNzg0Miw1LjYyNzUgNi4wNjY0NywxMy43ODQ5MSAxLjk4MzkxLDE4LjIyMTUgLTQuMDgyNTYsNC40MzY1OCAtMTEuNTkwOTcsMy40NzM2OSAtMTYuNzY5MzksLTIuMTUzODEgLTUuMTc4NDIsLTUuNjI3NSAtNi4wNjQ0OSwtMTMuNzg3MDQgLTEuOTgxOTMsLTE4LjIyMzY1MSB6XFxcIiBpZD1cXFwicGF0aDU4NzRcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjcmFkaWFsR3JhZGllbnQzMDMzKTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZVxcXCIgLz4gPHJlY3Qgd2lkdGg9XFxcIjQuMzQ5ODU0XFxcIiBoZWlnaHQ9XFxcIjQuMzQ5ODU0XFxcIiByeD1cXFwiMC43Njk1ODk2NlxcXCIgcnk9XFxcIjAuNzY5NTg5NjZcXFwiIHg9XFxcIjg1LjM4MTU2MVxcXCIgeT1cXFwiOTkuNDkzODgxXFxcIiBpZD1cXFwicmVjdDU4NzZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjdmMmE7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOiNkNDU1MDA7c3Ryb2tlLXdpZHRoOjAuNzQ0MDM3OTk7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmVcXFwiIC8+IDxyZWN0IHdpZHRoPVxcXCIxMC4yNDU0MzZcXFwiIGhlaWdodD1cXFwiMTAuMjQ1NDM2XFxcIiByeD1cXFwiMS44MTI2NTQ1XFxcIiByeT1cXFwiMS44MTI2NTQ1XFxcIiB4PVxcXCI2MC45MjY1OVxcXCIgeT1cXFwiMTA1LjIyNDVcXFwiIGlkPVxcXCJyZWN0NTg3OFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmN2YyYTtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6I2Q0NTUwMDtzdHJva2Utd2lkdGg6MC43NDQwMzc5OTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZVxcXCIgLz4gPHJlY3Qgd2lkdGg9XFxcIjYuMTg5NzUzMVxcXCIgaGVpZ2h0PVxcXCI2LjE4OTc1MzFcXFwiIHJ4PVxcXCIxLjA5NTExMDJcXFwiIHJ5PVxcXCIxLjA5NTExMDJcXFwiIHg9XFxcIjg3LjQwNDczOVxcXCIgeT1cXFwiMTE4LjYzNzA1XFxcIiBpZD1cXFwicmVjdDU4ODBcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjdmMmE7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOiNkNDU1MDA7c3Ryb2tlLXdpZHRoOjAuNzQ0MDM3OTk7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmVcXFwiIC8+IDwvZz4gPC9nPlwiLFxuXHR9LFxuXHRcIk9wZW5DTFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNGRjFDMUFcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjI5LjY2MlxcXCIgeTE9XFxcIjE4LjAyNlxcXCIgeDI9XFxcIjIxLjQxOVxcXCIgeTI9XFxcIjIwLjIzNFxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwicmVkXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmY2YTZhXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCIyNC41ODhcXFwiIHkxPVxcXCI5Ljc0OFxcXCIgeDI9XFxcIjE4Ljc3NlxcXCIgeTI9XFxcIjE1LjU2XFxcIiB4bGluazpocmVmPVxcXCIjYVxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIjE4LjQ2NlxcXCIgeTE9XFxcIjYuNjE5XFxcIiB4Mj1cXFwiMTUuOTI0XFxcIiB5Mj1cXFwiMTMuNjAzXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjY2ZhNDBjXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZWRkNDgwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImRcXFwiIHgxPVxcXCIxMy4xN1xcXCIgeTE9XFxcIjYuNTFcXFwiIHgyPVxcXCIxMy4xN1xcXCIgeTI9XFxcIjEyLjk5N1xcXCIgeGxpbms6aHJlZj1cXFwiI2NcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImVcXFwiIHgxPVxcXCI4LjgwOFxcXCIgeTE9XFxcIjguNDg2XFxcIiB4Mj1cXFwiMTAuOTg4XFxcIiB5Mj1cXFwiMTMuMTYxXFxcIiB4bGluazpocmVmPVxcXCIjY1xcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZlxcXCIgeDE9XFxcIjUuNTA1XFxcIiB5MT1cXFwiMTEuNDc3XFxcIiB4Mj1cXFwiOC41NDZcXFwiIHkyPVxcXCIxNC41MTlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMxMWExMTlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzN2FlM2RcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZ1xcXCIgeDE9XFxcIjMuNjM5XFxcIiB5MT1cXFwiMTQuMjg1XFxcIiB4Mj1cXFwiNi44ODNcXFwiIHkyPVxcXCIxNi4xNThcXFwiIHhsaW5rOmhyZWY9XFxcIiNmXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJoXFxcIiB4MT1cXFwiMi4yNjVcXFwiIHkxPVxcXCIxNy43OTlcXFwiIHgyPVxcXCI1LjM3OVxcXCIgeTI9XFxcIjE4LjkzM1xcXCIgeGxpbms6aHJlZj1cXFwiI2ZcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImlcXFwiIHgxPVxcXCIyXFxcIiB5MT1cXFwiMjEuNjE0XFxcIiB4Mj1cXFwiNC44MzNcXFwiIHkyPVxcXCIyMS42MTRcXFwiIHhsaW5rOmhyZWY9XFxcIiNmXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJqXFxcIiB4MT1cXFwiMjAuNjYyXFxcIiB5MT1cXFwiMTguOTQ5XFxcIiB4Mj1cXFwiMTguMDI2XFxcIiB5Mj1cXFwiMTcuNDI4XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiM2NDY0NjRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNjYmNiY2JcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwia1xcXCIgeDE9XFxcIjE2LjAyMVxcXCIgeTE9XFxcIjI1LjI2NFxcXCIgeDI9XFxcIjE2LjAyMVxcXCIgeTI9XFxcIjIyLjY5MVxcXCIgeGxpbms6aHJlZj1cXFwiI2pcXFwiLz48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9vcGVuY2w8L3RpdGxlPjxwYXRoIGQ9XFxcIk0yNy44MjgsMTMuNTc0YTE0LjY3NiwxNC42NzYsMCwwLDEsLjgzNSwxLjU0MkExNC45NjQsMTQuOTY0LDAsMCwxLDI5LjkyLDIyLjlIMjIuMTMzYTEwLjM3NywxMC4zNzcsMCwwLDAtLjk2Ny00LjQyNFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMTcuNzUzLDE0LjQzYTEwLjA3NCwxMC4wNzQsMCwwLDEsMi43NzIsMi44NzhsNi4yNzMtNS4yYTE1LjU0LDE1LjU0LDAsMCwwLTQuOTg4LTQuMTVaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTE0Ljc4MSwxMy4wODZhOC44MjcsOC44MjcsMCwwLDEsMi4zNzYuOTY2TDIwLjY2Niw3LjQzYTEyLjcsMTIuNywwLDAsMC00LjY0NS0uOTUyWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNjKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC4zNjQsMTNsLjYxMi02LjQ4OGExMi40NiwxMi40NiwwLDAsMC0zLjYxMS44MTNsLjUwNyw1LjYzOEE3LjIxOSw3LjIxOSwwLDAsMSwxNC4zNjQsMTNcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZClcXFwiLz48cGF0aCBkPVxcXCJNMTAuOTQ4LDEzLjE3OWwtLjY4My01LjM3M0ExNC41ODgsMTQuNTg4LDAsMCwwLDcuNzczLDkuMzc5bDEuNzQsNC40MmE3LjUxOCw3LjUxOCwwLDAsMSwxLjQzNS0uNjE5XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2UpXFxcIi8+PHBhdGggZD1cXFwiTTguODYsMTQuMjA2LDYuNDc0LDEwLjUxMWMtLjQ1My40NC0uNzkuODItMS4wMDYsMS4wNzRxLS4yMjcuMjY3LS40MzYuNTM4TDcuNDgsMTUuMzg3YTguODcsOC44NywwLDAsMSwxLjM4LTEuMTgyXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2YpXFxcIi8+PHBhdGggZD1cXFwiTTcuMDQ2LDE1Ljg3NSw0LjMzNSwxMy4xMTJhMTQuMjU5LDE0LjI1OSwwLDAsMC0xLjI1LDIuNDI5bDMuMDA3LDEuNzFhOS44MjYsOS44MjYsMCwwLDEsLjk1NC0xLjM3NlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNnKVxcXCIvPjxwYXRoIGQ9XFxcIk01LjUyNywxOC4zOTNsLTIuNzctMS45NDVhMTUuNDUyLDE1LjQ1MiwwLDAsMC0uNjMsMi44M2wyLjkwNi42MDdhMTAuMzQzLDEwLjM0MywwLDAsMSwuNDk0LTEuNDkyXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2gpXFxcIi8+PHBhdGggZD1cXFwiTTQuODMzLDIwLjlhMTAuNjg0LDEwLjY4NCwwLDAsMC0uMSwySDIuMDkzYTE0LjMzMywxNC4zMzMsMCwwLDEtLjA2NC0yLjU3M1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaSlcXFwiLz48cGF0aCBkPVxcXCJNMjIuNTUxLDEyLjQ3OCwxNC43NTEsMjMuMUExLjU0NCwxLjU0NCwwLDAsMSwxNy41LDI0LjQyOFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjailcXFwiLz48cGF0aCBkPVxcXCJNMTYuMDIxLDI1LjUyMmExLjU0NCwxLjU0NCwwLDEsMSwxLjA5Mi0uNDUyQTEuNTMzLDEuNTMzLDAsMCwxLDE2LjAyMSwyNS41MjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjQ2NDY0XFxcIi8+PHBhdGggZD1cXFwiTTE3LjMwOCwyMy45NzhhMS4yODcsMS4yODcsMCwxLDEtLjM3Ny0uOTFBMS4yODMsMS4yODMsMCwwLDEsMTcuMzA4LDIzLjk3OFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaylcXFwiLz5cIixcblx0fSxcblx0XCJQYXNjYWxcIjoge1xuXHRcdGNvbG91cjogXCIjRkY2MzQ0XCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxNlxcXCIgeTE9XFxcIi0wLjQ0M1xcXCIgeDI9XFxcIjE2XFxcIiB5Mj1cXFwiMjIuMDQyXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwLjAyMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmMGMxNVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzlhMGMwZlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfZGVscGhpPC90aXRsZT48Y2lyY2xlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjE2XFxcIiByPVxcXCIxNFxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy41NDUsMTYuMjQzSDQuOTI0YS45MTQuOTE0LDAsMCwwLTEuMDkyLjgycS4wMzMuNDI5LjEuODQ5YTEyLjQsMTIuNCwwLDAsMCwyNC41MzIsMHEuMDc1LS41LjEwOC0xLjAyMUMyOC40NzgsMTYuNTIzLDI4LjIxMSwxNi4yMDcsMjcuNTQ1LDE2LjI0M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjY0NDNcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCIxOC40OCAxMS42NCAyMy43MDcgNy4yNjYgMTkuNzg3IDUuODggMTYgMTEuMDUzXFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiMTUuNjggMTEuMDI2IDE4LjY0IDUuODggMTQuODUzIDUuODggMTMuMzA3IDExLjI5M1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjEzLjA0IDExLjM3MyAxMy42IDYuNzA2IDEwLjU4NyA3Ljk2IDExLjAxMyAxMi43NlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjEwLjc0NyAxMyA5Ljc4NyA4Ljc2IDcuNzA3IDEwLjg0IDkuNjUzIDE0LjY4XFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiOS4zODcgMTUuMDUzIDcuNDkzIDEyLjM3NiA2LjY0IDE0LjQ2NiA5LjA0IDE2LjUxN1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZhZTdlMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjkuMDQgMTYuNzU3IDYuNjQgMTUuMjEzIDYuNDggMTcuNCA5LjIgMTguMzMzXFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiOS4yMjcgMTguODQ2IDYuNjQgMTguMDQgNy4yMjcgMTkuOCA5LjU0NyAxOS44XFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiOS43MDcgMjAuMDkzIDcuNzA3IDIwLjM4NiA4LjYyNyAyMS43NDYgMTAuMjY3IDIxXFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTIwLjAyMywxMy4wODlhNi42MSw2LjYxLDAsMCwwLTQuNTMtMkE2LjI5Myw2LjI5MywwLDAsMCwxMS4zLDIyLjA3bDQuOTQxLjEyOS0yLjA4LTQuMTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWVlO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE2LjUsMjIuMzY2bC01LjI2Ny0uMTM4LS4wNDQtLjAzOWE2LjQ1Myw2LjQ1MywwLDAsMSw0LjMtMTEuMjY0LDYuNzg3LDYuNzg3LDAsMCwxLDQuNjQzLDIuMDVsLjEyMy4xMjMtNS45LDQuOTgyWm0tNS4xNC0uNDU1LDQuNjE2LjEyMUwxMy45NjEsMThsNS44MjUtNC45MTlhNi40Myw2LjQzLDAsMCwwLTQuMjkyLTEuODM1LDYuMTMzLDYuMTMzLDAsMCwwLTQuMTMxLDEwLjY2N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZTRiMmVcXFwiLz48cGF0aCBkPVxcXCJNMTIuMDEzLDIwLjQ5M2MtNC4xNzMtNS44MTMsMi4xMDktOC4xNzIsMi40NzgtOC40NTMuNDUxLS4zNDQtNy41OSwxLjc4NS0zLjIyNiw4Ljg4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2YwNGUzMTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjAuNzIgMTIuNiAxMy41MiAxNy41NjcgMTMuNzMzIDE4LjU3MyAyMS40NjcgMTcuMDI2IDIwLjcyIDEyLjZcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZWU7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTMuNjEsMTguNzYxLDEzLjM0MSwxNy41bDcuNDk1LTUuMTcuODE0LDQuODI4Wm0uMDg5LTEuMTIzLjE1OC43NDdMMjEuMjgzLDE2LjksMjAuNiwxMi44NzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWU0YjJlXFxcIi8+PHBhdGggZD1cXFwiTTE1LjcyMywyMS4zMTljLTMuOTMtLjY2OC00LjI4My40MjgtNC4yODMuNDI4TDEwLjI2NywyNC40NHMxLjEyLS45MDcsNS40OTMsMGwuNzYtMS4zODhaXFxcIiBzdHlsZT1cXFwiZmlsbDojZGQwYzEzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE0LjEyMiwyMS42Yy0uMDItLjItMS4xLS4zMTktMS42NzctLjEyMy0uNzMyLjI0OS0xLjIxOSwxLjE0Mi0xLjA0NSwxLjIxM2ExLjk3NSwxLjk3NSwwLDAsMSwxLjEyNS0uOTg2QzEzLjQ0NywyMS40OTMsMTQuMTQyLDIxLjgsMTQuMTIyLDIxLjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmY2ZTRmO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE1LjUyLDE4LjYwNmExMS4xLDExLjEsMCwwLDAsMS41NDcsMS40ODcsNi45LDYuOSwwLDAsMSwyLjcyLDQuMTA3Yy0uMTA3LDEuMDY3LTEuOTczLDEuNzYtMS45NzMsMS43NmwtMy4zMDctNy4xOTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWVlO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE3LjczLDI2LjE2MWwtMy40NTctNy41MjEsMS4zMi0uMjA4LjA1Ny4wODFhMTAuODY5LDEwLjg2OSwwLDAsMCwxLjUxMiwxLjQ1MSw3LDcsMCwwLDEsMi43ODIsNC4yMDdsMCwuMDIyLDAsLjAyMmMtLjExNSwxLjE1My0yLDEuODY0LTIuMDc3LDEuODk0Wm0tMi45OS03LjI3LDMuMTU1LDYuODYzYy40MTQtLjE3OCwxLjYzLS43NjMsMS43My0xLjU0OGE2Ljc5Myw2Ljc5MywwLDAsMC0yLjY0OC0zLjk4MWwtLjAxLS4wMDdhMTEuOTQsMTEuOTQsMCwwLDEtMS41MTctMS40MzlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWU0YjJlXFxcIi8+PHBhdGggZD1cXFwiTTI4LDEyLjc0MmMuMDI1LjM5NC4wMzQuNzkyLjAyNSwxLjE5NGExMy45NDYsMTMuOTQ2LDAsMCwxLTE5LjksMTIuM0ExMi44NiwxMi44NiwwLDAsMCwyOCwxMi43NDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWFlMGRmO2ZpbGwtcnVsZTpldmVub2RkO29wYWNpdHk6MC4yXFxcIi8+PHBhdGggZD1cXFwiTTIuMzgzLDEzLjg5M0ExMy45NDEsMTMuOTQxLDAsMCwxLDI1LjcsNS44M3MtNS4wMDksNS45NzktMTAuNTg0LDcuOTA3UzIuMzgzLDEzLjg5MywyLjM4MywxMy44OTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWFlMGRmO29wYWNpdHk6MC4yXFxcIi8+PHBhdGggZD1cXFwiTTMuNjE4LDE4LjY5NGMtLjA0NC0uMzkyLS4wNzItLjc5LS4wODMtMS4xOTFDMy4zMjksOS44MDcsMTAuMDEyLDQuMiwxNy43MDgsMy45OTFhMTQuMiwxNC4yLDAsMCwxLDUuNzE5LDEuNDU4LDEzLjEyOCwxMy4xMjgsMCwwLDAtNy4xODgtMi4zNjljLTcuMS4xOS0xMy4zMDYsNS4zLTEzLjExNiwxMi40QTEyLjg3MywxMi44NzMsMCwwLDAsMy42MTgsMTguNjk0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VhZTBkZjtmaWxsLXJ1bGU6ZXZlbm9kZDtvcGFjaXR5OjAuMlxcXCIvPlwiLFxuXHR9LFxuXHRcIlBlcmxcIjoge1xuXHRcdGNvbG91cjogXCIjM2EzYzViXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjkuMjUsMTMuOGE2Ljg4OCw2Ljg4OCwwLDAsMC0uNzQyLTIuMjY4LDEuMDExLDEuMDExLDAsMCwwLS4xNzItLjIzMyw5LjQ3MSw5LjQ3MSwwLDAsMS0xLjcyNS0yLjQsOC42MzIsOC42MzIsMCwwLDAtMS4zOTUtMi4zODJBNi45MDYsNi45MDYsMCwwLDEsMjQuMSw0LjY0NCw0LjU3Miw0LjU3MiwwLDAsMCwyMS45OSwxLjcyN2ExLjAwOSwxLjAwOSwwLDAsMC0uMS0uMDU0LDguODg2LDguODg2LDAsMCwwLTEuMy0uNDY4LDEuMDIyLDEuMDIyLDAsMCwwLS4yNjMtLjAzNSwxLjAwOSwxLjAwOSwwLDAsMC0uMi4wMjEsNS42MDcsNS42MDcsMCwwLDEtLjgwNy4xMDdjLS4wNSwwLS4xLS4wMDYtLjE0OS0uMDA2YTIuODQyLDIuODQyLDAsMCwwLTEuNDE2LjQ1M2MtLjA5NC4wNTItLjE4OC4xMDYtLjI4NC4xNDlxLS4wNDEuMDE4LS4wNzguMDM5QTEuNjM3LDEuNjM3LDAsMCwxLDE3LjA2NiwyYTMuMTA5LDMuMTA5LDAsMCwwLS43NzIuMTk0LDEsMSwwLDAsMC0uNTA4LjQ4MywyLjE4NCwyLjE4NCwwLDAsMS0uNDY5LjVBNC4zODIsNC4zODIsMCwwLDAsMTQuNTU1LDRhLjk2NC45NjQsMCwwLDAtLjExNi4yMzQsNC42ODcsNC42ODcsMCwwLDEtMS41NzQsMi4yLDYuNDcxLDYuNDcxLDAsMCwwLS44LjYxMywyLjczNCwyLjczNCwwLDAsMC0uNjI3LTEuNjM0Yy0uMDE3LS4wMTktLjAzNS0uMDM4LS4wNTMtLjA1NmwwLS4wMTRhMi4zNzgsMi4zNzgsMCwwLDAtLjEzNS0uNTg2LDEsMSwwLDAsMC0uMTMyLS4yMzZBNS4xNjcsNS4xNjcsMCwwLDAsOS41MTEsMy4xMTNhLjk4OC45ODgsMCwwLDAtLjM0Ni0uMTE5LDEuNSwxLjUsMCwwLDEtLjE0OC0uMDc3LDIuMDYsMi4wNiwwLDAsMC0xLS4zMTEsMS40NzYsMS40NzYsMCwwLDAtLjY4MS4xNjYuOTg3Ljk4NywwLDAsMC0uMjc0LjIwNiwxLjMyOCwxLjMyOCwwLDAsMS0uMTI1LjA2MywxLjksMS45LDAsMCwwLS45MDguNzc4LDIuNTM5LDIuNTM5LDAsMCwwLS41NDEuMTA2LDEuNjU2LDEuNjU2LDAsMCwxLS4zODMuMDU3LDIuMywyLjMsMCwwLDAtMS41LjU0NWwtLjEwNi4xYTIuNTMzLDIuNTMzLDAsMCwwLTEsMi41MjUsMS4wOCwxLjA4LDAsMCwwLC4wNjguMTY1QTIuMjk0LDIuMjk0LDAsMCwwLDQuNDQ2LDguNDc4Yy0uMS4yMzgtLjIuNDczLS4zMTQuN2ExLjAwOSwxLjAwOSwwLDAsMC0uMDg3LjI5M0ExMS4wNTIsMTEuMDUyLDAsMCwwLDQsMTIuMDM5YzAsLjAyLDAsLjA0LjAwNy4wNmE1LjI3OCw1LjI3OCwwLDAsMSwuMDQxLjU0NywyLjkyNiwyLjkyNiwwLDAsMCwuOTMxLDIuNGMuMDE3LjAxNC4wMzQuMDI2LjA1Mi4wMzlsLjAwOC4wMzFhMi44LDIuOCwwLDAsMCwuMTUxLjQ0NywxLjE4NSwxLjE4NSwwLDAsMCwuNjMyLjYxNywxLjI4OSwxLjI4OSwwLDAsMCwuMjQ4LjU3MSwxLDEsMCwwLDAsLjMzMi4yNzksMi40NTMsMi40NTMsMCwwLDAsLjQ2NS4xNzZsLjA2NC4wMThhLjk3Ni45NzYsMCwwLDAsLjE5Mi4xNzFBNS44NzksNS44NzksMCwwLDEsNy44NzMsMThhMS4xMywxLjEzLDAsMCwwLDEuMzUxLjQyNywxLjUsMS41LDAsMCwwLC43NjUuMjE1LDEuNDIxLDEuNDIxLDAsMCwwLC42MjQtLjE0NWwuMTE0LS4wMjZjLjAyNC40MDguMDMzLjgxNy4wMjgsMS4yMjNhMS4wNDMsMS4wNDMsMCwwLDAsLjAyNi4yNDIsMTAuNzQ0LDEwLjc0NCwwLDAsMSwuMjY2LDEuODI4LjkzMS45MzEsMCwwLDAsLjAzMS4yLDguNDkyLDguNDkyLDAsMCwxLC4yNjgsMS44MTVjMCwuMDMxLDAsLjA2My4wMDguMDk0YTYuMDgzLDYuMDgzLDAsMCwxLS42MSwzLjU3NS45OTQuOTk0LDAsMCwwLS4wODkuMjYxLDEuMDkzLDEuMDkzLDAsMCwwLS4yMzQuMDc5bC0uMDUuMDIyYTIuMDEzLDIuMDEzLDAsMCwwLTEuMiwxLjA2NSwxLjMyMiwxLjMyMiwwLDAsMCwuMDc0LDEuMDU0LDEsMSwwLDAsMCwuMzI0LjM3MSwzLjU0NywzLjU0NywwLDAsMCwzLjUwOS4zLDEuNTQ2LDEuNTQ2LDAsMCwwLC44MjktMS42NTNsLS4wMDUtLjA2N2EuOTg5Ljk4OSwwLDAsMCwuMDU2LS4xNTgsMTEuMTg2LDExLjE4NiwwLDAsMCwuMjg4LTIuMDY4LDguOTM5LDguOTM5LDAsMCwxLC4yNTktMS44MjIsNC43MjcsNC43MjcsMCwwLDAsLjM4OS0xLjU4OGwuMDQyLjA0OGExMi42NjEsMTIuNjYxLDAsMCwwLDEuMjU1LDEuMTI5LDEwLjMsMTAuMywwLDAsMSwxLjEuOTg5bC0uMDExLjAzOGEuNTMyLjUzMiwwLDAsMS0uMzQyLjM1OWwtLjA0OS4wMTdhMS45MjEsMS45MjEsMCwwLDAtMS4xODQsMS4zMzQsMS4zMTMsMS4zMTMsMCwwLDAsLjQ1MiwxLjIzNCwxLDEsMCwwLDAsLjQ0MS4yMjIsNC45MDgsNC45MDgsMCwwLDAsMi43MzUtLjE4MSwxLjU1NiwxLjU1NiwwLDAsMCwuMjY2LS4xMjQsMS40MTEsMS40MTEsMCwwLDAsLjk3LjM3MiwyLjMyNiwyLjMyNiwwLDAsMCwxLS4yNzRjLjA0OS0uMDIzLjEtLjA0NS4xNC0uMDYyYTEsMSwwLDAsMCwuNjM3LS44NjQsNC41NTMsNC41NTMsMCwwLDAtLjQ2OC0yLjM0MywxLjU2LDEuNTYsMCwwLDAtLjUxLS42LDEwLjgsMTAuOCwwLDAsMSwxLjMtMi4xNSwyLjE5MywyLjE5MywwLDAsMCwuNDUxLTIuMDI2LDIuNTE5LDIuNTE5LDAsMCwxLS4wNDMtLjM5NCwxLjA0NiwxLjA0NiwwLDAsMCwwLS4xNDgsNS43NTYsNS43NTYsMCwwLDEsLjAxMi0xLjI3OSw3LjE2MSw3LjE2MSwwLDAsMCwuOTUxLDEuNzkzLDcuODkyLDcuODkyLDAsMCwxLC4xMzMsMS4xLDEwLjczMywxMC43MzMsMCwwLDAsLjEzMywxLjE4Niw5LjM2LDkuMzYsMCwwLDEtLjIyNCwzLjksMSwxLDAsMCwwLS4wMzIuMzRoMGEuOTguOTgsMCwwLDAtLjEuMTc5LDIuMjM4LDIuMjM4LDAsMCwwLS4zMTIsMS4yMzUsMS4wMDcsMS4wMDcsMCwwLDAsLjAzOS4yLDEuMzE1LDEuMzE1LDAsMCwwLDEuMzI4Ljk2M2MuMDg2LDAsLjE3Ny0uMDA2LjI2OC0uMDE0bC4wMTksMCwuMDM4LjAxM2EyLjEwOSwyLjEwOSwwLDAsMCwyLjUxNy0xLjA4OCwxLDEsMCwwLDAsLjA1OC0uNzM1LDUuMjg1LDUuMjg1LDAsMCwxLS4yMDgtMS4wMjcsMS4wMTEsMS4wMTEsMCwwLDAtLjA0Ni0uMjE3LDYuNDcsNi40NywwLDAsMS0uMjIxLTMuMjIsMS4xMTIsMS4xMTIsMCwwLDAsLjAxNS0uMTE0LDMuOTA3LDMuOTA3LDAsMCwxLC4wNzQtLjQ0MywyLjczOCwyLjczOCwwLDAsMC0uMTkzLTIuMSw0LjMzOSw0LjMzOSwwLDAsMSwuMDIxLS40NzZjLjAxMS0uMTQ3LjAyMy0uMy4wMjctLjQ2M2ExLjU5LDEuNTksMCwwLDAsLjg2Mi0uODUxLDEyLjgzLDEyLjgzLDAsMCwwLC45NDctMi4yMywxLjcxOSwxLjcxOSwwLDAsMCwuMTcyLTEuMTg1LDEuMjM0LDEuMjM0LDAsMCwwLC4xMTEtLjI1MUExLjQ2NywxLjQ2NywwLDAsMCwyOS4yNSwxMy44Wk0xOC44NjMsMjIuNzY4Yy0uMDI2LDAtLjA1My0uMDA4LS4wOC0uMDFsLS4wMjQsMGEyLjc0OCwyLjc0OCwwLDAsMS0uMjM2LS4zMjNjLS4wNTktLjA4OC0uMTE4LS4xNzUtLjE3OC0uMjU4YTIuMjUzLDIuMjUzLDAsMCwwLC4yMDgtLjIzNCwxLjI1NSwxLjI1NSwwLDAsMCwuNjI5LS4zMjFBMy4xODYsMy4xODYsMCwwLDEsMTguODYzLDIyLjc2OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZGVkZWRcXFwiLz48cGF0aCBkPVxcXCJNMTkuMjg5LDIuM2MtLjU0OC0uMDY1LS45NjEuMy0xLjQxOS41MDYtLjM2OC4yMDYtLjgxNS4xNTItMS4xODUuMzA5LS4yODIuNTc5LS45NDEuOTA4LTEuMywxLjQ0M2E1LjcsNS43LDAsMCwxLTEuOTQyLDIuNjk0LDUuNDY0LDUuNDY0LDAsMCwwLTIuMzY4LDMuMzk0Yy0uMTQ1LjMtLjEyMi43NDYtLjI3NywxLS41MTEuMTQzLS4yMzktLjUxNi0uMy0uODI1LS4wNzQtLjQ3LjM0MS0uNzcuMzczLTEuMjI2YTEuODM0LDEuODM0LDAsMCwwLC4yMDktMS4wNTNjLS4wNTYtLjgxNC4xODktMS44MDctLjM5My0yLjQ3Ny0uMzQ5LS4yLS4yMzktLjYyMy0uMzY2LS45NDdhNC4yMTQsNC4yMTQsMCwwLDAtMS4zLTEuMTM5Yy0uNDE5LS4wNDEtLjgwNi0uNTQyLTEuMjMyLS4zMjMtLjI2Ni4zMDktLjc2My4zMDUtLjkyMi43MTMtLjEuNTE2LS42ODguMzc0LTEuMDY4LjUtLjQ4OC4xODUtMS4xMTguMDA2LTEuNTE4LjM4Mi0uNDExLjQxLTEuMDM0Ljk2MS0uODM1LDEuNjA2LjQ1Ny44ODIsMS42NDUuNDM4LDIuMzE3Ljk3NEExNy45OSwxNy45OSwwLDAsMSw1LjAzNiw5LjYxYTEwLjA1MSwxMC4wNTEsMCwwLDAtLjA0NCwyLjMzMmMuMTIzLjc3My0uMDgzLDEuNzcyLjYwNiwyLjMxOS4zOC4xMzcuMzU3LjU3Mi41Ljg4Ny4xMzQuMjkuNDI3LS4xMTMuNTQzLjE5My4zMzguMTg0LjAzNy41NjEuMjIuOC4yNjMuMTM3LjYzOS4xMjguODIyLjQyNmE2Ljg0NCw2Ljg0NCwwLDAsMSwuOTc1LjgwNmMuMjMuNDY3LjUzMS0uNDU0Ljc4My0uMTA5LjE3LjI4NS41MDYuNTIyLjgxOS4yODVhMi45OTMsMi45OTMsMCwwLDAsMS4zMjQtLjU1NiwxOC4wMzMsMTguMDMzLDAsMCwxLC4xNzEsMi43MTgsMTEuNzMzLDExLjczMywwLDAsMSwuMjksMiw5LjQwOSw5LjQwOSwwLDAsMSwuMywyLjAzLDcuMTExLDcuMTExLDAsMCwxLS43MDksNC4xNiwxLjAxMiwxLjAxMiwwLDAsMS0uODA3LjhjLS4yOTEuMTMtLjkuMzY2LS42OTIuNzc2YTIuNTQ5LDIuNTQ5LDAsMCwwLDIuNTIuMjE0Yy41MS0uMjQzLjA3My0uODU4LjMzNC0xLjIyNi4zNDMtMS4zLjE3NC0yLjY5MS41NzUtMy45ODVhMy43NjIsMy43NjIsMCwwLDAsLjMtMi4xYy4wNzktLjQ0LS4xMDUtLjk2OS4xODctMS4zMjlhMS44MTMsMS44MTMsMCwwLDEsLjQ4My0xLjIsMTQuNzYyLDE0Ljc2MiwwLDAsMCwuMTQ0LTIuMDI2LDMuMjE0LDMuMjE0LDAsMCwxLDEuMjY3LS4xMjdjLjAxOC4zNzUtLjI3Mi44MTItLjE5LDEuMjM0QTEuOTQ4LDEuOTQ4LDAsMCwxLDE1LjUsMjAuM2EyLjg0OSwyLjg0OSwwLDAsMCwuMTY4LDIuMzA4Yy43ODIuODM5LDEuOCwxLjQzMiwyLjUzNiwyLjMyNy4zMTQuMjA1LjIuNTE3LjAzOC43ODRhMS41MjgsMS41MjgsMCwwLDEtLjk4NywxLjAzNGMtLjMwOC4xMjEtLjgwNi41NjYtLjQ0Mi44ODJhMy45MDYsMy45MDYsMCwwLDAsMi4xNzgtLjE0NGMuNDc2LS4xNzEuMy0uNzM4LjQ4OC0xLjA4OC4zLjIzMy40MjMuNzY1LjcxMSwxLjA2OS4zLjQzMy44MDcuMDczLDEuMTU2LS4wNjJhMy41NDksMy41NDksMCwwLDAtLjM3Mi0xLjg0MmMtLjE2Ny0uMzc4LS44LS4zODUtLjc3LS44NTJhMTEuNzYxLDExLjc2MSwwLDAsMSwxLjcxMi0zYy41MS0uNDc5LjEzLTEuMTkxLjE1OC0xLjhBNi43NjUsNi43NjUsMCwwLDEsMjMuMTU4LDE1LjVhMTUuODg5LDE1Ljg4OSwwLDAsMCwuNjkyLDIuMTQsNi4yMyw2LjIzLDAsMCwwLDEuMSwyLjI0NmMuMjM3LjgxMS4xNzYsMS43MS4zMzEsMi41NTFhMTAuNDQsMTAuNDQsMCwwLDEtLjI0Miw0LjM0N2MuMDQuNTE4LS40NTcuOS0uNDE1LDEuNDA4LjE0LjQ2OS43LjA5My45OS4yOWExLjExLDEuMTEsMCwwLDAsMS4zMjQtLjU3Miw2LjIxMiw2LjIxMiwwLDAsMS0uMjQ3LTEuMjIzLDcuNDU0LDcuNDU0LDAsMCwxLS4yNTUtMy43MTljLjA0Ni0uNjY5LjQ1Ny0xLjUtLjA3My0yLjA3Mi0uMTQ4LS42MTkuMS0xLjI4NS0uMDQ5LTEuOTE1YTEyLjg3NywxMi44NzcsMCwwLDEtLjEyMi00LjkzM2MuMDkzLS4yMjcuMDEzLS42NDkuMjQ3LS43NzVhMS44NTEsMS44NTEsMCwwLDEsLjMxNSwxLjIzMiwzLjcsMy43LDAsMCwxLC4wNzksMi4wODFjLS40MjQuNTMxLS4xNjMsMS4yNDgtLjEwOSwxLjg1LjA2OC40MjIuNTE2LjExOC41ODktLjE0NGExMS44NTEsMTEuODUxLDAsMCwwLC45NDQtMi4yNDFjLjI2OS0uMzU2LjAxNC0uNzcsMC0xLjE0Mi40MTMtLjA0OS4yNTYtLjUwNi4wMzUtLjdhNS45Myw1LjkzLDAsMCwwLS42NjctMi4yLDEwLjQ2NCwxMC40NjQsMCwwLDEtMS45NDEtMi43MjNjLS41MjgtMS42MzktMi4wNDItMi43MjYtMi41NTYtNC4zNzlhMy41NTYsMy41NTYsMCwwLDAtMS42NTItMi4zMTdBNy44ODEsNy44ODEsMCwwLDAsMjAuMzIsMi4xNyw2LjUsNi41LDAsMCwxLDE5LjI4OSwyLjNabS40LDE0LjY2YTM4LjkwNywzOC45MDcsMCwwLDEsLjUsNC4yOTEsNC4xNzUsNC4xNzUsMCwwLDEtLjc2LDIuNTE3Yy0uMTIuNDI1LS40ODYuMDEyLS43NTEtLjAxNi0uNjQzLS4wMTgtLjg4Mi0uNjgzLTEuMjMyLTEuMTA3LS4zNi0uMzQ0LS4xLS44LjEzMy0xLjEzMS4yNTItLjE3OS4zNS0uNTc5LjcwOC0uNTQ4LjQtLjAwNy4zMTYtLjQ4Ny4yNi0uNzQzLjIzOC0uMzYyLjA5Mi0uODkyLjMyOC0xLjI4My40MTktLjE4Mi4yOTQtLjgyLjQ0Mi0xLjE4LjExNS0uMjU2LjAxNy0uNzQ5LjMzNC0uODU0LjAzNy0uMDA2LjA0OS4wMTIuMDQyLjA1MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzYTNjNWJcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIiNcIixcblx0XHRdLFxuXHR9LFxuXHRcIlBIUFwiOiB7XG5cdFx0Y29sb3VyOiBcIiM0YzZiOTZcIixcblx0XHRpY29uOiBcIjxkZWZzPjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiYVxcXCIgY3g9XFxcIi0xNi4xMTRcXFwiIGN5PVxcXCIyMC41MzJcXFwiIHI9XFxcIjE4LjM4NFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgyNi41MiAtOS4zMDcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiM0YzZiOTZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMyMzFmMjBcXFwiLz48L3JhZGlhbEdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3BocDwvdGl0bGU+PGVsbGlwc2UgY3g9XFxcIjE2XFxcIiBjeT1cXFwiMTZcXFwiIHJ4PVxcXCIxNFxcXCIgcnk9XFxcIjcuMzY1XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PGVsbGlwc2UgY3g9XFxcIjE2XFxcIiBjeT1cXFwiMTZcXFwiIHJ4PVxcXCIxMy40NTNcXFwiIHJ5PVxcXCI2LjgxOFxcXCIgc3R5bGU9XFxcImZpbGw6IzYyODBiNlxcXCIvPjxwYXRoIGQ9XFxcIk0xOC43MjUsMTguMmwuNjY3LTMuNDM0YTEuNzUyLDEuNzUyLDAsMCwwLS4zNzItMS43MTksMi45MjksMi45MjksMCwwLDAtMi0uNTI1SDE1Ljg2N2wuMzMxLTEuN2EuMjE5LjIxOSwwLDAsMC0uMjE1LS4yNmgtMS42YS4yMTkuMjE5LDAsMCwwLS4yMTUuMTc3bC0uNzA5LDMuNjQ2YTIuMDUxLDIuMDUxLDAsMCwwLS40NzctMS4wNTQsMi43ODMsMi43ODMsMCwwLDAtMi4yLS44MDdINy43YS4yMTkuMjE5LDAsMCwwLS4yMTUuMTc3bC0xLjQzNCw3LjM4YS4yMTkuMjE5LDAsMCwwLC4yMTUuMjZINy44NjlhLjIxOS4yMTksMCwwLDAsLjIxNS0uMTc3bC4zNDctMS43ODVoMS4yYTUuMTY3LDUuMTY3LDAsMCwwLDEuNTY4LS4yLDMuMDY4LDMuMDY4LDAsMCwwLDEuMTUtLjY4OSwzLjUzOCwzLjUzOCwwLDAsMCwuNjgtLjg0NGwtLjI4NywxLjQ3NWEuMjE5LjIxOSwwLDAsMCwuMjE1LjI2aDEuNmEuMjE5LjIxOSwwLDAsMCwuMjE1LS4xNzdsLjc4Ny00LjA1MWgxLjA5NGMuNDY2LDAsLjYuMDkzLjY0LjEzM3MuMS4xNjUuMDI1LjU2OWwtLjYzNSwzLjI2NWEuMjE5LjIxOSwwLDAsMCwuMjE1LjI2aDEuNjJBLjIxOS4yMTksMCwwLDAsMTguNzI1LDE4LjJaTTExLjMzLDE1LjM2NmExLjc0OSwxLjc0OSwwLDAsMS0uNTYxLDEuMDkyLDIuMTcxLDIuMTcxLDAsMCwxLTEuMzE1LjMyMUg4Ljc0MmwuNTE1LTIuNjUxaC45MjFjLjY3NywwLC45NDkuMTQ1LDEuMDU5LjI2NkExLjE4MSwxLjE4MSwwLDAsMSwxMS4zMywxNS4zNjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTI1LjU0NiwxMy4zMzJhMi43ODMsMi43ODMsMCwwLDAtMi4yLS44MDdIMjAuMjU1YS4yMTkuMjE5LDAsMCwwLS4yMTUuMTc3bC0xLjQzNCw3LjM4YS4yMTkuMjE5LDAsMCwwLC4yMTUuMjZoMS42MDhhLjIxOS4yMTksMCwwLDAsLjIxNS0uMTc3bC4zNDctMS43ODVoMS4yYTUuMTY3LDUuMTY3LDAsMCwwLDEuNTY4LS4yLDMuMDY4LDMuMDY4LDAsMCwwLDEuMTUtLjY4OSwzLjQyNSwzLjQyNSwwLDAsMCwxLjA3Ni0xLjkyN0EyLjUxMiwyLjUxMiwwLDAsMCwyNS41NDYsMTMuMzMyWm0tMS42NjcsMi4wMzRhMS43NDksMS43NDksMCwwLDEtLjU2MSwxLjA5MkEyLjE3MSwyLjE3MSwwLDAsMSwyMiwxNi43NzhIMjEuMjlsLjUxNS0yLjY1MWguOTIxYy42NzcsMCwuOTQ5LjE0NSwxLjA1OS4yNjZBMS4xODEsMS4xODEsMCwwLDEsMjMuODc5LDE1LjM2NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTAuMTc4LDEzLjkwOGExLjY0NSwxLjY0NSwwLDAsMSwxLjIyMS4zMzgsMS4zNCwxLjM0LDAsMCwxLC4xNDUsMS4xNjEsMS45NDUsMS45NDUsMCwwLDEtLjY0MiwxLjIyM0EyLjM2MSwyLjM2MSwwLDAsMSw5LjQ1NCwxN0g4LjQ3NmwuNi0zLjA4OVpNNi4yNjEsMjAuMTI0SDcuODY5bC4zODEtMS45NjJIOS42MjdhNC45MzEsNC45MzEsMCwwLDAsMS41LS4xOTEsMi44NCwyLjg0LDAsMCwwLDEuMDctLjY0MiwzLjIwNywzLjIwNywwLDAsMCwxLjAxLTEuODA4LDIuMywyLjMsMCwwLDAtLjM4NS0yLjA0NCwyLjU2OCwyLjU2OCwwLDAsMC0yLjAzNS0uNzMySDcuN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDAwMDRcXFwiLz48cGF0aCBkPVxcXCJNMTQuMzg3LDEwLjc4MmgxLjZMMTUuNiwxMi43NDRoMS40MjFhMi43NjcsMi43NjcsMCwwLDEsMS44NS40NjgsMS41NDgsMS41NDgsMCwwLDEsLjMwNSwxLjUxNmwtLjY2NywzLjQzNEgxNi44OWwuNjM1LTMuMjY1YS44ODYuODg2LDAsMCwwLS4wOC0uNzYsMS4xMjEsMS4xMjEsMCwwLDAtLjgtLjJIMTUuMzdsLS44MjIsNC4yMjhoLTEuNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDAwMDRcXFwiLz48cGF0aCBkPVxcXCJNMjIuNzI3LDEzLjkwOGExLjY0NSwxLjY0NSwwLDAsMSwxLjIyMS4zMzgsMS4zNCwxLjM0LDAsMCwxLC4xNDUsMS4xNjEsMS45NDUsMS45NDUsMCwwLDEtLjY0MiwxLjIyM0EyLjM2MSwyLjM2MSwwLDAsMSwyMiwxN2gtLjk3OGwuNi0zLjA4OVpNMTguODEsMjAuMTI0aDEuNjA4bC4zODEtMS45NjJoMS4zNzdhNC45MzEsNC45MzEsMCwwLDAsMS41LS4xOTEsMi44NCwyLjg0LDAsMCwwLDEuMDctLjY0MiwzLjIwNywzLjIwNywwLDAsMCwxLjAxLTEuODA4LDIuMywyLjMsMCwwLDAtLjM4NS0yLjA0NCwyLjU2OCwyLjU2OCwwLDAsMC0yLjAzNS0uNzMySDIwLjI0NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDAwMDRcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIiNcIixcblx0XHRcdFwiLy9cIixcblx0XHRdLFxuXHR9LFxuXHRcIlBML1NRTFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNmZjAwMDBcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk04LjU2MiwxNS4yNTZBMjEuMTU5LDIxLjE1OSwwLDAsMCwxNiwxNi40NDlhMjEuMTU5LDIxLjE1OSwwLDAsMCw3LjQzOC0xLjE5NGMxLjg2NC0uNzI3LDIuNTI1LTEuNTM1LDIuNTI1LTJWOS43YTEwLjM1NywxMC4zNTcsMCwwLDEtMi4wODQsMS4wNzZBMjIuMjkzLDIyLjI5MywwLDAsMSwxNiwxMi4wNzhhMjIuMzYsMjIuMzYsMCwwLDEtNy44NzktMS4zQTEwLjI4LDEwLjI4LDAsMCwxLDYuMDM3LDkuN3YzLjU1QzYuMDM3LDEzLjcyNCw2LjcsMTQuNTI4LDguNTYyLDE1LjI1NlpcXFwiIHN0eWxlPVxcXCJmaWxsOnJlZFxcXCIvPjxwYXRoIGQ9XFxcIk04LjU2MiwyMS45NjFhMTUuNjExLDE1LjYxMSwwLDAsMCwyLjYuNzQxQTI0LjksMjQuOSwwLDAsMCwxNiwyMy4xNTVhMjQuOSwyNC45LDAsMCwwLDQuODM4LS40NTIsMTUuNjE0LDE1LjYxNCwwLDAsMCwyLjYtLjc0MWMxLjg2NC0uNzI3LDIuNTI1LTEuNTM1LDIuNTI1LTJ2LTMuMzlhMTAuNzA2LDEwLjcwNiwwLDAsMS0xLjY5Mi44MjVBMjMuNDksMjMuNDksMCwwLDEsMTYsMTguNzRhMjMuNDksMjMuNDksMCwwLDEtOC4yNzEtMS4zNDgsMTAuODI5LDEwLjgyOSwwLDAsMS0xLjY5Mi0uODI1VjE5Ljk2QzYuMDM3LDIwLjQyNiw2LjcsMjEuMjMxLDguNTYyLDIxLjk2MVpcXFwiIHN0eWxlPVxcXCJmaWxsOnJlZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNiwzMGM1LjUsMCw5Ljk2My0xLjc0NCw5Ljk2My0zLjg5NFYyMy4yNjlhMTAuNSwxMC41LDAsMCwxLTEuNTM1Ljc2MmwtLjE1Ny4wNjNBMjMuNDg3LDIzLjQ4NywwLDAsMSwxNiwyNS40NDVhMjMuNDIyLDIzLjQyMiwwLDAsMS04LjI3MS0xLjM1MWMtLjA1NC0uMDItLjEwNi0uMDQzLS4xNTctLjA2M2ExMC41LDEwLjUsMCwwLDEtMS41MzUtLjc2MnYyLjgzN0M2LjAzNywyOC4yNTYsMTAuNSwzMCwxNiwzMFpcXFwiIHN0eWxlPVxcXCJmaWxsOnJlZFxcXCIvPjxlbGxpcHNlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjUuODk0XFxcIiByeD1cXFwiOS45NjNcXFwiIHJ5PVxcXCIzLjg5NFxcXCIgc3R5bGU9XFxcImZpbGw6cmVkXFxcIi8+XCIsXG5cdH0sXG5cdFwiUGxhaW4gdGV4dFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNjMmMyYzJcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yMi4wMzgsMkg2LjM3NWExLjc1NSwxLjc1NSwwLDAsMC0xLjc1LDEuNzV2MjQuNUExLjc1NSwxLjc1NSwwLDAsMCw2LjM3NSwzMGgxOS4yNWExLjc1NSwxLjc1NSwwLDAsMCwxLjc1LTEuNzVWNi44NTZabS41MjUsMi44NDQsMS42NjMsMS41MzFIMjIuNTYzWk02LjM3NSwyOC4yNVYzLjc1SDIwLjgxM1Y4LjEyNWg0LjgxM1YyOC4yNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cmVjdCB4PVxcXCI4LjEyNVxcXCIgeT1cXFwiMTUuMDk3XFxcIiB3aWR0aD1cXFwiMTMuMDc2XFxcIiBoZWlnaHQ9XFxcIjEuNzVcXFwiIHN0eWxlPVxcXCJmaWxsOiM4MjllYzJcXFwiLz48cmVjdCB4PVxcXCI4LjEyNVxcXCIgeT1cXFwiMjQuNDM5XFxcIiB3aWR0aD1cXFwiOS43NjJcXFwiIGhlaWdodD1cXFwiMS43NVxcXCIgc3R5bGU9XFxcImZpbGw6IzgyOWVjMlxcXCIvPjxyZWN0IHg9XFxcIjguMTI1XFxcIiB5PVxcXCIxOS43NjNcXFwiIHdpZHRoPVxcXCIxNS43NVxcXCIgaGVpZ2h0PVxcXCIxLjc1XFxcIiBzdHlsZT1cXFwiZmlsbDojODI5ZWMyXFxcIi8+PHJlY3QgeD1cXFwiOC4xMjVcXFwiIHk9XFxcIjEwLjIzXFxcIiB3aWR0aD1cXFwiMTUuNzVcXFwiIGhlaWdodD1cXFwiMS43NVxcXCIgc3R5bGU9XFxcImZpbGw6IzgyOWVjMlxcXCIvPlwiLFxuXHR9LFxuXHRcIlBsYW50VU1MXCI6IHtcblx0XHRjb2xvdXI6IFwiI0ExMUY0MVwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTMzLjQyM1xcXCIgeTE9XFxcIi0yNTAuOTExXFxcIiB4Mj1cXFwiLTMzLjM1M1xcXCIgeTI9XFxcIi0yNTAuODU4XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDM3LjEzNCwgMjYuMDAxLCAxMy41NzUsIC0xOS4zODcsIDQ2NzMuNDczLCAtMzk4Mi4wMTkpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNzY3Njc2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCItMzIuMTA3XFxcIiB5MT1cXFwiLTI0Mi41NjNcXFwiIHgyPVxcXCItMzIuMDI4XFxcIiB5Mj1cXFwiLTI0Mi41ODZcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoODEuMDgxLCA1Ni43NzQsIDE3LjMwNiwgLTI0LjcxNSwgNjgwNC4wMjEsIC00MTQ5LjY0NClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMwMDc5YjlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIi0zMy4yODJcXFwiIHkxPVxcXCItMjQzLjQyM1xcXCIgeDI9XFxcIi0zMy4yMjRcXFwiIHkyPVxcXCItMjQzLjQ1NVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg2MC4wMDMsIDQyLjAxNSwgMzQuMTg0LCAtNDguODIsIDEwMzQzLjAwNSwgLTEwNDY5LjA4NClcXFwiIHhsaW5rOmhyZWY9XFxcIiNiXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJkXFxcIiB4MT1cXFwiMTIuMzU2XFxcIiB5MT1cXFwiMjYuMjY4XFxcIiB4Mj1cXFwiMTQuMDExXFxcIiB5Mj1cXFwiMjYuMjY4XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNTk1OTU5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjA4N1xcXCIgc3RvcC1jb2xvcj1cXFwiIzZlNmU2ZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yNDJcXFwiIHN0b3AtY29sb3I9XFxcIiM4YzhjOGNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDA1XFxcIiBzdG9wLWNvbG9yPVxcXCIjYTRhNGE0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU3N1xcXCIgc3RvcC1jb2xvcj1cXFwiI2I1YjViNVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43NjVcXFwiIHN0b3AtY29sb3I9XFxcIiNiZmJmYmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNjMmMyYzJcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZVxcXCIgeDE9XFxcIjE4LjI5MVxcXCIgeTE9XFxcIjI2LjE3MVxcXCIgeDI9XFxcIjE5Ljk0NlxcXCIgeTI9XFxcIjI2LjE3MVxcXCIgeGxpbms6aHJlZj1cXFwiI2RcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImZcXFwiIHgxPVxcXCIyNC40NFxcXCIgeTE9XFxcIjI2LjE3MVxcXCIgeDI9XFxcIjI2LjA5NlxcXCIgeTI9XFxcIjI2LjE3MVxcXCIgeGxpbms6aHJlZj1cXFwiI2RcXFwiLz48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9wbGFudHVtbDwvdGl0bGU+PHBvbHlnb24gcG9pbnRzPVxcXCIyMC4zMDUgMTcuODcyIDI3LjE2IDIyLjQxOCAyMS43MiAyNS40OTMgMTQuODYxIDIwLjk5OSAyMC4zMDUgMTcuODcyXFxcIiBzdHlsZT1cXFwiZmlsbDojMWMwYTQyXFxcIi8+PHBhdGggZD1cXFwiTTIxLjcxNiwyNS42MTlsLS4wNTUtLjAzNi03LjAwNS00LjU5LDUuNjUzLTMuMjQ3LDcuMDU2LDQuNjhabS02LjY1LTQuNjEzLDYuNjU4LDQuMzYyLDUuMjMxLTIuOTU3TDIwLjMsMThaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyNi40MDEgMTEuOTA5IDI5LjQxOCAxMy41OTIgMjcuMDcgMTUuMDg4IDI0LjIxMyAxMy4yNDcgMjYuNDAxIDExLjkwOVxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy4wNjksMTUuMjE1bC0zLjA1OC0xLjk3LDIuMzg3LTEuNDYsMy4yMjgsMS44Wm0tMi42NTQtMS45NjZMMjcuMDcsMTQuOTYsMjkuMjA4LDEzLjZsLTIuOC0xLjU2NVpcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE0LjQ5OCAxNy44MDcgMjEuMzU0IDIyLjM1NCAxNS45MTQgMjUuNDI5IDkuMDU1IDIwLjkzNSAxNC40OTggMTcuODA3XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiZDNmXFxcIi8+PHBhdGggZD1cXFwiTTE1LjkxLDI1LjU1NGwtLjA1NS0uMDM2TDguODUsMjAuOTI5LDE0LjUsMTcuNjgxbDcuMDU2LDQuNjhaTTkuMjYsMjAuOTQxLDE1LjkxOCwyNS4zbDUuMjMxLTIuOTU3LTYuNjU0LTQuNDEzWlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNy45OSAxNy45NjYgMTQuOTU0IDIyLjM2NiA5LjU3NyAyNS41MDQgMi4yMTggMjAuODQ5IDcuOTkgMTcuOTY2XFxcIiBzdHlsZT1cXFwiZmlsbDojYTExZjQwXFxcIi8+PHBhdGggZD1cXFwiTTkuNTc1LDI1LjYyOSwyLDIwLjgzOGw2LTMsNy4xNjQsNC41MjdaTTIuNDM2LDIwLjg2LDkuNTgsMjUuMzc4bDUuMTY4LTMuMDE2TDcuOTg0LDE4LjA4OVpcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIuMTExIDIxLjAyMSA5LjQ0MyAyNS41MTUgOS40NDMgMjkuMDYzIDIuMTExIDI0LjMzMiAyLjExMSAyMS4wMjFcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNOS41NSwyOS4yNiwyLDI0LjM5MVYyMC44MjlMOS41NSwyNS40NTVaTTIuMjE4LDI0LjI3NGw3LjExOCw0LjU5MlYyNS41NzVMMi4yMTgsMjEuMjEzWlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjQuMDcxIDEzLjM0MyAyNy4wMDkgMTUuMjIyIDI3LjAwOSAyMi4xMzEgMjQuMDcxIDIwLjI0NyAyNC4wNzEgMTMuMzQzXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTI3LjA2MywyMi4yMjlsLTMuMDQ1LTEuOTUzVjEzLjI0NWwzLjA0NSwxLjk0N1ptLTIuOTM4LTIuMDEyLDIuODMxLDEuODE1VjE1LjI1MWwtMi44MzEtMS44MVpcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI3LjE0OSAyMi41MjYgMjcuMTQ5IDE1LjE5NCAyOS41MTQgMTMuNzc1IDI5LjUxNCAyOS4xNDkgMjguMzMxIDI5LjE0OSA5LjY0NiAyOS4xNDkgOS42NDYgMjUuNjAxIDE1LjA4NiAyMi41MjYgMTUuNzg1IDI1LjYwMSAxNS43OTYgMjUuNjAxIDIxLjQ3MiAyMi41MjYgMjEuODkxIDI1LjYwMSAyMS45NDUgMjUuNjAxIDI3LjE0OSAyMi41MjZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjkuNjIxLDI5LjI1Nkg5LjUzOVYyNS41MzhsNS42Mi0zLjE3Ny43LDMuMDgzLDUuNy0zLjA4Ny40MjIsMy4xLDUuMDYxLTIuOTkxVjE1LjEzM2wyLjU4LTEuNTQ4Wk05Ljc1MywyOS4wNDFIMjkuNDA3VjEzLjk2NGwtMi4xNTEsMS4yOXY3LjMzMmwtLjA1My4wMzEtNS4yMjksMy4wOUgyMS44bC0uNDExLTMuMDE0LTUuNTY0LDMuMDE0SDE1LjdsLS42ODYtMy4wMTgtNS4yNiwyLjk3M1pcXFwiLz48cmVjdCB4PVxcXCIxMi4zNTZcXFwiIHk9XFxcIjI1LjQ0XFxcIiB3aWR0aD1cXFwiMS42NTZcXFwiIGhlaWdodD1cXFwiMS42NTZcXFwiIHJ4PVxcXCIwLjIxNVxcXCIgcnk9XFxcIjAuMjE1XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2QpXFxcIi8+PHBhdGggZD1cXFwiTTEzLjgsMjcuMkgxMi41N2EuMzIyLjMyMiwwLDAsMS0uMzIyLS4zMjJWMjUuNjU1YS4zMjIuMzIyLDAsMCwxLC4zMjItLjMyMkgxMy44YS4zMjIuMzIyLDAsMCwxLC4zMjIuMzIydjEuMjI2QS4zMjIuMzIyLDAsMCwxLDEzLjgsMjcuMlpNMTIuNTcsMjUuNTQ3YS4xMDguMTA4LDAsMCwwLS4xMDcuMTA3djEuMjI2YS4xMDguMTA4LDAsMCwwLC4xMDcuMTA3SDEzLjhhLjEwOC4xMDgsMCwwLDAsLjEwNy0uMTA3VjI1LjY1NWEuMTA4LjEwOCwwLDAsMC0uMTA3LS4xMDdaXFxcIi8+PHJlY3QgeD1cXFwiMTguMjkxXFxcIiB5PVxcXCIyNS4zNDNcXFwiIHdpZHRoPVxcXCIxLjY1NlxcXCIgaGVpZ2h0PVxcXCIxLjY1NlxcXCIgcng9XFxcIjAuMjE1XFxcIiByeT1cXFwiMC4yMTVcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZSlcXFwiLz48cGF0aCBkPVxcXCJNMTkuNzMyLDI3LjEwNkgxOC41MDVhLjMyMi4zMjIsMCwwLDEtLjMyMi0uMzIyVjI1LjU1OGEuMzIyLjMyMiwwLDAsMSwuMzIyLS4zMjJoMS4yMjZhLjMyMi4zMjIsMCwwLDEsLjMyMi4zMjJ2MS4yMjZBLjMyMi4zMjIsMCwwLDEsMTkuNzMyLDI3LjEwNlptLTEuMjI2LTEuNjU2YS4xMDguMTA4LDAsMCwwLS4xMDcuMTA3djEuMjI2YS4xMDguMTA4LDAsMCwwLC4xMDcuMTA3aDEuMjI2YS4xMDguMTA4LDAsMCwwLC4xMDctLjEwN1YyNS41NThhLjEwOC4xMDgsMCwwLDAtLjEwNy0uMTA3WlxcXCIvPjxyZWN0IHg9XFxcIjI0LjQ0XFxcIiB5PVxcXCIyNS4zNDNcXFwiIHdpZHRoPVxcXCIxLjY1NlxcXCIgaGVpZ2h0PVxcXCIxLjY1NlxcXCIgcng9XFxcIjAuMjE1XFxcIiByeT1cXFwiMC4yMTVcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZilcXFwiLz48cGF0aCBkPVxcXCJNMjUuODgxLDI3LjEwNkgyNC42NTVhLjMyMi4zMjIsMCwwLDEtLjMyMi0uMzIyVjI1LjU1OGEuMzIyLjMyMiwwLDAsMSwuMzIyLS4zMjJoMS4yMjZhLjMyMi4zMjIsMCwwLDEsLjMyMi4zMjJ2MS4yMjZBLjMyMi4zMjIsMCwwLDEsMjUuODgxLDI3LjEwNlptLTEuMjI2LTEuNjU2YS4xMDguMTA4LDAsMCwwLS4xMDcuMTA3djEuMjI2YS4xMDguMTA4LDAsMCwwLC4xMDcuMTA3aDEuMjI2YS4xMDguMTA4LDAsMCwwLC4xMDctLjEwN1YyNS41NThhLjEwOC4xMDgsMCwwLDAtLjEwNy0uMTA3WlxcXCIvPjxwYXRoIGQ9XFxcIk0yNy4yMTUsMTEuMjNjLS4wNTIuMDY5LS40MTctLjI2Mi0uNjUzLS41MjZhNC40MDgsNC40MDgsMCwwLDEtLjUxNi0uNzNBMi42LDIuNiwwLDAsMSwyNS43LDkuMmEyLjM1OCwyLjM1OCwwLDAsMS0uMDUyLS42ODIsMi45NTksMi45NTksMCwwLDEsLjEyOS0uNzQ5LDMuMTQyLDMuMTQyLDAsMCwxLC43ODctMS4yMDcsMTUuNTMyLDE1LjUzMiwwLDAsMCwxLjI4My0xLjQsMy4wNjIsMy4wNjIsMCwwLDAsLjQ3OS0uOTI3LDMuOTc5LDMuOTc5LDAsMCwwLC4xNTEtLjg1NWMuMDE5LS4zNjQtLjAyNS0uNTkzLjAyMy0uNjEzcy4yMTUuMjc0LjI4Ny41NjRhMy4xNjcsMy4xNjcsMCwwLDEtLjQ1OCwyLjEsNi45LDYuOSwwLDAsMS0xLjA5NCwxLjQ0OCwyLjgsMi44LDAsMCwwLS44NDksMS4yMzRBMi40NjYsMi40NjYsMCwwLDAsMjYuMyw4LjhhMy40NjUsMy40NjUsMCwwLDAsLjQ3NiwxLjU0MkMyNy4wNjQsMTAuOTE0LDI3LjI1NiwxMS4xNzUsMjcuMjE1LDExLjIzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2VhMmQyZVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy4xOTMsMTEuMjY2Yy0uMTI0LDAtLjQ5Mi0uMzY1LS42NTEtLjU0NGE0LjQ3OCw0LjQ3OCwwLDAsMS0uNTItLjczNCwyLjYyOCwyLjYyOCwwLDAsMS0uMzQ2LS43ODEsMi4zNzUsMi4zNzUsMCwwLDEtLjA1My0uNjksMi45NzgsMi45NzgsMCwwLDEsLjEzLS43NTYsMy4yMDgsMy4yMDgsMCwwLDEsLjc5My0xLjIxNmMuMjk0LS4zMzEuNS0uNTI4LjY1OS0uNjg2YTQuMzkzLDQuMzkzLDAsMCwwLC42MjItLjcxMSwzLjA1MiwzLjA1MiwwLDAsMCwuNDc2LS45MTksMy45NTEsMy45NTEsMCwwLDAsLjE1LS44NDljLjAwOC0uMTU5LDAtLjI5NCwwLS4zOTMsMC0uMTU5LS4wMDYtLjIyNS4wMzgtLjI0M2EuMDUuMDUsMCwwLDEsLjA0MywwLDEuMjI2LDEuMjI2LDAsMCwxLC4yOC41NzksMy4xNjcsMy4xNjcsMCwwLDEtLjQ2LDIuMTIxLDYuOTI4LDYuOTI4LDAsMCwxLTEuMSwxLjQ1M2MtLjA1NS4wNi0uMTA5LjExNi0uMTYyLjE3MWEyLjMsMi4zLDAsMCwwLS42ODEsMS4wNTIsMi40NywyLjQ3LDAsMCwwLS4wODIuNjczLDMuNDU4LDMuNDU4LDAsMCwwLC40NzMsMS41M2MuMTE0LjIzMS4yMTUuNDE1LjI4OS41NDkuMTI5LjIzNS4xNzguMzIzLjE0Mi4zNjloMGEuMDUxLjA1MSwwLDAsMS0uMDQuMDJaTTI4LjUxMiwyLjhhLjg2My44NjMsMCwwLDAsMCwuMTljMCwuMS4wMDcuMjM2LDAsLjRhNC4wMjEsNC4wMjEsMCwwLDEtLjE1Mi44NjEsMy4xMDYsMy4xMDYsMCwwLDEtLjQ4My45MzQsNC40MzcsNC40MzcsMCwwLDEtLjYyOS43MTljLS4xNjIuMTU4LS4zNjQuMzU0LS42NTcuNjgzYTMuMTY4LDMuMTY4LDAsMCwwLS43ODIsMS4yLDIuOTMzLDIuOTMzLDAsMCwwLS4xMjguNzQzLDIuMzI1LDIuMzI1LDAsMCwwLC4wNTIuNjc1LDIuNTksMi41OSwwLDAsMCwuMzQxLjc2Nyw0LjQyMiw0LjQyMiwwLDAsMCwuNTEzLjcyNSwyLjAzNSwyLjAzNSwwLDAsMCwuNjExLjUyNiwxLjE4MywxLjE4MywwLDAsMC0uMTQ3LS4zMWMtLjA3NC0uMTM0LS4xNzUtLjMxOC0uMjktLjU1MUEzLjUsMy41LDAsMCwxLDI2LjI3OCw4LjhhMi41MywyLjUzLDAsMCwxLC4wODQtLjY4OCwyLjM3NSwyLjM3NSwwLDAsMSwuNjk0LTEuMDc1Yy4wNTItLjA1NS4xMDYtLjExMS4xNjEtLjE3MWE2Ljg3OSw2Ljg3OSwwLDAsMCwxLjA5LTEuNDQyLDMuMTE5LDMuMTE5LDAsMCwwLC40NTYtMi4wODNBMS4yODEsMS4yODEsMCwwLDAsMjguNTEyLDIuOFpcXFwiLz48cGF0aCBkPVxcXCJNMjkuOTcyLDYuMDg3Yy0uMDE5LS4wODgtLjQzMi0uMDQtLjc2Ni4wNzNhMi42LDIuNiwwLDAsMC0xLjA1OS43MjIsMi44LDIuOCwwLDAsMC0uOTE2LDEuODU1LDIuOTcyLDIuOTcyLDAsMCwwLC4yNTgsMS4wNmMuMjIxLjU3Mi40NTUuNzczLjQ0NCwxLjIyNS0uMDA3LjMtLjExNC40ODQtLjA0OC41NDlzLjMxNC0uMS40NjItLjMxM2ExLjgsMS44LDAsMCwwLC4yNTktMS4wMjJjLS4wNDYtLjgxNS0uNi0xLjAxNS0uNjA4LTEuOGExLjg1OCwxLjg1OCwwLDAsMSwuMTI5LS42NzZDMjguNTcsNi41MDksMzAuMDA4LDYuMjUyLDI5Ljk3Miw2LjA4N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNlYTJkMmVcXFwiLz48cGF0aCBkPVxcXCJNMjcuOTM0LDExLjYxN2EuMDk0LjA5NCwwLDAsMS0uMDY5LS4wMjZjLS4wNDYtLjA0Ni0uMDMtLjEyMi0uMDA1LS4yMzdhMS43MTgsMS43MTgsMCwwLDAsLjA0NS0uMzMxLDEuMzc0LDEuMzc0LDAsMCwwLS4yMTQtLjcyLDUsNSwwLDAsMS0uMjI4LS40OTUsMi45OCwyLjk4LDAsMCwxLS4yNTktMS4wNywyLjgxLDIuODEsMCwwLDEsLjkyMy0xLjg3NCwyLjY0LDIuNjQsMCwwLDEsMS4wNy0uNzI5LDEuNDgyLDEuNDgyLDAsMCwxLC43NjYtLjFBLjA2NS4wNjUsMCwwLDEsMzAsNi4wODFoMGMuMDE1LjA3LS4wOTIuMTIxLS4zMDYuMjI0YTIuNzMsMi43MywwLDAsMC0xLjU0MiwxLjQ2MywxLjgyNywxLjgyNywwLDAsMC0uMTI3LjY2NywxLjY0NSwxLjY0NSwwLDAsMCwuMjkxLjg4NSwxLjg4OSwxLjg4OSwwLDAsMSwuMzE3LjkxNCwxLjgxNCwxLjgxNCwwLDAsMS0uMjY0LDEuMDM5LjgwOS44MDksMCwwLDEtLjQyMS4zNDJabTEuODg5LTUuNTQ5YTIuMTE3LDIuMTE3LDAsMCwwLS42MDguMTE3LDIuNTg4LDIuNTg4LDAsMCwwLTEuMDQ4LjcxNSwyLjc2NCwyLjc2NCwwLDAsMC0uOTA5LDEuODM3LDIuOTM1LDIuOTM1LDAsMCwwLC4yNTYsMS4wNSw0Ljk1NSw0Ljk1NSwwLDAsMCwuMjI1LjQ5LDEuNDMzLDEuNDMzLDAsMCwxLC4yMi43NDUsMS43NjUsMS43NjUsMCwwLDEtLjA0Ny4zNDFjLS4wMTkuMDkxLS4wMzUuMTYzLS4wMDkuMTg4YS4wNDYuMDQ2LDAsMCwwLC4wMzguMDEuNzY5Ljc2OSwwLDAsMCwuMzgyLS4zMiwxLjc5MywxLjc5MywwLDAsMCwuMjU0LTEuMDA1LDEuODQ0LDEuODQ0LDAsMCwwLS4zMS0uODksMS43MTEsMS43MTEsMCwwLDEtLjMtLjkxMSwxLjg3NywxLjg3NywwLDAsMSwuMTMtLjY4NkEyLjc3NiwyLjc3NiwwLDAsMSwyOS42Nyw2LjI1N2MuMTI2LS4wNjEuMjgzLS4xMzYuMjc3LS4xNjRsLS4wMDgtLjAwN0EuMjY0LjI2NCwwLDAsMCwyOS44MjMsNi4wNjhaXFxcIi8+XCIsXG5cdH0sXG5cdFwiUG93ZXJRdWVyeVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNjZmNmY2ZcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0zMCwyNS41ODNIMjUuNzU3VjE1LjM3OGE4LjI3MSw4LjI3MSwwLDAsMC0uODMyLTQuMjYxQTMuMDYxLDMuMDYxLDAsMCwwLDIyLjExOCw5LjhhMy4zODMsMy4zODMsMCwwLDAtMi44MjYsMS42NjQsNi43OTEsNi43OTEsMCwwLDAtMS4xNjEsMy45ODdWMjUuNTgzSDEzLjg2OVYxNS4wMzFxMC01LjIzMS0zLjY5NC01LjIzMWEzLjMzMiwzLjMzMiwwLDAsMC0yLjgyNiwxLjU3Myw2LjkzNSw2LjkzNSwwLDAsMC0xLjEwNiw0LjA3OFYyNS41ODNIMlY2Ljg1Nkg2LjI0M1Y5LjgxOGguMDczYTYuNDg4LDYuNDg4LDAsMCwxLDUuOTA3LTMuNCw1LjU2OSw1LjU2OSwwLDAsMSwzLjM5MywxLjA3QTUuMzI4LDUuMzI4LDAsMCwxLDE3LjYsMTAuMjk0YTYuNjgzLDYuNjgzLDAsMCwxLDYuMjE4LTMuODc3UTMwLDYuNDE3LDMwLDE0LjA0M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZmNmY2ZcXFwiLz5cIixcblx0fSxcblx0XCJQb3dlclNoZWxsXCI6IHtcblx0XHRjb2xvdXI6IFwiIzUzOTFmZVwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMjMuMzI1XFxcIiB5MT1cXFwiLTExOC41NDNcXFwiIHgyPVxcXCI3LjI2XFxcIiB5Mj1cXFwiLTEwNC4xOTNcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIC05NilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM1MzkxZmVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzZTZkYmZcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIjcuMVxcXCIgeTE9XFxcIi0xMDQuMDAyXFxcIiB4Mj1cXFwiMjMuMDAxXFxcIiB5Mj1cXFwiLTExOC4yOTJcXFwiIHhsaW5rOmhyZWY9XFxcIiNhXFxcIi8+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfcG93ZXJzaGVsbDwvdGl0bGU+PHBhdGggZD1cXFwiTTMuMTc0LDI2LjU4OWExLjE1NCwxLjE1NCwwLDAsMS0uOTI4LS40MjMsMS4yMzQsMS4yMzQsMCwwLDEtLjIxLTEuMDUyTDYuMjMzLDYuNzhBMS44LDEuOCwwLDAsMSw3LjkxNCw1LjQxSDI4LjgyNmExLjE1NywxLjE1NywwLDAsMSwuOTI4LjQyMywxLjIzNSwxLjIzNSwwLDAsMSwuMjEsMS4wNTJsLTQuMiwxOC4zMzVhMS44LDEuOCwwLDAsMS0xLjY4MSwxLjM3SDMuMTc0WlxcXCIgc3R5bGU9XFxcImZpbGwtcnVsZTpldmVub2RkO2ZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk03LjkxNCw1LjY0NkgyOC44MjZhLjkxMy45MTMsMCwwLDEsLjkwOCwxLjE4N2wtNC4yLDE4LjMzNGExLjU3NSwxLjU3NSwwLDAsMS0xLjQ1MSwxLjE4N0gzLjE3NGEuOTEzLjkxMywwLDAsMS0uOTA4LTEuMTg3bDQuMi0xOC4zMzRBMS41NzQsMS41NzQsMCwwLDEsNy45MTQsNS42NDZaXFxcIiBzdHlsZT1cXFwiZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTE2LjA0LDIxLjU0NGg1LjA4NmExLjExOCwxLjExOCwwLDAsMSwwLDIuMjM0SDE2LjA0YTEuMTE4LDEuMTE4LDAsMCwxLDAtMi4yMzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojMmM1NTkxO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE5LjMzOSwxNi41NzhhMS43NjIsMS43NjIsMCwwLDEtLjU5MS42TDkuMzA5LDIzLjk1M2ExLjIyNCwxLjIyNCwwLDAsMS0xLjQzOC0xLjk3N2w4LjUxMi02LjE2NHYtLjEyNkwxMS4wMzUsMTBhMS4yMjQsMS4yMjQsMCwwLDEsMS43ODItMS42NzJsNi40MTgsNi44MjdBMS4xNjYsMS4xNjYsMCwwLDEsMTkuMzM5LDE2LjU3OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyYzU1OTE7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTkuMSwxNi4zNDJhMS43NDksMS43NDksMCwwLDEtLjU5LjZMOS4wNzQsMjMuNzE4YTEuMjI1LDEuMjI1LDAsMCwxLTEuNDM5LTEuOTc3bDguNTEzLTYuMTY0VjE1LjQ1TDEwLjgsOS43NjFhMS4yMjQsMS4yMjQsMCwwLDEsMS43ODMtMS42NzJMMTksMTQuOTE2QTEuMTYyLDEuMTYyLDAsMCwxLDE5LjEsMTYuMzQyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNS45LDIxLjQxMmg1LjA4NmExLjA1OSwxLjA1OSwwLDEsMSwwLDIuMTE4SDE1LjlhMS4wNTksMS4wNTksMCwxLDEsMC0yLjExOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmY7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIiNcIixcblx0XHRdLFxuXHR9LFxuXHRcIlByb2Nlc3NpbmdcIjoge1xuXHRcdGNvbG91cjogXCIjMWM0YzcwXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxNlxcXCIgeTE9XFxcIjNcXFwiIHgyPVxcXCIxNlxcXCIgeTI9XFxcIjI5XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMWM0YzcwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMGMyYjQyXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9wcm9jZXNzaW5nbGFuZzwvdGl0bGU+PHBhdGggZD1cXFwiTTE1LjkyMiwxOS45NjJhMTMsMTMsMCwwLDEtMS42NDctLjA3N3Y1LjU1MmEyNy43NiwyNy43NiwwLDAsMSwzLjMzMi40NjFWMjlINS45NjhWMjUuOUEyNy45ODgsMjcuOTg4LDAsMCwxLDkuMywyNS40MzhWNi43MTVhMjguMjE1LDI4LjIxNSwwLDAsMS0zLjMzMS0uNDZ2LTMuMUg4Ljk1NUMxMC4xOCwzLjE1MywxMy41NDksMywxNi4yMywzYzYuMzE4LDAsOS44LDIuOTQ4LDkuOCw4QzI2LjAzMSwxNi4wMTgsMjIuMiwxOS45NjIsMTUuOTIyLDE5Ljk2MlpNMTYsNy4wNThjLS42MTMsMC0xLjE0OSwwLTEuNzIzLjAzOHY4LjYxNWE5LjY5NCw5LjY5NCwwLDAsMCwxLjQ1NS4xMTVjMy4wMjUtLjAzOCw1LjEzLTEuNzIzLDUuMTMtNC41MTlDMjAuODYyLDguNywxOS40MDcsNy4wNTgsMTYsNy4wNThaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+XCIsXG5cdH0sXG5cdFwiUHJvbG9nXCI6IHtcblx0XHRjb2xvdXI6IFwiI2VjMWMyNFwiLFxuXHRcdGljb246IFwiPGRlZnM+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJhXFxcIiBjeD1cXFwiMTM0MS4yNVxcXCIgY3k9XFxcIi0zMzk2Ljg2NlxcXCIgcj1cXFwiMTguMjk5XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0xMzI3LjA3NyAzNDA1LjkzNSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMTgxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmJmYmZiXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjM2NVxcXCIgc3RvcC1jb2xvcj1cXFwiI2VmZWZmMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41NTJcXFwiIHN0b3AtY29sb3I9XFxcIiNkYWRiZGNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzM4XFxcIiBzdG9wLWNvbG9yPVxcXCIjYmViZmMyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjgyNFxcXCIgc3RvcC1jb2xvcj1cXFwiI2FlYjBiM1xcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJiXFxcIiBjeD1cXFwiNi42NzhcXFwiIGN5PVxcXCI4NC43NFxcXCIgcj1cXFwiMTUuNTU0XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0xLjg4NCAtODYuMTU0KSBzY2FsZSgxLjA3MiAxLjE2NilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmYWZkZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMDc5XFxcIiBzdG9wLWNvbG9yPVxcXCIjZWVmNWZhXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjIyXFxcIiBzdG9wLWNvbG9yPVxcXCIjY2ZkZmVjXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQwN1xcXCIgc3RvcC1jb2xvcj1cXFwiIzlkYmJkNVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42MzFcXFwiIHN0b3AtY29sb3I9XFxcIiM1ODhhYjVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzQ1XFxcIiBzdG9wLWNvbG9yPVxcXCIjMzI2ZmE0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjc5OVxcXCIgc3RvcC1jb2xvcj1cXFwiIzJiNjY5OFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44OTdcXFwiIHN0b3AtY29sb3I9XFxcIiMxNzRlNzhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTk0XFxcIiBzdG9wLWNvbG9yPVxcXCIjMDAzMTUyXFxcIi8+PC9yYWRpYWxHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImNcXFwiIGN4PVxcXCIxMS4yNDFcXFwiIGN5PVxcXCItOS44OTdcXFwiIHI9XFxcIjE2LjU5NFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgwIDIyLjYzMSkgc2NhbGUoMSAxLjA2MilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmQ1NDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjY3XFxcIiBzdG9wLWNvbG9yPVxcXCIjZWMxYzI0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5NFxcXCIgc3RvcC1jb2xvcj1cXFwiIzc2MDAwMFxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJkXFxcIiBjeD1cXFwiMTIuMjg2XFxcIiBjeT1cXFwiMjYuMTI3XFxcIiByPVxcXCIyLjA4M1xcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2RkZGZlMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xNzRcXFwiIHN0b3AtY29sb3I9XFxcIiNkOWRiZGNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzUxXFxcIiBzdG9wLWNvbG9yPVxcXCIjY2RjZmQwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjUzMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2I4YmFiYlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43MTFcXFwiIHN0b3AtY29sb3I9XFxcIiM5YzllOWZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuODkxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNzg3OTdiXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNWU1ZjYxXFxcIi8+PC9yYWRpYWxHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImVcXFwiIGN4PVxcXCIxOS4wNjRcXFwiIGN5PVxcXCIyNi4xMjdcXFwiIHI9XFxcIjIuMDgzXFxcIiB4bGluazpocmVmPVxcXCIjZFxcXCIvPjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiZlxcXCIgY3g9XFxcIjE1LjQzNFxcXCIgY3k9XFxcIjE2LjE5MVxcXCIgcj1cXFwiMi42ODdcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoMCAwLjQ2MSlcXFwiIHhsaW5rOmhyZWY9XFxcIiNkXFxcIi8+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfcHJvbG9nPC90aXRsZT48ZyBzdHlsZT1cXFwiaXNvbGF0aW9uOmlzb2xhdGVcXFwiPjxjaXJjbGUgY3g9XFxcIjE2XFxcIiBjeT1cXFwiMTZcXFwiIHI9XFxcIjE0XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtNi42MDIgMTQuOTIpIHJvdGF0ZSgtNDIuMjY1KVxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS45MzgsNi4zMDlhOS43ODUsOS43ODUsMCwwLDAtNi41LTIuMzM5QzguNTY0LDMuOTcsMy43NzQsNy43LDMuNDA1LDE0Ljk2MWMtLjQsNy44LDQuNzUsMTIuODYyLDEyLDEyLjg2MiwxMC43MzMsMCwxNi42NzItOS43OCwxMC4wMjctMjAuMzg4LDQuNjcxLDEwLjYtLjUyNywxNy4yNzktNy4yMzYsMTcuMjc5LTUuNDQxLDAtOS42MS0zLjY1MS05LjYxLTEwLjM0NUM4LjU4Miw0LjcwOSwxNS44MjMsNC4wMzksMTkuOTM4LDYuMzA5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMi43LDEwLjQxNWMtLjI5My0uOTQtLjY0NS0yLjc4OC42MzQtMy44NmEzLjcyOSwzLjcyOSwwLDAsMC0zLjg0NCwxLjUzNEE5LjE2NSw5LjE2NSwwLDAsMCwxMiw4LjEsMy43MjksMy43MjksMCwwLDAsOC4xNTIsNi41NTVjMS4zMDksMS4xLjkxLDMuMDA1LjYxNCwzLjkyM0ExMC41MTcsMTAuNTE3LDAsMCwwLDYuMSwxNy41MjRjMCwyLjE3NCwxLjQsNC42NDUsMS42NzUsNy45NTVsMS43NjgtMS41MzJhMTEuNzQzLDExLjc0MywwLDAsMCw2LjIxMiwxLjQzMywxMS43NDEsMTEuNzQxLDAsMCwwLDYuMjEyLTEuNDMzbDEuNzY5LDEuNTMyYy4yOC0zLjMxLDEuNjc1LTUuNzgxLDEuNjc1LTcuOTU1QTEwLjUxMiwxMC41MTIsMCwwLDAsMjIuNywxMC40MTVaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTEwLjcyMiwyNy44NjdhMS42MjEsMS42MjEsMCwxLDEsMy4yNCwwYzAsLjAxOCwwLC4wMzUsMCwuMDUzYTIuMjM0LDIuMjM0LDAsMSwwLTMuMjI4LjEyNkMxMC43MjUsMjcuOTg3LDEwLjcyMiwyNy45MjcsMTAuNzIyLDI3Ljg2N1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZClcXFwiLz48cGF0aCBkPVxcXCJNMjAuNjI5LDI3Ljg2N2ExLjYyMSwxLjYyMSwwLDEsMC0zLjI0LDBjMCwuMDE4LDAsLjAzNSwwLC4wNTNhMi4yMzQsMi4yMzQsMCwxLDEsMy4yMjguMTI2QTEuNjc4LDEuNjc4LDAsMCwwLDIwLjYyOSwyNy44NjdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2UpXFxcIi8+PGcgc3R5bGU9XFxcIm9wYWNpdHk6MC41MzttaXgtYmxlbmQtbW9kZTptdWx0aXBseVxcXCI+PHBhdGggZD1cXFwiTTguMzQ2LDE4LjRjLS4xMzIuNjY3LS45NzEuODc3LS45NzEuODc3QTEuMzU5LDEuMzU5LDAsMCwxLDYuODA5LDE4LjFhMi45MjksMi45MjksMCwwLDAsLjQ0MywxLjc5M0EyLjkyNywyLjkyNywwLDAsMCw4LjM0NiwxOC40WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk0xMC4wMDgsMTguNzM3Yy0uMTMyLjY2Ny0uOTcyLjg3Ny0uOTcyLjg3N2ExLjM2LDEuMzYsMCwwLDEtLjU2Ni0xLjE4MiwyLjkyOSwyLjkyOSwwLDAsMCwuNDQ0LDEuNzkzQTIuOTI2LDIuOTI2LDAsMCwwLDEwLjAwOCwxOC43MzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTguODMzLDIwLjI0OWMtLjEzMi42NjctLjk3MS44NzctLjk3MS44NzdBMS4zNTksMS4zNTksMCwwLDEsNy4zLDE5Ljk0NGEyLjkyOSwyLjkyOSwwLDAsMCwuNDQzLDEuNzkzQTIuOTI1LDIuOTI1LDAsMCwwLDguODMzLDIwLjI0OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48cGF0aCBkPVxcXCJNMTAuNSwyMC41ODNjLS4xMzIuNjY3LS45NzEuODc3LS45NzEuODc3YTEuMzYsMS4zNiwwLDAsMS0uNTY2LTEuMTgyQTIuOTI5LDIuOTI5LDAsMCwwLDkuNCwyMi4wNzIsMi45MjcsMi45MjcsMCwwLDAsMTAuNSwyMC41ODNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTkuMzI4LDIyLjEyMWMtLjEzMi42NjctLjk3Mi44NzctLjk3Mi44NzdhMS4zNiwxLjM2LDAsMCwxLS41NjUtMS4xODIsMi45MjksMi45MjksMCwwLDAsLjQ0MywxLjc5M0EyLjkyNiwyLjkyNiwwLDAsMCw5LjMyOCwyMi4xMjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTExLjY2NCwxOS4wN2MtLjEzMi42NjctLjk3Mi44NzctLjk3Mi44NzdhMS4zNTksMS4zNTksMCwwLDEtLjU2NS0xLjE4MiwyLjkzLDIuOTMsMCwwLDAsLjQ0MywxLjc5M0EyLjkyNywyLjkyNywwLDAsMCwxMS42NjQsMTkuMDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PC9nPjxnIHN0eWxlPVxcXCJvcGFjaXR5OjAuNTM7bWl4LWJsZW5kLW1vZGU6bXVsdGlwbHlcXFwiPjxwYXRoIGQ9XFxcIk0yMy4xNTcsMTguNGMuMTMyLjY2Ny45NzEuODc3Ljk3MS44NzdhMS4zNTksMS4zNTksMCwwLDAsLjU2Ni0xLjE4MiwyLjkzLDIuOTMsMCwwLDEtLjQ0MywxLjc5M0EyLjkyNywyLjkyNywwLDAsMSwyMy4xNTcsMTguNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48cGF0aCBkPVxcXCJNMjEuNDk1LDE4LjczN2MuMTMyLjY2Ny45NzIuODc3Ljk3Mi44NzdhMS4zNiwxLjM2LDAsMCwwLC41NjUtMS4xODIsMi45MzEsMi45MzEsMCwwLDEtLjQ0NCwxLjc5M0EyLjkyNiwyLjkyNiwwLDAsMSwyMS40OTUsMTguNzM3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk0yMi42NjksMjAuMjQ5Yy4xMzIuNjY3Ljk3MS44NzcuOTcxLjg3N2ExLjM2LDEuMzYsMCwwLDAsLjU2Ni0xLjE4MiwyLjkyOSwyLjkyOSwwLDAsMS0uNDQzLDEuNzkzQTIuOTI2LDIuOTI2LDAsMCwxLDIyLjY2OSwyMC4yNDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTIxLjAwOCwyMC41ODNjLjEzMi42NjcuOTcxLjg3Ny45NzEuODc3YTEuMzU5LDEuMzU5LDAsMCwwLC41NjUtMS4xODIsMi45MjgsMi45MjgsMCwwLDEtLjQ0MywxLjc5M0EyLjkyNywyLjkyNywwLDAsMSwyMS4wMDgsMjAuNTgzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk0yMi4xNzUsMjIuMTIxYy4xMzIuNjY3Ljk3Mi44NzcuOTcyLjg3N2ExLjM2LDEuMzYsMCwwLDAsLjU2NS0xLjE4MiwyLjkyOCwyLjkyOCwwLDAsMS0uNDQ0LDEuNzkzQTIuOTI3LDIuOTI3LDAsMCwxLDIyLjE3NSwyMi4xMjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTE5LjgzOCwxOS4wN2MuMTMyLjY2Ny45NzIuODc3Ljk3Mi44NzdhMS4zNTksMS4zNTksMCwwLDAsLjU2NS0xLjE4MiwyLjkyOCwyLjkyOCwwLDAsMS0uNDQzLDEuNzkzQTIuOTI4LDIuOTI4LDAsMCwxLDE5LjgzOCwxOS4wN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48L2c+PGNpcmNsZSBjeD1cXFwiMTEuMzM5XFxcIiBjeT1cXFwiMTQuMDc0XFxcIiByPVxcXCIzLjgxNlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxjaXJjbGUgY3g9XFxcIjEyLjEzXFxcIiBjeT1cXFwiMTQuNDQ2XFxcIiByPVxcXCIxLjg2MVxcXCIgc3R5bGU9XFxcImZpbGw6I2JkYmZjMVxcXCIvPjxjaXJjbGUgY3g9XFxcIjEyLjEzXFxcIiBjeT1cXFwiMTQuNDQ2XFxcIiByPVxcXCIxLjE5MVxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxjaXJjbGUgY3g9XFxcIjExLjYwM1xcXCIgY3k9XFxcIjE0LjAyN1xcXCIgcj1cXFwiMC4zNTdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMC4xMTJcXFwiIGN5PVxcXCIxNC4wNzRcXFwiIHI9XFxcIjMuODE2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PGNpcmNsZSBjeD1cXFwiMjAuOTAzXFxcIiBjeT1cXFwiMTQuNDQ2XFxcIiByPVxcXCIxLjg2MVxcXCIgc3R5bGU9XFxcImZpbGw6I2JkYmZjMVxcXCIvPjxjaXJjbGUgY3g9XFxcIjIwLjkwM1xcXCIgY3k9XFxcIjE0LjQ0NlxcXCIgcj1cXFwiMS4xOTFcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMC4zNzVcXFwiIGN5PVxcXCIxNC4wMjdcXFwiIHI9XFxcIjAuMzU3XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE1LjcwNiwyMS41MmMwLTEuNDEyLDIuMTU3LTMuNDEzLDIuMTU3LTQuODg3YTIuMTU3LDIuMTU3LDAsMCwwLTQuMzEzLDBDMTMuNTUsMTguMTA3LDE1LjcwNiwyMC4xMDgsMTUuNzA2LDIxLjUyWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNmKVxcXCIvPjwvZz5cIixcblx0fSxcblx0XCJQcm90b2NvbCBCdWZmZXJzXCI6IHtcblx0XHRjb2xvdXI6IFwiIzk3ZmYyN1wiLFxuXHRcdGljb246IFwiPHBvbHlnb24gcG9pbnRzPVxcXCIxNS45OTYgMy4yMiAyNi45NjYgOS43IDI2Ljk1NCAyMi4zIDE2IDI4Ljc4IDUuMDM4IDIyLjQwOCA1LjAzNCA5LjYyOCAxNS45OTYgMy4yMlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNiwyLDMuOTg3LDkuMDJsMCwxNEwxNiwzMGwxMi03LjEuMDEzLTEzLjhaTTI2Ljk1NCwyMi4zLDE2LDI4Ljc4LDUuMDM4LDIyLjQwOGwwLTEyLjc4TDE2LDMuMjIsMjYuOTY2LDkuN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMxNzFjMWVcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI1LjU2OSAxMy42NTQgMTkuOTQ2IDE2Ljk2NCAxOS45NDMgMjQuODkgMjUuNTkgMjEuNTY1IDI1LjU2OSAxMy42NTRcXFwiIHN0eWxlPVxcXCJmaWxsOiMxZWE4ZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIzLjI4MiAxMi4zMDMgMjUuNTY5IDEzLjY1NCAxOS45NDYgMTYuOTY0IDE5Ljk0MyAyNC44OSAxNy4zMjcgMjMuMzcgMTcuMzQ4IDE1Ljg3NSAyMy4yODIgMTIuMzAzXFxcIiBzdHlsZT1cXFwiZmlsbDojNTBiZmZmXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMi41MTIgMTAuMzUgMjIuNTE0IDExLjgxNiAxNi40MTEgMTUuNDk4IDE2LjQxOCAyMy41OTcgMTQuOTk4IDI0LjQzMSAxNC45OTQgMTQuODU2IDIyLjUxMiAxMC4zNVxcXCIgc3R5bGU9XFxcImZpbGw6Izk3ZmYyN1xcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjAuMDA4IDguODcxIDIyLjUxMiAxMC4zNSAxNC45OTQgMTQuODU2IDE0Ljk5OCAyNC40MzEgMTIuMTk0IDIyLjgwMSAxMi4xODkgMTMuNDEzIDIwLjAwOCA4Ljg3MVxcXCIgc3R5bGU9XFxcImZpbGw6I2MyZmY3MlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTkuMjI2IDYuNjA2IDE5LjIyNiA4LjM3NCAxMS4yMSAxMy4wNzQgMTEuMjEgMjMuMTcyIDkuODA4IDIzLjk4OCA5LjgzNSAxMi4yNzcgMTkuMjI2IDYuNjA2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmYyNzRiXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNi4xNiA0Ljc4NCA2LjUzIDEwLjM5NCA2LjUyOSAyMi4wNzEgOS44MjcgMjMuOTg4IDkuODM1IDEyLjI3NyAxOS4yMzUgNi42MDYgMTYuMTYgNC43ODRcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjVjNzdcXFwiLz5cIixcblx0fSxcblx0XCJQdWdcIjoge1xuXHRcdGNvbG91cjogXCIjNDQyODIzXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjUuNTE0LDEyLjg0NmMtLjA1Mi0uOTM4LjIwOS0xLjgyNS0uMjA5LTIuNTU0LTEuMDQzLTEuODI1LTMuNjQ5LTIuODY3LTguODYzLTIuODY3VjcuMzcyaDB2LjA1MmMtNS43MzUsMC04LjE4NSwxLjA0My05LjIyNywyLjg2N2E1LjYsNS42LDAsMCwwLS40NjksMi41NTQsOS41NDYsOS41NDYsMCwwLDAtLjI2MSwyLjQ1Yy4xNTYsMS4xNDcuMjYxLDIuMjk0LjQxNywzLjMzNi4xNTYuODg2LDEuNDA4LDEuNTY0LDEuNTY0LDIuNC4zMTMsMi4yNDIsMi4yOTQsMy4yODQsOC4wMjgsMy4yODR2LjI2MWgtLjF2LS4yNjFjNS4yMTMsMCw3LjQtMS4wNDMsNy43MTYtMy4yODQuMS0uODM0LDEuMTQ3LTEuNTEyLDEuMy0yLjQuMTU2LTEuMDQzLjIwOS0yLjE5LjM2NS0zLjMzNkExMS43NzQsMTEuNzc0LDAsMCwwLDI1LjUxNCwxMi44NDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWZjY2EzXFxcIi8+PHBhdGggZD1cXFwiTTE2LjE4MiwxMy42OGEzLjI0MSwzLjI0MSwwLDAsMSwyLjE5LDEuMTQ3Yy43My42MjYsMS45MjksMS4wNDMsMi40NSwxLjYxNmE0LjcxNSw0LjcxNSwwLDAsMSwxLjQwOCwxLjk4MSw4LjksOC45LDAsMCwxLC4zMTMsMi4yNDJjMCwuMjYxLjE1Ni4yMDkuNTczLDBhOS4wMiw5LjAyLDAsMCwwLDIuMTktMS44NzdjLS4xNTYuODg2LTEuMjUxLDEuNjY4LTEuMzU1LDIuNS0uMzEzLDIuMjQyLTIuNSwzLjMzNi03Ljg3MiwzLjMzNmguMzEzXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTE5LjUxOSwxMS45MDhjLjIwOS42NzguODg2LDMuMDI0LS40NjksMi4yNDJhMi41NTcsMi41NTcsMCwwLDEsLjkzOCwxLjU2NCwxLjgzMSwxLjgzMSwwLDAsMCwxLjMsMS40MDgsMy40NzksMy40NzksMCwwLDAsMi41NTQtLjYyNiwyLjk1NiwyLjk1NiwwLDAsMCwuNjc4LTMuMjg0LDIuNDMsMi40MywwLDAsMC0yLjEzNy0xLjYxNkMyMS40LDExLjMzNCwxOS4zMSwxMS4xMjYsMTkuNTE5LDExLjkwOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMi4xNzhcXFwiIGN5PVxcXCIxNC40MVxcXCIgcj1cXFwiMS45MjlcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMS42NTZcXFwiIGN5PVxcXCIxMy41MjRcXFwiIHI9XFxcIjAuNTIxXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE5LjIwNiwxNC4zMDZhMTcuNjgsMTcuNjgsMCwwLDEsMi43MTEsMi4zNDZjLjkzOCwxLjIuOTM4LDEuNDA4LjkzOCwxLjQwOGwtLjY3OC4zMTNhNy4xLDcuMSwwLDAsMC0yLjEzNy0yLjVjLTEuMi0uNjc4LTEuMzU1LTEuMjUxLTEuMzU1LTEuMjUxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2VmY2NhM1xcXCIvPjxwYXRoIGQ9XFxcIk0xNi4yMzUsMTMuNjhhMy42MDUsMy42MDUsMCwwLDAtMi4zNDYsMS4xNDdjLS43My42MjYtMi4wMzMsMS4wNDMtMi41LDEuNjE2YTQuODA2LDQuODA2LDAsMCwwLTEuNDYsMS45ODEsOC45LDguOSwwLDAsMC0uMzEzLDIuMjQyYzAsLjI2MS4wNTIuMzEzLS42MjYsMEE3Ljk3Miw3Ljk3MiwwLDAsMSw2LjgsMTguNzg5Yy4xNTYuODg2LDEuMjUxLDEuNjY4LDEuMzU1LDIuNS4zMTMsMi4xOSwyLjUsMy4yODQsNy44NzIsMy4yODRoLjM2NVxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0yMS4yMzksMTcuMjc3YTYuNTUyLDYuNTUyLDAsMCwwLTUuMTA5LTIuNjA3aDBhNi42MzgsNi42MzgsMCwwLDAtNS4xMDksMi42MDcsMy44NjEsMy44NjEsMCwwLDAtMS4wNDMsMy4xOGMwLDQuNjQsMS42MTYsMy4yMzIsMi43MTEsMy44MDZhNy40NjYsNy40NjYsMCwwLDAsMy4zODkuMzEzaDBhNy40LDcuNCwwLDAsMCwzLjM4OS0uMzEzYzEuMDk1LS41NzMsMi43MTEuODM0LDIuNzExLTMuODA2QTMuMzg2LDMuMzg2LDAsMCwwLDIxLjIzOSwxNy4yNzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTYzMzJiXFxcIi8+PHBhdGggZD1cXFwiTTE2LjAyNiwxNS45NzRhOS41NDksOS41NDksMCwwLDEtLjQ2OSwyLjU1NGwuNTczLS4xNTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojNDQyODIzXFxcIi8+PHBhdGggZD1cXFwiTTE2LjE4MiwxNS45NzRhOS41NDksOS41NDksMCwwLDAsLjQ2OSwyLjU1NGwtLjU3My0uMTU2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxwYXRoIGQ9XFxcIk0xNC4zNTgsMTUuNDUzYy0uMjA5LS41MjEuNTczLTEuMzU1LDEuODI1LTEuMzU1czIuMDMzLjgzNCwxLjgyNSwxLjM1NS0xLjA0My42NzgtMS44MjUuNjc4QzE1LjM0OCwxNi4xMywxNC41NjYsMTUuOTc0LDE0LjM1OCwxNS40NTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTYzMzJiXFxcIi8+PHBhdGggZD1cXFwiTTE2LjE4MiwxNS45NzRjMC0uMS43My0uMSwxLjE0Ny0uMzY1LDAsMC0uODM0LjI2MS0uOTkxLjE1NmEuNjU2LjY1NiwwLDAsMS0uMjA5LS4zNjUuNjU2LjY1NiwwLDAsMS0uMjA5LjM2NWMtLjE1Ni4xLTEuMDk1LS4xNTYtMS4wOTUtLjE1NmE4LjA1OCw4LjA1OCwwLDAsMSwxLjIuMzY1di40MTdhMTAuNDkyLDEwLjQ5MiwwLDAsMCwuMSwyLjAzM2MuMTU2LjIwOS4xLTEuNDYuMS0yLjAzM0ExLjMsMS4zLDAsMCwxLDE2LjE4MiwxNS45NzRaXFxcIi8+PHBhdGggZD1cXFwiTTE2LjE4MiwxOC45NDVhMy4zNSwzLjM1LDAsMCwxLDEuNjE2LjY3OCwzLjEyMSwzLjEyMSwwLDAsMC0xLjYxNi0xLjA5NSwzLjAzNiwzLjAzNiwwLDAsMC0xLjgyNSwxLjJBMy4zMTIsMy4zMTIsMCwwLDEsMTYuMTgyLDE4Ljk0NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM3ZjRhNDFcXFwiLz48cGF0aCBkPVxcXCJNMTYuMDc4LDIyLjhhOC45LDguOSwwLDAsMS0yLjQtLjQ2OWMtLjE1Ni0uMDUyLS4zMTMuMDUyLS40NjksMGE2LjE3Miw2LjE3MiwwLDAsMS0zLjE4LTIuMTM3di4yMDljMCw0LjY0LDEuNjE2LDMuMjMyLDIuNzExLDMuODA2YTcuNDY2LDcuNDY2LDAsMCwwLDMuMzg5LjMxM2gwYTcuNCw3LjQsMCwwLDAsMy4zODktLjMxM2MxLjA5NS0uNTczLDIuNzExLjgzNCwyLjcxMS0zLjgwNnYtLjQ2OUE1LjkxNCw1LjkxNCwwLDAsMSwxOSwyMi4yODJjLS4xNTYuMDUyLS40MTctLjA1Mi0uNTczLS4wNTJBNy4wNDUsNy4wNDUsMCwwLDEsMTYuMDc4LDIyLjhaXFxcIiBzdHlsZT1cXFwiZmlsbDojNDQyODIzXFxcIi8+PHBhdGggZD1cXFwiTTEzLjk0MSwyMC4zcy0uNTczLDEuNjY4LS4xNTYsMi40bC0uNTIxLS4yMDlBMTUuNDMzLDE1LjQzMywwLDAsMSwxMy45NDEsMjAuM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz48cGF0aCBkPVxcXCJNMTguMzIsMjAuM3MuNTczLDEuNjY4LjE1NiwyLjRMMTksMjIuNDkxQTEwLjYyOSwxMC42MjksMCwwLDAsMTguMzIsMjAuM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz48cGF0aCBkPVxcXCJNMTIuNTg1LDExLjkwOGMtLjIwOS42NzgtLjg4NiwzLjAyNC40NjksMi4yNDJhMi41NTcsMi41NTcsMCwwLDAtLjkzOCwxLjU2NCwxLjgzMSwxLjgzMSwwLDAsMS0xLjMsMS40MDhBMy40NzksMy40NzksMCwwLDEsOC4yNTgsMTYuNWEyLjk1NiwyLjk1NiwwLDAsMS0uNjc4LTMuMjg0LDIuNDMsMi40MywwLDAsMSwyLjEzNy0xLjYxNkMxMC43MDksMTEuMzM0LDEyLjc5NCwxMS4xMjYsMTIuNTg1LDExLjkwOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48cGF0aCBkPVxcXCJNMTYuMTMsMTguNTI4YTMuMzkzLDMuMzkzLDAsMCwxLDIuNDUsMi44Njd2LS4xYTMuMDUxLDMuMDUxLDAsMCwwLTIuNDUtMi45MTksMywzLDAsMCwwLTIuNDUsMi45MTl2LjFBMy40NjMsMy40NjMsMCwwLDEsMTYuMTMsMTguNTI4WlxcXCIvPjxlbGxpcHNlIGN4PVxcXCIxNi41NDZcXFwiIGN5PVxcXCIxNS4xMzhcXFwiIHJ4PVxcXCIwLjE1NlxcXCIgcnk9XFxcIjAuMzEzXFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMy4yNTYgNC42MTEpIHJvdGF0ZSgtMTQuNDYpXFxcIiBzdHlsZT1cXFwiZmlsbDojMzMxNzEyXFxcIi8+PGVsbGlwc2UgY3g9XFxcIjE1LjYwOVxcXCIgY3k9XFxcIjE1LjE0NlxcXCIgcng9XFxcIjAuMzEzXFxcIiByeT1cXFwiMC4xNTZcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0zLjQ4MiAyNS41NjcpIHJvdGF0ZSgtNzIuNzY1KVxcXCIgc3R5bGU9XFxcImZpbGw6IzMzMTcxMlxcXCIvPjxjaXJjbGUgY3g9XFxcIjEwLjAzMVxcXCIgY3k9XFxcIjE0LjQxXFxcIiByPVxcXCIxLjkyOVxcXCIvPjxjaXJjbGUgY3g9XFxcIjEwLjU1MlxcXCIgY3k9XFxcIjEzLjUyNFxcXCIgcj1cXFwiMC41MjFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTYuNywxNC40MXMtLjUyMS4yMDktLjYyNi4yNjFhMi40OTIsMi40OTIsMCwwLDEtLjYyNi0uMjYxSDE2LjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojN2Y0YTQxXFxcIi8+PHBhdGggZD1cXFwiTTEyLjksMTQuMzA2YTE3LjY4LDE3LjY4LDAsMCwwLTIuNzExLDIuMzQ2Yy0uOTM4LDEuMi0uOTM4LDEuNDA4LS45MzgsMS40MDhsLjY3OC4zMTNhNy4xLDcuMSwwLDAsMSwyLjEzNy0yLjVjMS4yLS42NzgsMS4zNTUtMS4yNTEsMS4zNTUtMS4yNTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWZjY2EzXFxcIi8+PHBhdGggZD1cXFwiTTkuMDkyLDEwLjgxM2E0LjUxOSw0LjUxOSwwLDAsMS0xLjkyOSwyLjI5NEEyLjE5LDIuMTksMCwwLDAsOS4wOTIsMTAuODEzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0yMi45MDgsMTAuODEzYTQuNTE5LDQuNTE5LDAsMCwwLDEuOTI5LDIuMjk0QTIuMTksMi4xOSwwLDAsMSwyMi45MDgsMTAuODEzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4zMSwxMy44MzZhNS4xNiw1LjE2LDAsMCwwLTMuMDc2LTEuNDA4aC4xNTZhMy44NTIsMy44NTIsMCwwLDAtMy4wMjQsMS40MDgsNC44MzIsNC44MzIsMCwwLDEsMy4wMjQtMS4wNDNoMEE1Ljc4NSw1Ljc4NSwwLDAsMSwxOS4zMSwxMy44MzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTE3Ljc0NiwxMC45NjlhMi40NTUsMi40NTUsMCwwLDAtMS41NjQtLjkzOGguMTU2YTEuNzg2LDEuNzg2LDAsMCwwLTEuNTEyLjkzOCwyLjE4NywyLjE4NywwLDAsMSwxLjUxMi0uNjc4aDBBMS44OTQsMS44OTQsMCwwLDEsMTcuNzQ2LDEwLjk2OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48cGF0aCBkPVxcXCJNMTAuMDMxLDE3Ljc0NmEyLjU0NSwyLjU0NSwwLDAsMS0xLjc3My4yMDlIOC4wNWEzLjY4LDMuNjgsMCwwLDEtLjg4Ni0xLjUxMkEyLjI3LDIuMjcsMCwwLDAsMTAuMDMxLDE3Ljc0NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48cGF0aCBkPVxcXCJNMjIuMTI2LDE3Ljc0NmEyLjU0NSwyLjU0NSwwLDAsMCwxLjc3My4yMDlIMjMuNjlhMS43NDksMS43NDksMCwwLDAsMS4wOTUtMS41MTJBMi4wMiwyLjAyLDAsMCwxLDIyLjEyNiwxNy43NDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTExLjIzLDEwLjcwOWE0Ljc1LDQuNzUsMCwwLDEsMi4yNDIuMWMuOTM4LjMxMy4yMDksMS41NjQuMzY1LDEuNjE2YTIuODY1LDIuODY1LDAsMCwxLDIuMjQyLS43M2MxLjc3My4xLDEuOTgxLjg4NiwyLjI0Mi43My4yNjEtLjEtLjI2MS0yLjE5LDIuNDUtMS43MiwwLDAtMi43NjMtLjczLTIuNjU5LDEuMjUxYTMuNjc1LDMuNjc1LDAsMCwwLTMuODU4LS4xUzE0LjgyNyw5LjkyNywxMS4yMywxMC43MDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTEwLjUsOHMtMi40LDIuOTcyLTIuNzExLDQuMTE4Yy0uMzY1LDEuMTQ3LS42MjYsNS45NDMtLjkzOCw2LjYyMUw1Ljc1NiwxNC4wNDVsMi4wMzMtNC45WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0yMS42NTYsOHMyLjQsMi45NzIsMi43MTEsNC4xMThjLjM2NSwxLjE0Ny42MjYsNS45NDMuOTM4LDYuNjIxTDI2LjQsMTQuMDQ1bC0yLjAzMy00LjlaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTIxLjUsOGExMS42MTcsMTEuNjE3LDAsMCwxLDMuMjg0LDQuNTg4Yy43MywyLjQ1LjQxNyw1LjQ3NC45OTEsNS44MzkuODM0LjUyMSwxLjcyLTIuNjA3LDIuMDMzLTIuOTE5LjQ2OS0uNTIxLDIuMDg1LTEuODc3LDIuMTktMi4xMzdzLTMuMjMyLTMuOTEtNC43NDQtNC42NEMyMy41ODUsNy44OTMsMjEuNCw3Ljc4OSwyMS41LDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTYzMzJiXFxcIi8+PHBhdGggZD1cXFwiTTIzLjY5LDkuM2ExNS4zNzksMTUuMzc5LDAsMCwxLDIuOTcyLDguNjU0bDEuMi0yLjQ1QTE2LjU2NCwxNi41NjQsMCwwLDAsMjMuNjksOS4zWlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxwYXRoIGQ9XFxcIk0xMC41LDhhMTEuNjE3LDExLjYxNywwLDAsMC0zLjI4NCw0LjU4OGMtLjczLDIuNDUtLjQxNyw1LjQ3NC0uOTkxLDUuODM5LS44MzQuNTIxLTEuNzItMi42MDctMi4wMzMtMi45MTktLjQ2OS0uNTIxLTIuMDg1LTEuODc3LTIuMTktMi4xMzdzMy4yMzItMy45MSw0Ljc0NC00LjY0QzguNDE1LDcuODkzLDEwLjYsNy43ODksMTAuNSw4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzU2MzMyYlxcXCIvPjxwYXRoIGQ9XFxcIk04LjMxLDkuM2ExNS4zNzksMTUuMzc5LDAsMCwwLTIuOTcyLDguNjU0TDQuMTQsMTUuNUExNi41NjQsMTYuNTY0LDAsMCwxLDguMzEsOS4zWlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxwYXRoIGQ9XFxcIk02LjY0MiwxOC4wMDdhNC4xMTgsNC4xMTgsMCwwLDAsLjU3MywxLjU2NGMuMzY1LjM2NS4xLS4zMTMuMS0uMzEzcy0uMzY1LS4yMDktLjMxMy0xLjcyUzYuNjQyLDE4LjAwNyw2LjY0MiwxOC4wMDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTI1LjQxLDE4LjAwN2E0LjExOCw0LjExOCwwLDAsMS0uNTczLDEuNTY0Yy0uMzY1LjM2NS0uMS0uMzEzLS4xLS4zMTNzLjM2NS0uMjA5LjMxMy0xLjcyQzI0Ljk5MywxNi4wNzgsMjUuNDEsMTguMDA3LDI1LjQxLDE4LjAwN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48Y2lyY2xlIGN4PVxcXCIxMy44ODlcXFwiIGN5PVxcXCIxNy4xMjFcXFwiIHI9XFxcIjAuMTU2XFxcIiBzdHlsZT1cXFwiZmlsbDojNDQyODIzXFxcIi8+PGNpcmNsZSBjeD1cXFwiMTIuODQ2XFxcIiBjeT1cXFwiMTguMjE2XFxcIiByPVxcXCIwLjE1NlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxjaXJjbGUgY3g9XFxcIjEyLjUzM1xcXCIgY3k9XFxcIjE3LjEyMVxcXCIgcj1cXFwiMC4xNTZcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz48Y2lyY2xlIGN4PVxcXCIxOC4xNjRcXFwiIGN5PVxcXCIxNy4xMjFcXFwiIHI9XFxcIjAuMTU2XFxcIiBzdHlsZT1cXFwiZmlsbDojNDQyODIzXFxcIi8+PGNpcmNsZSBjeD1cXFwiMTkuMTU0XFxcIiBjeT1cXFwiMTguMjE2XFxcIiByPVxcXCIwLjE1NlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxjaXJjbGUgY3g9XFxcIjE5LjQ2N1xcXCIgY3k9XFxcIjE3LjEyMVxcXCIgcj1cXFwiMC4xNTZcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz5cIixcblx0fSxcblx0XCJQdXBwZXRcIjoge1xuXHRcdGNvbG91cjogXCIjZmZhZTFhXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjUuMDg5LDExLjgyMkgxOC43TDE1LjI2Nyw4LjM4OFYySDYuOTExdjguMzU3SDEzLjNsMy40MjIsMy40MjJoMHY0LjQzMWgwbC0zLjQzNCwzLjQzNEg2LjkxMVYzMGg4LjM1N1YyMy42MTJoMEwxOC43LDIwLjE3OGg2LjM4OFpNOS43LDQuNzg2aDIuNzg2VjcuNTcxSDkuN1pNMTIuNDgyLDI3LjJIOS43VjI0LjQxN2gyLjc4NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmFlMWFcXFwiLz5cIixcblx0fSxcblx0XCJQdXJlU2NyaXB0XCI6IHtcblx0XHRjb2xvdXI6IFwiIzE2MTcxYlwiLFxuXHRcdGljb246IFwiPHJlY3Qgd2lkdGg9XFxcIjMyXFxcIiBoZWlnaHQ9XFxcIjMyXFxcIiBzdHlsZT1cXFwiZmlsbDojMTYxNzFiXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMS44OTIgMjIuMTM2IDE5LjcwNiAyMC4wOTUgMTAuMTA3IDIwLjA5NSAxMi4yOTMgMjIuMTM2IDIxLjg5MiAyMi4xMzZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjEyLjI5MyAxNC45OCAxMC4xMDcgMTcuMDIxIDE5LjcwNiAxNy4wMjEgMjEuODkyIDE0Ljk4IDEyLjI5MyAxNC45OFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjEuODkxIDExLjkwNiAxOS43MDYgOS44NjQgMTAuMTA3IDkuODY0IDEyLjI5MyAxMS45MDYgMjEuODkxIDExLjkwNlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk05LjEsMTMuOTI2LDcuNjUyLDEyLjQ4MiwyLjMsMTcuODM2YTEuMDIzLDEuMDIzLDAsMCwwLDAsMS40NDNsNS4zNTQsNS4zNTRMOS4xLDIzLjE5LDQuNDY0LDE4LjU1OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjkuNywxMi43MjEsMjQuMzQ4LDcuMzY2LDIyLjksOC44MWw0LjYzLDQuNjMyTDIyLjksMTguMDc1bDEuNDQzLDEuNDQzTDI5LjcsMTQuMTY1YTEuMDIxLDEuMDIxLDAsMCwwLDAtMS40NDRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdH0sXG5cdFwiUHl0aG9uXCI6IHtcblx0XHRjb2xvdXI6IFwiIzM2NzFBMVwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTEzMy4yNjhcXFwiIHkxPVxcXCItMjAyLjkxXFxcIiB4Mj1cXFwiLTEzMy4xOThcXFwiIHkyPVxcXCItMjAyLjg0XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDI1MjQzLjA2MSAzODUxOS4xNykgc2NhbGUoMTg5LjM4IDE4OS44MSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMzODdlYjhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzNjY5OTRcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIi0xMzMuNTc1XFxcIiB5MT1cXFwiLTIwMy4yMDNcXFwiIHgyPVxcXCItMTMzLjQ5NVxcXCIgeTI9XFxcIi0yMDMuMTMzXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDI1MzA5LjA2MSAzODU4My40Mikgc2NhbGUoMTg5LjM4IDE4OS44MSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmUwNTJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmMzMzFcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3B5dGhvbjwvdGl0bGU+PHBhdGggZD1cXFwiTTE1Ljg4NSwyLjFjLTcuMSwwLTYuNjUxLDMuMDctNi42NTEsMy4wN1Y4LjM2aDYuNzUydjFINi41NDVTMiw4LjgsMiwxNi4wMDVzNC4wMTMsNi45MTIsNC4wMTMsNi45MTJIOC4zM1YxOS41NTZzLS4xMy00LjAxMywzLjktNC4wMTNoNi43NjJzMy43NzIuMDYsMy43NzItMy42NTJWNS44cy41NzItMy43MTItNi44NDItMy43MTJoMFpNMTIuMTUzLDQuMjM3YTEuMjE0LDEuMjE0LDAsMSwxLTEuMTgzLDEuMjQ0di0uMDJhMS4yMTQsMS4yMTQsMCwwLDEsMS4yMTQtMS4yMTRoMFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMTYuMDg1LDI5LjkxYzcuMSwwLDYuNjUxLTMuMDgsNi42NTEtMy4wOFYyMy42NUgxNS45ODV2LTFoOS40N1MzMCwyMy4xNTgsMzAsMTUuOTk1cy00LjAxMy02LjkxMi00LjAxMy02LjkxMkgyMy42NFYxMi40cy4xMyw0LjAxMy0zLjksNC4wMTNIMTIuOTc1UzkuMiwxNi4zNTYsOS4yLDIwLjA2OFYyNi4ycy0uNTcyLDMuNzEyLDYuODQyLDMuNzEyaC4wNFptMy43MzItMi4xNDdBMS4yMTQsMS4yMTQsMCwxLDEsMjEsMjYuNTE5di4wM2ExLjIxNCwxLjIxNCwwLDAsMS0xLjIxNCwxLjIxNGguMDNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIjXCIsXG5cdFx0XSxcblx0fSxcblx0XCJRIChrZGIrIGRhdGFiYXNlKVwiOiB7XG5cdFx0Y29sb3VyOiBcIiMxZTc4YjNcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yMC4wOTIsMjlWMTkuNjgyQTYuOTUzLDYuOTUzLDAsMCwxLDE3LjcsMjEuNjQ1YTYuNzQzLDYuNzQzLDAsMCwxLTMuMDg5LjcyNEE2LjU1Nyw2LjU1NywwLDAsMSw5LjQxMywyMCwxMS4wODEsMTEuMDgxLDAsMCwxLDcsMTIuNDc1LDEwLjAzMywxMC4wMzMsMCwwLDEsOS4yNjQsNS41LDcuMjUxLDcuMjUxLDAsMCwxLDE0Ljg3NCwzYTYuMjY2LDYuMjY2LDAsMCwxLDMuMi43ODUsNy4zMjksNy4zMjksMCwwLDEsMi40LDIuMzczVjMuNDE5SDI1VjI5Wm0uMTU3LTE2LjU0MmE2LjQ5Miw2LjQ5MiwwLDAsMC0xLjE2LTQuMjMyLDMuNjM0LDMuNjM0LDAsMCwwLTIuOTA1LTEuMzg3LDMuNzQyLDMuNzQyLDAsMCwwLTIuOTc1LDEuNDEzLDYuODgxLDYuODgxLDAsMCwwLTEuMiw0LjQ4NSw2Ljc2Nyw2Ljc2NywwLDAsMCwxLjE1Miw0LjQwNkEzLjU5MywzLjU5MywwLDAsMCwxNi4wMDksMTguNWEzLjc4NiwzLjc4NiwwLDAsMCwyLjk2Ni0xLjUxOEE2Ljg4OSw2Ljg4OSwwLDAsMCwyMC4yNDksMTIuNDU4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzFlNzhiM1xcXCIvPlwiLFxuXHR9LFxuXHRcIlEjXCI6IHtcblx0XHRjb2xvdXI6IFwiIzMzMzNjY1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE5LjQ1MSw2LjIxOGgyLjYzOFY4Ljg1NmgyLjYzN1Y2LjIxOGgyLjYzN1Y4Ljg1NkgzMFYxMS41SDI3LjM2NHYyLjYzNkgzMFYxNi43N0gyNy4zNjR2Mi42MzdIMjQuNzI3VjE2Ljc2OUgyMi4wOTFsMCwyLjYzN0gxOS40NTNWMTYuNzY4SDE2LjgxNVYxNC4xMjdoMi42MzhWMTEuNUgxNi44MTVWOC44NTNoMi42MzlabTIuNjM4LDcuOTE0aDIuNjM3VjExLjVIMjIuMDg5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzMzY1xcXCIvPjxwYXRoIGQ9XFxcIk0xNC4wMTgsMjEuNTI0YTExLjQzNiwxMS40MzYsMCwwLDAsMS41NzItNi4xOTIsMTAuODc3LDEwLjg3NywwLDAsMC0xLjg1OC02LjZBNS44ODksNS44ODksMCwwLDAsOC44MDgsNi4xNTNhNS45MjEsNS45MjEsMCwwLDAtNC45NCwyLjU4MUExMC44NDIsMTAuODQyLDAsMCwwLDIsMTUuMzMzYTEwLjg1MywxMC44NTMsMCwwLDAsMS44NjgsNi41OTIsNS45MTgsNS45MTgsMCwwLDAsNC45NDEsMi41ODgsNS43NDMsNS43NDMsMCwwLDAsMy4yNi0uOTg3bDIuMzA2LDIuMzIxLDEuNTc3LTIuNFptLTUuMTctMS4yMTgsMS4xMTcsMS4xMjFhMy4yMjksMy4yMjksMCwwLDEtMS4xNzQuMjE3LDMuMzM1LDMuMzM1LDAsMCwxLTIuODM3LTEuNTkzLDguMTI1LDguMTI1LDAsMCwxLTEuMTgtNC43MTksOC4xLDguMSwwLDAsMSwxLjE4NC00LjcyNCwzLjM3MiwzLjM3MiwwLDAsMSwyLjg3LTEuNTg4LDMuMzEsMy4zMSwwLDAsMSwyLjgxOSwxLjU4NSw4LjE3OCw4LjE3OCwwLDAsMSwxLjE3Miw0LjcyNiw5LjExMyw5LjExMywwLDAsMS0uODMzLDQuMTVsLTEuNTYtMS41NzFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzNjXFxcIi8+XCIsXG5cdH0sXG5cdFwiUU1MXCI6IHtcblx0XHRjb2xvdXI6IFwiIzQxY2Q1MlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTI3LjMsNUg1Ljg4NkwyLDguOTU4VjI2SDI2LjExNEwzMCwyMi4wNDJWNVpNMTYuOSwyMy4wN2wtMS44MjguODUyTDEzLjUsMjEuMzMxYTMuOTY4LDMuOTY4LDAsMCwxLTEuMDgyLjEwNmMtMS44NDUsMC0zLjEyMy0uNS0zLjg1LTEuNDlhOC4wMyw4LjAzLDAsMCwxLTEuMDgyLTQuNyw4LjM1MSw4LjM1MSwwLDAsMSwxLjEtNC43NzMsNC4zNzksNC4zNzksMCwwLDEsMy44MzMtMS41NjFjMS44MjgsMCwzLjA4Ny41MTUsMy44MzMsMS41NDRhOC4zNTEsOC4zNTEsMCwwLDEsMS4xLDQuNzczLDEwLjgwOSwxMC44MDksMCwwLDEtLjQ1MiwzLjQ0LDMuOSwzLjksMCwwLDEtMS40NzMsMlptNS44NDgtMS42N2EyLjczNSwyLjczNSwwLDAsMS0yLjE2OC0uNjkyQTQuMTkyLDQuMTkyLDAsMCwxLDIwLDE4LjFWMTRIMTlWMTJoMVY5aDJ2M2gydjJIMjJ2My45YTMuOTA3LDMuOTA3LDAsMCwwLC4xNjgsMS40MzdjLjExMi4yMzEuMzkzLjM1NS44Ni4zNTVsMS41MzMtLjA1My4wOTMsMS41NDRBMTIuNTE5LDEyLjUxOSwwLDAsMSwyMi43NDgsMjEuNFpNMTIuNDE2LDEwLjYxNGEyLjQsMi40LDAsMCwwLTIuMjg5LDEuMSw3LjY1Nyw3LjY1NywwLDAsMC0uNiwzLjUxMyw3LjEzMSw3LjEzMSwwLDAsMCwuNiwzLjQ0MkEyLjQ0LDIuNDQsMCwwLDAsMTIuNDMzLDE5LjdhMi40MTcsMi40MTcsMCwwLDAsMi4yODktMS4wMTEsNy4zNDMsNy4zNDMsMCwwLDAsLjU4Ni0zLjQ0Miw3LjY5Miw3LjY5MiwwLDAsMC0uNi0zLjUzMUEyLjQsMi40LDAsMCwwLDEyLjQxNiwxMC42MTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojNDFjZDUyXFxcIi8+XCIsXG5cdH0sXG5cdFwiUlwiOiB7XG5cdFx0Y29sb3VyOiBcIiMyNzZkYzNcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIi0xMzQuODExXFxcIiB5MT1cXFwiLTEwMy4yODRcXFwiIHgyPVxcXCItMTM0Ljc3MlxcXCIgeTI9XFxcIi0xMDMuMzIzXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDcyMS4wOTQsIDAsIDAsIC00ODIuOTM3LCA5NzIxMy41OTUsIC00OTg3NC41MTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjY2JjZWQwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjODQ4MzhiXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCItMTM1LjM3OFxcXCIgeTE9XFxcIi0xMDIuOTg1XFxcIiB4Mj1cXFwiLTEzNS4zMzlcXFwiIHkyPVxcXCItMTAzLjAyNFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgzOTgsIDAsIDAsIC00MDYuMTI0LCA1Mzg5MywgLTQxODEyLjgzNilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMyNzZkYzNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMxNjVjYWFcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3I8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNiwyMy45NTZjLTcuNzMyLDAtMTQtNC4yLTE0LTkuMzc2UzguMjY4LDUuMiwxNiw1LjIsMzAsOS40LDMwLDE0LjU4LDIzLjczMiwyMy45NTYsMTYsMjMuOTU2Wk0xOC4xNDMsOC44N0MxMi4yNjYsOC44Nyw3LjUsMTEuNzQsNy41LDE1LjI4czQuNzY0LDYuNDEsMTAuNjQxLDYuNDEsMTAuMjE0LTEuOTYyLDEwLjIxNC02LjQxUzI0LjAyLDguODcsMTguMTQzLDguODdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTIzLjMyMSwxOS43MjZhMTAuNTQ1LDEwLjU0NSwwLDAsMSwxLjM0LjUsMi41OTEsMi41OTEsMCwwLDEsLjY4LjQ4NSwxLjgzNSwxLjgzNSwwLDAsMSwuMzExLjQ0N2wzLjMzOSw1LjYzLTUuNCwwLTIuNTI0LTQuNzRhNi4xLDYuMSwwLDAsMC0uODM1LTEuMTQ1Ljg3OS44NzksMCwwLDAtLjY0MS0uMjkxSDE4LjMxMXY2LjE3M2wtNC43NzYsMFYxMS4wMjZoOS41OTFTMjcuNSwxMS4xLDI3LjUsMTUuMjYxLDIzLjMyMSwxOS43MjYsMjMuMzIxLDE5LjcyNlptLTIuMDc3LTUuMjgtMi44OTEsMHYyLjY4MWgyLjg5M2ExLjMyMywxLjMyMywwLDAsMCwxLjM0LTEuMzY0QTEuMjQ3LDEuMjQ3LDAsMCwwLDIxLjI0NCwxNC40NDdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIjXCIsXG5cdFx0XSxcblx0fSxcblx0XCJSYWNrZXRcIjoge1xuXHRcdGNvbG91cjogXCIjOWYxZDIwXCIsXG5cdFx0aWNvbjogXCI8Y2lyY2xlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjE2XFxcIiByPVxcXCIxNFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0yNy4wMTYsMjQuNjQxYTE0LDE0LDAsMCwwLTE1LjgtMjEuOEMxNi45LDUuODIyLDI0LjQxMywxNS41NDksMjcuMDE2LDI0LjY0MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzZTViYTlcXFwiLz48cGF0aCBkPVxcXCJNMTMuOTk1LDEwLjkzYTI0LjMsMjQuMywwLDAsMC03LjIyLTUuNDZBMTQsMTQsMCwwLDAsNS40NjMsMjUuMjE3LDM5LjU2LDM5LjU2LDAsMCwxLDEzLjk5NSwxMC45M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM5ZjFkMjBcXFwiLz48cGF0aCBkPVxcXCJNMTYuNTc1LDE0LjFBMzIuNjQ1LDMyLjY0NSwwLDAsMCw5LjQzLDI4LjM2NWExNC4wMTYsMTQuMDE2LDAsMCwwLDEzLjMtLjA4OUEzOC42NDIsMzguNjQyLDAsMCwwLDE2LjU3NSwxNC4xWlxcXCIgc3R5bGU9XFxcImZpbGw6IzlmMWQyMFxcXCIvPlwiLFxuXHR9LFxuXHRcIlJhem9yIEMjXCI6IHtcblx0XHRjb2xvdXI6IFwiIzM2ODgzMlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTIzLjg0NCwyNy42OTJhMTYuMzMyLDE2LjMzMiwwLDAsMS02LjY0NSwxLjNxLTYuMzY0LDAtMTAuMDEzLTMuMjQzYTExLjMsMTEuMywwLDAsMS0zLjY0OS04LjlBMTMuNzE2LDEzLjcxNiwwLDAsMSw3LjMyMiw2Ljk1MSwxMi43MTYsMTIuNzE2LDAsMCwxLDE2LjksMy4wMDhhMTEuNjc2LDExLjY3NiwwLDAsMSw4LjQyNSwzLjAwNiw5Ljk5NCw5Ljk5NCwwLDAsMSwzLjE0Miw3LjUzMywxMC4xODcsMTAuMTg3LDAsMCwxLTIuMzE4LDcuMTE0LDcuNTMyLDcuNTMyLDAsMCwxLTUuODE3LDIuNTQ3LDIuNjEzLDIuNjEzLDAsMCwxLTEuODQ1LS42NDIsMi4zMjMsMi4zMjMsMCwwLDEtLjc2NC0xLjYsNC45LDQuOSwwLDAsMS00LjE0OCwyLjI0Myw0LjYsNC42LDAsMCwxLTMuNTA3LTEuNDc5LDUuNzA2LDUuNzA2LDAsMCwxLTEuMzg0LTQuMDYzLDkuOTEzLDkuOTEzLDAsMCwxLDIuMi02LjM1N3EyLjItMi43NjMsNC44LTIuNzYzYTUuMDYzLDUuMDYzLDAsMCwxLDQuMjU2LDEuNzE2bC4zMTEtMS4zMzhoMi40MDVsLTIuMDgxLDkuMDhhMTAuNzE2LDEwLjcxNiwwLDAsMC0uMzUyLDIuMjQzcTAsLjk3Mi43NDQuOTcyYTQuODE5LDQuODE5LDAsMCwwLDMuODc3LTIuMDQ3LDguOTMsOC45MywwLDAsMCwxLjYyMS01LjY4MSw3Ljk4LDcuOTgsMCwwLDAtMi42NzUtNi4xNzUsOS44ODcsOS44ODcsMCwwLDAtNi45MTktMi40MzJBMTAuNiwxMC42LDAsMCwwLDguNzEzLDguMzUyYTEyLjA2NiwxMi4wNjYsMCwwLDAtMy4yLDguNDk1LDkuNTYxLDkuNTYxLDAsMCwwLDMuMDYsNy41NzNxMy4wNiwyLjcsOC41ODYsMi43YTEzLjc1NywxMy43NTcsMCwwLDAsNS42NzUtMS4wNTRaTTE5LjQ2NiwxMi4yNWEzLjk3NywzLjk3NywwLDAsMC0zLjYtMS43MTZxLTEuODI0LDAtMy4yNjMsMi4yM2E4LjcyNiw4LjcyNiwwLDAsMC0xLjQzOSw0LjgyNHEwLDMuNjM1LDIuOTA1LDMuNjM1QTMuNzcxLDMuNzcxLDAsMCwwLDE2LjcyLDIwLjA0YTYuMzA5LDYuMzA5LDAsMCwwLDEuNy0zLjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzY4ODMyXFxcIi8+XCIsXG5cdH0sXG5cdFwiUmVhY3QgSlNYXCI6IHtcblx0XHRjb2xvdXI6IFwiIzAwZDhmZlwiLFxuXHRcdGljb246IFwiPGNpcmNsZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCIxNS45NzRcXFwiIHI9XFxcIjIuNVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZDhmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNiwyMS43MDZhMjguMzg1LDI4LjM4NSwwLDAsMS04Ljg4LTEuMiwxMS4zLDExLjMsMCwwLDEtMy42NTctMS45NThBMy41NDMsMy41NDMsMCwwLDEsMiwxNS45NzRjMC0xLjY1MywxLjgxNi0zLjI3Myw0Ljg1OC00LjMzM0EyOC43NTUsMjguNzU1LDAsMCwxLDE2LDEwLjI5M2EyOC42NzQsMjguNjc0LDAsMCwxLDkuMDIyLDEuMzI0LDExLjM3NiwxMS4zNzYsMCwwLDEsMy41MzgsMS44NjZBMy4zOTEsMy4zOTEsMCwwLDEsMzAsMTUuOTc0YzAsMS43MTgtMi4wMywzLjQ1OS01LjMsNC41NDFBMjguOCwyOC44LDAsMCwxLDE2LDIxLjcwNlptMC0xMC4yMTdhMjcuOTQ4LDI3Ljk0OCwwLDAsMC04Ljc0OSwxLjI4MmMtMi44Ljk3Ny00LjA1NSwyLjMxMy00LjA1NSwzLjIsMCwuOTI4LDEuMzQ5LDIuMzg3LDQuMzExLDMuNEEyNy4yMSwyNy4yMSwwLDAsMCwxNiwyMC41MWEyNy42LDI3LjYsMCwwLDAsOC4zMjUtMS4xM0MyNy40LDE4LjM2MSwyOC44LDE2LjksMjguOCwxNS45NzRhMi4zMjcsMi4zMjcsMCwwLDAtMS4wMS0xLjU3MywxMC4xOTQsMTAuMTk0LDAsMCwwLTMuMTYxLTEuNjU0QTI3LjQ2MiwyNy40NjIsMCwwLDAsMTYsMTEuNDg5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZDhmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xMC4zMiwyOC40NDNhMi42MzksMi42MzksMCwwLDEtMS4zMzYtLjMyOGMtMS40MzItLjgyNi0xLjkyOC0zLjIwOC0xLjMyNy02LjM3M2EyOC43NTUsMjguNzU1LDAsMCwxLDMuNC04LjU5M2gwQTI4LjY3NiwyOC42NzYsMCwwLDEsMTYuNzEsNS45OTVhMTEuMzc2LDExLjM3NiwwLDAsMSwzLjM4NC0yLjEzMywzLjM5MSwzLjM5MSwwLDAsMSwyLjg3OCwwYzEuNDg5Ljg1OCwxLjk4MiwzLjQ4NiwxLjI4Nyw2Ljg1OWEyOC44MDYsMjguODA2LDAsMCwxLTMuMzE2LDguMTMzLDI4LjM4NSwyOC4zODUsMCwwLDEtNS40NzYsNy4wOTMsMTEuMywxMS4zLDAsMCwxLTMuNTIzLDIuMTg5QTQuOTI2LDQuOTI2LDAsMCwxLDEwLjMyLDI4LjQ0M1ptMS43NzMtMTQuN2EyNy45NDgsMjcuOTQ4LDAsMCwwLTMuMjYsOC4yMTljLS41NTMsMi45MTUtLjAyMiw0LjY2OC43NSw1LjExNC44LjQ2MywyLjc0Mi4wMjQsNS4xLTIuMDM2YTI3LjIwOSwyNy4yMDksMCwwLDAsNS4yMjctNi43OSwyNy42LDI3LjYsMCwwLDAsMy4xODEtNy43NzZjLjY1NC0zLjE3NS4wODktNS4xMTktLjcxMy01LjU4MWEyLjMyNywyLjMyNywwLDAsMC0xLjg2OC4wODlBMTAuMTk0LDEwLjE5NCwwLDAsMCwxNy41LDYuOWEyNy40NjQsMjcuNDY0LDAsMCwwLTUuNCw2Ljg0OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGQ4ZmZcXFwiLz48cGF0aCBkPVxcXCJNMjEuNjc3LDI4LjQ1NmMtMS4zNTUsMC0zLjA3Ni0uODItNC44NjgtMi4zNjFhMjguNzU2LDI4Ljc1NiwwLDAsMS01Ljc0Ny03LjIzN2gwYTI4LjY3NiwyOC42NzYsMCwwLDEtMy4zNzQtOC40NzEsMTEuMzc2LDExLjM3NiwwLDAsMS0uMTU4LTRBMy4zOTEsMy4zOTEsMCwwLDEsOC45NjQsMy45YzEuNDg3LS44NjEsNC4wMS4wMjQsNi41ODUsMi4zMWEyOC44LDI4LjgsMCwwLDEsNS4zOSw2LjkzNCwyOC4zODQsMjguMzg0LDAsMCwxLDMuNDEsOC4yODcsMTEuMywxMS4zLDAsMCwxLC4xMzcsNC4xNDYsMy41NDMsMy41NDMsMCwwLDEtMS40OTQsMi41NTVBMi41OSwyLjU5LDAsMCwxLDIxLjY3NywyOC40NTZabS05LjU4LTEwLjJhMjcuOTQ5LDI3Ljk0OSwwLDAsMCw1LjQ5Miw2LjkyOWMyLjI0OSwxLjkzNSw0LjAzMywyLjM1MSw0LjgsMS45LjgtLjQ2NSwxLjM5LTIuMzYzLjc4Mi01LjQzNEEyNy4yMTIsMjcuMjEyLDAsMCwwLDE5LjksMTMuNzQsMjcuNiwyNy42LDAsMCwwLDE0Ljc1NSw3LjFjLTIuNDI0LTIuMTUyLTQuMzktMi42MzMtNS4xOTEtMi4xNjlhMi4zMjcsMi4zMjcsMCwwLDAtLjg1NSwxLjY2MiwxMC4xOTQsMTAuMTk0LDAsMCwwLC4xNTMsMy41NjUsMjcuNDY1LDI3LjQ2NSwwLDAsMCwzLjIzNiw4LjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBkOGZmXFxcIi8+XCIsXG5cdH0sXG5cdFwiUmVhY3QgVFNYXCI6IHtcblx0XHRjb2xvdXI6IFwiIzAwN2FjY1wiLFxuXHRcdGljb246IFwiPGNpcmNsZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCIxNS45NzRcXFwiIHI9XFxcIjIuNVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwN2FjY1xcXCIvPjxwYXRoIGQ9XFxcIk0xNiwyMS43MDZhMjguMzg1LDI4LjM4NSwwLDAsMS04Ljg4LTEuMiwxMS4zLDExLjMsMCwwLDEtMy42NTctMS45NThBMy41NDMsMy41NDMsMCwwLDEsMiwxNS45NzRjMC0xLjY1MywxLjgxNi0zLjI3Myw0Ljg1OC00LjMzM0EyOC43NTUsMjguNzU1LDAsMCwxLDE2LDEwLjI5M2EyOC42NzQsMjguNjc0LDAsMCwxLDkuMDIyLDEuMzI0LDExLjM3NiwxMS4zNzYsMCwwLDEsMy41MzgsMS44NjZBMy4zOTEsMy4zOTEsMCwwLDEsMzAsMTUuOTc0YzAsMS43MTgtMi4wMywzLjQ1OS01LjMsNC41NDFBMjguOCwyOC44LDAsMCwxLDE2LDIxLjcwNlptMC0xMC4yMTdhMjcuOTQ4LDI3Ljk0OCwwLDAsMC04Ljc0OSwxLjI4MmMtMi44Ljk3Ny00LjA1NSwyLjMxMy00LjA1NSwzLjIsMCwuOTI4LDEuMzQ5LDIuMzg3LDQuMzExLDMuNEEyNy4yMSwyNy4yMSwwLDAsMCwxNiwyMC41MWEyNy42LDI3LjYsMCwwLDAsOC4zMjUtMS4xM0MyNy40LDE4LjM2MSwyOC44LDE2LjksMjguOCwxNS45NzRhMi4zMjcsMi4zMjcsMCwwLDAtMS4wMS0xLjU3MywxMC4xOTQsMTAuMTk0LDAsMCwwLTMuMTYxLTEuNjU0QTI3LjQ2MiwyNy40NjIsMCwwLDAsMTYsMTEuNDg5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwN2FjY1xcXCIvPjxwYXRoIGQ9XFxcIk0xMC4zMiwyOC40NDNhMi42MzksMi42MzksMCwwLDEtMS4zMzYtLjMyOGMtMS40MzItLjgyNi0xLjkyOC0zLjIwOC0xLjMyNy02LjM3M2EyOC43NTUsMjguNzU1LDAsMCwxLDMuNC04LjU5M2gwQTI4LjY3NiwyOC42NzYsMCwwLDEsMTYuNzEsNS45OTVhMTEuMzc2LDExLjM3NiwwLDAsMSwzLjM4NC0yLjEzMywzLjM5MSwzLjM5MSwwLDAsMSwyLjg3OCwwYzEuNDg5Ljg1OCwxLjk4MiwzLjQ4NiwxLjI4Nyw2Ljg1OWEyOC44MDYsMjguODA2LDAsMCwxLTMuMzE2LDguMTMzLDI4LjM4NSwyOC4zODUsMCwwLDEtNS40NzYsNy4wOTMsMTEuMywxMS4zLDAsMCwxLTMuNTIzLDIuMTg5QTQuOTI2LDQuOTI2LDAsMCwxLDEwLjMyLDI4LjQ0M1ptMS43NzMtMTQuN2EyNy45NDgsMjcuOTQ4LDAsMCwwLTMuMjYsOC4yMTljLS41NTMsMi45MTUtLjAyMiw0LjY2OC43NSw1LjExNC44LjQ2MywyLjc0Mi4wMjQsNS4xLTIuMDM2YTI3LjIwOSwyNy4yMDksMCwwLDAsNS4yMjctNi43OSwyNy42LDI3LjYsMCwwLDAsMy4xODEtNy43NzZjLjY1NC0zLjE3NS4wODktNS4xMTktLjcxMy01LjU4MWEyLjMyNywyLjMyNywwLDAsMC0xLjg2OC4wODlBMTAuMTk0LDEwLjE5NCwwLDAsMCwxNy41LDYuOWEyNy40NjQsMjcuNDY0LDAsMCwwLTUuNCw2Ljg0OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDdhY2NcXFwiLz48cGF0aCBkPVxcXCJNMjEuNjc3LDI4LjQ1NmMtMS4zNTUsMC0zLjA3Ni0uODItNC44NjgtMi4zNjFhMjguNzU2LDI4Ljc1NiwwLDAsMS01Ljc0Ny03LjIzN2gwYTI4LjY3NiwyOC42NzYsMCwwLDEtMy4zNzQtOC40NzEsMTEuMzc2LDExLjM3NiwwLDAsMS0uMTU4LTRBMy4zOTEsMy4zOTEsMCwwLDEsOC45NjQsMy45YzEuNDg3LS44NjEsNC4wMS4wMjQsNi41ODUsMi4zMWEyOC44LDI4LjgsMCwwLDEsNS4zOSw2LjkzNCwyOC4zODQsMjguMzg0LDAsMCwxLDMuNDEsOC4yODcsMTEuMywxMS4zLDAsMCwxLC4xMzcsNC4xNDYsMy41NDMsMy41NDMsMCwwLDEtMS40OTQsMi41NTVBMi41OSwyLjU5LDAsMCwxLDIxLjY3NywyOC40NTZabS05LjU4LTEwLjJhMjcuOTQ5LDI3Ljk0OSwwLDAsMCw1LjQ5Miw2LjkyOWMyLjI0OSwxLjkzNSw0LjAzMywyLjM1MSw0LjgsMS45LjgtLjQ2NSwxLjM5LTIuMzYzLjc4Mi01LjQzNEEyNy4yMTIsMjcuMjEyLDAsMCwwLDE5LjksMTMuNzQsMjcuNiwyNy42LDAsMCwwLDE0Ljc1NSw3LjFjLTIuNDI0LTIuMTUyLTQuMzktMi42MzMtNS4xOTEtMi4xNjlhMi4zMjcsMi4zMjcsMCwwLDAtLjg1NSwxLjY2MiwxMC4xOTQsMTAuMTk0LDAsMCwwLC4xNTMsMy41NjUsMjcuNDY1LDI3LjQ2NSwwLDAsMCwzLjIzNiw4LjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA3YWNjXFxcIi8+XCIsXG5cdH0sXG5cdFwiUmVhc29uXCI6IHtcblx0XHRjb2xvdXI6IFwiI2RkNGIzOVwiLFxuXHRcdGljb246IFwiPHBvbHlsaW5lIHBvaW50cz1cXFwiMiAyIDMwIDIgMzAgMzAgMiAzMCAyIDJcXFwiIHN0eWxlPVxcXCJmaWxsOiNkZDRiMzlcXFwiLz48cGF0aCBkPVxcXCJNOS4wNTEsMTcuNTI3cTIuNTM3LDAsNS4wNzIsMEE0Ljk0Nyw0Ljk0NywwLDAsMSwxNy4xLDE4LjVhMy4yOSwzLjI5LDAsMCwxLDEuMTI4LDIuMjY3LDQuMTE3LDQuMTE3LDAsMCwxLS43NzgsMy4wMjIsMy42LDMuNiwwLDAsMS0xLjEzNy45MDVsMi4yNDcsMy41NDktMy4wNjEsMC0xLjYtMy4wNDMtMi4xNTQsMCwwLDMuMDMySDkuMDUxVjE3LjUyN20yLjY5LDIuMTI4LDAsMy40MzgsMS45ODksMGEyLjE4NCwyLjE4NCwwLDAsMCwxLjQ2OC0uNDUyLDEuODE0LDEuODE0LDAsMCwwLC40ODItMS41NDQsMS40NjksMS40NjksMCwwLDAtLjcwNS0xLjE4LDIuNzY4LDIuNzY4LDAsMCwwLTEuNDM3LS4yNjlDMTIuOTQsMTkuNjU0LDExLjc0MSwxOS42NTUsMTEuNzQxLDE5LjY1NVptOC4zODQtMi4xM2g4LjM1djIuMTNoLTUuNjZWMjEuOGw1LjExLDB2Mi4xMTlIMjIuODJWMjYuMWg1LjgyNHYyLjE0MkgyMC4xMjVWMTcuNTI1WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIlJlZ29cIjoge1xuXHRcdGNvbG91cjogXCIjNzg5MjlhXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48Y2xpcFBhdGggaWQ9XFxcImFcXFwiPjxwYXRoIGQ9XFxcIk03LjA1NSwxNi4yNDFjMy40MTUtMTAuMjIsMTQuNzU5LTkuNDczLDE3LjkyNCwwbC4xLDUuODkzYTE1LjU2MiwxNS41NjIsMCwwLDAtOS4wMzYsNy4yNDZBMTcuNjQxLDE3LjY0MSwwLDAsMCw3LjAzLDIyLjM0NlpcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmVcXFwiLz48L2NsaXBQYXRoPjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3JlZ288L3RpdGxlPjxwYXRoIGQ9XFxcIk03LjAzLDE2LjI0MWwyLjYtNC41NTljLTIuNDE4LS4zMTItMi42MDYtMy40MzEtLjgtOS4wNjJDMy44MDksOC44NTMsMi40MiwxMC4yMjgsNy4wMywxNi4yNDFaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmZiZmJmO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTI0Ljk3LDE2LjI0MWwtMi41OTUtNC41NTljMi40MTgtLjMxMiwyLjYwNi0zLjQzMS44LTkuMDYyQzI4LjE5MSw4Ljg1MywyOS41OCwxMC4yMjgsMjQuOTcsMTYuMjQxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2JmYmZiZjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk03LjA1NSwxNi4yNDFjMy40MTUtMTAuMjIsMTQuNzU5LTkuNDczLDE3LjkyNCwwbC4xLDUuODkzYTE1LjU2MiwxNS41NjIsMCwwLDAtOS4wMzYsNy4yNDZBMTcuNjQxLDE3LjY0MSwwLDAsMCw3LjAzLDIyLjM0NlpcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmVcXFwiLz48ZyBzdHlsZT1cXFwiY2xpcC1wYXRoOnVybCgjYSlcXFwiPjxyZWN0IHg9XFxcIjE2LjA1M1xcXCIgeT1cXFwiNy45NjJcXFwiIHdpZHRoPVxcXCI5LjU0OVxcXCIgaGVpZ2h0PVxcXCIyMS44OTlcXFwiIHN0eWxlPVxcXCJmaWxsOiM1MzYzNjdcXFwiLz48cmVjdCB4PVxcXCI1LjMyMlxcXCIgeT1cXFwiNy45NjJcXFwiIHdpZHRoPVxcXCIxMC43MzJcXFwiIGhlaWdodD1cXFwiMjEuODk5XFxcIiBzdHlsZT1cXFwiZmlsbDojNzg5MjlhXFxcIi8+PC9nPjxjaXJjbGUgY3g9XFxcIjE2LjA0XFxcIiBjeT1cXFwiMTYuMjQxXFxcIiByPVxcXCIxLjE2NlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIlJlU2NyaXB0XCI6IHtcblx0XHRjb2xvdXI6IFwiI2U4NGY0ZlwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMTEuNDIxXFxcIiB5MT1cXFwiLTIyMS43MDVcXFwiIHgyPVxcXCIyMS41MDlcXFwiIHkyPVxcXCItMjQ4Ljc5MlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLCAwLCAwLCAtMSwgMCwgLTIxOClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNlODRmNGZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDA5XFxcIiBzdG9wLWNvbG9yPVxcXCIjZGI0NjQ2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2NiMzkzOVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfcmVzY3JpcHQ8L3RpdGxlPjxwYXRoIGQ9XFxcIk0yLDEwLjk3YzAtMy43MzgsMC01LjYuOTUyLTYuOTE2YTQuOTkyLDQuOTkyLDAsMCwxLDEuMS0xLjFDNS4zNjQsMiw3LjIzMywyLDEwLjk2OSwySDIxLjAzYzMuNzM4LDAsNS42MDUsMCw2LjkxNi45NTFhNC45OTIsNC45OTIsMCwwLDEsMS4xLDEuMUMzMCw1LjM2NCwzMCw3LjIzMiwzMCwxMC45N1YyMS4wM2MwLDMuNzM3LDAsNS42MDUtLjk1Miw2LjkxNmE0Ljk2Niw0Ljk2NiwwLDAsMS0xLjEsMS4xQzI2LjYzNiwzMCwyNC43NjgsMzAsMjEuMDMsMzBIMTAuOTY5Yy0zLjczNiwwLTUuNiwwLTYuOTE1LS45NTJhNC45NjYsNC45NjYsMCwwLDEtMS4xLTEuMUMyLDI2LjYzNiwyLDI0Ljc2NywyLDIxLjAzWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC45NzQsMTUuNTU0YTMuMzI1LDMuMzI1LDAsMSwwLTMuMzI0LTMuMzI1QTMuMzI1LDMuMzI1LDAsMCwwLDIwLjk3NCwxNS41NTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTkuMzE2LDExLjgwOWE0LjY3Niw0LjY3NiwwLDAsMSwuMjA2LTEuOTg3QTEuODg2LDEuODg2LDAsMCwxLDEwLjM0NSw5YTQuNyw0LjcsMCwwLDEsMS45ODctLjIwNWgyLjY0VjIxLjA0NWE0LjY4Niw0LjY4NiwwLDAsMS0uMTQ0LDEuNjY0LDEuODkyLDEuODkyLDAsMCwxLTEuMDIsMS4wMiw0LjcyLDQuNzIsMCwwLDEtMS42NjQuMTQzLDQuNzE3LDQuNzE3LDAsMCwxLTEuNjY0LS4xNDMsMS44OTIsMS44OTIsMCwwLDEtMS4wMi0xLjAyLDQuNzIsNC43MiwwLDAsMS0uMTQzLTEuNjY0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcInJlU1QgKHJlU3RydWN0dXJlZFRleHQpXCI6IHtcblx0XHRjb2xvdXI6IFwiI2NlM2YzMVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE2LDMwQTEzLjg1OSwxMy44NTksMCwwLDEsMi4yODYsMTYsMTQuMTQ5LDE0LjE0OSwwLDAsMSw2LjMsNi4xLDEzLjUxNywxMy41MTcsMCwwLDEsMjUuNyw2LjEsMTQuMTQ5LDE0LjE0OSwwLDAsMSwyOS43MTQsMTYsMTMuODU5LDEzLjg1OSwwLDAsMSwxNiwzMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZTNmMzFcXFwiLz48cGF0aCBkPVxcXCJNMTEuODY5LDIzLjAxNWgtLjRhNC4yNjMsNC4yNjMsMCwwLDEtMS4wNDgtLjExMywxLjM4NywxLjM4NywwLDAsMS0uNzY3LS41NDgsMi4yLDIuMiwwLDAsMS0uNDA5LTEuMDI2QTEzLjI4LDEzLjI4LDAsMCwxLDkuMTU5LDE5LjZhMTIuNzgsMTIuNzgsMCwwLDAtLjA4LTEuNjg3LDEuNzczLDEuNzczLDAsMCwwLS40MDUtLjkyNCwxLjMyNSwxLjMyNSwwLDAsMC0xLjAyNi0uMzkxVjE1LjRhMS4zMjUsMS4zMjUsMCwwLDAsMS4wMjYtLjM5MSwxLjc3MywxLjc3MywwLDAsMCwuNDA1LS45MjQsMTIuNzgsMTIuNzgsMCwwLDAsLjA4LTEuNjg3LDEzLjI4LDEzLjI4LDAsMCwxLC4wODQtMS43MzEsMi4yLDIuMiwwLDAsMSwuNDA5LTEuMDI2LDEuMzg3LDEuMzg3LDAsMCwxLC43NjctLjU0OCw0LjI2Myw0LjI2MywwLDAsMSwxLjA0OC0uMTEzaC40djEuMTRoLS4yMjZxLS43NiwwLS45MzEuNGE3LjcyLDcuNzIsMCwwLDAtLjE3MiwyLjE3LDQuODc2LDQuODc2LDAsMCwxLS40MTYsMi4zMTZBMi4xMTcsMi4xMTcsMCwwLDEsOC44NTksMTZhMi4wODksMi4wODksMCwwLDEsMS4yNjQuOTg2QTQuODc2LDQuODc2LDAsMCwxLDEwLjU0LDE5LjNhNy43Miw3LjcyLDAsMCwwLC4xNzIsMi4xN3EuMTcyLjQuOTMxLjRoLjIyNlptMS42LTMuMTQxaDEuMDM1VjE2LjQyaDEuNDU5bDEuOTcsMy40NTRoMS4xODRMMTcuMDQsMTYuMzA4YTIuMjQzLDIuMjQzLDAsMCwwLDEuODMzLTIuMzE5YzAtMS43LTEuMi0yLjI5NC0yLjg1NS0yLjI5NEgxMy40NzRabTEuMDM1LTQuM1YxMi41M2gxLjM1OWMxLjI3MiwwLDEuOTcuMzg2LDEuOTcsMS40NTlzLS43LDEuNTgzLTEuOTcsMS41ODNabTUuNTU3LTYuNTkxaC40YTQuMjYzLDQuMjYzLDAsMCwxLDEuMDQ4LjExMywxLjM4NywxLjM4NywwLDAsMSwuNzY3LjU0OCwyLjIsMi4yLDAsMCwxLC40MDksMS4wMjYsMTMuMjgsMTMuMjgsMCwwLDEsLjA4NCwxLjczMSwxMi43OCwxMi43OCwwLDAsMCwuMDgsMS42ODcsMS43NzMsMS43NzMsMCwwLDAsLjQwNS45MjQsMS4zMjUsMS4zMjUsMCwwLDAsMS4wMjYuMzkxdjEuMTkxYTEuMzI1LDEuMzI1LDAsMCwwLTEuMDI2LjM5MSwxLjc3MywxLjc3MywwLDAsMC0uNDA1LjkyNCwxMi43OCwxMi43OCwwLDAsMC0uMDgsMS42ODcsMTMuMjgsMTMuMjgsMCwwLDEtLjA4NCwxLjczMSwyLjIsMi4yLDAsMCwxLS40MDksMS4wMjYsMS4zODcsMS4zODcsMCwwLDEtLjc2Ny41NDgsNC4yNjMsNC4yNjMsMCwwLDEtMS4wNDguMTEzaC0uNHYtMS4xNGguMjI2cS43NiwwLC45MzEtLjRBNy43Miw3LjcyLDAsMCwwLDIxLjQsMTkuM2E0Ljg3Niw0Ljg3NiwwLDAsMSwuNDE2LTIuMzE2QTIuMDg5LDIuMDg5LDAsMCwxLDIzLjA3NSwxNmEyLjExNywyLjExNywwLDAsMS0xLjI2NC0uOTk0LDQuODc2LDQuODc2LDAsMCwxLS40MTYtMi4zMTYsNy43Miw3LjcyLDAsMCwwLS4xNzItMi4xN3EtLjE3Mi0uNC0uOTMxLS40aC0uMjI2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIlJvYm90IEZyYW1ld29ya1wiOiB7XG5cdFx0aWNvbjogXCI8Y2lyY2xlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjE2XFxcIiByPVxcXCIxNFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xMC4zODcsMTQuNmEyLjcyNywyLjcyNywwLDAsMSw1LjQ1MywwLC45OS45OSwwLDEsMS0xLjk4LDAsLjc0Ni43NDYsMCwwLDAtMS40OTIsMCwuOTkuOTksMCwxLDEtMS45OCwwbTExLjMsNC41ODZhLjk5MS45OTEsMCwwLDEtLjk5Mi45OTJIMTEuNTA4YS45OTIuOTkyLDAsMCwxLDAtMS45ODRoOS4xODRhLjk5NC45OTQsMCwwLDEsLjk5Mi45OTJNMTcuMzkxLDE1LjE2YS45OTIuOTkyLDAsMCwxLC4yNy0xLjM3NWwyLjI5My0xLjU1MWEuOTg5Ljk4OSwwLDEsMSwxLjEwOSwxLjYzN2wtMi4zLDEuNTUxYS45NjUuOTY1LDAsMCwxLS41NTEuMTcyLjk5NC45OTQsMCwwLDEtLjgyNC0uNDM0bTYuMjg5LDYuMDk0YS43MDcuNzA3LDAsMCwxLS4yMDcuNWwtMS43MDcsMS43MDdhLjcwNy43MDcsMCwwLDEtLjUuMjA3SDEwLjhhLjcwNy43MDcsMCwwLDEtLjUtLjIwN0w4LjYsMjEuNzU0YS43MDcuNzA3LDAsMCwxLS4yMDctLjVWMTAuOGEuNzA3LjcwNywwLDAsMSwuMjA3LS41TDEwLjMsOC41OTRhLjcwNy43MDcsMCwwLDEsLjUtLjIwN0gyMS4yNjZhLjcwNy43MDcsMCwwLDEsLjUuMjA3TDIzLjQ3MywxMC4zYS43MDcuNzA3LDAsMCwxLC4yMDcuNVpNMjUuMTI5LDkuMTYsMjIuOSw2LjkzQTEuODA3LDEuODA3LDAsMCwwLDIxLjYyOSw2LjRIMTAuNDM4YTEuODA3LDEuODA3LDAsMCwwLTEuMjczLjUyN0w2LjkzOCw5LjE2YTEuOCwxLjgsMCwwLDAtLjUyNywxLjI3VjIxLjYyMWExLjgsMS44LDAsMCwwLC41MjcsMS4yNzNsMi4yMjcsMi4yM2ExLjgxLDEuODEsMCwwLDAsMS4yNzMuNTIzSDIxLjYyOWExLjgsMS44LDAsMCwwLDEuMjczLS41MjNsMi4yMjctMi4yM2ExLjc4NCwxLjc4NCwwLDAsMCwuNTI3LTEuMjczVjEwLjQzNGExLjc4NCwxLjc4NCwwLDAsMC0uNTI3LTEuMjczXFxcIi8+XCIsXG5cdH0sXG5cdFwiUnVieVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNiMzEzMDFcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIi0yMzUuOTU3XFxcIiB5MT1cXFwiLTMwOC41NzlcXFwiIHgyPVxcXCItMjM1Ljk4NlxcXCIgeTI9XFxcIi0zMDguNTI3XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDIwMi45MzUsIDAsIDAsIC0yMDIuNzgsIDQ3OTEwLjQ2MSwgLTYyNTQxLjE2KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZiNzY1NVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40MVxcXCIgc3RvcC1jb2xvcj1cXFwiI2U0MmIxZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiIzkwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzkwMFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiLTIzNS41NzFcXFwiIHkxPVxcXCItMzA5LjA4N1xcXCIgeDI9XFxcIi0yMzUuNjk3XFxcIiB5Mj1cXFwiLTMwOS4wNDFcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoNjAuMzA4LCAwLCAwLCAtMTExLjc3OCwgMTQyMzYuMzUxLCAtMzQ1MjUuMzk1KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzg3MTEwMVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiIzkxMTIwOVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzkxMTIwOVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJjXFxcIiB4MT1cXFwiLTIzNS44OTZcXFwiIHkxPVxcXCItMzEzLjM2MlxcXCIgeDI9XFxcIi0yMzUuOTM3XFxcIiB5Mj1cXFwiLTMxMy4xMjlcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMTg4LjMyLCAwLCAwLCAtMjEuOTg2LCA0NDQ0Ny4zMDIsIC02ODU2Ljg4MilcXFwiIHhsaW5rOmhyZWY9XFxcIiNiXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJkXFxcIiB4MT1cXFwiLTIzMy41MTVcXFwiIHkxPVxcXCItMzA5LjA4MlxcXCIgeDI9XFxcIi0yMzMuNDk3XFxcIiB5Mj1cXFwiLTMwOS4xNjFcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoNjUuMjIyLCAwLCAwLCAtOTcuMSwgMTUyMzcuODAyLCAtMjk5OTEuODE0KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yM1xcXCIgc3RvcC1jb2xvcj1cXFwiI2U1NzI1MlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40NlxcXCIgc3RvcC1jb2xvcj1cXFwiI2RlM2IyMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E2MDAwM1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E2MDAwM1xcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJlXFxcIiB4MT1cXFwiLTIzNS4zMTRcXFwiIHkxPVxcXCItMzA5LjUzNFxcXCIgeDI9XFxcIi0yMzUuMzFcXFwiIHkyPVxcXCItMzA5LjYwN1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxMDUuMzIsIDAsIDAsIC0xMDYuODI1LCAyNDc5OC45MjUsIC0zMzA1My4xNTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjIzXFxcIiBzdG9wLWNvbG9yPVxcXCIjZTQ3MTRlXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU2XFxcIiBzdG9wLWNvbG9yPVxcXCIjYmUxYTBkXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjYTgwZDAwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTgwZDAwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImZcXFwiIHgxPVxcXCItMjM1Ljg4MlxcXCIgeTE9XFxcIi0zMTEuODUxXFxcIiB4Mj1cXFwiLTIzNS44NjlcXFwiIHkyPVxcXCItMzExLjkzNVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg5NC4zMjEsIDAsIDAsIC02Ni40MTgsIDIyMjcxLjQ5OSwgLTIwNzA3LjAwNClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMThcXFwiIHN0b3AtY29sb3I9XFxcIiNlNDYzNDJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNFxcXCIgc3RvcC1jb2xvcj1cXFwiI2M4MjQxMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E4MGQwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E4MGQwMFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJnXFxcIiB4MT1cXFwiLTIzNS40MTJcXFwiIHkxPVxcXCItMzIxLjA3NFxcXCIgeDI9XFxcIi0yMzUuMzMzXFxcIiB5Mj1cXFwiLTMyMC45NThcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoNzAuNzY3LCAwLCAwLCAtMjQuMzAxLCAxNjY3OC4xMTYsIC03Nzk4LjY0NylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNTRcXFwiIHN0b3AtY29sb3I9XFxcIiNjODFmMTFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiNiZjA5MDVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNiZjA5MDVcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiaFxcXCIgeDE9XFxcIi0yMjMuODIxXFxcIiB5MT1cXFwiLTMxMC4xMTZcXFwiIHgyPVxcXCItMjIzLjc5NlxcXCIgeTI9XFxcIi0zMTAuMThcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMTguMTc3LCAwLCAwLCAtNzIuNjQ1LCA0MDcxLjAxNywgLTIyNTEwLjIzMylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzFcXFwiIHN0b3AtY29sb3I9XFxcIiNkZTQwMjRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiNiZjE5MGJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNiZjE5MGJcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiaVxcXCIgeDE9XFxcIi0yMzUuNTYxXFxcIiB5MT1cXFwiLTMwOS4yNThcXFwiIHgyPVxcXCItMjM1LjQyNFxcXCIgeTI9XFxcIi0zMDkuMTE2XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDE1OC4xNjIsIDAsIDAsIC0xNTcuOTM3LCAzNzI1Ni4zMTMsIC00ODgxOS4zODIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjYmQwMDEyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjA3XFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjE3XFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjI3XFxcIiBzdG9wLWNvbG9yPVxcXCIjYzgyZjFjXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjMzXFxcIiBzdG9wLWNvbG9yPVxcXCIjODIwYzAxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQ2XFxcIiBzdG9wLWNvbG9yPVxcXCIjYTMxNjAxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjcyXFxcIiBzdG9wLWNvbG9yPVxcXCIjYjMxMzAxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjZTgyNjA5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZTgyNjA5XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImpcXFwiIHgxPVxcXCItMjM1LjQyNFxcXCIgeTE9XFxcIi0zMDkuMTQzXFxcIiB4Mj1cXFwiLTIzNS40NzZcXFwiIHkyPVxcXCItMzA5LjEyNlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxMjcuMDc0LCAwLCAwLCAtOTcuNDA5LCAyOTkzMi4yMjksIC0zMDA4Ni45NDcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjOGMwYzAxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU0XFxcIiBzdG9wLWNvbG9yPVxcXCIjOTkwYzAwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjYTgwZDBlXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTgwZDBlXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImtcXFwiIHgxPVxcXCItMjM1LjgzOVxcXCIgeTE9XFxcIi0zMDkuNjA0XFxcIiB4Mj1cXFwiLTIzNS45MDFcXFwiIHkyPVxcXCItMzA5LjU1NVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg5NC4wMTEsIDAsIDAsIC0xMDUuNjAzLCAyMjE5OC43NDMsIC0zMjY3Ni44NTYpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjN2UxMTBiXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjOWUwYzAwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjOWUwYzAwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImxcXFwiIHgxPVxcXCItMjM1Ljg1NFxcXCIgeTE9XFxcIi0zMTEuMjRcXFwiIHgyPVxcXCItMjM1Ljg5MVxcXCIgeTI9XFxcIi0zMTEuMjAyXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDc5LjcwMiwgMCwgMCwgLTgxLjc5MSwgMTg4MjcuMzk3LCAtMjU0NDcuOTA1KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzc5MTMwZFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiIzllMTIwYlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzllMTIwYlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJtXFxcIiBjeD1cXFwiLTIzNS44ODJcXFwiIGN5PVxcXCItMzEyLjU0M1xcXCIgcj1cXFwiMC4wNzZcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoOTMuMTEzLCAwLCAwLCAtNDguNjU1LCAyMTk4Ni4wNzMsIC0xNTE5My42MSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNhODBkMDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiM3ZTBlMDhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM3ZTBlMDhcXFwiLz48L3JhZGlhbEdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiblxcXCIgY3g9XFxcIi0yMzUuMjgyXFxcIiBjeT1cXFwiLTMwOS43MDRcXFwiIHI9XFxcIjAuMDk3XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDk3LjQzNCwgMCwgMCwgLTc1Ljg0OCwgMjI5MzcuMDU3LCAtMjM0NjcuODQpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTMwYzAwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjODAwZTA4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjODAwZTA4XFxcIi8+PC9yYWRpYWxHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcIm9cXFwiIHgxPVxcXCItMjMxLjI0MVxcXCIgeTE9XFxcIi0zMDkuNDM1XFxcIiB4Mj1cXFwiLTIzMS4yOTlcXFwiIHkyPVxcXCItMzA5LjMzN1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg0MC4xMzcsIDAsIDAsIC04MS4xNDMsIDkyODYuOTk4LCAtMjUwNzguNTg5KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzhiMjExNFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40M1xcXCIgc3RvcC1jb2xvcj1cXFwiIzllMTAwYVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2IzMTAwY1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2IzMTAwY1xcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJwXFxcIiB4MT1cXFwiLTIzNS44OThcXFwiIHkxPVxcXCItMzE3LjQ2NlxcXCIgeDI9XFxcIi0yMzUuODMxXFxcIiB5Mj1cXFwiLTMxNy41MzdcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoNzguMDk5LCAwLCAwLCAtMzIuNjI0LCAxODQ0Ny4zNjEsIC0xMDM1My41NTMpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjYjMxMDAwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQ0XFxcIiBzdG9wLWNvbG9yPVxcXCIjOTEwZjA4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjNzkxYzEyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNzkxYzEyXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9ydWJ5PC90aXRsZT48cGF0aCBkPVxcXCJNMjMuNjkzLDIwLjQ2OSw3LjcwNywyOS45NjFsMjAuNy0xLjRMMzAsNy42ODVaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTI4LjQ0LDI4LjU0MiwyNi42NjEsMTYuMjYzbC00Ljg0Niw2LjRaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTI4LjQ2NCwyOC41NDIsMTUuNDMsMjcuNTE5LDcuNzc2LDI5LjkzNFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYylcXFwiLz48cGF0aCBkPVxcXCJNNy43OTQsMjkuOTM3LDExLjA1LDE5LjI3LDMuODg1LDIwLjhaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2QpXFxcIi8+PHBhdGggZD1cXFwiTTIxLjgxMywyMi43bC0zLTExLjczNUwxMC4yNDMsMTlaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2UpXFxcIi8+PHBhdGggZD1cXFwiTTI5LjMyLDExLjEyN2wtOC4xLTYuNjE5LTIuMjU3LDcuM1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZilcXFwiLz48cGF0aCBkPVxcXCJNMjUuNTMsMi4xNDgsMjAuNzYzLDQuNzgybC0zLjAwNy0yLjY3WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNnKVxcXCIvPjxwYXRoIGQ9XFxcIk0yLDI0LjM4bDItMy42NDJMMi4zODIsMTYuNFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaClcXFwiLz48cGF0aCBkPVxcXCJNMi4yNzQsMTYuMjYzLDMuOSwyMC44NzNsNy4wNjItMS41ODRMMTkuMDI0LDExLjgsMjEuMyw0LjU2OWwtMy41ODMtMi41My02LjA5MSwyLjI4QzkuNzA2LDYuMSw1Ljk4Miw5LjYzNSw1Ljg0OCw5LjdzLTIuNDU5LDQuNDY0LTMuNTc0LDYuNTYyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk03Ljk4MSw3Ljk4MUMxMi4xNCwzLjg1OCwxNy41LDEuNDIxLDE5LjU1OSwzLjVzLS4xMjQsNy4xMjEtNC4yODMsMTEuMjQ0UzUuODIxLDIxLjQzNCwzLjc2NSwxOS4zNTgsMy44MjIsMTIuMSw3Ljk4MSw3Ljk4MVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaSlcXFwiLz48cGF0aCBkPVxcXCJNNy43OTQsMjkuOTMzbDMuMjMxLTEwLjcsMTAuNzI5LDMuNDQ3Yy0zLjg3OSwzLjYzOC04LjE5NCw2LjcxMy0xMy45Niw3LjI1NFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjailcXFwiLz48cGF0aCBkPVxcXCJNMTkuMDM4LDExLjc3NGwyLjc1NCwxMC45MWMzLjI0LTMuNDA3LDYuMTQ5LTcuMDcsNy41NzMtMTEuNmwtMTAuMzI4LjY5MVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaylcXFwiLz48cGF0aCBkPVxcXCJNMjkuMzM3LDExLjEzOWMxLjEtMy4zMjcsMS4zNTctOC4xLTMuODQxLTguOTg1TDIxLjIzMSw0LjUwOWw4LjEwNiw2LjYyOVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjbClcXFwiLz48cGF0aCBkPVxcXCJNMiwyNC4zMzJjLjE1Myw1LjQ5LDQuMTE0LDUuNTcyLDUuOCw1LjYybC0zLjktOS4xTDIsMjQuMzMyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzllMTIwOVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4wNTMsMTEuNzkxYzIuNDksMS41MzEsNy41MDksNC42LDcuNjEsNC42NjFhMTcuNTUyLDE3LjU1MiwwLDAsMCwyLjYxOS01LjM0M2wtMTAuMjI5LjY4M1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjbSlcXFwiLz48cGF0aCBkPVxcXCJNMTEuMDIxLDE5LjIzMmw0LjMxOSw4LjMzMmEyNy45MjQsMjcuOTI0LDAsMCwwLDYuMzg1LTQuODhsLTEwLjctMy40NTJaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI24pXFxcIi8+PHBhdGggZD1cXFwiTTMuODg3LDIwLjg2MWwtLjYxMiw3LjI4N2MxLjE1NSwxLjU3NywyLjc0MywxLjcxNCw0LjQwOSwxLjU5MS0xLjIwNS0zLTMuNjE0LTktMy44LTguODc4WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNvKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMS4yMDYsNC41MjhsOC41OCwxLjJjLS40NTgtMS45NC0xLjg2NC0zLjE5Mi00LjI2MS0zLjU4NGwtNC4zMTksMi4zOFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjcClcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIiNcIixcblx0XHRdLFxuXHR9LFxuXHRcIlJ1c3RcIjoge1xuXHRcdGNvbG91cjogXCIjYTA0ZjEyXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImFcXFwiIGN4PVxcXCItNDkyLjAzNVxcXCIgY3k9XFxcIi04ODMuMzdcXFwiIHI9XFxcIjEzLjk5OFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLjg2NiwgLTAuNSwgLTAuMywgLTAuNTIsIDE3Ny4xMDYsIC02ODkuMDMzKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzdkN2Q3ZFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yNjdcXFwiIHN0b3AtY29sb3I9XFxcIiM3ZTdjN2FcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDVcXFwiIHN0b3AtY29sb3I9XFxcIiM4MTc4NzFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjA4XFxcIiBzdG9wLWNvbG9yPVxcXCIjODY3MTYyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjc1M1xcXCIgc3RvcC1jb2xvcj1cXFwiIzhkNjg0Y1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44ODZcXFwiIHN0b3AtY29sb3I9XFxcIiM5NjVjMzBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNhMDRmMTJcXFwiLz48L3JhZGlhbEdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3J1c3Q8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNS4xMjQsNS4zYS44MzIuODMyLDAsMSwxLC44MzIuODMyaDBhLjgzMS44MzEsMCwwLDEtLjgzMi0uODMyTTUuMiwxMi44MzRhLjgzMi44MzIsMCwxLDEsLjgzMi44MzJoMGEuODMyLjgzMiwwLDAsMS0uODMyLS44MzJtMTkuODU2LjAzOWEuODMyLjgzMiwwLDEsMSwuODMyLjgzMi44MzEuODMxLDAsMCwxLS44MzItLjgzMmgwTTcuNjA1LDE0LjAxM2EuNzYuNzYsMCwwLDAsLjM4Ni0xbC0uMzY5LS44MzVIOS4wNzR2Ni41NDVINi4xNDRhMTAuMjQ3LDEwLjI0NywwLDAsMS0uMzMyLTMuOTExWm02LjA3NC4xNjFWMTIuMjQ1aDMuNDU4Yy4xNzksMCwxLjI2MS4yMDYsMS4yNjEsMS4wMTYsMCwuNjcyLS44My45MTMtMS41MTMuOTEzWk04Ljk1OCwyNC41NjFhLjgzMi44MzIsMCwxLDEsLjgzMi44MzIuODMxLjgzMSwwLDAsMS0uODMyLS44MzJoMG0xMi4zMzEuMDM5YS44MzIuODMyLDAsMSwxLC44MzIuODMyLjgzMi44MzIsMCwwLDEtLjgzMi0uODMyaDBtLjI1Ny0xLjg4N2EuNzU4Ljc1OCwwLDAsMC0uOS41ODRsLS40MTgsMS45NDlhMTAuMjQ5LDEwLjI0OSwwLDAsMS04LjU0NS0uMDQxbC0uNDE3LTEuOTQ5YS43NTkuNzU5LDAsMCwwLS45LS41ODNoMGwtMS43MjEuMzdhMTAuMjMzLDEwLjIzMywwLDAsMS0uODktMS4wNDloOC4zNzRjLjA5NSwwLC4xNTgtLjAxNy4xNTgtLjFWMTguOTI4YzAtLjA4Ni0uMDYzLS4xLS4xNTgtLjFoLTIuNDVWMTYuOTQ3aDIuNjQ5YTEuNjY1LDEuNjY1LDAsMCwxLDEuNjI5LDEuNDEyYy4xMDUuNDEzLjMzNiwxLjc1Ny40OTQsMi4xODcuMTU3LjQ4My44LDEuNDQ3LDEuNDgyLDEuNDQ3aDQuMzIzYTEwLjI0MywxMC4yNDMsMCwwLDEtLjk0OSwxLjFabTQuNjUtNy44MjFhMTAuMjYxLDEwLjI2MSwwLDAsMSwuMDIyLDEuNzc5SDI1LjE2N2MtLjEwNSwwLS4xNDguMDY5LS4xNDguMTcydi40ODNjMCwxLjEzNi0uNjQxLDEuMzg0LTEuMiwxLjQ0Ny0uNTM1LjA2LTEuMTI4LS4yMjQtMS4yLS41NTFhMy42MTYsMy42MTYsMCwwLDAtMS42NzEtMi44MDhjMS4wMy0uNjU0LDIuMS0xLjYxOSwyLjEtMi45MTFBMy4yOTIsMy4yOTIsMCwwLDAsMjEuNDQsOS44YTQuNTU5LDQuNTU5LDAsMCwwLTIuMi0uNzI0SDguMzY3QTEwLjI0NiwxMC4yNDYsMCwwLDEsMTQuMSw1Ljg0bDEuMjgyLDEuMzQ0YS43NTguNzU4LDAsMCwwLDEuMDcyLjAyNmgwbDEuNDM0LTEuMzcyYTEwLjI0OCwxMC4yNDgsMCwwLDEsNy4wMTUsNWwtLjk4MiwyLjIxN2EuNzYxLjc2MSwwLDAsMCwuMzg2LDFabTIuNDQ4LjAzNi0uMDMzLS4zNDMsMS4wMTEtLjk0M2EuNDIuNDIsMCwwLDAtLjAxMy0uNTk1LjQyOC40MjgsMCwwLDAtLjEyMS0uMDgxTDI4LjIsMTIuNDgzbC0uMS0uMzM0LjgwNi0xLjEyYS40MjIuNDIyLDAsMCwwLS4xMy0uNTgxLjQzLjQzLDAsMCwwLS4xMzMtLjA1NWwtMS4zNjMtLjIyMi0uMTY0LS4zMDYuNTczLTEuMjU3YS40MTkuNDE5LDAsMCwwLS4yMzYtLjU0NC40MjYuNDI2LDAsMCwwLS4xNDYtLjAyOWwtMS4zODMuMDQ4TDI1LjcsNy44MTlsLjMxOC0xLjM0N2EuNDIxLjQyMSwwLDAsMC0uMzQzLS40ODcuNDM1LjQzNSwwLDAsMC0uMTQ0LDBMMjQuMTgzLDYuM2wtLjI2Ni0uMjE5TDIzLjk2Niw0LjdhLjQyMS40MjEsMCwwLDAtLjQzMS0uNDExLjQyNi40MjYsMCwwLDAtLjE0MS4wMjhsLTEuMjU3LjU3My0uMzA2LS4xNjQtLjIyMi0xLjM2M2EuNDIxLjQyMSwwLDAsMC0uNS0uMzE4LjQzLjQzLDAsMCwwLS4xMzMuMDU1bC0xLjEyMS44MDYtLjMzMy0uMS0uNDgzLTEuMjkzYS40MjEuNDIxLDAsMCwwLS41NTUtLjIxNS40NDIuNDQyLDAsMCwwLS4xMi4wOEwxNy40MTgsMy4zOWwtLjM0My0uMDMzTDE2LjM0NywyLjE4YS40MjEuNDIxLDAsMCwwLS42ODgsMGwtLjcyOCwxLjE3Ny0uMzQzLjAzMy0uOTQzLTEuMDEyYS40MjEuNDIxLDAsMCwwLS41OTUuMDE1LjQ0Mi40NDIsMCwwLDAtLjA4LjEyTDEyLjQ4MywzLjhsLS4zMzMuMS0xLjEyLS44YS40MjIuNDIyLDAsMCwwLS41ODEuMTMuNDMuNDMsMCwwLDAtLjA1NS4xMzNsLS4yMjIsMS4zNjMtLjMwNi4xNjRMOC42MDgsNC4zMTdhLjQyMS40MjEsMCwwLDAtLjU0NC4yMzkuNDQ0LjQ0NCwwLDAsMC0uMDI4LjE0NGwuMDQ4LDEuMzgzTDcuODE4LDYuMyw2LjQ3MSw1Ljk4NGEuNDIxLjQyMSwwLDAsMC0uNDg3LjM0My40MzUuNDM1LDAsMCwwLDAsLjE0NEw2LjMsNy44MTlsLS4yMTguMjY1TDQuNyw4LjAzNmEuNDIyLjQyMiwwLDAsMC0uMzgzLjU3M0w0Ljg5LDkuODY2bC0uMTY0LjMwNi0xLjM2My4yMjJhLjQyLjQyLDAsMCwwLS4zMTguNS40My40MywwLDAsMCwuMDU1LjEzM2wuODA2LDEuMTItLjEuMzM0LTEuMjkzLjQ4M2EuNDIxLjQyMSwwLDAsMC0uMjE1LjU1NS40MTQuNDE0LDAsMCwwLC4wODEuMTIxbDEuMDExLjk0My0uMDMzLjM0My0xLjE3Ny43MjhhLjQyMS40MjEsMCwwLDAsMCwuNjg4bDEuMTc3LjcyOC4wMzMuMzQzLTEuMDExLjk0M2EuNDIxLjQyMSwwLDAsMCwuMDE1LjU5NS40MzYuNDM2LDAsMCwwLC4xMTkuMDhsMS4yOTMuNDgzLjEuMzM0TDMuMSwyMC45NzJhLjQyMS40MjEsMCwwLDAsLjEzMS41ODEuNDMuNDMsMCwwLDAsLjEzMy4wNTVsMS4zNjMuMjIyLjE2NC4zMDctLjU3MywxLjI1N2EuNDIyLjQyMiwwLDAsMCwuMjQuNTQ1LjQzOC40MzgsMCwwLDAsLjE0My4wMjhsMS4zODMtLjA0OC4yMTkuMjY2LS4zMTcsMS4zNDhhLjQyLjQyLDAsMCwwLC4zNDEuNDg2LjQuNCwwLDAsMCwuMTQ2LDBMNy44MTgsMjUuN2wuMjY2LjIxOEw4LjAzNSwyNy4zYS40MTkuNDE5LDAsMCwwLC40MjkuNDEuNDEzLjQxMywwLDAsMCwuMTQzLS4wMjhsMS4yNTctLjU3My4zMDYuMTY0LjIyMiwxLjM2MmEuNDIxLjQyMSwwLDAsMCwuNS4zMTkuNDA3LjQwNywwLDAsMCwuMTMzLS4wNTVsMS4xMi0uODA3LjMzNC4xLjQ4MywxLjI5MmEuNDIyLjQyMiwwLDAsMCwuNTU2LjIxNC40MzYuNDM2LDAsMCwwLC4xMTktLjA4bC45NDMtMS4wMTEuMzQzLjAzNC43MjgsMS4xNzdhLjQyMi40MjIsMCwwLDAsLjU4OC4xLjQxMy40MTMsMCwwLDAsLjEtLjFsLjcyOC0xLjE3Ny4zNDMtLjAzNC45NDMsMS4wMTFhLjQyMS40MjEsMCwwLDAsLjU5NS0uMDE1LjQzNi40MzYsMCwwLDAsLjA4LS4xMTlsLjQ4My0xLjI5Mi4zMzQtLjEsMS4xMi44MDdhLjQyMS40MjEsMCwwLDAsLjU4MS0uMTMxLjQzLjQzLDAsMCwwLC4wNTUtLjEzM2wuMjIyLTEuMzYyLjMwNi0uMTY0LDEuMjU3LjU3M2EuNDIxLjQyMSwwLDAsMCwuNTQ0LS4yMzkuNDM4LjQzOCwwLDAsMCwuMDI4LS4xNDNsLS4wNDgtMS4zODQuMjY1LS4yMTgsMS4zNDcuMzE3YS40MjEuNDIxLDAsMCwwLC40ODctLjM0LjQ0Ny40NDcsMCwwLDAsMC0uMTQ2TDI1LjcsMjQuMTgzbC4yMTgtLjI2NiwxLjM4My4wNDhhLjQyMS40MjEsMCwwLDAsLjQxLS40MzEuNC40LDAsMCwwLS4wMjgtLjE0MmwtLjU3My0xLjI1Ny4xNjQtLjMwNywxLjM2My0uMjIyYS40MjEuNDIxLDAsMCwwLC4zMTktLjUuNDM0LjQzNCwwLDAsMC0uMDU2LS4xMzVsLS44MDYtMS4xMi4xLS4zMzQsMS4yOTMtLjQ4M2EuNDIuNDIsMCwwLDAsLjIxNS0uNTU0LjQxNC40MTQsMCwwLDAtLjA4MS0uMTIxbC0xLjAxMS0uOTQzLjAzMy0uMzQzLDEuMTc3LS43MjhhLjQyMS40MjEsMCwwLDAsMC0uNjg4WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPlwiLFxuXHR9LFxuXHRcIlNBU1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMDJiYjVcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xNi4wMTgsMzBBMTQsMTQsMCwxLDEsMzAsMTYuMiwxNCwxNCwwLDAsMSwxNi4wMTgsMzBaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDAyYmI1XFxcIi8+PHBhdGggZD1cXFwiTTkuMTcsMjIuNjNjLjAyNi4wNjEuMDQ2LjEyNC4wNzcuMTgzLDIuMjE1LDQuMjA2LDcuNzM4LDQuNjE2LDEwLjc1NiwyLjQ1NGE2LjAxNyw2LjAxNywwLDAsMCwxLjczMS04LjU4MywxNS43LDE1LjcsMCwwLDAtMS4zMTgtMS43MzFjLS44ODEtMS4wNjctMS43NTUtMi4xNC0yLjYzNi0zLjIwNy0uMzY2LS40NDMtLjc2Ny0uODM1LTEuNDE2LS42ODNhMS4zOTMsMS4zOTMsMCwwLDAtLjgxNiwyLjMxMWMuODg4LDEuMTA2LDEuODE5LDIuMTc3LDIuNywzLjI4NmEzLjg3NCwzLjg3NCwwLDAsMSwuNTg5LDQuNCw1LjQyMyw1LjQyMywwLDAsMS01LDMuMTM0QTYuNiw2LjYsMCwwLDEsOS4xNywyMi42M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjIuNDk0LDkuNjA5Yy4wOC0uMjQ4LS4wNjYtLjM3LS4xNDEtLjUwOUE3LjQ3Nyw3LjQ3NywwLDAsMCwxMi42LDYuMjM3Yy0zLjMsMS42My01LjEsNS4zNTItMi42MzcsOS4xNDdhNTYuNTMsNTYuNTMsMCwwLDAsNC4xMzUsNS4xMiwxLjAxMiwxLjAxMiwwLDAsMCwuNzA5LjM0NSwxLjM4NCwxLjM4NCwwLDAsMCwxLjQyOC0uNzY1LDEuMjQ3LDEuMjQ3LDAsMCwwLS4xNzMtMS41MDdjLS44NzYtMS4wNTEtMS43NjktMi4wODgtMi42MTUtMy4xNjJhNC4xMyw0LjEzLDAsMCwxLC4zMjMtNS43NzFBNi4wNTQsNi4wNTQsMCwwLDEsMTkuOTg0LDguMTMsNS4xOSw1LjE5LDAsMCwxLDIyLjQ5NCw5LjYwOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0fSxcblx0XCJTYXNzIChTYXNzKVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNjZDY3OTlcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yNi4xMSwxNy41NzJhNS44LDUuOCwwLDAsMC0yLjUzNy41ODgsNS4zNDUsNS4zNDUsMCwwLDEtLjU2OC0xLjMxNCwzLjUzLDMuNTMsMCwwLDEtLjA1MS0xLjEsOS44MTEsOS44MTEsMCwwLDEsLjMzMi0xLjE5MmMtLjAwNS0uMDUxLS4wNjEtLjI5Mi0uNjI0LS4zcy0xLjA0OC4xMDctMS4xLjI1NmE2LjE3MSw2LjE3MSwwLDAsMC0uMjM1LjgzNCwxOS42ODYsMTkuNjg2LDAsMCwxLTEuNzEzLDMuMjk0LDMuMTg2LDMuMTg2LDAsMCwxLS40NC0yLjA2Niw5LjgxMSw5LjgxMSwwLDAsMSwuMzMyLTEuMTkyYy0uMDA1LS4wNTEtLjA2MS0uMjkyLS42MjQtLjNzLTEuMDQ4LjEwNy0xLjEuMjU2LS4xMTguNS0uMjM1LjgzNC0xLjQ4MywzLjM4Ni0xLjg0MSw0LjE3M2MtLjE4NC40LS4zNDMuNzI2LS40NTUuOTQ2aDBhLjIzMy4yMzMsMCwwLDEtLjAyLjA0MWMtLjEuMTg5LS4xNTMuMjkyLS4xNTMuMjkydi4wMDVjLS4wNzcuMTM4LS4xNTkuMjY2LS4yLjI2NmExLjcxMSwxLjcxMSwwLDAsMSwuMDEtLjg2OWMuMi0xLjA1OS42OS0yLjcwNS42ODUtMi43NjIsMC0uMDMxLjA5Mi0uMzE3LS4zMTctLjQ2NWEuNTA4LjUwOCwwLDAsMC0uNTc4LjFjLS4wMzYsMC0uMDYxLjA4Ny0uMDYxLjA4N3MuNDQ1LTEuODUxLS44NDktMS44NTFhMy44NTUsMy44NTUsMCwwLDAtMi40NzUsMS42ODNjLS4zNDguMTg5LTEuMDg5LjU5My0xLjg4MiwxLjAyOC0uMy4xNjktLjYxNC4zMzgtLjkwNS41LS4wMi0uMDItLjA0MS0uMDQ2LS4wNjEtLjA2NkM2Ljg3LDE3LjYsMy45NzUsMTYuNDE2LDQuMSwxNC4xNzFjLjA0Ni0uODE4LjMyNy0yLjk2Niw1LjU1OS01LjU3NSw0LjMwNi0yLjEyMiw3LjczMy0xLjUzNCw4LjMyNi0uMjMuODQ5LDEuODYyLTEuODM2LDUuMzE5LTYuMjg1LDUuODJhMy4zNTEsMy4zNTEsMCwwLDEtMi44MTMtLjcxMWMtLjIzNS0uMjU2LS4yNzEtLjI3MS0uMzU4LS4yMi0uMTQzLjA3Ny0uMDUxLjMwNywwLC40NGEyLjYyNiwyLjYyNiwwLDAsMCwxLjYwNiwxLjI2Myw4LjU1LDguNTUsMCwwLDAsNS4yMTctLjUxN2MyLjctMS4wNDMsNC44LTMuOTQzLDQuMTg0LTYuMzcyLS42MTktMi40NjUtNC43MS0zLjI3OC04LjU4Mi0xLjlBMTkuNSwxOS41LDAsMCwwLDQuMzU5LDkuOTUyYy0yLjEzMywxLjk5NS0yLjQ3LDMuNzI4LTIuMzMyLDQuNDU1LjUsMi41NzgsNC4wNTEsNC4yNTUsNS40NzIsNS41LS4wNzIuMDQxLS4xMzguMDc3LS4xOTQuMTA3LS43MTEuMzUzLTMuNDIxLDEuNzctNC4xLDMuMjY4LS43NjcsMS43LjEyMywyLjkxNS43MTEsMy4wNzlhNC4zNzQsNC4zNzQsMCwwLDAsNC43MS0xLjkwOEE0LjcyNSw0LjcyNSwwLDAsMCw5LjA0OSwyMC4xYS4xMDcuMTA3LDAsMCwwLS4wMi0uMDMxbC41NTctLjMyN2MuMzYzLS4yMTUuNzIxLS40MTQsMS4wMjgtLjU3OGE2Ljc0LDYuNzQsMCwwLDAtLjM2MywxLjg2MiwzLjg4NiwzLjg4NiwwLDAsMCwuODM0LDIuNy45MjEuOTIxLDAsMCwwLC42NzUuMjJjLjYsMCwuODc1LS41LDEuMTc2LTEuMDk0LjM2OC0uNzI2LjctMS41Ny43LTEuNTdzLS40MTQsMi4yODEuNzExLDIuMjgxYy40MDksMCwuODIzLS41MzIsMS4wMDgtLjh2LjAwNXMuMDEtLjAxNS4wMzEtLjA1MWwuMDY2LS4xMDd2LS4wMWMuMTY0LS4yODYuNTMyLS45MzYsMS4wNzktMi4wMTUuNzA2LTEuMzkxLDEuMzg2LTMuMTMsMS4zODYtMy4xM2E4Ljg4OCw4Ljg4OCwwLDAsMCwuMjcxLDEuMTMsMTAuNjQzLDEwLjY0MywwLDAsMCwuNTgzLDEuMzA5Yy0uMTY0LjIzLS4yNjYuMzU4LS4yNjYuMzU4bC4wMDUuMDA1Yy0uMTMzLjE3NC0uMjc2LjM2My0uNDM1LjU0N2ExNi4zLDE2LjMsMCwwLDAtMS4zMTQsMS42NDcuNDQ3LjQ0NywwLDAsMCwuMTIzLjYsMS4xMTYsMS4xMTYsMCwwLDAsLjY4NS4xMTMsMy4xNDcsMy4xNDcsMCwwLDAsMS4wMjgtLjIzNSwzLjQ1LDMuNDUsMCwwLDAsLjg4NS0uNDY1LDEuOTgsMS45OCwwLDAsMCwuODQ5LTEuNzQ0LDMuNTIxLDMuNTIxLDAsMCwwLS4zMjItMS4yMzNjLjA1MS0uMDcyLjEtLjE0My4xNDgtLjIxNWEyMy40MjgsMjMuNDI4LDAsMCwwLDEuNTM0LTIuNjQ5LDguODg4LDguODg4LDAsMCwwLC4yNzEsMS4xMyw3LjU3LDcuNTcsMCwwLDAsLjUsMS4xMjVBNC44NjEsNC44NjEsMCwwLDAsMjAuOTY1LDIwLjhjLS4zMjIuOTMxLS4wNzIsMS4zNS40LDEuNDQ3YTEuNDI1LDEuNDI1LDAsMCwwLC43NDctLjE1MywzLjQsMy40LDAsMCwwLC45NDYtLjQ4NiwyLjEyNiwyLjEyNiwwLDAsMCwxLjA0My0xLjcyOSwzLjI2OCwzLjI2OCwwLDAsMC0uMjM1LTEuMDIzLDUuMzU2LDUuMzU2LDAsMCwxLDIuNzE2LS4zMTJjMi40MzQuMjg2LDIuOTE1LDEuODA1LDIuODIzLDIuNDQ1YTEuNjE4LDEuNjE4LDAsMCwxLS43NzIsMS4wOTRjLS4xNjkuMTA3LS4yMjUuMTQzLS4yMS4yMi4wMi4xMTMuMS4xMDcuMjQ1LjA4N0ExLjksMS45LDAsMCwwLDMwLDIwLjdjLjA3Ny0xLjUtMS4zNTUtMy4xNDUtMy44ODctMy4xM1pNNy4zMywyMy45Yy0uODA4Ljg4LTEuOTMzLDEuMjEyLTIuNDE5LjkzMS0uNTIyLS4zLS4zMTctMS42LjY3NS0yLjUzMmExMi44ODQsMTIuODg0LDAsMCwxLDEuOS0xLjQxN2MuMTE4LS4wNzIuMjkyLS4xNzQuNS0uM2wuMDU2LS4wMzFoMGwuMTIzLS4wNzdBMy40OTMsMy40OTMsMCwwLDEsNy4zMywyMy45Wm01Ljg4MS00Yy0uMjgxLjY4NS0uODY5LDIuNDQtMS4yMjcsMi4zNDItLjMwNy0uMDgyLS41LTEuNDEyLS4wNjEtMi43MjZhNi4xOTMsNi4xOTMsMCwwLDEsLjk1Ni0xLjc1NGMuNDQtLjQ5MS45MjYtLjY1NSwxLjA0My0uNDU1YTkuMDYyLDkuMDYyLDAsMCwxLS43MTEsMi41OTNabTQuODUzLDIuMzIyYy0uMTE4LjA2MS0uMjMuMS0uMjgxLjA3Mi0uMDM2LS4wMi4wNTEtLjEuMDUxLS4xcy42MDktLjY1NS44NDktLjk1MWMuMTM4LS4xNzQuMy0uMzc4LjQ3Ni0uNjA5VjIwLjdjMCwuNzgyLS43NTcsMS4zMDktMS4wOTQsMS41MjRabTMuNzQ0LS44NTRjLS4wODctLjA2MS0uMDcyLS4yNjYuMjItLjkwNWEzLjQwOCwzLjQwOCwwLDAsMSwuODM0LTEuMDc0LDEuNDQ4LDEuNDQ4LDAsMCwxLC4wODIuNDcxLDEuNTQ3LDEuNTQ3LDAsMCwxLTEuMTM1LDEuNTA5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NkNjc5OVxcXCIvPlwiLFxuXHR9LFxuXHRcIlNhc3MgKFNDU1MpXCI6IHtcblx0XHRjb2xvdXI6IFwiI2NkNjc5OVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE2LjE3MSwxOC43Yy0uNDgxLjIyMS0xLjAwOC41MDktMi4wNjMsMS4wODgtLjQuMjI1LS44MTguNDUtMS4yMDcuNjYyLS4wMjctLjAyNy0uMDU1LS4wNjEtLjA4Mi0uMDg5LTIuMDg3LTIuMjMtNS45NDctMy44MDUtNS43ODMtNi44LjA2MS0xLjA5MS40MzYtMy45NTUsNy40MTMtNy40MzMsNS43NDItMi44MywxMC4zMTEtMi4wNDYsMTEuMS0uMzA3QzI2LjY4Myw4LjMsMjMuMSwxMi45MTMsMTcuMTcsMTMuNTgyYTQuNDY5LDQuNDY5LDAsMCwxLTMuNzUxLS45NDhjLS4zMTQtLjM0MS0uMzYxLS4zNjEtLjQ3Ny0uMjkzLS4xOTEuMS0uMDY4LjQwOSwwLC41ODZhMy41LDMuNSwwLDAsMCwyLjE0MSwxLjY4NCwxMS40LDExLjQsMCwwLDAsNi45NTYtLjY4OWMzLjU5NC0xLjM5MSw2LjQtNS4yNTgsNS41NzgtOC41LS44MjUtMy4yODctNi4yODEtNC4zNzEtMTEuNDQzLTIuNTM3YTI2LDI2LDAsMCwwLTguNzksNS4wNDdjLTIuODQ0LDIuNjYtMy4yOTQsNC45NzItMy4xMSw1Ljk0LjY2MiwzLjQzNyw1LjQsNS42NzQsNy4zLDcuMzMxLS4xLjA1NS0uMTg0LjEtLjI1OS4xNDMtLjk0OC40NzEtNC41NjIsMi4zNi01LjQ2Myw0LjM1OC0xLjAyMywyLjI2NC4xNjQsMy44ODcuOTQ4LDQuMTA1YTUuODMyLDUuODMyLDAsMCwwLDYuMjgxLTIuNTQ0LDYuMyw2LjMsMCwwLDAsLjU1OS01LjgsNS4wMyw1LjAzLDAsMCwxLC43MTYtLjQ3N2MuNDg0LS4yODYuOTQ1LS41NjgsMS4zNTQtLjc4NmwwLDBhMTAuNDc1LDEwLjQ3NSwwLDAsMSw0LjQ3NS0uOTg5YzMuMjQ2LjM4MiwzLjg4NywyLjQwNywzLjc2NCwzLjI2YTIuMTU3LDIuMTU3LDAsMCwxLTEuMDMsMS40NTljLS4yMjUuMTQzLS4zLjE5MS0uMjguMjkzLjAyNy4xNS4xMzYuMTQzLjMyNy4xMTZhMi41MzUsMi41MzUsMCwwLDAsMS43NjYtMi4yNTdjLjEtMi0xLjgwNy00LjE5NC01LjE4My00LjE3NGE3Ljc1Myw3Ljc1MywwLDAsMC0yLjk0Ni41ODdxLS4yMjUuMDkzLS40MzcuMlptLTQuODI1LDcuODM5Yy0xLjA3OCwxLjE3My0yLjU3OCwxLjYxNi0zLjIyNiwxLjI0MS0uNy0uNC0uNDIzLTIuMTM1LjktMy4zNzZhMTcuMTgsMTcuMTgsMCwwLDEsMi41My0xLjg4OWMuMTU3LS4xLjM4OS0uMjMyLjY2OC0uNC4wNDgtLjAyNy4wNzUtLjA0MS4wNzUtLjA0MWwuMTY0LS4xQTQuNjU4LDQuNjU4LDAsMCwxLDExLjM0NiwyNi41MzlaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2Q2Nzk5XFxcIi8+XCIsXG5cdH0sXG5cdFwiU2NhbGFcIjoge1xuXHRcdGNvbG91cjogXCIjZTYyZDJhXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItMTM0LjkwN1xcXCIgeTE9XFxcIjIwNC41NzJcXFwiIHgyPVxcXCItMTM0Ljg5NlxcXCIgeTI9XFxcIjIwNC41NzJcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMTUzOCwgMCwgMCwgLTk2MS4yNSwgMjA3NDk1LCAxOTY2NjEpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZTYyZDJhXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjZcXFwiIHN0b3AtY29sb3I9XFxcIiNkZjNmM2RcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOFxcXCIgc3RvcC1jb2xvcj1cXFwiI2RmM2YzZFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2U2MmQyYVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiLTEzNC45MDdcXFwiIHkxPVxcXCIyMDMuNzgxXFxcIiB4Mj1cXFwiLTEzNC44OTZcXFwiIHkyPVxcXCIyMDMuNzgxXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDE1MzgsIDAsIDAsIC05NjEuMjUsIDIwNzQ5NSwgMTk1ODkyKVxcXCIgeGxpbms6aHJlZj1cXFwiI2FcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImNcXFwiIHgxPVxcXCItMTM0LjkwN1xcXCIgeTE9XFxcIjIwNS4zNjNcXFwiIHgyPVxcXCItMTM0Ljg5NlxcXCIgeTI9XFxcIjIwNS4zNjNcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMTUzOCwgMCwgMCwgLTk2MS4yNSwgMjA3NDk1LCAxOTc0MzApXFxcIiB4bGluazpocmVmPVxcXCIjYVxcXCIvPjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3NjYWxhPC90aXRsZT48cGF0aCBkPVxcXCJNNy4zODQsMTkuMjMxdjIuMTU0YzAsLjM2Myw3LjgzMy45NzEsMTIuOTM3LDIuMTU0LDIuNDY1LS41NzEsNC4yOTUtMS4yNzcsNC4yOTUtMi4xNTRWMTkuMjMxYzAtLjg3Ny0xLjgzLTEuNTgyLTQuMjk1LTIuMTU0LTUuMSwxLjE4My0xMi45MzcsMS43OTEtMTIuOTM3LDIuMTU0XFxcIiBzdHlsZT1cXFwiZmlsbDojN2YwYzFkXFxcIi8+PHBhdGggZD1cXFwiTTcuMzg0LDEwLjYxNXYyLjE1NGMwLC4zNjMsNy44MzMuOTcxLDEyLjkzNywyLjE1NCwyLjQ2NS0uNTcxLDQuMjk1LTEuMjc3LDQuMjk1LTIuMTU0VjEwLjYxNWMwLS44NzctMS44My0xLjU4Mi00LjI5NS0yLjE1NC01LjEsMS4xODMtMTIuOTM3LDEuNzkxLTEyLjkzNywyLjE1NFxcXCIgc3R5bGU9XFxcImZpbGw6IzdmMGMxZFxcXCIvPjxwYXRoIGQ9XFxcIk03LjM4NCwxNC45MjN2Ni40NjJjMC0uNTM4LDE3LjIzMi0xLjYxNSwxNy4yMzItNC4zMDhWMTAuNjE1YzAsMi42OTItMTcuMjMyLDMuNzY5LTE3LjIzMiw0LjMwOFxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk03LjM4NCw2LjMwOFYxMi43N2MwLS41MzgsMTcuMjMyLTEuNjE1LDE3LjIzMi00LjMwOFYyYzAsMi42OTItMTcuMjMyLDMuNzY5LTE3LjIzMiw0LjMwOFxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk03LjM4NCwyMy41MzhWMzBjMC0uNTM4LDE3LjIzMi0xLjYxNSwxNy4yMzItNC4zMDhWMTkuMjMxYzAsMi42OTItMTcuMjMyLDMuNzY5LTE3LjIzMiw0LjMwOFxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNjKVxcXCIvPlwiLFxuXHR9LFxuXHRcIlNoZWxsIHNlc3Npb25cIjoge1xuXHRcdGNvbG91cjogXCIjZDliNDAwXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjkuNCwyNy42SDIuNVY0LjVIMjkuNFptLTI1LjktMUgyOC40VjUuNUgzLjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI2LjA3NyAxOS4zMTYgNS41MjIgMTguNDg0IDEwLjM2NiAxNS4yNTUgNS40NzkgMTEuMTg0IDYuMTIgMTAuNDE2IDEyLjAzNSAxNS4zNDQgNi4wNzcgMTkuMzE2XFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+PHJlY3QgeD1cXFwiMTIuN1xcXCIgeT1cXFwiMTguMlxcXCIgd2lkdGg9XFxcIjcuOFxcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+PHJlY3QgeD1cXFwiMi41XFxcIiB5PVxcXCI1LjVcXFwiIHdpZHRoPVxcXCIyNi45XFxcIiBoZWlnaHQ9XFxcIjEuOVxcXCIgc3R5bGU9XFxcImZpbGw6I2Q5YjQwMFxcXCIvPlwiLFxuXHR9LFxuXHRcIlNoZWxsXCI6IHtcblx0XHRjb2xvdXI6IFwiI2Q5YjQwMFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTI5LjQsMjcuNkgyLjVWNC41SDI5LjRabS0yNS45LTFIMjguNFY1LjVIMy41WlxcXCIgc3R5bGU9XFxcImZpbGw6I2Q5YjQwMFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNi4wNzcgMTkuMzE2IDUuNTIyIDE4LjQ4NCAxMC4zNjYgMTUuMjU1IDUuNDc5IDExLjE4NCA2LjEyIDEwLjQxNiAxMi4wMzUgMTUuMzQ0IDYuMDc3IDE5LjMxNlxcXCIgc3R5bGU9XFxcImZpbGw6I2Q5YjQwMFxcXCIvPjxyZWN0IHg9XFxcIjEyLjdcXFwiIHk9XFxcIjE4LjJcXFwiIHdpZHRoPVxcXCI3LjhcXFwiIGhlaWdodD1cXFwiMVxcXCIgc3R5bGU9XFxcImZpbGw6I2Q5YjQwMFxcXCIvPjxyZWN0IHg9XFxcIjIuNVxcXCIgeT1cXFwiNS41XFxcIiB3aWR0aD1cXFwiMjYuOVxcXCIgaGVpZ2h0PVxcXCIxLjlcXFwiIHN0eWxlPVxcXCJmaWxsOiNkOWI0MDBcXFwiLz5cIixcblx0fSxcblx0XCJTbWFydHlcIjoge1xuXHRcdGNvbG91cjogXCIjZjZlMjAwXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxMy44NTlcXFwiIHkxPVxcXCIyOS4yMTlcXFwiIHgyPVxcXCIxOC4xMDZcXFwiIHkyPVxcXCIyOS4yMTlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjAuMDM0XFxcIiBzdG9wLWNvbG9yPVxcXCIjNjM2MzYxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjE3OFxcXCIgc3RvcC1jb2xvcj1cXFwiIzZjNmQ3MFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yMTlcXFwiIHN0b3AtY29sb3I9XFxcIiM2ZjcxNzVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzA5XFxcIiBzdG9wLWNvbG9yPVxcXCIjNjE2MzY2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQ4MVxcXCIgc3RvcC1jb2xvcj1cXFwiIzNjM2QzZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43MTZcXFwiIHN0b3AtY29sb3I9XFxcIiMwMTAxMDFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzE5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNjM2YTZlXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCIxNS4xNzhcXFwiIHkxPVxcXCIyOS43MzRcXFwiIHgyPVxcXCIxNi43ODdcXFwiIHkyPVxcXCIyOS43MzRcXFwiIHhsaW5rOmhyZWY9XFxcIiNhXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJjXFxcIiB4MT1cXFwiMTUuMjc3XFxcIiB5MT1cXFwiMjkuODgxXFxcIiB4Mj1cXFwiMTYuNjg4XFxcIiB5Mj1cXFwiMjkuODgxXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwLjAzNFxcXCIgc3RvcC1jb2xvcj1cXFwiIzliOWI5OFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xMzFcXFwiIHN0b3AtY29sb3I9XFxcIiNhNGE1YTdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjE5XFxcIiBzdG9wLWNvbG9yPVxcXCIjYWViMWI4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjM1MlxcXCIgc3RvcC1jb2xvcj1cXFwiIzlmYTRhYlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42MDVcXFwiIHN0b3AtY29sb3I9XFxcIiM3ODgxODhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzE5XFxcIiBzdG9wLWNvbG9yPVxcXCIjNjU3MDc2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjOGI5NDlhXFxcIi8+PC9saW5lYXJHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImRcXFwiIGN4PVxcXCItOC40NTZcXFwiIGN5PVxcXCItMTYuNjE2XFxcIiByPVxcXCIxOS4zODNcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoMzQuMDQyIDM3LjA2Mykgc2NhbGUoMS4wNTQpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwLjAzNFxcXCIgc3RvcC1jb2xvcj1cXFwiIzcwNzA2ZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xMTJcXFwiIHN0b3AtY29sb3I9XFxcIiM2MTYyNjFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjE5XFxcIiBzdG9wLWNvbG9yPVxcXCIjNDY0NzRhXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQwOFxcXCIgc3RvcC1jb2xvcj1cXFwiIzQ4NDk0Y1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40ODdcXFwiIHN0b3AtY29sb3I9XFxcIiM0ZTUwNTNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNTQ0XFxcIiBzdG9wLWNvbG9yPVxcXCIjNWE1YzVmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU5MlxcXCIgc3RvcC1jb2xvcj1cXFwiIzZhNmU3MVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42MzNcXFwiIHN0b3AtY29sb3I9XFxcIiM3Zjg1ODhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjY3XFxcIiBzdG9wLWNvbG9yPVxcXCIjOTc5ZWExXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjcxOVxcXCIgc3RvcC1jb2xvcj1cXFwiIzNkNDQ0N1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzY1NmM3MFxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJlXFxcIiB4MT1cXFwiMTYuMTI2XFxcIiB5MT1cXFwiMjguMTA4XFxcIiB4Mj1cXFwiMTYuMDVcXFwiIHkyPVxcXCIyNi44OTNcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjAuMDM0XFxcIiBzdG9wLWNvbG9yPVxcXCIjOWI5Yjk4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjEwOVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E1YTZhN1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yMTlcXFwiIHN0b3AtY29sb3I9XFxcIiNiYWJjYzRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzExXFxcIiBzdG9wLWNvbG9yPVxcXCIjYWJhZWI1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQ4N1xcXCIgc3RvcC1jb2xvcj1cXFwiIzg0ODk4ZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43MTlcXFwiIHN0b3AtY29sb3I9XFxcIiM0ODUwNTRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM4Yjk0OWFcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZlxcXCIgeDE9XFxcIjE2LjAxM1xcXCIgeTE9XFxcIjI2LjU0MlxcXCIgeDI9XFxcIjE1Ljg5NVxcXCIgeTI9XFxcIjI0LjYzNVxcXCIgeGxpbms6aHJlZj1cXFwiI2VcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImdcXFwiIHgxPVxcXCIxNi4wMjNcXFwiIHkxPVxcXCIyNS41NDZcXFwiIHgyPVxcXCIxNS44ODdcXFwiIHkyPVxcXCIyMy4zNTVcXFwiIHhsaW5rOmhyZWY9XFxcIiNlXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJoXFxcIiB4MT1cXFwiMTYuMDEzXFxcIiB5MT1cXFwiMjcuNjI3XFxcIiB4Mj1cXFwiMTUuODk1XFxcIiB5Mj1cXFwiMjUuNzJcXFwiIHhsaW5rOmhyZWY9XFxcIiNlXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJqXFxcIiB4MT1cXFwiMTMuNjhcXFwiIHkxPVxcXCIyOC44MDVcXFwiIHgyPVxcXCIxOC4yODRcXFwiIHkyPVxcXCIyOC44MDVcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjAuMDM0XFxcIiBzdG9wLWNvbG9yPVxcXCIjNTQ1NDUzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjA3MVxcXCIgc3RvcC1jb2xvcj1cXFwiIzYxNjI2MlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xNDNcXFwiIHN0b3AtY29sb3I9XFxcIiM4NDg1ODlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjE5XFxcIiBzdG9wLWNvbG9yPVxcXCIjYWViMWI4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjM1MlxcXCIgc3RvcC1jb2xvcj1cXFwiIzlmYTRhYlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42MDVcXFwiIHN0b3AtY29sb3I9XFxcIiM3ODgxODhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzE5XFxcIiBzdG9wLWNvbG9yPVxcXCIjNjU3MDc2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNTA1NjU5XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImtcXFwiIHgxPVxcXCIxMi4xNTlcXFwiIHkxPVxcXCIyNS44MTNcXFwiIHgyPVxcXCIxOS40NzVcXFwiIHkyPVxcXCIyNS44MTNcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNlNWUxZGZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNkZGRhZDZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMDM4XFxcIiBzdG9wLWNvbG9yPVxcXCIjY2VjY2M5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjExMlxcXCIgc3RvcC1jb2xvcj1cXFwiI2E3YTlhOFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yMTJcXFwiIHN0b3AtY29sb3I9XFxcIiM2OTcwNzJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjY0XFxcIiBzdG9wLWNvbG9yPVxcXCIjNDY1MDU0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjMwM1xcXCIgc3RvcC1jb2xvcj1cXFwiIzYzNmM2ZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zOThcXFwiIHN0b3AtY29sb3I9XFxcIiNhNWFhYWNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDc4XFxcIiBzdG9wLWNvbG9yPVxcXCIjZDVkN2Q5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjUzOVxcXCIgc3RvcC1jb2xvcj1cXFwiI2YzZjRmNVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41NzNcXFwiIHN0b3AtY29sb3I9XFxcIiNmZWZlZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjJcXFwiIHN0b3AtY29sb3I9XFxcIiNmNGY1ZjZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjZGFkY2RmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjhcXFwiIHN0b3AtY29sb3I9XFxcIiNiMGI0YjlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuODc2XFxcIiBzdG9wLWNvbG9yPVxcXCIjOGI5Mjk4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZDFkM2Q0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTdhOWFjXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImxcXFwiIHgxPVxcXCIxMi4xNTlcXFwiIHkxPVxcXCIyNC43MjhcXFwiIHgyPVxcXCIxOS40NzVcXFwiIHkyPVxcXCIyNC43MjhcXFwiIHhsaW5rOmhyZWY9XFxcIiNrXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJtXFxcIiB4MT1cXFwiMTIuMTU5XFxcIiB5MT1cXFwiMjMuNTQ4XFxcIiB4Mj1cXFwiMTkuNDc1XFxcIiB5Mj1cXFwiMjMuNTQ4XFxcIiB4bGluazpocmVmPVxcXCIja1xcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiblxcXCIgeDE9XFxcIjEyLjE1OVxcXCIgeTE9XFxcIjI2Ljg5OFxcXCIgeDI9XFxcIjE5LjQ3NVxcXCIgeTI9XFxcIjI2Ljg5OFxcXCIgeGxpbms6aHJlZj1cXFwiI2tcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcIm9cXFwiIHgxPVxcXCIxMi4xNTlcXFwiIHkxPVxcXCIyNS45NjdcXFwiIHgyPVxcXCIxOS40NzVcXFwiIHkyPVxcXCIyNS45NjdcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNlNWUxZGZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNkZGU4ZDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNkMmYzYmFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMDM2XFxcIiBzdG9wLWNvbG9yPVxcXCIjYzVlNGIxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjEwNVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E0YmQ5OFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xOTlcXFwiIHN0b3AtY29sb3I9XFxcIiM2ZTdmNzFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjY0XFxcIiBzdG9wLWNvbG9yPVxcXCIjNDY1MDU0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjMwM1xcXCIgc3RvcC1jb2xvcj1cXFwiIzYzNmM2ZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zOThcXFwiIHN0b3AtY29sb3I9XFxcIiNhNWFhYWNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDc4XFxcIiBzdG9wLWNvbG9yPVxcXCIjZDVkN2Q5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjUzOVxcXCIgc3RvcC1jb2xvcj1cXFwiI2YzZjRmNVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41NzNcXFwiIHN0b3AtY29sb3I9XFxcIiNmZWZlZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjJcXFwiIHN0b3AtY29sb3I9XFxcIiNmNGY1ZjZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjZGFkY2RmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjhcXFwiIHN0b3AtY29sb3I9XFxcIiNiMGI0YjlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuODc2XFxcIiBzdG9wLWNvbG9yPVxcXCIjOGI5Mjk4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZDFkM2Q0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTdhOWFjXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcInBcXFwiIHgxPVxcXCIxMi4xNTlcXFwiIHkxPVxcXCIyNC44ODNcXFwiIHgyPVxcXCIxOS40NzVcXFwiIHkyPVxcXCIyNC44ODNcXFwiIHhsaW5rOmhyZWY9XFxcIiNvXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJxXFxcIiB4MT1cXFwiMTIuMTU5XFxcIiB5MT1cXFwiMjcuMDVcXFwiIHgyPVxcXCIxOS40NzVcXFwiIHkyPVxcXCIyNy4wNVxcXCIgeGxpbms6aHJlZj1cXFwiI29cXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcInJcXFwiIHgxPVxcXCIxMS45MDJcXFwiIHkxPVxcXCIyMy4yMDFcXFwiIHgyPVxcXCIxOS44ODRcXFwiIHkyPVxcXCIyMy4yMDFcXFwiIHhsaW5rOmhyZWY9XFxcIiNlXFxcIi8+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJzXFxcIiBjeD1cXFwiLTE2Ljk4M1xcXCIgY3k9XFxcIi0yMi45NDhcXFwiIHI9XFxcIjEwLjcxOFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgzNC4wNDIgMzcuMDYzKSBzY2FsZSgxLjA1NClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZmZDFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNTA1XFxcIiBzdG9wLWNvbG9yPVxcXCIjZmYwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU2OFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZkZjcwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42NjRcXFwiIHN0b3AtY29sb3I9XFxcIiNmNmUyMDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzgyXFxcIiBzdG9wLWNvbG9yPVxcXCIjZWJiZjAwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjkwNlxcXCIgc3RvcC1jb2xvcj1cXFwiI2RlOTIwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2RhOTgxOVxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfc21hcnR5PC90aXRsZT48cGF0aCBkPVxcXCJNMTMuODU5LDI4Ljc3NmEuMjQyLjI0MiwwLDAsMCwuMTI4LjE5MSwxMiwxMiwwLDAsMCwxLjM5Mi42MjIsNC4zLDQuMywwLDAsMCwuNTc4LjA3MmguMDUyYTQuMyw0LjMsMCwwLDAsLjU3OC0uMDcyLDEyLjAxNCwxMi4wMTQsMCwwLDAsMS4zOTItLjYyMi4yNDMuMjQzLDAsMCwwLC4xMjgtLjE5MWwtMi4xMzcuMTkyWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4wMTQsMzBhMS4xMjMsMS4xMjMsMCwwLDAsLjY4OC0uMjQ3LjE3NS4xNzUsMCwwLDAsLjA4NS0uMTI2di0uMTA1YTMuMjM1LDMuMjM1LDAsMCwwLS43NzMtLjA1M2gtLjA2M2EzLjIzNywzLjIzNywwLDAsMC0uNzczLjA1M3YuMTA1YS4xNzUuMTc1LDAsMCwwLC4wODUuMTI2LDEuMTIyLDEuMTIyLDAsMCwwLC42ODguMjQ3WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNS45NTEsMjkuODA3YTQuNzMyLDQuNzMyLDAsMCwxLS42NzQtLjA0NCwxLjEwNSwxLjEwNSwwLDAsMCwuNjc0LjIzN2guMDYzYTEuMTA2LDEuMTA2LDAsMCwwLC42NzUtLjIzNyw0LjczMyw0LjczMywwLDAsMS0uNjc1LjA0NFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYylcXFwiLz48cGF0aCBkPVxcXCJNMTkuODA5LDI2LjgzOGExLDEsMCwwLDAtLjIzNC4zODljLS4wMzYuMTgxLS4xLjU4NS0xLjMyNiwxLjQwNmwtLjAyNS4wMTdhLjQzNS40MzUsMCwwLDEtLjA4Ni4wMzcsOS45NjgsOS45NjgsMCwwLDEtMi4xNTUuMjA5LDkuOTY4LDkuOTY4LDAsMCwxLTIuMTU2LS4yMDkuNDM2LjQzNiwwLDAsMS0uMDg1LS4wMzZsLS4wMjUtLjAxN2E0LjU3OSw0LjU3OSwwLDAsMS0xLjEyLS45NTdjLS4xNjQtLjIxOS0uMzczLS4yNTctLjM5LS4zNDVhMjEuMDU1LDIxLjA1NSwwLDAsMCwzLjg1NS4wNTcsMTMuMDQ5LDEzLjA0OSwwLDAsMCwzLjc2MS0uNjU0QS42OTIuNjkyLDAsMCwxLDE5LjgwOSwyNi44MzhaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2QpXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljc3MiwyNi44OGEuOTg1Ljk4NSwwLDAsMS0uMjQ2LjEyOWMtLjA3Ni4wMjgtLjI0NS4wNzgtLjI0NS4wNzhhMjUuMTUsMjUuMTUsMCwwLDEtNi40NTguNDM2Yy0uMTM2LS4wMDktLjMyLS4wMjgtLjMyLS4wMjhhMS4wNjIsMS4wNjIsMCwwLDEtLjE0LS4wMjgsMS4wMTYsMS4wMTYsMCwwLDEsLjE0LjEwN2MuMTYuMDEzLjMxOS4wMTkuMzE5LjAxOWEyNi44NjQsMjYuODY0LDAsMCwwLDYuNzQzLS4zMjNsLjAwOS0uMDQyQS44ODUuODg1LDAsMCwxLDE5Ljc3MiwyNi44OFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZSlcXFwiLz48cGF0aCBkPVxcXCJNMTkuNDM5LDI1LjM4MnMuMjQ1LS4wNy4yNDUtLjE2MmEuMTE0LjExNCwwLDAsMC0uMDEzLS4wNjUuMjE0LjIxNCwwLDAsMS0uMDYxLS4xNDQuNDM3LjQzNywwLDAsMSwuMTE5LS4yNywxLjA2OSwxLjA2OSwwLDAsMS0uMi4xYy0uMDc2LjAyOC0uMjQ1LjA3OC0uMjQ1LjA3OGEyNS4xNTEsMjUuMTUxLDAsMCwxLTYuNDU4LjQzNmMtLjEzNi0uMDA5LS4zMi0uMDI4LS4zMi0uMDI4YTEuMDU1LDEuMDU1LDAsMCwxLS4xODEtLjA0MS4zNzcuMzc3LDAsMCwxLC4wNzguMjE3LjcxNi43MTYsMCwwLDEtLjI1NC40MzIuNjczLjY3MywwLDAsMSwuMzY4LS4wNzlBMjYuMiwyNi4yLDAsMCwwLDE5LjQzOSwyNS4zODJaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2YpXFxcIi8+PHBhdGggZD1cXFwiTTE5LjQzOSwyNC4yMjlzLjI0NS0uMDc4LjI0NS0uMTgyYS4xNDMuMTQzLDAsMCwwLS4wMTMtLjA3My4yNTQuMjU0LDAsMCwxLS4wNjEtLjE2Mi41MTQuNTE0LDAsMCwxLC4xMTktLjMsMS4wMjYsMS4wMjYsMCwwLDEtLjIuMTExYy0uMDc2LjAzMi0uMjQ1LjA4OC0uMjQ1LjA4OGEyMi41MDcsMjIuNTA3LDAsMCwxLTYuNDU4LjQ4OWMtLjEzNi0uMDEtLjMyLS4wMzItLjMyLS4wMzJhLjk1My45NTMsMCwwLDEtLjE4MS0uMDQ2LjQ1NS40NTUsMCwwLDEsLjA3OC4yNDMuODI1LjgyNSwwLDAsMS0uMjU0LjQ4NC42MTQuNjE0LDAsMCwxLC4zNjgtLjA4OUMxMy4wMTQsMjQuNzU4LDE2LjkzNSwyNS4wNDEsMTkuNDM5LDI0LjIyOVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZylcXFwiLz48cGF0aCBkPVxcXCJNMTkuNDM5LDI2LjQ2N3MuMjQ1LS4wNy4yNDUtLjE2M2EuMTE1LjExNSwwLDAsMC0uMDEzLS4wNjUuMjE0LjIxNCwwLDAsMS0uMDYxLS4xNDQuNDM1LjQzNSwwLDAsMSwuMTE5LS4yNywxLjA3LDEuMDcsMCwwLDEtLjIuMWMtLjA3Ni4wMjgtLjI0NS4wNzgtLjI0NS4wNzhhMjUuMTYyLDI1LjE2MiwwLDAsMS02LjQ1OC40MzZjLS4xMzYtLjAwOS0uMzItLjAyOC0uMzItLjAyOGExLjA0MiwxLjA0MiwwLDAsMS0uMTgxLS4wNDEuMzc3LjM3NywwLDAsMSwuMDc4LjIxNy43MTcuNzE3LDAsMCwxLS4yNTQuNDMyLjY3LjY3LDAsMCwxLC4zNjgtLjA3OUEyNi4yMDcsMjYuMjA3LDAsMCwwLDE5LjQzOSwyNi40NjdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2gpXFxcIi8+PHBhdGggZD1cXFwiTTE5LjQzOSwyNi40NjdzLjI0NS0uMDcuMjQ1LS4xNjNhLjExNS4xMTUsMCwwLDAtLjAxMy0uMDY1LjIxNC4yMTQsMCwwLDEtLjA2MS0uMTQ0LjQzNS40MzUsMCwwLDEsLjExOS0uMjcsMS4wNywxLjA3LDAsMCwxLS4yLjFjLS4wNzYuMDI4LS4yNDUuMDc4LS4yNDUuMDc4YTI1LjE2OCwyNS4xNjgsMCwwLDEtNi40NTguNDM2Yy0uMTM2LS4wMDktLjMyLS4wMjgtLjMyLS4wMjhhMS4wNDIsMS4wNDIsMCwwLDEtLjE4MS0uMDQxLjM3Ni4zNzYsMCwwLDEsLjA3OC4yMTcuNzE3LjcxNywwLDAsMS0uMjU0LjQzMi42Ny42NywwLDAsMSwuMzY4LS4wNzlBMjYuMjA3LDI2LjIwNywwLDAsMCwxOS40MzksMjYuNDY3WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNoKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOC4yMjQsMjguNjVhLjQzNS40MzUsMCwwLDEtLjA4Ni4wMzcsOS45NjgsOS45NjgsMCwwLDEtMi4xNTUuMjA5LDkuOTY4LDkuOTY4LDAsMCwxLTIuMTU2LS4yMDkuNDM2LjQzNiwwLDAsMS0uMDg1LS4wMzZsLS4wMjUtLjAxNy0uMDI5LS4wMTlhLjExMi4xMTIsMCwwLDAsMCwuMDczYy4wMjQuMDczLjE0Ny4xLjE0Ny4xYTkuOTQzLDkuOTQzLDAsMCwwLDIuMTUuMjA5LDkuOTQyLDkuOTQyLDAsMCwwLDIuMTUtLjIwOXMuMTI2LS4wMjkuMTQ3LS4xYS4xMTguMTE4LDAsMCwwLDAtLjA3M2wtLjAyOS4wMTlaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2opXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljk0NCwyNS41cy4wNDEuMjUyLS40MTguNDIzYy0uMDc2LjAyOC0uMjQ1LjA3OC0uMjQ1LjA3OGEyNS4xNjIsMjUuMTYyLDAsMCwxLTYuNDU4LjQzNmMtLjEzNi0uMDA5LS4zMi0uMDI4LS4zMi0uMDI4LS4yNzYtLjAzOC0uNDY3LS4xNi0uNDU1LS4zMDgsMCwwLS4wMzMtLjI0OS40NjYtLjI0OWEyNi4yLDI2LjIsMCwwLDAsNi45MjUtLjQ3MnMuMjQ1LS4wNy4yNDUtLjE2MmEuMTExLjExMSwwLDAsMC0uMDEzLS4wNjZTMTkuOTQ0LDI1LjMxMiwxOS45NDQsMjUuNVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaylcXFwiLz48cGF0aCBkPVxcXCJNMTkuOTQ0LDI0LjQxNnMuMDQxLjI1Mi0uNDE4LjQyM2MtLjA3Ni4wMjgtLjI0NS4wNzgtLjI0NS4wNzhhMjUuMTUxLDI1LjE1MSwwLDAsMS02LjQ1OC40MzZjLS4xMzYtLjAwOS0uMzItLjAyOC0uMzItLjAyOC0uMjc2LS4wMzgtLjQ2Ny0uMTYtLjQ1NS0uMzA4LDAsMC0uMDMzLS4yNDguNDY2LS4yNDhhMjYuMTkzLDI2LjE5MywwLDAsMCw2LjkyNS0uNDcycy4yNDUtLjA3LjI0NS0uMTYyYS4xMS4xMSwwLDAsMC0uMDEzLS4wNjVTMTkuOTQ0LDI0LjIyNywxOS45NDQsMjQuNDE2WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNsKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS44OTMsMjQuNDA2di0uMDIxYy0uMDEyLjA3Ni0uMDc4LjIzNi0uNDE3LjM1NS0uMDc2LjAyNi0uMjQ1LjA3My0uMjQ1LjA3M2EyMi4zNzIsMjIuMzcyLDAsMCwxLTUuMS41aDBhMjIuMTU1LDIyLjE1NSwwLDAsMCw1LjEtLjQ0MXMuMTY5LS4wNDcuMjQ1LS4wNzNDMTkuOTMzLDI0LjY0MywxOS44OTMsMjQuNDA2LDE5Ljg5MywyNC40MDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljg5MywyNS40OTFWMjUuNDdjLS4wMTIuMDc2LS4wNzguMjM2LS40MTcuMzU1LS4wNzYuMDI3LS4yNDUuMDczLS4yNDUuMDczYTIyLjM4LDIyLjM4LDAsMCwxLTUuMS41aDBhMjIuMTcxLDIyLjE3MSwwLDAsMCw1LjEtLjQ0MXMuMTY5LS4wNDcuMjQ1LS4wNzNDMTkuOTMzLDI1LjcyOCwxOS44OTMsMjUuNDkxLDE5Ljg5MywyNS40OTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljk0NCwyMy4wMzRzLjA0MS4zMjktLjQxOC41NTJjLS4wNzYuMDM3LS4yNDUuMS0uMjQ1LjFhMTkuNDA5LDE5LjQwOSwwLDAsMS02LjQ1OC41NjljLS4xMzYtLjAxMi0uMzItLjAzNy0uMzItLjAzNy0uMjc2LS4wNS0uNDY3LS4yMDktLjQ1NS0uNCwwLDAtLjAzMy0uMzI0LjQ2Ni0uMzI0YTE4LjI4MywxOC4yODMsMCwwLDAsNi45MjUtLjQ2MSwxLjAxNCwxLjAxNCwwLDAsMCwuNDQ0LS4yMzhBLjUzLjUzLDAsMCwxLDE5Ljk0NCwyMy4wMzRaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI20pXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljk0NCwyNi41ODZzLjA0MS4yNTItLjQxOC40MjNjLS4wNzYuMDI4LS4yNDUuMDc4LS4yNDUuMDc4YTI1LjE1LDI1LjE1LDAsMCwxLTYuNDU4LjQzNmMtLjEzNi0uMDA5LS4zMi0uMDI4LS4zMi0uMDI4LS4yNzYtLjAzOC0uNDY3LS4xNi0uNDU1LS4zMDgsMCwwLS4wMzMtLjI0OC40NjYtLjI0OGEyNi4yMDcsMjYuMjA3LDAsMCwwLDYuOTI1LS40NzJzLjI0NS0uMDcuMjQ1LS4xNjNhLjExMS4xMTEsMCwwLDAtLjAxMy0uMDY1UzE5Ljk0NCwyNi40LDE5Ljk0NCwyNi41ODZaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI24pXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljg5MywyNi41NzZ2LS4wMjFjLS4wMTIuMDc2LS4wNzguMjM2LS40MTcuMzU1LS4wNzYuMDI2LS4yNDUuMDczLS4yNDUuMDczYTIyLjM3MiwyMi4zNzIsMCwwLDEtNS4xLjVoMGEyMi4xNjMsMjIuMTYzLDAsMCwwLDUuMS0uNDQxcy4xNjktLjA0Ny4yNDUtLjA3M0MxOS45MzMsMjYuODEzLDE5Ljg5MywyNi41NzYsMTkuODkzLDI2LjU3NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTkuODkzLDIzLjMyMVYyMy4zYy0uMDEyLjA3Ni0uMDc4LjIzNi0uNDE3LjM1NS0uMDc2LjAyNy0uMjQ1LjA3My0uMjQ1LjA3M2EyMi4zNzIsMjIuMzcyLDAsMCwxLTUuMS41aDBhMjIuMTU2LDIyLjE1NiwwLDAsMCw1LjEtLjQ0MXMuMTY5LS4wNDcuMjQ1LS4wNzNDMTkuOTMzLDIzLjU1OCwxOS44OTMsMjMuMzIxLDE5Ljg5MywyMy4zMjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTEyLjQxNywyNS44ODFzLS4yMzYsMC0uMjQxLjA4LjI0Ni4wODUuMjQ2LjA4NS4xNzUsMCwuMy4wMDVjLjYxOS0uMDEzLDEuOTkzLS4wMzgsMy40MzctLjE2NkMxNC4zODQsMjUuOTU4LDEyLjcyMywyNS44ODMsMTIuNDE3LDI1Ljg4MVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjbylcXFwiLz48cGF0aCBkPVxcXCJNMTIuNDE3LDI0LjhzLS4yMzYsMC0uMjQxLjA4LjI0Ni4wODUuMjQ2LjA4NS4xNzUsMCwuMy4wMDVjLjYxOS0uMDEyLDEuOTkzLS4wMzgsMy40MzctLjE2NkMxNC4zODQsMjQuODc0LDEyLjcyMywyNC44LDEyLjQxNywyNC44WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNwKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi40MTcsMjYuOTY1cy0uMjM2LDAtLjI0MS4wOC4yNDYuMDg1LjI0Ni4wODUuMTc1LDAsLjMuMDA1Yy42MTktLjAxMiwxLjk5My0uMDM4LDMuNDM3LS4xNjZDMTQuMzg0LDI3LjA0MiwxMi43MjMsMjYuOTY2LDEyLjQxNywyNi45NjVaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI3EpXFxcIi8+PHBhdGggZD1cXFwiTTExLjk2NSwyMi43NzlzLS4yNzQuMzE1LjMxOS43MTFjMCwwLDUuNzc1LjU4Nyw3LjYtLjY5NUMxOS44ODQsMjIuNzk1LDEzLjYyMywyMy4zMiwxMS45NjUsMjIuNzc5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNyKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC4wMzUsMjIuNzc5YTQuNDQ5LDQuNDQ5LDAsMCwwLC44MS0xLjE1NSwzLjM4NiwzLjM4NiwwLDAsMCwuMi0xLjExNSw2LjczMyw2LjczMywwLDAsMSwuNjMyLTIuOTFjLjUzNC0xLjAxNCwyLjgxLTQuNDQ3LDIuODEtNy40NjJBOC4wMTIsOC4wMTIsMCwwLDAsMTYsMmE4LjAxMiw4LjAxMiwwLDAsMC04LjQ4Myw4LjEzNmMwLDMuMDE1LDIuMjc2LDYuNDQ4LDIuODEsNy40NjJhNi43MzEsNi43MzEsMCwwLDEsLjYzMiwyLjkxLDMuMzg0LDMuMzg0LDAsMCwwLC4yLDEuMTE1LDQuNDUzLDQuNDUzLDAsMCwwLC44MSwxLjE1NSwxMy44NjYsMTMuODY2LDAsMCwwLDMuOTg3LjM3QTE1LjE1MSwxNS4xNTEsMCwwLDAsMjAuMDM1LDIyLjc3OVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjcylcXFwiLz5cIixcblx0fSxcblx0XCJTb2xpZGl0eSAoRXRoZXJldW0pXCI6IHtcblx0XHRjb2xvdXI6IFwiI2MxYzFjMVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTIwLjQ3NywybC00LjUsOGgtOWw0LjUtOGg5XFxcIiBzdHlsZT1cXFwiZmlsbDojYzFjMWMxO29wYWNpdHk6MC40NTtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxwYXRoIGQ9XFxcIk0xMS41MiwzMGw0LjUtOGg5bC00LjUsOGgtOVxcXCIgc3R5bGU9XFxcImZpbGw6I2MxYzFjMTtvcGFjaXR5OjAuNDU7aXNvbGF0aW9uOmlzb2xhdGVcXFwiLz48cGF0aCBkPVxcXCJNMTUuOTc1LDEwaDlsLTQuNS04aC05WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MxYzFjMTtvcGFjaXR5OjAuNjtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4wMjIsMjJoLTlsNC41LDhoOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMWMxYzE7b3BhY2l0eTowLjY7aXNvbGF0aW9uOmlzb2xhdGVcXFwiLz48cGF0aCBkPVxcXCJNMTEuNDc3LDE4bDQuNS04LTQuNS04LTQuNSw4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MxYzFjMTtvcGFjaXR5OjAuODtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC41MiwxNGwtNC41LDgsNC41LDgsNC41LThaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzFjMWMxO29wYWNpdHk6MC44O2lzb2xhdGlvbjppc29sYXRlXFxcIi8+XCIsXG5cdH0sXG5cdFwiU29sdXRpb24gZmlsZVwiOiB7XG5cdFx0Y29sb3VyOiBcIiM4NTRjYzdcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjE2XFxcIiB5MT1cXFwiLTE4Mi4wNzJcXFwiIHgyPVxcXCIxNlxcXCIgeTI9XFxcIi0yMDkuOTI4XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEsIDAsIDAsIC0xLCAwLCAtMTgwKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9zbG48L3RpdGxlPjxwYXRoIGQ9XFxcIk02LjA0NSwyMy45OTFhMS4xNjYsMS4xNjYsMCwwLDEtMS4yMDguMTkxTDIuNzE4LDIzLjNBMS4xNjgsMS4xNjgsMCwwLDEsMiwyMi4yMjJWOS43NzhBMS4xNjUsMS4xNjUsMCwwLDEsMi43MTgsOC43bDIuMTE5LS44ODNhMS4xNjksMS4xNjksMCwwLDEsMS4yMDguMTkxbC40NzYuNDA4QS42NDYuNjQ2LDAsMCwwLDUuNSw4Ljk0MlYyMy4wNThhLjY0Ni42NDYsMCwwLDAsMS4wMjEuNTI1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzUyMjE4YVxcXCIvPjxwYXRoIGQ9XFxcIk0yLjcxOCwyMy4zQTEuMTY5LDEuMTY5LDAsMCwxLDIsMjIuMjIydi0uMWEuNjc0LjY3NCwwLDAsMCwxLjE3NC40NTJMMjEuMjUsMi41ODNhMS43NDMsMS43NDMsMCwwLDEsMS45OS0uMzM4bDUuNzY5LDIuNzc4QTEuNzQ5LDEuNzQ5LDAsMCwxLDMwLDYuNnYuMDY3YTEuMSwxLjEsMCwwLDAtMS44LS44NTRMNi41MjEsMjMuNTgzbC0uNDc2LjQwOGExLjE2NiwxLjE2NiwwLDAsMS0xLjIwOC4xOTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojNmMzM2FmXFxcIi8+PHBhdGggZD1cXFwiTTIuNzE4LDguN0ExLjE2OCwxLjE2OCwwLDAsMCwyLDkuNzc4di4xYS42NzQuNjc0LDAsMCwxLDEuMTc0LS40NTJMMjEuMjUsMjkuNDE2YTEuNzQzLDEuNzQzLDAsMCwwLDEuOTkuMzM4bDUuNzY5LTIuNzc4QTEuNzQ3LDEuNzQ3LDAsMCwwLDMwLDI1LjR2LS4wNjhhMS4xLDEuMSwwLDAsMS0xLjguODU1TDYuNTIxLDguNDE3bC0uNDc2LS40MDhhMS4xNjYsMS4xNjYsMCwwLDAtMS4yMDgtLjE5MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4NTRjYzdcXFwiLz48cGF0aCBkPVxcXCJNMjMuMjQsMjkuNzU1YTEuNzQzLDEuNzQzLDAsMCwxLTEuOTktLjMzOEExLjAyNSwxLjAyNSwwLDAsMCwyMywyOC42OTJWMy4zMDhhMS4wMjUsMS4wMjUsMCwwLDAtMS43NS0uNzI1LDEuNzQzLDEuNzQzLDAsMCwxLDEuOTktLjMzOGw1Ljc2OCwyLjc3NEExLjc0OSwxLjc0OSwwLDAsMSwzMCw2LjZWMjUuNDA1YTEuNzUxLDEuNzUxLDAsMCwxLS45OTEsMS41NzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojYjE3OWYxXFxcIi8+PGcgc3R5bGU9XFxcIm9wYWNpdHk6MC4yNVxcXCI+PHBhdGggZD1cXFwiTTIyLjA5MywyOS44ODNhMS43NCwxLjc0LDAsMCwwLDEuMTQ3LS4xMjhsNS43NjgtMi43NzRBMS43NDksMS43NDksMCwwLDAsMzAsMjUuNFY2LjZhMS43NSwxLjc1LDAsMCwwLS45OTItMS41NzdMMjMuMjQsMi4yNDVhMS43NDIsMS43NDIsMCwwLDAtMS45OS4zMzlsLTkuMywxMC4yODRMNi41MjEsOC40MTZsLS40NzYtLjQwOGExLjE2OCwxLjE2OCwwLDAsMC0xLjIwNy0uMTkxTDIuNzE5LDguN0ExLjE2NywxLjE2NywwLDAsMCwyLDkuNjg5YzAsLjAyOSwwLC4wNTksMCwuMDg4VjIyLjIyMWMwLC4wMywwLC4wNTksMCwuMDg4YTEuMTY3LDEuMTY3LDAsMCwwLC43MTUuOTg5bDIuMTE5Ljg4M2ExLjIyNiwxLjIyNiwwLDAsMCwuMTU1LjA1MiwxLjE2NSwxLjE2NSwwLDAsMCwxLjA1Mi0uMjQzbC40NzYtLjQwOCw1LjQzLTQuNDUyLDkuMywxMC4yODVBMS43MzMsMS43MzMsMCwwLDAsMjIuMDkzLDI5Ljg4M1pNMjMsMTAuMDcyLDE1Ljc3LDE2LDIzLDIxLjkyN1pNNS41LDEybDMuNjE5LDRMNS41LDIwWlxcXCIgc3R5bGU9XFxcImZpbGwtcnVsZTpldmVub2RkO2ZpbGw6dXJsKCNhKVxcXCIvPjwvZz5cIixcblx0fSxcblx0XCJTUEFSUUxcIjoge1xuXHRcdGNvbG91cjogXCIjMGM0NzljXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjYuMjg0LDIwLjM2MWMtLjE2NS0uMDg0LS4zNTktLjE2NC0uNTIzLS4yNDhIMjUuOXMtMS4xNTgtLjUtMS4yNC00LjE3NmMtLjExMS0zLjY1NSwxLjEtNC4yODksMS4xLTQuMjg5YTQuOTYsNC45NiwwLDAsMCwyLjE3Ni0yLjE0Myw1LjEyMiw1LjEyMiwwLDAsMC0yLjEyMi02LjkyNyw1LjM0Miw1LjM0MiwwLDAsMC03LjEzOCwyLjE0Niw1LjA2Nyw1LjA2NywwLDAsMC0uNTIzLDMuMjE0TDE4LjEsNy44NTVzLjMsMS4zMTktMi44MzksMy4yNzJjLTMuMTE1LDEuOTUtNC41NDkuOTYyLTQuNTQ5Ljk2MmwuMDgyLjEzOGEyLjEzMSwyLjEzMSwwLDAsMC0uMjczLS4xNjcsNS4xMTcsNS4xMTcsMCwxLDAsLjgyNSw4LjUybC0uMDI1LjA1NXMxLjEyOS0uOTMzLDQuNDA3LjgyN2MyLjU5MiwxLjM3NCwyLjk3OSwyLjc0OCwzLjAzMywzLjI0YTUuMSw1LjEsMCwwLDAsMi43LDQuNyw1LjEyNCw1LjEyNCwwLDEsMCw0LjgyNS05LjA0MVptLTUuNzkuNjg1Yy0uNDEyLjEzOC0xLjYuMy00LjA3Ny0xLjAxNy0yLjctMS40NTQtMy4xMTUtMi42NjQtMy4xNjktMy4wMjFhNS40MDYsNS40MDYsMCwwLDAtLjA1Ny0xLjMxOWwuMDI5LjAyNlMxMywxNC41MzQsMTYuMDg0LDEyLjYzOWMyLjc1Ny0xLjcwNSw0LjAyNi0xLjM3NCw0LjI0NS0xLjI5M2EyLjgzLDIuODMsMCwwLDAsLjQ3LjI3Nyw0LjA4Miw0LjA4MiwwLDAsMCwuOTY0LjM4M2MuMzg3LjM1NywxLjA3NiwxLjM3NCwxLjE1OCw0LjFzLS43MTcsMy43NjQtMS4xNTgsNC4xMjFBNS4wNCw1LjA0LDAsMCwwLDIwLjQ5NCwyMS4wNDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMGM0NzljXFxcIi8+PHBhdGggZD1cXFwiTTIwLjEzNSw0LjIyOWEzLjg2MSwzLjg2MSwwLDAsMC0uMDgyLDUuMzg2Yy0uNzE3LS42ODUtLjY4OC0yLjExNy4wMjktMy40NjJhLjY3My42NzMsMCwwLDEsLjc0Ni0uMjc3Yy4wMjUsMCwuMDU0LjAyOS4wODIuMDI5YS45OTMuOTkzLDAsMCwwLC4yNzYuMDI2QTEuMDU2LDEuMDU2LDAsMCwwLDIyLjIsNC44MDVhLjkzNC45MzQsMCwwLDAtLjMtLjY4NWMxLjM4LS45MDcsMi45NS0xLjAxNywzLjYxLS40MTJoLjAyOUEzLjgyNiwzLjgyNiwwLDAsMCwyMC4xMzUsNC4yMjlaTTUuMTQ1LDEzLjg0NmEzLjg1OSwzLjg1OSwwLDAsMC0uMDgyLDUuMzg5Yy0uNzE3LS42ODktLjY5Mi0yLjExNy4wMjUtMy40NjVhLjY2OC42NjgsMCwwLDEsLjc0Ni0uMjczYy4wMjUsMCwuMDU0LjAyOS4wODIuMDI5YTEsMSwwLDAsMCwuMjc2LjAyNkExLjA1NiwxLjA1NiwwLDAsMCw3LjIxLDE0LjQyNWEuOTQ1Ljk0NSwwLDAsMC0uMy0uNjg5YzEuMzc3LS45MDcsMi45NDctMS4wMTcsMy42MS0uNDEyaC4wMjVBMy44NTIsMy44NTIsMCwwLDAsNS4xNDUsMTMuODQ2Wm0xNS44NzIsOC4xNjNhMy44NjUsMy44NjUsMCwwLDAtLjA4Miw1LjM4OWMtLjcxNy0uNjg5LS42ODgtMi4xMTcuMDI5LTMuNDY1YS42NjguNjY4LDAsMCwxLC43NDYtLjI3M2MuMDI1LDAsLjA1NC4wMjYuMDgyLjAyNmEuODg3Ljg4NywwLDAsMCwuMjc2LjAyOSwxLjA1NywxLjA1NywwLDAsMCwxLjAxOC0xLjEyNi45MzYuOTM2LDAsMCwwLS4zLS42ODljMS4zOC0uOTA3LDIuOTUtMS4wMTcsMy42MS0uNDEyaC4wMjlBMy44MjksMy44MjksMCwwLDAsMjEuMDE3LDIyLjAwOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0fSxcblx0XCJTUUZcIjoge1xuXHRcdGNvbG91cjogXCIjYzJjMmMyXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjUsMjMuNUg3YTUuMDE1LDUuMDE1LDAsMCwxLTUtNXYtNmE1LjAxNSw1LjAxNSwwLDAsMSw1LTVIMjVhNS4wMTUsNS4wMTUsMCwwLDEsNSw1djZhNS4wMTUsNS4wMTUsMCwwLDEtNSw1WlxcXCIvPjxwYXRoIGQ9XFxcIk03LDE5LjQ2MWE0LjgxLDQuODEsMCwwLDEtMS40MTQtLjIsNS4wNTIsNS4wNTIsMCwwLDEtMS4xMTEtLjQ3MmwtLjQuNDMyaC0uNUwzLjUsMTYuMDUySDRhOC40NjIsOC40NjIsMCwwLDAsLjQzMS45NTMsNC42MzgsNC42MzgsMCwwLDAsLjYwNi45LDMuMTc3LDMuMTc3LDAsMCwwLC44LjY3NSwxLjk4NSwxLjk4NSwwLDAsMCwxLjAyOS4yNiwxLjY3MiwxLjY3MiwwLDAsMCwxLjIxNi0uNDExQTEuMzgyLDEuMzgyLDAsMCwwLDguNSwxNy4zOTFhMS4xNTYsMS4xNTYsMCwwLDAtLjM1OS0uODYyLDIuOTQ1LDIuOTQ1LDAsMCwwLTEuMTExLS42cS0uNDktLjE2Ny0uOS0uMzF0LS43NzMtLjI5MmEyLjU4LDIuNTgsMCwwLDEtMS4yMzktMS4wMDcsMi43MywyLjczLDAsMCwxLS40MDUtMS40NjUsMi40MDYsMi40MDYsMCwwLDEsLjIxLS45ODYsMi42MDgsMi42MDgsMCwwLDEsLjYxMi0uODUsMi45NjcsMi45NjcsMCwwLDEsLjk4NS0uNTc1LDMuNzIyLDMuNzIyLDAsMCwxLDEuMzA2LS4yMjMsMy45ODQsMy45ODQsMCwwLDEsMS4yODguMiw1LjE1MSw1LjE1MSwwLDAsMSwuOTQ0LjQwOGwuMzU2LS4zN2guNTA3bC4wNDcsMi45ODhoLS41cS0uMTc1LS40ODMtLjQxMS0uOTg3YTQuMzMyLDQuMzMyLDAsMCwwLS41LS44MzksMi4zLDIuMywwLDAsMC0uNjU5LS41NzMsMS43MjksMS43MjksMCwwLDAtLjg3NS0uMjE0QTEuNDM3LDEuNDM3LDAsMCwwLDYsMTEuMjEyYTEuMjMzLDEuMjMzLDAsMCwwLS40LjkzNCwxLjE0MSwxLjE0MSwwLDAsMCwuMzQ3Ljg2LDIuOTUxLDIuOTUxLDAsMCwwLDEuMDgyLjU4OHEuNDMxLjE1NC44OC4zMDl0LjguM2EyLjg4NSwyLjg4NSwwLDAsMSwxLjI4Ni45NTUsMi41MTIsMi41MTIsMCwwLDEsLjQ0LDEuNTEyLDIuNjMyLDIuNjMyLDAsMCwxLS45MjcsMS45ODUsMy4zNjcsMy4zNjcsMCwwLDEtMS4wNzkuNkE0LjM5MSw0LjM5MSwwLDAsMSw3LDE5LjQ2MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cGF0aCBkPVxcXCJNMTguOTIxLDExLjQzNGE0LjMzOCw0LjMzOCwwLDAsMSwuOTcxLDEuNDMyLDQuODM0LDQuODM0LDAsMCwxLC4zNTksMS45MTQsNC45NTgsNC45NTgsMCwwLDEtLjcyLDIuNjgsNC4wMzYsNC4wMzYsMCwwLDEtMi4wMzgsMS42NjEsMi4xNTEsMi4xNTEsMCwwLDAsLjQyLDEuMjcyLDEuMTY4LDEuMTY4LDAsMCwwLC45NS41MzcsMy41NjMsMy41NjMsMCwwLDAsLjU5Mi0uMDQzcS4yNTQtLjA0My40NTgtLjF2LjU0M2E1Ljc1Myw1Ljc1MywwLDAsMS0uOTg1LjMsNi4wNTQsNi4wNTQsMCwwLDEtMS4zNy4xNTEsMi4yMDYsMi4yMDYsMCwwLDEtMS42MTItLjYyMSwyLjU3NCwyLjU3NCwwLDAsMS0uNzA4LTEuNzMyQTQuNTc5LDQuNTc5LDAsMCwxLDEzLjcsMTlhNC4xODYsNC4xODYsMCwwLDEtMS4yNTMtLjkzMiw0LjM4OCw0LjM4OCwwLDAsMS0uODQyLTEuMzc3LDQuNzY5LDQuNzY5LDAsMCwxLS4zMTItMS43NTMsNS4yMzcsNS4yMzcsMCwwLDEsLjM0Ny0xLjk0OCw0LjUsNC41LDAsMCwxLC45NTMtMS41LDQuMTE5LDQuMTE5LDAsMCwxLDEuNDI1LS45NDIsNC44Niw0Ljg2LDAsMCwxLDMuNS0uMDA5QTQuMjQ3LDQuMjQ3LDAsMCwxLDE4LjkyMSwxMS40MzRabS0xLjUsNi4yNjZhNC44NTcsNC44NTcsMCwwLDAsLjM3OS0xLjI3Myw5Ljk4MSw5Ljk4MSwwLDAsMCwuMTE3LTEuNjA2LDEwLjUzNCwxMC41MzQsMCwwLDAtLjEtMS40OCw0LjkzNiw0LjkzNiwwLDAsMC0uMzQ3LTEuMjgyLDIuNDEsMi40MSwwLDAsMC0uNjY1LS45LDEuNTcxLDEuNTcxLDAsMCwwLTEuMDMyLS4zNCwxLjczLDEuNzMsMCwwLDAtMS42LDEuMDYsNi42MzQsNi42MzQsMCwwLDAtLjU0OCwyLjk5Myw5LjU4Myw5LjU4MywwLDAsMCwuMTIsMS41NTEsNC44LDQuOCwwLDAsMCwuMzc2LDEuMjczLDIuMjg2LDIuMjg2LDAsMCwwLC42NjUuODU2LDEuNTkxLDEuNTkxLDAsMCwwLC45OTEuMzA2LDEuNjExLDEuNjExLDAsMCwwLC45OTEtLjMwOUEyLjEzNSwyLjEzNSwwLDAsMCwxNy40MjMsMTcuN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cGF0aCBkPVxcXCJNMjguNSwxMi44aC0uNDU1YTMuOTMsMy45MywwLDAsMC0uNi0xLjA4NiwxLjM4NSwxLjM4NSwwLDAsMC0uODEyLS42M2MtLjExNi0uMDE2LS4yNzItLjAzMS0uNDY1LS4wNDNzLS4zNzMtLjAxOS0uNTM1LS4wMTlIMjQuMzQ5djMuNDMzaC44MjJhMS45NjksMS45NjksMCwwLDAsLjYwNi0uMDgzLDEuMDU0LDEuMDU0LDAsMCwwLC40NTUtLjMsMS41OTEsMS41OTEsMCwwLDAsLjI4My0uNTE2LDIuNjM1LDIuNjM1LDAsMCwwLC4xNjYtLjYyMWguNDQzdjMuNjg2aC0uNDQzYTIuNDcxLDIuNDcxLDAsMCwwLS4xODEtLjY3NiwyLjA5NCwyLjA5NCwwLDAsMC0uMjY4LS41MjgsMS4wMTIsMS4wMTIsMCwwLDAtLjQzMS0uMjkzLDEuODQyLDEuODQyLDAsMCwwLS42My0uMWgtLjgyMnYyLjlhLjg0Mi44NDIsMCwwLDAsLjA3OS4zOC41OC41OCwwLDAsMCwuMy4yNTYsMS44NywxLjg3LDAsMCwwLC4zNTMuMXEuMjI0LjA0Ni40NDYuMDcxdi40ODJoLTQuNDZ2LS40ODJsLjQ0OS0uMDUyYTEuNTI1LDEuNTI1LDAsMCwwLC4zOTEtLjA4My41NDcuNTQ3LDAsMCwwLC4yOTItLjI0MS44NDIuODQyLDAsMCwwLC4wODItLjR2LTYuMThhLjg2Ny44NjcsMCwwLDAtLjA3My0uMzY3LjU3NS41NzUsMCwwLDAtLjMtLjI2MiwyLjM0MSwyLjM0MSwwLDAsMC0uNDMxLS4xMzZxLS4yNjgtLjA2Mi0uNDA4LS4wOHYtLjQ4MkgyOC41WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPlwiLFxuXHR9LFxuXHRcIlNRRjogU3RhdHVzIFF1byBGdW5jdGlvbiAoQXJtYSAzKVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNjMmMyYzJcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yNSwyMy41SDdhNS4wMTUsNS4wMTUsMCwwLDEtNS01di02YTUuMDE1LDUuMDE1LDAsMCwxLDUtNUgyNWE1LjAxNSw1LjAxNSwwLDAsMSw1LDV2NmE1LjAxNSw1LjAxNSwwLDAsMS01LDVaXFxcIi8+PHBhdGggZD1cXFwiTTcsMTkuNDYxYTQuODEsNC44MSwwLDAsMS0xLjQxNC0uMiw1LjA1Miw1LjA1MiwwLDAsMS0xLjExMS0uNDcybC0uNC40MzJoLS41TDMuNSwxNi4wNTJINGE4LjQ2Miw4LjQ2MiwwLDAsMCwuNDMxLjk1Myw0LjYzOCw0LjYzOCwwLDAsMCwuNjA2LjksMy4xNzcsMy4xNzcsMCwwLDAsLjguNjc1LDEuOTg1LDEuOTg1LDAsMCwwLDEuMDI5LjI2LDEuNjcyLDEuNjcyLDAsMCwwLDEuMjE2LS40MTFBMS4zODIsMS4zODIsMCwwLDAsOC41LDE3LjM5MWExLjE1NiwxLjE1NiwwLDAsMC0uMzU5LS44NjIsMi45NDUsMi45NDUsMCwwLDAtMS4xMTEtLjZxLS40OS0uMTY3LS45LS4zMXQtLjc3My0uMjkyYTIuNTgsMi41OCwwLDAsMS0xLjIzOS0xLjAwNywyLjczLDIuNzMsMCwwLDEtLjQwNS0xLjQ2NSwyLjQwNiwyLjQwNiwwLDAsMSwuMjEtLjk4NiwyLjYwOCwyLjYwOCwwLDAsMSwuNjEyLS44NSwyLjk2NywyLjk2NywwLDAsMSwuOTg1LS41NzUsMy43MjIsMy43MjIsMCwwLDEsMS4zMDYtLjIyMywzLjk4NCwzLjk4NCwwLDAsMSwxLjI4OC4yLDUuMTUxLDUuMTUxLDAsMCwxLC45NDQuNDA4bC4zNTYtLjM3aC41MDdsLjA0NywyLjk4OGgtLjVxLS4xNzUtLjQ4My0uNDExLS45ODdhNC4zMzIsNC4zMzIsMCwwLDAtLjUtLjgzOSwyLjMsMi4zLDAsMCwwLS42NTktLjU3MywxLjcyOSwxLjcyOSwwLDAsMC0uODc1LS4yMTRBMS40MzcsMS40MzcsMCwwLDAsNiwxMS4yMTJhMS4yMzMsMS4yMzMsMCwwLDAtLjQuOTM0LDEuMTQxLDEuMTQxLDAsMCwwLC4zNDcuODYsMi45NTEsMi45NTEsMCwwLDAsMS4wODIuNTg4cS40MzEuMTU0Ljg4LjMwOXQuOC4zYTIuODg1LDIuODg1LDAsMCwxLDEuMjg2Ljk1NSwyLjUxMiwyLjUxMiwwLDAsMSwuNDQsMS41MTIsMi42MzIsMi42MzIsMCwwLDEtLjkyNywxLjk4NSwzLjM2NywzLjM2NywwLDAsMS0xLjA3OS42QTQuMzkxLDQuMzkxLDAsMCwxLDcsMTkuNDYxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwYXRoIGQ9XFxcIk0xOC45MjEsMTEuNDM0YTQuMzM4LDQuMzM4LDAsMCwxLC45NzEsMS40MzIsNC44MzQsNC44MzQsMCwwLDEsLjM1OSwxLjkxNCw0Ljk1OCw0Ljk1OCwwLDAsMS0uNzIsMi42OCw0LjAzNiw0LjAzNiwwLDAsMS0yLjAzOCwxLjY2MSwyLjE1MSwyLjE1MSwwLDAsMCwuNDIsMS4yNzIsMS4xNjgsMS4xNjgsMCwwLDAsLjk1LjUzNywzLjU2MywzLjU2MywwLDAsMCwuNTkyLS4wNDNxLjI1NC0uMDQzLjQ1OC0uMXYuNTQzYTUuNzUzLDUuNzUzLDAsMCwxLS45ODUuMyw2LjA1NCw2LjA1NCwwLDAsMS0xLjM3LjE1MSwyLjIwNiwyLjIwNiwwLDAsMS0xLjYxMi0uNjIxLDIuNTc0LDIuNTc0LDAsMCwxLS43MDgtMS43MzJBNC41NzksNC41NzksMCwwLDEsMTMuNywxOWE0LjE4Niw0LjE4NiwwLDAsMS0xLjI1My0uOTMyLDQuMzg4LDQuMzg4LDAsMCwxLS44NDItMS4zNzcsNC43NjksNC43NjksMCwwLDEtLjMxMi0xLjc1Myw1LjIzNyw1LjIzNywwLDAsMSwuMzQ3LTEuOTQ4LDQuNSw0LjUsMCwwLDEsLjk1My0xLjUsNC4xMTksNC4xMTksMCwwLDEsMS40MjUtLjk0Miw0Ljg2LDQuODYsMCwwLDEsMy41LS4wMDlBNC4yNDcsNC4yNDcsMCwwLDEsMTguOTIxLDExLjQzNFptLTEuNSw2LjI2NmE0Ljg1Nyw0Ljg1NywwLDAsMCwuMzc5LTEuMjczLDkuOTgxLDkuOTgxLDAsMCwwLC4xMTctMS42MDYsMTAuNTM0LDEwLjUzNCwwLDAsMC0uMS0xLjQ4LDQuOTM2LDQuOTM2LDAsMCwwLS4zNDctMS4yODIsMi40MSwyLjQxLDAsMCwwLS42NjUtLjksMS41NzEsMS41NzEsMCwwLDAtMS4wMzItLjM0LDEuNzMsMS43MywwLDAsMC0xLjYsMS4wNiw2LjYzNCw2LjYzNCwwLDAsMC0uNTQ4LDIuOTkzLDkuNTgzLDkuNTgzLDAsMCwwLC4xMiwxLjU1MSw0LjgsNC44LDAsMCwwLC4zNzYsMS4yNzMsMi4yODYsMi4yODYsMCwwLDAsLjY2NS44NTYsMS41OTEsMS41OTEsMCwwLDAsLjk5MS4zMDYsMS42MTEsMS42MTEsMCwwLDAsLjk5MS0uMzA5QTIuMTM1LDIuMTM1LDAsMCwwLDE3LjQyMywxNy43WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwYXRoIGQ9XFxcIk0yOC41LDEyLjhoLS40NTVhMy45MywzLjkzLDAsMCwwLS42LTEuMDg2LDEuMzg1LDEuMzg1LDAsMCwwLS44MTItLjYzYy0uMTE2LS4wMTYtLjI3Mi0uMDMxLS40NjUtLjA0M3MtLjM3My0uMDE5LS41MzUtLjAxOUgyNC4zNDl2My40MzNoLjgyMmExLjk2OSwxLjk2OSwwLDAsMCwuNjA2LS4wODMsMS4wNTQsMS4wNTQsMCwwLDAsLjQ1NS0uMywxLjU5MSwxLjU5MSwwLDAsMCwuMjgzLS41MTYsMi42MzUsMi42MzUsMCwwLDAsLjE2Ni0uNjIxaC40NDN2My42ODZoLS40NDNhMi40NzEsMi40NzEsMCwwLDAtLjE4MS0uNjc2LDIuMDk0LDIuMDk0LDAsMCwwLS4yNjgtLjUyOCwxLjAxMiwxLjAxMiwwLDAsMC0uNDMxLS4yOTMsMS44NDIsMS44NDIsMCwwLDAtLjYzLS4xaC0uODIydjIuOWEuODQyLjg0MiwwLDAsMCwuMDc5LjM4LjU4LjU4LDAsMCwwLC4zLjI1NiwxLjg3LDEuODcsMCwwLDAsLjM1My4xcS4yMjQuMDQ2LjQ0Ni4wNzF2LjQ4MmgtNC40NnYtLjQ4MmwuNDQ5LS4wNTJhMS41MjUsMS41MjUsMCwwLDAsLjM5MS0uMDgzLjU0Ny41NDcsMCwwLDAsLjI5Mi0uMjQxLjg0Mi44NDIsMCwwLDAsLjA4Mi0uNHYtNi4xOGEuODY3Ljg2NywwLDAsMC0uMDczLS4zNjcuNTc1LjU3NSwwLDAsMC0uMy0uMjYyLDIuMzQxLDIuMzQxLDAsMCwwLS40MzEtLjEzNnEtLjI2OC0uMDYyLS40MDgtLjA4di0uNDgySDI4LjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+XCIsXG5cdH0sXG5cdFwiU1FMXCI6IHtcblx0XHRjb2xvdXI6IFwiI2ZmZGE0NFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTguNTYyLDE1LjI1NkEyMS4xNTksMjEuMTU5LDAsMCwwLDE2LDE2LjQ0OWEyMS4xNTksMjEuMTU5LDAsMCwwLDcuNDM4LTEuMTk0YzEuODY0LS43MjcsMi41MjUtMS41MzUsMi41MjUtMlY5LjdhMTAuMzU3LDEwLjM1NywwLDAsMS0yLjA4NCwxLjA3NkEyMi4yOTMsMjIuMjkzLDAsMCwxLDE2LDEyLjA3OGEyMi4zNiwyMi4zNiwwLDAsMS03Ljg3OS0xLjNBMTAuMjgsMTAuMjgsMCwwLDEsNi4wMzcsOS43djMuNTVDNi4wMzcsMTMuNzI0LDYuNywxNC41MjgsOC41NjIsMTUuMjU2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZGE0NFxcXCIvPjxwYXRoIGQ9XFxcIk04LjU2MiwyMS45NjFhMTUuNjExLDE1LjYxMSwwLDAsMCwyLjYuNzQxQTI0LjksMjQuOSwwLDAsMCwxNiwyMy4xNTVhMjQuOSwyNC45LDAsMCwwLDQuODM4LS40NTIsMTUuNjE0LDE1LjYxNCwwLDAsMCwyLjYtLjc0MWMxLjg2NC0uNzI3LDIuNTI1LTEuNTM1LDIuNTI1LTJ2LTMuMzlhMTAuNzA2LDEwLjcwNiwwLDAsMS0xLjY5Mi44MjVBMjMuNDksMjMuNDksMCwwLDEsMTYsMTguNzRhMjMuNDksMjMuNDksMCwwLDEtOC4yNzEtMS4zNDgsMTAuODI5LDEwLjgyOSwwLDAsMS0xLjY5Mi0uODI1VjE5Ljk2QzYuMDM3LDIwLjQyNiw2LjcsMjEuMjMxLDguNTYyLDIxLjk2MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmRhNDRcXFwiLz48cGF0aCBkPVxcXCJNMTYsMzBjNS41LDAsOS45NjMtMS43NDQsOS45NjMtMy44OTRWMjMuMjY5YTEwLjUsMTAuNSwwLDAsMS0xLjUzNS43NjJsLS4xNTcuMDYzQTIzLjQ4NywyMy40ODcsMCwwLDEsMTYsMjUuNDQ1YTIzLjQyMiwyMy40MjIsMCwwLDEtOC4yNzEtMS4zNTFjLS4wNTQtLjAyLS4xMDYtLjA0My0uMTU3LS4wNjNhMTAuNSwxMC41LDAsMCwxLTEuNTM1LS43NjJ2Mi44MzdDNi4wMzcsMjguMjU2LDEwLjUsMzAsMTYsMzBaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZkYTQ0XFxcIi8+PGVsbGlwc2UgY3g9XFxcIjE2XFxcIiBjeT1cXFwiNS44OTRcXFwiIHJ4PVxcXCI5Ljk2M1xcXCIgcnk9XFxcIjMuODk0XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZkYTQ0XFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCItLVwiLFxuXHRcdF0sXG5cdH0sXG5cdFwiU3F1aXJyZWxcIjoge1xuXHRcdGNvbG91cjogXCIjYTA1YTJjXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTIuOTY2LDI3LjNhMTguOTI2LDE4LjkyNiwwLDAsMS01LjcwNy0uOTE1Yy0xLjgzMi0uNTkyLTQuMDQ0LTEuNTQtNC45MzEtMy42NDVhLjU1Ny41NTcsMCwwLDEtLjAyNS0uMDczLDEyLjIxNCwxMi4yMTQsMCwwLDEsLjc2My03LjUzMWMxLjUyMi00LjAwOCwzLjcxLTYuNzM5LDYuNS04LjExNmExMC40MjIsMTAuNDIyLDAsMCwxLDcuNi0uNTUsMTAuNDI2LDEwLjQyNiwwLDAsMSw2LjA0LDQuNjM5LDExLjA1NywxMS4wNTcsMCwwLDEsMS4wNTgsMi4zMjYsMTAuNjYsMTAuNjYsMCwwLDEtNS4zNzgsMTIuNjg5bC0uMDIuMDA5QTE0LjgzMiwxNC44MzIsMCwwLDEsMTIuOTY2LDI3LjNaXFxcIi8+PHBhdGggZD1cXFwiTTIyLjcyLDExLjM5M2ExMC4xNDQsMTAuMTQ0LDAsMCwwLTEyLjktMy44NjlDNi43LDkuMDYxLDQuNzg0LDEyLjIsMy41OTMsMTUuMzM0YTExLjksMTEuOSwwLDAsMC0uNzQ2LDcuMTg3Yy43ODMsMS44NiwyLjc3OSwyLjc0NCw0LjU4MiwzLjMyN2ExNi4yMDYsMTYuMjA2LDAsMCwwLDExLjIxMy0uMjMyQTEwLjExLDEwLjExLDAsMCwwLDIzLjcyNywxMy42LDEwLjQ4OCwxMC40ODgsMCwwLDAsMjIuNzIsMTEuMzkzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2EwNWEyY1xcXCIvPjxwYXRoIGQ9XFxcIk0xNS43ODIsNi43MkE4LjI2Myw4LjI2MywwLDAsMSwxNy42NCw4LjA4NCw5LjY1LDkuNjUsMCwwLDEsMTkuMDgsOS44YTkuMzE3LDkuMzE3LDAsMCwxLTEuNTMxLDExLjkyMUExNC45MzMsMTQuOTMzLDAsMCwxLDcuNjU2LDI0LjdhNy41ODEsNy41ODEsMCwwLDEtNC4xMzUtMS4xLDguNDU0LDguNDU0LDAsMCwwLDMuOTA3LDIuMjQxLDE2LjIwOCwxNi4yMDgsMCwwLDAsMTEuMjE0LS4yMzNBMTAuMTEyLDEwLjExMiwwLDAsMCwyMy43MjcsMTMuNmExMC40ODcsMTAuNDg3LDAsMCwwLTEuMDA3LTIuMjExQTkuOTczLDkuOTczLDAsMCwwLDE1Ljc4Miw2LjcyWlxcXCIgc3R5bGU9XFxcImZpbGwtb3BhY2l0eTowLjMxMzcyNTUwMTI5ODkwNDRcXFwiLz48cGF0aCBkPVxcXCJNMjMuNDc2LDEzLjM4OWwtMS4wNjItMi44OTUuMTUyLS4yMzZBNi44NzUsNi44NzUsMCwwLDEsMjcuNTA5LDcuN2EyLjE3NywyLjE3NywwLDAsMSwxLjg3OS41ODgsMy4zNzYsMy4zNzYsMCwwLDEsLjEsMy43MjljLS4zNDMuMjkyLS43NTEuMTI0LTEuMjIyLS4wN2EyLjgyMSwyLjgyMSwwLDAsMC0yLjEzMy0uMjcsMTAuMiwxMC4yLDAsMCwwLTIuMDQ3LDEuMjA5WlxcXCIvPjxwYXRoIGQ9XFxcIk0yMy4wMzksMTAuNTYzYzEuMjIzLTEuOSw1LjEwNy0yLjkxNSw1LjkxMi0xLjkyM2EyLjk3LDIuOTcsMCwwLDEsLjE3NywyLjk0NWMtLjI0NS4yMDctMS44MzctMS4wNTktMy4yMjUtLjQyM0ExMC41NzQsMTAuNTc0LDAsMCwwLDIzLjczLDEyLjQ1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzUwMmQxNlxcXCIvPjxwYXRoIGQ9XFxcIk0yOS40LDkuNzI3YS44LjgsMCwwLDEtLjIuNDY5Yy0uMjI5LjE2Mi0xLjktLjUwNi0zLjIzOC4wNTZhMTIuNDM5LDEyLjQzOSwwLDAsMC0yLjA3MSwxLjA3TDIzLjIsMTAuMzRjLS4wNTcuMDc0LS4xMTYuMTQ3LS4xNjUuMjIzbC42OTIsMS44ODZBMTAuNTc3LDEwLjU3NywwLDAsMSwyNS45LDExLjE2MmMxLjM4OC0uNjM2LDIuOTguNjMxLDMuMjI1LjQyM0EyLjg0NiwyLjg0NiwwLDAsMCwyOS40LDkuNzI3WlxcXCIgc3R5bGU9XFxcImZpbGwtb3BhY2l0eTowLjMxMzcyNTUwMTI5ODkwNDRcXFwiLz48cGF0aCBkPVxcXCJNMjEuMzgyLDI1LjE4YTIuMjM2LDIuMjM2LDAsMCwxLTEuMTQ3LS4zMjMuNTYzLjU2MywwLDAsMS0uMDgyLS44ODhjLjczNy0uNjg0LjYwNy0yLjE3My0uNDEtNC42ODlhMzYuNTI2LDM2LjUyNiwwLDAsMC01LjEyMy04LjgyNWwtLjM1LS40M2MtMS41MTItMS44NjUtMi4zNTgtMi44MTUtMy41NTQtMi4zYS41NjIuNTYyLDAsMCwxLS40MTMuMDE2LjU3MS41NzEsMCwwLDEtLjM3Ny0uNTkyLDIuMTE5LDIuMTE5LDAsMCwxLDEuNDYxLTJjNC43MTYtMS40ODEsMTAuMjYuODE0LDEyLjkwNSw1LjM0NGExMS4yLDExLjIsMCwwLDEtMS40MzEsMTMuOTkxQTEuOTE5LDEuOTE5LDAsMCwxLDIxLjM4MiwyNS4xOFpcXFwiLz48cGF0aCBkPVxcXCJNMjMuODEyLDEwLjc4M2MtMi40NDQtNC4xOTItNy43My02LjUyOC0xMi4yNy01LjA5My0xLjAwNy4yNDgtMS4wNjUsMS41MzUtMS4wNTIsMS41MTcsMS43NzYtLjc2NywyLjk1My45MTksNC41NjYsMi44OWEzNi45LDM2LjksMCwwLDEsNS4yMDksOC45NzFjLjg5LDIuMiwxLjQsNC4yNjcuMjcsNS4zMTJhMS41LDEuNSwwLDAsMCwxLjkwOS0uMjc0QTEwLjY0NiwxMC42NDYsMCwwLDAsMjMuODEyLDEwLjc4M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM1MDJkMTZcXFwiLz48cGF0aCBkPVxcXCJNMjMuNjQ5LDEwLjM0NmE5LjMxNCw5LjMxNCwwLDAsMS0yLjUxOCw3LjcyNWMtLjQ1NS40ODYtLjg3My4xNzctMS4yNjMuMDYzLjEzOC4zMTMuMjcxLjYyNi40LjkzNi44OSwyLjIsMS40LDQuMjY2LjI3MSw1LjMxMmExLjUsMS41LDAsMCwwLDEuOTA5LS4yNzRDMjYuMDg5LDIwLjE4MywyNi4zNTcsMTQuOTE5LDIzLjY0OSwxMC4zNDZaXFxcIiBzdHlsZT1cXFwiZmlsbC1vcGFjaXR5OjAuMzEzNzI1NTAxMjk4OTA0NFxcXCIvPlwiLFxuXHR9LFxuXHRcIlN0YW5cIjoge1xuXHRcdGNvbG91cjogXCIjYjIwMDFkXCIsXG5cdFx0aWNvbjogXCI8dGl0bGU+ZmlsZV90eXBlX3N0YW48L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNiwyQTE0LDE0LDAsMCwwLDUuNjg4LDI1LjQ2OWMxLjctLjUxNCwzLjQxMS0uOTkyLDQuODA2LTEuMzU3LDQuMDM3LTEuMDU0LDEwLjk0OC0yLjgzNiwxMS45NDYtNS4wODItLjI4Ljc4LTEuMjE4LDIuODctMS4yMTgsMi44Ny0xLjI3OSwxLjI0Ny03LjA5LDIuNjMxLTEwLjkxNywzLjM2Ny0xLjIyLjIzNS0yLjYxNC41MDctNC4wMjYuODA2QTE0LDE0LDAsMCwwLDI4LjQ2Nyw5LjYyOGMtMi41MjYuNDA4LTEwLjUsMS44NTQtMTIuNTM5LDIuMzE1LTIuMjU1LjUwOS02Ljc4OSwxLjQzMy03LjY5NCwyLjk5M0M4LjgsMTMuNSwxMC40OTIsOS43NDQsMTAuNDkyLDkuNzQ0YzEuMjE2LTIsNi42LTMuNDI1LDEwLjM1OC00LjQ2My44NzYtLjI0MiwxLjkyMi0uNTM5LDMuMDIzLS44NThBMTMuOTM0LDEzLjkzNCwwLDAsMCwxNiwyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2IyMDAxZFxcXCIvPjxwYXRoIGQ9XFxcIk04LjIyMywxNC45ODdjLS4yNTIsMS4xNzUsMy41MiwyLjMxMyw2LjkyMSwzLjM4OWEyNi4zNjIsMjYuMzYyLDAsMCwxLDUuNjY3LDIuMTkyLDMuMDg1LDMuMDg1LDAsMCwwLDEuNjYyLTEuNjE0Yy4zNzctMS40ODktMy4wMTMtMy4zOTMtNS4yNzQtNC4yMjlhMzMuMzM3LDMzLjMzNywwLDAsMS00LjQwNy0yLjA0MmMtNC4zMTYsMS4xNDMtNC41NjksMi4zLTQuNTY5LDIuM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM1OTA4MTVcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIiNcIixcblx0XHRdLFxuXHR9LFxuXHRcIlN0YXRhIEFkb1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMzYzZlOGZcIixcblx0XHRpY29uOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjE2XFxcIiB5MT1cXFwiMlxcXCIgeDI9XFxcIjE2XFxcIiB5Mj1cXFwiMzBcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM4YWE3YzBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzYzZlOGZcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3N0YXRhPC90aXRsZT48cmVjdCB4PVxcXCIyXFxcIiB5PVxcXCIyXFxcIiB3aWR0aD1cXFwiMjhcXFwiIGhlaWdodD1cXFwiMjhcXFwiIHJ4PVxcXCIxLjU1NlxcXCIgcnk9XFxcIjEuNTU2XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHJlY3QgeD1cXFwiMTMuMTcxXFxcIiB5PVxcXCI2LjAxNVxcXCIgd2lkdGg9XFxcIjUuNzU2XFxcIiBoZWlnaHQ9XFxcIjUuNzU2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHJlY3QgeD1cXFwiMjAuMzI2XFxcIiB5PVxcXCI2LjAxNVxcXCIgd2lkdGg9XFxcIjUuNzU2XFxcIiBoZWlnaHQ9XFxcIjUuNzU2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHJlY3QgeD1cXFwiMjAuMzI2XFxcIiB5PVxcXCIxMy4xNzFcXFwiIHdpZHRoPVxcXCI1Ljc1NlxcXCIgaGVpZ2h0PVxcXCI1Ljc1NlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxyZWN0IHg9XFxcIjEzLjE3MVxcXCIgeT1cXFwiMTMuMTcxXFxcIiB3aWR0aD1cXFwiNS43NTZcXFwiIGhlaWdodD1cXFwiNS43NTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cmVjdCB4PVxcXCI2LjAxNVxcXCIgeT1cXFwiMTMuMTcxXFxcIiB3aWR0aD1cXFwiNS43NTZcXFwiIGhlaWdodD1cXFwiNS43NTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cmVjdCB4PVxcXCI2LjAxNVxcXCIgeT1cXFwiMjAuMzI2XFxcIiB3aWR0aD1cXFwiNS43NTZcXFwiIGhlaWdodD1cXFwiNS43NTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cmVjdCB4PVxcXCIxMy4xNzFcXFwiIHk9XFxcIjIwLjMyNlxcXCIgd2lkdGg9XFxcIjUuNzU2XFxcIiBoZWlnaHQ9XFxcIjUuNzU2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdH0sXG5cdFwiU3R5bHVzXCI6IHtcblx0XHRjb2xvdXI6IFwiI2MyYzJjMlwiLFxuXHRcdGljb246IFwiPHRpdGxlPmZpbGVfdHlwZV9zdHlsdXM8L3RpdGxlPjxwYXRoIGQ9XFxcIk02LjMxNSwyMC43NzZjLjcyNi0uODY5LjgxMi0xLjc2Ni4yNDktMy40MzItLjM1Ni0xLjA1NC0uOTQ3LTEuODY1LS41MTMtMi41MjEuNDYzLS43LDEuNDQ1LS4wMjEuNjI3LjkxMWwuMTY0LjExNGMuOTgzLjExNCwxLjQ2Ny0xLjIzMi43MzMtMS42MTYtMS45MzctMS4wMTEtMy42MzEuOTMzLTIuODg0LDMuMTgzLjMyLjk1NC43NjksMS45NjUuNDA2LDIuNzdBMS43OTQsMS43OTQsMCwwLDEsMy43NzMsMjEuM2MtLjg0Ny4wNDMtLjI4NS0xLjkuNjkxLTIuMzg1LjA4NS0uMDQzLjIwNi0uMS4wOTMtLjI0MmEyLjEzNCwyLjEzNCwwLDAsMC0yLjMxNCwxLjJDMS4wNjEsMjIuMTIxLDQuNDg1LDIyLjk1NCw2LjMxNSwyMC43NzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+PHBhdGggZD1cXFwiTTI3LjQ2MiwxNC4xNGMuMjc4LjY4NC43LDEuMzYuNDQ5LDEuOTU4LS4yMDYuNTEzLS40NzcuNzI2LS43NzYuNzc2LS40Mi4wNzEtLjMwNi0xLjI0Ni40MTMtMS42MzguMDY0LS4wMzYuMTU3LS4yMDYuMDcxLS4zMDZhMS42MzYsMS42MzYsMCwwLDAtMS43Ljk2MWMtLjgsMS42ODcsMS44MjMsMi4xNSwzLjExMi40OTEuNTEzLS42NjIuNTM0LTEuMzE3LjA0My0yLjUwNi0uMzEzLS43NTUtLjc5LTEuMzE3LS40OTEtMS44MTYuMzItLjUyNywxLjA4OS0uMDcxLjUxMy42MzRsLjEyOC4wNzFjLjc0OC4wNDMsMS4wNTQtLjk1NC40ODQtMS4yQTEuODM0LDEuODM0LDAsMCwwLDI3LjQ2MiwxNC4xNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cGF0aCBkPVxcXCJNMTcuOTUsMTIuMzM4Yy0uNTItLjQxMy0xLjk3OS4yNzgtMi4zOTIsMS4zYTE2LjIxMywxNi4yMTMsMCwwLDEtMi4wNDMsNC4wMzdjLS44Ljg3Ni0uODc2LjItLjgtLjMwNkExNS4zMjcsMTUuMzI3LDAsMCwxLDE0LjcsMTIuNjUyYy0uMjM1LS4zNDktMS43NzMtLjMtMi44NDEsMS4zNi0uNC42MjctMS4zMSwyLjcxMy0yLjMyMSw0LjM1OC0uMjIxLjM1Ni0uNS4xMDctLjI4NS0uNzI2YTM5LjgsMzkuOCwwLDAsMSwxLjg3My01LjY4MiwzOS4wNzIsMzkuMDcyLDAsMCwxLDYuOTIxLS44MTljLjI2My0uMDcxLjQ0MS0uMzA2LDAtLjMyYTQ2Ljc3OCw0Ni43NzgsMCwwLDAtNi41OTMuNDQxLDQuOTIzLDQuOTIzLDAsMCwxLDEuNDQ1LTEuOTQ0LDEuNzg3LDEuNzg3LDAsMCwwLTIuMjY0LjcxOSwxMi4yODcsMTIuMjg3LDAsMCwwLS44MTksMS40NTMsMjQuMTk0LDI0LjE5NCwwLDAsMC0zLjk4Ljg2MmMtLjc4My4zLS43LDEuMjQ2LS4yMjEsMS4wNjhhMzEuNjMxLDMxLjYzMSwwLDAsMSwzLjgxNi0xLjEsMzAuMjkyLDMwLjI5MiwwLDAsMC0xLjg2NSw1LjY4MmMtLjQ0MSwyLjQ5MiwxLjEsMi40NzgsMS44NTgsMS41LjgxOS0xLjA3NSwyLjUyOC00Ljg1NiwyLjc5MS01LjI1NS4wNzgtLjEzNS4xODUtLjA2NC4xMjguMDU3LTEuOTA4LDMuODA5LTEuNzQ0LDUuMjgzLS4yLDQuOTU2YTQuOTI5LDQuOTI5LDAsMCwwLDIuMjE0LTEuOTY1Yy4wNjQtLjE1LjItLjEzNS4xNzEtLjA3MS0xLjIxLDMuMTQtMi43NDgsNS42ODItMy43ODEsNi40NzktLjk0LjcxOS0xLjYzOC0uODQsMS42ODctMy4wNzYuNDkxLS4zMzUuMjYzLS43OS0uMjkyLS42MzRoMGEyOS43OTMsMjkuNzkzLDAsMCwwLTguNzg2LDMuMzI1Yy0uMTY0LjExNC0uMzEzLjIwNi0uMzA2LjQ0MS4wMDcuMTM1LjI0Mi4wODUuMzU2LjAxNEEyMi43NzEsMjIuNzcxLDAsMCwxLDExLjEsMjAuOWEuMTU4LjE1OCwwLDAsMCwuMTE0LjAwN2MuMTIxLS4wMjguMTE0LjAzNi4wMzYuMDg1LS4xNzguMS0uMzU2LjE5Mi0uNC4yMDYtMS43NjYuNjkxLTIuODM0LDIuMjE0LTIuNDU2LDIuOTkuMzIuNjY5LDIuMDUxLjQyNywyLjg2OS0uMDE0LDIuMDA4LTEuMDg5LDMuNDY4LTMuMjI1LDQuNDY0LTYuMTczQzE2LjYsMTUuMzg2LDE3LjY5MywxMi40MjQsMTcuOTUsMTIuMzM4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwYXRoIGQ9XFxcIk0yOS42MiwxOC4zNjlhNDguMTQ1LDQ4LjE0NSwwLDAsMC0xMy40MjkuOTY4Yy0uOTI2LjI0Mi0uNjY5LjczMy0uMi42NDEuMDA3LDAsLjIwNi0uMDUuMjE0LS4wNWE0Mi4yNzksNDIuMjc5LDAsMCwxLDEyLjM3NS0uMjQyQzI5LjAxNCwxOS43NjUsMzAuMzE3LDE4LjQ2MiwyOS42MiwxOC4zNjlaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+PHBhdGggZD1cXFwiTTE4Ljg2MSwxNy45ODVjLjkxMS0uNDU2LDIuMjY0LTMuMjc1LDMuMTU0LTQuODIuMDY0LS4xMTQuMTc4LS4wMjEuMTE0LjA1Ny0yLjI1LDMuODczLTEuMyw0LjMyMi0uNDA2LDQuMjY1LDEuMTg5LS4wNzEsMi4yODYtMS43OCwyLjUyOC0yLjE2NS4xLS4xNS4xNTctLjAyOC4xLjA3OC0uMDU3LjE3OC0uMjYzLjQ5MS0uNDU2LjkxOS0uMjcxLjYwNS4wMTQuODQuMjQ5Ljk0Ny4zNy4xNzgsMS4zODEuMDY0LDEuNTM4LS41NTUtMS4wMTEtLjAyMSwxLjQxLTQuNzkyLDEuNjU5LTUuMDg0YTEuNzE4LDEuNzE4LDAsMCwwLTIuMi45NzVjLTEuMDE4LDIuMDE1LTEuODczLDMuNjM4LTIuNDA3LDMuNjY3LTEuMDQuMDU3LDEuMi00LjQ5MywxLjU1OS00LjYzNS0uMjIxLS4zMi0xLjYzOC0uMTg1LTIuNDI4LDEuMDQtLjI4NS40NDEtMi4wMjIsMy41MTctMi40NDksNC4wMjMtLjc1NS45LS44MTIuMTI4LS42LS43NjlhMTAuNTY5LDEwLjU2OSwwLDAsMSwuMzQ5LTEuMTMyLDUuMzI0LDUuMzI0LDAsMCwxLDEuMzYtMS44NDRjMi4yLTIuNDQyLDMuNDYtNC40MjIsMi45NjItNS4yLS40NDEtLjY5MS0xLjkxNS0uMzg0LTIuODYyLDEuMDQtMS43NDQsMi42MTMtMy4zNTQsNi4xOTUtMy41Niw3LjgzMlMxOC4wNTYsMTguMzgzLDE4Ljg2MSwxNy45ODVabS45MjYtNC43OTJjLjA3OC0uMTc4LjEyOC0uMjI4LjI2My0uNTI3aDBBMjQuOTM0LDI0LjkzNCwwLDAsMSwyMi40OTIsOC4yOGMuNDItLjQ0MSwxLjAxMS4xNTctLjA1NywxLjc5NGExNi40NjIsMTYuNDYyLDAsMCwxLTIuMTE1LDIuNjQydi4wMDdjLS4yLjIyMS0uMzc3LjQwNi0uNDU2LjUxM0MxOS44MDgsMTMuMzA3LDE5Ljc0NCwxMy4yOTIsMTkuNzg3LDEzLjE5M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz5cIixcblx0fSxcblx0XCJTVkdcIjoge1xuXHRcdGNvbG91cjogXCIjZmZiMTNiXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNNy42NzQsMTQuNDg4YTIuMjE4LDIuMjE4LDAsMSwwLDAsMy4xMzdIMjQuMzI2YTIuMjE4LDIuMjE4LDAsMSwwLDAtMy4xMzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiMTNiO3N0cm9rZTojMDAwO3N0cm9rZS13aWR0aDozLjczMDAwMDAxOTA3MzQ5cHhcXFwiLz48cGF0aCBkPVxcXCJNMTEuMjIyLDkuMDZBMi4yMTgsMi4yMTgsMCwxLDAsOSwxMS4yNzhMMjAuNzc4LDIzLjA1MkEyLjIxOCwyLjIxOCwwLDEsMCwyMywyMC44MzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiMTNiO3N0cm9rZTojMDAwO3N0cm9rZS13aWR0aDozLjczMDAwMDAxOTA3MzQ5cHhcXFwiLz48cGF0aCBkPVxcXCJNMTcuNTY4LDcuNzNhMi4yMTgsMi4yMTgsMCwxLDAtMy4xMzcsMFYyNC4zODJhMi4yMTgsMi4yMTgsMCwxLDAsMy4xMzcsMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmIxM2I7c3Ryb2tlOiMwMDA7c3Ryb2tlLXdpZHRoOjMuNzMwMDAwMDE5MDczNDlweFxcXCIvPjxwYXRoIGQ9XFxcIk0yMywxMS4yNzhBMi4yMTgsMi4yMTgsMCwxLDAsMjAuNzc4LDkuMDZMOSwyMC44MzRhMi4yMTgsMi4yMTgsMCwxLDAsMi4yMTgsMi4yMThaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiMTNiO3N0cm9rZTojMDAwO3N0cm9rZS13aWR0aDozLjczMDAwMDAxOTA3MzQ5cHhcXFwiLz48cGF0aCBkPVxcXCJNNy42NzQsMTQuNDg4YTIuMjE4LDIuMjE4LDAsMSwwLDAsMy4xMzdIMjQuMzI2YTIuMjE4LDIuMjE4LDAsMSwwLDAtMy4xMzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiMTNiXFxcIi8+PHBhdGggZD1cXFwiTTExLjIyMiw5LjA2QTIuMjE4LDIuMjE4LDAsMSwwLDksMTEuMjc4TDIwLjc3OCwyMy4wNTJBMi4yMTgsMi4yMTgsMCwxLDAsMjMsMjAuODM0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYjEzYlxcXCIvPjxwYXRoIGQ9XFxcIk0xNy41NjgsNy43M2EyLjIxOCwyLjIxOCwwLDEsMC0zLjEzNywwVjI0LjM4MmEyLjIxOCwyLjIxOCwwLDEsMCwzLjEzNywwWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYjEzYlxcXCIvPjxwYXRoIGQ9XFxcIk0yMywxMS4yNzhBMi4yMTgsMi4yMTgsMCwxLDAsMjAuNzc4LDkuMDZMOSwyMC44MzRhMi4yMTgsMi4yMTgsMCwxLDAsMi4yMTgsMi4yMThaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiMTNiXFxcIi8+PHBhdGggZD1cXFwiTTIsMTYuMDU2SDMwVjI1Ljk1YTQuMDM1LDQuMDM1LDAsMCwxLTQuMTA2LDQuMTA2SDYuMTA2QTQuMDM1LDQuMDM1LDAsMCwxLDIsMjUuOTVaXFxcIi8+PHBhdGggZD1cXFwiTTYuMiwyMy4wNDVBMy42MjgsMy42MjgsMCwxLDEsMTIuNCwyMC40OEgxMC4yN0ExLjUsMS41LDAsMSwwLDcuNywyMS41NDFoMGExLjYsMS42LDAsMCwwLDEuMDYyLjQ0MWgwYTQuMTE4LDQuMTE4LDAsMCwxLDIuNTY2LDEuMDYzaDBhMy42MjgsMy42MjgsMCwxLDEtNi4xOTQsMi41NjVINy4yNjRBMS41LDEuNSwwLDEsMCw5LjgzLDI0LjU1aDBhMS45NDgsMS45NDgsMCwwLDAtMS4wNjMtLjQ0aDBBNC40NjUsNC40NjUsMCwwLDEsNi4yLDIzLjA0NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTkuNjUxLDE2Ljg1MiwxNy4wODUsMjkuMjRIMTQuOTZMMTIuNCwxNi44NTJIMTQuNTJsMS41LDcuMjU1LDEuNS03LjI1NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjMuMjgsMjEuOTgzaDMuNjI4djMuNjI4aDBhMy42MjgsMy42MjgsMCwxLDEtNy4yNTcsMGgwVjIwLjQ4aDBhMy42MjgsMy42MjgsMCwwLDEsNy4yNTcsMEgyNC43ODNhMS41LDEuNSwwLDEsMC0zLjAwNSwwdjUuMTNoMGExLjUsMS41LDAsMCwwLDMuMDA1LDBoMHYtMS41aC0xLjVWMjEuOTgzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIlN3aWZ0XCI6IHtcblx0XHRjb2xvdXI6IFwiI0ZBNUQyRFwiLFxuXHRcdGljb246IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTEzNC40OTRcXFwiIHkxPVxcXCItMTcxLjgyXFxcIiB4Mj1cXFwiLTEzNC40OTdcXFwiIHkyPVxcXCItMTcxLjg5XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDI0MCwgMCwgMCwgLTIwNS42LCAzMjI5NSwgLTM1MzEyLjU4NSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmODg1MzVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZDIyMjFcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3N3aWZ0PC90aXRsZT48cGF0aCBkPVxcXCJNMTkuNDIyLDQuMDA3czYuMjE3LDMuNTU0LDcuODQ0LDkuMmMxLjQ2Niw1LjEuMjkyLDcuNTM0LjI5Miw3LjUzNGE4LjkxNSw4LjkxNSwwLDAsMSwxLjc0MiwyLjgsNC44MjUsNC44MjUsMCwwLDEsLjI5LDQuNDUzcy0uMS0yLjA4LTMuMi0yLjUxMWMtMi44NDEtLjQtMy44NzQsMi4zNjYtOS4zLDIuMjMyQTE4LjQzNSwxOC40MzUsMCwwLDEsMiwxOS4zNTRDNC42NTEsMjAuOCw4LjEyNCwyMy4wNDUsMTIuNDQ5LDIyLjdzNS4yMjgtMS42NzQsNS4yMjgtMS42NzRBNjYuOSw2Ni45LDAsMCwxLDQuODkxLDcuNjQzYzMuNCwyLjg0NSwxMS44MjIsOC41MDcsMTEuNjI2LDguMzYzQTc1LjgyNiw3NS44MjYsMCwwLDEsOC4wOTIsNi4yNFMyMC43MjgsMTYuNjI5LDIxLjc0NSwxNi41NjNjLjQxOC0uODYxLDIuNTc5LTUuMzE4LTIuMzI0LTEyLjU1N1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz5cIixcblx0XHRpbmxpbmVDb21tZW50OiBbXG5cdFx0XHRcIi8vXCIsXG5cdFx0XSxcblx0fSxcblx0XCJTeXN0ZW1kIGNvbmZpZ3VyYXRpb24gZmlsZVwiOiB7XG5cdFx0Y29sb3VyOiBcIiMzMGQ0NzVcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yLDEydjhINS4yNTZWMTguNzY5SDMuM1YxMy4yMzFINS4yNTZWMTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTI2Ljc0NCwxMnYxLjIzMUgyOC43djUuNTM4SDI2Ljc0NFYyMEgzMFYxMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTcuNjI4LDE2bDUuMjEtMi43Njl2NS41MzhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzBkNDc1XFxcIi8+PGVsbGlwc2UgY3g9XFxcIjEyLjA5M1xcXCIgY3k9XFxcIjE2XFxcIiByeD1cXFwiMi45M1xcXCIgcnk9XFxcIjIuNzY5XFxcIiBzdHlsZT1cXFwiZmlsbDojMzBkNDc1XFxcIi8+XCIsXG5cdH0sXG5cdFwiVDQgdGVtcGxhdGluZ1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMxZTg4ZTVcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xOS41NDUsNi4wMzVIMTMuMjdWMjRIOC4zVjYuMDM1SDIuMDU1VjJoMTcuNDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWU4OGU1XFxcIi8+PHBhdGggZD1cXFwiTTI3LjU2NywxMFYyMi42MDhoMi40VjI1LjloLTIuNFYzMEgyMy41NTFWMjUuOUgxNC44MzRWMjIuNDU1cTEuMTU4LTEuMywyLjQtMi44Mzh0Mi40LTMuMTczcTEuMTU4LTEuNjMyLDIuMTU1LTMuMjg1QTMyLjkyNSwzMi45MjUsMCwwLDAsMjMuNDgxLDEwWk0xOC43ODEsMjIuNjA4aDQuNzdWMTUuNjIxcS0uNDg4LjkwNy0xLjA2LDEuODM0dC0xLjIsMS44MjdxLS42MjguOS0xLjI2OSwxLjc0M1QxOC43ODEsMjIuNjA4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzFlODhlNVxcXCIvPlwiLFxuXHR9LFxuXHRcIlQ0IFRleHQgVGVtcGxhdGVzIChDIylcIjoge1xuXHRcdGNvbG91cjogXCIjMWU4OGU1XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTkuNTQ1LDYuMDM1SDEzLjI3VjI0SDguM1Y2LjAzNUgyLjA1NVYyaDE3LjQ5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzFlODhlNVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy41NjcsMTBWMjIuNjA4aDIuNFYyNS45aC0yLjRWMzBIMjMuNTUxVjI1LjlIMTQuODM0VjIyLjQ1NXExLjE1OC0xLjMsMi40LTIuODM4dDIuNC0zLjE3M3ExLjE1OC0xLjYzMiwyLjE1NS0zLjI4NUEzMi45MjUsMzIuOTI1LDAsMCwwLDIzLjQ4MSwxMFpNMTguNzgxLDIyLjYwOGg0Ljc3VjE1LjYyMXEtLjQ4OC45MDctMS4wNiwxLjgzNHQtMS4yLDEuODI3cS0uNjI4LjktMS4yNjksMS43NDNUMTguNzgxLDIyLjYwOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxZTg4ZTVcXFwiLz5cIixcblx0fSxcblx0XCJUNCBUZXh0IFRlbXBsYXRlcyAoVkIpXCI6IHtcblx0XHRjb2xvdXI6IFwiIzFlODhlNVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE5LjU0NSw2LjAzNUgxMy4yN1YyNEg4LjNWNi4wMzVIMi4wNTVWMmgxNy40OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxZTg4ZTVcXFwiLz48cGF0aCBkPVxcXCJNMjcuNTY3LDEwVjIyLjYwOGgyLjRWMjUuOWgtMi40VjMwSDIzLjU1MVYyNS45SDE0LjgzNFYyMi40NTVxMS4xNTgtMS4zLDIuNC0yLjgzOHQyLjQtMy4xNzNxMS4xNTgtMS42MzIsMi4xNTUtMy4yODVBMzIuOTI1LDMyLjkyNSwwLDAsMCwyMy40ODEsMTBaTTE4Ljc4MSwyMi42MDhoNC43N1YxNS42MjFxLS40ODguOTA3LTEuMDYsMS44MzR0LTEuMiwxLjgyN3EtLjYyOC45LTEuMjY5LDEuNzQzVDE4Ljc4MSwyMi42MDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWU4OGU1XFxcIi8+XCIsXG5cdH0sXG5cdFwiVGNsXCI6IHtcblx0XHRjb2xvdXI6IFwiI2VmZjFjYlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTIxLjk0MiwyLjg3NmMuMDQsMi40NjgtLjAzMyw0LjkxLTIuMTY5LDcuMjNsLS4wNzkuMDg5aC4xMTlsLjg3My4wMTNjLTEuNDE4LDIuOTUtMi4zNDEsNS44OTItNC4zOCw4LjgzbC0uMDczLjEwNi4xMjYtLjAyMywxLjA3OC0uMmE1Ljg1MSw1Ljg1MSwwLDAsMS0zLjQ4NCwzLjY1Yy0uMzktNS40NTUsMi4zMzMtMTAuMjcsNC42NDUtMTUuMDcxbC4wMDctLjAxMy0uMDg2LS4wNmMtMy43ODYsNC4yMzMtNS40OTEsMTAuMi02LjEzNiwxNS4xMjdhNC41ODIsNC41ODIsMCwwLDEtMi4xNDUtMi45ODhsLjkuMzc3LjA5My4wNC0uMDItLjFjLS42ODEtMy4wMjguMzc2LTUuMiwxLjQtOC4wNTZsLjczNy40OTMuMDg2LjA2LDAtLjFjLS4wNTgtMi4zMiwxLjUtNC42NDksMy41NzctNi43MjdsLjI4OC43Ny4wNC4xLjA1Ni0uMS42MzEtMS4wNTEsMC0uMDA3QTYuMSw2LjEsMCwwLDEsMjEuOTQyLDIuODc2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MzYjE1ZlxcXCIvPjxwYXRoIGQ9XFxcIk0yMS45NDgsMi44NzVhNi4xMzEsNi4xMzEsMCwwLDAtMy45MjYsMi4zODhsMCwuMDA3LS42MzEsMS4wNTEtLjA1Ni4xLS4wNC0uMUwxNyw1LjU0NGMtMi4wNzIsMi4wNzgtMy42MzUsNC40MDctMy41NzcsNi43MjdsMCwuMS0uMDg2LS4wNi0uNzM3LS40OTNjLTEuMDI1LDIuODU2LTIuMDgzLDUuMDI5LTEuNCw4LjA1NmwuMDIuMS0uMDkzLS4wNC0uODg2LS4zNzRjMCwuMDE4LjAwNy4wMzUuMDEuMDUzYTQuNTMzLDQuNTMzLDAsMCwwLDIuMTI2LDIuOTMyYy4wNS0uMzgxLjEwNS0uNzcxLjE2OS0xLjE2NC0xLjU0My0zLjYxNC0uMi02LjI3MS40MDctOC42NjFsLjkzOS41NDJjLS4xMy0yLjIzOCwxLjE4NC00LjY1MSwyLjg5My02Ljc1N2wuNS44NzNDMTguNTU1LDQuNzY5LDE5LjU2LDMuNzIsMjEuOTQ4LDIuODc1WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VmZjFjYjtzdHJva2U6I2VmZjFjYlxcXCIvPjxwYXRoIGQ9XFxcIk0yMi41MTgsMmwtLjA1Ni4wMWMtMi4wODIuMzYzLTQuMTIxLDEuMTI4LTUuMDE1LDIuOTU5bC0uMzc3LS42NTgtLjAzMy0uMDYtLjA1LjA1YTIwLjg1LDIwLjg1LDAsMCwwLTIuOTM5LDMuNUE1LjkzOSw1LjkzOSwwLDAsMCwxMi44MzUsMTFsLS41MzItLjY2NC0uMDUzLS4wNjYtLjAzNi4wNzZhMjcuNTM1LDI3LjUzNSwwLDAsMC0xLjY5Myw0LjcsNi43Myw2LjczLDAsMCwwLS4xNTksMy43MTlsLS44NzYtLjUwOS0uMDczLS4wNDMtLjAwNy4wODZhNS41MjksNS41MjksMCwwLDAsMi4wMTcsNC44NDNsLS45NzIuMjQxLS4yLjA1LjIuMDUzYTQuMjU4LDQuMjU4LDAsMCwxLDEuNDU1LjYsMS4zMjUsMS4zMjUsMCwwLDEsLjUxNiwxLjNWMjguMWwuMDEuMDEzLDEuMjE3LDEuNzQ1LjEuMTM5VjI1LjcxOWEzLjQ2NiwzLjQ2NiwwLDAsMSwuNjIxLTEuNDg0QTEuNjM5LDEuNjM5LDAsMCwxLDE1LjUsMjMuN2wuMTgyLS4wMjMtLjE2NS0uMDc2LS42NDEtLjNhOS4xMTIsOS4xMTIsMCwwLDAsMy42OTMtNS4zMjJsLjAyLS4wODYtLjA4My4wMjMtLjc5My4yMTVhMTEuNjY5LDExLjY2OSwwLDAsMCwyLjA4OS0zLjVDMjAuNTEyLDEzLDIxLjE4LDExLjE2NiwyMS43MjgsOS43bC4wMy0uMDc5LS4wODMuMDA3LS42MTIuMDQzYTYuNjU1LDYuNjU1LDAsMCwwLDEuMzgyLTMuNTI3LDE3LjAzOSwxNy4wMzksMCwwLDAsLjA3OS00LjA4NlptLS41NzUuODc2Yy4wNCwyLjQ2OC0uMDMzLDQuOTEtMi4xNjksNy4yM2wtLjA3OS4wODloLjExOWwuODczLjAxM2MtMS40MTgsMi45NS0yLjM0MSw1Ljg5Mi00LjM4LDguODNsLS4wNzMuMTA2LjEyNi0uMDIzLDEuMDc4LS4yYTUuODUxLDUuODUxLDAsMCwxLTMuNDg0LDMuNjVjLS4zOS01LjQ1NSwyLjMzMy0xMC4yNyw0LjY0NS0xNS4wNzFsLjAwNy0uMDEzLS4wODYtLjA2Yy0zLjc4Niw0LjIzMy01LjQ5MSwxMC4yLTYuMTM2LDE1LjEyN2E0LjU4Miw0LjU4MiwwLDAsMS0yLjE0NS0yLjk4OGwuOS4zNzcuMDkzLjA0LS4wMi0uMWMtLjY4MS0zLjAyOC4zNzYtNS4yLDEuNC04LjA1NmwuNzM3LjQ5My4wODYuMDYsMC0uMWMtLjA1OC0yLjMyLDEuNS00LjY0OSwzLjU3Ny02LjcyN2wuMjg4Ljc3LjA0LjEuMDU2LS4xLjYzMS0xLjA1MSwwLS4wMDdBNi4xLDYuMSwwLDAsMSwyMS45NDIsMi44NzZaXFxcIi8+XCIsXG5cdH0sXG5cdFwiVGVtcGxhdGUgVG9vbGtpdCAyXCI6IHtcblx0XHRjb2xvdXI6IFwiIzNiY2VmY1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTguOTA3LDIzLjAyMUg4Ljg3OGEzLjMwNSwzLjMwNSwwLDAsMS0yLjAxMS0uNjYxQTIuNTYxLDIuNTYxLDAsMCwxLDUuODMsMjAuMzM0VjE2LjFINC4yODhhMy4wNSwzLjA1LDAsMCwxLTIuNzM4LTEuNjksMy4zLDMuMywwLDAsMSwuNDQxLTMuNTMsMi4yNjUsMi4yNjUsMCwwLDEsMS44MTUtLjloOS42NWEzLjA1LDMuMDUsMCwwLDEsMi43MzgsMS42OSwzLjMsMy4zLDAsMCwxLS40NDEsMy41MywyLjI2NSwyLjI2NSwwLDAsMS0xLjgxNS45SDExLjk1NXY0LjIzMWEyLjU2MSwyLjU2MSwwLDAsMS0xLjAzNywyLjAyNkEzLjMwNSwzLjMwNSwwLDAsMSw4LjkwNywyMy4wMjFaTTQuMjY0LDExLjYzNmExLjM5LDEuMzksMCwwLDAtMS4zODgsMS4zODh2LjAzM2ExLjM5LDEuMzksMCwwLDAsMS4zODgsMS4zODhINy40ODd2NS44ODFjMCwuNTcyLjYyNCwxLjAzNywxLjM5LDEuMDM3aC4wMjljLjc2NywwLDEuMzktLjQ2NSwxLjM5LTEuMDM3VjE0LjQ0NmgzLjIyM2ExLjM5LDEuMzksMCwwLDAsMS4zODgtMS4zODh2LS4wMzNhMS4zOSwxLjM5LDAsMCwwLTEuMzg4LTEuMzg4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAxNWQ5YVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC45ODEsMTIuOTUzdi4wMzNhMS41MzMsMS41MzMsMCwwLDEtMS41MzMsMS41MzNIMTAuMzd2NS43MzdhMS4zOTMsMS4zOTMsMCwwLDEtMS41MzUsMS4xODFIOC44MDZhMS4zOTMsMS4zOTMsMCwwLDEtMS41MzUtMS4xODFWMTQuNTE4SDQuMTkyQTEuNTMzLDEuNTMzLDAsMCwxLDIuNjYsMTIuOTg2di0uMDMzQTEuNTMzLDEuNTMzLDAsMCwxLDQuMTkyLDExLjQyaDkuMjU3QTEuNTMzLDEuNTMzLDAsMCwxLDE0Ljk4MSwxMi45NTNabS00LjIyMyw5LjIyMmEyLjQxOCwyLjQxOCwwLDAsMCwuOTgtMS45MTJWMTUuODg4aDIuMTI3YTIuMTE0LDIuMTE0LDAsMCwwLDEuNy0uODQ2LDIuOTkyLDIuOTkyLDAsMCwwLTIuMTgtNC45OUgzLjczNWEyLjExNCwyLjExNCwwLDAsMC0xLjcuODQ2LDIuOTkyLDIuOTkyLDAsMCwwLDIuMTgsNC45OUg1Ljl2NC4zNzVhMi40MTgsMi40MTgsMCwwLDAsLjk4LDEuOTEyLDMuMTYsMy4xNiwwLDAsMCwxLjkyMy42MzFoLjAyOUEzLjE2LDMuMTYsMCwwLDAsMTAuNzU4LDIyLjE3NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzYmNlZmNcXFwiLz48cGF0aCBkPVxcXCJNMjMuNjA3LDIzLjAyMWgtLjAyOWEzLjMwNSwzLjMwNSwwLDAsMS0yLjAxMS0uNjYxLDIuNTYxLDIuNTYxLDAsMCwxLTEuMDM3LTIuMDI2VjE2LjFIMTguOTg4YTMuMDUsMy4wNSwwLDAsMS0yLjczOC0xLjY5LDMuMywzLjMsMCwwLDEsLjQ0MS0zLjUzLDIuMjY1LDIuMjY1LDAsMCwxLDEuODE1LS45aDkuNjVhMy4wNSwzLjA1LDAsMCwxLDIuNzM4LDEuNjksMy4zLDMuMywwLDAsMS0uNDQxLDMuNTMsMi4yNjUsMi4yNjUsMCwwLDEtMS44MTUuOUgyNi42NTV2NC4yMzFhMi41NjEsMi41NjEsMCwwLDEtMS4wMzcsMi4wMjZBMy4zMDUsMy4zMDUsMCwwLDEsMjMuNjA3LDIzLjAyMVpNMTguOTY0LDExLjYzNmExLjM5LDEuMzksMCwwLDAtMS4zODgsMS4zODh2LjAzM2ExLjM5LDEuMzksMCwwLDAsMS4zODgsMS4zODhoMy4yMjN2NS44ODFjMCwuNTcyLjYyNCwxLjAzNywxLjM5LDEuMDM3aC4wMjljLjc2NywwLDEuMzktLjQ2NSwxLjM5LTEuMDM3VjE0LjQ0NmgzLjIyM2ExLjM5LDEuMzksMCwwLDAsMS4zODgtMS4zODh2LS4wMzNhMS4zOSwxLjM5LDAsMCwwLTEuMzg4LTEuMzg4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAxNWQ5YVxcXCIvPjxwYXRoIGQ9XFxcIk0yOS42ODEsMTIuOTUzdi4wMzNhMS41MzMsMS41MzMsMCwwLDEtMS41MzMsMS41MzNIMjUuMDd2NS43MzdhMS4zOTMsMS4zOTMsMCwwLDEtMS41MzUsMS4xODFoLS4wMjlhMS4zOTMsMS4zOTMsMCwwLDEtMS41MzUtMS4xODFWMTQuNTE4SDE4Ljg5MmExLjUzMywxLjUzMywwLDAsMS0xLjUzMy0xLjUzM3YtLjAzM2ExLjUzMywxLjUzMywwLDAsMSwxLjUzMy0xLjUzM2g5LjI1N0ExLjUzMywxLjUzMywwLDAsMSwyOS42ODEsMTIuOTUzWm0tNC4yMjMsOS4yMjJhMi40MTgsMi40MTgsMCwwLDAsLjk4LTEuOTEyVjE1Ljg4OGgyLjEyN2EyLjExNCwyLjExNCwwLDAsMCwxLjctLjg0NiwyLjk5MiwyLjk5MiwwLDAsMC0yLjE4LTQuOTloLTkuNjVhMi4xMTQsMi4xMTQsMCwwLDAtMS43Ljg0NiwyLjk5MiwyLjk5MiwwLDAsMCwyLjE4LDQuOTlIMjAuNnY0LjM3NWEyLjQxOCwyLjQxOCwwLDAsMCwuOTgsMS45MTIsMy4xNiwzLjE2LDAsMCwwLDEuOTIzLjYzMWguMDI5QTMuMTYsMy4xNiwwLDAsMCwyNS40NTgsMjIuMTc0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzNiY2VmY1xcXCIvPlwiLFxuXHR9LFxuXHRcIlRlWFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNjZmNmY2ZcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xMS4zMzMsMTMuMTIyYy0uMTI4LTEuNTYyLS4yNDEtMi43NTYtMi4yODctMi43NTZINy45MXY4LjRoMi4xNDV2LjYxMWwtMy4wODMtLjAyOS0zLjA4Mi4wMjl2LS42MTFINi4wMzR2LTguNEg0Ljg4NGMtMi4wNDYsMC0yLjE1OSwxLjIwOC0yLjI4NywyLjc1NkgybC4yODQtMy4zNjdoOS4zNjJsLjI4NCwzLjM2N2gtLjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2ZjZmNmXFxcIi8+PHBhdGggZD1cXFwiTTE5LjI4OSwyMi41M0gxMC40MVYyMS45MmgxLjUwNlYxMy40NjdIMTAuNDF2LS42MTFoOC42MzdsLjQxMiwzLjM2N2gtLjZjLS4yMTMtMS44MzMtLjY4Mi0yLjc1Ni0yLjg1NS0yLjc1NkgxMy43OTFWMTcuMmguODM4YzEuMzY0LDAsMS41MDUtLjYsMS41MDUtMS42NjJoLjZ2My45MzVoLS42YzAtMS4wOC0uMTQyLTEuNjYyLTEuNTA1LTEuNjYyaC0uODM4djQuMTA2aDIuMjE2YzIuNDcyLDAsMy0xLjEwOCwzLjMtMy4yMjVoLjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2ZjZmNmXFxcIi8+PHBhdGggZD1cXFwiTTI3LjcyNywxOS4xODZjLS41NCwwLTEuOTYsMC0yLjQxNS4wMjlWMTguNmgxLjE3OWwtMi41NTctMy41NTItMi41MjksMy4zODFBNC4xLDQuMSwwLDAsMCwyMi43LDE4LjZ2LjYxMWMtLjM1NS0uMDI5LTEuNTc2LS4wMjktMi4wMTctLjAyOS0uNCwwLTEuNTQ4LDAtMS44NzUuMDI5VjE4LjZoLjM4M2E3LjQ1OSw3LjQ1OSwwLDAsMCwuODI0LS4wNDNjLjUtLjA0My41NC0uMDg1LjY2Ny0uMjU2TDIzLjUzNiwxNC41bC0zLjE1My00LjQxOEgxOVY5LjQ3Yy4zODQuMDI4LDEuNzkuMDI4LDIuMjczLjAyOC41ODIsMCwxLjkxOCwwLDIuNDI5LS4wMjh2LjYxMUgyMi41MjhsMi4xMTcsMi45NTUsMi4wNzQtMi43ODRhNC4xLDQuMSwwLDAsMC0xLjI5My0uMTdWOS40N2MuMzU2LjAyOCwxLjU5MS4wMjgsMi4wMzIuMDI4LjQsMCwxLjUzNCwwLDEuODYxLS4wMjh2LjYxMWgtLjM2OWE1LjI2NCw1LjI2NCwwLDAsMC0uODM4LjA0M2MtLjQ2OS4wNDMtLjUyNi4wNzEtLjY2Ny4yNTZsLTIuNCwzLjIxTDI4LjYzNiwxOC42SDMwdi42MTFDMjkuNjQ1LDE5LjE4NiwyOC4xODIsMTkuMTg2LDI3LjcyNywxOS4xODZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2ZjZmNmXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIlXCIsXG5cdFx0XSxcblx0fSxcblx0XCJUZXh0aWxlXCI6IHtcblx0XHRjb2xvdXI6IFwiI2ZmZTdhY1wiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTI4LjY4MSwyNi4wNzVIMy4zMTlBMS4zMTcsMS4zMTcsMCwwLDEsMiwyNC43NTZWNy4yNDRBMS4zMTcsMS4zMTcsMCwwLDEsMy4zMTksNS45MjVIMjguNjgxQTEuMzE3LDEuMzE3LDAsMCwxLDMwLDcuMjQ0VjI0Ljc2QTEuMzE2LDEuMzE2LDAsMCwxLDI4LjY4MSwyNi4wNzVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZlN2FjXFxcIi8+PHBhdGggZD1cXFwiTTYuMDY2LDEyLjg0OGE0Ljk4Nyw0Ljk4NywwLDAsMSwxLjUwOC0uNjU5VjEwLjY2NGEzLjcsMy43LDAsMCwxLC43NDMtLjMzLDcuODY5LDcuODY5LDAsMCwxLDEuMzI3LS4zNDdoLjY0MnYyLjM5MWgyLjQ4NFYxMy42SDEwLjI4NnY0Ljg0OGEzLjE3MiwzLjE3MiwwLDAsMCwuMjksMS42MDksMS4wNywxLjA3LDAsMCwwLC45NzEuNDQ4LDcuMTI3LDcuMTI3LDAsMCwwLC43Ni0uMDQ4LDMuMzM4LDMuMzM4LDAsMCwwLC43ODItLjE4bC4xMzIuNjJhMi4zODgsMi4zODgsMCwwLDEtLjUuMzU2LDUuNDU3LDUuNDU3LDAsMCwxLS43NTIuMzU2LDUuODM3LDUuODM3LDAsMCwxLS45MjMuMjgxQTQuNzY5LDQuNzY5LDAsMCwxLDEwLDIyYTIuMzg1LDIuMzg1LDAsMCwxLTEuODI0LS42MzcsMi45NDcsMi45NDcsMCwwLDEtLjYtMi4wNjJWMTMuNTkxSDYuMDY2WlxcXCIvPjxwYXRoIGQ9XFxcIk0xNC42MDcsMjAuNDUzYTEuNDQ3LDEuNDQ3LDAsMCwxLC40MzEtMS4wOSwxLjU5MSwxLjU5MSwwLDAsMSwxLjE0Ny0uNDEzLDEuNjQ5LDEuNjQ5LDAsMCwxLDEuMTY1LjQxMywxLjQyMiwxLjQyMiwwLDAsMSwuNDUzLDEuMDksMS4zNjksMS4zNjksMCwwLDEtLjQ1MywxLjA4MSwxLjY5MiwxLjY5MiwwLDAsMS0xLjE2NS40LDEuNjEsMS42MSwwLDAsMS0xLjE0Ny0uNEExLjQyNywxLjQyNywwLDAsMSwxNC42MDcsMjAuNDUzWlxcXCIvPlwiLFxuXHR9LFxuXHRcIlRPTUxcIjoge1xuXHRcdGNvbG91cjogXCIjYmZiZmJmXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMjIuNzYsNi44M3YzLjI1aC01VjI1LjE3SDE0LjI2VjEwLjA4aC01VjYuODNaXFxcIiBzdHlsZT1cXFwiZmlsbDojN2Y3ZjdmXFxcIi8+PHBhdGggZD1cXFwiTTIsMkg4LjJWNS4wOUg1LjM0djIxLjhIOC4yVjMwSDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmZiZmJmXFxcIi8+PHBhdGggZD1cXFwiTTMwLDMwSDIzLjhWMjYuOTFoMi44NlY1LjExSDIzLjhWMkgzMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZmJmYmZcXFwiLz5cIixcblx0fSxcblx0XCJUU0NvbmZpZ1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMDdhY2NcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yMy44MjcsOC4yNDNBNC40MjQsNC40MjQsMCwwLDEsMjYuMDUsOS41MjRhNS44NTMsNS44NTMsMCwwLDEsLjg1MiwxLjE0M2MuMDExLjA0NS0xLjUzNCwxLjA4My0yLjQ3MSwxLjY2Mi0uMDM0LjAyMy0uMTY5LS4xMjQtLjMyMi0uMzVhMi4wMTQsMi4wMTQsMCwwLDAtMS42Ny0xYy0xLjA3Ny0uMDc0LTEuNzcxLjQ5LTEuNzY2LDEuNDMzYTEuMywxLjMsMCwwLDAsLjE1My42NjZjLjIzNy40OS42NzcuNzg0LDIuMDU5LDEuMzgzLDIuNTQ0LDEuMSwzLjYzNiwxLjgxNyw0LjMxLDIuODQzYTUuMTU4LDUuMTU4LDAsMCwxLC40MTYsNC4zMzMsNC43NjQsNC43NjQsMCwwLDEtMy45MzIsMi44MTUsMTAuOSwxMC45LDAsMCwxLTIuNzA4LS4wMjgsNi41MzEsNi41MzEsMCwwLDEtMy42MTYtMS44ODQsNi4yNzgsNi4yNzgsMCwwLDEtLjkyNi0xLjM3MSwyLjY1NSwyLjY1NSwwLDAsMSwuMzI3LS4yMDhjLjE1OC0uMDkuNzU2LS40MzQsMS4zMi0uNzYxbDEuMDI0LS42LjIxNC4zMTJhNC43NzEsNC43NzEsMCwwLDAsMS4zNSwxLjI5MiwzLjMsMy4zLDAsMCwwLDMuNDU4LS4xNzUsMS41NDUsMS41NDUsMCwwLDAsLjItMS45NzRjLS4yNzYtLjQtLjg0LS43MjctMi40NDMtMS40MjJhOC44LDguOCwwLDAsMS0zLjM0OS0yLjA1NSw0LjY4Nyw0LjY4NywwLDAsMS0uOTc2LTEuNzc3LDcuMTE2LDcuMTE2LDAsMCwxLS4wNjItMi4yNjgsNC4zMzIsNC4zMzIsMCwwLDEsMy42NDQtMy4zNzRBOSw5LDAsMCwxLDIzLjgyNyw4LjI0M1pNMTUuNDg0LDkuNzI2bC4wMTEsMS40NTRoLTQuNjNWMjQuMzI4SDcuNlYxMS4xODNIMi45N1Y5Ljc1NWExMy45ODYsMTMuOTg2LDAsMCwxLC4wNC0xLjQ2NmMuMDE3LS4wMjMsMi44MzItLjAzNCw2LjI0NS0uMDI4bDYuMjExLjAxN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDdhY2NcXFwiLz48cGF0aCBkPVxcXCJNMjcuMDc1LDI1LjEwN2wuMzYzLS4zNjFjMS42OC4wNTUsMS43MDYsMCwxLjc4LS4xNzdsLjQ2Mi0xLjEyNC4wMzQtLjEwNy0uMDM4LS4wOTNjLS4wMi0uMDQ5LS4wODEtLjItMS4xMy0xLjJ2LS41MjZjMS4yMTEtMS4xNjYsMS4xODUtMS4yMjYsMS4xMTYtMS40bC0uNDYtMS4xMzZjLS4wNjktLjE3LS4xLS4yMzctMS43NjMtLjE5MWwtLjM2NC0uMzY3YTguMTM4LDguMTM4LDAsMCwwLS4wNTctMS42NTdsLS4wNDctLjEwNi0xLjItLjUyNWMtLjE3Ny0uMDgxLS4yMzktLjExLTEuMzcyLDEuMTI0bC0uNTA5LS4wMDhjLTEuMTY3LTEuMjQ1LTEuMjIyLTEuMjIzLTEuNC0xLjE1MmwtMS4xMTUuNDUyYy0uMTc1LjA3MS0uMjM2LjEtLjE2OSwxLjc5bC0uMzYuMzU5Yy0xLjY4LS4wNTUtMS43LDAtMS43NzguMTc3TDE4LjYwNiwyMGwtLjAzNi4xMDguMDM4LjA5NGMuMDIuMDQ4LjA3OC4xOTQsMS4xMywxLjJ2LjUyNWMtMS4yMTEsMS4xNjYtMS4xODQsMS4yMjYtMS4xMTUsMS40bC40NTksMS4xMzdjLjA3LjE3NC4xLjIzNiwxLjc2My4xOTJsLjM2My4zNzdhOC4xNjksOC4xNjksMCwwLDAsLjA1NSwxLjY1NGwuMDQ3LjEwNywxLjIwOC41MjhjLjE3Ni4wNzMuMjM2LjEsMS4zNjYtMS4xM2wuNTA5LjAwNmMxLjE2OCwxLjI0NywxLjIyOCwxLjIyMywxLjQsMS4xNTRsMS4xMTMtLjQ1QzI3LjA4MiwyNi44MjcsMjcuMTQzLDI2LjgsMjcuMDc1LDI1LjEwN1ptLTQuNzg4LTIuNjMyYTIsMiwwLDEsMSwyLjYxOCwxLjE0QTIuMDIzLDIuMDIzLDAsMCwxLDIyLjI4NywyMi40NzVaXFxcIiBzdHlsZT1cXFwiZmlsbDojOTliOGM0XFxcIi8+XCIsXG5cdH0sXG5cdFwiVHdpZ1wiOiB7XG5cdFx0Y29sb3VyOiBcIiM3OGRjNTBcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk00LjU3NCw1LjQ2M2MuMjYyLjQsMi41LTEuNjA4LDQuNDU0LTEuMTYxLDIuMDYxLjQ3Miw0LjAxNCwzLjcyNCw0Ljg0OCwxMy43YTQwLjE4LDQwLjE4LDAsMCwxLDMuNTQxLDMuNjFxLjUzLjYxNCwxLjAxMywxLjIyYTExLjg0NywxMS44NDcsMCwwLDEsLjIyOS0xLjQsMTIuMywxMi4zLDAsMCwxLDEuOTgxLTQuNEExOS4xNTEsMTkuMTUxLDAsMCwwLDE3LjI3Miw3LjljLTEuMDMtMS40NDUtNC42LTYuNDc4LTguNTQ2LTUuODQzQzYuMTgyLDIuNDY1LDQuMyw1LjA1NCw0LjU3NCw1LjQ2M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM2M2JmNmFcXFwiLz48cGF0aCBkPVxcXCJNMjQuNCwzMGMtLjMyLTIuNTY3LS40NDgtNC43Ni0uNS02LjQ0OS0uMDk0LTMuMjMyLjEtNC41NDEuOS01Ljc1Ni4xOTMtLjI5NSwxLjI4OC0xLjk3NSwyLjU4LTEuODYzLDEuNDY2LjEyOCwyLjIxMywyLjQxNCwyLjM2MiwyLjMzNy4xNzUtLjA5LS4zNi0zLjU0My0yLjUzMi00LjQzMS0yLjYtMS4wNjMtNi4zMTIsMi4wNy03LjgsNS4xNTRhMTIuMjIzLDEyLjIyMywwLDAsMC0uODU3LDIuODEsMzIuNTU1LDMyLjU1NSwwLDAsMC0uNzEsOC4yWlxcXCIgc3R5bGU9XFxcImZpbGw6Izc0ZDc0ZFxcXCIvPjxwYXRoIGQ9XFxcIk0yLjIzOCwxMy45MzVjLjE0NS0uNDQ3LDIuNDY4LS4yNTksNC41NC4yOTMsMi41LjY2Niw3LDIuMzQ0LDExLjY1MSw4LjYwNkExMi41NDQsMTIuNTQ0LDAsMCwxLDIwLjI3OSwzMEgxMC4zODZhMjEuODc1LDIxLjg3NSwwLDAsMC0uMTc1LTQuNjIsMTQuOSwxNC45LDAsMCwwLTIuNDU5LTcuMTU4QzUuNDQxLDE1LjE1OSwyLjA1NSwxNC41LDIuMjM4LDEzLjkzNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM3OGRjNTBcXFwiLz48cGF0aCBkPVxcXCJNMTcuMywyMS4zMjNhMS43NTMsMS43NTMsMCwxLDEtLjUxMy0xLjI0QTEuNzQ4LDEuNzQ4LDAsMCwxLDE3LjMsMjEuMzIzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0yMS45NzUsMjEuMzIzYTEuNzUzLDEuNzUzLDAsMSwxLS41MTMtMS4yNEExLjc0OCwxLjc0OCwwLDAsMSwyMS45NzUsMjEuMzIzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIlR5cGVTY3JpcHRcIjoge1xuXHRcdGNvbG91cjogXCIjMzE3OGM2XCIsXG5cdFx0aWNvbjogXCI8cmVjdCB4PVxcXCIyXFxcIiB5PVxcXCIyXFxcIiB3aWR0aD1cXFwiMjhcXFwiIGhlaWdodD1cXFwiMjhcXFwiIHJ4PVxcXCIxLjMxMlxcXCIgc3R5bGU9XFxcImZpbGw6IzMxNzhjNlxcXCIvPjxwYXRoIGQ9XFxcIk0xOC4yNDUsMjMuNzU5djMuMDY4YTYuNDkyLDYuNDkyLDAsMCwwLDEuNzY0LjU3NSwxMS41NiwxMS41NiwwLDAsMCwyLjE0Ni4xOTIsOS45NjgsOS45NjgsMCwwLDAsMi4wODgtLjIxMSw1LjExLDUuMTEsMCwwLDAsMS43MzUtLjcsMy41NDIsMy41NDIsMCwwLDAsMS4xODEtMS4yNjYsNC40NjksNC40NjksMCwwLDAsLjE4Ni0zLjM5NCwzLjQwOSwzLjQwOSwwLDAsMC0uNzE3LTEuMTE3LDUuMjM2LDUuMjM2LDAsMCwwLTEuMTIzLS44NzcsMTIuMDI3LDEyLjAyNywwLDAsMC0xLjQ3Ny0uNzM0cS0uNi0uMjQ5LTEuMDgtLjQ4NGE1LjUsNS41LDAsMCwxLS44MTMtLjQ3OSwyLjA4OSwyLjA4OSwwLDAsMS0uNTE2LS41MTgsMS4wOTEsMS4wOTEsMCwwLDEtLjE4MS0uNjE4LDEuMDM5LDEuMDM5LDAsMCwxLC4xNjItLjU3MSwxLjQsMS40LDAsMCwxLC40NTktLjQzNiwyLjQzOSwyLjQzOSwwLDAsMSwuNzI2LS4yODMsNC4yMTEsNC4yMTEsMCwwLDEsLjk1Ni0uMSw1Ljk0Miw1Ljk0MiwwLDAsMSwuODA4LjA1OCw2LjI5Miw2LjI5MiwwLDAsMSwuODU2LjE3Nyw1Ljk5NCw1Ljk5NCwwLDAsMSwuODM2LjMsNC42NTcsNC42NTcsMCwwLDEsLjc1MS40MjJWMTMuOWE3LjUwOSw3LjUwOSwwLDAsMC0xLjUyNS0uNCwxMi40MjYsMTIuNDI2LDAsMCwwLTEuOS0uMTI5LDguNzY3LDguNzY3LDAsMCwwLTIuMDY0LjIzNSw1LjIzOSw1LjIzOSwwLDAsMC0xLjcxNi43MzMsMy42NTUsMy42NTUsMCwwLDAtMS4xNzEsMS4yNzEsMy43MzEsMy43MzEsMCwwLDAtLjQzMSwxLjg0NSwzLjU4OCwzLjU4OCwwLDAsMCwuNzg5LDIuMzQsNiw2LDAsMCwwLDIuMzk1LDEuNjM5cS42My4yNiwxLjE3NS41MDlhNi40NTgsNi40NTgsMCwwLDEsLjk0Mi41MTcsMi40NjMsMi40NjMsMCwwLDEsLjYyNi41ODUsMS4yLDEuMiwwLDAsMSwuMjMuNzE5LDEuMSwxLjEsMCwwLDEtLjE0NC41NTIsMS4yNjksMS4yNjksMCwwLDEtLjQzNS40NDEsMi4zODEsMi4zODEsMCwwLDEtLjcyNi4yOTIsNC4zNzcsNC4zNzcsMCwwLDEtMS4wMTguMTA1LDUuNzczLDUuNzczLDAsMCwxLTEuOTY5LS4zNUE1Ljg3NCw1Ljg3NCwwLDAsMSwxOC4yNDUsMjMuNzU5Wm0tNS4xNTQtNy42MzhoNFYxMy41OTRINS45Mzh2Mi41MjdIOS45MlYyNy4zNzVoMy4xNzFaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+XCIsXG5cdFx0aW5saW5lQ29tbWVudDogW1xuXHRcdFx0XCIvL1wiLFxuXHRcdF0sXG5cdH0sXG5cdFwiVHlwb1NjcmlwdFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNmZjg3MDBcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yMy4wOTMsMjEuM2EzLjg0NywzLjg0NywwLDAsMS0xLjE4LjE2NWMtMy41NTUsMC04Ljc3OC0xMi40MjQtOC43NzgtMTYuNTU5LDAtMS41MjMuMzYyLTIuMDMxLjg3LTIuNDY2QzkuNjUzLDIuOTQzLDQuNDMsNC41MzksMi43NjEsNi41N2E0LjA0OCw0LjA0OCwwLDAsMC0uNTgsMi4zMjFDMi4xODEsMTUuMzQ4LDkuMDcyLDMwLDEzLjkzMywzMGMyLjI0OCwwLDYuMDQxLTMuNyw5LjE2LTguN1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZmODcwMFxcXCIvPjxwYXRoIGQ9XFxcIk0yMC44MjMsMmM0LjUsMCw5LC43MjUsOSwzLjI2NCwwLDUuMTUxLTMuMjY0LDExLjM4OS00LjkzMywxMS4zODktMi45NzQsMC02LjY3My04LjI2OS02LjY3My0xMi40LDAtMS44ODYuNzI1LTIuMjQ5LDIuNjExLTIuMjQ5XFxcIiBzdHlsZT1cXFwiZmlsbDojZmY4NzAwXFxcIi8+XCIsXG5cdH0sXG5cdFwiVlwiOiB7XG5cdFx0Y29sb3VyOiBcIiM1ZDg3YmZcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yMC40NjcsMjkuMjg4LDI5Ljk1MiwyLjkxM2EuNS41LDAsMCwwLS41NjYtLjcyOEwyMS45MjcsMi45YTEuNDY0LDEuNDY0LDAsMCwwLTEuMTQxLjlMMTIuMDA3LDI5LjAwNmEuNTczLjU3MywwLDAsMCwuNTc4LjgxM2g3LjI2YS42NTcuNjU3LDAsMCwwLC41NzctLjRaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTM2YjhhXFxcIi8+PHBhdGggZD1cXFwiTTIuNjE0LDIuMTg1bDcuNDU5LjcxOWExLjQ2NiwxLjQ2NiwwLDAsMSwxLjE0Mi45TDIwLjE4LDI5LjQxM2EuMjg2LjI4NiwwLDAsMS0uMjg5LjQwNkgxMi41ODVhMS4zMTEsMS4zMTEsMCwwLDEtMS4xNTItLjgxTDIuMDQ4LDIuOTEzQS41LjUsMCwwLDEsMi42MTQsMi4xODVaXFxcIiBzdHlsZT1cXFwiZmlsbDojNWQ4N2JmXFxcIi8+XCIsXG5cdH0sXG5cdFwiVmFsYVwiOiB7XG5cdFx0Y29sb3VyOiBcIiM0MDM3NTdcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0xMi41MDksMTcuMTkzYy0uMTY1LTYuODM2LS4zMjUtMTIuNDU1LS4zNTctMTIuNDg3QTcuOTE2LDcuOTE2LDAsMCwwLDkuODc5LDUuODc0LDcuNjA2LDcuNjA2LDAsMCwwLDcuMzI0LDkuMTg4YTguNDIyLDguNDIyLDAsMCwwLS41ODcsMy41NDMsNC42NjUsNC42NjUsMCwwLDAsLjIsMS45NjIsMy40MTcsMy40MTcsMCwwLDEsLjE4Mi41NmMtLjAxMi4wMDktLjMzOC0uMDE4LS43MjQtLjA2MS0xLjg2OC0uMjA3LTIuNzg2LTEuMDUtMy0yLjc1N0E2LjMxMiw2LjMxMiwwLDAsMSw0Ljg1LDcuNzE5YTE1LjEzNCwxNS4xMzQsMCwwLDEsOC40MTQtNS4xNjMsMTIuODkxLDEyLjg5MSwwLDAsMSwyLjU0Mi0uMjM1bDEuNzQ4LS4wNS4wNTksMi41MDZjLjAzMiwxLjM3OC4xLDYuMzU4LjE2MSwxMS4wNjdzLS4yNTIsOC4yOS0uMjE5LDguNEMxOS41LDE3Ljg3OSwyMiwxMy4wNzMsMjQuMzY3LDYuMjUzbDEuNDI3LTMuOTgzSDI4LjU0Yy0uMDIyLjA2My0yLjc1MSw2LjUtNS41MTQsMTMuOTE2bC01LjQ3MywxMy41NUgxMi45NzZDMTIuOTc2LDI3LjkwNiwxMi41MzUsMTguNDg2LDEyLjUwOSwxNy4xOTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojNDAzNzU3XFxcIi8+PHBhdGggZD1cXFwiTTE3LjczMiwzMEgxMi43MTN2LS4yNjNjMC0xLjEzNy0uMTctNS4xOTItLjMwNy04LjQ1Mi0uMDgxLTEuOTI5LS4xNS0zLjYtLjE2MS00LjA4Ny0uMTU2LTYuNDc5LS4yODYtMTEtLjMzNi0xMi4xNjNhMTEuNjc0LDExLjY3NCwwLDAsMC0xLjg3NCwxLjA0OSw3LjM0OCw3LjM0OCwwLDAsMC0yLjQ2NiwzLjJBOC4xNDYsOC4xNDYsMCwwLDAsNywxMi43MzEsNC4zNyw0LjM3LDAsMCwwLDcuMTg1LDE0LjZjLjIxNS41NjkuMjczLjcyMy4xLjg1OS0uMDkzLjA3My0uMTA3LjA4NC0uOTE2LS4wMDctMS45NzYtLjIxOS0zLTEuMTY3LTMuMjM0LTIuOTg2QTYuNTY4LDYuNTY4LDAsMCwxLDQuNjQsNy41NjEsMTUuNDM5LDE1LjQzOSwwLDAsMSwxMy4yLDIuMywxMy4xNzYsMTMuMTc2LDAsMCwxLDE1LjgsMi4wNThMMTcuODExLDJsLjA2NSwyLjc3Yy4wMzIsMS4zOTIuMTA2LDYuNDYxLjE2MSwxMS4wNy4wMzEsMi42MTYtLjA1Miw0LjkxNS0uMTI0LDYuNDMuOTMxLTIuNzYzLDEuOTU4LTUuMjcsMy4wMzMtNy45LDEuMDQzLTIuNTQ3LDIuMTIyLTUuMTgsMy4xNzMtOC4yMDdsMS40OTEtNC4xNmgzLjNsLS4xMjUuMzUxYzAsLjAwNy0uMDMxLjA3Ni0uMDg0LjItMS4xLDIuNjIyLTMuMjU5LDcuODg5LTUuNDMsMTMuNzE3Wm0tNC40OTUtLjUyNmg0LjE0bDUuNDA3LTEzLjM4NmMyLjEyNC01LjcsNC4yNDMtMTAuODc2LDUuMzYyLTEzLjU1NUgyNS45NzlMMjQuNjE0LDYuMzQyYy0xLjA1NSwzLjAzOC0yLjEzNyw1LjY3OC0zLjE4Myw4LjIzMS0xLjMxMSwzLjItMi41NSw2LjIyNi0zLjYyNiw5Ljc0N2wtLjI1NS44MzEtLjI0OC0uODMzYTMuMjc0LDMuMjc0LDAsMCwxLC4wMjEtLjgzOWMuMDc0LTEuMzUuMjI5LTQuMTU4LjE4OC03LjYzMy0uMDU1LTQuNjA3LS4xMjktOS42NzQtLjE2MS0xMS4wNjRMMTcuMywyLjU0MWwtMS40ODQuMDQzYTEyLjcyOSwxMi43MjksMCwwLDAtMi40OS4yMjhBMTQuODg3LDE0Ljg4NywwLDAsMCw1LjA2LDcuODc3YTYuMDcxLDYuMDcxLDAsMCwwLTEuNCw0LjUyNGMuMiwxLjU4LDEuMDI4LDIuMzM2LDIuNzcsMi41MjlsLjMzMy4wMzVjLS4wMTktLjA1NC0uMDQxLS4xMTQtLjA2Ni0uMTc5YTQuODkzLDQuODkzLDAsMCwxLS4yMTktMi4wNTUsOC43LDguNywwLDAsMSwuNi0zLjYzOCw3Ljg4Myw3Ljg4MywwLDAsMSwyLjY0NC0zLjQzYy4wMjItLjAxNiwyLjIzMi0xLjUyNSwyLjYxNS0xLjE0Mi4wOTIuMDkyLjEzMS4xMzEuNDMzLDEyLjY2NmgwYy4wMS40ODUuMDgsMi4xNDkuMTYsNC4wNzZDMTMuMDYsMjQuMzEzLDEzLjIxNywyOC4wNiwxMy4yMzcsMjkuNDc0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2M4YzhjOFxcXCIvPlwiLFxuXHR9LFxuXHRcIlZCLk5ldFwiOiB7XG5cdFx0Y29sb3VyOiBcIiMwMDUxOWFcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk02LjY3LDcuODM2LDksMTguOTE1LDExLjMzNiw3LjgzNkgxNkwxMS4zMzYsMjQuMTY0SDYuNjcyTDIsNy44MzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1MTlhXFxcIi8+PHBhdGggZD1cXFwiTTE4LjMzMSw3LjgzNmg3LjZhNC4wOCw0LjA4LDAsMCwxLDIuOSwxLjc0OSwzLjc4LDMuNzgsMCwwLDEsLjU3MSwyLjA0LDMuOTg1LDMuOTg1LDAsMCwxLS41NzEsMi4wMzQsNC4xMDgsNC4xMDgsMCwwLDEtMi4zNDEsMS43NjMsNC4xLDQuMSwwLDAsMSwyLjkyOSwxLjc1NiwzLjgsMy44LDAsMCwxLC41OCwyLjEsNC42NjMsNC42NjMsMCwwLDEtLjU3OSwyLjU0Niw1LjA0Nyw1LjA0NywwLDAsMS0zLjUsMi4zMzhIMTguMzMxWk0yMywxNC4yNTJoMS4xNjZhMS43NTQsMS43NTQsMCwwLDAsMC0zLjVIMjNabTAsN0gyNC4zOWEyLjA0NywyLjA0NywwLDAsMCwwLTQuMDg5SDIzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNTE5YVxcXCIvPlwiLFxuXHR9LFxuXHRcIlZCQVwiOiB7XG5cdFx0Y29sb3VyOiBcIiNkODdiMzBcIixcblx0XHRpY29uOiBcIjxwb2x5Z29uIHBvaW50cz1cXFwiMTAuNDU3IDExLjA5MiAxNi4wMTQgMTMuODM5IDE2LjAxNCAxOC4zMDcgMTAuNDU3IDE1LjM4MiAxMC40NTcgMTEuMDkyXFxcIiBzdHlsZT1cXFwiZmlsbDojNjQ4M2MwXFxcIi8+PHBhdGggZD1cXFwiTTE2LjIsMTguNjEzbC01LjkyNi0zLjEyVjEwLjhMMTYuMiwxMy43MjRaTTEwLjY0MiwxNS4yNywxNS44MywxOFYxMy45NTNsLTUuMTg4LTIuNTY0WlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYuMzcxIDEzLjgzOSAxNi4zNzEgMTguMzA3IDIxLjMxNSAxNS44MTQgMjEuMzE1IDExLjM1NCAxNi4zNzEgMTMuODM5XFxcIiBzdHlsZT1cXFwiZmlsbDojNjQ4M2MwXFxcIi8+PHBhdGggZD1cXFwiTTE2LjE4NiwxOC42MDdWMTMuNzI1bDUuMzEzLTIuNjd2NC44NzNabS4zNjktNC42NTV2NC4wNTVMMjEuMTMsMTUuN1YxMS42NTNaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxMC43MDMgMTAuNzk3IDE2LjE4NiAxMy41OCAyMS4wODIgMTEuMDY0IDE1Ljc3NyA4LjM4OSAxMC43MDMgMTAuNzk3XFxcIiBzdHlsZT1cXFwiZmlsbDojNjQ4M2MwXFxcIi8+PHBhdGggZD1cXFwiTTE2LjE4NywxMy43ODhsLTUuOS0zLDUuNS0yLjYwOCw1LjcwOSwyLjg3OVpNMTEuMTIyLDEwLjhsNS4wNjQsMi41Nyw0LjQ5LTIuMzA4LTQuOS0yLjQ3MVpcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE4Ljk1NyAxNS44MjkgMjQuNTE1IDE4LjU3NSAyNC41MTUgMjMuMDQzIDE4Ljk1NyAyMC4xMTggMTguOTU3IDE1LjgyOVxcXCIgc3R5bGU9XFxcImZpbGw6Izk1Mjc4MVxcXCIvPjxwYXRoIGQ9XFxcIk0yNC43LDIzLjM0OWwtNS45MjYtMy4xMnYtNC43TDI0LjcsMTguNDZabS01LjU1Ny0zLjM0Myw1LjE4OCwyLjczMVYxOC42ODlsLTUuMTg4LTIuNTY0WlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjQuODcxIDE4LjU3NSAyNC44NzEgMjMuMDQzIDI5LjgxNSAyMC41NSAyOS44MTUgMTYuMDkgMjQuODcxIDE4LjU3NVxcXCIgc3R5bGU9XFxcImZpbGw6Izk1Mjc4MVxcXCIvPjxwYXRoIGQ9XFxcIk0yNC42ODcsMjMuMzQzVjE4LjQ2MUwzMCwxNS43OTF2NC44NzNabS4zNjktNC42NTV2NC4wNTVsNC41NzUtMi4zMDhWMTYuMzg5WlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTkuMjAzIDE1LjU0NiAyNC42ODcgMTguMzI5IDI5LjU4MyAxNS44MTIgMjQuMzY0IDEzLjM0NiAxOS4yMDMgMTUuNTQ2XFxcIiBzdHlsZT1cXFwiZmlsbDojOTUyNzgxXFxcIi8+PHBhdGggZD1cXFwiTTI0LjY4NywxOC41MzZsLTUuOTItMy4wMDUsNS42LTIuMzg3TDMwLDE1LjgwNVpNMTkuNjQsMTUuNTZsNS4wNDYsMi41NjEsNC40NzktMi4zLTQuODA2LTIuMjdaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyLjE5IDE1LjQ5NiA3Ljc0OCAxOC4yNDMgNy43NDggMjIuNzExIDIuMTkgMTkuNzg2IDIuMTkgMTUuNDk2XFxcIiBzdHlsZT1cXFwiZmlsbDojZDg3YjMwXFxcIi8+PHBhdGggZD1cXFwiTTcuOTMyLDIzLjAxNywyLjAwNiwxOS45VjE1LjJsNS45MjYsMi45MjlaTTIuMzc1LDE5LjY3NGw1LjE4OCwyLjczMVYxOC4zNTdMMi4zNzUsMTUuNzkzWlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiOC4xMDQgMTguMjQzIDguMTA0IDIyLjcxMSAxMy4wNDggMjAuMjE4IDEzLjA0OCAxNS43NTggOC4xMDQgMTguMjQzXFxcIiBzdHlsZT1cXFwiZmlsbDojZDg3YjMwXFxcIi8+PHBhdGggZD1cXFwiTTcuOTIsMjMuMDExVjE4LjEyOWw1LjMxMy0yLjY3djQuODczWm0uMzY5LTQuNjU1djQuMDU1TDEyLjg2NCwyMC4xVjE2LjA1N1pcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIuNDM2IDE1LjIxMyA3LjkyIDE3Ljk5NyAxMi44MTYgMTUuNDggNy41OTcgMTMuMDE0IDIuNDM2IDE1LjIxM1xcXCIgc3R5bGU9XFxcImZpbGw6I2Q4N2IzMFxcXCIvPjxwYXRoIGQ9XFxcIk03LjkyLDE4LjIsMiwxNS4ybDUuNi0yLjM4Nyw1LjYzMiwyLjY2MVpNMi44NzMsMTUuMjI4bDUuMDQ2LDIuNTYxLDQuNDc5LTIuMy00LjgwNi0yLjI3WlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTAuODc1IDE2LjI5NiAxNi40MzIgMTkuMDQyIDE2LjQzMiAyMy41MTEgMTAuODc1IDIwLjU4NSAxMC44NzUgMTYuMjk2XFxcIiBzdHlsZT1cXFwiZmlsbDojZTBkNDAwXFxcIi8+PHBhdGggZD1cXFwiTTE2LjYxNywyMy44MTYsMTAuNjkxLDIwLjdWMTZsNS45MjYsMi45MjlaTTExLjA2LDIwLjQ3NGw1LjE4OCwyLjczMVYxOS4xNTdMMTEuMDYsMTYuNTkzWlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYuNzg5IDE5LjA0MiAxNi43ODkgMjMuNTExIDIxLjczMyAyMS4wMTcgMjEuNzMzIDE2LjU1NyAxNi43ODkgMTkuMDQyXFxcIiBzdHlsZT1cXFwiZmlsbDojZTBkNDAwXFxcIi8+PHBhdGggZD1cXFwiTTE2LjYsMjMuODExVjE4LjkyOWw1LjMxMy0yLjY3djQuODczWm0uMzY5LTQuNjU1djQuMDU1TDIxLjU0OSwyMC45VjE2Ljg1N1pcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjExLjEyMSAxNi4wMDEgMTYuNjA1IDE4Ljc4NCAyMS41MDEgMTYuMjY3IDE2LjE5NiAxMy41OTMgMTEuMTIxIDE2LjAwMVxcXCIgc3R5bGU9XFxcImZpbGw6I2UwZDQwMFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi42MDUsMTguOTkxbC01LjktMyw1LjUtMi42MDgsNS43MDksMi44NzlaTTExLjU0LDE2LjAwNmw1LjA2NCwyLjU3LDQuNDktMi4zMDgtNC45LTIuNDcxWlxcXCIvPlwiLFxuXHR9LFxuXHRcIlZlbG9jaXR5XCI6IHtcblx0XHRjb2xvdXI6IFwiIzI2MjY5MlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTE2LjI0NSwyNC4xODdBOC4zNTIsOC4zNTIsMCwxLDEsMjQuNiwxNS44MzUsOC4zNjIsOC4zNjIsMCwwLDEsMTYuMjQ1LDI0LjE4N1ptMC0xNC43NjJhNi40MSw2LjQxLDAsMSwwLDYuNDEsNi40MUE2LjQxNyw2LjQxNywwLDAsMCwxNi4yNDUsOS40MjVaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyOS4xMzIgOC41NTEgMjUuNDUxIDYuNTMxIDI1LjQ1MSA3LjQ3NCAxNS44MjEgNy40NzQgMTUuODIxIDkuNDI0IDI1LjQ1MSA5LjQyNCAyNS40NTEgMTAuNTcxIDI5LjEzMiA4LjU1MVxcXCIgc3R5bGU9XFxcImZpbGw6IzI2MjY5MlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiOC45ODQgMiA2Ljk2NCA1LjY4NyA3LjkwNiA1LjY4NyA3LjkwNiAxNS4zMjggOS44NTcgMTUuMzI4IDkuODU3IDUuNjg3IDExLjAwNCA1LjY4NyA4Ljk4NCAyXFxcIiBzdHlsZT1cXFwiZmlsbDojMjYyNjkzXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMy43MDUgMzAgMjEuNjg1IDI2LjI0MyAyMi42MjggMjYuMjQzIDIyLjYyOCAxNi40MTcgMjQuNTc4IDE2LjQxNyAyNC41NzggMjYuMjQzIDI1LjcyNSAyNi4yNDMgMjMuNzA1IDMwXFxcIiBzdHlsZT1cXFwiZmlsbDojMjYyNjkzXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyLjg2OCAyMy4zMiA2LjYzNCAyMS4zIDYuNjM0IDIyLjI0MiAxNi40ODQgMjIuMjQyIDE2LjQ4NCAyNC4xOTIgNi42MzQgMjQuMTkyIDYuNjM0IDI1LjM0IDIuODY4IDIzLjMyXFxcIiBzdHlsZT1cXFwiZmlsbDojMjYyNjkyXFxcIi8+XCIsXG5cdH0sXG5cdFwiVmVyaWxvZ1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMxYTM0OGZcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yOS4wMDcsMTcuNGguMDM3YTEuNDQ5LDEuNDQ5LDAsMCwwLC45MzgtLjMxNiwxLjQ3MywxLjQ3MywwLDAsMCwuNTE5LTEuMDMxVjE1LjlhMS40MTMsMS40MTMsMCwwLDAtMS4zNzYtMS4zaC0uMDA5Yy0uNjg3LDAtMS4zNzQsMC0yLjA2MiwwSDI1LjVWMTEuOTU2bDMuNTEzLDBoLjAzNEExLjQxMSwxLjQxMSwwLDAsMCwzMC41LDEwLjZsMC0uMDksMC0uMDMyYTEuNDEyLDEuNDEyLDAsMCwwLS42NDYtMS4xLDEuNDU1LDEuNDU1LDAsMCwwLS44MzUtLjIyNUgyNS40NTZhMi45NiwyLjk2LDAsMCwwLS4yNzgtMS4wMzQsMi45MDksMi45MDksMCwwLDAtMS43LTEuNDYxLDIuNjg0LDIuNjg0LDAsMCwwLS42MjktLjEzVjQuOTQ3YzAtLjY5LDAtMS4zOCwwLTIuMDYzQTEuNDE0LDEuNDE0LDAsMCwwLDIxLjQ4MSwxLjVoLS4xMTZhMS40LDEuNCwwLDAsMC0xLjMxOSwxLjM4OHEwLDEuMTU0LDAsMi4zMDZWNi41SDE3LjRWNC45ODFjMC0uNywwLTEuNCwwLTIuMDg3QTEuNDEsMS40MSwwLDAsMCwxNi4wNTMsMS41SDE1LjlhMS40MDgsMS40MDgsMCwwLDAtMS4zLDEuMzgzYzAsLjY4OCwwLDEuMzc2LDAsMi4wNjRWNi41MDhxLTEuMzE5LDAtMi42MzksMFY0Ljg4OGMwLS42NjYsMC0xLjMzMiwwLTEuOTg5YTEuMzY2LDEuMzY2LDAsMCwwLS40LS45NzUsMS40LDEuNCwwLDAsMC0uOTg0LS40MjRIMTAuNUExLjQxLDEuNDEsMCwwLDAsOS4xNTksMi44ODFjMCwuNjgzLDAsMS4zNjYsMCwyLjA0OXYxLjZhMi45MzMsMi45MzMsMCwwLDAtMi40NjYsMS45LDIuODc4LDIuODc4LDAsMCwwLS4xNjEuNzI2SDQuOTU3Yy0uNjkzLDAtMS4zODYsMC0yLjA3MywwSDIuODc2QTEuNDEzLDEuNDEzLDAsMCwwLDEuNSwxMC41di4wOTVhMS40MTcsMS40MTcsMCwwLDAsLjU3NSwxLjA5MSwxLjQ2MywxLjQ2MywwLDAsMCwuODg3LjI3M2guMDE3bDMuNTIyLDBWMTQuNkg0Ljk0OGMtLjY4NiwwLTEuMzc1LDAtMi4wNTcsMEExLjQyOCwxLjQyOCwwLDAsMCwxLjUsMTUuOTEzVjE2LjFhMS40LDEuNCwwLDAsMCwxLjM4NiwxLjNjLjcxMSwwLDEuNDIzLDAsMi4xMzUsMEg2LjVWMjAuMDVsLS4yOTIsMGMtLjYxMy0uMDA3LTEuMjI2LDAtMS44MzgsMEgzLjA4N2ExLjYzMywxLjYzMywwLDAsMC0uOTE4LjIxMUExLjQzNywxLjQzNywwLDAsMCwxLjUsMjEuNFYyMS41YTEuNDE3LDEuNDE3LDAsMCwwLDEuMzc1LDEuMzM3aC4wMDVxLjY0NSwwLDEuMjksMEg2LjU0NmEyLjgzMiwyLjgzMiwwLDAsMCwxLjk3OCwyLjUsMi43MTIsMi43MTIsMCwwLDAsLjYzMS4xMjh2MS42MmMwLC42NzgsMCwxLjM1NCwwLDIuMDI1YTEuNCwxLjQsMCwxLDAsMi44LS4wOTJsMC0zLjUyN0gxNC42djMuNTE2QTEuNDE0LDEuNDE0LDAsMCwwLDE1Ljk0NywzMC41SDE2LjFhMS40MTEsMS40MTEsMCwwLDAsMS4zLTEuMzg1cS4wMDYtMS4wNjYsMC0yLjEzMVYyNS41aDIuNjQ0VjI5LjFBMS40MjMsMS40MjMsMCwwLDAsMjEuNCwzMC41aC4xMTlhMS40MDgsMS40MDgsMCwwLDAsMS4xNi0uNzQxLDEuNjQzLDEuNjQzLDAsMCwwLC4xNjctLjgzM1YyNS40NzRhMi42NzEsMi42NzEsMCwwLDAsLjYyLS4xMjgsMi45MjgsMi45MjgsMCwwLDAsMS44ODYtMS44ODgsMi44MzQsMi44MzQsMCwwLDAsLjEyMy0uNjEzaDEuNTgxYy42ODcsMCwxLjM3NSwwLDIuMDU3LDBoLjAwOEExLjQyMiwxLjQyMiwwLDAsMCwzMC41LDIxLjQ4MXYtLjExOGExLjQwOSwxLjQwOSwwLDAsMC0xLjM4Mi0xLjMxOGgwYy0uNzE4LDAtMS40MzYsMC0yLjE1NCwwSDI1LjVWMTcuNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjNWM1YzU7b3BhY2l0eTowLjNcXFwiLz48cGF0aCBkPVxcXCJNMTAuNTE1LDJoLjA1NmEuOTEuOTEsMCwwLDEsLjg4Ni44OTNjLjAwNiwxLjEwOCwwLDIuMjE2LDAsMy4zMjQtLjYsMC0xLjIsMC0xLjgsMCwwLTEuMTExLDAtMi4yMjIsMC0zLjMzM0EuOTA3LjkwNywwLDAsMSwxMC41MTUsMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNMTUuOTM3LDJoLjExNmEuOTEyLjkxMiwwLDAsMSwuODQ2Ljg4OWMuMDA2LDEuMTA5LDAsMi4yMTksMCwzLjMyOUgxNS4xYzAtMS4xMSwwLTIuMjIsMC0zLjMzQS45MTEuOTExLDAsMCwxLDE1LjkzNywyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk0yMS4zOTIsMmguMDg5YS45MDcuOTA3LDAsMCwxLC44NTkuODgxYy4wMDcsMS4xMTIsMCwyLjIyNSwwLDMuMzM3aC0xLjhjMC0xLjEwOSwwLTIuMjE3LDAtMy4zMjZBLjkxMi45MTIsMCwwLDEsMjEuMzkyLDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWEzNDhmXFxcIi8+PHBhdGggZD1cXFwiTTIsMTAuNTE4YS45MDguOTA4LDAsMCwxLC44ODItLjg1OWMxLjExMi0uMDA3LDIuMjIzLDAsMy4zMzQsMHEwLC45LDAsMS44Yy0xLjA3OSwwLTIuMTU4LDAtMy4yMzcsMGEuOTgzLjk4MywwLDAsMS0uNi0uMTczQS45MjQuOTI0LDAsMCwxLDIsMTAuNTcxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk0yNS43ODYsOS42NTVoMy4yMzNhMSwxLDAsMCwxLC41NjEuMTQzLjkyNC45MjQsMCwwLDEsLjQyLjcxNnYuMDU4YS45MzMuOTMzLDAsMCwxLS4zLjY1MS45NTcuOTU3LDAsMCwxLS42NzcuMjM0Yy0xLjA3OSwwLTIuMTU4LDAtMy4yMzcsMFEyNS43ODYsMTAuNTU2LDI1Ljc4Niw5LjY1NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNMiwxNS45NDRhLjkxMy45MTMsMCwwLDEsLjg4OC0uODQyYzEuMTA5LS4wMDcsMi4yMTksMCwzLjMyOCwwcTAsLjksMCwxLjhjLTEuMTA5LDAtMi4yMTcsMC0zLjMyNiwwQS45MTUuOTE1LDAsMCwxLDIsMTYuMDYzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk0yNS43ODYsMTUuMWMxLjEwOSwwLDIuMjE4LDAsMy4zMjYsMGEuOTE0LjkxNCwwLDAsMSwuODg5LjgzNXYuMTE3YS45NDYuOTQ2LDAsMCwxLS4zMzEuNjQxLjk3My45NzMsMCwwLDEtLjY1MS4yMDdIMjUuNzg2UTI1Ljc4NSwxNiwyNS43ODYsMTUuMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNMi40MzMsMjAuNjc4YTEuMTIxLDEuMTIxLDAsMCwxLC42NDMtLjEzNmMxLjA0My4wMDYsMi4wODYtLjAwNiwzLjEyOS4wMDYuMDI4LjYsMCwxLjIuMDEyLDEuOC0xLjExLDAtMi4yMjEsMC0zLjMzMSwwQS45MTEuOTExLDAsMCwxLDIsMjEuNDgzVjIxLjRBLjkyNS45MjUsMCwwLDEsMi40MzMsMjAuNjc4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk0yNS43ODYsMjAuNTQzYzEuMTA4LDAsMi4yMTYsMCwzLjMyNCwwYS45MTQuOTE0LDAsMCwxLC44OS44NDd2LjA5YS45MTEuOTExLDAsMCwxLS44ODguODU5Yy0xLjEwOS4wMDctMi4yMTgsMC0zLjMyNiwwQzI1Ljc4NiwyMS43NDMsMjUuNzg1LDIxLjE0MywyNS43ODYsMjAuNTQzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk05LjY1NiwyNS43ODFoMS44YzAsMS4wODEsMCwyLjE2MiwwLDMuMjQzYS45NTcuOTU3LDAsMCwxLS4yMzUuNjc3LjkzMS45MzEsMCwwLDEtLjY1My4zaC0uMDUyYS45MDcuOTA3LDAsMCwxLS44Ni0uODgyQzkuNjUxLDI4LjAwNiw5LjY1OCwyNi44OTQsOS42NTYsMjUuNzgxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNS4xLDI1Ljc4MWgxLjhjMCwxLjExLDAsMi4yMiwwLDMuMzNhLjkxNC45MTQsMCwwLDEtLjgzNi44ODloLS4xMTZhLjk0Ljk0LDAsMCwxLS42MTktLjMwNi45NjIuOTYyLDAsMCwxLS4yMjgtLjY3M1ExNS4xLDI3LjQsMTUuMSwyNS43ODFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWEzNDhmXFxcIi8+PHBhdGggZD1cXFwiTTIwLjU0NywyOS4xMDZjMC0xLjEwOCwwLTIuMjE3LDAtMy4zMjVoMS44YzAsMS4wNDgsMCwyLjEsMCwzLjE0NGExLjE3OCwxLjE3OCwwLDAsMS0uMTA1LjU5LjkyLjkyLDAsMCwxLS43NTYuNDg0SDIxLjRBLjkxMS45MTEsMCwwLDEsMjAuNTQ3LDI5LjEwNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNMjQuNzMyLDguMzQ5QTIuNDI5LDIuNDI5LDAsMCwwLDIzLjMxLDcuMTMxLDMuMjQ1LDMuMjQ1LDAsMCwwLDIyLjI1NCw3Yy00LjMuMDA4LTguNi0uMDExLTEyLjkwNS4wMUEyLjQzNiwyLjQzNiwwLDAsMCw3LjE1Nyw4LjYwNiwzLjYxMSwzLjYxMSwwLDAsMCw3LDkuOTM0cTAsNi4yNSwwLDEyLjVhMi42NzMsMi42NzMsMCwwLDAsLjI2OCwxLjIxOUEyLjQzMSwyLjQzMSwwLDAsMCw4LjY4OCwyNC44NywzLjc1NiwzLjc1NiwwLDAsMCw5LjkyNywyNUgyMi4wN2EzLjc2MiwzLjc2MiwwLDAsMCwxLjI0My0uMTI3QTIuNDI5LDIuNDI5LDAsMCwwLDI0Ljg3NSwyMy4zLDMuOCwzLjgsMCwwLDAsMjUsMjIuMDcxcTAtNi4yNSwwLTEyLjVBMi42ODYsMi42ODYsMCwwLDAsMjQuNzMyLDguMzQ5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk03LjUsOC4zMDdsLjA4NC0uMnEuOTY4LDAsMS45MzUuMDI0aC4zOTRxLjE3OSwwLC4zOTQtLjAxMi43NzYtLjAzNiwyLjgwNy0uMDM2LjQwNiwwLC43ODguMDA2dC43NDEuMDE4YS4yMzQuMjM0LDAsMCwxLC4xMDguMTA4bC0uMDI0LjE5MXEtLjA3Mi4xMTktLjM1OC4xMTloLS4xYTEwLjMsMTAuMywwLDAsMC0xLjEuMDU0LDIuMTc5LDIuMTc5LDAsMCwwLTEsLjI0NS40MzIuNDMyLDAsMCwwLS4xNTUuMzQ2LDQuMDUsNC4wNSwwLDAsMCwuMzk0LDEuNGwxLjgxOCw0LjIxNy42MzQsMS40cS45MjEsMi4yMjIsMS44MTksNC41MzkuMS4yNTEuMTc5LjQ1NGwuOC0xLjk1OXEuNjItMS40ODEsMS4yNTItMy4xNTRsLjgyMy0yLjI0NnEuMDI0LS4wNzIuMTMxLS40NzhhMTcuMDI2LDE3LjAyNiwwLDAsMCwxLjE1Ny00LC41NjEuNTYxLDAsMCwwLS4xNjEtLjM2NCwxLjE2NSwxLjE2NSwwLDAsMC0uNTItLjMsNy43MjMsNy43MjMsMCwwLDAtLjkzMi0uMTQzbC0uODg0LS4xMDhhLjMzNy4zMzcsMCwwLDEtLjEwOC0uMmwuMDM2LS4xLDMuODctLjAzNkgyMy42YTMuMSwzLjEsMCwwLDEsLjg4NS4wODRsLjAxMi4xYS42NDEuNjQxLDAsMCwxLS4wNzIuMjUxLDIuNDQ5LDIuNDQ5LDAsMCwxLS41MjYuMTE5LDMuNiwzLjYsMCwwLDAtMS4yNDQuMjgxLDEuODE1LDEuODE1LDAsMCwwLS41LjY4N2wtMy4xMzQsNy43NjVxLTEuNDY2LDMuNS0yLjA4Niw1LjQyM2wtLjM0NSwxLjAzOWEuNTMxLjUzMSwwLDAsMS0uMjYzLjEsMS4zODMsMS4zODMsMCwwLDEtLjMtLjAzNnEtMS40MjItMy42NzYtMi4zMTgtNS42ODFMMTAuMDU1LDkuOTJhMy4yNDcsMy4yNDcsMCwwLDAtLjU5MS0uODksNS40NjMsNS40NjMsMCwwLDAtMS4zNzktLjQyNCw0LjM0Nyw0LjM0NywwLDAsMS0uNDY2LS4xMTlBLjMyNi4zMjYsMCwwLDEsNy41LDguMzA3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2M1YzJmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIlZIRExcIjoge1xuXHRcdGNvbG91cjogXCIjMGQ5YjM1XCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMiwySDMwVjMwSDJabTEuNjg5LjA2N0ExLjYyNCwxLjYyNCwwLDAsMCwyLjA2MywzLjY5MlYyOC4zMTRBMS42MjUsMS42MjUsMCwwLDAsMy42ODksMjkuOTRIMjguMzE2YTEuNjI1LDEuNjI1LDAsMCwwLDEuNjI2LTEuNjI2VjMuNjkyYTEuNjI0LDEuNjI0LDAsMCwwLTEuNjI2LTEuNjI1Wk0zLjAwOCwyOC4wNzlhLjkxMS45MTEsMCwwLDAsLjkxMS45MTJIMjguMDgzYS45MTEuOTExLDAsMCwwLC45MTEtLjkxMlYzLjkxOWEuOTEuOTEsMCwwLDAtLjkxMS0uOTExSDMuOTE5YS45MS45MSwwLDAsMC0uOTExLjkxMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwZDliMzVcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI1LjUyIDUuNTAyIDE4Ljg1OCAyNi40OTEgMTMuMTU0IDI2LjQ5MSA2LjQ5MiA1LjUwMiAxMC41MDggNS41MDIgMTYuMDI5IDIyLjc5NSAyMS41MDQgNS41MDIgMjUuNTIgNS41MDJcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0fSxcblx0XCJ2aW1cIjoge1xuXHRcdGNvbG91cjogXCIjNDNiNTRhXCIsXG5cdFx0aWNvbjogXCI8ZGVmcz48Y2xpcFBhdGggaWQ9XFxcImFcXFwiPjxwb2x5Z29uIHBvaW50cz1cXFwiMiAyIDMwIDIgMzAgMzAgMiAzMCAyIDIgMiAyXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO2NsaXAtcnVsZTpldmVub2RkXFxcIi8+PC9jbGlwUGF0aD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV92aW08L3RpdGxlPjxwb2x5Z29uIHBvaW50cz1cXFwiMjkuOTg5IDE1Ljg1NiAxNS44NTYgMi4wMTEgMi4wMTEgMTYuMTM2IDE1Ljg1NiAyOS45ODkgMjkuOTg5IDE1Ljg1NiAyOS45ODkgMTUuODU2XFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PGcgc3R5bGU9XFxcImNsaXAtcGF0aDp1cmwoI2EpXFxcIj48cG9seWdvbiBwb2ludHM9XFxcIjI5Ljk4OSAxNS44NTYgMTUuODU2IDIuMDExIDIuMDExIDE2LjEzNiAxNS44NTYgMjkuOTg5IDI5Ljk4OSAxNS44NTYgMjkuOTg5IDE1Ljg1NlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjwvZz48cG9seWdvbiBwb2ludHM9XFxcIjI4LjU3NSAxNS44NTYgMjkuNDIyIDE1Ljg1NiAxNS44NTYgMjkuNDIyIDE1Ljg1NiAyOC41NzUgMjguNTc1IDE1Ljg1NiAyOC41NzUgMTUuODU2XFxcIiBzdHlsZT1cXFwiZmlsbDojMjk2OTVkO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyOC41NzUgMTUuODU2IDI5LjQyMiAxNS44NTYgMTUuODU2IDI5LjQyMiAxNS44NTYgMjguNTc1IDI4LjU3NSAxNS44NTYgMjguNTc1IDE1Ljg1NlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMi41NzggMTYuMTM2IDMuNDI1IDE2LjEzNiAxNS44NTYgMjguNTc1IDE1Ljg1NiAyOS40MjIgMi41NzggMTYuMTM2IDIuNTc4IDE2LjEzNlxcXCIgc3R5bGU9XFxcImZpbGw6IzMxNzM2NztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMi41NzggMTYuMTM2IDMuNDI1IDE2LjEzNiAxNS44NTYgMjguNTc1IDE1Ljg1NiAyOS40MjIgMi41NzggMTYuMTM2IDIuNTc4IDE2LjEzNlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTUuODU2IDMuNDE4IDE1Ljg1NiAyLjU3OCAyLjU3OCAxNi4xMzYgMy40MjUgMTYuMTM2IDE1Ljg1NiAzLjQxOCAxNS44NTYgMy40MThcXFwiIHN0eWxlPVxcXCJmaWxsOiM2MGMyYWM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE1Ljg1NiAzLjQxOCAxNS44NTYgMi41NzggMi41NzggMTYuMTM2IDMuNDI1IDE2LjEzNiAxNS44NTYgMy40MTggMTUuODU2IDMuNDE4XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNS44NTYgMi41NzggMTUuODU2IDMuNDE4IDI4LjU3NSAxNS44NTYgMjkuNDIyIDE1Ljg1NiAxNS44NTYgMi41NzggMTUuODU2IDIuNTc4XFxcIiBzdHlsZT1cXFwiZmlsbDojNDNiNTRhO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNS44NTYgMi41NzggMTUuODU2IDMuNDE4IDI4LjU3NSAxNS44NTYgMjkuNDIyIDE1Ljg1NiAxNS44NTYgMi41NzggMTUuODU2IDIuNTc4XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNS44NTYgMjguNTc1IDI4LjU3NSAxNS44NTYgMTUuODU2IDMuNDE4IDMuNDI1IDE2LjEzNiAxNS44NTYgMjguNTc1IDE1Ljg1NiAyOC41NzVcXFwiIHN0eWxlPVxcXCJmaWxsOiMzYzgzNzY7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE1Ljg1NiAyOC41NzUgMjguNTc1IDE1Ljg1NiAxNS44NTYgMy40MTggMy40MjUgMTYuMTM2IDE1Ljg1NiAyOC41NzUgMTUuODU2IDI4LjU3NVxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTguNDk4IDYuMjQ2IDE5LjM0NSA3LjEgMTMuNTAyIDEzLjAyOCAxMy41MDIgNy4xIDE0LjA2OSA3LjEgMTQuOTE2IDYuMjQ2IDE0LjkxNiAzLjk5MiAxNC4wNjkgMy4xMzggNC42NTIgMy4xMzggMy44MDUgMy45OTIgMy44MDUgNi4yNDYgNC42NTIgNy4xIDUuMzEyIDcuMSA1LjMxMiAyNi4zMTQgNi4zNDYgMjcuMTYxIDkuMjY3IDI3LjE2MSAyOS41MTYgNi4yNDYgMjkuNTE2IDMuOTkyIDI4LjY2OSAzLjEzOCAxOS40MzggMy4xMzggMTguNDk4IDMuOTkyIDE4LjQ5OCA2LjI0NiAxOC40OTggNi4yNDZcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjA7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE4LjQ5OCA2LjI0NiAxOS4zNDUgNy4xIDEzLjUwMiAxMy4wMjggMTMuNTAyIDcuMSAxNC4wNjkgNy4xIDE0LjkxNiA2LjI0NiAxNC45MTYgMy45OTIgMTQuMDY5IDMuMTM4IDQuNjUyIDMuMTM4IDMuODA1IDMuOTkyIDMuODA1IDYuMjQ2IDQuNjUyIDcuMSA1LjMxMiA3LjEgNS4zMTIgMjYuMzE0IDYuMzQ2IDI3LjE2MSA5LjI2NyAyNy4xNjEgMjkuNTE2IDYuMjQ2IDI5LjUxNiAzLjk5MiAyOC42NjkgMy4xMzggMTkuNDM4IDMuMTM4IDE4LjQ5OCAzLjk5MiAxOC40OTggNi4yNDYgMTguNDk4IDYuMjQ2XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI0LjkzMiA2LjUzMyA0LjM2NSA1Ljk2NiA0LjM2NSA0LjI3MiA0LjkzMiAzLjcwNSAxMy43ODkgMy42OTggMTQuMzQ5IDQuMjcyIDEzLjc4OSA0LjU0NCAxMy41MDIgNC4yNzIgNC45MzIgNS42NzkgNC45MzIgNi41MzMgNC45MzIgNi41MzNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmY7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjQuOTMyIDYuNTMzIDQuMzY1IDUuOTY2IDQuMzY1IDQuMjcyIDQuOTMyIDMuNzA1IDEzLjc4OSAzLjY5OCAxNC4zNDkgNC4yNzIgMTMuNzg5IDQuNTQ0IDEzLjUwMiA0LjI3MiA0LjkzMiA1LjY3OSA0LjkzMiA2LjUzMyA0LjkzMiA2LjUzM1xcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNi42MjYgMjYuNTk0IDUuOTY2IDI2LjAyNyA1Ljk2NiA2LjUyNiA2LjYyNiA1Ljk2NiA2LjYyNiAyNi41OTQgNi42MjYgMjYuNTk0XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI2LjYyNiAyNi41OTQgNS45NjYgMjYuMDI3IDUuOTY2IDYuNTI2IDYuNjI2IDUuOTY2IDYuNjI2IDI2LjU5NCA2LjYyNiAyNi41OTRcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIwLjc1OSA2LjUzMyAyMS4zMjYgNS45NjYgMjEuMzI2IDcuMSAxMS45MDIgMTYuNzAzIDEyLjk0MiAxNC40NDIgMjAuNzU5IDYuNTMzIDIwLjc1OSA2LjUzM1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjAuNzU5IDYuNTMzIDIxLjMyNiA1Ljk2NiAyMS4zMjYgNy4xIDExLjkwMiAxNi43MDMgMTIuOTQyIDE0LjQ0MiAyMC43NTkgNi41MzMgMjAuNzU5IDYuNTMzXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI2LjgyIDUuNjg2IDYuNjI2IDUuOTY2IDUuOTY2IDYuNTMzIDQuOTMyIDYuNTMzIDQuOTMyIDUuMzk5IDYuODIgNS42ODYgNi44MiA1LjY4NlxcXCIgc3R5bGU9XFxcImZpbGw6IzkyOTQ5NztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNi44MiA1LjY4NiA2LjYyNiA1Ljk2NiA1Ljk2NiA2LjUzMyA0LjkzMiA2LjUzMyA0LjkzMiA1LjM5OSA2LjgyIDUuNjg2IDYuODIgNS42ODZcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjEyLjk0MiA2LjUzMyAxMi45NDIgMTQuNDQyIDExLjkwMiAxNi42OTYgMTEuOTAyIDUuOTU4IDEzLjUwMiA1Ljk1OCAxMy43ODkgNS42NzggMTMuNTAyIDQuMjcyIDE0LjM0OSA0LjI3MiAxNC4zNDkgNS45NjYgMTMuNzg5IDYuNTMzIDEyLjk0MiA2LjUzMyAxMi45NDIgNi41MzNcXFwiIHN0eWxlPVxcXCJmaWxsOiM5Mjk0OTc7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjEyLjk0MiA2LjUzMyAxMi45NDIgMTQuNDQyIDExLjkwMiAxNi42OTYgMTEuOTAyIDUuOTU4IDEzLjUwMiA1Ljk1OCAxMy43ODkgNS42NzggMTMuNTAyIDQuMjcyIDE0LjM0OSA0LjI3MiAxNC4zNDkgNS45NjYgMTMuNzg5IDYuNTMzIDEyLjk0MiA2LjUzMyAxMi45NDIgNi41MzNcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE5LjYyNSA2LjUzMyAxOS4wNjUgNS45NjYgMTkuMDY1IDQuMjcyIDE5LjcxOCAzLjcwNSAyOC4yOTUgMy43MDUgMjguOTU2IDQuMjcyIDI4LjAwOCA1LjExOSAxOS42MjUgNS42NzkgMTkuNjI1IDYuNTMzIDE5LjYyNSA2LjUzM1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTkuNjI1IDYuNTMzIDE5LjA2NSA1Ljk2NiAxOS4wNjUgNC4yNzIgMTkuNzE4IDMuNzA1IDI4LjI5NSAzLjcwNSAyOC45NTYgNC4yNzIgMjguMDA4IDUuMTE5IDE5LjYyNSA1LjY3OSAxOS42MjUgNi41MzMgMTkuNjI1IDYuNTMzXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyOC45NTYgNS45NjYgOS4wNzQgMjYuNTk0IDYuNjI2IDI2LjU5NCA2LjYyNiAyNS43NDcgOC40MiAyNS43NDcgMjguMjk1IDUuMzk5IDI4LjAwOCA0LjI3MiAyOC45NTYgNC4yNzIgMjguOTU2IDUuOTY2IDI4Ljk1NiA1Ljk2NlxcXCIgc3R5bGU9XFxcImZpbGw6IzkyOTQ5NztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjguOTU2IDUuOTY2IDkuMDc0IDI2LjU5NCA2LjYyNiAyNi41OTQgNi42MjYgMjUuNzQ3IDguNDIgMjUuNzQ3IDI4LjI5NSA1LjM5OSAyOC4wMDggNC4yNzIgMjguOTU2IDQuMjcyIDI4Ljk1NiA1Ljk2NiAyOC45NTYgNS45NjZcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIxLjUxMiA1LjY4NiAyMS4zMTkgNS45NjYgMjAuNzU5IDYuNTMzIDE5LjYyNSA2LjUzMyAxOS42MjUgNS4zOTkgMjEuNTEyIDUuNjg2IDIxLjUxMiA1LjY4NlxcXCIgc3R5bGU9XFxcImZpbGw6IzkyOTQ5NztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjEuNTEyIDUuNjg2IDIxLjMxOSA1Ljk2NiAyMC43NTkgNi41MzMgMTkuNjI1IDYuNTMzIDE5LjYyNSA1LjM5OSAyMS41MTIgNS42ODYgMjEuNTEyIDUuNjg2XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxMS45MDIgMTYuNjk2IDExLjkwMiA1Ljk1OCAxMy41MDIgNS45NTggMTMuNzg5IDUuNjc5IDEzLjc4OSA0LjU0NCAxMy41MDIgNC4yNjUgNS4yMTIgNC4yNjUgNC45MzIgNC41NDQgNC45MzIgNS42NzkgNS4yMTIgNS45NTggNi42MjYgNS45NTggNi42MjYgMjUuNzQ3IDYuOTkyIDI2LjAyNyA4LjYwNyAyNi4wMjcgMjguMzg5IDUuMzk5IDI4LjM4OSA0LjU4OCAyOC4xMDIgNC4yNjUgMTkuOTEyIDQuMjY1IDE5LjYyNSA0LjU0NCAxOS42MjUgNS42ODYgMTkuOTEyIDUuOTY2IDIxLjMyNiA1Ljk2NiAyMS4zMjYgNy4xIDExLjkwMiAxNi42OTYgMTEuOTAyIDE2LjY5NlxcXCIgc3R5bGU9XFxcImZpbGw6I2QwZDJkMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTEuOTAyIDE2LjY5NiAxMS45MDIgNS45NTggMTMuNTAyIDUuOTU4IDEzLjc4OSA1LjY3OSAxMy43ODkgNC41NDQgMTMuNTAyIDQuMjY1IDUuMjEyIDQuMjY1IDQuOTMyIDQuNTQ0IDQuOTMyIDUuNjc5IDUuMjEyIDUuOTU4IDYuNjI2IDUuOTU4IDYuNjI2IDI1Ljc0NyA2Ljk5MiAyNi4wMjcgOC42MDcgMjYuMDI3IDI4LjM4OSA1LjM5OSAyOC4zODkgNC41ODggMjguMTAyIDQuMjY1IDE5LjkxMiA0LjI2NSAxOS42MjUgNC41NDQgMTkuNjI1IDUuNjg2IDE5LjkxMiA1Ljk2NiAyMS4zMjYgNS45NjYgMjEuMzI2IDcuMSAxMS45MDIgMTYuNjk2IDExLjkwMiAxNi42OTZcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE3LjA0MSAxNi43MTEgMTcuNzAxIDE2LjE0NCAxOS4zOTUgMTYuMTQ0IDE5Ljg2OSAxNi43MTEgMTkuMzAyIDE4LjQwNSAxOC42NDkgMTguOTcyIDE2Ljk1NSAxOC45NzIgMTYuNDc0IDE4LjQwNSAxNy4wNDEgMTYuNzExIDE3LjA0MSAxNi43MTFcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjA7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE3LjA0MSAxNi43MTEgMTcuNzAxIDE2LjE0NCAxOS4zOTUgMTYuMTQ0IDE5Ljg2OSAxNi43MTEgMTkuMzAyIDE4LjQwNSAxOC42NDkgMTguOTcyIDE2Ljk1NSAxOC45NzIgMTYuNDc0IDE4LjQwNSAxNy4wNDEgMTYuNzExIDE3LjA0MSAxNi43MTFcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE3LjYwOCAyNi4wMzQgMTkuMzA5IDIwLjk1MyAxOC43NDIgMjAuOTUzIDE5LjMwOSAxOS4yNTEgMjEuODQzIDE5LjI1MSAyMi40MSAxOS44MTkgMjIuNzkgMTkuODE5IDIzLjM1IDE5LjI1MSAyNS4yMzggMTkuMjUxIDI1LjgwNSAxOS44MTkgMjYuMTc4IDE5LjgxOSAyNi43NDUgMTkuMjUxIDI4LjgxMiAxOS4yNTEgMjkuNTY2IDIwLjM4NiAyOC4zMzEgMjQuNDA1IDI4Ljg5MSAyNC40MDUgMjguMzQ2IDI2LjAzNCAyNC45NTEgMjYuMDM0IDI2LjI3OCAyMi4wNzkgMjUuNDMxIDIyLjA3OSAyNC42NDkgMjQuMzkxIDI1LjIwOSAyNC4zOTEgMjQuNjc4IDI2LjAzNCAyMS4yODMgMjYuMDM0IDIyLjYwMyAyMi4wNzkgMjEuNzU2IDIyLjA3OSAyMC45NjcgMjQuNDA1IDIxLjUzNCAyNC40MDUgMjEuMDAzIDI2LjAzNCAxNy42MDggMjYuMDM0IDE3LjYwOCAyNi4wMzRcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjA7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE3LjYwOCAyNi4wMzQgMTkuMzA5IDIwLjk1MyAxOC43NDIgMjAuOTUzIDE5LjMwOSAxOS4yNTEgMjEuODQzIDE5LjI1MSAyMi40MSAxOS44MTkgMjIuNzkgMTkuODE5IDIzLjM1IDE5LjI1MSAyNS4yMzggMTkuMjUxIDI1LjgwNSAxOS44MTkgMjYuMTc4IDE5LjgxOSAyNi43NDUgMTkuMjUxIDI4LjgxMiAxOS4yNTEgMjkuNTY2IDIwLjM4NiAyOC4zMzEgMjQuNDA1IDI4Ljg5MSAyNC40MDUgMjguMzQ2IDI2LjAzNCAyNC45NTEgMjYuMDM0IDI2LjI3OCAyMi4wNzkgMjUuNDMxIDIyLjA3OSAyNC42NDkgMjQuMzkxIDI1LjIwOSAyNC4zOTEgMjQuNjc4IDI2LjAzNCAyMS4yODMgMjYuMDM0IDIyLjYwMyAyMi4wNzkgMjEuNzU2IDIyLjA3OSAyMC45NjcgMjQuNDA1IDIxLjUzNCAyNC40MDUgMjEuMDAzIDI2LjAzNCAxNy42MDggMjYuMDM0IDE3LjYwOCAyNi4wMzRcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI4LjU1NCAxOS44MTkgMjguOTkyIDIwLjQ0MyAyNy41OTkgMjQuOTA3IDI4LjE1OSAyNC45MDcgMjcuOTcyIDI1LjQ2NyAyNS43MTEgMjUuNDY3IDI3LjAzMiAyMS41MTIgMjUuMDUxIDIxLjUxMiAyMy45MjQgMjQuOTA3IDI0LjQ4NCAyNC45MDcgMjQuMjk3IDI1LjQ2NyAyMi4wMzYgMjUuNDY3IDIzLjM1NyAyMS41MTIgMjEuMzc2IDIxLjUxMiAyMC4yNDkgMjQuOTA3IDIwLjgxNiAyNC45MDcgMjAuNjIyIDI1LjQ2NyAxOC4zNjEgMjUuNDY3IDIwLjA2MyAyMC4zODYgMTkuNDk1IDIwLjM4NiAxOS42ODIgMTkuODE5IDIxLjc1NiAxOS44MTkgMjIuMzIzIDIwLjM4NiAyMi44ODMgMjAuMzg2IDIzLjQ1IDE5LjgxOSAyNS4xNDQgMTkuODE5IDI1LjcxMSAyMC4zODYgMjYuMjc4IDIwLjM4NiAyNi44NDUgMTkuODE5IDI4LjU1NCAxOS44MTkgMjguNTU0IDE5LjgxOVxcXCIgc3R5bGU9XFxcImZpbGw6I2QwZDJkMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjguNTU0IDE5LjgxOSAyOC45OTIgMjAuNDQzIDI3LjU5OSAyNC45MDcgMjguMTU5IDI0LjkwNyAyNy45NzIgMjUuNDY3IDI1LjcxMSAyNS40NjcgMjcuMDMyIDIxLjUxMiAyNS4wNTEgMjEuNTEyIDIzLjkyNCAyNC45MDcgMjQuNDg0IDI0LjkwNyAyNC4yOTcgMjUuNDY3IDIyLjAzNiAyNS40NjcgMjMuMzU3IDIxLjUxMiAyMS4zNzYgMjEuNTEyIDIwLjI0OSAyNC45MDcgMjAuODE2IDI0LjkwNyAyMC42MjIgMjUuNDY3IDE4LjM2MSAyNS40NjcgMjAuMDYzIDIwLjM4NiAxOS40OTUgMjAuMzg2IDE5LjY4MiAxOS44MTkgMjEuNzU2IDE5LjgxOSAyMi4zMjMgMjAuMzg2IDIyLjg4MyAyMC4zODYgMjMuNDUgMTkuODE5IDI1LjE0NCAxOS44MTkgMjUuNzExIDIwLjM4NiAyNi4yNzggMjAuMzg2IDI2Ljg0NSAxOS44MTkgMjguNTU0IDE5LjgxOSAyOC41NTQgMTkuODE5XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBhdGggZD1cXFwiTTE5LjAyMiwxOS4yNTEsMTcuMjkyLDI0LjRoLjU4OWwtLjU2LDEuNjM3SDEzLjkzM2wxLjY5NC01LjA4MkgxNS4wNmwzLjk2Mi0xLjdabS0zLjk2MiwxLjcuNTY3LTEuN2gzLjRsLTMuOTYyLDEuN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjA7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTkuMDIyLDE5LjI1MSwxNy4yOTIsMjQuNGguNTg5bC0uNTYsMS42MzdIMTMuOTMzbDEuNjk0LTUuMDgySDE1LjA2bDMuOTYyLTEuN1ptLTMuOTYyLDEuNy41NjctMS43aDMuNGwtMy45NjIsMS43WlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYuOTQ3IDI1LjQ2NyAxNy4xMzQgMjQuOTA3IDE2LjU2NyAyNC45MDcgMTguMjY4IDE5LjgxOSAxNS45MTQgMTkuODE5IDE1LjcyIDIwLjM4NiAxNi4zOCAyMC4zODYgMTQuNjg2IDI1LjQ2NyAxNi45NDcgMjUuNDY3IDE2Ljk0NyAyNS40NjdcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMGQyZDM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2Ljk0NyAyNS40NjcgMTcuMTM0IDI0LjkwNyAxNi41NjcgMjQuOTA3IDE4LjI2OCAxOS44MTkgMTUuOTE0IDE5LjgxOSAxNS43MiAyMC4zODYgMTYuMzggMjAuMzg2IDE0LjY4NiAyNS40NjcgMTYuOTQ3IDI1LjQ2NyAxNi45NDcgMjUuNDY3XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxOC44MjggMTguMTI1IDE5LjIwOCAxNi45OTEgMTkuMDIyIDE2LjcxMSAxNy44ODggMTYuNzExIDE3LjUxNCAxNi45OTEgMTcuMTM0IDE4LjEyNSAxNy4zMjggMTguNDA1IDE4LjQ2MiAxOC40MDUgMTguODI4IDE4LjEyNSAxOC44MjggMTguMTI1XFxcIiBzdHlsZT1cXFwiZmlsbDojZDBkMmQzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxOC44MjggMTguMTI1IDE5LjIwOCAxNi45OTEgMTkuMDIyIDE2LjcxMSAxNy44ODggMTYuNzExIDE3LjUxNCAxNi45OTEgMTcuMTM0IDE4LjEyNSAxNy4zMjggMTguNDA1IDE4LjQ2MiAxOC40MDUgMTguODI4IDE4LjEyNSAxOC44MjggMTguMTI1XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+XCIsXG5cdH0sXG5cdFwiVmlzdWFsIEJhc2ljXCI6IHtcblx0XHRjb2xvdXI6IFwiIzAwNTE5YVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTYuNjcsNy44MzYsOSwxOC45MTUsMTEuMzM2LDcuODM2SDE2TDExLjMzNiwyNC4xNjRINi42NzJMMiw3LjgzNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDUxOWFcXFwiLz48cGF0aCBkPVxcXCJNMTguMzMxLDcuODM2aDcuNmE0LjA4LDQuMDgsMCwwLDEsMi45LDEuNzQ5LDMuNzgsMy43OCwwLDAsMSwuNTcxLDIuMDQsMy45ODUsMy45ODUsMCwwLDEtLjU3MSwyLjAzNCw0LjEwOCw0LjEwOCwwLDAsMS0yLjM0MSwxLjc2Myw0LjEsNC4xLDAsMCwxLDIuOTI5LDEuNzU2LDMuOCwzLjgsMCwwLDEsLjU4LDIuMSw0LjY2Myw0LjY2MywwLDAsMS0uNTc5LDIuNTQ2LDUuMDQ3LDUuMDQ3LDAsMCwxLTMuNSwyLjMzOEgxOC4zMzFaTTIzLDE0LjI1MmgxLjE2NmExLjc1NCwxLjc1NCwwLDAsMCwwLTMuNUgyM1ptMCw3SDI0LjM5YTIuMDQ3LDIuMDQ3LDAsMCwwLDAtNC4wODlIMjNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1MTlhXFxcIi8+XCIsXG5cdH0sXG5cdFwiV2ViQXNzZW1ibHlcIjoge1xuXHRcdGNvbG91cjogXCIjNjU0ZmYwXCIsXG5cdFx0aWNvbjogXCI8cGF0aCBkPVxcXCJNMTkuMTUzLDIuMzVWMi41YTMuMiwzLjIsMCwxLDEtNi40LDBoMFYyLjM1SDJWMzAuMjY5SDI5LjkxOVYyLjM1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NGZmMFxcXCIvPjxwYXRoIGQ9XFxcIk04LjQ4NSwxNy40aDEuODVMMTEuNiwyNC4xMjNoLjAyM0wxMy4xNCwxNy40aDEuNzMxbDEuMzcxLDYuODFoLjAyN2wxLjQ0LTYuODFoMS44MTVsLTIuMzU4LDkuODg1SDE1LjMyOWwtMS4zNi02LjcyOGgtLjAzNmwtMS40NTYsNi43MjhoLTEuODdabTEzLjEyNCwwaDIuOTE3bDIuOSw5Ljg4NUgyNS41MTVsLS42My0yLjJIMjEuNTYybC0uNDg2LDIuMkgxOS4yMTdabTEuMTEsMi40MzctLjgwNywzLjYyN2gyLjUxMkwyMy41LDE5LjgzMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0fSxcblx0XCJXb2xmcmFtIGxhbmd1YWdlXCI6IHtcblx0XHRjb2xvdXI6IFwiI2QwMTAwMFwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTMwLDIwLjU1LDI1Ljk0LDE2LDMwLDExLjQ1bC01Ljk0OC0xLjI5NC41OTUtNi4wNjdMMTkuMDcxLDYuNTQzLDE1Ljk5MywxLjI3OSwxMi45MjksNi41NDMsNy4zNTMsNC4wODlsLjU5NSw2LjA2N0wyLDExLjQ1LDYuMDU5LDE2LDIsMjAuNTVsNS45NDgsMS4yOTQtLjU5NSw2LjA2Nyw1LjU3Ni0yLjQ1NCwzLjA3OCw1LjI2NCwzLjA2My01LjI2NCw1LjU5MSwyLjQ1NC0uNjEtNi4wNjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDEwXFxcIi8+PHBhdGggZD1cXFwiTTE5LjM1MywxMS40NWE2Ljk2OCw2Ljk2OCwwLDAsMS0zLjQyLjg2Miw1LjQ0Niw1LjQ0NiwwLDAsMS0zLjIxMi0uODYyQTcuMSw3LjEsMCwwLDEsMTIuNSwxNC44YTYuMjI1LDYuMjI1LDAsMCwxLTEuODc0LDIuOTE0LDcuNDU0LDcuNDU0LDAsMCwxLDMuMTM4LDEuMTksOS42NTksOS42NTksMCwwLDEsMi4yMTYsMi43MjEsOC4xOTQsOC4xOTQsMCwwLDEsMi4xNDEtMi42OTEsNy42MDUsNy42MDUsMCwwLDEsMy4yNDItMS4yLDEyLjU2MiwxMi41NjIsMCwwLDEtMS45MzMtMi45NDRBNi43MTgsNi43MTgsMCwwLDEsMTkuMzUzLDExLjQ1Wm0tMS45LDYuNTQzYTUuMjMzLDUuMjMzLDAsMCwwLTEuNDU3LDEuNjM2LDYuMjM2LDYuMjM2LDAsMCwwLTEuNS0xLjYyMSw1LjE5MSw1LjE5MSwwLDAsMC0xLjk0OC0uODQ4LDYuODM5LDYuODM5LDAsMCwwLDEuMTE1LTIuMDA3LDYuMTgsNi4xOCwwLDAsMCwuMjIzLTIuMDgyLDYuMzE3LDYuMzE3LDAsMCwwLDIuMDgyLjQ0Niw2LjU1Miw2LjU1MiwwLDAsMCwyLjE3MS0uNDYxLDQuNTIxLDQuNTIxLDAsMCwwLC4wNzQsMi4xNTYsNi43MSw2LjcxLDAsMCwwLDEuMjQ5LDEuOTMzQTcuMDMxLDcuMDMxLDAsMCwwLDE3LjQ1LDE3Ljk5M1ptNC4yMzgtNC4wMTVjLS4zNTctMS4xNzUuNjU0LTYuNzA2LjY1NC02LjcwNlMxOC41NSw5Ljg0NCwxNS44ODgsOS44NDRzLTYuMjMtMi41NzItNi4yMy0yLjU3MiwxLjE3NSw0LjAxNS40NjEsNi41ODctNC4zODcsNS40NzItNC4zODcsNS40NzIsNC43ODguMjgzLDYuNiwxLjUsMy42NTgsNS45NDgsMy42NTgsNS45NDgsMi40NTQtNS4yLDMuNDgtNS45NDgsNi44LTEuNSw2LjgtMS41LTQuMjIzLTQuMTc4LTQuNTgtNS4zNTNabS0yLjg0LDUuOTYzYTkuNDQ0LDkuNDQ0LDAsMCwwLTIuODQsNC4xNzhzLTEuNDEzLTMuMTUyLTIuOTc0LTQuMjIzUzguMywxOC41NDMsOC4zLDE4LjU0M3MyLjQ1NC0yLjE3MSwzLjA0OC00LjFhMTEuOTIzLDExLjkyMywwLDAsMC0uMS00Ljk1MiwxMS4zLDExLjMsMCwwLDAsNC42NjksMS42MjFjMi4wMzcsMCw0Ljg0OC0xLjYyMSw0Ljg0OC0xLjYyMXMtLjgxOCwzLjAzMy0uMTY0LDQuOTIyLDMuMTA4LDQuMTM0LDMuMTA4LDQuMTM0YTEwLjU1NywxMC41NTcsMCwwLDAtNC44NjIsMS40WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHR9LFxuXHRcIlhNTFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNmMTY2MmFcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yMC40MiwyMS4xNTdsMi4yMTEsMi4yMTFMMzAsMTYsMjIuNjMxLDguNjMxLDIwLjQyLDEwLjg0MywyNS41OCwxNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMTY2MmFcXFwiLz48cGF0aCBkPVxcXCJNMTEuNTgsMTAuODQzLDkuMzY5LDguNjMxLDIsMTZsNy4zNjksNy4zNjksMi4yMTEtMi4yMTFMNi40MiwxNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMTY2MmFcXFwiLz48cGF0aCBkPVxcXCJNMTcuNDExLDcuNjc3bDEuNi40MzctNC40MiwxNi4yMDktMS42LS40MzcsNC40Mi0xNi4yMDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjE2NjJhXFxcIi8+XCIsXG5cdH0sXG5cdFwiWFF1ZXJ5XCI6IHtcblx0XHRjb2xvdXI6IFwiI2YxNjYyYVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTIwLjQyLDIxLjE1N2wyLjIxMSwyLjIxMUwzMCwxNiwyMi42MzEsOC42MzEsMjAuNDIsMTAuODQzLDI1LjU4LDE2Wk0xMS41OCwxMC44NDMsOS4zNjksOC42MzEsMiwxNmw3LjM2OSw3LjM2OSwyLjIxMS0yLjIxMUw2LjQyLDE2Wm01LjgzMS0zLjE2NiwxLjYuNDM3LTQuNDIsMTYuMjA5LTEuNi0uNDM3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2YxNjYyYVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC4zMzIsMTguNDYyYTMuMzU0LDMuMzU0LDAsMCwxLC45NzUtMS40MjMsNC4wMTQsNC4wMTQsMCwwLDEsMS42MTctLjhBOS4xMTgsOS4xMTgsMCwwLDEsMjUuMTM4LDE2YTUuNDcyLDUuNDcyLDAsMCwxLDMuNjgxLDEuMDM5QTMuNSwzLjUsMCwwLDEsMzAsMTkuODA4YTQuNDcsNC40NywwLDAsMS0uMjQsMS40OTEsMy4xMjQsMy4xMjQsMCwwLDEtLjgzOCwxLjIzOWwtMS42NzUsMS42YTEuNTEyLDEuNTEyLDAsMCwwLS40MjQuNzg5LDUuMzA3LDUuMzA3LDAsMCwwLS4xLDEuMUgyM3YtLjU0YTYuMzIsNi4zMiwwLDAsMSwuMjA3LTEuNzc4LDIuODg2LDIuODg2LDAsMCwxLC43OC0xLjI0bDEuMzUyLTEuMjg5YTEuODQsMS44NCwwLDAsMCwuNTYzLS44OTQsMy42ODIsMy42ODIsMCwwLDAsLjEtLjgsMS41LDEuNSwwLDAsMC0uMjUyLS45LjkuOSwwLDAsMC0uNzc5LS4zNDYsMS4yNTUsMS4yNTUsMCwwLDAtLjQ4My4wODYuNzI0LjcyNCwwLDAsMC0uMzQ0LjMzNywyLjM0NywyLjM0NywwLDAsMC0uMjE3LjcyMSw3LjYxNCw3LjYxNCwwLDAsMC0uMDgxLDEuMjRIMjBBNi4xNTUsNi4xNTUsMCwwLDEsMjAuMzMyLDE4LjQ2MlptNi40NTcsOC41VjMwSDIyLjkzNlYyNi45NjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmNiYTAwXFxcIi8+XCIsXG5cdH0sXG5cdFwiWUFNTFwiOiB7XG5cdFx0Y29sb3VyOiBcIiNmZmU4ODVcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk0yLDEyLjIxOGMuNzU1LDAsMS41MS0uMDA4LDIuMjY0LDBsLjA1My4wMzhRNS43LDEzLjYzOCw3LjA3OCwxNS4wMTRjLjg5MS0uOTA2LDEuOC0xLjc5NCwyLjctMi43LjA1My0uMDUyLjExLS4xMTMuMTkyLS4xLjYwOCwwLDEuMjE1LDAsMS44MjMsMGExLjQsMS40LDAsMCwxLC4zNTMuMDE5Yy0uNy42Ny0xLjM3NywxLjM2OS0yLjA2OSwyLjA1TDUuNTQ1LDE4LjhjLS4zMzEuMzI0LS42NDguNjYzLS45ODkuOTc1LS43NTQuMDIyLTEuNTExLjAwNy0yLjI2Ni4wMDcsMS4yMjMtMS4yMDksMi40MzEtMi40MzMsMy42NTgtMy42MzdDNC42MjcsMTQuODQxLDMuMzE4LDEzLjUyNSwyLDEyLjIxOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmU4ODVcXFwiLz48cGF0aCBkPVxcXCJNMTIuNywxMi4yMThjLjYxMywwLDEuMjI2LDAsMS44MzksMHEwLDMuNzgzLDAsNy41NjZjLS42MTEsMC0xLjIyMi4wMTItMS44MzItLjAwOCwwLTEuNjY0LDAtMy4zMjksMC00Ljk5NC0xLjYsMS42MDctMy4yMDksMy4yLTQuODExLDQuOC0uMDg5LjA4LS4xNjYuMjE3LS4zMDUuMTk0LS44MjQtLjAwNi0xLjY0OSwwLTIuNDc0LDBROC45MTYsMTYsMTIuNywxMi4yMThaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZlODg1XFxcIi8+PHBhdGggZD1cXFwiTTE0Ljk1OCwxMi4yMmMuNDctLjAwOS45MzksMCwxLjQwOSwwLC44MzYuODUzLDEuNjksMS42ODksMi41MzYsMi41MzJxMS4yNjgtMS4yNjcsMi41MzktMi41MzIuNywwLDEuNCwwLS4wMDgsMy43ODQsMCw3LjU2N2MtLjQ3MSwwLS45NDMuMDA2LTEuNDE0LDBxLjAwOC0yLjM4NywwLTQuNzczYy0uODQ0Ljg0My0xLjY3NiwxLjctMi41MjYsMi41MzYtLjg1Ni0uODM1LTEuNjg3LTEuNjk1LTIuNTMyLTIuNTQxLDAsMS41OTQtLjAwNiwzLjE4OC4wMDYsNC43ODEtLjQ3MiwwLS45NDMuMDA1LTEuNDE1LDBRMTQuOTU4LDE2LDE0Ljk1OCwxMi4yMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmU4ODVcXFwiLz48cGF0aCBkPVxcXCJNMjMuMjU5LDEyLjIxN2MuNDcyLDAsLjk0NC0uMDA3LDEuNDE2LDBxLS4wMDcsMy4wODMsMCw2LjE2NmMxLjI2LDAsMi41MjEsMCwzLjc4MiwwLC4wNjMuMDA2LjE0NC0uMDEyLjE5MS4wNDUuNDQ4LjQ1NC45MDcuOSwxLjM1MywxLjM1NHEtMy4zNzEuMDA3LTYuNzQxLDBRMjMuMjY3LDE2LDIzLjI1OSwxMi4yMTdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZlODg1XFxcIi8+XCIsXG5cdH0sXG5cdFwiWUFOR1wiOiB7XG5cdFx0Y29sb3VyOiBcIiMyMzFmMjBcIixcblx0XHRpY29uOiBcIjxwYXRoIGQ9XFxcIk04Ljg3NywyMy4xNTljMC01LjUzNSwzLjk5Mi03LjE2OCw3Ljg5NC03LjE2OCwzLjM1NywwLDUuOTg4LTMuODExLDUuOTg4LTYuNjI0LDAtMy42MjEtMi40ODctNS44MzEtNC44ODItNy4xMkExMy44ODEsMTMuODgxLDAsMSwwLDE0LjUsMjkuOEMxMC40OTEsMjguMjQ4LDguODc3LDI1LjMyNCw4Ljg3NywyMy4xNTlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE0LjQ4MiwyOS45MTdBMTQsMTQsMCwwLDEsMTYsMmExNC4xNTQsMTQuMTU0LDAsMCwxLDEuODkzLjEzMWwuMDQuMDEzYzIuMjU1LDEuMjEzLDQuOTQ0LDMuNDUyLDQuOTQ0LDcuMjIzLDAsMi43MTUtMi41NjQsNi43NDEtNi4xMDYsNi43NDEtMi45LDAtNy43NzYuOTE2LTcuNzc2LDcuMDUsMCwyLjAyMiwxLjQ1MSw0Ljk0Niw1LjU0Miw2LjUzMVpNMTYsMi4yMzZBMTMuNzY1LDEzLjc2NSwwLDAsMCwxMy42MzcsMjkuNTZjLTMuNTgxLTEuNjg0LTQuODc3LTQuNDQ3LTQuODc3LTYuNCwwLTYuNTc2LDUuNi03LjI4Niw4LjAxMi03LjI4NiwzLjQwNiwwLDUuODctMy44ODYsNS44Ny02LjUwNiwwLTMuNjQ1LTIuNjA2LTUuODItNC44LTcuMDA2QTEzLjkyOCwxMy45MjgsMCwwLDAsMTYsMi4yMzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTI5Ljg4MiwxNmExMy44ODIsMTMuODgyLDAsMCwwLTEyLTEzLjc1MmMyLjQsMS4yODksNC44ODIsMy41LDQuODgyLDcuMTIsMCwyLjgxMy0yLjYzMSw2LjYyNC01Ljk4OCw2LjYyNC0zLjksMC03Ljg5NCwxLjYzMy03Ljg5NCw3LjE2OCwwLDIuMTY2LDEuNjEzLDUuMDg5LDUuNjE4LDYuNjQxQTEzLjg3NSwxMy44NzUsMCwwLDAsMjkuODgyLDE2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk0xNiwzMGExNC4yLDE0LjIsMCwwLDEtMS41MTgtLjA4M2wtLjAzLS4wMDdjLTQuMi0xLjYyOC01LjY5My00LjY1NC01LjY5My02Ljc1LDAtNi41NzYsNS42LTcuMjg2LDguMDEyLTcuMjg2LDMuNDA2LDAsNS44Ny0zLjg4Niw1Ljg3LTYuNTA2LDAtMy42NTUtMi42MjEtNS44MzMtNC44Mi03LjAxNmwuMDcyLS4yMjFBMTQsMTQsMCwwLDEsMTYsMzBabS0xLjQ3Ny0uMzE2QTEzLjc1NiwxMy43NTYsMCwwLDAsMjkuNzY0LDE2LDEzLjgwNywxMy44MDcsMCwwLDAsMTguNSwyLjQ2NmMyLjExNSwxLjI3Miw0LjM3NywzLjQ0MSw0LjM3Nyw2LjksMCwyLjcxNS0yLjU2NCw2Ljc0MS02LjEwNiw2Ljc0MS0yLjksMC03Ljc3Ni45MTYtNy43NzYsNy4wNUM5LDI1LjE3OCwxMC40NDMsMjguMSwxNC41MjMsMjkuNjg0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxjaXJjbGUgY3g9XFxcIjE1Ljk0M1xcXCIgY3k9XFxcIjIyLjc4N1xcXCIgcj1cXFwiMS41MDZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48Y2lyY2xlIGN4PVxcXCIxNi4wMDdcXFwiIGN5PVxcXCI5LjE0MlxcXCIgcj1cXFwiMS41MDZcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz5cIixcblx0fSxcblx0XCJaaWdcIjoge1xuXHRcdGNvbG91cjogXCIjZjdhNDFkXCIsXG5cdFx0aWNvbjogXCI8cG9seWdvbiBwb2ludHM9XFxcIjUuNzMzIDE5LjczMSA1LjczMyAxMi4yNjQgOC41MzMgMTIuMjY0IDguNTMzIDguNTMxIDIgOC41MzEgMiAyMy40NjQgNS41NDcgMjMuNDY0IDguOTA3IDE5LjczMSA1LjczMyAxOS43MzFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmN2E0MWRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI2LjQ1MyA4LjUzMSAyMy4wOTMgMTIuMjY0IDI2LjI2NyAxMi4yNjQgMjYuMjY3IDE5LjczMSAyMy40NjcgMTkuNzMxIDIzLjQ2NyAyMy40NjQgMzAgMjMuNDY0IDMwIDguNTMxIDI2LjQ1MyA4LjUzMVxcXCIgc3R5bGU9XFxcImZpbGw6I2Y3YTQxZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjYuODc1IDYuNzA3IDIwLjUxMyA4LjUzMSA5LjQ2NyA4LjUzMSA5LjQ2NyAxMi4yNjQgMTYuODQ3IDEyLjI2NCA1LjExNSAyNS4yOTMgMTEuNDk3IDIzLjQ2NCAyMi41MzMgMjMuNDY0IDIyLjUzMyAxOS43MzEgMTUuMTQ4IDE5LjczMSAyNi44NzUgNi43MDdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmN2E0MWRcXFwiLz5cIixcblx0fVxufTtcblxuY29uc3QgRVhFQ1VURV9DT0RFX0xBTkdVQUdFX0FMSUFTRVM6IEFycmF5PHN0cmluZz4gPSBbXCJqYXZhc2NyaXB0XCIsXCJ0eXBlc2NyaXB0XCIsXCJiYXNoXCIsXCJjc2hhcnBcIixcIndvbGZyYW1cIixcIm5iXCIsXCJ3bFwiLFwiaHNcIixcInB5XCIsXCJzY3B0XCJdO1xuY29uc3QgRVhFQ1VURV9DT0RFX0NBTk9OSUNBTF9MQU5HVUFHRVM6IEFycmF5PHN0cmluZz4gPSBbXCJqc1wiLFwidHNcIixcImNzXCIsXCJsZWFuXCIsXCJsdWFcIixcInB5dGhvblwiLFwiY3BwXCIsXCJwcm9sb2dcIixcInNoZWxsXCIsXCJncm9vdnlcIixcInJcIixcImdvXCIsXCJydXN0XCIsXCJqYXZhXCIsXCJwb3dlcnNoZWxsXCIsXCJrb3RsaW5cIixcIm1hdGhlbWF0aWNhXCIsXCJoYXNrZWxsXCIsXCJzY2FsYVwiLFwicmFja2V0XCIsXCJmc2hhcnBcIixcImNcIixcImRhcnRcIixcInJ1YnlcIixcImJhdGNoXCIsXCJzcWxcIixcIm9jdGF2ZVwiLFwibWF4aW1hXCIsXCJhcHBsZXNjcmlwdFwiXTtcblxuZXhwb3J0IGNvbnN0IEVYRUNVVEVfQ09ERV9TVVBQT1JURURfTEFOR1VBR0VTID0gWy4uLkVYRUNVVEVfQ09ERV9MQU5HVUFHRV9BTElBU0VTLC4uLkVYRUNVVEVfQ09ERV9DQU5PTklDQUxfTEFOR1VBR0VTXTtcbiIsICJpbXBvcnQgeyBBcHAsIFBsdWdpblNldHRpbmdUYWIsIFNldHRpbmcsIE5vdGljZSwgVGV4dENvbXBvbmVudCwgRHJvcGRvd25Db21wb25lbnQsIFNsaWRlckNvbXBvbmVudCwgVG9nZ2xlQ29tcG9uZW50LCBFeHRyYUJ1dHRvbkNvbXBvbmVudCwgTWFya2Rvd25SZW5kZXJlciB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IFBpY2tyIGZyb20gXCJAc2ltb253ZXAvcGlja3JcIjtcbmltcG9ydCB7IENvbG9yVHJhbnNsYXRvciB9IGZyb20gXCJjb2xvcnRyYW5zbGF0b3JcIjtcblxuaW1wb3J0IENvZGVTdHlsZXJQbHVnaW4gZnJvbSBcIi4vbWFpblwiO1xuaW1wb3J0IHsgQ29sb3VyLCBDU1MsIEhFWCwgRGlzcGxheSwgQ29kZVN0eWxlclNldHRpbmdzLCBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBGT0xEX1BMQUNFSE9MREVSLCBQQVJBTUVURVJTLCBERUZBVUxUX1NFVFRJTkdTLCBMQU5HVUFHRV9OQU1FUywgTEFOR1VBR0VTLCBTRVRUSU5HU19TT1VSQ0VQQVRIX1BSRUZJWCwgRVhBTVBMRV9JTkxJTkVfQ09ERSwgRVhBTVBMRV9DT0RFQkxPQ0tfUEFSQU1FVEVSUywgRVhBTVBMRV9DT0RFQkxPQ0tfQ09OVEVOVCwgRVhDTFVERURfTEFOR1VBR0VTLCBXSElURUxJU1RfQ09ERUJMT0NLUywgSU5CVUlMVF9USEVNRVMsIENvZGVTdHlsZXJUaGVtZSB9IGZyb20gXCIuL1NldHRpbmdzXCI7XG5cbmNvbnN0IFNFVFRJTkdTX1BBR0VTOiBSZWNvcmQ8c3RyaW5nLHN0cmluZz4gPSB7XG5cdFwibWFpblwiOiBcIkNvcmUgU2V0dGluZ3NcIixcblx0XCJjb2RlYmxvY2tcIjogXCJDb2RlYmxvY2sgU3R5bGluZ1wiLFxuXHRcImlubGluZVwiOiBcIklubGluZSBDb2RlIFN0eWxpbmdcIixcbn07XG5jb25zdCBDT0RFQkxPQ0tfUEFHRVM6IFJlY29yZDxzdHJpbmcsc3RyaW5nPiA9IHtcblx0XCJib2R5XCI6IFwiQ29kZWJsb2NrIEJvZHlcIixcblx0XCJndXR0ZXJcIjogXCJDb2RlYmxvY2sgR3V0dGVyXCIsXG5cdFwiaGVhZGVyXCI6IFwiQ29kZWJsb2NrIEhlYWRlclwiLFxuXHRcImhpZ2hsaWdodFwiOiBcIkNvZGVibG9jayBIaWdobGlnaHRpbmdcIixcblx0XCJsYW5ndWFnZXNcIjogXCJDb2RlYmxvY2sgTGFuZ3VhZ2VzXCIsXG5cdC8vIFwicGx1Z2luc1wiOiBcIlBsdWdpbiBDb21wYXRpYmlsaXR5XCIsXG5cdFwiZXhhbXBsZVwiOiBcIkV4YW1wbGUgQ29kZWJsb2NrIENvbnRlbnRcIixcbn07XG5jb25zdCBESVNQTEFZX09QVElPTlM6IFJlY29yZDxEaXNwbGF5LHN0cmluZz4gPSB7XG5cdFwibm9uZVwiOiBcIk5ldmVyXCIsXG5cdFwiaWZfaGVhZGVyX3Nob3duXCI6IFwiSWYgSGVhZGVyIFNob3duXCIsXG5cdFwiYWx3YXlzXCI6IFwiQWx3YXlzXCIsXG59O1xuXG5leHBvcnQgY2xhc3MgU2V0dGluZ3NUYWIgZXh0ZW5kcyBQbHVnaW5TZXR0aW5nVGFiIHtcblx0cGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luO1xuXHRwaWNrcnM6IFJlY29yZDxzdHJpbmcsUGlja3JSZXNldHRhYmxlPjtcblx0cGFnZTogc3RyaW5nO1xuXHRjb2RlYmxvY2tQYWdlOiBzdHJpbmc7XG5cdGhpZGVBZHZhbmNlZDogYm9vbGVhbjtcblx0Y29kZWJsb2NrU2V0dGluZ0VsOiBIVE1MRWxlbWVudDtcblx0YWR2YW5jZWRTZXR0aW5nc0NvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cdGFsdGVybmF0aXZlSGlnaGxpZ2h0c0NvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cdGV4YW1wbGVDb2RlYmxvY2tDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXHRleGFtcGxlSW5saW5lQ29kZUNvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cdHdyYXBMaW5lc0NvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cdGxpbmVOdW1iZXJzQ29udGFpbmVyOiBIVE1MRWxlbWVudDtcblx0aGVhZGVyVGFnc0NvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cdGhlYWRlckljb25zQ29udGFpbmVyOiBIVE1MRWxlbWVudDtcblx0aW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cdGRpc2FibGVhYmxlQ29tcG9uZW50czogUmVjb3JkPHN0cmluZyxBcnJheTxUb2dnbGVDb21wb25lbnQgfCBTbGlkZXJDb21wb25lbnQgfCBUZXh0Q29tcG9uZW50IHwgRXh0cmFCdXR0b25Db21wb25lbnQ+PjtcblxuXHRjb25zdHJ1Y3RvcihhcHA6IEFwcCwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKSB7XG5cdFx0c3VwZXIoYXBwLCBwbHVnaW4pO1xuXHRcdHRoaXMucGx1Z2luID0gcGx1Z2luO1xuXHRcdHRoaXMucGlja3JzID0ge307XG5cdFx0dGhpcy5wYWdlID0gXCJtYWluXCI7XG5cdFx0dGhpcy5jb2RlYmxvY2tQYWdlID0gXCJib2R5XCI7XG5cdFx0dGhpcy5oaWRlQWR2YW5jZWQgPSB0cnVlO1xuXHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzID0ge307XG5cdH1cblxuXHQvKipcblx0ICogIEJ1aWxkcyB0aGUgaHRtbCBwYWdlIHRoYXQgaXMgc2hvd2VkIGluIHRoZSBzZXR0aW5ncy5cblx0ICovXG5cdGRpc3BsYXkoKSB7XG5cdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHMgPSB7XG5cdFx0XHRcImVkaXRvckFjdGl2ZUxpbmVIaWdobGlnaHRcIjogW10sXG5cdFx0XHRcImNvZGVibG9ja0FjdGl2ZUxpbmVIaWdobGlnaHRcIjogW10sXG5cdFx0XHRcImdyYWRpZW50SGlnaGxpZ2h0aW5nXCI6IFtdLFxuXHRcdFx0XCJsYW5ndWFnZUJvcmRlckNvbG91clwiOiBbXSxcblx0XHR9O1xuXHRcdHRoaXMuaGlkZUFkdmFuY2VkID0gdHJ1ZTtcblx0XHR0aGlzLmdlbmVyYXRlU2V0dGluZ3ModGhpcy5jb250YWluZXJFbCk7XG5cdH1cblxuXHQvLyBDcmVhdGUgU2V0dGluZ3MgUGFnZXNcblx0ZW1wdHlTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRjb250YWluZXJFbC5lbXB0eSgpO1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDFcIiwge3RleHQ6IFwiU2V0dGluZ3MgZm9yIHRoZSBDb2RlIFN0eWxlciBQbHVnaW4uXCJ9KTtcblx0fVxuXHRnZW5lcmF0ZVNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGlmICh0aGlzLnBhZ2UgPT09IFwibWFpblwiKVxuXHRcdFx0dGhpcy5kaXNwbGF5TWFpblNldHRpbmdzKGNvbnRhaW5lckVsKTtcblx0XHRlbHNlIGlmICh0aGlzLnBhZ2UgPT09IFwiY29kZWJsb2NrXCIpXG5cdFx0XHR0aGlzLmRpc3BsYXlDb2RlYmxvY2tTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdFx0ZWxzZSBpZiAodGhpcy5wYWdlID09PSBcImlubGluZVwiKVxuXHRcdFx0dGhpcy5kaXNwbGF5SW5saW5lQ29kZVNldHRpbmdzKGNvbnRhaW5lckVsKTtcblx0fVxuXHRkaXNwbGF5TWFpblNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdHRoaXMuZW1wdHlTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdFx0dGhpcy5nZW5lcmF0ZVRoZW1lU2V0dGluZ3MoY29udGFpbmVyRWwpO1xuXHRcdHRoaXMuZ2VuZXJhdGVTZXR0aW5nc1N3aXRjaGVyKGNvbnRhaW5lckVsKTtcblx0XHR0aGlzLmdlbmVyYXRlQ29yZVNldHRpbmdzKGNvbnRhaW5lckVsKTtcblx0XHR0aGlzLmdlbmVyYXRlQWR2YW5jZWRIZWFkaW5nKGNvbnRhaW5lckVsKTtcblx0XHR0aGlzLmFkdmFuY2VkU2V0dGluZ3NDb250YWluZXIgPSBjb250YWluZXJFbC5jcmVhdGVEaXYoKTtcblx0XHR0aGlzLmdlbmVyYXRlQWR2YW5jZWRTZXR0aW5ncygpO1xuXHRcdHRoaXMuZ2VuZXJhdGVEb25hdGlvbkZvb3Rlcihjb250YWluZXJFbCk7XG5cdH1cblx0ZGlzcGxheUNvZGVibG9ja1NldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdHRoaXMuZW1wdHlTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdFx0dGhpcy5nZW5lcmF0ZVRoZW1lU2V0dGluZ3MoY29udGFpbmVyRWwpO1xuXHRcdHRoaXMuZ2VuZXJhdGVTZXR0aW5nc1N3aXRjaGVyKGNvbnRhaW5lckVsKTtcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImhyXCIpO1xuXHRcdHRoaXMuZXhhbXBsZUNvZGVibG9ja0NvbnRhaW5lciA9IGNvbnRhaW5lckVsLmNyZWF0ZURpdigpO1xuXHRcdHRoaXMuZ2VuZXJhdGVFeGFtcGxlQ29kZWJsb2NrKCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUNvZGVibG9ja1N0eWxpbmdTd2l0Y2hlcihjb250YWluZXJFbCk7XG5cdFx0dGhpcy5jb2RlYmxvY2tTZXR0aW5nRWwgPSBjb250YWluZXJFbC5jcmVhdGVEaXYoKTtcblx0XHR0aGlzLmdlbmVyYXRlQ29kZWJsb2NrU2V0dGluZygpO1xuXG5cdH1cblx0ZGlzcGxheUlubGluZUNvZGVTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHR0aGlzLmVtcHR5U2V0dGluZ3MoY29udGFpbmVyRWwpO1xuXHRcdHRoaXMuZ2VuZXJhdGVUaGVtZVNldHRpbmdzKGNvbnRhaW5lckVsKTtcblx0XHR0aGlzLmdlbmVyYXRlU2V0dGluZ3NTd2l0Y2hlcihjb250YWluZXJFbCk7XG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoXCJoclwiKTtcblx0XHR0aGlzLmV4YW1wbGVJbmxpbmVDb2RlQ29udGFpbmVyID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUV4YW1wbGVJbmxpbmVDb2RlKCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUV4YW1wbGVJbmxpbmVDb2RlU2V0dGluZ3MoY29udGFpbmVyRWwpO1xuXHRcdHRoaXMuZ2VuZXJhdGVJbmxpbmVDb2RlU2V0dGluZ3MoY29udGFpbmVyRWwpO1xuXHR9XG5cblx0Ly8gQ3JlYXRlIFNldHRpbmdzIEdyb3Vwc1xuXHRnZW5lcmF0ZVNldHRpbmdzU3dpdGNoZXIoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkNob29zZSBTZXR0aW5ncyBQYWdlXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkNoYW5nZSBkcm9wZG93biB0byBtb2RpZnkgZGlmZmVyZW50IGdyb3VwcyBvZiBzZXR0aW5nc1wiKVxuXHRcdFx0LmFkZERyb3Bkb3duKChkcm9wZG93bikgPT4gZHJvcGRvd25cblx0XHRcdFx0LmFkZE9wdGlvbnMoU0VUVElOR1NfUEFHRVMpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBhZ2UpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWU6IHN0cmluZykgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGFnZSA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuZ2VuZXJhdGVTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdFx0XHRcdH0pKTtcblx0fVxuXHRnZW5lcmF0ZUNvZGVibG9ja1N0eWxpbmdTd2l0Y2hlcihjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiQ2hvb3NlIENvZGVibG9jayBTZXR0aW5nc1wiKVxuXHRcdFx0LnNldERlc2MoXCJDaGFuZ2UgZHJvcGRvd24gdG8gbW9kaWZ5IHN0eWxlcyBhbmQgc2V0dGluZ3Mgb2YgZGlmZmVyZW50IGNvZGVibG9jayBzZWN0aW9uc1wiKVxuXHRcdFx0LmFkZERyb3Bkb3duKChkcm9wZG93bikgPT4gZHJvcGRvd25cblx0XHRcdFx0LmFkZE9wdGlvbnMoQ09ERUJMT0NLX1BBR0VTKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5jb2RlYmxvY2tQYWdlKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlOiBzdHJpbmcpID0+IHtcblx0XHRcdFx0XHR0aGlzLmNvZGVibG9ja1BhZ2UgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLmdlbmVyYXRlQ29kZWJsb2NrU2V0dGluZygpO1xuXHRcdFx0XHR9KSk7XG5cdH1cblx0Z2VuZXJhdGVDb2RlYmxvY2tTZXR0aW5nKCkge1xuXHRcdHRoaXMuY29kZWJsb2NrU2V0dGluZ0VsLmVtcHR5KCk7XG5cdFx0aWYgKHRoaXMuY29kZWJsb2NrUGFnZSA9PT0gXCJib2R5XCIpXG5cdFx0XHR0aGlzLmdlbmVyYXRlQ29kZWJsb2NrQm9keVNldHRpbmdzKHRoaXMuY29kZWJsb2NrU2V0dGluZ0VsKTtcblx0XHRlbHNlIGlmICh0aGlzLmNvZGVibG9ja1BhZ2UgPT09IFwiZ3V0dGVyXCIpXG5cdFx0XHR0aGlzLmdlbmVyYXRlQ29kZWJsb2NrR3V0dGVyU2V0dGluZ3ModGhpcy5jb2RlYmxvY2tTZXR0aW5nRWwpO1xuXHRcdGVsc2UgaWYgKHRoaXMuY29kZWJsb2NrUGFnZSA9PT0gXCJoZWFkZXJcIilcblx0XHRcdHRoaXMuZ2VuZXJhdGVDb2RlYmxvY2tIZWFkZXJTZXR0aW5ncyh0aGlzLmNvZGVibG9ja1NldHRpbmdFbCk7XG5cdFx0ZWxzZSBpZiAodGhpcy5jb2RlYmxvY2tQYWdlID09PSBcImhpZ2hsaWdodFwiKVxuXHRcdFx0dGhpcy5nZW5lcmF0ZUNvZGVibG9ja0hpZ2hsaWdodFNldHRpbmdzKHRoaXMuY29kZWJsb2NrU2V0dGluZ0VsKTtcblx0XHRlbHNlIGlmICh0aGlzLmNvZGVibG9ja1BhZ2UgPT09IFwibGFuZ3VhZ2VzXCIpXG5cdFx0XHR0aGlzLmdlbmVyYXRlQ29kZWJsb2NrTGFuZ3VhZ2VTZXR0aW5ncyh0aGlzLmNvZGVibG9ja1NldHRpbmdFbCk7XG5cdFx0ZWxzZSBpZiAodGhpcy5jb2RlYmxvY2tQYWdlID09PSBcInBsdWdpbnNcIilcblx0XHRcdHRoaXMuZ2VuZXJhdGVQbHVnaW5Db21wYXRpYmlsaXR5U2V0dGluZ3ModGhpcy5jb2RlYmxvY2tTZXR0aW5nRWwpO1xuXHRcdGVsc2UgaWYgKHRoaXMuY29kZWJsb2NrUGFnZSA9PT0gXCJleGFtcGxlXCIpXG5cdFx0XHR0aGlzLmdlbmVyYXRlRXhhbXBsZUNvZGVibG9ja1NldHRpbmdzKHRoaXMuY29kZWJsb2NrU2V0dGluZ0VsKTtcblx0fVxuXHRnZW5lcmF0ZUNvcmVTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiU3R5bGUgQ29kZSBvbiBFeHBvcnRcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZW5hYmxlZCwgc3R5bGluZyB3aWxsIGJlIGFwcGxpZWQgd2hlbiBleHBvcnRpbmcgdG8gUERGLlwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5kZWNvcmF0ZVByaW50KVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuZGVjb3JhdGVQcmludCA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pKTtcblx0fVxuXHRnZW5lcmF0ZVRoZW1lU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoXCJoMlwiLCB7dGV4dDogXCJUaGVtZSBTZXR0aW5nc1wifSk7XG5cdFx0bGV0IHRoZW1lRHJvcGRvd246IERyb3Bkb3duQ29tcG9uZW50O1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJTZWxlY3QgVGhlbWVcIilcblx0XHRcdC5hZGREcm9wZG93bigoZHJvcGRvd24pID0+IHtcblx0XHRcdFx0dGhlbWVEcm9wZG93biA9IGRyb3Bkb3duO1xuXHRcdFx0XHR0aGlzLnVwZGF0ZURyb3Bkb3duKHRoZW1lRHJvcGRvd24sdGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xuXHRcdFx0XHR0aGVtZURyb3Bkb3duLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWUgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdKTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdHRoaXMuZGlzcGxheSgpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pXG5cdFx0XHQuYWRkRXh0cmFCdXR0b24oYnV0dG9uID0+IHtcblx0XHRcdFx0YnV0dG9uLnNldFRvb2x0aXAoXCJVcGRhdGUgdGhlbWVcIik7XG5cdFx0XHRcdGJ1dHRvbi5zZXRJY29uKFwic2F2ZVwiKTtcblx0XHRcdFx0YnV0dG9uLm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXSA9IHN0cnVjdHVyZWRDbG9uZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUpO1xuXHRcdFx0XHRcdHRoaXMudXBkYXRlQWx0ZXJuYXRpdmVIaWdobGlnaHRzKCk7XG5cdFx0XHRcdFx0bmV3IE5vdGljZShgJHt0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lfSB0aGVtZSBzYXZlZCBzdWNjZXNzZnVsbHkhYCk7IC8vTk9TT05BUlxuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSlcblx0XHRcdC5hZGRFeHRyYUJ1dHRvbihidXR0b24gPT4ge1xuXHRcdFx0XHRidXR0b24uc2V0VG9vbHRpcChcIkRlbGV0ZSB0aGVtZVwiKTtcblx0XHRcdFx0YnV0dG9uLnNldEljb24oXCJ0cmFzaFwiKTtcblx0XHRcdFx0YnV0dG9uLm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lLnRyaW0oKS5sZW5ndGggPT09IDApXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiU2VsZWN0IGEgdGhlbWUgZmlyc3QgdG8gZGVsZXRlXCIpOyAvL05PU09OQVJcblx0XHRcdFx0XHRlbHNlIGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lIGluIERFRkFVTFRfU0VUVElOR1MudGhlbWVzKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShcIllvdSBjYW5ub3QgZGVsZXRlIHRoZSBkZWZhdWx0IHRoZW1lc1wiKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRkZWxldGUgdGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdO1xuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShgJHt0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lfSB0aGVtZSBkZWxldGVkIHN1Y2Nlc3NmdWxseSFgKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lID0gXCJEZWZhdWx0XCI7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdKTtcblx0XHRcdFx0XHRcdHRoaXMudXBkYXRlRHJvcGRvd24odGhlbWVEcm9wZG93bix0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdFx0dGhpcy5kaXNwbGF5KCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdGxldCBuZXdUaGVtZU5hbWU6IFRleHRDb21wb25lbnQ7XG5cdFx0bGV0IG5ld1RoZW1lRGVmYXVsdDogVG9nZ2xlQ29tcG9uZW50O1xuXHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lID0gXCJcIjtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiQWRkIE5ldyBUaGVtZVwiKVxuXHRcdFx0LnNldERlc2MoXCJDcmVhdGUgYSBuZXcgdGhlbWUgZnJvbSB0aGUgY3VycmVudCBzZXR0aW5ncy5cIilcblx0XHRcdC5hZGRUZXh0KHRleHQgPT4ge25ld1RoZW1lTmFtZSA9IHRleHRcblx0XHRcdFx0LnNldFBsYWNlaG9sZGVyKFwiTmV3IHRoZW1lIG5hbWVcIilcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWUgPSB2YWx1ZTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LmFkZEV4dHJhQnV0dG9uKGJ1dHRvbiA9PiB7XG5cdFx0XHRcdGJ1dHRvbi5zZXRUb29sdGlwKFwiU2F2ZSB0aGVtZVwiKTtcblx0XHRcdFx0YnV0dG9uLnNldEljb24oXCJwbHVzXCIpO1xuXHRcdFx0XHRidXR0b24ub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0aWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lLnRyaW0oKS5sZW5ndGggPT09IDApXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiU2V0IGEgbmFtZSBmb3IgeW91ciB0aGVtZVwiKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0ZWxzZSBpZiAodGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWUgaW4gREVGQVVMVF9TRVRUSU5HUy50aGVtZXMpXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiWW91IGNhbid0IG92ZXJ3cml0ZSB0aGUgZGVmYXVsdCB0aGVtZXNcIik7IC8vTk9TT05BUlxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0aWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lIGluIHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lcykge1xuXHRcdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWVdID0gc3RydWN0dXJlZENsb25lKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZSk7XG5cdFx0XHRcdFx0XHRcdG5ldyBOb3RpY2UoYCR7dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWV9IHRoZW1lIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5IWApOyAvL05PU09OQVJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdUaGVtZV0gPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lKTtcblx0XHRcdFx0XHRcdFx0bmV3IE5vdGljZShgJHt0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdUaGVtZX0gdGhlbWUgc2F2ZWQgc3VjY2Vzc2Z1bGx5IWApOyAvL05PU09OQVJcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWUgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdUaGVtZTtcblx0XHRcdFx0XHRcdHRoaXMudXBkYXRlRHJvcGRvd24odGhlbWVEcm9wZG93bix0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XG5cdFx0XHRcdFx0XHR0aGlzLnVwZGF0ZUFsdGVybmF0aXZlSGlnaGxpZ2h0cygpO1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWUgPSBcIlwiO1xuXHRcdFx0XHRcdFx0bmV3VGhlbWVOYW1lLnNldFZhbHVlKFwiXCIpO1xuXHRcdFx0XHRcdFx0bmV3VGhlbWVEZWZhdWx0LnNldFZhbHVlKGZhbHNlKTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHR9XG5cdGdlbmVyYXRlQ29kZWJsb2NrQm9keVNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDNcIiwge3RleHQ6IFwiQ29kZWJsb2NrIEFwcGVhcmFuY2VcIn0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJDb2RlYmxvY2sgQmFja2dyb3VuZCBDb2xvdXJcIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxcblx0XHRcdFx0XCJjb2RlYmxvY2tfYmFja2dyb3VuZFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmNvZGVibG9jay5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmNvZGVibG9jay5iYWNrZ3JvdW5kQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiQ29kZWJsb2NrIFRleHQgQ29sb3VyXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiY29kZWJsb2NrX3RleHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5jb2RlYmxvY2sudGV4dENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5jb2RlYmxvY2sudGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkNvZGVibG9jayBDdXJ2YXR1cmVcIilcblx0XHRcdC5zZXREZXNjKFwiRGV0ZXJtaW5lcyBob3cgcm91bmRlZCB0aGUgY29kZWJsb2NrcyBhcHBlYXIgaW4gcGl4ZWxzLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0bGV0IHJlc2V0dGFibGVTbGlkZXI6IFNsaWRlckNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRTbGlkZXIoKHNsaWRlcikgPT4ge3Jlc2V0dGFibGVTbGlkZXIgPSBzbGlkZXJcblx0XHRcdFx0XHQuc2V0TGltaXRzKDAsMjUsMSlcblx0XHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5jdXJ2YXR1cmUpXG5cdFx0XHRcdFx0LnNldER5bmFtaWNUb29sdGlwKClcblx0XHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLmN1cnZhdHVyZSA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBjdXJ2YXR1cmVcIilcblx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLmN1cnZhdHVyZSA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5jb2RlYmxvY2suY3VydmF0dXJlO1xuXHRcdFx0XHRcdFx0cmVzZXR0YWJsZVNsaWRlci5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLmN1cnZhdHVyZSk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJMYW5ndWFnZSBDb2xvdXJlZCBCb3JkZXJzXCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGVuYWJsZWQsIGxhbmd1YWdlcyB3aXRoIGljb25zIGRpc3BsYXkgYSBsZWZ0IGJvcmRlciB3aXRoIHRoZSBjb2xvdXIgb2YgdGhlIGljb24uIFRoZSBzbGlkZXIgc2V0cyB0aGUgd2lkdGggb2YgdGhlIGJvcmRlci5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyQ29sb3VyKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyQ29sb3VyID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJsYW5ndWFnZUJvcmRlckNvbG91clwiXS5mb3JFYWNoKGNvbXBvbmVudCA9PiB7Y29tcG9uZW50LnNldERpc2FibGVkKCF2YWx1ZSk7fSk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSkpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoMCwyMCwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQubGFuZ3VhZ2VCb3JkZXJXaWR0aClcblx0XHRcdFx0XHQuc2V0RGlzYWJsZWQoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlckNvbG91cilcblx0XHRcdFx0XHQuc2V0RHluYW1pY1Rvb2x0aXAoKVxuXHRcdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlcldpZHRoID0gdmFsdWU7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImxhbmd1YWdlQm9yZGVyQ29sb3VyXCJdLnB1c2gocmVzZXR0YWJsZVNsaWRlcik7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRsZXQgcmVzZXRCdXR0b246IEV4dHJhQnV0dG9uQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtyZXNldEJ1dHRvbiA9IGJ1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0RGlzYWJsZWQoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlckNvbG91cilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBjb2xvdXIgc3RvcFwiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlcldpZHRoID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLnNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyV2lkdGg7XG5cdFx0XHRcdFx0XHRyZXNldHRhYmxlU2xpZGVyLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlcldpZHRoKTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzW1wibGFuZ3VhZ2VCb3JkZXJDb2xvdXJcIl0ucHVzaChyZXNldEJ1dHRvbik7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIlVud3JhcCBjb2RlYmxvY2sgbGluZXNcIilcblx0XHRcdC5zZXREZXNjKFwiQ2hvb3NlIHdoZXRoZXIgdG8gdW53cmFwIGxpbmVzIGluIHJlYWRpbmcgbW9kZVwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLnVud3JhcExpbmVzKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay51bndyYXBMaW5lcyA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuZ2VuZXJhdGVXcmFwTGluZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3ModHJ1ZSk7XG5cdFx0XHRcdH0pKTtcblx0XHR0aGlzLndyYXBMaW5lc0NvbnRhaW5lciA9IGNvbnRhaW5lckVsLmNyZWF0ZURpdigpO1xuXHRcdHRoaXMuZ2VuZXJhdGVXcmFwTGluZVNldHRpbmdzKCk7XG5cdH1cblx0Z2VuZXJhdGVXcmFwTGluZVNldHRpbmdzKCkge1xuXHRcdHRoaXMud3JhcExpbmVzQ29udGFpbmVyLmVtcHR5KCk7XG5cdFx0aWYgKCF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLnVud3JhcExpbmVzKVxuXHRcdFx0cmV0dXJuO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMud3JhcExpbmVzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJXcmFwIExpbmVzIG9uIENsaWNrXCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGVuYWJsZWQsIGluIHJlYWRpbmcgbW9kZSwgaG9sZGluZyBjbGljayBvbiBhIGNvZGVibG9jayB3aWxsIHdyYXAgdGhlIGxpbmVzIGZvciBiZXR0ZXIgdmlzaWJpbGl0eS5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay53cmFwTGluZXNBY3RpdmUpXG5cdFx0XHRcdC5zZXREaXNhYmxlZCghdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay51bndyYXBMaW5lcylcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2sud3JhcExpbmVzQWN0aXZlID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3ModHJ1ZSk7XG5cdFx0XHRcdH0pKTtcblx0fVxuXHRnZW5lcmF0ZUNvZGVibG9ja0d1dHRlclNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDNcIiwge3RleHQ6IFwiR3V0dGVyIEFwcGVhcmFuY2VcIn0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJFbmFibGUgTGluZSBOdW1iZXJzXCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGRpc2FibGVkLCB0aGUgYmVsb3cgc2V0dGluZ3MgYXJlIGRpc2FibGVkIHRvby5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5saW5lTnVtYmVycylcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2subGluZU51bWJlcnMgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLmdlbmVyYXRlQ29kZWJsb2NrTGluZU51bWJlclNldHRpbmdzKCk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3ModHJ1ZSk7XG5cdFx0XHRcdH0pKTtcblx0XHR0aGlzLmxpbmVOdW1iZXJzQ29udGFpbmVyID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUNvZGVibG9ja0xpbmVOdW1iZXJTZXR0aW5ncygpO1xuXHR9XG5cdGdlbmVyYXRlQ29kZWJsb2NrTGluZU51bWJlclNldHRpbmdzKCkge1xuXHRcdHRoaXMubGluZU51bWJlcnNDb250YWluZXIuZW1wdHkoKTtcblx0XHRpZiAoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2subGluZU51bWJlcnMpXG5cdFx0XHRyZXR1cm47XG5cdFx0bmV3IFNldHRpbmcodGhpcy5saW5lTnVtYmVyc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiR3V0dGVyIEJhY2tncm91bmQgQ29sb3VyXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMubGluZU51bWJlcnNDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XCJndXR0ZXJfYmFja2dyb3VuZFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmd1dHRlci5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmd1dHRlci5iYWNrZ3JvdW5kQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmxpbmVOdW1iZXJzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJMaW5lIE51bWJlciBDb2xvdXJcIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5saW5lTnVtYmVyc0NvbnRhaW5lcixzZXR0aW5nLFxuXHRcdFx0XHRcImxpbmVfbnVtYmVyXCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uZ3V0dGVyLnRleHRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uZ3V0dGVyLnRleHRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMubGluZU51bWJlcnNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIkhpZ2hsaWdodCBMaW5lIE51bWJlcnNcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZW5hYmxlZCwgaGlnaGxpZ2h0cyB3aWxsIGFsc28gaGlnaGxpZ2h0IHRoZSBsaW5lIG51bWJlcnMuXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5ndXR0ZXIuaGlnaGxpZ2h0KVxuXHRcdFx0XHQuc2V0RGlzYWJsZWQoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2subGluZU51bWJlcnMpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuZ3V0dGVyLmhpZ2hsaWdodCA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pKTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmxpbmVOdW1iZXJzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmRpY2F0ZSBDdXJyZW50IExpbmUgTnVtYmVyXCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGVuYWJsZWQsIHRoZSBjdXJyZW50IGxpbmUgbnVtYmVyIGluIGNvZGVibG9ja3Mgd2lsbCBiZSBpbmRpY2F0ZWQgd2l0aCBhIHNlcGFyYXRlIGNvbG91ci5cIilcblx0XHRcdC5zZXRDbGFzcyhcImNvZGUtc3R5bGVyLXNwYWNlZFwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuZ3V0dGVyLmFjdGl2ZUxpbmUpXG5cdFx0XHRcdC5zZXREaXNhYmxlZCghdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5saW5lTnVtYmVycylcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5ndXR0ZXIuYWN0aXZlTGluZSA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pXG5cdFx0XHQpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMubGluZU51bWJlcnNDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XCJhY3RpdmVfbGluZV9udW1iZXJcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5ndXR0ZXIuYWN0aXZlVGV4dENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5ndXR0ZXIuYWN0aXZlVGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdH1cblx0Z2VuZXJhdGVDb2RlYmxvY2tIZWFkZXJTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImgzXCIsIHt0ZXh0OiBcIkhlYWRlciBBcHBlYXJhbmNlXCJ9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiSGVhZGVyIEJhY2tncm91bmQgQ29sb3VyXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiaGVhZGVyX2JhY2tncm91bmRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIuYmFja2dyb3VuZENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIuYmFja2dyb3VuZENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkhlYWRlciBGb250IFNpemVcIilcblx0XHRcdC5zZXREZXNjKFwiU2V0IHRoZSBmb250IHNpemUgZm9yIGhlYWRlciBsYW5ndWFnZSB0YWdzIGFuZCB0aXRsZXMuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoNiwzMiwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmZvbnRTaXplKVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5mb250U2l6ZSA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBmb250IHNpemVcIilcblx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmZvbnRTaXplID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLnNldHRpbmdzLmhlYWRlci5mb250U2l6ZTtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5mb250U2l6ZSk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJIZWFkZXIgVGl0bGUgVGV4dCBTdHlsaW5nXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlN0eWxlIHRoZSBoZWFkZXIgdGl0bGUgdGV4dCB1c2luZyBib2xkIGFuZCBpdGFsaWMgdG9nZ2xlcywgYnkgc2V0dGluZyBhIGZvbnQgb3IgYnkgc2V0dGluZyBhIHRleHQgY29sb3VyLlwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4ge3RvZ2dsZVxuXHRcdFx0XHQuc2V0VG9vbHRpcChcIlRvZ2dsZSBib2xkIHRpdGxlIHRleHRcIilcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIudGl0bGUudGV4dEJvbGQpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLnRpdGxlLnRleHRCb2xkID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4ge3RvZ2dsZVxuXHRcdFx0XHQuc2V0VG9vbHRpcChcIlRvZ2dsZSBpdGFsaWMgdGl0bGUgdGV4dFwiKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci50aXRsZS50ZXh0SXRhbGljKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci50aXRsZS50ZXh0SXRhbGljID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LmFkZFRleHQodGV4dCA9PiB7dGV4dFxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoXCJGb250XCIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLnRpdGxlLnRleHRGb250KVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci50aXRsZS50ZXh0Rm9udCA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSlcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxcblx0XHRcdFx0XCJoZWFkZXJfdGl0bGVfdGV4dFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci50aXRsZS50ZXh0Q29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci50aXRsZS50ZXh0Q29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRsZXQgZm9sZFBsYWNlaG9sZGVyVGltZW91dDogTm9kZUpTLlRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT57fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkZvbGQgUGxhY2Vob2xkZXIgVGV4dFwiKVxuXHRcdFx0LnNldERlc2MoXCJUaXRsZSBwbGFjZWhvbGRlciB0ZXh0IGZvciBmb2xkZWQgY29kZSB3aGVuIG5vIHRpdGxlIHBhcmFtZXRlciBpcyBzZXQuXCIpXG5cdFx0XHQuYWRkVGV4dCh0ZXh0ID0+IHRleHRcblx0XHRcdFx0LnNldFBsYWNlaG9sZGVyKEZPTERfUExBQ0VIT0xERVIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmZvbGRQbGFjZWhvbGRlcilcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIuZm9sZFBsYWNlaG9sZGVyID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHRjbGVhclRpbWVvdXQoZm9sZFBsYWNlaG9sZGVyVGltZW91dCk7XG5cdFx0XHRcdFx0Zm9sZFBsYWNlaG9sZGVyVGltZW91dCA9IHNldFRpbWVvdXQoKCk9PnRoaXMucmVyZW5kZXIoKSwxMDAwKTtcblx0XHRcdFx0fSkpO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJIZWFkZXIgU2VwYXJhdG9yIENvbG91clwiKVxuXHRcdFx0LnNldERlc2MoXCJDb2xvdXIgb2YgdGhlIGxpbmUgc2VwYXJhdGluZyB0aGUgY29kZWJsb2NrIGhlYWRlciBhbmQgdGhlIGNvZGVibG9jay5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxcblx0XHRcdFx0XCJoZWFkZXJfc2VwYXJhdG9yXCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGVhZGVyLmxpbmVDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGVhZGVyLmxpbmVDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoXCJoNVwiLCB7dGV4dDogXCJIZWFkZXIgTGFuZ3VhZ2UgVGFnIEFwcGVhcmFuY2VcIn0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJEaXNwbGF5IEhlYWRlciBMYW5ndWFnZSBUYWdzXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkRldGVybWluZSB3aGVuIHRvIHNob3cgbGFuZ3VhZ2UgdGFncyBpbiB0aGUgaGVhZGVyLiBcXFwiVGl0bGUgT25seVxcXCIgd2lsbCBvbmx5IHNob3cgbGFuZ3VhZ2UgdGFncyB3aGVuIHRoZSB0aXRsZSBwYXJhbWV0ZXIgaXMgc2V0LlwiKVxuXHRcdFx0LmFkZERyb3Bkb3duKChkcm9wZG93bikgPT4gZHJvcGRvd25cblx0XHRcdFx0LmFkZE9wdGlvbnMoRElTUExBWV9PUFRJT05TKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy5kaXNwbGF5KVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlOiBEaXNwbGF5KSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy5kaXNwbGF5ID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5nZW5lcmF0ZUhlYWRlclRhZ1NldHRpbmdzKCk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3ModHJ1ZSk7XG5cdFx0XHRcdH0pKTtcblx0XHR0aGlzLmhlYWRlclRhZ3NDb250YWluZXIgPSBjb250YWluZXJFbC5jcmVhdGVEaXYoKTtcblx0XHR0aGlzLmdlbmVyYXRlSGVhZGVyVGFnU2V0dGluZ3MoKTtcblxuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDVcIiwge3RleHQ6IFwiSGVhZGVyIExhbmd1YWdlIEljb24gQXBwZWFyYW5jZVwifSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkRpc3BsYXkgSGVhZGVyIExhbmd1YWdlIEljb25zXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkRldGVybWluZSB3aGVuIHRvIHNob3cgbGFuZ3VhZ2UgaWNvbnMgd2hlcmUgYXZhaWxhYmxlLiBcXFwiVGl0bGUgT25seVxcXCIgd2lsbCBvbmx5IHNob3cgbGFuZ3VhZ2UgdGFncyB3aGVuIHRoZSB0aXRsZSBwYXJhbWV0ZXIgaXMgc2V0LlwiKVxuXHRcdFx0LmFkZERyb3Bkb3duKChkcm9wZG93bikgPT4gZHJvcGRvd25cblx0XHRcdFx0LmFkZE9wdGlvbnMoRElTUExBWV9PUFRJT05TKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheSlcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZTogRGlzcGxheSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXkgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLmdlbmVyYXRlSGVhZGVySWNvblNldHRpbmdzKCk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3ModHJ1ZSk7XG5cdFx0XHRcdH0pKTtcblx0XHR0aGlzLmhlYWRlckljb25zQ29udGFpbmVyID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUhlYWRlckljb25TZXR0aW5ncygpO1xuXHR9XG5cdGdlbmVyYXRlSGVhZGVyVGFnU2V0dGluZ3MoKSB7XG5cdFx0dGhpcy5oZWFkZXJUYWdzQ29udGFpbmVyLmVtcHR5KCk7XG5cdFx0aWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheSA9PT0gXCJub25lXCIpXG5cdFx0XHRyZXR1cm47XG5cdFx0bmV3IFNldHRpbmcodGhpcy5oZWFkZXJUYWdzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJIZWFkZXIgTGFuZ3VhZ2UgVGFnIEJhY2tncm91bmQgQ29sb3VyXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMuaGVhZGVyVGFnc0NvbnRhaW5lcixzZXR0aW5nLFxuXHRcdFx0XHRcImhlYWRlcl9sYW5ndWFnZV90YWdfYmFja2dyb3VuZFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci5sYW5ndWFnZVRhZy5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci5sYW5ndWFnZVRhZy5iYWNrZ3JvdW5kQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmhlYWRlclRhZ3NDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIkhlYWRlciBMYW5ndWFnZSBUYWcgVGV4dCBTdHlsaW5nXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlN0eWxlIHRoZSBoZWFkZXIgbGFuZ3VhZ2UgdGFnIHRleHQgdXNpbmcgYm9sZCBhbmQgaXRhbGljIHRvZ2dsZXMsIGJ5IHNldHRpbmcgYSBmb250IG9yIGJ5IHNldHRpbmcgYSB0ZXh0IGNvbG91ci5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VG9vbHRpcChcIlRvZ2dsZSBib2xkIGxhbmd1YWdlIHRhZyB0ZXh0XCIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLnRleHRCb2xkKVxuXHRcdFx0XHQuc2V0RGlzYWJsZWQodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy5kaXNwbGF5PT09XCJub25lXCIpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLnRleHRCb2xkID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSkpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFRvb2x0aXAoXCJUb2dnbGUgaXRhbGljIGxhbmd1YWdlIHRhZyB0ZXh0XCIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLnRleHRJdGFsaWMpXG5cdFx0XHRcdC5zZXREaXNhYmxlZCh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLmRpc3BsYXk9PT1cIm5vbmVcIilcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEl0YWxpYyA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pKVxuXHRcdFx0LmFkZFRleHQodGV4dCA9PiB0ZXh0XG5cdFx0XHRcdC5zZXRQbGFjZWhvbGRlcihcIkZvbnRcIilcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEZvbnQpXG5cdFx0XHRcdC5zZXREaXNhYmxlZCh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLmRpc3BsYXk9PT1cIm5vbmVcIilcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEZvbnQgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KSlcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5oZWFkZXJUYWdzQ29udGFpbmVyLHNldHRpbmcsXG5cdFx0XHRcdFwiaGVhZGVyX2xhbmd1YWdlX3RhZ190ZXh0XCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGVhZGVyLmxhbmd1YWdlVGFnLnRleHRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGVhZGVyLmxhbmd1YWdlVGFnLnRleHRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHR9XG5cdGdlbmVyYXRlSGVhZGVySWNvblNldHRpbmdzKCkge1xuXHRcdHRoaXMuaGVhZGVySWNvbnNDb250YWluZXIuZW1wdHkoKTtcblx0XHRpZiAodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheSA9PT0gXCJub25lXCIpXG5cdFx0XHRyZXR1cm47XG5cdFx0bmV3IFNldHRpbmcodGhpcy5oZWFkZXJJY29uc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiTGFuZ3VhZ2UgSWNvbnMgQ29sb3VyZWRcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZGlzYWJsZWQsIGxhbmd1YWdlIGljb25zIHdpbGwgYmUgYmxhY2sgYW5kIHdoaXRlLlwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5Q29sb3VyKVxuXHRcdFx0XHQuc2V0RGlzYWJsZWQodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheT09PVwibm9uZVwiKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheUNvbG91ciA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pKTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmhlYWRlckljb25zQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJMYW5ndWFnZSBJY29uIFNpemVcIilcblx0XHRcdC5zZXREZXNjKFwiU2V0IHRoZSBzaXplIG9mIHRoZSBkaXNwbGF5ZWQgbGFuZ3VhZ2UgaWNvbnMuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoMTAsNDAsMSlcblx0XHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmljb25TaXplKVxuXHRcdFx0XHRcdC5zZXREaXNhYmxlZCh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5PT09XCJub25lXCIpXG5cdFx0XHRcdFx0LnNldER5bmFtaWNUb29sdGlwKClcblx0XHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQuaWNvblNpemUgPSB2YWx1ZTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IGJ1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0RGlzYWJsZWQodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheT09PVwibm9uZVwiKVxuXHRcdFx0XHRcdC5zZXRUb29sdGlwKFwiUmVzdG9yZSBkZWZhdWx0IGljb24gc2l6ZVwiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5pY29uU2l6ZSA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5hZHZhbmNlZC5pY29uU2l6ZTtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmljb25TaXplKTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSkpO1xuXHRcdFx0fSk7XG5cdH1cblx0Z2VuZXJhdGVDb2RlYmxvY2tIaWdobGlnaHRTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImgzXCIsIHt0ZXh0OiBcIkhpZ2hsaWdodGluZyBBcHBlYXJhbmNlXCJ9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiQ29kZWJsb2NrIEFjdGl2ZSBMaW5lIEhpZ2hsaWdodFwiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBlbmFibGVkLCBoaWdobGlnaHRzIHRoZSBhY3RpdmUgbGluZSBpbnNpZGUgY29kZWJsb2Nrcy5cIilcblx0XHRcdC5zZXRDbGFzcyhcImNvZGUtc3R5bGVyLXNwYWNlZFwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4ge3JldHVybiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oaWdobGlnaHRzLmFjdGl2ZUNvZGVibG9ja0xpbmUpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGlnaGxpZ2h0cy5hY3RpdmVDb2RlYmxvY2tMaW5lID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJjb2RlYmxvY2tBY3RpdmVMaW5lSGlnaGxpZ2h0XCJdLmZvckVhY2goY29tcG9uZW50ID0+IHtjb21wb25lbnQuc2V0RGlzYWJsZWQoIXZhbHVlKTt9KTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiY29kZWJsb2NrX2FjdGl2ZV9saW5lX2hpZ2hsaWdodFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhpZ2hsaWdodHMuYWN0aXZlQ29kZWJsb2NrTGluZUNvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oaWdobGlnaHRzLmFjdGl2ZUNvZGVibG9ja0xpbmVDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHRcdCgpID0+ICF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGlnaGxpZ2h0cy5hY3RpdmVDb2RlYmxvY2tMaW5lLFxuXHRcdFx0KTt9KTtcblx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImNvZGVibG9ja0FjdGl2ZUxpbmVIaWdobGlnaHRcIl0ucHVzaCh0aGlzLnBpY2tyc1tcImNvZGVibG9ja19hY3RpdmVfbGluZV9oaWdobGlnaHRcIl0ucmVzZXRCdXR0b24pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJEZWZhdWx0IEhpZ2hsaWdodCBDb2xvdXJcIilcblx0XHRcdC5zZXREZXNjKFwiVXNlZCBieSB0aGUgJ2hsJyBwYXJhbWV0ZXIuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiZGVmYXVsdF9oaWdobGlnaHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oaWdobGlnaHRzLmRlZmF1bHRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5kZWZhdWx0Q29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRsZXQgbmV3SGlnaGxpZ2h0VGV4dDogVGV4dENvbXBvbmVudDtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiQWRkIEFsdGVybmF0aXZlIEhpZ2hsaWdodFwiKVxuXHRcdFx0LnNldERlc2MoXCJEZWZpbmUgYSBuZXcgYWx0ZXJuYXRpdmUgaGlnaGxpZ2h0IG5hbWUuIFRoZSBjb2xvdXIgY2FuIGJlIG1vZGlmaWVkIGFmdGVyIGl0IGlzIGFkZGVkLlwiKVxuXHRcdFx0LmFkZFRleHQodmFsdWUgPT4ge25ld0hpZ2hsaWdodFRleHQgPSB2YWx1ZVxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoXCJlLmcuIGVycm9yLCB3YXJuXCIpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHQgPSB2YWx1ZTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LmFkZEJ1dHRvbigoYnV0dG9uKSA9PiB7XG5cdFx0XHRcdGJ1dHRvbi5zZXRCdXR0b25UZXh0KFwiQWRkXCIpO1xuXHRcdFx0XHRidXR0b24ub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0aWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodC50cmltKCkgPT09IFwiXCIpXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiUGxlYXNlIGVudGVyIGEgY29sb3VyIG5hbWUuXCIpOyAvL05PU09OQVJcblx0XHRcdFx0XHRlbHNlIGlmICghL15bXlxcZF1cXHcqJC8udGVzdCh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHQpKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShgXCIke3RoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodH1cIiBpcyBub3QgYSB2YWxpZCBjb2xvdXIgbmFtZS5gKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0ZWxzZSBpZiAodGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3SGlnaGxpZ2h0LnRyaW0oKS50b0xvd2VyQ2FzZSgpID09PSBcImhsXCIpXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiQ2Fubm90IG92ZXJyaWRlIHRoZSBkZWZhdWx0IGhpZ2hsaWdodCBwYXJhbWV0ZXIuXCIpOyAvL05PU09OQVJcblx0XHRcdFx0XHRlbHNlIGlmIChQQVJBTUVURVJTLmluY2x1ZGVzKHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodC50cmltKCkudG9Mb3dlckNhc2UoKSkpXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiQ2Fubm90IHVzZSBvdGhlciBkZWZhdWx0IHBhcmFtZXRlcnMuXCIpOyAvL05PU09OQVJcblx0XHRcdFx0XHRlbHNlIGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHQgaW4gdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMubGlnaHQuaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHMpXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKGBBIGhpZ2hsaWdodCB3aXRoIHRoZSBuYW1lIFwiJHt0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHR9XCIgYWxyZWFkeSBleGlzdHMuYCk7IC8vTk9TT05BUlxuXHRcdFx0XHRcdFx0Ly9UT0RPIChAbWF5dXJhbmt2KSBGdXR1cmU6IEZvY3VzIG9uIGV4aXN0aW5nIGhpZ2hsaWdodGVyIC0gYHJlbmRlck1hdGNoZXNgXG5cdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25zdCBuZXdDb2xvdXIgPSBnZXRSYW5kb21Db2xvdXIoKTtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5jb2xvdXJzLmxpZ2h0LmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzW3RoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodF0gPSBuZXdDb2xvdXI7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuY29sb3Vycy5kYXJrLmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzW3RoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodF0gPSBuZXdDb2xvdXI7XG5cdFx0XHRcdFx0XHR0aGlzLnVwZGF0ZUFsdGVybmF0aXZlSGlnaGxpZ2h0cygpO1xuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShgQWRkZWQgaGlnaGxpZ2h0IFwiJHt0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHR9XCIuYCk7IC8vTk9TT05BUlxuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3SGlnaGxpZ2h0ID0gXCJcIjtcblx0XHRcdFx0XHRcdG5ld0hpZ2hsaWdodFRleHQuc2V0VmFsdWUoXCJcIik7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncyh0cnVlKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0dGhpcy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNDb250YWluZXIgPSBjb250YWluZXJFbC5jcmVhdGVEaXYoKTtcblx0XHR0aGlzLnVwZGF0ZUFsdGVybmF0aXZlSGlnaGxpZ2h0cygpO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJHcmFkaWVudCBIaWdobGlnaHRpbmdcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZW5hYmxlZCwgaGlnaGxpZ2h0cyBmYWRlIGF3YXkgdG8gdGhlIHJpZ2h0LiBUaGUgc2xpZGVyIHNldHMgdGhlIGdyYWRpZW50IGNvbG91ciBzdG9wIGFzIGEgcGVyY2VudGFnZS5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0cylcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5ncmFkaWVudEhpZ2hsaWdodHMgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImdyYWRpZW50SGlnaGxpZ2h0aW5nXCJdLmZvckVhY2goY29tcG9uZW50ID0+IHtjb21wb25lbnQuc2V0RGlzYWJsZWQoIXZhbHVlKTt9KTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KSlcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7XG5cdFx0XHRcdGxldCByZXNldHRhYmxlU2xpZGVyOiBTbGlkZXJDb21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkU2xpZGVyKChzbGlkZXIpID0+IHtyZXNldHRhYmxlU2xpZGVyID0gc2xpZGVyXG5cdFx0XHRcdFx0LnNldExpbWl0cygwLDEwMCwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSgrdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0c0NvbG91clN0b3Auc2xpY2UoMCwtMSkpXG5cdFx0XHRcdFx0LnNldERpc2FibGVkKCF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQuZ3JhZGllbnRIaWdobGlnaHRzKVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0c0NvbG91clN0b3AgPSBgJHt2YWx1ZX0lYDtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzW1wiZ3JhZGllbnRIaWdobGlnaHRpbmdcIl0ucHVzaChyZXNldHRhYmxlU2xpZGVyKTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdGxldCByZXNldEJ1dHRvbjogRXh0cmFCdXR0b25Db21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge3Jlc2V0QnV0dG9uID0gYnV0dG9uXG5cdFx0XHRcdFx0LnNldEljb24oXCJyZXNldFwiKVxuXHRcdFx0XHRcdC5zZXREaXNhYmxlZCghdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0cylcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBjb2xvdXIgc3RvcFwiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5ncmFkaWVudEhpZ2hsaWdodHNDb2xvdXJTdG9wID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLnNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0c0NvbG91clN0b3A7XG5cdFx0XHRcdFx0XHRyZXNldHRhYmxlU2xpZGVyLnNldFZhbHVlKCt0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQuZ3JhZGllbnRIaWdobGlnaHRzQ29sb3VyU3RvcC5zbGljZSgwLC0xKSk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImdyYWRpZW50SGlnaGxpZ2h0aW5nXCJdLnB1c2gocmVzZXRCdXR0b24pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHR9XG5cdGdlbmVyYXRlQ29kZWJsb2NrTGFuZ3VhZ2VTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRsZXQgZXhjbHVkZVRpbWVvdXQ6IE5vZGVKUy5UaW1lb3V0ID0gc2V0VGltZW91dCgoKT0+e30pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJFeGNsdWRlIExhbmd1YWdlc1wiKVxuXHRcdFx0LnNldERlc2MoXCJEZWZpbmUgbGFuZ3VhZ2VzIGluIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgd2hpY2ggdGhlIHBsdWdpbiBzaG91bGQgbm90IGRlY29yYXRlLiBZb3UgY2FuIHVzZSBhIHdpbGRjYXJkICgqKSBlaXRoZXIgYXQgdGhlIGJlZ2lubmluZywgb3IgYXQgdGhlIGVuZC4gRm9yIGV4YW1wbGU6IGFkLSogd2lsbCBleGNsdWRlIGNvZGVibG9ja3Mgd2hlcmUgdGhlIGxhbmd1YWdlIHN0YXJ0cyB3aXRoIGFkLSBlLmcuOiBhZC1pbmZvLCBhZC1lcnJvciBldGMuXCIpXG5cdFx0XHQuYWRkVGV4dCh0ZXh0ID0+IHRleHRcblx0XHRcdFx0LnNldFBsYWNlaG9sZGVyKGBlLmcuICR7RVhDTFVERURfTEFOR1VBR0VTfSBldGMuYClcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmV4Y2x1ZGVkTGFuZ3VhZ2VzKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuZXhjbHVkZWRMYW5ndWFnZXMgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdGNsZWFyVGltZW91dChleGNsdWRlVGltZW91dCk7XG5cdFx0XHRcdFx0ZXhjbHVkZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT50aGlzLnJlcmVuZGVyKCksMTAwMCk7XG5cdFx0XHRcdH0pKTtcblx0XHRsZXQgd2hpdGVsaXN0VGltZW91dDogTm9kZUpTLlRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT57fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIldoaXRlbGlzdGVkIFByb2Nlc3NlZCBDb2RlYmxvY2tzXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkRlZmluZSBsYW5ndWFnZXMgaW4gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCB3aGljaCB0aGUgcGx1Z2luIHNob3VsZCBzdHlsZSBkZXNwaXRlIGJlaW5nIHByb2Nlc3NlZCBieSBhbm90aGVyIHBsdWdpbi4gWW91IGNhbiB1c2UgYSB3aWxkY2FyZCAoKikgZWl0aGVyIGF0IHRoZSBiZWdpbm5pbmcsIG9yIGF0IHRoZSBlbmQuIEZvciBleGFtcGxlOiBhZC0qIHdpbGwgZXhjbHVkZSBjb2RlYmxvY2tzIHdoZXJlIHRoZSBsYW5ndWFnZSBzdGFydHMgd2l0aCBhZC0gZS5nLjogYWQtaW5mbywgYWQtZXJyb3IgZXRjLlwiKVxuXHRcdFx0LmFkZFRleHQodGV4dCA9PiB0ZXh0XG5cdFx0XHRcdC5zZXRQbGFjZWhvbGRlcihgZS5nLiAke1dISVRFTElTVF9DT0RFQkxPQ0tTfSBldGMuYClcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3QpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5wcm9jZXNzZWRDb2RlYmxvY2tzV2hpdGVsaXN0ID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHRjbGVhclRpbWVvdXQod2hpdGVsaXN0VGltZW91dCk7XG5cdFx0XHRcdFx0d2hpdGVsaXN0VGltZW91dCA9IHNldFRpbWVvdXQoKCk9PnRoaXMucmVyZW5kZXIoKSwxMDAwKTtcblx0XHRcdFx0fSkpO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJSZWRpcmVjdCBMYW5ndWFnZSBTZXR0aW5nc1wiKVxuXHRcdFx0LnNldERlc2MoXCJVc2UgdGhpcyB0ZXh0Ym94IHRvIHJlZGlyZWN0IHNwZWNpZmljIGxhbmd1YWdlIGNvbG91cnMgYW5kIGljb25zIGFzIGEgSlNPTiB3aXRoIGxhbmd1YWdlIG5hbWVzIGFzIGtleXMgYW5kIGVpdGhlciBhIGNvbG91ciBrZXksIGFuIGljb24ga2V5IG9yIGJvdGggYXMgdGhlIHZhbHVlIGZvciBhIGdpdmVuIGxhbmd1YWdlLiBDb2xvdXJzIHNob3VsZCBiZSBwYXNzZWQgYXMgQ1NTIGNvbG91cnMgYW5kIGljb25zIHNob3VsZCBiZSBwYXNzZWQgYXMgYSBzdHJpbmcgb2YgdGhlIGluc2lkZSBvZiBhbiBzdmcgZWxlbWVudC4gVGhpcyBzZXR0aW5nIGlzIHRoZW1lIGluZGVwZW5kZW50LlwiKVxuXHRcdFx0LnNldENsYXNzKFwiY29kZS1zdHlsZXItc2V0dGluZy10ZXh0LWFyZWFcIilcblx0XHRcdC5hZGRUZXh0QXJlYSh0ZXh0QXJlYSA9PiB0ZXh0QXJlYVxuXHRcdFx0XHQuc2V0VmFsdWUoSlNPTi5zdHJpbmdpZnkodGhpcy5wbHVnaW4uc2V0dGluZ3MucmVkaXJlY3RMYW5ndWFnZXMpPT09XCJ7fVwiP1wiXCI6SlNPTi5zdHJpbmdpZnkodGhpcy5wbHVnaW4uc2V0dGluZ3MucmVkaXJlY3RMYW5ndWFnZXMsbnVsbCw0KSlcblx0XHRcdFx0LnNldFBsYWNlaG9sZGVyKEpTT04uc3RyaW5naWZ5KHt0b21sOiB7Y29sb3VyOiBcIiMwMTIzNDVcIiwgaWNvbjogTEFOR1VBR0VTW1wiQVBMXCJdLmNvbG91cn19LG51bGwsNCkpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpPT57XG5cdFx0XHRcdFx0aWYgKHZhbHVlID09PSBcIlwiKSB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5yZWRpcmVjdExhbmd1YWdlcyA9IHt9O1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MucmVkaXJlY3RMYW5ndWFnZXMgPSBKU09OLnBhcnNlKHZhbHVlKTtcblx0XHRcdFx0XHRcdFx0dGhpcy5yZWRpcmVjdExhbmd1YWdlcygpO1xuXHRcdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdFx0fSBjYXRjaCB7XG5cdFx0XHRcdFx0XHRcdG5ldyBOb3RpY2UoXCJJbnZhbGlkIEpTT05cIik7IC8vTk9TT05BUlxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQvL1RPRE8gKEBtYXl1cmFua3YpIFJlLXJlbmRlciAoVGVzdClcblx0XHRcdFx0fSkpO1xuXHR9XG5cdGdlbmVyYXRlSW5saW5lQ29kZVNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDNcIiwge3RleHQ6IFwiSW5saW5lIENvZGUgQXBwZWFyYW5jZVwifSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIlN5bnRheCBIaWdobGlnaHQgSW5saW5lIENvZGVcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZW5hYmxlZCwgaW4gcmVhZGluZyBtb2RlLCBpbmxpbmUgY29kZSB3aWxsIGJlIHN5bnRheCBoaWdobGlnaHRlZCBiYXNlZCBvbiBhIGxhbmd1YWdlIHNldCB3aXRoIGB7bGFuZ3VhZ2V9IGhpZ2hsaWdodGVkX2lubGluZV9jb2RlYC4gU2VlIHRoZSBSRUFETUUgZm9yIG1vcmUgaW5mb3JtYXRpb24uXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuc3ludGF4SGlnaGxpZ2h0KVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5zeW50YXhIaWdobGlnaHQgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncyh0cnVlKTtcblx0XHRcdFx0fSkpO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJTdHlsZSBJbmxpbmUgQ29kZVwiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBlbmFibGVkLCBpbmxpbmUgY29kZSB3aWxsIGJlIHN0eWxlZC5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5zdHlsZSlcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuc3R5bGUgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLmdlbmVyYXRlSW5saW5lQ29kZVN0eWxlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KSk7XG5cdFx0dGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUlubGluZUNvZGVTdHlsZVNldHRpbmdzKCk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBUaXRsZSBDb2xvdXJcIilcblx0XHRcdC5zZXREZXNjKFwiVGhlIHRleHQgY29sb3VyIG9mIGlubGluZSBjb2RlIHRpdGxlcy5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyLHNldHRpbmcsXG5cdFx0XHRcdFwidGl0bGVfdGV4dFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmlubGluZS50aXRsZVRleHRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaW5saW5lLnRpdGxlVGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBUaXRsZSBGb250IFdlaWdodFwiKVxuXHRcdFx0LnNldERlc2MoXCJEZXRlcm1pbmVzIGhvdyBib2xkIGlubGluZSBjb2RlIHRpdGxlcyBhcHBlYXIuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoMSw5LDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUudGl0bGVGb250V2VpZ2h0KVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS50aXRsZUZvbnRXZWlnaHQgPSB2YWx1ZTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtidXR0b25cblx0XHRcdFx0XHQuc2V0SWNvbihcInJlc2V0XCIpXG5cdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJSZXN0b3JlIGRlZmF1bHQgZm9udCB3ZWlnaHRcIilcblx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnRpdGxlRm9udFdlaWdodCA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5pbmxpbmUudGl0bGVGb250V2VpZ2h0O1xuXHRcdFx0XHRcdFx0cmVzZXR0YWJsZVNsaWRlci5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnRpdGxlRm9udFdlaWdodCk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHR9XG5cdGdlbmVyYXRlSW5saW5lQ29kZVN0eWxlU2V0dGluZ3MoKSB7XG5cdFx0dGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyLmVtcHR5KCk7XG5cdFx0aWYgKCF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnN0eWxlKVxuXHRcdFx0cmV0dXJuO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSW5saW5lIENvZGUgQmFja2dyb3VuZCBDb2xvdXJcIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyLHNldHRpbmcsXG5cdFx0XHRcdFwiaW5saW5lX2JhY2tncm91bmRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5pbmxpbmUuYmFja2dyb3VuZENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5pbmxpbmUuYmFja2dyb3VuZENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBUZXh0IENvbG91clwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbix0aGlzLmlubGluZUNvZGVTdHlsZXNDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XCJpbmxpbmVfdGV4dFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmlubGluZS50ZXh0Q29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmlubGluZS50ZXh0Q29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmlubGluZUNvZGVTdHlsZXNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIklubGluZSBDb2RlIEFjdGl2ZSBUZXh0IENvbG91clwiKVxuXHRcdFx0LnNldERlc2MoXCJUaGUgdGV4dCBjb2xvdXIgd2hlbiBlZGl0aW5nIGlubGluZSBjb2RlLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbix0aGlzLmlubGluZUNvZGVTdHlsZXNDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XCJpbmxpbmVfYWN0aXZlX3RleHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5pbmxpbmUuYWN0aXZlVGV4dENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5pbmxpbmUuYWN0aXZlVGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBGb250IFdlaWdodFwiKVxuXHRcdFx0LnNldERlc2MoXCJEZXRlcm1pbmVzIGhvdyBib2xkIGlubGluZSBjb2RlIGFwcGVhcnMuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoMSw5LDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuZm9udFdlaWdodClcblx0XHRcdFx0XHQuc2V0RHluYW1pY1Rvb2x0aXAoKVxuXHRcdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuZm9udFdlaWdodCA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBmb250IHdlaWdodFwiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuZm9udFdlaWdodCA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5pbmxpbmUuZm9udFdlaWdodDtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5mb250V2VpZ2h0KTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBDdXJ2YXR1cmVcIilcblx0XHRcdC5zZXREZXNjKFwiRGV0ZXJtaW5lcyBob3cgcm91bmRlZCBpbmxpbmUgY29kZSBhcHBlYXIgaW4gcGl4ZWxzLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0bGV0IHJlc2V0dGFibGVTbGlkZXI6IFNsaWRlckNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRTbGlkZXIoKHNsaWRlcikgPT4ge3Jlc2V0dGFibGVTbGlkZXIgPSBzbGlkZXJcblx0XHRcdFx0XHQuc2V0TGltaXRzKDAsMTIsMSlcblx0XHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5jdXJ2YXR1cmUpXG5cdFx0XHRcdFx0LnNldER5bmFtaWNUb29sdGlwKClcblx0XHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLmN1cnZhdHVyZSA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBjdXJ2YXR1cmVcIilcblx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLmN1cnZhdHVyZSA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5pbmxpbmUuY3VydmF0dXJlO1xuXHRcdFx0XHRcdFx0cmVzZXR0YWJsZVNsaWRlci5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLmN1cnZhdHVyZSk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSW5saW5lIENvZGUgVmVydGljYWwgUGFkZGluZ1wiKVxuXHRcdFx0LnNldERlc2MoXCJEZXRlcm1pbmVzIGhvdyBtdWNoIHZlcnRpY2FsIGlubmVyIHBhZGRpbmcgaW4gcGl4ZWxzIGlubGluZSBjb2RlIGhhcy5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7XG5cdFx0XHRcdGxldCByZXNldHRhYmxlU2xpZGVyOiBTbGlkZXJDb21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkU2xpZGVyKChzbGlkZXIpID0+IHtyZXNldHRhYmxlU2xpZGVyID0gc2xpZGVyXG5cdFx0XHRcdFx0LnNldExpbWl0cygwLDEwLDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ1ZlcnRpY2FsKVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5wYWRkaW5nVmVydGljYWwgPSB2YWx1ZTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtidXR0b25cblx0XHRcdFx0XHQuc2V0SWNvbihcInJlc2V0XCIpXG5cdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJSZXN0b3JlIGRlZmF1bHQgdmVydGljYWwgcGFkZGluZ1wiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ1ZlcnRpY2FsID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLnNldHRpbmdzLmlubGluZS5wYWRkaW5nVmVydGljYWw7XG5cdFx0XHRcdFx0XHRyZXNldHRhYmxlU2xpZGVyLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ1ZlcnRpY2FsKTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBIb3Jpem9udGFsIFBhZGRpbmdcIilcblx0XHRcdC5zZXREZXNjKFwiRGV0ZXJtaW5lcyBob3cgbXVjaCBob3Jpem9udGFsIGlubmVyIHBhZGRpbmcgaW4gcGl4ZWxzIGlubGluZSBjb2RlIGhhcy5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7XG5cdFx0XHRcdGxldCByZXNldHRhYmxlU2xpZGVyOiBTbGlkZXJDb21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkU2xpZGVyKChzbGlkZXIpID0+IHtyZXNldHRhYmxlU2xpZGVyID0gc2xpZGVyXG5cdFx0XHRcdFx0LnNldExpbWl0cygwLDEwLDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ0hvcml6b250YWwpXG5cdFx0XHRcdFx0LnNldER5bmFtaWNUb29sdGlwKClcblx0XHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnBhZGRpbmdIb3Jpem9udGFsID0gdmFsdWU7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0c2V0dGluZy5hZGRFeHRyYUJ1dHRvbigoYnV0dG9uKSA9PiB7YnV0dG9uXG5cdFx0XHRcdFx0LnNldEljb24oXCJyZXNldFwiKVxuXHRcdFx0XHRcdC5zZXRUb29sdGlwKFwiUmVzdG9yZSBkZWZhdWx0IGhvcml6b250YWwgcGFkZGluZ1wiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ0hvcml6b250YWwgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0uc2V0dGluZ3MuaW5saW5lLnBhZGRpbmdIb3Jpem9udGFsO1xuXHRcdFx0XHRcdFx0cmVzZXR0YWJsZVNsaWRlci5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnBhZGRpbmdIb3Jpem9udGFsKTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBIb3Jpem9udGFsIE1hcmdpblwiKVxuXHRcdFx0LnNldERlc2MoXCJEZXRlcm1pbmVzIGhvdyBtdWNoIGhvcml6b250YWwgb3V0ZXIgbWFyZ2luIGlzIGFkZGVkIHRvIHRoZSBpbmxpbmUgY29kZSBpbiBwaXhlbHMuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoMCw4LDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUubWFyZ2luSG9yaXpvbnRhbClcblx0XHRcdFx0XHQuc2V0RHluYW1pY1Rvb2x0aXAoKVxuXHRcdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUubWFyZ2luSG9yaXpvbnRhbCA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBob3Jpem9udGFsIG1hcmdpblwiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUubWFyZ2luSG9yaXpvbnRhbCA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5pbmxpbmUubWFyZ2luSG9yaXpvbnRhbDtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5tYXJnaW5Ib3Jpem9udGFsKTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdH1cblx0Z2VuZXJhdGVBZHZhbmNlZEhlYWRpbmcoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0Y29uc3QgYWR2YW5jZWRTZXR0aW5nc0hlYWRpbmcgPSBjb250YWluZXJFbC5jcmVhdGVFbChcImgyXCIsIHt0ZXh0OiBcIkFkdmFuY2VkIFNldHRpbmdzXCIsIGNsczogYGFkdmFuY2VkLXNldHRpbmdzLWhlYWRlciR7dGhpcy5oaWRlQWR2YW5jZWQ/XCIgaGVhZGVyLWZvbGRlZFwiOlwiXCJ9YH0pO1xuXHRcdGFkdmFuY2VkU2V0dGluZ3NIZWFkaW5nLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCgpPT57XG5cdFx0XHR0aGlzLmhpZGVBZHZhbmNlZCA9ICF0aGlzLmhpZGVBZHZhbmNlZDtcblx0XHRcdGFkdmFuY2VkU2V0dGluZ3NIZWFkaW5nLmNsYXNzTGlzdC50b2dnbGUoXCJoZWFkZXItZm9sZGVkXCIsdGhpcy5oaWRlQWR2YW5jZWQpO1xuXHRcdFx0dGhpcy5nZW5lcmF0ZUFkdmFuY2VkU2V0dGluZ3MoKTtcblx0XHR9KTtcblx0fVxuXHRnZW5lcmF0ZUFkdmFuY2VkU2V0dGluZ3MoKSB7XG5cdFx0dGhpcy5hZHZhbmNlZFNldHRpbmdzQ29udGFpbmVyLmVtcHR5KCk7XG5cdFx0aWYgKHRoaXMuaGlkZUFkdmFuY2VkKVxuXHRcdFx0cmV0dXJuO1xuXHRcdHRoaXMuZ2VuZXJhdGVJbnRlcmZhY2VTZXR0aW5ncyh0aGlzLmFkdmFuY2VkU2V0dGluZ3NDb250YWluZXIpO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuYWR2YW5jZWRTZXR0aW5nc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiRWRpdG9yIEFjdGl2ZSBMaW5lIEhpZ2hsaWdodFwiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBlbmFibGVkLCBoaWdobGlnaHRzIHRoZSBhY3RpdmUgbGluZSBvdXRzaWRlIGNvZGVibG9ja3MuXCIpXG5cdFx0XHQuc2V0Q2xhc3MoXCJjb2RlLXN0eWxlci1zcGFjZWRcIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VG9vbHRpcChcIlRvZ2dsZSBlZGl0b3IgYWN0aXZlIGxpbmUgaGlnaGxpZ2h0aW5nXCIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGlnaGxpZ2h0cy5hY3RpdmVFZGl0b3JMaW5lKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlRWRpdG9yTGluZSA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzW1wiZWRpdG9yQWN0aXZlTGluZUhpZ2hsaWdodFwiXS5mb3JFYWNoKGNvbXBvbmVudCA9PiB7Y29tcG9uZW50LnNldERpc2FibGVkKCF2YWx1ZSk7fSk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSkpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMuYWR2YW5jZWRTZXR0aW5nc0NvbnRhaW5lcixzZXR0aW5nLFxuXHRcdFx0XHRcImVkaXRvcl9hY3RpdmVfbGluZV9oaWdobGlnaHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oaWdobGlnaHRzLmFjdGl2ZUVkaXRvckxpbmVDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5hY3RpdmVFZGl0b3JMaW5lQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0XHQoKSA9PiAhdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlRWRpdG9yTGluZSxcblx0XHRcdCk7fSk7XG5cdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJlZGl0b3JBY3RpdmVMaW5lSGlnaGxpZ2h0XCJdLnB1c2godGhpcy5waWNrcnNbXCJlZGl0b3JfYWN0aXZlX2xpbmVfaGlnaGxpZ2h0XCJdLnJlc2V0QnV0dG9uKTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmFkdmFuY2VkU2V0dGluZ3NDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIlJlc2V0IGluYnVpbHQgdGhlbWVzXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlRoaXMgd2lsbCByZXR1cm4gYWxsIGluYnVpbHQgdGhlbWVzIHRvIHRoZSBwbHVnaW4gZGVmYXVsdHNcIilcblx0XHRcdC5hZGRCdXR0b24oYnV0dG9uID0+IGJ1dHRvblxuXHRcdFx0XHQuc2V0QnV0dG9uVGV4dChcIlJlc2V0XCIpXG5cdFx0XHRcdC5vbkNsaWNrKCgpPT57XG5cdFx0XHRcdFx0T2JqZWN0LmVudHJpZXMoSU5CVUlMVF9USEVNRVMpLmZvckVhY2goKFt0aGVtZU5hbWUsdGhlbWVdOiBbc3RyaW5nLENvZGVTdHlsZXJUaGVtZV0pID0+IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGVtZU5hbWVdID0gc3RydWN0dXJlZENsb25lKHRoZW1lKSk7XG5cdFx0XHRcdFx0aWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWUgaW4gSU5CVUlMVF9USEVNRVMpXG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdKTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncyh0cnVlKTtcblx0XHRcdFx0fSkpO1xuXHR9XG5cdGdlbmVyYXRlSW50ZXJmYWNlU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkJ1dHRvbiBDb2xvdXJcIilcblx0XHRcdC5zZXREZXNjKFwiVXNlZCBmb3IgVUkgYnV0dG9ucyBsaWtlIHRoZSBjb3B5IGNvZGUgYnV0dG9uLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbixjb250YWluZXJFbCxzZXR0aW5nLFxuXHRcdFx0XHRcImRlZmF1bHRfaGlnaGxpZ2h0XCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uYWR2YW5jZWQuYnV0dG9uQ29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmFkdmFuY2VkLmJ1dHRvbkNvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkJ1dHRvbiBBY3RpdmUgQ29sb3VyXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkNvbG91ciBidXR0b25zIHVzZSB3aGVuIGFjdGl2YXRlZC5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxcblx0XHRcdFx0XCJkZWZhdWx0X2hpZ2hsaWdodFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmFkdmFuY2VkLmJ1dHRvbkFjdGl2ZUNvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5hZHZhbmNlZC5idXR0b25BY3RpdmVDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHR9XG5cdGdlbmVyYXRlUGx1Z2luQ29tcGF0aWJpbGl0eVNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZVNwYW4oXCJOZWVkcyBjb21wbGV0aW5nXCIpOyAvL1RPRE8gKEBtYXl1cmFua3YpIENvbXBsZXRlXG5cdFx0Ly8gRXhlY3V0ZSBDb2RlIFNldHRpbmdzXG5cdH1cblx0Z2VuZXJhdGVFeGFtcGxlQ29kZWJsb2NrU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkV4YW1wbGUgQ29kZWJsb2NrIFBhcmFtZXRlciBTdHJpbmdcIilcblx0XHRcdC5zZXREZXNjKFwiUGFyYW1ldGVycyBhbmQgbGFuZ3VhZ2Ugd2hpY2ggd291bGQgZm9sbG93IGNvZGVibG9jayBkZWxpbWl0ZXIuXCIpXG5cdFx0XHQuc2V0Q2xhc3MoXCJjb2RlLXN0eWxlci1zZXR0aW5nLXRleHQtd2lkZVwiKVxuXHRcdFx0LmFkZFRleHQodGV4dCA9PiB0ZXh0XG5cdFx0XHRcdC5zZXRQbGFjZWhvbGRlcihFWEFNUExFX0NPREVCTE9DS19QQVJBTUVURVJTKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuZXhhbXBsZUNvZGVibG9ja1BhcmFtZXRlcnMpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5leGFtcGxlQ29kZWJsb2NrUGFyYW1ldGVycyA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0dGhpcy5nZW5lcmF0ZUV4YW1wbGVDb2RlYmxvY2soKTtcblx0XHRcdFx0fSkpO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJFeGFtcGxlIENvZGVibG9jayBQYXJhbWV0ZXIgU3RyaW5nXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkNvbnRlbnQgZm9yIGV4YW1wbGUgY29kZWJsb2NrLlwiKVxuXHRcdFx0LnNldENsYXNzKFwiY29kZS1zdHlsZXItc2V0dGluZy10ZXh0LWFyZWFcIilcblx0XHRcdC5hZGRUZXh0QXJlYSh0ZXh0QXJlYSA9PiB0ZXh0QXJlYVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuZXhhbXBsZUNvZGVibG9ja0NvbnRlbnQpXG5cdFx0XHRcdC5zZXRQbGFjZWhvbGRlcihFWEFNUExFX0NPREVCTE9DS19DT05URU5UKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKT0+e1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmV4YW1wbGVDb2RlYmxvY2tDb250ZW50ID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR0aGlzLmdlbmVyYXRlRXhhbXBsZUNvZGVibG9jaygpO1xuXHRcdFx0XHR9KSk7XG5cdH1cblx0Z2VuZXJhdGVFeGFtcGxlQ29kZWJsb2NrKCkge1xuXHRcdHRoaXMuZXhhbXBsZUNvZGVibG9ja0NvbnRhaW5lci5lbXB0eSgpO1xuXHRcdGNvbnN0IGNvZGVibG9ja1N0cmluZyA9IFwiYGBgYGBgYFwiK3RoaXMucGx1Z2luLnNldHRpbmdzLmV4YW1wbGVDb2RlYmxvY2tQYXJhbWV0ZXJzK1wiXFxuXCIrdGhpcy5wbHVnaW4uc2V0dGluZ3MuZXhhbXBsZUNvZGVibG9ja0NvbnRlbnQrXCJcXG5gYGBgYGBgXCI7XG5cdFx0TWFya2Rvd25SZW5kZXJlci5yZW5kZXIodGhpcy5wbHVnaW4uYXBwLGNvZGVibG9ja1N0cmluZyx0aGlzLmV4YW1wbGVDb2RlYmxvY2tDb250YWluZXIsU0VUVElOR1NfU09VUkNFUEFUSF9QUkVGSVgrY29kZWJsb2NrU3RyaW5nLHRoaXMucGx1Z2luKTtcblx0XHR0aGlzLmV4YW1wbGVDb2RlYmxvY2tDb250YWluZXIucXVlcnlTZWxlY3RvcihcInByZSA+IGJ1dHRvbi5jb3B5LWNvZGUtYnV0dG9uXCIpPy5jbGFzc0xpc3Q/LmFkZChcImNvZGUtc3R5bGVyLXNldHRpbmdzLWJ1dHRvblwiKTtcblx0fVxuXHRnZW5lcmF0ZUV4YW1wbGVJbmxpbmVDb2RlU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIklubGluZSBDb2RlIEV4YW1wbGVcIilcblx0XHRcdC5zZXREZXNjKFwiVGV4dCB0byByZW5kZXIgYXMgZXhhbXBsZSBpbnNpZGUgY29kZSBkZWxpbWl0ZXJzLlwiKVxuXHRcdFx0LnNldENsYXNzKFwiY29kZS1zdHlsZXItc2V0dGluZy10ZXh0LXdpZGVcIilcblx0XHRcdC5hZGRUZXh0KHRleHQgPT4gdGV4dFxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoRVhBTVBMRV9JTkxJTkVfQ09ERSlcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmV4YW1wbGVJbmxpbmVDb2RlKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuZXhhbXBsZUlubGluZUNvZGUgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdHRoaXMuZ2VuZXJhdGVFeGFtcGxlSW5saW5lQ29kZSgpO1xuXHRcdFx0XHR9KSk7XG5cdH1cblx0Z2VuZXJhdGVFeGFtcGxlSW5saW5lQ29kZSgpIHtcblx0XHR0aGlzLmV4YW1wbGVJbmxpbmVDb2RlQ29udGFpbmVyLmVtcHR5KCk7XG5cdFx0TWFya2Rvd25SZW5kZXJlci5yZW5kZXIodGhpcy5wbHVnaW4uYXBwLFwiYFwiK3RoaXMucGx1Z2luLnNldHRpbmdzLmV4YW1wbGVJbmxpbmVDb2RlK1wiYFwiLHRoaXMuZXhhbXBsZUlubGluZUNvZGVDb250YWluZXIsU0VUVElOR1NfU09VUkNFUEFUSF9QUkVGSVgsdGhpcy5wbHVnaW4pO1xuXHRcdHRoaXMuZXhhbXBsZUlubGluZUNvZGVDb250YWluZXIucXVlcnlTZWxlY3RvcihcImNvZGVcIik/LmNsYXNzTGlzdD8uYWRkKFwiY29kZS1zdHlsZXItc2V0dGluZ3MtaW5saW5lLWNvZGVcIik7XG5cdH1cblx0Z2VuZXJhdGVEb25hdGlvbkZvb3Rlcihjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImhyXCIpO1xuXHRcdGNvbnN0IGRvbmF0aW9uRGl2ID0gY29udGFpbmVyRWwuY3JlYXRlRWwoXCJkaXZcIiwgeyBjbHM6IFwiY29kZS1zdHlsZXItZG9uYXRpb25cIiwgfSk7XG5cdFx0Y29uc3QgZG9uYXRpb25UZXh0ID0gY3JlYXRlRWwoXCJwXCIsIHt0ZXh0OiBcIklmIHlvdSBsaWtlIHRoaXMgcGx1Z2luLCBhbmQgd291bGQgbGlrZSB0byBoZWxwIHN1cHBvcnQgY29udGludWVkIGRldmVsb3BtZW50LCB1c2UgdGhlIGJ1dHRvbiBiZWxvdyFcIn0pO1xuXHRcdGRvbmF0aW9uRGl2LmFwcGVuZENoaWxkKGRvbmF0aW9uVGV4dCk7XG5cdFx0Y29uc3QgZG9uYXRpb25CdXR0b24gPSBjcmVhdGVFbChcImFcIiwgeyBocmVmOiBcImh0dHBzOi8vd3d3LmJ1eW1lYWNvZmZlZS5jb20vbWF5dXJhbmt2MlwifSk7XG5cdFx0ZG9uYXRpb25CdXR0b24uaW5uZXJIVE1MID0gXCI8aW1nIHNyYz1cXFwiaHR0cHM6Ly9pbWcuYnV5bWVhY29mZmVlLmNvbS9idXR0b24tYXBpLz90ZXh0PUJ1eSBtZSBhIGNvZmZlZSZlbW9qaT0mc2x1Zz1tYXl1cmFua3YyJmJ1dHRvbl9jb2xvdXI9ZTNlN2VmYTAmZm9udF9jb2xvdXI9MjYyNjI2JmZvbnRfZmFtaWx5PUludGVyJm91dGxpbmVfY29sb3VyPTI2MjYyNiZjb2ZmZWVfY29sb3VyPWEwNTIyZFxcXCIgaGVpZ2h0PVxcXCI0MnB4XFxcIj5cIjtcblx0XHRkb25hdGlvbkRpdi5hcHBlbmRDaGlsZChkb25hdGlvbkJ1dHRvbik7XG5cdH1cblxuXHQvLyBDcmVhdGUgU2V0dGluZ3Ncblx0Y3JlYXRlUGlja3IocGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luLCBjb250YWluZXJFbDogSFRNTEVsZW1lbnQsIHNldHRpbmc6IFNldHRpbmcsIGlkOiBzdHJpbmcsIGdldFJlbGV2YW50VGhlbWVDb2xvdXI6IChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycyk9PkNvbG91ciwgc2F2ZVJlbGV2YW50VGhlbWVDb2xvdXI6IChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKT0+dm9pZCwgZGlzYWJsZWQ/OiAoKT0+Ym9vbGVhbikge1xuXHRcdGNvbnN0IHBpY2tyOiBQaWNrclJlc2V0dGFibGUgPSBuZXcgUGlja3JSZXNldHRhYmxlKHBsdWdpbixjb250YWluZXJFbCxzZXR0aW5nLGdldFJlbGV2YW50VGhlbWVDb2xvdXIsc2F2ZVJlbGV2YW50VGhlbWVDb2xvdXIpO1xuXHRcdHBpY2tyXG5cdFx0XHQub24oXCJzaG93XCIsIChjb2xvdXI6IFBpY2tyLkhTVmFDb2xvciwgaW5zdGFuY2U6IFBpY2tyKSA9PiB7XG5cdFx0XHRcdGlmICh0eXBlb2YgZGlzYWJsZWQgIT09IFwidW5kZWZpbmVkXCIgJiYgZGlzYWJsZWQoKSlcblx0XHRcdFx0XHRpbnN0YW5jZS5oaWRlKCk7XG5cdFx0XHRcdC8vIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gKGluc3RhbmNlLmdldFJvb3QoKSBhcyBhbnkpLmludGVyYWN0aW9uLnJlc3VsdC5zZWxlY3QoKSkpXG5cdFx0XHR9KVxuXHRcdFx0Lm9uKFwic2F2ZVwiLCAoY29sb3VyOiBQaWNrci5IU1ZhQ29sb3IsIGluc3RhbmNlOiBQaWNrclJlc2V0dGFibGUpID0+IHtcblx0XHRcdFx0Y29uc3Qgc2F2ZWRDb2xvdXI6IENvbG91ciA9IGAjJHtjb2xvdXIudG9IRVhBKCkudG9TdHJpbmcoKS5zdWJzdHJpbmcoMSl9YDtcblx0XHRcdFx0aW5zdGFuY2UuaGlkZSgpO1xuXHRcdFx0XHRpbnN0YW5jZS5hZGRTd2F0Y2goc2F2ZWRDb2xvdXIpO1xuXHRcdFx0XHRpbnN0YW5jZS5zYXZlQ29sb3VyKHNhdmVkQ29sb3VyKTtcblx0XHRcdH0pXG5cdFx0XHQub24oXCJjYW5jZWxcIiwgKGluc3RhbmNlOiBQaWNrclJlc2V0dGFibGUpID0+IHtpbnN0YW5jZS5oaWRlKCk7fSk7XG5cdFx0c2V0dGluZy5hZGRFeHRyYUJ1dHRvbigoYnV0dG9uKSA9PiB7cGlja3IucmVzZXRCdXR0b24gPSBidXR0b25cblx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdC5zZXREaXNhYmxlZCh0eXBlb2YgZGlzYWJsZWQgIT09IFwidW5kZWZpbmVkXCIgJiYgZGlzYWJsZWQoKSlcblx0XHRcdC5zZXRUb29sdGlwKFwiUmVzdG9yZSBkZWZhdWx0IGNvbG91clwiKVxuXHRcdFx0Lm9uQ2xpY2soKCkgPT4ge3BpY2tyLnJlc2V0Q29sb3VyKCk7fSk7XG5cdFx0fSk7XG5cdFx0dGhpcy5waWNrcnNbaWRdPXBpY2tyO1xuXHR9XG5cblx0Ly8gVXBkYXRlIFNldHRpbmdzXG5cdHNhdmVTZXR0aW5ncyhyZXJlbmRlcjogYm9vbGVhbj1mYWxzZSkge1xuXHRcdChhc3luYyAoKSA9PiB7YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7fSkoKTtcblx0XHRpZiAocmVyZW5kZXIpXG5cdFx0XHR0aGlzLnJlcmVuZGVyKCk7XG5cdH1cblx0cmVyZW5kZXIoKSB7XG5cdFx0dGhpcy5wbHVnaW4ucmVuZGVyUmVhZGluZ1ZpZXcoKTtcblx0XHRpZiAodGhpcy5wYWdlID09PSBcImNvZGVibG9ja1wiKVxuXHRcdFx0dGhpcy5nZW5lcmF0ZUV4YW1wbGVDb2RlYmxvY2soKTtcblx0XHRlbHNlIGlmICh0aGlzLnBhZ2UgPT09IFwiaW5saW5lXCIpXG5cdFx0XHR0aGlzLmdlbmVyYXRlRXhhbXBsZUlubGluZUNvZGUoKTtcblx0fVxuXHR1cGRhdGVEcm9wZG93bihkcm9wZG93bjogRHJvcGRvd25Db21wb25lbnQsIHNldHRpbmdzOiBDb2RlU3R5bGVyU2V0dGluZ3MpIHtcblx0XHRkcm9wZG93bi5zZWxlY3RFbC5lbXB0eSgpO1xuXHRcdE9iamVjdC5rZXlzKHNldHRpbmdzLnRoZW1lcykuZm9yRWFjaCgodGhlbWVfbmFtZTogc3RyaW5nKSA9PiB7XG5cdFx0XHRkcm9wZG93bi5hZGRPcHRpb24odGhlbWVfbmFtZSwgdGhlbWVfbmFtZSk7XG5cdFx0fSk7XG5cdFx0ZHJvcGRvd24uc2V0VmFsdWUoc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZSk7XG5cdH1cblx0dXBkYXRlQWx0ZXJuYXRpdmVIaWdobGlnaHRzKCkge1xuXHRcdGlmICh0aGlzLnBhZ2UgIT09IFwiY29kZWJsb2NrXCIgfHwgdGhpcy5jb2RlYmxvY2tQYWdlICE9PSBcImhpZ2hsaWdodFwiKVxuXHRcdFx0cmV0dXJuO1xuXHRcdHRoaXMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzQ29udGFpbmVyLmVtcHR5KCk7XG5cdFx0T2JqZWN0LmtleXModGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMubGlnaHQuaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHMpLmZvckVhY2goKGFsdGVybmF0aXZlSGlnaGxpZ2h0TmFtZSkgPT4ge1xuXHRcdFx0bmV3IFNldHRpbmcodGhpcy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNDb250YWluZXIpXG5cdFx0XHRcdC5zZXROYW1lKGFsdGVybmF0aXZlSGlnaGxpZ2h0TmFtZSlcblx0XHRcdFx0LnNldERlc2MoYFRvIGhpZ2hsaWdodCBsaW5lcyB3aXRoIHRoaXMgaGlnaGxpZ2h0LCB1c2UgdGhlICR7YWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lfSBwYXJhbWV0ZXIuYClcblx0XHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0XHR0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XHRcdGBhbHRlcm5hdGl2ZV9oaWdobGlnaHRfJHthbHRlcm5hdGl2ZUhpZ2hsaWdodE5hbWV9YCxcblx0XHRcdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gYWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lIGluIHJlbGV2YW50VGhlbWVDb2xvdXJzLmxpZ2h0LmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzP3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzW2FsdGVybmF0aXZlSGlnaGxpZ2h0TmFtZV06dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNbYWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lXSxcblx0XHRcdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNbYWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lXSA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdFx0LnNldEljb24oXCJ0cmFzaFwiKVxuXHRcdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJEZWxldGUgaGlnaGxpZ2h0XCIpXG5cdFx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGRlbGV0ZSB0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuY29sb3Vycy5saWdodC5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0c1thbHRlcm5hdGl2ZUhpZ2hsaWdodE5hbWVdO1xuXHRcdFx0XHRcdFx0XHRkZWxldGUgdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMuZGFyay5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0c1thbHRlcm5hdGl2ZUhpZ2hsaWdodE5hbWVdO1xuXHRcdFx0XHRcdFx0XHRuZXcgTm90aWNlKGBSZW1vdmVkIGhpZ2hsaWdodCBcIiR7YWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lfVwiLmApOyAvL05PU09OQVJcblx0XHRcdFx0XHRcdFx0dGhpcy51cGRhdGVBbHRlcm5hdGl2ZUhpZ2hsaWdodHMoKTtcblx0XHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHR9KTtcblx0fVxuXHRyZWRpcmVjdExhbmd1YWdlcygpIHtcblx0XHRPYmplY3QuZW50cmllcyh0aGlzLnBsdWdpbi5zZXR0aW5ncy5yZWRpcmVjdExhbmd1YWdlcykuZm9yRWFjaCgoW2xhbmd1YWdlTmFtZSwgbGFuZ3VhZ2VTZXR0aW5nc106IFtzdHJpbmcsIHtjb2xvdXI/OiBDb2xvdXIsIGljb24/OiBzdHJpbmd9XSk9Pntcblx0XHRcdGlmIChcImljb25cIiBpbiBsYW5ndWFnZVNldHRpbmdzKSB7XG5cdFx0XHRcdGlmIChMQU5HVUFHRV9OQU1FU1tsYW5ndWFnZU5hbWVdIGluIHRoaXMucGx1Z2luLmxhbmd1YWdlSWNvbnMpXG5cdFx0XHRcdFx0VVJMLnJldm9rZU9iamVjdFVSTCh0aGlzLnBsdWdpbi5sYW5ndWFnZUljb25zW0xBTkdVQUdFX05BTUVTW2xhbmd1YWdlTmFtZV1dKTtcblx0XHRcdFx0dGhpcy5wbHVnaW4ubGFuZ3VhZ2VJY29uc1tMQU5HVUFHRV9OQU1FU1tsYW5ndWFnZU5hbWVdXSA9IFVSTC5jcmVhdGVPYmplY3RVUkwobmV3IEJsb2IoW2A8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+JHtsYW5ndWFnZVNldHRpbmdzLmljb259PC9zdmc+YF0sIHsgdHlwZTogXCJpbWFnZS9zdmcreG1sXCIgfSkpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG59XG5cbi8vIEV4dGVuZCBQaWNrciBDbGFzc1xuY2xhc3MgUGlja3JSZXNldHRhYmxlIGV4dGVuZHMgUGlja3Ige1xuXHRzYXZlQ29sb3VyOiAoc2F2ZUNvbG91cjogQ29sb3VyKT0+dm9pZDtcblx0cmVzZXRDb2xvdXI6ICgpPT52b2lkO1xuXHRnZXRDdXJyZW50Q29sb3VyOiAoYWNjZXNzVGhlbWU6IGJvb2xlYW4pPT52b2lkO1xuXHRyZXNldEJ1dHRvbjogRXh0cmFCdXR0b25Db21wb25lbnQ7XG5cblx0Y29uc3RydWN0b3IocGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luLCBjb250YWluZXJFbDogSFRNTEVsZW1lbnQsIHNldHRpbmc6IFNldHRpbmcsIGdldFJlbGV2YW50VGhlbWVDb2xvdXI6IChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycyk9PkNvbG91ciwgc2F2ZVJlbGV2YW50VGhlbWVDb2xvdXI6IChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKT0+dm9pZCwgdG9vbHRpcD86IHN0cmluZykge1xuXHRcdGNvbnN0IHNldHRpbmdzOiBQaWNrci5PcHRpb25zID0ge1xuXHRcdFx0ZWw6IHNldHRpbmcuY29udHJvbEVsLmNyZWF0ZURpdih7Y2xzOiBcInBpY2tlclwifSksXG5cdFx0XHR0aGVtZTogXCJuYW5vXCIsXG5cdFx0XHRkZWZhdWx0OiBnZXRDb2xvdXIoZ2V0UmVsZXZhbnRUaGVtZUNvbG91cihwbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMpKSxcblx0XHRcdHBvc2l0aW9uOiBcImxlZnQtbWlkZGxlXCIsXG5cdFx0XHRsb2NrT3BhY2l0eTogZmFsc2UsXG5cdFx0XHRjb21wb25lbnRzOiB7XG5cdFx0XHRcdHByZXZpZXc6IHRydWUsXG5cdFx0XHRcdGh1ZTogdHJ1ZSxcblx0XHRcdFx0b3BhY2l0eTogdHJ1ZSxcblx0XHRcdFx0aW50ZXJhY3Rpb246IHtcblx0XHRcdFx0XHRoZXg6IHRydWUsXG5cdFx0XHRcdFx0cmdiYTogdHJ1ZSxcblx0XHRcdFx0XHRoc2xhOiBmYWxzZSxcblx0XHRcdFx0XHRpbnB1dDogdHJ1ZSxcblx0XHRcdFx0XHRjYW5jZWw6IHRydWUsXG5cdFx0XHRcdFx0c2F2ZTogdHJ1ZSxcblx0XHRcdFx0fSxcblx0XHRcdH0sXG5cdFx0XHRpMThuOiB7XG5cdFx0XHRcdFwidWk6ZGlhbG9nXCI6IFwiQ29sb3VyIHBpY2tlciBkaWFsb2dcIixcblx0XHRcdFx0XCJidG46dG9nZ2xlXCI6ICh0eXBlb2YgdG9vbHRpcCAhPT0gXCJ1bmRlZmluZWRcIik/dG9vbHRpcDpcIlNlbGVjdCBjb2xvdXJcIixcblx0XHRcdFx0XCJidG46c3dhdGNoXCI6IFwiQ29sb3VyIHN3YXRjaFwiLFxuXHRcdFx0XHRcImJ0bjpsYXN0LWNvbG9yXCI6IFwiVXNlIHByZXZpb3VzIGNvbG91clwiLFxuXHRcdFx0fVxuXHRcdH07XG5cdFx0aWYgKGNvbnRhaW5lckVsLnBhcmVudEVsZW1lbnQgIT09IG51bGwpXG5cdFx0XHRzZXR0aW5ncy5jb250YWluZXIgPSBjb250YWluZXJFbC5wYXJlbnRFbGVtZW50O1xuXHRcdHN1cGVyKHNldHRpbmdzKTtcblx0XHR0aGlzLnNhdmVDb2xvdXIgPSAoc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7XG5cdFx0XHRzYXZlUmVsZXZhbnRUaGVtZUNvbG91cihwbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMsc2F2ZUNvbG91cik7XG5cdFx0XHQoYXN5bmMgKCkgPT4ge2F3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTt9KSgpO1xuXHRcdH07XG5cdFx0dGhpcy5yZXNldENvbG91ciA9ICgpID0+IHtcblx0XHRcdGNvbnN0IHJlc2V0Q29sb3VyOiBDb2xvdXIgPSBnZXRSZWxldmFudFRoZW1lQ29sb3VyKHBsdWdpbi5zZXR0aW5ncy50aGVtZXNbcGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLmNvbG91cnMpO1xuXHRcdFx0dGhpcy5zZXRDb2xvcihnZXRDb2xvdXIocmVzZXRDb2xvdXIpKTtcblx0XHRcdHRoaXMuc2F2ZUNvbG91cihyZXNldENvbG91cik7XG5cdFx0fTtcblx0fVxufVxuXG4vLyBDb2xvdXIgTWFuYWdlbWVudFxuZnVuY3Rpb24gZ2V0UmFuZG9tQ29sb3VyKCk6IENvbG91ciB7XG5cdGNvbnN0IGxldHRlcnMgPSBcIjAxMjM0NTY3ODlBQkNERUZcIjtcblx0bGV0IGNvbG91ciA9IFwiXCI7XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgNjsgaSsrKVxuXHRcdGNvbG91ciArPSBsZXR0ZXJzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDE2KV07XG5cdHJldHVybiBgIyR7Y29sb3VyfUZGYDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb2xvdXIodGhlbWVDb2xvdXI6IENvbG91cik6IENvbG91ciB7XG5cdHJldHVybiBpc0Nzcyh0aGVtZUNvbG91cik/Z2V0Q3NzVmFyaWFibGUodGhlbWVDb2xvdXIpOnRoZW1lQ29sb3VyO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzQ3NzKHBvc3NpYmxlQ3NzOiBzdHJpbmcpOiBwb3NzaWJsZUNzcyBpcyBDU1Mge1xuXHRyZXR1cm4gcG9zc2libGVDc3Muc3RhcnRzV2l0aChcIi0tXCIpICYmIHR5cGVvZiBwb3NzaWJsZUNzcyA9PT0gXCJzdHJpbmdcIjtcbn1cbmZ1bmN0aW9uIGdldENzc1ZhcmlhYmxlKGNzc1ZhcmlhYmxlOiBDU1MpOiBIRVgge1xuXHRjb25zdCB2YXJpYWJsZVZhbHVlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuZ2V0UHJvcGVydHlWYWx1ZShjc3NWYXJpYWJsZSkudHJpbSgpO1xuXHRpZiAodHlwZW9mIHZhcmlhYmxlVmFsdWUgPT09IFwic3RyaW5nXCIgJiYgdmFyaWFibGVWYWx1ZS5zdGFydHNXaXRoKFwiI1wiKSlcblx0XHRyZXR1cm4gYCMke3ZhcmlhYmxlVmFsdWUudHJpbSgpLnN1YnN0cmluZygxKX1gO1xuXHRlbHNlIGlmICh2YXJpYWJsZVZhbHVlLnN0YXJ0c1dpdGgoXCJyZ2JcIikpXG5cdFx0cmV0dXJuIGAjJHtDb2xvclRyYW5zbGF0b3IudG9IRVhBKHZhcmlhYmxlVmFsdWUucmVwbGFjZSgvY2FsY1xcKCguKj8pXFwpL2csKG1hdGNoLGNhcHR1cmUpPT5jYWxjKGNhcHR1cmUpKSkuc3Vic3RyaW5nKDEpfWA7XG5cdGVsc2UgaWYgKHZhcmlhYmxlVmFsdWUuc3RhcnRzV2l0aChcImhzbFwiKSlcblx0XHRyZXR1cm4gYCMke0NvbG9yVHJhbnNsYXRvci50b0hFWEEodmFyaWFibGVWYWx1ZS5yZXBsYWNlKC9jYWxjXFwoKC4qPylcXCkvZywobWF0Y2gsY2FwdHVyZSk9PmNhbGMoY2FwdHVyZSkpKS5zdWJzdHJpbmcoMSl9YDtcblx0ZWxzZVxuXHRcdGNvbnNvbGUud2FybihgV2FybmluZzogQ291bGRuJ3QgZGV0ZXJtaW5lIGNvbG91ciBmb3JtYXQgLSAke3ZhcmlhYmxlVmFsdWV9YCk7XG5cdHJldHVybiBgIyR7Q29sb3JUcmFuc2xhdG9yLnRvSEVYQSh2YXJpYWJsZVZhbHVlKS5zdWJzdHJpbmcoMSl9YDtcbn1cbmZ1bmN0aW9uIGNhbGMoY2FsY1N0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcblx0Y29uc3Qgc3BsaXRTdHJpbmcgPSBjYWxjU3RyaW5nLnRyaW0oKS5yZXBsYWNlKC8oXFxkKiklL2csXCIkMVwiKS5zcGxpdChcIiBcIik7XG5cdGNvbnN0IG9wZXJhdG9yczoge1trZXk6IHN0cmluZ106IChudW0xOm51bWJlciwgbnVtMjpudW1iZXIpID0+IG51bWJlcn0gPSB7XG5cdFx0XCIrXCI6IChudW0xOm51bWJlciwgbnVtMjpudW1iZXIpOm51bWJlciA9PiBNYXRoLm1heChudW0xK251bTIsMCksXG5cdFx0XCItXCI6IChudW0xOm51bWJlciAsbnVtMjpudW1iZXIpOm51bWJlciA9PiBNYXRoLm1heChudW0xLW51bTIsMCksXG5cdH07XG5cdGlmIChzcGxpdFN0cmluZy5sZW5ndGggPT09IDMpXG5cdFx0aWYgKHNwbGl0U3RyaW5nWzFdIGluIG9wZXJhdG9ycylcblx0XHRcdHJldHVybiBgJHtvcGVyYXRvcnNbc3BsaXRTdHJpbmdbMV1dKHBhcnNlRmxvYXQoc3BsaXRTdHJpbmdbMF0pLHBhcnNlRmxvYXQoc3BsaXRTdHJpbmdbMl0pKX0lYDtcblxuXHRjb25zb2xlLndhcm4oXCJXYXJuaW5nOiBDb3VsZG4ndCBwYXJzZSBjYWxjIHN0cmluZ1wiKTtcblx0cmV0dXJuIGNhbGNTdHJpbmc7XG59XG5cbi8vIEZldGNoIFNldHRpbmdzXG5mdW5jdGlvbiBnZXRDdXJyZW50TW9kZSgpIHtcblx0Y29uc3QgYm9keSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJib2R5XCIpO1xuXHRpZiAoYm9keSAhPT0gbnVsbCl7XG5cdFx0aWYgKGJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKFwidGhlbWUtbGlnaHRcIikpXG5cdFx0XHRyZXR1cm4gXCJsaWdodFwiO1xuXHRcdGVsc2UgaWYgKGJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKFwidGhlbWUtZGFya1wiKSlcblx0XHRcdHJldHVybiBcImRhcmtcIjtcblx0fVxuXHRjb25zb2xlLndhcm4oXCJXYXJuaW5nOiBDb3VsZG4ndCBnZXQgY3VycmVudCB0aGVtZVwiKTtcblx0cmV0dXJuIFwibGlnaHRcIjtcbn1cbiIsICJ2YXIgdD1mdW5jdGlvbigpe3JldHVybiB0PU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEscj1hcmd1bWVudHMubGVuZ3RoO248cjtuKyspZm9yKHZhciBpIGluIGU9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLGkpJiYodFtpXT1lW2ldKTtyZXR1cm4gdH0sdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Z1bmN0aW9uIGUodCxlLG4pe2lmKG58fDI9PT1hcmd1bWVudHMubGVuZ3RoKWZvcih2YXIgcixpPTAsbz1lLmxlbmd0aDtpPG87aSsrKSFyJiZpIGluIGV8fChyfHwocj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLDAsaSkpLHJbaV09ZVtpXSk7cmV0dXJuIHQuY29uY2F0KHJ8fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUpKX12YXIgbixyLGksbzshZnVuY3Rpb24odCl7dC5IRVg9XCJIRVhcIix0LlJHQj1cIlJHQlwiLHQuSFNMPVwiSFNMXCIsdC5DTVlLPVwiQ01ZS1wifShufHwobj17fSkpLGZ1bmN0aW9uKHQpe3QuQU5BTE9HT1VTPVwiQU5BTE9HT1VTXCIsdC5DT01QTEVNRU5UQVJZPVwiQ09NUExFTUVOVEFSWVwiLHQuU1BMSVRfQ09NUExFTUVOVEFSWT1cIlNQTElUX0NPTVBMRU1FTlRBUllcIix0LlRSSUFESUM9XCJUUklBRElDXCIsdC5URVRSQURJQz1cIlRFVFJBRElDXCIsdC5TUVVBUkU9XCJTUVVBUkVcIn0ocnx8KHI9e30pKSxmdW5jdGlvbih0KXt0LkFERElUSVZFPVwiQURESVRJVkVcIix0LlNVQlRSQUNUSVZFPVwiU1VCVFJBQ1RJVkVcIn0oaXx8KGk9e30pKSxmdW5jdGlvbih0KXt0LmJsYWNrPVwiIzAwMDAwMFwiLHQuc2lsdmVyPVwiI0MwQzBDMFwiLHQuZ3JheT1cIiM4MDgwODBcIix0LndoaXRlPVwiI0ZGRkZGRlwiLHQubWFyb29uPVwiIzgwMDAwMFwiLHQucmVkPVwiI0ZGMDAwMFwiLHQucHVycGxlPVwiIzgwMDA4MFwiLHQuZnVjaHNpYT1cIiNGRjAwRkZcIix0LmdyZWVuPVwiIzAwODAwMFwiLHQubGltZT1cIiMwMEZGMDBcIix0Lm9saXZlPVwiIzgwODAwMFwiLHQueWVsbG93PVwiI0ZGRkYwMFwiLHQubmF2eT1cIiMwMDAwODBcIix0LmJsdWU9XCIjMDAwMEZGXCIsdC50ZWFsPVwiIzAwODA4MFwiLHQuYXF1YT1cIiMwMEZGRkZcIix0Lm9yYW5nZT1cIiNGRkE1MDBcIix0LmFsaWNlYmx1ZT1cIiNGMEY4RkZcIix0LmFudGlxdWV3aGl0ZT1cIiNGQUVCRDdcIix0LmFxdWFtYXJpbmU9XCIjN0ZGRkQ0XCIsdC5henVyZT1cIiNGMEZGRkZcIix0LmJlaWdlPVwiI0Y1RjVEQ1wiLHQuYmlzcXVlPVwiI0ZGRTRDNFwiLHQuYmxhbmNoZWRhbG1vbmQ9XCIjRkZFQkNEXCIsdC5ibHVldmlvbGV0PVwiIzhBMkJFMlwiLHQuYnJvd249XCIjQTUyQTJBXCIsdC5idXJseXdvb2Q9XCIjREVCODg3XCIsdC5jYWRldGJsdWU9XCIjNUY5RUEwXCIsdC5jaGFydHJldXNlPVwiIzdGRkYwMFwiLHQuY2hvY29sYXRlPVwiI0QyNjkxRVwiLHQuY29yYWw9XCIjRkY3RjUwXCIsdC5jb3JuZmxvd2VyYmx1ZT1cIiM2NDk1RURcIix0LmNvcm5zaWxrPVwiI0ZGRjhEQ1wiLHQuY3JpbXNvbj1cIiNEQzE0M0NcIix0LmN5YW49XCIjMDBGRkZGXCIsdC5kYXJrYmx1ZT1cIiMwMDAwOEJcIix0LmRhcmtjeWFuPVwiIzAwOEI4QlwiLHQuZGFya2dvbGRlbnJvZD1cIiNCODg2MEJcIix0LmRhcmtncmF5PVwiI0E5QTlBOVwiLHQuZGFya2dyZWVuPVwiIzAwNjQwMFwiLHQuZGFya2dyZXk9XCIjQTlBOUE5XCIsdC5kYXJra2hha2k9XCIjQkRCNzZCXCIsdC5kYXJrbWFnZW50YT1cIiM4QjAwOEJcIix0LmRhcmtvbGl2ZWdyZWVuPVwiIzU1NkIyRlwiLHQuZGFya29yYW5nZT1cIiNGRjhDMDBcIix0LmRhcmtvcmNoaWQ9XCIjOTkzMkNDXCIsdC5kYXJrcmVkPVwiIzhCMDAwMFwiLHQuZGFya3NhbG1vbj1cIiNFOTk2N0FcIix0LmRhcmtzZWFncmVlbj1cIiM4RkJDOEZcIix0LmRhcmtzbGF0ZWJsdWU9XCIjNDgzRDhCXCIsdC5kYXJrc2xhdGVncmF5PVwiIzJGNEY0RlwiLHQuZGFya3NsYXRlZ3JleT1cIiMyRjRGNEZcIix0LmRhcmt0dXJxdW9pc2U9XCIjMDBDRUQxXCIsdC5kYXJrdmlvbGV0PVwiIzk0MDBEM1wiLHQuZGVlcHBpbms9XCIjRkYxNDkzXCIsdC5kZWVwc2t5Ymx1ZT1cIiMwMEJGRkZcIix0LmRpbWdyYXk9XCIjNjk2OTY5XCIsdC5kaW1ncmV5PVwiIzY5Njk2OVwiLHQuZG9kZ2VyYmx1ZT1cIiMxRTkwRkZcIix0LmZpcmVicmljaz1cIiNCMjIyMjJcIix0LmZsb3JhbHdoaXRlPVwiI0ZGRkFGMFwiLHQuZm9yZXN0Z3JlZW49XCIjMjI4QjIyXCIsdC5nYWluc2Jvcm89XCIjRENEQ0RDXCIsdC5naG9zdHdoaXRlPVwiI0Y4RjhGRlwiLHQuZ29sZD1cIiNGRkQ3MDBcIix0LmdvbGRlbnJvZD1cIiNEQUE1MjBcIix0LmdyZWVueWVsbG93PVwiI0FERkYyRlwiLHQuZ3JleT1cIiM4MDgwODBcIix0LmhvbmV5ZGV3PVwiI0YwRkZGMFwiLHQuaG90cGluaz1cIiNGRjY5QjRcIix0LmluZGlhbnJlZD1cIiNDRDVDNUNcIix0LmluZGlnbz1cIiM0QjAwODJcIix0Lml2b3J5PVwiI0ZGRkZGMFwiLHQua2hha2k9XCIjRjBFNjhDXCIsdC5sYXZlbmRlcj1cIiNFNkU2RkFcIix0LmxhdmVuZGVyYmx1c2g9XCIjRkZGMEY1XCIsdC5sYXduZ3JlZW49XCIjN0NGQzAwXCIsdC5sZW1vbmNoaWZmb249XCIjRkZGQUNEXCIsdC5saWdodGJsdWU9XCIjQUREOEU2XCIsdC5saWdodGNvcmFsPVwiI0YwODA4MFwiLHQubGlnaHRjeWFuPVwiI0UwRkZGRlwiLHQubGlnaHRnb2xkZW5yb2R5ZWxsb3c9XCIjRkFGQUQyXCIsdC5saWdodGdyYXk9XCIjRDNEM0QzXCIsdC5saWdodGdyZWVuPVwiIzkwRUU5MFwiLHQubGlnaHRncmV5PVwiI0QzRDNEM1wiLHQubGlnaHRwaW5rPVwiI0ZGQjZDMVwiLHQubGlnaHRzYWxtb249XCIjRkZBMDdBXCIsdC5saWdodHNlYWdyZWVuPVwiIzIwQjJBQVwiLHQubGlnaHRza3libHVlPVwiIzg3Q0VGQVwiLHQubGlnaHRzbGF0ZWdyYXk9XCIjNzc4ODk5XCIsdC5saWdodHNsYXRlZ3JleT1cIiM3Nzg4OTlcIix0LmxpZ2h0c3RlZWxibHVlPVwiI0IwQzRERVwiLHQubGlnaHR5ZWxsb3c9XCIjRkZGRkUwXCIsdC5saW1lZ3JlZW49XCIjMzJDRDMyXCIsdC5saW5lbj1cIiNGQUYwRTZcIix0Lm1hZ2VudGE9XCIjRkYwMEZGXCIsdC5tZWRpdW1hcXVhbWFyaW5lPVwiIzY2Q0RBQVwiLHQubWVkaXVtYmx1ZT1cIiMwMDAwQ0RcIix0Lm1lZGl1bW9yY2hpZD1cIiNCQTU1RDNcIix0Lm1lZGl1bXB1cnBsZT1cIiM5MzcwREJcIix0Lm1lZGl1bXNlYWdyZWVuPVwiIzNDQjM3MVwiLHQubWVkaXVtc2xhdGVibHVlPVwiIzdCNjhFRVwiLHQubWVkaXVtc3ByaW5nZ3JlZW49XCIjMDBGQTlBXCIsdC5tZWRpdW10dXJxdW9pc2U9XCIjNDhEMUNDXCIsdC5tZWRpdW12aW9sZXRyZWQ9XCIjQzcxNTg1XCIsdC5taWRuaWdodGJsdWU9XCIjMTkxOTcwXCIsdC5taW50Y3JlYW09XCIjRjVGRkZBXCIsdC5taXN0eXJvc2U9XCIjRkZFNEUxXCIsdC5tb2NjYXNpbj1cIiNGRkU0QjVcIix0Lm5hdmFqb3doaXRlPVwiI0ZGREVBRFwiLHQub2xkbGFjZT1cIiNGREY1RTZcIix0Lm9saXZlZHJhYj1cIiM2QjhFMjNcIix0Lm9yYW5nZXJlZD1cIiNGRjQ1MDBcIix0Lm9yY2hpZD1cIiNEQTcwRDZcIix0LnBhbGVnb2xkZW5yb2Q9XCIjRUVFOEFBXCIsdC5wYWxlZ3JlZW49XCIjOThGQjk4XCIsdC5wYWxldHVycXVvaXNlPVwiI0FGRUVFRVwiLHQucGFsZXZpb2xldHJlZD1cIiNEQjcwOTNcIix0LnBhcGF5YXdoaXA9XCIjRkZFRkQ1XCIsdC5wZWFjaHB1ZmY9XCIjRkZEQUI5XCIsdC5wZXJ1PVwiI0NEODUzRlwiLHQucGluaz1cIiNGRkMwQ0JcIix0LnBsdW09XCIjRERBMEREXCIsdC5wb3dkZXJibHVlPVwiI0IwRTBFNlwiLHQucm9zeWJyb3duPVwiI0JDOEY4RlwiLHQucm95YWxibHVlPVwiIzQxNjlFMVwiLHQuc2FkZGxlYnJvd249XCIjOEI0NTEzXCIsdC5zYWxtb249XCIjRkE4MDcyXCIsdC5zYW5keWJyb3duPVwiI0Y0QTQ2MFwiLHQuc2VhZ3JlZW49XCIjMkU4QjU3XCIsdC5zZWFzaGVsbD1cIiNGRkY1RUVcIix0LnNpZW5uYT1cIiNBMDUyMkRcIix0LnNreWJsdWU9XCIjODdDRUVCXCIsdC5zbGF0ZWJsdWU9XCIjNkE1QUNEXCIsdC5zbGF0ZWdyYXk9XCIjNzA4MDkwXCIsdC5zbGF0ZWdyZXk9XCIjNzA4MDkwXCIsdC5zbm93PVwiI0ZGRkFGQVwiLHQuc3ByaW5nZ3JlZW49XCIjMDBGRjdGXCIsdC5zdGVlbGJsdWU9XCIjNDY4MkI0XCIsdC50YW49XCIjRDJCNDhDXCIsdC50aGlzdGxlPVwiI0Q4QkZEOFwiLHQudG9tYXRvPVwiI0ZGNjM0N1wiLHQudHVycXVvaXNlPVwiIzQwRTBEMFwiLHQudmlvbGV0PVwiI0VFODJFRVwiLHQud2hlYXQ9XCIjRjVERUIzXCIsdC53aGl0ZXNtb2tlPVwiI0Y1RjVGNVwiLHQueWVsbG93Z3JlZW49XCIjOUFDRDMyXCIsdC5yZWJlY2NhcHVycGxlPVwiIzY2MzM5OVwifShvfHwobz17fSkpO3ZhciBhLGMsdT1PYmplY3Qua2V5cyhvKSxzPXtIRVg6W1wiclwiLFwiZ1wiLFwiYlwiLFwiYVwiXSxSR0I6W1wiclwiLFwiZ1wiLFwiYlwiLFwiYVwiXSxIU0w6W1wiaFwiLFwic1wiLFwibFwiLFwiYVwiXSxDTVlLOltcImNcIixcIm1cIixcInlcIixcImtcIixcImFcIl19LGQ9e0JHUjpuLlJHQixBQkdSOm4uUkdCLEhMUzpuLkhTTCxBSExTOm4uSFNMLENLTVk6bi5DTVlLLEFDS01ZOm4uQ01ZS307IWZ1bmN0aW9uKHQpe3QuTlVNQkVSPVwibnVtYmVyXCIsdC5CT09MRUFOPVwiYm9vbGVhblwifShhfHwoYT17fSkpO3ZhciBsLGYsaCxwPSgoYz17fSlbbi5IRVhdPS9eIyg/OihbYS1mXFxkXSkoW2EtZlxcZF0pKFthLWZcXGRdKShbYS1mXFxkXSk/fChbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KShbYS1mXFxkXXsyfSk/KSQvaSxjW24uUkdCXT0vXnJnYmE/XFxzKlxcKFxccyooPzooKD86XFxkKlxcLik/XFxkKyU/KVxccyosXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKixcXHMqKCg/OlxcZCpcXC4pP1xcZCslPykoPzpcXHMqLFxccyooKD86XFxkKlxcLik/XFxkKykpP3woKD86XFxkKlxcLik/XFxkKyU/KVxccyooKD86XFxkKlxcLik/XFxkKyU/KVxccyooKD86XFxkKlxcLik/XFxkKyU/KSg/OlxccypcXC9cXHMqKCg/OlxcZCpcXC4pP1xcZCslPykpPylcXHMqXFwpJC8sY1tuLkhTTF09L15oc2xhP1xccypcXChcXHMqKD86KC0/KD86XFxkKlxcLik/XFxkKyg/OmRlZ3xncmFkfHJhZHx0dXJuKT8pXFxzKixcXHMqKCg/OlxcZCpcXC4pP1xcZCspJVxccyosXFxzKigoPzpcXGQqXFwuKT9cXGQrKSUoPzpcXHMqLFxccyooKD86XFxkKlxcLik/XFxkKykpP3woLT8oPzpcXGQqXFwuKT9cXGQrKD86ZGVnfGdyYWR8cmFkfHR1cm4pPylcXHMqKCg/OlxcZCpcXC4pP1xcZCspJVxccyooKD86XFxkKlxcLik/XFxkKyklKD86XFxzKlxcL1xccyooKD86XFxkKlxcLik/XFxkKyU/KSk/KVxccypcXCkkLyxjW24uQ01ZS109L14oPzpkZXZpY2UtY215a3xjbXlrKVxccypcXChcXHMqKD86KCg/OlxcZCpcXC4pP1xcZCslPylcXHMqLFxccyooKD86XFxkKlxcLik/XFxkKyU/KVxccyosXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKixcXHMqKCg/OlxcZCpcXC4pP1xcZCslPykoPzpcXHMqLFxccyooKD86XFxkKlxcLik/XFxkKykpP3woKD86XFxkKlxcLik/XFxkKyU/KVxccyooKD86XFxkKlxcLik/XFxkKyU/KVxccyooKD86XFxkKlxcLik/XFxkKyU/KVxccyooKD86XFxkKlxcLik/XFxkKyU/KSg/OlxccypcXC9cXHMqKCg/OlxcZCpcXC4pP1xcZCslPykpPylcXHMqXFwpJC8sYyksZz0vXigtPyg/OlxcZCpcXC4pP1xcZCspKCg/OmRlZ3xncmFkfHJhZHx0dXJuKT8pJC8sbT0vXihcXGQrKD86XFwuXFxkKyk/fFxcLlxcZCspJSQvLGI9L14weChbYS1mXFxkXXsxLDJ9KSQvaSxBPS9cXHsoXFxkKylcXH0vZyx5PS8sKCArfFxcZCspL2csRT0vICsvLEY9XCJUaGUgcHJvdmlkZWQgc3RyaW5nIGNvbG9yIGRvZXNuJ3QgaGF2ZSBhIGNvcnJlY3QgZm9ybWF0XCIsdj1cIlRoZSBwcm92aWRlZCBjb2xvciBvYmplY3QgZG9lc24ndCBoYXZlIHRoZSBwcm9wZXIga2V5cyBvciBmb3JtYXRcIjshZnVuY3Rpb24odCl7dC5OT05FPVwibm9uZVwiLHQuREVHUkVFUz1cImRlZ1wiLHQuR1JBRElBTlM9XCJncmFkXCIsdC5SQURJQU5TPVwicmFkXCIsdC5UVVJOUz1cInR1cm5cIn0obHx8KGw9e30pKSxmdW5jdGlvbih0KXt0Lk5PTkU9XCJub25lXCIsdC5QRVJDRU5UPVwicGVyY2VudFwifShmfHwoZj17fSkpLGZ1bmN0aW9uKHQpe3QuREVWSUNFX0NNWUs9XCJkZXZpY2UtY215a1wiLHQuQ01ZSz1cImNteWtcIn0oaHx8KGg9e30pKTt2YXIgSCxCLEMsUyxSLE0sRD17ZGVjaW1hbHM6NixsZWdhY3lDU1M6ITEsc3BhY2VzQWZ0ZXJDb21tYXM6ITEsYW5nbGVzVW5pdDpsLk5PTkUscmdiVW5pdDpmLk5PTkUsY215a1VuaXQ6Zi5QRVJDRU5ULGFscGhhVW5pdDpmLk5PTkUsY215a0Z1bmN0aW9uOmguREVWSUNFX0NNWUt9LE89ZnVuY3Rpb24odCxlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSl9LEw9ZnVuY3Rpb24odCl7cmV0dXJuK1wiXCIuY29uY2F0KHQpLnJlcGxhY2UobSxcIiQxXCIpfSxHPWZ1bmN0aW9uKHQpe3JldHVybiBtLnRlc3QoXCJcIi5jb25jYXQodCkpP0wodCk6TWF0aC5taW4oK3QsMTAwKX0saz1mdW5jdGlvbih0KXtyZXR1cm4gMT09PXQubGVuZ3RoJiYodCs9dCkscGFyc2VJbnQodCwxNil9LGo9ZnVuY3Rpb24odCl7dmFyIGU9Syh0LDApLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO3JldHVybiAxPT09ZS5sZW5ndGg/XCIweDBcIi5jb25jYXQoZSk6XCIweFwiLmNvbmNhdChlKX0sWD1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT0hMSksIWUmJm0udGVzdCh0KT9NYXRoLm1pbigyNTUqTCh0KS8xMDAsMjU1KTpiLnRlc3QodCk/KDM9PT10Lmxlbmd0aCYmKHQrPXQuc2xpY2UoLTEpKSxlP0sodCkvMjU1OksodCkpOk1hdGgubWluKCt0LGU/MToyNTUpfSxJPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1pbihtLnRlc3QodCk/TCh0KS8xMDA6K3QsMSl9LFk9ZnVuY3Rpb24odCl7cmV0dXJuIGUoW10sdCwhMCkuc29ydCgpLmpvaW4oXCJcIikudG9VcHBlckNhc2UoKX0sSz1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPTYpO3ZhciBuPU1hdGgucG93KDEwLGUpO3JldHVybiBNYXRoLnJvdW5kKCt0Km4pL259LE49ZnVuY3Rpb24odCxlLG4pe3JldHVybiBNYXRoLm1heChlLE1hdGgubWluKHQsbikpfSxUPWZ1bmN0aW9uKHQpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiB0KXt2YXIgZT10Lm1hdGNoKGcpLG49K2VbMV07c3dpdGNoKGVbMl0pe2Nhc2UgbC5SQURJQU5TOnQ9SygxODAqbi9NYXRoLlBJKTticmVhaztjYXNlIGwuVFVSTlM6dD1LKDM2MCpuKTticmVhaztjYXNlIGwuR1JBRElBTlM6dD1LKC45Km4pO2JyZWFrO2Nhc2UgbC5ERUdSRUVTOmRlZmF1bHQ6dD1ufX1yZXR1cm4odD4zNjB8fHQ8MCkmJih0LT0zNjAqTWF0aC5mbG9vcih0LzM2MCkpLHR9LFA9ZnVuY3Rpb24odCxlKXt2YXIgbjtzd2l0Y2goZSl7Y2FzZSBsLlJBRElBTlM6bj1LKGZ1bmN0aW9uKHQpe3JldHVybiB0Kk1hdGguUEkvMTgwfSh0KSk7YnJlYWs7Y2FzZSBsLlRVUk5TOm49Syh0LzM2MCk7YnJlYWs7Y2FzZSBsLkdSQURJQU5TOm49SygxMC85KnQpO2JyZWFrO2Nhc2UgbC5ERUdSRUVTOmNhc2UgbC5OT05FOmRlZmF1bHQ6bj10fXJldHVybiBufSxVPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyllW24tMV09YXJndW1lbnRzW25dO2Zvcih2YXIgcj1bXSxpPVtdLG89W10sYz1bXSx1PVtdLHM9T2JqZWN0LnZhbHVlcyhsKSxkPU9iamVjdC52YWx1ZXMoZiksYj1PYmplY3QudmFsdWVzKGgpLEE9e2xlZ2FjeUNTUzowLHNwYWNlc0FmdGVyQ29tbWFzOjAsY215a0Z1bmN0aW9uOjB9LEY9MCx2PWU7Rjx2Lmxlbmd0aDtGKyspe3ZhciBIPXZbRl07aWYoXCJzdHJpbmdcIj09dHlwZW9mIEgpe2lmKHIucHVzaChIKSxILmluY2x1ZGVzKFwiLFwiKSl7QS5sZWdhY3lDU1MrKzt2YXIgQj1ILm1hdGNoKHkpOzE9PT1uZXcgU2V0KEIpLnNpemUmJkUudGVzdChCWzBdLnNsaWNlKDEpKSYmQS5zcGFjZXNBZnRlckNvbW1hcysrfWlmKEgubWF0Y2gocC5IU0wpKXt2YXIgQz0oaz1ILm1hdGNoKHAuSFNMKSlbMV18fGtbNV0sUz1rWzhdLFI9Qy5tYXRjaChnKVsyXTtpLnB1c2goXCJcIj09PVI/bC5OT05FOlIpLHUucHVzaChtLnRlc3QoUykpO2NvbnRpbnVlfWlmKHAuUkdCLnRlc3QoSCkpe3ZhciBNPShrPUgubWF0Y2gocC5SR0IpKVsxXXx8a1s1XSxPPWtbMl18fGtbNl0sTD1rWzNdfHxrWzddLEc9a1s4XTtvLnB1c2gobS50ZXN0KE0pJiZtLnRlc3QoTykmJm0udGVzdChMKSksdS5wdXNoKG0udGVzdChHKSk7Y29udGludWV9aWYoSC5tYXRjaChwLkNNWUspKXt2YXIgayxqPShrPUgubWF0Y2gocC5DTVlLKSlbMV18fGtbNl0sWD1rWzJdfHxrWzddLEk9a1szXXx8a1s4XSxZPWtbNF18fGtbOV07Rz1rWzEwXTtjLnB1c2gobS50ZXN0KGopJiZtLnRlc3QoWCkmJm0udGVzdChJKSYmbS50ZXN0KFkpKSxILnN0YXJ0c1dpdGgoXCJjbXlrXCIpJiZBLmNteWtGdW5jdGlvbisrLHUucHVzaChtLnRlc3QoRykpfX19cmV0dXJue2RlY2ltYWxzOnR5cGVvZiB0LmRlY2ltYWxzPT09YS5OVU1CRVI/dC5kZWNpbWFsczpELmRlY2ltYWxzLGxlZ2FjeUNTUzp0eXBlb2YgdC5sZWdhY3lDU1M9PT1hLkJPT0xFQU4/dC5sZWdhY3lDU1M6Qm9vbGVhbihyLmxlbmd0aCYmQS5sZWdhY3lDU1M9PT1yLmxlbmd0aCl8fEQubGVnYWN5Q1NTLHNwYWNlc0FmdGVyQ29tbWFzOnR5cGVvZiB0LnNwYWNlc0FmdGVyQ29tbWFzPT09YS5CT09MRUFOP3Quc3BhY2VzQWZ0ZXJDb21tYXM6Qm9vbGVhbihyLmxlbmd0aCYmQS5zcGFjZXNBZnRlckNvbW1hcz09PXIubGVuZ3RoKXx8RC5zcGFjZXNBZnRlckNvbW1hcyxhbmdsZXNVbml0OnQuYW5nbGVzVW5pdCYmcy5pbmNsdWRlcyh0LmFuZ2xlc1VuaXQpP3QuYW5nbGVzVW5pdDoxPT09bmV3IFNldChpKS5zaXplP2lbMF06RC5hbmdsZXNVbml0LHJnYlVuaXQ6dC5yZ2JVbml0JiZkLmluY2x1ZGVzKHQucmdiVW5pdCk/dC5yZ2JVbml0OjE9PT1uZXcgU2V0KG8pLnNpemUmJm9bMF0/Zi5QRVJDRU5UOkQucmdiVW5pdCxjbXlrVW5pdDp0LmNteWtVbml0JiZkLmluY2x1ZGVzKHQuY215a1VuaXQpP3QuY215a1VuaXQ6MSE9PW5ldyBTZXQoYykuc2l6ZXx8Y1swXT9ELmNteWtVbml0OmYuTk9ORSxhbHBoYVVuaXQ6dC5hbHBoYVVuaXQmJmQuaW5jbHVkZXModC5hbHBoYVVuaXQpP3QuYWxwaGFVbml0OjE9PT1uZXcgU2V0KHUpLnNpemUmJnVbMF0/Zi5QRVJDRU5UOkQuYWxwaGFVbml0LGNteWtGdW5jdGlvbjp0LmNteWtGdW5jdGlvbiYmYi5pbmNsdWRlcyh0LmNteWtGdW5jdGlvbik/dC5jbXlrRnVuY3Rpb246Yy5sZW5ndGgmJmMubGVuZ3RoPT09QS5jbXlrRnVuY3Rpb24/aC5DTVlLOkQuY215a0Z1bmN0aW9ufX0sdz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG48MCYmKG4rPTYpLG4+PTYmJihuLT02KSxLKG48MT8yNTUqKChlLXQpKm4rdCk6bjwzPzI1NSplOm48ND8yNTUqKChlLXQpKig0LW4pK3QpOjI1NSp0KX0seD1mdW5jdGlvbih0LGUsbil7ZS89MTAwO3ZhciByPShuLz0xMDApPD0uNT9uKihlKzEpOm4rZS1uKmUsaT0yKm4tcjtyZXR1cm57cjp3KGksciwodC89NjApKzIpLGc6dyhpLHIsdCksYjp3KGkscix0LTIpfX0sVj1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm57cjpLKDI1NSooMS10KSoocj0xLXIpKSxnOksoMjU1KigxLWUpKnIpLGI6SygyNTUqKDEtbikqcil9fSxxPWZ1bmN0aW9uKHQsZSxuKXt0Lz0yNTUsZS89MjU1LG4vPTI1NTt2YXIgcj0xLU1hdGgubWF4KHQsZSxuKSxpPTEtcixvPWkmJihpLWUpL2ksYT1pJiYoaS1uKS9pO3JldHVybntjOksoMTAwKihpJiYoaS10KS9pKSksbTpLKDEwMCpvKSx5OksoMTAwKmEpLGs6SygxMDAqcil9fSxfPWZ1bmN0aW9uKHQsZSxuLHIpe3ZvaWQgMD09PXImJihyPTEpLHQvPTI1NSxlLz0yNTUsbi89MjU1LHI9TWF0aC5taW4ociwxKTt2YXIgaT1NYXRoLm1heCh0LGUsbiksbz1NYXRoLm1pbih0LGUsbiksYT1pLW8sYz0wLHU9MCxzPShpK28pLzI7aWYoMCE9PWEpe3N3aXRjaChpKXtjYXNlIHQ6Yz0oZS1uKS9hJTY7YnJlYWs7Y2FzZSBlOmM9KG4tdCkvYSsyO2JyZWFrO2Nhc2UgbjpjPSh0LWUpL2ErNH0oYz1LKDYwKmMpKTwwJiYoYys9MzYwKSx1PWEvKDEtTWF0aC5hYnMoMipzLTEpKX1yZXR1cm57aDpjLHM6SygxMDAqdSksbDpLKDEwMCpzKSxhOnJ9fSwkPWZ1bmN0aW9uKHQsZSl7aWYodDwwJiYodCs9MzYwKSx0PjM2MCYmKHQtPTM2MCksMzYwPT09dHx8MD09PXQpcmV0dXJuIHQ7dmFyIG49W1swLDEyMF0sWzEyMCwxODBdLFsxODAsMjQwXSxbMjQwLDM2MF1dLHI9W1swLDYwXSxbNjAsMTIwXSxbMTIwLDI0MF0sWzI0MCwzNjBdXSxpPWU/cjpuLG89MCxhPTAsYz0wLHU9MDtyZXR1cm4oZT9uOnIpLmZpbmQoKGZ1bmN0aW9uKGUsbil7cmV0dXJuIHQ+PWVbMF0mJnQ8ZVsxXSYmKG89ZVswXSxhPWVbMV0sYz1pW25dWzBdLHU9aVtuXVsxXSwhMCl9KSksYysodS1jKS8oYS1vKSoodC1vKX0sej1mdW5jdGlvbih0KXtyZXR1cm4gdD9cIiwgXCI6XCIsXCJ9LFE9ZnVuY3Rpb24odCxlKXt2YXIgbj1ZKE9iamVjdC5rZXlzKHQpKTtyZXR1cm4gc1tkW25dXS5yZWR1Y2UoKGZ1bmN0aW9uKG4scixpKXt2YXIgbz10W3JdO3JldHVybiB2b2lkIDAhPT1vJiZuLnB1c2goZShvLGkpKSxufSksW10pfSxXPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQucmVwbGFjZShBLChmdW5jdGlvbih0LG4pe3JldHVyblwiXCIuY29uY2F0KGVbK24tMV0pfSkpfSxKPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5hbHBoYVVuaXQscj1lLmxlZ2FjeUNTUyxpPWUuZGVjaW1hbHM7cmV0dXJuIG4hPT1mLlBFUkNFTlR8fHI/Syh0LGkpOlwiXCIuY29uY2F0KEsoMTAwKnQsaSksXCIlXCIpfSxaPSgoSD17fSlbbi5IRVhdPWZ1bmN0aW9uKHQpe3ZhciBlPVEodCwoZnVuY3Rpb24odCl7cmV0dXJuIGU9Syh0KSwxPT09KG49SyhlLDApLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpKS5sZW5ndGgmJihuPVwiMFwiLmNvbmNhdChuKSksbjt2YXIgZSxufSkpLG49ND09PWUubGVuZ3RoP1wiI3sxfXsyfXszfXs0fVwiOlwiI3sxfXsyfXszfVwiO3JldHVybiBXKG4sZSl9LEhbbi5SR0JdPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5kZWNpbWFscyxyPWUubGVnYWN5Q1NTLGk9ZS5zcGFjZXNBZnRlckNvbW1hcyxvPWUucmdiVW5pdCxhPXooaSksYz1RKHQsKGZ1bmN0aW9uKHQscil7cmV0dXJuIG89PT1mLlBFUkNFTlQmJnI8Mz9cIlwiLmNvbmNhdChmdW5jdGlvbih0LGUpe3JldHVybiBLKHQvMjU1KjEwMCxlKX0odCxuKSxcIiVcIik6Mz09PXI/Sih0LGUpOksodCxuKX0pKSx1PXI/ND09PWMubGVuZ3RoP1wicmdiYSh7MX1cIi5jb25jYXQoYSxcInsyfVwiKS5jb25jYXQoYSxcInszfVwiKS5jb25jYXQoYSxcIns0fSlcIik6XCJyZ2IoezF9XCIuY29uY2F0KGEsXCJ7Mn1cIikuY29uY2F0KGEsXCJ7M30pXCIpOjQ9PT1jLmxlbmd0aD9cInJnYih7MX0gezJ9IHszfSAvIHs0fSlcIjpcInJnYih7MX0gezJ9IHszfSlcIjtyZXR1cm4gVyh1LGMpfSxIW24uSFNMXT1mdW5jdGlvbih0LGUpe3ZhciBuPWUuZGVjaW1hbHMscj1lLmxlZ2FjeUNTUyxpPWUuc3BhY2VzQWZ0ZXJDb21tYXMsbz1lLmFuZ2xlc1VuaXQsYT16KGkpLGM9USh0LChmdW5jdGlvbih0LHIpe2lmKDA9PT1yJiZvIT09bC5OT05FKXt2YXIgaT1LKFAodCxvKSxuKTtyZXR1cm5cIlwiLmNvbmNhdChpKS5jb25jYXQobyl9cmV0dXJuIDM9PT1yP0oodCxlKTpLKHQsbil9KSksdT1yPzQ9PT1jLmxlbmd0aD9cImhzbGEoezF9XCIuY29uY2F0KGEsXCJ7Mn0lXCIpLmNvbmNhdChhLFwiezN9JVwiKS5jb25jYXQoYSxcIns0fSlcIik6XCJoc2woezF9XCIuY29uY2F0KGEsXCJ7Mn0lXCIpLmNvbmNhdChhLFwiezN9JSlcIik6ND09PWMubGVuZ3RoP1wiaHNsKHsxfSB7Mn0lIHszfSUgLyB7NH0pXCI6XCJoc2woezF9IHsyfSUgezN9JSlcIjtyZXR1cm4gVyh1LGMpfSxIW24uQ01ZS109ZnVuY3Rpb24odCxlKXt2YXIgbj1lLmRlY2ltYWxzLHI9ZS5sZWdhY3lDU1MsaT1lLnNwYWNlc0FmdGVyQ29tbWFzLG89ZS5jbXlrVW5pdCxhPWUuY215a0Z1bmN0aW9uLGM9eihpKSx1PVEodCwoZnVuY3Rpb24odCxyKXtyZXR1cm4gbz09PWYuUEVSQ0VOVCYmcjw0P1wiXCIuY29uY2F0KEsodCxuKSxcIiVcIik6ND09PXI/Sih0LGUpOksodC8xMDAsbil9KSkscz1yPzU9PT11Lmxlbmd0aD9cIlwiLmNvbmNhdChhLFwiKHsxfVwiKS5jb25jYXQoYyxcInsyfVwiKS5jb25jYXQoYyxcInszfVwiKS5jb25jYXQoYyxcIns0fVwiKS5jb25jYXQoYyxcIns1fSlcIik6XCJcIi5jb25jYXQoYSxcIih7MX1cIikuY29uY2F0KGMsXCJ7Mn1cIikuY29uY2F0KGMsXCJ7M31cIikuY29uY2F0KGMsXCJ7NH0pXCIpOjU9PT11Lmxlbmd0aD9cIlwiLmNvbmNhdChhLFwiKHsxfSB7Mn0gezN9IHs0fSAvIHs1fSlcIik6XCJcIi5jb25jYXQoYSxcIih7MX0gezJ9IHszfSB7NH0pXCIpO3JldHVybiBXKHMsdSl9LEgpLHR0PWZ1bmN0aW9uKHQpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0JiYodD1tLnRlc3QodCk/TCh0KS8xMDA6K3QpLGlzTmFOKCt0KXx8dD4xPzE6Syh0KX0sZXQ9ZnVuY3Rpb24obixyLG8pe3JldHVybiByLnJlZHVjZSgoZnVuY3Rpb24ocixhKXtyZXR1cm4gZShlKFtdLHIsITApLFt0KHQoe30sbikse2g6bz09PWkuQURESVRJVkU/VChuLmgrYSk6VCgkKCQobi5oLCExKSthLCEwKSl9KV0sITEpfSksW3Qoe30sbildKX0sbnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXQodCxbMzAsLTMwXSxlKX0scnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXQodCxbMTgwXSxlKX0saXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXQodCxbMTUwLC0xNTBdLGUpfSxvdD1mdW5jdGlvbih0LGUpe3JldHVybiBldCh0LFsxMjAsLTEyMF0sZSl9LGF0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV0KHQsWzYwLC0xMjAsMTgwXSxlKX0sY3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXQodCxbOTAsLTkwLDE4MF0sZSl9LHV0PWZ1bmN0aW9uKHQpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0P2Z1bmN0aW9uKHQpe3ZhciBlO2lmKE9iamVjdC5rZXlzKG4pLnNvbWUoKGZ1bmN0aW9uKG4pe2lmKHBbbl0udGVzdCh0KSlyZXR1cm4gZT1uLCEwfSkpLCFlJiZ+dS5pbmRleE9mKHQpJiYoZT1uLkhFWCksIWUpdGhyb3cgbmV3IEVycm9yKEYpO3JldHVybiBlfSh0KTpmdW5jdGlvbih0KXt2YXIgZSxyPSExLGk9WShPYmplY3Qua2V5cyh0KSk7aWYoZFtpXSYmKGU9ZFtpXSksZSYmZT09PW4uUkdCKXt2YXIgbz1PYmplY3QuZW50cmllcyh0KS5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4hYi50ZXN0KFwiXCIuY29uY2F0KHRbMV0pKX0pKSxhPU9iamVjdC5lbnRyaWVzKHQpLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiEobS50ZXN0KFwiXCIuY29uY2F0KHRbMV0pKXx8IWIudGVzdChcIlwiLmNvbmNhdCh0WzFdKSkmJiFpc05hTigrdFsxXSkmJit0WzFdPD0yNTUpfSkpO28mJmEmJihyPSEwKSxvfHwoZT1uLkhFWCl9aWYoIWV8fHIpdGhyb3cgbmV3IEVycm9yKHYpO3JldHVybiBlfSh0KX0sc3Q9KChCPXt9KVtuLkhFWF09ZnVuY3Rpb24odCl7dmFyIGU9KH51LmluZGV4T2YodCk/b1t0XTp0KS5tYXRjaChwLkhFWCksbj17cjprKGVbMV18fGVbNV0pLGc6ayhlWzJdfHxlWzZdKSxiOmsoZVszXXx8ZVs3XSl9LHI9ZVs0XXx8ZVs4XTtyZXR1cm4gdm9pZCAwIT09ciYmKG4uYT1rKHIpLzI1NSksbn0sQltuLlJHQl09ZnVuY3Rpb24odCl7dmFyIGU9dC5tYXRjaChwLlJHQiksbj1YKGVbMV18fGVbNV0pLHI9WChlWzJdfHxlWzZdKSxpPVgoZVszXXx8ZVs3XSksbz1lWzRdfHxlWzhdLGE9e3I6TWF0aC5taW4obiwyNTUpLGc6TWF0aC5taW4ociwyNTUpLGI6TWF0aC5taW4oaSwyNTUpfTtyZXR1cm4gdm9pZCAwIT09byYmKGEuYT10dChvKSksYX0sQltuLkhTTF09ZnVuY3Rpb24odCl7dmFyIGU9dC5tYXRjaChwLkhTTCksbj1UKGVbMV18fGVbNV0pLHI9RyhlWzJdfHxlWzZdKSxpPUcoZVszXXx8ZVs3XSksbz1lWzRdfHxlWzhdLGE9eChuLHIsaSk7cmV0dXJuIHZvaWQgMCE9PW8mJihhLmE9dHQobykpLGF9LEJbbi5DTVlLXT1mdW5jdGlvbih0KXt2YXIgZT10Lm1hdGNoKHAuQ01ZSyksbj1JKGVbMV18fGVbNl0pLHI9SShlWzJdfHxlWzddKSxpPUkoZVszXXx8ZVs4XSksbz1JKGVbNF18fGVbOV0pLGE9ZVs1XXx8ZVsxMF0sYz1WKG4scixpLG8pO3JldHVybiB2b2lkIDAhPT1hJiYoYy5hPXR0KGEpKSxjfSxCKSxkdD0oKEM9e30pW24uSEVYXT1mdW5jdGlvbih0KXt2YXIgZT17cjpYKFwiXCIuY29uY2F0KHQucikpLGc6WChcIlwiLmNvbmNhdCh0LmcpKSxiOlgoXCJcIi5jb25jYXQodC5iKSl9O3JldHVybiBPKHQsXCJhXCIpJiYoZS5hPU1hdGgubWluKFgoXCJcIi5jb25jYXQodC5hKSwhMCksMSkpLGV9LENbbi5SR0JdPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLkhFWCh0KX0sQ1tuLkhTTF09ZnVuY3Rpb24odCl7dmFyIGU9RyhcIlwiLmNvbmNhdCh0LnMpKSxuPUcoXCJcIi5jb25jYXQodC5sKSkscj14KFQodC5oKSxlLG4pO3JldHVybiBPKHQsXCJhXCIpJiYoci5hPXR0KHQuYSkpLHJ9LENbbi5DTVlLXT1mdW5jdGlvbih0KXt2YXIgZT1JKFwiXCIuY29uY2F0KHQuYykpLG49SShcIlwiLmNvbmNhdCh0Lm0pKSxyPUkoXCJcIi5jb25jYXQodC55KSksaT1JKFwiXCIuY29uY2F0KHQuaykpLG89VihlLG4scixpKTtyZXR1cm4gTyh0LFwiYVwiKSYmKG8uYT10dCh0LmEpKSxvfSxDKSxsdD1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT11dCh0KSksXCJzdHJpbmdcIj09dHlwZW9mIHQ/c3RbZV0odCk6ZHRbZV0odCl9LGZ0PSgoUz17fSlbbi5IRVhdPWZ1bmN0aW9uKHQpe3JldHVybntyOmoodC5yKSxnOmoodC5nKSxiOmoodC5iKX19LFMuSEVYQT1mdW5jdGlvbih0KXt2YXIgZT1mdC5IRVgodCk7cmV0dXJuIGUuYT1PKHQsXCJhXCIpP2ooMjU1KnQuYSk6XCIweEZGXCIsZX0sU1tuLlJHQl09ZnVuY3Rpb24odCxlKXt2YXIgbj1tdCh0LGUpO3JldHVybiBPKG4sXCJhXCIpJiZkZWxldGUgbi5hLG59LFMuUkdCQT1mdW5jdGlvbih0LGUpe3ZhciBuPWZ0LlJHQih0LGUpO3JldHVybiBuLmE9Tyh0LFwiYVwiKT9LKHQuYSk6MSxufSxTW24uSFNMXT1mdW5jdGlvbih0LGUpe3ZhciBuPV8odC5yLHQuZyx0LmIpO3JldHVybiBkZWxldGUgbi5hLGJ0KG4sZSl9LFMuSFNMQT1mdW5jdGlvbih0LGUpe3ZhciBuPWZ0LkhTTCh0LGUpO3JldHVybiBuLmE9Tyh0LFwiYVwiKT9LKHQuYSxlKToxLG59LFNbbi5DTVlLXT1mdW5jdGlvbih0LGUpe3JldHVybiBBdChxKHQucix0LmcsdC5iKSxlKX0sUy5DTVlLQT1mdW5jdGlvbih0LGUpe3ZhciBuPWZ0LkNNWUsodCxlKTtyZXR1cm4gbi5hPU8odCxcImFcIik/Syh0LmEsZSk6MSxufSxTKSxodD1mdW5jdGlvbihlLHIsaSxvKXt2YXIgYT11dChlKSxjPVwic3RyaW5nXCI9PXR5cGVvZiBlLHU9bHQoZSxhKSxzPVwic3RyaW5nXCI9PXR5cGVvZiBlJiZPKHUsXCJhXCIpfHxcInN0cmluZ1wiIT10eXBlb2YgZSYmTyhlLFwiYVwiKSxkPV8odS5yLHUuZyx1LmIsdS5hKTtzfHxkZWxldGUgZC5hO3ZhciBsPWk/ZC5sLyhyKzEpOigxMDAtZC5sKS8ocisxKSxmPUFycmF5KHIpLmZpbGwobnVsbCkubWFwKChmdW5jdGlvbihlLG4pe3JldHVybiB0KHQoe30sZCkse2w6ZC5sK2wqKG4rMSkqKDEtMioraSl9KX0pKTtzd2l0Y2goYSl7Y2FzZSBuLkhFWDpkZWZhdWx0OnJldHVybiBmLm1hcCgoZnVuY3Rpb24oZSl7dmFyIG49eChlLmgsZS5zLGUubCk7cmV0dXJuIHMmJihuLmE9ZS5hKSxjP3M/Wi5IRVgodCh0KHt9LG4pLHthOksoMjU1Km4uYSl9KSk6Wi5IRVgobik6cz9mdC5IRVhBKG4pOmZ0LkhFWChuKX0pKTtjYXNlIG4uUkdCOnJldHVybiBmLm1hcCgoZnVuY3Rpb24odCl7dmFyIGU9eCh0LmgsdC5zLHQubCk7cmV0dXJuIHMmJihlLmE9dC5hKSxjP1ouUkdCKGUsbyk6cz9mdC5SR0JBKGUsby5kZWNpbWFscyk6ZnQuUkdCKGUsby5kZWNpbWFscyl9KSk7Y2FzZSBuLkhTTDpyZXR1cm4gZi5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBjP1ouSFNMKGUsbyk6cz9mdC5IU0xBKHQodCh7fSx4KGUuaCxlLnMsZS5sKSkse2E6ZS5hfSksby5kZWNpbWFscyk6ZnQuSFNMKHgoZS5oLGUucyxlLmwpLG8uZGVjaW1hbHMpfSkpfX0scHQ9KChSPXtidWlsZEhhcm1vbnk6ZnVuY3Rpb24odCxlLHIsaSl7dmFyIG89dXQodCksYT1sdCh0LG8pLGM9XyhhLnIsYS5nLGEuYixhLmEpLHU9XCJzdHJpbmdcIj09dHlwZW9mIHQmJk8oYSxcImFcIil8fFwic3RyaW5nXCIhPXR5cGVvZiB0JiZPKHQsXCJhXCIpLHM9XCJzdHJpbmdcIj09dHlwZW9mIHQ7c3dpdGNoKG8pe2Nhc2Ugbi5IRVg6ZGVmYXVsdDpyZXR1cm4gdT90aGlzLkhFWEEoYnQoYywwKSxlLHIscyk6dGhpcy5IRVgoYnQoYywwKSxlLHIscyk7Y2FzZSBuLkhTTDpyZXR1cm4gdT90aGlzLkhTTEEoYyxlLHIscyxpKTp0aGlzLkhTTChjLGUscixzLGkpO2Nhc2Ugbi5SR0I6cmV0dXJuIHU/dGhpcy5SR0JBKGMsZSxyLHMsaSk6dGhpcy5SR0IoYyxlLHIscyxpKX19fSlbbi5IRVhdPWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiBlKHQsbikubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gcj9aLkhFWCh4KHQuaCx0LnMsdC5sKSk6ZnQuSEVYKHgodC5oLHQucyx0LmwpKX0pKX0sUi5IRVhBPWZ1bmN0aW9uKGUsbixyLGkpe3JldHVybiBuKGUscikubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gaT9aLkhFWCh0KHQoe30seChlLmgsZS5zLGUubCkpLHthOjI1NSp0dChlLmEpfSkpOmZ0LkhFWEEodCh0KHt9LHgoZS5oLGUucyxlLmwpKSx7YTp0dChlLmEpfSkpfSkpfSxSW24uUkdCXT1mdW5jdGlvbih0LGUsbixyLGkpe3JldHVybiBlKHQsbikubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gcj9aLlJHQih4KHQuaCx0LnMsdC5sKSxpKTpmdC5SR0IoeCh0LmgsdC5zLHQubCksaS5kZWNpbWFscyl9KSl9LFIuUkdCQT1mdW5jdGlvbihlLG4scixpLG8pe3JldHVybiBuKGUscikubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gaT9aLlJHQih0KHQoe30seChlLmgsZS5zLGUubCkpLHthOnR0KGUuYSl9KSxvKTpmdC5SR0JBKHQodCh7fSx4KGUuaCxlLnMsZS5sKSkse2E6dHQoZS5hKX0pLG8uZGVjaW1hbHMpfSkpfSxSW24uSFNMXT1mdW5jdGlvbih0LGUsbixyLGkpe3JldHVybiBlKHQsbikubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gcj9aLkhTTCh7aDp0Lmgsczp0LnMsbDp0Lmx9LGkpOmZ0LkhTTCh4KHQuaCx0LnMsdC5sKSxpLmRlY2ltYWxzKX0pKX0sUi5IU0xBPWZ1bmN0aW9uKGUsbixyLGksbyl7cmV0dXJuIG4oZSxyKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBpP1ouSFNMKHQodCh7fSxlKSx7YTp0dChlLmEpfSksbyk6ZnQuSFNMQSh0KHQoe30seChlLmgsZS5zLGUubCkpLHthOnR0KGUuYSl9KSxvLmRlY2ltYWxzKX0pKX0sUiksZ3Q9KChNPXttaXg6ZnVuY3Rpb24oZSxuKXt2YXIgcixvLGEsYyx1LHMsZCxsLGYsaCxwLGcsbSxiLEEseT1lLm1hcCgoZnVuY3Rpb24odCl7dmFyIGU9dXQodCk7cmV0dXJuIGx0KHQsZSl9KSksRT1uPT09aS5TVUJUUkFDVElWRT95Lm1hcCgoZnVuY3Rpb24odCl7dmFyIGUsbixyLGksbyxhLGMsdSxzLGQsbCxmLGgscCxnPShlPXQucixuPXQuZyxyPXQuYixpPU1hdGgubWluKGUsbixyKSxvPU1hdGgubWluKDI1NS1lLDI1NS1uLDI1NS1yKSxhPWUtaSxjPW4taSx1PXItaSxzPU1hdGgubWluKGEsYyksZD1hLXMsbD0oYytzKS8yLGY9KHUrYy1zKS8yLGg9TWF0aC5tYXgoZCxsLGYpL01hdGgubWF4KGEsYyx1KSxwPWlzTmFOKGgpfHxoPT09MS8wfHxoPD0wPzE6aCx7cjpkL3Arbyx5OmwvcCtvLGI6Zi9wK299KTtyZXR1cm4gTyh0LFwiYVwiKSYmKGcuYT10LmEpLGd9KSk6bnVsbDtmdW5jdGlvbiBGKGUpe3ZhciByPW49PT1pLkFERElUSVZFP3tyOjAsZzowLGI6MCxhOjB9OntyOjAseTowLGI6MCxhOjB9O3JldHVybiBlLnJlZHVjZSgoZnVuY3Rpb24oZSxyKXt2YXIgbz1PKHIsXCJhXCIpP3IuYToxLGE9e3I6TWF0aC5taW4oZS5yK3IucipvLDI1NSksYjpNYXRoLm1pbihlLmIrci5iKm8sMjU1KSxhOjEtKDEtbykqKDEtZS5hKX0sYz1cImdcImluIGU/ZS5nOmUueSx1PVwiZ1wiaW4gcj9yLmc6ci55O3JldHVybiB0KHQoe30sYSksbj09PWkuQURESVRJVkU/e2c6TWF0aC5taW4oYyt1Km8sMjU1KX06e3k6TWF0aC5taW4oYyt1Km8sMjU1KX0pfSkscil9aWYobj09PWkuQURESVRJVkUpcj1GKHkpO2Vsc2V7dmFyIHY9RihFKTtvPXYucixhPXYueSxjPXYuYix1PU1hdGgubWluKG8sYSxjKSxzPU1hdGgubWluKDI1NS1vLDI1NS1hLDI1NS1jKSxkPW8tdSxsPWEtdSxmPWMtdSxoPU1hdGgubWluKGwsZikscD1kK2wtaCxnPWwraCxtPTIqKGYtaCksYj1NYXRoLm1heChwLGcsbSkvTWF0aC5tYXgoZCxsLGYpLEE9aXNOYU4oYil8fGI9PT0xLzB8fGI8PTA/MTpiLChyPXtyOnAvQStzLGc6Zy9BK3MsYjptL0Erc30pLmE9di5hfXJldHVybntyOksoci5yKSxnOksoci5nKSxiOksoci5iKSxhOk4oci5hLDAsMSl9fX0pW24uSEVYXT1mdW5jdGlvbih0LGUsbil7dmFyIHI9dGhpcy5taXgodCxlKTtyZXR1cm4gZGVsZXRlIHIuYSxuP1ouSEVYKHIpOmZ0LkhFWChyKX0sTS5IRVhBPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzLm1peCh0LGUpO3JldHVybiByLmE9bj8yNTUqdHQoci5hKTp0dChyLmEpLG4/Wi5IRVgocik6ZnQuSEVYQShyKX0sTVtuLlJHQl09ZnVuY3Rpb24odCxlLG4scil7dmFyIGk9dGhpcy5taXgodCxlKTtyZXR1cm4gZGVsZXRlIGkuYSxuP1ouUkdCKGkscik6ZnQuUkdCKGksci5kZWNpbWFscyl9LE0uUkdCQT1mdW5jdGlvbih0LGUsbixyKXt2YXIgaT10aGlzLm1peCh0LGUpO3JldHVybiBuP1ouUkdCKGkscik6ZnQuUkdCQShpLHIuZGVjaW1hbHMpfSxNW24uSFNMXT1mdW5jdGlvbih0LGUsbixyKXt2YXIgaT10aGlzLm1peCh0LGUpLG89XyhpLnIsaS5nLGkuYik7cmV0dXJuIGRlbGV0ZSBpLmEsZGVsZXRlIG8uYSxuP1ouSFNMKG8scik6ZnQuSFNMKGksci5kZWNpbWFscyl9LE0uSFNMQT1mdW5jdGlvbih0LGUsbixyKXt2YXIgaT10aGlzLm1peCh0LGUpLG89XyhpLnIsaS5nLGkuYixpLmEpO3JldHVybiBuP1ouSFNMKG8scik6ZnQuSFNMQShpLHIuZGVjaW1hbHMpfSxNKSxtdD1mdW5jdGlvbihlLG4pe3ZhciByPUsoZS5yLG4pLGk9SyhlLmcsbiksbz1LKGUuYixuKTtyZXR1cm4gdCh7cjpyLGc6aSxiOm99LE8oZSxcImFcIik/e2E6SyhlLmEsbil9Ont9KX0sYnQ9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdCh7aDpLKGUuaCxuKSxzOksoZS5zLG4pLGw6SyhlLmwsbil9LE8oZSxcImFcIik/e2E6SyhlLmEsbil9Ont9KX0sQXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm57YzpLKHQuYyxlKSxtOksodC5tLGUpLHk6Syh0LnksZSksazpLKHQuayxlKX19LHl0PWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiByKGx0KHQsZSksbil9LEV0PWZ1bmN0aW9uKHQsZSxuLHIsaSl7bjwxJiYobj01KTt2YXIgbz1mdW5jdGlvbih0LGUsbil7dmFyIHI9bi0xLGk9KGUuci10LnIpL3Isbz0oZS5nLXQuZykvcixhPShlLmItdC5iKS9yLGM9dHQodC5hKSx1PSh0dChlLmEpLWMpL3I7cmV0dXJuIEFycmF5KG4pLmZpbGwobnVsbCkubWFwKChmdW5jdGlvbihuLHMpe3JldHVybiAwPT09cz90OnM9PT1yP2U6e3I6Syh0LnIraSpzKSxnOksodC5nK28qcyksYjpLKHQuYithKnMpLGE6SyhjK3Uqcyl9fSkpfShsdCh0KSxsdChlKSxuKTtyZXR1cm4gby5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBpKHQscil9KSl9LEZ0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KSx0aGlzLl9vcHRpb25zPVUoZSx0KSx0aGlzLnJnYj1sdCh0KSx0aGlzLnVwZGF0ZUhTTCgpLHRoaXMudXBkYXRlQ01ZSygpfXJldHVybiBuLnByb3RvdHlwZS51cGRhdGVSR0I9ZnVuY3Rpb24oKXt0aGlzLnJnYj10KHQoe30seCh0aGlzLmhzbC5oLHRoaXMuaHNsLnMsdGhpcy5oc2wubCkpLHthOnRoaXMuaHNsLmF9KX0sbi5wcm90b3R5cGUudXBkYXRlUkdCRnJvbUNNWUs9ZnVuY3Rpb24oKXt0aGlzLnJnYj10KHQoe30sVih0aGlzLmNteWsuYyx0aGlzLmNteWsubSx0aGlzLmNteWsueSx0aGlzLmNteWsuaykpLHthOnRoaXMucmdiLmF9KX0sbi5wcm90b3R5cGUudXBkYXRlSFNMPWZ1bmN0aW9uKCl7dGhpcy5oc2w9Xyh0aGlzLnJnYi5yLHRoaXMucmdiLmcsdGhpcy5yZ2IuYix0aGlzLnJnYi5hKX0sbi5wcm90b3R5cGUudXBkYXRlQ01ZSz1mdW5jdGlvbigpe3RoaXMuY215az1xKHRoaXMucmdiLnIsdGhpcy5yZ2IuZyx0aGlzLnJnYi5iKX0sbi5wcm90b3R5cGUudXBkYXRlUkdCQW5kQ01ZSz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnVwZGF0ZVJHQigpLHRoaXMudXBkYXRlQ01ZSygpLHRoaXN9LG4ucHJvdG90eXBlLnVwZGF0ZUhTTEFuZENNWUs9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51cGRhdGVIU0woKSx0aGlzLnVwZGF0ZUNNWUsoKSx0aGlzfSxuLnByb3RvdHlwZS51cGRhdGVSR0JBbmRIU0w9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51cGRhdGVSR0JGcm9tQ01ZSygpLHRoaXMudXBkYXRlSFNMKCksdGhpc30sbi5wcm90b3R5cGUuc2V0T3B0aW9ucz1mdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9e30pLHRoaXMuX29wdGlvbnM9dCh0KHt9LHRoaXMuX29wdGlvbnMpLGUpLHRoaXN9LG4ucHJvdG90eXBlLnNldEg9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaHNsLmg9VCh0KSx0aGlzLnVwZGF0ZVJHQkFuZENNWUsoKX0sbi5wcm90b3R5cGUuc2V0Uz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5oc2wucz1OKHQsMCwxMDApLHRoaXMudXBkYXRlUkdCQW5kQ01ZSygpfSxuLnByb3RvdHlwZS5zZXRMPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmhzbC5sPU4odCwwLDEwMCksdGhpcy51cGRhdGVSR0JBbmRDTVlLKCl9LG4ucHJvdG90eXBlLnNldFI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucmdiLnI9Tih0LDAsMjU1KSx0aGlzLnVwZGF0ZUhTTEFuZENNWUsoKX0sbi5wcm90b3R5cGUuc2V0Rz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yZ2IuZz1OKHQsMCwyNTUpLHRoaXMudXBkYXRlSFNMQW5kQ01ZSygpfSxuLnByb3RvdHlwZS5zZXRCPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJnYi5iPU4odCwwLDI1NSksdGhpcy51cGRhdGVIU0xBbmRDTVlLKCl9LG4ucHJvdG90eXBlLnNldEE9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaHNsLmE9dGhpcy5yZ2IuYT1OKHQsMCwxKSx0aGlzfSxuLnByb3RvdHlwZS5zZXRDPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNteWsuYz1OKHQsMCwxMDApLHRoaXMudXBkYXRlUkdCQW5kSFNMKCl9LG4ucHJvdG90eXBlLnNldE09ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY215ay5tPU4odCwwLDEwMCksdGhpcy51cGRhdGVSR0JBbmRIU0woKX0sbi5wcm90b3R5cGUuc2V0WT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbXlrLnk9Tih0LDAsMTAwKSx0aGlzLnVwZGF0ZVJHQkFuZEhTTCgpfSxuLnByb3RvdHlwZS5zZXRLPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNteWsuaz1OKHQsMCwxMDApLHRoaXMudXBkYXRlUkdCQW5kSFNMKCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIm9wdGlvbnNcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29wdGlvbnN9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiSFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzLmhzbC5oLHRoaXMub3B0aW9ucy5kZWNpbWFscyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiU1wiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzLmhzbC5zLHRoaXMub3B0aW9ucy5kZWNpbWFscyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiTFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzLmhzbC5sLHRoaXMub3B0aW9ucy5kZWNpbWFscyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiUlwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzLnJnYi5yLHRoaXMub3B0aW9ucy5kZWNpbWFscyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiR1wiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzLnJnYi5nLHRoaXMub3B0aW9ucy5kZWNpbWFscyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiQlwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzLnJnYi5iLHRoaXMub3B0aW9ucy5kZWNpbWFscyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiQVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzLmhzbC5hLHRoaXMub3B0aW9ucy5kZWNpbWFscyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiQ1wiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzLmNteWsuYyx0aGlzLm9wdGlvbnMuZGVjaW1hbHMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIk1cIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEsodGhpcy5jbXlrLm0sdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJZXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMuY215ay55LHRoaXMub3B0aW9ucy5kZWNpbWFscyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiS1wiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzLmNteWsuayx0aGlzLm9wdGlvbnMuZGVjaW1hbHMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkhFWE9iamVjdFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZnQuSEVYKHRoaXMucmdiKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJIRVhBT2JqZWN0XCIse2dldDpmdW5jdGlvbigpe3JldHVybiBmdC5IRVhBKHRoaXMucmdiKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJSR0JPYmplY3RcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJue3I6dGhpcy5SLGc6dGhpcy5HLGI6dGhpcy5CfX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJSR0JBT2JqZWN0XCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0KHQoe30sdGhpcy5SR0JPYmplY3QpLHthOnRoaXMuQX0pfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkhTTE9iamVjdFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57aDp0aGlzLkgsczp0aGlzLlMsbDp0aGlzLkx9fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkhTTEFPYmplY3RcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHQodCh7fSx0aGlzLkhTTE9iamVjdCkse2E6dGhpcy5BfSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiQ01ZS09iamVjdFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57Yzp0aGlzLkMsbTp0aGlzLk0seTp0aGlzLlksazp0aGlzLkt9fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkNNWUtBT2JqZWN0XCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0KHQoe30sdGhpcy5DTVlLT2JqZWN0KSx7YTp0aGlzLkF9KX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJIRVhcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFouSEVYKHtyOnRoaXMuUixnOnRoaXMuRyxiOnRoaXMuQn0pfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkhFWEFcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFouSEVYKHtyOnRoaXMuUixnOnRoaXMuRyxiOnRoaXMuQixhOjI1NSp0aGlzLkF9KX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJSR0JcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFouUkdCKHtyOnRoaXMuUixnOnRoaXMuRyxiOnRoaXMuQn0sdGhpcy5vcHRpb25zKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJSR0JBXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBaLlJHQih7cjp0aGlzLlIsZzp0aGlzLkcsYjp0aGlzLkIsYTp0aGlzLkF9LHRoaXMub3B0aW9ucyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiSFNMXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBaLkhTTCh7aDp0aGlzLkgsczp0aGlzLlMsbDp0aGlzLkx9LHRoaXMub3B0aW9ucyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiSFNMQVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWi5IU0woe2g6dGhpcy5ILHM6dGhpcy5TLGw6dGhpcy5MLGE6dGhpcy5BfSx0aGlzLm9wdGlvbnMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkNNWUtcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFouQ01ZSyh7Yzp0aGlzLkMsbTp0aGlzLk0seTp0aGlzLlksazp0aGlzLkt9LHRoaXMub3B0aW9ucyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiQ01ZS0FcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFouQ01ZSyh7Yzp0aGlzLkMsbTp0aGlzLk0seTp0aGlzLlksazp0aGlzLkssYTp0aGlzLkF9LHRoaXMub3B0aW9ucyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksbi50b0hFWE9iamVjdD1mdW5jdGlvbih0KXt2YXIgZT11dCh0KTtyZXR1cm4geXQodCxlLDAsZnQuSEVYKX0sbi50b0hFWD1mdW5jdGlvbih0KXtyZXR1cm4gWi5IRVgobi50b0hFWE9iamVjdCh0KSl9LG4udG9IRVhBT2JqZWN0PWZ1bmN0aW9uKHQpe3ZhciBlPXV0KHQpO3JldHVybiB5dCh0LGUsMCxmdC5IRVhBKX0sbi50b0hFWEE9ZnVuY3Rpb24odCl7cmV0dXJuIFouSEVYKG4udG9IRVhBT2JqZWN0KHQpKX0sbi50b1JHQk9iamVjdD1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj11dCh0KTtyZXR1cm4geXQodCxuLGUuZGVjaW1hbHMsZnQuUkdCKX0sbi50b1JHQj1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj11dCh0KSxyPVUoZSx0KSxpPXl0KHQsbiw2LGZ0LlJHQik7cmV0dXJuIFouUkdCKGkscil9LG4udG9SR0JBT2JqZWN0PWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpO3JldHVybiB5dCh0LG4sZS5kZWNpbWFscyxmdC5SR0JBKX0sbi50b1JHQkE9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIG49dXQodCkscj1VKGUsdCksaT15dCh0LG4sNixmdC5SR0JBKTtyZXR1cm4gWi5SR0IoaSxyKX0sbi50b0hTTE9iamVjdD1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj11dCh0KTtyZXR1cm4geXQodCxuLGUuZGVjaW1hbHMsZnQuSFNMKX0sbi50b0hTTD1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj11dCh0KSxyPVUoZSx0KSxpPXl0KHQsbiw2LGZ0LkhTTCk7cmV0dXJuIFouSFNMKGkscil9LG4udG9IU0xBT2JqZWN0PWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpO3JldHVybiB5dCh0LG4sZS5kZWNpbWFscyxmdC5IU0xBKX0sbi50b0hTTEE9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIG49dXQodCkscj1VKGUsdCksaT15dCh0LG4sNixmdC5IU0xBKTtyZXR1cm4gWi5IU0woaSxyKX0sbi50b0NNWUtPYmplY3Q9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIG49dXQodCk7cmV0dXJuIHl0KHQsbixlLmRlY2ltYWxzLGZ0LkNNWUspfSxuLnRvQ01ZSz1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj11dCh0KSxyPVUoZSx0KSxpPXl0KHQsbiw2LGZ0LkNNWUspO3JldHVybiBaLkNNWUsoaSxyKX0sbi50b0NNWUtBT2JqZWN0PWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpO3JldHVybiB5dCh0LG4sZS5kZWNpbWFscyxmdC5DTVlLQSl9LG4udG9DTVlLQT1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj11dCh0KSxyPVUoZSx0KSxpPXl0KHQsbiw2LGZ0LkNNWUtBKTtyZXR1cm4gWi5DTVlLKGkscil9LG4uZ2V0QmxlbmRIRVhPYmplY3Q9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB2b2lkIDA9PT1uJiYobj01KSxFdCh0LGUsbiwwLGZ0LkhFWCl9LG4uZ2V0QmxlbmRIRVg9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB2b2lkIDA9PT1yJiYocj01KSxuLmdldEJsZW5kSEVYT2JqZWN0KHQsZSxyKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBaLkhFWCh0KX0pKX0sbi5nZXRCbGVuZEhFWEFPYmplY3Q9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB2b2lkIDA9PT1uJiYobj01KSxFdCh0LGUsbiwwLGZ0LkhFWEEpfSxuLmdldEJsZW5kSEVYQT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHZvaWQgMD09PXImJihyPTUpLG4uZ2V0QmxlbmRIRVhBT2JqZWN0KHQsZSxyKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBaLkhFWCh0KX0pKX0sbi5nZXRCbGVuZFJHQk9iamVjdD1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49NSksdm9pZCAwPT09ciYmKHI9e30pLEV0KHQsZSxuLHIuZGVjaW1hbHMsZnQuUkdCKX0sbi5nZXRCbGVuZFJHQj1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49NSksdm9pZCAwPT09ciYmKHI9e30pLEV0KHQsZSxuLDYsZnQuUkdCKS5tYXAoKGZ1bmN0aW9uKG4pe3JldHVybiBaLlJHQihuLFUocix0LGUpKX0pKX0sbi5nZXRCbGVuZFJHQkFPYmplY3Q9ZnVuY3Rpb24odCxlLG4scil7cmV0dXJuIHZvaWQgMD09PW4mJihuPTUpLHZvaWQgMD09PXImJihyPXt9KSxFdCh0LGUsbixyLmRlY2ltYWxzLGZ0LlJHQkEpfSxuLmdldEJsZW5kUkdCQT1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49NSksdm9pZCAwPT09ciYmKHI9e30pLEV0KHQsZSxuLDYsZnQuUkdCQSkubWFwKChmdW5jdGlvbihuKXtyZXR1cm4gWi5SR0IobixVKHIsdCxlKSl9KSl9LG4uZ2V0QmxlbmRIU0xPYmplY3Q9ZnVuY3Rpb24odCxlLG4scil7cmV0dXJuIHZvaWQgMD09PW4mJihuPTUpLHZvaWQgMD09PXImJihyPXt9KSxFdCh0LGUsbixyLmRlY2ltYWxzLGZ0LkhTTCl9LG4uZ2V0QmxlbmRIU0w9ZnVuY3Rpb24odCxlLG4scil7dm9pZCAwPT09biYmKG49NSksdm9pZCAwPT09ciYmKHI9e30pO3ZhciBpPVUocix0LGUpO3JldHVybiBFdCh0LGUsbiw2LGZ0LkhTTCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gWi5IU0wodCxpKX0pKX0sbi5nZXRCbGVuZEhTTEFPYmplY3Q9ZnVuY3Rpb24odCxlLG4scil7cmV0dXJuIHZvaWQgMD09PW4mJihuPTUpLHZvaWQgMD09PXImJihyPXt9KSxFdCh0LGUsbixyLmRlY2ltYWxzLGZ0LkhTTEEpfSxuLmdldEJsZW5kSFNMQT1mdW5jdGlvbih0LGUsbixyKXt2b2lkIDA9PT1uJiYobj01KSx2b2lkIDA9PT1yJiYocj17fSk7dmFyIGk9VShyLHQsZSk7cmV0dXJuIEV0KHQsZSxuLDYsZnQuSFNMQSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gWi5IU0wodCxpKX0pKX0sbi5nZXRNaXhIRVhPYmplY3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9aS5BRERJVElWRSksZ3QuSEVYKHQsZSwhMSl9LG4uZ2V0TWl4SEVYPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPWkuQURESVRJVkUpLGd0LkhFWCh0LGUsITApfSxuLmdldE1peEhFWEFPYmplY3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9aS5BRERJVElWRSksZ3QuSEVYQSh0LGUsITEpfSxuLmdldE1peEhFWEE9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9aS5BRERJVElWRSksZ3QuSEVYQSh0LGUsITApfSxuLmdldE1peFJHQk9iamVjdD1mdW5jdGlvbih0LG4scil7cmV0dXJuIHZvaWQgMD09PW4mJihuPWkuQURESVRJVkUpLHZvaWQgMD09PXImJihyPXt9KSxndC5SR0IodCxuLCExLFUuYXBwbHkodm9pZCAwLGUoW3JdLHQsITEpKSl9LG4uZ2V0TWl4UkdCPWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49aS5BRERJVElWRSksdm9pZCAwPT09ciYmKHI9e30pLGd0LlJHQih0LG4sITAsVS5hcHBseSh2b2lkIDAsZShbcl0sdCwhMSkpKX0sbi5nZXRNaXhSR0JBT2JqZWN0PWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49aS5BRERJVElWRSksdm9pZCAwPT09ciYmKHI9e30pLGd0LlJHQkEodCxuLCExLFUuYXBwbHkodm9pZCAwLGUoW3JdLHQsITEpKSl9LG4uZ2V0TWl4UkdCQT1mdW5jdGlvbih0LG4scil7cmV0dXJuIHZvaWQgMD09PW4mJihuPWkuQURESVRJVkUpLHZvaWQgMD09PXImJihyPXt9KSxndC5SR0JBKHQsbiwhMCxVLmFwcGx5KHZvaWQgMCxlKFtyXSx0LCExKSkpfSxuLmdldE1peEhTTE9iamVjdD1mdW5jdGlvbih0LG4scil7cmV0dXJuIHZvaWQgMD09PW4mJihuPWkuQURESVRJVkUpLHZvaWQgMD09PXImJihyPXt9KSxndC5IU0wodCxuLCExLFUuYXBwbHkodm9pZCAwLGUoW3JdLHQsITEpKSl9LG4uZ2V0TWl4SFNMPWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49aS5BRERJVElWRSksdm9pZCAwPT09ciYmKHI9e30pLGd0LkhTTCh0LG4sITAsVS5hcHBseSh2b2lkIDAsZShbcl0sdCwhMSkpKX0sbi5nZXRNaXhIU0xBT2JqZWN0PWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49aS5BRERJVElWRSksdm9pZCAwPT09ciYmKHI9e30pLGd0LkhTTEEodCxuLCExLFUuYXBwbHkodm9pZCAwLGUoW3JdLHQsITEpKSl9LG4uZ2V0TWl4SFNMQT1mdW5jdGlvbih0LG4scil7cmV0dXJuIHZvaWQgMD09PW4mJihuPWkuQURESVRJVkUpLHZvaWQgMD09PXImJihyPXt9KSxndC5IU0xBKHQsbiwhMCxVLmFwcGx5KHZvaWQgMCxlKFtyXSx0LCExKSkpfSxuLmdldFNoYWRlcz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHZvaWQgMD09PW4mJihuPXt9KSxodCh0LGUsITAsVShuLHQpKX0sbi5nZXRUaW50cz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHZvaWQgMD09PW4mJihuPXt9KSxodCh0LGUsITEsVShuLHQpKX0sbi5nZXRIYXJtb255PWZ1bmN0aW9uKHQsZSxuLG8pe3JldHVybiB2b2lkIDA9PT1lJiYoZT1yLkNPTVBMRU1FTlRBUlkpLHZvaWQgMD09PW4mJihuPWkuQURESVRJVkUpLHZvaWQgMD09PW8mJihvPXt9KSxmdW5jdGlvbih0LGUsbixpKXt2YXIgbztyZXR1cm4obz17fSxvW3IuQU5BTE9HT1VTXT1wdC5idWlsZEhhcm1vbnkoZSxudCxuLGkpLG9bci5DT01QTEVNRU5UQVJZXT1wdC5idWlsZEhhcm1vbnkoZSxydCxuLGkpLG9bci5TUExJVF9DT01QTEVNRU5UQVJZXT1wdC5idWlsZEhhcm1vbnkoZSxpdCxuLGkpLG9bci5UUklBRElDXT1wdC5idWlsZEhhcm1vbnkoZSxvdCxuLGkpLG9bci5URVRSQURJQ109cHQuYnVpbGRIYXJtb255KGUsYXQsbixpKSxvW3IuU1FVQVJFXT1wdC5idWlsZEhhcm1vbnkoZSxjdCxuLGkpLG8pW3RdfShlLHQsbixVKG8sdCkpfSxufSgpO2V4cG9ydHtGdCBhcyBDb2xvclRyYW5zbGF0b3IsciBhcyBIYXJtb255LGkgYXMgTWl4fTtcbiIsICJpbXBvcnQgeyBBcHAgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IHsgQ29kZVN0eWxlclNldHRpbmdzLCBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBDb2RlU3R5bGVyVGhlbWVNb2RlQ29sb3VycywgQ29kZVN0eWxlclRoZW1lU2V0dGluZ3MsIENvbG91ciwgTEFOR1VBR0VfTkFNRVMsIExBTkdVQUdFUyB9IGZyb20gXCIuL1NldHRpbmdzXCI7XG5pbXBvcnQgeyBpc0NzcyB9IGZyb20gXCIuL1NldHRpbmdzVGFiXCI7XG5cbmludGVyZmFjZSBUaGVtZVN0eWxlIHtcblx0Ym9yZGVyPzoge1xuXHRcdHNpemU6IG51bWJlcjtcblx0XHRzdHlsZTogc3RyaW5nO1xuXHR9LFxuXHRzY3JvbGxiYXI/OiBib29sZWFuO1xuXHRleHRyYT86IHN0cmluZztcbn1cblxuY29uc3QgU1RZTEVfSUQgPSBcImNvZGUtc3R5bGVyLXN0eWxlc1wiO1xuY29uc3QgVEhFTUVfU1RZTEVTOiBSZWNvcmQ8c3RyaW5nLFRoZW1lU3R5bGU+ID0ge1xuXHRcIlByaXNtXCI6IHtcblx0XHRib3JkZXI6IHtcblx0XHRcdHNpemU6IDEsXG5cdFx0XHRzdHlsZTogXCIxcHggc29saWQgdmFyKC0td2luZG93LWJvcmRlci1jb2xvcilcIixcblx0XHR9LFxuXHR9LFxuXHRcIlNoaW1tZXJpbmcgRm9jdXNcIjoge1xuXHRcdGJvcmRlcjoge1xuXHRcdFx0c2l6ZTogMSxcblx0XHRcdHN0eWxlOiBcInZhcigtLXRoaW4tbXV0ZWQtYm9yZGVyKVwiLFxuXHRcdH0sXG5cdH0sXG5cdFwiTWluaW1hbFwiOiB7XG5cdFx0ZXh0cmE6IGBcblx0XHRcdC5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202LmlzLXJlYWRhYmxlLWxpbmUtd2lkdGggOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyIHtcblx0XHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdH1cblx0XHRgLFxuXHR9LFxuXHRcIk9ic2lkaWFuaXRlXCI6IHtcblx0XHRzY3JvbGxiYXI6IHRydWUsXG5cdH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVTdHlsaW5nKHNldHRpbmdzOiBDb2RlU3R5bGVyU2V0dGluZ3MsIGFwcDogQXBwKTogdm9pZCB7XG5cdGNvbnN0IGN1cnJlbnRUaGVtZSA9IGdldEN1cnJlbnRUaGVtZShhcHApO1xuXHRsZXQgc3R5bGVUYWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChTVFlMRV9JRCk7XG5cdGlmICghc3R5bGVUYWcpIHtcblx0XHRzdHlsZVRhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTtcblx0XHRzdHlsZVRhZy5pZCA9IFNUWUxFX0lEO1xuXHRcdGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiaGVhZFwiKVswXS5hcHBlbmRDaGlsZChzdHlsZVRhZyk7XG5cdH1cblx0c3R5bGVUYWcuaW5uZXJUZXh0ID0gKHN0eWxlVGhlbWVDb2xvdXJzKHNldHRpbmdzLmN1cnJlbnRUaGVtZS5jb2xvdXJzKStzdHlsZVRoZW1lU2V0dGluZ3Moc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLGN1cnJlbnRUaGVtZSkrc3R5bGVMYW5ndWFnZUNvbG91cnMoc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLHNldHRpbmdzLnJlZGlyZWN0TGFuZ3VhZ2VzLGN1cnJlbnRUaGVtZSkpLnRyaW0oKS5yZXBsYWNlKC9cXHMrL2csXCIgXCIpO1xuXHRhZGRUaGVtZVNldHRpbmdzQ2xhc3NlcyhzZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MpO1xufVxuXG5mdW5jdGlvbiBzdHlsZVRoZW1lQ29sb3VycyAodGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKTogc3RyaW5nIHtcblx0cmV0dXJuIE9iamVjdC5rZXlzKHRoZW1lQ29sb3Vycy5saWdodC5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0cykucmVkdWNlKChyZXN1bHQ6IHN0cmluZywgYWx0ZXJuYXRpdmVIaWdobGlnaHQ6IHN0cmluZykgPT4ge1xuXHRcdHJldHVybiByZXN1bHQgKyBgXG5cdFx0XHRib2R5LmNvZGUtc3R5bGVyIC5jb2RlLXN0eWxlci1saW5lLWhpZ2hsaWdodGVkLSR7YWx0ZXJuYXRpdmVIaWdobGlnaHQucmVwbGFjZSgvXFxzKy9nLFwiLVwiKS50b0xvd2VyQ2FzZSgpfSB7XG5cdFx0XHRcdC0tZ3JhZGllbnQtYmFja2dyb3VuZC1jb2xvdXI6IHZhcigtLWNvZGUtc3R5bGVyLSR7YWx0ZXJuYXRpdmVIaWdobGlnaHQucmVwbGFjZSgvXFxzKy9nLFwiLVwiKS50b0xvd2VyQ2FzZSgpfS1oaWdobGlnaHQtY29sb3VyKSAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdGA7XG5cdH0sYFxuXHRcdGJvZHkuY29kZS1zdHlsZXIudGhlbWUtbGlnaHQge1xuXHRcdFx0JHtnZXRUaGVtZUNvbG91cnModGhlbWVDb2xvdXJzLmxpZ2h0KX1cblx0XHR9XG5cdFx0Ym9keS5jb2RlLXN0eWxlci50aGVtZS1kYXJrIHtcblx0XHRcdCR7Z2V0VGhlbWVDb2xvdXJzKHRoZW1lQ29sb3Vycy5kYXJrKX1cblx0XHR9XG5cdGApO1xufVxuXG5mdW5jdGlvbiBnZXRUaGVtZUNvbG91cnMgKHRoZW1lTW9kZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZU1vZGVDb2xvdXJzKTogc3RyaW5nIHtcblx0cmV0dXJuIE9iamVjdC5lbnRyaWVzKHtcblx0XHRcImNvZGVibG9jay1iYWNrZ3JvdW5kLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmNvZGVibG9jay5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFwiY29kZWJsb2NrLXRleHQtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuY29kZWJsb2NrLnRleHRDb2xvdXIsXG5cdFx0XCJndXR0ZXItYmFja2dyb3VuZC1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5ndXR0ZXIuYmFja2dyb3VuZENvbG91cixcblx0XHRcImd1dHRlci10ZXh0LWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmd1dHRlci50ZXh0Q29sb3VyLFxuXHRcdFwiZ3V0dGVyLWFjdGl2ZS10ZXh0LWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmd1dHRlci5hY3RpdmVUZXh0Q29sb3VyLFxuXHRcdFwiaGVhZGVyLWJhY2tncm91bmQtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuaGVhZGVyLmJhY2tncm91bmRDb2xvdXIsXG5cdFx0XCJoZWFkZXItdGl0bGUtdGV4dC1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5oZWFkZXIudGl0bGUudGV4dENvbG91cixcblx0XHRcImhlYWRlci1sYW5ndWFnZS10YWctYmFja2dyb3VuZC1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5oZWFkZXIubGFuZ3VhZ2VUYWcuYmFja2dyb3VuZENvbG91cixcblx0XHRcImhlYWRlci1sYW5ndWFnZS10YWctdGV4dC1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dENvbG91cixcblx0XHRcImhlYWRlci1zZXBhcmF0b3ItY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuaGVhZGVyLmxpbmVDb2xvdXIsXG5cdFx0XCJhY3RpdmUtY29kZWJsb2NrLWxpbmUtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuaGlnaGxpZ2h0cy5hY3RpdmVDb2RlYmxvY2tMaW5lQ29sb3VyLFxuXHRcdFwiYWN0aXZlLWVkaXRvci1saW5lLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmhpZ2hsaWdodHMuYWN0aXZlRWRpdG9yTGluZUNvbG91cixcblx0XHRcImRlZmF1bHQtaGlnaGxpZ2h0LWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmhpZ2hsaWdodHMuZGVmYXVsdENvbG91cixcblx0XHRcImJ1dHRvbi1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5hZHZhbmNlZC5idXR0b25Db2xvdXIsXG5cdFx0XCJidXR0b24tYWN0aXZlLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmFkdmFuY2VkLmJ1dHRvbkFjdGl2ZUNvbG91cixcblx0XHRcImlubGluZS1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5pbmxpbmUudGV4dENvbG91cixcblx0XHRcImlubGluZS1jb2xvdXItYWN0aXZlXCI6IHRoZW1lTW9kZUNvbG91cnMuaW5saW5lLmFjdGl2ZVRleHRDb2xvdXIsXG5cdFx0XCJpbmxpbmUtYmFja2dyb3VuZC1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5pbmxpbmUuYmFja2dyb3VuZENvbG91cixcblx0XHRcImlubGluZS10aXRsZS1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5pbmxpbmUudGl0bGVUZXh0Q29sb3VyLFxuXHRcdC4uLk9iamVjdC5lbnRyaWVzKHRoZW1lTW9kZUNvbG91cnMuaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHMpLnJlZHVjZSgocmVzdWx0OiBSZWNvcmQ8c3RyaW5nLENvbG91cj4sW2FsdGVybmF0aXZlSGlnaGxpZ2h0LGNvbG91cl06IFtzdHJpbmcsQ29sb3VyXSk6IFJlY29yZDxzdHJpbmcsQ29sb3VyPiA9PiB7XG5cdFx0XHRyZXN1bHRbYCR7YWx0ZXJuYXRpdmVIaWdobGlnaHQucmVwbGFjZSgvXFxzKy9nLFwiLVwiKS50b0xvd2VyQ2FzZSgpfS1oaWdobGlnaHQtY29sb3VyYF0gPSBjb2xvdXI7XG5cdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdH0se30pXG5cdH0pLnJlZHVjZSgocmVzdWx0OiBzdHJpbmcsIFtjc3NWYXJpYWJsZSxjb2xvdXJdOiBbc3RyaW5nLENvbG91cl0pOiBzdHJpbmcgPT4ge1xuXHRcdGNvbnN0IHN0eWxlQ29sb3VyID0gaXNDc3MoY29sb3VyKT9gdmFyKCR7Y29sb3VyfSlgOmNvbG91cjtcblx0XHRyZXR1cm4gcmVzdWx0ICsgYC0tY29kZS1zdHlsZXItJHtjc3NWYXJpYWJsZX06ICR7c3R5bGVDb2xvdXJ9O2A7XG5cdH0sXCJcIik7XG59XG5cbmZ1bmN0aW9uIHN0eWxlVGhlbWVTZXR0aW5ncyAodGhlbWVTZXR0aW5nczogQ29kZVN0eWxlclRoZW1lU2V0dGluZ3MsIGN1cnJlbnRUaGVtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0cmV0dXJuIGBcblx0XHRib2R5LmNvZGUtc3R5bGVyIC5jb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnIHtcblx0XHRcdC0tY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZy10ZXh0LWJvbGQ6ICR7dGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEJvbGQ/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/IHByb3AgOiAnYXJpYS0nICsgcHJvcC5zbGljZSg0KS50b0xvd2VyQ2FzZSgpXG4gIH0sXG4gIHByb3BlcnRpZXM6IHtcbiAgICBhcmlhQWN0aXZlRGVzY2VuZGFudDogbnVsbCxcbiAgICBhcmlhQXRvbWljOiBib29sZWFuaXNoLFxuICAgIGFyaWFBdXRvQ29tcGxldGU6IG51bGwsXG4gICAgYXJpYUJ1c3k6IGJvb2xlYW5pc2gsXG4gICAgYXJpYUNoZWNrZWQ6IGJvb2xlYW5pc2gsXG4gICAgYXJpYUNvbENvdW50OiBudW1iZXIsXG4gICAgYXJpYUNvbEluZGV4OiBudW1iZXIsXG4gICAgYXJpYUNvbFNwYW46IG51bWJlcixcbiAgICBhcmlhQ29udHJvbHM6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGFyaWFDdXJyZW50OiBudWxsLFxuICAgIGFyaWFEZXNjcmliZWRCeTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXJpYURldGFpbHM6IG51bGwsXG4gICAgYXJpYURpc2FibGVkOiBib29sZWFuaXNoLFxuICAgIGFyaWFEcm9wRWZmZWN0OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhcmlhRXJyb3JNZXNzYWdlOiBudWxsLFxuICAgIGFyaWFFeHBhbmRlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhRmxvd1RvOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhcmlhR3JhYmJlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhSGFzUG9wdXA6IG51bGwsXG4gICAgYXJpYUhpZGRlbjogYm9vbGVhbmlzaCxcbiAgICBhcmlhSW52YWxpZDogbnVsbCxcbiAgICBhcmlhS2V5U2hvcnRjdXRzOiBudWxsLFxuICAgIGFyaWFMYWJlbDogbnVsbCxcbiAgICBhcmlhTGFiZWxsZWRCeTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXJpYUxldmVsOiBudW1iZXIsXG4gICAgYXJpYUxpdmU6IG51bGwsXG4gICAgYXJpYU1vZGFsOiBib29sZWFuaXNoLFxuICAgIGFyaWFNdWx0aUxpbmU6IGJvb2xlYW5pc2gsXG4gICAgYXJpYU11bHRpU2VsZWN0YWJsZTogYm9vbGVhbmlzaCxcbiAgICBhcmlhT3JpZW50YXRpb246IG51bGwsXG4gICAgYXJpYU93bnM6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGFyaWFQbGFjZWhvbGRlcjogbnVsbCxcbiAgICBhcmlhUG9zSW5TZXQ6IG51bWJlcixcbiAgICBhcmlhUHJlc3NlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhUmVhZE9ubHk6IGJvb2xlYW5pc2gsXG4gICAgYXJpYVJlbGV2YW50OiBudWxsLFxuICAgIGFyaWFSZXF1aXJlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhUm9sZURlc2NyaXB0aW9uOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhcmlhUm93Q291bnQ6IG51bWJlcixcbiAgICBhcmlhUm93SW5kZXg6IG51bWJlcixcbiAgICBhcmlhUm93U3BhbjogbnVtYmVyLFxuICAgIGFyaWFTZWxlY3RlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhU2V0U2l6ZTogbnVtYmVyLFxuICAgIGFyaWFTb3J0OiBudWxsLFxuICAgIGFyaWFWYWx1ZU1heDogbnVtYmVyLFxuICAgIGFyaWFWYWx1ZU1pbjogbnVtYmVyLFxuICAgIGFyaWFWYWx1ZU5vdzogbnVtYmVyLFxuICAgIGFyaWFWYWx1ZVRleHQ6IG51bGwsXG4gICAgcm9sZTogbnVsbFxuICB9XG59KVxuIiwgImltcG9ydCB7XG4gIGJvb2xlYW4sXG4gIG92ZXJsb2FkZWRCb29sZWFuLFxuICBib29sZWFuaXNoLFxuICBudW1iZXIsXG4gIHNwYWNlU2VwYXJhdGVkLFxuICBjb21tYVNlcGFyYXRlZFxufSBmcm9tICcuL3V0aWwvdHlwZXMuanMnXG5pbXBvcnQge2NyZWF0ZX0gZnJvbSAnLi91dGlsL2NyZWF0ZS5qcydcbmltcG9ydCB7Y2FzZUluc2Vuc2l0aXZlVHJhbnNmb3JtfSBmcm9tICcuL3V0aWwvY2FzZS1pbnNlbnNpdGl2ZS10cmFuc2Zvcm0uanMnXG5cbmV4cG9ydCBjb25zdCBodG1sID0gY3JlYXRlKHtcbiAgc3BhY2U6ICdodG1sJyxcbiAgYXR0cmlidXRlczoge1xuICAgIGFjY2VwdGNoYXJzZXQ6ICdhY2NlcHQtY2hhcnNldCcsXG4gICAgY2xhc3NuYW1lOiAnY2xhc3MnLFxuICAgIGh0bWxmb3I6ICdmb3InLFxuICAgIGh0dHBlcXVpdjogJ2h0dHAtZXF1aXYnXG4gIH0sXG4gIHRyYW5zZm9ybTogY2FzZUluc2Vuc2l0aXZlVHJhbnNmb3JtLFxuICBtdXN0VXNlUHJvcGVydHk6IFsnY2hlY2tlZCcsICdtdWx0aXBsZScsICdtdXRlZCcsICdzZWxlY3RlZCddLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgLy8gU3RhbmRhcmQgUHJvcGVydGllcy5cbiAgICBhYmJyOiBudWxsLFxuICAgIGFjY2VwdDogY29tbWFTZXBhcmF0ZWQsXG4gICAgYWNjZXB0Q2hhcnNldDogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYWNjZXNzS2V5OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhY3Rpb246IG51bGwsXG4gICAgYWxsb3c6IG51bGwsXG4gICAgYWxsb3dGdWxsU2NyZWVuOiBib29sZWFuLFxuICAgIGFsbG93UGF5bWVudFJlcXVlc3Q6IGJvb2xlYW4sXG4gICAgYWxsb3dVc2VyTWVkaWE6IGJvb2xlYW4sXG4gICAgYWx0OiBudWxsLFxuICAgIGFzOiBudWxsLFxuICAgIGFzeW5jOiBib29sZWFuLFxuICAgIGF1dG9DYXBpdGFsaXplOiBudWxsLFxuICAgIGF1dG9Db21wbGV0ZTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXV0b0ZvY3VzOiBib29sZWFuLFxuICAgIGF1dG9QbGF5OiBib29sZWFuLFxuICAgIGJsb2NraW5nOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBjYXB0dXJlOiBudWxsLFxuICAgIGNoYXJTZXQ6IG51bGwsXG4gICAgY2hlY2tlZDogYm9vbGVhbixcbiAgICBjaXRlOiBudWxsLFxuICAgIGNsYXNzTmFtZTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgY29sczogbnVtYmVyLFxuICAgIGNvbFNwYW46IG51bGwsXG4gICAgY29udGVudDogbnVsbCxcbiAgICBjb250ZW50RWRpdGFibGU6IGJvb2xlYW5pc2gsXG4gICAgY29udHJvbHM6IGJvb2xlYW4sXG4gICAgY29udHJvbHNMaXN0OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBjb29yZHM6IG51bWJlciB8IGNvbW1hU2VwYXJhdGVkLFxuICAgIGNyb3NzT3JpZ2luOiBudWxsLFxuICAgIGRhdGE6IG51bGwsXG4gICAgZGF0ZVRpbWU6IG51bGwsXG4gICAgZGVjb2Rpbmc6IG51bGwsXG4gICAgZGVmYXVsdDogYm9vbGVhbixcbiAgICBkZWZlcjogYm9vbGVhbixcbiAgICBkaXI6IG51bGwsXG4gICAgZGlyTmFtZTogbnVsbCxcbiAgICBkaXNhYmxlZDogYm9vbGVhbixcbiAgICBkb3dubG9hZDogb3ZlcmxvYWRlZEJvb2xlYW4sXG4gICAgZHJhZ2dhYmxlOiBib29sZWFuaXNoLFxuICAgIGVuY1R5cGU6IG51bGwsXG4gICAgZW50ZXJLZXlIaW50OiBudWxsLFxuICAgIGZldGNoUHJpb3JpdHk6IG51bGwsXG4gICAgZm9ybTogbnVsbCxcbiAgICBmb3JtQWN0aW9uOiBudWxsLFxuICAgIGZvcm1FbmNUeXBlOiBudWxsLFxuICAgIGZvcm1NZXRob2Q6IG51bGwsXG4gICAgZm9ybU5vVmFsaWRhdGU6IGJvb2xlYW4sXG4gICAgZm9ybVRhcmdldDogbnVsbCxcbiAgICBoZWFkZXJzOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBoZWlnaHQ6IG51bWJlcixcbiAgICBoaWRkZW46IGJvb2xlYW4sXG4gICAgaGlnaDogbnVtYmVyLFxuICAgIGhyZWY6IG51bGwsXG4gICAgaHJlZkxhbmc6IG51bGwsXG4gICAgaHRtbEZvcjogc3BhY2VTZXBhcmF0ZWQsXG4gICAgaHR0cEVxdWl2OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBpZDogbnVsbCxcbiAgICBpbWFnZVNpemVzOiBudWxsLFxuICAgIGltYWdlU3JjU2V0OiBudWxsLFxuICAgIGluZXJ0OiBib29sZWFuLFxuICAgIGlucHV0TW9kZTogbnVsbCxcbiAgICBpbnRlZ3JpdHk6IG51bGwsXG4gICAgaXM6IG51bGwsXG4gICAgaXNNYXA6IGJvb2xlYW4sXG4gICAgaXRlbUlkOiBudWxsLFxuICAgIGl0ZW1Qcm9wOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBpdGVtUmVmOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBpdGVtU2NvcGU6IGJvb2xlYW4sXG4gICAgaXRlbVR5cGU6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGtpbmQ6IG51bGwsXG4gICAgbGFiZWw6IG51bGwsXG4gICAgbGFuZzogbnVsbCxcbiAgICBsYW5ndWFnZTogbnVsbCxcbiAgICBsaXN0OiBudWxsLFxuICAgIGxvYWRpbmc6IG51bGwsXG4gICAgbG9vcDogYm9vbGVhbixcbiAgICBsb3c6IG51bWJlcixcbiAgICBtYW5pZmVzdDogbnVsbCxcbiAgICBtYXg6IG51bGwsXG4gICAgbWF4TGVuZ3RoOiBudW1iZXIsXG4gICAgbWVkaWE6IG51bGwsXG4gICAgbWV0aG9kOiBudWxsLFxuICAgIG1pbjogbnVsbCxcbiAgICBtaW5MZW5ndGg6IG51bWJlcixcbiAgICBtdWx0aXBsZTogYm9vbGVhbixcbiAgICBtdXRlZDogYm9vbGVhbixcbiAgICBuYW1lOiBudWxsLFxuICAgIG5vbmNlOiBudWxsLFxuICAgIG5vTW9kdWxlOiBib29sZWFuLFxuICAgIG5vVmFsaWRhdGU6IGJvb2xlYW4sXG4gICAgb25BYm9ydDogbnVsbCxcbiAgICBvbkFmdGVyUHJpbnQ6IG51bGwsXG4gICAgb25BdXhDbGljazogbnVsbCxcbiAgICBvbkJlZm9yZU1hdGNoOiBudWxsLFxuICAgIG9uQmVmb3JlUHJpbnQ6IG51bGwsXG4gICAgb25CZWZvcmVUb2dnbGU6IG51bGwsXG4gICAgb25CZWZvcmVVbmxvYWQ6IG51bGwsXG4gICAgb25CbHVyOiBudWxsLFxuICAgIG9uQ2FuY2VsOiBudWxsLFxuICAgIG9uQ2FuUGxheTogbnVsbCxcbiAgICBvbkNhblBsYXlUaHJvdWdoOiBudWxsLFxuICAgIG9uQ2hhbmdlOiBudWxsLFxuICAgIG9uQ2xpY2s6IG51bGwsXG4gICAgb25DbG9zZTogbnVsbCxcbiAgICBvbkNvbnRleHRMb3N0OiBudWxsLFxuICAgIG9uQ29udGV4dE1lbnU6IG51bGwsXG4gICAgb25Db250ZXh0UmVzdG9yZWQ6IG51bGwsXG4gICAgb25Db3B5OiBudWxsLFxuICAgIG9uQ3VlQ2hhbmdlOiBudWxsLFxuICAgIG9uQ3V0OiBudWxsLFxuICAgIG9uRGJsQ2xpY2s6IG51bGwsXG4gICAgb25EcmFnOiBudWxsLFxuICAgIG9uRHJhZ0VuZDogbnVsbCxcbiAgICBvbkRyYWdFbnRlcjogbnVsbCxcbiAgICBvbkRyYWdFeGl0OiBudWxsLFxuICAgIG9uRHJhZ0xlYXZlOiBudWxsLFxuICAgIG9uRHJhZ092ZXI6IG51bGwsXG4gICAgb25EcmFnU3RhcnQ6IG51bGwsXG4gICAgb25Ecm9wOiBudWxsLFxuICAgIG9uRHVyYXRpb25DaGFuZ2U6IG51bGwsXG4gICAgb25FbXB0aWVkOiBudWxsLFxuICAgIG9uRW5kZWQ6IG51bGwsXG4gICAgb25FcnJvcjogbnVsbCxcbiAgICBvbkZvY3VzOiBudWxsLFxuICAgIG9uRm9ybURhdGE6IG51bGwsXG4gICAgb25IYXNoQ2hhbmdlOiBudWxsLFxuICAgIG9uSW5wdXQ6IG51bGwsXG4gICAgb25JbnZhbGlkOiBudWxsLFxuICAgIG9uS2V5RG93bjogbnVsbCxcbiAgICBvbktleVByZXNzOiBudWxsLFxuICAgIG9uS2V5VXA6IG51bGwsXG4gICAgb25MYW5ndWFnZUNoYW5nZTogbnVsbCxcbiAgICBvbkxvYWQ6IG51bGwsXG4gICAgb25Mb2FkZWREYXRhOiBudWxsLFxuICAgIG9uTG9hZGVkTWV0YWRhdGE6IG51bGwsXG4gICAgb25Mb2FkRW5kOiBudWxsLFxuICAgIG9uTG9hZFN0YXJ0OiBudWxsLFxuICAgIG9uTWVzc2FnZTogbnVsbCxcbiAgICBvbk1lc3NhZ2VFcnJvcjogbnVsbCxcbiAgICBvbk1vdXNlRG93bjogbnVsbCxcbiAgICBvbk1vdXNlRW50ZXI6IG51bGwsXG4gICAgb25Nb3VzZUxlYXZlOiBudWxsLFxuICAgIG9uTW91c2VNb3ZlOiBudWxsLFxuICAgIG9uTW91c2VPdXQ6IG51bGwsXG4gICAgb25Nb3VzZU92ZXI6IG51bGwsXG4gICAgb25Nb3VzZVVwOiBudWxsLFxuICAgIG9uT2ZmbGluZTogbnVsbCxcbiAgICBvbk9ubGluZTogbnVsbCxcbiAgICBvblBhZ2VIaWRlOiBudWxsLFxuICAgIG9uUGFnZVNob3c6IG51bGwsXG4gICAgb25QYXN0ZTogbnVsbCxcbiAgICBvblBhdXNlOiBudWxsLFxuICAgIG9uUGxheTogbnVsbCxcbiAgICBvblBsYXlpbmc6IG51bGwsXG4gICAgb25Qb3BTdGF0ZTogbnVsbCxcbiAgICBvblByb2dyZXNzOiBudWxsLFxuICAgIG9uUmF0ZUNoYW5nZTogbnVsbCxcbiAgICBvblJlamVjdGlvbkhhbmRsZWQ6IG51bGwsXG4gICAgb25SZXNldDogbnVsbCxcbiAgICBvblJlc2l6ZTogbnVsbCxcbiAgICBvblNjcm9sbDogbnVsbCxcbiAgICBvblNjcm9sbEVuZDogbnVsbCxcbiAgICBvblNlY3VyaXR5UG9saWN5VmlvbGF0aW9uOiBudWxsLFxuICAgIG9uU2Vla2VkOiBudWxsLFxuICAgIG9uU2Vla2luZzogbnVsbCxcbiAgICBvblNlbGVjdDogbnVsbCxcbiAgICBvblNsb3RDaGFuZ2U6IG51bGwsXG4gICAgb25TdGFsbGVkOiBudWxsLFxuICAgIG9uU3RvcmFnZTogbnVsbCxcbiAgICBvblN1Ym1pdDogbnVsbCxcbiAgICBvblN1c3BlbmQ6IG51bGwsXG4gICAgb25UaW1lVXBkYXRlOiBudWxsLFxuICAgIG9uVG9nZ2xlOiBudWxsLFxuICAgIG9uVW5oYW5kbGVkUmVqZWN0aW9uOiBudWxsLFxuICAgIG9uVW5sb2FkOiBudWxsLFxuICAgIG9uVm9sdW1lQ2hhbmdlOiBudWxsLFxuICAgIG9uV2FpdGluZzogbnVsbCxcbiAgICBvbldoZWVsOiBudWxsLFxuICAgIG9wZW46IGJvb2xlYW4sXG4gICAgb3B0aW11bTogbnVtYmVyLFxuICAgIHBhdHRlcm46IG51bGwsXG4gICAgcGluZzogc3BhY2VTZXBhcmF0ZWQsXG4gICAgcGxhY2Vob2xkZXI6IG51bGwsXG4gICAgcGxheXNJbmxpbmU6IGJvb2xlYW4sXG4gICAgcG9wb3ZlcjogbnVsbCxcbiAgICBwb3BvdmVyVGFyZ2V0OiBudWxsLFxuICAgIHBvcG92ZXJUYXJnZXRBY3Rpb246IG51bGwsXG4gICAgcG9zdGVyOiBudWxsLFxuICAgIHByZWxvYWQ6IG51bGwsXG4gICAgcmVhZE9ubHk6IGJvb2xlYW4sXG4gICAgcmVmZXJyZXJQb2xpY3k6IG51bGwsXG4gICAgcmVsOiBzcGFjZVNlcGFyYXRlZCxcbiAgICByZXF1aXJlZDogYm9vbGVhbixcbiAgICByZXZlcnNlZDogYm9vbGVhbixcbiAgICByb3dzOiBudW1iZXIsXG4gICAgcm93U3BhbjogbnVtYmVyLFxuICAgIHNhbmRib3g6IHNwYWNlU2VwYXJhdGVkLFxuICAgIHNjb3BlOiBudWxsLFxuICAgIHNjb3BlZDogYm9vbGVhbixcbiAgICBzZWFtbGVzczogYm9vbGVhbixcbiAgICBzZWxlY3RlZDogYm9vbGVhbixcbiAgICBzaGFkb3dSb290RGVsZWdhdGVzRm9jdXM6IGJvb2xlYW4sXG4gICAgc2hhZG93Um9vdE1vZGU6IG51bGwsXG4gICAgc2hhcGU6IG51bGwsXG4gICAgc2l6ZTogbnVtYmVyLFxuICAgIHNpemVzOiBudWxsLFxuICAgIHNsb3Q6IG51bGwsXG4gICAgc3BhbjogbnVtYmVyLFxuICAgIHNwZWxsQ2hlY2s6IGJvb2xlYW5pc2gsXG4gICAgc3JjOiBudWxsLFxuICAgIHNyY0RvYzogbnVsbCxcbiAgICBzcmNMYW5nOiBudWxsLFxuICAgIHNyY1NldDogbnVsbCxcbiAgICBzdGFydDogbnVtYmVyLFxuICAgIHN0ZXA6IG51bGwsXG4gICAgc3R5bGU6IG51bGwsXG4gICAgdGFiSW5kZXg6IG51bWJlcixcbiAgICB0YXJnZXQ6IG51bGwsXG4gICAgdGl0bGU6IG51bGwsXG4gICAgdHJhbnNsYXRlOiBudWxsLFxuICAgIHR5cGU6IG51bGwsXG4gICAgdHlwZU11c3RNYXRjaDogYm9vbGVhbixcbiAgICB1c2VNYXA6IG51bGwsXG4gICAgdmFsdWU6IGJvb2xlYW5pc2gsXG4gICAgd2lkdGg6IG51bWJlcixcbiAgICB3cmFwOiBudWxsLFxuXG4gICAgLy8gTGVnYWN5LlxuICAgIC8vIFNlZTogaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jb3RoZXItZWxlbWVudHMsLWF0dHJpYnV0ZXMtYW5kLWFwaXNcbiAgICBhbGlnbjogbnVsbCwgLy8gU2V2ZXJhbC4gVXNlIENTUyBgdGV4dC1hbGlnbmAgaW5zdGVhZCxcbiAgICBhTGluazogbnVsbCwgLy8gYDxib2R5PmAuIFVzZSBDU1MgYGE6YWN0aXZlIHtjb2xvcn1gIGluc3RlYWRcbiAgICBhcmNoaXZlOiBzcGFjZVNlcGFyYXRlZCwgLy8gYDxvYmplY3Q+YC4gTGlzdCBvZiBVUklzIHRvIGFyY2hpdmVzXG4gICAgYXhpczogbnVsbCwgLy8gYDx0ZD5gIGFuZCBgPHRoPmAuIFVzZSBgc2NvcGVgIG9uIGA8dGg+YFxuICAgIGJhY2tncm91bmQ6IG51bGwsIC8vIGA8Ym9keT5gLiBVc2UgQ1NTIGBiYWNrZ3JvdW5kLWltYWdlYCBpbnN0ZWFkXG4gICAgYmdDb2xvcjogbnVsbCwgLy8gYDxib2R5PmAgYW5kIHRhYmxlIGVsZW1lbnRzLiBVc2UgQ1NTIGBiYWNrZ3JvdW5kLWNvbG9yYCBpbnN0ZWFkXG4gICAgYm9yZGVyOiBudW1iZXIsIC8vIGA8dGFibGU+YC4gVXNlIENTUyBgYm9yZGVyLXdpZHRoYCBpbnN0ZWFkLFxuICAgIGJvcmRlckNvbG9yOiBudWxsLCAvLyBgPHRhYmxlPmAuIFVzZSBDU1MgYGJvcmRlci1jb2xvcmAgaW5zdGVhZCxcbiAgICBib3R0b21NYXJnaW46IG51bWJlciwgLy8gYDxib2R5PmBcbiAgICBjZWxsUGFkZGluZzogbnVsbCwgLy8gYDx0YWJsZT5gXG4gICAgY2VsbFNwYWNpbmc6IG51bGwsIC8vIGA8dGFibGU+YFxuICAgIGNoYXI6IG51bGwsIC8vIFNldmVyYWwgdGFibGUgZWxlbWVudHMuIFdoZW4gYGFsaWduPWNoYXJgLCBzZXRzIHRoZSBjaGFyYWN0ZXIgdG8gYWxpZ24gb25cbiAgICBjaGFyT2ZmOiBudWxsLCAvLyBTZXZlcmFsIHRhYmxlIGVsZW1lbnRzLiBXaGVuIGBjaGFyYCwgb2Zmc2V0cyB0aGUgYWxpZ25tZW50XG4gICAgY2xhc3NJZDogbnVsbCwgLy8gYDxvYmplY3Q+YFxuICAgIGNsZWFyOiBudWxsLCAvLyBgPGJyPmAuIFVzZSBDU1MgYGNsZWFyYCBpbnN0ZWFkXG4gICAgY29kZTogbnVsbCwgLy8gYDxvYmplY3Q+YFxuICAgIGNvZGVCYXNlOiBudWxsLCAvLyBgPG9iamVjdD5gXG4gICAgY29kZVR5cGU6IG51bGwsIC8vIGA8b2JqZWN0PmBcbiAgICBjb2xvcjogbnVsbCwgLy8gYDxmb250PmAgYW5kIGA8aHI+YC4gVXNlIENTUyBpbnN0ZWFkXG4gICAgY29tcGFjdDogYm9vbGVhbiwgLy8gTGlzdHMuIFVzZSBDU1MgdG8gcmVkdWNlIHNwYWNlIGJldHdlZW4gaXRlbXMgaW5zdGVhZFxuICAgIGRlY2xhcmU6IGJvb2xlYW4sIC8vIGA8b2JqZWN0PmBcbiAgICBldmVudDogbnVsbCwgLy8gYDxzY3JpcHQ+YFxuICAgIGZhY2U6IG51bGwsIC8vIGA8Zm9udD5gLiBVc2UgQ1NTIGluc3RlYWRcbiAgICBmcmFtZTogbnVsbCwgLy8gYDx0YWJsZT5gXG4gICAgZnJhbWVCb3JkZXI6IG51bGwsIC8vIGA8aWZyYW1lPmAuIFVzZSBDU1MgYGJvcmRlcmAgaW5zdGVhZFxuICAgIGhTcGFjZTogbnVtYmVyLCAvLyBgPGltZz5gIGFuZCBgPG9iamVjdD5gXG4gICAgbGVmdE1hcmdpbjogbnVtYmVyLCAvLyBgPGJvZHk+YFxuICAgIGxpbms6IG51bGwsIC8vIGA8Ym9keT5gLiBVc2UgQ1NTIGBhOmxpbmsge2NvbG9yOiAqfWAgaW5zdGVhZFxuICAgIGxvbmdEZXNjOiBudWxsLCAvLyBgPGZyYW1lPmAsIGA8aWZyYW1lPmAsIGFuZCBgPGltZz5gLiBVc2UgYW4gYDxhPmBcbiAgICBsb3dTcmM6IG51bGwsIC8vIGA8aW1nPmAuIFVzZSBhIGA8cGljdHVyZT5gXG4gICAgbWFyZ2luSGVpZ2h0OiBudW1iZXIsIC8vIGA8Ym9keT5gXG4gICAgbWFyZ2luV2lkdGg6IG51bWJlciwgLy8gYDxib2R5PmBcbiAgICBub1Jlc2l6ZTogYm9vbGVhbiwgLy8gYDxmcmFtZT5gXG4gICAgbm9IcmVmOiBib29sZWFuLCAvLyBgPGFyZWE+YC4gVXNlIG5vIGhyZWYgaW5zdGVhZCBvZiBhbiBleHBsaWNpdCBgbm9ocmVmYFxuICAgIG5vU2hhZGU6IGJvb2xlYW4sIC8vIGA8aHI+YC4gVXNlIGJhY2tncm91bmQtY29sb3IgYW5kIGhlaWdodCBpbnN0ZWFkIG9mIGJvcmRlcnNcbiAgICBub1dyYXA6IGJvb2xlYW4sIC8vIGA8dGQ+YCBhbmQgYDx0aD5gXG4gICAgb2JqZWN0OiBudWxsLCAvLyBgPGFwcGxldD5gXG4gICAgcHJvZmlsZTogbnVsbCwgLy8gYDxoZWFkPmBcbiAgICBwcm9tcHQ6IG51bGwsIC8vIGA8aXNpbmRleD5gXG4gICAgcmV2OiBudWxsLCAvLyBgPGxpbms+YFxuICAgIHJpZ2h0TWFyZ2luOiBudW1iZXIsIC8vIGA8Ym9keT5gXG4gICAgcnVsZXM6IG51bGwsIC8vIGA8dGFibGU+YFxuICAgIHNjaGVtZTogbnVsbCwgLy8gYDxtZXRhPmBcbiAgICBzY3JvbGxpbmc6IGJvb2xlYW5pc2gsIC8vIGA8ZnJhbWU+YC4gVXNlIG92ZXJmbG93IGluIHRoZSBjaGlsZCBjb250ZXh0XG4gICAgc3RhbmRieTogbnVsbCwgLy8gYDxvYmplY3Q+YFxuICAgIHN1bW1hcnk6IG51bGwsIC8vIGA8dGFibGU+YFxuICAgIHRleHQ6IG51bGwsIC8vIGA8Ym9keT5gLiBVc2UgQ1NTIGBjb2xvcmAgaW5zdGVhZFxuICAgIHRvcE1hcmdpbjogbnVtYmVyLCAvLyBgPGJvZHk+YFxuICAgIHZhbHVlVHlwZTogbnVsbCwgLy8gYDxwYXJhbT5gXG4gICAgdmVyc2lvbjogbnVsbCwgLy8gYDxodG1sPmAuIFVzZSBhIGRvY3R5cGUuXG4gICAgdkFsaWduOiBudWxsLCAvLyBTZXZlcmFsLiBVc2UgQ1NTIGB2ZXJ0aWNhbC1hbGlnbmAgaW5zdGVhZFxuICAgIHZMaW5rOiBudWxsLCAvLyBgPGJvZHk+YC4gVXNlIENTUyBgYTp2aXNpdGVkIHtjb2xvcn1gIGluc3RlYWRcbiAgICB2U3BhY2U6IG51bWJlciwgLy8gYDxpbWc+YCBhbmQgYDxvYmplY3Q+YFxuXG4gICAgLy8gTm9uLXN0YW5kYXJkIFByb3BlcnRpZXMuXG4gICAgYWxsb3dUcmFuc3BhcmVuY3k6IG51bGwsXG4gICAgYXV0b0NvcnJlY3Q6IG51bGwsXG4gICAgYXV0b1NhdmU6IG51bGwsXG4gICAgZGlzYWJsZVBpY3R1cmVJblBpY3R1cmU6IGJvb2xlYW4sXG4gICAgZGlzYWJsZVJlbW90ZVBsYXliYWNrOiBib29sZWFuLFxuICAgIHByZWZpeDogbnVsbCxcbiAgICBwcm9wZXJ0eTogbnVsbCxcbiAgICByZXN1bHRzOiBudW1iZXIsXG4gICAgc2VjdXJpdHk6IG51bGwsXG4gICAgdW5zZWxlY3RhYmxlOiBudWxsXG4gIH1cbn0pXG4iLCAiaW1wb3J0IHtcbiAgYm9vbGVhbixcbiAgbnVtYmVyLFxuICBzcGFjZVNlcGFyYXRlZCxcbiAgY29tbWFTZXBhcmF0ZWQsXG4gIGNvbW1hT3JTcGFjZVNlcGFyYXRlZFxufSBmcm9tICcuL3V0aWwvdHlwZXMuanMnXG5pbXBvcnQge2NyZWF0ZX0gZnJvbSAnLi91dGlsL2NyZWF0ZS5qcydcbmltcG9ydCB7Y2FzZVNlbnNpdGl2ZVRyYW5zZm9ybX0gZnJvbSAnLi91dGlsL2Nhc2Utc2Vuc2l0aXZlLXRyYW5zZm9ybS5qcydcblxuZXhwb3J0IGNvbnN0IHN2ZyA9IGNyZWF0ZSh7XG4gIHNwYWNlOiAnc3ZnJyxcbiAgYXR0cmlidXRlczoge1xuICAgIGFjY2VudEhlaWdodDogJ2FjY2VudC1oZWlnaHQnLFxuICAgIGFsaWdubWVudEJhc2VsaW5lOiAnYWxpZ25tZW50LWJhc2VsaW5lJyxcbiAgICBhcmFiaWNGb3JtOiAnYXJhYmljLWZvcm0nLFxuICAgIGJhc2VsaW5lU2hpZnQ6ICdiYXNlbGluZS1zaGlmdCcsXG4gICAgY2FwSGVpZ2h0OiAnY2FwLWhlaWdodCcsXG4gICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgIGNsaXBQYXRoOiAnY2xpcC1wYXRoJyxcbiAgICBjbGlwUnVsZTogJ2NsaXAtcnVsZScsXG4gICAgY29sb3JJbnRlcnBvbGF0aW9uOiAnY29sb3ItaW50ZXJwb2xhdGlvbicsXG4gICAgY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyczogJ2NvbG9yLWludGVycG9sYXRpb24tZmlsdGVycycsXG4gICAgY29sb3JQcm9maWxlOiAnY29sb3ItcHJvZmlsZScsXG4gICAgY29sb3JSZW5kZXJpbmc6ICdjb2xvci1yZW5kZXJpbmcnLFxuICAgIGNyb3NzT3JpZ2luOiAnY3Jvc3NvcmlnaW4nLFxuICAgIGRhdGFUeXBlOiAnZGF0YXR5cGUnLFxuICAgIGRvbWluYW50QmFzZWxpbmU6ICdkb21pbmFudC1iYXNlbGluZScsXG4gICAgZW5hYmxlQmFja2dyb3VuZDogJ2VuYWJsZS1iYWNrZ3JvdW5kJyxcbiAgICBmaWxsT3BhY2l0eTogJ2ZpbGwtb3BhY2l0eScsXG4gICAgZmlsbFJ1bGU6ICdmaWxsLXJ1bGUnLFxuICAgIGZsb29kQ29sb3I6ICdmbG9vZC1jb2xvcicsXG4gICAgZmxvb2RPcGFjaXR5OiAnZmxvb2Qtb3BhY2l0eScsXG4gICAgZm9udEZhbWlseTogJ2ZvbnQtZmFtaWx5JyxcbiAgICBmb250U2l6ZTogJ2ZvbnQtc2l6ZScsXG4gICAgZm9udFNpemVBZGp1c3Q6ICdmb250LXNpemUtYWRqdXN0JyxcbiAgICBmb250U3RyZXRjaDogJ2ZvbnQtc3RyZXRjaCcsXG4gICAgZm9udFN0eWxlOiAnZm9udC1zdHlsZScsXG4gICAgZm9udFZhcmlhbnQ6ICdmb250LXZhcmlhbnQnLFxuICAgIGZvbnRXZWlnaHQ6ICdmb250LXdlaWdodCcsXG4gICAgZ2x5cGhOYW1lOiAnZ2x5cGgtbmFtZScsXG4gICAgZ2x5cGhPcmllbnRhdGlvbkhvcml6b250YWw6ICdnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsJyxcbiAgICBnbHlwaE9yaWVudGF0aW9uVmVydGljYWw6ICdnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCcsXG4gICAgaHJlZkxhbmc6ICdocmVmbGFuZycsXG4gICAgaG9yaXpBZHZYOiAnaG9yaXotYWR2LXgnLFxuICAgIGhvcml6T3JpZ2luWDogJ2hvcml6LW9yaWdpbi14JyxcbiAgICBob3Jpek9yaWdpblk6ICdob3Jpei1vcmlnaW4teScsXG4gICAgaW1hZ2VSZW5kZXJpbmc6ICdpbWFnZS1yZW5kZXJpbmcnLFxuICAgIGxldHRlclNwYWNpbmc6ICdsZXR0ZXItc3BhY2luZycsXG4gICAgbGlnaHRpbmdDb2xvcjogJ2xpZ2h0aW5nLWNvbG9yJyxcbiAgICBtYXJrZXJFbmQ6ICdtYXJrZXItZW5kJyxcbiAgICBtYXJrZXJNaWQ6ICdtYXJrZXItbWlkJyxcbiAgICBtYXJrZXJTdGFydDogJ21hcmtlci1zdGFydCcsXG4gICAgbmF2RG93bjogJ25hdi1kb3duJyxcbiAgICBuYXZEb3duTGVmdDogJ25hdi1kb3duLWxlZnQnLFxuICAgIG5hdkRvd25SaWdodDogJ25hdi1kb3duLXJpZ2h0JyxcbiAgICBuYXZMZWZ0OiAnbmF2LWxlZnQnLFxuICAgIG5hdk5leHQ6ICduYXYtbmV4dCcsXG4gICAgbmF2UHJldjogJ25hdi1wcmV2JyxcbiAgICBuYXZSaWdodDogJ25hdi1yaWdodCcsXG4gICAgbmF2VXA6ICduYXYtdXAnLFxuICAgIG5hdlVwTGVmdDogJ25hdi11cC1sZWZ0JyxcbiAgICBuYXZVcFJpZ2h0OiAnbmF2LXVwLXJpZ2h0JyxcbiAgICBvbkFib3J0OiAnb25hYm9ydCcsXG4gICAgb25BY3RpdmF0ZTogJ29uYWN0aXZhdGUnLFxuICAgIG9uQWZ0ZXJQcmludDogJ29uYWZ0ZXJwcmludCcsXG4gICAgb25CZWZvcmVQcmludDogJ29uYmVmb3JlcHJpbnQnLFxuICAgIG9uQmVnaW46ICdvbmJlZ2luJyxcbiAgICBvbkNhbmNlbDogJ29uY2FuY2VsJyxcbiAgICBvbkNhblBsYXk6ICdvbmNhbnBsYXknLFxuICAgIG9uQ2FuUGxheVRocm91Z2g6ICdvbmNhbnBsYXl0aHJvdWdoJyxcbiAgICBvbkNoYW5nZTogJ29uY2hhbmdlJyxcbiAgICBvbkNsaWNrOiAnb25jbGljaycsXG4gICAgb25DbG9zZTogJ29uY2xvc2UnLFxuICAgIG9uQ29weTogJ29uY29weScsXG4gICAgb25DdWVDaGFuZ2U6ICdvbmN1ZWNoYW5nZScsXG4gICAgb25DdXQ6ICdvbmN1dCcsXG4gICAgb25EYmxDbGljazogJ29uZGJsY2xpY2snLFxuICAgIG9uRHJhZzogJ29uZHJhZycsXG4gICAgb25EcmFnRW5kOiAnb25kcmFnZW5kJyxcbiAgICBvbkRyYWdFbnRlcjogJ29uZHJhZ2VudGVyJyxcbiAgICBvbkRyYWdFeGl0OiAnb25kcmFnZXhpdCcsXG4gICAgb25EcmFnTGVhdmU6ICdvbmRyYWdsZWF2ZScsXG4gICAgb25EcmFnT3ZlcjogJ29uZHJhZ292ZXInLFxuICAgIG9uRHJhZ1N0YXJ0OiAnb25kcmFnc3RhcnQnLFxuICAgIG9uRHJvcDogJ29uZHJvcCcsXG4gICAgb25EdXJhdGlvbkNoYW5nZTogJ29uZHVyYXRpb25jaGFuZ2UnLFxuICAgIG9uRW1wdGllZDogJ29uZW1wdGllZCcsXG4gICAgb25FbmQ6ICdvbmVuZCcsXG4gICAgb25FbmRlZDogJ29uZW5kZWQnLFxuICAgIG9uRXJyb3I6ICdvbmVycm9yJyxcbiAgICBvbkZvY3VzOiAnb25mb2N1cycsXG4gICAgb25Gb2N1c0luOiAnb25mb2N1c2luJyxcbiAgICBvbkZvY3VzT3V0OiAnb25mb2N1c291dCcsXG4gICAgb25IYXNoQ2hhbmdlOiAnb25oYXNoY2hhbmdlJyxcbiAgICBvbklucHV0OiAnb25pbnB1dCcsXG4gICAgb25JbnZhbGlkOiAnb25pbnZhbGlkJyxcbiAgICBvbktleURvd246ICdvbmtleWRvd24nLFxuICAgIG9uS2V5UHJlc3M6ICdvbmtleXByZXNzJyxcbiAgICBvbktleVVwOiAnb25rZXl1cCcsXG4gICAgb25Mb2FkOiAnb25sb2FkJyxcbiAgICBvbkxvYWRlZERhdGE6ICdvbmxvYWRlZGRhdGEnLFxuICAgIG9uTG9hZGVkTWV0YWRhdGE6ICdvbmxvYWRlZG1ldGFkYXRhJyxcbiAgICBvbkxvYWRTdGFydDogJ29ubG9hZHN0YXJ0JyxcbiAgICBvbk1lc3NhZ2U6ICdvbm1lc3NhZ2UnLFxuICAgIG9uTW91c2VEb3duOiAnb25tb3VzZWRvd24nLFxuICAgIG9uTW91c2VFbnRlcjogJ29ubW91c2VlbnRlcicsXG4gICAgb25Nb3VzZUxlYXZlOiAnb25tb3VzZWxlYXZlJyxcbiAgICBvbk1vdXNlTW92ZTogJ29ubW91c2Vtb3ZlJyxcbiAgICBvbk1vdXNlT3V0OiAnb25tb3VzZW91dCcsXG4gICAgb25Nb3VzZU92ZXI6ICdvbm1vdXNlb3ZlcicsXG4gICAgb25Nb3VzZVVwOiAnb25tb3VzZXVwJyxcbiAgICBvbk1vdXNlV2hlZWw6ICdvbm1vdXNld2hlZWwnLFxuICAgIG9uT2ZmbGluZTogJ29ub2ZmbGluZScsXG4gICAgb25PbmxpbmU6ICdvbm9ubGluZScsXG4gICAgb25QYWdlSGlkZTogJ29ucGFnZWhpZGUnLFxuICAgIG9uUGFnZVNob3c6ICdvbnBhZ2VzaG93JyxcbiAgICBvblBhc3RlOiAnb25wYXN0ZScsXG4gICAgb25QYXVzZTogJ29ucGF1c2UnLFxuICAgIG9uUGxheTogJ29ucGxheScsXG4gICAgb25QbGF5aW5nOiAnb25wbGF5aW5nJyxcbiAgICBvblBvcFN0YXRlOiAnb25wb3BzdGF0ZScsXG4gICAgb25Qcm9ncmVzczogJ29ucHJvZ3Jlc3MnLFxuICAgIG9uUmF0ZUNoYW5nZTogJ29ucmF0ZWNoYW5nZScsXG4gICAgb25SZXBlYXQ6ICdvbnJlcGVhdCcsXG4gICAgb25SZXNldDogJ29ucmVzZXQnLFxuICAgIG9uUmVzaXplOiAnb25yZXNpemUnLFxuICAgIG9uU2Nyb2xsOiAnb25zY3JvbGwnLFxuICAgIG9uU2Vla2VkOiAnb25zZWVrZWQnLFxuICAgIG9uU2Vla2luZzogJ29uc2Vla2luZycsXG4gICAgb25TZWxlY3Q6ICdvbnNlbGVjdCcsXG4gICAgb25TaG93OiAnb25zaG93JyxcbiAgICBvblN0YWxsZWQ6ICdvbnN0YWxsZWQnLFxuICAgIG9uU3RvcmFnZTogJ29uc3RvcmFnZScsXG4gICAgb25TdWJtaXQ6ICdvbnN1Ym1pdCcsXG4gICAgb25TdXNwZW5kOiAnb25zdXNwZW5kJyxcbiAgICBvblRpbWVVcGRhdGU6ICdvbnRpbWV1cGRhdGUnLFxuICAgIG9uVG9nZ2xlOiAnb250b2dnbGUnLFxuICAgIG9uVW5sb2FkOiAnb251bmxvYWQnLFxuICAgIG9uVm9sdW1lQ2hhbmdlOiAnb252b2x1bWVjaGFuZ2UnLFxuICAgIG9uV2FpdGluZzogJ29ud2FpdGluZycsXG4gICAgb25ab29tOiAnb256b29tJyxcbiAgICBvdmVybGluZVBvc2l0aW9uOiAnb3ZlcmxpbmUtcG9zaXRpb24nLFxuICAgIG92ZXJsaW5lVGhpY2tuZXNzOiAnb3ZlcmxpbmUtdGhpY2tuZXNzJyxcbiAgICBwYWludE9yZGVyOiAncGFpbnQtb3JkZXInLFxuICAgIHBhbm9zZTE6ICdwYW5vc2UtMScsXG4gICAgcG9pbnRlckV2ZW50czogJ3BvaW50ZXItZXZlbnRzJyxcbiAgICByZWZlcnJlclBvbGljeTogJ3JlZmVycmVycG9saWN5JyxcbiAgICByZW5kZXJpbmdJbnRlbnQ6ICdyZW5kZXJpbmctaW50ZW50JyxcbiAgICBzaGFwZVJlbmRlcmluZzogJ3NoYXBlLXJlbmRlcmluZycsXG4gICAgc3RvcENvbG9yOiAnc3RvcC1jb2xvcicsXG4gICAgc3RvcE9wYWNpdHk6ICdzdG9wLW9wYWNpdHknLFxuICAgIHN0cmlrZXRocm91Z2hQb3NpdGlvbjogJ3N0cmlrZXRocm91Z2gtcG9zaXRpb24nLFxuICAgIHN0cmlrZXRocm91Z2hUaGlja25lc3M6ICdzdHJpa2V0aHJvdWdoLXRoaWNrbmVzcycsXG4gICAgc3Ryb2tlRGFzaEFycmF5OiAnc3Ryb2tlLWRhc2hhcnJheScsXG4gICAgc3Ryb2tlRGFzaE9mZnNldDogJ3N0cm9rZS1kYXNob2Zmc2V0JyxcbiAgICBzdHJva2VMaW5lQ2FwOiAnc3Ryb2tlLWxpbmVjYXAnLFxuICAgIHN0cm9rZUxpbmVKb2luOiAnc3Ryb2tlLWxpbmVqb2luJyxcbiAgICBzdHJva2VNaXRlckxpbWl0OiAnc3Ryb2tlLW1pdGVybGltaXQnLFxuICAgIHN0cm9rZU9wYWNpdHk6ICdzdHJva2Utb3BhY2l0eScsXG4gICAgc3Ryb2tlV2lkdGg6ICdzdHJva2Utd2lkdGgnLFxuICAgIHRhYkluZGV4OiAndGFiaW5kZXgnLFxuICAgIHRleHRBbmNob3I6ICd0ZXh0LWFuY2hvcicsXG4gICAgdGV4dERlY29yYXRpb246ICd0ZXh0LWRlY29yYXRpb24nLFxuICAgIHRleHRSZW5kZXJpbmc6ICd0ZXh0LXJlbmRlcmluZycsXG4gICAgdHJhbnNmb3JtT3JpZ2luOiAndHJhbnNmb3JtLW9yaWdpbicsXG4gICAgdHlwZU9mOiAndHlwZW9mJyxcbiAgICB1bmRlcmxpbmVQb3NpdGlvbjogJ3VuZGVybGluZS1wb3NpdGlvbicsXG4gICAgdW5kZXJsaW5lVGhpY2tuZXNzOiAndW5kZXJsaW5lLXRoaWNrbmVzcycsXG4gICAgdW5pY29kZUJpZGk6ICd1bmljb2RlLWJpZGknLFxuICAgIHVuaWNvZGVSYW5nZTogJ3VuaWNvZGUtcmFuZ2UnLFxuICAgIHVuaXRzUGVyRW06ICd1bml0cy1wZXItZW0nLFxuICAgIHZBbHBoYWJldGljOiAndi1hbHBoYWJldGljJyxcbiAgICB2SGFuZ2luZzogJ3YtaGFuZ2luZycsXG4gICAgdklkZW9ncmFwaGljOiAndi1pZGVvZ3JhcGhpYycsXG4gICAgdk1hdGhlbWF0aWNhbDogJ3YtbWF0aGVtYXRpY2FsJyxcbiAgICB2ZWN0b3JFZmZlY3Q6ICd2ZWN0b3ItZWZmZWN0JyxcbiAgICB2ZXJ0QWR2WTogJ3ZlcnQtYWR2LXknLFxuICAgIHZlcnRPcmlnaW5YOiAndmVydC1vcmlnaW4teCcsXG4gICAgdmVydE9yaWdpblk6ICd2ZXJ0LW9yaWdpbi15JyxcbiAgICB3b3JkU3BhY2luZzogJ3dvcmQtc3BhY2luZycsXG4gICAgd3JpdGluZ01vZGU6ICd3cml0aW5nLW1vZGUnLFxuICAgIHhIZWlnaHQ6ICd4LWhlaWdodCcsXG4gICAgLy8gVGhlc2Ugd2VyZSBjYW1lbGNhc2VkIGluIFRpbnkuIE5vdyBsb3dlcmNhc2VkIGluIFNWRyAyXG4gICAgcGxheWJhY2tPcmRlcjogJ3BsYXliYWNrb3JkZXInLFxuICAgIHRpbWVsaW5lQmVnaW46ICd0aW1lbGluZWJlZ2luJ1xuICB9LFxuICB0cmFuc2Zvcm06IGNhc2VTZW5zaXRpdmVUcmFuc2Zvcm0sXG4gIHByb3BlcnRpZXM6IHtcbiAgICBhYm91dDogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIGFjY2VudEhlaWdodDogbnVtYmVyLFxuICAgIGFjY3VtdWxhdGU6IG51bGwsXG4gICAgYWRkaXRpdmU6IG51bGwsXG4gICAgYWxpZ25tZW50QmFzZWxpbmU6IG51bGwsXG4gICAgYWxwaGFiZXRpYzogbnVtYmVyLFxuICAgIGFtcGxpdHVkZTogbnVtYmVyLFxuICAgIGFyYWJpY0Zvcm06IG51bGwsXG4gICAgYXNjZW50OiBudW1iZXIsXG4gICAgYXR0cmlidXRlTmFtZTogbnVsbCxcbiAgICBhdHRyaWJ1dGVUeXBlOiBudWxsLFxuICAgIGF6aW11dGg6IG51bWJlcixcbiAgICBiYW5kd2lkdGg6IG51bGwsXG4gICAgYmFzZWxpbmVTaGlmdDogbnVsbCxcbiAgICBiYXNlRnJlcXVlbmN5OiBudWxsLFxuICAgIGJhc2VQcm9maWxlOiBudWxsLFxuICAgIGJib3g6IG51bGwsXG4gICAgYmVnaW46IG51bGwsXG4gICAgYmlhczogbnVtYmVyLFxuICAgIGJ5OiBudWxsLFxuICAgIGNhbGNNb2RlOiBudWxsLFxuICAgIGNhcEhlaWdodDogbnVtYmVyLFxuICAgIGNsYXNzTmFtZTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgY2xpcDogbnVsbCxcbiAgICBjbGlwUGF0aDogbnVsbCxcbiAgICBjbGlwUGF0aFVuaXRzOiBudWxsLFxuICAgIGNsaXBSdWxlOiBudWxsLFxuICAgIGNvbG9yOiBudWxsLFxuICAgIGNvbG9ySW50ZXJwb2xhdGlvbjogbnVsbCxcbiAgICBjb2xvckludGVycG9sYXRpb25GaWx0ZXJzOiBudWxsLFxuICAgIGNvbG9yUHJvZmlsZTogbnVsbCxcbiAgICBjb2xvclJlbmRlcmluZzogbnVsbCxcbiAgICBjb250ZW50OiBudWxsLFxuICAgIGNvbnRlbnRTY3JpcHRUeXBlOiBudWxsLFxuICAgIGNvbnRlbnRTdHlsZVR5cGU6IG51bGwsXG4gICAgY3Jvc3NPcmlnaW46IG51bGwsXG4gICAgY3Vyc29yOiBudWxsLFxuICAgIGN4OiBudWxsLFxuICAgIGN5OiBudWxsLFxuICAgIGQ6IG51bGwsXG4gICAgZGF0YVR5cGU6IG51bGwsXG4gICAgZGVmYXVsdEFjdGlvbjogbnVsbCxcbiAgICBkZXNjZW50OiBudW1iZXIsXG4gICAgZGlmZnVzZUNvbnN0YW50OiBudW1iZXIsXG4gICAgZGlyZWN0aW9uOiBudWxsLFxuICAgIGRpc3BsYXk6IG51bGwsXG4gICAgZHVyOiBudWxsLFxuICAgIGRpdmlzb3I6IG51bWJlcixcbiAgICBkb21pbmFudEJhc2VsaW5lOiBudWxsLFxuICAgIGRvd25sb2FkOiBib29sZWFuLFxuICAgIGR4OiBudWxsLFxuICAgIGR5OiBudWxsLFxuICAgIGVkZ2VNb2RlOiBudWxsLFxuICAgIGVkaXRhYmxlOiBudWxsLFxuICAgIGVsZXZhdGlvbjogbnVtYmVyLFxuICAgIGVuYWJsZUJhY2tncm91bmQ6IG51bGwsXG4gICAgZW5kOiBudWxsLFxuICAgIGV2ZW50OiBudWxsLFxuICAgIGV4cG9uZW50OiBudW1iZXIsXG4gICAgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDogbnVsbCxcbiAgICBmaWxsOiBudWxsLFxuICAgIGZpbGxPcGFjaXR5OiBudW1iZXIsXG4gICAgZmlsbFJ1bGU6IG51bGwsXG4gICAgZmlsdGVyOiBudWxsLFxuICAgIGZpbHRlclJlczogbnVsbCxcbiAgICBmaWx0ZXJVbml0czogbnVsbCxcbiAgICBmbG9vZENvbG9yOiBudWxsLFxuICAgIGZsb29kT3BhY2l0eTogbnVsbCxcbiAgICBmb2N1c2FibGU6IG51bGwsXG4gICAgZm9jdXNIaWdobGlnaHQ6IG51bGwsXG4gICAgZm9udEZhbWlseTogbnVsbCxcbiAgICBmb250U2l6ZTogbnVsbCxcbiAgICBmb250U2l6ZUFkanVzdDogbnVsbCxcbiAgICBmb250U3RyZXRjaDogbnVsbCxcbiAgICBmb250U3R5bGU6IG51bGwsXG4gICAgZm9udFZhcmlhbnQ6IG51bGwsXG4gICAgZm9udFdlaWdodDogbnVsbCxcbiAgICBmb3JtYXQ6IG51bGwsXG4gICAgZnI6IG51bGwsXG4gICAgZnJvbTogbnVsbCxcbiAgICBmeDogbnVsbCxcbiAgICBmeTogbnVsbCxcbiAgICBnMTogY29tbWFTZXBhcmF0ZWQsXG4gICAgZzI6IGNvbW1hU2VwYXJhdGVkLFxuICAgIGdseXBoTmFtZTogY29tbWFTZXBhcmF0ZWQsXG4gICAgZ2x5cGhPcmllbnRhdGlvbkhvcml6b250YWw6IG51bGwsXG4gICAgZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsOiBudWxsLFxuICAgIGdseXBoUmVmOiBudWxsLFxuICAgIGdyYWRpZW50VHJhbnNmb3JtOiBudWxsLFxuICAgIGdyYWRpZW50VW5pdHM6IG51bGwsXG4gICAgaGFuZGxlcjogbnVsbCxcbiAgICBoYW5naW5nOiBudW1iZXIsXG4gICAgaGF0Y2hDb250ZW50VW5pdHM6IG51bGwsXG4gICAgaGF0Y2hVbml0czogbnVsbCxcbiAgICBoZWlnaHQ6IG51bGwsXG4gICAgaHJlZjogbnVsbCxcbiAgICBocmVmTGFuZzogbnVsbCxcbiAgICBob3JpekFkdlg6IG51bWJlcixcbiAgICBob3Jpek9yaWdpblg6IG51bWJlcixcbiAgICBob3Jpek9yaWdpblk6IG51bWJlcixcbiAgICBpZDogbnVsbCxcbiAgICBpZGVvZ3JhcGhpYzogbnVtYmVyLFxuICAgIGltYWdlUmVuZGVyaW5nOiBudWxsLFxuICAgIGluaXRpYWxWaXNpYmlsaXR5OiBudWxsLFxuICAgIGluOiBudWxsLFxuICAgIGluMjogbnVsbCxcbiAgICBpbnRlcmNlcHQ6IG51bWJlcixcbiAgICBrOiBudW1iZXIsXG4gICAgazE6IG51bWJlcixcbiAgICBrMjogbnVtYmVyLFxuICAgIGszOiBudW1iZXIsXG4gICAgazQ6IG51bWJlcixcbiAgICBrZXJuZWxNYXRyaXg6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICBrZXJuZWxVbml0TGVuZ3RoOiBudWxsLFxuICAgIGtleVBvaW50czogbnVsbCwgLy8gU0VNSV9DT0xPTl9TRVBBUkFURURcbiAgICBrZXlTcGxpbmVzOiBudWxsLCAvLyBTRU1JX0NPTE9OX1NFUEFSQVRFRFxuICAgIGtleVRpbWVzOiBudWxsLCAvLyBTRU1JX0NPTE9OX1NFUEFSQVRFRFxuICAgIGtlcm5pbmc6IG51bGwsXG4gICAgbGFuZzogbnVsbCxcbiAgICBsZW5ndGhBZGp1c3Q6IG51bGwsXG4gICAgbGV0dGVyU3BhY2luZzogbnVsbCxcbiAgICBsaWdodGluZ0NvbG9yOiBudWxsLFxuICAgIGxpbWl0aW5nQ29uZUFuZ2xlOiBudW1iZXIsXG4gICAgbG9jYWw6IG51bGwsXG4gICAgbWFya2VyRW5kOiBudWxsLFxuICAgIG1hcmtlck1pZDogbnVsbCxcbiAgICBtYXJrZXJTdGFydDogbnVsbCxcbiAgICBtYXJrZXJIZWlnaHQ6IG51bGwsXG4gICAgbWFya2VyVW5pdHM6IG51bGwsXG4gICAgbWFya2VyV2lkdGg6IG51bGwsXG4gICAgbWFzazogbnVsbCxcbiAgICBtYXNrQ29udGVudFVuaXRzOiBudWxsLFxuICAgIG1hc2tVbml0czogbnVsbCxcbiAgICBtYXRoZW1hdGljYWw6IG51bGwsXG4gICAgbWF4OiBudWxsLFxuICAgIG1lZGlhOiBudWxsLFxuICAgIG1lZGlhQ2hhcmFjdGVyRW5jb2Rpbmc6IG51bGwsXG4gICAgbWVkaWFDb250ZW50RW5jb2RpbmdzOiBudWxsLFxuICAgIG1lZGlhU2l6ZTogbnVtYmVyLFxuICAgIG1lZGlhVGltZTogbnVsbCxcbiAgICBtZXRob2Q6IG51bGwsXG4gICAgbWluOiBudWxsLFxuICAgIG1vZGU6IG51bGwsXG4gICAgbmFtZTogbnVsbCxcbiAgICBuYXZEb3duOiBudWxsLFxuICAgIG5hdkRvd25MZWZ0OiBudWxsLFxuICAgIG5hdkRvd25SaWdodDogbnVsbCxcbiAgICBuYXZMZWZ0OiBudWxsLFxuICAgIG5hdk5leHQ6IG51bGwsXG4gICAgbmF2UHJldjogbnVsbCxcbiAgICBuYXZSaWdodDogbnVsbCxcbiAgICBuYXZVcDogbnVsbCxcbiAgICBuYXZVcExlZnQ6IG51bGwsXG4gICAgbmF2VXBSaWdodDogbnVsbCxcbiAgICBudW1PY3RhdmVzOiBudWxsLFxuICAgIG9ic2VydmVyOiBudWxsLFxuICAgIG9mZnNldDogbnVsbCxcbiAgICBvbkFib3J0OiBudWxsLFxuICAgIG9uQWN0aXZhdGU6IG51bGwsXG4gICAgb25BZnRlclByaW50OiBudWxsLFxuICAgIG9uQmVmb3JlUHJpbnQ6IG51bGwsXG4gICAgb25CZWdpbjogbnVsbCxcbiAgICBvbkNhbmNlbDogbnVsbCxcbiAgICBvbkNhblBsYXk6IG51bGwsXG4gICAgb25DYW5QbGF5VGhyb3VnaDogbnVsbCxcbiAgICBvbkNoYW5nZTogbnVsbCxcbiAgICBvbkNsaWNrOiBudWxsLFxuICAgIG9uQ2xvc2U6IG51bGwsXG4gICAgb25Db3B5OiBudWxsLFxuICAgIG9uQ3VlQ2hhbmdlOiBudWxsLFxuICAgIG9uQ3V0OiBudWxsLFxuICAgIG9uRGJsQ2xpY2s6IG51bGwsXG4gICAgb25EcmFnOiBudWxsLFxuICAgIG9uRHJhZ0VuZDogbnVsbCxcbiAgICBvbkRyYWdFbnRlcjogbnVsbCxcbiAgICBvbkRyYWdFeGl0OiBudWxsLFxuICAgIG9uRHJhZ0xlYXZlOiBudWxsLFxuICAgIG9uRHJhZ092ZXI6IG51bGwsXG4gICAgb25EcmFnU3RhcnQ6IG51bGwsXG4gICAgb25Ecm9wOiBudWxsLFxuICAgIG9uRHVyYXRpb25DaGFuZ2U6IG51bGwsXG4gICAgb25FbXB0aWVkOiBudWxsLFxuICAgIG9uRW5kOiBudWxsLFxuICAgIG9uRW5kZWQ6IG51bGwsXG4gICAgb25FcnJvcjogbnVsbCxcbiAgICBvbkZvY3VzOiBudWxsLFxuICAgIG9uRm9jdXNJbjogbnVsbCxcbiAgICBvbkZvY3VzT3V0OiBudWxsLFxuICAgIG9uSGFzaENoYW5nZTogbnVsbCxcbiAgICBvbklucHV0OiBudWxsLFxuICAgIG9uSW52YWxpZDogbnVsbCxcbiAgICBvbktleURvd246IG51bGwsXG4gICAgb25LZXlQcmVzczogbnVsbCxcbiAgICBvbktleVVwOiBudWxsLFxuICAgIG9uTG9hZDogbnVsbCxcbiAgICBvbkxvYWRlZERhdGE6IG51bGwsXG4gICAgb25Mb2FkZWRNZXRhZGF0YTogbnVsbCxcbiAgICBvbkxvYWRTdGFydDogbnVsbCxcbiAgICBvbk1lc3NhZ2U6IG51bGwsXG4gICAgb25Nb3VzZURvd246IG51bGwsXG4gICAgb25Nb3VzZUVudGVyOiBudWxsLFxuICAgIG9uTW91c2VMZWF2ZTogbnVsbCxcbiAgICBvbk1vdXNlTW92ZTogbnVsbCxcbiAgICBvbk1vdXNlT3V0OiBudWxsLFxuICAgIG9uTW91c2VPdmVyOiBudWxsLFxuICAgIG9uTW91c2VVcDogbnVsbCxcbiAgICBvbk1vdXNlV2hlZWw6IG51bGwsXG4gICAgb25PZmZsaW5lOiBudWxsLFxuICAgIG9uT25saW5lOiBudWxsLFxuICAgIG9uUGFnZUhpZGU6IG51bGwsXG4gICAgb25QYWdlU2hvdzogbnVsbCxcbiAgICBvblBhc3RlOiBudWxsLFxuICAgIG9uUGF1c2U6IG51bGwsXG4gICAgb25QbGF5OiBudWxsLFxuICAgIG9uUGxheWluZzogbnVsbCxcbiAgICBvblBvcFN0YXRlOiBudWxsLFxuICAgIG9uUHJvZ3Jlc3M6IG51bGwsXG4gICAgb25SYXRlQ2hhbmdlOiBudWxsLFxuICAgIG9uUmVwZWF0OiBudWxsLFxuICAgIG9uUmVzZXQ6IG51bGwsXG4gICAgb25SZXNpemU6IG51bGwsXG4gICAgb25TY3JvbGw6IG51bGwsXG4gICAgb25TZWVrZWQ6IG51bGwsXG4gICAgb25TZWVraW5nOiBudWxsLFxuICAgIG9uU2VsZWN0OiBudWxsLFxuICAgIG9uU2hvdzogbnVsbCxcbiAgICBvblN0YWxsZWQ6IG51bGwsXG4gICAgb25TdG9yYWdlOiBudWxsLFxuICAgIG9uU3VibWl0OiBudWxsLFxuICAgIG9uU3VzcGVuZDogbnVsbCxcbiAgICBvblRpbWVVcGRhdGU6IG51bGwsXG4gICAgb25Ub2dnbGU6IG51bGwsXG4gICAgb25VbmxvYWQ6IG51bGwsXG4gICAgb25Wb2x1bWVDaGFuZ2U6IG51bGwsXG4gICAgb25XYWl0aW5nOiBudWxsLFxuICAgIG9uWm9vbTogbnVsbCxcbiAgICBvcGFjaXR5OiBudWxsLFxuICAgIG9wZXJhdG9yOiBudWxsLFxuICAgIG9yZGVyOiBudWxsLFxuICAgIG9yaWVudDogbnVsbCxcbiAgICBvcmllbnRhdGlvbjogbnVsbCxcbiAgICBvcmlnaW46IG51bGwsXG4gICAgb3ZlcmZsb3c6IG51bGwsXG4gICAgb3ZlcmxheTogbnVsbCxcbiAgICBvdmVybGluZVBvc2l0aW9uOiBudW1iZXIsXG4gICAgb3ZlcmxpbmVUaGlja25lc3M6IG51bWJlcixcbiAgICBwYWludE9yZGVyOiBudWxsLFxuICAgIHBhbm9zZTE6IG51bGwsXG4gICAgcGF0aDogbnVsbCxcbiAgICBwYXRoTGVuZ3RoOiBudW1iZXIsXG4gICAgcGF0dGVybkNvbnRlbnRVbml0czogbnVsbCxcbiAgICBwYXR0ZXJuVHJhbnNmb3JtOiBudWxsLFxuICAgIHBhdHRlcm5Vbml0czogbnVsbCxcbiAgICBwaGFzZTogbnVsbCxcbiAgICBwaW5nOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBwaXRjaDogbnVsbCxcbiAgICBwbGF5YmFja09yZGVyOiBudWxsLFxuICAgIHBvaW50ZXJFdmVudHM6IG51bGwsXG4gICAgcG9pbnRzOiBudWxsLFxuICAgIHBvaW50c0F0WDogbnVtYmVyLFxuICAgIHBvaW50c0F0WTogbnVtYmVyLFxuICAgIHBvaW50c0F0WjogbnVtYmVyLFxuICAgIHByZXNlcnZlQWxwaGE6IG51bGwsXG4gICAgcHJlc2VydmVBc3BlY3RSYXRpbzogbnVsbCxcbiAgICBwcmltaXRpdmVVbml0czogbnVsbCxcbiAgICBwcm9wYWdhdGU6IG51bGwsXG4gICAgcHJvcGVydHk6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICByOiBudWxsLFxuICAgIHJhZGl1czogbnVsbCxcbiAgICByZWZlcnJlclBvbGljeTogbnVsbCxcbiAgICByZWZYOiBudWxsLFxuICAgIHJlZlk6IG51bGwsXG4gICAgcmVsOiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgcmV2OiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgcmVuZGVyaW5nSW50ZW50OiBudWxsLFxuICAgIHJlcGVhdENvdW50OiBudWxsLFxuICAgIHJlcGVhdER1cjogbnVsbCxcbiAgICByZXF1aXJlZEV4dGVuc2lvbnM6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICByZXF1aXJlZEZlYXR1cmVzOiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgcmVxdWlyZWRGb250czogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIHJlcXVpcmVkRm9ybWF0czogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIHJlc291cmNlOiBudWxsLFxuICAgIHJlc3RhcnQ6IG51bGwsXG4gICAgcmVzdWx0OiBudWxsLFxuICAgIHJvdGF0ZTogbnVsbCxcbiAgICByeDogbnVsbCxcbiAgICByeTogbnVsbCxcbiAgICBzY2FsZTogbnVsbCxcbiAgICBzZWVkOiBudWxsLFxuICAgIHNoYXBlUmVuZGVyaW5nOiBudWxsLFxuICAgIHNpZGU6IG51bGwsXG4gICAgc2xvcGU6IG51bGwsXG4gICAgc25hcHNob3RUaW1lOiBudWxsLFxuICAgIHNwZWN1bGFyQ29uc3RhbnQ6IG51bWJlcixcbiAgICBzcGVjdWxhckV4cG9uZW50OiBudW1iZXIsXG4gICAgc3ByZWFkTWV0aG9kOiBudWxsLFxuICAgIHNwYWNpbmc6IG51bGwsXG4gICAgc3RhcnRPZmZzZXQ6IG51bGwsXG4gICAgc3RkRGV2aWF0aW9uOiBudWxsLFxuICAgIHN0ZW1oOiBudWxsLFxuICAgIHN0ZW12OiBudWxsLFxuICAgIHN0aXRjaFRpbGVzOiBudWxsLFxuICAgIHN0b3BDb2xvcjogbnVsbCxcbiAgICBzdG9wT3BhY2l0eTogbnVsbCxcbiAgICBzdHJpa2V0aHJvdWdoUG9zaXRpb246IG51bWJlcixcbiAgICBzdHJpa2V0aHJvdWdoVGhpY2tuZXNzOiBudW1iZXIsXG4gICAgc3RyaW5nOiBudWxsLFxuICAgIHN0cm9rZTogbnVsbCxcbiAgICBzdHJva2VEYXNoQXJyYXk6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICBzdHJva2VEYXNoT2Zmc2V0OiBudWxsLFxuICAgIHN0cm9rZUxpbmVDYXA6IG51bGwsXG4gICAgc3Ryb2tlTGluZUpvaW46IG51bGwsXG4gICAgc3Ryb2tlTWl0ZXJMaW1pdDogbnVtYmVyLFxuICAgIHN0cm9rZU9wYWNpdHk6IG51bWJlcixcbiAgICBzdHJva2VXaWR0aDogbnVsbCxcbiAgICBzdHlsZTogbnVsbCxcbiAgICBzdXJmYWNlU2NhbGU6IG51bWJlcixcbiAgICBzeW5jQmVoYXZpb3I6IG51bGwsXG4gICAgc3luY0JlaGF2aW9yRGVmYXVsdDogbnVsbCxcbiAgICBzeW5jTWFzdGVyOiBudWxsLFxuICAgIHN5bmNUb2xlcmFuY2U6IG51bGwsXG4gICAgc3luY1RvbGVyYW5jZURlZmF1bHQ6IG51bGwsXG4gICAgc3lzdGVtTGFuZ3VhZ2U6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICB0YWJJbmRleDogbnVtYmVyLFxuICAgIHRhYmxlVmFsdWVzOiBudWxsLFxuICAgIHRhcmdldDogbnVsbCxcbiAgICB0YXJnZXRYOiBudW1iZXIsXG4gICAgdGFyZ2V0WTogbnVtYmVyLFxuICAgIHRleHRBbmNob3I6IG51bGwsXG4gICAgdGV4dERlY29yYXRpb246IG51bGwsXG4gICAgdGV4dFJlbmRlcmluZzogbnVsbCxcbiAgICB0ZXh0TGVuZ3RoOiBudWxsLFxuICAgIHRpbWVsaW5lQmVnaW46IG51bGwsXG4gICAgdGl0bGU6IG51bGwsXG4gICAgdHJhbnNmb3JtQmVoYXZpb3I6IG51bGwsXG4gICAgdHlwZTogbnVsbCxcbiAgICB0eXBlT2Y6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICB0bzogbnVsbCxcbiAgICB0cmFuc2Zvcm06IG51bGwsXG4gICAgdHJhbnNmb3JtT3JpZ2luOiBudWxsLFxuICAgIHUxOiBudWxsLFxuICAgIHUyOiBudWxsLFxuICAgIHVuZGVybGluZVBvc2l0aW9uOiBudW1iZXIsXG4gICAgdW5kZXJsaW5lVGhpY2tuZXNzOiBudW1iZXIsXG4gICAgdW5pY29kZTogbnVsbCxcbiAgICB1bmljb2RlQmlkaTogbnVsbCxcbiAgICB1bmljb2RlUmFuZ2U6IG51bGwsXG4gICAgdW5pdHNQZXJFbTogbnVtYmVyLFxuICAgIHZhbHVlczogbnVsbCxcbiAgICB2QWxwaGFiZXRpYzogbnVtYmVyLFxuICAgIHZNYXRoZW1hdGljYWw6IG51bWJlcixcbiAgICB2ZWN0b3JFZmZlY3Q6IG51bGwsXG4gICAgdkhhbmdpbmc6IG51bWJlcixcbiAgICB2SWRlb2dyYXBoaWM6IG51bWJlcixcbiAgICB2ZXJzaW9uOiBudWxsLFxuICAgIHZlcnRBZHZZOiBudW1iZXIsXG4gICAgdmVydE9yaWdpblg6IG51bWJlcixcbiAgICB2ZXJ0T3JpZ2luWTogbnVtYmVyLFxuICAgIHZpZXdCb3g6IG51bGwsXG4gICAgdmlld1RhcmdldDogbnVsbCxcbiAgICB2aXNpYmlsaXR5OiBudWxsLFxuICAgIHdpZHRoOiBudWxsLFxuICAgIHdpZHRoczogbnVsbCxcbiAgICB3b3JkU3BhY2luZzogbnVsbCxcbiAgICB3cml0aW5nTW9kZTogbnVsbCxcbiAgICB4OiBudWxsLFxuICAgIHgxOiBudWxsLFxuICAgIHgyOiBudWxsLFxuICAgIHhDaGFubmVsU2VsZWN0b3I6IG51bGwsXG4gICAgeEhlaWdodDogbnVtYmVyLFxuICAgIHk6IG51bGwsXG4gICAgeTE6IG51bGwsXG4gICAgeTI6IG51bGwsXG4gICAgeUNoYW5uZWxTZWxlY3RvcjogbnVsbCxcbiAgICB6OiBudWxsLFxuICAgIHpvb21BbmRQYW46IG51bGxcbiAgfVxufSlcbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vdXRpbC9zY2hlbWEuanMnKS5TY2hlbWF9IFNjaGVtYVxuICovXG5cbmltcG9ydCB7bm9ybWFsaXplfSBmcm9tICcuL25vcm1hbGl6ZS5qcydcbmltcG9ydCB7RGVmaW5lZEluZm99IGZyb20gJy4vdXRpbC9kZWZpbmVkLWluZm8uanMnXG5pbXBvcnQge0luZm99IGZyb20gJy4vdXRpbC9pbmZvLmpzJ1xuXG5jb25zdCB2YWxpZCA9IC9eZGF0YVstXFx3LjpdKyQvaVxuY29uc3QgZGFzaCA9IC8tW2Etel0vZ1xuY29uc3QgY2FwID0gL1tBLVpdL2dcblxuLyoqXG4gKiBAcGFyYW0ge1NjaGVtYX0gc2NoZW1hXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm5zIHtJbmZvfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZChzY2hlbWEsIHZhbHVlKSB7XG4gIGNvbnN0IG5vcm1hbCA9IG5vcm1hbGl6ZSh2YWx1ZSlcbiAgbGV0IHByb3AgPSB2YWx1ZVxuICBsZXQgVHlwZSA9IEluZm9cblxuICBpZiAobm9ybWFsIGluIHNjaGVtYS5ub3JtYWwpIHtcbiAgICByZXR1cm4gc2NoZW1hLnByb3BlcnR5W3NjaGVtYS5ub3JtYWxbbm9ybWFsXV1cbiAgfVxuXG4gIGlmIChub3JtYWwubGVuZ3RoID4gNCAmJiBub3JtYWwuc2xpY2UoMCwgNCkgPT09ICdkYXRhJyAmJiB2YWxpZC50ZXN0KHZhbHVlKSkge1xuICAgIC8vIEF0dHJpYnV0ZSBvciBwcm9wZXJ0eS5cbiAgICBpZiAodmFsdWUuY2hhckF0KDQpID09PSAnLScpIHtcbiAgICAgIC8vIFR1cm4gaXQgaW50byBhIHByb3BlcnR5LlxuICAgICAgY29uc3QgcmVzdCA9IHZhbHVlLnNsaWNlKDUpLnJlcGxhY2UoZGFzaCwgY2FtZWxjYXNlKVxuICAgICAgcHJvcCA9ICdkYXRhJyArIHJlc3QuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyByZXN0LnNsaWNlKDEpXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFR1cm4gaXQgaW50byBhbiBhdHRyaWJ1dGUuXG4gICAgICBjb25zdCByZXN0ID0gdmFsdWUuc2xpY2UoNClcblxuICAgICAgaWYgKCFkYXNoLnRlc3QocmVzdCkpIHtcbiAgICAgICAgbGV0IGRhc2hlcyA9IHJlc3QucmVwbGFjZShjYXAsIGtlYmFiKVxuXG4gICAgICAgIGlmIChkYXNoZXMuY2hhckF0KDApICE9PSAnLScpIHtcbiAgICAgICAgICBkYXNoZXMgPSAnLScgKyBkYXNoZXNcbiAgICAgICAgfVxuXG4gICAgICAgIHZhbHVlID0gJ2RhdGEnICsgZGFzaGVzXG4gICAgICB9XG4gICAgfVxuXG4gICAgVHlwZSA9IERlZmluZWRJbmZvXG4gIH1cblxuICByZXR1cm4gbmV3IFR5cGUocHJvcCwgdmFsdWUpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9ICQwXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBrZWJhYigkMCkge1xuICByZXR1cm4gJy0nICsgJDAudG9Mb3dlckNhc2UoKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSAkMFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gY2FtZWxjYXNlKCQwKSB7XG4gIHJldHVybiAkMC5jaGFyQXQoMSkudG9VcHBlckNhc2UoKVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9saWIvdXRpbC9pbmZvLmpzJykuSW5mb30gSW5mb1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9saWIvdXRpbC9zY2hlbWEuanMnKS5TY2hlbWF9IFNjaGVtYVxuICovXG5cbmltcG9ydCB7bWVyZ2V9IGZyb20gJy4vbGliL3V0aWwvbWVyZ2UuanMnXG5pbXBvcnQge3hsaW5rfSBmcm9tICcuL2xpYi94bGluay5qcydcbmltcG9ydCB7eG1sfSBmcm9tICcuL2xpYi94bWwuanMnXG5pbXBvcnQge3htbG5zfSBmcm9tICcuL2xpYi94bWxucy5qcydcbmltcG9ydCB7YXJpYX0gZnJvbSAnLi9saWIvYXJpYS5qcydcbmltcG9ydCB7aHRtbCBhcyBodG1sQmFzZX0gZnJvbSAnLi9saWIvaHRtbC5qcydcbmltcG9ydCB7c3ZnIGFzIHN2Z0Jhc2V9IGZyb20gJy4vbGliL3N2Zy5qcydcblxuZXhwb3J0IHtmaW5kfSBmcm9tICcuL2xpYi9maW5kLmpzJ1xuZXhwb3J0IHtoYXN0VG9SZWFjdH0gZnJvbSAnLi9saWIvaGFzdC10by1yZWFjdC5qcydcbmV4cG9ydCB7bm9ybWFsaXplfSBmcm9tICcuL2xpYi9ub3JtYWxpemUuanMnXG5leHBvcnQgY29uc3QgaHRtbCA9IG1lcmdlKFt4bWwsIHhsaW5rLCB4bWxucywgYXJpYSwgaHRtbEJhc2VdLCAnaHRtbCcpXG5leHBvcnQgY29uc3Qgc3ZnID0gbWVyZ2UoW3htbCwgeGxpbmssIHhtbG5zLCBhcmlhLCBzdmdCYXNlXSwgJ3N2ZycpXG4iLCAiLyoqXG4gKiBAdHlwZWRlZiBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24gZm9yIGBzdHJpbmdpZnlgLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbcGFkTGVmdD10cnVlXVxuICogICBXaGV0aGVyIHRvIHBhZCBhIHNwYWNlIGJlZm9yZSBhIHRva2VuLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbcGFkUmlnaHQ9ZmFsc2VdXG4gKiAgIFdoZXRoZXIgdG8gcGFkIGEgc3BhY2UgYWZ0ZXIgYSB0b2tlbi5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPcHRpb25zfSBTdHJpbmdpZnlPcHRpb25zXG4gKiAgIFBsZWFzZSB1c2UgYFN0cmluZ2lmeU9wdGlvbnNgIGluc3RlYWQuXG4gKi9cblxuLyoqXG4gKiBQYXJzZSBjb21tYS1zZXBhcmF0ZWQgdG9rZW5zIHRvIGFuIGFycmF5LlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBDb21tYS1zZXBhcmF0ZWQgdG9rZW5zLlxuICogQHJldHVybnMge0FycmF5PHN0cmluZz59XG4gKiAgIExpc3Qgb2YgdG9rZW5zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2UodmFsdWUpIHtcbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICBjb25zdCB0b2tlbnMgPSBbXVxuICBjb25zdCBpbnB1dCA9IFN0cmluZyh2YWx1ZSB8fCAnJylcbiAgbGV0IGluZGV4ID0gaW5wdXQuaW5kZXhPZignLCcpXG4gIGxldCBzdGFydCA9IDBcbiAgLyoqIEB0eXBlIHtib29sZWFufSAqL1xuICBsZXQgZW5kID0gZmFsc2VcblxuICB3aGlsZSAoIWVuZCkge1xuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgIGluZGV4ID0gaW5wdXQubGVuZ3RoXG4gICAgICBlbmQgPSB0cnVlXG4gICAgfVxuXG4gICAgY29uc3QgdG9rZW4gPSBpbnB1dC5zbGljZShzdGFydCwgaW5kZXgpLnRyaW0oKVxuXG4gICAgaWYgKHRva2VuIHx8ICFlbmQpIHtcbiAgICAgIHRva2Vucy5wdXNoKHRva2VuKVxuICAgIH1cblxuICAgIHN0YXJ0ID0gaW5kZXggKyAxXG4gICAgaW5kZXggPSBpbnB1dC5pbmRleE9mKCcsJywgc3RhcnQpXG4gIH1cblxuICByZXR1cm4gdG9rZW5zXG59XG5cbi8qKlxuICogU2VyaWFsaXplIGFuIGFycmF5IG9mIHN0cmluZ3Mgb3IgbnVtYmVycyB0byBjb21tYS1zZXBhcmF0ZWQgdG9rZW5zLlxuICpcbiAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nfG51bWJlcj59IHZhbHVlc1xuICogICBMaXN0IG9mIHRva2Vucy5cbiAqIEBwYXJhbSB7T3B0aW9uc30gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24gZm9yIGBzdHJpbmdpZnlgIChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBDb21tYS1zZXBhcmF0ZWQgdG9rZW5zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5KHZhbHVlcywgb3B0aW9ucykge1xuICBjb25zdCBzZXR0aW5ncyA9IG9wdGlvbnMgfHwge31cblxuICAvLyBFbnN1cmUgdGhlIGxhc3QgZW1wdHkgZW50cnkgaXMgc2Vlbi5cbiAgY29uc3QgaW5wdXQgPSB2YWx1ZXNbdmFsdWVzLmxlbmd0aCAtIDFdID09PSAnJyA/IFsuLi52YWx1ZXMsICcnXSA6IHZhbHVlc1xuXG4gIHJldHVybiBpbnB1dFxuICAgIC5qb2luKFxuICAgICAgKHNldHRpbmdzLnBhZFJpZ2h0ID8gJyAnIDogJycpICtcbiAgICAgICAgJywnICtcbiAgICAgICAgKHNldHRpbmdzLnBhZExlZnQgPT09IGZhbHNlID8gJycgOiAnICcpXG4gICAgKVxuICAgIC50cmltKClcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50fSBFbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUHJvcGVydGllc30gUHJvcGVydGllc1xuICovXG5cbi8qKlxuICogQHRlbXBsYXRlIHtzdHJpbmd9IFNpbXBsZVNlbGVjdG9yXG4gKiAgIFNlbGVjdG9yIHR5cGUuXG4gKiBAdGVtcGxhdGUge3N0cmluZ30gRGVmYXVsdFRhZ05hbWVcbiAqICAgRGVmYXVsdCB0YWcgbmFtZS5cbiAqIEB0eXBlZGVmIHsoXG4gKiAgIFNpbXBsZVNlbGVjdG9yIGV4dGVuZHMgJydcbiAqICAgICA/IERlZmF1bHRUYWdOYW1lXG4gKiAgICAgOiBTaW1wbGVTZWxlY3RvciBleHRlbmRzIGAke2luZmVyIFRhZ05hbWV9LiR7aW5mZXIgUmVzdH1gXG4gKiAgICAgPyBFeHRyYWN0VGFnTmFtZTxUYWdOYW1lLCBEZWZhdWx0VGFnTmFtZT5cbiAqICAgICA6IFNpbXBsZVNlbGVjdG9yIGV4dGVuZHMgYCR7aW5mZXIgVGFnTmFtZX0jJHtpbmZlciBSZXN0fWBcbiAqICAgICA/IEV4dHJhY3RUYWdOYW1lPFRhZ05hbWUsIERlZmF1bHRUYWdOYW1lPlxuICogICAgIDogU2ltcGxlU2VsZWN0b3IgZXh0ZW5kcyBzdHJpbmdcbiAqICAgICA/IFNpbXBsZVNlbGVjdG9yXG4gKiAgICAgOiBEZWZhdWx0VGFnTmFtZVxuICogKX0gRXh0cmFjdFRhZ05hbWVcbiAqICAgRXh0cmFjdCB0YWcgbmFtZSBmcm9tIGEgc2ltcGxlIHNlbGVjdG9yLlxuICovXG5cbmNvbnN0IHNlYXJjaCA9IC9bIy5dL2dcblxuLyoqXG4gKiBDcmVhdGUgYSBoYXN0IGVsZW1lbnQgZnJvbSBhIHNpbXBsZSBDU1Mgc2VsZWN0b3IuXG4gKlxuICogQHRlbXBsYXRlIHtzdHJpbmd9IFNlbGVjdG9yXG4gKiAgIFR5cGUgb2Ygc2VsZWN0b3IuXG4gKiBAdGVtcGxhdGUge3N0cmluZ30gW0RlZmF1bHRUYWdOYW1lPSdkaXYnXVxuICogICBUeXBlIG9mIGRlZmF1bHQgdGFnIG5hbWUgKGRlZmF1bHQ6IGAnZGl2J2ApLlxuICogQHBhcmFtIHtTZWxlY3RvciB8IG51bGwgfCB1bmRlZmluZWR9IFtzZWxlY3Rvcl1cbiAqICAgU2ltcGxlIENTUyBzZWxlY3RvciAob3B0aW9uYWwpLlxuICpcbiAqICAgQ2FuIGNvbnRhaW4gYSB0YWcgbmFtZSAoYGZvb2ApLCBjbGFzc2VzIChgLmJhcmApLCBhbmQgYW4gSUQgKGAjYmF6YCkuXG4gKiAgIE11bHRpcGxlIGNsYXNzZXMgYXJlIGFsbG93ZWQuXG4gKiAgIFVzZXMgdGhlIGxhc3QgSUQgaWYgbXVsdGlwbGUgSURzIGFyZSBmb3VuZC5cbiAqIEBwYXJhbSB7RGVmYXVsdFRhZ05hbWUgfCBudWxsIHwgdW5kZWZpbmVkfSBbZGVmYXVsdFRhZ05hbWU9J2RpdiddXG4gKiAgIFRhZyBuYW1lIHRvIHVzZSBpZiBgc2VsZWN0b3JgIGRvZXMgbm90IHNwZWNpZnkgb25lIChkZWZhdWx0OiBgJ2RpdidgKS5cbiAqIEByZXR1cm5zIHtFbGVtZW50ICYge3RhZ05hbWU6IEV4dHJhY3RUYWdOYW1lPFNlbGVjdG9yLCBEZWZhdWx0VGFnTmFtZT59fVxuICogICBCdWlsdCBlbGVtZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTZWxlY3RvcihzZWxlY3RvciwgZGVmYXVsdFRhZ05hbWUpIHtcbiAgY29uc3QgdmFsdWUgPSBzZWxlY3RvciB8fCAnJ1xuICAvKiogQHR5cGUge1Byb3BlcnRpZXN9ICovXG4gIGNvbnN0IHByb3BzID0ge31cbiAgbGV0IHN0YXJ0ID0gMFxuICAvKiogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IHByZXZpb3VzXG4gIC8qKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgdGFnTmFtZVxuXG4gIHdoaWxlIChzdGFydCA8IHZhbHVlLmxlbmd0aCkge1xuICAgIHNlYXJjaC5sYXN0SW5kZXggPSBzdGFydFxuICAgIGNvbnN0IG1hdGNoID0gc2VhcmNoLmV4ZWModmFsdWUpXG4gICAgY29uc3Qgc3VidmFsdWUgPSB2YWx1ZS5zbGljZShzdGFydCwgbWF0Y2ggPyBtYXRjaC5pbmRleCA6IHZhbHVlLmxlbmd0aClcblxuICAgIGlmIChzdWJ2YWx1ZSkge1xuICAgICAgaWYgKCFwcmV2aW91cykge1xuICAgICAgICB0YWdOYW1lID0gc3VidmFsdWVcbiAgICAgIH0gZWxzZSBpZiAocHJldmlvdXMgPT09ICcjJykge1xuICAgICAgICBwcm9wcy5pZCA9IHN1YnZhbHVlXG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocHJvcHMuY2xhc3NOYW1lKSkge1xuICAgICAgICBwcm9wcy5jbGFzc05hbWUucHVzaChzdWJ2YWx1ZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHByb3BzLmNsYXNzTmFtZSA9IFtzdWJ2YWx1ZV1cbiAgICAgIH1cblxuICAgICAgc3RhcnQgKz0gc3VidmFsdWUubGVuZ3RoXG4gICAgfVxuXG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICBwcmV2aW91cyA9IG1hdGNoWzBdXG4gICAgICBzdGFydCsrXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnZWxlbWVudCcsXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogdGFnIG5hbWUgaXMgcGFyc2VkLlxuICAgIHRhZ05hbWU6IHRhZ05hbWUgfHwgZGVmYXVsdFRhZ05hbWUgfHwgJ2RpdicsXG4gICAgcHJvcGVydGllczogcHJvcHMsXG4gICAgY2hpbGRyZW46IFtdXG4gIH1cbn1cbiIsICIvKipcbiAqIFBhcnNlIHNwYWNlLXNlcGFyYXRlZCB0b2tlbnMgdG8gYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqICAgU3BhY2Utc2VwYXJhdGVkIHRva2Vucy5cbiAqIEByZXR1cm5zIHtBcnJheTxzdHJpbmc+fVxuICogICBMaXN0IG9mIHRva2Vucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlKHZhbHVlKSB7XG4gIGNvbnN0IGlucHV0ID0gU3RyaW5nKHZhbHVlIHx8ICcnKS50cmltKClcbiAgcmV0dXJuIGlucHV0ID8gaW5wdXQuc3BsaXQoL1sgXFx0XFxuXFxyXFxmXSsvZykgOiBbXVxufVxuXG4vKipcbiAqIFNlcmlhbGl6ZSBhbiBhcnJheSBvZiBzdHJpbmdzIGFzIHNwYWNlIHNlcGFyYXRlZC10b2tlbnMuXG4gKlxuICogQHBhcmFtIHtBcnJheTxzdHJpbmd8bnVtYmVyPn0gdmFsdWVzXG4gKiAgIExpc3Qgb2YgdG9rZW5zLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU3BhY2Utc2VwYXJhdGVkIHRva2Vucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeSh2YWx1ZXMpIHtcbiAgcmV0dXJuIHZhbHVlcy5qb2luKCcgJykudHJpbSgpXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudH0gRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLk5vZGVzfSBOb2Rlc1xuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlJvb3R9IFJvb3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Sb290Q29udGVudH0gUm9vdENvbnRlbnRcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdwcm9wZXJ0eS1pbmZvcm1hdGlvbicpLkluZm99IEluZm9cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3Byb3BlcnR5LWluZm9ybWF0aW9uJykuU2NoZW1hfSBTY2hlbWFcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtFbGVtZW50IHwgUm9vdH0gUmVzdWx0XG4gKiAgIFJlc3VsdCBmcm9tIGEgYGhgIChvciBgc2ApIGNhbGwuXG4gKlxuICogQHR5cGVkZWYge251bWJlciB8IHN0cmluZ30gU3R5bGVWYWx1ZVxuICogICBWYWx1ZSBmb3IgYSBDU1Mgc3R5bGUgZmllbGQuXG4gKiBAdHlwZWRlZiB7UmVjb3JkPHN0cmluZywgU3R5bGVWYWx1ZT59IFN0eWxlXG4gKiAgIFN1cHBvcnRlZCB2YWx1ZSBvZiBhIGBzdHlsZWAgcHJvcC5cbiAqIEB0eXBlZGVmIHtib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gUHJpbWl0aXZlVmFsdWVcbiAqICAgUHJpbWl0aXZlIHByb3BlcnR5IHZhbHVlLlxuICogQHR5cGVkZWYge0FycmF5PG51bWJlciB8IHN0cmluZz59IEFycmF5VmFsdWVcbiAqICAgTGlzdCBvZiBwcm9wZXJ0eSB2YWx1ZXMgZm9yIHNwYWNlLSBvciBjb21tYSBzZXBhcmF0ZWQgdmFsdWVzIChzdWNoIGFzIGBjbGFzc05hbWVgKS5cbiAqIEB0eXBlZGVmIHtBcnJheVZhbHVlIHwgUHJpbWl0aXZlVmFsdWV9IFByb3BlcnR5VmFsdWVcbiAqICAgUHJpbWl0aXZlIHZhbHVlIG9yIGxpc3QgdmFsdWUuXG4gKiBAdHlwZWRlZiB7e1twcm9wZXJ0eTogc3RyaW5nXTogUHJvcGVydHlWYWx1ZSB8IFN0eWxlfX0gUHJvcGVydGllc1xuICogICBBY2NlcHRhYmxlIHZhbHVlIGZvciBlbGVtZW50IHByb3BlcnRpZXMuXG4gKlxuICogQHR5cGVkZWYge251bWJlciB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFByaW1pdGl2ZUNoaWxkXG4gKiAgIFByaW1pdGl2ZSBjaGlsZHJlbiwgZWl0aGVyIGlnbm9yZWQgKG51bGxpc2gpLCBvciB0dXJuZWQgaW50byB0ZXh0IG5vZGVzLlxuICogQHR5cGVkZWYge0FycmF5PEFycmF5Q2hpbGROZXN0ZWQgfCBOb2RlcyB8IFByaW1pdGl2ZUNoaWxkPn0gQXJyYXlDaGlsZFxuICogICBMaXN0IG9mIGNoaWxkcmVuLlxuICogQHR5cGVkZWYge0FycmF5PE5vZGVzIHwgUHJpbWl0aXZlQ2hpbGQ+fSBBcnJheUNoaWxkTmVzdGVkXG4gKiAgIExpc3Qgb2YgY2hpbGRyZW4gKGRlZXApLlxuICogQHR5cGVkZWYge0FycmF5Q2hpbGQgfCBOb2RlcyB8IFByaW1pdGl2ZUNoaWxkfSBDaGlsZFxuICogICBBY2NlcHRhYmxlIGNoaWxkIHZhbHVlLlxuICovXG5cbmltcG9ydCB7cGFyc2UgYXMgY29tbWFzfSBmcm9tICdjb21tYS1zZXBhcmF0ZWQtdG9rZW5zJ1xuaW1wb3J0IHtwYXJzZVNlbGVjdG9yfSBmcm9tICdoYXN0LXV0aWwtcGFyc2Utc2VsZWN0b3InXG5pbXBvcnQge2ZpbmQsIG5vcm1hbGl6ZX0gZnJvbSAncHJvcGVydHktaW5mb3JtYXRpb24nXG5pbXBvcnQge3BhcnNlIGFzIHNwYWNlc30gZnJvbSAnc3BhY2Utc2VwYXJhdGVkLXRva2VucydcblxuY29uc3QgYnV0dG9uVHlwZXMgPSBuZXcgU2V0KFsnYnV0dG9uJywgJ21lbnUnLCAncmVzZXQnLCAnc3VibWl0J10pXG5cbmNvbnN0IG93biA9IHt9Lmhhc093blByb3BlcnR5XG5cbi8qKlxuICogQHBhcmFtIHtTY2hlbWF9IHNjaGVtYVxuICogICBTY2hlbWEgdG8gdXNlLlxuICogQHBhcmFtIHtzdHJpbmd9IGRlZmF1bHRUYWdOYW1lXG4gKiAgIERlZmF1bHQgdGFnIG5hbWUuXG4gKiBAcGFyYW0ge0FycmF5PHN0cmluZz4gfCB1bmRlZmluZWR9IFtjYXNlU2Vuc2l0aXZlXVxuICogICBDYXNlLXNlbnNpdGl2ZSB0YWcgbmFtZXMgKGRlZmF1bHQ6IGB1bmRlZmluZWRgKS5cbiAqIEByZXR1cm5zXG4gKiAgIGBoYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUgoc2NoZW1hLCBkZWZhdWx0VGFnTmFtZSwgY2FzZVNlbnNpdGl2ZSkge1xuICBjb25zdCBhZGp1c3QgPSBjYXNlU2Vuc2l0aXZlICYmIGNyZWF0ZUFkanVzdE1hcChjYXNlU2Vuc2l0aXZlKVxuXG4gIC8qKlxuICAgKiBIeXBlcnNjcmlwdCBjb21wYXRpYmxlIERTTCBmb3IgY3JlYXRpbmcgdmlydHVhbCBoYXN0IHRyZWVzLlxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtudWxsIHwgdW5kZWZpbmVkfSBbc2VsZWN0b3JdXG4gICAqIEBwYXJhbSB7Li4uQ2hpbGR9IGNoaWxkcmVuXG4gICAqIEByZXR1cm5zIHtSb290fVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlbGVjdG9yXG4gICAqIEBwYXJhbSB7UHJvcGVydGllc30gcHJvcGVydGllc1xuICAgKiBAcGFyYW0gey4uLkNoaWxkfSBjaGlsZHJlblxuICAgKiBAcmV0dXJucyB7RWxlbWVudH1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZWxlY3RvclxuICAgKiBAcGFyYW0gey4uLkNoaWxkfSBjaGlsZHJlblxuICAgKiBAcmV0dXJucyB7RWxlbWVudH1cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbc2VsZWN0b3JdXG4gICAqICAgU2VsZWN0b3IuXG4gICAqIEBwYXJhbSB7Q2hpbGQgfCBQcm9wZXJ0aWVzIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3Byb3BlcnRpZXNdXG4gICAqICAgUHJvcGVydGllcyAob3IgZmlyc3QgY2hpbGQpIChkZWZhdWx0OiBgdW5kZWZpbmVkYCkuXG4gICAqIEBwYXJhbSB7Li4uQ2hpbGR9IGNoaWxkcmVuXG4gICAqICAgQ2hpbGRyZW4uXG4gICAqIEByZXR1cm5zIHtSZXN1bHR9XG4gICAqICAgUmVzdWx0LlxuICAgKi9cbiAgZnVuY3Rpb24gaChzZWxlY3RvciwgcHJvcGVydGllcywgLi4uY2hpbGRyZW4pIHtcbiAgICBsZXQgaW5kZXggPSAtMVxuICAgIC8qKiBAdHlwZSB7UmVzdWx0fSAqL1xuICAgIGxldCBub2RlXG5cbiAgICBpZiAoc2VsZWN0b3IgPT09IHVuZGVmaW5lZCB8fCBzZWxlY3RvciA9PT0gbnVsbCkge1xuICAgICAgbm9kZSA9IHt0eXBlOiAncm9vdCcsIGNoaWxkcmVuOiBbXX1cbiAgICAgIC8vIFByb3BlcnRpZXMgYXJlIG5vdCBzdXBwb3J0ZWQgZm9yIHJvb3RzLlxuICAgICAgY29uc3QgY2hpbGQgPSAvKiogQHR5cGUge0NoaWxkfSAqLyAocHJvcGVydGllcylcbiAgICAgIGNoaWxkcmVuLnVuc2hpZnQoY2hpbGQpXG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGUgPSBwYXJzZVNlbGVjdG9yKHNlbGVjdG9yLCBkZWZhdWx0VGFnTmFtZSlcbiAgICAgIC8vIE5vcm1hbGl6ZSB0aGUgbmFtZS5cbiAgICAgIG5vZGUudGFnTmFtZSA9IG5vZGUudGFnTmFtZS50b0xvd2VyQ2FzZSgpXG4gICAgICBpZiAoYWRqdXN0ICYmIG93bi5jYWxsKGFkanVzdCwgbm9kZS50YWdOYW1lKSkge1xuICAgICAgICBub2RlLnRhZ05hbWUgPSBhZGp1c3Rbbm9kZS50YWdOYW1lXVxuICAgICAgfVxuXG4gICAgICAvLyBIYW5kbGUgcHJvcHMuXG4gICAgICBpZiAoaXNQcm9wZXJ0aWVzKHByb3BlcnRpZXMsIG5vZGUudGFnTmFtZSkpIHtcbiAgICAgICAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gICAgICAgIGxldCBrZXlcblxuICAgICAgICBmb3IgKGtleSBpbiBwcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgaWYgKG93bi5jYWxsKHByb3BlcnRpZXMsIGtleSkpIHtcbiAgICAgICAgICAgIGFkZFByb3BlcnR5KHNjaGVtYSwgbm9kZS5wcm9wZXJ0aWVzLCBrZXksIHByb3BlcnRpZXNba2V5XSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNoaWxkcmVuLnVuc2hpZnQocHJvcGVydGllcylcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgY2hpbGRyZW4uXG4gICAgd2hpbGUgKCsraW5kZXggPCBjaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgIGFkZENoaWxkKG5vZGUuY2hpbGRyZW4sIGNoaWxkcmVuW2luZGV4XSlcbiAgICB9XG5cbiAgICBpZiAobm9kZS50eXBlID09PSAnZWxlbWVudCcgJiYgbm9kZS50YWdOYW1lID09PSAndGVtcGxhdGUnKSB7XG4gICAgICBub2RlLmNvbnRlbnQgPSB7dHlwZTogJ3Jvb3QnLCBjaGlsZHJlbjogbm9kZS5jaGlsZHJlbn1cbiAgICAgIG5vZGUuY2hpbGRyZW4gPSBbXVxuICAgIH1cblxuICAgIHJldHVybiBub2RlXG4gIH1cblxuICByZXR1cm4gaFxufVxuXG4vKipcbiAqIENoZWNrIGlmIHNvbWV0aGluZyBpcyBwcm9wZXJ0aWVzIG9yIGEgY2hpbGQuXG4gKlxuICogQHBhcmFtIHtDaGlsZCB8IFByb3BlcnRpZXN9IHZhbHVlXG4gKiAgIFZhbHVlIHRvIGNoZWNrLlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAqICAgVGFnIG5hbWUuXG4gKiBAcmV0dXJucyB7dmFsdWUgaXMgUHJvcGVydGllc31cbiAqICAgV2hldGhlciBgdmFsdWVgIGlzIGEgcHJvcGVydGllcyBvYmplY3QuXG4gKi9cbmZ1bmN0aW9uIGlzUHJvcGVydGllcyh2YWx1ZSwgbmFtZSkge1xuICBpZiAoXG4gICAgdmFsdWUgPT09IG51bGwgfHxcbiAgICB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JyB8fFxuICAgIEFycmF5LmlzQXJyYXkodmFsdWUpXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKG5hbWUgPT09ICdpbnB1dCcgfHwgIXZhbHVlLnR5cGUgfHwgdHlwZW9mIHZhbHVlLnR5cGUgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlmICgnY2hpbGRyZW4nIGluIHZhbHVlICYmIEFycmF5LmlzQXJyYXkodmFsdWUuY2hpbGRyZW4pKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBpZiAobmFtZSA9PT0gJ2J1dHRvbicpIHtcbiAgICByZXR1cm4gYnV0dG9uVHlwZXMuaGFzKHZhbHVlLnR5cGUudG9Mb3dlckNhc2UoKSlcbiAgfVxuXG4gIHJldHVybiAhKCd2YWx1ZScgaW4gdmFsdWUpXG59XG5cbi8qKlxuICogQHBhcmFtIHtTY2hlbWF9IHNjaGVtYVxuICogICBTY2hlbWEuXG4gKiBAcGFyYW0ge1Byb3BlcnRpZXN9IHByb3BlcnRpZXNcbiAqICAgUHJvcGVydGllcyBvYmplY3QuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gKiAgIFByb3BlcnR5IG5hbWUuXG4gKiBAcGFyYW0ge1Byb3BlcnR5VmFsdWUgfCBTdHlsZX0gdmFsdWVcbiAqICAgUHJvcGVydHkgdmFsdWUuXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICogICBOb3RoaW5nLlxuICovXG5mdW5jdGlvbiBhZGRQcm9wZXJ0eShzY2hlbWEsIHByb3BlcnRpZXMsIGtleSwgdmFsdWUpIHtcbiAgY29uc3QgaW5mbyA9IGZpbmQoc2NoZW1hLCBrZXkpXG4gIGxldCBpbmRleCA9IC0xXG4gIC8qKiBAdHlwZSB7UHJvcGVydHlWYWx1ZX0gKi9cbiAgbGV0IHJlc3VsdFxuXG4gIC8vIElnbm9yZSBudWxsaXNoIGFuZCBOYU4gdmFsdWVzLlxuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkgcmV0dXJuXG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAvLyBJZ25vcmUgTmFOLlxuICAgIGlmIChOdW1iZXIuaXNOYU4odmFsdWUpKSByZXR1cm5cblxuICAgIHJlc3VsdCA9IHZhbHVlXG4gIH1cbiAgLy8gQm9vbGVhbnMuXG4gIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgcmVzdWx0ID0gdmFsdWVcbiAgfVxuICAvLyBIYW5kbGUgbGlzdCB2YWx1ZXMuXG4gIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAoaW5mby5zcGFjZVNlcGFyYXRlZCkge1xuICAgICAgcmVzdWx0ID0gc3BhY2VzKHZhbHVlKVxuICAgIH0gZWxzZSBpZiAoaW5mby5jb21tYVNlcGFyYXRlZCkge1xuICAgICAgcmVzdWx0ID0gY29tbWFzKHZhbHVlKVxuICAgIH0gZWxzZSBpZiAoaW5mby5jb21tYU9yU3BhY2VTZXBhcmF0ZWQpIHtcbiAgICAgIHJlc3VsdCA9IHNwYWNlcyhjb21tYXModmFsdWUpLmpvaW4oJyAnKSlcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ID0gcGFyc2VQcmltaXRpdmUoaW5mbywgaW5mby5wcm9wZXJ0eSwgdmFsdWUpXG4gICAgfVxuICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmVzdWx0ID0gdmFsdWUuY29uY2F0KClcbiAgfSBlbHNlIHtcbiAgICByZXN1bHQgPSBpbmZvLnByb3BlcnR5ID09PSAnc3R5bGUnID8gc3R5bGUodmFsdWUpIDogU3RyaW5nKHZhbHVlKVxuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkocmVzdWx0KSkge1xuICAgIC8qKiBAdHlwZSB7QXJyYXk8bnVtYmVyIHwgc3RyaW5nPn0gKi9cbiAgICBjb25zdCBmaW5hbFJlc3VsdCA9IFtdXG5cbiAgICB3aGlsZSAoKytpbmRleCA8IHJlc3VsdC5sZW5ndGgpIHtcbiAgICAgIC8vIEFzc3VtZSBubyBib29sZWFucyBpbiBhcnJheS5cbiAgICAgIGNvbnN0IHZhbHVlID0gLyoqIEB0eXBlIHtudW1iZXIgfCBzdHJpbmd9ICovIChcbiAgICAgICAgcGFyc2VQcmltaXRpdmUoaW5mbywgaW5mby5wcm9wZXJ0eSwgcmVzdWx0W2luZGV4XSlcbiAgICAgIClcbiAgICAgIGZpbmFsUmVzdWx0W2luZGV4XSA9IHZhbHVlXG4gICAgfVxuXG4gICAgcmVzdWx0ID0gZmluYWxSZXN1bHRcbiAgfVxuXG4gIC8vIENsYXNzIG5hbWVzICh3aGljaCBjYW4gYmUgYWRkZWQgYm90aCBvbiB0aGUgYHNlbGVjdG9yYCBhbmQgaGVyZSkuXG4gIGlmIChpbmZvLnByb3BlcnR5ID09PSAnY2xhc3NOYW1lJyAmJiBBcnJheS5pc0FycmF5KHByb3BlcnRpZXMuY2xhc3NOYW1lKSkge1xuICAgIC8vIEFzc3VtZSBubyBib29sZWFucyBpbiBgY2xhc3NOYW1lYC5cbiAgICBjb25zdCB2YWx1ZSA9IC8qKiBAdHlwZSB7bnVtYmVyIHwgc3RyaW5nfSAqLyAocmVzdWx0KVxuICAgIHJlc3VsdCA9IHByb3BlcnRpZXMuY2xhc3NOYW1lLmNvbmNhdCh2YWx1ZSlcbiAgfVxuXG4gIHByb3BlcnRpZXNbaW5mby5wcm9wZXJ0eV0gPSByZXN1bHRcbn1cblxuLyoqXG4gKiBAcGFyYW0ge0FycmF5PFJvb3RDb250ZW50Pn0gbm9kZXNcbiAqICAgQ2hpbGRyZW4uXG4gKiBAcGFyYW0ge0NoaWxkfSB2YWx1ZVxuICogICBDaGlsZC5cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKiAgIE5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIGFkZENoaWxkKG5vZGVzLCB2YWx1ZSkge1xuICBsZXQgaW5kZXggPSAtMVxuXG4gIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgLy8gRW1wdHkuXG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgbm9kZXMucHVzaCh7dHlwZTogJ3RleHQnLCB2YWx1ZTogU3RyaW5nKHZhbHVlKX0pXG4gIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICB3aGlsZSAoKytpbmRleCA8IHZhbHVlLmxlbmd0aCkge1xuICAgICAgYWRkQ2hpbGQobm9kZXMsIHZhbHVlW2luZGV4XSlcbiAgICB9XG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAndHlwZScgaW4gdmFsdWUpIHtcbiAgICBpZiAodmFsdWUudHlwZSA9PT0gJ3Jvb3QnKSB7XG4gICAgICBhZGRDaGlsZChub2RlcywgdmFsdWUuY2hpbGRyZW4pXG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGVzLnB1c2godmFsdWUpXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgbm9kZSwgbm9kZXMsIG9yIHN0cmluZywgZ290IGAnICsgdmFsdWUgKyAnYCcpXG4gIH1cbn1cblxuLyoqXG4gKiBQYXJzZSBhIHNpbmdsZSBwcmltaXRpdmVzLlxuICpcbiAqIEBwYXJhbSB7SW5mb30gaW5mb1xuICogICBQcm9wZXJ0eSBpbmZvcm1hdGlvbi5cbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gKiAgIFByb3BlcnR5IG5hbWUuXG4gKiBAcGFyYW0ge1ByaW1pdGl2ZVZhbHVlfSB2YWx1ZVxuICogICBQcm9wZXJ0eSB2YWx1ZS5cbiAqIEByZXR1cm5zIHtQcmltaXRpdmVWYWx1ZX1cbiAqICAgUHJvcGVydHkgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIHBhcnNlUHJpbWl0aXZlKGluZm8sIG5hbWUsIHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKGluZm8ubnVtYmVyICYmIHZhbHVlICYmICFOdW1iZXIuaXNOYU4oTnVtYmVyKHZhbHVlKSkpIHtcbiAgICAgIHJldHVybiBOdW1iZXIodmFsdWUpXG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgKGluZm8uYm9vbGVhbiB8fCBpbmZvLm92ZXJsb2FkZWRCb29sZWFuKSAmJlxuICAgICAgKHZhbHVlID09PSAnJyB8fCBub3JtYWxpemUodmFsdWUpID09PSBub3JtYWxpemUobmFtZSkpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2YWx1ZVxufVxuXG4vKipcbiAqIFNlcmlhbGl6ZSBhIGBzdHlsZWAgb2JqZWN0IGFzIGEgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7U3R5bGV9IHZhbHVlXG4gKiAgIFN0eWxlIG9iamVjdC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIENTUyBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIHN0eWxlKHZhbHVlKSB7XG4gIC8qKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn0gKi9cbiAgY29uc3QgcmVzdWx0ID0gW11cbiAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gIGxldCBrZXlcblxuICBmb3IgKGtleSBpbiB2YWx1ZSkge1xuICAgIGlmIChvd24uY2FsbCh2YWx1ZSwga2V5KSkge1xuICAgICAgcmVzdWx0LnB1c2goW2tleSwgdmFsdWVba2V5XV0uam9pbignOiAnKSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0LmpvaW4oJzsgJylcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBtYXAgdG8gYWRqdXN0IGNhc2luZy5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PHN0cmluZz59IHZhbHVlc1xuICogICBMaXN0IG9mIHByb3Blcmx5IGNhc2VkIGtleXMuXG4gKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn1cbiAqICAgTWFwIG9mIGxvd2VyY2FzZSBrZXlzIHRvIHVwcGVyY2FzZSBrZXlzLlxuICovXG5mdW5jdGlvbiBjcmVhdGVBZGp1c3RNYXAodmFsdWVzKSB7XG4gIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gKi9cbiAgY29uc3QgcmVzdWx0ID0ge31cbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IHZhbHVlcy5sZW5ndGgpIHtcbiAgICByZXN1bHRbdmFsdWVzW2luZGV4XS50b0xvd2VyQ2FzZSgpXSA9IHZhbHVlc1tpbmRleF1cbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cbiIsICJleHBvcnQgY29uc3Qgc3ZnQ2FzZVNlbnNpdGl2ZVRhZ05hbWVzID0gW1xuICAnYWx0R2x5cGgnLFxuICAnYWx0R2x5cGhEZWYnLFxuICAnYWx0R2x5cGhJdGVtJyxcbiAgJ2FuaW1hdGVDb2xvcicsXG4gICdhbmltYXRlTW90aW9uJyxcbiAgJ2FuaW1hdGVUcmFuc2Zvcm0nLFxuICAnY2xpcFBhdGgnLFxuICAnZmVCbGVuZCcsXG4gICdmZUNvbG9yTWF0cml4JyxcbiAgJ2ZlQ29tcG9uZW50VHJhbnNmZXInLFxuICAnZmVDb21wb3NpdGUnLFxuICAnZmVDb252b2x2ZU1hdHJpeCcsXG4gICdmZURpZmZ1c2VMaWdodGluZycsXG4gICdmZURpc3BsYWNlbWVudE1hcCcsXG4gICdmZURpc3RhbnRMaWdodCcsXG4gICdmZURyb3BTaGFkb3cnLFxuICAnZmVGbG9vZCcsXG4gICdmZUZ1bmNBJyxcbiAgJ2ZlRnVuY0InLFxuICAnZmVGdW5jRycsXG4gICdmZUZ1bmNSJyxcbiAgJ2ZlR2F1c3NpYW5CbHVyJyxcbiAgJ2ZlSW1hZ2UnLFxuICAnZmVNZXJnZScsXG4gICdmZU1lcmdlTm9kZScsXG4gICdmZU1vcnBob2xvZ3knLFxuICAnZmVPZmZzZXQnLFxuICAnZmVQb2ludExpZ2h0JyxcbiAgJ2ZlU3BlY3VsYXJMaWdodGluZycsXG4gICdmZVNwb3RMaWdodCcsXG4gICdmZVRpbGUnLFxuICAnZmVUdXJidWxlbmNlJyxcbiAgJ2ZvcmVpZ25PYmplY3QnLFxuICAnZ2x5cGhSZWYnLFxuICAnbGluZWFyR3JhZGllbnQnLFxuICAncmFkaWFsR3JhZGllbnQnLFxuICAnc29saWRDb2xvcicsXG4gICd0ZXh0QXJlYScsXG4gICd0ZXh0UGF0aCdcbl1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vY3JlYXRlLWguanMnKS5DaGlsZH0gQ2hpbGRcbiAqICAgQWNjZXB0YWJsZSBjaGlsZCB2YWx1ZS5cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vY3JlYXRlLWguanMnKS5Qcm9wZXJ0aWVzfSBQcm9wZXJ0aWVzXG4gKiAgIEFjY2VwdGFibGUgdmFsdWUgZm9yIGVsZW1lbnQgcHJvcGVydGllcy5cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vY3JlYXRlLWguanMnKS5SZXN1bHR9IFJlc3VsdFxuICogICBSZXN1bHQgZnJvbSBhIGBoYCAob3IgYHNgKSBjYWxsLlxuICovXG5cbi8vIFJlZ2lzdGVyIHRoZSBKU1ggbmFtZXNwYWNlIG9uIGBoYC5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9qc3gtY2xhc3NpYy5qcycpLkVsZW1lbnR9IGguSlNYLkVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vanN4LWNsYXNzaWMuanMnKS5FbGVtZW50Q2hpbGRyZW5BdHRyaWJ1dGV9IGguSlNYLkVsZW1lbnRDaGlsZHJlbkF0dHJpYnV0ZVxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9qc3gtY2xhc3NpYy5qcycpLkludHJpbnNpY0F0dHJpYnV0ZXN9IGguSlNYLkludHJpbnNpY0F0dHJpYnV0ZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vanN4LWNsYXNzaWMuanMnKS5JbnRyaW5zaWNFbGVtZW50c30gaC5KU1guSW50cmluc2ljRWxlbWVudHNcbiAqL1xuXG4vLyBSZWdpc3RlciB0aGUgSlNYIG5hbWVzcGFjZSBvbiBgc2AuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vanN4LWNsYXNzaWMuanMnKS5FbGVtZW50fSBzLkpTWC5FbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2pzeC1jbGFzc2ljLmpzJykuRWxlbWVudENoaWxkcmVuQXR0cmlidXRlfSBzLkpTWC5FbGVtZW50Q2hpbGRyZW5BdHRyaWJ1dGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vanN4LWNsYXNzaWMuanMnKS5JbnRyaW5zaWNBdHRyaWJ1dGVzfSBzLkpTWC5JbnRyaW5zaWNBdHRyaWJ1dGVzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2pzeC1jbGFzc2ljLmpzJykuSW50cmluc2ljRWxlbWVudHN9IHMuSlNYLkludHJpbnNpY0VsZW1lbnRzXG4gKi9cblxuaW1wb3J0IHtodG1sLCBzdmd9IGZyb20gJ3Byb3BlcnR5LWluZm9ybWF0aW9uJ1xuaW1wb3J0IHtjcmVhdGVIfSBmcm9tICcuL2NyZWF0ZS1oLmpzJ1xuaW1wb3J0IHtzdmdDYXNlU2Vuc2l0aXZlVGFnTmFtZXN9IGZyb20gJy4vc3ZnLWNhc2Utc2Vuc2l0aXZlLXRhZy1uYW1lcy5qcydcblxuLy8gTm90ZTogdGhpcyBleHBsaWNpdCB0eXBlIGlzIG5lZWRlZCwgb3RoZXJ3aXNlIFRTIGNyZWF0ZXMgYnJva2VuIHR5cGVzLlxuLyoqIEB0eXBlIHtSZXR1cm5UeXBlPGNyZWF0ZUg+fSAqL1xuZXhwb3J0IGNvbnN0IGggPSBjcmVhdGVIKGh0bWwsICdkaXYnKVxuXG4vLyBOb3RlOiB0aGlzIGV4cGxpY2l0IHR5cGUgaXMgbmVlZGVkLCBvdGhlcndpc2UgVFMgY3JlYXRlcyBicm9rZW4gdHlwZXMuXG4vKiogQHR5cGUge1JldHVyblR5cGU8Y3JlYXRlSD59ICovXG5leHBvcnQgY29uc3QgcyA9IGNyZWF0ZUgoc3ZnLCAnZycsIHN2Z0Nhc2VTZW5zaXRpdmVUYWdOYW1lcylcbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3ZmaWxlJykuVkZpbGV9IFZGaWxlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd2ZmlsZScpLlZhbHVlfSBWYWx1ZVxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb2ludH0gVW5pc3RQb2ludFxuICovXG5cbi8qKlxuICpcbiAqIEB0eXBlZGVmIFBvaW50TGlrZVxuICogICB1bmlzdCBwb2ludCwgYWxsb3dlZCBhcyBpbnB1dC5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2xpbmVdXG4gKiAgIExpbmUuXG4gKiBAcHJvcGVydHkge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IFtjb2x1bW5dXG4gKiAgIENvbHVtbi5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29mZnNldF1cbiAqICAgT2Zmc2V0LlxuICpcbiAqIEBjYWxsYmFjayBUb1BvaW50XG4gKiAgIEdldCB0aGUgbGluZS9jb2x1bW4gYmFzZWQgYFBvaW50YCBmb3IgYG9mZnNldGAgaW4gdGhlIGJvdW5kIGluZGljZXMuXG4gKlxuICogICBSZXR1cm5zIGB1bmRlZmluZWRgIHdoZW4gZ2l2ZW4gb3V0IG9mIGJvdW5kcyBpbnB1dC5cbiAqXG4gKiAgIEFsc28gaW1wbGVtZW50ZWQgaW4gUnVzdCBpbiBbYHdvb29ybS9tYXJrZG93bi1yc2BdW21hcmtkb3duLXJzXS5cbiAqXG4gKiAgIFttYXJrZG93bi1yc106IGh0dHBzOi8vZ2l0aHViLmNvbS93b29vcm0vbWFya2Rvd24tcnMvYmxvYi9tYWluL3NyYy91dGlsL2xvY2F0aW9uLnJzXG4gKiBAcGFyYW0ge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IFtvZmZzZXRdXG4gKiAgIFNvbWV0aGluZyB0aGF0IHNob3VsZCBiZSBhbiBgb2Zmc2V0LlxuICogQHJldHVybnMge1VuaXN0UG9pbnQgfCB1bmRlZmluZWR9XG4gKiAgIFBvaW50LCBpZiBgb2Zmc2V0YCBpcyB2YWxpZCBhbmQgaW4tYm91bmRzIGlucHV0LlxuICpcbiAqIEBjYWxsYmFjayBUb09mZnNldFxuICogICBHZXQgdGhlIGBvZmZzZXRgIGZyb20gYSBsaW5lL2NvbHVtbiBiYXNlZCBgUG9pbnRgIGluIHRoZSBib3VuZCBpbmRpY2VzLlxuICogQHBhcmFtIHtQb2ludExpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbcG9pbnRdXG4gKiAgIFNvbWV0aGluZyB0aGF0IHNob3VsZCBiZSBhIGBwb2ludC5cbiAqIEByZXR1cm5zIHtudW1iZXIgfCB1bmRlZmluZWR9XG4gKiAgIE9mZnNldCAoYG51bWJlcmApIG9yIGB1bmRlZmluZWRgIGZvciBpbnZhbGlkIG9yIG91dCBvZiBib3VuZHMgaW5wdXQuXG4gKlxuICogQHR5cGVkZWYgTG9jYXRpb25cbiAqICAgQWNjZXNzb3JzIGZvciBpbmRleC5cbiAqIEBwcm9wZXJ0eSB7VG9Qb2ludH0gdG9Qb2ludFxuICogICBHZXQgdGhlIGxpbmUvY29sdW1uIGJhc2VkIGBQb2ludGAgZm9yIGBvZmZzZXRgIGluIHRoZSBib3VuZCBpbmRpY2VzLlxuICogQHByb3BlcnR5IHtUb09mZnNldH0gdG9PZmZzZXRcbiAqICAgR2V0IHRoZSBgb2Zmc2V0YCBmcm9tIGEgbGluZS9jb2x1bW4gYmFzZWQgYFBvaW50YCBpbiB0aGUgYm91bmQgaW5kaWNlcy5cbiAqL1xuXG5jb25zdCBzZWFyY2ggPSAvXFxyP1xcbnxcXHIvZ1xuXG4vKipcbiAqIENyZWF0ZSBhbiBpbmRleCBvZiB0aGUgZ2l2ZW4gZG9jdW1lbnQgdG8gdHJhbnNsYXRlIGJldHdlZW4gbGluZS9jb2x1bW4gYW5kXG4gKiBvZmZzZXQgYmFzZWQgcG9zaXRpb25hbCBpbmZvLlxuICpcbiAqIEFsc28gaW1wbGVtZW50ZWQgaW4gUnVzdCBpbiBbYHdvb29ybS9tYXJrZG93bi1yc2BdW21hcmtkb3duLXJzXS5cbiAqXG4gKiBbbWFya2Rvd24tcnNdOiBodHRwczovL2dpdGh1Yi5jb20vd29vb3JtL21hcmtkb3duLXJzL2Jsb2IvbWFpbi9zcmMvdXRpbC9sb2NhdGlvbi5yc1xuICpcbiAqIEBwYXJhbSB7VkZpbGUgfCBWYWx1ZX0gZmlsZVxuICogICBGaWxlIHRvIGluZGV4LlxuICogQHJldHVybnMge0xvY2F0aW9ufVxuICogICBBY2Nlc3NvcnMgZm9yIGluZGV4LlxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9jYXRpb24oZmlsZSkge1xuICBjb25zdCB2YWx1ZSA9IFN0cmluZyhmaWxlKVxuICAvKipcbiAgICogTGlzdCwgd2hlcmUgZWFjaCBpbmRleCBpcyBhIGxpbmUgbnVtYmVyICgwLWJhc2VkKSwgYW5kIGVhY2ggdmFsdWUgaXMgdGhlXG4gICAqIGJ5dGUgaW5kZXggKmFmdGVyKiB3aGVyZSB0aGUgbGluZSBlbmRzLlxuICAgKlxuICAgKiBAdHlwZSB7QXJyYXk8bnVtYmVyPn1cbiAgICovXG4gIGNvbnN0IGluZGljZXMgPSBbXVxuXG4gIHNlYXJjaC5sYXN0SW5kZXggPSAwXG5cbiAgd2hpbGUgKHNlYXJjaC50ZXN0KHZhbHVlKSkge1xuICAgIGluZGljZXMucHVzaChzZWFyY2gubGFzdEluZGV4KVxuICB9XG5cbiAgaW5kaWNlcy5wdXNoKHZhbHVlLmxlbmd0aCArIDEpXG5cbiAgcmV0dXJuIHt0b1BvaW50LCB0b09mZnNldH1cblxuICAvKiogQHR5cGUge1RvUG9pbnR9ICovXG4gIGZ1bmN0aW9uIHRvUG9pbnQob2Zmc2V0KSB7XG4gICAgbGV0IGluZGV4ID0gLTFcblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiBvZmZzZXQgPT09ICdudW1iZXInICYmXG4gICAgICBvZmZzZXQgPiAtMSAmJlxuICAgICAgb2Zmc2V0IDwgaW5kaWNlc1tpbmRpY2VzLmxlbmd0aCAtIDFdXG4gICAgKSB7XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGluZGljZXMubGVuZ3RoKSB7XG4gICAgICAgIGlmIChpbmRpY2VzW2luZGV4XSA+IG9mZnNldCkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsaW5lOiBpbmRleCArIDEsXG4gICAgICAgICAgICBjb2x1bW46IG9mZnNldCAtIChpbmRleCA+IDAgPyBpbmRpY2VzW2luZGV4IC0gMV0gOiAwKSArIDEsXG4gICAgICAgICAgICBvZmZzZXRcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogQHR5cGUge1RvT2Zmc2V0fSAqL1xuICBmdW5jdGlvbiB0b09mZnNldChwb2ludCkge1xuICAgIGNvbnN0IGxpbmUgPSBwb2ludCAmJiBwb2ludC5saW5lXG4gICAgY29uc3QgY29sdW1uID0gcG9pbnQgJiYgcG9pbnQuY29sdW1uXG5cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgbGluZSA9PT0gJ251bWJlcicgJiZcbiAgICAgIHR5cGVvZiBjb2x1bW4gPT09ICdudW1iZXInICYmXG4gICAgICAhTnVtYmVyLmlzTmFOKGxpbmUpICYmXG4gICAgICAhTnVtYmVyLmlzTmFOKGNvbHVtbikgJiZcbiAgICAgIGxpbmUgLSAxIGluIGluZGljZXNcbiAgICApIHtcbiAgICAgIGNvbnN0IG9mZnNldCA9IChpbmRpY2VzW2xpbmUgLSAyXSB8fCAwKSArIGNvbHVtbiAtIDEgfHwgMFxuXG4gICAgICBpZiAob2Zmc2V0ID4gLTEgJiYgb2Zmc2V0IDwgaW5kaWNlc1tpbmRpY2VzLmxlbmd0aCAtIDFdKSB7XG4gICAgICAgIHJldHVybiBvZmZzZXRcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsICIvKipcbiAqIE1hcCBvZiB3ZWIgbmFtZXNwYWNlcy5cbiAqXG4gKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn1cbiAqL1xuZXhwb3J0IGNvbnN0IHdlYk5hbWVzcGFjZXMgPSB7XG4gIGh0bWw6ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJyxcbiAgbWF0aG1sOiAnaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCcsXG4gIHN2ZzogJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyxcbiAgeGxpbms6ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyxcbiAgeG1sOiAnaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlJyxcbiAgeG1sbnM6ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLydcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50fSBFbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudERhdGF9IEVsZW1lbnREYXRhXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuTm9kZXN9IE5vZGVzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUm9vdH0gUm9vdFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlJvb3RDb250ZW50fSBSb290Q29udGVudFxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3BhcnNlNScpLkRlZmF1bHRUcmVlQWRhcHRlck1hcH0gRGVmYXVsdFRyZWVBZGFwdGVyTWFwXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdwYXJzZTUnKS5Ub2tlbi5FbGVtZW50TG9jYXRpb259IFA1RWxlbWVudExvY2F0aW9uXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdwYXJzZTUnKS5Ub2tlbi5Mb2NhdGlvbn0gUDVMb2NhdGlvblxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3Byb3BlcnR5LWluZm9ybWF0aW9uJykuU2NoZW1hfSBTY2hlbWFcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBvaW50fSBQb2ludFxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb3NpdGlvbn0gUG9zaXRpb25cbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd2ZmlsZScpLlZGaWxlfSBWRmlsZVxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge0RlZmF1bHRUcmVlQWRhcHRlck1hcFsnZG9jdW1lbnQnXX0gUDVEb2N1bWVudFxuICogQHR5cGVkZWYge0RlZmF1bHRUcmVlQWRhcHRlck1hcFsnZG9jdW1lbnRGcmFnbWVudCddfSBQNURvY3VtZW50RnJhZ21lbnRcbiAqIEB0eXBlZGVmIHtEZWZhdWx0VHJlZUFkYXB0ZXJNYXBbJ2RvY3VtZW50VHlwZSddfSBQNURvY3VtZW50VHlwZVxuICogQHR5cGVkZWYge0RlZmF1bHRUcmVlQWRhcHRlck1hcFsnY29tbWVudE5vZGUnXX0gUDVDb21tZW50XG4gKiBAdHlwZWRlZiB7RGVmYXVsdFRyZWVBZGFwdGVyTWFwWyd0ZXh0Tm9kZSddfSBQNVRleHRcbiAqIEB0eXBlZGVmIHtEZWZhdWx0VHJlZUFkYXB0ZXJNYXBbJ2VsZW1lbnQnXX0gUDVFbGVtZW50XG4gKiBAdHlwZWRlZiB7RGVmYXVsdFRyZWVBZGFwdGVyTWFwWydub2RlJ119IFA1Tm9kZVxuICogQHR5cGVkZWYge0RlZmF1bHRUcmVlQWRhcHRlck1hcFsndGVtcGxhdGUnXX0gUDVUZW1wbGF0ZVxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgT3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uLlxuICogQHByb3BlcnR5IHtTcGFjZSB8IG51bGwgfCB1bmRlZmluZWR9IFtzcGFjZT0naHRtbCddXG4gKiAgIFdoaWNoIHNwYWNlIHRoZSBkb2N1bWVudCBpcyBpbiAoZGVmYXVsdDogYCdodG1sJ2ApLlxuICpcbiAqICAgV2hlbiBhbiBgPHN2Zz5gIGVsZW1lbnQgaXMgZm91bmQgaW4gdGhlIEhUTUwgc3BhY2UsIHRoaXMgcGFja2FnZSBhbHJlYWR5XG4gKiAgIGF1dG9tYXRpY2FsbHkgc3dpdGNoZXMgdG8gYW5kIGZyb20gdGhlIFNWRyBzcGFjZSB3aGVuIGVudGVyaW5nIGFuZCBleGl0aW5nXG4gKiAgIGl0LlxuICogQHByb3BlcnR5IHtWRmlsZSB8IG51bGwgfCB1bmRlZmluZWR9IFtmaWxlXVxuICogICBGaWxlIHVzZWQgdG8gYWRkIHBvc2l0aW9uYWwgaW5mbyB0byBub2RlcyAob3B0aW9uYWwpLlxuICpcbiAqICAgSWYgZ2l2ZW4sIHRoZSBmaWxlIHNob3VsZCByZXByZXNlbnQgdGhlIG9yaWdpbmFsIEhUTUwgc291cmNlLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3ZlcmJvc2U9ZmFsc2VdXG4gKiAgIFdoZXRoZXIgdG8gYWRkIGV4dHJhIHBvc2l0aW9uYWwgaW5mbyBhYm91dCBzdGFydGluZyB0YWdzLCBjbG9zaW5nIHRhZ3MsXG4gKiAgIGFuZCBhdHRyaWJ1dGVzIHRvIGVsZW1lbnRzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBvbmx5IHVzZWQgd2hlbiBgZmlsZWAgaXMgZ2l2ZW4uXG4gKlxuICogQHR5cGVkZWYgeydodG1sJyB8ICdzdmcnfSBTcGFjZVxuICogICBOYW1lc3BhY2UuXG4gKlxuICogQHR5cGVkZWYgU3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHByb3BlcnR5IHtWRmlsZSB8IHVuZGVmaW5lZH0gZmlsZVxuICogICBDb3JyZXNwb25kaW5nIGZpbGUuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGxvY2F0aW9uXG4gKiAgIFdoZXRoZXIgbG9jYXRpb24gaW5mbyB3YXMgZm91bmQuXG4gKiBAcHJvcGVydHkge1NjaGVtYX0gc2NoZW1hXG4gKiAgIEN1cnJlbnQgc2NoZW1hLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgdW5kZWZpbmVkfSB2ZXJib3NlXG4gKiAgIEFkZCBleHRyYSBwb3NpdGlvbmFsIGluZm8uXG4gKi9cblxuaW1wb3J0IHtvayBhcyBhc3NlcnR9IGZyb20gJ2RldmxvcCdcbmltcG9ydCB7aCwgc30gZnJvbSAnaGFzdHNjcmlwdCdcbmltcG9ydCB7ZmluZCwgaHRtbCwgc3ZnfSBmcm9tICdwcm9wZXJ0eS1pbmZvcm1hdGlvbidcbmltcG9ydCB7bG9jYXRpb259IGZyb20gJ3ZmaWxlLWxvY2F0aW9uJ1xuaW1wb3J0IHt3ZWJOYW1lc3BhY2VzfSBmcm9tICd3ZWItbmFtZXNwYWNlcydcblxuY29uc3Qgb3duID0ge30uaGFzT3duUHJvcGVydHlcbi8qKiBAdHlwZSB7dW5rbm93bn0gKi9cbi8vIHR5cGUtY292ZXJhZ2U6aWdub3JlLW5leHQtbGluZVxuY29uc3QgcHJvdG8gPSBPYmplY3QucHJvdG90eXBlXG5cbi8qKlxuICogVHJhbnNmb3JtIGEgYHBhcnNlNWAgQVNUIHRvIGhhc3QuXG4gKlxuICogQHBhcmFtIHtQNU5vZGV9IHRyZWVcbiAqICAgYHBhcnNlNWAgdHJlZSB0byB0cmFuc2Zvcm0uXG4gKiBAcGFyYW0ge09wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICogQHJldHVybnMge05vZGVzfVxuICogICBoYXN0IHRyZWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmcm9tUGFyc2U1KHRyZWUsIG9wdGlvbnMpIHtcbiAgY29uc3Qgc2V0dGluZ3MgPSBvcHRpb25zIHx8IHt9XG5cbiAgcmV0dXJuIG9uZShcbiAgICB7XG4gICAgICBmaWxlOiBzZXR0aW5ncy5maWxlIHx8IHVuZGVmaW5lZCxcbiAgICAgIGxvY2F0aW9uOiBmYWxzZSxcbiAgICAgIHNjaGVtYTogc2V0dGluZ3Muc3BhY2UgPT09ICdzdmcnID8gc3ZnIDogaHRtbCxcbiAgICAgIHZlcmJvc2U6IHNldHRpbmdzLnZlcmJvc2UgfHwgZmFsc2VcbiAgICB9LFxuICAgIHRyZWVcbiAgKVxufVxuXG4vKipcbiAqIFRyYW5zZm9ybSBhIG5vZGUuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHtQNU5vZGV9IG5vZGVcbiAqICAgcDUgbm9kZS5cbiAqIEByZXR1cm5zIHtOb2Rlc31cbiAqICAgaGFzdCBub2RlLlxuICovXG5mdW5jdGlvbiBvbmUoc3RhdGUsIG5vZGUpIHtcbiAgLyoqIEB0eXBlIHtOb2Rlc30gKi9cbiAgbGV0IHJlc3VsdFxuXG4gIHN3aXRjaCAobm9kZS5ub2RlTmFtZSkge1xuICAgIGNhc2UgJyNjb21tZW50Jzoge1xuICAgICAgY29uc3QgcmVmZXJlbmNlID0gLyoqIEB0eXBlIHtQNUNvbW1lbnR9ICovIChub2RlKVxuICAgICAgcmVzdWx0ID0ge3R5cGU6ICdjb21tZW50JywgdmFsdWU6IHJlZmVyZW5jZS5kYXRhfVxuICAgICAgcGF0Y2goc3RhdGUsIHJlZmVyZW5jZSwgcmVzdWx0KVxuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH1cblxuICAgIGNhc2UgJyNkb2N1bWVudCc6XG4gICAgY2FzZSAnI2RvY3VtZW50LWZyYWdtZW50Jzoge1xuICAgICAgY29uc3QgcmVmZXJlbmNlID0gLyoqIEB0eXBlIHtQNURvY3VtZW50IHwgUDVEb2N1bWVudEZyYWdtZW50fSAqLyAobm9kZSlcbiAgICAgIGNvbnN0IHF1aXJrc01vZGUgPVxuICAgICAgICAnbW9kZScgaW4gcmVmZXJlbmNlXG4gICAgICAgICAgPyByZWZlcmVuY2UubW9kZSA9PT0gJ3F1aXJrcycgfHwgcmVmZXJlbmNlLm1vZGUgPT09ICdsaW1pdGVkLXF1aXJrcydcbiAgICAgICAgICA6IGZhbHNlXG5cbiAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgdHlwZTogJ3Jvb3QnLFxuICAgICAgICBjaGlsZHJlbjogYWxsKHN0YXRlLCBub2RlLmNoaWxkTm9kZXMpLFxuICAgICAgICBkYXRhOiB7cXVpcmtzTW9kZX1cbiAgICAgIH1cblxuICAgICAgaWYgKHN0YXRlLmZpbGUgJiYgc3RhdGUubG9jYXRpb24pIHtcbiAgICAgICAgY29uc3QgZG9jID0gU3RyaW5nKHN0YXRlLmZpbGUpXG4gICAgICAgIGNvbnN0IGxvYyA9IGxvY2F0aW9uKGRvYylcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBsb2MudG9Qb2ludCgwKVxuICAgICAgICBjb25zdCBlbmQgPSBsb2MudG9Qb2ludChkb2MubGVuZ3RoKVxuICAgICAgICAvLyBBbHdheXMgZGVmaW5lZCBhcyB3ZSBnaXZlIHZhbGlkIGlucHV0LlxuICAgICAgICBhc3NlcnQoc3RhcnQsICdleHBlY3RlZCBgc3RhcnRgJylcbiAgICAgICAgYXNzZXJ0KGVuZCwgJ2V4cGVjdGVkIGBlbmRgJylcbiAgICAgICAgcmVzdWx0LnBvc2l0aW9uID0ge3N0YXJ0LCBlbmR9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG5cbiAgICBjYXNlICcjZG9jdW1lbnRUeXBlJzoge1xuICAgICAgY29uc3QgcmVmZXJlbmNlID0gLyoqIEB0eXBlIHtQNURvY3VtZW50VHlwZX0gKi8gKG5vZGUpXG4gICAgICByZXN1bHQgPSB7dHlwZTogJ2RvY3R5cGUnfVxuICAgICAgcGF0Y2goc3RhdGUsIHJlZmVyZW5jZSwgcmVzdWx0KVxuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH1cblxuICAgIGNhc2UgJyN0ZXh0Jzoge1xuICAgICAgY29uc3QgcmVmZXJlbmNlID0gLyoqIEB0eXBlIHtQNVRleHR9ICovIChub2RlKVxuICAgICAgcmVzdWx0ID0ge3R5cGU6ICd0ZXh0JywgdmFsdWU6IHJlZmVyZW5jZS52YWx1ZX1cbiAgICAgIHBhdGNoKHN0YXRlLCByZWZlcmVuY2UsIHJlc3VsdClcbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG5cbiAgICAvLyBFbGVtZW50LlxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IC8qKiBAdHlwZSB7UDVFbGVtZW50fSAqLyAobm9kZSlcbiAgICAgIHJlc3VsdCA9IGVsZW1lbnQoc3RhdGUsIHJlZmVyZW5jZSlcbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm0gY2hpbGRyZW4uXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHtBcnJheTxQNU5vZGU+fSBub2Rlc1xuICogICBOb2Rlcy5cbiAqIEByZXR1cm5zIHtBcnJheTxSb290Q29udGVudD59XG4gKiAgIGhhc3Qgbm9kZXMuXG4gKi9cbmZ1bmN0aW9uIGFsbChzdGF0ZSwgbm9kZXMpIHtcbiAgbGV0IGluZGV4ID0gLTFcbiAgLyoqIEB0eXBlIHtBcnJheTxSb290Q29udGVudD59ICovXG4gIGNvbnN0IHJlc3VsdHMgPSBbXVxuXG4gIHdoaWxlICgrK2luZGV4IDwgbm9kZXMubGVuZ3RoKSB7XG4gICAgLy8gQXNzdW1lIG5vIHJvb3RzIGluIGBub2Rlc2AuXG4gICAgY29uc3QgcmVzdWx0ID0gLyoqIEB0eXBlIHtSb290Q29udGVudH0gKi8gKG9uZShzdGF0ZSwgbm9kZXNbaW5kZXhdKSlcbiAgICByZXN1bHRzLnB1c2gocmVzdWx0KVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdHNcbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm0gYW4gZWxlbWVudC5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcGFyYW0ge1A1RWxlbWVudH0gbm9kZVxuICogICBgcGFyc2U1YCBub2RlIHRvIHRyYW5zZm9ybS5cbiAqIEByZXR1cm5zIHtFbGVtZW50fVxuICogICBoYXN0IG5vZGUuXG4gKi9cbmZ1bmN0aW9uIGVsZW1lbnQoc3RhdGUsIG5vZGUpIHtcbiAgY29uc3Qgc2NoZW1hID0gc3RhdGUuc2NoZW1hXG5cbiAgc3RhdGUuc2NoZW1hID0gbm9kZS5uYW1lc3BhY2VVUkkgPT09IHdlYk5hbWVzcGFjZXMuc3ZnID8gc3ZnIDogaHRtbFxuXG4gIC8vIFByb3BzLlxuICBsZXQgaW5kZXggPSAtMVxuICAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIHN0cmluZz59ICovXG4gIGNvbnN0IHByb3BzID0ge31cblxuICB3aGlsZSAoKytpbmRleCA8IG5vZGUuYXR0cnMubGVuZ3RoKSB7XG4gICAgY29uc3QgYXR0cmlidXRlID0gbm9kZS5hdHRyc1tpbmRleF1cbiAgICBjb25zdCBuYW1lID1cbiAgICAgIChhdHRyaWJ1dGUucHJlZml4ID8gYXR0cmlidXRlLnByZWZpeCArICc6JyA6ICcnKSArIGF0dHJpYnV0ZS5uYW1lXG4gICAgaWYgKCFvd24uY2FsbChwcm90bywgbmFtZSkpIHtcbiAgICAgIHByb3BzW25hbWVdID0gYXR0cmlidXRlLnZhbHVlXG4gICAgfVxuICB9XG5cbiAgLy8gQnVpbGQuXG4gIGNvbnN0IGZuID0gc3RhdGUuc2NoZW1hLnNwYWNlID09PSAnc3ZnJyA/IHMgOiBoXG4gIGNvbnN0IHJlc3VsdCA9IGZuKG5vZGUudGFnTmFtZSwgcHJvcHMsIGFsbChzdGF0ZSwgbm9kZS5jaGlsZE5vZGVzKSlcbiAgcGF0Y2goc3RhdGUsIG5vZGUsIHJlc3VsdClcblxuICAvLyBTd2l0Y2ggY29udGVudC5cbiAgaWYgKHJlc3VsdC50YWdOYW1lID09PSAndGVtcGxhdGUnKSB7XG4gICAgY29uc3QgcmVmZXJlbmNlID0gLyoqIEB0eXBlIHtQNVRlbXBsYXRlfSAqLyAobm9kZSlcbiAgICBjb25zdCBwb3MgPSByZWZlcmVuY2Uuc291cmNlQ29kZUxvY2F0aW9uXG4gICAgY29uc3Qgc3RhcnRUYWcgPSBwb3MgJiYgcG9zLnN0YXJ0VGFnICYmIHBvc2l0aW9uKHBvcy5zdGFydFRhZylcbiAgICBjb25zdCBlbmRUYWcgPSBwb3MgJiYgcG9zLmVuZFRhZyAmJiBwb3NpdGlvbihwb3MuZW5kVGFnKVxuXG4gICAgLy8gUm9vdCBpbiwgcm9vdCBvdXQuXG4gICAgY29uc3QgY29udGVudCA9IC8qKiBAdHlwZSB7Um9vdH0gKi8gKG9uZShzdGF0ZSwgcmVmZXJlbmNlLmNvbnRlbnQpKVxuXG4gICAgaWYgKHN0YXJ0VGFnICYmIGVuZFRhZyAmJiBzdGF0ZS5maWxlKSB7XG4gICAgICBjb250ZW50LnBvc2l0aW9uID0ge3N0YXJ0OiBzdGFydFRhZy5lbmQsIGVuZDogZW5kVGFnLnN0YXJ0fVxuICAgIH1cblxuICAgIHJlc3VsdC5jb250ZW50ID0gY29udGVudFxuICB9XG5cbiAgc3RhdGUuc2NoZW1hID0gc2NoZW1hXG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG4vKipcbiAqIFBhdGNoIHBvc2l0aW9uYWwgaW5mbyBmcm9tIGBmcm9tYCBvbnRvIGB0b2AuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHtQNU5vZGV9IGZyb21cbiAqICAgcDUgbm9kZS5cbiAqIEBwYXJhbSB7Tm9kZXN9IHRvXG4gKiAgIGhhc3Qgbm9kZS5cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKiAgIE5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIHBhdGNoKHN0YXRlLCBmcm9tLCB0bykge1xuICBpZiAoJ3NvdXJjZUNvZGVMb2NhdGlvbicgaW4gZnJvbSAmJiBmcm9tLnNvdXJjZUNvZGVMb2NhdGlvbiAmJiBzdGF0ZS5maWxlKSB7XG4gICAgY29uc3QgcG9zaXRpb24gPSBjcmVhdGVMb2NhdGlvbihzdGF0ZSwgdG8sIGZyb20uc291cmNlQ29kZUxvY2F0aW9uKVxuXG4gICAgaWYgKHBvc2l0aW9uKSB7XG4gICAgICBzdGF0ZS5sb2NhdGlvbiA9IHRydWVcbiAgICAgIHRvLnBvc2l0aW9uID0gcG9zaXRpb25cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGUgY2xlYW4gcG9zaXRpb25hbCBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcGFyYW0ge05vZGVzfSBub2RlXG4gKiAgIGhhc3Qgbm9kZS5cbiAqIEBwYXJhbSB7UDVFbGVtZW50TG9jYXRpb259IGxvY2F0aW9uXG4gKiAgIHA1IGxvY2F0aW9uIGluZm8uXG4gKiBAcmV0dXJucyB7UG9zaXRpb24gfCB1bmRlZmluZWR9XG4gKiAgIFBvc2l0aW9uLCBvciBub3RoaW5nLlxuICovXG5mdW5jdGlvbiBjcmVhdGVMb2NhdGlvbihzdGF0ZSwgbm9kZSwgbG9jYXRpb24pIHtcbiAgY29uc3QgcmVzdWx0ID0gcG9zaXRpb24obG9jYXRpb24pXG5cbiAgaWYgKG5vZGUudHlwZSA9PT0gJ2VsZW1lbnQnKSB7XG4gICAgY29uc3QgdGFpbCA9IG5vZGUuY2hpbGRyZW5bbm9kZS5jaGlsZHJlbi5sZW5ndGggLSAxXVxuXG4gICAgLy8gQnVnIGZvciB1bmNsb3NlZCB3aXRoIGNoaWxkcmVuLlxuICAgIC8vIFNlZTogPGh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9wYXJzZTUvaXNzdWVzLzEwOT4uXG4gICAgaWYgKFxuICAgICAgcmVzdWx0ICYmXG4gICAgICAhbG9jYXRpb24uZW5kVGFnICYmXG4gICAgICB0YWlsICYmXG4gICAgICB0YWlsLnBvc2l0aW9uICYmXG4gICAgICB0YWlsLnBvc2l0aW9uLmVuZFxuICAgICkge1xuICAgICAgcmVzdWx0LmVuZCA9IE9iamVjdC5hc3NpZ24oe30sIHRhaWwucG9zaXRpb24uZW5kKVxuICAgIH1cblxuICAgIGlmIChzdGF0ZS52ZXJib3NlKSB7XG4gICAgICAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIFBvc2l0aW9uIHwgdW5kZWZpbmVkPn0gKi9cbiAgICAgIGNvbnN0IHByb3BzID0ge31cbiAgICAgIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICAgICAgbGV0IGtleVxuXG4gICAgICBpZiAobG9jYXRpb24uYXR0cnMpIHtcbiAgICAgICAgZm9yIChrZXkgaW4gbG9jYXRpb24uYXR0cnMpIHtcbiAgICAgICAgICBpZiAob3duLmNhbGwobG9jYXRpb24uYXR0cnMsIGtleSkpIHtcbiAgICAgICAgICAgIHByb3BzW2ZpbmQoc3RhdGUuc2NoZW1hLCBrZXkpLnByb3BlcnR5XSA9IHBvc2l0aW9uKFxuICAgICAgICAgICAgICBsb2NhdGlvbi5hdHRyc1trZXldXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGFzc2VydChsb2NhdGlvbi5zdGFydFRhZywgJ2Egc3RhcnQgdGFnIHNob3VsZCBleGlzdCcpXG4gICAgICBjb25zdCBvcGVuaW5nID0gcG9zaXRpb24obG9jYXRpb24uc3RhcnRUYWcpXG4gICAgICBjb25zdCBjbG9zaW5nID0gbG9jYXRpb24uZW5kVGFnID8gcG9zaXRpb24obG9jYXRpb24uZW5kVGFnKSA6IHVuZGVmaW5lZFxuICAgICAgLyoqIEB0eXBlIHtFbGVtZW50RGF0YVsncG9zaXRpb24nXX0gKi9cbiAgICAgIGNvbnN0IGRhdGEgPSB7b3BlbmluZ31cbiAgICAgIGlmIChjbG9zaW5nKSBkYXRhLmNsb3NpbmcgPSBjbG9zaW5nXG4gICAgICBkYXRhLnByb3BlcnRpZXMgPSBwcm9wc1xuXG4gICAgICBub2RlLmRhdGEgPSB7cG9zaXRpb246IGRhdGF9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG4vKipcbiAqIFR1cm4gYSBwNSBsb2NhdGlvbiBpbnRvIGEgcG9zaXRpb24uXG4gKlxuICogQHBhcmFtIHtQNUxvY2F0aW9ufSBsb2NcbiAqICAgTG9jYXRpb24uXG4gKiBAcmV0dXJucyB7UG9zaXRpb24gfCB1bmRlZmluZWR9XG4gKiAgIFBvc2l0aW9uIG9yIG5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIHBvc2l0aW9uKGxvYykge1xuICBjb25zdCBzdGFydCA9IHBvaW50KHtcbiAgICBsaW5lOiBsb2Muc3RhcnRMaW5lLFxuICAgIGNvbHVtbjogbG9jLnN0YXJ0Q29sLFxuICAgIG9mZnNldDogbG9jLnN0YXJ0T2Zmc2V0XG4gIH0pXG4gIGNvbnN0IGVuZCA9IHBvaW50KHtcbiAgICBsaW5lOiBsb2MuZW5kTGluZSxcbiAgICBjb2x1bW46IGxvYy5lbmRDb2wsXG4gICAgb2Zmc2V0OiBsb2MuZW5kT2Zmc2V0XG4gIH0pXG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvcjogd2UgZG8gdXNlIGB1bmRlZmluZWRgIGZvciBwb2ludHMgaWYgb25lIG9yIHRoZSBvdGhlclxuICAvLyBleGlzdHMuXG4gIHJldHVybiBzdGFydCB8fCBlbmQgPyB7c3RhcnQsIGVuZH0gOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBGaWx0ZXIgb3V0IGludmFsaWQgcG9pbnRzLlxuICpcbiAqIEBwYXJhbSB7UG9pbnR9IHBvaW50XG4gKiAgIFBvaW50IHdpdGggcG90ZW50aWFsbHkgYHVuZGVmaW5lZGAgdmFsdWVzLlxuICogQHJldHVybnMge1BvaW50IHwgdW5kZWZpbmVkfVxuICogICBQb2ludCBvciBub3RoaW5nLlxuICovXG5mdW5jdGlvbiBwb2ludChwb2ludCkge1xuICByZXR1cm4gcG9pbnQubGluZSAmJiBwb2ludC5jb2x1bW4gPyBwb2ludCA6IHVuZGVmaW5lZFxufVxuIiwgImNvbnN0IFVOREVGSU5FRF9DT0RFX1BPSU5UUyA9IG5ldyBTZXQoW1xuICAgIDY1NTM0LCA2NTUzNSwgMTMxMDcwLCAxMzEwNzEsIDE5NjYwNiwgMTk2NjA3LCAyNjIxNDIsIDI2MjE0MywgMzI3Njc4LCAzMjc2NzksIDM5MzIxNCxcbiAgICAzOTMyMTUsIDQ1ODc1MCwgNDU4NzUxLCA1MjQyODYsIDUyNDI4NywgNTg5ODIyLCA1ODk4MjMsIDY1NTM1OCwgNjU1MzU5LCA3MjA4OTQsXG4gICAgNzIwODk1LCA3ODY0MzAsIDc4NjQzMSwgODUxOTY2LCA4NTE5NjcsIDkxNzUwMiwgOTE3NTAzLCA5ODMwMzgsIDk4MzAzOSwgMTA0ODU3NCxcbiAgICAxMDQ4NTc1LCAxMTE0MTEwLCAxMTE0MTExLFxuXSk7XG5leHBvcnQgY29uc3QgUkVQTEFDRU1FTlRfQ0hBUkFDVEVSID0gJ1xcdUZGRkQnO1xuZXhwb3J0IHZhciBDT0RFX1BPSU5UUztcbihmdW5jdGlvbiAoQ09ERV9QT0lOVFMpIHtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkVPRlwiXSA9IC0xXSA9IFwiRU9GXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJOVUxMXCJdID0gMF0gPSBcIk5VTExcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIlRBQlVMQVRJT05cIl0gPSA5XSA9IFwiVEFCVUxBVElPTlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiQ0FSUklBR0VfUkVUVVJOXCJdID0gMTNdID0gXCJDQVJSSUFHRV9SRVRVUk5cIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkxJTkVfRkVFRFwiXSA9IDEwXSA9IFwiTElORV9GRUVEXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJGT1JNX0ZFRURcIl0gPSAxMl0gPSBcIkZPUk1fRkVFRFwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiU1BBQ0VcIl0gPSAzMl0gPSBcIlNQQUNFXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJFWENMQU1BVElPTl9NQVJLXCJdID0gMzNdID0gXCJFWENMQU1BVElPTl9NQVJLXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJRVU9UQVRJT05fTUFSS1wiXSA9IDM0XSA9IFwiUVVPVEFUSU9OX01BUktcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIk5VTUJFUl9TSUdOXCJdID0gMzVdID0gXCJOVU1CRVJfU0lHTlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiQU1QRVJTQU5EXCJdID0gMzhdID0gXCJBTVBFUlNBTkRcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkFQT1NUUk9QSEVcIl0gPSAzOV0gPSBcIkFQT1NUUk9QSEVcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkhZUEhFTl9NSU5VU1wiXSA9IDQ1XSA9IFwiSFlQSEVOX01JTlVTXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJTT0xJRFVTXCJdID0gNDddID0gXCJTT0xJRFVTXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJESUdJVF8wXCJdID0gNDhdID0gXCJESUdJVF8wXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJESUdJVF85XCJdID0gNTddID0gXCJESUdJVF85XCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJTRU1JQ09MT05cIl0gPSA1OV0gPSBcIlNFTUlDT0xPTlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTEVTU19USEFOX1NJR05cIl0gPSA2MF0gPSBcIkxFU1NfVEhBTl9TSUdOXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJFUVVBTFNfU0lHTlwiXSA9IDYxXSA9IFwiRVFVQUxTX1NJR05cIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkdSRUFURVJfVEhBTl9TSUdOXCJdID0gNjJdID0gXCJHUkVBVEVSX1RIQU5fU0lHTlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiUVVFU1RJT05fTUFSS1wiXSA9IDYzXSA9IFwiUVVFU1RJT05fTUFSS1wiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTEFUSU5fQ0FQSVRBTF9BXCJdID0gNjVdID0gXCJMQVRJTl9DQVBJVEFMX0FcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkxBVElOX0NBUElUQUxfRlwiXSA9IDcwXSA9IFwiTEFUSU5fQ0FQSVRBTF9GXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJMQVRJTl9DQVBJVEFMX1hcIl0gPSA4OF0gPSBcIkxBVElOX0NBUElUQUxfWFwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTEFUSU5fQ0FQSVRBTF9aXCJdID0gOTBdID0gXCJMQVRJTl9DQVBJVEFMX1pcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIlJJR0hUX1NRVUFSRV9CUkFDS0VUXCJdID0gOTNdID0gXCJSSUdIVF9TUVVBUkVfQlJBQ0tFVFwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiR1JBVkVfQUNDRU5UXCJdID0gOTZdID0gXCJHUkFWRV9BQ0NFTlRcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkxBVElOX1NNQUxMX0FcIl0gPSA5N10gPSBcIkxBVElOX1NNQUxMX0FcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkxBVElOX1NNQUxMX0ZcIl0gPSAxMDJdID0gXCJMQVRJTl9TTUFMTF9GXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJMQVRJTl9TTUFMTF9YXCJdID0gMTIwXSA9IFwiTEFUSU5fU01BTExfWFwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTEFUSU5fU01BTExfWlwiXSA9IDEyMl0gPSBcIkxBVElOX1NNQUxMX1pcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIlJFUExBQ0VNRU5UX0NIQVJBQ1RFUlwiXSA9IDY1NTMzXSA9IFwiUkVQTEFDRU1FTlRfQ0hBUkFDVEVSXCI7XG59KShDT0RFX1BPSU5UUyA9IENPREVfUE9JTlRTIHx8IChDT0RFX1BPSU5UUyA9IHt9KSk7XG5leHBvcnQgY29uc3QgU0VRVUVOQ0VTID0ge1xuICAgIERBU0hfREFTSDogJy0tJyxcbiAgICBDREFUQV9TVEFSVDogJ1tDREFUQVsnLFxuICAgIERPQ1RZUEU6ICdkb2N0eXBlJyxcbiAgICBTQ1JJUFQ6ICdzY3JpcHQnLFxuICAgIFBVQkxJQzogJ3B1YmxpYycsXG4gICAgU1lTVEVNOiAnc3lzdGVtJyxcbn07XG4vL1N1cnJvZ2F0ZXNcbmV4cG9ydCBmdW5jdGlvbiBpc1N1cnJvZ2F0ZShjcCkge1xuICAgIHJldHVybiBjcCA+PSA1NTI5NiAmJiBjcCA8PSA1NzM0Mztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc1N1cnJvZ2F0ZVBhaXIoY3ApIHtcbiAgICByZXR1cm4gY3AgPj0gNTYzMjAgJiYgY3AgPD0gNTczNDM7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0U3Vycm9nYXRlUGFpckNvZGVQb2ludChjcDEsIGNwMikge1xuICAgIHJldHVybiAoY3AxIC0gNTUyOTYpICogMTAyNCArIDkyMTYgKyBjcDI7XG59XG4vL05PVEU6IGV4Y2x1ZGluZyBOVUxMIGFuZCBBU0NJSSB3aGl0ZXNwYWNlXG5leHBvcnQgZnVuY3Rpb24gaXNDb250cm9sQ29kZVBvaW50KGNwKSB7XG4gICAgcmV0dXJuICgoY3AgIT09IDB4MjAgJiYgY3AgIT09IDB4MGEgJiYgY3AgIT09IDB4MGQgJiYgY3AgIT09IDB4MDkgJiYgY3AgIT09IDB4MGMgJiYgY3AgPj0gMHgwMSAmJiBjcCA8PSAweDFmKSB8fFxuICAgICAgICAoY3AgPj0gMHg3ZiAmJiBjcCA8PSAweDlmKSk7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNVbmRlZmluZWRDb2RlUG9pbnQoY3ApIHtcbiAgICByZXR1cm4gKGNwID49IDY0OTc2ICYmIGNwIDw9IDY1MDA3KSB8fCBVTkRFRklORURfQ09ERV9QT0lOVFMuaGFzKGNwKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVuaWNvZGUuanMubWFwIiwgImV4cG9ydCB2YXIgRVJSO1xuKGZ1bmN0aW9uIChFUlIpIHtcbiAgICBFUlJbXCJjb250cm9sQ2hhcmFjdGVySW5JbnB1dFN0cmVhbVwiXSA9IFwiY29udHJvbC1jaGFyYWN0ZXItaW4taW5wdXQtc3RyZWFtXCI7XG4gICAgRVJSW1wibm9uY2hhcmFjdGVySW5JbnB1dFN0cmVhbVwiXSA9IFwibm9uY2hhcmFjdGVyLWluLWlucHV0LXN0cmVhbVwiO1xuICAgIEVSUltcInN1cnJvZ2F0ZUluSW5wdXRTdHJlYW1cIl0gPSBcInN1cnJvZ2F0ZS1pbi1pbnB1dC1zdHJlYW1cIjtcbiAgICBFUlJbXCJub25Wb2lkSHRtbEVsZW1lbnRTdGFydFRhZ1dpdGhUcmFpbGluZ1NvbGlkdXNcIl0gPSBcIm5vbi12b2lkLWh0bWwtZWxlbWVudC1zdGFydC10YWctd2l0aC10cmFpbGluZy1zb2xpZHVzXCI7XG4gICAgRVJSW1wiZW5kVGFnV2l0aEF0dHJpYnV0ZXNcIl0gPSBcImVuZC10YWctd2l0aC1hdHRyaWJ1dGVzXCI7XG4gICAgRVJSW1wiZW5kVGFnV2l0aFRyYWlsaW5nU29saWR1c1wiXSA9IFwiZW5kLXRhZy13aXRoLXRyYWlsaW5nLXNvbGlkdXNcIjtcbiAgICBFUlJbXCJ1bmV4cGVjdGVkU29saWR1c0luVGFnXCJdID0gXCJ1bmV4cGVjdGVkLXNvbGlkdXMtaW4tdGFnXCI7XG4gICAgRVJSW1widW5leHBlY3RlZE51bGxDaGFyYWN0ZXJcIl0gPSBcInVuZXhwZWN0ZWQtbnVsbC1jaGFyYWN0ZXJcIjtcbiAgICBFUlJbXCJ1bmV4cGVjdGVkUXVlc3Rpb25NYXJrSW5zdGVhZE9mVGFnTmFtZVwiXSA9IFwidW5leHBlY3RlZC1xdWVzdGlvbi1tYXJrLWluc3RlYWQtb2YtdGFnLW5hbWVcIjtcbiAgICBFUlJbXCJpbnZhbGlkRmlyc3RDaGFyYWN0ZXJPZlRhZ05hbWVcIl0gPSBcImludmFsaWQtZmlyc3QtY2hhcmFjdGVyLW9mLXRhZy1uYW1lXCI7XG4gICAgRVJSW1widW5leHBlY3RlZEVxdWFsc1NpZ25CZWZvcmVBdHRyaWJ1dGVOYW1lXCJdID0gXCJ1bmV4cGVjdGVkLWVxdWFscy1zaWduLWJlZm9yZS1hdHRyaWJ1dGUtbmFtZVwiO1xuICAgIEVSUltcIm1pc3NpbmdFbmRUYWdOYW1lXCJdID0gXCJtaXNzaW5nLWVuZC10YWctbmFtZVwiO1xuICAgIEVSUltcInVuZXhwZWN0ZWRDaGFyYWN0ZXJJbkF0dHJpYnV0ZU5hbWVcIl0gPSBcInVuZXhwZWN0ZWQtY2hhcmFjdGVyLWluLWF0dHJpYnV0ZS1uYW1lXCI7XG4gICAgRVJSW1widW5rbm93bk5hbWVkQ2hhcmFjdGVyUmVmZXJlbmNlXCJdID0gXCJ1bmtub3duLW5hbWVkLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJtaXNzaW5nU2VtaWNvbG9uQWZ0ZXJDaGFyYWN0ZXJSZWZlcmVuY2VcIl0gPSBcIm1pc3Npbmctc2VtaWNvbG9uLWFmdGVyLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJ1bmV4cGVjdGVkQ2hhcmFjdGVyQWZ0ZXJEb2N0eXBlU3lzdGVtSWRlbnRpZmllclwiXSA9IFwidW5leHBlY3RlZC1jaGFyYWN0ZXItYWZ0ZXItZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllclwiO1xuICAgIEVSUltcInVuZXhwZWN0ZWRDaGFyYWN0ZXJJblVucXVvdGVkQXR0cmlidXRlVmFsdWVcIl0gPSBcInVuZXhwZWN0ZWQtY2hhcmFjdGVyLWluLXVucXVvdGVkLWF0dHJpYnV0ZS12YWx1ZVwiO1xuICAgIEVSUltcImVvZkJlZm9yZVRhZ05hbWVcIl0gPSBcImVvZi1iZWZvcmUtdGFnLW5hbWVcIjtcbiAgICBFUlJbXCJlb2ZJblRhZ1wiXSA9IFwiZW9mLWluLXRhZ1wiO1xuICAgIEVSUltcIm1pc3NpbmdBdHRyaWJ1dGVWYWx1ZVwiXSA9IFwibWlzc2luZy1hdHRyaWJ1dGUtdmFsdWVcIjtcbiAgICBFUlJbXCJtaXNzaW5nV2hpdGVzcGFjZUJldHdlZW5BdHRyaWJ1dGVzXCJdID0gXCJtaXNzaW5nLXdoaXRlc3BhY2UtYmV0d2Vlbi1hdHRyaWJ1dGVzXCI7XG4gICAgRVJSW1wibWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVQdWJsaWNLZXl3b3JkXCJdID0gXCJtaXNzaW5nLXdoaXRlc3BhY2UtYWZ0ZXItZG9jdHlwZS1wdWJsaWMta2V5d29yZFwiO1xuICAgIEVSUltcIm1pc3NpbmdXaGl0ZXNwYWNlQmV0d2VlbkRvY3R5cGVQdWJsaWNBbmRTeXN0ZW1JZGVudGlmaWVyc1wiXSA9IFwibWlzc2luZy13aGl0ZXNwYWNlLWJldHdlZW4tZG9jdHlwZS1wdWJsaWMtYW5kLXN5c3RlbS1pZGVudGlmaWVyc1wiO1xuICAgIEVSUltcIm1pc3NpbmdXaGl0ZXNwYWNlQWZ0ZXJEb2N0eXBlU3lzdGVtS2V5d29yZFwiXSA9IFwibWlzc2luZy13aGl0ZXNwYWNlLWFmdGVyLWRvY3R5cGUtc3lzdGVtLWtleXdvcmRcIjtcbiAgICBFUlJbXCJtaXNzaW5nUXVvdGVCZWZvcmVEb2N0eXBlUHVibGljSWRlbnRpZmllclwiXSA9IFwibWlzc2luZy1xdW90ZS1iZWZvcmUtZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllclwiO1xuICAgIEVSUltcIm1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyXCJdID0gXCJtaXNzaW5nLXF1b3RlLWJlZm9yZS1kb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyXCI7XG4gICAgRVJSW1wibWlzc2luZ0RvY3R5cGVQdWJsaWNJZGVudGlmaWVyXCJdID0gXCJtaXNzaW5nLWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXJcIjtcbiAgICBFUlJbXCJtaXNzaW5nRG9jdHlwZVN5c3RlbUlkZW50aWZpZXJcIl0gPSBcIm1pc3NpbmctZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllclwiO1xuICAgIEVSUltcImFicnVwdERvY3R5cGVQdWJsaWNJZGVudGlmaWVyXCJdID0gXCJhYnJ1cHQtZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllclwiO1xuICAgIEVSUltcImFicnVwdERvY3R5cGVTeXN0ZW1JZGVudGlmaWVyXCJdID0gXCJhYnJ1cHQtZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllclwiO1xuICAgIEVSUltcImNkYXRhSW5IdG1sQ29udGVudFwiXSA9IFwiY2RhdGEtaW4taHRtbC1jb250ZW50XCI7XG4gICAgRVJSW1wiaW5jb3JyZWN0bHlPcGVuZWRDb21tZW50XCJdID0gXCJpbmNvcnJlY3RseS1vcGVuZWQtY29tbWVudFwiO1xuICAgIEVSUltcImVvZkluU2NyaXB0SHRtbENvbW1lbnRMaWtlVGV4dFwiXSA9IFwiZW9mLWluLXNjcmlwdC1odG1sLWNvbW1lbnQtbGlrZS10ZXh0XCI7XG4gICAgRVJSW1wiZW9mSW5Eb2N0eXBlXCJdID0gXCJlb2YtaW4tZG9jdHlwZVwiO1xuICAgIEVSUltcIm5lc3RlZENvbW1lbnRcIl0gPSBcIm5lc3RlZC1jb21tZW50XCI7XG4gICAgRVJSW1wiYWJydXB0Q2xvc2luZ09mRW1wdHlDb21tZW50XCJdID0gXCJhYnJ1cHQtY2xvc2luZy1vZi1lbXB0eS1jb21tZW50XCI7XG4gICAgRVJSW1wiZW9mSW5Db21tZW50XCJdID0gXCJlb2YtaW4tY29tbWVudFwiO1xuICAgIEVSUltcImluY29ycmVjdGx5Q2xvc2VkQ29tbWVudFwiXSA9IFwiaW5jb3JyZWN0bHktY2xvc2VkLWNvbW1lbnRcIjtcbiAgICBFUlJbXCJlb2ZJbkNkYXRhXCJdID0gXCJlb2YtaW4tY2RhdGFcIjtcbiAgICBFUlJbXCJhYnNlbmNlT2ZEaWdpdHNJbk51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2VcIl0gPSBcImFic2VuY2Utb2YtZGlnaXRzLWluLW51bWVyaWMtY2hhcmFjdGVyLXJlZmVyZW5jZVwiO1xuICAgIEVSUltcIm51bGxDaGFyYWN0ZXJSZWZlcmVuY2VcIl0gPSBcIm51bGwtY2hhcmFjdGVyLXJlZmVyZW5jZVwiO1xuICAgIEVSUltcInN1cnJvZ2F0ZUNoYXJhY3RlclJlZmVyZW5jZVwiXSA9IFwic3Vycm9nYXRlLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJjaGFyYWN0ZXJSZWZlcmVuY2VPdXRzaWRlVW5pY29kZVJhbmdlXCJdID0gXCJjaGFyYWN0ZXItcmVmZXJlbmNlLW91dHNpZGUtdW5pY29kZS1yYW5nZVwiO1xuICAgIEVSUltcImNvbnRyb2xDaGFyYWN0ZXJSZWZlcmVuY2VcIl0gPSBcImNvbnRyb2wtY2hhcmFjdGVyLXJlZmVyZW5jZVwiO1xuICAgIEVSUltcIm5vbmNoYXJhY3RlckNoYXJhY3RlclJlZmVyZW5jZVwiXSA9IFwibm9uY2hhcmFjdGVyLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJtaXNzaW5nV2hpdGVzcGFjZUJlZm9yZURvY3R5cGVOYW1lXCJdID0gXCJtaXNzaW5nLXdoaXRlc3BhY2UtYmVmb3JlLWRvY3R5cGUtbmFtZVwiO1xuICAgIEVSUltcIm1pc3NpbmdEb2N0eXBlTmFtZVwiXSA9IFwibWlzc2luZy1kb2N0eXBlLW5hbWVcIjtcbiAgICBFUlJbXCJpbnZhbGlkQ2hhcmFjdGVyU2VxdWVuY2VBZnRlckRvY3R5cGVOYW1lXCJdID0gXCJpbnZhbGlkLWNoYXJhY3Rlci1zZXF1ZW5jZS1hZnRlci1kb2N0eXBlLW5hbWVcIjtcbiAgICBFUlJbXCJkdXBsaWNhdGVBdHRyaWJ1dGVcIl0gPSBcImR1cGxpY2F0ZS1hdHRyaWJ1dGVcIjtcbiAgICBFUlJbXCJub25Db25mb3JtaW5nRG9jdHlwZVwiXSA9IFwibm9uLWNvbmZvcm1pbmctZG9jdHlwZVwiO1xuICAgIEVSUltcIm1pc3NpbmdEb2N0eXBlXCJdID0gXCJtaXNzaW5nLWRvY3R5cGVcIjtcbiAgICBFUlJbXCJtaXNwbGFjZWREb2N0eXBlXCJdID0gXCJtaXNwbGFjZWQtZG9jdHlwZVwiO1xuICAgIEVSUltcImVuZFRhZ1dpdGhvdXRNYXRjaGluZ09wZW5FbGVtZW50XCJdID0gXCJlbmQtdGFnLXdpdGhvdXQtbWF0Y2hpbmctb3Blbi1lbGVtZW50XCI7XG4gICAgRVJSW1wiY2xvc2luZ09mRWxlbWVudFdpdGhPcGVuQ2hpbGRFbGVtZW50c1wiXSA9IFwiY2xvc2luZy1vZi1lbGVtZW50LXdpdGgtb3Blbi1jaGlsZC1lbGVtZW50c1wiO1xuICAgIEVSUltcImRpc2FsbG93ZWRDb250ZW50SW5Ob3NjcmlwdEluSGVhZFwiXSA9IFwiZGlzYWxsb3dlZC1jb250ZW50LWluLW5vc2NyaXB0LWluLWhlYWRcIjtcbiAgICBFUlJbXCJvcGVuRWxlbWVudHNMZWZ0QWZ0ZXJFb2ZcIl0gPSBcIm9wZW4tZWxlbWVudHMtbGVmdC1hZnRlci1lb2ZcIjtcbiAgICBFUlJbXCJhYmFuZG9uZWRIZWFkRWxlbWVudENoaWxkXCJdID0gXCJhYmFuZG9uZWQtaGVhZC1lbGVtZW50LWNoaWxkXCI7XG4gICAgRVJSW1wibWlzcGxhY2VkU3RhcnRUYWdGb3JIZWFkRWxlbWVudFwiXSA9IFwibWlzcGxhY2VkLXN0YXJ0LXRhZy1mb3ItaGVhZC1lbGVtZW50XCI7XG4gICAgRVJSW1wibmVzdGVkTm9zY3JpcHRJbkhlYWRcIl0gPSBcIm5lc3RlZC1ub3NjcmlwdC1pbi1oZWFkXCI7XG4gICAgRVJSW1wiZW9mSW5FbGVtZW50VGhhdENhbkNvbnRhaW5Pbmx5VGV4dFwiXSA9IFwiZW9mLWluLWVsZW1lbnQtdGhhdC1jYW4tY29udGFpbi1vbmx5LXRleHRcIjtcbn0pKEVSUiA9IEVSUiB8fCAoRVJSID0ge30pKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVycm9yLWNvZGVzLmpzLm1hcCIsICJpbXBvcnQgeyBDT0RFX1BPSU5UUyBhcyAkLCBnZXRTdXJyb2dhdGVQYWlyQ29kZVBvaW50LCBpc0NvbnRyb2xDb2RlUG9pbnQsIGlzU3Vycm9nYXRlLCBpc1N1cnJvZ2F0ZVBhaXIsIGlzVW5kZWZpbmVkQ29kZVBvaW50LCB9IGZyb20gJy4uL2NvbW1vbi91bmljb2RlLmpzJztcbmltcG9ydCB7IEVSUiB9IGZyb20gJy4uL2NvbW1vbi9lcnJvci1jb2Rlcy5qcyc7XG4vL0NvbnN0XG5jb25zdCBERUZBVUxUX0JVRkZFUl9XQVRFUkxJTkUgPSAxIDw8IDE2O1xuLy9QcmVwcm9jZXNzb3Jcbi8vTk9URTogSFRNTCBpbnB1dCBwcmVwcm9jZXNzaW5nXG4vLyhzZWU6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3BhcnNpbmcuaHRtbCNwcmVwcm9jZXNzaW5nLXRoZS1pbnB1dC1zdHJlYW0pXG5leHBvcnQgY2xhc3MgUHJlcHJvY2Vzc29yIHtcbiAgICBjb25zdHJ1Y3RvcihoYW5kbGVyKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlciA9IGhhbmRsZXI7XG4gICAgICAgIHRoaXMuaHRtbCA9ICcnO1xuICAgICAgICB0aGlzLnBvcyA9IC0xO1xuICAgICAgICAvLyBOT1RFOiBJbml0aWFsIGBsYXN0R2FwUG9zYCBpcyAtMiwgdG8gZW5zdXJlIGBjb2xgIG9uIGluaXRpYWxpc2F0aW9uIGlzIDBcbiAgICAgICAgdGhpcy5sYXN0R2FwUG9zID0gLTI7XG4gICAgICAgIHRoaXMuZ2FwU3RhY2sgPSBbXTtcbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sYXN0Q2h1bmtXcml0dGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmJ1ZmZlcldhdGVybGluZSA9IERFRkFVTFRfQlVGRkVSX1dBVEVSTElORTtcbiAgICAgICAgdGhpcy5pc0VvbCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxpbmVTdGFydFBvcyA9IDA7XG4gICAgICAgIHRoaXMuZHJvcHBlZEJ1ZmZlclNpemUgPSAwO1xuICAgICAgICB0aGlzLmxpbmUgPSAxO1xuICAgICAgICAvL05PVEU6IGF2b2lkIHJlcG9ydGluZyBlcnJvcnMgdHdpY2Ugb24gYWR2YW5jZS9yZXRyZWF0XG4gICAgICAgIHRoaXMubGFzdEVyck9mZnNldCA9IC0xO1xuICAgIH1cbiAgICAvKiogVGhlIGNvbHVtbiBvbiB0aGUgY3VycmVudCBsaW5lLiBJZiB3ZSBqdXN0IHNhdyBhIGdhcCAoZWcuIGEgc3Vycm9nYXRlIHBhaXIpLCByZXR1cm4gdGhlIGluZGV4IGJlZm9yZS4gKi9cbiAgICBnZXQgY29sKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3MgLSB0aGlzLmxpbmVTdGFydFBvcyArIE51bWJlcih0aGlzLmxhc3RHYXBQb3MgIT09IHRoaXMucG9zKTtcbiAgICB9XG4gICAgZ2V0IG9mZnNldCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZHJvcHBlZEJ1ZmZlclNpemUgKyB0aGlzLnBvcztcbiAgICB9XG4gICAgZ2V0RXJyb3IoY29kZSkge1xuICAgICAgICBjb25zdCB7IGxpbmUsIGNvbCwgb2Zmc2V0IH0gPSB0aGlzO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29kZSxcbiAgICAgICAgICAgIHN0YXJ0TGluZTogbGluZSxcbiAgICAgICAgICAgIGVuZExpbmU6IGxpbmUsXG4gICAgICAgICAgICBzdGFydENvbDogY29sLFxuICAgICAgICAgICAgZW5kQ29sOiBjb2wsXG4gICAgICAgICAgICBzdGFydE9mZnNldDogb2Zmc2V0LFxuICAgICAgICAgICAgZW5kT2Zmc2V0OiBvZmZzZXQsXG4gICAgICAgIH07XG4gICAgfVxuICAgIF9lcnIoY29kZSkge1xuICAgICAgICBpZiAodGhpcy5oYW5kbGVyLm9uUGFyc2VFcnJvciAmJiB0aGlzLmxhc3RFcnJPZmZzZXQgIT09IHRoaXMub2Zmc2V0KSB7XG4gICAgICAgICAgICB0aGlzLmxhc3RFcnJPZmZzZXQgPSB0aGlzLm9mZnNldDtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlci5vblBhcnNlRXJyb3IodGhpcy5nZXRFcnJvcihjb2RlKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2FkZEdhcCgpIHtcbiAgICAgICAgdGhpcy5nYXBTdGFjay5wdXNoKHRoaXMubGFzdEdhcFBvcyk7XG4gICAgICAgIHRoaXMubGFzdEdhcFBvcyA9IHRoaXMucG9zO1xuICAgIH1cbiAgICBfcHJvY2Vzc1N1cnJvZ2F0ZShjcCkge1xuICAgICAgICAvL05PVEU6IHRyeSB0byBwZWVrIGEgc3Vycm9nYXRlIHBhaXJcbiAgICAgICAgaWYgKHRoaXMucG9zICE9PSB0aGlzLmh0bWwubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgY29uc3QgbmV4dENwID0gdGhpcy5odG1sLmNoYXJDb2RlQXQodGhpcy5wb3MgKyAxKTtcbiAgICAgICAgICAgIGlmIChpc1N1cnJvZ2F0ZVBhaXIobmV4dENwKSkge1xuICAgICAgICAgICAgICAgIC8vTk9URTogd2UgaGF2ZSBhIHN1cnJvZ2F0ZSBwYWlyLiBQZWVrIHBhaXIgY2hhcmFjdGVyIGFuZCByZWNhbGN1bGF0ZSBjb2RlIHBvaW50LlxuICAgICAgICAgICAgICAgIHRoaXMucG9zKys7XG4gICAgICAgICAgICAgICAgLy9OT1RFOiBhZGQgYSBnYXAgdGhhdCBzaG91bGQgYmUgYXZvaWRlZCBkdXJpbmcgcmV0cmVhdFxuICAgICAgICAgICAgICAgIHRoaXMuX2FkZEdhcCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRTdXJyb2dhdGVQYWlyQ29kZVBvaW50KGNwLCBuZXh0Q3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vTk9URTogd2UgYXJlIGF0IHRoZSBlbmQgb2YgYSBjaHVuaywgdGhlcmVmb3JlIHdlIGNhbid0IGluZmVyIHRoZSBzdXJyb2dhdGUgcGFpciB5ZXQuXG4gICAgICAgIGVsc2UgaWYgKCF0aGlzLmxhc3RDaHVua1dyaXR0ZW4pIHtcbiAgICAgICAgICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gJC5FT0Y7XG4gICAgICAgIH1cbiAgICAgICAgLy9OT1RFOiBpc29sYXRlZCBzdXJyb2dhdGVcbiAgICAgICAgdGhpcy5fZXJyKEVSUi5zdXJyb2dhdGVJbklucHV0U3RyZWFtKTtcbiAgICAgICAgcmV0dXJuIGNwO1xuICAgIH1cbiAgICB3aWxsRHJvcFBhcnNlZENodW5rKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3MgPiB0aGlzLmJ1ZmZlcldhdGVybGluZTtcbiAgICB9XG4gICAgZHJvcFBhcnNlZENodW5rKCkge1xuICAgICAgICBpZiAodGhpcy53aWxsRHJvcFBhcnNlZENodW5rKCkpIHtcbiAgICAgICAgICAgIHRoaXMuaHRtbCA9IHRoaXMuaHRtbC5zdWJzdHJpbmcodGhpcy5wb3MpO1xuICAgICAgICAgICAgdGhpcy5saW5lU3RhcnRQb3MgLT0gdGhpcy5wb3M7XG4gICAgICAgICAgICB0aGlzLmRyb3BwZWRCdWZmZXJTaXplICs9IHRoaXMucG9zO1xuICAgICAgICAgICAgdGhpcy5wb3MgPSAwO1xuICAgICAgICAgICAgdGhpcy5sYXN0R2FwUG9zID0gLTI7XG4gICAgICAgICAgICB0aGlzLmdhcFN0YWNrLmxlbmd0aCA9IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgd3JpdGUoY2h1bmssIGlzTGFzdENodW5rKSB7XG4gICAgICAgIGlmICh0aGlzLmh0bWwubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5odG1sICs9IGNodW5rO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5odG1sID0gY2h1bms7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbmRPZkNodW5rSGl0ID0gZmFsc2U7XG4gICAgICAgIHRoaXMubGFzdENodW5rV3JpdHRlbiA9IGlzTGFzdENodW5rO1xuICAgIH1cbiAgICBpbnNlcnRIdG1sQXRDdXJyZW50UG9zKGNodW5rKSB7XG4gICAgICAgIHRoaXMuaHRtbCA9IHRoaXMuaHRtbC5zdWJzdHJpbmcoMCwgdGhpcy5wb3MgKyAxKSArIGNodW5rICsgdGhpcy5odG1sLnN1YnN0cmluZyh0aGlzLnBvcyArIDEpO1xuICAgICAgICB0aGlzLmVuZE9mQ2h1bmtIaXQgPSBmYWxzZTtcbiAgICB9XG4gICAgc3RhcnRzV2l0aChwYXR0ZXJuLCBjYXNlU2Vuc2l0aXZlKSB7XG4gICAgICAgIC8vIENoZWNrIGlmIG91ciBidWZmZXIgaGFzIGVub3VnaCBjaGFyYWN0ZXJzXG4gICAgICAgIGlmICh0aGlzLnBvcyArIHBhdHRlcm4ubGVuZ3RoID4gdGhpcy5odG1sLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5lbmRPZkNodW5rSGl0ID0gIXRoaXMubGFzdENodW5rV3JpdHRlbjtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2FzZVNlbnNpdGl2ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHRtbC5zdGFydHNXaXRoKHBhdHRlcm4sIHRoaXMucG9zKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdHRlcm4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGNwID0gdGhpcy5odG1sLmNoYXJDb2RlQXQodGhpcy5wb3MgKyBpKSB8IDB4MjA7XG4gICAgICAgICAgICBpZiAoY3AgIT09IHBhdHRlcm4uY2hhckNvZGVBdChpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcGVlayhvZmZzZXQpIHtcbiAgICAgICAgY29uc3QgcG9zID0gdGhpcy5wb3MgKyBvZmZzZXQ7XG4gICAgICAgIGlmIChwb3MgPj0gdGhpcy5odG1sLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5lbmRPZkNodW5rSGl0ID0gIXRoaXMubGFzdENodW5rV3JpdHRlbjtcbiAgICAgICAgICAgIHJldHVybiAkLkVPRjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb2RlID0gdGhpcy5odG1sLmNoYXJDb2RlQXQocG9zKTtcbiAgICAgICAgcmV0dXJuIGNvZGUgPT09ICQuQ0FSUklBR0VfUkVUVVJOID8gJC5MSU5FX0ZFRUQgOiBjb2RlO1xuICAgIH1cbiAgICBhZHZhbmNlKCkge1xuICAgICAgICB0aGlzLnBvcysrO1xuICAgICAgICAvL05PVEU6IExGIHNob3VsZCBiZSBpbiB0aGUgbGFzdCBjb2x1bW4gb2YgdGhlIGxpbmVcbiAgICAgICAgaWYgKHRoaXMuaXNFb2wpIHtcbiAgICAgICAgICAgIHRoaXMuaXNFb2wgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMubGluZSsrO1xuICAgICAgICAgICAgdGhpcy5saW5lU3RhcnRQb3MgPSB0aGlzLnBvcztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wb3MgPj0gdGhpcy5odG1sLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5lbmRPZkNodW5rSGl0ID0gIXRoaXMubGFzdENodW5rV3JpdHRlbjtcbiAgICAgICAgICAgIHJldHVybiAkLkVPRjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgY3AgPSB0aGlzLmh0bWwuY2hhckNvZGVBdCh0aGlzLnBvcyk7XG4gICAgICAgIC8vTk9URTogYWxsIFUrMDAwRCBDQVJSSUFHRSBSRVRVUk4gKENSKSBjaGFyYWN0ZXJzIG11c3QgYmUgY29udmVydGVkIHRvIFUrMDAwQSBMSU5FIEZFRUQgKExGKSBjaGFyYWN0ZXJzXG4gICAgICAgIGlmIChjcCA9PT0gJC5DQVJSSUFHRV9SRVRVUk4pIHtcbiAgICAgICAgICAgIHRoaXMuaXNFb2wgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuICQuTElORV9GRUVEO1xuICAgICAgICB9XG4gICAgICAgIC8vTk9URTogYW55IFUrMDAwQSBMSU5FIEZFRUQgKExGKSBjaGFyYWN0ZXJzIHRoYXQgaW1tZWRpYXRlbHkgZm9sbG93IGEgVSswMDBEIENBUlJJQUdFIFJFVFVSTiAoQ1IpIGNoYXJhY3RlclxuICAgICAgICAvL211c3QgYmUgaWdub3JlZC5cbiAgICAgICAgaWYgKGNwID09PSAkLkxJTkVfRkVFRCkge1xuICAgICAgICAgICAgdGhpcy5pc0VvbCA9IHRydWU7XG4gICAgICAgICAgICBpZiAodGhpcy5za2lwTmV4dE5ld0xpbmUpIHtcbiAgICAgICAgICAgICAgICAvLyBgbGluZWAgd2lsbCBiZSBidW1wZWQgYWdhaW4gaW4gdGhlIHJlY3Vyc2l2ZSBjYWxsLlxuICAgICAgICAgICAgICAgIHRoaXMubGluZS0tO1xuICAgICAgICAgICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWRkR2FwKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWR2YW5jZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgIGlmIChpc1N1cnJvZ2F0ZShjcCkpIHtcbiAgICAgICAgICAgIGNwID0gdGhpcy5fcHJvY2Vzc1N1cnJvZ2F0ZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgLy9PUFRJTUlaQVRJT046IGZpcnN0IGNoZWNrIGlmIGNvZGUgcG9pbnQgaXMgaW4gdGhlIGNvbW1vbiBhbGxvd2VkXG4gICAgICAgIC8vcmFuZ2UgKEFTQ0lJIGFscGhhbnVtZXJpYywgd2hpdGVzcGFjZXMsIGJpZyBjaHVuayBvZiBCTVApXG4gICAgICAgIC8vYmVmb3JlIGdvaW5nIGludG8gZGV0YWlsZWQgcGVyZm9ybWFuY2UgY29zdCB2YWxpZGF0aW9uLlxuICAgICAgICBjb25zdCBpc0NvbW1vblZhbGlkUmFuZ2UgPSB0aGlzLmhhbmRsZXIub25QYXJzZUVycm9yID09PSBudWxsIHx8XG4gICAgICAgICAgICAoY3AgPiAweDFmICYmIGNwIDwgMHg3ZikgfHxcbiAgICAgICAgICAgIGNwID09PSAkLkxJTkVfRkVFRCB8fFxuICAgICAgICAgICAgY3AgPT09ICQuQ0FSUklBR0VfUkVUVVJOIHx8XG4gICAgICAgICAgICAoY3AgPiAweDlmICYmIGNwIDwgNjQ5NzYpO1xuICAgICAgICBpZiAoIWlzQ29tbW9uVmFsaWRSYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5fY2hlY2tGb3JQcm9ibGVtYXRpY0NoYXJhY3RlcnMoY3ApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjcDtcbiAgICB9XG4gICAgX2NoZWNrRm9yUHJvYmxlbWF0aWNDaGFyYWN0ZXJzKGNwKSB7XG4gICAgICAgIGlmIChpc0NvbnRyb2xDb2RlUG9pbnQoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmNvbnRyb2xDaGFyYWN0ZXJJbklucHV0U3RyZWFtKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc1VuZGVmaW5lZENvZGVQb2ludChjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIubm9uY2hhcmFjdGVySW5JbnB1dFN0cmVhbSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0cmVhdChjb3VudCkge1xuICAgICAgICB0aGlzLnBvcyAtPSBjb3VudDtcbiAgICAgICAgd2hpbGUgKHRoaXMucG9zIDwgdGhpcy5sYXN0R2FwUG9zKSB7XG4gICAgICAgICAgICB0aGlzLmxhc3RHYXBQb3MgPSB0aGlzLmdhcFN0YWNrLnBvcCgpO1xuICAgICAgICAgICAgdGhpcy5wb3MtLTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzRW9sID0gZmFsc2U7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cHJlcHJvY2Vzc29yLmpzLm1hcCIsICJleHBvcnQgdmFyIFRva2VuVHlwZTtcbihmdW5jdGlvbiAoVG9rZW5UeXBlKSB7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkNIQVJBQ1RFUlwiXSA9IDBdID0gXCJDSEFSQUNURVJcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiTlVMTF9DSEFSQUNURVJcIl0gPSAxXSA9IFwiTlVMTF9DSEFSQUNURVJcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiV0hJVEVTUEFDRV9DSEFSQUNURVJcIl0gPSAyXSA9IFwiV0hJVEVTUEFDRV9DSEFSQUNURVJcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiU1RBUlRfVEFHXCJdID0gM10gPSBcIlNUQVJUX1RBR1wiO1xuICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJFTkRfVEFHXCJdID0gNF0gPSBcIkVORF9UQUdcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiQ09NTUVOVFwiXSA9IDVdID0gXCJDT01NRU5UXCI7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkRPQ1RZUEVcIl0gPSA2XSA9IFwiRE9DVFlQRVwiO1xuICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJFT0ZcIl0gPSA3XSA9IFwiRU9GXCI7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkhJQkVSTkFUSU9OXCJdID0gOF0gPSBcIkhJQkVSTkFUSU9OXCI7XG59KShUb2tlblR5cGUgPSBUb2tlblR5cGUgfHwgKFRva2VuVHlwZSA9IHt9KSk7XG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9rZW5BdHRyKHRva2VuLCBhdHRyTmFtZSkge1xuICAgIGZvciAobGV0IGkgPSB0b2tlbi5hdHRycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICBpZiAodG9rZW4uYXR0cnNbaV0ubmFtZSA9PT0gYXR0ck5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0b2tlbi5hdHRyc1tpXS52YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRva2VuLmpzLm1hcCIsIG51bGwsIG51bGwsIG51bGwsIG51bGwsICIvKiogQWxsIHZhbGlkIG5hbWVzcGFjZXMgaW4gSFRNTC4gKi9cbmV4cG9ydCB2YXIgTlM7XG4oZnVuY3Rpb24gKE5TKSB7XG4gICAgTlNbXCJIVE1MXCJdID0gXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCI7XG4gICAgTlNbXCJNQVRITUxcIl0gPSBcImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUxcIjtcbiAgICBOU1tcIlNWR1wiXSA9IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIjtcbiAgICBOU1tcIlhMSU5LXCJdID0gXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCI7XG4gICAgTlNbXCJYTUxcIl0gPSBcImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZVwiO1xuICAgIE5TW1wiWE1MTlNcIl0gPSBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvXCI7XG59KShOUyA9IE5TIHx8IChOUyA9IHt9KSk7XG5leHBvcnQgdmFyIEFUVFJTO1xuKGZ1bmN0aW9uIChBVFRSUykge1xuICAgIEFUVFJTW1wiVFlQRVwiXSA9IFwidHlwZVwiO1xuICAgIEFUVFJTW1wiQUNUSU9OXCJdID0gXCJhY3Rpb25cIjtcbiAgICBBVFRSU1tcIkVOQ09ESU5HXCJdID0gXCJlbmNvZGluZ1wiO1xuICAgIEFUVFJTW1wiUFJPTVBUXCJdID0gXCJwcm9tcHRcIjtcbiAgICBBVFRSU1tcIk5BTUVcIl0gPSBcIm5hbWVcIjtcbiAgICBBVFRSU1tcIkNPTE9SXCJdID0gXCJjb2xvclwiO1xuICAgIEFUVFJTW1wiRkFDRVwiXSA9IFwiZmFjZVwiO1xuICAgIEFUVFJTW1wiU0laRVwiXSA9IFwic2l6ZVwiO1xufSkoQVRUUlMgPSBBVFRSUyB8fCAoQVRUUlMgPSB7fSkpO1xuLyoqXG4gKiBUaGUgbW9kZSBvZiB0aGUgZG9jdW1lbnQuXG4gKlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LWRvY3VtZW50LWxpbWl0ZWQtcXVpcmtzfVxuICovXG5leHBvcnQgdmFyIERPQ1VNRU5UX01PREU7XG4oZnVuY3Rpb24gKERPQ1VNRU5UX01PREUpIHtcbiAgICBET0NVTUVOVF9NT0RFW1wiTk9fUVVJUktTXCJdID0gXCJuby1xdWlya3NcIjtcbiAgICBET0NVTUVOVF9NT0RFW1wiUVVJUktTXCJdID0gXCJxdWlya3NcIjtcbiAgICBET0NVTUVOVF9NT0RFW1wiTElNSVRFRF9RVUlSS1NcIl0gPSBcImxpbWl0ZWQtcXVpcmtzXCI7XG59KShET0NVTUVOVF9NT0RFID0gRE9DVU1FTlRfTU9ERSB8fCAoRE9DVU1FTlRfTU9ERSA9IHt9KSk7XG5leHBvcnQgdmFyIFRBR19OQU1FUztcbihmdW5jdGlvbiAoVEFHX05BTUVTKSB7XG4gICAgVEFHX05BTUVTW1wiQVwiXSA9IFwiYVwiO1xuICAgIFRBR19OQU1FU1tcIkFERFJFU1NcIl0gPSBcImFkZHJlc3NcIjtcbiAgICBUQUdfTkFNRVNbXCJBTk5PVEFUSU9OX1hNTFwiXSA9IFwiYW5ub3RhdGlvbi14bWxcIjtcbiAgICBUQUdfTkFNRVNbXCJBUFBMRVRcIl0gPSBcImFwcGxldFwiO1xuICAgIFRBR19OQU1FU1tcIkFSRUFcIl0gPSBcImFyZWFcIjtcbiAgICBUQUdfTkFNRVNbXCJBUlRJQ0xFXCJdID0gXCJhcnRpY2xlXCI7XG4gICAgVEFHX05BTUVTW1wiQVNJREVcIl0gPSBcImFzaWRlXCI7XG4gICAgVEFHX05BTUVTW1wiQlwiXSA9IFwiYlwiO1xuICAgIFRBR19OQU1FU1tcIkJBU0VcIl0gPSBcImJhc2VcIjtcbiAgICBUQUdfTkFNRVNbXCJCQVNFRk9OVFwiXSA9IFwiYmFzZWZvbnRcIjtcbiAgICBUQUdfTkFNRVNbXCJCR1NPVU5EXCJdID0gXCJiZ3NvdW5kXCI7XG4gICAgVEFHX05BTUVTW1wiQklHXCJdID0gXCJiaWdcIjtcbiAgICBUQUdfTkFNRVNbXCJCTE9DS1FVT1RFXCJdID0gXCJibG9ja3F1b3RlXCI7XG4gICAgVEFHX05BTUVTW1wiQk9EWVwiXSA9IFwiYm9keVwiO1xuICAgIFRBR19OQU1FU1tcIkJSXCJdID0gXCJiclwiO1xuICAgIFRBR19OQU1FU1tcIkJVVFRPTlwiXSA9IFwiYnV0dG9uXCI7XG4gICAgVEFHX05BTUVTW1wiQ0FQVElPTlwiXSA9IFwiY2FwdGlvblwiO1xuICAgIFRBR19OQU1FU1tcIkNFTlRFUlwiXSA9IFwiY2VudGVyXCI7XG4gICAgVEFHX05BTUVTW1wiQ09ERVwiXSA9IFwiY29kZVwiO1xuICAgIFRBR19OQU1FU1tcIkNPTFwiXSA9IFwiY29sXCI7XG4gICAgVEFHX05BTUVTW1wiQ09MR1JPVVBcIl0gPSBcImNvbGdyb3VwXCI7XG4gICAgVEFHX05BTUVTW1wiRERcIl0gPSBcImRkXCI7XG4gICAgVEFHX05BTUVTW1wiREVTQ1wiXSA9IFwiZGVzY1wiO1xuICAgIFRBR19OQU1FU1tcIkRFVEFJTFNcIl0gPSBcImRldGFpbHNcIjtcbiAgICBUQUdfTkFNRVNbXCJESUFMT0dcIl0gPSBcImRpYWxvZ1wiO1xuICAgIFRBR19OQU1FU1tcIkRJUlwiXSA9IFwiZGlyXCI7XG4gICAgVEFHX05BTUVTW1wiRElWXCJdID0gXCJkaXZcIjtcbiAgICBUQUdfTkFNRVNbXCJETFwiXSA9IFwiZGxcIjtcbiAgICBUQUdfTkFNRVNbXCJEVFwiXSA9IFwiZHRcIjtcbiAgICBUQUdfTkFNRVNbXCJFTVwiXSA9IFwiZW1cIjtcbiAgICBUQUdfTkFNRVNbXCJFTUJFRFwiXSA9IFwiZW1iZWRcIjtcbiAgICBUQUdfTkFNRVNbXCJGSUVMRFNFVFwiXSA9IFwiZmllbGRzZXRcIjtcbiAgICBUQUdfTkFNRVNbXCJGSUdDQVBUSU9OXCJdID0gXCJmaWdjYXB0aW9uXCI7XG4gICAgVEFHX05BTUVTW1wiRklHVVJFXCJdID0gXCJmaWd1cmVcIjtcbiAgICBUQUdfTkFNRVNbXCJGT05UXCJdID0gXCJmb250XCI7XG4gICAgVEFHX05BTUVTW1wiRk9PVEVSXCJdID0gXCJmb290ZXJcIjtcbiAgICBUQUdfTkFNRVNbXCJGT1JFSUdOX09CSkVDVFwiXSA9IFwiZm9yZWlnbk9iamVjdFwiO1xuICAgIFRBR19OQU1FU1tcIkZPUk1cIl0gPSBcImZvcm1cIjtcbiAgICBUQUdfTkFNRVNbXCJGUkFNRVwiXSA9IFwiZnJhbWVcIjtcbiAgICBUQUdfTkFNRVNbXCJGUkFNRVNFVFwiXSA9IFwiZnJhbWVzZXRcIjtcbiAgICBUQUdfTkFNRVNbXCJIMVwiXSA9IFwiaDFcIjtcbiAgICBUQUdfTkFNRVNbXCJIMlwiXSA9IFwiaDJcIjtcbiAgICBUQUdfTkFNRVNbXCJIM1wiXSA9IFwiaDNcIjtcbiAgICBUQUdfTkFNRVNbXCJINFwiXSA9IFwiaDRcIjtcbiAgICBUQUdfTkFNRVNbXCJINVwiXSA9IFwiaDVcIjtcbiAgICBUQUdfTkFNRVNbXCJINlwiXSA9IFwiaDZcIjtcbiAgICBUQUdfTkFNRVNbXCJIRUFEXCJdID0gXCJoZWFkXCI7XG4gICAgVEFHX05BTUVTW1wiSEVBREVSXCJdID0gXCJoZWFkZXJcIjtcbiAgICBUQUdfTkFNRVNbXCJIR1JPVVBcIl0gPSBcImhncm91cFwiO1xuICAgIFRBR19OQU1FU1tcIkhSXCJdID0gXCJoclwiO1xuICAgIFRBR19OQU1FU1tcIkhUTUxcIl0gPSBcImh0bWxcIjtcbiAgICBUQUdfTkFNRVNbXCJJXCJdID0gXCJpXCI7XG4gICAgVEFHX05BTUVTW1wiSU1HXCJdID0gXCJpbWdcIjtcbiAgICBUQUdfTkFNRVNbXCJJTUFHRVwiXSA9IFwiaW1hZ2VcIjtcbiAgICBUQUdfTkFNRVNbXCJJTlBVVFwiXSA9IFwiaW5wdXRcIjtcbiAgICBUQUdfTkFNRVNbXCJJRlJBTUVcIl0gPSBcImlmcmFtZVwiO1xuICAgIFRBR19OQU1FU1tcIktFWUdFTlwiXSA9IFwia2V5Z2VuXCI7XG4gICAgVEFHX05BTUVTW1wiTEFCRUxcIl0gPSBcImxhYmVsXCI7XG4gICAgVEFHX05BTUVTW1wiTElcIl0gPSBcImxpXCI7XG4gICAgVEFHX05BTUVTW1wiTElOS1wiXSA9IFwibGlua1wiO1xuICAgIFRBR19OQU1FU1tcIkxJU1RJTkdcIl0gPSBcImxpc3RpbmdcIjtcbiAgICBUQUdfTkFNRVNbXCJNQUlOXCJdID0gXCJtYWluXCI7XG4gICAgVEFHX05BTUVTW1wiTUFMSUdOTUFSS1wiXSA9IFwibWFsaWdubWFya1wiO1xuICAgIFRBR19OQU1FU1tcIk1BUlFVRUVcIl0gPSBcIm1hcnF1ZWVcIjtcbiAgICBUQUdfTkFNRVNbXCJNQVRIXCJdID0gXCJtYXRoXCI7XG4gICAgVEFHX05BTUVTW1wiTUVOVVwiXSA9IFwibWVudVwiO1xuICAgIFRBR19OQU1FU1tcIk1FVEFcIl0gPSBcIm1ldGFcIjtcbiAgICBUQUdfTkFNRVNbXCJNR0xZUEhcIl0gPSBcIm1nbHlwaFwiO1xuICAgIFRBR19OQU1FU1tcIk1JXCJdID0gXCJtaVwiO1xuICAgIFRBR19OQU1FU1tcIk1PXCJdID0gXCJtb1wiO1xuICAgIFRBR19OQU1FU1tcIk1OXCJdID0gXCJtblwiO1xuICAgIFRBR19OQU1FU1tcIk1TXCJdID0gXCJtc1wiO1xuICAgIFRBR19OQU1FU1tcIk1URVhUXCJdID0gXCJtdGV4dFwiO1xuICAgIFRBR19OQU1FU1tcIk5BVlwiXSA9IFwibmF2XCI7XG4gICAgVEFHX05BTUVTW1wiTk9CUlwiXSA9IFwibm9iclwiO1xuICAgIFRBR19OQU1FU1tcIk5PRlJBTUVTXCJdID0gXCJub2ZyYW1lc1wiO1xuICAgIFRBR19OQU1FU1tcIk5PRU1CRURcIl0gPSBcIm5vZW1iZWRcIjtcbiAgICBUQUdfTkFNRVNbXCJOT1NDUklQVFwiXSA9IFwibm9zY3JpcHRcIjtcbiAgICBUQUdfTkFNRVNbXCJPQkpFQ1RcIl0gPSBcIm9iamVjdFwiO1xuICAgIFRBR19OQU1FU1tcIk9MXCJdID0gXCJvbFwiO1xuICAgIFRBR19OQU1FU1tcIk9QVEdST1VQXCJdID0gXCJvcHRncm91cFwiO1xuICAgIFRBR19OQU1FU1tcIk9QVElPTlwiXSA9IFwib3B0aW9uXCI7XG4gICAgVEFHX05BTUVTW1wiUFwiXSA9IFwicFwiO1xuICAgIFRBR19OQU1FU1tcIlBBUkFNXCJdID0gXCJwYXJhbVwiO1xuICAgIFRBR19OQU1FU1tcIlBMQUlOVEVYVFwiXSA9IFwicGxhaW50ZXh0XCI7XG4gICAgVEFHX05BTUVTW1wiUFJFXCJdID0gXCJwcmVcIjtcbiAgICBUQUdfTkFNRVNbXCJSQlwiXSA9IFwicmJcIjtcbiAgICBUQUdfTkFNRVNbXCJSUFwiXSA9IFwicnBcIjtcbiAgICBUQUdfTkFNRVNbXCJSVFwiXSA9IFwicnRcIjtcbiAgICBUQUdfTkFNRVNbXCJSVENcIl0gPSBcInJ0Y1wiO1xuICAgIFRBR19OQU1FU1tcIlJVQllcIl0gPSBcInJ1YnlcIjtcbiAgICBUQUdfTkFNRVNbXCJTXCJdID0gXCJzXCI7XG4gICAgVEFHX05BTUVTW1wiU0NSSVBUXCJdID0gXCJzY3JpcHRcIjtcbiAgICBUQUdfTkFNRVNbXCJTRUNUSU9OXCJdID0gXCJzZWN0aW9uXCI7XG4gICAgVEFHX05BTUVTW1wiU0VMRUNUXCJdID0gXCJzZWxlY3RcIjtcbiAgICBUQUdfTkFNRVNbXCJTT1VSQ0VcIl0gPSBcInNvdXJjZVwiO1xuICAgIFRBR19OQU1FU1tcIlNNQUxMXCJdID0gXCJzbWFsbFwiO1xuICAgIFRBR19OQU1FU1tcIlNQQU5cIl0gPSBcInNwYW5cIjtcbiAgICBUQUdfTkFNRVNbXCJTVFJJS0VcIl0gPSBcInN0cmlrZVwiO1xuICAgIFRBR19OQU1FU1tcIlNUUk9OR1wiXSA9IFwic3Ryb25nXCI7XG4gICAgVEFHX05BTUVTW1wiU1RZTEVcIl0gPSBcInN0eWxlXCI7XG4gICAgVEFHX05BTUVTW1wiU1VCXCJdID0gXCJzdWJcIjtcbiAgICBUQUdfTkFNRVNbXCJTVU1NQVJZXCJdID0gXCJzdW1tYXJ5XCI7XG4gICAgVEFHX05BTUVTW1wiU1VQXCJdID0gXCJzdXBcIjtcbiAgICBUQUdfTkFNRVNbXCJUQUJMRVwiXSA9IFwidGFibGVcIjtcbiAgICBUQUdfTkFNRVNbXCJUQk9EWVwiXSA9IFwidGJvZHlcIjtcbiAgICBUQUdfTkFNRVNbXCJURU1QTEFURVwiXSA9IFwidGVtcGxhdGVcIjtcbiAgICBUQUdfTkFNRVNbXCJURVhUQVJFQVwiXSA9IFwidGV4dGFyZWFcIjtcbiAgICBUQUdfTkFNRVNbXCJURk9PVFwiXSA9IFwidGZvb3RcIjtcbiAgICBUQUdfTkFNRVNbXCJURFwiXSA9IFwidGRcIjtcbiAgICBUQUdfTkFNRVNbXCJUSFwiXSA9IFwidGhcIjtcbiAgICBUQUdfTkFNRVNbXCJUSEVBRFwiXSA9IFwidGhlYWRcIjtcbiAgICBUQUdfTkFNRVNbXCJUSVRMRVwiXSA9IFwidGl0bGVcIjtcbiAgICBUQUdfTkFNRVNbXCJUUlwiXSA9IFwidHJcIjtcbiAgICBUQUdfTkFNRVNbXCJUUkFDS1wiXSA9IFwidHJhY2tcIjtcbiAgICBUQUdfTkFNRVNbXCJUVFwiXSA9IFwidHRcIjtcbiAgICBUQUdfTkFNRVNbXCJVXCJdID0gXCJ1XCI7XG4gICAgVEFHX05BTUVTW1wiVUxcIl0gPSBcInVsXCI7XG4gICAgVEFHX05BTUVTW1wiU1ZHXCJdID0gXCJzdmdcIjtcbiAgICBUQUdfTkFNRVNbXCJWQVJcIl0gPSBcInZhclwiO1xuICAgIFRBR19OQU1FU1tcIldCUlwiXSA9IFwid2JyXCI7XG4gICAgVEFHX05BTUVTW1wiWE1QXCJdID0gXCJ4bXBcIjtcbn0pKFRBR19OQU1FUyA9IFRBR19OQU1FUyB8fCAoVEFHX05BTUVTID0ge30pKTtcbi8qKlxuICogVGFnIElEcyBhcmUgbnVtZXJpYyBJRHMgZm9yIGtub3duIHRhZyBuYW1lcy5cbiAqXG4gKiBXZSB1c2UgdGFnIElEcyB0byBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBvZiB0YWcgbmFtZSBjb21wYXJpc29ucy5cbiAqL1xuZXhwb3J0IHZhciBUQUdfSUQ7XG4oZnVuY3Rpb24gKFRBR19JRCkge1xuICAgIFRBR19JRFtUQUdfSURbXCJVTktOT1dOXCJdID0gMF0gPSBcIlVOS05PV05cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQVwiXSA9IDFdID0gXCJBXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkFERFJFU1NcIl0gPSAyXSA9IFwiQUREUkVTU1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJBTk5PVEFUSU9OX1hNTFwiXSA9IDNdID0gXCJBTk5PVEFUSU9OX1hNTFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJBUFBMRVRcIl0gPSA0XSA9IFwiQVBQTEVUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkFSRUFcIl0gPSA1XSA9IFwiQVJFQVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJBUlRJQ0xFXCJdID0gNl0gPSBcIkFSVElDTEVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQVNJREVcIl0gPSA3XSA9IFwiQVNJREVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQlwiXSA9IDhdID0gXCJCXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkJBU0VcIl0gPSA5XSA9IFwiQkFTRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJCQVNFRk9OVFwiXSA9IDEwXSA9IFwiQkFTRUZPTlRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQkdTT1VORFwiXSA9IDExXSA9IFwiQkdTT1VORFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJCSUdcIl0gPSAxMl0gPSBcIkJJR1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJCTE9DS1FVT1RFXCJdID0gMTNdID0gXCJCTE9DS1FVT1RFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkJPRFlcIl0gPSAxNF0gPSBcIkJPRFlcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQlJcIl0gPSAxNV0gPSBcIkJSXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkJVVFRPTlwiXSA9IDE2XSA9IFwiQlVUVE9OXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkNBUFRJT05cIl0gPSAxN10gPSBcIkNBUFRJT05cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQ0VOVEVSXCJdID0gMThdID0gXCJDRU5URVJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQ09ERVwiXSA9IDE5XSA9IFwiQ09ERVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJDT0xcIl0gPSAyMF0gPSBcIkNPTFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJDT0xHUk9VUFwiXSA9IDIxXSA9IFwiQ09MR1JPVVBcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRERcIl0gPSAyMl0gPSBcIkREXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkRFU0NcIl0gPSAyM10gPSBcIkRFU0NcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiREVUQUlMU1wiXSA9IDI0XSA9IFwiREVUQUlMU1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJESUFMT0dcIl0gPSAyNV0gPSBcIkRJQUxPR1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJESVJcIl0gPSAyNl0gPSBcIkRJUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJESVZcIl0gPSAyN10gPSBcIkRJVlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJETFwiXSA9IDI4XSA9IFwiRExcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRFRcIl0gPSAyOV0gPSBcIkRUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkVNXCJdID0gMzBdID0gXCJFTVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJFTUJFRFwiXSA9IDMxXSA9IFwiRU1CRURcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRklFTERTRVRcIl0gPSAzMl0gPSBcIkZJRUxEU0VUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkZJR0NBUFRJT05cIl0gPSAzM10gPSBcIkZJR0NBUFRJT05cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRklHVVJFXCJdID0gMzRdID0gXCJGSUdVUkVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRk9OVFwiXSA9IDM1XSA9IFwiRk9OVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJGT09URVJcIl0gPSAzNl0gPSBcIkZPT1RFUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJGT1JFSUdOX09CSkVDVFwiXSA9IDM3XSA9IFwiRk9SRUlHTl9PQkpFQ1RcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRk9STVwiXSA9IDM4XSA9IFwiRk9STVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJGUkFNRVwiXSA9IDM5XSA9IFwiRlJBTUVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRlJBTUVTRVRcIl0gPSA0MF0gPSBcIkZSQU1FU0VUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkgxXCJdID0gNDFdID0gXCJIMVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJIMlwiXSA9IDQyXSA9IFwiSDJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSDNcIl0gPSA0M10gPSBcIkgzXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkg0XCJdID0gNDRdID0gXCJINFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJINVwiXSA9IDQ1XSA9IFwiSDVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSDZcIl0gPSA0Nl0gPSBcIkg2XCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkhFQURcIl0gPSA0N10gPSBcIkhFQURcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSEVBREVSXCJdID0gNDhdID0gXCJIRUFERVJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSEdST1VQXCJdID0gNDldID0gXCJIR1JPVVBcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSFJcIl0gPSA1MF0gPSBcIkhSXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkhUTUxcIl0gPSA1MV0gPSBcIkhUTUxcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSVwiXSA9IDUyXSA9IFwiSVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJJTUdcIl0gPSA1M10gPSBcIklNR1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJJTUFHRVwiXSA9IDU0XSA9IFwiSU1BR0VcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSU5QVVRcIl0gPSA1NV0gPSBcIklOUFVUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIklGUkFNRVwiXSA9IDU2XSA9IFwiSUZSQU1FXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIktFWUdFTlwiXSA9IDU3XSA9IFwiS0VZR0VOXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkxBQkVMXCJdID0gNThdID0gXCJMQUJFTFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJMSVwiXSA9IDU5XSA9IFwiTElcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTElOS1wiXSA9IDYwXSA9IFwiTElOS1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJMSVNUSU5HXCJdID0gNjFdID0gXCJMSVNUSU5HXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1BSU5cIl0gPSA2Ml0gPSBcIk1BSU5cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTUFMSUdOTUFSS1wiXSA9IDYzXSA9IFwiTUFMSUdOTUFSS1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNQVJRVUVFXCJdID0gNjRdID0gXCJNQVJRVUVFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1BVEhcIl0gPSA2NV0gPSBcIk1BVEhcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTUVOVVwiXSA9IDY2XSA9IFwiTUVOVVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNRVRBXCJdID0gNjddID0gXCJNRVRBXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1HTFlQSFwiXSA9IDY4XSA9IFwiTUdMWVBIXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1JXCJdID0gNjldID0gXCJNSVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNT1wiXSA9IDcwXSA9IFwiTU9cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTU5cIl0gPSA3MV0gPSBcIk1OXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1TXCJdID0gNzJdID0gXCJNU1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNVEVYVFwiXSA9IDczXSA9IFwiTVRFWFRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTkFWXCJdID0gNzRdID0gXCJOQVZcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTk9CUlwiXSA9IDc1XSA9IFwiTk9CUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJOT0ZSQU1FU1wiXSA9IDc2XSA9IFwiTk9GUkFNRVNcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTk9FTUJFRFwiXSA9IDc3XSA9IFwiTk9FTUJFRFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJOT1NDUklQVFwiXSA9IDc4XSA9IFwiTk9TQ1JJUFRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiT0JKRUNUXCJdID0gNzldID0gXCJPQkpFQ1RcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiT0xcIl0gPSA4MF0gPSBcIk9MXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk9QVEdST1VQXCJdID0gODFdID0gXCJPUFRHUk9VUFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJPUFRJT05cIl0gPSA4Ml0gPSBcIk9QVElPTlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJQXCJdID0gODNdID0gXCJQXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlBBUkFNXCJdID0gODRdID0gXCJQQVJBTVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJQTEFJTlRFWFRcIl0gPSA4NV0gPSBcIlBMQUlOVEVYVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJQUkVcIl0gPSA4Nl0gPSBcIlBSRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJSQlwiXSA9IDg3XSA9IFwiUkJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiUlBcIl0gPSA4OF0gPSBcIlJQXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlJUXCJdID0gODldID0gXCJSVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJSVENcIl0gPSA5MF0gPSBcIlJUQ1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJSVUJZXCJdID0gOTFdID0gXCJSVUJZXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNcIl0gPSA5Ml0gPSBcIlNcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU0NSSVBUXCJdID0gOTNdID0gXCJTQ1JJUFRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU0VDVElPTlwiXSA9IDk0XSA9IFwiU0VDVElPTlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTRUxFQ1RcIl0gPSA5NV0gPSBcIlNFTEVDVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTT1VSQ0VcIl0gPSA5Nl0gPSBcIlNPVVJDRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTTUFMTFwiXSA9IDk3XSA9IFwiU01BTExcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1BBTlwiXSA9IDk4XSA9IFwiU1BBTlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTVFJJS0VcIl0gPSA5OV0gPSBcIlNUUklLRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTVFJPTkdcIl0gPSAxMDBdID0gXCJTVFJPTkdcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1RZTEVcIl0gPSAxMDFdID0gXCJTVFlMRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTVUJcIl0gPSAxMDJdID0gXCJTVUJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1VNTUFSWVwiXSA9IDEwM10gPSBcIlNVTU1BUllcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1VQXCJdID0gMTA0XSA9IFwiU1VQXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRBQkxFXCJdID0gMTA1XSA9IFwiVEFCTEVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVEJPRFlcIl0gPSAxMDZdID0gXCJUQk9EWVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJURU1QTEFURVwiXSA9IDEwN10gPSBcIlRFTVBMQVRFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRFWFRBUkVBXCJdID0gMTA4XSA9IFwiVEVYVEFSRUFcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVEZPT1RcIl0gPSAxMDldID0gXCJURk9PVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJURFwiXSA9IDExMF0gPSBcIlREXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRIXCJdID0gMTExXSA9IFwiVEhcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVEhFQURcIl0gPSAxMTJdID0gXCJUSEVBRFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJUSVRMRVwiXSA9IDExM10gPSBcIlRJVExFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRSXCJdID0gMTE0XSA9IFwiVFJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVFJBQ0tcIl0gPSAxMTVdID0gXCJUUkFDS1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJUVFwiXSA9IDExNl0gPSBcIlRUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlVcIl0gPSAxMTddID0gXCJVXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlVMXCJdID0gMTE4XSA9IFwiVUxcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1ZHXCJdID0gMTE5XSA9IFwiU1ZHXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlZBUlwiXSA9IDEyMF0gPSBcIlZBUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJXQlJcIl0gPSAxMjFdID0gXCJXQlJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiWE1QXCJdID0gMTIyXSA9IFwiWE1QXCI7XG59KShUQUdfSUQgPSBUQUdfSUQgfHwgKFRBR19JRCA9IHt9KSk7XG5jb25zdCBUQUdfTkFNRV9UT19JRCA9IG5ldyBNYXAoW1xuICAgIFtUQUdfTkFNRVMuQSwgVEFHX0lELkFdLFxuICAgIFtUQUdfTkFNRVMuQUREUkVTUywgVEFHX0lELkFERFJFU1NdLFxuICAgIFtUQUdfTkFNRVMuQU5OT1RBVElPTl9YTUwsIFRBR19JRC5BTk5PVEFUSU9OX1hNTF0sXG4gICAgW1RBR19OQU1FUy5BUFBMRVQsIFRBR19JRC5BUFBMRVRdLFxuICAgIFtUQUdfTkFNRVMuQVJFQSwgVEFHX0lELkFSRUFdLFxuICAgIFtUQUdfTkFNRVMuQVJUSUNMRSwgVEFHX0lELkFSVElDTEVdLFxuICAgIFtUQUdfTkFNRVMuQVNJREUsIFRBR19JRC5BU0lERV0sXG4gICAgW1RBR19OQU1FUy5CLCBUQUdfSUQuQl0sXG4gICAgW1RBR19OQU1FUy5CQVNFLCBUQUdfSUQuQkFTRV0sXG4gICAgW1RBR19OQU1FUy5CQVNFRk9OVCwgVEFHX0lELkJBU0VGT05UXSxcbiAgICBbVEFHX05BTUVTLkJHU09VTkQsIFRBR19JRC5CR1NPVU5EXSxcbiAgICBbVEFHX05BTUVTLkJJRywgVEFHX0lELkJJR10sXG4gICAgW1RBR19OQU1FUy5CTE9DS1FVT1RFLCBUQUdfSUQuQkxPQ0tRVU9URV0sXG4gICAgW1RBR19OQU1FUy5CT0RZLCBUQUdfSUQuQk9EWV0sXG4gICAgW1RBR19OQU1FUy5CUiwgVEFHX0lELkJSXSxcbiAgICBbVEFHX05BTUVTLkJVVFRPTiwgVEFHX0lELkJVVFRPTl0sXG4gICAgW1RBR19OQU1FUy5DQVBUSU9OLCBUQUdfSUQuQ0FQVElPTl0sXG4gICAgW1RBR19OQU1FUy5DRU5URVIsIFRBR19JRC5DRU5URVJdLFxuICAgIFtUQUdfTkFNRVMuQ09ERSwgVEFHX0lELkNPREVdLFxuICAgIFtUQUdfTkFNRVMuQ09MLCBUQUdfSUQuQ09MXSxcbiAgICBbVEFHX05BTUVTLkNPTEdST1VQLCBUQUdfSUQuQ09MR1JPVVBdLFxuICAgIFtUQUdfTkFNRVMuREQsIFRBR19JRC5ERF0sXG4gICAgW1RBR19OQU1FUy5ERVNDLCBUQUdfSUQuREVTQ10sXG4gICAgW1RBR19OQU1FUy5ERVRBSUxTLCBUQUdfSUQuREVUQUlMU10sXG4gICAgW1RBR19OQU1FUy5ESUFMT0csIFRBR19JRC5ESUFMT0ddLFxuICAgIFtUQUdfTkFNRVMuRElSLCBUQUdfSUQuRElSXSxcbiAgICBbVEFHX05BTUVTLkRJViwgVEFHX0lELkRJVl0sXG4gICAgW1RBR19OQU1FUy5ETCwgVEFHX0lELkRMXSxcbiAgICBbVEFHX05BTUVTLkRULCBUQUdfSUQuRFRdLFxuICAgIFtUQUdfTkFNRVMuRU0sIFRBR19JRC5FTV0sXG4gICAgW1RBR19OQU1FUy5FTUJFRCwgVEFHX0lELkVNQkVEXSxcbiAgICBbVEFHX05BTUVTLkZJRUxEU0VULCBUQUdfSUQuRklFTERTRVRdLFxuICAgIFtUQUdfTkFNRVMuRklHQ0FQVElPTiwgVEFHX0lELkZJR0NBUFRJT05dLFxuICAgIFtUQUdfTkFNRVMuRklHVVJFLCBUQUdfSUQuRklHVVJFXSxcbiAgICBbVEFHX05BTUVTLkZPTlQsIFRBR19JRC5GT05UXSxcbiAgICBbVEFHX05BTUVTLkZPT1RFUiwgVEFHX0lELkZPT1RFUl0sXG4gICAgW1RBR19OQU1FUy5GT1JFSUdOX09CSkVDVCwgVEFHX0lELkZPUkVJR05fT0JKRUNUXSxcbiAgICBbVEFHX05BTUVTLkZPUk0sIFRBR19JRC5GT1JNXSxcbiAgICBbVEFHX05BTUVTLkZSQU1FLCBUQUdfSUQuRlJBTUVdLFxuICAgIFtUQUdfTkFNRVMuRlJBTUVTRVQsIFRBR19JRC5GUkFNRVNFVF0sXG4gICAgW1RBR19OQU1FUy5IMSwgVEFHX0lELkgxXSxcbiAgICBbVEFHX05BTUVTLkgyLCBUQUdfSUQuSDJdLFxuICAgIFtUQUdfTkFNRVMuSDMsIFRBR19JRC5IM10sXG4gICAgW1RBR19OQU1FUy5INCwgVEFHX0lELkg0XSxcbiAgICBbVEFHX05BTUVTLkg1LCBUQUdfSUQuSDVdLFxuICAgIFtUQUdfTkFNRVMuSDYsIFRBR19JRC5INl0sXG4gICAgW1RBR19OQU1FUy5IRUFELCBUQUdfSUQuSEVBRF0sXG4gICAgW1RBR19OQU1FUy5IRUFERVIsIFRBR19JRC5IRUFERVJdLFxuICAgIFtUQUdfTkFNRVMuSEdST1VQLCBUQUdfSUQuSEdST1VQXSxcbiAgICBbVEFHX05BTUVTLkhSLCBUQUdfSUQuSFJdLFxuICAgIFtUQUdfTkFNRVMuSFRNTCwgVEFHX0lELkhUTUxdLFxuICAgIFtUQUdfTkFNRVMuSSwgVEFHX0lELkldLFxuICAgIFtUQUdfTkFNRVMuSU1HLCBUQUdfSUQuSU1HXSxcbiAgICBbVEFHX05BTUVTLklNQUdFLCBUQUdfSUQuSU1BR0VdLFxuICAgIFtUQUdfTkFNRVMuSU5QVVQsIFRBR19JRC5JTlBVVF0sXG4gICAgW1RBR19OQU1FUy5JRlJBTUUsIFRBR19JRC5JRlJBTUVdLFxuICAgIFtUQUdfTkFNRVMuS0VZR0VOLCBUQUdfSUQuS0VZR0VOXSxcbiAgICBbVEFHX05BTUVTLkxBQkVMLCBUQUdfSUQuTEFCRUxdLFxuICAgIFtUQUdfTkFNRVMuTEksIFRBR19JRC5MSV0sXG4gICAgW1RBR19OQU1FUy5MSU5LLCBUQUdfSUQuTElOS10sXG4gICAgW1RBR19OQU1FUy5MSVNUSU5HLCBUQUdfSUQuTElTVElOR10sXG4gICAgW1RBR19OQU1FUy5NQUlOLCBUQUdfSUQuTUFJTl0sXG4gICAgW1RBR19OQU1FUy5NQUxJR05NQVJLLCBUQUdfSUQuTUFMSUdOTUFSS10sXG4gICAgW1RBR19OQU1FUy5NQVJRVUVFLCBUQUdfSUQuTUFSUVVFRV0sXG4gICAgW1RBR19OQU1FUy5NQVRILCBUQUdfSUQuTUFUSF0sXG4gICAgW1RBR19OQU1FUy5NRU5VLCBUQUdfSUQuTUVOVV0sXG4gICAgW1RBR19OQU1FUy5NRVRBLCBUQUdfSUQuTUVUQV0sXG4gICAgW1RBR19OQU1FUy5NR0xZUEgsIFRBR19JRC5NR0xZUEhdLFxuICAgIFtUQUdfTkFNRVMuTUksIFRBR19JRC5NSV0sXG4gICAgW1RBR19OQU1FUy5NTywgVEFHX0lELk1PXSxcbiAgICBbVEFHX05BTUVTLk1OLCBUQUdfSUQuTU5dLFxuICAgIFtUQUdfTkFNRVMuTVMsIFRBR19JRC5NU10sXG4gICAgW1RBR19OQU1FUy5NVEVYVCwgVEFHX0lELk1URVhUXSxcbiAgICBbVEFHX05BTUVTLk5BViwgVEFHX0lELk5BVl0sXG4gICAgW1RBR19OQU1FUy5OT0JSLCBUQUdfSUQuTk9CUl0sXG4gICAgW1RBR19OQU1FUy5OT0ZSQU1FUywgVEFHX0lELk5PRlJBTUVTXSxcbiAgICBbVEFHX05BTUVTLk5PRU1CRUQsIFRBR19JRC5OT0VNQkVEXSxcbiAgICBbVEFHX05BTUVTLk5PU0NSSVBULCBUQUdfSUQuTk9TQ1JJUFRdLFxuICAgIFtUQUdfTkFNRVMuT0JKRUNULCBUQUdfSUQuT0JKRUNUXSxcbiAgICBbVEFHX05BTUVTLk9MLCBUQUdfSUQuT0xdLFxuICAgIFtUQUdfTkFNRVMuT1BUR1JPVVAsIFRBR19JRC5PUFRHUk9VUF0sXG4gICAgW1RBR19OQU1FUy5PUFRJT04sIFRBR19JRC5PUFRJT05dLFxuICAgIFtUQUdfTkFNRVMuUCwgVEFHX0lELlBdLFxuICAgIFtUQUdfTkFNRVMuUEFSQU0sIFRBR19JRC5QQVJBTV0sXG4gICAgW1RBR19OQU1FUy5QTEFJTlRFWFQsIFRBR19JRC5QTEFJTlRFWFRdLFxuICAgIFtUQUdfTkFNRVMuUFJFLCBUQUdfSUQuUFJFXSxcbiAgICBbVEFHX05BTUVTLlJCLCBUQUdfSUQuUkJdLFxuICAgIFtUQUdfTkFNRVMuUlAsIFRBR19JRC5SUF0sXG4gICAgW1RBR19OQU1FUy5SVCwgVEFHX0lELlJUXSxcbiAgICBbVEFHX05BTUVTLlJUQywgVEFHX0lELlJUQ10sXG4gICAgW1RBR19OQU1FUy5SVUJZLCBUQUdfSUQuUlVCWV0sXG4gICAgW1RBR19OQU1FUy5TLCBUQUdfSUQuU10sXG4gICAgW1RBR19OQU1FUy5TQ1JJUFQsIFRBR19JRC5TQ1JJUFRdLFxuICAgIFtUQUdfTkFNRVMuU0VDVElPTiwgVEFHX0lELlNFQ1RJT05dLFxuICAgIFtUQUdfTkFNRVMuU0VMRUNULCBUQUdfSUQuU0VMRUNUXSxcbiAgICBbVEFHX05BTUVTLlNPVVJDRSwgVEFHX0lELlNPVVJDRV0sXG4gICAgW1RBR19OQU1FUy5TTUFMTCwgVEFHX0lELlNNQUxMXSxcbiAgICBbVEFHX05BTUVTLlNQQU4sIFRBR19JRC5TUEFOXSxcbiAgICBbVEFHX05BTUVTLlNUUklLRSwgVEFHX0lELlNUUklLRV0sXG4gICAgW1RBR19OQU1FUy5TVFJPTkcsIFRBR19JRC5TVFJPTkddLFxuICAgIFtUQUdfTkFNRVMuU1RZTEUsIFRBR19JRC5TVFlMRV0sXG4gICAgW1RBR19OQU1FUy5TVUIsIFRBR19JRC5TVUJdLFxuICAgIFtUQUdfTkFNRVMuU1VNTUFSWSwgVEFHX0lELlNVTU1BUlldLFxuICAgIFtUQUdfTkFNRVMuU1VQLCBUQUdfSUQuU1VQXSxcbiAgICBbVEFHX05BTUVTLlRBQkxFLCBUQUdfSUQuVEFCTEVdLFxuICAgIFtUQUdfTkFNRVMuVEJPRFksIFRBR19JRC5UQk9EWV0sXG4gICAgW1RBR19OQU1FUy5URU1QTEFURSwgVEFHX0lELlRFTVBMQVRFXSxcbiAgICBbVEFHX05BTUVTLlRFWFRBUkVBLCBUQUdfSUQuVEVYVEFSRUFdLFxuICAgIFtUQUdfTkFNRVMuVEZPT1QsIFRBR19JRC5URk9PVF0sXG4gICAgW1RBR19OQU1FUy5URCwgVEFHX0lELlREXSxcbiAgICBbVEFHX05BTUVTLlRILCBUQUdfSUQuVEhdLFxuICAgIFtUQUdfTkFNRVMuVEhFQUQsIFRBR19JRC5USEVBRF0sXG4gICAgW1RBR19OQU1FUy5USVRMRSwgVEFHX0lELlRJVExFXSxcbiAgICBbVEFHX05BTUVTLlRSLCBUQUdfSUQuVFJdLFxuICAgIFtUQUdfTkFNRVMuVFJBQ0ssIFRBR19JRC5UUkFDS10sXG4gICAgW1RBR19OQU1FUy5UVCwgVEFHX0lELlRUXSxcbiAgICBbVEFHX05BTUVTLlUsIFRBR19JRC5VXSxcbiAgICBbVEFHX05BTUVTLlVMLCBUQUdfSUQuVUxdLFxuICAgIFtUQUdfTkFNRVMuU1ZHLCBUQUdfSUQuU1ZHXSxcbiAgICBbVEFHX05BTUVTLlZBUiwgVEFHX0lELlZBUl0sXG4gICAgW1RBR19OQU1FUy5XQlIsIFRBR19JRC5XQlJdLFxuICAgIFtUQUdfTkFNRVMuWE1QLCBUQUdfSUQuWE1QXSxcbl0pO1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRhZ0lEKHRhZ05hbWUpIHtcbiAgICB2YXIgX2E7XG4gICAgcmV0dXJuIChfYSA9IFRBR19OQU1FX1RPX0lELmdldCh0YWdOYW1lKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogVEFHX0lELlVOS05PV047XG59XG5jb25zdCAkID0gVEFHX0lEO1xuZXhwb3J0IGNvbnN0IFNQRUNJQUxfRUxFTUVOVFMgPSB7XG4gICAgW05TLkhUTUxdOiBuZXcgU2V0KFtcbiAgICAgICAgJC5BRERSRVNTLFxuICAgICAgICAkLkFQUExFVCxcbiAgICAgICAgJC5BUkVBLFxuICAgICAgICAkLkFSVElDTEUsXG4gICAgICAgICQuQVNJREUsXG4gICAgICAgICQuQkFTRSxcbiAgICAgICAgJC5CQVNFRk9OVCxcbiAgICAgICAgJC5CR1NPVU5ELFxuICAgICAgICAkLkJMT0NLUVVPVEUsXG4gICAgICAgICQuQk9EWSxcbiAgICAgICAgJC5CUixcbiAgICAgICAgJC5CVVRUT04sXG4gICAgICAgICQuQ0FQVElPTixcbiAgICAgICAgJC5DRU5URVIsXG4gICAgICAgICQuQ09MLFxuICAgICAgICAkLkNPTEdST1VQLFxuICAgICAgICAkLkRELFxuICAgICAgICAkLkRFVEFJTFMsXG4gICAgICAgICQuRElSLFxuICAgICAgICAkLkRJVixcbiAgICAgICAgJC5ETCxcbiAgICAgICAgJC5EVCxcbiAgICAgICAgJC5FTUJFRCxcbiAgICAgICAgJC5GSUVMRFNFVCxcbiAgICAgICAgJC5GSUdDQVBUSU9OLFxuICAgICAgICAkLkZJR1VSRSxcbiAgICAgICAgJC5GT09URVIsXG4gICAgICAgICQuRk9STSxcbiAgICAgICAgJC5GUkFNRSxcbiAgICAgICAgJC5GUkFNRVNFVCxcbiAgICAgICAgJC5IMSxcbiAgICAgICAgJC5IMixcbiAgICAgICAgJC5IMyxcbiAgICAgICAgJC5INCxcbiAgICAgICAgJC5INSxcbiAgICAgICAgJC5INixcbiAgICAgICAgJC5IRUFELFxuICAgICAgICAkLkhFQURFUixcbiAgICAgICAgJC5IR1JPVVAsXG4gICAgICAgICQuSFIsXG4gICAgICAgICQuSFRNTCxcbiAgICAgICAgJC5JRlJBTUUsXG4gICAgICAgICQuSU1HLFxuICAgICAgICAkLklOUFVULFxuICAgICAgICAkLkxJLFxuICAgICAgICAkLkxJTkssXG4gICAgICAgICQuTElTVElORyxcbiAgICAgICAgJC5NQUlOLFxuICAgICAgICAkLk1BUlFVRUUsXG4gICAgICAgICQuTUVOVSxcbiAgICAgICAgJC5NRVRBLFxuICAgICAgICAkLk5BVixcbiAgICAgICAgJC5OT0VNQkVELFxuICAgICAgICAkLk5PRlJBTUVTLFxuICAgICAgICAkLk5PU0NSSVBULFxuICAgICAgICAkLk9CSkVDVCxcbiAgICAgICAgJC5PTCxcbiAgICAgICAgJC5QLFxuICAgICAgICAkLlBBUkFNLFxuICAgICAgICAkLlBMQUlOVEVYVCxcbiAgICAgICAgJC5QUkUsXG4gICAgICAgICQuU0NSSVBULFxuICAgICAgICAkLlNFQ1RJT04sXG4gICAgICAgICQuU0VMRUNULFxuICAgICAgICAkLlNPVVJDRSxcbiAgICAgICAgJC5TVFlMRSxcbiAgICAgICAgJC5TVU1NQVJZLFxuICAgICAgICAkLlRBQkxFLFxuICAgICAgICAkLlRCT0RZLFxuICAgICAgICAkLlRELFxuICAgICAgICAkLlRFTVBMQVRFLFxuICAgICAgICAkLlRFWFRBUkVBLFxuICAgICAgICAkLlRGT09ULFxuICAgICAgICAkLlRILFxuICAgICAgICAkLlRIRUFELFxuICAgICAgICAkLlRJVExFLFxuICAgICAgICAkLlRSLFxuICAgICAgICAkLlRSQUNLLFxuICAgICAgICAkLlVMLFxuICAgICAgICAkLldCUixcbiAgICAgICAgJC5YTVAsXG4gICAgXSksXG4gICAgW05TLk1BVEhNTF06IG5ldyBTZXQoWyQuTUksICQuTU8sICQuTU4sICQuTVMsICQuTVRFWFQsICQuQU5OT1RBVElPTl9YTUxdKSxcbiAgICBbTlMuU1ZHXTogbmV3IFNldChbJC5USVRMRSwgJC5GT1JFSUdOX09CSkVDVCwgJC5ERVNDXSksXG4gICAgW05TLlhMSU5LXTogbmV3IFNldCgpLFxuICAgIFtOUy5YTUxdOiBuZXcgU2V0KCksXG4gICAgW05TLlhNTE5TXTogbmV3IFNldCgpLFxufTtcbmV4cG9ydCBmdW5jdGlvbiBpc051bWJlcmVkSGVhZGVyKHRuKSB7XG4gICAgcmV0dXJuIHRuID09PSAkLkgxIHx8IHRuID09PSAkLkgyIHx8IHRuID09PSAkLkgzIHx8IHRuID09PSAkLkg0IHx8IHRuID09PSAkLkg1IHx8IHRuID09PSAkLkg2O1xufVxuY29uc3QgVU5FU0NBUEVEX1RFWFQgPSBuZXcgU2V0KFtcbiAgICBUQUdfTkFNRVMuU1RZTEUsXG4gICAgVEFHX05BTUVTLlNDUklQVCxcbiAgICBUQUdfTkFNRVMuWE1QLFxuICAgIFRBR19OQU1FUy5JRlJBTUUsXG4gICAgVEFHX05BTUVTLk5PRU1CRUQsXG4gICAgVEFHX05BTUVTLk5PRlJBTUVTLFxuICAgIFRBR19OQU1FUy5QTEFJTlRFWFQsXG5dKTtcbmV4cG9ydCBmdW5jdGlvbiBoYXNVbmVzY2FwZWRUZXh0KHRuLCBzY3JpcHRpbmdFbmFibGVkKSB7XG4gICAgcmV0dXJuIFVORVNDQVBFRF9URVhULmhhcyh0bikgfHwgKHNjcmlwdGluZ0VuYWJsZWQgJiYgdG4gPT09IFRBR19OQU1FUy5OT1NDUklQVCk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1odG1sLmpzLm1hcCIsICJpbXBvcnQgeyBQcmVwcm9jZXNzb3IgfSBmcm9tICcuL3ByZXByb2Nlc3Nvci5qcyc7XG5pbXBvcnQgeyBDT0RFX1BPSU5UUyBhcyAkLCBTRVFVRU5DRVMgYXMgJCQsIFJFUExBQ0VNRU5UX0NIQVJBQ1RFUiwgaXNTdXJyb2dhdGUsIGlzVW5kZWZpbmVkQ29kZVBvaW50LCBpc0NvbnRyb2xDb2RlUG9pbnQsIH0gZnJvbSAnLi4vY29tbW9uL3VuaWNvZGUuanMnO1xuaW1wb3J0IHsgVG9rZW5UeXBlLCBnZXRUb2tlbkF0dHIsIH0gZnJvbSAnLi4vY29tbW9uL3Rva2VuLmpzJztcbmltcG9ydCB7IGh0bWxEZWNvZGVUcmVlLCBCaW5UcmllRmxhZ3MsIGRldGVybWluZUJyYW5jaCB9IGZyb20gJ2VudGl0aWVzL2xpYi9kZWNvZGUuanMnO1xuaW1wb3J0IHsgRVJSIH0gZnJvbSAnLi4vY29tbW9uL2Vycm9yLWNvZGVzLmpzJztcbmltcG9ydCB7IFRBR19JRCwgZ2V0VGFnSUQgfSBmcm9tICcuLi9jb21tb24vaHRtbC5qcyc7XG4vL0MxIFVuaWNvZGUgY29udHJvbCBjaGFyYWN0ZXIgcmVmZXJlbmNlIHJlcGxhY2VtZW50c1xuY29uc3QgQzFfQ09OVFJPTFNfUkVGRVJFTkNFX1JFUExBQ0VNRU5UUyA9IG5ldyBNYXAoW1xuICAgIFsweDgwLCA4MzY0XSxcbiAgICBbMHg4MiwgODIxOF0sXG4gICAgWzB4ODMsIDQwMl0sXG4gICAgWzB4ODQsIDgyMjJdLFxuICAgIFsweDg1LCA4MjMwXSxcbiAgICBbMHg4NiwgODIyNF0sXG4gICAgWzB4ODcsIDgyMjVdLFxuICAgIFsweDg4LCA3MTBdLFxuICAgIFsweDg5LCA4MjQwXSxcbiAgICBbMHg4YSwgMzUyXSxcbiAgICBbMHg4YiwgODI0OV0sXG4gICAgWzB4OGMsIDMzOF0sXG4gICAgWzB4OGUsIDM4MV0sXG4gICAgWzB4OTEsIDgyMTZdLFxuICAgIFsweDkyLCA4MjE3XSxcbiAgICBbMHg5MywgODIyMF0sXG4gICAgWzB4OTQsIDgyMjFdLFxuICAgIFsweDk1LCA4MjI2XSxcbiAgICBbMHg5NiwgODIxMV0sXG4gICAgWzB4OTcsIDgyMTJdLFxuICAgIFsweDk4LCA3MzJdLFxuICAgIFsweDk5LCA4NDgyXSxcbiAgICBbMHg5YSwgMzUzXSxcbiAgICBbMHg5YiwgODI1MF0sXG4gICAgWzB4OWMsIDMzOV0sXG4gICAgWzB4OWUsIDM4Ml0sXG4gICAgWzB4OWYsIDM3Nl0sXG5dKTtcbi8vU3RhdGVzXG52YXIgU3RhdGU7XG4oZnVuY3Rpb24gKFN0YXRlKSB7XG4gICAgU3RhdGVbU3RhdGVbXCJEQVRBXCJdID0gMF0gPSBcIkRBVEFcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlJDREFUQVwiXSA9IDFdID0gXCJSQ0RBVEFcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlJBV1RFWFRcIl0gPSAyXSA9IFwiUkFXVEVYVFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFcIl0gPSAzXSA9IFwiU0NSSVBUX0RBVEFcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlBMQUlOVEVYVFwiXSA9IDRdID0gXCJQTEFJTlRFWFRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlRBR19PUEVOXCJdID0gNV0gPSBcIlRBR19PUEVOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJFTkRfVEFHX09QRU5cIl0gPSA2XSA9IFwiRU5EX1RBR19PUEVOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJUQUdfTkFNRVwiXSA9IDddID0gXCJUQUdfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiUkNEQVRBX0xFU1NfVEhBTl9TSUdOXCJdID0gOF0gPSBcIlJDREFUQV9MRVNTX1RIQU5fU0lHTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiUkNEQVRBX0VORF9UQUdfT1BFTlwiXSA9IDldID0gXCJSQ0RBVEFfRU5EX1RBR19PUEVOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJSQ0RBVEFfRU5EX1RBR19OQU1FXCJdID0gMTBdID0gXCJSQ0RBVEFfRU5EX1RBR19OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJSQVdURVhUX0xFU1NfVEhBTl9TSUdOXCJdID0gMTFdID0gXCJSQVdURVhUX0xFU1NfVEhBTl9TSUdOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJSQVdURVhUX0VORF9UQUdfT1BFTlwiXSA9IDEyXSA9IFwiUkFXVEVYVF9FTkRfVEFHX09QRU5cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlJBV1RFWFRfRU5EX1RBR19OQU1FXCJdID0gMTNdID0gXCJSQVdURVhUX0VORF9UQUdfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfTEVTU19USEFOX1NJR05cIl0gPSAxNF0gPSBcIlNDUklQVF9EQVRBX0xFU1NfVEhBTl9TSUdOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9FTkRfVEFHX09QRU5cIl0gPSAxNV0gPSBcIlNDUklQVF9EQVRBX0VORF9UQUdfT1BFTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRU5EX1RBR19OQU1FXCJdID0gMTZdID0gXCJTQ1JJUFRfREFUQV9FTkRfVEFHX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVFwiXSA9IDE3XSA9IFwiU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRfREFTSFwiXSA9IDE4XSA9IFwiU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VTQ0FQRURcIl0gPSAxOV0gPSBcIlNDUklQVF9EQVRBX0VTQ0FQRURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VTQ0FQRURfREFTSFwiXSA9IDIwXSA9IFwiU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfREFTSFwiXSA9IDIxXSA9IFwiU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VTQ0FQRURfTEVTU19USEFOX1NJR05cIl0gPSAyMl0gPSBcIlNDUklQVF9EQVRBX0VTQ0FQRURfTEVTU19USEFOX1NJR05cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19PUEVOXCJdID0gMjNdID0gXCJTQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfT1BFTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX05BTUVcIl0gPSAyNF0gPSBcIlNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX1NUQVJUXCJdID0gMjVdID0gXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX1NUQVJUXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRFwiXSA9IDI2XSA9IFwiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hcIl0gPSAyN10gPSBcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hfREFTSFwiXSA9IDI4XSA9IFwiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSF9EQVNIXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTlwiXSA9IDI5XSA9IFwiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfTEVTU19USEFOX1NJR05cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfRU5EXCJdID0gMzBdID0gXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX0VORFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQkVGT1JFX0FUVFJJQlVURV9OQU1FXCJdID0gMzFdID0gXCJCRUZPUkVfQVRUUklCVVRFX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFUVFJJQlVURV9OQU1FXCJdID0gMzJdID0gXCJBVFRSSUJVVEVfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQUZURVJfQVRUUklCVVRFX05BTUVcIl0gPSAzM10gPSBcIkFGVEVSX0FUVFJJQlVURV9OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJCRUZPUkVfQVRUUklCVVRFX1ZBTFVFXCJdID0gMzRdID0gXCJCRUZPUkVfQVRUUklCVVRFX1ZBTFVFXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBVFRSSUJVVEVfVkFMVUVfRE9VQkxFX1FVT1RFRFwiXSA9IDM1XSA9IFwiQVRUUklCVVRFX1ZBTFVFX0RPVUJMRV9RVU9URURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFUVFJJQlVURV9WQUxVRV9TSU5HTEVfUVVPVEVEXCJdID0gMzZdID0gXCJBVFRSSUJVVEVfVkFMVUVfU0lOR0xFX1FVT1RFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQVRUUklCVVRFX1ZBTFVFX1VOUVVPVEVEXCJdID0gMzddID0gXCJBVFRSSUJVVEVfVkFMVUVfVU5RVU9URURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFGVEVSX0FUVFJJQlVURV9WQUxVRV9RVU9URURcIl0gPSAzOF0gPSBcIkFGVEVSX0FUVFJJQlVURV9WQUxVRV9RVU9URURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNFTEZfQ0xPU0lOR19TVEFSVF9UQUdcIl0gPSAzOV0gPSBcIlNFTEZfQ0xPU0lOR19TVEFSVF9UQUdcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkJPR1VTX0NPTU1FTlRcIl0gPSA0MF0gPSBcIkJPR1VTX0NPTU1FTlRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIk1BUktVUF9ERUNMQVJBVElPTl9PUEVOXCJdID0gNDFdID0gXCJNQVJLVVBfREVDTEFSQVRJT05fT1BFTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVF9TVEFSVFwiXSA9IDQyXSA9IFwiQ09NTUVOVF9TVEFSVFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVF9TVEFSVF9EQVNIXCJdID0gNDNdID0gXCJDT01NRU5UX1NUQVJUX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRcIl0gPSA0NF0gPSBcIkNPTU1FTlRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRfTEVTU19USEFOX1NJR05cIl0gPSA0NV0gPSBcIkNPTU1FTlRfTEVTU19USEFOX1NJR05cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFOR1wiXSA9IDQ2XSA9IFwiQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkdfREFTSFwiXSA9IDQ3XSA9IFwiQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFOR19EQVNIX0RBU0hcIl0gPSA0OF0gPSBcIkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFOR19EQVNIX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRfRU5EX0RBU0hcIl0gPSA0OV0gPSBcIkNPTU1FTlRfRU5EX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRfRU5EXCJdID0gNTBdID0gXCJDT01NRU5UX0VORFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVF9FTkRfQkFOR1wiXSA9IDUxXSA9IFwiQ09NTUVOVF9FTkRfQkFOR1wiO1xuICAgIFN0YXRlW1N0YXRlW1wiRE9DVFlQRVwiXSA9IDUyXSA9IFwiRE9DVFlQRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQkVGT1JFX0RPQ1RZUEVfTkFNRVwiXSA9IDUzXSA9IFwiQkVGT1JFX0RPQ1RZUEVfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiRE9DVFlQRV9OQU1FXCJdID0gNTRdID0gXCJET0NUWVBFX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFGVEVSX0RPQ1RZUEVfTkFNRVwiXSA9IDU1XSA9IFwiQUZURVJfRE9DVFlQRV9OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBRlRFUl9ET0NUWVBFX1BVQkxJQ19LRVlXT1JEXCJdID0gNTZdID0gXCJBRlRFUl9ET0NUWVBFX1BVQkxJQ19LRVlXT1JEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJCRUZPUkVfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUlwiXSA9IDU3XSA9IFwiQkVGT1JFX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRFwiXSA9IDU4XSA9IFwiRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NJTkdMRV9RVU9URURcIl0gPSA1OV0gPSBcIkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQUZURVJfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUlwiXSA9IDYwXSA9IFwiQUZURVJfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQkVUV0VFTl9ET0NUWVBFX1BVQkxJQ19BTkRfU1lTVEVNX0lERU5USUZJRVJTXCJdID0gNjFdID0gXCJCRVRXRUVOX0RPQ1RZUEVfUFVCTElDX0FORF9TWVNURU1fSURFTlRJRklFUlNcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0tFWVdPUkRcIl0gPSA2Ml0gPSBcIkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0tFWVdPUkRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkJFRk9SRV9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSXCJdID0gNjNdID0gXCJCRUZPUkVfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEXCJdID0gNjRdID0gXCJET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRFwiXSA9IDY1XSA9IFwiRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBRlRFUl9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSXCJdID0gNjZdID0gXCJBRlRFUl9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJCT0dVU19ET0NUWVBFXCJdID0gNjddID0gXCJCT0dVU19ET0NUWVBFXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDREFUQV9TRUNUSU9OXCJdID0gNjhdID0gXCJDREFUQV9TRUNUSU9OXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDREFUQV9TRUNUSU9OX0JSQUNLRVRcIl0gPSA2OV0gPSBcIkNEQVRBX1NFQ1RJT05fQlJBQ0tFVFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ0RBVEFfU0VDVElPTl9FTkRcIl0gPSA3MF0gPSBcIkNEQVRBX1NFQ1RJT05fRU5EXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDSEFSQUNURVJfUkVGRVJFTkNFXCJdID0gNzFdID0gXCJDSEFSQUNURVJfUkVGRVJFTkNFXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJOQU1FRF9DSEFSQUNURVJfUkVGRVJFTkNFXCJdID0gNzJdID0gXCJOQU1FRF9DSEFSQUNURVJfUkVGRVJFTkNFXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBTUJJR1VPVVNfQU1QRVJTQU5EXCJdID0gNzNdID0gXCJBTUJJR1VPVVNfQU1QRVJTQU5EXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJOVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0VcIl0gPSA3NF0gPSBcIk5VTUVSSUNfQ0hBUkFDVEVSX1JFRkVSRU5DRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiSEVYQURFTUlDQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRV9TVEFSVFwiXSA9IDc1XSA9IFwiSEVYQURFTUlDQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRV9TVEFSVFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiSEVYQURFTUlDQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRVwiXSA9IDc2XSA9IFwiSEVYQURFTUlDQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiREVDSU1BTF9DSEFSQUNURVJfUkVGRVJFTkNFXCJdID0gNzddID0gXCJERUNJTUFMX0NIQVJBQ1RFUl9SRUZFUkVOQ0VcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIk5VTUVSSUNfQ0hBUkFDVEVSX1JFRkVSRU5DRV9FTkRcIl0gPSA3OF0gPSBcIk5VTUVSSUNfQ0hBUkFDVEVSX1JFRkVSRU5DRV9FTkRcIjtcbn0pKFN0YXRlIHx8IChTdGF0ZSA9IHt9KSk7XG4vL1Rva2VuaXplciBpbml0aWFsIHN0YXRlcyBmb3IgZGlmZmVyZW50IG1vZGVzXG5leHBvcnQgY29uc3QgVG9rZW5pemVyTW9kZSA9IHtcbiAgICBEQVRBOiBTdGF0ZS5EQVRBLFxuICAgIFJDREFUQTogU3RhdGUuUkNEQVRBLFxuICAgIFJBV1RFWFQ6IFN0YXRlLlJBV1RFWFQsXG4gICAgU0NSSVBUX0RBVEE6IFN0YXRlLlNDUklQVF9EQVRBLFxuICAgIFBMQUlOVEVYVDogU3RhdGUuUExBSU5URVhULFxuICAgIENEQVRBX1NFQ1RJT046IFN0YXRlLkNEQVRBX1NFQ1RJT04sXG59O1xuLy9VdGlsc1xuLy9PUFRJTUlaQVRJT046IHRoZXNlIHV0aWxpdHkgZnVuY3Rpb25zIHNob3VsZCBub3QgYmUgbW92ZWQgb3V0IG9mIHRoaXMgbW9kdWxlLiBWOCBDcmFua3NoYWZ0IHdpbGwgbm90IGlubGluZVxuLy90aGlzIGZ1bmN0aW9ucyBpZiB0aGV5IHdpbGwgYmUgc2l0dWF0ZWQgaW4gYW5vdGhlciBtb2R1bGUgZHVlIHRvIGNvbnRleHQgc3dpdGNoLlxuLy9BbHdheXMgcGVyZm9ybSBpbmxpbmluZyBjaGVjayBiZWZvcmUgbW9kaWZ5aW5nIHRoaXMgZnVuY3Rpb25zICgnbm9kZSAtLXRyYWNlLWlubGluaW5nJykuXG5mdW5jdGlvbiBpc0FzY2lpRGlnaXQoY3ApIHtcbiAgICByZXR1cm4gY3AgPj0gJC5ESUdJVF8wICYmIGNwIDw9ICQuRElHSVRfOTtcbn1cbmZ1bmN0aW9uIGlzQXNjaWlVcHBlcihjcCkge1xuICAgIHJldHVybiBjcCA+PSAkLkxBVElOX0NBUElUQUxfQSAmJiBjcCA8PSAkLkxBVElOX0NBUElUQUxfWjtcbn1cbmZ1bmN0aW9uIGlzQXNjaWlMb3dlcihjcCkge1xuICAgIHJldHVybiBjcCA+PSAkLkxBVElOX1NNQUxMX0EgJiYgY3AgPD0gJC5MQVRJTl9TTUFMTF9aO1xufVxuZnVuY3Rpb24gaXNBc2NpaUxldHRlcihjcCkge1xuICAgIHJldHVybiBpc0FzY2lpTG93ZXIoY3ApIHx8IGlzQXNjaWlVcHBlcihjcCk7XG59XG5mdW5jdGlvbiBpc0FzY2lpQWxwaGFOdW1lcmljKGNwKSB7XG4gICAgcmV0dXJuIGlzQXNjaWlMZXR0ZXIoY3ApIHx8IGlzQXNjaWlEaWdpdChjcCk7XG59XG5mdW5jdGlvbiBpc0FzY2lpVXBwZXJIZXhEaWdpdChjcCkge1xuICAgIHJldHVybiBjcCA+PSAkLkxBVElOX0NBUElUQUxfQSAmJiBjcCA8PSAkLkxBVElOX0NBUElUQUxfRjtcbn1cbmZ1bmN0aW9uIGlzQXNjaWlMb3dlckhleERpZ2l0KGNwKSB7XG4gICAgcmV0dXJuIGNwID49ICQuTEFUSU5fU01BTExfQSAmJiBjcCA8PSAkLkxBVElOX1NNQUxMX0Y7XG59XG5mdW5jdGlvbiBpc0FzY2lpSGV4RGlnaXQoY3ApIHtcbiAgICByZXR1cm4gaXNBc2NpaURpZ2l0KGNwKSB8fCBpc0FzY2lpVXBwZXJIZXhEaWdpdChjcCkgfHwgaXNBc2NpaUxvd2VySGV4RGlnaXQoY3ApO1xufVxuZnVuY3Rpb24gdG9Bc2NpaUxvd2VyKGNwKSB7XG4gICAgcmV0dXJuIGNwICsgMzI7XG59XG5mdW5jdGlvbiBpc1doaXRlc3BhY2UoY3ApIHtcbiAgICByZXR1cm4gY3AgPT09ICQuU1BBQ0UgfHwgY3AgPT09ICQuTElORV9GRUVEIHx8IGNwID09PSAkLlRBQlVMQVRJT04gfHwgY3AgPT09ICQuRk9STV9GRUVEO1xufVxuZnVuY3Rpb24gaXNFbnRpdHlJbkF0dHJpYnV0ZUludmFsaWRFbmQobmV4dENwKSB7XG4gICAgcmV0dXJuIG5leHRDcCA9PT0gJC5FUVVBTFNfU0lHTiB8fCBpc0FzY2lpQWxwaGFOdW1lcmljKG5leHRDcCk7XG59XG5mdW5jdGlvbiBpc1NjcmlwdERhdGFEb3VibGVFc2NhcGVTZXF1ZW5jZUVuZChjcCkge1xuICAgIHJldHVybiBpc1doaXRlc3BhY2UoY3ApIHx8IGNwID09PSAkLlNPTElEVVMgfHwgY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR047XG59XG4vL1Rva2VuaXplclxuZXhwb3J0IGNsYXNzIFRva2VuaXplciB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucywgaGFuZGxlcikge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgICB0aGlzLmhhbmRsZXIgPSBoYW5kbGVyO1xuICAgICAgICB0aGlzLnBhdXNlZCA9IGZhbHNlO1xuICAgICAgICAvKiogRW5zdXJlcyB0aGF0IHRoZSBwYXJzaW5nIGxvb3AgaXNuJ3QgcnVuIG11bHRpcGxlIHRpbWVzIGF0IG9uY2UuICovXG4gICAgICAgIHRoaXMuaW5Mb29wID0gZmFsc2U7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgY3VycmVudCBhZGp1c3RlZCBub2RlIGV4aXN0cywgaXMgbm90IGFuIGVsZW1lbnQgaW4gdGhlIEhUTUwgbmFtZXNwYWNlLFxuICAgICAgICAgKiBhbmQgdGhhdCBpdCBpcyBub3QgYW4gaW50ZWdyYXRpb24gcG9pbnQgZm9yIGVpdGhlciBNYXRoTUwgb3IgSFRNTC5cbiAgICAgICAgICpcbiAgICAgICAgICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvcGFyc2luZy5odG1sI3RyZWUtY29uc3RydWN0aW9ufVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5pbkZvcmVpZ25Ob2RlID0gZmFsc2U7XG4gICAgICAgIHRoaXMubGFzdFN0YXJ0VGFnTmFtZSA9ICcnO1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSAtMTtcbiAgICAgICAgdGhpcy5jb25zdW1lZEFmdGVyU25hcHNob3QgPSAtMTtcbiAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4gPSBudWxsO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IG51bGw7XG4gICAgICAgIHRoaXMuY3VycmVudEF0dHIgPSB7IG5hbWU6ICcnLCB2YWx1ZTogJycgfTtcbiAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3IgPSBuZXcgUHJlcHJvY2Vzc29yKGhhbmRsZXIpO1xuICAgICAgICB0aGlzLmN1cnJlbnRMb2NhdGlvbiA9IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKC0xKTtcbiAgICB9XG4gICAgLy9FcnJvcnNcbiAgICBfZXJyKGNvZGUpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgKF9iID0gKF9hID0gdGhpcy5oYW5kbGVyKS5vblBhcnNlRXJyb3IpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hLCB0aGlzLnByZXByb2Nlc3Nvci5nZXRFcnJvcihjb2RlKSk7XG4gICAgfVxuICAgIC8vIE5PVEU6IGBvZmZzZXRgIG1heSBuZXZlciBydW4gYWNyb3NzIGxpbmUgYm91bmRhcmllcy5cbiAgICBnZXRDdXJyZW50TG9jYXRpb24ob2Zmc2V0KSB7XG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8pIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGFydExpbmU6IHRoaXMucHJlcHJvY2Vzc29yLmxpbmUsXG4gICAgICAgICAgICBzdGFydENvbDogdGhpcy5wcmVwcm9jZXNzb3IuY29sIC0gb2Zmc2V0LFxuICAgICAgICAgICAgc3RhcnRPZmZzZXQ6IHRoaXMucHJlcHJvY2Vzc29yLm9mZnNldCAtIG9mZnNldCxcbiAgICAgICAgICAgIGVuZExpbmU6IC0xLFxuICAgICAgICAgICAgZW5kQ29sOiAtMSxcbiAgICAgICAgICAgIGVuZE9mZnNldDogLTEsXG4gICAgICAgIH07XG4gICAgfVxuICAgIF9ydW5QYXJzaW5nTG9vcCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5Mb29wKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aGlzLmluTG9vcCA9IHRydWU7XG4gICAgICAgIHdoaWxlICh0aGlzLmFjdGl2ZSAmJiAhdGhpcy5wYXVzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29uc3VtZWRBZnRlclNuYXBzaG90ID0gMDtcbiAgICAgICAgICAgIGNvbnN0IGNwID0gdGhpcy5fY29uc3VtZSgpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9lbnN1cmVIaWJlcm5hdGlvbigpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2FsbFN0YXRlKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluTG9vcCA9IGZhbHNlO1xuICAgIH1cbiAgICAvL0FQSVxuICAgIHBhdXNlKCkge1xuICAgICAgICB0aGlzLnBhdXNlZCA9IHRydWU7XG4gICAgfVxuICAgIHJlc3VtZSh3cml0ZUNhbGxiYWNrKSB7XG4gICAgICAgIGlmICghdGhpcy5wYXVzZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUGFyc2VyIHdhcyBhbHJlYWR5IHJlc3VtZWQnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBhdXNlZCA9IGZhbHNlO1xuICAgICAgICAvLyBOZWNlc3NhcnkgZm9yIHN5bmNocm9ub3VzIHJlc3VtZS5cbiAgICAgICAgaWYgKHRoaXMuaW5Mb29wKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aGlzLl9ydW5QYXJzaW5nTG9vcCgpO1xuICAgICAgICBpZiAoIXRoaXMucGF1c2VkKSB7XG4gICAgICAgICAgICB3cml0ZUNhbGxiYWNrID09PSBudWxsIHx8IHdyaXRlQ2FsbGJhY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHdyaXRlQ2FsbGJhY2soKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB3cml0ZShjaHVuaywgaXNMYXN0Q2h1bmssIHdyaXRlQ2FsbGJhY2spIHtcbiAgICAgICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xuICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci53cml0ZShjaHVuaywgaXNMYXN0Q2h1bmspO1xuICAgICAgICB0aGlzLl9ydW5QYXJzaW5nTG9vcCgpO1xuICAgICAgICBpZiAoIXRoaXMucGF1c2VkKSB7XG4gICAgICAgICAgICB3cml0ZUNhbGxiYWNrID09PSBudWxsIHx8IHdyaXRlQ2FsbGJhY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHdyaXRlQ2FsbGJhY2soKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpbnNlcnRIdG1sQXRDdXJyZW50UG9zKGNodW5rKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3IuaW5zZXJ0SHRtbEF0Q3VycmVudFBvcyhjaHVuayk7XG4gICAgICAgIHRoaXMuX3J1blBhcnNpbmdMb29wKCk7XG4gICAgfVxuICAgIC8vSGliZXJuYXRpb25cbiAgICBfZW5zdXJlSGliZXJuYXRpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLnByZXByb2Nlc3Nvci5lbmRPZkNodW5rSGl0KSB7XG4gICAgICAgICAgICB0aGlzLl91bmNvbnN1bWUodGhpcy5jb25zdW1lZEFmdGVyU25hcHNob3QpO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgLy9Db25zdW1wdGlvblxuICAgIF9jb25zdW1lKCkge1xuICAgICAgICB0aGlzLmNvbnN1bWVkQWZ0ZXJTbmFwc2hvdCsrO1xuICAgICAgICByZXR1cm4gdGhpcy5wcmVwcm9jZXNzb3IuYWR2YW5jZSgpO1xuICAgIH1cbiAgICBfdW5jb25zdW1lKGNvdW50KSB7XG4gICAgICAgIHRoaXMuY29uc3VtZWRBZnRlclNuYXBzaG90IC09IGNvdW50O1xuICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci5yZXRyZWF0KGNvdW50KTtcbiAgICB9XG4gICAgX3JlY29uc3VtZUluU3RhdGUoc3RhdGUsIGNwKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBzdGF0ZTtcbiAgICAgICAgdGhpcy5fY2FsbFN0YXRlKGNwKTtcbiAgICB9XG4gICAgX2FkdmFuY2VCeShjb3VudCkge1xuICAgICAgICB0aGlzLmNvbnN1bWVkQWZ0ZXJTbmFwc2hvdCArPSBjb3VudDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci5hZHZhbmNlKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2NvbnN1bWVTZXF1ZW5jZUlmTWF0Y2gocGF0dGVybiwgY2FzZVNlbnNpdGl2ZSkge1xuICAgICAgICBpZiAodGhpcy5wcmVwcm9jZXNzb3Iuc3RhcnRzV2l0aChwYXR0ZXJuLCBjYXNlU2Vuc2l0aXZlKSkge1xuICAgICAgICAgICAgLy8gV2Ugd2lsbCBhbHJlYWR5IGhhdmUgY29uc3VtZWQgb25lIGNoYXJhY3RlciBiZWZvcmUgY2FsbGluZyB0aGlzIG1ldGhvZC5cbiAgICAgICAgICAgIHRoaXMuX2FkdmFuY2VCeShwYXR0ZXJuLmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvL1Rva2VuIGNyZWF0aW9uXG4gICAgX2NyZWF0ZVN0YXJ0VGFnVG9rZW4oKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuID0ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW5UeXBlLlNUQVJUX1RBRyxcbiAgICAgICAgICAgIHRhZ05hbWU6ICcnLFxuICAgICAgICAgICAgdGFnSUQ6IFRBR19JRC5VTktOT1dOLFxuICAgICAgICAgICAgc2VsZkNsb3Npbmc6IGZhbHNlLFxuICAgICAgICAgICAgYWNrU2VsZkNsb3Npbmc6IGZhbHNlLFxuICAgICAgICAgICAgYXR0cnM6IFtdLFxuICAgICAgICAgICAgbG9jYXRpb246IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKDEpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBfY3JlYXRlRW5kVGFnVG9rZW4oKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuID0ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW5UeXBlLkVORF9UQUcsXG4gICAgICAgICAgICB0YWdOYW1lOiAnJyxcbiAgICAgICAgICAgIHRhZ0lEOiBUQUdfSUQuVU5LTk9XTixcbiAgICAgICAgICAgIHNlbGZDbG9zaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGFja1NlbGZDbG9zaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGF0dHJzOiBbXSxcbiAgICAgICAgICAgIGxvY2F0aW9uOiB0aGlzLmdldEN1cnJlbnRMb2NhdGlvbigyKSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgX2NyZWF0ZUNvbW1lbnRUb2tlbihvZmZzZXQpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4gPSB7XG4gICAgICAgICAgICB0eXBlOiBUb2tlblR5cGUuQ09NTUVOVCxcbiAgICAgICAgICAgIGRhdGE6ICcnLFxuICAgICAgICAgICAgbG9jYXRpb246IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKG9mZnNldCksXG4gICAgICAgIH07XG4gICAgfVxuICAgIF9jcmVhdGVEb2N0eXBlVG9rZW4oaW5pdGlhbE5hbWUpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4gPSB7XG4gICAgICAgICAgICB0eXBlOiBUb2tlblR5cGUuRE9DVFlQRSxcbiAgICAgICAgICAgIG5hbWU6IGluaXRpYWxOYW1lLFxuICAgICAgICAgICAgZm9yY2VRdWlya3M6IGZhbHNlLFxuICAgICAgICAgICAgcHVibGljSWQ6IG51bGwsXG4gICAgICAgICAgICBzeXN0ZW1JZDogbnVsbCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiB0aGlzLmN1cnJlbnRMb2NhdGlvbixcbiAgICAgICAgfTtcbiAgICB9XG4gICAgX2NyZWF0ZUNoYXJhY3RlclRva2VuKHR5cGUsIGNoYXJzKSB7XG4gICAgICAgIHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuID0ge1xuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIGNoYXJzLFxuICAgICAgICAgICAgbG9jYXRpb246IHRoaXMuY3VycmVudExvY2F0aW9uLFxuICAgICAgICB9O1xuICAgIH1cbiAgICAvL1RhZyBhdHRyaWJ1dGVzXG4gICAgX2NyZWF0ZUF0dHIoYXR0ck5hbWVGaXJzdENoKSB7XG4gICAgICAgIHRoaXMuY3VycmVudEF0dHIgPSB7XG4gICAgICAgICAgICBuYW1lOiBhdHRyTmFtZUZpcnN0Q2gsXG4gICAgICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uID0gdGhpcy5nZXRDdXJyZW50TG9jYXRpb24oMCk7XG4gICAgfVxuICAgIF9sZWF2ZUF0dHJOYW1lKCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHZhciBfYjtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgaWYgKGdldFRva2VuQXR0cih0b2tlbiwgdGhpcy5jdXJyZW50QXR0ci5uYW1lKSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdG9rZW4uYXR0cnMucHVzaCh0aGlzLmN1cnJlbnRBdHRyKTtcbiAgICAgICAgICAgIGlmICh0b2tlbi5sb2NhdGlvbiAmJiB0aGlzLmN1cnJlbnRMb2NhdGlvbikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGF0dHJMb2NhdGlvbnMgPSAoKF9hID0gKF9iID0gdG9rZW4ubG9jYXRpb24pLmF0dHJzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAoX2IuYXR0cnMgPSBPYmplY3QuY3JlYXRlKG51bGwpKSk7XG4gICAgICAgICAgICAgICAgYXR0ckxvY2F0aW9uc1t0aGlzLmN1cnJlbnRBdHRyLm5hbWVdID0gdGhpcy5jdXJyZW50TG9jYXRpb247XG4gICAgICAgICAgICAgICAgLy8gU2V0IGVuZCBsb2NhdGlvblxuICAgICAgICAgICAgICAgIHRoaXMuX2xlYXZlQXR0clZhbHVlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmR1cGxpY2F0ZUF0dHJpYnV0ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2xlYXZlQXR0clZhbHVlKCkge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50TG9jYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uLmVuZExpbmUgPSB0aGlzLnByZXByb2Nlc3Nvci5saW5lO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TG9jYXRpb24uZW5kQ29sID0gdGhpcy5wcmVwcm9jZXNzb3IuY29sO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TG9jYXRpb24uZW5kT2Zmc2V0ID0gdGhpcy5wcmVwcm9jZXNzb3Iub2Zmc2V0O1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vVG9rZW4gZW1pc3Npb25cbiAgICBwcmVwYXJlVG9rZW4oY3QpIHtcbiAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRDaGFyYWN0ZXJUb2tlbihjdC5sb2NhdGlvbik7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuID0gbnVsbDtcbiAgICAgICAgaWYgKGN0LmxvY2F0aW9uKSB7XG4gICAgICAgICAgICBjdC5sb2NhdGlvbi5lbmRMaW5lID0gdGhpcy5wcmVwcm9jZXNzb3IubGluZTtcbiAgICAgICAgICAgIGN0LmxvY2F0aW9uLmVuZENvbCA9IHRoaXMucHJlcHJvY2Vzc29yLmNvbCArIDE7XG4gICAgICAgICAgICBjdC5sb2NhdGlvbi5lbmRPZmZzZXQgPSB0aGlzLnByZXByb2Nlc3Nvci5vZmZzZXQgKyAxO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uID0gdGhpcy5nZXRDdXJyZW50TG9jYXRpb24oLTEpO1xuICAgIH1cbiAgICBlbWl0Q3VycmVudFRhZ1Rva2VuKCkge1xuICAgICAgICBjb25zdCBjdCA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICB0aGlzLnByZXBhcmVUb2tlbihjdCk7XG4gICAgICAgIGN0LnRhZ0lEID0gZ2V0VGFnSUQoY3QudGFnTmFtZSk7XG4gICAgICAgIGlmIChjdC50eXBlID09PSBUb2tlblR5cGUuU1RBUlRfVEFHKSB7XG4gICAgICAgICAgICB0aGlzLmxhc3RTdGFydFRhZ05hbWUgPSBjdC50YWdOYW1lO1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVyLm9uU3RhcnRUYWcoY3QpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGN0LmF0dHJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVuZFRhZ1dpdGhBdHRyaWJ1dGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjdC5zZWxmQ2xvc2luZykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW5kVGFnV2l0aFRyYWlsaW5nU29saWR1cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmhhbmRsZXIub25FbmRUYWcoY3QpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucHJlcHJvY2Vzc29yLmRyb3BQYXJzZWRDaHVuaygpO1xuICAgIH1cbiAgICBlbWl0Q3VycmVudENvbW1lbnQoY3QpIHtcbiAgICAgICAgdGhpcy5wcmVwYXJlVG9rZW4oY3QpO1xuICAgICAgICB0aGlzLmhhbmRsZXIub25Db21tZW50KGN0KTtcbiAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3IuZHJvcFBhcnNlZENodW5rKCk7XG4gICAgfVxuICAgIGVtaXRDdXJyZW50RG9jdHlwZShjdCkge1xuICAgICAgICB0aGlzLnByZXBhcmVUb2tlbihjdCk7XG4gICAgICAgIHRoaXMuaGFuZGxlci5vbkRvY3R5cGUoY3QpO1xuICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci5kcm9wUGFyc2VkQ2h1bmsoKTtcbiAgICB9XG4gICAgX2VtaXRDdXJyZW50Q2hhcmFjdGVyVG9rZW4obmV4dExvY2F0aW9uKSB7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbikge1xuICAgICAgICAgICAgLy9OT1RFOiBpZiB3ZSBoYXZlIGEgcGVuZGluZyBjaGFyYWN0ZXIgdG9rZW4sIG1ha2UgaXQncyBlbmQgbG9jYXRpb24gZXF1YWwgdG8gdGhlXG4gICAgICAgICAgICAvL2N1cnJlbnQgdG9rZW4ncyBzdGFydCBsb2NhdGlvbi5cbiAgICAgICAgICAgIGlmIChuZXh0TG9jYXRpb24gJiYgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4ubG9jYXRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbi5sb2NhdGlvbi5lbmRMaW5lID0gbmV4dExvY2F0aW9uLnN0YXJ0TGluZTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbi5sb2NhdGlvbi5lbmRDb2wgPSBuZXh0TG9jYXRpb24uc3RhcnRDb2w7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4ubG9jYXRpb24uZW5kT2Zmc2V0ID0gbmV4dExvY2F0aW9uLnN0YXJ0T2Zmc2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3dpdGNoICh0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbi50eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuQ0hBUkFDVEVSOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlci5vbkNoYXJhY3Rlcih0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5OVUxMX0NIQVJBQ1RFUjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZXIub25OdWxsQ2hhcmFjdGVyKHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLldISVRFU1BBQ0VfQ0hBUkFDVEVSOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlci5vbldoaXRlc3BhY2VDaGFyYWN0ZXIodGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbiA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2VtaXRFT0ZUb2tlbigpIHtcbiAgICAgICAgY29uc3QgbG9jYXRpb24gPSB0aGlzLmdldEN1cnJlbnRMb2NhdGlvbigwKTtcbiAgICAgICAgaWYgKGxvY2F0aW9uKSB7XG4gICAgICAgICAgICBsb2NhdGlvbi5lbmRMaW5lID0gbG9jYXRpb24uc3RhcnRMaW5lO1xuICAgICAgICAgICAgbG9jYXRpb24uZW5kQ29sID0gbG9jYXRpb24uc3RhcnRDb2w7XG4gICAgICAgICAgICBsb2NhdGlvbi5lbmRPZmZzZXQgPSBsb2NhdGlvbi5zdGFydE9mZnNldDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9lbWl0Q3VycmVudENoYXJhY3RlclRva2VuKGxvY2F0aW9uKTtcbiAgICAgICAgdGhpcy5oYW5kbGVyLm9uRW9mKHsgdHlwZTogVG9rZW5UeXBlLkVPRiwgbG9jYXRpb24gfSk7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XG4gICAgfVxuICAgIC8vQ2hhcmFjdGVycyBlbWlzc2lvblxuICAgIC8vT1BUSU1JWkFUSU9OOiBzcGVjaWZpY2F0aW9uIHVzZXMgb25seSBvbmUgdHlwZSBvZiBjaGFyYWN0ZXIgdG9rZW5zIChvbmUgdG9rZW4gcGVyIGNoYXJhY3RlcikuXG4gICAgLy9UaGlzIGNhdXNlcyBhIGh1Z2UgbWVtb3J5IG92ZXJoZWFkIGFuZCBhIGxvdCBvZiB1bm5lY2Vzc2FyeSBwYXJzZXIgbG9vcHMuIHBhcnNlNSB1c2VzIDMgZ3JvdXBzIG9mIGNoYXJhY3RlcnMuXG4gICAgLy9JZiB3ZSBoYXZlIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGJlbG9uZyB0byB0aGUgc2FtZSBncm91cCwgdGhlIHBhcnNlciBjYW4gcHJvY2VzcyBpdFxuICAgIC8vYXMgYSBzaW5nbGUgc29saWQgY2hhcmFjdGVyIHRva2VuLlxuICAgIC8vU28sIHRoZXJlIGFyZSAzIHR5cGVzIG9mIGNoYXJhY3RlciB0b2tlbnMgaW4gcGFyc2U1OlxuICAgIC8vMSlUb2tlblR5cGUuTlVMTF9DSEFSQUNURVIgLSBcXHUwMDAwLWNoYXJhY3RlciBzZXF1ZW5jZXMgKGUuZy4gJ1xcdTAwMDBcXHUwMDAwXFx1MDAwMCcpXG4gICAgLy8yKVRva2VuVHlwZS5XSElURVNQQUNFX0NIQVJBQ1RFUiAtIGFueSB3aGl0ZXNwYWNlL25ldy1saW5lIGNoYXJhY3RlciBzZXF1ZW5jZXMgKGUuZy4gJ1xcbiAgXFxyXFx0ICAgXFxmJylcbiAgICAvLzMpVG9rZW5UeXBlLkNIQVJBQ1RFUiAtIGFueSBjaGFyYWN0ZXIgc2VxdWVuY2Ugd2hpY2ggZG9uJ3QgYmVsb25nIHRvIGdyb3VwcyAxIGFuZCAyIChlLmcuICdhYmNkZWYxMjM0QEAjJCVeJylcbiAgICBfYXBwZW5kQ2hhclRvQ3VycmVudENoYXJhY3RlclRva2VuKHR5cGUsIGNoKSB7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbikge1xuICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuLnR5cGUgIT09IHR5cGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRMb2NhdGlvbiA9IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKDApO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50Q2hhcmFjdGVyVG9rZW4odGhpcy5jdXJyZW50TG9jYXRpb24pO1xuICAgICAgICAgICAgICAgIHRoaXMucHJlcHJvY2Vzc29yLmRyb3BQYXJzZWRDaHVuaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4uY2hhcnMgKz0gY2g7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NyZWF0ZUNoYXJhY3RlclRva2VuKHR5cGUsIGNoKTtcbiAgICB9XG4gICAgX2VtaXRDb2RlUG9pbnQoY3ApIHtcbiAgICAgICAgY29uc3QgdHlwZSA9IGlzV2hpdGVzcGFjZShjcClcbiAgICAgICAgICAgID8gVG9rZW5UeXBlLldISVRFU1BBQ0VfQ0hBUkFDVEVSXG4gICAgICAgICAgICA6IGNwID09PSAkLk5VTExcbiAgICAgICAgICAgICAgICA/IFRva2VuVHlwZS5OVUxMX0NIQVJBQ1RFUlxuICAgICAgICAgICAgICAgIDogVG9rZW5UeXBlLkNIQVJBQ1RFUjtcbiAgICAgICAgdGhpcy5fYXBwZW5kQ2hhclRvQ3VycmVudENoYXJhY3RlclRva2VuKHR5cGUsIFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKSk7XG4gICAgfVxuICAgIC8vTk9URTogdXNlZCB3aGVuIHdlIGVtaXQgY2hhcmFjdGVycyBleHBsaWNpdGx5LlxuICAgIC8vVGhpcyBpcyBhbHdheXMgZm9yIG5vbi13aGl0ZXNwYWNlIGFuZCBub24tbnVsbCBjaGFyYWN0ZXJzLCB3aGljaCBhbGxvd3MgdXMgdG8gYXZvaWQgYWRkaXRpb25hbCBjaGVja3MuXG4gICAgX2VtaXRDaGFycyhjaCkge1xuICAgICAgICB0aGlzLl9hcHBlbmRDaGFyVG9DdXJyZW50Q2hhcmFjdGVyVG9rZW4oVG9rZW5UeXBlLkNIQVJBQ1RFUiwgY2gpO1xuICAgIH1cbiAgICAvLyBDaGFyYWN0ZXIgcmVmZXJlbmNlIGhlbHBlcnNcbiAgICBfbWF0Y2hOYW1lZENoYXJhY3RlclJlZmVyZW5jZShjcCkge1xuICAgICAgICBsZXQgcmVzdWx0ID0gbnVsbDtcbiAgICAgICAgbGV0IGV4Y2VzcyA9IDA7XG4gICAgICAgIGxldCB3aXRob3V0U2VtaWNvbG9uID0gZmFsc2U7XG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBjdXJyZW50ID0gaHRtbERlY29kZVRyZWVbMF07IGkgPj0gMDsgY3AgPSB0aGlzLl9jb25zdW1lKCkpIHtcbiAgICAgICAgICAgIGkgPSBkZXRlcm1pbmVCcmFuY2goaHRtbERlY29kZVRyZWUsIGN1cnJlbnQsIGkgKyAxLCBjcCk7XG4gICAgICAgICAgICBpZiAoaSA8IDApXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBleGNlc3MgKz0gMTtcbiAgICAgICAgICAgIGN1cnJlbnQgPSBodG1sRGVjb2RlVHJlZVtpXTtcbiAgICAgICAgICAgIGNvbnN0IG1hc2tlZCA9IGN1cnJlbnQgJiBCaW5UcmllRmxhZ3MuVkFMVUVfTEVOR1RIO1xuICAgICAgICAgICAgLy8gSWYgdGhlIGJyYW5jaCBpcyBhIHZhbHVlLCBzdG9yZSBpdCBhbmQgY29udGludWVcbiAgICAgICAgICAgIGlmIChtYXNrZWQpIHtcbiAgICAgICAgICAgICAgICAvLyBUaGUgbWFzayBpcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIG9mIHRoZSB2YWx1ZSwgaW5jbHVkaW5nIHRoZSBjdXJyZW50IGJ5dGUuXG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWVMZW5ndGggPSAobWFza2VkID4+IDE0KSAtIDE7XG4gICAgICAgICAgICAgICAgLy8gQXR0cmlidXRlIHZhbHVlcyB0aGF0IGFyZW4ndCB0ZXJtaW5hdGVkIHByb3Blcmx5IGFyZW4ndCBwYXJzZWQsIGFuZCBzaG91bGRuJ3QgbGVhZCB0byBhIHBhcnNlciBlcnJvci5cbiAgICAgICAgICAgICAgICAvLyBTZWUgdGhlIGV4YW1wbGUgaW4gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvcGFyc2luZy5odG1sI25hbWVkLWNoYXJhY3Rlci1yZWZlcmVuY2Utc3RhdGVcbiAgICAgICAgICAgICAgICBpZiAoY3AgIT09ICQuU0VNSUNPTE9OICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2lzQ2hhcmFjdGVyUmVmZXJlbmNlSW5BdHRyaWJ1dGUoKSAmJlxuICAgICAgICAgICAgICAgICAgICBpc0VudGl0eUluQXR0cmlidXRlSW52YWxpZEVuZCh0aGlzLnByZXByb2Nlc3Nvci5wZWVrKDEpKSkge1xuICAgICAgICAgICAgICAgICAgICAvL05PVEU6IHdlIGRvbid0IGZsdXNoIGFsbCBjb25zdW1lZCBjb2RlIHBvaW50cyBoZXJlLCBhbmQgaW5zdGVhZCBzd2l0Y2ggYmFjayB0byB0aGUgb3JpZ2luYWwgc3RhdGUgYWZ0ZXJcbiAgICAgICAgICAgICAgICAgICAgLy9lbWl0dGluZyBhbiBhbXBlcnNhbmQuIFRoaXMgaXMgZmluZSwgYXMgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgd29uJ3QgYmUgcGFyc2VkIGRpZmZlcmVudGx5IGluIGF0dHJpYnV0ZXMuXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IFskLkFNUEVSU0FORF07XG4gICAgICAgICAgICAgICAgICAgIC8vIFNraXAgb3ZlciB0aGUgdmFsdWUuXG4gICAgICAgICAgICAgICAgICAgIGkgKz0gdmFsdWVMZW5ndGg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIGEgc3Vycm9nYXRlIHBhaXIsIGNvbnN1bWUgdGhlIG5leHQgdHdvIGJ5dGVzLlxuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVMZW5ndGggPT09IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFtodG1sRGVjb2RlVHJlZVtpXSAmIH5CaW5UcmllRmxhZ3MuVkFMVUVfTEVOR1RIXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdmFsdWVMZW5ndGggPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBbaHRtbERlY29kZVRyZWVbKytpXV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBbaHRtbERlY29kZVRyZWVbKytpXSwgaHRtbERlY29kZVRyZWVbKytpXV07XG4gICAgICAgICAgICAgICAgICAgIGV4Y2VzcyA9IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpdGhvdXRTZW1pY29sb24gPSBjcCAhPT0gJC5TRU1JQ09MT047XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZUxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgemVyby1sZW5ndGgsIHdlJ3JlIGRvbmUuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbnN1bWUoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3VuY29uc3VtZShleGNlc3MpO1xuICAgICAgICBpZiAod2l0aG91dFNlbWljb2xvbiAmJiAhdGhpcy5wcmVwcm9jZXNzb3IuZW5kT2ZDaHVua0hpdCkge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nU2VtaWNvbG9uQWZ0ZXJDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFdlIHdhbnQgdG8gZW1pdCB0aGUgZXJyb3IgYWJvdmUgb24gdGhlIGNvZGUgcG9pbnQgYWZ0ZXIgdGhlIGVudGl0eS5cbiAgICAgICAgLy8gV2UgYWx3YXlzIGNvbnN1bWUgb25lIGNvZGUgcG9pbnQgdG9vIG1hbnkgaW4gdGhlIGxvb3AsIGFuZCB3ZSB3YWl0IHRvXG4gICAgICAgIC8vIHVuY29uc3VtZSBpdCB1bnRpbCBhZnRlciB0aGUgZXJyb3IgaXMgZW1pdHRlZC5cbiAgICAgICAgdGhpcy5fdW5jb25zdW1lKDEpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBfaXNDaGFyYWN0ZXJSZWZlcmVuY2VJbkF0dHJpYnV0ZSgpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnJldHVyblN0YXRlID09PSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfRE9VQkxFX1FVT1RFRCB8fFxuICAgICAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9PT0gU3RhdGUuQVRUUklCVVRFX1ZBTFVFX1NJTkdMRV9RVU9URUQgfHxcbiAgICAgICAgICAgIHRoaXMucmV0dXJuU3RhdGUgPT09IFN0YXRlLkFUVFJJQlVURV9WQUxVRV9VTlFVT1RFRCk7XG4gICAgfVxuICAgIF9mbHVzaENvZGVQb2ludENvbnN1bWVkQXNDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApIHtcbiAgICAgICAgaWYgKHRoaXMuX2lzQ2hhcmFjdGVyUmVmZXJlbmNlSW5BdHRyaWJ1dGUoKSkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDYWxsaW5nIHN0YXRlcyB0aGlzIHdheSB0dXJucyBvdXQgdG8gYmUgbXVjaCBmYXN0ZXIgdGhhbiBhbnkgb3RoZXIgYXBwcm9hY2guXG4gICAgX2NhbGxTdGF0ZShjcCkge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuc3RhdGUpIHtcbiAgICAgICAgICAgIGNhc2UgU3RhdGUuREFUQToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlRGF0YShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlJDREFUQToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlUmNkYXRhKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuUkFXVEVYVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlUmF3dGV4dChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuUExBSU5URVhUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVQbGFpbnRleHQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5UQUdfT1BFTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlVGFnT3BlbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkVORF9UQUdfT1BFTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlRW5kVGFnT3BlbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlRBR19OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVUYWdOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuUkNEQVRBX0xFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVSY2RhdGFMZXNzVGhhblNpZ24oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5SQ0RBVEFfRU5EX1RBR19PUEVOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVSY2RhdGFFbmRUYWdPcGVuKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuUkNEQVRBX0VORF9UQUdfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlUmNkYXRhRW5kVGFnTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlJBV1RFWFRfTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVJhd3RleHRMZXNzVGhhblNpZ24oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5SQVdURVhUX0VORF9UQUdfT1BFTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlUmF3dGV4dEVuZFRhZ09wZW4oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5SQVdURVhUX0VORF9UQUdfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlUmF3dGV4dEVuZFRhZ05hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUxlc3NUaGFuU2lnbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VORF9UQUdfT1BFTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVuZFRhZ09wZW4oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9FTkRfVEFHX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFbmRUYWdOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlU3RhcnQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRfREFTSDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZVN0YXJ0RGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZERhc2goY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfREFTSDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWREYXNoRGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkTGVzc1RoYW5TaWduKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX09QRU46IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkRW5kVGFnT3BlbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZEVuZFRhZ05hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX1NUQVJUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlU3RhcnQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlZERhc2goY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIX0RBU0g6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkRGFzaERhc2goY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWRMZXNzVGhhblNpZ24oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX0VORDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZUVuZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmVmb3JlQXR0cmlidXRlTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkFUVFJJQlVURV9OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBdHRyaWJ1dGVOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQUZURVJfQVRUUklCVVRFX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUFmdGVyQXR0cmlidXRlTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfVkFMVUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJlZm9yZUF0dHJpYnV0ZVZhbHVlKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQVRUUklCVVRFX1ZBTFVFX0RPVUJMRV9RVU9URUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUF0dHJpYnV0ZVZhbHVlRG91YmxlUXVvdGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQVRUUklCVVRFX1ZBTFVFX1NJTkdMRV9RVU9URUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUF0dHJpYnV0ZVZhbHVlU2luZ2xlUXVvdGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQVRUUklCVVRFX1ZBTFVFX1VOUVVPVEVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBdHRyaWJ1dGVWYWx1ZVVucXVvdGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQUZURVJfQVRUUklCVVRFX1ZBTFVFX1FVT1RFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQWZ0ZXJBdHRyaWJ1dGVWYWx1ZVF1b3RlZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNFTEZfQ0xPU0lOR19TVEFSVF9UQUc6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNlbGZDbG9zaW5nU3RhcnRUYWcoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5CT0dVU19DT01NRU5UOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0NvbW1lbnQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5NQVJLVVBfREVDTEFSQVRJT05fT1BFTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlTWFya3VwRGVjbGFyYXRpb25PcGVuKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVF9TVEFSVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudFN0YXJ0KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVF9TVEFSVF9EQVNIOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50U3RhcnREYXNoKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNPTU1FTlRfTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRMZXNzVGhhblNpZ24oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkc6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRMZXNzVGhhblNpZ25CYW5nKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HX0RBU0g6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRMZXNzVGhhblNpZ25CYW5nRGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFOR19EQVNIX0RBU0g6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRMZXNzVGhhblNpZ25CYW5nRGFzaERhc2goY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DT01NRU5UX0VORF9EQVNIOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50RW5kRGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNPTU1FTlRfRU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50RW5kKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVF9FTkRfQkFORzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudEVuZEJhbmcoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5ET0NUWVBFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVEb2N0eXBlKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQkVGT1JFX0RPQ1RZUEVfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmVmb3JlRG9jdHlwZU5hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5ET0NUWVBFX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURvY3R5cGVOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQUZURVJfRE9DVFlQRV9OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBZnRlckRvY3R5cGVOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQUZURVJfRE9DVFlQRV9QVUJMSUNfS0VZV09SRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQWZ0ZXJEb2N0eXBlUHVibGljS2V5d29yZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkJFRk9SRV9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZWZvcmVEb2N0eXBlUHVibGljSWRlbnRpZmllcihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXJEb3VibGVRdW90ZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NJTkdMRV9RVU9URUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURvY3R5cGVQdWJsaWNJZGVudGlmaWVyU2luZ2xlUXVvdGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQUZURVJfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQWZ0ZXJEb2N0eXBlUHVibGljSWRlbnRpZmllcihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkJFVFdFRU5fRE9DVFlQRV9QVUJMSUNfQU5EX1NZU1RFTV9JREVOVElGSUVSUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmV0d2VlbkRvY3R5cGVQdWJsaWNBbmRTeXN0ZW1JZGVudGlmaWVycyhjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0tFWVdPUkQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUFmdGVyRG9jdHlwZVN5c3RlbUtleXdvcmQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5CRUZPUkVfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmVmb3JlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyRG91YmxlUXVvdGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVEb2N0eXBlU3lzdGVtSWRlbnRpZmllclNpbmdsZVF1b3RlZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVI6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUFmdGVyRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5CT0dVU19ET0NUWVBFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DREFUQV9TRUNUSU9OOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDZGF0YVNlY3Rpb24oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DREFUQV9TRUNUSU9OX0JSQUNLRVQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNkYXRhU2VjdGlvbkJyYWNrZXQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DREFUQV9TRUNUSU9OX0VORDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ2RhdGFTZWN0aW9uRW5kKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ0hBUkFDVEVSX1JFRkVSRU5DRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuTkFNRURfQ0hBUkFDVEVSX1JFRkVSRU5DRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BTUJJR1VPVVNfQU1QRVJTQU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBbWJpZ3VvdXNBbXBlcnNhbmQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5OVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0U6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5IRVhBREVNSUNBTF9DSEFSQUNURVJfUkVGRVJFTkNFX1NUQVJUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVIZXhhZGVtaWNhbENoYXJhY3RlclJlZmVyZW5jZVN0YXJ0KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuSEVYQURFTUlDQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlSGV4YWRlbWljYWxDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5ERUNJTUFMX0NIQVJBQ1RFUl9SRUZFUkVOQ0U6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURlY2ltYWxDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5OVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0VfRU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVOdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlRW5kKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gc3RhdGUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTdGF0ZSBtYWNoaW5lXG4gICAgLy8gRGF0YSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRGF0YShjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuVEFHX09QRU47XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQU1QRVJTQU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNIQVJBQ1RFUl9SRUZFUkVOQ0U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vICBSQ0RBVEEgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVJjZGF0YShjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuQU1QRVJTQU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9IFN0YXRlLlJDREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ0hBUkFDVEVSX1JFRkVSRU5DRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQ0RBVEFfTEVTU19USEFOX1NJR047XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFJBV1RFWFQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVJhd3RleHQoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJBV1RFWFRfTEVTU19USEFOX1NJR047XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUExBSU5URVhUIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVQbGFpbnRleHQoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBUYWcgb3BlbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlVGFnT3BlbihjcCkge1xuICAgICAgICBpZiAoaXNBc2NpaUxldHRlcihjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZVN0YXJ0VGFnVG9rZW4oKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5UQUdfTkFNRTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlVGFnTmFtZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJC5FWENMQU1BVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5NQVJLVVBfREVDTEFSQVRJT05fT1BFTjtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5TT0xJRFVTOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5FTkRfVEFHX09QRU47XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuUVVFU1RJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWRRdWVzdGlvbk1hcmtJbnN0ZWFkT2ZUYWdOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlQ29tbWVudFRva2VuKDEpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfQ09NTUVOVDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0NvbW1lbnQoY3ApO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkJlZm9yZVRhZ05hbWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuaW52YWxpZEZpcnN0Q2hhcmFjdGVyT2ZUYWdOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8Jyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURhdGEoY3ApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICB9XG4gICAgLy8gRW5kIHRhZyBvcGVuIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVFbmRUYWdPcGVuKGNwKSB7XG4gICAgICAgIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fY3JlYXRlRW5kVGFnVG9rZW4oKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5UQUdfTkFNRTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlVGFnTmFtZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdFbmRUYWdOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mQmVmb3JlVGFnTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPC8nKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuaW52YWxpZEZpcnN0Q2hhcmFjdGVyT2ZUYWdOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlQ29tbWVudFRva2VuKDIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfQ09NTUVOVDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0NvbW1lbnQoY3ApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICB9XG4gICAgLy8gVGFnIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVRhZ05hbWUoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuU09MSURVUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TRUxGX0NMT1NJTkdfU1RBUlRfVEFHO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudFRhZ1Rva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLnRhZ05hbWUgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5UYWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLnRhZ05hbWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoaXNBc2NpaVVwcGVyKGNwKSA/IHRvQXNjaWlMb3dlcihjcCkgOiBjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUkNEQVRBIGxlc3MtdGhhbiBzaWduIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVSY2RhdGFMZXNzVGhhblNpZ24oY3ApIHtcbiAgICAgICAgaWYgKGNwID09PSAkLlNPTElEVVMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQ0RBVEFfRU5EX1RBR19PUEVOO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8Jyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkNEQVRBO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVSY2RhdGEoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFJDREFUQSBlbmQgdGFnIG9wZW4gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVJjZGF0YUVuZFRhZ09wZW4oY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlMZXR0ZXIoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkNEQVRBX0VORF9UQUdfTkFNRTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlUmNkYXRhRW5kVGFnTmFtZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkNEQVRBO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVSY2RhdGEoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGhhbmRsZVNwZWNpYWxFbmRUYWcoX2NwKSB7XG4gICAgICAgIGlmICghdGhpcy5wcmVwcm9jZXNzb3Iuc3RhcnRzV2l0aCh0aGlzLmxhc3RTdGFydFRhZ05hbWUsIGZhbHNlKSkge1xuICAgICAgICAgICAgcmV0dXJuICF0aGlzLl9lbnN1cmVIaWJlcm5hdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NyZWF0ZUVuZFRhZ1Rva2VuKCk7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHRva2VuLnRhZ05hbWUgPSB0aGlzLmxhc3RTdGFydFRhZ05hbWU7XG4gICAgICAgIGNvbnN0IGNwID0gdGhpcy5wcmVwcm9jZXNzb3IucGVlayh0aGlzLmxhc3RTdGFydFRhZ05hbWUubGVuZ3RoKTtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkdmFuY2VCeSh0aGlzLmxhc3RTdGFydFRhZ05hbWUubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5TT0xJRFVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWR2YW5jZUJ5KHRoaXMubGFzdFN0YXJ0VGFnTmFtZS5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TRUxGX0NMT1NJTkdfU1RBUlRfVEFHO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkdmFuY2VCeSh0aGlzLmxhc3RTdGFydFRhZ05hbWUubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50VGFnVG9rZW4oKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICF0aGlzLl9lbnN1cmVIaWJlcm5hdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFJDREFUQSBlbmQgdGFnIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVJjZGF0YUVuZFRhZ05hbWUoY3ApIHtcbiAgICAgICAgaWYgKHRoaXMuaGFuZGxlU3BlY2lhbEVuZFRhZyhjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPC8nKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQ0RBVEE7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVJjZGF0YShjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUkFXVEVYVCBsZXNzLXRoYW4gc2lnbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlUmF3dGV4dExlc3NUaGFuU2lnbihjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuU09MSURVUykge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJBV1RFWFRfRU5EX1RBR19PUEVOO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8Jyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkFXVEVYVDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlUmF3dGV4dChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUkFXVEVYVCBlbmQgdGFnIG9wZW4gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVJhd3RleHRFbmRUYWdPcGVuKGNwKSB7XG4gICAgICAgIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJBV1RFWFRfRU5EX1RBR19OQU1FO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVSYXd0ZXh0RW5kVGFnTmFtZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkFXVEVYVDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlUmF3dGV4dChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUkFXVEVYVCBlbmQgdGFnIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVJhd3RleHRFbmRUYWdOYW1lKGNwKSB7XG4gICAgICAgIGlmICh0aGlzLmhhbmRsZVNwZWNpYWxFbmRUYWcoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkFXVEVYVDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlUmF3dGV4dChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgbGVzcy10aGFuIHNpZ24gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFMZXNzVGhhblNpZ24oY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNPTElEVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRU5EX1RBR19PUEVOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVYQ0xBTUFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCEnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlbmQgdGFnIG9wZW4gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFFbmRUYWdPcGVuKGNwKSB7XG4gICAgICAgIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VORF9UQUdfTkFNRTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVuZFRhZ05hbWUoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8LycpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlbmQgdGFnIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFFbmRUYWdOYW1lKGNwKSB7XG4gICAgICAgIGlmICh0aGlzLmhhbmRsZVNwZWNpYWxFbmRUYWcoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEE7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGEoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVzY2FwZSBzdGFydCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZVN0YXJ0KGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRfREFTSDtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnLScpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlc2NhcGUgc3RhcnQgZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZVN0YXJ0RGFzaChjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIX0RBU0g7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy0nKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YShjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZXNjYXBlZCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWQoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0g7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCctJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblNjcmlwdEh0bWxDb21tZW50TGlrZVRleHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVzY2FwZWQgZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWREYXNoKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIX0RBU0g7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCctJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblNjcmlwdEh0bWxDb21tZW50TGlrZVRleHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVzY2FwZWQgZGFzaCBkYXNoIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRXNjYXBlZERhc2hEYXNoKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy0nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPicpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluU2NyaXB0SHRtbENvbW1lbnRMaWtlVGV4dCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZXNjYXBlZCBsZXNzLXRoYW4gc2lnbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWRMZXNzVGhhblNpZ24oY3ApIHtcbiAgICAgICAgaWYgKGNwID09PSAkLlNPTElEVVMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfT1BFTjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8Jyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9TVEFSVDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZVN0YXJ0KGNwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCcpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlc2NhcGVkIGVuZCB0YWcgb3BlbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWRFbmRUYWdPcGVuKGNwKSB7XG4gICAgICAgIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19OQU1FO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZEVuZFRhZ05hbWUoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8LycpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlc2NhcGVkIGVuZCB0YWcgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWRFbmRUYWdOYW1lKGNwKSB7XG4gICAgICAgIGlmICh0aGlzLmhhbmRsZVNwZWNpYWxFbmRUYWcoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGUgc3RhcnQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVTdGFydChjcCkge1xuICAgICAgICBpZiAodGhpcy5wcmVwcm9jZXNzb3Iuc3RhcnRzV2l0aCgkJC5TQ1JJUFQsIGZhbHNlKSAmJlxuICAgICAgICAgICAgaXNTY3JpcHREYXRhRG91YmxlRXNjYXBlU2VxdWVuY2VFbmQodGhpcy5wcmVwcm9jZXNzb3IucGVlaygkJC5TQ1JJUFQubGVuZ3RoKSkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAkJC5TQ1JJUFQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KHRoaXMuX2NvbnN1bWUoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRUQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIXRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZWQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy0nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblNjcmlwdEh0bWxDb21tZW50TGlrZVRleHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGVkIGRhc2ggc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkRGFzaChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hfREFTSDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy0nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5TY3JpcHRIdG1sQ29tbWVudExpa2VUZXh0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZWQgZGFzaCBkYXNoIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlZERhc2hEYXNoKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy0nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJz4nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5TY3JpcHRIdG1sQ29tbWVudExpa2VUZXh0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZWQgbGVzcy10aGFuIHNpZ24gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkTGVzc1RoYW5TaWduKGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5TT0xJRFVTKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9FTkQ7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy8nKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGUgZW5kIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlRW5kKGNwKSB7XG4gICAgICAgIGlmICh0aGlzLnByZXByb2Nlc3Nvci5zdGFydHNXaXRoKCQkLlNDUklQVCwgZmFsc2UpICYmXG4gICAgICAgICAgICBpc1NjcmlwdERhdGFEb3VibGVFc2NhcGVTZXF1ZW5jZUVuZCh0aGlzLnByZXByb2Nlc3Nvci5wZWVrKCQkLlNDUklQVC5sZW5ndGgpKSkge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8ICQkLlNDUklQVC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQodGhpcy5fY29uc3VtZSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCF0aGlzLl9lbnN1cmVIaWJlcm5hdGlvbigpKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRUQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBCZWZvcmUgYXR0cmlidXRlIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUJlZm9yZUF0dHJpYnV0ZU5hbWUoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIC8vIElnbm9yZSB3aGl0ZXNwYWNlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuU09MSURVUzpcbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjpcbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQUZURVJfQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBZnRlckF0dHJpYnV0ZU5hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVRVUFMU19TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkRXF1YWxzU2lnbkJlZm9yZUF0dHJpYnV0ZU5hbWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUF0dHIoJz0nKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlQXR0cignJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQXR0cmlidXRlTmFtZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQXR0cmlidXRlIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUF0dHJpYnV0ZU5hbWUoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5TT0xJRFVTOlxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOlxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xlYXZlQXR0ck5hbWUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQUZURVJfQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBZnRlckF0dHJpYnV0ZU5hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVRVUFMU19TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGVhdmVBdHRyTmFtZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfQVRUUklCVVRFX1ZBTFVFO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOlxuICAgICAgICAgICAgY2FzZSAkLkFQT1NUUk9QSEU6XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWRDaGFyYWN0ZXJJbkF0dHJpYnV0ZU5hbWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIubmFtZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIubmFtZSArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci5uYW1lICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGlzQXNjaWlVcHBlcihjcCkgPyB0b0FzY2lpTG93ZXIoY3ApIDogY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEFmdGVyIGF0dHJpYnV0ZSBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBZnRlckF0dHJpYnV0ZU5hbWUoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIC8vIElnbm9yZSB3aGl0ZXNwYWNlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuU09MSURVUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TRUxGX0NMT1NJTkdfU1RBUlRfVEFHO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVRVUFMU19TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfVkFMVUU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50VGFnVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluVGFnKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVBdHRyKCcnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBdHRyaWJ1dGVOYW1lKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBCZWZvcmUgYXR0cmlidXRlIHZhbHVlIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVCZWZvcmVBdHRyaWJ1dGVWYWx1ZShjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfRE9VQkxFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFUVFJJQlVURV9WQUxVRV9TSU5HTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nQXR0cmlidXRlVmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRUYWdUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfVU5RVU9URUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBdHRyaWJ1dGVWYWx1ZVVucXVvdGVkKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBdHRyaWJ1dGUgdmFsdWUgKGRvdWJsZS1xdW90ZWQpIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBdHRyaWJ1dGVWYWx1ZURvdWJsZVF1b3RlZChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQUZURVJfQVRUUklCVVRFX1ZBTFVFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BTVBFUlNBTkQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJldHVyblN0YXRlID0gU3RhdGUuQVRUUklCVVRFX1ZBTFVFX0RPVUJMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNIQVJBQ1RFUl9SRUZFUkVOQ0U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5UYWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEF0dHJpYnV0ZSB2YWx1ZSAoc2luZ2xlLXF1b3RlZCkgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUF0dHJpYnV0ZVZhbHVlU2luZ2xlUXVvdGVkKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0FUVFJJQlVURV9WQUxVRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQU1QRVJTQU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9IFN0YXRlLkFUVFJJQlVURV9WQUxVRV9TSU5HTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DSEFSQUNURVJfUkVGRVJFTkNFO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluVGFnKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBdHRyaWJ1dGUgdmFsdWUgKHVucXVvdGVkKSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQXR0cmlidXRlVmFsdWVVbnF1b3RlZChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGVhdmVBdHRyVmFsdWUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkFNUEVSU0FORDoge1xuICAgICAgICAgICAgICAgIHRoaXMucmV0dXJuU3RhdGUgPSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfVU5RVU9URUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNIQVJBQ1RFUl9SRUZFUkVOQ0U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sZWF2ZUF0dHJWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRUYWdUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzpcbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOlxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOlxuICAgICAgICAgICAgY2FzZSAkLkVRVUFMU19TSUdOOlxuICAgICAgICAgICAgY2FzZSAkLkdSQVZFX0FDQ0VOVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZENoYXJhY3RlckluVW5xdW90ZWRBdHRyaWJ1dGVWYWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblRhZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQWZ0ZXIgYXR0cmlidXRlIHZhbHVlIChxdW90ZWQpIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBZnRlckF0dHJpYnV0ZVZhbHVlUXVvdGVkKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sZWF2ZUF0dHJWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuU09MSURVUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xlYXZlQXR0clZhbHVlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNFTEZfQ0xPU0lOR19TVEFSVF9UQUc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sZWF2ZUF0dHJWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRUYWdUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5UYWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VCZXR3ZWVuQXR0cmlidXRlcyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJlZm9yZUF0dHJpYnV0ZU5hbWUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNlbGYtY2xvc2luZyBzdGFydCB0YWcgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNlbGZDbG9zaW5nU3RhcnRUYWcoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgICAgICAgICB0b2tlbi5zZWxmQ2xvc2luZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudFRhZ1Rva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblRhZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkU29saWR1c0luVGFnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmVmb3JlQXR0cmlidXRlTmFtZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQm9ndXMgY29tbWVudCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQm9ndXNDb21tZW50KGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRDb21tZW50KHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIE1hcmt1cCBkZWNsYXJhdGlvbiBvcGVuIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVNYXJrdXBEZWNsYXJhdGlvbk9wZW4oY3ApIHtcbiAgICAgICAgaWYgKHRoaXMuX2NvbnN1bWVTZXF1ZW5jZUlmTWF0Y2goJCQuREFTSF9EQVNILCB0cnVlKSkge1xuICAgICAgICAgICAgdGhpcy5fY3JlYXRlQ29tbWVudFRva2VuKCQkLkRBU0hfREFTSC5sZW5ndGggKyAxKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX1NUQVJUO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuX2NvbnN1bWVTZXF1ZW5jZUlmTWF0Y2goJCQuRE9DVFlQRSwgZmFsc2UpKSB7XG4gICAgICAgICAgICAvLyBOT1RFOiBEb2N0eXBlcyB0b2tlbnMgYXJlIGNyZWF0ZWQgd2l0aG91dCBmaXhlZCBvZmZzZXRzLiBXZSBrZWVwIHRyYWNrIG9mIHRoZSBtb21lbnQgYSBkb2N0eXBlICptaWdodCogc3RhcnQgaGVyZS5cbiAgICAgICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uID0gdGhpcy5nZXRDdXJyZW50TG9jYXRpb24oJCQuRE9DVFlQRS5sZW5ndGggKyAxKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuX2NvbnN1bWVTZXF1ZW5jZUlmTWF0Y2goJCQuQ0RBVEFfU1RBUlQsIHRydWUpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pbkZvcmVpZ25Ob2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNEQVRBX1NFQ1RJT047XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmNkYXRhSW5IdG1sQ29udGVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlQ29tbWVudFRva2VuKCQkLkNEQVRBX1NUQVJULmxlbmd0aCArIDEpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgPSAnW0NEQVRBWyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0NPTU1FTlQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy9OT1RFOiBTZXF1ZW5jZSBsb29rdXBzIGNhbiBiZSBhYnJ1cHRlZCBieSBoaWJlcm5hdGlvbi4gSW4gdGhhdCBjYXNlLCBsb29rdXBcbiAgICAgICAgLy9yZXN1bHRzIGFyZSBubyBsb25nZXIgdmFsaWQgYW5kIHdlIHdpbGwgbmVlZCB0byBzdGFydCBvdmVyLlxuICAgICAgICBlbHNlIGlmICghdGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKSkge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5pbmNvcnJlY3RseU9wZW5lZENvbW1lbnQpO1xuICAgICAgICAgICAgdGhpcy5fY3JlYXRlQ29tbWVudFRva2VuKDIpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0NPTU1FTlQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzQ29tbWVudChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBzdGFydCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudFN0YXJ0KGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9TVEFSVF9EQVNIO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5hYnJ1cHRDbG9zaW5nT2ZFbXB0eUNvbW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBzdGFydCBkYXNoIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDb21tZW50U3RhcnREYXNoKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9FTkQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmFicnVwdENsb3NpbmdPZkVtcHR5Q29tbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Db21tZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSAnLSc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDb21tZW50IHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDb21tZW50KGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9FTkRfREFTSDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJzwnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluQ29tbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENvbW1lbnQgbGVzcy10aGFuIHNpZ24gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNvbW1lbnRMZXNzVGhhblNpZ24oY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkVYQ0xBTUFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9ICchJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSAnPCc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDb21tZW50IGxlc3MtdGhhbiBzaWduIGJhbmcgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNvbW1lbnRMZXNzVGhhblNpZ25CYW5nKGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkdfREFTSDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50KGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDb21tZW50IGxlc3MtdGhhbiBzaWduIGJhbmcgZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudExlc3NUaGFuU2lnbkJhbmdEYXNoKGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkdfREFTSF9EQVNIO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfRU5EX0RBU0g7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRFbmREYXNoKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDb21tZW50IGxlc3MtdGhhbiBzaWduIGJhbmcgZGFzaCBkYXNoIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDb21tZW50TGVzc1RoYW5TaWduQmFuZ0Rhc2hEYXNoKGNwKSB7XG4gICAgICAgIGlmIChjcCAhPT0gJC5HUkVBVEVSX1RIQU5fU0lHTiAmJiBjcCAhPT0gJC5FT0YpIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIubmVzdGVkQ29tbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfRU5EO1xuICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRFbmQoY3ApO1xuICAgIH1cbiAgICAvLyBDb21tZW50IGVuZCBkYXNoIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDb21tZW50RW5kRGFzaChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfRU5EO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Db21tZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSAnLSc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDb21tZW50IGVuZCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudEVuZChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRVhDTEFNQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0VORF9CQU5HO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJy0nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Db21tZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSAnLS0nO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBlbmQgYmFuZyBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudEVuZEJhbmcoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJy0tISc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfRU5EX0RBU0g7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmluY29ycmVjdGx5Q2xvc2VkQ29tbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Db21tZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSAnLS0hJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVDtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIERPQ1RZUEUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZURvY3R5cGUoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfRE9DVFlQRV9OQU1FO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9ET0NUWVBFX05BTUU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZWZvcmVEb2N0eXBlTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbihudWxsKTtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nV2hpdGVzcGFjZUJlZm9yZURvY3R5cGVOYW1lKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0RPQ1RZUEVfTkFNRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJlZm9yZURvY3R5cGVOYW1lKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBCZWZvcmUgRE9DVFlQRSBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVCZWZvcmVEb2N0eXBlTmFtZShjcCkge1xuICAgICAgICBpZiAoaXNBc2NpaVVwcGVyKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fY3JlYXRlRG9jdHlwZVRva2VuKFN0cmluZy5mcm9tQ2hhckNvZGUodG9Bc2NpaUxvd2VyKGNwKSkpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfTkFNRTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZ25vcmUgd2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbihSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9OQU1FO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ0RvY3R5cGVOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlRG9jdHlwZVRva2VuKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlRG9jdHlwZVRva2VuKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbihTdHJpbmcuZnJvbUNvZGVQb2ludChjcCkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9OQU1FO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICB9XG4gICAgLy8gRE9DVFlQRSBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVEb2N0eXBlTmFtZShjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0RPQ1RZUEVfTkFNRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdG9rZW4ubmFtZSArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4ubmFtZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChpc0FzY2lpVXBwZXIoY3ApID8gdG9Bc2NpaUxvd2VyKGNwKSA6IGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBZnRlciBET0NUWVBFIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUFmdGVyRG9jdHlwZU5hbWUoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIC8vIElnbm9yZSB3aGl0ZXNwYWNlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2NvbnN1bWVTZXF1ZW5jZUlmTWF0Y2goJCQuUFVCTElDLCBmYWxzZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0RPQ1RZUEVfUFVCTElDX0tFWVdPUkQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuX2NvbnN1bWVTZXF1ZW5jZUlmTWF0Y2goJCQuU1lTVEVNLCBmYWxzZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0tFWVdPUkQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vTk9URTogc2VxdWVuY2UgbG9va3VwIGNhbiBiZSBhYnJ1cHRlZCBieSBoaWJlcm5hdGlvbi4gSW4gdGhhdCBjYXNlIGxvb2t1cFxuICAgICAgICAgICAgICAgIC8vcmVzdWx0cyBhcmUgbm8gbG9uZ2VyIHZhbGlkIGFuZCB3ZSB3aWxsIG5lZWQgdG8gc3RhcnQgb3Zlci5cbiAgICAgICAgICAgICAgICBlbHNlIGlmICghdGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmludmFsaWRDaGFyYWN0ZXJTZXF1ZW5jZUFmdGVyRG9jdHlwZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19ET0NUWVBFO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzRG9jdHlwZShjcCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEFmdGVyIERPQ1RZUEUgcHVibGljIGtleXdvcmQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUFmdGVyRG9jdHlwZVB1YmxpY0tleXdvcmQoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVQdWJsaWNLZXl3b3JkKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5wdWJsaWNJZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX0RPVUJMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVQdWJsaWNLZXl3b3JkKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5wdWJsaWNJZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NJTkdMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdEb2N0eXBlUHVibGljSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVQdWJsaWNJZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0RPQ1RZUEU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEJlZm9yZSBET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVCZWZvcmVEb2N0eXBlUHVibGljSWRlbnRpZmllcihjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRva2VuLnB1YmxpY0lkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdG9rZW4ucHVibGljSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nRG9jdHlwZVB1YmxpY0lkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nUXVvdGVCZWZvcmVEb2N0eXBlUHVibGljSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19ET0NUWVBFO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNEb2N0eXBlKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIChkb3VibGUtcXVvdGVkKSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXJEb3VibGVRdW90ZWQoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLnB1YmxpY0lkICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuYWJydXB0RG9jdHlwZVB1YmxpY0lkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4ucHVibGljSWQgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIERPQ1RZUEUgcHVibGljIGlkZW50aWZpZXIgKHNpbmdsZS1xdW90ZWQpIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVEb2N0eXBlUHVibGljSWRlbnRpZmllclNpbmdsZVF1b3RlZChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5wdWJsaWNJZCArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmFicnVwdERvY3R5cGVQdWJsaWNJZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLnB1YmxpY0lkICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBZnRlciBET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBZnRlckRvY3R5cGVQdWJsaWNJZGVudGlmaWVyKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVUV0VFTl9ET0NUWVBFX1BVQkxJQ19BTkRfU1lTVEVNX0lERU5USUZJRVJTO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nV2hpdGVzcGFjZUJldHdlZW5Eb2N0eXBlUHVibGljQW5kU3lzdGVtSWRlbnRpZmllcnMpO1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nV2hpdGVzcGFjZUJldHdlZW5Eb2N0eXBlUHVibGljQW5kU3lzdGVtSWRlbnRpZmllcnMpO1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0RPQ1RZUEU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEJldHdlZW4gRE9DVFlQRSBwdWJsaWMgYW5kIHN5c3RlbSBpZGVudGlmaWVycyBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQmV0d2VlbkRvY3R5cGVQdWJsaWNBbmRTeXN0ZW1JZGVudGlmaWVycyhjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1F1b3RlQmVmb3JlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfRE9DVFlQRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzRG9jdHlwZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQWZ0ZXIgRE9DVFlQRSBzeXN0ZW0ga2V5d29yZCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQWZ0ZXJEb2N0eXBlU3lzdGVtS2V5d29yZChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nV2hpdGVzcGFjZUFmdGVyRG9jdHlwZVN5c3RlbUtleXdvcmQpO1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nV2hpdGVzcGFjZUFmdGVyRG9jdHlwZVN5c3RlbUtleXdvcmQpO1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ0RvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1F1b3RlQmVmb3JlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfRE9DVFlQRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzRG9jdHlwZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQmVmb3JlIERPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgd2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkFQT1NUUk9QSEU6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NJTkdMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdEb2N0eXBlU3lzdGVtSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0RPQ1RZUEU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIERPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgKGRvdWJsZS1xdW90ZWQpIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVEb2N0eXBlU3lzdGVtSWRlbnRpZmllckRvdWJsZVF1b3RlZChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQUZURVJfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5hYnJ1cHREb2N0eXBlU3lzdGVtSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gRE9DVFlQRSBzeXN0ZW0gaWRlbnRpZmllciAoc2luZ2xlLXF1b3RlZCkgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyU2luZ2xlUXVvdGVkKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuYWJydXB0RG9jdHlwZVN5c3RlbUlkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEFmdGVyIERPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUFmdGVyRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIC8vIElnbm9yZSB3aGl0ZXNwYWNlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkQ2hhcmFjdGVyQWZ0ZXJEb2N0eXBlU3lzdGVtSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0RPQ1RZUEU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEJvZ3VzIERPQ1RZUEUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUJvZ3VzRG9jdHlwZShjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ0RBVEEgc2VjdGlvbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ2RhdGFTZWN0aW9uKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5SSUdIVF9TUVVBUkVfQlJBQ0tFVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DREFUQV9TRUNUSU9OX0JSQUNLRVQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkNkYXRhKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDREFUQSBzZWN0aW9uIGJyYWNrZXQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNkYXRhU2VjdGlvbkJyYWNrZXQoY3ApIHtcbiAgICAgICAgaWYgKGNwID09PSAkLlJJR0hUX1NRVUFSRV9CUkFDS0VUKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ0RBVEFfU0VDVElPTl9FTkQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJ10nKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DREFUQV9TRUNUSU9OO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVDZGF0YVNlY3Rpb24oY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENEQVRBIHNlY3Rpb24gZW5kIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDZGF0YVNlY3Rpb25FbmQoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUklHSFRfU1FVQVJFX0JSQUNLRVQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJ10nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJ11dJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNEQVRBX1NFQ1RJT047XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDZGF0YVNlY3Rpb24oY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENoYXJhY3RlciByZWZlcmVuY2Ugc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNoYXJhY3RlclJlZmVyZW5jZShjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuTlVNQkVSX1NJR04pIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5OVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNBc2NpaUFscGhhTnVtZXJpYyhjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5OQU1FRF9DSEFSQUNURVJfUkVGRVJFTkNFO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVOYW1lZENoYXJhY3RlclJlZmVyZW5jZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9mbHVzaENvZGVQb2ludENvbnN1bWVkQXNDaGFyYWN0ZXJSZWZlcmVuY2UoJC5BTVBFUlNBTkQpO1xuICAgICAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZSh0aGlzLnJldHVyblN0YXRlLCBjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gTmFtZWQgY2hhcmFjdGVyIHJlZmVyZW5jZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApIHtcbiAgICAgICAgY29uc3QgbWF0Y2hSZXN1bHQgPSB0aGlzLl9tYXRjaE5hbWVkQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKTtcbiAgICAgICAgLy9OT1RFOiBNYXRjaGluZyBjYW4gYmUgYWJydXB0ZWQgYnkgaGliZXJuYXRpb24uIEluIHRoYXQgY2FzZSwgbWF0Y2hcbiAgICAgICAgLy9yZXN1bHRzIGFyZSBubyBsb25nZXIgdmFsaWQgYW5kIHdlIHdpbGwgbmVlZCB0byBzdGFydCBvdmVyLlxuICAgICAgICBpZiAodGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKSkge1xuICAgICAgICAgICAgLy8gU3RheSBpbiB0aGUgc3RhdGUsIHRyeSBhZ2Fpbi5cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChtYXRjaFJlc3VsdCkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXRjaFJlc3VsdC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZShtYXRjaFJlc3VsdFtpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gdGhpcy5yZXR1cm5TdGF0ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZSgkLkFNUEVSU0FORCk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQU1CSUdVT1VTX0FNUEVSU0FORDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBbWJpZ3VvcyBhbXBlcnNhbmQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUFtYmlndW91c0FtcGVyc2FuZChjcCkge1xuICAgICAgICBpZiAoaXNBc2NpaUFscGhhTnVtZXJpYyhjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoY3AgPT09ICQuU0VNSUNPTE9OKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmtub3duTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZSh0aGlzLnJldHVyblN0YXRlLCBjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gTnVtZXJpYyBjaGFyYWN0ZXIgcmVmZXJlbmNlIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVOdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKSB7XG4gICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSAwO1xuICAgICAgICBpZiAoY3AgPT09ICQuTEFUSU5fU01BTExfWCB8fCBjcCA9PT0gJC5MQVRJTl9DQVBJVEFMX1gpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5IRVhBREVNSUNBTF9DSEFSQUNURVJfUkVGRVJFTkNFX1NUQVJUO1xuICAgICAgICB9XG4gICAgICAgIC8vIElubGluZWQgZGVjaW1hbCBjaGFyYWN0ZXIgcmVmZXJlbmNlIHN0YXJ0IHN0YXRlXG4gICAgICAgIGVsc2UgaWYgKGlzQXNjaWlEaWdpdChjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ERUNJTUFMX0NIQVJBQ1RFUl9SRUZFUkVOQ0U7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZURlY2ltYWxDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5hYnNlbmNlT2ZEaWdpdHNJbk51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICAgICAgdGhpcy5fZmx1c2hDb2RlUG9pbnRDb25zdW1lZEFzQ2hhcmFjdGVyUmVmZXJlbmNlKCQuQU1QRVJTQU5EKTtcbiAgICAgICAgICAgIHRoaXMuX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZSgkLk5VTUJFUl9TSUdOKTtcbiAgICAgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUodGhpcy5yZXR1cm5TdGF0ZSwgY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEhleGFkZW1pY2FsIGNoYXJhY3RlciByZWZlcmVuY2Ugc3RhcnQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUhleGFkZW1pY2FsQ2hhcmFjdGVyUmVmZXJlbmNlU3RhcnQoY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlIZXhEaWdpdChjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5IRVhBREVNSUNBTF9DSEFSQUNURVJfUkVGRVJFTkNFO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVIZXhhZGVtaWNhbENoYXJhY3RlclJlZmVyZW5jZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmFic2VuY2VPZkRpZ2l0c0luTnVtZXJpY0NoYXJhY3RlclJlZmVyZW5jZSk7XG4gICAgICAgICAgICB0aGlzLl9mbHVzaENvZGVQb2ludENvbnN1bWVkQXNDaGFyYWN0ZXJSZWZlcmVuY2UoJC5BTVBFUlNBTkQpO1xuICAgICAgICAgICAgdGhpcy5fZmx1c2hDb2RlUG9pbnRDb25zdW1lZEFzQ2hhcmFjdGVyUmVmZXJlbmNlKCQuTlVNQkVSX1NJR04pO1xuICAgICAgICAgICAgdGhpcy5fdW5jb25zdW1lKDIpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IHRoaXMucmV0dXJuU3RhdGU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gSGV4YWRlbWljYWwgY2hhcmFjdGVyIHJlZmVyZW5jZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlSGV4YWRlbWljYWxDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlVcHBlckhleERpZ2l0KGNwKSkge1xuICAgICAgICAgICAgdGhpcy5jaGFyUmVmQ29kZSA9IHRoaXMuY2hhclJlZkNvZGUgKiAxNiArIGNwIC0gMHgzNztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc0FzY2lpTG93ZXJIZXhEaWdpdChjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSB0aGlzLmNoYXJSZWZDb2RlICogMTYgKyBjcCAtIDB4NTc7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNBc2NpaURpZ2l0KGNwKSkge1xuICAgICAgICAgICAgdGhpcy5jaGFyUmVmQ29kZSA9IHRoaXMuY2hhclJlZkNvZGUgKiAxNiArIGNwIC0gMHgzMDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChjcCA9PT0gJC5TRU1JQ09MT04pIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5OVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0VfRU5EO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nU2VtaWNvbG9uQWZ0ZXJDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLk5VTUVSSUNfQ0hBUkFDVEVSX1JFRkVSRU5DRV9FTkQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2VFbmQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIERlY2ltYWwgY2hhcmFjdGVyIHJlZmVyZW5jZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRGVjaW1hbENoYXJhY3RlclJlZmVyZW5jZShjcCkge1xuICAgICAgICBpZiAoaXNBc2NpaURpZ2l0KGNwKSkge1xuICAgICAgICAgICAgdGhpcy5jaGFyUmVmQ29kZSA9IHRoaXMuY2hhclJlZkNvZGUgKiAxMCArIGNwIC0gMHgzMDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChjcCA9PT0gJC5TRU1JQ09MT04pIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5OVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0VfRU5EO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nU2VtaWNvbG9uQWZ0ZXJDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLk5VTUVSSUNfQ0hBUkFDVEVSX1JFRkVSRU5DRV9FTkQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2VFbmQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIE51bWVyaWMgY2hhcmFjdGVyIHJlZmVyZW5jZSBlbmQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2VFbmQoY3ApIHtcbiAgICAgICAgaWYgKHRoaXMuY2hhclJlZkNvZGUgPT09ICQuTlVMTCkge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5udWxsQ2hhcmFjdGVyUmVmZXJlbmNlKTtcbiAgICAgICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSAkLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLmNoYXJSZWZDb2RlID4gMTExNDExMSkge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5jaGFyYWN0ZXJSZWZlcmVuY2VPdXRzaWRlVW5pY29kZVJhbmdlKTtcbiAgICAgICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSAkLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc1N1cnJvZ2F0ZSh0aGlzLmNoYXJSZWZDb2RlKSkge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5zdXJyb2dhdGVDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICAgICAgdGhpcy5jaGFyUmVmQ29kZSA9ICQuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzVW5kZWZpbmVkQ29kZVBvaW50KHRoaXMuY2hhclJlZkNvZGUpKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm5vbmNoYXJhY3RlckNoYXJhY3RlclJlZmVyZW5jZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNDb250cm9sQ29kZVBvaW50KHRoaXMuY2hhclJlZkNvZGUpIHx8IHRoaXMuY2hhclJlZkNvZGUgPT09ICQuQ0FSUklBR0VfUkVUVVJOKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmNvbnRyb2xDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICAgICAgY29uc3QgcmVwbGFjZW1lbnQgPSBDMV9DT05UUk9MU19SRUZFUkVOQ0VfUkVQTEFDRU1FTlRTLmdldCh0aGlzLmNoYXJSZWZDb2RlKTtcbiAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFyUmVmQ29kZSA9IHJlcGxhY2VtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZSh0aGlzLmNoYXJSZWZDb2RlKTtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZSh0aGlzLnJldHVyblN0YXRlLCBjcCk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwgImltcG9ydCB7IFRBR19JRCBhcyAkLCBOUywgaXNOdW1iZXJlZEhlYWRlciB9IGZyb20gJy4uL2NvbW1vbi9odG1sLmpzJztcbi8vRWxlbWVudCB1dGlsc1xuY29uc3QgSU1QTElDSVRfRU5EX1RBR19SRVFVSVJFRCA9IG5ldyBTZXQoWyQuREQsICQuRFQsICQuTEksICQuT1BUR1JPVVAsICQuT1BUSU9OLCAkLlAsICQuUkIsICQuUlAsICQuUlQsICQuUlRDXSk7XG5jb25zdCBJTVBMSUNJVF9FTkRfVEFHX1JFUVVJUkVEX1RIT1JPVUdITFkgPSBuZXcgU2V0KFtcbiAgICAuLi5JTVBMSUNJVF9FTkRfVEFHX1JFUVVJUkVELFxuICAgICQuQ0FQVElPTixcbiAgICAkLkNPTEdST1VQLFxuICAgICQuVEJPRFksXG4gICAgJC5URCxcbiAgICAkLlRGT09ULFxuICAgICQuVEgsXG4gICAgJC5USEVBRCxcbiAgICAkLlRSLFxuXSk7XG5jb25zdCBTQ09QSU5HX0VMRU1FTlRfTlMgPSBuZXcgTWFwKFtcbiAgICBbJC5BUFBMRVQsIE5TLkhUTUxdLFxuICAgIFskLkNBUFRJT04sIE5TLkhUTUxdLFxuICAgIFskLkhUTUwsIE5TLkhUTUxdLFxuICAgIFskLk1BUlFVRUUsIE5TLkhUTUxdLFxuICAgIFskLk9CSkVDVCwgTlMuSFRNTF0sXG4gICAgWyQuVEFCTEUsIE5TLkhUTUxdLFxuICAgIFskLlRELCBOUy5IVE1MXSxcbiAgICBbJC5URU1QTEFURSwgTlMuSFRNTF0sXG4gICAgWyQuVEgsIE5TLkhUTUxdLFxuICAgIFskLkFOTk9UQVRJT05fWE1MLCBOUy5NQVRITUxdLFxuICAgIFskLk1JLCBOUy5NQVRITUxdLFxuICAgIFskLk1OLCBOUy5NQVRITUxdLFxuICAgIFskLk1PLCBOUy5NQVRITUxdLFxuICAgIFskLk1TLCBOUy5NQVRITUxdLFxuICAgIFskLk1URVhULCBOUy5NQVRITUxdLFxuICAgIFskLkRFU0MsIE5TLlNWR10sXG4gICAgWyQuRk9SRUlHTl9PQkpFQ1QsIE5TLlNWR10sXG4gICAgWyQuVElUTEUsIE5TLlNWR10sXG5dKTtcbmNvbnN0IE5BTUVEX0hFQURFUlMgPSBbJC5IMSwgJC5IMiwgJC5IMywgJC5INCwgJC5INSwgJC5INl07XG5jb25zdCBUQUJMRV9ST1dfQ09OVEVYVCA9IFskLlRSLCAkLlRFTVBMQVRFLCAkLkhUTUxdO1xuY29uc3QgVEFCTEVfQk9EWV9DT05URVhUID0gWyQuVEJPRFksICQuVEZPT1QsICQuVEhFQUQsICQuVEVNUExBVEUsICQuSFRNTF07XG5jb25zdCBUQUJMRV9DT05URVhUID0gWyQuVEFCTEUsICQuVEVNUExBVEUsICQuSFRNTF07XG5jb25zdCBUQUJMRV9DRUxMUyA9IFskLlRELCAkLlRIXTtcbi8vU3RhY2sgb2Ygb3BlbiBlbGVtZW50c1xuZXhwb3J0IGNsYXNzIE9wZW5FbGVtZW50U3RhY2sge1xuICAgIGdldCBjdXJyZW50VG1wbENvbnRlbnRPck5vZGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0luVGVtcGxhdGUoKSA/IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGVtcGxhdGVDb250ZW50KHRoaXMuY3VycmVudCkgOiB0aGlzLmN1cnJlbnQ7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKGRvY3VtZW50LCB0cmVlQWRhcHRlciwgaGFuZGxlcikge1xuICAgICAgICB0aGlzLnRyZWVBZGFwdGVyID0gdHJlZUFkYXB0ZXI7XG4gICAgICAgIHRoaXMuaGFuZGxlciA9IGhhbmRsZXI7XG4gICAgICAgIHRoaXMuaXRlbXMgPSBbXTtcbiAgICAgICAgdGhpcy50YWdJRHMgPSBbXTtcbiAgICAgICAgdGhpcy5zdGFja1RvcCA9IC0xO1xuICAgICAgICB0aGlzLnRtcGxDb3VudCA9IDA7XG4gICAgICAgIHRoaXMuY3VycmVudFRhZ0lkID0gJC5VTktOT1dOO1xuICAgICAgICB0aGlzLmN1cnJlbnQgPSBkb2N1bWVudDtcbiAgICB9XG4gICAgLy9JbmRleCBvZiBlbGVtZW50XG4gICAgX2luZGV4T2YoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pdGVtcy5sYXN0SW5kZXhPZihlbGVtZW50LCB0aGlzLnN0YWNrVG9wKTtcbiAgICB9XG4gICAgLy9VcGRhdGUgY3VycmVudCBlbGVtZW50XG4gICAgX2lzSW5UZW1wbGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFRhZ0lkID09PSAkLlRFTVBMQVRFICYmIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuY3VycmVudCkgPT09IE5TLkhUTUw7XG4gICAgfVxuICAgIF91cGRhdGVDdXJyZW50RWxlbWVudCgpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50ID0gdGhpcy5pdGVtc1t0aGlzLnN0YWNrVG9wXTtcbiAgICAgICAgdGhpcy5jdXJyZW50VGFnSWQgPSB0aGlzLnRhZ0lEc1t0aGlzLnN0YWNrVG9wXTtcbiAgICB9XG4gICAgLy9NdXRhdGlvbnNcbiAgICBwdXNoKGVsZW1lbnQsIHRhZ0lEKSB7XG4gICAgICAgIHRoaXMuc3RhY2tUb3ArKztcbiAgICAgICAgdGhpcy5pdGVtc1t0aGlzLnN0YWNrVG9wXSA9IGVsZW1lbnQ7XG4gICAgICAgIHRoaXMuY3VycmVudCA9IGVsZW1lbnQ7XG4gICAgICAgIHRoaXMudGFnSURzW3RoaXMuc3RhY2tUb3BdID0gdGFnSUQ7XG4gICAgICAgIHRoaXMuY3VycmVudFRhZ0lkID0gdGFnSUQ7XG4gICAgICAgIGlmICh0aGlzLl9pc0luVGVtcGxhdGUoKSkge1xuICAgICAgICAgICAgdGhpcy50bXBsQ291bnQrKztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhbmRsZXIub25JdGVtUHVzaChlbGVtZW50LCB0YWdJRCwgdHJ1ZSk7XG4gICAgfVxuICAgIHBvcCgpIHtcbiAgICAgICAgY29uc3QgcG9wcGVkID0gdGhpcy5jdXJyZW50O1xuICAgICAgICBpZiAodGhpcy50bXBsQ291bnQgPiAwICYmIHRoaXMuX2lzSW5UZW1wbGF0ZSgpKSB7XG4gICAgICAgICAgICB0aGlzLnRtcGxDb3VudC0tO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RhY2tUb3AtLTtcbiAgICAgICAgdGhpcy5fdXBkYXRlQ3VycmVudEVsZW1lbnQoKTtcbiAgICAgICAgdGhpcy5oYW5kbGVyLm9uSXRlbVBvcChwb3BwZWQsIHRydWUpO1xuICAgIH1cbiAgICByZXBsYWNlKG9sZEVsZW1lbnQsIG5ld0VsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5faW5kZXhPZihvbGRFbGVtZW50KTtcbiAgICAgICAgdGhpcy5pdGVtc1tpZHhdID0gbmV3RWxlbWVudDtcbiAgICAgICAgaWYgKGlkeCA9PT0gdGhpcy5zdGFja1RvcCkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50ID0gbmV3RWxlbWVudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpbnNlcnRBZnRlcihyZWZlcmVuY2VFbGVtZW50LCBuZXdFbGVtZW50LCBuZXdFbGVtZW50SUQpIHtcbiAgICAgICAgY29uc3QgaW5zZXJ0aW9uSWR4ID0gdGhpcy5faW5kZXhPZihyZWZlcmVuY2VFbGVtZW50KSArIDE7XG4gICAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKGluc2VydGlvbklkeCwgMCwgbmV3RWxlbWVudCk7XG4gICAgICAgIHRoaXMudGFnSURzLnNwbGljZShpbnNlcnRpb25JZHgsIDAsIG5ld0VsZW1lbnRJRCk7XG4gICAgICAgIHRoaXMuc3RhY2tUb3ArKztcbiAgICAgICAgaWYgKGluc2VydGlvbklkeCA9PT0gdGhpcy5zdGFja1RvcCkge1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlQ3VycmVudEVsZW1lbnQoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhbmRsZXIub25JdGVtUHVzaCh0aGlzLmN1cnJlbnQsIHRoaXMuY3VycmVudFRhZ0lkLCBpbnNlcnRpb25JZHggPT09IHRoaXMuc3RhY2tUb3ApO1xuICAgIH1cbiAgICBwb3BVbnRpbFRhZ05hbWVQb3BwZWQodGFnTmFtZSkge1xuICAgICAgICBsZXQgdGFyZ2V0SWR4ID0gdGhpcy5zdGFja1RvcCArIDE7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIHRhcmdldElkeCA9IHRoaXMudGFnSURzLmxhc3RJbmRleE9mKHRhZ05hbWUsIHRhcmdldElkeCAtIDEpO1xuICAgICAgICB9IHdoaWxlICh0YXJnZXRJZHggPiAwICYmIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbdGFyZ2V0SWR4XSkgIT09IE5TLkhUTUwpO1xuICAgICAgICB0aGlzLnNob3J0ZW5Ub0xlbmd0aCh0YXJnZXRJZHggPCAwID8gMCA6IHRhcmdldElkeCk7XG4gICAgfVxuICAgIHNob3J0ZW5Ub0xlbmd0aChpZHgpIHtcbiAgICAgICAgd2hpbGUgKHRoaXMuc3RhY2tUb3AgPj0gaWR4KSB7XG4gICAgICAgICAgICBjb25zdCBwb3BwZWQgPSB0aGlzLmN1cnJlbnQ7XG4gICAgICAgICAgICBpZiAodGhpcy50bXBsQ291bnQgPiAwICYmIHRoaXMuX2lzSW5UZW1wbGF0ZSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50bXBsQ291bnQgLT0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3RhY2tUb3AtLTtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUN1cnJlbnRFbGVtZW50KCk7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZXIub25JdGVtUG9wKHBvcHBlZCwgdGhpcy5zdGFja1RvcCA8IGlkeCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcG9wVW50aWxFbGVtZW50UG9wcGVkKGVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5faW5kZXhPZihlbGVtZW50KTtcbiAgICAgICAgdGhpcy5zaG9ydGVuVG9MZW5ndGgoaWR4IDwgMCA/IDAgOiBpZHgpO1xuICAgIH1cbiAgICBwb3BVbnRpbFBvcHBlZCh0YWdOYW1lcywgdGFyZ2V0TlMpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5faW5kZXhPZlRhZ05hbWVzKHRhZ05hbWVzLCB0YXJnZXROUyk7XG4gICAgICAgIHRoaXMuc2hvcnRlblRvTGVuZ3RoKGlkeCA8IDAgPyAwIDogaWR4KTtcbiAgICB9XG4gICAgcG9wVW50aWxOdW1iZXJlZEhlYWRlclBvcHBlZCgpIHtcbiAgICAgICAgdGhpcy5wb3BVbnRpbFBvcHBlZChOQU1FRF9IRUFERVJTLCBOUy5IVE1MKTtcbiAgICB9XG4gICAgcG9wVW50aWxUYWJsZUNlbGxQb3BwZWQoKSB7XG4gICAgICAgIHRoaXMucG9wVW50aWxQb3BwZWQoVEFCTEVfQ0VMTFMsIE5TLkhUTUwpO1xuICAgIH1cbiAgICBwb3BBbGxVcFRvSHRtbEVsZW1lbnQoKSB7XG4gICAgICAgIC8vTk9URTogaGVyZSB3ZSBhc3N1bWUgdGhhdCB0aGUgcm9vdCA8aHRtbD4gZWxlbWVudCBpcyBhbHdheXMgZmlyc3QgaW4gdGhlIG9wZW4gZWxlbWVudCBzdGFjaywgc29cbiAgICAgICAgLy93ZSBwZXJmb3JtIHRoaXMgZmFzdCBzdGFjayBjbGVhbiB1cC5cbiAgICAgICAgdGhpcy50bXBsQ291bnQgPSAwO1xuICAgICAgICB0aGlzLnNob3J0ZW5Ub0xlbmd0aCgxKTtcbiAgICB9XG4gICAgX2luZGV4T2ZUYWdOYW1lcyh0YWdOYW1lcywgbmFtZXNwYWNlKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgaWYgKHRhZ05hbWVzLmluY2x1ZGVzKHRoaXMudGFnSURzW2ldKSAmJiB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKSA9PT0gbmFtZXNwYWNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgICBjbGVhckJhY2tUbyh0YWdOYW1lcywgdGFyZ2V0TlMpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5faW5kZXhPZlRhZ05hbWVzKHRhZ05hbWVzLCB0YXJnZXROUyk7XG4gICAgICAgIHRoaXMuc2hvcnRlblRvTGVuZ3RoKGlkeCArIDEpO1xuICAgIH1cbiAgICBjbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpIHtcbiAgICAgICAgdGhpcy5jbGVhckJhY2tUbyhUQUJMRV9DT05URVhULCBOUy5IVE1MKTtcbiAgICB9XG4gICAgY2xlYXJCYWNrVG9UYWJsZUJvZHlDb250ZXh0KCkge1xuICAgICAgICB0aGlzLmNsZWFyQmFja1RvKFRBQkxFX0JPRFlfQ09OVEVYVCwgTlMuSFRNTCk7XG4gICAgfVxuICAgIGNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCkge1xuICAgICAgICB0aGlzLmNsZWFyQmFja1RvKFRBQkxFX1JPV19DT05URVhULCBOUy5IVE1MKTtcbiAgICB9XG4gICAgcmVtb3ZlKGVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5faW5kZXhPZihlbGVtZW50KTtcbiAgICAgICAgaWYgKGlkeCA+PSAwKSB7XG4gICAgICAgICAgICBpZiAoaWR4ID09PSB0aGlzLnN0YWNrVG9wKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKGlkeCwgMSk7XG4gICAgICAgICAgICAgICAgdGhpcy50YWdJRHMuc3BsaWNlKGlkeCwgMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGFja1RvcC0tO1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUN1cnJlbnRFbGVtZW50KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVyLm9uSXRlbVBvcChlbGVtZW50LCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9TZWFyY2hcbiAgICB0cnlQZWVrUHJvcGVybHlOZXN0ZWRCb2R5RWxlbWVudCgpIHtcbiAgICAgICAgLy9Qcm9wZXJseSBuZXN0ZWQgPGJvZHk+IGVsZW1lbnQgKHNob3VsZCBiZSBzZWNvbmQgZWxlbWVudCBpbiBzdGFjaykuXG4gICAgICAgIHJldHVybiB0aGlzLnN0YWNrVG9wID49IDEgJiYgdGhpcy50YWdJRHNbMV0gPT09ICQuQk9EWSA/IHRoaXMuaXRlbXNbMV0gOiBudWxsO1xuICAgIH1cbiAgICBjb250YWlucyhlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbmRleE9mKGVsZW1lbnQpID4gLTE7XG4gICAgfVxuICAgIGdldENvbW1vbkFuY2VzdG9yKGVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudElkeCA9IHRoaXMuX2luZGV4T2YoZWxlbWVudCkgLSAxO1xuICAgICAgICByZXR1cm4gZWxlbWVudElkeCA+PSAwID8gdGhpcy5pdGVtc1tlbGVtZW50SWR4XSA6IG51bGw7XG4gICAgfVxuICAgIGlzUm9vdEh0bWxFbGVtZW50Q3VycmVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhY2tUb3AgPT09IDAgJiYgdGhpcy50YWdJRHNbMF0gPT09ICQuSFRNTDtcbiAgICB9XG4gICAgLy9FbGVtZW50IGluIHNjb3BlXG4gICAgaGFzSW5TY29wZSh0YWdOYW1lKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgY29uc3QgdG4gPSB0aGlzLnRhZ0lEc1tpXTtcbiAgICAgICAgICAgIGNvbnN0IG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5pdGVtc1tpXSk7XG4gICAgICAgICAgICBpZiAodG4gPT09IHRhZ05hbWUgJiYgbnMgPT09IE5TLkhUTUwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChTQ09QSU5HX0VMRU1FTlRfTlMuZ2V0KHRuKSA9PT0gbnMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGhhc051bWJlcmVkSGVhZGVySW5TY29wZSgpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCB0biA9IHRoaXMudGFnSURzW2ldO1xuICAgICAgICAgICAgY29uc3QgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTtcbiAgICAgICAgICAgIGlmIChpc051bWJlcmVkSGVhZGVyKHRuKSAmJiBucyA9PT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKFNDT1BJTkdfRUxFTUVOVF9OUy5nZXQodG4pID09PSBucykge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaGFzSW5MaXN0SXRlbVNjb3BlKHRhZ05hbWUpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCB0biA9IHRoaXMudGFnSURzW2ldO1xuICAgICAgICAgICAgY29uc3QgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTtcbiAgICAgICAgICAgIGlmICh0biA9PT0gdGFnTmFtZSAmJiBucyA9PT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCgodG4gPT09ICQuVUwgfHwgdG4gPT09ICQuT0wpICYmIG5zID09PSBOUy5IVE1MKSB8fCBTQ09QSU5HX0VMRU1FTlRfTlMuZ2V0KHRuKSA9PT0gbnMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGhhc0luQnV0dG9uU2NvcGUodGFnTmFtZSkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IHRuID0gdGhpcy50YWdJRHNbaV07XG4gICAgICAgICAgICBjb25zdCBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pO1xuICAgICAgICAgICAgaWYgKHRuID09PSB0YWdOYW1lICYmIG5zID09PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoKHRuID09PSAkLkJVVFRPTiAmJiBucyA9PT0gTlMuSFRNTCkgfHwgU0NPUElOR19FTEVNRU5UX05TLmdldCh0bikgPT09IG5zKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBoYXNJblRhYmxlU2NvcGUodGFnTmFtZSkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IHRuID0gdGhpcy50YWdJRHNbaV07XG4gICAgICAgICAgICBjb25zdCBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pO1xuICAgICAgICAgICAgaWYgKG5zICE9PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodG4gPT09IHRhZ05hbWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5UQUJMRSB8fCB0biA9PT0gJC5URU1QTEFURSB8fCB0biA9PT0gJC5IVE1MKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBoYXNUYWJsZUJvZHlDb250ZXh0SW5UYWJsZVNjb3BlKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IHRuID0gdGhpcy50YWdJRHNbaV07XG4gICAgICAgICAgICBjb25zdCBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pO1xuICAgICAgICAgICAgaWYgKG5zICE9PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodG4gPT09ICQuVEJPRFkgfHwgdG4gPT09ICQuVEhFQUQgfHwgdG4gPT09ICQuVEZPT1QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5UQUJMRSB8fCB0biA9PT0gJC5IVE1MKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBoYXNJblNlbGVjdFNjb3BlKHRhZ05hbWUpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCB0biA9IHRoaXMudGFnSURzW2ldO1xuICAgICAgICAgICAgY29uc3QgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTtcbiAgICAgICAgICAgIGlmIChucyAhPT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRuID09PSB0YWdOYW1lKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodG4gIT09ICQuT1BUSU9OICYmIHRuICE9PSAkLk9QVEdST1VQKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvL0ltcGxpZWQgZW5kIHRhZ3NcbiAgICBnZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCkge1xuICAgICAgICB3aGlsZSAoSU1QTElDSVRfRU5EX1RBR19SRVFVSVJFRC5oYXModGhpcy5jdXJyZW50VGFnSWQpKSB7XG4gICAgICAgICAgICB0aGlzLnBvcCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdlbmVyYXRlSW1wbGllZEVuZFRhZ3NUaG9yb3VnaGx5KCkge1xuICAgICAgICB3aGlsZSAoSU1QTElDSVRfRU5EX1RBR19SRVFVSVJFRF9USE9ST1VHSExZLmhhcyh0aGlzLmN1cnJlbnRUYWdJZCkpIHtcbiAgICAgICAgICAgIHRoaXMucG9wKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24oZXhjbHVzaW9uSWQpIHtcbiAgICAgICAgd2hpbGUgKHRoaXMuY3VycmVudFRhZ0lkICE9PSBleGNsdXNpb25JZCAmJiBJTVBMSUNJVF9FTkRfVEFHX1JFUVVJUkVEX1RIT1JPVUdITFkuaGFzKHRoaXMuY3VycmVudFRhZ0lkKSkge1xuICAgICAgICAgICAgdGhpcy5wb3AoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW9wZW4tZWxlbWVudC1zdGFjay5qcy5tYXAiLCAiLy9Db25zdFxuY29uc3QgTk9BSF9BUktfQ0FQQUNJVFkgPSAzO1xuZXhwb3J0IHZhciBFbnRyeVR5cGU7XG4oZnVuY3Rpb24gKEVudHJ5VHlwZSkge1xuICAgIEVudHJ5VHlwZVtFbnRyeVR5cGVbXCJNYXJrZXJcIl0gPSAwXSA9IFwiTWFya2VyXCI7XG4gICAgRW50cnlUeXBlW0VudHJ5VHlwZVtcIkVsZW1lbnRcIl0gPSAxXSA9IFwiRWxlbWVudFwiO1xufSkoRW50cnlUeXBlID0gRW50cnlUeXBlIHx8IChFbnRyeVR5cGUgPSB7fSkpO1xuY29uc3QgTUFSS0VSID0geyB0eXBlOiBFbnRyeVR5cGUuTWFya2VyIH07XG4vL0xpc3Qgb2YgZm9ybWF0dGluZyBlbGVtZW50c1xuZXhwb3J0IGNsYXNzIEZvcm1hdHRpbmdFbGVtZW50TGlzdCB7XG4gICAgY29uc3RydWN0b3IodHJlZUFkYXB0ZXIpIHtcbiAgICAgICAgdGhpcy50cmVlQWRhcHRlciA9IHRyZWVBZGFwdGVyO1xuICAgICAgICB0aGlzLmVudHJpZXMgPSBbXTtcbiAgICAgICAgdGhpcy5ib29rbWFyayA9IG51bGw7XG4gICAgfVxuICAgIC8vTm9haCBBcmsncyBjb25kaXRpb25cbiAgICAvL09QVElNSVpBVElPTjogYXQgZmlyc3Qgd2UgdHJ5IHRvIGZpbmQgcG9zc2libGUgY2FuZGlkYXRlcyBmb3IgZXhjbHVzaW9uIHVzaW5nXG4gICAgLy9saWdodHdlaWdodCBoZXVyaXN0aWNzIHdpdGhvdXQgdGhvcm91Z2ggYXR0cmlidXRlcyBjaGVjay5cbiAgICBfZ2V0Tm9haEFya0NvbmRpdGlvbkNhbmRpZGF0ZXMobmV3RWxlbWVudCwgbmVBdHRycykge1xuICAgICAgICBjb25zdCBjYW5kaWRhdGVzID0gW107XG4gICAgICAgIGNvbnN0IG5lQXR0cnNMZW5ndGggPSBuZUF0dHJzLmxlbmd0aDtcbiAgICAgICAgY29uc3QgbmVUYWdOYW1lID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKG5ld0VsZW1lbnQpO1xuICAgICAgICBjb25zdCBuZU5hbWVzcGFjZVVSSSA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKG5ld0VsZW1lbnQpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZW50cmllcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgZW50cnkgPSB0aGlzLmVudHJpZXNbaV07XG4gICAgICAgICAgICBpZiAoZW50cnkudHlwZSA9PT0gRW50cnlUeXBlLk1hcmtlcikge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgeyBlbGVtZW50IH0gPSBlbnRyeTtcbiAgICAgICAgICAgIGlmICh0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCkgPT09IG5lVGFnTmFtZSAmJlxuICAgICAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnQpID09PSBuZU5hbWVzcGFjZVVSSSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRBdHRycyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0QXR0ckxpc3QoZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRBdHRycy5sZW5ndGggPT09IG5lQXR0cnNMZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FuZGlkYXRlcy5wdXNoKHsgaWR4OiBpLCBhdHRyczogZWxlbWVudEF0dHJzIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2FuZGlkYXRlcztcbiAgICB9XG4gICAgX2Vuc3VyZU5vYWhBcmtDb25kaXRpb24obmV3RWxlbWVudCkge1xuICAgICAgICBpZiAodGhpcy5lbnRyaWVzLmxlbmd0aCA8IE5PQUhfQVJLX0NBUEFDSVRZKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBuZUF0dHJzID0gdGhpcy50cmVlQWRhcHRlci5nZXRBdHRyTGlzdChuZXdFbGVtZW50KTtcbiAgICAgICAgY29uc3QgY2FuZGlkYXRlcyA9IHRoaXMuX2dldE5vYWhBcmtDb25kaXRpb25DYW5kaWRhdGVzKG5ld0VsZW1lbnQsIG5lQXR0cnMpO1xuICAgICAgICBpZiAoY2FuZGlkYXRlcy5sZW5ndGggPCBOT0FIX0FSS19DQVBBQ0lUWSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgLy9OT1RFOiBidWlsZCBhdHRycyBtYXAgZm9yIHRoZSBuZXcgZWxlbWVudCwgc28gd2UgY2FuIHBlcmZvcm0gZmFzdCBsb29rdXBzXG4gICAgICAgIGNvbnN0IG5lQXR0cnNNYXAgPSBuZXcgTWFwKG5lQXR0cnMubWFwKChuZUF0dHIpID0+IFtuZUF0dHIubmFtZSwgbmVBdHRyLnZhbHVlXSkpO1xuICAgICAgICBsZXQgdmFsaWRDYW5kaWRhdGVzID0gMDtcbiAgICAgICAgLy9OT1RFOiByZW1vdmUgYm90dG9tbW9zdCBjYW5kaWRhdGVzLCB1bnRpbCBOb2FoJ3MgQXJrIGNvbmRpdGlvbiB3aWxsIG5vdCBiZSBtZXRcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYW5kaWRhdGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBjYW5kaWRhdGUgPSBjYW5kaWRhdGVzW2ldO1xuICAgICAgICAgICAgLy8gV2Uga25vdyB0aGF0IGBjYW5kaWRhdGUuYXR0cnMubGVuZ3RoID09PSBuZUF0dHJzLmxlbmd0aGBcbiAgICAgICAgICAgIGlmIChjYW5kaWRhdGUuYXR0cnMuZXZlcnkoKGNBdHRyKSA9PiBuZUF0dHJzTWFwLmdldChjQXR0ci5uYW1lKSA9PT0gY0F0dHIudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdmFsaWRDYW5kaWRhdGVzICs9IDE7XG4gICAgICAgICAgICAgICAgaWYgKHZhbGlkQ2FuZGlkYXRlcyA+PSBOT0FIX0FSS19DQVBBQ0lUWSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVudHJpZXMuc3BsaWNlKGNhbmRpZGF0ZS5pZHgsIDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvL011dGF0aW9uc1xuICAgIGluc2VydE1hcmtlcigpIHtcbiAgICAgICAgdGhpcy5lbnRyaWVzLnVuc2hpZnQoTUFSS0VSKTtcbiAgICB9XG4gICAgcHVzaEVsZW1lbnQoZWxlbWVudCwgdG9rZW4pIHtcbiAgICAgICAgdGhpcy5fZW5zdXJlTm9haEFya0NvbmRpdGlvbihlbGVtZW50KTtcbiAgICAgICAgdGhpcy5lbnRyaWVzLnVuc2hpZnQoe1xuICAgICAgICAgICAgdHlwZTogRW50cnlUeXBlLkVsZW1lbnQsXG4gICAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBpbnNlcnRFbGVtZW50QWZ0ZXJCb29rbWFyayhlbGVtZW50LCB0b2tlbikge1xuICAgICAgICBjb25zdCBib29rbWFya0lkeCA9IHRoaXMuZW50cmllcy5pbmRleE9mKHRoaXMuYm9va21hcmspO1xuICAgICAgICB0aGlzLmVudHJpZXMuc3BsaWNlKGJvb2ttYXJrSWR4LCAwLCB7XG4gICAgICAgICAgICB0eXBlOiBFbnRyeVR5cGUuRWxlbWVudCxcbiAgICAgICAgICAgIGVsZW1lbnQsXG4gICAgICAgICAgICB0b2tlbixcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJlbW92ZUVudHJ5KGVudHJ5KSB7XG4gICAgICAgIGNvbnN0IGVudHJ5SW5kZXggPSB0aGlzLmVudHJpZXMuaW5kZXhPZihlbnRyeSk7XG4gICAgICAgIGlmIChlbnRyeUluZGV4ID49IDApIHtcbiAgICAgICAgICAgIHRoaXMuZW50cmllcy5zcGxpY2UoZW50cnlJbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2xlYXJzIHRoZSBsaXN0IG9mIGZvcm1hdHRpbmcgZWxlbWVudHMgdXAgdG8gdGhlIGxhc3QgbWFya2VyLlxuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9wYXJzaW5nLmh0bWwjY2xlYXItdGhlLWxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMtdXAtdG8tdGhlLWxhc3QtbWFya2VyXG4gICAgICovXG4gICAgY2xlYXJUb0xhc3RNYXJrZXIoKSB7XG4gICAgICAgIGNvbnN0IG1hcmtlcklkeCA9IHRoaXMuZW50cmllcy5pbmRleE9mKE1BUktFUik7XG4gICAgICAgIGlmIChtYXJrZXJJZHggPj0gMCkge1xuICAgICAgICAgICAgdGhpcy5lbnRyaWVzLnNwbGljZSgwLCBtYXJrZXJJZHggKyAxKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZW50cmllcy5sZW5ndGggPSAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vU2VhcmNoXG4gICAgZ2V0RWxlbWVudEVudHJ5SW5TY29wZVdpdGhUYWdOYW1lKHRhZ05hbWUpIHtcbiAgICAgICAgY29uc3QgZW50cnkgPSB0aGlzLmVudHJpZXMuZmluZCgoZW50cnkpID0+IGVudHJ5LnR5cGUgPT09IEVudHJ5VHlwZS5NYXJrZXIgfHwgdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVudHJ5LmVsZW1lbnQpID09PSB0YWdOYW1lKTtcbiAgICAgICAgcmV0dXJuIGVudHJ5ICYmIGVudHJ5LnR5cGUgPT09IEVudHJ5VHlwZS5FbGVtZW50ID8gZW50cnkgOiBudWxsO1xuICAgIH1cbiAgICBnZXRFbGVtZW50RW50cnkoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnRyaWVzLmZpbmQoKGVudHJ5KSA9PiBlbnRyeS50eXBlID09PSBFbnRyeVR5cGUuRWxlbWVudCAmJiBlbnRyeS5lbGVtZW50ID09PSBlbGVtZW50KTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1mb3JtYXR0aW5nLWVsZW1lbnQtbGlzdC5qcy5tYXAiLCAiaW1wb3J0IHsgRE9DVU1FTlRfTU9ERSB9IGZyb20gJy4uL2NvbW1vbi9odG1sLmpzJztcbmZ1bmN0aW9uIGNyZWF0ZVRleHROb2RlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbm9kZU5hbWU6ICcjdGV4dCcsXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBwYXJlbnROb2RlOiBudWxsLFxuICAgIH07XG59XG5leHBvcnQgY29uc3QgZGVmYXVsdFRyZWVBZGFwdGVyID0ge1xuICAgIC8vTm9kZSBjb25zdHJ1Y3Rpb25cbiAgICBjcmVhdGVEb2N1bWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5vZGVOYW1lOiAnI2RvY3VtZW50JyxcbiAgICAgICAgICAgIG1vZGU6IERPQ1VNRU5UX01PREUuTk9fUVVJUktTLFxuICAgICAgICAgICAgY2hpbGROb2RlczogW10sXG4gICAgICAgIH07XG4gICAgfSxcbiAgICBjcmVhdGVEb2N1bWVudEZyYWdtZW50KCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbm9kZU5hbWU6ICcjZG9jdW1lbnQtZnJhZ21lbnQnLFxuICAgICAgICAgICAgY2hpbGROb2RlczogW10sXG4gICAgICAgIH07XG4gICAgfSxcbiAgICBjcmVhdGVFbGVtZW50KHRhZ05hbWUsIG5hbWVzcGFjZVVSSSwgYXR0cnMpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5vZGVOYW1lOiB0YWdOYW1lLFxuICAgICAgICAgICAgdGFnTmFtZSxcbiAgICAgICAgICAgIGF0dHJzLFxuICAgICAgICAgICAgbmFtZXNwYWNlVVJJLFxuICAgICAgICAgICAgY2hpbGROb2RlczogW10sXG4gICAgICAgICAgICBwYXJlbnROb2RlOiBudWxsLFxuICAgICAgICB9O1xuICAgIH0sXG4gICAgY3JlYXRlQ29tbWVudE5vZGUoZGF0YSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbm9kZU5hbWU6ICcjY29tbWVudCcsXG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgcGFyZW50Tm9kZTogbnVsbCxcbiAgICAgICAgfTtcbiAgICB9LFxuICAgIC8vVHJlZSBtdXRhdGlvblxuICAgIGFwcGVuZENoaWxkKHBhcmVudE5vZGUsIG5ld05vZGUpIHtcbiAgICAgICAgcGFyZW50Tm9kZS5jaGlsZE5vZGVzLnB1c2gobmV3Tm9kZSk7XG4gICAgICAgIG5ld05vZGUucGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7XG4gICAgfSxcbiAgICBpbnNlcnRCZWZvcmUocGFyZW50Tm9kZSwgbmV3Tm9kZSwgcmVmZXJlbmNlTm9kZSkge1xuICAgICAgICBjb25zdCBpbnNlcnRpb25JZHggPSBwYXJlbnROb2RlLmNoaWxkTm9kZXMuaW5kZXhPZihyZWZlcmVuY2VOb2RlKTtcbiAgICAgICAgcGFyZW50Tm9kZS5jaGlsZE5vZGVzLnNwbGljZShpbnNlcnRpb25JZHgsIDAsIG5ld05vZGUpO1xuICAgICAgICBuZXdOb2RlLnBhcmVudE5vZGUgPSBwYXJlbnROb2RlO1xuICAgIH0sXG4gICAgc2V0VGVtcGxhdGVDb250ZW50KHRlbXBsYXRlRWxlbWVudCwgY29udGVudEVsZW1lbnQpIHtcbiAgICAgICAgdGVtcGxhdGVFbGVtZW50LmNvbnRlbnQgPSBjb250ZW50RWxlbWVudDtcbiAgICB9LFxuICAgIGdldFRlbXBsYXRlQ29udGVudCh0ZW1wbGF0ZUVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRlbXBsYXRlRWxlbWVudC5jb250ZW50O1xuICAgIH0sXG4gICAgc2V0RG9jdW1lbnRUeXBlKGRvY3VtZW50LCBuYW1lLCBwdWJsaWNJZCwgc3lzdGVtSWQpIHtcbiAgICAgICAgY29uc3QgZG9jdHlwZU5vZGUgPSBkb2N1bWVudC5jaGlsZE5vZGVzLmZpbmQoKG5vZGUpID0+IG5vZGUubm9kZU5hbWUgPT09ICcjZG9jdW1lbnRUeXBlJyk7XG4gICAgICAgIGlmIChkb2N0eXBlTm9kZSkge1xuICAgICAgICAgICAgZG9jdHlwZU5vZGUubmFtZSA9IG5hbWU7XG4gICAgICAgICAgICBkb2N0eXBlTm9kZS5wdWJsaWNJZCA9IHB1YmxpY0lkO1xuICAgICAgICAgICAgZG9jdHlwZU5vZGUuc3lzdGVtSWQgPSBzeXN0ZW1JZDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB7XG4gICAgICAgICAgICAgICAgbm9kZU5hbWU6ICcjZG9jdW1lbnRUeXBlJyxcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgIHB1YmxpY0lkLFxuICAgICAgICAgICAgICAgIHN5c3RlbUlkLFxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGU6IG51bGwsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZGVmYXVsdFRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKGRvY3VtZW50LCBub2RlKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgc2V0RG9jdW1lbnRNb2RlKGRvY3VtZW50LCBtb2RlKSB7XG4gICAgICAgIGRvY3VtZW50Lm1vZGUgPSBtb2RlO1xuICAgIH0sXG4gICAgZ2V0RG9jdW1lbnRNb2RlKGRvY3VtZW50KSB7XG4gICAgICAgIHJldHVybiBkb2N1bWVudC5tb2RlO1xuICAgIH0sXG4gICAgZGV0YWNoTm9kZShub2RlKSB7XG4gICAgICAgIGlmIChub2RlLnBhcmVudE5vZGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGlkeCA9IG5vZGUucGFyZW50Tm9kZS5jaGlsZE5vZGVzLmluZGV4T2Yobm9kZSk7XG4gICAgICAgICAgICBub2RlLnBhcmVudE5vZGUuY2hpbGROb2Rlcy5zcGxpY2UoaWR4LCAxKTtcbiAgICAgICAgICAgIG5vZGUucGFyZW50Tm9kZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGluc2VydFRleHQocGFyZW50Tm9kZSwgdGV4dCkge1xuICAgICAgICBpZiAocGFyZW50Tm9kZS5jaGlsZE5vZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHByZXZOb2RlID0gcGFyZW50Tm9kZS5jaGlsZE5vZGVzW3BhcmVudE5vZGUuY2hpbGROb2Rlcy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIGlmIChkZWZhdWx0VHJlZUFkYXB0ZXIuaXNUZXh0Tm9kZShwcmV2Tm9kZSkpIHtcbiAgICAgICAgICAgICAgICBwcmV2Tm9kZS52YWx1ZSArPSB0ZXh0O1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0VHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQocGFyZW50Tm9kZSwgY3JlYXRlVGV4dE5vZGUodGV4dCkpO1xuICAgIH0sXG4gICAgaW5zZXJ0VGV4dEJlZm9yZShwYXJlbnROb2RlLCB0ZXh0LCByZWZlcmVuY2VOb2RlKSB7XG4gICAgICAgIGNvbnN0IHByZXZOb2RlID0gcGFyZW50Tm9kZS5jaGlsZE5vZGVzW3BhcmVudE5vZGUuY2hpbGROb2Rlcy5pbmRleE9mKHJlZmVyZW5jZU5vZGUpIC0gMV07XG4gICAgICAgIGlmIChwcmV2Tm9kZSAmJiBkZWZhdWx0VHJlZUFkYXB0ZXIuaXNUZXh0Tm9kZShwcmV2Tm9kZSkpIHtcbiAgICAgICAgICAgIHByZXZOb2RlLnZhbHVlICs9IHRleHQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBkZWZhdWx0VHJlZUFkYXB0ZXIuaW5zZXJ0QmVmb3JlKHBhcmVudE5vZGUsIGNyZWF0ZVRleHROb2RlKHRleHQpLCByZWZlcmVuY2VOb2RlKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgYWRvcHRBdHRyaWJ1dGVzKHJlY2lwaWVudCwgYXR0cnMpIHtcbiAgICAgICAgY29uc3QgcmVjaXBpZW50QXR0cnNNYXAgPSBuZXcgU2V0KHJlY2lwaWVudC5hdHRycy5tYXAoKGF0dHIpID0+IGF0dHIubmFtZSkpO1xuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGF0dHJzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICBpZiAoIXJlY2lwaWVudEF0dHJzTWFwLmhhcyhhdHRyc1tqXS5uYW1lKSkge1xuICAgICAgICAgICAgICAgIHJlY2lwaWVudC5hdHRycy5wdXNoKGF0dHJzW2pdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgLy9UcmVlIHRyYXZlcnNpbmdcbiAgICBnZXRGaXJzdENoaWxkKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUuY2hpbGROb2Rlc1swXTtcbiAgICB9LFxuICAgIGdldENoaWxkTm9kZXMobm9kZSkge1xuICAgICAgICByZXR1cm4gbm9kZS5jaGlsZE5vZGVzO1xuICAgIH0sXG4gICAgZ2V0UGFyZW50Tm9kZShub2RlKSB7XG4gICAgICAgIHJldHVybiBub2RlLnBhcmVudE5vZGU7XG4gICAgfSxcbiAgICBnZXRBdHRyTGlzdChlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50LmF0dHJzO1xuICAgIH0sXG4gICAgLy9Ob2RlIGRhdGFcbiAgICBnZXRUYWdOYW1lKGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQudGFnTmFtZTtcbiAgICB9LFxuICAgIGdldE5hbWVzcGFjZVVSSShlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50Lm5hbWVzcGFjZVVSSTtcbiAgICB9LFxuICAgIGdldFRleHROb2RlQ29udGVudCh0ZXh0Tm9kZSkge1xuICAgICAgICByZXR1cm4gdGV4dE5vZGUudmFsdWU7XG4gICAgfSxcbiAgICBnZXRDb21tZW50Tm9kZUNvbnRlbnQoY29tbWVudE5vZGUpIHtcbiAgICAgICAgcmV0dXJuIGNvbW1lbnROb2RlLmRhdGE7XG4gICAgfSxcbiAgICBnZXREb2N1bWVudFR5cGVOb2RlTmFtZShkb2N0eXBlTm9kZSkge1xuICAgICAgICByZXR1cm4gZG9jdHlwZU5vZGUubmFtZTtcbiAgICB9LFxuICAgIGdldERvY3VtZW50VHlwZU5vZGVQdWJsaWNJZChkb2N0eXBlTm9kZSkge1xuICAgICAgICByZXR1cm4gZG9jdHlwZU5vZGUucHVibGljSWQ7XG4gICAgfSxcbiAgICBnZXREb2N1bWVudFR5cGVOb2RlU3lzdGVtSWQoZG9jdHlwZU5vZGUpIHtcbiAgICAgICAgcmV0dXJuIGRvY3R5cGVOb2RlLnN5c3RlbUlkO1xuICAgIH0sXG4gICAgLy9Ob2RlIHR5cGVzXG4gICAgaXNUZXh0Tm9kZShub2RlKSB7XG4gICAgICAgIHJldHVybiBub2RlLm5vZGVOYW1lID09PSAnI3RleHQnO1xuICAgIH0sXG4gICAgaXNDb21tZW50Tm9kZShub2RlKSB7XG4gICAgICAgIHJldHVybiBub2RlLm5vZGVOYW1lID09PSAnI2NvbW1lbnQnO1xuICAgIH0sXG4gICAgaXNEb2N1bWVudFR5cGVOb2RlKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUubm9kZU5hbWUgPT09ICcjZG9jdW1lbnRUeXBlJztcbiAgICB9LFxuICAgIGlzRWxlbWVudE5vZGUobm9kZSkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG5vZGUsICd0YWdOYW1lJyk7XG4gICAgfSxcbiAgICAvLyBTb3VyY2UgY29kZSBsb2NhdGlvblxuICAgIHNldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24obm9kZSwgbG9jYXRpb24pIHtcbiAgICAgICAgbm9kZS5zb3VyY2VDb2RlTG9jYXRpb24gPSBsb2NhdGlvbjtcbiAgICB9LFxuICAgIGdldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24obm9kZSkge1xuICAgICAgICByZXR1cm4gbm9kZS5zb3VyY2VDb2RlTG9jYXRpb247XG4gICAgfSxcbiAgICB1cGRhdGVOb2RlU291cmNlQ29kZUxvY2F0aW9uKG5vZGUsIGVuZExvY2F0aW9uKSB7XG4gICAgICAgIG5vZGUuc291cmNlQ29kZUxvY2F0aW9uID0geyAuLi5ub2RlLnNvdXJjZUNvZGVMb2NhdGlvbiwgLi4uZW5kTG9jYXRpb24gfTtcbiAgICB9LFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRlZmF1bHQuanMubWFwIiwgImltcG9ydCB7IERPQ1VNRU5UX01PREUgfSBmcm9tICcuL2h0bWwuanMnO1xuLy9Db25zdFxuY29uc3QgVkFMSURfRE9DVFlQRV9OQU1FID0gJ2h0bWwnO1xuY29uc3QgVkFMSURfU1lTVEVNX0lEID0gJ2Fib3V0OmxlZ2FjeS1jb21wYXQnO1xuY29uc3QgUVVJUktTX01PREVfU1lTVEVNX0lEID0gJ2h0dHA6Ly93d3cuaWJtLmNvbS9kYXRhL2R0ZC92MTEvaWJteGh0bWwxLXRyYW5zaXRpb25hbC5kdGQnO1xuY29uc3QgUVVJUktTX01PREVfUFVCTElDX0lEX1BSRUZJWEVTID0gW1xuICAgICcrLy9zaWxtYXJpbC8vZHRkIGh0bWwgcHJvIHYwcjExIDE5OTcwMTAxLy8nLFxuICAgICctLy9hcy8vZHRkIGh0bWwgMy4wIGFzd2VkaXQgKyBleHRlbnNpb25zLy8nLFxuICAgICctLy9hZHZhc29mdCBsdGQvL2R0ZCBodG1sIDMuMCBhc3dlZGl0ICsgZXh0ZW5zaW9ucy8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMi4wIGxldmVsIDEvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDIuMCBsZXZlbCAyLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAyLjAgc3RyaWN0IGxldmVsIDEvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDIuMCBzdHJpY3QgbGV2ZWwgMi8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMi4wIHN0cmljdC8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMi4wLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAyLjFlLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAzLjAvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDMuMiBmaW5hbC8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMy4yLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAzLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAwLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAxLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAyLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAzLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QgbGV2ZWwgMC8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0IGxldmVsIDEvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIHN0cmljdCBsZXZlbCAyLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QgbGV2ZWwgMy8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0Ly8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbC8vJyxcbiAgICAnLS8vbWV0cml1cy8vZHRkIG1ldHJpdXMgcHJlc2VudGF0aW9uYWwvLycsXG4gICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDIuMCBodG1sIHN0cmljdC8vJyxcbiAgICAnLS8vbWljcm9zb2Z0Ly9kdGQgaW50ZXJuZXQgZXhwbG9yZXIgMi4wIGh0bWwvLycsXG4gICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDIuMCB0YWJsZXMvLycsXG4gICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDMuMCBodG1sIHN0cmljdC8vJyxcbiAgICAnLS8vbWljcm9zb2Z0Ly9kdGQgaW50ZXJuZXQgZXhwbG9yZXIgMy4wIGh0bWwvLycsXG4gICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDMuMCB0YWJsZXMvLycsXG4gICAgJy0vL25ldHNjYXBlIGNvbW0uIGNvcnAuLy9kdGQgaHRtbC8vJyxcbiAgICAnLS8vbmV0c2NhcGUgY29tbS4gY29ycC4vL2R0ZCBzdHJpY3QgaHRtbC8vJyxcbiAgICBcIi0vL28ncmVpbGx5IGFuZCBhc3NvY2lhdGVzLy9kdGQgaHRtbCAyLjAvL1wiLFxuICAgIFwiLS8vbydyZWlsbHkgYW5kIGFzc29jaWF0ZXMvL2R0ZCBodG1sIGV4dGVuZGVkIDEuMC8vXCIsXG4gICAgXCItLy9vJ3JlaWxseSBhbmQgYXNzb2NpYXRlcy8vZHRkIGh0bWwgZXh0ZW5kZWQgcmVsYXhlZCAxLjAvL1wiLFxuICAgICctLy9zcS8vZHRkIGh0bWwgMi4wIGhvdG1ldGFsICsgZXh0ZW5zaW9ucy8vJyxcbiAgICAnLS8vc29mdHF1YWQgc29mdHdhcmUvL2R0ZCBob3RtZXRhbCBwcm8gNi4wOjoxOTk5MDYwMTo6ZXh0ZW5zaW9ucyB0byBodG1sIDQuMC8vJyxcbiAgICAnLS8vc29mdHF1YWQvL2R0ZCBob3RtZXRhbCBwcm8gNC4wOjoxOTk3MTAxMDo6ZXh0ZW5zaW9ucyB0byBodG1sIDQuMC8vJyxcbiAgICAnLS8vc3B5Z2xhc3MvL2R0ZCBodG1sIDIuMCBleHRlbmRlZC8vJyxcbiAgICAnLS8vc3VuIG1pY3Jvc3lzdGVtcyBjb3JwLi8vZHRkIGhvdGphdmEgaHRtbC8vJyxcbiAgICAnLS8vc3VuIG1pY3Jvc3lzdGVtcyBjb3JwLi8vZHRkIGhvdGphdmEgc3RyaWN0IGh0bWwvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgMyAxOTk1LTAzLTI0Ly8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDMuMiBkcmFmdC8vJyxcbiAgICAnLS8vdzNjLy9kdGQgaHRtbCAzLjIgZmluYWwvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgMy4yLy8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDMuMnMgZHJhZnQvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgNC4wIGZyYW1lc2V0Ly8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDQuMCB0cmFuc2l0aW9uYWwvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgZXhwZXJpbWVudGFsIDE5OTYwNzEyLy8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIGV4cGVyaW1lbnRhbCA5NzA0MjEvLycsXG4gICAgJy0vL3czYy8vZHRkIHczIGh0bWwvLycsXG4gICAgJy0vL3czby8vZHRkIHczIGh0bWwgMy4wLy8nLFxuICAgICctLy93ZWJ0ZWNocy8vZHRkIG1vemlsbGEgaHRtbCAyLjAvLycsXG4gICAgJy0vL3dlYnRlY2hzLy9kdGQgbW96aWxsYSBodG1sLy8nLFxuXTtcbmNvbnN0IFFVSVJLU19NT0RFX05PX1NZU1RFTV9JRF9QVUJMSUNfSURfUFJFRklYRVMgPSBbXG4gICAgLi4uUVVJUktTX01PREVfUFVCTElDX0lEX1BSRUZJWEVTLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDQuMDEgZnJhbWVzZXQvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgNC4wMSB0cmFuc2l0aW9uYWwvLycsXG5dO1xuY29uc3QgUVVJUktTX01PREVfUFVCTElDX0lEUyA9IG5ldyBTZXQoW1xuICAgICctLy93M28vL2R0ZCB3MyBodG1sIHN0cmljdCAzLjAvL2VuLy8nLFxuICAgICctL3czYy9kdGQgaHRtbCA0LjAgdHJhbnNpdGlvbmFsL2VuJyxcbiAgICAnaHRtbCcsXG5dKTtcbmNvbnN0IExJTUlURURfUVVJUktTX1BVQkxJQ19JRF9QUkVGSVhFUyA9IFsnLS8vdzNjLy9kdGQgeGh0bWwgMS4wIGZyYW1lc2V0Ly8nLCAnLS8vdzNjLy9kdGQgeGh0bWwgMS4wIHRyYW5zaXRpb25hbC8vJ107XG5jb25zdCBMSU1JVEVEX1FVSVJLU19XSVRIX1NZU1RFTV9JRF9QVUJMSUNfSURfUFJFRklYRVMgPSBbXG4gICAgLi4uTElNSVRFRF9RVUlSS1NfUFVCTElDX0lEX1BSRUZJWEVTLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDQuMDEgZnJhbWVzZXQvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgNC4wMSB0cmFuc2l0aW9uYWwvLycsXG5dO1xuLy9VdGlsc1xuZnVuY3Rpb24gaGFzUHJlZml4KHB1YmxpY0lkLCBwcmVmaXhlcykge1xuICAgIHJldHVybiBwcmVmaXhlcy5zb21lKChwcmVmaXgpID0+IHB1YmxpY0lkLnN0YXJ0c1dpdGgocHJlZml4KSk7XG59XG4vL0FQSVxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29uZm9ybWluZyh0b2tlbikge1xuICAgIHJldHVybiAodG9rZW4ubmFtZSA9PT0gVkFMSURfRE9DVFlQRV9OQU1FICYmXG4gICAgICAgIHRva2VuLnB1YmxpY0lkID09PSBudWxsICYmXG4gICAgICAgICh0b2tlbi5zeXN0ZW1JZCA9PT0gbnVsbCB8fCB0b2tlbi5zeXN0ZW1JZCA9PT0gVkFMSURfU1lTVEVNX0lEKSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0RG9jdW1lbnRNb2RlKHRva2VuKSB7XG4gICAgaWYgKHRva2VuLm5hbWUgIT09IFZBTElEX0RPQ1RZUEVfTkFNRSkge1xuICAgICAgICByZXR1cm4gRE9DVU1FTlRfTU9ERS5RVUlSS1M7XG4gICAgfVxuICAgIGNvbnN0IHsgc3lzdGVtSWQgfSA9IHRva2VuO1xuICAgIGlmIChzeXN0ZW1JZCAmJiBzeXN0ZW1JZC50b0xvd2VyQ2FzZSgpID09PSBRVUlSS1NfTU9ERV9TWVNURU1fSUQpIHtcbiAgICAgICAgcmV0dXJuIERPQ1VNRU5UX01PREUuUVVJUktTO1xuICAgIH1cbiAgICBsZXQgeyBwdWJsaWNJZCB9ID0gdG9rZW47XG4gICAgaWYgKHB1YmxpY0lkICE9PSBudWxsKSB7XG4gICAgICAgIHB1YmxpY0lkID0gcHVibGljSWQudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKFFVSVJLU19NT0RFX1BVQkxJQ19JRFMuaGFzKHB1YmxpY0lkKSkge1xuICAgICAgICAgICAgcmV0dXJuIERPQ1VNRU5UX01PREUuUVVJUktTO1xuICAgICAgICB9XG4gICAgICAgIGxldCBwcmVmaXhlcyA9IHN5c3RlbUlkID09PSBudWxsID8gUVVJUktTX01PREVfTk9fU1lTVEVNX0lEX1BVQkxJQ19JRF9QUkVGSVhFUyA6IFFVSVJLU19NT0RFX1BVQkxJQ19JRF9QUkVGSVhFUztcbiAgICAgICAgaWYgKGhhc1ByZWZpeChwdWJsaWNJZCwgcHJlZml4ZXMpKSB7XG4gICAgICAgICAgICByZXR1cm4gRE9DVU1FTlRfTU9ERS5RVUlSS1M7XG4gICAgICAgIH1cbiAgICAgICAgcHJlZml4ZXMgPVxuICAgICAgICAgICAgc3lzdGVtSWQgPT09IG51bGwgPyBMSU1JVEVEX1FVSVJLU19QVUJMSUNfSURfUFJFRklYRVMgOiBMSU1JVEVEX1FVSVJLU19XSVRIX1NZU1RFTV9JRF9QVUJMSUNfSURfUFJFRklYRVM7XG4gICAgICAgIGlmIChoYXNQcmVmaXgocHVibGljSWQsIHByZWZpeGVzKSkge1xuICAgICAgICAgICAgcmV0dXJuIERPQ1VNRU5UX01PREUuTElNSVRFRF9RVUlSS1M7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIERPQ1VNRU5UX01PREUuTk9fUVVJUktTO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZG9jdHlwZS5qcy5tYXAiLCAiaW1wb3J0IHsgVEFHX0lEIGFzICQsIE5TLCBBVFRSUywgZ2V0VGFnSUQgfSBmcm9tICcuL2h0bWwuanMnO1xuLy9NSU1FIHR5cGVzXG5jb25zdCBNSU1FX1RZUEVTID0ge1xuICAgIFRFWFRfSFRNTDogJ3RleHQvaHRtbCcsXG4gICAgQVBQTElDQVRJT05fWE1MOiAnYXBwbGljYXRpb24veGh0bWwreG1sJyxcbn07XG4vL0F0dHJpYnV0ZXNcbmNvbnN0IERFRklOSVRJT05fVVJMX0FUVFIgPSAnZGVmaW5pdGlvbnVybCc7XG5jb25zdCBBREpVU1RFRF9ERUZJTklUSU9OX1VSTF9BVFRSID0gJ2RlZmluaXRpb25VUkwnO1xuY29uc3QgU1ZHX0FUVFJTX0FESlVTVE1FTlRfTUFQID0gbmV3IE1hcChbXG4gICAgJ2F0dHJpYnV0ZU5hbWUnLFxuICAgICdhdHRyaWJ1dGVUeXBlJyxcbiAgICAnYmFzZUZyZXF1ZW5jeScsXG4gICAgJ2Jhc2VQcm9maWxlJyxcbiAgICAnY2FsY01vZGUnLFxuICAgICdjbGlwUGF0aFVuaXRzJyxcbiAgICAnZGlmZnVzZUNvbnN0YW50JyxcbiAgICAnZWRnZU1vZGUnLFxuICAgICdmaWx0ZXJVbml0cycsXG4gICAgJ2dseXBoUmVmJyxcbiAgICAnZ3JhZGllbnRUcmFuc2Zvcm0nLFxuICAgICdncmFkaWVudFVuaXRzJyxcbiAgICAna2VybmVsTWF0cml4JyxcbiAgICAna2VybmVsVW5pdExlbmd0aCcsXG4gICAgJ2tleVBvaW50cycsXG4gICAgJ2tleVNwbGluZXMnLFxuICAgICdrZXlUaW1lcycsXG4gICAgJ2xlbmd0aEFkanVzdCcsXG4gICAgJ2xpbWl0aW5nQ29uZUFuZ2xlJyxcbiAgICAnbWFya2VySGVpZ2h0JyxcbiAgICAnbWFya2VyVW5pdHMnLFxuICAgICdtYXJrZXJXaWR0aCcsXG4gICAgJ21hc2tDb250ZW50VW5pdHMnLFxuICAgICdtYXNrVW5pdHMnLFxuICAgICdudW1PY3RhdmVzJyxcbiAgICAncGF0aExlbmd0aCcsXG4gICAgJ3BhdHRlcm5Db250ZW50VW5pdHMnLFxuICAgICdwYXR0ZXJuVHJhbnNmb3JtJyxcbiAgICAncGF0dGVyblVuaXRzJyxcbiAgICAncG9pbnRzQXRYJyxcbiAgICAncG9pbnRzQXRZJyxcbiAgICAncG9pbnRzQXRaJyxcbiAgICAncHJlc2VydmVBbHBoYScsXG4gICAgJ3ByZXNlcnZlQXNwZWN0UmF0aW8nLFxuICAgICdwcmltaXRpdmVVbml0cycsXG4gICAgJ3JlZlgnLFxuICAgICdyZWZZJyxcbiAgICAncmVwZWF0Q291bnQnLFxuICAgICdyZXBlYXREdXInLFxuICAgICdyZXF1aXJlZEV4dGVuc2lvbnMnLFxuICAgICdyZXF1aXJlZEZlYXR1cmVzJyxcbiAgICAnc3BlY3VsYXJDb25zdGFudCcsXG4gICAgJ3NwZWN1bGFyRXhwb25lbnQnLFxuICAgICdzcHJlYWRNZXRob2QnLFxuICAgICdzdGFydE9mZnNldCcsXG4gICAgJ3N0ZERldmlhdGlvbicsXG4gICAgJ3N0aXRjaFRpbGVzJyxcbiAgICAnc3VyZmFjZVNjYWxlJyxcbiAgICAnc3lzdGVtTGFuZ3VhZ2UnLFxuICAgICd0YWJsZVZhbHVlcycsXG4gICAgJ3RhcmdldFgnLFxuICAgICd0YXJnZXRZJyxcbiAgICAndGV4dExlbmd0aCcsXG4gICAgJ3ZpZXdCb3gnLFxuICAgICd2aWV3VGFyZ2V0JyxcbiAgICAneENoYW5uZWxTZWxlY3RvcicsXG4gICAgJ3lDaGFubmVsU2VsZWN0b3InLFxuICAgICd6b29tQW5kUGFuJyxcbl0ubWFwKChhdHRyKSA9PiBbYXR0ci50b0xvd2VyQ2FzZSgpLCBhdHRyXSkpO1xuY29uc3QgWE1MX0FUVFJTX0FESlVTVE1FTlRfTUFQID0gbmV3IE1hcChbXG4gICAgWyd4bGluazphY3R1YXRlJywgeyBwcmVmaXg6ICd4bGluaycsIG5hbWU6ICdhY3R1YXRlJywgbmFtZXNwYWNlOiBOUy5YTElOSyB9XSxcbiAgICBbJ3hsaW5rOmFyY3JvbGUnLCB7IHByZWZpeDogJ3hsaW5rJywgbmFtZTogJ2FyY3JvbGUnLCBuYW1lc3BhY2U6IE5TLlhMSU5LIH1dLFxuICAgIFsneGxpbms6aHJlZicsIHsgcHJlZml4OiAneGxpbmsnLCBuYW1lOiAnaHJlZicsIG5hbWVzcGFjZTogTlMuWExJTksgfV0sXG4gICAgWyd4bGluazpyb2xlJywgeyBwcmVmaXg6ICd4bGluaycsIG5hbWU6ICdyb2xlJywgbmFtZXNwYWNlOiBOUy5YTElOSyB9XSxcbiAgICBbJ3hsaW5rOnNob3cnLCB7IHByZWZpeDogJ3hsaW5rJywgbmFtZTogJ3Nob3cnLCBuYW1lc3BhY2U6IE5TLlhMSU5LIH1dLFxuICAgIFsneGxpbms6dGl0bGUnLCB7IHByZWZpeDogJ3hsaW5rJywgbmFtZTogJ3RpdGxlJywgbmFtZXNwYWNlOiBOUy5YTElOSyB9XSxcbiAgICBbJ3hsaW5rOnR5cGUnLCB7IHByZWZpeDogJ3hsaW5rJywgbmFtZTogJ3R5cGUnLCBuYW1lc3BhY2U6IE5TLlhMSU5LIH1dLFxuICAgIFsneG1sOmJhc2UnLCB7IHByZWZpeDogJ3htbCcsIG5hbWU6ICdiYXNlJywgbmFtZXNwYWNlOiBOUy5YTUwgfV0sXG4gICAgWyd4bWw6bGFuZycsIHsgcHJlZml4OiAneG1sJywgbmFtZTogJ2xhbmcnLCBuYW1lc3BhY2U6IE5TLlhNTCB9XSxcbiAgICBbJ3htbDpzcGFjZScsIHsgcHJlZml4OiAneG1sJywgbmFtZTogJ3NwYWNlJywgbmFtZXNwYWNlOiBOUy5YTUwgfV0sXG4gICAgWyd4bWxucycsIHsgcHJlZml4OiAnJywgbmFtZTogJ3htbG5zJywgbmFtZXNwYWNlOiBOUy5YTUxOUyB9XSxcbiAgICBbJ3htbG5zOnhsaW5rJywgeyBwcmVmaXg6ICd4bWxucycsIG5hbWU6ICd4bGluaycsIG5hbWVzcGFjZTogTlMuWE1MTlMgfV0sXG5dKTtcbi8vU1ZHIHRhZyBuYW1lcyBhZGp1c3RtZW50IG1hcFxuZXhwb3J0IGNvbnN0IFNWR19UQUdfTkFNRVNfQURKVVNUTUVOVF9NQVAgPSBuZXcgTWFwKFtcbiAgICAnYWx0R2x5cGgnLFxuICAgICdhbHRHbHlwaERlZicsXG4gICAgJ2FsdEdseXBoSXRlbScsXG4gICAgJ2FuaW1hdGVDb2xvcicsXG4gICAgJ2FuaW1hdGVNb3Rpb24nLFxuICAgICdhbmltYXRlVHJhbnNmb3JtJyxcbiAgICAnY2xpcFBhdGgnLFxuICAgICdmZUJsZW5kJyxcbiAgICAnZmVDb2xvck1hdHJpeCcsXG4gICAgJ2ZlQ29tcG9uZW50VHJhbnNmZXInLFxuICAgICdmZUNvbXBvc2l0ZScsXG4gICAgJ2ZlQ29udm9sdmVNYXRyaXgnLFxuICAgICdmZURpZmZ1c2VMaWdodGluZycsXG4gICAgJ2ZlRGlzcGxhY2VtZW50TWFwJyxcbiAgICAnZmVEaXN0YW50TGlnaHQnLFxuICAgICdmZUZsb29kJyxcbiAgICAnZmVGdW5jQScsXG4gICAgJ2ZlRnVuY0InLFxuICAgICdmZUZ1bmNHJyxcbiAgICAnZmVGdW5jUicsXG4gICAgJ2ZlR2F1c3NpYW5CbHVyJyxcbiAgICAnZmVJbWFnZScsXG4gICAgJ2ZlTWVyZ2UnLFxuICAgICdmZU1lcmdlTm9kZScsXG4gICAgJ2ZlTW9ycGhvbG9neScsXG4gICAgJ2ZlT2Zmc2V0JyxcbiAgICAnZmVQb2ludExpZ2h0JyxcbiAgICAnZmVTcGVjdWxhckxpZ2h0aW5nJyxcbiAgICAnZmVTcG90TGlnaHQnLFxuICAgICdmZVRpbGUnLFxuICAgICdmZVR1cmJ1bGVuY2UnLFxuICAgICdmb3JlaWduT2JqZWN0JyxcbiAgICAnZ2x5cGhSZWYnLFxuICAgICdsaW5lYXJHcmFkaWVudCcsXG4gICAgJ3JhZGlhbEdyYWRpZW50JyxcbiAgICAndGV4dFBhdGgnLFxuXS5tYXAoKHRuKSA9PiBbdG4udG9Mb3dlckNhc2UoKSwgdG5dKSk7XG4vL1RhZ3MgdGhhdCBjYXVzZXMgZXhpdCBmcm9tIGZvcmVpZ24gY29udGVudFxuY29uc3QgRVhJVFNfRk9SRUlHTl9DT05URU5UID0gbmV3IFNldChbXG4gICAgJC5CLFxuICAgICQuQklHLFxuICAgICQuQkxPQ0tRVU9URSxcbiAgICAkLkJPRFksXG4gICAgJC5CUixcbiAgICAkLkNFTlRFUixcbiAgICAkLkNPREUsXG4gICAgJC5ERCxcbiAgICAkLkRJVixcbiAgICAkLkRMLFxuICAgICQuRFQsXG4gICAgJC5FTSxcbiAgICAkLkVNQkVELFxuICAgICQuSDEsXG4gICAgJC5IMixcbiAgICAkLkgzLFxuICAgICQuSDQsXG4gICAgJC5INSxcbiAgICAkLkg2LFxuICAgICQuSEVBRCxcbiAgICAkLkhSLFxuICAgICQuSSxcbiAgICAkLklNRyxcbiAgICAkLkxJLFxuICAgICQuTElTVElORyxcbiAgICAkLk1FTlUsXG4gICAgJC5NRVRBLFxuICAgICQuTk9CUixcbiAgICAkLk9MLFxuICAgICQuUCxcbiAgICAkLlBSRSxcbiAgICAkLlJVQlksXG4gICAgJC5TLFxuICAgICQuU01BTEwsXG4gICAgJC5TUEFOLFxuICAgICQuU1RST05HLFxuICAgICQuU1RSSUtFLFxuICAgICQuU1VCLFxuICAgICQuU1VQLFxuICAgICQuVEFCTEUsXG4gICAgJC5UVCxcbiAgICAkLlUsXG4gICAgJC5VTCxcbiAgICAkLlZBUixcbl0pO1xuLy9DaGVjayBleGl0IGZyb20gZm9yZWlnbiBjb250ZW50XG5leHBvcnQgZnVuY3Rpb24gY2F1c2VzRXhpdChzdGFydFRhZ1Rva2VuKSB7XG4gICAgY29uc3QgdG4gPSBzdGFydFRhZ1Rva2VuLnRhZ0lEO1xuICAgIGNvbnN0IGlzRm9udFdpdGhBdHRycyA9IHRuID09PSAkLkZPTlQgJiZcbiAgICAgICAgc3RhcnRUYWdUb2tlbi5hdHRycy5zb21lKCh7IG5hbWUgfSkgPT4gbmFtZSA9PT0gQVRUUlMuQ09MT1IgfHwgbmFtZSA9PT0gQVRUUlMuU0laRSB8fCBuYW1lID09PSBBVFRSUy5GQUNFKTtcbiAgICByZXR1cm4gaXNGb250V2l0aEF0dHJzIHx8IEVYSVRTX0ZPUkVJR05fQ09OVEVOVC5oYXModG4pO1xufVxuLy9Ub2tlbiBhZGp1c3RtZW50c1xuZXhwb3J0IGZ1bmN0aW9uIGFkanVzdFRva2VuTWF0aE1MQXR0cnModG9rZW4pIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRva2VuLmF0dHJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICh0b2tlbi5hdHRyc1tpXS5uYW1lID09PSBERUZJTklUSU9OX1VSTF9BVFRSKSB7XG4gICAgICAgICAgICB0b2tlbi5hdHRyc1tpXS5uYW1lID0gQURKVVNURURfREVGSU5JVElPTl9VUkxfQVRUUjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIGFkanVzdFRva2VuU1ZHQXR0cnModG9rZW4pIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRva2VuLmF0dHJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGFkanVzdGVkQXR0ck5hbWUgPSBTVkdfQVRUUlNfQURKVVNUTUVOVF9NQVAuZ2V0KHRva2VuLmF0dHJzW2ldLm5hbWUpO1xuICAgICAgICBpZiAoYWRqdXN0ZWRBdHRyTmFtZSAhPSBudWxsKSB7XG4gICAgICAgICAgICB0b2tlbi5hdHRyc1tpXS5uYW1lID0gYWRqdXN0ZWRBdHRyTmFtZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBhZGp1c3RUb2tlblhNTEF0dHJzKHRva2VuKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0b2tlbi5hdHRycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBhZGp1c3RlZEF0dHJFbnRyeSA9IFhNTF9BVFRSU19BREpVU1RNRU5UX01BUC5nZXQodG9rZW4uYXR0cnNbaV0ubmFtZSk7XG4gICAgICAgIGlmIChhZGp1c3RlZEF0dHJFbnRyeSkge1xuICAgICAgICAgICAgdG9rZW4uYXR0cnNbaV0ucHJlZml4ID0gYWRqdXN0ZWRBdHRyRW50cnkucHJlZml4O1xuICAgICAgICAgICAgdG9rZW4uYXR0cnNbaV0ubmFtZSA9IGFkanVzdGVkQXR0ckVudHJ5Lm5hbWU7XG4gICAgICAgICAgICB0b2tlbi5hdHRyc1tpXS5uYW1lc3BhY2UgPSBhZGp1c3RlZEF0dHJFbnRyeS5uYW1lc3BhY2U7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gYWRqdXN0VG9rZW5TVkdUYWdOYW1lKHRva2VuKSB7XG4gICAgY29uc3QgYWRqdXN0ZWRUYWdOYW1lID0gU1ZHX1RBR19OQU1FU19BREpVU1RNRU5UX01BUC5nZXQodG9rZW4udGFnTmFtZSk7XG4gICAgaWYgKGFkanVzdGVkVGFnTmFtZSAhPSBudWxsKSB7XG4gICAgICAgIHRva2VuLnRhZ05hbWUgPSBhZGp1c3RlZFRhZ05hbWU7XG4gICAgICAgIHRva2VuLnRhZ0lEID0gZ2V0VGFnSUQodG9rZW4udGFnTmFtZSk7XG4gICAgfVxufVxuLy9JbnRlZ3JhdGlvbiBwb2ludHNcbmZ1bmN0aW9uIGlzTWF0aE1MVGV4dEludGVncmF0aW9uUG9pbnQodG4sIG5zKSB7XG4gICAgcmV0dXJuIG5zID09PSBOUy5NQVRITUwgJiYgKHRuID09PSAkLk1JIHx8IHRuID09PSAkLk1PIHx8IHRuID09PSAkLk1OIHx8IHRuID09PSAkLk1TIHx8IHRuID09PSAkLk1URVhUKTtcbn1cbmZ1bmN0aW9uIGlzSHRtbEludGVncmF0aW9uUG9pbnQodG4sIG5zLCBhdHRycykge1xuICAgIGlmIChucyA9PT0gTlMuTUFUSE1MICYmIHRuID09PSAkLkFOTk9UQVRJT05fWE1MKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXR0cnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChhdHRyc1tpXS5uYW1lID09PSBBVFRSUy5FTkNPRElORykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gYXR0cnNbaV0udmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgPT09IE1JTUVfVFlQRVMuVEVYVF9IVE1MIHx8IHZhbHVlID09PSBNSU1FX1RZUEVTLkFQUExJQ0FUSU9OX1hNTDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnMgPT09IE5TLlNWRyAmJiAodG4gPT09ICQuRk9SRUlHTl9PQkpFQ1QgfHwgdG4gPT09ICQuREVTQyB8fCB0biA9PT0gJC5USVRMRSk7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNJbnRlZ3JhdGlvblBvaW50KHRuLCBucywgYXR0cnMsIGZvcmVpZ25OUykge1xuICAgIHJldHVybiAoKCghZm9yZWlnbk5TIHx8IGZvcmVpZ25OUyA9PT0gTlMuSFRNTCkgJiYgaXNIdG1sSW50ZWdyYXRpb25Qb2ludCh0biwgbnMsIGF0dHJzKSkgfHxcbiAgICAgICAgKCghZm9yZWlnbk5TIHx8IGZvcmVpZ25OUyA9PT0gTlMuTUFUSE1MKSAmJiBpc01hdGhNTFRleHRJbnRlZ3JhdGlvblBvaW50KHRuLCBucykpKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZvcmVpZ24tY29udGVudC5qcy5tYXAiLCAiaW1wb3J0IHsgVG9rZW5pemVyLCBUb2tlbml6ZXJNb2RlIH0gZnJvbSAnLi4vdG9rZW5pemVyL2luZGV4LmpzJztcbmltcG9ydCB7IE9wZW5FbGVtZW50U3RhY2sgfSBmcm9tICcuL29wZW4tZWxlbWVudC1zdGFjay5qcyc7XG5pbXBvcnQgeyBGb3JtYXR0aW5nRWxlbWVudExpc3QsIEVudHJ5VHlwZSB9IGZyb20gJy4vZm9ybWF0dGluZy1lbGVtZW50LWxpc3QuanMnO1xuaW1wb3J0IHsgZGVmYXVsdFRyZWVBZGFwdGVyIH0gZnJvbSAnLi4vdHJlZS1hZGFwdGVycy9kZWZhdWx0LmpzJztcbmltcG9ydCAqIGFzIGRvY3R5cGUgZnJvbSAnLi4vY29tbW9uL2RvY3R5cGUuanMnO1xuaW1wb3J0ICogYXMgZm9yZWlnbkNvbnRlbnQgZnJvbSAnLi4vY29tbW9uL2ZvcmVpZ24tY29udGVudC5qcyc7XG5pbXBvcnQgeyBFUlIgfSBmcm9tICcuLi9jb21tb24vZXJyb3ItY29kZXMuanMnO1xuaW1wb3J0ICogYXMgdW5pY29kZSBmcm9tICcuLi9jb21tb24vdW5pY29kZS5qcyc7XG5pbXBvcnQgeyBUQUdfSUQgYXMgJCwgVEFHX05BTUVTIGFzIFROLCBOUywgQVRUUlMsIFNQRUNJQUxfRUxFTUVOVFMsIERPQ1VNRU5UX01PREUsIGlzTnVtYmVyZWRIZWFkZXIsIGdldFRhZ0lELCB9IGZyb20gJy4uL2NvbW1vbi9odG1sLmpzJztcbmltcG9ydCB7IFRva2VuVHlwZSwgZ2V0VG9rZW5BdHRyLCB9IGZyb20gJy4uL2NvbW1vbi90b2tlbi5qcyc7XG4vL01pc2MgY29uc3RhbnRzXG5jb25zdCBISURERU5fSU5QVVRfVFlQRSA9ICdoaWRkZW4nO1xuLy9BZG9wdGlvbiBhZ2VuY3kgbG9vcHMgaXRlcmF0aW9uIGNvdW50XG5jb25zdCBBQV9PVVRFUl9MT09QX0lURVIgPSA4O1xuY29uc3QgQUFfSU5ORVJfTE9PUF9JVEVSID0gMztcbi8vSW5zZXJ0aW9uIG1vZGVzXG52YXIgSW5zZXJ0aW9uTW9kZTtcbihmdW5jdGlvbiAoSW5zZXJ0aW9uTW9kZSkge1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOSVRJQUxcIl0gPSAwXSA9IFwiSU5JVElBTFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIkJFRk9SRV9IVE1MXCJdID0gMV0gPSBcIkJFRk9SRV9IVE1MXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiQkVGT1JFX0hFQURcIl0gPSAyXSA9IFwiQkVGT1JFX0hFQURcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9IRUFEXCJdID0gM10gPSBcIklOX0hFQURcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9IRUFEX05PX1NDUklQVFwiXSA9IDRdID0gXCJJTl9IRUFEX05PX1NDUklQVFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIkFGVEVSX0hFQURcIl0gPSA1XSA9IFwiQUZURVJfSEVBRFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX0JPRFlcIl0gPSA2XSA9IFwiSU5fQk9EWVwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIlRFWFRcIl0gPSA3XSA9IFwiVEVYVFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX1RBQkxFXCJdID0gOF0gPSBcIklOX1RBQkxFXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fVEFCTEVfVEVYVFwiXSA9IDldID0gXCJJTl9UQUJMRV9URVhUXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fQ0FQVElPTlwiXSA9IDEwXSA9IFwiSU5fQ0FQVElPTlwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX0NPTFVNTl9HUk9VUFwiXSA9IDExXSA9IFwiSU5fQ09MVU1OX0dST1VQXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fVEFCTEVfQk9EWVwiXSA9IDEyXSA9IFwiSU5fVEFCTEVfQk9EWVwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX1JPV1wiXSA9IDEzXSA9IFwiSU5fUk9XXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fQ0VMTFwiXSA9IDE0XSA9IFwiSU5fQ0VMTFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX1NFTEVDVFwiXSA9IDE1XSA9IFwiSU5fU0VMRUNUXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fU0VMRUNUX0lOX1RBQkxFXCJdID0gMTZdID0gXCJJTl9TRUxFQ1RfSU5fVEFCTEVcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9URU1QTEFURVwiXSA9IDE3XSA9IFwiSU5fVEVNUExBVEVcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJBRlRFUl9CT0RZXCJdID0gMThdID0gXCJBRlRFUl9CT0RZXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fRlJBTUVTRVRcIl0gPSAxOV0gPSBcIklOX0ZSQU1FU0VUXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiQUZURVJfRlJBTUVTRVRcIl0gPSAyMF0gPSBcIkFGVEVSX0ZSQU1FU0VUXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiQUZURVJfQUZURVJfQk9EWVwiXSA9IDIxXSA9IFwiQUZURVJfQUZURVJfQk9EWVwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIkFGVEVSX0FGVEVSX0ZSQU1FU0VUXCJdID0gMjJdID0gXCJBRlRFUl9BRlRFUl9GUkFNRVNFVFwiO1xufSkoSW5zZXJ0aW9uTW9kZSB8fCAoSW5zZXJ0aW9uTW9kZSA9IHt9KSk7XG5jb25zdCBCQVNFX0xPQyA9IHtcbiAgICBzdGFydExpbmU6IC0xLFxuICAgIHN0YXJ0Q29sOiAtMSxcbiAgICBzdGFydE9mZnNldDogLTEsXG4gICAgZW5kTGluZTogLTEsXG4gICAgZW5kQ29sOiAtMSxcbiAgICBlbmRPZmZzZXQ6IC0xLFxufTtcbmNvbnN0IFRBQkxFX1NUUlVDVFVSRV9UQUdTID0gbmV3IFNldChbJC5UQUJMRSwgJC5UQk9EWSwgJC5URk9PVCwgJC5USEVBRCwgJC5UUl0pO1xuY29uc3QgZGVmYXVsdFBhcnNlck9wdGlvbnMgPSB7XG4gICAgc2NyaXB0aW5nRW5hYmxlZDogdHJ1ZSxcbiAgICBzb3VyY2VDb2RlTG9jYXRpb25JbmZvOiBmYWxzZSxcbiAgICB0cmVlQWRhcHRlcjogZGVmYXVsdFRyZWVBZGFwdGVyLFxuICAgIG9uUGFyc2VFcnJvcjogbnVsbCxcbn07XG4vL1BhcnNlclxuZXhwb3J0IGNsYXNzIFBhcnNlciB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucywgZG9jdW1lbnQsIGZyYWdtZW50Q29udGV4dCA9IG51bGwsIHNjcmlwdEhhbmRsZXIgPSBudWxsKSB7XG4gICAgICAgIHRoaXMuZnJhZ21lbnRDb250ZXh0ID0gZnJhZ21lbnRDb250ZXh0O1xuICAgICAgICB0aGlzLnNjcmlwdEhhbmRsZXIgPSBzY3JpcHRIYW5kbGVyO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IG51bGw7XG4gICAgICAgIHRoaXMuc3RvcHBlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOSVRJQUw7XG4gICAgICAgIHRoaXMub3JpZ2luYWxJbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTklUSUFMO1xuICAgICAgICB0aGlzLmhlYWRFbGVtZW50ID0gbnVsbDtcbiAgICAgICAgdGhpcy5mb3JtRWxlbWVudCA9IG51bGw7XG4gICAgICAgIC8qKiBJbmRpY2F0ZXMgdGhhdCB0aGUgY3VycmVudCBub2RlIGlzIG5vdCBhbiBlbGVtZW50IGluIHRoZSBIVE1MIG5hbWVzcGFjZSAqL1xuICAgICAgICB0aGlzLmN1cnJlbnROb3RJbkhUTUwgPSBmYWxzZTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSB0ZW1wbGF0ZSBpbnNlcnRpb24gbW9kZSBzdGFjayBpcyBtYWludGFpbmVkIGZyb20gdGhlIGxlZnQuXG4gICAgICAgICAqIEllLiB0aGUgdG9wbW9zdCBlbGVtZW50IHdpbGwgYWx3YXlzIGhhdmUgaW5kZXggMC5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMudG1wbEluc2VydGlvbk1vZGVTdGFjayA9IFtdO1xuICAgICAgICB0aGlzLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnMgPSBbXTtcbiAgICAgICAgdGhpcy5oYXNOb25XaGl0ZXNwYWNlUGVuZGluZ0NoYXJhY3RlclRva2VuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZnJhbWVzZXRPayA9IHRydWU7XG4gICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZm9zdGVyUGFyZW50aW5nRW5hYmxlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAgICAgICAuLi5kZWZhdWx0UGFyc2VyT3B0aW9ucyxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMudHJlZUFkYXB0ZXIgPSB0aGlzLm9wdGlvbnMudHJlZUFkYXB0ZXI7XG4gICAgICAgIHRoaXMub25QYXJzZUVycm9yID0gdGhpcy5vcHRpb25zLm9uUGFyc2VFcnJvcjtcbiAgICAgICAgLy8gQWx3YXlzIGVuYWJsZSBsb2NhdGlvbiBpbmZvIGlmIHdlIHJlcG9ydCBwYXJzZSBlcnJvcnMuXG4gICAgICAgIGlmICh0aGlzLm9uUGFyc2VFcnJvcikge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZG9jdW1lbnQgPSBkb2N1bWVudCAhPT0gbnVsbCAmJiBkb2N1bWVudCAhPT0gdm9pZCAwID8gZG9jdW1lbnQgOiB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZURvY3VtZW50KCk7XG4gICAgICAgIHRoaXMudG9rZW5pemVyID0gbmV3IFRva2VuaXplcih0aGlzLm9wdGlvbnMsIHRoaXMpO1xuICAgICAgICB0aGlzLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cyA9IG5ldyBGb3JtYXR0aW5nRWxlbWVudExpc3QodGhpcy50cmVlQWRhcHRlcik7XG4gICAgICAgIHRoaXMuZnJhZ21lbnRDb250ZXh0SUQgPSBmcmFnbWVudENvbnRleHQgPyBnZXRUYWdJRCh0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZnJhZ21lbnRDb250ZXh0KSkgOiAkLlVOS05PV047XG4gICAgICAgIHRoaXMuX3NldENvbnRleHRNb2RlcyhmcmFnbWVudENvbnRleHQgIT09IG51bGwgJiYgZnJhZ21lbnRDb250ZXh0ICE9PSB2b2lkIDAgPyBmcmFnbWVudENvbnRleHQgOiB0aGlzLmRvY3VtZW50LCB0aGlzLmZyYWdtZW50Q29udGV4dElEKTtcbiAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMgPSBuZXcgT3BlbkVsZW1lbnRTdGFjayh0aGlzLmRvY3VtZW50LCB0aGlzLnRyZWVBZGFwdGVyLCB0aGlzKTtcbiAgICB9XG4gICAgLy8gQVBJXG4gICAgc3RhdGljIHBhcnNlKGh0bWwsIG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcGFyc2VyID0gbmV3IHRoaXMob3B0aW9ucyk7XG4gICAgICAgIHBhcnNlci50b2tlbml6ZXIud3JpdGUoaHRtbCwgdHJ1ZSk7XG4gICAgICAgIHJldHVybiBwYXJzZXIuZG9jdW1lbnQ7XG4gICAgfVxuICAgIHN0YXRpYyBnZXRGcmFnbWVudFBhcnNlcihmcmFnbWVudENvbnRleHQsIG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3Qgb3B0cyA9IHtcbiAgICAgICAgICAgIC4uLmRlZmF1bHRQYXJzZXJPcHRpb25zLFxuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgfTtcbiAgICAgICAgLy9OT1RFOiB1c2UgYSA8dGVtcGxhdGU+IGVsZW1lbnQgYXMgdGhlIGZyYWdtZW50IGNvbnRleHQgaWYgbm8gY29udGV4dCBlbGVtZW50IHdhcyBwcm92aWRlZCxcbiAgICAgICAgLy9zbyB3ZSB3aWxsIHBhcnNlIGluIGEgXCJmb3JnaXZpbmdcIiBtYW5uZXJcbiAgICAgICAgZnJhZ21lbnRDb250ZXh0ICE9PSBudWxsICYmIGZyYWdtZW50Q29udGV4dCAhPT0gdm9pZCAwID8gZnJhZ21lbnRDb250ZXh0IDogKGZyYWdtZW50Q29udGV4dCA9IG9wdHMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudChUTi5URU1QTEFURSwgTlMuSFRNTCwgW10pKTtcbiAgICAgICAgLy9OT1RFOiBjcmVhdGUgYSBmYWtlIGVsZW1lbnQgd2hpY2ggd2lsbCBiZSB1c2VkIGFzIHRoZSBgZG9jdW1lbnRgIGZvciBmcmFnbWVudCBwYXJzaW5nLlxuICAgICAgICAvL1RoaXMgaXMgaW1wb3J0YW50IGZvciBqc2RvbSwgd2hlcmUgYSBuZXcgYGRvY3VtZW50YCBjYW5ub3QgYmUgY3JlYXRlZC4gVGhpcyBsZWQgdG9cbiAgICAgICAgLy9mcmFnbWVudCBwYXJzaW5nIG1lc3Npbmcgd2l0aCB0aGUgbWFpbiBgZG9jdW1lbnRgLlxuICAgICAgICBjb25zdCBkb2N1bWVudE1vY2sgPSBvcHRzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJ2RvY3VtZW50bW9jaycsIE5TLkhUTUwsIFtdKTtcbiAgICAgICAgY29uc3QgcGFyc2VyID0gbmV3IHRoaXMob3B0cywgZG9jdW1lbnRNb2NrLCBmcmFnbWVudENvbnRleHQpO1xuICAgICAgICBpZiAocGFyc2VyLmZyYWdtZW50Q29udGV4dElEID09PSAkLlRFTVBMQVRFKSB7XG4gICAgICAgICAgICBwYXJzZXIudG1wbEluc2VydGlvbk1vZGVTdGFjay51bnNoaWZ0KEluc2VydGlvbk1vZGUuSU5fVEVNUExBVEUpO1xuICAgICAgICB9XG4gICAgICAgIHBhcnNlci5faW5pdFRva2VuaXplckZvckZyYWdtZW50UGFyc2luZygpO1xuICAgICAgICBwYXJzZXIuX2luc2VydEZha2VSb290RWxlbWVudCgpO1xuICAgICAgICBwYXJzZXIuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgICAgICBwYXJzZXIuX2ZpbmRGb3JtSW5GcmFnbWVudENvbnRleHQoKTtcbiAgICAgICAgcmV0dXJuIHBhcnNlcjtcbiAgICB9XG4gICAgZ2V0RnJhZ21lbnQoKSB7XG4gICAgICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gdGhpcy50cmVlQWRhcHRlci5nZXRGaXJzdENoaWxkKHRoaXMuZG9jdW1lbnQpO1xuICAgICAgICBjb25zdCBmcmFnbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuICAgICAgICB0aGlzLl9hZG9wdE5vZGVzKHJvb3RFbGVtZW50LCBmcmFnbWVudCk7XG4gICAgICAgIHJldHVybiBmcmFnbWVudDtcbiAgICB9XG4gICAgLy9FcnJvcnNcbiAgICBfZXJyKHRva2VuLCBjb2RlLCBiZWZvcmVUb2tlbikge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghdGhpcy5vblBhcnNlRXJyb3IpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGxvYyA9IChfYSA9IHRva2VuLmxvY2F0aW9uKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBCQVNFX0xPQztcbiAgICAgICAgY29uc3QgZXJyID0ge1xuICAgICAgICAgICAgY29kZSxcbiAgICAgICAgICAgIHN0YXJ0TGluZTogbG9jLnN0YXJ0TGluZSxcbiAgICAgICAgICAgIHN0YXJ0Q29sOiBsb2Muc3RhcnRDb2wsXG4gICAgICAgICAgICBzdGFydE9mZnNldDogbG9jLnN0YXJ0T2Zmc2V0LFxuICAgICAgICAgICAgZW5kTGluZTogYmVmb3JlVG9rZW4gPyBsb2Muc3RhcnRMaW5lIDogbG9jLmVuZExpbmUsXG4gICAgICAgICAgICBlbmRDb2w6IGJlZm9yZVRva2VuID8gbG9jLnN0YXJ0Q29sIDogbG9jLmVuZENvbCxcbiAgICAgICAgICAgIGVuZE9mZnNldDogYmVmb3JlVG9rZW4gPyBsb2Muc3RhcnRPZmZzZXQgOiBsb2MuZW5kT2Zmc2V0LFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLm9uUGFyc2VFcnJvcihlcnIpO1xuICAgIH1cbiAgICAvL1N0YWNrIGV2ZW50c1xuICAgIG9uSXRlbVB1c2gobm9kZSwgdGlkLCBpc1RvcCkge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAoX2IgPSAoX2EgPSB0aGlzLnRyZWVBZGFwdGVyKS5vbkl0ZW1QdXNoKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSwgbm9kZSk7XG4gICAgICAgIGlmIChpc1RvcCAmJiB0aGlzLm9wZW5FbGVtZW50cy5zdGFja1RvcCA+IDApXG4gICAgICAgICAgICB0aGlzLl9zZXRDb250ZXh0TW9kZXMobm9kZSwgdGlkKTtcbiAgICB9XG4gICAgb25JdGVtUG9wKG5vZGUsIGlzVG9wKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc291cmNlQ29kZUxvY2F0aW9uSW5mbykge1xuICAgICAgICAgICAgdGhpcy5fc2V0RW5kTG9jYXRpb24obm9kZSwgdGhpcy5jdXJyZW50VG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIChfYiA9IChfYSA9IHRoaXMudHJlZUFkYXB0ZXIpLm9uSXRlbVBvcCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EsIG5vZGUsIHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnQpO1xuICAgICAgICBpZiAoaXNUb3ApIHtcbiAgICAgICAgICAgIGxldCBjdXJyZW50O1xuICAgICAgICAgICAgbGV0IGN1cnJlbnRUYWdJZDtcbiAgICAgICAgICAgIGlmICh0aGlzLm9wZW5FbGVtZW50cy5zdGFja1RvcCA9PT0gMCAmJiB0aGlzLmZyYWdtZW50Q29udGV4dCkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnQgPSB0aGlzLmZyYWdtZW50Q29udGV4dDtcbiAgICAgICAgICAgICAgICBjdXJyZW50VGFnSWQgPSB0aGlzLmZyYWdtZW50Q29udGV4dElEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgKHsgY3VycmVudCwgY3VycmVudFRhZ0lkIH0gPSB0aGlzLm9wZW5FbGVtZW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9zZXRDb250ZXh0TW9kZXMoY3VycmVudCwgY3VycmVudFRhZ0lkKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfc2V0Q29udGV4dE1vZGVzKGN1cnJlbnQsIHRpZCkge1xuICAgICAgICBjb25zdCBpc0hUTUwgPSBjdXJyZW50ID09PSB0aGlzLmRvY3VtZW50IHx8IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGN1cnJlbnQpID09PSBOUy5IVE1MO1xuICAgICAgICB0aGlzLmN1cnJlbnROb3RJbkhUTUwgPSAhaXNIVE1MO1xuICAgICAgICB0aGlzLnRva2VuaXplci5pbkZvcmVpZ25Ob2RlID0gIWlzSFRNTCAmJiAhdGhpcy5faXNJbnRlZ3JhdGlvblBvaW50KHRpZCwgY3VycmVudCk7XG4gICAgfVxuICAgIF9zd2l0Y2hUb1RleHRQYXJzaW5nKGN1cnJlbnRUb2tlbiwgbmV4dFRva2VuaXplclN0YXRlKSB7XG4gICAgICAgIHRoaXMuX2luc2VydEVsZW1lbnQoY3VycmVudFRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBuZXh0VG9rZW5pemVyU3RhdGU7XG4gICAgICAgIHRoaXMub3JpZ2luYWxJbnNlcnRpb25Nb2RlID0gdGhpcy5pbnNlcnRpb25Nb2RlO1xuICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLlRFWFQ7XG4gICAgfVxuICAgIHN3aXRjaFRvUGxhaW50ZXh0UGFyc2luZygpIHtcbiAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5URVhUO1xuICAgICAgICB0aGlzLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQk9EWTtcbiAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXJNb2RlLlBMQUlOVEVYVDtcbiAgICB9XG4gICAgLy9GcmFnbWVudCBwYXJzaW5nXG4gICAgX2dldEFkanVzdGVkQ3VycmVudEVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wZW5FbGVtZW50cy5zdGFja1RvcCA9PT0gMCAmJiB0aGlzLmZyYWdtZW50Q29udGV4dFxuICAgICAgICAgICAgPyB0aGlzLmZyYWdtZW50Q29udGV4dFxuICAgICAgICAgICAgOiB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50O1xuICAgIH1cbiAgICBfZmluZEZvcm1JbkZyYWdtZW50Q29udGV4dCgpIHtcbiAgICAgICAgbGV0IG5vZGUgPSB0aGlzLmZyYWdtZW50Q29udGV4dDtcbiAgICAgICAgd2hpbGUgKG5vZGUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUobm9kZSkgPT09IFROLkZPUk0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1FbGVtZW50ID0gbm9kZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5vZGUgPSB0aGlzLnRyZWVBZGFwdGVyLmdldFBhcmVudE5vZGUobm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2luaXRUb2tlbml6ZXJGb3JGcmFnbWVudFBhcnNpbmcoKSB7XG4gICAgICAgIGlmICghdGhpcy5mcmFnbWVudENvbnRleHQgfHwgdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5mcmFnbWVudENvbnRleHQpICE9PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoICh0aGlzLmZyYWdtZW50Q29udGV4dElEKSB7XG4gICAgICAgICAgICBjYXNlICQuVElUTEU6XG4gICAgICAgICAgICBjYXNlICQuVEVYVEFSRUE6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplck1vZGUuUkNEQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlNUWUxFOlxuICAgICAgICAgICAgY2FzZSAkLlhNUDpcbiAgICAgICAgICAgIGNhc2UgJC5JRlJBTUU6XG4gICAgICAgICAgICBjYXNlICQuTk9FTUJFRDpcbiAgICAgICAgICAgIGNhc2UgJC5OT0ZSQU1FUzpcbiAgICAgICAgICAgIGNhc2UgJC5OT1NDUklQVDoge1xuICAgICAgICAgICAgICAgIHRoaXMudG9rZW5pemVyLnN0YXRlID0gVG9rZW5pemVyTW9kZS5SQVdURVhUO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlNDUklQVDoge1xuICAgICAgICAgICAgICAgIHRoaXMudG9rZW5pemVyLnN0YXRlID0gVG9rZW5pemVyTW9kZS5TQ1JJUFRfREFUQTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5QTEFJTlRFWFQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplck1vZGUuUExBSU5URVhUO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICAvL1RyZWUgbXV0YXRpb25cbiAgICBfc2V0RG9jdW1lbnRUeXBlKHRva2VuKSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSB0b2tlbi5uYW1lIHx8ICcnO1xuICAgICAgICBjb25zdCBwdWJsaWNJZCA9IHRva2VuLnB1YmxpY0lkIHx8ICcnO1xuICAgICAgICBjb25zdCBzeXN0ZW1JZCA9IHRva2VuLnN5c3RlbUlkIHx8ICcnO1xuICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLnNldERvY3VtZW50VHlwZSh0aGlzLmRvY3VtZW50LCBuYW1lLCBwdWJsaWNJZCwgc3lzdGVtSWQpO1xuICAgICAgICBpZiAodG9rZW4ubG9jYXRpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IGRvY3VtZW50Q2hpbGRyZW4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldENoaWxkTm9kZXModGhpcy5kb2N1bWVudCk7XG4gICAgICAgICAgICBjb25zdCBkb2NUeXBlTm9kZSA9IGRvY3VtZW50Q2hpbGRyZW4uZmluZCgobm9kZSkgPT4gdGhpcy50cmVlQWRhcHRlci5pc0RvY3VtZW50VHlwZU5vZGUobm9kZSkpO1xuICAgICAgICAgICAgaWYgKGRvY1R5cGVOb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5zZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKGRvY1R5cGVOb2RlLCB0b2tlbi5sb2NhdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2F0dGFjaEVsZW1lbnRUb1RyZWUoZWxlbWVudCwgbG9jYXRpb24pIHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvKSB7XG4gICAgICAgICAgICBjb25zdCBsb2MgPSBsb2NhdGlvbiAmJiB7XG4gICAgICAgICAgICAgICAgLi4ubG9jYXRpb24sXG4gICAgICAgICAgICAgICAgc3RhcnRUYWc6IGxvY2F0aW9uLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuc2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihlbGVtZW50LCBsb2MpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9zaG91bGRGb3N0ZXJQYXJlbnRPbkluc2VydGlvbigpKSB7XG4gICAgICAgICAgICB0aGlzLl9mb3N0ZXJQYXJlbnRFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5vcGVuRWxlbWVudHMuY3VycmVudFRtcGxDb250ZW50T3JOb2RlO1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChwYXJlbnQsIGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9hcHBlbmRFbGVtZW50KHRva2VuLCBuYW1lc3BhY2VVUkkpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCh0b2tlbi50YWdOYW1lLCBuYW1lc3BhY2VVUkksIHRva2VuLmF0dHJzKTtcbiAgICAgICAgdGhpcy5fYXR0YWNoRWxlbWVudFRvVHJlZShlbGVtZW50LCB0b2tlbi5sb2NhdGlvbik7XG4gICAgfVxuICAgIF9pbnNlcnRFbGVtZW50KHRva2VuLCBuYW1lc3BhY2VVUkkpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCh0b2tlbi50YWdOYW1lLCBuYW1lc3BhY2VVUkksIHRva2VuLmF0dHJzKTtcbiAgICAgICAgdGhpcy5fYXR0YWNoRWxlbWVudFRvVHJlZShlbGVtZW50LCB0b2tlbi5sb2NhdGlvbik7XG4gICAgICAgIHRoaXMub3BlbkVsZW1lbnRzLnB1c2goZWxlbWVudCwgdG9rZW4udGFnSUQpO1xuICAgIH1cbiAgICBfaW5zZXJ0RmFrZUVsZW1lbnQodGFnTmFtZSwgdGFnSUQpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCh0YWdOYW1lLCBOUy5IVE1MLCBbXSk7XG4gICAgICAgIHRoaXMuX2F0dGFjaEVsZW1lbnRUb1RyZWUoZWxlbWVudCwgbnVsbCk7XG4gICAgICAgIHRoaXMub3BlbkVsZW1lbnRzLnB1c2goZWxlbWVudCwgdGFnSUQpO1xuICAgIH1cbiAgICBfaW5zZXJ0VGVtcGxhdGUodG9rZW4pIHtcbiAgICAgICAgY29uc3QgdG1wbCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCh0b2tlbi50YWdOYW1lLCBOUy5IVE1MLCB0b2tlbi5hdHRycyk7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcbiAgICAgICAgdGhpcy50cmVlQWRhcHRlci5zZXRUZW1wbGF0ZUNvbnRlbnQodG1wbCwgY29udGVudCk7XG4gICAgICAgIHRoaXMuX2F0dGFjaEVsZW1lbnRUb1RyZWUodG1wbCwgdG9rZW4ubG9jYXRpb24pO1xuICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5wdXNoKHRtcGwsIHRva2VuLnRhZ0lEKTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvKVxuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5zZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKGNvbnRlbnQsIG51bGwpO1xuICAgIH1cbiAgICBfaW5zZXJ0RmFrZVJvb3RFbGVtZW50KCkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KFROLkhUTUwsIE5TLkhUTUwsIFtdKTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvKVxuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5zZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKGVsZW1lbnQsIG51bGwpO1xuICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnQsIGVsZW1lbnQpO1xuICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5wdXNoKGVsZW1lbnQsICQuSFRNTCk7XG4gICAgfVxuICAgIF9hcHBlbmRDb21tZW50Tm9kZSh0b2tlbiwgcGFyZW50KSB7XG4gICAgICAgIGNvbnN0IGNvbW1lbnROb2RlID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVDb21tZW50Tm9kZSh0b2tlbi5kYXRhKTtcbiAgICAgICAgdGhpcy50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChwYXJlbnQsIGNvbW1lbnROb2RlKTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvKSB7XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLnNldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24oY29tbWVudE5vZGUsIHRva2VuLmxvY2F0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfaW5zZXJ0Q2hhcmFjdGVycyh0b2tlbikge1xuICAgICAgICBsZXQgcGFyZW50O1xuICAgICAgICBsZXQgYmVmb3JlRWxlbWVudDtcbiAgICAgICAgaWYgKHRoaXMuX3Nob3VsZEZvc3RlclBhcmVudE9uSW5zZXJ0aW9uKCkpIHtcbiAgICAgICAgICAgICh7IHBhcmVudCwgYmVmb3JlRWxlbWVudCB9ID0gdGhpcy5fZmluZEZvc3RlclBhcmVudGluZ0xvY2F0aW9uKCkpO1xuICAgICAgICAgICAgaWYgKGJlZm9yZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmluc2VydFRleHRCZWZvcmUocGFyZW50LCB0b2tlbi5jaGFycywgYmVmb3JlRWxlbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmluc2VydFRleHQocGFyZW50LCB0b2tlbi5jaGFycyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBwYXJlbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50VG1wbENvbnRlbnRPck5vZGU7XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmluc2VydFRleHQocGFyZW50LCB0b2tlbi5jaGFycyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0b2tlbi5sb2NhdGlvbilcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3Qgc2libGluZ3MgPSB0aGlzLnRyZWVBZGFwdGVyLmdldENoaWxkTm9kZXMocGFyZW50KTtcbiAgICAgICAgY29uc3QgdGV4dE5vZGVJZHggPSBiZWZvcmVFbGVtZW50ID8gc2libGluZ3MubGFzdEluZGV4T2YoYmVmb3JlRWxlbWVudCkgOiBzaWJsaW5ncy5sZW5ndGg7XG4gICAgICAgIGNvbnN0IHRleHROb2RlID0gc2libGluZ3NbdGV4dE5vZGVJZHggLSAxXTtcbiAgICAgICAgLy9OT1RFOiBpZiB3ZSBoYXZlIGEgbG9jYXRpb24gYXNzaWduZWQgYnkgYW5vdGhlciB0b2tlbiwgdGhlbiBqdXN0IHVwZGF0ZSB0aGUgZW5kIHBvc2l0aW9uXG4gICAgICAgIGNvbnN0IHRuTG9jID0gdGhpcy50cmVlQWRhcHRlci5nZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKHRleHROb2RlKTtcbiAgICAgICAgaWYgKHRuTG9jKSB7XG4gICAgICAgICAgICBjb25zdCB7IGVuZExpbmUsIGVuZENvbCwgZW5kT2Zmc2V0IH0gPSB0b2tlbi5sb2NhdGlvbjtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIudXBkYXRlTm9kZVNvdXJjZUNvZGVMb2NhdGlvbih0ZXh0Tm9kZSwgeyBlbmRMaW5lLCBlbmRDb2wsIGVuZE9mZnNldCB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLm9wdGlvbnMuc291cmNlQ29kZUxvY2F0aW9uSW5mbykge1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5zZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKHRleHROb2RlLCB0b2tlbi5sb2NhdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2Fkb3B0Tm9kZXMoZG9ub3IsIHJlY2lwaWVudCkge1xuICAgICAgICBmb3IgKGxldCBjaGlsZCA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0Rmlyc3RDaGlsZChkb25vcik7IGNoaWxkOyBjaGlsZCA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0Rmlyc3RDaGlsZChkb25vcikpIHtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuZGV0YWNoTm9kZShjaGlsZCk7XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKHJlY2lwaWVudCwgY2hpbGQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9zZXRFbmRMb2NhdGlvbihlbGVtZW50LCBjbG9zaW5nVG9rZW4pIHtcbiAgICAgICAgaWYgKHRoaXMudHJlZUFkYXB0ZXIuZ2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihlbGVtZW50KSAmJiBjbG9zaW5nVG9rZW4ubG9jYXRpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IGN0TG9jID0gY2xvc2luZ1Rva2VuLmxvY2F0aW9uO1xuICAgICAgICAgICAgY29uc3QgdG4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCk7XG4gICAgICAgICAgICBjb25zdCBlbmRMb2MgPSBcbiAgICAgICAgICAgIC8vIE5PVEU6IEZvciBjYXNlcyBsaWtlIDxwPiA8cD4gPC9wPiAtIEZpcnN0ICdwJyBjbG9zZXMgd2l0aG91dCBhIGNsb3NpbmdcbiAgICAgICAgICAgIC8vIHRhZyBhbmQgZm9yIGNhc2VzIGxpa2UgPHRkPiA8cD4gPC90ZD4gLSAncCcgY2xvc2VzIHdpdGhvdXQgYSBjbG9zaW5nIHRhZy5cbiAgICAgICAgICAgIGNsb3NpbmdUb2tlbi50eXBlID09PSBUb2tlblR5cGUuRU5EX1RBRyAmJiB0biA9PT0gY2xvc2luZ1Rva2VuLnRhZ05hbWVcbiAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgZW5kVGFnOiB7IC4uLmN0TG9jIH0sXG4gICAgICAgICAgICAgICAgICAgIGVuZExpbmU6IGN0TG9jLmVuZExpbmUsXG4gICAgICAgICAgICAgICAgICAgIGVuZENvbDogY3RMb2MuZW5kQ29sLFxuICAgICAgICAgICAgICAgICAgICBlbmRPZmZzZXQ6IGN0TG9jLmVuZE9mZnNldCxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgIGVuZExpbmU6IGN0TG9jLnN0YXJ0TGluZSxcbiAgICAgICAgICAgICAgICAgICAgZW5kQ29sOiBjdExvYy5zdGFydENvbCxcbiAgICAgICAgICAgICAgICAgICAgZW5kT2Zmc2V0OiBjdExvYy5zdGFydE9mZnNldCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci51cGRhdGVOb2RlU291cmNlQ29kZUxvY2F0aW9uKGVsZW1lbnQsIGVuZExvYyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9Ub2tlbiBwcm9jZXNzaW5nXG4gICAgc2hvdWxkUHJvY2Vzc1N0YXJ0VGFnVG9rZW5JbkZvcmVpZ25Db250ZW50KHRva2VuKSB7XG4gICAgICAgIC8vIENoZWNrIHRoYXQgbmVpdGhlciBjdXJyZW50ID09PSBkb2N1bWVudCwgb3IgbnMgPT09IE5TLkhUTUxcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnROb3RJbkhUTUwpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGxldCBjdXJyZW50O1xuICAgICAgICBsZXQgY3VycmVudFRhZ0lkO1xuICAgICAgICBpZiAodGhpcy5vcGVuRWxlbWVudHMuc3RhY2tUb3AgPT09IDAgJiYgdGhpcy5mcmFnbWVudENvbnRleHQpIHtcbiAgICAgICAgICAgIGN1cnJlbnQgPSB0aGlzLmZyYWdtZW50Q29udGV4dDtcbiAgICAgICAgICAgIGN1cnJlbnRUYWdJZCA9IHRoaXMuZnJhZ21lbnRDb250ZXh0SUQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAoeyBjdXJyZW50LCBjdXJyZW50VGFnSWQgfSA9IHRoaXMub3BlbkVsZW1lbnRzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuU1ZHICYmXG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoY3VycmVudCkgPT09IFROLkFOTk9UQVRJT05fWE1MICYmXG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShjdXJyZW50KSA9PT0gTlMuTUFUSE1MKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgLy8gQ2hlY2sgdGhhdCBgY3VycmVudGAgaXMgbm90IGFuIGludGVncmF0aW9uIHBvaW50IGZvciBIVE1MIG9yIE1hdGhNTCBlbGVtZW50cy5cbiAgICAgICAgdGhpcy50b2tlbml6ZXIuaW5Gb3JlaWduTm9kZSB8fFxuICAgICAgICAgICAgLy8gSWYgaXQgX2lzXyBhbiBpbnRlZ3JhdGlvbiBwb2ludCwgdGhlbiB3ZSBtaWdodCBoYXZlIHRvIGNoZWNrIHRoYXQgaXQgaXMgbm90IGFuIEhUTUxcbiAgICAgICAgICAgIC8vIGludGVncmF0aW9uIHBvaW50LlxuICAgICAgICAgICAgKCh0b2tlbi50YWdJRCA9PT0gJC5NR0xZUEggfHwgdG9rZW4udGFnSUQgPT09ICQuTUFMSUdOTUFSSykgJiZcbiAgICAgICAgICAgICAgICAhdGhpcy5faXNJbnRlZ3JhdGlvblBvaW50KGN1cnJlbnRUYWdJZCwgY3VycmVudCwgTlMuSFRNTCkpKTtcbiAgICB9XG4gICAgX3Byb2Nlc3NUb2tlbih0b2tlbikge1xuICAgICAgICBzd2l0Y2ggKHRva2VuLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLkNIQVJBQ1RFUjoge1xuICAgICAgICAgICAgICAgIHRoaXMub25DaGFyYWN0ZXIodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuTlVMTF9DSEFSQUNURVI6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uTnVsbENoYXJhY3Rlcih0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5DT01NRU5UOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuRE9DVFlQRToge1xuICAgICAgICAgICAgICAgIHRoaXMub25Eb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLlNUQVJUX1RBRzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3NTdGFydFRhZyh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5FTkRfVEFHOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkVuZFRhZyh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uRW9mKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLldISVRFU1BBQ0VfQ0hBUkFDVEVSOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbldoaXRlc3BhY2VDaGFyYWN0ZXIodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vSW50ZWdyYXRpb24gcG9pbnRzXG4gICAgX2lzSW50ZWdyYXRpb25Qb2ludCh0aWQsIGVsZW1lbnQsIGZvcmVpZ25OUykge1xuICAgICAgICBjb25zdCBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnQpO1xuICAgICAgICBjb25zdCBhdHRycyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0QXR0ckxpc3QoZWxlbWVudCk7XG4gICAgICAgIHJldHVybiBmb3JlaWduQ29udGVudC5pc0ludGVncmF0aW9uUG9pbnQodGlkLCBucywgYXR0cnMsIGZvcmVpZ25OUyk7XG4gICAgfVxuICAgIC8vQWN0aXZlIGZvcm1hdHRpbmcgZWxlbWVudHMgcmVjb25zdHJ1Y3Rpb25cbiAgICBfcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKSB7XG4gICAgICAgIGNvbnN0IGxpc3RMZW5ndGggPSB0aGlzLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5lbnRyaWVzLmxlbmd0aDtcbiAgICAgICAgaWYgKGxpc3RMZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGVuZEluZGV4ID0gdGhpcy5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuZW50cmllcy5maW5kSW5kZXgoKGVudHJ5KSA9PiBlbnRyeS50eXBlID09PSBFbnRyeVR5cGUuTWFya2VyIHx8IHRoaXMub3BlbkVsZW1lbnRzLmNvbnRhaW5zKGVudHJ5LmVsZW1lbnQpKTtcbiAgICAgICAgICAgIGNvbnN0IHVub3BlbklkeCA9IGVuZEluZGV4IDwgMCA/IGxpc3RMZW5ndGggLSAxIDogZW5kSW5kZXggLSAxO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IHVub3BlbklkeDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmVudHJpZXNbaV07XG4gICAgICAgICAgICAgICAgdGhpcy5faW5zZXJ0RWxlbWVudChlbnRyeS50b2tlbiwgdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoZW50cnkuZWxlbWVudCkpO1xuICAgICAgICAgICAgICAgIGVudHJ5LmVsZW1lbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vQ2xvc2UgZWxlbWVudHNcbiAgICBfY2xvc2VUYWJsZUNlbGwoKSB7XG4gICAgICAgIHRoaXMub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMucG9wVW50aWxUYWJsZUNlbGxQb3BwZWQoKTtcbiAgICAgICAgdGhpcy5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9ST1c7XG4gICAgfVxuICAgIF9jbG9zZVBFbGVtZW50KCkge1xuICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbigkLlApO1xuICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5QKTtcbiAgICB9XG4gICAgLy9JbnNlcnRpb24gbW9kZXNcbiAgICBfcmVzZXRJbnNlcnRpb25Nb2RlKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5vcGVuRWxlbWVudHMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICAvL0luc2VydGlvbiBtb2RlIHJlc2V0IG1hcFxuICAgICAgICAgICAgc3dpdGNoIChpID09PSAwICYmIHRoaXMuZnJhZ21lbnRDb250ZXh0ID8gdGhpcy5mcmFnbWVudENvbnRleHRJRCA6IHRoaXMub3BlbkVsZW1lbnRzLnRhZ0lEc1tpXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1JPVztcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRIRUFEOlxuICAgICAgICAgICAgICAgIGNhc2UgJC5URk9PVDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkNBUFRJT046IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9DQVBUSU9OO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5DT0xHUk9VUDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuQk9EWToge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0JPRFk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fRlJBTUVTRVQ7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLlNFTEVDVDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZXNldEluc2VydGlvbk1vZGVGb3JTZWxlY3QoaSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IHRoaXMudG1wbEluc2VydGlvbk1vZGVTdGFja1swXTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSB0aGlzLmhlYWRFbGVtZW50ID8gSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEIDogSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuVEQ6XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRIOiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9DRUxMO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuSEVBRDoge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fSEVBRDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9CT0RZO1xuICAgIH1cbiAgICBfcmVzZXRJbnNlcnRpb25Nb2RlRm9yU2VsZWN0KHNlbGVjdElkeCkge1xuICAgICAgICBpZiAoc2VsZWN0SWR4ID4gMCkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IHNlbGVjdElkeCAtIDE7IGkgPiAwOyBpLS0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0biA9IHRoaXMub3BlbkVsZW1lbnRzLnRhZ0lEc1tpXTtcbiAgICAgICAgICAgICAgICBpZiAodG4gPT09ICQuVEVNUExBVEUpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlRBQkxFKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fU0VMRUNUX0lOX1RBQkxFO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fU0VMRUNUO1xuICAgIH1cbiAgICAvL0Zvc3RlciBwYXJlbnRpbmdcbiAgICBfaXNFbGVtZW50Q2F1c2VzRm9zdGVyUGFyZW50aW5nKHRuKSB7XG4gICAgICAgIHJldHVybiBUQUJMRV9TVFJVQ1RVUkVfVEFHUy5oYXModG4pO1xuICAgIH1cbiAgICBfc2hvdWxkRm9zdGVyUGFyZW50T25JbnNlcnRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvc3RlclBhcmVudGluZ0VuYWJsZWQgJiYgdGhpcy5faXNFbGVtZW50Q2F1c2VzRm9zdGVyUGFyZW50aW5nKHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCk7XG4gICAgfVxuICAgIF9maW5kRm9zdGVyUGFyZW50aW5nTG9jYXRpb24oKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLm9wZW5FbGVtZW50cy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IG9wZW5FbGVtZW50ID0gdGhpcy5vcGVuRWxlbWVudHMuaXRlbXNbaV07XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMub3BlbkVsZW1lbnRzLnRhZ0lEc1tpXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkob3BlbkVsZW1lbnQpID09PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBwYXJlbnQ6IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGVtcGxhdGVDb250ZW50KG9wZW5FbGVtZW50KSwgYmVmb3JlRWxlbWVudDogbnVsbCB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy50cmVlQWRhcHRlci5nZXRQYXJlbnROb2RlKG9wZW5FbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgcGFyZW50LCBiZWZvcmVFbGVtZW50OiBvcGVuRWxlbWVudCB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IHBhcmVudDogdGhpcy5vcGVuRWxlbWVudHMuaXRlbXNbaSAtIDFdLCBiZWZvcmVFbGVtZW50OiBudWxsIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHBhcmVudDogdGhpcy5vcGVuRWxlbWVudHMuaXRlbXNbMF0sIGJlZm9yZUVsZW1lbnQ6IG51bGwgfTtcbiAgICB9XG4gICAgX2Zvc3RlclBhcmVudEVsZW1lbnQoZWxlbWVudCkge1xuICAgICAgICBjb25zdCBsb2NhdGlvbiA9IHRoaXMuX2ZpbmRGb3N0ZXJQYXJlbnRpbmdMb2NhdGlvbigpO1xuICAgICAgICBpZiAobG9jYXRpb24uYmVmb3JlRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5pbnNlcnRCZWZvcmUobG9jYXRpb24ucGFyZW50LCBlbGVtZW50LCBsb2NhdGlvbi5iZWZvcmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQobG9jYXRpb24ucGFyZW50LCBlbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvL1NwZWNpYWwgZWxlbWVudHNcbiAgICBfaXNTcGVjaWFsRWxlbWVudChlbGVtZW50LCBpZCkge1xuICAgICAgICBjb25zdCBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gU1BFQ0lBTF9FTEVNRU5UU1tuc10uaGFzKGlkKTtcbiAgICB9XG4gICAgb25DaGFyYWN0ZXIodG9rZW4pIHtcbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMudG9rZW5pemVyLmluRm9yZWlnbk5vZGUpIHtcbiAgICAgICAgICAgIGNoYXJhY3RlckluRm9yZWlnbkNvbnRlbnQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnNlcnRpb25Nb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5JVElBTDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5Jbml0aWFsTW9kZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hUTUw6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkJlZm9yZUh0bWwodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5CZWZvcmVIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkhlYWROb1NjcmlwdCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT046XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ0VMTDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9URU1QTEFURToge1xuICAgICAgICAgICAgICAgIGNoYXJhY3RlckluQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuVEVYVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1Q6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUX0lOX1RBQkxFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEU6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9ST1c6IHtcbiAgICAgICAgICAgICAgICBjaGFyYWN0ZXJJblRhYmxlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9URVhUOiB7XG4gICAgICAgICAgICAgICAgY2hhcmFjdGVySW5UYWJsZVRleHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5Db2x1bW5Hcm91cCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQk9EWToge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJCb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5BZnRlckFmdGVyQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uTnVsbENoYXJhY3Rlcih0b2tlbikge1xuICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy50b2tlbml6ZXIuaW5Gb3JlaWduTm9kZSkge1xuICAgICAgICAgICAgbnVsbENoYXJhY3RlckluRm9yZWlnbkNvbnRlbnQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnNlcnRpb25Nb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5JVElBTDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5Jbml0aWFsTW9kZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hUTUw6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkJlZm9yZUh0bWwodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5CZWZvcmVIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkhlYWROb1NjcmlwdCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5URVhUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEU6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9ST1c6IHtcbiAgICAgICAgICAgICAgICBjaGFyYWN0ZXJJblRhYmxlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluQ29sdW1uR3JvdXAodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkFmdGVyQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfQk9EWToge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJBZnRlckJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbkNvbW1lbnQodG9rZW4pIHtcbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudE5vdEluSFRNTCkge1xuICAgICAgICAgICAgYXBwZW5kQ29tbWVudCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoICh0aGlzLmluc2VydGlvbk1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTklUSUFMOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IVE1MOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRF9OT19TQ1JJUFQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT046XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fUk9XOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NFTEw6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9URU1QTEFURTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9GUkFNRVNFVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIGFwcGVuZENvbW1lbnQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX1RFWFQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluVGFibGVUZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgYXBwZW5kQ29tbWVudFRvUm9vdEh0bWxFbGVtZW50KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgYXBwZW5kQ29tbWVudFRvRG9jdW1lbnQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbkRvY3R5cGUodG9rZW4pIHtcbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgc3dpdGNoICh0aGlzLmluc2VydGlvbk1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTklUSUFMOiB7XG4gICAgICAgICAgICAgICAgZG9jdHlwZUluSW5pdGlhbE1vZGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRF9OT19TQ1JJUFQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Vycih0b2tlbiwgRVJSLm1pc3BsYWNlZERvY3R5cGUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX1RFWFQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluVGFibGVUZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgIH1cbiAgICB9XG4gICAgb25TdGFydFRhZyh0b2tlbikge1xuICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IHRva2VuO1xuICAgICAgICB0aGlzLl9wcm9jZXNzU3RhcnRUYWcodG9rZW4pO1xuICAgICAgICBpZiAodG9rZW4uc2VsZkNsb3NpbmcgJiYgIXRva2VuLmFja1NlbGZDbG9zaW5nKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIodG9rZW4sIEVSUi5ub25Wb2lkSHRtbEVsZW1lbnRTdGFydFRhZ1dpdGhUcmFpbGluZ1NvbGlkdXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFByb2Nlc3NlcyBhIGdpdmVuIHN0YXJ0IHRhZy5cbiAgICAgKlxuICAgICAqIGBvblN0YXJ0VGFnYCBjaGVja3MgaWYgYSBzZWxmLWNsb3NpbmcgdGFnIHdhcyByZWNvZ25pemVkLiBXaGVuIGEgdG9rZW5cbiAgICAgKiBpcyBtb3ZlZCBpbmJldHdlZW4gbXVsdGlwbGUgaW5zZXJ0aW9uIG1vZGVzLCB0aGlzIGNoZWNrIGZvciBzZWxmLWNsb3NpbmdcbiAgICAgKiBjb3VsZCBsZWFkIHRvIGZhbHNlIHBvc2l0aXZlcy4gVG8gYXZvaWQgdGhpcywgYF9wcm9jZXNzU3RhcnRUYWdgIGlzIHVzZWRcbiAgICAgKiBmb3IgbmVzdGVkIGNhbGxzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRva2VuIFRoZSB0b2tlbiB0byBwcm9jZXNzLlxuICAgICAqL1xuICAgIF9wcm9jZXNzU3RhcnRUYWcodG9rZW4pIHtcbiAgICAgICAgaWYgKHRoaXMuc2hvdWxkUHJvY2Vzc1N0YXJ0VGFnVG9rZW5JbkZvcmVpZ25Db250ZW50KHRva2VuKSkge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkZvcmVpZ25Db250ZW50KHRoaXMsIHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3N0YXJ0VGFnT3V0c2lkZUZvcmVpZ25Db250ZW50KHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfc3RhcnRUYWdPdXRzaWRlRm9yZWlnbkNvbnRlbnQodG9rZW4pIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmluc2VydGlvbk1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTklUSUFMOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkluaXRpYWxNb2RlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSFRNTDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnQmVmb3JlSHRtbCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0JlZm9yZUhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luSGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRF9OT19TQ1JJUFQ6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luSGVhZE5vU2NyaXB0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdBZnRlckhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0JPRFk6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEU6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luVGFibGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX1RFWFQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluVGFibGVUZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DQVBUSU9OOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJbkNhcHRpb24odGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5Db2x1bW5Hcm91cCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWToge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5UYWJsZUJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1JPVzoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5Sb3codGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NFTEw6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luQ2VsbCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJblNlbGVjdCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUX0lOX1RBQkxFOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJblNlbGVjdEluVGFibGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RFTVBMQVRFOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJblRlbXBsYXRlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdBZnRlckJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJbkZyYW1lc2V0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnQWZ0ZXJGcmFtZXNldCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfQk9EWToge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnQWZ0ZXJBZnRlckJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdBZnRlckFmdGVyRnJhbWVzZXQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbkVuZFRhZyh0b2tlbikge1xuICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IHRva2VuO1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50Tm90SW5IVE1MKSB7XG4gICAgICAgICAgICBlbmRUYWdJbkZvcmVpZ25Db250ZW50KHRoaXMsIHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VuZFRhZ091dHNpZGVGb3JlaWduQ29udGVudCh0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2VuZFRhZ091dHNpZGVGb3JlaWduQ29udGVudCh0b2tlbikge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuaW5zZXJ0aW9uTW9kZSkge1xuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOSVRJQUw6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluSW5pdGlhbE1vZGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IVE1MOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnQmVmb3JlSHRtbCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdCZWZvcmVIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5IZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEX05PX1NDUklQVDoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luSGVhZE5vU2NyaXB0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnQWZ0ZXJIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5Cb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5URVhUOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5UZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRToge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luVGFibGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX1RFWFQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluVGFibGVUZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DQVBUSU9OOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5DYXB0aW9uKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJbkNvbHVtbkdyb3VwKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5UYWJsZUJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1JPVzoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luUm93KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DRUxMOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5DZWxsKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1Q6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJblNlbGVjdCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUX0lOX1RBQkxFOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5TZWxlY3RJblRhYmxlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9URU1QTEFURToge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luVGVtcGxhdGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdBZnRlckJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5GcmFtZXNldCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdBZnRlckZyYW1lc2V0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5BZnRlckFmdGVyQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uRW9mKHRva2VuKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnNlcnRpb25Nb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5JVElBTDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5Jbml0aWFsTW9kZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hUTUw6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkJlZm9yZUh0bWwodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5CZWZvcmVIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkhlYWROb1NjcmlwdCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT046XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fUk9XOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NFTEw6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRToge1xuICAgICAgICAgICAgICAgIGVvZkluQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuVEVYVDoge1xuICAgICAgICAgICAgICAgIGVvZkluVGV4dCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfVEVYVDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5UYWJsZVRleHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RFTVBMQVRFOiB7XG4gICAgICAgICAgICAgICAgZW9mSW5UZW1wbGF0ZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9GUkFNRVNFVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9GUkFNRVNFVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgc3RvcFBhcnNpbmcodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbldoaXRlc3BhY2VDaGFyYWN0ZXIodG9rZW4pIHtcbiAgICAgICAgaWYgKHRoaXMuc2tpcE5leHROZXdMaW5lKSB7XG4gICAgICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKHRva2VuLmNoYXJzLmNoYXJDb2RlQXQoMCkgPT09IHVuaWNvZGUuQ09ERV9QT0lOVFMuTElORV9GRUVEKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRva2VuLmNoYXJzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRva2VuLmNoYXJzID0gdG9rZW4uY2hhcnMuc3Vic3RyKDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRva2VuaXplci5pbkZvcmVpZ25Ob2RlKSB7XG4gICAgICAgICAgICB0aGlzLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKHRoaXMuaW5zZXJ0aW9uTW9kZSkge1xuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRF9OT19TQ1JJUFQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5URVhUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1Q6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUX0lOX1RBQkxFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0ZSQU1FU0VUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DQVBUSU9OOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NFTEw6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEVNUExBVEU6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgd2hpdGVzcGFjZUNoYXJhY3RlckluQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEU6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9ST1c6IHtcbiAgICAgICAgICAgICAgICBjaGFyYWN0ZXJJblRhYmxlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9URVhUOiB7XG4gICAgICAgICAgICAgICAgd2hpdGVzcGFjZUNoYXJhY3RlckluVGFibGVUZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgIH1cbiAgICB9XG59XG4vL0Fkb3B0aW9uIGFnZW5jeSBhbGdvcml0aG1cbi8vKHNlZTogaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCNhZG9wdGlvbkFnZW5jeSlcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vL1N0ZXBzIDUtOCBvZiB0aGUgYWxnb3JpdGhtXG5mdW5jdGlvbiBhYU9idGFpbkZvcm1hdHRpbmdFbGVtZW50RW50cnkocCwgdG9rZW4pIHtcbiAgICBsZXQgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSA9IHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmdldEVsZW1lbnRFbnRyeUluU2NvcGVXaXRoVGFnTmFtZSh0b2tlbi50YWdOYW1lKTtcbiAgICBpZiAoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSkge1xuICAgICAgICBpZiAoIXAub3BlbkVsZW1lbnRzLmNvbnRhaW5zKGZvcm1hdHRpbmdFbGVtZW50RW50cnkuZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnJlbW92ZUVudHJ5KGZvcm1hdHRpbmdFbGVtZW50RW50cnkpO1xuICAgICAgICAgICAgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIXAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUodG9rZW4udGFnSUQpKSB7XG4gICAgICAgICAgICBmb3JtYXR0aW5nRWxlbWVudEVudHJ5ID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgZ2VuZXJpY0VuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgfVxuICAgIHJldHVybiBmb3JtYXR0aW5nRWxlbWVudEVudHJ5O1xufVxuLy9TdGVwcyA5IGFuZCAxMCBvZiB0aGUgYWxnb3JpdGhtXG5mdW5jdGlvbiBhYU9idGFpbkZ1cnRoZXN0QmxvY2socCwgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSkge1xuICAgIGxldCBmdXJ0aGVzdEJsb2NrID0gbnVsbDtcbiAgICBsZXQgaWR4ID0gcC5vcGVuRWxlbWVudHMuc3RhY2tUb3A7XG4gICAgZm9yICg7IGlkeCA+PSAwOyBpZHgtLSkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuaXRlbXNbaWR4XTtcbiAgICAgICAgaWYgKGVsZW1lbnQgPT09IGZvcm1hdHRpbmdFbGVtZW50RW50cnkuZWxlbWVudCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHAuX2lzU3BlY2lhbEVsZW1lbnQoZWxlbWVudCwgcC5vcGVuRWxlbWVudHMudGFnSURzW2lkeF0pKSB7XG4gICAgICAgICAgICBmdXJ0aGVzdEJsb2NrID0gZWxlbWVudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoIWZ1cnRoZXN0QmxvY2spIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuc2hvcnRlblRvTGVuZ3RoKGlkeCA8IDAgPyAwIDogaWR4KTtcbiAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucmVtb3ZlRW50cnkoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSk7XG4gICAgfVxuICAgIHJldHVybiBmdXJ0aGVzdEJsb2NrO1xufVxuLy9TdGVwIDEzIG9mIHRoZSBhbGdvcml0aG1cbmZ1bmN0aW9uIGFhSW5uZXJMb29wKHAsIGZ1cnRoZXN0QmxvY2ssIGZvcm1hdHRpbmdFbGVtZW50KSB7XG4gICAgbGV0IGxhc3RFbGVtZW50ID0gZnVydGhlc3RCbG9jaztcbiAgICBsZXQgbmV4dEVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5nZXRDb21tb25BbmNlc3RvcihmdXJ0aGVzdEJsb2NrKTtcbiAgICBmb3IgKGxldCBpID0gMCwgZWxlbWVudCA9IG5leHRFbGVtZW50OyBlbGVtZW50ICE9PSBmb3JtYXR0aW5nRWxlbWVudDsgaSsrLCBlbGVtZW50ID0gbmV4dEVsZW1lbnQpIHtcbiAgICAgICAgLy9OT1RFOiBzdG9yZSB0aGUgbmV4dCBlbGVtZW50IGZvciB0aGUgbmV4dCBsb29wIGl0ZXJhdGlvbiAoaXQgbWF5IGJlIGRlbGV0ZWQgZnJvbSB0aGUgc3RhY2sgYnkgc3RlcCA5LjUpXG4gICAgICAgIG5leHRFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuZ2V0Q29tbW9uQW5jZXN0b3IoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRFbnRyeSA9IHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmdldEVsZW1lbnRFbnRyeShlbGVtZW50KTtcbiAgICAgICAgY29uc3QgY291bnRlck92ZXJmbG93ID0gZWxlbWVudEVudHJ5ICYmIGkgPj0gQUFfSU5ORVJfTE9PUF9JVEVSO1xuICAgICAgICBjb25zdCBzaG91bGRSZW1vdmVGcm9tT3BlbkVsZW1lbnRzID0gIWVsZW1lbnRFbnRyeSB8fCBjb3VudGVyT3ZlcmZsb3c7XG4gICAgICAgIGlmIChzaG91bGRSZW1vdmVGcm9tT3BlbkVsZW1lbnRzKSB7XG4gICAgICAgICAgICBpZiAoY291bnRlck92ZXJmbG93KSB7XG4gICAgICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucmVtb3ZlRW50cnkoZWxlbWVudEVudHJ5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnJlbW92ZShlbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGVsZW1lbnQgPSBhYVJlY3JlYXRlRWxlbWVudEZyb21FbnRyeShwLCBlbGVtZW50RW50cnkpO1xuICAgICAgICAgICAgaWYgKGxhc3RFbGVtZW50ID09PSBmdXJ0aGVzdEJsb2NrKSB7XG4gICAgICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuYm9va21hcmsgPSBlbGVtZW50RW50cnk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwLnRyZWVBZGFwdGVyLmRldGFjaE5vZGUobGFzdEVsZW1lbnQpO1xuICAgICAgICAgICAgcC50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChlbGVtZW50LCBsYXN0RWxlbWVudCk7XG4gICAgICAgICAgICBsYXN0RWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxhc3RFbGVtZW50O1xufVxuLy9TdGVwIDEzLjcgb2YgdGhlIGFsZ29yaXRobVxuZnVuY3Rpb24gYWFSZWNyZWF0ZUVsZW1lbnRGcm9tRW50cnkocCwgZWxlbWVudEVudHJ5KSB7XG4gICAgY29uc3QgbnMgPSBwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShlbGVtZW50RW50cnkuZWxlbWVudCk7XG4gICAgY29uc3QgbmV3RWxlbWVudCA9IHAudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudChlbGVtZW50RW50cnkudG9rZW4udGFnTmFtZSwgbnMsIGVsZW1lbnRFbnRyeS50b2tlbi5hdHRycyk7XG4gICAgcC5vcGVuRWxlbWVudHMucmVwbGFjZShlbGVtZW50RW50cnkuZWxlbWVudCwgbmV3RWxlbWVudCk7XG4gICAgZWxlbWVudEVudHJ5LmVsZW1lbnQgPSBuZXdFbGVtZW50O1xuICAgIHJldHVybiBuZXdFbGVtZW50O1xufVxuLy9TdGVwIDE0IG9mIHRoZSBhbGdvcml0aG1cbmZ1bmN0aW9uIGFhSW5zZXJ0TGFzdE5vZGVJbkNvbW1vbkFuY2VzdG9yKHAsIGNvbW1vbkFuY2VzdG9yLCBsYXN0RWxlbWVudCkge1xuICAgIGNvbnN0IHRuID0gcC50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGNvbW1vbkFuY2VzdG9yKTtcbiAgICBjb25zdCB0aWQgPSBnZXRUYWdJRCh0bik7XG4gICAgaWYgKHAuX2lzRWxlbWVudENhdXNlc0Zvc3RlclBhcmVudGluZyh0aWQpKSB7XG4gICAgICAgIHAuX2Zvc3RlclBhcmVudEVsZW1lbnQobGFzdEVsZW1lbnQpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3QgbnMgPSBwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShjb21tb25BbmNlc3Rvcik7XG4gICAgICAgIGlmICh0aWQgPT09ICQuVEVNUExBVEUgJiYgbnMgPT09IE5TLkhUTUwpIHtcbiAgICAgICAgICAgIGNvbW1vbkFuY2VzdG9yID0gcC50cmVlQWRhcHRlci5nZXRUZW1wbGF0ZUNvbnRlbnQoY29tbW9uQW5jZXN0b3IpO1xuICAgICAgICB9XG4gICAgICAgIHAudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQoY29tbW9uQW5jZXN0b3IsIGxhc3RFbGVtZW50KTtcbiAgICB9XG59XG4vL1N0ZXBzIDE1LTE5IG9mIHRoZSBhbGdvcml0aG1cbmZ1bmN0aW9uIGFhUmVwbGFjZUZvcm1hdHRpbmdFbGVtZW50KHAsIGZ1cnRoZXN0QmxvY2ssIGZvcm1hdHRpbmdFbGVtZW50RW50cnkpIHtcbiAgICBjb25zdCBucyA9IHAudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGZvcm1hdHRpbmdFbGVtZW50RW50cnkuZWxlbWVudCk7XG4gICAgY29uc3QgeyB0b2tlbiB9ID0gZm9ybWF0dGluZ0VsZW1lbnRFbnRyeTtcbiAgICBjb25zdCBuZXdFbGVtZW50ID0gcC50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KHRva2VuLnRhZ05hbWUsIG5zLCB0b2tlbi5hdHRycyk7XG4gICAgcC5fYWRvcHROb2RlcyhmdXJ0aGVzdEJsb2NrLCBuZXdFbGVtZW50KTtcbiAgICBwLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKGZ1cnRoZXN0QmxvY2ssIG5ld0VsZW1lbnQpO1xuICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmluc2VydEVsZW1lbnRBZnRlckJvb2ttYXJrKG5ld0VsZW1lbnQsIHRva2VuKTtcbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5yZW1vdmVFbnRyeShmb3JtYXR0aW5nRWxlbWVudEVudHJ5KTtcbiAgICBwLm9wZW5FbGVtZW50cy5yZW1vdmUoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeS5lbGVtZW50KTtcbiAgICBwLm9wZW5FbGVtZW50cy5pbnNlcnRBZnRlcihmdXJ0aGVzdEJsb2NrLCBuZXdFbGVtZW50LCB0b2tlbi50YWdJRCk7XG59XG4vL0FsZ29yaXRobSBlbnRyeSBwb2ludFxuZnVuY3Rpb24gY2FsbEFkb3B0aW9uQWdlbmN5KHAsIHRva2VuKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBBQV9PVVRFUl9MT09QX0lURVI7IGkrKykge1xuICAgICAgICBjb25zdCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5ID0gYWFPYnRhaW5Gb3JtYXR0aW5nRWxlbWVudEVudHJ5KHAsIHRva2VuKTtcbiAgICAgICAgaWYgKCFmb3JtYXR0aW5nRWxlbWVudEVudHJ5KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmdXJ0aGVzdEJsb2NrID0gYWFPYnRhaW5GdXJ0aGVzdEJsb2NrKHAsIGZvcm1hdHRpbmdFbGVtZW50RW50cnkpO1xuICAgICAgICBpZiAoIWZ1cnRoZXN0QmxvY2spIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmJvb2ttYXJrID0gZm9ybWF0dGluZ0VsZW1lbnRFbnRyeTtcbiAgICAgICAgY29uc3QgbGFzdEVsZW1lbnQgPSBhYUlubmVyTG9vcChwLCBmdXJ0aGVzdEJsb2NrLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpO1xuICAgICAgICBjb25zdCBjb21tb25BbmNlc3RvciA9IHAub3BlbkVsZW1lbnRzLmdldENvbW1vbkFuY2VzdG9yKGZvcm1hdHRpbmdFbGVtZW50RW50cnkuZWxlbWVudCk7XG4gICAgICAgIHAudHJlZUFkYXB0ZXIuZGV0YWNoTm9kZShsYXN0RWxlbWVudCk7XG4gICAgICAgIGlmIChjb21tb25BbmNlc3RvcilcbiAgICAgICAgICAgIGFhSW5zZXJ0TGFzdE5vZGVJbkNvbW1vbkFuY2VzdG9yKHAsIGNvbW1vbkFuY2VzdG9yLCBsYXN0RWxlbWVudCk7XG4gICAgICAgIGFhUmVwbGFjZUZvcm1hdHRpbmdFbGVtZW50KHAsIGZ1cnRoZXN0QmxvY2ssIGZvcm1hdHRpbmdFbGVtZW50RW50cnkpO1xuICAgIH1cbn1cbi8vR2VuZXJpYyB0b2tlbiBoYW5kbGVyc1xuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIGFwcGVuZENvbW1lbnQocCwgdG9rZW4pIHtcbiAgICBwLl9hcHBlbmRDb21tZW50Tm9kZSh0b2tlbiwgcC5vcGVuRWxlbWVudHMuY3VycmVudFRtcGxDb250ZW50T3JOb2RlKTtcbn1cbmZ1bmN0aW9uIGFwcGVuZENvbW1lbnRUb1Jvb3RIdG1sRWxlbWVudChwLCB0b2tlbikge1xuICAgIHAuX2FwcGVuZENvbW1lbnROb2RlKHRva2VuLCBwLm9wZW5FbGVtZW50cy5pdGVtc1swXSk7XG59XG5mdW5jdGlvbiBhcHBlbmRDb21tZW50VG9Eb2N1bWVudChwLCB0b2tlbikge1xuICAgIHAuX2FwcGVuZENvbW1lbnROb2RlKHRva2VuLCBwLmRvY3VtZW50KTtcbn1cbmZ1bmN0aW9uIHN0b3BQYXJzaW5nKHAsIHRva2VuKSB7XG4gICAgcC5zdG9wcGVkID0gdHJ1ZTtcbiAgICAvLyBOT1RFOiBTZXQgZW5kIGxvY2F0aW9ucyBmb3IgZWxlbWVudHMgdGhhdCByZW1haW4gb24gdGhlIG9wZW4gZWxlbWVudCBzdGFjay5cbiAgICBpZiAodG9rZW4ubG9jYXRpb24pIHtcbiAgICAgICAgLy8gTk9URTogSWYgd2UgYXJlIG5vdCBpbiBhIGZyYWdtZW50LCBgaHRtbGAgYW5kIGBib2R5YCB3aWxsIHN0YXkgb24gdGhlIHN0YWNrLlxuICAgICAgICAvLyBUaGlzIGlzIGEgcHJvYmxlbSwgYXMgd2UgbWlnaHQgb3ZlcndyaXRlIHRoZWlyIGVuZCBwb3NpdGlvbiBoZXJlLlxuICAgICAgICBjb25zdCB0YXJnZXQgPSBwLmZyYWdtZW50Q29udGV4dCA/IDAgOiAyO1xuICAgICAgICBmb3IgKGxldCBpID0gcC5vcGVuRWxlbWVudHMuc3RhY2tUb3A7IGkgPj0gdGFyZ2V0OyBpLS0pIHtcbiAgICAgICAgICAgIHAuX3NldEVuZExvY2F0aW9uKHAub3BlbkVsZW1lbnRzLml0ZW1zW2ldLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSGFuZGxlIGBodG1sYCBhbmQgYGJvZHlgXG4gICAgICAgIGlmICghcC5mcmFnbWVudENvbnRleHQgJiYgcC5vcGVuRWxlbWVudHMuc3RhY2tUb3AgPj0gMCkge1xuICAgICAgICAgICAgY29uc3QgaHRtbEVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5pdGVtc1swXTtcbiAgICAgICAgICAgIGNvbnN0IGh0bWxMb2NhdGlvbiA9IHAudHJlZUFkYXB0ZXIuZ2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihodG1sRWxlbWVudCk7XG4gICAgICAgICAgICBpZiAoaHRtbExvY2F0aW9uICYmICFodG1sTG9jYXRpb24uZW5kVGFnKSB7XG4gICAgICAgICAgICAgICAgcC5fc2V0RW5kTG9jYXRpb24oaHRtbEVsZW1lbnQsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuc3RhY2tUb3AgPj0gMSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBib2R5RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLml0ZW1zWzFdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBib2R5TG9jYXRpb24gPSBwLnRyZWVBZGFwdGVyLmdldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24oYm9keUVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYm9keUxvY2F0aW9uICYmICFib2R5TG9jYXRpb24uZW5kVGFnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwLl9zZXRFbmRMb2NhdGlvbihib2R5RWxlbWVudCwgdG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuLy8gVGhlIFwiaW5pdGlhbFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gZG9jdHlwZUluSW5pdGlhbE1vZGUocCwgdG9rZW4pIHtcbiAgICBwLl9zZXREb2N1bWVudFR5cGUodG9rZW4pO1xuICAgIGNvbnN0IG1vZGUgPSB0b2tlbi5mb3JjZVF1aXJrcyA/IERPQ1VNRU5UX01PREUuUVVJUktTIDogZG9jdHlwZS5nZXREb2N1bWVudE1vZGUodG9rZW4pO1xuICAgIGlmICghZG9jdHlwZS5pc0NvbmZvcm1pbmcodG9rZW4pKSB7XG4gICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLm5vbkNvbmZvcm1pbmdEb2N0eXBlKTtcbiAgICB9XG4gICAgcC50cmVlQWRhcHRlci5zZXREb2N1bWVudE1vZGUocC5kb2N1bWVudCwgbW9kZSk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSFRNTDtcbn1cbmZ1bmN0aW9uIHRva2VuSW5Jbml0aWFsTW9kZShwLCB0b2tlbikge1xuICAgIHAuX2Vycih0b2tlbiwgRVJSLm1pc3NpbmdEb2N0eXBlLCB0cnVlKTtcbiAgICBwLnRyZWVBZGFwdGVyLnNldERvY3VtZW50TW9kZShwLmRvY3VtZW50LCBET0NVTUVOVF9NT0RFLlFVSVJLUyk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSFRNTDtcbiAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xufVxuLy8gVGhlIFwiYmVmb3JlIGh0bWxcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnQmVmb3JlSHRtbChwLCB0b2tlbikge1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5IVE1MKSB7XG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdG9rZW5CZWZvcmVIdG1sKHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdCZWZvcmVIdG1sKHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAodG4gPT09ICQuSFRNTCB8fCB0biA9PT0gJC5IRUFEIHx8IHRuID09PSAkLkJPRFkgfHwgdG4gPT09ICQuQlIpIHtcbiAgICAgICAgdG9rZW5CZWZvcmVIdG1sKHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiB0b2tlbkJlZm9yZUh0bWwocCwgdG9rZW4pIHtcbiAgICBwLl9pbnNlcnRGYWtlUm9vdEVsZW1lbnQoKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEO1xuICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG59XG4vLyBUaGUgXCJiZWZvcmUgaGVhZFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdCZWZvcmVIZWFkKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkhFQUQ6IHtcbiAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgcC5oZWFkRWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLmN1cnJlbnQ7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkJlZm9yZUhlYWQocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnQmVmb3JlSGVhZChwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKHRuID09PSAkLkhFQUQgfHwgdG4gPT09ICQuQk9EWSB8fCB0biA9PT0gJC5IVE1MIHx8IHRuID09PSAkLkJSKSB7XG4gICAgICAgIHRva2VuQmVmb3JlSGVhZChwLCB0b2tlbik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5lbmRUYWdXaXRob3V0TWF0Y2hpbmdPcGVuRWxlbWVudCk7XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5CZWZvcmVIZWFkKHAsIHRva2VuKSB7XG4gICAgcC5faW5zZXJ0RmFrZUVsZW1lbnQoVE4uSEVBRCwgJC5IRUFEKTtcbiAgICBwLmhlYWRFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuY3VycmVudDtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ7XG4gICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbn1cbi8vIFRoZSBcImluIGhlYWRcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJBU0U6XG4gICAgICAgIGNhc2UgJC5CQVNFRk9OVDpcbiAgICAgICAgY2FzZSAkLkJHU09VTkQ6XG4gICAgICAgIGNhc2UgJC5MSU5LOlxuICAgICAgICBjYXNlICQuTUVUQToge1xuICAgICAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICB0b2tlbi5hY2tTZWxmQ2xvc2luZyA9IHRydWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVElUTEU6IHtcbiAgICAgICAgICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplck1vZGUuUkNEQVRBKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5OT1NDUklQVDoge1xuICAgICAgICAgICAgaWYgKHAub3B0aW9ucy5zY3JpcHRpbmdFbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgcC5fc3dpdGNoVG9UZXh0UGFyc2luZyh0b2tlbiwgVG9rZW5pemVyTW9kZS5SQVdURVhUKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fSEVBRF9OT19TQ1JJUFQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTk9GUkFNRVM6XG4gICAgICAgIGNhc2UgJC5TVFlMRToge1xuICAgICAgICAgICAgcC5fc3dpdGNoVG9UZXh0UGFyc2luZyh0b2tlbiwgVG9rZW5pemVyTW9kZS5SQVdURVhUKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5TQ1JJUFQ6IHtcbiAgICAgICAgICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplck1vZGUuU0NSSVBUX0RBVEEpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICBwLl9pbnNlcnRUZW1wbGF0ZSh0b2tlbik7XG4gICAgICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pbnNlcnRNYXJrZXIoKTtcbiAgICAgICAgICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9URU1QTEFURTtcbiAgICAgICAgICAgIHAudG1wbEluc2VydGlvbk1vZGVTdGFjay51bnNoaWZ0KEluc2VydGlvbk1vZGUuSU5fVEVNUExBVEUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkhFQUQ6IHtcbiAgICAgICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLm1pc3BsYWNlZFN0YXJ0VGFnRm9ySGVhZEVsZW1lbnQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgdG9rZW5JbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5IZWFkKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSEVBRDoge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQk9EWTpcbiAgICAgICAgY2FzZSAkLkJSOlxuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgdG9rZW5JbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICB0ZW1wbGF0ZUVuZFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5lbmRUYWdXaXRob3V0TWF0Y2hpbmdPcGVuRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiB0ZW1wbGF0ZUVuZFRhZ0luSGVhZChwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy50bXBsQ291bnQgPiAwKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3NUaG9yb3VnaGx5KCk7XG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgIT09ICQuVEVNUExBVEUpIHtcbiAgICAgICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLmNsb3NpbmdPZkVsZW1lbnRXaXRoT3BlbkNoaWxkRWxlbWVudHMpO1xuICAgICAgICB9XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlRFTVBMQVRFKTtcbiAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICAgICAgcC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrLnNoaWZ0KCk7XG4gICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcC5fZXJyKHRva2VuLCBFUlIuZW5kVGFnV2l0aG91dE1hdGNoaW5nT3BlbkVsZW1lbnQpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHRva2VuSW5IZWFkKHAsIHRva2VuKSB7XG4gICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEO1xuICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG59XG4vLyBUaGUgXCJpbiBoZWFkIG5vIHNjcmlwdFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdJbkhlYWROb1NjcmlwdChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CQVNFRk9OVDpcbiAgICAgICAgY2FzZSAkLkJHU09VTkQ6XG4gICAgICAgIGNhc2UgJC5IRUFEOlxuICAgICAgICBjYXNlICQuTElOSzpcbiAgICAgICAgY2FzZSAkLk1FVEE6XG4gICAgICAgIGNhc2UgJC5OT0ZSQU1FUzpcbiAgICAgICAgY2FzZSAkLlNUWUxFOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTk9TQ1JJUFQ6IHtcbiAgICAgICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLm5lc3RlZE5vc2NyaXB0SW5IZWFkKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHRva2VuSW5IZWFkTm9TY3JpcHQocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5IZWFkTm9TY3JpcHQocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5OT1NDUklQVDoge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQlI6IHtcbiAgICAgICAgICAgIHRva2VuSW5IZWFkTm9TY3JpcHQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgcC5fZXJyKHRva2VuLCBFUlIuZW5kVGFnV2l0aG91dE1hdGNoaW5nT3BlbkVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5JbkhlYWROb1NjcmlwdChwLCB0b2tlbikge1xuICAgIGNvbnN0IGVyckNvZGUgPSB0b2tlbi50eXBlID09PSBUb2tlblR5cGUuRU9GID8gRVJSLm9wZW5FbGVtZW50c0xlZnRBZnRlckVvZiA6IEVSUi5kaXNhbGxvd2VkQ29udGVudEluTm9zY3JpcHRJbkhlYWQ7XG4gICAgcC5fZXJyKHRva2VuLCBlcnJDb2RlKTtcbiAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ7XG4gICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbn1cbi8vIFRoZSBcImFmdGVyIGhlYWRcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnQWZ0ZXJIZWFkKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJPRFk6IHtcbiAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0JPRFk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9GUkFNRVNFVDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CQVNFOlxuICAgICAgICBjYXNlICQuQkFTRUZPTlQ6XG4gICAgICAgIGNhc2UgJC5CR1NPVU5EOlxuICAgICAgICBjYXNlICQuTElOSzpcbiAgICAgICAgY2FzZSAkLk1FVEE6XG4gICAgICAgIGNhc2UgJC5OT0ZSQU1FUzpcbiAgICAgICAgY2FzZSAkLlNDUklQVDpcbiAgICAgICAgY2FzZSAkLlNUWUxFOlxuICAgICAgICBjYXNlICQuVEVNUExBVEU6XG4gICAgICAgIGNhc2UgJC5USVRMRToge1xuICAgICAgICAgICAgcC5fZXJyKHRva2VuLCBFUlIuYWJhbmRvbmVkSGVhZEVsZW1lbnRDaGlsZCk7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wdXNoKHAuaGVhZEVsZW1lbnQsICQuSEVBRCk7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5yZW1vdmUocC5oZWFkRWxlbWVudCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuSEVBRDoge1xuICAgICAgICAgICAgcC5fZXJyKHRva2VuLCBFUlIubWlzcGxhY2VkU3RhcnRUYWdGb3JIZWFkRWxlbWVudCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkFmdGVySGVhZChwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdBZnRlckhlYWQocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5CT0RZOlxuICAgICAgICBjYXNlICQuSFRNTDpcbiAgICAgICAgY2FzZSAkLkJSOiB7XG4gICAgICAgICAgICB0b2tlbkFmdGVySGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEVNUExBVEU6IHtcbiAgICAgICAgICAgIHRlbXBsYXRlRW5kVGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLmVuZFRhZ1dpdGhvdXRNYXRjaGluZ09wZW5FbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIHRva2VuQWZ0ZXJIZWFkKHAsIHRva2VuKSB7XG4gICAgcC5faW5zZXJ0RmFrZUVsZW1lbnQoVE4uQk9EWSwgJC5CT0RZKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0JPRFk7XG4gICAgbW9kZUluQm9keShwLCB0b2tlbik7XG59XG4vLyBUaGUgXCJpbiBib2R5XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBtb2RlSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50eXBlKSB7XG4gICAgICAgIGNhc2UgVG9rZW5UeXBlLkNIQVJBQ1RFUjoge1xuICAgICAgICAgICAgY2hhcmFjdGVySW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVG9rZW5UeXBlLldISVRFU1BBQ0VfQ0hBUkFDVEVSOiB7XG4gICAgICAgICAgICB3aGl0ZXNwYWNlQ2hhcmFjdGVySW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVG9rZW5UeXBlLkNPTU1FTlQ6IHtcbiAgICAgICAgICAgIGFwcGVuZENvbW1lbnQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBUb2tlblR5cGUuU1RBUlRfVEFHOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRva2VuVHlwZS5FTkRfVEFHOiB7XG4gICAgICAgICAgICBlbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBUb2tlblR5cGUuRU9GOiB7XG4gICAgICAgICAgICBlb2ZJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgIH1cbn1cbmZ1bmN0aW9uIHdoaXRlc3BhY2VDaGFyYWN0ZXJJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydENoYXJhY3RlcnModG9rZW4pO1xufVxuZnVuY3Rpb24gY2hhcmFjdGVySW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbn1cbmZ1bmN0aW9uIGh0bWxTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy50bXBsQ291bnQgPT09IDApIHtcbiAgICAgICAgcC50cmVlQWRhcHRlci5hZG9wdEF0dHJpYnV0ZXMocC5vcGVuRWxlbWVudHMuaXRlbXNbMF0sIHRva2VuLmF0dHJzKTtcbiAgICB9XG59XG5mdW5jdGlvbiBib2R5U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBjb25zdCBib2R5RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLnRyeVBlZWtQcm9wZXJseU5lc3RlZEJvZHlFbGVtZW50KCk7XG4gICAgaWYgKGJvZHlFbGVtZW50ICYmIHAub3BlbkVsZW1lbnRzLnRtcGxDb3VudCA9PT0gMCkge1xuICAgICAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICAgICAgcC50cmVlQWRhcHRlci5hZG9wdEF0dHJpYnV0ZXMoYm9keUVsZW1lbnQsIHRva2VuLmF0dHJzKTtcbiAgICB9XG59XG5mdW5jdGlvbiBmcmFtZXNldFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgYm9keUVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy50cnlQZWVrUHJvcGVybHlOZXN0ZWRCb2R5RWxlbWVudCgpO1xuICAgIGlmIChwLmZyYW1lc2V0T2sgJiYgYm9keUVsZW1lbnQpIHtcbiAgICAgICAgcC50cmVlQWRhcHRlci5kZXRhY2hOb2RlKGJvZHlFbGVtZW50KTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wQWxsVXBUb0h0bWxFbGVtZW50KCk7XG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0ZSQU1FU0VUO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGFkZHJlc3NTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbn1cbmZ1bmN0aW9uIG51bWJlcmVkSGVhZGVyU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKSB7XG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcbiAgICB9XG4gICAgaWYgKGlzTnVtYmVyZWRIZWFkZXIocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICB9XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG59XG5mdW5jdGlvbiBwcmVTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAvL05PVEU6IElmIHRoZSBuZXh0IHRva2VuIGlzIGEgVSswMDBBIExJTkUgRkVFRCAoTEYpIGNoYXJhY3RlciB0b2tlbiwgdGhlbiBpZ25vcmUgdGhhdCB0b2tlbiBhbmQgbW92ZVxuICAgIC8vb24gdG8gdGhlIG5leHQgb25lLiAoTmV3bGluZXMgYXQgdGhlIHN0YXJ0IG9mIHByZSBibG9ja3MgYXJlIGlnbm9yZWQgYXMgYW4gYXV0aG9yaW5nIGNvbnZlbmllbmNlLilcbiAgICBwLnNraXBOZXh0TmV3TGluZSA9IHRydWU7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG59XG5mdW5jdGlvbiBmb3JtU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBjb25zdCBpblRlbXBsYXRlID0gcC5vcGVuRWxlbWVudHMudG1wbENvdW50ID4gMDtcbiAgICBpZiAoIXAuZm9ybUVsZW1lbnQgfHwgaW5UZW1wbGF0ZSkge1xuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKSB7XG4gICAgICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG4gICAgICAgIH1cbiAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgIGlmICghaW5UZW1wbGF0ZSkge1xuICAgICAgICAgICAgcC5mb3JtRWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLmN1cnJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBsaXN0SXRlbVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBmb3IgKGxldCBpID0gcC5vcGVuRWxlbWVudHMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRJZCA9IHAub3BlbkVsZW1lbnRzLnRhZ0lEc1tpXTtcbiAgICAgICAgaWYgKCh0biA9PT0gJC5MSSAmJiBlbGVtZW50SWQgPT09ICQuTEkpIHx8XG4gICAgICAgICAgICAoKHRuID09PSAkLkREIHx8IHRuID09PSAkLkRUKSAmJiAoZWxlbWVudElkID09PSAkLkREIHx8IGVsZW1lbnRJZCA9PT0gJC5EVCkpKSB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbihlbGVtZW50SWQpO1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKGVsZW1lbnRJZCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBpZiAoZWxlbWVudElkICE9PSAkLkFERFJFU1MgJiZcbiAgICAgICAgICAgIGVsZW1lbnRJZCAhPT0gJC5ESVYgJiZcbiAgICAgICAgICAgIGVsZW1lbnRJZCAhPT0gJC5QICYmXG4gICAgICAgICAgICBwLl9pc1NwZWNpYWxFbGVtZW50KHAub3BlbkVsZW1lbnRzLml0ZW1zW2ldLCBlbGVtZW50SWQpKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKSB7XG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcbiAgICB9XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG59XG5mdW5jdGlvbiBwbGFpbnRleHRTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplck1vZGUuUExBSU5URVhUO1xufVxuZnVuY3Rpb24gYnV0dG9uU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSgkLkJVVFRPTikpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5CVVRUT04pO1xuICAgIH1cbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xufVxuZnVuY3Rpb24gYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgYWN0aXZlRWxlbWVudEVudHJ5ID0gcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuZ2V0RWxlbWVudEVudHJ5SW5TY29wZVdpdGhUYWdOYW1lKFROLkEpO1xuICAgIGlmIChhY3RpdmVFbGVtZW50RW50cnkpIHtcbiAgICAgICAgY2FsbEFkb3B0aW9uQWdlbmN5KHAsIHRva2VuKTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucmVtb3ZlKGFjdGl2ZUVsZW1lbnRFbnRyeS5lbGVtZW50KTtcbiAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucmVtb3ZlRW50cnkoYWN0aXZlRWxlbWVudEVudHJ5KTtcbiAgICB9XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5wdXNoRWxlbWVudChwLm9wZW5FbGVtZW50cy5jdXJyZW50LCB0b2tlbik7XG59XG5mdW5jdGlvbiBiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnB1c2hFbGVtZW50KHAub3BlbkVsZW1lbnRzLmN1cnJlbnQsIHRva2VuKTtcbn1cbmZ1bmN0aW9uIG5vYnJTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUoJC5OT0JSKSkge1xuICAgICAgICBjYWxsQWRvcHRpb25BZ2VuY3kocCwgdG9rZW4pO1xuICAgICAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5wdXNoRWxlbWVudChwLm9wZW5FbGVtZW50cy5jdXJyZW50LCB0b2tlbik7XG59XG5mdW5jdGlvbiBhcHBsZXRTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuaW5zZXJ0TWFya2VyKCk7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG59XG5mdW5jdGlvbiB0YWJsZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAudHJlZUFkYXB0ZXIuZ2V0RG9jdW1lbnRNb2RlKHAuZG9jdW1lbnQpICE9PSBET0NVTUVOVF9NT0RFLlFVSVJLUyAmJiBwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFO1xufVxuZnVuY3Rpb24gYXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICB0b2tlbi5hY2tTZWxmQ2xvc2luZyA9IHRydWU7XG59XG5mdW5jdGlvbiBpc0hpZGRlbklucHV0KHRva2VuKSB7XG4gICAgY29uc3QgaW5wdXRUeXBlID0gZ2V0VG9rZW5BdHRyKHRva2VuLCBBVFRSUy5UWVBFKTtcbiAgICByZXR1cm4gaW5wdXRUeXBlICE9IG51bGwgJiYgaW5wdXRUeXBlLnRvTG93ZXJDYXNlKCkgPT09IEhJRERFTl9JTlBVVF9UWVBFO1xufVxuZnVuY3Rpb24gaW5wdXRTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgaWYgKCFpc0hpZGRlbklucHV0KHRva2VuKSkge1xuICAgICAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICB9XG4gICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xufVxuZnVuY3Rpb24gcGFyYW1TdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGhyU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKSB7XG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcbiAgICB9XG4gICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xufVxuZnVuY3Rpb24gaW1hZ2VTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHRva2VuLnRhZ05hbWUgPSBUTi5JTUc7XG4gICAgdG9rZW4udGFnSUQgPSAkLklNRztcbiAgICBhcmVhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xufVxuZnVuY3Rpb24gdGV4dGFyZWFTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIC8vTk9URTogSWYgdGhlIG5leHQgdG9rZW4gaXMgYSBVKzAwMEEgTElORSBGRUVEIChMRikgY2hhcmFjdGVyIHRva2VuLCB0aGVuIGlnbm9yZSB0aGF0IHRva2VuIGFuZCBtb3ZlXG4gICAgLy9vbiB0byB0aGUgbmV4dCBvbmUuIChOZXdsaW5lcyBhdCB0aGUgc3RhcnQgb2YgdGV4dGFyZWEgZWxlbWVudHMgYXJlIGlnbm9yZWQgYXMgYW4gYXV0aG9yaW5nIGNvbnZlbmllbmNlLilcbiAgICBwLnNraXBOZXh0TmV3TGluZSA9IHRydWU7XG4gICAgcC50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXJNb2RlLlJDREFUQTtcbiAgICBwLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZSA9IHAuaW5zZXJ0aW9uTW9kZTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLlRFWFQ7XG59XG5mdW5jdGlvbiB4bXBTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuICAgIH1cbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplck1vZGUuUkFXVEVYVCk7XG59XG5mdW5jdGlvbiBpZnJhbWVTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplck1vZGUuUkFXVEVYVCk7XG59XG4vL05PVEU6IGhlcmUgd2UgYXNzdW1lIHRoYXQgd2UgYWx3YXlzIGFjdCBhcyBhbiB1c2VyIGFnZW50IHdpdGggZW5hYmxlZCBwbHVnaW5zLCBzbyB3ZSBwYXJzZVxuLy88bm9lbWJlZD4gYXMgcmF3dGV4dC5cbmZ1bmN0aW9uIG5vZW1iZWRTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplck1vZGUuUkFXVEVYVCk7XG59XG5mdW5jdGlvbiBzZWxlY3RTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgcC5pbnNlcnRpb25Nb2RlID1cbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID09PSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFIHx8XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPT09IEluc2VydGlvbk1vZGUuSU5fQ0FQVElPTiB8fFxuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID09PSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFkgfHxcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9PT0gSW5zZXJ0aW9uTW9kZS5JTl9ST1cgfHxcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9PT0gSW5zZXJ0aW9uTW9kZS5JTl9DRUxMXG4gICAgICAgICAgICA/IEluc2VydGlvbk1vZGUuSU5fU0VMRUNUX0lOX1RBQkxFXG4gICAgICAgICAgICA6IEluc2VydGlvbk1vZGUuSU5fU0VMRUNUO1xufVxuZnVuY3Rpb24gb3B0Z3JvdXBTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgPT09ICQuT1BUSU9OKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgIH1cbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xufVxuZnVuY3Rpb24gcmJTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuUlVCWSkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbn1cbmZ1bmN0aW9uIHJ0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSgkLlJVQlkpKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3NXaXRoRXhjbHVzaW9uKCQuUlRDKTtcbiAgICB9XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG59XG5mdW5jdGlvbiBtYXRoU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuTWF0aE1MQXR0cnModG9rZW4pO1xuICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuWE1MQXR0cnModG9rZW4pO1xuICAgIGlmICh0b2tlbi5zZWxmQ2xvc2luZykge1xuICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5NQVRITUwpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuTUFUSE1MKTtcbiAgICB9XG4gICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xufVxuZnVuY3Rpb24gc3ZnU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuU1ZHQXR0cnModG9rZW4pO1xuICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuWE1MQXR0cnModG9rZW4pO1xuICAgIGlmICh0b2tlbi5zZWxmQ2xvc2luZykge1xuICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5TVkcpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuU1ZHKTtcbiAgICB9XG4gICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xufVxuZnVuY3Rpb24gZ2VuZXJpY1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbn1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSTpcbiAgICAgICAgY2FzZSAkLlM6XG4gICAgICAgIGNhc2UgJC5COlxuICAgICAgICBjYXNlICQuVTpcbiAgICAgICAgY2FzZSAkLkVNOlxuICAgICAgICBjYXNlICQuVFQ6XG4gICAgICAgIGNhc2UgJC5CSUc6XG4gICAgICAgIGNhc2UgJC5DT0RFOlxuICAgICAgICBjYXNlICQuRk9OVDpcbiAgICAgICAgY2FzZSAkLlNNQUxMOlxuICAgICAgICBjYXNlICQuU1RSSUtFOlxuICAgICAgICBjYXNlICQuU1RST05HOiB7XG4gICAgICAgICAgICBiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkE6IHtcbiAgICAgICAgICAgIGFTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuSDE6XG4gICAgICAgIGNhc2UgJC5IMjpcbiAgICAgICAgY2FzZSAkLkgzOlxuICAgICAgICBjYXNlICQuSDQ6XG4gICAgICAgIGNhc2UgJC5INTpcbiAgICAgICAgY2FzZSAkLkg2OiB7XG4gICAgICAgICAgICBudW1iZXJlZEhlYWRlclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5QOlxuICAgICAgICBjYXNlICQuREw6XG4gICAgICAgIGNhc2UgJC5PTDpcbiAgICAgICAgY2FzZSAkLlVMOlxuICAgICAgICBjYXNlICQuRElWOlxuICAgICAgICBjYXNlICQuRElSOlxuICAgICAgICBjYXNlICQuTkFWOlxuICAgICAgICBjYXNlICQuTUFJTjpcbiAgICAgICAgY2FzZSAkLk1FTlU6XG4gICAgICAgIGNhc2UgJC5BU0lERTpcbiAgICAgICAgY2FzZSAkLkNFTlRFUjpcbiAgICAgICAgY2FzZSAkLkZJR1VSRTpcbiAgICAgICAgY2FzZSAkLkZPT1RFUjpcbiAgICAgICAgY2FzZSAkLkhFQURFUjpcbiAgICAgICAgY2FzZSAkLkhHUk9VUDpcbiAgICAgICAgY2FzZSAkLkRJQUxPRzpcbiAgICAgICAgY2FzZSAkLkRFVEFJTFM6XG4gICAgICAgIGNhc2UgJC5BRERSRVNTOlxuICAgICAgICBjYXNlICQuQVJUSUNMRTpcbiAgICAgICAgY2FzZSAkLlNFQ1RJT046XG4gICAgICAgIGNhc2UgJC5TVU1NQVJZOlxuICAgICAgICBjYXNlICQuRklFTERTRVQ6XG4gICAgICAgIGNhc2UgJC5CTE9DS1FVT1RFOlxuICAgICAgICBjYXNlICQuRklHQ0FQVElPTjoge1xuICAgICAgICAgICAgYWRkcmVzc1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5MSTpcbiAgICAgICAgY2FzZSAkLkREOlxuICAgICAgICBjYXNlICQuRFQ6IHtcbiAgICAgICAgICAgIGxpc3RJdGVtU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJSOlxuICAgICAgICBjYXNlICQuSU1HOlxuICAgICAgICBjYXNlICQuV0JSOlxuICAgICAgICBjYXNlICQuQVJFQTpcbiAgICAgICAgY2FzZSAkLkVNQkVEOlxuICAgICAgICBjYXNlICQuS0VZR0VOOiB7XG4gICAgICAgICAgICBhcmVhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkhSOiB7XG4gICAgICAgICAgICBoclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5SQjpcbiAgICAgICAgY2FzZSAkLlJUQzoge1xuICAgICAgICAgICAgcmJTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuUlQ6XG4gICAgICAgIGNhc2UgJC5SUDoge1xuICAgICAgICAgICAgcnRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuUFJFOlxuICAgICAgICBjYXNlICQuTElTVElORzoge1xuICAgICAgICAgICAgcHJlU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlhNUDoge1xuICAgICAgICAgICAgeG1wU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlNWRzoge1xuICAgICAgICAgICAgc3ZnU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIGh0bWxTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQkFTRTpcbiAgICAgICAgY2FzZSAkLkxJTks6XG4gICAgICAgIGNhc2UgJC5NRVRBOlxuICAgICAgICBjYXNlICQuU1RZTEU6XG4gICAgICAgIGNhc2UgJC5USVRMRTpcbiAgICAgICAgY2FzZSAkLlNDUklQVDpcbiAgICAgICAgY2FzZSAkLkJHU09VTkQ6XG4gICAgICAgIGNhc2UgJC5CQVNFRk9OVDpcbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQk9EWToge1xuICAgICAgICAgICAgYm9keVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5GT1JNOiB7XG4gICAgICAgICAgICBmb3JtU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk5PQlI6IHtcbiAgICAgICAgICAgIG5vYnJTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTUFUSDoge1xuICAgICAgICAgICAgbWF0aFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQUJMRToge1xuICAgICAgICAgICAgdGFibGVTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuSU5QVVQ6IHtcbiAgICAgICAgICAgIGlucHV0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlBBUkFNOlxuICAgICAgICBjYXNlICQuVFJBQ0s6XG4gICAgICAgIGNhc2UgJC5TT1VSQ0U6IHtcbiAgICAgICAgICAgIHBhcmFtU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLklNQUdFOiB7XG4gICAgICAgICAgICBpbWFnZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CVVRUT046IHtcbiAgICAgICAgICAgIGJ1dHRvblN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5BUFBMRVQ6XG4gICAgICAgIGNhc2UgJC5PQkpFQ1Q6XG4gICAgICAgIGNhc2UgJC5NQVJRVUVFOiB7XG4gICAgICAgICAgICBhcHBsZXRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuSUZSQU1FOiB7XG4gICAgICAgICAgICBpZnJhbWVTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuU0VMRUNUOiB7XG4gICAgICAgICAgICBzZWxlY3RTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuT1BUSU9OOlxuICAgICAgICBjYXNlICQuT1BUR1JPVVA6IHtcbiAgICAgICAgICAgIG9wdGdyb3VwU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk5PRU1CRUQ6IHtcbiAgICAgICAgICAgIG5vZW1iZWRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgIGZyYW1lc2V0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFWFRBUkVBOiB7XG4gICAgICAgICAgICB0ZXh0YXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5OT1NDUklQVDoge1xuICAgICAgICAgICAgaWYgKHAub3B0aW9ucy5zY3JpcHRpbmdFbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgbm9lbWJlZFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGdlbmVyaWNTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuUExBSU5URVhUOiB7XG4gICAgICAgICAgICBwbGFpbnRleHRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ09MOlxuICAgICAgICBjYXNlICQuVEg6XG4gICAgICAgIGNhc2UgJC5URDpcbiAgICAgICAgY2FzZSAkLlRSOlxuICAgICAgICBjYXNlICQuSEVBRDpcbiAgICAgICAgY2FzZSAkLkZSQU1FOlxuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIRUFEOlxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOiB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgdG9rZW5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGdlbmVyaWNTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBib2R5RW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUoJC5CT0RZKSkge1xuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk7XG4gICAgICAgIC8vTk9URTogPGJvZHk+IGlzIG5ldmVyIHBvcHBlZCBmcm9tIHRoZSBzdGFjaywgc28gd2UgbmVlZCB0byB1cGRhdGVkXG4gICAgICAgIC8vdGhlIGVuZCBsb2NhdGlvbiBleHBsaWNpdGx5LlxuICAgICAgICBpZiAocC5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8pIHtcbiAgICAgICAgICAgIGNvbnN0IGJvZHlFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMudHJ5UGVla1Byb3Blcmx5TmVzdGVkQm9keUVsZW1lbnQoKTtcbiAgICAgICAgICAgIGlmIChib2R5RWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHAuX3NldEVuZExvY2F0aW9uKGJvZHlFbGVtZW50LCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBodG1sRW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUoJC5CT0RZKSkge1xuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk7XG4gICAgICAgIGVuZFRhZ0FmdGVyQm9keShwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gYWRkcmVzc0VuZFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUodG4pKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKHRuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBmb3JtRW5kVGFnSW5Cb2R5KHApIHtcbiAgICBjb25zdCBpblRlbXBsYXRlID0gcC5vcGVuRWxlbWVudHMudG1wbENvdW50ID4gMDtcbiAgICBjb25zdCB7IGZvcm1FbGVtZW50IH0gPSBwO1xuICAgIGlmICghaW5UZW1wbGF0ZSkge1xuICAgICAgICBwLmZvcm1FbGVtZW50ID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKChmb3JtRWxlbWVudCB8fCBpblRlbXBsYXRlKSAmJiBwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuRk9STSkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICBpZiAoaW5UZW1wbGF0ZSkge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuRk9STSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoZm9ybUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnJlbW92ZShmb3JtRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBwRW5kVGFnSW5Cb2R5KHApIHtcbiAgICBpZiAoIXAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkge1xuICAgICAgICBwLl9pbnNlcnRGYWtlRWxlbWVudChUTi5QLCAkLlApO1xuICAgIH1cbiAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG59XG5mdW5jdGlvbiBsaUVuZFRhZ0luQm9keShwKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luTGlzdEl0ZW1TY29wZSgkLkxJKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbigkLkxJKTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuTEkpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGRkRW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSh0bikpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24odG4pO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQodG4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIG51bWJlcmVkSGVhZGVyRW5kVGFnSW5Cb2R5KHApIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzTnVtYmVyZWRIZWFkZXJJblNjb3BlKCkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbE51bWJlcmVkSGVhZGVyUG9wcGVkKCk7XG4gICAgfVxufVxuZnVuY3Rpb24gYXBwbGV0RW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSh0bikpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQodG4pO1xuICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5jbGVhclRvTGFzdE1hcmtlcigpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGJyRW5kVGFnSW5Cb2R5KHApIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEZha2VFbGVtZW50KFROLkJSLCAkLkJSKTtcbiAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbn1cbmZ1bmN0aW9uIGdlbmVyaWNFbmRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ05hbWU7XG4gICAgY29uc3QgdGlkID0gdG9rZW4udGFnSUQ7XG4gICAgZm9yIChsZXQgaSA9IHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID4gMDsgaS0tKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5pdGVtc1tpXTtcbiAgICAgICAgY29uc3QgZWxlbWVudElkID0gcC5vcGVuRWxlbWVudHMudGFnSURzW2ldO1xuICAgICAgICAvLyBDb21wYXJlIHRoZSB0YWcgbmFtZSBoZXJlLCBhcyB0aGUgdGFnIG1pZ2h0IG5vdCBiZSBhIGtub3duIHRhZyB3aXRoIGFuIElELlxuICAgICAgICBpZiAodGlkID09PSBlbGVtZW50SWQgJiYgKHRpZCAhPT0gJC5VTktOT1dOIHx8IHAudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbGVtZW50KSA9PT0gdG4pKSB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbih0aWQpO1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wID49IGkpXG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuc2hvcnRlblRvTGVuZ3RoKGkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHAuX2lzU3BlY2lhbEVsZW1lbnQoZWxlbWVudCwgZWxlbWVudElkKSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5BOlxuICAgICAgICBjYXNlICQuQjpcbiAgICAgICAgY2FzZSAkLkk6XG4gICAgICAgIGNhc2UgJC5TOlxuICAgICAgICBjYXNlICQuVTpcbiAgICAgICAgY2FzZSAkLkVNOlxuICAgICAgICBjYXNlICQuVFQ6XG4gICAgICAgIGNhc2UgJC5CSUc6XG4gICAgICAgIGNhc2UgJC5DT0RFOlxuICAgICAgICBjYXNlICQuRk9OVDpcbiAgICAgICAgY2FzZSAkLk5PQlI6XG4gICAgICAgIGNhc2UgJC5TTUFMTDpcbiAgICAgICAgY2FzZSAkLlNUUklLRTpcbiAgICAgICAgY2FzZSAkLlNUUk9ORzoge1xuICAgICAgICAgICAgY2FsbEFkb3B0aW9uQWdlbmN5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5QOiB7XG4gICAgICAgICAgICBwRW5kVGFnSW5Cb2R5KHApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkRMOlxuICAgICAgICBjYXNlICQuVUw6XG4gICAgICAgIGNhc2UgJC5PTDpcbiAgICAgICAgY2FzZSAkLkRJUjpcbiAgICAgICAgY2FzZSAkLkRJVjpcbiAgICAgICAgY2FzZSAkLk5BVjpcbiAgICAgICAgY2FzZSAkLlBSRTpcbiAgICAgICAgY2FzZSAkLk1BSU46XG4gICAgICAgIGNhc2UgJC5NRU5VOlxuICAgICAgICBjYXNlICQuQVNJREU6XG4gICAgICAgIGNhc2UgJC5CVVRUT046XG4gICAgICAgIGNhc2UgJC5DRU5URVI6XG4gICAgICAgIGNhc2UgJC5GSUdVUkU6XG4gICAgICAgIGNhc2UgJC5GT09URVI6XG4gICAgICAgIGNhc2UgJC5IRUFERVI6XG4gICAgICAgIGNhc2UgJC5IR1JPVVA6XG4gICAgICAgIGNhc2UgJC5ESUFMT0c6XG4gICAgICAgIGNhc2UgJC5BRERSRVNTOlxuICAgICAgICBjYXNlICQuQVJUSUNMRTpcbiAgICAgICAgY2FzZSAkLkRFVEFJTFM6XG4gICAgICAgIGNhc2UgJC5TRUNUSU9OOlxuICAgICAgICBjYXNlICQuU1VNTUFSWTpcbiAgICAgICAgY2FzZSAkLkxJU1RJTkc6XG4gICAgICAgIGNhc2UgJC5GSUVMRFNFVDpcbiAgICAgICAgY2FzZSAkLkJMT0NLUVVPVEU6XG4gICAgICAgIGNhc2UgJC5GSUdDQVBUSU9OOiB7XG4gICAgICAgICAgICBhZGRyZXNzRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5MSToge1xuICAgICAgICAgICAgbGlFbmRUYWdJbkJvZHkocCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuREQ6XG4gICAgICAgIGNhc2UgJC5EVDoge1xuICAgICAgICAgICAgZGRFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkgxOlxuICAgICAgICBjYXNlICQuSDI6XG4gICAgICAgIGNhc2UgJC5IMzpcbiAgICAgICAgY2FzZSAkLkg0OlxuICAgICAgICBjYXNlICQuSDU6XG4gICAgICAgIGNhc2UgJC5INjoge1xuICAgICAgICAgICAgbnVtYmVyZWRIZWFkZXJFbmRUYWdJbkJvZHkocCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQlI6IHtcbiAgICAgICAgICAgIGJyRW5kVGFnSW5Cb2R5KHApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJPRFk6IHtcbiAgICAgICAgICAgIGJvZHlFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIGh0bWxFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkZPUk06IHtcbiAgICAgICAgICAgIGZvcm1FbmRUYWdJbkJvZHkocCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQVBQTEVUOlxuICAgICAgICBjYXNlICQuT0JKRUNUOlxuICAgICAgICBjYXNlICQuTUFSUVVFRToge1xuICAgICAgICAgICAgYXBwbGV0RW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgZ2VuZXJpY0VuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlb2ZJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZW9mSW5UZW1wbGF0ZShwLCB0b2tlbik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzdG9wUGFyc2luZyhwLCB0b2tlbik7XG4gICAgfVxufVxuLy8gVGhlIFwidGV4dFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gZW5kVGFnSW5UZXh0KHAsIHRva2VuKSB7XG4gICAgdmFyIF9hO1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5TQ1JJUFQpIHtcbiAgICAgICAgKF9hID0gcC5zY3JpcHRIYW5kbGVyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChwLCBwLm9wZW5FbGVtZW50cy5jdXJyZW50KTtcbiAgICB9XG4gICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gcC5vcmlnaW5hbEluc2VydGlvbk1vZGU7XG59XG5mdW5jdGlvbiBlb2ZJblRleHQocCwgdG9rZW4pIHtcbiAgICBwLl9lcnIodG9rZW4sIEVSUi5lb2ZJbkVsZW1lbnRUaGF0Q2FuQ29udGFpbk9ubHlUZXh0KTtcbiAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBwLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZTtcbiAgICBwLm9uRW9mKHRva2VuKTtcbn1cbi8vIFRoZSBcImluIHRhYmxlXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBjaGFyYWN0ZXJJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgaWYgKFRBQkxFX1NUUlVDVFVSRV9UQUdTLmhhcyhwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQpKSB7XG4gICAgICAgIHAucGVuZGluZ0NoYXJhY3RlclRva2Vucy5sZW5ndGggPSAwO1xuICAgICAgICBwLmhhc05vbldoaXRlc3BhY2VQZW5kaW5nQ2hhcmFjdGVyVG9rZW4gPSBmYWxzZTtcbiAgICAgICAgcC5vcmlnaW5hbEluc2VydGlvbk1vZGUgPSBwLmluc2VydGlvbk1vZGU7XG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfVEVYVDtcbiAgICAgICAgc3dpdGNoICh0b2tlbi50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5DSEFSQUNURVI6IHtcbiAgICAgICAgICAgICAgICBjaGFyYWN0ZXJJblRhYmxlVGV4dChwLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5XSElURVNQQUNFX0NIQVJBQ1RFUjoge1xuICAgICAgICAgICAgICAgIHdoaXRlc3BhY2VDaGFyYWN0ZXJJblRhYmxlVGV4dChwLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZ25vcmUgbnVsbFxuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0b2tlbkluVGFibGUocCwgdG9rZW4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGNhcHRpb25TdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpO1xuICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmluc2VydE1hcmtlcigpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQ0FQVElPTjtcbn1cbmZ1bmN0aW9uIGNvbGdyb3VwU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUNvbnRleHQoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDtcbn1cbmZ1bmN0aW9uIGNvbFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVDb250ZXh0KCk7XG4gICAgcC5faW5zZXJ0RmFrZUVsZW1lbnQoVE4uQ09MR1JPVVAsICQuQ09MR1JPVVApO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQO1xuICAgIHN0YXJ0VGFnSW5Db2x1bW5Hcm91cChwLCB0b2tlbik7XG59XG5mdW5jdGlvbiB0Ym9keVN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVDb250ZXh0KCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xufVxuZnVuY3Rpb24gdGRTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpO1xuICAgIHAuX2luc2VydEZha2VFbGVtZW50KFROLlRCT0RZLCAkLlRCT0RZKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk7XG4gICAgc3RhcnRUYWdJblRhYmxlQm9keShwLCB0b2tlbik7XG59XG5mdW5jdGlvbiB0YWJsZVN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UQUJMRSkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuVEFCTEUpO1xuICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgcC5fcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBpbnB1dFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIGlmIChpc0hpZGRlbklucHV0KHRva2VuKSkge1xuICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7XG4gICAgfVxuICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGZvcm1TdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBpZiAoIXAuZm9ybUVsZW1lbnQgJiYgcC5vcGVuRWxlbWVudHMudG1wbENvdW50ID09PSAwKSB7XG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICBwLmZvcm1FbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuY3VycmVudDtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgfVxufVxuZnVuY3Rpb24gc3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuVEQ6XG4gICAgICAgIGNhc2UgJC5USDpcbiAgICAgICAgY2FzZSAkLlRSOiB7XG4gICAgICAgICAgICB0ZFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuU1RZTEU6XG4gICAgICAgIGNhc2UgJC5TQ1JJUFQ6XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkNPTDoge1xuICAgICAgICAgICAgY29sU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5GT1JNOiB7XG4gICAgICAgICAgICBmb3JtU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQUJMRToge1xuICAgICAgICAgICAgdGFibGVTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEZPT1Q6XG4gICAgICAgIGNhc2UgJC5USEVBRDoge1xuICAgICAgICAgICAgdGJvZHlTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLklOUFVUOiB7XG4gICAgICAgICAgICBpbnB1dFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ0FQVElPTjoge1xuICAgICAgICAgICAgY2FwdGlvblN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6IHtcbiAgICAgICAgICAgIGNvbGdyb3VwU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UQUJMRSkpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5UQUJMRSk7XG4gICAgICAgICAgICAgICAgcC5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEVNUExBVEU6IHtcbiAgICAgICAgICAgIHRlbXBsYXRlRW5kVGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CT0RZOlxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTDpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOlxuICAgICAgICBjYXNlICQuSFRNTDpcbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEQ6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIOlxuICAgICAgICBjYXNlICQuVEhFQUQ6XG4gICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgLy8gSWdub3JlIHRva2VuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkluVGFibGUocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5JblRhYmxlKHAsIHRva2VuKSB7XG4gICAgY29uc3Qgc2F2ZWRGb3N0ZXJQYXJlbnRpbmdTdGF0ZSA9IHAuZm9zdGVyUGFyZW50aW5nRW5hYmxlZDtcbiAgICBwLmZvc3RlclBhcmVudGluZ0VuYWJsZWQgPSB0cnVlO1xuICAgIC8vIFByb2Nlc3MgdG9rZW4gaW4gYEluIEJvZHlgIG1vZGVcbiAgICBtb2RlSW5Cb2R5KHAsIHRva2VuKTtcbiAgICBwLmZvc3RlclBhcmVudGluZ0VuYWJsZWQgPSBzYXZlZEZvc3RlclBhcmVudGluZ1N0YXRlO1xufVxuLy8gVGhlIFwiaW4gdGFibGUgdGV4dFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gd2hpdGVzcGFjZUNoYXJhY3RlckluVGFibGVUZXh0KHAsIHRva2VuKSB7XG4gICAgcC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zLnB1c2godG9rZW4pO1xufVxuZnVuY3Rpb24gY2hhcmFjdGVySW5UYWJsZVRleHQocCwgdG9rZW4pIHtcbiAgICBwLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnMucHVzaCh0b2tlbik7XG4gICAgcC5oYXNOb25XaGl0ZXNwYWNlUGVuZGluZ0NoYXJhY3RlclRva2VuID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIHRva2VuSW5UYWJsZVRleHQocCwgdG9rZW4pIHtcbiAgICBsZXQgaSA9IDA7XG4gICAgaWYgKHAuaGFzTm9uV2hpdGVzcGFjZVBlbmRpbmdDaGFyYWN0ZXJUb2tlbikge1xuICAgICAgICBmb3IgKDsgaSA8IHAucGVuZGluZ0NoYXJhY3RlclRva2Vucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdG9rZW5JblRhYmxlKHAsIHAucGVuZGluZ0NoYXJhY3RlclRva2Vuc1tpXSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGZvciAoOyBpIDwgcC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBwLl9pbnNlcnRDaGFyYWN0ZXJzKHAucGVuZGluZ0NoYXJhY3RlclRva2Vuc1tpXSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gcC5vcmlnaW5hbEluc2VydGlvbk1vZGU7XG4gICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbn1cbi8vIFRoZSBcImluIGNhcHRpb25cIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmNvbnN0IFRBQkxFX1ZPSURfRUxFTUVOVFMgPSBuZXcgU2V0KFskLkNBUFRJT04sICQuQ09MLCAkLkNPTEdST1VQLCAkLlRCT0RZLCAkLlRELCAkLlRGT09ULCAkLlRILCAkLlRIRUFELCAkLlRSXSk7XG5mdW5jdGlvbiBzdGFydFRhZ0luQ2FwdGlvbihwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKFRBQkxFX1ZPSURfRUxFTUVOVFMuaGFzKHRuKSkge1xuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuQ0FQVElPTikpIHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLkNBUFRJT04pO1xuICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICBzdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5DYXB0aW9uKHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBzd2l0Y2ggKHRuKSB7XG4gICAgICAgIGNhc2UgJC5DQVBUSU9OOlxuICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5DQVBUSU9OKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5DQVBUSU9OKTtcbiAgICAgICAgICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5jbGVhclRvTGFzdE1hcmtlcigpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICAgICAgaWYgKHRuID09PSAkLlRBQkxFKSB7XG4gICAgICAgICAgICAgICAgICAgIGVuZFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CT0RZOlxuICAgICAgICBjYXNlICQuQ09MOlxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6XG4gICAgICAgIGNhc2UgJC5IVE1MOlxuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URDpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEg6XG4gICAgICAgIGNhc2UgJC5USEVBRDpcbiAgICAgICAgY2FzZSAkLlRSOiB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgdG9rZW5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGVuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBUaGUgXCJpbiBjb2x1bW4gZ3JvdXBcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5Db2x1bW5Hcm91cChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5DT0w6IHtcbiAgICAgICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkluQ29sdW1uR3JvdXAocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5Db2x1bW5Hcm91cChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLkNPTEdST1VQKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkNPTDoge1xuICAgICAgICAgICAgLy8gSWdub3JlIHRva2VuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkluQ29sdW1uR3JvdXAocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5JbkNvbHVtbkdyb3VwKHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCA9PT0gJC5DT0xHUk9VUCkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbiAgICB9XG59XG4vLyBUaGUgXCJpbiB0YWJsZSBib2R5XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpO1xuICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1JPVztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5USDpcbiAgICAgICAgY2FzZSAkLlREOiB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQm9keUNvbnRleHQoKTtcbiAgICAgICAgICAgIHAuX2luc2VydEZha2VFbGVtZW50KFROLlRSLCAkLlRSKTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fUk9XO1xuICAgICAgICAgICAgc3RhcnRUYWdJblJvdyhwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTDpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOlxuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIRUFEOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzVGFibGVCb2R5Q29udGV4dEluVGFibGVTY29wZSgpKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUJvZHlDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEhFQUQ6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUodG4pKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUJvZHlDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQUJMRToge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc1RhYmxlQm9keUNvbnRleHRJblRhYmxlU2NvcGUoKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpO1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQk9EWTpcbiAgICAgICAgY2FzZSAkLkNBUFRJT046XG4gICAgICAgIGNhc2UgJC5DT0w6XG4gICAgICAgIGNhc2UgJC5DT0xHUk9VUDpcbiAgICAgICAgY2FzZSAkLkhUTUw6XG4gICAgICAgIGNhc2UgJC5URDpcbiAgICAgICAgY2FzZSAkLlRIOlxuICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgIC8vIElnbm9yZSB0b2tlblxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgZW5kVGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBUaGUgXCJpbiByb3dcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5Sb3cocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5USDpcbiAgICAgICAgY2FzZSAkLlREOiB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCgpO1xuICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0NFTEw7XG4gICAgICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pbnNlcnRNYXJrZXIoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5DQVBUSU9OOlxuICAgICAgICBjYXNlICQuQ09MOlxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6XG4gICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEhFQUQ6XG4gICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRSKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5UYWJsZUJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luUm93KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UUikpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCgpO1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQUJMRToge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRSKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEhFQUQ6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUodG9rZW4udGFnSUQpIHx8IHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRSKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CT0RZOlxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTDpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOlxuICAgICAgICBjYXNlICQuSFRNTDpcbiAgICAgICAgY2FzZSAkLlREOlxuICAgICAgICBjYXNlICQuVEg6IHtcbiAgICAgICAgICAgIC8vIElnbm9yZSBlbmQgdGFnXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBlbmRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIFRoZSBcImluIGNlbGxcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5DZWxsKHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAoVEFCTEVfVk9JRF9FTEVNRU5UUy5oYXModG4pKSB7XG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5URCkgfHwgcC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuVEgpKSB7XG4gICAgICAgICAgICBwLl9jbG9zZVRhYmxlQ2VsbCgpO1xuICAgICAgICAgICAgc3RhcnRUYWdJblJvdyhwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJbkNlbGwocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIHN3aXRjaCAodG4pIHtcbiAgICAgICAgY2FzZSAkLlREOlxuICAgICAgICBjYXNlICQuVEg6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUodG4pKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCh0bik7XG4gICAgICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICAgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1JPVztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQUJMRTpcbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEZPT1Q6XG4gICAgICAgIGNhc2UgJC5USEVBRDpcbiAgICAgICAgY2FzZSAkLlRSOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKHRuKSkge1xuICAgICAgICAgICAgICAgIHAuX2Nsb3NlVGFibGVDZWxsKCk7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5Sb3cocCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJPRFk6XG4gICAgICAgIGNhc2UgJC5DQVBUSU9OOlxuICAgICAgICBjYXNlICQuQ09MOlxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgdG9rZW5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGVuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBUaGUgXCJpbiBzZWxlY3RcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5TZWxlY3QocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuT1BUSU9OOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVElPTikge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuT1BUR1JPVVA6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgPT09ICQuT1BUSU9OKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVEdST1VQKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5JTlBVVDpcbiAgICAgICAgY2FzZSAkLktFWUdFTjpcbiAgICAgICAgY2FzZSAkLlRFWFRBUkVBOlxuICAgICAgICBjYXNlICQuU0VMRUNUOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TZWxlY3RTY29wZSgkLlNFTEVDVCkpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5TRUxFQ1QpO1xuICAgICAgICAgICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgICAgICAgICAgICAgIGlmICh0b2tlbi50YWdJRCAhPT0gJC5TRUxFQ1QpIHtcbiAgICAgICAgICAgICAgICAgICAgcC5fcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuU0NSSVBUOlxuICAgICAgICBjYXNlICQuVEVNUExBVEU6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJblNlbGVjdChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLk9QVEdST1VQOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuc3RhY2tUb3AgPiAwICYmXG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVElPTiAmJlxuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnRhZ0lEc1twLm9wZW5FbGVtZW50cy5zdGFja1RvcCAtIDFdID09PSAkLk9QVEdST1VQKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVEdST1VQKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuT1BUSU9OOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVElPTikge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlNFTEVDVDoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2VsZWN0U2NvcGUoJC5TRUxFQ1QpKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuU0VMRUNUKTtcbiAgICAgICAgICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgIH1cbn1cbi8vIFRoZSBcImluIHNlbGVjdCBpbiB0YWJsZVwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdJblNlbGVjdEluVGFibGUocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIGlmICh0biA9PT0gJC5DQVBUSU9OIHx8XG4gICAgICAgIHRuID09PSAkLlRBQkxFIHx8XG4gICAgICAgIHRuID09PSAkLlRCT0RZIHx8XG4gICAgICAgIHRuID09PSAkLlRGT09UIHx8XG4gICAgICAgIHRuID09PSAkLlRIRUFEIHx8XG4gICAgICAgIHRuID09PSAkLlRSIHx8XG4gICAgICAgIHRuID09PSAkLlREIHx8XG4gICAgICAgIHRuID09PSAkLlRIKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlNFTEVDVCk7XG4gICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgICAgICBwLl9wcm9jZXNzU3RhcnRUYWcodG9rZW4pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgc3RhcnRUYWdJblNlbGVjdChwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5TZWxlY3RJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAodG4gPT09ICQuQ0FQVElPTiB8fFxuICAgICAgICB0biA9PT0gJC5UQUJMRSB8fFxuICAgICAgICB0biA9PT0gJC5UQk9EWSB8fFxuICAgICAgICB0biA9PT0gJC5URk9PVCB8fFxuICAgICAgICB0biA9PT0gJC5USEVBRCB8fFxuICAgICAgICB0biA9PT0gJC5UUiB8fFxuICAgICAgICB0biA9PT0gJC5URCB8fFxuICAgICAgICB0biA9PT0gJC5USCkge1xuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKHRuKSkge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuU0VMRUNUKTtcbiAgICAgICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgICAgICAgICAgcC5vbkVuZFRhZyh0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGVuZFRhZ0luU2VsZWN0KHAsIHRva2VuKTtcbiAgICB9XG59XG4vLyBUaGUgXCJpbiB0ZW1wbGF0ZVwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdJblRlbXBsYXRlKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICAvLyBGaXJzdCwgaGFuZGxlIHRhZ3MgdGhhdCBjYW4gc3RhcnQgd2l0aG91dCBhIG1vZGUgY2hhbmdlXG4gICAgICAgIGNhc2UgJC5CQVNFOlxuICAgICAgICBjYXNlICQuQkFTRUZPTlQ6XG4gICAgICAgIGNhc2UgJC5CR1NPVU5EOlxuICAgICAgICBjYXNlICQuTElOSzpcbiAgICAgICAgY2FzZSAkLk1FVEE6XG4gICAgICAgIGNhc2UgJC5OT0ZSQU1FUzpcbiAgICAgICAgY2FzZSAkLlNDUklQVDpcbiAgICAgICAgY2FzZSAkLlNUWUxFOlxuICAgICAgICBjYXNlICQuVEVNUExBVEU6XG4gICAgICAgIGNhc2UgJC5USVRMRToge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUmUtcHJvY2VzcyB0aGUgdG9rZW4gaW4gdGhlIGFwcHJvcHJpYXRlIG1vZGVcbiAgICAgICAgY2FzZSAkLkNBUFRJT046XG4gICAgICAgIGNhc2UgJC5DT0xHUk9VUDpcbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEZPT1Q6XG4gICAgICAgIGNhc2UgJC5USEVBRDoge1xuICAgICAgICAgICAgcC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrWzBdID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICBzdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkNPTDoge1xuICAgICAgICAgICAgcC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrWzBdID0gSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Db2x1bW5Hcm91cChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgIHAudG1wbEluc2VydGlvbk1vZGVTdGFja1swXSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5UYWJsZUJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlREOlxuICAgICAgICBjYXNlICQuVEg6IHtcbiAgICAgICAgICAgIHAudG1wbEluc2VydGlvbk1vZGVTdGFja1swXSA9IEluc2VydGlvbk1vZGUuSU5fUk9XO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9ST1c7XG4gICAgICAgICAgICBzdGFydFRhZ0luUm93KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHAudG1wbEluc2VydGlvbk1vZGVTdGFja1swXSA9IEluc2VydGlvbk1vZGUuSU5fQk9EWTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQk9EWTtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luVGVtcGxhdGUocCwgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuVEVNUExBVEUpIHtcbiAgICAgICAgdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGVvZkluVGVtcGxhdGUocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMudG1wbENvdW50ID4gMCkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5URU1QTEFURSk7XG4gICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmNsZWFyVG9MYXN0TWFya2VyKCk7XG4gICAgICAgIHAudG1wbEluc2VydGlvbk1vZGVTdGFjay5zaGlmdCgpO1xuICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgcC5vbkVvZih0b2tlbik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzdG9wUGFyc2luZyhwLCB0b2tlbik7XG4gICAgfVxufVxuLy8gVGhlIFwiYWZ0ZXIgYm9keVwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdBZnRlckJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuSFRNTCkge1xuICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0b2tlbkFmdGVyQm9keShwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnQWZ0ZXJCb2R5KHAsIHRva2VuKSB7XG4gICAgdmFyIF9hO1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5IVE1MKSB7XG4gICAgICAgIGlmICghcC5mcmFnbWVudENvbnRleHQpIHtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfQk9EWTtcbiAgICAgICAgfVxuICAgICAgICAvL05PVEU6IDxodG1sPiBpcyBuZXZlciBwb3BwZWQgZnJvbSB0aGUgc3RhY2ssIHNvIHdlIG5lZWQgdG8gdXBkYXRlZFxuICAgICAgICAvL3RoZSBlbmQgbG9jYXRpb24gZXhwbGljaXRseS5cbiAgICAgICAgaWYgKHAub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvICYmIHAub3BlbkVsZW1lbnRzLnRhZ0lEc1swXSA9PT0gJC5IVE1MKSB7XG4gICAgICAgICAgICBwLl9zZXRFbmRMb2NhdGlvbihwLm9wZW5FbGVtZW50cy5pdGVtc1swXSwgdG9rZW4pO1xuICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBib2R5IGVsZW1lbnQsIGlmIGl0IGRvZXNuJ3QgaGF2ZSBhbiBlbmQgdGFnXG4gICAgICAgICAgICBjb25zdCBib2R5RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLml0ZW1zWzFdO1xuICAgICAgICAgICAgaWYgKGJvZHlFbGVtZW50ICYmICEoKF9hID0gcC50cmVlQWRhcHRlci5nZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKGJvZHlFbGVtZW50KSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmVuZFRhZykpIHtcbiAgICAgICAgICAgICAgICBwLl9zZXRFbmRMb2NhdGlvbihib2R5RWxlbWVudCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0b2tlbkFmdGVyQm9keShwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5BZnRlckJvZHkocCwgdG9rZW4pIHtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0JPRFk7XG4gICAgbW9kZUluQm9keShwLCB0b2tlbik7XG59XG4vLyBUaGUgXCJpbiBmcmFtZXNldFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdJbkZyYW1lc2V0KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkZSQU1FU0VUOiB7XG4gICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5GUkFNRToge1xuICAgICAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICB0b2tlbi5hY2tTZWxmQ2xvc2luZyA9IHRydWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTk9GUkFNRVM6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJbkZyYW1lc2V0KHAsIHRva2VuKSB7XG4gICAgaWYgKHRva2VuLnRhZ0lEID09PSAkLkZSQU1FU0VUICYmICFwLm9wZW5FbGVtZW50cy5pc1Jvb3RIdG1sRWxlbWVudEN1cnJlbnQoKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgaWYgKCFwLmZyYWdtZW50Q29udGV4dCAmJiBwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgIT09ICQuRlJBTUVTRVQpIHtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuQUZURVJfRlJBTUVTRVQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBUaGUgXCJhZnRlciBmcmFtZXNldFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdBZnRlckZyYW1lc2V0KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk5PRlJBTUVTOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnQWZ0ZXJGcmFtZXNldChwLCB0b2tlbikge1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5IVE1MKSB7XG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfRlJBTUVTRVQ7XG4gICAgfVxufVxuLy8gVGhlIFwiYWZ0ZXIgYWZ0ZXIgYm9keVwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdBZnRlckFmdGVyQm9keShwLCB0b2tlbikge1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5IVE1MKSB7XG4gICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRva2VuQWZ0ZXJBZnRlckJvZHkocCwgdG9rZW4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHRva2VuQWZ0ZXJBZnRlckJvZHkocCwgdG9rZW4pIHtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0JPRFk7XG4gICAgbW9kZUluQm9keShwLCB0b2tlbik7XG59XG4vLyBUaGUgXCJhZnRlciBhZnRlciBmcmFtZXNldFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdBZnRlckFmdGVyRnJhbWVzZXQocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTk9GUkFNRVM6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICB9XG59XG4vLyBUaGUgcnVsZXMgZm9yIHBhcnNpbmcgdG9rZW5zIGluIGZvcmVpZ24gY29udGVudFxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIG51bGxDaGFyYWN0ZXJJbkZvcmVpZ25Db250ZW50KHAsIHRva2VuKSB7XG4gICAgdG9rZW4uY2hhcnMgPSB1bmljb2RlLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICBwLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTtcbn1cbmZ1bmN0aW9uIGNoYXJhY3RlckluRm9yZWlnbkNvbnRlbnQocCwgdG9rZW4pIHtcbiAgICBwLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbn1cbmZ1bmN0aW9uIHBvcFVudGlsSHRtbE9ySW50ZWdyYXRpb25Qb2ludChwKSB7XG4gICAgd2hpbGUgKHAudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHAub3BlbkVsZW1lbnRzLmN1cnJlbnQpICE9PSBOUy5IVE1MICYmXG4gICAgICAgICFwLl9pc0ludGVncmF0aW9uUG9pbnQocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkLCBwLm9wZW5FbGVtZW50cy5jdXJyZW50KSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICB9XG59XG5mdW5jdGlvbiBzdGFydFRhZ0luRm9yZWlnbkNvbnRlbnQocCwgdG9rZW4pIHtcbiAgICBpZiAoZm9yZWlnbkNvbnRlbnQuY2F1c2VzRXhpdCh0b2tlbikpIHtcbiAgICAgICAgcG9wVW50aWxIdG1sT3JJbnRlZ3JhdGlvblBvaW50KHApO1xuICAgICAgICBwLl9zdGFydFRhZ091dHNpZGVGb3JlaWduQ29udGVudCh0b2tlbik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjb25zdCBjdXJyZW50ID0gcC5fZ2V0QWRqdXN0ZWRDdXJyZW50RWxlbWVudCgpO1xuICAgICAgICBjb25zdCBjdXJyZW50TnMgPSBwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShjdXJyZW50KTtcbiAgICAgICAgaWYgKGN1cnJlbnROcyA9PT0gTlMuTUFUSE1MKSB7XG4gICAgICAgICAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlbk1hdGhNTEF0dHJzKHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChjdXJyZW50TnMgPT09IE5TLlNWRykge1xuICAgICAgICAgICAgZm9yZWlnbkNvbnRlbnQuYWRqdXN0VG9rZW5TVkdUYWdOYW1lKHRva2VuKTtcbiAgICAgICAgICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuU1ZHQXR0cnModG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuWE1MQXR0cnModG9rZW4pO1xuICAgICAgICBpZiAodG9rZW4uc2VsZkNsb3NpbmcpIHtcbiAgICAgICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIGN1cnJlbnROcyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBjdXJyZW50TnMpO1xuICAgICAgICB9XG4gICAgICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJbkZvcmVpZ25Db250ZW50KHAsIHRva2VuKSB7XG4gICAgaWYgKHRva2VuLnRhZ0lEID09PSAkLlAgfHwgdG9rZW4udGFnSUQgPT09ICQuQlIpIHtcbiAgICAgICAgcG9wVW50aWxIdG1sT3JJbnRlZ3JhdGlvblBvaW50KHApO1xuICAgICAgICBwLl9lbmRUYWdPdXRzaWRlRm9yZWlnbkNvbnRlbnQodG9rZW4pO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSBwLm9wZW5FbGVtZW50cy5zdGFja1RvcDsgaSA+IDA7IGktLSkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuaXRlbXNbaV07XG4gICAgICAgIGlmIChwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShlbGVtZW50KSA9PT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgcC5fZW5kVGFnT3V0c2lkZUZvcmVpZ25Db250ZW50KHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRhZ05hbWUgPSBwLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCk7XG4gICAgICAgIGlmICh0YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09IHRva2VuLnRhZ05hbWUpIHtcbiAgICAgICAgICAgIC8vTk9URTogdXBkYXRlIHRoZSB0b2tlbiB0YWcgbmFtZSBmb3IgYF9zZXRFbmRMb2NhdGlvbmAuXG4gICAgICAgICAgICB0b2tlbi50YWdOYW1lID0gdGFnTmFtZTtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnNob3J0ZW5Ub0xlbmd0aChpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwgbnVsbCwgImltcG9ydCB7IFRBR19OQU1FUyBhcyAkLCBOUywgaGFzVW5lc2NhcGVkVGV4dCB9IGZyb20gJy4uL2NvbW1vbi9odG1sLmpzJztcbmltcG9ydCB7IGVzY2FwZVRleHQsIGVzY2FwZUF0dHJpYnV0ZSB9IGZyb20gJ2VudGl0aWVzL2xpYi9lc2NhcGUuanMnO1xuaW1wb3J0IHsgZGVmYXVsdFRyZWVBZGFwdGVyIH0gZnJvbSAnLi4vdHJlZS1hZGFwdGVycy9kZWZhdWx0LmpzJztcbi8vIFNldHNcbmNvbnN0IFZPSURfRUxFTUVOVFMgPSBuZXcgU2V0KFtcbiAgICAkLkFSRUEsXG4gICAgJC5CQVNFLFxuICAgICQuQkFTRUZPTlQsXG4gICAgJC5CR1NPVU5ELFxuICAgICQuQlIsXG4gICAgJC5DT0wsXG4gICAgJC5FTUJFRCxcbiAgICAkLkZSQU1FLFxuICAgICQuSFIsXG4gICAgJC5JTUcsXG4gICAgJC5JTlBVVCxcbiAgICAkLktFWUdFTixcbiAgICAkLkxJTkssXG4gICAgJC5NRVRBLFxuICAgICQuUEFSQU0sXG4gICAgJC5TT1VSQ0UsXG4gICAgJC5UUkFDSyxcbiAgICAkLldCUixcbl0pO1xuZnVuY3Rpb24gaXNWb2lkRWxlbWVudChub2RlLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIChvcHRpb25zLnRyZWVBZGFwdGVyLmlzRWxlbWVudE5vZGUobm9kZSkgJiZcbiAgICAgICAgb3B0aW9ucy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkobm9kZSkgPT09IE5TLkhUTUwgJiZcbiAgICAgICAgVk9JRF9FTEVNRU5UUy5oYXMob3B0aW9ucy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKG5vZGUpKSk7XG59XG5jb25zdCBkZWZhdWx0T3B0cyA9IHsgdHJlZUFkYXB0ZXI6IGRlZmF1bHRUcmVlQWRhcHRlciwgc2NyaXB0aW5nRW5hYmxlZDogdHJ1ZSB9O1xuLyoqXG4gKiBTZXJpYWxpemVzIGFuIEFTVCBub2RlIHRvIGFuIEhUTUwgc3RyaW5nLlxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqIGNvbnN0IHBhcnNlNSA9IHJlcXVpcmUoJ3BhcnNlNScpO1xuICpcbiAqIGNvbnN0IGRvY3VtZW50ID0gcGFyc2U1LnBhcnNlKCc8IURPQ1RZUEUgaHRtbD48aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+SGkgdGhlcmUhPC9ib2R5PjwvaHRtbD4nKTtcbiAqXG4gKiAvLyBTZXJpYWxpemVzIGEgZG9jdW1lbnQuXG4gKiBjb25zdCBodG1sID0gcGFyc2U1LnNlcmlhbGl6ZShkb2N1bWVudCk7XG4gKlxuICogLy8gU2VyaWFsaXplcyB0aGUgPGh0bWw+IGVsZW1lbnQgY29udGVudC5cbiAqIGNvbnN0IHN0ciA9IHBhcnNlNS5zZXJpYWxpemUoZG9jdW1lbnQuY2hpbGROb2Rlc1sxXSk7XG4gKlxuICogY29uc29sZS5sb2coc3RyKTsgLy8+ICc8aGVhZD48L2hlYWQ+PGJvZHk+SGkgdGhlcmUhPC9ib2R5PidcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBub2RlIE5vZGUgdG8gc2VyaWFsaXplLlxuICogQHBhcmFtIG9wdGlvbnMgU2VyaWFsaXphdGlvbiBvcHRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VyaWFsaXplKG5vZGUsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBvcHRzID0geyAuLi5kZWZhdWx0T3B0cywgLi4ub3B0aW9ucyB9O1xuICAgIGlmIChpc1ZvaWRFbGVtZW50KG5vZGUsIG9wdHMpKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgcmV0dXJuIHNlcmlhbGl6ZUNoaWxkTm9kZXMobm9kZSwgb3B0cyk7XG59XG4vKipcbiAqIFNlcmlhbGl6ZXMgYW4gQVNUIGVsZW1lbnQgbm9kZSB0byBhbiBIVE1MIHN0cmluZywgaW5jbHVkaW5nIHRoZSBlbGVtZW50IG5vZGUuXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogY29uc3QgcGFyc2U1ID0gcmVxdWlyZSgncGFyc2U1Jyk7XG4gKlxuICogY29uc3QgZG9jdW1lbnQgPSBwYXJzZTUucGFyc2VGcmFnbWVudCgnPGRpdj5IZWxsbywgPGI+d29ybGQ8L2I+ITwvZGl2PicpO1xuICpcbiAqIC8vIFNlcmlhbGl6ZXMgdGhlIDxkaXY+IGVsZW1lbnQuXG4gKiBjb25zdCBodG1sID0gcGFyc2U1LnNlcmlhbGl6ZU91dGVyKGRvY3VtZW50LmNoaWxkTm9kZXNbMF0pO1xuICpcbiAqIGNvbnNvbGUubG9nKHN0cik7IC8vPiAnPGRpdj5IZWxsbywgPGI+d29ybGQ8L2I+ITwvZGl2PidcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBub2RlIE5vZGUgdG8gc2VyaWFsaXplLlxuICogQHBhcmFtIG9wdGlvbnMgU2VyaWFsaXphdGlvbiBvcHRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VyaWFsaXplT3V0ZXIobm9kZSwgb3B0aW9ucykge1xuICAgIGNvbnN0IG9wdHMgPSB7IC4uLmRlZmF1bHRPcHRzLCAuLi5vcHRpb25zIH07XG4gICAgcmV0dXJuIHNlcmlhbGl6ZU5vZGUobm9kZSwgb3B0cyk7XG59XG5mdW5jdGlvbiBzZXJpYWxpemVDaGlsZE5vZGVzKHBhcmVudE5vZGUsIG9wdGlvbnMpIHtcbiAgICBsZXQgaHRtbCA9ICcnO1xuICAgIC8vIEdldCBjb250YWluZXIgb2YgdGhlIGNoaWxkIG5vZGVzXG4gICAgY29uc3QgY29udGFpbmVyID0gb3B0aW9ucy50cmVlQWRhcHRlci5pc0VsZW1lbnROb2RlKHBhcmVudE5vZGUpICYmXG4gICAgICAgIG9wdGlvbnMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShwYXJlbnROb2RlKSA9PT0gJC5URU1QTEFURSAmJlxuICAgICAgICBvcHRpb25zLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShwYXJlbnROb2RlKSA9PT0gTlMuSFRNTFxuICAgICAgICA/IG9wdGlvbnMudHJlZUFkYXB0ZXIuZ2V0VGVtcGxhdGVDb250ZW50KHBhcmVudE5vZGUpXG4gICAgICAgIDogcGFyZW50Tm9kZTtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gb3B0aW9ucy50cmVlQWRhcHRlci5nZXRDaGlsZE5vZGVzKGNvbnRhaW5lcik7XG4gICAgaWYgKGNoaWxkTm9kZXMpIHtcbiAgICAgICAgZm9yIChjb25zdCBjdXJyZW50Tm9kZSBvZiBjaGlsZE5vZGVzKSB7XG4gICAgICAgICAgICBodG1sICs9IHNlcmlhbGl6ZU5vZGUoY3VycmVudE5vZGUsIG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBodG1sO1xufVxuZnVuY3Rpb24gc2VyaWFsaXplTm9kZShub2RlLCBvcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMudHJlZUFkYXB0ZXIuaXNFbGVtZW50Tm9kZShub2RlKSkge1xuICAgICAgICByZXR1cm4gc2VyaWFsaXplRWxlbWVudChub2RlLCBvcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMudHJlZUFkYXB0ZXIuaXNUZXh0Tm9kZShub2RlKSkge1xuICAgICAgICByZXR1cm4gc2VyaWFsaXplVGV4dE5vZGUobm9kZSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnRyZWVBZGFwdGVyLmlzQ29tbWVudE5vZGUobm9kZSkpIHtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZUNvbW1lbnROb2RlKG5vZGUsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy50cmVlQWRhcHRlci5pc0RvY3VtZW50VHlwZU5vZGUobm9kZSkpIHtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZURvY3VtZW50VHlwZU5vZGUobm9kZSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIC8vIFJldHVybiBhbiBlbXB0eSBzdHJpbmcgZm9yIHVua25vd24gbm9kZXNcbiAgICByZXR1cm4gJyc7XG59XG5mdW5jdGlvbiBzZXJpYWxpemVFbGVtZW50KG5vZGUsIG9wdGlvbnMpIHtcbiAgICBjb25zdCB0biA9IG9wdGlvbnMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShub2RlKTtcbiAgICByZXR1cm4gYDwke3RufSR7c2VyaWFsaXplQXR0cmlidXRlcyhub2RlLCBvcHRpb25zKX0+JHtpc1ZvaWRFbGVtZW50KG5vZGUsIG9wdGlvbnMpID8gJycgOiBgJHtzZXJpYWxpemVDaGlsZE5vZGVzKG5vZGUsIG9wdGlvbnMpfTwvJHt0bn0+YH1gO1xufVxuZnVuY3Rpb24gc2VyaWFsaXplQXR0cmlidXRlcyhub2RlLCB7IHRyZWVBZGFwdGVyIH0pIHtcbiAgICBsZXQgaHRtbCA9ICcnO1xuICAgIGZvciAoY29uc3QgYXR0ciBvZiB0cmVlQWRhcHRlci5nZXRBdHRyTGlzdChub2RlKSkge1xuICAgICAgICBodG1sICs9ICcgJztcbiAgICAgICAgaWYgKCFhdHRyLm5hbWVzcGFjZSkge1xuICAgICAgICAgICAgaHRtbCArPSBhdHRyLm5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgc3dpdGNoIChhdHRyLm5hbWVzcGFjZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgTlMuWE1MOiB7XG4gICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gYHhtbDoke2F0dHIubmFtZX1gO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBOUy5YTUxOUzoge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYXR0ci5uYW1lICE9PSAneG1sbnMnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBodG1sICs9ICd4bWxuczonO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gYXR0ci5uYW1lO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBOUy5YTElOSzoge1xuICAgICAgICAgICAgICAgICAgICBodG1sICs9IGB4bGluazoke2F0dHIubmFtZX1gO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgICAgICBodG1sICs9IGAke2F0dHIucHJlZml4fToke2F0dHIubmFtZX1gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgaHRtbCArPSBgPVwiJHtlc2NhcGVBdHRyaWJ1dGUoYXR0ci52YWx1ZSl9XCJgO1xuICAgIH1cbiAgICByZXR1cm4gaHRtbDtcbn1cbmZ1bmN0aW9uIHNlcmlhbGl6ZVRleHROb2RlKG5vZGUsIG9wdGlvbnMpIHtcbiAgICBjb25zdCB7IHRyZWVBZGFwdGVyIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGNvbnRlbnQgPSB0cmVlQWRhcHRlci5nZXRUZXh0Tm9kZUNvbnRlbnQobm9kZSk7XG4gICAgY29uc3QgcGFyZW50ID0gdHJlZUFkYXB0ZXIuZ2V0UGFyZW50Tm9kZShub2RlKTtcbiAgICBjb25zdCBwYXJlbnRUbiA9IHBhcmVudCAmJiB0cmVlQWRhcHRlci5pc0VsZW1lbnROb2RlKHBhcmVudCkgJiYgdHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShwYXJlbnQpO1xuICAgIHJldHVybiBwYXJlbnRUbiAmJlxuICAgICAgICB0cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkocGFyZW50KSA9PT0gTlMuSFRNTCAmJlxuICAgICAgICBoYXNVbmVzY2FwZWRUZXh0KHBhcmVudFRuLCBvcHRpb25zLnNjcmlwdGluZ0VuYWJsZWQpXG4gICAgICAgID8gY29udGVudFxuICAgICAgICA6IGVzY2FwZVRleHQoY29udGVudCk7XG59XG5mdW5jdGlvbiBzZXJpYWxpemVDb21tZW50Tm9kZShub2RlLCB7IHRyZWVBZGFwdGVyIH0pIHtcbiAgICByZXR1cm4gYDwhLS0ke3RyZWVBZGFwdGVyLmdldENvbW1lbnROb2RlQ29udGVudChub2RlKX0tLT5gO1xufVxuZnVuY3Rpb24gc2VyaWFsaXplRG9jdW1lbnRUeXBlTm9kZShub2RlLCB7IHRyZWVBZGFwdGVyIH0pIHtcbiAgICByZXR1cm4gYDwhRE9DVFlQRSAke3RyZWVBZGFwdGVyLmdldERvY3VtZW50VHlwZU5vZGVOYW1lKG5vZGUpfT5gO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwgImltcG9ydCB7IFBhcnNlciB9IGZyb20gJy4vcGFyc2VyL2luZGV4LmpzJztcbmV4cG9ydCB7IGRlZmF1bHRUcmVlQWRhcHRlciB9IGZyb20gJy4vdHJlZS1hZGFwdGVycy9kZWZhdWx0LmpzJztcbmV4cG9ydCB7IC8qKiBAaW50ZXJuYWwgKi8gUGFyc2VyIH0gZnJvbSAnLi9wYXJzZXIvaW5kZXguanMnO1xuZXhwb3J0IHsgc2VyaWFsaXplLCBzZXJpYWxpemVPdXRlciB9IGZyb20gJy4vc2VyaWFsaXplci9pbmRleC5qcyc7XG5leHBvcnQgeyBFUlIgYXMgRXJyb3JDb2RlcyB9IGZyb20gJy4vY29tbW9uL2Vycm9yLWNvZGVzLmpzJztcbi8qKiBAaW50ZXJuYWwgKi9cbmV4cG9ydCAqIGFzIGZvcmVpZ25Db250ZW50IGZyb20gJy4vY29tbW9uL2ZvcmVpZ24tY29udGVudC5qcyc7XG4vKiogQGludGVybmFsICovXG5leHBvcnQgKiBhcyBodG1sIGZyb20gJy4vY29tbW9uL2h0bWwuanMnO1xuLyoqIEBpbnRlcm5hbCAqL1xuZXhwb3J0ICogYXMgVG9rZW4gZnJvbSAnLi9jb21tb24vdG9rZW4uanMnO1xuLyoqIEBpbnRlcm5hbCAqL1xuZXhwb3J0IHsgVG9rZW5pemVyLCBUb2tlbml6ZXJNb2RlIH0gZnJvbSAnLi90b2tlbml6ZXIvaW5kZXguanMnO1xuLy8gU2hvcnRoYW5kc1xuLyoqXG4gKiBQYXJzZXMgYW4gSFRNTCBzdHJpbmcuXG4gKlxuICogQHBhcmFtIGh0bWwgSW5wdXQgSFRNTCBzdHJpbmcuXG4gKiBAcGFyYW0gb3B0aW9ucyBQYXJzaW5nIG9wdGlvbnMuXG4gKiBAcmV0dXJucyBEb2N1bWVudFxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqIGNvbnN0IHBhcnNlNSA9IHJlcXVpcmUoJ3BhcnNlNScpO1xuICpcbiAqIGNvbnN0IGRvY3VtZW50ID0gcGFyc2U1LnBhcnNlKCc8IURPQ1RZUEUgaHRtbD48aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+SGkgdGhlcmUhPC9ib2R5PjwvaHRtbD4nKTtcbiAqXG4gKiBjb25zb2xlLmxvZyhkb2N1bWVudC5jaGlsZE5vZGVzWzFdLnRhZ05hbWUpOyAvLz4gJ2h0bWwnXG4gKmBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2UoaHRtbCwgb3B0aW9ucykge1xuICAgIHJldHVybiBQYXJzZXIucGFyc2UoaHRtbCwgb3B0aW9ucyk7XG59XG5leHBvcnQgZnVuY3Rpb24gcGFyc2VGcmFnbWVudChmcmFnbWVudENvbnRleHQsIGh0bWwsIG9wdGlvbnMpIHtcbiAgICBpZiAodHlwZW9mIGZyYWdtZW50Q29udGV4dCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgb3B0aW9ucyA9IGh0bWw7XG4gICAgICAgIGh0bWwgPSBmcmFnbWVudENvbnRleHQ7XG4gICAgICAgIGZyYWdtZW50Q29udGV4dCA9IG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHBhcnNlciA9IFBhcnNlci5nZXRGcmFnbWVudFBhcnNlcihmcmFnbWVudENvbnRleHQsIG9wdGlvbnMpO1xuICAgIHBhcnNlci50b2tlbml6ZXIud3JpdGUoaHRtbCwgdHJ1ZSk7XG4gICAgcmV0dXJuIHBhcnNlci5nZXRGcmFnbWVudCgpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Ob2RlfSBOb2RlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBvaW50fSBQb2ludFxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb3NpdGlvbn0gUG9zaXRpb25cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIE5vZGVMaWtlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gdHlwZVxuICogQHByb3BlcnR5IHtQb3NpdGlvbkxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbcG9zaXRpb25dXG4gKlxuICogQHR5cGVkZWYgUG9pbnRMaWtlXG4gKiBAcHJvcGVydHkge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IFtsaW5lXVxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbY29sdW1uXVxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbb2Zmc2V0XVxuICpcbiAqIEB0eXBlZGVmIFBvc2l0aW9uTGlrZVxuICogQHByb3BlcnR5IHtQb2ludExpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbc3RhcnRdXG4gKiBAcHJvcGVydHkge1BvaW50TGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IFtlbmRdXG4gKi9cblxuLyoqXG4gKiBTZXJpYWxpemUgdGhlIHBvc2l0aW9uYWwgaW5mbyBvZiBhIHBvaW50LCBwb3NpdGlvbiAoc3RhcnQgYW5kIGVuZCBwb2ludHMpLFxuICogb3Igbm9kZS5cbiAqXG4gKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IFBvaW50IHwgUG9pbnRMaWtlIHwgUG9zaXRpb24gfCBQb3NpdGlvbkxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbdmFsdWVdXG4gKiAgIE5vZGUsIHBvc2l0aW9uLCBvciBwb2ludC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFByZXR0eSBwcmludGVkIHBvc2l0aW9uYWwgaW5mbyBvZiBhIG5vZGUgKGBzdHJpbmdgKS5cbiAqXG4gKiAgIEluIHRoZSBmb3JtYXQgb2YgYSByYW5nZSBgbHM6Y3MtbGU6Y2VgICh3aGVuIGdpdmVuIGBub2RlYCBvciBgcG9zaXRpb25gKVxuICogICBvciBhIHBvaW50IGBsOmNgICh3aGVuIGdpdmVuIGBwb2ludGApLCB3aGVyZSBgbGAgc3RhbmRzIGZvciBsaW5lLCBgY2AgZm9yXG4gKiAgIGNvbHVtbiwgYHNgIGZvciBgc3RhcnRgLCBhbmQgYGVgIGZvciBlbmQuXG4gKiAgIEFuIGVtcHR5IHN0cmluZyAoYCcnYCkgaXMgcmV0dXJuZWQgaWYgdGhlIGdpdmVuIHZhbHVlIGlzIG5laXRoZXIgYG5vZGVgLFxuICogICBgcG9zaXRpb25gLCBub3IgYHBvaW50YC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeVBvc2l0aW9uKHZhbHVlKSB7XG4gIC8vIE5vdGhpbmcuXG4gIGlmICghdmFsdWUgfHwgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgLy8gTm9kZS5cbiAgaWYgKCdwb3NpdGlvbicgaW4gdmFsdWUgfHwgJ3R5cGUnIGluIHZhbHVlKSB7XG4gICAgcmV0dXJuIHBvc2l0aW9uKHZhbHVlLnBvc2l0aW9uKVxuICB9XG5cbiAgLy8gUG9zaXRpb24uXG4gIGlmICgnc3RhcnQnIGluIHZhbHVlIHx8ICdlbmQnIGluIHZhbHVlKSB7XG4gICAgcmV0dXJuIHBvc2l0aW9uKHZhbHVlKVxuICB9XG5cbiAgLy8gUG9pbnQuXG4gIGlmICgnbGluZScgaW4gdmFsdWUgfHwgJ2NvbHVtbicgaW4gdmFsdWUpIHtcbiAgICByZXR1cm4gcG9pbnQodmFsdWUpXG4gIH1cblxuICAvLyA/XG4gIHJldHVybiAnJ1xufVxuXG4vKipcbiAqIEBwYXJhbSB7UG9pbnQgfCBQb2ludExpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwb2ludFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gcG9pbnQocG9pbnQpIHtcbiAgcmV0dXJuIGluZGV4KHBvaW50ICYmIHBvaW50LmxpbmUpICsgJzonICsgaW5kZXgocG9pbnQgJiYgcG9pbnQuY29sdW1uKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7UG9zaXRpb24gfCBQb3NpdGlvbkxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwb3NcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIHBvc2l0aW9uKHBvcykge1xuICByZXR1cm4gcG9pbnQocG9zICYmIHBvcy5zdGFydCkgKyAnLScgKyBwb2ludChwb3MgJiYgcG9zLmVuZClcbn1cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IHZhbHVlXG4gKiBAcmV0dXJucyB7bnVtYmVyfVxuICovXG5mdW5jdGlvbiBpbmRleCh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyA/IHZhbHVlIDogMVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Ob2RlfSBOb2RlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBvaW50fSBQb2ludFxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb3NpdGlvbn0gUG9zaXRpb25cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3QgJiB7dHlwZTogc3RyaW5nLCBwb3NpdGlvbj86IFBvc2l0aW9uIHwgdW5kZWZpbmVkfX0gTm9kZUxpa2VcbiAqXG4gKiBAdHlwZWRlZiBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKiBAcHJvcGVydHkge0FycmF5PE5vZGU+IHwgbnVsbCB8IHVuZGVmaW5lZH0gW2FuY2VzdG9yc11cbiAqICAgU3RhY2sgb2YgKGluY2x1c2l2ZSkgYW5jZXN0b3Igbm9kZXMgc3Vycm91bmRpbmcgdGhlIG1lc3NhZ2UgKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSB7RXJyb3IgfCBudWxsIHwgdW5kZWZpbmVkfSBbY2F1c2VdXG4gKiAgIE9yaWdpbmFsIGVycm9yIGNhdXNlIG9mIHRoZSBtZXNzYWdlIChvcHRpb25hbCkuXG4gKiBAcHJvcGVydHkge1BvaW50IHwgUG9zaXRpb24gfCBudWxsIHwgdW5kZWZpbmVkfSBbcGxhY2VdXG4gKiAgIFBsYWNlIG9mIG1lc3NhZ2UgKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3J1bGVJZF1cbiAqICAgQ2F0ZWdvcnkgb2YgbWVzc2FnZSAob3B0aW9uYWwsIGV4YW1wbGU6IGAnbXktcnVsZSdgKS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3NvdXJjZV1cbiAqICAgTmFtZXNwYWNlIG9mIHdobyBzZW50IHRoZSBtZXNzYWdlIChvcHRpb25hbCwgZXhhbXBsZTogYCdteS1wYWNrYWdlJ2ApLlxuICovXG5cbmltcG9ydCB7c3RyaW5naWZ5UG9zaXRpb259IGZyb20gJ3VuaXN0LXV0aWwtc3RyaW5naWZ5LXBvc2l0aW9uJ1xuXG4vKipcbiAqIE1lc3NhZ2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBWRmlsZU1lc3NhZ2UgZXh0ZW5kcyBFcnJvciB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBtZXNzYWdlIGZvciBgcmVhc29uYC5cbiAgICpcbiAgICogPiBcdUQ4M0VcdURFQTYgKipOb3RlKio6IGFsc28gaGFzIG9ic29sZXRlIHNpZ25hdHVyZXMuXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7T3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnNcbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGxhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlIHwgc3RyaW5nfSBjYXVzZU9yUmVhc29uXG4gICAqICAgUmVhc29uIGZvciBtZXNzYWdlLCBzaG91bGQgdXNlIG1hcmtkb3duLlxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IE9wdGlvbnMgfCBQb2ludCB8IFBvc2l0aW9uIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNPclBhcmVudE9yUGxhY2VdXG4gICAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqICAgUGxhY2UgaW4gY29kZSB3aGVyZSB0aGUgbWVzc2FnZSBvcmlnaW5hdGVzIChleGFtcGxlOlxuICAgKiAgIGAnbXktcGFja2FnZTpteS1ydWxlJ2Agb3IgYCdteS1ydWxlJ2ApLlxuICAgKiBAcmV0dXJuc1xuICAgKiAgIEluc3RhbmNlIG9mIGBWRmlsZU1lc3NhZ2VgLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbiAgY29uc3RydWN0b3IoY2F1c2VPclJlYXNvbiwgb3B0aW9uc09yUGFyZW50T3JQbGFjZSwgb3JpZ2luKSB7XG4gICAgc3VwZXIoKVxuXG4gICAgaWYgKHR5cGVvZiBvcHRpb25zT3JQYXJlbnRPclBsYWNlID09PSAnc3RyaW5nJykge1xuICAgICAgb3JpZ2luID0gb3B0aW9uc09yUGFyZW50T3JQbGFjZVxuICAgICAgb3B0aW9uc09yUGFyZW50T3JQbGFjZSA9IHVuZGVmaW5lZFxuICAgIH1cblxuICAgIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICAgIGxldCByZWFzb24gPSAnJ1xuICAgIC8qKiBAdHlwZSB7T3B0aW9uc30gKi9cbiAgICBsZXQgb3B0aW9ucyA9IHt9XG4gICAgbGV0IGxlZ2FjeUNhdXNlID0gZmFsc2VcblxuICAgIGlmIChvcHRpb25zT3JQYXJlbnRPclBsYWNlKSB7XG4gICAgICAvLyBQb2ludC5cbiAgICAgIGlmIChcbiAgICAgICAgJ2xpbmUnIGluIG9wdGlvbnNPclBhcmVudE9yUGxhY2UgJiZcbiAgICAgICAgJ2NvbHVtbicgaW4gb3B0aW9uc09yUGFyZW50T3JQbGFjZVxuICAgICAgKSB7XG4gICAgICAgIG9wdGlvbnMgPSB7cGxhY2U6IG9wdGlvbnNPclBhcmVudE9yUGxhY2V9XG4gICAgICB9XG4gICAgICAvLyBQb3NpdGlvbi5cbiAgICAgIGVsc2UgaWYgKFxuICAgICAgICAnc3RhcnQnIGluIG9wdGlvbnNPclBhcmVudE9yUGxhY2UgJiZcbiAgICAgICAgJ2VuZCcgaW4gb3B0aW9uc09yUGFyZW50T3JQbGFjZVxuICAgICAgKSB7XG4gICAgICAgIG9wdGlvbnMgPSB7cGxhY2U6IG9wdGlvbnNPclBhcmVudE9yUGxhY2V9XG4gICAgICB9XG4gICAgICAvLyBOb2RlLlxuICAgICAgZWxzZSBpZiAoJ3R5cGUnIGluIG9wdGlvbnNPclBhcmVudE9yUGxhY2UpIHtcbiAgICAgICAgb3B0aW9ucyA9IHtcbiAgICAgICAgICBhbmNlc3RvcnM6IFtvcHRpb25zT3JQYXJlbnRPclBsYWNlXSxcbiAgICAgICAgICBwbGFjZTogb3B0aW9uc09yUGFyZW50T3JQbGFjZS5wb3NpdGlvblxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBPcHRpb25zLlxuICAgICAgZWxzZSB7XG4gICAgICAgIG9wdGlvbnMgPSB7Li4ub3B0aW9uc09yUGFyZW50T3JQbGFjZX1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGNhdXNlT3JSZWFzb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICByZWFzb24gPSBjYXVzZU9yUmVhc29uXG4gICAgfVxuICAgIC8vIEVycm9yLlxuICAgIGVsc2UgaWYgKCFvcHRpb25zLmNhdXNlICYmIGNhdXNlT3JSZWFzb24pIHtcbiAgICAgIGxlZ2FjeUNhdXNlID0gdHJ1ZVxuICAgICAgcmVhc29uID0gY2F1c2VPclJlYXNvbi5tZXNzYWdlXG4gICAgICBvcHRpb25zLmNhdXNlID0gY2F1c2VPclJlYXNvblxuICAgIH1cblxuICAgIGlmICghb3B0aW9ucy5ydWxlSWQgJiYgIW9wdGlvbnMuc291cmNlICYmIHR5cGVvZiBvcmlnaW4gPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBpbmRleCA9IG9yaWdpbi5pbmRleE9mKCc6JylcblxuICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICBvcHRpb25zLnJ1bGVJZCA9IG9yaWdpblxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3B0aW9ucy5zb3VyY2UgPSBvcmlnaW4uc2xpY2UoMCwgaW5kZXgpXG4gICAgICAgIG9wdGlvbnMucnVsZUlkID0gb3JpZ2luLnNsaWNlKGluZGV4ICsgMSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIW9wdGlvbnMucGxhY2UgJiYgb3B0aW9ucy5hbmNlc3RvcnMgJiYgb3B0aW9ucy5hbmNlc3RvcnMpIHtcbiAgICAgIGNvbnN0IHBhcmVudCA9IG9wdGlvbnMuYW5jZXN0b3JzW29wdGlvbnMuYW5jZXN0b3JzLmxlbmd0aCAtIDFdXG5cbiAgICAgIGlmIChwYXJlbnQpIHtcbiAgICAgICAgb3B0aW9ucy5wbGFjZSA9IHBhcmVudC5wb3NpdGlvblxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHN0YXJ0ID1cbiAgICAgIG9wdGlvbnMucGxhY2UgJiYgJ3N0YXJ0JyBpbiBvcHRpb25zLnBsYWNlXG4gICAgICAgID8gb3B0aW9ucy5wbGFjZS5zdGFydFxuICAgICAgICA6IG9wdGlvbnMucGxhY2VcblxuICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC1leHByZXNzaW9ucyAqL1xuICAgIC8qKlxuICAgICAqIFN0YWNrIG9mIGFuY2VzdG9yIG5vZGVzIHN1cnJvdW5kaW5nIHRoZSBtZXNzYWdlLlxuICAgICAqXG4gICAgICogQHR5cGUge0FycmF5PE5vZGU+IHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMuYW5jZXN0b3JzID0gb3B0aW9ucy5hbmNlc3RvcnMgfHwgdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBPcmlnaW5hbCBlcnJvciBjYXVzZSBvZiB0aGUgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtFcnJvciB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmNhdXNlID0gb3B0aW9ucy5jYXVzZSB8fCB1bmRlZmluZWRcblxuICAgIC8qKlxuICAgICAqIFN0YXJ0aW5nIGNvbHVtbiBvZiBtZXNzYWdlLlxuICAgICAqXG4gICAgICogQHR5cGUge251bWJlciB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmNvbHVtbiA9IHN0YXJ0ID8gc3RhcnQuY29sdW1uIDogdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBTdGF0ZSBvZiBwcm9ibGVtLlxuICAgICAqXG4gICAgICogKiBgdHJ1ZWAgXHUyMDE0IGVycm9yLCBmaWxlIG5vdCB1c2FibGVcbiAgICAgKiAqIGBmYWxzZWAgXHUyMDE0IHdhcm5pbmcsIGNoYW5nZSBtYXkgYmUgbmVlZGVkXG4gICAgICogKiBgdW5kZWZpbmVkYCBcdTIwMTQgY2hhbmdlIGxpa2VseSBub3QgbmVlZGVkXG4gICAgICpcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5mYXRhbCA9IHVuZGVmaW5lZFxuXG4gICAgLyoqXG4gICAgICogUGF0aCBvZiBhIGZpbGUgKHVzZWQgdGhyb3VnaG91dCB0aGUgYFZGaWxlYCBlY29zeXN0ZW0pLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmZpbGVcblxuICAgIC8vIEZpZWxkIGZyb20gYEVycm9yYC5cbiAgICAvKipcbiAgICAgKiBSZWFzb24gZm9yIG1lc3NhZ2UuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMubWVzc2FnZSA9IHJlYXNvblxuXG4gICAgLyoqXG4gICAgICogU3RhcnRpbmcgbGluZSBvZiBlcnJvci5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtudW1iZXIgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5saW5lID0gc3RhcnQgPyBzdGFydC5saW5lIDogdW5kZWZpbmVkXG5cbiAgICAvLyBGaWVsZCBmcm9tIGBFcnJvcmAuXG4gICAgLyoqXG4gICAgICogU2VyaWFsaXplZCBwb3NpdGlvbmFsIGluZm8gb2YgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqIE9uIG5vcm1hbCBlcnJvcnMsIHRoaXMgd291bGQgYmUgc29tZXRoaW5nIGxpa2UgYFBhcnNlRXJyb3JgLCBidWl0IGluXG4gICAgICogYFZGaWxlYCBtZXNzYWdlcyB3ZSB1c2UgdGhpcyBzcGFjZSB0byBzaG93IHdoZXJlIGFuIGVycm9yIGhhcHBlbmVkLlxuICAgICAqL1xuICAgIHRoaXMubmFtZSA9IHN0cmluZ2lmeVBvc2l0aW9uKG9wdGlvbnMucGxhY2UpIHx8ICcxOjEnXG5cbiAgICAvKipcbiAgICAgKiBQbGFjZSBvZiBtZXNzYWdlLlxuICAgICAqXG4gICAgICogQHR5cGUge1BvaW50IHwgUG9zaXRpb24gfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5wbGFjZSA9IG9wdGlvbnMucGxhY2UgfHwgdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBSZWFzb24gZm9yIG1lc3NhZ2UsIHNob3VsZCB1c2UgbWFya2Rvd24uXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMucmVhc29uID0gdGhpcy5tZXNzYWdlXG5cbiAgICAvKipcbiAgICAgKiBDYXRlZ29yeSBvZiBtZXNzYWdlIChleGFtcGxlOiBgJ215LXJ1bGUnYCkuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMucnVsZUlkID0gb3B0aW9ucy5ydWxlSWQgfHwgdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBOYW1lc3BhY2Ugb2YgbWVzc2FnZSAoZXhhbXBsZTogYCdteS1wYWNrYWdlJ2ApLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLnNvdXJjZSA9IG9wdGlvbnMuc291cmNlIHx8IHVuZGVmaW5lZFxuXG4gICAgLy8gRmllbGQgZnJvbSBgRXJyb3JgLlxuICAgIC8qKlxuICAgICAqIFN0YWNrIG9mIG1lc3NhZ2UuXG4gICAgICpcbiAgICAgKiBUaGlzIGlzIHVzZWQgYnkgbm9ybWFsIGVycm9ycyB0byBzaG93IHdoZXJlIHNvbWV0aGluZyBoYXBwZW5lZCBpblxuICAgICAqIHByb2dyYW1taW5nIGNvZGUsIGlycmVsZXZhbnQgZm9yIGBWRmlsZWAgbWVzc2FnZXMsXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMuc3RhY2sgPVxuICAgICAgbGVnYWN5Q2F1c2UgJiYgb3B0aW9ucy5jYXVzZSAmJiB0eXBlb2Ygb3B0aW9ucy5jYXVzZS5zdGFjayA9PT0gJ3N0cmluZydcbiAgICAgICAgPyBvcHRpb25zLmNhdXNlLnN0YWNrXG4gICAgICAgIDogJydcblxuICAgIC8vIFRoZSBmb2xsb3dpbmcgZmllbGRzIGFyZSBcdTIwMUN3ZWxsIGtub3duXHUyMDFELlxuICAgIC8vIE5vdCBzdGFuZGFyZC5cbiAgICAvLyBGZWVsIGZyZWUgdG8gYWRkIG90aGVyIG5vbi1zdGFuZGFyZCBmaWVsZHMgdG8geW91ciBtZXNzYWdlcy5cblxuICAgIC8qKlxuICAgICAqIFNwZWNpZnkgdGhlIHNvdXJjZSB2YWx1ZSB0aGF0XHUyMDE5cyBiZWluZyByZXBvcnRlZCwgd2hpY2ggaXMgZGVlbWVkXG4gICAgICogaW5jb3JyZWN0LlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmFjdHVhbFxuXG4gICAgLyoqXG4gICAgICogU3VnZ2VzdCBhY2NlcHRhYmxlIHZhbHVlcyB0aGF0IGNhbiBiZSB1c2VkIGluc3RlYWQgb2YgYGFjdHVhbGAuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7QXJyYXk8c3RyaW5nPiB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmV4cGVjdGVkXG5cbiAgICAvKipcbiAgICAgKiBMb25nIGZvcm0gZGVzY3JpcHRpb24gb2YgdGhlIG1lc3NhZ2UgKHlvdSBzaG91bGQgdXNlIG1hcmtkb3duKS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5ub3RlXG5cbiAgICAvKipcbiAgICAgKiBMaW5rIHRvIGRvY3MgZm9yIHRoZSBtZXNzYWdlLlxuICAgICAqXG4gICAgICogPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IHRoaXMgbXVzdCBiZSBhbiBhYnNvbHV0ZSBVUkwgdGhhdCBjYW4gYmUgcGFzc2VkIGFzIGB4YFxuICAgICAqID4gdG8gYG5ldyBVUkwoeClgLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLnVybFxuICAgIC8qIGVzbGludC1lbmFibGUgbm8tdW51c2VkLWV4cHJlc3Npb25zICovXG4gIH1cbn1cblxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5maWxlID0gJydcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUubmFtZSA9ICcnXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLnJlYXNvbiA9ICcnXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLm1lc3NhZ2UgPSAnJ1xuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5zdGFjayA9ICcnXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLmNvbHVtbiA9IHVuZGVmaW5lZFxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5saW5lID0gdW5kZWZpbmVkXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLmFuY2VzdG9ycyA9IHVuZGVmaW5lZFxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5jYXVzZSA9IHVuZGVmaW5lZFxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5mYXRhbCA9IHVuZGVmaW5lZFxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5wbGFjZSA9IHVuZGVmaW5lZFxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5ydWxlSWQgPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUuc291cmNlID0gdW5kZWZpbmVkXG4iLCAiLy8gQSBkZXJpdmF0aXZlIHdvcmsgYmFzZWQgb246XG4vLyA8aHR0cHM6Ly9naXRodWIuY29tL2Jyb3dzZXJpZnkvcGF0aC1icm93c2VyaWZ5Pi5cbi8vIFdoaWNoIGlzIGxpY2Vuc2VkOlxuLy9cbi8vIE1JVCBMaWNlbnNlXG4vL1xuLy8gQ29weXJpZ2h0IChjKSAyMDEzIEphbWVzIEhhbGxpZGF5XG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZlxuLy8gdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpblxuLy8gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0b1xuLy8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2Zcbi8vIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbyxcbi8vIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuLy8gY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTU1xuLy8gRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SXG4vLyBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVJcbi8vIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOXG4vLyBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuLy8gQSBkZXJpdmF0aXZlIHdvcmsgYmFzZWQgb246XG4vL1xuLy8gUGFydHMgb2YgdGhhdCBhcmUgZXh0cmFjdGVkIGZyb20gTm9kZVx1MjAxOXMgaW50ZXJuYWwgYHBhdGhgIG1vZHVsZTpcbi8vIDxodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUvYmxvYi9tYXN0ZXIvbGliL3BhdGguanM+LlxuLy8gV2hpY2ggaXMgbGljZW5zZWQ6XG4vL1xuLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbmV4cG9ydCBjb25zdCBwYXRoID0ge2Jhc2VuYW1lLCBkaXJuYW1lLCBleHRuYW1lLCBqb2luLCBzZXA6ICcvJ31cblxuLyogZXNsaW50LWRpc2FibGUgbWF4LWRlcHRoLCBjb21wbGV4aXR5ICovXG5cbi8qKlxuICogR2V0IHRoZSBiYXNlbmFtZSBmcm9tIGEgcGF0aC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICogICBGaWxlIHBhdGguXG4gKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtleHRdXG4gKiAgIEV4dGVuc2lvbiB0byBzdHJpcC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFN0ZW0gb3IgYmFzZW5hbWUuXG4gKi9cbmZ1bmN0aW9uIGJhc2VuYW1lKHBhdGgsIGV4dCkge1xuICBpZiAoZXh0ICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIGV4dCAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdcImV4dFwiIGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmcnKVxuICB9XG5cbiAgYXNzZXJ0UGF0aChwYXRoKVxuICBsZXQgc3RhcnQgPSAwXG4gIGxldCBlbmQgPSAtMVxuICBsZXQgaW5kZXggPSBwYXRoLmxlbmd0aFxuICAvKiogQHR5cGUge2Jvb2xlYW4gfCB1bmRlZmluZWR9ICovXG4gIGxldCBzZWVuTm9uU2xhc2hcblxuICBpZiAoZXh0ID09PSB1bmRlZmluZWQgfHwgZXh0Lmxlbmd0aCA9PT0gMCB8fCBleHQubGVuZ3RoID4gcGF0aC5sZW5ndGgpIHtcbiAgICB3aGlsZSAoaW5kZXgtLSkge1xuICAgICAgaWYgKHBhdGguY29kZVBvaW50QXQoaW5kZXgpID09PSA0NyAvKiBgL2AgKi8pIHtcbiAgICAgICAgLy8gSWYgd2UgcmVhY2hlZCBhIHBhdGggc2VwYXJhdG9yIHRoYXQgd2FzIG5vdCBwYXJ0IG9mIGEgc2V0IG9mIHBhdGhcbiAgICAgICAgLy8gc2VwYXJhdG9ycyBhdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcsIHN0b3Agbm93LlxuICAgICAgICBpZiAoc2Vlbk5vblNsYXNoKSB7XG4gICAgICAgICAgc3RhcnQgPSBpbmRleCArIDFcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGVuZCA8IDApIHtcbiAgICAgICAgLy8gV2Ugc2F3IHRoZSBmaXJzdCBub24tcGF0aCBzZXBhcmF0b3IsIG1hcmsgdGhpcyBhcyB0aGUgZW5kIG9mIG91clxuICAgICAgICAvLyBwYXRoIGNvbXBvbmVudC5cbiAgICAgICAgc2Vlbk5vblNsYXNoID0gdHJ1ZVxuICAgICAgICBlbmQgPSBpbmRleCArIDFcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZW5kIDwgMCA/ICcnIDogcGF0aC5zbGljZShzdGFydCwgZW5kKVxuICB9XG5cbiAgaWYgKGV4dCA9PT0gcGF0aCkge1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgbGV0IGZpcnN0Tm9uU2xhc2hFbmQgPSAtMVxuICBsZXQgZXh0SW5kZXggPSBleHQubGVuZ3RoIC0gMVxuXG4gIHdoaWxlIChpbmRleC0tKSB7XG4gICAgaWYgKHBhdGguY29kZVBvaW50QXQoaW5kZXgpID09PSA0NyAvKiBgL2AgKi8pIHtcbiAgICAgIC8vIElmIHdlIHJlYWNoZWQgYSBwYXRoIHNlcGFyYXRvciB0aGF0IHdhcyBub3QgcGFydCBvZiBhIHNldCBvZiBwYXRoXG4gICAgICAvLyBzZXBhcmF0b3JzIGF0IHRoZSBlbmQgb2YgdGhlIHN0cmluZywgc3RvcCBub3cuXG4gICAgICBpZiAoc2Vlbk5vblNsYXNoKSB7XG4gICAgICAgIHN0YXJ0ID0gaW5kZXggKyAxXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChmaXJzdE5vblNsYXNoRW5kIDwgMCkge1xuICAgICAgICAvLyBXZSBzYXcgdGhlIGZpcnN0IG5vbi1wYXRoIHNlcGFyYXRvciwgcmVtZW1iZXIgdGhpcyBpbmRleCBpbiBjYXNlXG4gICAgICAgIC8vIHdlIG5lZWQgaXQgaWYgdGhlIGV4dGVuc2lvbiBlbmRzIHVwIG5vdCBtYXRjaGluZy5cbiAgICAgICAgc2Vlbk5vblNsYXNoID0gdHJ1ZVxuICAgICAgICBmaXJzdE5vblNsYXNoRW5kID0gaW5kZXggKyAxXG4gICAgICB9XG5cbiAgICAgIGlmIChleHRJbmRleCA+IC0xKSB7XG4gICAgICAgIC8vIFRyeSB0byBtYXRjaCB0aGUgZXhwbGljaXQgZXh0ZW5zaW9uLlxuICAgICAgICBpZiAocGF0aC5jb2RlUG9pbnRBdChpbmRleCkgPT09IGV4dC5jb2RlUG9pbnRBdChleHRJbmRleC0tKSkge1xuICAgICAgICAgIGlmIChleHRJbmRleCA8IDApIHtcbiAgICAgICAgICAgIC8vIFdlIG1hdGNoZWQgdGhlIGV4dGVuc2lvbiwgc28gbWFyayB0aGlzIGFzIHRoZSBlbmQgb2Ygb3VyIHBhdGhcbiAgICAgICAgICAgIC8vIGNvbXBvbmVudFxuICAgICAgICAgICAgZW5kID0gaW5kZXhcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gRXh0ZW5zaW9uIGRvZXMgbm90IG1hdGNoLCBzbyBvdXIgcmVzdWx0IGlzIHRoZSBlbnRpcmUgcGF0aFxuICAgICAgICAgIC8vIGNvbXBvbmVudFxuICAgICAgICAgIGV4dEluZGV4ID0gLTFcbiAgICAgICAgICBlbmQgPSBmaXJzdE5vblNsYXNoRW5kXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoc3RhcnQgPT09IGVuZCkge1xuICAgIGVuZCA9IGZpcnN0Tm9uU2xhc2hFbmRcbiAgfSBlbHNlIGlmIChlbmQgPCAwKSB7XG4gICAgZW5kID0gcGF0aC5sZW5ndGhcbiAgfVxuXG4gIHJldHVybiBwYXRoLnNsaWNlKHN0YXJ0LCBlbmQpXG59XG5cbi8qKlxuICogR2V0IHRoZSBkaXJuYW1lIGZyb20gYSBwYXRoLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoXG4gKiAgIEZpbGUgcGF0aC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEZpbGUgcGF0aC5cbiAqL1xuZnVuY3Rpb24gZGlybmFtZShwYXRoKSB7XG4gIGFzc2VydFBhdGgocGF0aClcblxuICBpZiAocGF0aC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gJy4nXG4gIH1cblxuICBsZXQgZW5kID0gLTFcbiAgbGV0IGluZGV4ID0gcGF0aC5sZW5ndGhcbiAgLyoqIEB0eXBlIHtib29sZWFuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgdW5tYXRjaGVkU2xhc2hcblxuICAvLyBQcmVmaXggYC0tYCBpcyBpbXBvcnRhbnQgdG8gbm90IHJ1biBvbiBgMGAuXG4gIHdoaWxlICgtLWluZGV4KSB7XG4gICAgaWYgKHBhdGguY29kZVBvaW50QXQoaW5kZXgpID09PSA0NyAvKiBgL2AgKi8pIHtcbiAgICAgIGlmICh1bm1hdGNoZWRTbGFzaCkge1xuICAgICAgICBlbmQgPSBpbmRleFxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoIXVubWF0Y2hlZFNsYXNoKSB7XG4gICAgICAvLyBXZSBzYXcgdGhlIGZpcnN0IG5vbi1wYXRoIHNlcGFyYXRvclxuICAgICAgdW5tYXRjaGVkU2xhc2ggPSB0cnVlXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGVuZCA8IDBcbiAgICA/IHBhdGguY29kZVBvaW50QXQoMCkgPT09IDQ3IC8qIGAvYCAqL1xuICAgICAgPyAnLydcbiAgICAgIDogJy4nXG4gICAgOiBlbmQgPT09IDEgJiYgcGF0aC5jb2RlUG9pbnRBdCgwKSA9PT0gNDcgLyogYC9gICovXG4gICAgPyAnLy8nXG4gICAgOiBwYXRoLnNsaWNlKDAsIGVuZClcbn1cblxuLyoqXG4gKiBHZXQgYW4gZXh0bmFtZSBmcm9tIGEgcGF0aC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICogICBGaWxlIHBhdGguXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBFeHRuYW1lLlxuICovXG5mdW5jdGlvbiBleHRuYW1lKHBhdGgpIHtcbiAgYXNzZXJ0UGF0aChwYXRoKVxuXG4gIGxldCBpbmRleCA9IHBhdGgubGVuZ3RoXG5cbiAgbGV0IGVuZCA9IC0xXG4gIGxldCBzdGFydFBhcnQgPSAwXG4gIGxldCBzdGFydERvdCA9IC0xXG4gIC8vIFRyYWNrIHRoZSBzdGF0ZSBvZiBjaGFyYWN0ZXJzIChpZiBhbnkpIHdlIHNlZSBiZWZvcmUgb3VyIGZpcnN0IGRvdCBhbmRcbiAgLy8gYWZ0ZXIgYW55IHBhdGggc2VwYXJhdG9yIHdlIGZpbmQuXG4gIGxldCBwcmVEb3RTdGF0ZSA9IDBcbiAgLyoqIEB0eXBlIHtib29sZWFuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgdW5tYXRjaGVkU2xhc2hcblxuICB3aGlsZSAoaW5kZXgtLSkge1xuICAgIGNvbnN0IGNvZGUgPSBwYXRoLmNvZGVQb2ludEF0KGluZGV4KVxuXG4gICAgaWYgKGNvZGUgPT09IDQ3IC8qIGAvYCAqLykge1xuICAgICAgLy8gSWYgd2UgcmVhY2hlZCBhIHBhdGggc2VwYXJhdG9yIHRoYXQgd2FzIG5vdCBwYXJ0IG9mIGEgc2V0IG9mIHBhdGhcbiAgICAgIC8vIHNlcGFyYXRvcnMgYXQgdGhlIGVuZCBvZiB0aGUgc3RyaW5nLCBzdG9wIG5vdy5cbiAgICAgIGlmICh1bm1hdGNoZWRTbGFzaCkge1xuICAgICAgICBzdGFydFBhcnQgPSBpbmRleCArIDFcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBpZiAoZW5kIDwgMCkge1xuICAgICAgLy8gV2Ugc2F3IHRoZSBmaXJzdCBub24tcGF0aCBzZXBhcmF0b3IsIG1hcmsgdGhpcyBhcyB0aGUgZW5kIG9mIG91clxuICAgICAgLy8gZXh0ZW5zaW9uLlxuICAgICAgdW5tYXRjaGVkU2xhc2ggPSB0cnVlXG4gICAgICBlbmQgPSBpbmRleCArIDFcbiAgICB9XG5cbiAgICBpZiAoY29kZSA9PT0gNDYgLyogYC5gICovKSB7XG4gICAgICAvLyBJZiB0aGlzIGlzIG91ciBmaXJzdCBkb3QsIG1hcmsgaXQgYXMgdGhlIHN0YXJ0IG9mIG91ciBleHRlbnNpb24uXG4gICAgICBpZiAoc3RhcnREb3QgPCAwKSB7XG4gICAgICAgIHN0YXJ0RG90ID0gaW5kZXhcbiAgICAgIH0gZWxzZSBpZiAocHJlRG90U3RhdGUgIT09IDEpIHtcbiAgICAgICAgcHJlRG90U3RhdGUgPSAxXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChzdGFydERvdCA+IC0xKSB7XG4gICAgICAvLyBXZSBzYXcgYSBub24tZG90IGFuZCBub24tcGF0aCBzZXBhcmF0b3IgYmVmb3JlIG91ciBkb3QsIHNvIHdlIHNob3VsZFxuICAgICAgLy8gaGF2ZSBhIGdvb2QgY2hhbmNlIGF0IGhhdmluZyBhIG5vbi1lbXB0eSBleHRlbnNpb24uXG4gICAgICBwcmVEb3RTdGF0ZSA9IC0xXG4gICAgfVxuICB9XG5cbiAgaWYgKFxuICAgIHN0YXJ0RG90IDwgMCB8fFxuICAgIGVuZCA8IDAgfHxcbiAgICAvLyBXZSBzYXcgYSBub24tZG90IGNoYXJhY3RlciBpbW1lZGlhdGVseSBiZWZvcmUgdGhlIGRvdC5cbiAgICBwcmVEb3RTdGF0ZSA9PT0gMCB8fFxuICAgIC8vIFRoZSAocmlnaHQtbW9zdCkgdHJpbW1lZCBwYXRoIGNvbXBvbmVudCBpcyBleGFjdGx5IGAuLmAuXG4gICAgKHByZURvdFN0YXRlID09PSAxICYmIHN0YXJ0RG90ID09PSBlbmQgLSAxICYmIHN0YXJ0RG90ID09PSBzdGFydFBhcnQgKyAxKVxuICApIHtcbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIHJldHVybiBwYXRoLnNsaWNlKHN0YXJ0RG90LCBlbmQpXG59XG5cbi8qKlxuICogSm9pbiBzZWdtZW50cyBmcm9tIGEgcGF0aC5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PHN0cmluZz59IHNlZ21lbnRzXG4gKiAgIFBhdGggc2VnbWVudHMuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBGaWxlIHBhdGguXG4gKi9cbmZ1bmN0aW9uIGpvaW4oLi4uc2VnbWVudHMpIHtcbiAgbGV0IGluZGV4ID0gLTFcbiAgLyoqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9ICovXG4gIGxldCBqb2luZWRcblxuICB3aGlsZSAoKytpbmRleCA8IHNlZ21lbnRzLmxlbmd0aCkge1xuICAgIGFzc2VydFBhdGgoc2VnbWVudHNbaW5kZXhdKVxuXG4gICAgaWYgKHNlZ21lbnRzW2luZGV4XSkge1xuICAgICAgam9pbmVkID1cbiAgICAgICAgam9pbmVkID09PSB1bmRlZmluZWQgPyBzZWdtZW50c1tpbmRleF0gOiBqb2luZWQgKyAnLycgKyBzZWdtZW50c1tpbmRleF1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gam9pbmVkID09PSB1bmRlZmluZWQgPyAnLicgOiBub3JtYWxpemUoam9pbmVkKVxufVxuXG4vKipcbiAqIE5vcm1hbGl6ZSBhIGJhc2ljIGZpbGUgcGF0aC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICogICBGaWxlIHBhdGguXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBGaWxlIHBhdGguXG4gKi9cbi8vIE5vdGU6IGBub3JtYWxpemVgIGlzIG5vdCBleHBvc2VkIGFzIGBwYXRoLm5vcm1hbGl6ZWAsIHNvIHNvbWUgY29kZSBpc1xuLy8gbWFudWFsbHkgcmVtb3ZlZCBmcm9tIGl0LlxuZnVuY3Rpb24gbm9ybWFsaXplKHBhdGgpIHtcbiAgYXNzZXJ0UGF0aChwYXRoKVxuXG4gIGNvbnN0IGFic29sdXRlID0gcGF0aC5jb2RlUG9pbnRBdCgwKSA9PT0gNDcgLyogYC9gICovXG5cbiAgLy8gTm9ybWFsaXplIHRoZSBwYXRoIGFjY29yZGluZyB0byBQT1NJWCBydWxlcy5cbiAgbGV0IHZhbHVlID0gbm9ybWFsaXplU3RyaW5nKHBhdGgsICFhYnNvbHV0ZSlcblxuICBpZiAodmFsdWUubGVuZ3RoID09PSAwICYmICFhYnNvbHV0ZSkge1xuICAgIHZhbHVlID0gJy4nXG4gIH1cblxuICBpZiAodmFsdWUubGVuZ3RoID4gMCAmJiBwYXRoLmNvZGVQb2ludEF0KHBhdGgubGVuZ3RoIC0gMSkgPT09IDQ3IC8qIC8gKi8pIHtcbiAgICB2YWx1ZSArPSAnLydcbiAgfVxuXG4gIHJldHVybiBhYnNvbHV0ZSA/ICcvJyArIHZhbHVlIDogdmFsdWVcbn1cblxuLyoqXG4gKiBSZXNvbHZlIGAuYCBhbmQgYC4uYCBlbGVtZW50cyBpbiBhIHBhdGggd2l0aCBkaXJlY3RvcnkgbmFtZXMuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqICAgRmlsZSBwYXRoLlxuICogQHBhcmFtIHtib29sZWFufSBhbGxvd0Fib3ZlUm9vdFxuICogICBXaGV0aGVyIGAuLmAgY2FuIG1vdmUgYWJvdmUgcm9vdC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEZpbGUgcGF0aC5cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplU3RyaW5nKHBhdGgsIGFsbG93QWJvdmVSb290KSB7XG4gIGxldCByZXN1bHQgPSAnJ1xuICBsZXQgbGFzdFNlZ21lbnRMZW5ndGggPSAwXG4gIGxldCBsYXN0U2xhc2ggPSAtMVxuICBsZXQgZG90cyA9IDBcbiAgbGV0IGluZGV4ID0gLTFcbiAgLyoqIEB0eXBlIHtudW1iZXIgfCB1bmRlZmluZWR9ICovXG4gIGxldCBjb2RlXG4gIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICBsZXQgbGFzdFNsYXNoSW5kZXhcblxuICB3aGlsZSAoKytpbmRleCA8PSBwYXRoLmxlbmd0aCkge1xuICAgIGlmIChpbmRleCA8IHBhdGgubGVuZ3RoKSB7XG4gICAgICBjb2RlID0gcGF0aC5jb2RlUG9pbnRBdChpbmRleClcbiAgICB9IGVsc2UgaWYgKGNvZGUgPT09IDQ3IC8qIGAvYCAqLykge1xuICAgICAgYnJlYWtcbiAgICB9IGVsc2Uge1xuICAgICAgY29kZSA9IDQ3IC8qIGAvYCAqL1xuICAgIH1cblxuICAgIGlmIChjb2RlID09PSA0NyAvKiBgL2AgKi8pIHtcbiAgICAgIGlmIChsYXN0U2xhc2ggPT09IGluZGV4IC0gMSB8fCBkb3RzID09PSAxKSB7XG4gICAgICAgIC8vIEVtcHR5LlxuICAgICAgfSBlbHNlIGlmIChsYXN0U2xhc2ggIT09IGluZGV4IC0gMSAmJiBkb3RzID09PSAyKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICByZXN1bHQubGVuZ3RoIDwgMiB8fFxuICAgICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoICE9PSAyIHx8XG4gICAgICAgICAgcmVzdWx0LmNvZGVQb2ludEF0KHJlc3VsdC5sZW5ndGggLSAxKSAhPT0gNDYgLyogYC5gICovIHx8XG4gICAgICAgICAgcmVzdWx0LmNvZGVQb2ludEF0KHJlc3VsdC5sZW5ndGggLSAyKSAhPT0gNDYgLyogYC5gICovXG4gICAgICAgICkge1xuICAgICAgICAgIGlmIChyZXN1bHQubGVuZ3RoID4gMikge1xuICAgICAgICAgICAgbGFzdFNsYXNoSW5kZXggPSByZXN1bHQubGFzdEluZGV4T2YoJy8nKVxuXG4gICAgICAgICAgICBpZiAobGFzdFNsYXNoSW5kZXggIT09IHJlc3VsdC5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgIGlmIChsYXN0U2xhc2hJbmRleCA8IDApIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgPSAnJ1xuICAgICAgICAgICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoID0gMFxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5zbGljZSgwLCBsYXN0U2xhc2hJbmRleClcbiAgICAgICAgICAgICAgICBsYXN0U2VnbWVudExlbmd0aCA9IHJlc3VsdC5sZW5ndGggLSAxIC0gcmVzdWx0Lmxhc3RJbmRleE9mKCcvJylcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGxhc3RTbGFzaCA9IGluZGV4XG4gICAgICAgICAgICAgIGRvdHMgPSAwXG4gICAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmVzdWx0ID0gJydcbiAgICAgICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoID0gMFxuICAgICAgICAgICAgbGFzdFNsYXNoID0gaW5kZXhcbiAgICAgICAgICAgIGRvdHMgPSAwXG4gICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhbGxvd0Fib3ZlUm9vdCkge1xuICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5sZW5ndGggPiAwID8gcmVzdWx0ICsgJy8uLicgOiAnLi4nXG4gICAgICAgICAgbGFzdFNlZ21lbnRMZW5ndGggPSAyXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChyZXN1bHQubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHJlc3VsdCArPSAnLycgKyBwYXRoLnNsaWNlKGxhc3RTbGFzaCArIDEsIGluZGV4KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCA9IHBhdGguc2xpY2UobGFzdFNsYXNoICsgMSwgaW5kZXgpXG4gICAgICAgIH1cblxuICAgICAgICBsYXN0U2VnbWVudExlbmd0aCA9IGluZGV4IC0gbGFzdFNsYXNoIC0gMVxuICAgICAgfVxuXG4gICAgICBsYXN0U2xhc2ggPSBpbmRleFxuICAgICAgZG90cyA9IDBcbiAgICB9IGVsc2UgaWYgKGNvZGUgPT09IDQ2IC8qIGAuYCAqLyAmJiBkb3RzID4gLTEpIHtcbiAgICAgIGRvdHMrK1xuICAgIH0gZWxzZSB7XG4gICAgICBkb3RzID0gLTFcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0XG59XG5cbi8qKlxuICogTWFrZSBzdXJlIGBwYXRoYCBpcyBhIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICogICBGaWxlIHBhdGguXG4gKiBAcmV0dXJucyB7YXNzZXJ0cyBwYXRoIGlzIHN0cmluZ31cbiAqICAgTm90aGluZy5cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0UGF0aChwYXRoKSB7XG4gIGlmICh0eXBlb2YgcGF0aCAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgJ1BhdGggbXVzdCBiZSBhIHN0cmluZy4gUmVjZWl2ZWQgJyArIEpTT04uc3RyaW5naWZ5KHBhdGgpXG4gICAgKVxuICB9XG59XG5cbi8qIGVzbGludC1lbmFibGUgbWF4LWRlcHRoLCBjb21wbGV4aXR5ICovXG4iLCAiLy8gU29tZXdoYXQgYmFzZWQgb246XG4vLyA8aHR0cHM6Ly9naXRodWIuY29tL2RlZnVuY3R6b21iaWUvbm9kZS1wcm9jZXNzL2Jsb2IvbWFzdGVyL2Jyb3dzZXIuanM+LlxuLy8gQnV0IEkgZG9uXHUyMDE5dCB0aGluayBvbmUgdGlueSBsaW5lIG9mIGNvZGUgY2FuIGJlIGNvcHlyaWdodGVkLiBcdUQ4M0RcdURFMDVcbmV4cG9ydCBjb25zdCBwcm9jID0ge2N3ZH1cblxuZnVuY3Rpb24gY3dkKCkge1xuICByZXR1cm4gJy8nXG59XG4iLCAiLyoqXG4gKiBDaGVja3MgaWYgYSB2YWx1ZSBoYXMgdGhlIHNoYXBlIG9mIGEgV0hBVFdHIFVSTCBvYmplY3QuXG4gKlxuICogVXNpbmcgYSBzeW1ib2wgb3IgaW5zdGFuY2VvZiB3b3VsZCBub3QgYmUgYWJsZSB0byByZWNvZ25pemUgVVJMIG9iamVjdHNcbiAqIGNvbWluZyBmcm9tIG90aGVyIGltcGxlbWVudGF0aW9ucyAoZS5nLiBpbiBFbGVjdHJvbiksIHNvIGluc3RlYWQgd2UgYXJlXG4gKiBjaGVja2luZyBzb21lIHdlbGwga25vd24gcHJvcGVydGllcyBmb3IgYSBsYWNrIG9mIGEgYmV0dGVyIHRlc3QuXG4gKlxuICogV2UgdXNlIGBocmVmYCBhbmQgYHByb3RvY29sYCBhcyB0aGV5IGFyZSB0aGUgb25seSBwcm9wZXJ0aWVzIHRoYXQgYXJlXG4gKiBlYXN5IHRvIHJldHJpZXZlIGFuZCBjYWxjdWxhdGUgZHVlIHRvIHRoZSBsYXp5IG5hdHVyZSBvZiB0aGUgZ2V0dGVycy5cbiAqXG4gKiBXZSBjaGVjayBmb3IgYXV0aCBhdHRyaWJ1dGUgdG8gZGlzdGluZ3Vpc2ggbGVnYWN5IHVybCBpbnN0YW5jZSB3aXRoXG4gKiBXSEFUV0cgVVJMIGluc3RhbmNlLlxuICpcbiAqIEBwYXJhbSB7dW5rbm93bn0gZmlsZVVybE9yUGF0aFxuICogICBGaWxlIHBhdGggb3IgVVJMLlxuICogQHJldHVybnMge2ZpbGVVcmxPclBhdGggaXMgVVJMfVxuICogICBXaGV0aGVyIGl0XHUyMDE5cyBhIFVSTC5cbiAqL1xuLy8gRnJvbTogPGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS9ibG9iLzZhMzQwM2MvbGliL2ludGVybmFsL3VybC5qcyNMNzIwPlxuZXhwb3J0IGZ1bmN0aW9uIGlzVXJsKGZpbGVVcmxPclBhdGgpIHtcbiAgcmV0dXJuIEJvb2xlYW4oXG4gICAgZmlsZVVybE9yUGF0aCAhPT0gbnVsbCAmJlxuICAgICAgdHlwZW9mIGZpbGVVcmxPclBhdGggPT09ICdvYmplY3QnICYmXG4gICAgICAnaHJlZicgaW4gZmlsZVVybE9yUGF0aCAmJlxuICAgICAgZmlsZVVybE9yUGF0aC5ocmVmICYmXG4gICAgICAncHJvdG9jb2wnIGluIGZpbGVVcmxPclBhdGggJiZcbiAgICAgIGZpbGVVcmxPclBhdGgucHJvdG9jb2wgJiZcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IGluZGV4aW5nIGlzIGZpbmUuXG4gICAgICBmaWxlVXJsT3JQYXRoLmF1dGggPT09IHVuZGVmaW5lZFxuICApXG59XG4iLCAiaW1wb3J0IHtpc1VybH0gZnJvbSAnLi9taW51cmwuc2hhcmVkLmpzJ1xuXG5leHBvcnQge2lzVXJsfSBmcm9tICcuL21pbnVybC5zaGFyZWQuanMnXG5cbi8vIFNlZTogPGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS9ibG9iLzZhMzQwM2MvbGliL2ludGVybmFsL3VybC5qcz5cblxuLyoqXG4gKiBAcGFyYW0ge1VSTCB8IHN0cmluZ30gcGF0aFxuICogICBGaWxlIFVSTC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEZpbGUgVVJMLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXJsVG9QYXRoKHBhdGgpIHtcbiAgaWYgKHR5cGVvZiBwYXRoID09PSAnc3RyaW5nJykge1xuICAgIHBhdGggPSBuZXcgVVJMKHBhdGgpXG4gIH0gZWxzZSBpZiAoIWlzVXJsKHBhdGgpKSB7XG4gICAgLyoqIEB0eXBlIHtOb2RlSlMuRXJybm9FeGNlcHRpb259ICovXG4gICAgY29uc3QgZXJyb3IgPSBuZXcgVHlwZUVycm9yKFxuICAgICAgJ1RoZSBcInBhdGhcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgc3RyaW5nIG9yIGFuIGluc3RhbmNlIG9mIFVSTC4gUmVjZWl2ZWQgYCcgK1xuICAgICAgICBwYXRoICtcbiAgICAgICAgJ2AnXG4gICAgKVxuICAgIGVycm9yLmNvZGUgPSAnRVJSX0lOVkFMSURfQVJHX1RZUEUnXG4gICAgdGhyb3cgZXJyb3JcbiAgfVxuXG4gIGlmIChwYXRoLnByb3RvY29sICE9PSAnZmlsZTonKSB7XG4gICAgLyoqIEB0eXBlIHtOb2RlSlMuRXJybm9FeGNlcHRpb259ICovXG4gICAgY29uc3QgZXJyb3IgPSBuZXcgVHlwZUVycm9yKCdUaGUgVVJMIG11c3QgYmUgb2Ygc2NoZW1lIGZpbGUnKVxuICAgIGVycm9yLmNvZGUgPSAnRVJSX0lOVkFMSURfVVJMX1NDSEVNRSdcbiAgICB0aHJvdyBlcnJvclxuICB9XG5cbiAgcmV0dXJuIGdldFBhdGhGcm9tVVJMUG9zaXgocGF0aClcbn1cblxuLyoqXG4gKiBHZXQgYSBwYXRoIGZyb20gYSBQT1NJWCBVUkwuXG4gKlxuICogQHBhcmFtIHtVUkx9IHVybFxuICogICBVUkwuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBGaWxlIHBhdGguXG4gKi9cbmZ1bmN0aW9uIGdldFBhdGhGcm9tVVJMUG9zaXgodXJsKSB7XG4gIGlmICh1cmwuaG9zdG5hbWUgIT09ICcnKSB7XG4gICAgLyoqIEB0eXBlIHtOb2RlSlMuRXJybm9FeGNlcHRpb259ICovXG4gICAgY29uc3QgZXJyb3IgPSBuZXcgVHlwZUVycm9yKFxuICAgICAgJ0ZpbGUgVVJMIGhvc3QgbXVzdCBiZSBcImxvY2FsaG9zdFwiIG9yIGVtcHR5IG9uIGRhcndpbidcbiAgICApXG4gICAgZXJyb3IuY29kZSA9ICdFUlJfSU5WQUxJRF9GSUxFX1VSTF9IT1NUJ1xuICAgIHRocm93IGVycm9yXG4gIH1cblxuICBjb25zdCBwYXRobmFtZSA9IHVybC5wYXRobmFtZVxuICBsZXQgaW5kZXggPSAtMVxuXG4gIHdoaWxlICgrK2luZGV4IDwgcGF0aG5hbWUubGVuZ3RoKSB7XG4gICAgaWYgKFxuICAgICAgcGF0aG5hbWUuY29kZVBvaW50QXQoaW5kZXgpID09PSAzNyAvKiBgJWAgKi8gJiZcbiAgICAgIHBhdGhuYW1lLmNvZGVQb2ludEF0KGluZGV4ICsgMSkgPT09IDUwIC8qIGAyYCAqL1xuICAgICkge1xuICAgICAgY29uc3QgdGhpcmQgPSBwYXRobmFtZS5jb2RlUG9pbnRBdChpbmRleCArIDIpXG4gICAgICBpZiAodGhpcmQgPT09IDcwIC8qIGBGYCAqLyB8fCB0aGlyZCA9PT0gMTAyIC8qIGBmYCAqLykge1xuICAgICAgICAvKiogQHR5cGUge05vZGVKUy5FcnJub0V4Y2VwdGlvbn0gKi9cbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgICdGaWxlIFVSTCBwYXRoIG11c3Qgbm90IGluY2x1ZGUgZW5jb2RlZCAvIGNoYXJhY3RlcnMnXG4gICAgICAgIClcbiAgICAgICAgZXJyb3IuY29kZSA9ICdFUlJfSU5WQUxJRF9GSUxFX1VSTF9QQVRIJ1xuICAgICAgICB0aHJvdyBlcnJvclxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQocGF0aG5hbWUpXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLk5vZGV9IE5vZGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUG9pbnR9IFBvaW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBvc2l0aW9ufSBQb3NpdGlvblxuICogQHR5cGVkZWYge2ltcG9ydCgndmZpbGUtbWVzc2FnZScpLk9wdGlvbnN9IE1lc3NhZ2VPcHRpb25zXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9pbmRleC5qcycpLkRhdGF9IERhdGFcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuVmFsdWV9IFZhbHVlXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0ICYge3R5cGU6IHN0cmluZywgcG9zaXRpb24/OiBQb3NpdGlvbiB8IHVuZGVmaW5lZH19IE5vZGVMaWtlXG4gKlxuICogQHR5cGVkZWYge09wdGlvbnMgfCBVUkwgfCBWRmlsZSB8IFZhbHVlfSBDb21wYXRpYmxlXG4gKiAgIFRoaW5ncyB0aGF0IGNhbiBiZSBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yLlxuICpcbiAqIEB0eXBlZGVmIFZGaWxlQ29yZU9wdGlvbnNcbiAqICAgU2V0IG11bHRpcGxlIHZhbHVlcy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2Jhc2VuYW1lXVxuICogICBTZXQgYGJhc2VuYW1lYCAobmFtZSkuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtjd2RdXG4gKiAgIFNldCBgY3dkYCAod29ya2luZyBkaXJlY3RvcnkpLlxuICogQHByb3BlcnR5IHtEYXRhIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2RhdGFdXG4gKiAgIFNldCBgZGF0YWAgKGFzc29jaWF0ZWQgaW5mbykuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtkaXJuYW1lXVxuICogICBTZXQgYGRpcm5hbWVgIChwYXRoIHcvbyBiYXNlbmFtZSkuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtleHRuYW1lXVxuICogICBTZXQgYGV4dG5hbWVgIChleHRlbnNpb24gd2l0aCBkb3QpLlxuICogQHByb3BlcnR5IHtBcnJheTxzdHJpbmc+IHwgbnVsbCB8IHVuZGVmaW5lZH0gW2hpc3RvcnldXG4gKiAgIFNldCBgaGlzdG9yeWAgKHBhdGhzIHRoZSBmaWxlIG1vdmVkIGJldHdlZW4pLlxuICogQHByb3BlcnR5IHtVUkwgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbcGF0aF1cbiAqICAgU2V0IGBwYXRoYCAoY3VycmVudCBwYXRoKS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3N0ZW1dXG4gKiAgIFNldCBgc3RlbWAgKG5hbWUgd2l0aG91dCBleHRlbnNpb24pLlxuICogQHByb3BlcnR5IHtWYWx1ZSB8IG51bGwgfCB1bmRlZmluZWR9IFt2YWx1ZV1cbiAqICAgU2V0IGB2YWx1ZWAgKHRoZSBjb250ZW50cyBvZiB0aGUgZmlsZSkuXG4gKlxuICogQHR5cGVkZWYgTWFwXG4gKiAgIFJhdyBzb3VyY2UgbWFwLlxuICpcbiAqICAgU2VlOlxuICogICA8aHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvc291cmNlLW1hcC9ibG9iLzYwYWRjYjAvc291cmNlLW1hcC5kLnRzI0wxNS1MMjM+LlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHZlcnNpb25cbiAqICAgV2hpY2ggdmVyc2lvbiBvZiB0aGUgc291cmNlIG1hcCBzcGVjIHRoaXMgbWFwIGlzIGZvbGxvd2luZy5cbiAqIEBwcm9wZXJ0eSB7QXJyYXk8c3RyaW5nPn0gc291cmNlc1xuICogICBBbiBhcnJheSBvZiBVUkxzIHRvIHRoZSBvcmlnaW5hbCBzb3VyY2UgZmlsZXMuXG4gKiBAcHJvcGVydHkge0FycmF5PHN0cmluZz59IG5hbWVzXG4gKiAgIEFuIGFycmF5IG9mIGlkZW50aWZpZXJzIHdoaWNoIGNhbiBiZSByZWZlcmVuY2VkIGJ5IGluZGl2aWR1YWwgbWFwcGluZ3MuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IHVuZGVmaW5lZH0gW3NvdXJjZVJvb3RdXG4gKiAgIFRoZSBVUkwgcm9vdCBmcm9tIHdoaWNoIGFsbCBzb3VyY2VzIGFyZSByZWxhdGl2ZS5cbiAqIEBwcm9wZXJ0eSB7QXJyYXk8c3RyaW5nPiB8IHVuZGVmaW5lZH0gW3NvdXJjZXNDb250ZW50XVxuICogICBBbiBhcnJheSBvZiBjb250ZW50cyBvZiB0aGUgb3JpZ2luYWwgc291cmNlIGZpbGVzLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IG1hcHBpbmdzXG4gKiAgIEEgc3RyaW5nIG9mIGJhc2U2NCBWTFFzIHdoaWNoIGNvbnRhaW4gdGhlIGFjdHVhbCBtYXBwaW5ncy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBmaWxlXG4gKiAgIFRoZSBnZW5lcmF0ZWQgZmlsZSB0aGlzIHNvdXJjZSBtYXAgaXMgYXNzb2NpYXRlZCB3aXRoLlxuICpcbiAqIEB0eXBlZGVmIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiAmIFZGaWxlQ29yZU9wdGlvbnN9IE9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqXG4gKiAgIEEgYnVuY2ggb2Yga2V5cyB0aGF0IHdpbGwgYmUgc2hhbGxvdyBjb3BpZWQgb3ZlciB0byB0aGUgbmV3IGZpbGUuXG4gKlxuICogQHR5cGVkZWYge1JlY29yZDxzdHJpbmcsIHVua25vd24+fSBSZXBvcnRlclNldHRpbmdzXG4gKiAgIENvbmZpZ3VyYXRpb24gZm9yIHJlcG9ydGVycy5cbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSBbU2V0dGluZ3M9UmVwb3J0ZXJTZXR0aW5nc11cbiAqICAgT3B0aW9ucyB0eXBlLlxuICogQGNhbGxiYWNrIFJlcG9ydGVyXG4gKiAgIFR5cGUgZm9yIGEgcmVwb3J0ZXIuXG4gKiBAcGFyYW0ge0FycmF5PFZGaWxlPn0gZmlsZXNcbiAqICAgRmlsZXMgdG8gcmVwb3J0LlxuICogQHBhcmFtIHtTZXR0aW5nc30gb3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgUmVwb3J0LlxuICovXG5cbmltcG9ydCB7VkZpbGVNZXNzYWdlfSBmcm9tICd2ZmlsZS1tZXNzYWdlJ1xuaW1wb3J0IHtwYXRofSBmcm9tICd2ZmlsZS9kby1ub3QtdXNlLWNvbmRpdGlvbmFsLW1pbnBhdGgnXG5pbXBvcnQge3Byb2N9IGZyb20gJ3ZmaWxlL2RvLW5vdC11c2UtY29uZGl0aW9uYWwtbWlucHJvYydcbmltcG9ydCB7dXJsVG9QYXRoLCBpc1VybH0gZnJvbSAndmZpbGUvZG8tbm90LXVzZS1jb25kaXRpb25hbC1taW51cmwnXG5cbi8qKlxuICogT3JkZXIgb2Ygc2V0dGluZyAobGVhc3Qgc3BlY2lmaWMgdG8gbW9zdCksIHdlIG5lZWQgdGhpcyBiZWNhdXNlIG90aGVyd2lzZVxuICogYHtzdGVtOiAnYScsIHBhdGg6ICd+L2IuanMnfWAgd291bGQgdGhyb3csIGFzIGEgcGF0aCBpcyBuZWVkZWQgYmVmb3JlIGFcbiAqIHN0ZW0gY2FuIGJlIHNldC5cbiAqL1xuY29uc3Qgb3JkZXIgPSAvKiogQHR5cGUge2NvbnN0fSAqLyAoW1xuICAnaGlzdG9yeScsXG4gICdwYXRoJyxcbiAgJ2Jhc2VuYW1lJyxcbiAgJ3N0ZW0nLFxuICAnZXh0bmFtZScsXG4gICdkaXJuYW1lJ1xuXSlcblxuZXhwb3J0IGNsYXNzIFZGaWxlIHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyB2aXJ0dWFsIGZpbGUuXG4gICAqXG4gICAqIGBvcHRpb25zYCBpcyB0cmVhdGVkIGFzOlxuICAgKlxuICAgKiAqICAgYHN0cmluZ2Agb3IgYFVpbnQ4QXJyYXlgIFx1MjAxNCBge3ZhbHVlOiBvcHRpb25zfWBcbiAgICogKiAgIGBVUkxgIFx1MjAxNCBge3BhdGg6IG9wdGlvbnN9YFxuICAgKiAqICAgYFZGaWxlYCBcdTIwMTQgc2hhbGxvdyBjb3BpZXMgaXRzIGRhdGEgb3ZlciB0byB0aGUgbmV3IGZpbGVcbiAgICogKiAgIGBvYmplY3RgIFx1MjAxNCBhbGwgZmllbGRzIGFyZSBzaGFsbG93IGNvcGllZCBvdmVyIHRvIHRoZSBuZXcgZmlsZVxuICAgKlxuICAgKiBQYXRoIHJlbGF0ZWQgZmllbGRzIGFyZSBzZXQgaW4gdGhlIGZvbGxvd2luZyBvcmRlciAobGVhc3Qgc3BlY2lmaWMgdG9cbiAgICogbW9zdCBzcGVjaWZpYyk6IGBoaXN0b3J5YCwgYHBhdGhgLCBgYmFzZW5hbWVgLCBgc3RlbWAsIGBleHRuYW1lYCxcbiAgICogYGRpcm5hbWVgLlxuICAgKlxuICAgKiBZb3UgY2Fubm90IHNldCBgZGlybmFtZWAgb3IgYGV4dG5hbWVgIHdpdGhvdXQgc2V0dGluZyBlaXRoZXIgYGhpc3RvcnlgLFxuICAgKiBgcGF0aGAsIGBiYXNlbmFtZWAsIG9yIGBzdGVtYCB0b28uXG4gICAqXG4gICAqIEBwYXJhbSB7Q29tcGF0aWJsZSB8IG51bGwgfCB1bmRlZmluZWR9IFt2YWx1ZV1cbiAgICogICBGaWxlIHZhbHVlLlxuICAgKiBAcmV0dXJuc1xuICAgKiAgIE5ldyBpbnN0YW5jZS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHZhbHVlKSB7XG4gICAgLyoqIEB0eXBlIHtPcHRpb25zIHwgVkZpbGV9ICovXG4gICAgbGV0IG9wdGlvbnNcblxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIG9wdGlvbnMgPSB7fVxuICAgIH0gZWxzZSBpZiAoaXNVcmwodmFsdWUpKSB7XG4gICAgICBvcHRpb25zID0ge3BhdGg6IHZhbHVlfVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCBpc1VpbnQ4QXJyYXkodmFsdWUpKSB7XG4gICAgICBvcHRpb25zID0ge3ZhbHVlfVxuICAgIH0gZWxzZSB7XG4gICAgICBvcHRpb25zID0gdmFsdWVcbiAgICB9XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtZXhwcmVzc2lvbnMgKi9cblxuICAgIC8qKlxuICAgICAqIEJhc2Ugb2YgYHBhdGhgIChkZWZhdWx0OiBgcHJvY2Vzcy5jd2QoKWAgb3IgYCcvJ2AgaW4gYnJvd3NlcnMpLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLmN3ZCA9IHByb2MuY3dkKClcblxuICAgIC8qKlxuICAgICAqIFBsYWNlIHRvIHN0b3JlIGN1c3RvbSBpbmZvIChkZWZhdWx0OiBge31gKS5cbiAgICAgKlxuICAgICAqIEl0XHUyMDE5cyBPSyB0byBzdG9yZSBjdXN0b20gZGF0YSBkaXJlY3RseSBvbiB0aGUgZmlsZSBidXQgbW92aW5nIGl0IHRvXG4gICAgICogYGRhdGFgIGlzIHJlY29tbWVuZGVkLlxuICAgICAqXG4gICAgICogQHR5cGUge0RhdGF9XG4gICAgICovXG4gICAgdGhpcy5kYXRhID0ge31cblxuICAgIC8qKlxuICAgICAqIExpc3Qgb2YgZmlsZSBwYXRocyB0aGUgZmlsZSBtb3ZlZCBiZXR3ZWVuLlxuICAgICAqXG4gICAgICogVGhlIGZpcnN0IGlzIHRoZSBvcmlnaW5hbCBwYXRoIGFuZCB0aGUgbGFzdCBpcyB0aGUgY3VycmVudCBwYXRoLlxuICAgICAqXG4gICAgICogQHR5cGUge0FycmF5PHN0cmluZz59XG4gICAgICovXG4gICAgdGhpcy5oaXN0b3J5ID0gW11cblxuICAgIC8qKlxuICAgICAqIExpc3Qgb2YgbWVzc2FnZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWxlLlxuICAgICAqXG4gICAgICogQHR5cGUge0FycmF5PFZGaWxlTWVzc2FnZT59XG4gICAgICovXG4gICAgdGhpcy5tZXNzYWdlcyA9IFtdXG5cbiAgICAvKipcbiAgICAgKiBSYXcgdmFsdWUuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7VmFsdWV9XG4gICAgICovXG4gICAgdGhpcy52YWx1ZVxuXG4gICAgLy8gVGhlIGJlbG93IGFyZSBub24tc3RhbmRhcmQsIHRoZXkgYXJlIFx1MjAxQ3dlbGwta25vd25cdTIwMUQuXG4gICAgLy8gQXMgaW4sIHVzZWQgaW4gc2V2ZXJhbCB0b29scy5cbiAgICAvKipcbiAgICAgKiBTb3VyY2UgbWFwLlxuICAgICAqXG4gICAgICogVGhpcyB0eXBlIGlzIGVxdWl2YWxlbnQgdG8gdGhlIGBSYXdTb3VyY2VNYXBgIHR5cGUgZnJvbSB0aGUgYHNvdXJjZS1tYXBgXG4gICAgICogbW9kdWxlLlxuICAgICAqXG4gICAgICogQHR5cGUge01hcCB8IG51bGwgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5tYXBcblxuICAgIC8qKlxuICAgICAqIEN1c3RvbSwgbm9uLXN0cmluZywgY29tcGlsZWQsIHJlcHJlc2VudGF0aW9uLlxuICAgICAqXG4gICAgICogVGhpcyBpcyB1c2VkIGJ5IHVuaWZpZWQgdG8gc3RvcmUgbm9uLXN0cmluZyByZXN1bHRzLlxuICAgICAqIE9uZSBleGFtcGxlIGlzIHdoZW4gdHVybmluZyBtYXJrZG93biBpbnRvIFJlYWN0IG5vZGVzLlxuICAgICAqXG4gICAgICogQHR5cGUge3Vua25vd259XG4gICAgICovXG4gICAgdGhpcy5yZXN1bHRcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgYSBmaWxlIHdhcyBzYXZlZCB0byBkaXNrLlxuICAgICAqXG4gICAgICogVGhpcyBpcyB1c2VkIGJ5IHZmaWxlIHJlcG9ydGVycy5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIHRoaXMuc3RvcmVkXG4gICAgLyogZXNsaW50LWVuYWJsZSBuby11bnVzZWQtZXhwcmVzc2lvbnMgKi9cblxuICAgIC8vIFNldCBwYXRoIHJlbGF0ZWQgcHJvcGVydGllcyBpbiB0aGUgY29ycmVjdCBvcmRlci5cbiAgICBsZXQgaW5kZXggPSAtMVxuXG4gICAgd2hpbGUgKCsraW5kZXggPCBvcmRlci5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHByb3AgPSBvcmRlcltpbmRleF1cblxuICAgICAgLy8gTm90ZTogd2Ugc3BlY2lmaWNhbGx5IHVzZSBgaW5gIGluc3RlYWQgb2YgYGhhc093blByb3BlcnR5YCB0byBhY2NlcHRcbiAgICAgIC8vIGB2ZmlsZWBzIHRvby5cbiAgICAgIGlmIChcbiAgICAgICAgcHJvcCBpbiBvcHRpb25zICYmXG4gICAgICAgIG9wdGlvbnNbcHJvcF0gIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICBvcHRpb25zW3Byb3BdICE9PSBudWxsXG4gICAgICApIHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogVFMgZG9lc25cdTIwMTl0IHVuZGVyc3RhbmQgYmFzaWMgcmVhbGl0eS5cbiAgICAgICAgdGhpc1twcm9wXSA9IHByb3AgPT09ICdoaXN0b3J5JyA/IFsuLi5vcHRpb25zW3Byb3BdXSA6IG9wdGlvbnNbcHJvcF1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgICBsZXQgcHJvcFxuXG4gICAgLy8gU2V0IG5vbi1wYXRoIHJlbGF0ZWQgcHJvcGVydGllcy5cbiAgICBmb3IgKHByb3AgaW4gb3B0aW9ucykge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogZmluZSB0byBzZXQgb3RoZXIgdGhpbmdzLlxuICAgICAgaWYgKCFvcmRlci5pbmNsdWRlcyhwcm9wKSkge1xuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBmaW5lIHRvIHNldCBvdGhlciB0aGluZ3MuXG4gICAgICAgIHRoaXNbcHJvcF0gPSBvcHRpb25zW3Byb3BdXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgYmFzZW5hbWUgKGluY2x1ZGluZyBleHRuYW1lKSAoZXhhbXBsZTogYCdpbmRleC5taW4uanMnYCkuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqICAgQmFzZW5hbWUuXG4gICAqL1xuICBnZXQgYmFzZW5hbWUoKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLnBhdGggPT09ICdzdHJpbmcnID8gcGF0aC5iYXNlbmFtZSh0aGlzLnBhdGgpIDogdW5kZWZpbmVkXG4gIH1cblxuICAvKipcbiAgICogU2V0IGJhc2VuYW1lIChpbmNsdWRpbmcgZXh0bmFtZSkgKGAnaW5kZXgubWluLmpzJ2ApLlxuICAgKlxuICAgKiBDYW5ub3QgY29udGFpbiBwYXRoIHNlcGFyYXRvcnMgKGAnLydgIG9uIHVuaXgsIG1hY09TLCBhbmQgYnJvd3NlcnMsIGAnXFwnYFxuICAgKiBvbiB3aW5kb3dzKS5cbiAgICogQ2Fubm90IGJlIG51bGxpZmllZCAodXNlIGBmaWxlLnBhdGggPSBmaWxlLmRpcm5hbWVgIGluc3RlYWQpLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYmFzZW5hbWVcbiAgICogICBCYXNlbmFtZS5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgc2V0IGJhc2VuYW1lKGJhc2VuYW1lKSB7XG4gICAgYXNzZXJ0Tm9uRW1wdHkoYmFzZW5hbWUsICdiYXNlbmFtZScpXG4gICAgYXNzZXJ0UGFydChiYXNlbmFtZSwgJ2Jhc2VuYW1lJylcbiAgICB0aGlzLnBhdGggPSBwYXRoLmpvaW4odGhpcy5kaXJuYW1lIHx8ICcnLCBiYXNlbmFtZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHBhcmVudCBwYXRoIChleGFtcGxlOiBgJ34nYCkuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqICAgRGlybmFtZS5cbiAgICovXG4gIGdldCBkaXJuYW1lKCkge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5wYXRoID09PSAnc3RyaW5nJyA/IHBhdGguZGlybmFtZSh0aGlzLnBhdGgpIDogdW5kZWZpbmVkXG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBwYXJlbnQgcGF0aCAoZXhhbXBsZTogYCd+J2ApLlxuICAgKlxuICAgKiBDYW5ub3QgYmUgc2V0IGlmIHRoZXJlXHUyMDE5cyBubyBgcGF0aGAgeWV0LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0gZGlybmFtZVxuICAgKiAgIERpcm5hbWUuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqICAgTm90aGluZy5cbiAgICovXG4gIHNldCBkaXJuYW1lKGRpcm5hbWUpIHtcbiAgICBhc3NlcnRQYXRoKHRoaXMuYmFzZW5hbWUsICdkaXJuYW1lJylcbiAgICB0aGlzLnBhdGggPSBwYXRoLmpvaW4oZGlybmFtZSB8fCAnJywgdGhpcy5iYXNlbmFtZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGV4dG5hbWUgKGluY2x1ZGluZyBkb3QpIChleGFtcGxlOiBgJy5qcydgKS5cbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICogICBFeHRuYW1lLlxuICAgKi9cbiAgZ2V0IGV4dG5hbWUoKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLnBhdGggPT09ICdzdHJpbmcnID8gcGF0aC5leHRuYW1lKHRoaXMucGF0aCkgOiB1bmRlZmluZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGV4dG5hbWUgKGluY2x1ZGluZyBkb3QpIChleGFtcGxlOiBgJy5qcydgKS5cbiAgICpcbiAgICogQ2Fubm90IGNvbnRhaW4gcGF0aCBzZXBhcmF0b3JzIChgJy8nYCBvbiB1bml4LCBtYWNPUywgYW5kIGJyb3dzZXJzLCBgJ1xcJ2BcbiAgICogb24gd2luZG93cykuXG4gICAqIENhbm5vdCBiZSBzZXQgaWYgdGhlcmVcdTIwMTlzIG5vIGBwYXRoYCB5ZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBleHRuYW1lXG4gICAqICAgRXh0bmFtZS5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgc2V0IGV4dG5hbWUoZXh0bmFtZSkge1xuICAgIGFzc2VydFBhcnQoZXh0bmFtZSwgJ2V4dG5hbWUnKVxuICAgIGFzc2VydFBhdGgodGhpcy5kaXJuYW1lLCAnZXh0bmFtZScpXG5cbiAgICBpZiAoZXh0bmFtZSkge1xuICAgICAgaWYgKGV4dG5hbWUuY29kZVBvaW50QXQoMCkgIT09IDQ2IC8qIGAuYCAqLykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2BleHRuYW1lYCBtdXN0IHN0YXJ0IHdpdGggYC5gJylcbiAgICAgIH1cblxuICAgICAgaWYgKGV4dG5hbWUuaW5jbHVkZXMoJy4nLCAxKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2BleHRuYW1lYCBjYW5ub3QgY29udGFpbiBtdWx0aXBsZSBkb3RzJylcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnBhdGggPSBwYXRoLmpvaW4odGhpcy5kaXJuYW1lLCB0aGlzLnN0ZW0gKyAoZXh0bmFtZSB8fCAnJykpXG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBmdWxsIHBhdGggKGV4YW1wbGU6IGAnfi9pbmRleC5taW4uanMnYCkuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqICAgUGF0aC5cbiAgICovXG4gIGdldCBwYXRoKCkge1xuICAgIHJldHVybiB0aGlzLmhpc3RvcnlbdGhpcy5oaXN0b3J5Lmxlbmd0aCAtIDFdXG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBmdWxsIHBhdGggKGV4YW1wbGU6IGAnfi9pbmRleC5taW4uanMnYCkuXG4gICAqXG4gICAqIENhbm5vdCBiZSBudWxsaWZpZWQuXG4gICAqIFlvdSBjYW4gc2V0IGEgZmlsZSBVUkwgKGEgYFVSTGAgb2JqZWN0IHdpdGggYSBgZmlsZTpgIHByb3RvY29sKSB3aGljaCB3aWxsXG4gICAqIGJlIHR1cm5lZCBpbnRvIGEgcGF0aCB3aXRoIGB1cmwuZmlsZVVSTFRvUGF0aGAuXG4gICAqXG4gICAqIEBwYXJhbSB7VVJMIHwgc3RyaW5nfSBwYXRoXG4gICAqICAgUGF0aC5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgc2V0IHBhdGgocGF0aCkge1xuICAgIGlmIChpc1VybChwYXRoKSkge1xuICAgICAgcGF0aCA9IHVybFRvUGF0aChwYXRoKVxuICAgIH1cblxuICAgIGFzc2VydE5vbkVtcHR5KHBhdGgsICdwYXRoJylcblxuICAgIGlmICh0aGlzLnBhdGggIT09IHBhdGgpIHtcbiAgICAgIHRoaXMuaGlzdG9yeS5wdXNoKHBhdGgpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgc3RlbSAoYmFzZW5hbWUgdy9vIGV4dG5hbWUpIChleGFtcGxlOiBgJ2luZGV4Lm1pbidgKS5cbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICogICBTdGVtLlxuICAgKi9cbiAgZ2V0IHN0ZW0oKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLnBhdGggPT09ICdzdHJpbmcnXG4gICAgICA/IHBhdGguYmFzZW5hbWUodGhpcy5wYXRoLCB0aGlzLmV4dG5hbWUpXG4gICAgICA6IHVuZGVmaW5lZFxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgc3RlbSAoYmFzZW5hbWUgdy9vIGV4dG5hbWUpIChleGFtcGxlOiBgJ2luZGV4Lm1pbidgKS5cbiAgICpcbiAgICogQ2Fubm90IGNvbnRhaW4gcGF0aCBzZXBhcmF0b3JzIChgJy8nYCBvbiB1bml4LCBtYWNPUywgYW5kIGJyb3dzZXJzLCBgJ1xcJ2BcbiAgICogb24gd2luZG93cykuXG4gICAqIENhbm5vdCBiZSBudWxsaWZpZWQgKHVzZSBgZmlsZS5wYXRoID0gZmlsZS5kaXJuYW1lYCBpbnN0ZWFkKS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0ZW1cbiAgICogICBTdGVtLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKiAgIE5vdGhpbmcuXG4gICAqL1xuICBzZXQgc3RlbShzdGVtKSB7XG4gICAgYXNzZXJ0Tm9uRW1wdHkoc3RlbSwgJ3N0ZW0nKVxuICAgIGFzc2VydFBhcnQoc3RlbSwgJ3N0ZW0nKVxuICAgIHRoaXMucGF0aCA9IHBhdGguam9pbih0aGlzLmRpcm5hbWUgfHwgJycsIHN0ZW0gKyAodGhpcy5leHRuYW1lIHx8ICcnKSlcbiAgfVxuXG4gIC8vIE5vcm1hbCBwcm90b3R5cGFsIG1ldGhvZHMuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBmYXRhbCBtZXNzYWdlIGZvciBgcmVhc29uYCBhc3NvY2lhdGVkIHdpdGggdGhlIGZpbGUuXG4gICAqXG4gICAqIFRoZSBgZmF0YWxgIGZpZWxkIG9mIHRoZSBtZXNzYWdlIGlzIHNldCB0byBgdHJ1ZWAgKGVycm9yOyBmaWxlIG5vdCB1c2FibGUpXG4gICAqIGFuZCB0aGUgYGZpbGVgIGZpZWxkIGlzIHNldCB0byB0aGUgY3VycmVudCBmaWxlIHBhdGguXG4gICAqIFRoZSBtZXNzYWdlIGlzIGFkZGVkIHRvIHRoZSBgbWVzc2FnZXNgIGZpZWxkIG9uIGBmaWxlYC5cbiAgICpcbiAgICogPiBcdUQ4M0VcdURFQTYgKipOb3RlKio6IGFsc28gaGFzIG9ic29sZXRlIHNpZ25hdHVyZXMuXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7TWVzc2FnZU9wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtuZXZlcn1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGxhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7bmV2ZXJ9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7bmV2ZXJ9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlfSBjYXVzZVxuICAgKiBAcGFyYW0ge1BvaW50IHwgUG9zaXRpb24gfCBudWxsIHwgdW5kZWZpbmVkfSBwbGFjZVxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtuZXZlcn1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKlxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlIHwgc3RyaW5nfSBjYXVzZU9yUmVhc29uXG4gICAqICAgUmVhc29uIGZvciBtZXNzYWdlLCBzaG91bGQgdXNlIG1hcmtkb3duLlxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IE1lc3NhZ2VPcHRpb25zIHwgUG9pbnQgfCBQb3NpdGlvbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zT3JQYXJlbnRPclBsYWNlXVxuICAgKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiAgIFBsYWNlIGluIGNvZGUgd2hlcmUgdGhlIG1lc3NhZ2Ugb3JpZ2luYXRlcyAoZXhhbXBsZTpcbiAgICogICBgJ215LXBhY2thZ2U6bXktcnVsZSdgIG9yIGAnbXktcnVsZSdgKS5cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKiAgIE5ldmVyLlxuICAgKiBAdGhyb3dzIHtWRmlsZU1lc3NhZ2V9XG4gICAqICAgTWVzc2FnZS5cbiAgICovXG4gIGZhaWwoY2F1c2VPclJlYXNvbiwgb3B0aW9uc09yUGFyZW50T3JQbGFjZSwgb3JpZ2luKSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogdGhlIG92ZXJsb2FkcyBhcmUgZmluZS5cbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5tZXNzYWdlKGNhdXNlT3JSZWFzb24sIG9wdGlvbnNPclBhcmVudE9yUGxhY2UsIG9yaWdpbilcblxuICAgIG1lc3NhZ2UuZmF0YWwgPSB0cnVlXG5cbiAgICB0aHJvdyBtZXNzYWdlXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGluZm8gbWVzc2FnZSBmb3IgYHJlYXNvbmAgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWxlLlxuICAgKlxuICAgKiBUaGUgYGZhdGFsYCBmaWVsZCBvZiB0aGUgbWVzc2FnZSBpcyBzZXQgdG8gYHVuZGVmaW5lZGAgKGluZm87IGNoYW5nZVxuICAgKiBsaWtlbHkgbm90IG5lZWRlZCkgYW5kIHRoZSBgZmlsZWAgZmllbGQgaXMgc2V0IHRvIHRoZSBjdXJyZW50IGZpbGUgcGF0aC5cbiAgICogVGhlIG1lc3NhZ2UgaXMgYWRkZWQgdG8gdGhlIGBtZXNzYWdlc2AgZmllbGQgb24gYGZpbGVgLlxuICAgKlxuICAgKiA+IFx1RDgzRVx1REVBNiAqKk5vdGUqKjogYWxzbyBoYXMgb2Jzb2xldGUgc2lnbmF0dXJlcy5cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtNZXNzYWdlT3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGxhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlIHwgc3RyaW5nfSBjYXVzZU9yUmVhc29uXG4gICAqICAgUmVhc29uIGZvciBtZXNzYWdlLCBzaG91bGQgdXNlIG1hcmtkb3duLlxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IE1lc3NhZ2VPcHRpb25zIHwgUG9pbnQgfCBQb3NpdGlvbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zT3JQYXJlbnRPclBsYWNlXVxuICAgKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiAgIFBsYWNlIGluIGNvZGUgd2hlcmUgdGhlIG1lc3NhZ2Ugb3JpZ2luYXRlcyAoZXhhbXBsZTpcbiAgICogICBgJ215LXBhY2thZ2U6bXktcnVsZSdgIG9yIGAnbXktcnVsZSdgKS5cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICogICBNZXNzYWdlLlxuICAgKi9cbiAgaW5mbyhjYXVzZU9yUmVhc29uLCBvcHRpb25zT3JQYXJlbnRPclBsYWNlLCBvcmlnaW4pIHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiB0aGUgb3ZlcmxvYWRzIGFyZSBmaW5lLlxuICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLm1lc3NhZ2UoY2F1c2VPclJlYXNvbiwgb3B0aW9uc09yUGFyZW50T3JQbGFjZSwgb3JpZ2luKVxuXG4gICAgbWVzc2FnZS5mYXRhbCA9IHVuZGVmaW5lZFxuXG4gICAgcmV0dXJuIG1lc3NhZ2VcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBtZXNzYWdlIGZvciBgcmVhc29uYCBhc3NvY2lhdGVkIHdpdGggdGhlIGZpbGUuXG4gICAqXG4gICAqIFRoZSBgZmF0YWxgIGZpZWxkIG9mIHRoZSBtZXNzYWdlIGlzIHNldCB0byBgZmFsc2VgICh3YXJuaW5nOyBjaGFuZ2UgbWF5IGJlXG4gICAqIG5lZWRlZCkgYW5kIHRoZSBgZmlsZWAgZmllbGQgaXMgc2V0IHRvIHRoZSBjdXJyZW50IGZpbGUgcGF0aC5cbiAgICogVGhlIG1lc3NhZ2UgaXMgYWRkZWQgdG8gdGhlIGBtZXNzYWdlc2AgZmllbGQgb24gYGZpbGVgLlxuICAgKlxuICAgKiA+IFx1RDgzRVx1REVBNiAqKk5vdGUqKjogYWxzbyBoYXMgb2Jzb2xldGUgc2lnbmF0dXJlcy5cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtNZXNzYWdlT3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGxhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlIHwgc3RyaW5nfSBjYXVzZU9yUmVhc29uXG4gICAqICAgUmVhc29uIGZvciBtZXNzYWdlLCBzaG91bGQgdXNlIG1hcmtkb3duLlxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IE1lc3NhZ2VPcHRpb25zIHwgUG9pbnQgfCBQb3NpdGlvbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zT3JQYXJlbnRPclBsYWNlXVxuICAgKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiAgIFBsYWNlIGluIGNvZGUgd2hlcmUgdGhlIG1lc3NhZ2Ugb3JpZ2luYXRlcyAoZXhhbXBsZTpcbiAgICogICBgJ215LXBhY2thZ2U6bXktcnVsZSdgIG9yIGAnbXktcnVsZSdgKS5cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICogICBNZXNzYWdlLlxuICAgKi9cbiAgbWVzc2FnZShjYXVzZU9yUmVhc29uLCBvcHRpb25zT3JQYXJlbnRPclBsYWNlLCBvcmlnaW4pIHtcbiAgICBjb25zdCBtZXNzYWdlID0gbmV3IFZGaWxlTWVzc2FnZShcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IHRoZSBvdmVybG9hZHMgYXJlIGZpbmUuXG4gICAgICBjYXVzZU9yUmVhc29uLFxuICAgICAgb3B0aW9uc09yUGFyZW50T3JQbGFjZSxcbiAgICAgIG9yaWdpblxuICAgIClcblxuICAgIGlmICh0aGlzLnBhdGgpIHtcbiAgICAgIG1lc3NhZ2UubmFtZSA9IHRoaXMucGF0aCArICc6JyArIG1lc3NhZ2UubmFtZVxuICAgICAgbWVzc2FnZS5maWxlID0gdGhpcy5wYXRoXG4gICAgfVxuXG4gICAgbWVzc2FnZS5mYXRhbCA9IGZhbHNlXG5cbiAgICB0aGlzLm1lc3NhZ2VzLnB1c2gobWVzc2FnZSlcblxuICAgIHJldHVybiBtZXNzYWdlXG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplIHRoZSBmaWxlLlxuICAgKlxuICAgKiA+ICoqTm90ZSoqOiB3aGljaCBlbmNvZGluZ3MgYXJlIHN1cHBvcnRlZCBkZXBlbmRzIG9uIHRoZSBlbmdpbmUuXG4gICAqID4gRm9yIGluZm8gb24gTm9kZS5qcywgc2VlOlxuICAgKiA+IDxodHRwczovL25vZGVqcy5vcmcvYXBpL3V0aWwuaHRtbCN3aGF0d2ctc3VwcG9ydGVkLWVuY29kaW5ncz4uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2VuY29kaW5nPSd1dGY4J11cbiAgICogICBDaGFyYWN0ZXIgZW5jb2RpbmcgdG8gdW5kZXJzdGFuZCBgdmFsdWVgIGFzIHdoZW4gaXRcdTIwMTlzIGEgYFVpbnQ4QXJyYXlgXG4gICAqICAgKGRlZmF1bHQ6IGAndXRmLTgnYCkuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqICAgU2VyaWFsaXplZCBmaWxlLlxuICAgKi9cbiAgdG9TdHJpbmcoZW5jb2RpbmcpIHtcbiAgICBpZiAodGhpcy52YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gJydcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHRoaXMudmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZVxuICAgIH1cblxuICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoZW5jb2RpbmcgfHwgdW5kZWZpbmVkKVxuICAgIHJldHVybiBkZWNvZGVyLmRlY29kZSh0aGlzLnZhbHVlKVxuICB9XG59XG5cbi8qKlxuICogQXNzZXJ0IHRoYXQgYHBhcnRgIGlzIG5vdCBhIHBhdGggKGFzIGluLCBkb2VzIG5vdCBjb250YWluIGBwYXRoLnNlcGApLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGFydFxuICogICBGaWxlIHBhdGggcGFydC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gKiAgIFBhcnQgbmFtZS5cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKiAgIE5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIGFzc2VydFBhcnQocGFydCwgbmFtZSkge1xuICBpZiAocGFydCAmJiBwYXJ0LmluY2x1ZGVzKHBhdGguc2VwKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdgJyArIG5hbWUgKyAnYCBjYW5ub3QgYmUgYSBwYXRoOiBkaWQgbm90IGV4cGVjdCBgJyArIHBhdGguc2VwICsgJ2AnXG4gICAgKVxuICB9XG59XG5cbi8qKlxuICogQXNzZXJ0IHRoYXQgYHBhcnRgIGlzIG5vdCBlbXB0eS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0gcGFydFxuICogICBUaGluZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gKiAgIFBhcnQgbmFtZS5cbiAqIEByZXR1cm5zIHthc3NlcnRzIHBhcnQgaXMgc3RyaW5nfVxuICogICBOb3RoaW5nLlxuICovXG5mdW5jdGlvbiBhc3NlcnROb25FbXB0eShwYXJ0LCBuYW1lKSB7XG4gIGlmICghcGFydCkge1xuICAgIHRocm93IG5ldyBFcnJvcignYCcgKyBuYW1lICsgJ2AgY2Fubm90IGJlIGVtcHR5JylcbiAgfVxufVxuXG4vKipcbiAqIEFzc2VydCBgcGF0aGAgZXhpc3RzLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBwYXRoXG4gKiAgIFBhdGguXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogICBEZXBlbmRlbmN5IG5hbWUuXG4gKiBAcmV0dXJucyB7YXNzZXJ0cyBwYXRoIGlzIHN0cmluZ31cbiAqICAgTm90aGluZy5cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0UGF0aChwYXRoLCBuYW1lKSB7XG4gIGlmICghcGF0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcignU2V0dGluZyBgJyArIG5hbWUgKyAnYCByZXF1aXJlcyBgcGF0aGAgdG8gYmUgc2V0IHRvbycpXG4gIH1cbn1cblxuLyoqXG4gKiBBc3NlcnQgYHZhbHVlYCBpcyBhbiBgVWludDhBcnJheWAuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZVxuICogICB0aGluZy5cbiAqIEByZXR1cm5zIHt2YWx1ZSBpcyBVaW50OEFycmF5fVxuICogICBXaGV0aGVyIGB2YWx1ZWAgaXMgYW4gYFVpbnQ4QXJyYXlgLlxuICovXG5mdW5jdGlvbiBpc1VpbnQ4QXJyYXkodmFsdWUpIHtcbiAgcmV0dXJuIEJvb2xlYW4oXG4gICAgdmFsdWUgJiZcbiAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICdieXRlTGVuZ3RoJyBpbiB2YWx1ZSAmJlxuICAgICAgJ2J5dGVPZmZzZXQnIGluIHZhbHVlXG4gIClcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIEVycm9ySW5mb1xuICogICBJbmZvIG9uIGEgYHBhcnNlNWAgZXJyb3IuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gcmVhc29uXG4gKiAgIFJlYXNvbiBvZiBlcnJvci5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBkZXNjcmlwdGlvblxuICogICBNb3JlIGluZm8gb24gZXJyb3IuXG4gKiBAcHJvcGVydHkge2ZhbHNlfSBbdXJsXVxuICogICBUdXJuIG9mZiBpZiB0aGlzIGlzIG5vdCBkb2N1bWVudGVkIGluIHRoZSBodG1sNSBzcGVjIChvcHRpb25hbCkuXG4gKi9cblxuZXhwb3J0IGNvbnN0IGVycm9ycyA9IHtcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGFiYW5kb25lZEhlYWRFbGVtZW50Q2hpbGQ6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIG1ldGFkYXRhIGVsZW1lbnQgYWZ0ZXIgaGVhZCcsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBlbGVtZW50IGFmdGVyIGhlYWQuIEV4cGVjdGVkIHRoZSBlbGVtZW50IGJlZm9yZSBgPC9oZWFkPmAnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGFicnVwdENsb3NpbmdPZkVtcHR5Q29tbWVudDoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgYWJydXB0bHkgY2xvc2VkIGVtcHR5IGNvbW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgPmAgb3IgYC0+YC4gRXhwZWN0ZWQgYC0tPmAgdG8gY2xvc2UgY29tbWVudHMnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBhYnJ1cHREb2N0eXBlUHVibGljSWRlbnRpZmllcjoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgYWJydXB0bHkgY2xvc2VkIHB1YmxpYyBpZGVudGlmaWVyJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGA+YC4gRXhwZWN0ZWQgYSBjbG9zaW5nIGBcImAgb3IgYFxcJ2AgYWZ0ZXIgdGhlIHB1YmxpYyBpZGVudGlmaWVyJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgYWJydXB0RG9jdHlwZVN5c3RlbUlkZW50aWZpZXI6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGFicnVwdGx5IGNsb3NlZCBzeXN0ZW0gaWRlbnRpZmllcicsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBgPmAuIEV4cGVjdGVkIGEgY2xvc2luZyBgXCJgIG9yIGBcXCdgIGFmdGVyIHRoZSBpZGVudGlmaWVyIGlkZW50aWZpZXInXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBhYnNlbmNlT2ZEaWdpdHNJbk51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2U6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIG5vbi1kaWdpdCBhdCBzdGFydCBvZiBudW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2UnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgYFswLTldYCBmb3IgZGVjaW1hbCByZWZlcmVuY2VzIG9yIGBbMC05YS1mQS1GXWAgZm9yIGhleGFkZWNpbWFsIHJlZmVyZW5jZXMnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBjZGF0YUluSHRtbENvbnRlbnQ6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIENEQVRBIHNlY3Rpb24gaW4gSFRNTCcsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBgPCFbQ0RBVEFbYCBpbiBIVE1MLiBSZW1vdmUgaXQsIHVzZSBhIGNvbW1lbnQsIG9yIGVuY29kZSBzcGVjaWFsIGNoYXJhY3RlcnMgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGNoYXJhY3RlclJlZmVyZW5jZU91dHNpZGVVbmljb2RlUmFuZ2U6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIHRvbyBiaWcgbnVtZXJpYyBjaGFyYWN0ZXIgcmVmZXJlbmNlJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkbHkgaGlnaCBjaGFyYWN0ZXIgcmVmZXJlbmNlLiBFeHBlY3RlZCBjaGFyYWN0ZXIgcmVmZXJlbmNlcyB0byBiZSBhdCBtb3N0IGhleGFkZWNpbWFsIDEwZmZmZiAob3IgZGVjaW1hbCAxMTE0MTExKSdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGNsb3NpbmdPZkVsZW1lbnRXaXRoT3BlbkNoaWxkRWxlbWVudHM6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGNsb3NpbmcgdGFnIHdpdGggb3BlbiBjaGlsZCBlbGVtZW50cycsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZGx5IGNsb3NpbmcgdGFnLiBFeHBlY3RlZCBvdGhlciB0YWdzIHRvIGJlIGNsb3NlZCBmaXJzdCcsXG4gICAgdXJsOiBmYWxzZVxuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgY29udHJvbENoYXJhY3RlckluSW5wdXRTdHJlYW06IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGNvbnRyb2wgY2hhcmFjdGVyJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGNvbnRyb2wgY2hhcmFjdGVyIGAleGAuIEV4cGVjdGVkIGEgbm9uLWNvbnRyb2wgY29kZSBwb2ludCwgMHgwMCwgb3IgQVNDSUkgd2hpdGVzcGFjZSdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGNvbnRyb2xDaGFyYWN0ZXJSZWZlcmVuY2U6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGNvbnRyb2wgY2hhcmFjdGVyIHJlZmVyZW5jZScsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZGx5IGNvbnRyb2wgY2hhcmFjdGVyIGluIHJlZmVyZW5jZS4gRXhwZWN0ZWQgYSBub24tY29udHJvbCBjb2RlIHBvaW50LCAweDAwLCBvciBBU0NJSSB3aGl0ZXNwYWNlJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZGlzYWxsb3dlZENvbnRlbnRJbk5vc2NyaXB0SW5IZWFkOiB7XG4gICAgcmVhc29uOiAnRGlzYWxsb3dlZCBjb250ZW50IGluc2lkZSBgPG5vc2NyaXB0PmAgaW4gYDxoZWFkPmAnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgdGV4dCBjaGFyYWN0ZXIgYCVjYC4gT25seSB1c2UgdGV4dCBpbiBgPG5vc2NyaXB0PmBzIGluIGA8Ym9keT5gJyxcbiAgICB1cmw6IGZhbHNlXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBkdXBsaWNhdGVBdHRyaWJ1dGU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGR1cGxpY2F0ZSBhdHRyaWJ1dGUnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWRseSBkb3VibGUgYXR0cmlidXRlLiBFeHBlY3RlZCBhdHRyaWJ1dGVzIHRvIG9jY3VyIG9ubHkgb25jZSdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGVuZFRhZ1dpdGhBdHRyaWJ1dGVzOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBhdHRyaWJ1dGUgb24gY2xvc2luZyB0YWcnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBhdHRyaWJ1dGUuIEV4cGVjdGVkIGA+YCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZW5kVGFnV2l0aFRyYWlsaW5nU29saWR1czoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgc2xhc2ggYXQgZW5kIG9mIGNsb3NpbmcgdGFnJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjLTFgLiBFeHBlY3RlZCBgPmAgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGVuZFRhZ1dpdGhvdXRNYXRjaGluZ09wZW5FbGVtZW50OiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCB1bm9wZW5lZCBlbmQgdGFnJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIHRhZy4gRXhwZWN0ZWQgbm8gZW5kIHRhZyBvciBhbm90aGVyIGVuZCB0YWcnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGVvZkJlZm9yZVRhZ05hbWU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIHRhZyBuYW1lIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlb2ZJbkNkYXRhOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZSBpbiBDREFUQScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBgXV0+YCB0byBjbG9zZSB0aGUgQ0RBVEEnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlb2ZJbkNvbW1lbnQ6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlIGluIGNvbW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgYC0tPmAgdG8gY2xvc2UgdGhlIGNvbW1lbnQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlb2ZJbkRvY3R5cGU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlIGluIGRvY3R5cGUnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGEgdmFsaWQgZG9jdHlwZSAoc3VjaCBhcyBgPCFkb2N0eXBlIGh0bWw+YCknXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlb2ZJbkVsZW1lbnRUaGF0Q2FuQ29udGFpbk9ubHlUZXh0OiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZSBpbiBlbGVtZW50IHRoYXQgY2FuIG9ubHkgY29udGFpbiB0ZXh0JyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIHRleHQgb3IgYSBjbG9zaW5nIHRhZycsXG4gICAgdXJsOiBmYWxzZVxuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZW9mSW5TY3JpcHRIdG1sQ29tbWVudExpa2VUZXh0OiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZSBpbiBjb21tZW50IGluc2lkZSBzY3JpcHQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgYC0tPmAgdG8gY2xvc2UgdGhlIGNvbW1lbnQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlb2ZJblRhZzoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgaW4gdGFnJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGA+YCB0byBjbG9zZSB0aGUgdGFnJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgaW5jb3JyZWN0bHlDbG9zZWRDb21tZW50OiB7XG4gICAgcmVhc29uOiAnSW5jb3JyZWN0bHkgY2xvc2VkIGNvbW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWMtMWAuIEV4cGVjdGVkIGAtLT5gIHRvIGNsb3NlIHRoZSBjb21tZW50J1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgaW5jb3JyZWN0bHlPcGVuZWRDb21tZW50OiB7XG4gICAgcmVhc29uOiAnSW5jb3JyZWN0bHkgb3BlbmVkIGNvbW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBgPCEtLWAgdG8gb3BlbiB0aGUgY29tbWVudCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGludmFsaWRDaGFyYWN0ZXJTZXF1ZW5jZUFmdGVyRG9jdHlwZU5hbWU6IHtcbiAgICByZWFzb246ICdJbnZhbGlkIHNlcXVlbmNlIGFmdGVyIGRvY3R5cGUgbmFtZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIHNlcXVlbmNlIGF0IGAlY2AuIEV4cGVjdGVkIGBwdWJsaWNgIG9yIGBzeXN0ZW1gJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgaW52YWxpZEZpcnN0Q2hhcmFjdGVyT2ZUYWdOYW1lOiB7XG4gICAgcmVhc29uOiAnSW52YWxpZCBmaXJzdCBjaGFyYWN0ZXIgaW4gdGFnIG5hbWUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBhbiBBU0NJSSBsZXR0ZXIgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3BsYWNlZERvY3R5cGU6IHtcbiAgICByZWFzb246ICdNaXNwbGFjZWQgZG9jdHlwZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGRvY3R5cGUuIEV4cGVjdGVkIGRvY3R5cGUgYmVmb3JlIGhlYWQnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3BsYWNlZFN0YXJ0VGFnRm9ySGVhZEVsZW1lbnQ6IHtcbiAgICByZWFzb246ICdNaXNwbGFjZWQgYDxoZWFkPmAgc3RhcnQgdGFnJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIHN0YXJ0IHRhZyBgPGhlYWQ+YC4gRXhwZWN0ZWQgYDxoZWFkPmAgZGlyZWN0bHkgYWZ0ZXIgZG9jdHlwZScsXG4gICAgdXJsOiBmYWxzZVxuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ0F0dHJpYnV0ZVZhbHVlOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyBhdHRyaWJ1dGUgdmFsdWUnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgYCVjLTFgLiBFeHBlY3RlZCBhbiBhdHRyaWJ1dGUgdmFsdWUgb3Igbm8gYCVjLTFgIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNzaW5nRG9jdHlwZToge1xuICAgIHJlYXNvbjogJ01pc3NpbmcgZG9jdHlwZSBiZWZvcmUgb3RoZXIgY29udGVudCcsXG4gICAgZGVzY3JpcHRpb246ICdFeHBlY3RlZCBhIGA8IWRvY3R5cGUgaHRtbD5gIGJlZm9yZSBhbnl0aGluZyBlbHNlJyxcbiAgICB1cmw6IGZhbHNlXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNzaW5nRG9jdHlwZU5hbWU6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIGRvY3R5cGUgbmFtZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGRvY3R5cGUgZW5kIGF0IGAlY2AuIEV4cGVjdGVkIGBodG1sYCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ0RvY3R5cGVQdWJsaWNJZGVudGlmaWVyOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyBwdWJsaWMgaWRlbnRpZmllciBpbiBkb2N0eXBlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgaWRlbnRpZmllciBmb3IgYHB1YmxpY2AgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdEb2N0eXBlU3lzdGVtSWRlbnRpZmllcjoge1xuICAgIHJlYXNvbjogJ01pc3Npbmcgc3lzdGVtIGlkZW50aWZpZXIgaW4gZG9jdHlwZScsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBpZGVudGlmaWVyIGZvciBgc3lzdGVtYCBpbnN0ZWFkIChzdWdnZXN0ZWQ6IGBcImFib3V0OmxlZ2FjeS1jb21wYXRcImApJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ0VuZFRhZ05hbWU6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIG5hbWUgaW4gZW5kIHRhZycsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIGFuIEFTQ0lJIGxldHRlciBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ1F1b3RlQmVmb3JlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXI6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHF1b3RlIGJlZm9yZSBwdWJsaWMgaWRlbnRpZmllciBpbiBkb2N0eXBlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgYFwiYCBvciBgXFwnYCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ1F1b3RlQmVmb3JlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXI6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHF1b3RlIGJlZm9yZSBzeXN0ZW0gaWRlbnRpZmllciBpbiBkb2N0eXBlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgYFwiYCBvciBgXFwnYCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ1NlbWljb2xvbkFmdGVyQ2hhcmFjdGVyUmVmZXJlbmNlOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyBzZW1pY29sb24gYWZ0ZXIgY2hhcmFjdGVyIHJlZmVyZW5jZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIGA7YCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVQdWJsaWNLZXl3b3JkOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyB3aGl0ZXNwYWNlIGFmdGVyIHB1YmxpYyBpZGVudGlmaWVyIGluIGRvY3R5cGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBBU0NJSSB3aGl0ZXNwYWNlIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNzaW5nV2hpdGVzcGFjZUFmdGVyRG9jdHlwZVN5c3RlbUtleXdvcmQ6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHdoaXRlc3BhY2UgYWZ0ZXIgc3lzdGVtIGlkZW50aWZpZXIgaW4gZG9jdHlwZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIEFTQ0lJIHdoaXRlc3BhY2UgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdXaGl0ZXNwYWNlQmVmb3JlRG9jdHlwZU5hbWU6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHdoaXRlc3BhY2UgYmVmb3JlIGRvY3R5cGUgbmFtZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIEFTQ0lJIHdoaXRlc3BhY2UgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdXaGl0ZXNwYWNlQmV0d2VlbkF0dHJpYnV0ZXM6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHdoaXRlc3BhY2UgYmV0d2VlbiBhdHRyaWJ1dGVzJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgQVNDSUkgd2hpdGVzcGFjZSBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ1doaXRlc3BhY2VCZXR3ZWVuRG9jdHlwZVB1YmxpY0FuZFN5c3RlbUlkZW50aWZpZXJzOiB7XG4gICAgcmVhc29uOlxuICAgICAgJ01pc3Npbmcgd2hpdGVzcGFjZSBiZXR3ZWVuIHB1YmxpYyBhbmQgc3lzdGVtIGlkZW50aWZpZXJzIGluIGRvY3R5cGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBBU0NJSSB3aGl0ZXNwYWNlIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBuZXN0ZWRDb21tZW50OiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBuZXN0ZWQgY29tbWVudCcsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGA8IS0tYC4gRXhwZWN0ZWQgYC0tPmAnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBuZXN0ZWROb3NjcmlwdEluSGVhZDoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgbmVzdGVkIGA8bm9zY3JpcHQ+YCBpbiBgPGhlYWQ+YCcsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBgPG5vc2NyaXB0PmAuIEV4cGVjdGVkIGEgY2xvc2luZyB0YWcgb3IgYSBtZXRhIGVsZW1lbnQnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG5vbkNvbmZvcm1pbmdEb2N0eXBlOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBub24tY29uZm9ybWluZyBkb2N0eXBlIGRlY2xhcmF0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdFeHBlY3RlZCBgPCFkb2N0eXBlIGh0bWw+YCBvciBgPCFkb2N0eXBlIGh0bWwgc3lzdGVtIFwiYWJvdXQ6bGVnYWN5LWNvbXBhdFwiPmAnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG5vblZvaWRIdG1sRWxlbWVudFN0YXJ0VGFnV2l0aFRyYWlsaW5nU29saWR1czoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgdHJhaWxpbmcgc2xhc2ggb24gc3RhcnQgdGFnIG9mIG5vbi12b2lkIGVsZW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgL2AuIEV4cGVjdGVkIGA+YCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbm9uY2hhcmFjdGVyQ2hhcmFjdGVyUmVmZXJlbmNlOiB7XG4gICAgcmVhc29uOlxuICAgICAgJ1VuZXhwZWN0ZWQgbm9uY2hhcmFjdGVyIGNvZGUgcG9pbnQgcmVmZXJlbmNlZCBieSBjaGFyYWN0ZXIgcmVmZXJlbmNlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgY29kZSBwb2ludC4gRG8gbm90IHVzZSBub25jaGFyYWN0ZXJzIGluIEhUTUwnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBub25jaGFyYWN0ZXJJbklucHV0U3RyZWFtOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBub25jaGFyYWN0ZXIgY2hhcmFjdGVyJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgY29kZSBwb2ludCBgJXhgLiBEbyBub3QgdXNlIG5vbmNoYXJhY3RlcnMgaW4gSFRNTCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG51bGxDaGFyYWN0ZXJSZWZlcmVuY2U6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIE5VTEwgY2hhcmFjdGVyIHJlZmVyZW5jZWQgYnkgY2hhcmFjdGVyIHJlZmVyZW5jZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGNvZGUgcG9pbnQuIERvIG5vdCB1c2UgTlVMTCBjaGFyYWN0ZXJzIGluIEhUTUwnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBvcGVuRWxlbWVudHNMZWZ0QWZ0ZXJFb2Y6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGNsb3NpbmcgdGFnIGluc3RlYWQnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIHN1cnJvZ2F0ZUNoYXJhY3RlclJlZmVyZW5jZToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgc3Vycm9nYXRlIGNoYXJhY3RlciByZWZlcmVuY2VkIGJ5IGNoYXJhY3RlciByZWZlcmVuY2UnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgY29kZSBwb2ludC4gRG8gbm90IHVzZSBsb25lIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzIGluIEhUTUwnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBzdXJyb2dhdGVJbklucHV0U3RyZWFtOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBzdXJyb2dhdGUgY2hhcmFjdGVyJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGNvZGUgcG9pbnQgYCV4YC4gRG8gbm90IHVzZSBsb25lIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzIGluIEhUTUwnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICB1bmV4cGVjdGVkQ2hhcmFjdGVyQWZ0ZXJEb2N0eXBlU3lzdGVtSWRlbnRpZmllcjoge1xuICAgIHJlYXNvbjogJ0ludmFsaWQgY2hhcmFjdGVyIGFmdGVyIHN5c3RlbSBpZGVudGlmaWVyIGluIGRvY3R5cGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBjaGFyYWN0ZXIgYXQgYCVjYC4gRXhwZWN0ZWQgYD5gJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgdW5leHBlY3RlZENoYXJhY3RlckluQXR0cmlidXRlTmFtZToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgY2hhcmFjdGVyIGluIGF0dHJpYnV0ZSBuYW1lJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIHdoaXRlc3BhY2UsIGAvYCwgYD5gLCBgPWAsIG9yIHByb2JhYmx5IGFuIEFTQ0lJIGxldHRlcidcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIHVuZXhwZWN0ZWRDaGFyYWN0ZXJJblVucXVvdGVkQXR0cmlidXRlVmFsdWU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGNoYXJhY3RlciBpbiB1bnF1b3RlZCBhdHRyaWJ1dGUgdmFsdWUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBRdW90ZSB0aGUgYXR0cmlidXRlIHZhbHVlIHRvIGluY2x1ZGUgaXQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICB1bmV4cGVjdGVkRXF1YWxzU2lnbkJlZm9yZUF0dHJpYnV0ZU5hbWU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVxdWFscyBzaWduIGJlZm9yZSBhdHRyaWJ1dGUgbmFtZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEFkZCBhbiBhdHRyaWJ1dGUgbmFtZSBiZWZvcmUgaXQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICB1bmV4cGVjdGVkTnVsbENoYXJhY3Rlcjoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgTlVMTCBjaGFyYWN0ZXInLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgY29kZSBwb2ludCBgJXhgLiBEbyBub3QgdXNlIE5VTEwgY2hhcmFjdGVycyBpbiBIVE1MJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgdW5leHBlY3RlZFF1ZXN0aW9uTWFya0luc3RlYWRPZlRhZ05hbWU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIHF1ZXN0aW9uIG1hcmsgaW5zdGVhZCBvZiB0YWcgbmFtZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIGFuIEFTQ0lJIGxldHRlciBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgdW5leHBlY3RlZFNvbGlkdXNJblRhZzoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgc2xhc2ggaW4gdGFnJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGAlYy0xYC4gRXhwZWN0ZWQgaXQgZm9sbG93ZWQgYnkgYD5gIG9yIGluIGEgcXVvdGVkIGF0dHJpYnV0ZSB2YWx1ZSdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIHVua25vd25OYW1lZENoYXJhY3RlclJlZmVyZW5jZToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgdW5rbm93biBuYW1lZCBjaGFyYWN0ZXIgcmVmZXJlbmNlJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGNoYXJhY3RlciByZWZlcmVuY2UuIEV4cGVjdGVkIGtub3duIG5hbWVkIGNoYXJhY3RlciByZWZlcmVuY2VzJ1xuICB9XG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUm9vdH0gUm9vdFxuICogQHR5cGVkZWYge2ltcG9ydCgncGFyc2U1JykuUGFyc2VyRXJyb3J9IFBhcnNlckVycm9yXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd2ZmlsZScpLlZhbHVlfSBWYWx1ZVxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge2tleW9mIGVycm9yc30gRXJyb3JDb2RlXG4gKiAgIEtub3duIG5hbWVzIG9mIHBhcnNlIGVycm9ycy5cbiAqXG4gKiBAdHlwZWRlZiB7UGFydGlhbDxSZWNvcmQ8RXJyb3JDb2RlLCBFcnJvclNldmVyaXR5IHwgbnVsbCB8IHVuZGVmaW5lZD4+fSBFcnJvck9wdGlvbnNcbiAqICAgT3B0aW9ucyB0aGF0IGRlZmluZSB0aGUgc2V2ZXJpdHkgb2YgZXJyb3JzLlxuICpcbiAqIEB0eXBlZGVmIHtib29sZWFuIHwgMCB8IDEgfCAyfSBFcnJvclNldmVyaXR5XG4gKiAgIEVycm9yIHNldmVyaXR5OlxuICpcbiAqICAgKiBgMGAgb3IgYGZhbHNlYFxuICogICAgIFx1MjAxNCB0dXJuIHRoZSBwYXJzZSBlcnJvciBvZmZcbiAqICAgKiBgMWAgb3IgYHRydWVgXG4gKiAgICAgXHUyMDE0IHR1cm4gdGhlIHBhcnNlIGVycm9yIGludG8gYSB3YXJuaW5nXG4gKiAgICogYDJgXG4gKiAgICAgXHUyMDE0IHR1cm4gdGhlIHBhcnNlIGVycm9yIGludG8gYW4gYWN0dWFsIGVycm9yOiBwcm9jZXNzaW5nIHN0b3BzLlxuICpcbiAqIEB0eXBlZGVmIEV4dHJhT3B0aW9uc1xuICogICBPcHRpb25zIHRoYXQgZGVmaW5lIGhvdyB0byBwYXJzZSBIVE1MLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2ZyYWdtZW50PWZhbHNlXVxuICogICBTcGVjaWZ5IHdoZXRoZXIgdG8gcGFyc2UgYSBmcmFnbWVudCwgaW5zdGVhZCBvZiBhIGNvbXBsZXRlIGRvY3VtZW50XG4gKiAgIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIEluIGRvY3VtZW50IG1vZGUsIHVub3BlbmVkIGBodG1sYCwgYGhlYWRgLCBhbmQgYGJvZHlgIGVsZW1lbnRzIGFyZSBvcGVuZWRcbiAqICAgaW4ganVzdCB0aGUgcmlnaHQgcGxhY2VzLlxuICogQHByb3BlcnR5IHtPbkVycm9yIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29uZXJyb3JdXG4gKiAgIENhbGwgYG9uZXJyb3JgIHdpdGggcGFyc2UgZXJyb3JzIHdoaWxlIHBhcnNpbmcgKG9wdGlvbmFsKS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBwYXJzZSBlcnJvcnMgYXJlIGN1cnJlbnRseSBiZWluZyBhZGRlZCB0byBIVE1MLlxuICogICA+IE5vdCBhbGwgZXJyb3JzIGVtaXR0ZWQgYnkgcGFyc2U1IChvciB1cykgYXJlIHNwZWNjZWQgeWV0LlxuICogICA+IFNvbWUgZG9jdW1lbnRhdGlvbiBtYXkgc3RpbGwgYmUgbWlzc2luZy5cbiAqXG4gKiAgIFNwZWNpZmljIHJ1bGVzIGNhbiBiZSB0dXJuZWQgb2ZmIGJ5IHNldHRpbmcgdGhlbSB0byBgZmFsc2VgIChvciBgMGApLlxuICogICBUaGUgZGVmYXVsdCwgd2hlbiBgZW1pdFBhcnNlRXJyb3JzOiB0cnVlYCwgaXMgYHRydWVgIChvciBgMWApLCBhbmQgbWVhbnNcbiAqICAgdGhhdCBydWxlcyBlbWl0IGFzIHdhcm5pbmdzLlxuICogICBSdWxlcyBjYW4gYWxzbyBiZSBjb25maWd1cmVkIHdpdGggYDJgLCB0byB0dXJuIHRoZW0gaW50byBmYXRhbCBlcnJvcnMuXG4gKlxuICogQHR5cGVkZWYge09taXQ8aW1wb3J0KCdoYXN0LXV0aWwtZnJvbS1wYXJzZTUnKS5PcHRpb25zLCAnZmlsZSc+fSBGcm9tUGFyc2U1T3B0aW9uc1xuICogICBPcHRpb25zIHRoYXQgY2FuIGJlIHBhc3NlZCB0aHJvdWdoIHRvIGBoYXN0LXV0aWwtZnJvbS1wYXJzZTVgLlxuICpcbiAqIEBjYWxsYmFjayBPbkVycm9yXG4gKiAgIEhhbmRsZSBwYXJzZSBlcnJvcnMuXG4gKiBAcGFyYW0ge1ZGaWxlTWVzc2FnZX0gZXJyb3JcbiAqICAgTWVzc2FnZS5cbiAqIEByZXR1cm5zIHt1bmRlZmluZWQgfCB2b2lkfVxuICogICBOb3RoaW5nLlxuICpcbiAqICAgTm90ZTogYHZvaWRgIGluY2x1ZGVkIHVudGlsIFRTIGluZmVycyBgdW5kZWZpbmVkYCBuaWNlbHkuXG4gKlxuICogQHR5cGVkZWYge0Zyb21QYXJzZTVPcHRpb25zICYgRXJyb3JPcHRpb25zICYgRXh0cmFPcHRpb25zfSBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKi9cblxuaW1wb3J0IHtvayBhcyBhc3NlcnR9IGZyb20gJ2RldmxvcCdcbmltcG9ydCB7ZnJvbVBhcnNlNX0gZnJvbSAnaGFzdC11dGlsLWZyb20tcGFyc2U1J1xuaW1wb3J0IHtwYXJzZSwgcGFyc2VGcmFnbWVudH0gZnJvbSAncGFyc2U1J1xuaW1wb3J0IHtWRmlsZX0gZnJvbSAndmZpbGUnXG5pbXBvcnQge1ZGaWxlTWVzc2FnZX0gZnJvbSAndmZpbGUtbWVzc2FnZSdcbmltcG9ydCB7ZXJyb3JzfSBmcm9tICcuL2Vycm9ycy5qcydcblxuY29uc3QgYmFzZSA9ICdodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9wYXJzaW5nLmh0bWwjcGFyc2UtZXJyb3ItJ1xuXG5jb25zdCBkYXNoVG9DYW1lbFJlID0gLy1bYS16XS9nXG5jb25zdCBmb3JtYXRDUmUgPSAvJWMoPzooWy0rXSkoXFxkKykpPy9nXG5jb25zdCBmb3JtYXRYUmUgPSAvJXgvZ1xuXG5jb25zdCBmYXRhbGl0aWVzID0gezI6IHRydWUsIDE6IGZhbHNlLCAwOiBudWxsfVxuXG4vKiogQHR5cGUge1JlYWRvbmx5PE9wdGlvbnM+fSAqL1xuY29uc3QgZW1wdHlPcHRpb25zID0ge31cblxuLyoqXG4gKiBUdXJuIHNlcmlhbGl6ZWQgSFRNTCBpbnRvIGEgaGFzdCB0cmVlLlxuICpcbiAqIEBwYXJhbSB7VkZpbGUgfCBWYWx1ZX0gdmFsdWVcbiAqICAgU2VyaWFsaXplZCBIVE1MIHRvIHBhcnNlLlxuICogQHBhcmFtIHtSZWFkb25seTxPcHRpb25zPiB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uIChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyB7Um9vdH1cbiAqICAgVHJlZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21IdG1sKHZhbHVlLCBvcHRpb25zKSB7XG4gIGNvbnN0IHNldHRpbmdzID0gb3B0aW9ucyB8fCBlbXB0eU9wdGlvbnNcbiAgY29uc3Qgb25lcnJvciA9IHNldHRpbmdzLm9uZXJyb3JcbiAgY29uc3QgZmlsZSA9IHZhbHVlIGluc3RhbmNlb2YgVkZpbGUgPyB2YWx1ZSA6IG5ldyBWRmlsZSh2YWx1ZSlcbiAgY29uc3QgZm4gPSBzZXR0aW5ncy5mcmFnbWVudCA/IHBhcnNlRnJhZ21lbnQgOiBwYXJzZVxuICBjb25zdCBkb2MgPSBTdHJpbmcoZmlsZSlcbiAgY29uc3QgcDVkb2MgPSBmbihkb2MsIHtcbiAgICBzb3VyY2VDb2RlTG9jYXRpb25JbmZvOiB0cnVlLFxuICAgIC8vIE5vdGUgYHBhcnNlNWAgdHlwZXMgY3VycmVudGx5IGRvIG5vdCBhbGxvdyBgdW5kZWZpbmVkYC5cbiAgICBvblBhcnNlRXJyb3I6IHNldHRpbmdzLm9uZXJyb3IgPyBpbnRlcm5hbE9uZXJyb3IgOiBudWxsLFxuICAgIHNjcmlwdGluZ0VuYWJsZWQ6IGZhbHNlXG4gIH0pXG5cbiAgLy8gYHBhcnNlNWAgcmV0dXJucyBkb2N1bWVudCB3aGljaCBhcmUgYWx3YXlzIG1hcHBlZCB0byByb290cy5cbiAgcmV0dXJuIC8qKiBAdHlwZSB7Um9vdH0gKi8gKFxuICAgIGZyb21QYXJzZTUocDVkb2MsIHtcbiAgICAgIGZpbGUsXG4gICAgICBzcGFjZTogc2V0dGluZ3Muc3BhY2UsXG4gICAgICB2ZXJib3NlOiBzZXR0aW5ncy52ZXJib3NlXG4gICAgfSlcbiAgKVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgYSBwYXJzZSBlcnJvci5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJzZXJFcnJvcn0gZXJyb3JcbiAgICogICBQYXJzZTUgZXJyb3IuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqICAgTm90aGluZy5cbiAgICovXG4gIGZ1bmN0aW9uIGludGVybmFsT25lcnJvcihlcnJvcikge1xuICAgIGNvbnN0IGNvZGUgPSBlcnJvci5jb2RlXG4gICAgY29uc3QgbmFtZSA9IGNhbWVsY2FzZShjb2RlKVxuICAgIGNvbnN0IHNldHRpbmcgPSBzZXR0aW5nc1tuYW1lXVxuICAgIGNvbnN0IGNvbmZpZyA9IHNldHRpbmcgPT09IG51bGwgfHwgc2V0dGluZyA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IHNldHRpbmdcbiAgICBjb25zdCBsZXZlbCA9IHR5cGVvZiBjb25maWcgPT09ICdudW1iZXInID8gY29uZmlnIDogY29uZmlnID8gMSA6IDBcblxuICAgIGlmIChsZXZlbCkge1xuICAgICAgY29uc3QgaW5mbyA9IGVycm9yc1tuYW1lXVxuICAgICAgYXNzZXJ0KGluZm8sICdleHBlY3RlZCBrbm93biBlcnJvciBmcm9tIGBwYXJzZTVgJylcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IG5ldyBWRmlsZU1lc3NhZ2UoZm9ybWF0KGluZm8ucmVhc29uKSwge1xuICAgICAgICBwbGFjZToge1xuICAgICAgICAgIHN0YXJ0OiB7XG4gICAgICAgICAgICBsaW5lOiBlcnJvci5zdGFydExpbmUsXG4gICAgICAgICAgICBjb2x1bW46IGVycm9yLnN0YXJ0Q29sLFxuICAgICAgICAgICAgb2Zmc2V0OiBlcnJvci5zdGFydE9mZnNldFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZW5kOiB7XG4gICAgICAgICAgICBsaW5lOiBlcnJvci5lbmRMaW5lLFxuICAgICAgICAgICAgY29sdW1uOiBlcnJvci5lbmRDb2wsXG4gICAgICAgICAgICBvZmZzZXQ6IGVycm9yLmVuZE9mZnNldFxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcnVsZUlkOiBjb2RlLFxuICAgICAgICBzb3VyY2U6ICdoYXN0LXV0aWwtZnJvbS1odG1sJ1xuICAgICAgfSlcblxuICAgICAgaWYgKGZpbGUucGF0aCkge1xuICAgICAgICBtZXNzYWdlLmZpbGUgPSBmaWxlLnBhdGhcbiAgICAgICAgbWVzc2FnZS5uYW1lID0gZmlsZS5wYXRoICsgJzonICsgbWVzc2FnZS5uYW1lXG4gICAgICB9XG5cbiAgICAgIG1lc3NhZ2UuZmF0YWwgPSBmYXRhbGl0aWVzW2xldmVsXVxuICAgICAgbWVzc2FnZS5ub3RlID0gZm9ybWF0KGluZm8uZGVzY3JpcHRpb24pXG4gICAgICBtZXNzYWdlLnVybCA9IGluZm8udXJsID09PSBmYWxzZSA/IHVuZGVmaW5lZCA6IGJhc2UgKyBjb2RlXG5cbiAgICAgIGFzc2VydChvbmVycm9yLCAnYGludGVybmFsT25lcnJvcmAgaXMgbm90IHBhc3NlZCBpZiBgb25lcnJvcmAgaXMgbm90IHNldCcpXG4gICAgICBvbmVycm9yKG1lc3NhZ2UpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9ybWF0IGEgaHVtYW4gcmVhZGFibGUgc3RyaW5nIGFib3V0IGFuIGVycm9yLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gICAgICogICBWYWx1ZSB0byBmb3JtYXQuXG4gICAgICogQHJldHVybnMge3N0cmluZ31cbiAgICAgKiAgIEZvcm1hdHRlZC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmb3JtYXQodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKGZvcm1hdENSZSwgZm9ybWF0QykucmVwbGFjZShmb3JtYXRYUmUsIGZvcm1hdFgpXG5cbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0IHRoZSBjaGFyYWN0ZXIuXG4gICAgICAgKlxuICAgICAgICogQHBhcmFtIHtzdHJpbmd9IF9cbiAgICAgICAqICAgTWF0Y2guXG4gICAgICAgKiBAcGFyYW0ge3N0cmluZ30gJDFcbiAgICAgICAqICAgU2lnbiAoYC1gIG9yIGArYCwgb3B0aW9uYWwpLlxuICAgICAgICogQHBhcmFtIHtzdHJpbmd9ICQyXG4gICAgICAgKiAgIE9mZnNldC5cbiAgICAgICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAgICAgKiAgIEZvcm1hdHRlZC5cbiAgICAgICAqL1xuICAgICAgZnVuY3Rpb24gZm9ybWF0QyhfLCAkMSwgJDIpIHtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID1cbiAgICAgICAgICAoJDIgPyBOdW1iZXIucGFyc2VJbnQoJDIsIDEwKSA6IDApICogKCQxID09PSAnLScgPyAtMSA6IDEpXG4gICAgICAgIGNvbnN0IGNoYXIgPSBkb2MuY2hhckF0KGVycm9yLnN0YXJ0T2Zmc2V0ICsgb2Zmc2V0KVxuICAgICAgICByZXR1cm4gdmlzdWFsaXplQ2hhcmFjdGVyKGNoYXIpXG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0IHRoZSBjaGFyYWN0ZXIgY29kZS5cbiAgICAgICAqXG4gICAgICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgICAgICogICBGb3JtYXR0ZWQuXG4gICAgICAgKi9cbiAgICAgIGZ1bmN0aW9uIGZvcm1hdFgoKSB7XG4gICAgICAgIHJldHVybiB2aXN1YWxpemVDaGFyYWN0ZXJDb2RlKGRvYy5jaGFyQ29kZUF0KGVycm9yLnN0YXJ0T2Zmc2V0KSlcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqICAgRXJyb3IgY29kZSBpbiBkYXNoIGNhc2UuXG4gKiBAcmV0dXJucyB7RXJyb3JDb2RlfVxuICogICBFcnJvciBjb2RlIGluIGNhbWVsY2FzZS5cbiAqL1xuZnVuY3Rpb24gY2FtZWxjYXNlKHZhbHVlKSB7XG4gIC8vIFRoaXMgc2hvdWxkIG1hdGNoIGFuIGVycm9yIGNvZGUuXG4gIHJldHVybiAvKiogQHR5cGUge0Vycm9yQ29kZX0gKi8gKHZhbHVlLnJlcGxhY2UoZGFzaFRvQ2FtZWxSZSwgZGFzaFRvQ2FtZWwpKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSAkMFxuICogICBNYXRjaC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIENhbWVsY2FzZWQuXG4gKi9cbmZ1bmN0aW9uIGRhc2hUb0NhbWVsKCQwKSB7XG4gIHJldHVybiAkMC5jaGFyQXQoMSkudG9VcHBlckNhc2UoKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBjaGFyXG4gKiAgIENoYXJhY3Rlci5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEZvcm1hdHRlZC5cbiAqL1xuZnVuY3Rpb24gdmlzdWFsaXplQ2hhcmFjdGVyKGNoYXIpIHtcbiAgcmV0dXJuIGNoYXIgPT09ICdgJyA/ICdgIGAgYCcgOiBjaGFyXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IGNoYXJDb2RlXG4gKiAgIENoYXJhY3RlciBjb2RlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRm9ybWF0dGVkLlxuICovXG5mdW5jdGlvbiB2aXN1YWxpemVDaGFyYWN0ZXJDb2RlKGNoYXJDb2RlKSB7XG4gIHJldHVybiAnMHgnICsgY2hhckNvZGUudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKClcbn1cbiIsICIvKipcbiAqIExpc3Qgb2YgSFRNTCB2b2lkIHRhZyBuYW1lcy5cbiAqXG4gKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn1cbiAqL1xuZXhwb3J0IGNvbnN0IGh0bWxWb2lkRWxlbWVudHMgPSBbXG4gICdhcmVhJyxcbiAgJ2Jhc2UnLFxuICAnYmFzZWZvbnQnLFxuICAnYmdzb3VuZCcsXG4gICdicicsXG4gICdjb2wnLFxuICAnY29tbWFuZCcsXG4gICdlbWJlZCcsXG4gICdmcmFtZScsXG4gICdocicsXG4gICdpbWFnZScsXG4gICdpbWcnLFxuICAnaW5wdXQnLFxuICAna2V5Z2VuJyxcbiAgJ2xpbmsnLFxuICAnbWV0YScsXG4gICdwYXJhbScsXG4gICdzb3VyY2UnLFxuICAndHJhY2snLFxuICAnd2JyJ1xuXVxuIiwgIi8qKlxuICogQGNhbGxiYWNrIEhhbmRsZXJcbiAqICAgSGFuZGxlIGEgdmFsdWUsIHdpdGggYSBjZXJ0YWluIElEIGZpZWxkIHNldCB0byBhIGNlcnRhaW4gdmFsdWUuXG4gKiAgIFRoZSBJRCBmaWVsZCBpcyBwYXNzZWQgdG8gYHp3aXRjaGAsIGFuZCBpdFx1MjAxOXMgdmFsdWUgaXMgdGhpcyBmdW5jdGlvblx1MjAxOXNcbiAqICAgcGxhY2Ugb24gdGhlIGBoYW5kbGVyc2AgcmVjb3JkLlxuICogQHBhcmFtIHsuLi5hbnl9IHBhcmFtZXRlcnNcbiAqICAgQXJiaXRyYXJ5IHBhcmFtZXRlcnMgcGFzc2VkIHRvIHRoZSB6d2l0Y2guXG4gKiAgIFRoZSBmaXJzdCB3aWxsIGJlIGFuIG9iamVjdCB3aXRoIGEgY2VydGFpbiBJRCBmaWVsZCBzZXQgdG8gYSBjZXJ0YWluIHZhbHVlLlxuICogQHJldHVybnMge2FueX1cbiAqICAgQW55dGhpbmchXG4gKi9cblxuLyoqXG4gKiBAY2FsbGJhY2sgVW5rbm93bkhhbmRsZXJcbiAqICAgSGFuZGxlIHZhbHVlcyB0aGF0IGRvIGhhdmUgYSBjZXJ0YWluIElEIGZpZWxkLCBidXQgaXRcdTIwMTlzIHNldCB0byBhIHZhbHVlXG4gKiAgIHRoYXQgaXMgbm90IGxpc3RlZCBpbiB0aGUgYGhhbmRsZXJzYCByZWNvcmQuXG4gKiBAcGFyYW0ge3Vua25vd259IHZhbHVlXG4gKiAgIEFuIG9iamVjdCB3aXRoIGEgY2VydGFpbiBJRCBmaWVsZCBzZXQgdG8gYW4gdW5rbm93biB2YWx1ZS5cbiAqIEBwYXJhbSB7Li4uYW55fSByZXN0XG4gKiAgIEFyYml0cmFyeSBwYXJhbWV0ZXJzIHBhc3NlZCB0byB0aGUgendpdGNoLlxuICogQHJldHVybnMge2FueX1cbiAqICAgQW55dGhpbmchXG4gKi9cblxuLyoqXG4gKiBAY2FsbGJhY2sgSW52YWxpZEhhbmRsZXJcbiAqICAgSGFuZGxlIHZhbHVlcyB0aGF0IGRvIG5vdCBoYXZlIGEgY2VydGFpbiBJRCBmaWVsZC5cbiAqIEBwYXJhbSB7dW5rbm93bn0gdmFsdWVcbiAqICAgQW55IHVua25vd24gdmFsdWUuXG4gKiBAcGFyYW0gey4uLmFueX0gcmVzdFxuICogICBBcmJpdHJhcnkgcGFyYW1ldGVycyBwYXNzZWQgdG8gdGhlIHp3aXRjaC5cbiAqIEByZXR1cm5zIHt2b2lkfG51bGx8dW5kZWZpbmVkfG5ldmVyfVxuICogICBUaGlzIHNob3VsZCBjcmFzaCBvciByZXR1cm4gbm90aGluZy5cbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSB7SW52YWxpZEhhbmRsZXJ9IFtJbnZhbGlkPUludmFsaWRIYW5kbGVyXVxuICogQHRlbXBsYXRlIHtVbmtub3duSGFuZGxlcn0gW1Vua25vd249VW5rbm93bkhhbmRsZXJdXG4gKiBAdGVtcGxhdGUge1JlY29yZDxzdHJpbmcsIEhhbmRsZXI+fSBbSGFuZGxlcnM9UmVjb3JkPHN0cmluZywgSGFuZGxlcj5dXG4gKiBAdHlwZWRlZiBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24gKHJlcXVpcmVkKS5cbiAqIEBwcm9wZXJ0eSB7SW52YWxpZH0gW2ludmFsaWRdXG4gKiAgIEhhbmRsZXIgdG8gdXNlIGZvciBpbnZhbGlkIHZhbHVlcy5cbiAqIEBwcm9wZXJ0eSB7VW5rbm93bn0gW3Vua25vd25dXG4gKiAgIEhhbmRsZXIgdG8gdXNlIGZvciB1bmtub3duIHZhbHVlcy5cbiAqIEBwcm9wZXJ0eSB7SGFuZGxlcnN9IFtoYW5kbGVyc11cbiAqICAgSGFuZGxlcnMgdG8gdXNlLlxuICovXG5cbmNvbnN0IG93biA9IHt9Lmhhc093blByb3BlcnR5XG5cbi8qKlxuICogSGFuZGxlIHZhbHVlcyBiYXNlZCBvbiBhIGZpZWxkLlxuICpcbiAqIEB0ZW1wbGF0ZSB7SW52YWxpZEhhbmRsZXJ9IFtJbnZhbGlkPUludmFsaWRIYW5kbGVyXVxuICogQHRlbXBsYXRlIHtVbmtub3duSGFuZGxlcn0gW1Vua25vd249VW5rbm93bkhhbmRsZXJdXG4gKiBAdGVtcGxhdGUge1JlY29yZDxzdHJpbmcsIEhhbmRsZXI+fSBbSGFuZGxlcnM9UmVjb3JkPHN0cmluZywgSGFuZGxlcj5dXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gKiAgIEZpZWxkIHRvIHN3aXRjaCBvbi5cbiAqIEBwYXJhbSB7T3B0aW9uczxJbnZhbGlkLCBVbmtub3duLCBIYW5kbGVycz59IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uIChyZXF1aXJlZCkuXG4gKiBAcmV0dXJucyB7e3Vua25vd246IFVua25vd24sIGludmFsaWQ6IEludmFsaWQsIGhhbmRsZXJzOiBIYW5kbGVycywgKC4uLnBhcmFtZXRlcnM6IFBhcmFtZXRlcnM8SGFuZGxlcnNba2V5b2YgSGFuZGxlcnNdPik6IFJldHVyblR5cGU8SGFuZGxlcnNba2V5b2YgSGFuZGxlcnNdPiwgKC4uLnBhcmFtZXRlcnM6IFBhcmFtZXRlcnM8VW5rbm93bj4pOiBSZXR1cm5UeXBlPFVua25vd24+fX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHp3aXRjaChrZXksIG9wdGlvbnMpIHtcbiAgY29uc3Qgc2V0dGluZ3MgPSBvcHRpb25zIHx8IHt9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBvbmUgdmFsdWUuXG4gICAqXG4gICAqIEJhc2VkIG9uIHRoZSBib3VuZCBga2V5YCwgYSByZXNwZWN0aXZlIGhhbmRsZXIgd2lsbCBiZSBjYWxsZWQuXG4gICAqIElmIGB2YWx1ZWAgaXMgbm90IGFuIG9iamVjdCwgb3IgZG9lc25cdTIwMTl0IGhhdmUgYSBga2V5YCBwcm9wZXJ0eSwgdGhlIHNwZWNpYWxcbiAgICogXHUyMDFDaW52YWxpZFx1MjAxRCBoYW5kbGVyIHdpbGwgYmUgY2FsbGVkLlxuICAgKiBJZiBgdmFsdWVgIGhhcyBhbiB1bmtub3duIGBrZXlgLCB0aGUgc3BlY2lhbCBcdTIwMUN1bmtub3duXHUyMDFEIGhhbmRsZXIgd2lsbCBiZVxuICAgKiBjYWxsZWQuXG4gICAqXG4gICAqIEFsbCBhcmd1bWVudHMsIGFuZCB0aGUgY29udGV4dCBvYmplY3QsIGFyZSBwYXNzZWQgdGhyb3VnaCB0byB0aGUgaGFuZGxlcixcbiAgICogYW5kIGl0XHUyMDE5cyByZXN1bHQgaXMgcmV0dXJuZWQuXG4gICAqXG4gICAqIEB0aGlzIHt1bmtub3dufVxuICAgKiAgIEFueSBjb250ZXh0IG9iamVjdC5cbiAgICogQHBhcmFtIHt1bmtub3dufSBbdmFsdWVdXG4gICAqICAgQW55IHZhbHVlLlxuICAgKiBAcGFyYW0gey4uLnVua25vd259IHBhcmFtZXRlcnNcbiAgICogICBBcmJpdHJhcnkgcGFyYW1ldGVycyBwYXNzZWQgdG8gdGhlIHp3aXRjaC5cbiAgICogQHByb3BlcnR5IHtIYW5kbGVyfSBpbnZhbGlkXG4gICAqICAgSGFuZGxlIGZvciB2YWx1ZXMgdGhhdCBkbyBub3QgaGF2ZSBhIGNlcnRhaW4gSUQgZmllbGQuXG4gICAqIEBwcm9wZXJ0eSB7SGFuZGxlcn0gdW5rbm93blxuICAgKiAgIEhhbmRsZSB2YWx1ZXMgdGhhdCBkbyBoYXZlIGEgY2VydGFpbiBJRCBmaWVsZCwgYnV0IGl0XHUyMDE5cyBzZXQgdG8gYSB2YWx1ZVxuICAgKiAgIHRoYXQgaXMgbm90IGxpc3RlZCBpbiB0aGUgYGhhbmRsZXJzYCByZWNvcmQuXG4gICAqIEBwcm9wZXJ0eSB7SGFuZGxlcnN9IGhhbmRsZXJzXG4gICAqICAgUmVjb3JkIG9mIGhhbmRsZXJzLlxuICAgKiBAcmV0dXJucyB7dW5rbm93bn1cbiAgICogICBBbnl0aGluZy5cbiAgICovXG4gIGZ1bmN0aW9uIG9uZSh2YWx1ZSwgLi4ucGFyYW1ldGVycykge1xuICAgIC8qKiBAdHlwZSB7SGFuZGxlcnx1bmRlZmluZWR9ICovXG4gICAgbGV0IGZuID0gb25lLmludmFsaWRcbiAgICBjb25zdCBoYW5kbGVycyA9IG9uZS5oYW5kbGVyc1xuXG4gICAgaWYgKHZhbHVlICYmIG93bi5jYWxsKHZhbHVlLCBrZXkpKSB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIEluZGV4YWJsZS5cbiAgICAgIGNvbnN0IGlkID0gU3RyaW5nKHZhbHVlW2tleV0pXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIEluZGV4YWJsZS5cbiAgICAgIGZuID0gb3duLmNhbGwoaGFuZGxlcnMsIGlkKSA/IGhhbmRsZXJzW2lkXSA6IG9uZS51bmtub3duXG4gICAgfVxuXG4gICAgaWYgKGZuKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGlzLCB2YWx1ZSwgLi4ucGFyYW1ldGVycylcbiAgICB9XG4gIH1cblxuICBvbmUuaGFuZGxlcnMgPSBzZXR0aW5ncy5oYW5kbGVycyB8fCB7fVxuICBvbmUuaW52YWxpZCA9IHNldHRpbmdzLmludmFsaWRcbiAgb25lLnVua25vd24gPSBzZXR0aW5ncy51bmtub3duXG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvcjogbWF0Y2hlcyFcbiAgcmV0dXJuIG9uZVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYgQ29yZU9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7QXJyYXk8c3RyaW5nPn0gW3N1YnNldD1bXV1cbiAqICAgV2hldGhlciB0byBvbmx5IGVzY2FwZSB0aGUgZ2l2ZW4gc3Vic2V0IG9mIGNoYXJhY3RlcnMuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFtlc2NhcGVPbmx5PWZhbHNlXVxuICogICBXaGV0aGVyIHRvIG9ubHkgZXNjYXBlIHBvc3NpYmx5IGRhbmdlcm91cyBjaGFyYWN0ZXJzLlxuICogICBUaG9zZSBjaGFyYWN0ZXJzIGFyZSBgXCJgLCBgJmAsIGAnYCwgYDxgLCBgPmAsIGFuZCBgYCBgIGBgLlxuICpcbiAqIEB0eXBlZGVmIEZvcm1hdE9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7KGNvZGU6IG51bWJlciwgbmV4dDogbnVtYmVyLCBvcHRpb25zOiBDb3JlV2l0aEZvcm1hdE9wdGlvbnMpID0+IHN0cmluZ30gZm9ybWF0XG4gKiAgIEZvcm1hdCBzdHJhdGVneS5cbiAqXG4gKiBAdHlwZWRlZiB7Q29yZU9wdGlvbnMgJiBGb3JtYXRPcHRpb25zICYgaW1wb3J0KCcuL3V0aWwvZm9ybWF0LXNtYXJ0LmpzJykuRm9ybWF0U21hcnRPcHRpb25zfSBDb3JlV2l0aEZvcm1hdE9wdGlvbnNcbiAqL1xuXG4vKipcbiAqIEVuY29kZSBjZXJ0YWluIGNoYXJhY3RlcnMgaW4gYHZhbHVlYC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7Q29yZVdpdGhGb3JtYXRPcHRpb25zfSBvcHRpb25zXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29yZSh2YWx1ZSwgb3B0aW9ucykge1xuICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoXG4gICAgb3B0aW9ucy5zdWJzZXQgPyBjaGFyYWN0ZXJzVG9FeHByZXNzaW9uKG9wdGlvbnMuc3Vic2V0KSA6IC9bXCImJzw+YF0vZyxcbiAgICBiYXNpY1xuICApXG5cbiAgaWYgKG9wdGlvbnMuc3Vic2V0IHx8IG9wdGlvbnMuZXNjYXBlT25seSkge1xuICAgIHJldHVybiB2YWx1ZVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICB2YWx1ZVxuICAgICAgLy8gU3Vycm9nYXRlIHBhaXJzLlxuICAgICAgLnJlcGxhY2UoL1tcXHVEODAwLVxcdURCRkZdW1xcdURDMDAtXFx1REZGRl0vZywgc3Vycm9nYXRlKVxuICAgICAgLy8gQk1QIGNvbnRyb2wgY2hhcmFjdGVycyAoQzAgZXhjZXB0IGZvciBMRiwgQ1IsIFNQOyBERUw7IGFuZCBzb21lIG1vcmVcbiAgICAgIC8vIG5vbi1BU0NJSSBvbmVzKS5cbiAgICAgIC5yZXBsYWNlKFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29udHJvbC1yZWdleCwgdW5pY29ybi9uby1oZXgtZXNjYXBlXG4gICAgICAgIC9bXFx4MDEtXFx0XFx2XFxmXFx4MEUtXFx4MUZcXHg3RlxceDgxXFx4OERcXHg4RlxceDkwXFx4OURcXHhBMC1cXHVGRkZGXS9nLFxuICAgICAgICBiYXNpY1xuICAgICAgKVxuICApXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYWlyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWxsXG4gICAqL1xuICBmdW5jdGlvbiBzdXJyb2dhdGUocGFpciwgaW5kZXgsIGFsbCkge1xuICAgIHJldHVybiBvcHRpb25zLmZvcm1hdChcbiAgICAgIChwYWlyLmNoYXJDb2RlQXQoMCkgLSAweGQ4MDApICogMHg0MDAgK1xuICAgICAgICBwYWlyLmNoYXJDb2RlQXQoMSkgLVxuICAgICAgICAweGRjMDAgK1xuICAgICAgICAweDEwMDAwLFxuICAgICAgYWxsLmNoYXJDb2RlQXQoaW5kZXggKyAyKSxcbiAgICAgIG9wdGlvbnNcbiAgICApXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNoYXJhY3RlclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFsbFxuICAgKi9cbiAgZnVuY3Rpb24gYmFzaWMoY2hhcmFjdGVyLCBpbmRleCwgYWxsKSB7XG4gICAgcmV0dXJuIG9wdGlvbnMuZm9ybWF0KFxuICAgICAgY2hhcmFjdGVyLmNoYXJDb2RlQXQoMCksXG4gICAgICBhbGwuY2hhckNvZGVBdChpbmRleCArIDEpLFxuICAgICAgb3B0aW9uc1xuICAgIClcbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gc3Vic2V0XG4gKiBAcmV0dXJucyB7UmVnRXhwfVxuICovXG5mdW5jdGlvbiBjaGFyYWN0ZXJzVG9FeHByZXNzaW9uKHN1YnNldCkge1xuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IGdyb3VwcyA9IFtdXG4gIGxldCBpbmRleCA9IC0xXG5cbiAgd2hpbGUgKCsraW5kZXggPCBzdWJzZXQubGVuZ3RoKSB7XG4gICAgZ3JvdXBzLnB1c2goc3Vic2V0W2luZGV4XS5yZXBsYWNlKC9bfFxcXFx7fSgpW1xcXV4kKyo/Ll0vZywgJ1xcXFwkJicpKVxuICB9XG5cbiAgcmV0dXJuIG5ldyBSZWdFeHAoJyg/OicgKyBncm91cHMuam9pbignfCcpICsgJyknLCAnZycpXG59XG4iLCAiLyoqXG4gKiBDb25maWd1cmFibGUgd2F5cyB0byBlbmNvZGUgY2hhcmFjdGVycyBhcyBoZXhhZGVjaW1hbCByZWZlcmVuY2VzLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBjb2RlXG4gKiBAcGFyYW0ge251bWJlcn0gbmV4dFxuICogQHBhcmFtIHtib29sZWFufHVuZGVmaW5lZH0gb21pdFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSGV4YWRlY2ltYWwoY29kZSwgbmV4dCwgb21pdCkge1xuICBjb25zdCB2YWx1ZSA9ICcmI3gnICsgY29kZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKVxuICByZXR1cm4gb21pdCAmJiBuZXh0ICYmICEvW1xcZEEtRmEtZl0vLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0KSlcbiAgICA/IHZhbHVlXG4gICAgOiB2YWx1ZSArICc7J1xufVxuIiwgIi8qKlxuICogQ29uZmlndXJhYmxlIHdheXMgdG8gZW5jb2RlIGNoYXJhY3RlcnMgYXMgZGVjaW1hbCByZWZlcmVuY2VzLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBjb2RlXG4gKiBAcGFyYW0ge251bWJlcn0gbmV4dFxuICogQHBhcmFtIHtib29sZWFufHVuZGVmaW5lZH0gb21pdFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvRGVjaW1hbChjb2RlLCBuZXh0LCBvbWl0KSB7XG4gIGNvbnN0IHZhbHVlID0gJyYjJyArIFN0cmluZyhjb2RlKVxuICByZXR1cm4gb21pdCAmJiBuZXh0ICYmICEvXFxkLy50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUobmV4dCkpXG4gICAgPyB2YWx1ZVxuICAgIDogdmFsdWUgKyAnOydcbn1cbiIsICIvKipcbiAqIExpc3Qgb2YgbGVnYWN5IEhUTUwgbmFtZWQgY2hhcmFjdGVyIHJlZmVyZW5jZXMgdGhhdCBkb25cdTIwMTl0IG5lZWQgYSB0cmFpbGluZyBzZW1pY29sb24uXG4gKlxuICogQHR5cGUge0FycmF5PHN0cmluZz59XG4gKi9cbmV4cG9ydCBjb25zdCBjaGFyYWN0ZXJFbnRpdGllc0xlZ2FjeSA9IFtcbiAgJ0FFbGlnJyxcbiAgJ0FNUCcsXG4gICdBYWN1dGUnLFxuICAnQWNpcmMnLFxuICAnQWdyYXZlJyxcbiAgJ0FyaW5nJyxcbiAgJ0F0aWxkZScsXG4gICdBdW1sJyxcbiAgJ0NPUFknLFxuICAnQ2NlZGlsJyxcbiAgJ0VUSCcsXG4gICdFYWN1dGUnLFxuICAnRWNpcmMnLFxuICAnRWdyYXZlJyxcbiAgJ0V1bWwnLFxuICAnR1QnLFxuICAnSWFjdXRlJyxcbiAgJ0ljaXJjJyxcbiAgJ0lncmF2ZScsXG4gICdJdW1sJyxcbiAgJ0xUJyxcbiAgJ050aWxkZScsXG4gICdPYWN1dGUnLFxuICAnT2NpcmMnLFxuICAnT2dyYXZlJyxcbiAgJ09zbGFzaCcsXG4gICdPdGlsZGUnLFxuICAnT3VtbCcsXG4gICdRVU9UJyxcbiAgJ1JFRycsXG4gICdUSE9STicsXG4gICdVYWN1dGUnLFxuICAnVWNpcmMnLFxuICAnVWdyYXZlJyxcbiAgJ1V1bWwnLFxuICAnWWFjdXRlJyxcbiAgJ2FhY3V0ZScsXG4gICdhY2lyYycsXG4gICdhY3V0ZScsXG4gICdhZWxpZycsXG4gICdhZ3JhdmUnLFxuICAnYW1wJyxcbiAgJ2FyaW5nJyxcbiAgJ2F0aWxkZScsXG4gICdhdW1sJyxcbiAgJ2JydmJhcicsXG4gICdjY2VkaWwnLFxuICAnY2VkaWwnLFxuICAnY2VudCcsXG4gICdjb3B5JyxcbiAgJ2N1cnJlbicsXG4gICdkZWcnLFxuICAnZGl2aWRlJyxcbiAgJ2VhY3V0ZScsXG4gICdlY2lyYycsXG4gICdlZ3JhdmUnLFxuICAnZXRoJyxcbiAgJ2V1bWwnLFxuICAnZnJhYzEyJyxcbiAgJ2ZyYWMxNCcsXG4gICdmcmFjMzQnLFxuICAnZ3QnLFxuICAnaWFjdXRlJyxcbiAgJ2ljaXJjJyxcbiAgJ2lleGNsJyxcbiAgJ2lncmF2ZScsXG4gICdpcXVlc3QnLFxuICAnaXVtbCcsXG4gICdsYXF1bycsXG4gICdsdCcsXG4gICdtYWNyJyxcbiAgJ21pY3JvJyxcbiAgJ21pZGRvdCcsXG4gICduYnNwJyxcbiAgJ25vdCcsXG4gICdudGlsZGUnLFxuICAnb2FjdXRlJyxcbiAgJ29jaXJjJyxcbiAgJ29ncmF2ZScsXG4gICdvcmRmJyxcbiAgJ29yZG0nLFxuICAnb3NsYXNoJyxcbiAgJ290aWxkZScsXG4gICdvdW1sJyxcbiAgJ3BhcmEnLFxuICAncGx1c21uJyxcbiAgJ3BvdW5kJyxcbiAgJ3F1b3QnLFxuICAncmFxdW8nLFxuICAncmVnJyxcbiAgJ3NlY3QnLFxuICAnc2h5JyxcbiAgJ3N1cDEnLFxuICAnc3VwMicsXG4gICdzdXAzJyxcbiAgJ3N6bGlnJyxcbiAgJ3Rob3JuJyxcbiAgJ3RpbWVzJyxcbiAgJ3VhY3V0ZScsXG4gICd1Y2lyYycsXG4gICd1Z3JhdmUnLFxuICAndW1sJyxcbiAgJ3V1bWwnLFxuICAneWFjdXRlJyxcbiAgJ3llbicsXG4gICd5dW1sJ1xuXVxuIiwgIi8qKlxuICogTWFwIG9mIG5hbWVkIGNoYXJhY3RlciByZWZlcmVuY2VzIGZyb20gSFRNTCA0LlxuICpcbiAqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fVxuICovXG5leHBvcnQgY29uc3QgY2hhcmFjdGVyRW50aXRpZXNIdG1sNCA9IHtcbiAgbmJzcDogJ1x1MDBBMCcsXG4gIGlleGNsOiAnXHUwMEExJyxcbiAgY2VudDogJ1x1MDBBMicsXG4gIHBvdW5kOiAnXHUwMEEzJyxcbiAgY3VycmVuOiAnXHUwMEE0JyxcbiAgeWVuOiAnXHUwMEE1JyxcbiAgYnJ2YmFyOiAnXHUwMEE2JyxcbiAgc2VjdDogJ1x1MDBBNycsXG4gIHVtbDogJ1x1MDBBOCcsXG4gIGNvcHk6ICdcdTAwQTknLFxuICBvcmRmOiAnXHUwMEFBJyxcbiAgbGFxdW86ICdcdTAwQUInLFxuICBub3Q6ICdcdTAwQUMnLFxuICBzaHk6ICdcdTAwQUQnLFxuICByZWc6ICdcdTAwQUUnLFxuICBtYWNyOiAnXHUwMEFGJyxcbiAgZGVnOiAnXHUwMEIwJyxcbiAgcGx1c21uOiAnXHUwMEIxJyxcbiAgc3VwMjogJ1x1MDBCMicsXG4gIHN1cDM6ICdcdTAwQjMnLFxuICBhY3V0ZTogJ1x1MDBCNCcsXG4gIG1pY3JvOiAnXHUwMEI1JyxcbiAgcGFyYTogJ1x1MDBCNicsXG4gIG1pZGRvdDogJ1x1MDBCNycsXG4gIGNlZGlsOiAnXHUwMEI4JyxcbiAgc3VwMTogJ1x1MDBCOScsXG4gIG9yZG06ICdcdTAwQkEnLFxuICByYXF1bzogJ1x1MDBCQicsXG4gIGZyYWMxNDogJ1x1MDBCQycsXG4gIGZyYWMxMjogJ1x1MDBCRCcsXG4gIGZyYWMzNDogJ1x1MDBCRScsXG4gIGlxdWVzdDogJ1x1MDBCRicsXG4gIEFncmF2ZTogJ1x1MDBDMCcsXG4gIEFhY3V0ZTogJ1x1MDBDMScsXG4gIEFjaXJjOiAnXHUwMEMyJyxcbiAgQXRpbGRlOiAnXHUwMEMzJyxcbiAgQXVtbDogJ1x1MDBDNCcsXG4gIEFyaW5nOiAnXHUwMEM1JyxcbiAgQUVsaWc6ICdcdTAwQzYnLFxuICBDY2VkaWw6ICdcdTAwQzcnLFxuICBFZ3JhdmU6ICdcdTAwQzgnLFxuICBFYWN1dGU6ICdcdTAwQzknLFxuICBFY2lyYzogJ1x1MDBDQScsXG4gIEV1bWw6ICdcdTAwQ0InLFxuICBJZ3JhdmU6ICdcdTAwQ0MnLFxuICBJYWN1dGU6ICdcdTAwQ0QnLFxuICBJY2lyYzogJ1x1MDBDRScsXG4gIEl1bWw6ICdcdTAwQ0YnLFxuICBFVEg6ICdcdTAwRDAnLFxuICBOdGlsZGU6ICdcdTAwRDEnLFxuICBPZ3JhdmU6ICdcdTAwRDInLFxuICBPYWN1dGU6ICdcdTAwRDMnLFxuICBPY2lyYzogJ1x1MDBENCcsXG4gIE90aWxkZTogJ1x1MDBENScsXG4gIE91bWw6ICdcdTAwRDYnLFxuICB0aW1lczogJ1x1MDBENycsXG4gIE9zbGFzaDogJ1x1MDBEOCcsXG4gIFVncmF2ZTogJ1x1MDBEOScsXG4gIFVhY3V0ZTogJ1x1MDBEQScsXG4gIFVjaXJjOiAnXHUwMERCJyxcbiAgVXVtbDogJ1x1MDBEQycsXG4gIFlhY3V0ZTogJ1x1MDBERCcsXG4gIFRIT1JOOiAnXHUwMERFJyxcbiAgc3psaWc6ICdcdTAwREYnLFxuICBhZ3JhdmU6ICdcdTAwRTAnLFxuICBhYWN1dGU6ICdcdTAwRTEnLFxuICBhY2lyYzogJ1x1MDBFMicsXG4gIGF0aWxkZTogJ1x1MDBFMycsXG4gIGF1bWw6ICdcdTAwRTQnLFxuICBhcmluZzogJ1x1MDBFNScsXG4gIGFlbGlnOiAnXHUwMEU2JyxcbiAgY2NlZGlsOiAnXHUwMEU3JyxcbiAgZWdyYXZlOiAnXHUwMEU4JyxcbiAgZWFjdXRlOiAnXHUwMEU5JyxcbiAgZWNpcmM6ICdcdTAwRUEnLFxuICBldW1sOiAnXHUwMEVCJyxcbiAgaWdyYXZlOiAnXHUwMEVDJyxcbiAgaWFjdXRlOiAnXHUwMEVEJyxcbiAgaWNpcmM6ICdcdTAwRUUnLFxuICBpdW1sOiAnXHUwMEVGJyxcbiAgZXRoOiAnXHUwMEYwJyxcbiAgbnRpbGRlOiAnXHUwMEYxJyxcbiAgb2dyYXZlOiAnXHUwMEYyJyxcbiAgb2FjdXRlOiAnXHUwMEYzJyxcbiAgb2NpcmM6ICdcdTAwRjQnLFxuICBvdGlsZGU6ICdcdTAwRjUnLFxuICBvdW1sOiAnXHUwMEY2JyxcbiAgZGl2aWRlOiAnXHUwMEY3JyxcbiAgb3NsYXNoOiAnXHUwMEY4JyxcbiAgdWdyYXZlOiAnXHUwMEY5JyxcbiAgdWFjdXRlOiAnXHUwMEZBJyxcbiAgdWNpcmM6ICdcdTAwRkInLFxuICB1dW1sOiAnXHUwMEZDJyxcbiAgeWFjdXRlOiAnXHUwMEZEJyxcbiAgdGhvcm46ICdcdTAwRkUnLFxuICB5dW1sOiAnXHUwMEZGJyxcbiAgZm5vZjogJ1x1MDE5MicsXG4gIEFscGhhOiAnXHUwMzkxJyxcbiAgQmV0YTogJ1x1MDM5MicsXG4gIEdhbW1hOiAnXHUwMzkzJyxcbiAgRGVsdGE6ICdcdTAzOTQnLFxuICBFcHNpbG9uOiAnXHUwMzk1JyxcbiAgWmV0YTogJ1x1MDM5NicsXG4gIEV0YTogJ1x1MDM5NycsXG4gIFRoZXRhOiAnXHUwMzk4JyxcbiAgSW90YTogJ1x1MDM5OScsXG4gIEthcHBhOiAnXHUwMzlBJyxcbiAgTGFtYmRhOiAnXHUwMzlCJyxcbiAgTXU6ICdcdTAzOUMnLFxuICBOdTogJ1x1MDM5RCcsXG4gIFhpOiAnXHUwMzlFJyxcbiAgT21pY3JvbjogJ1x1MDM5RicsXG4gIFBpOiAnXHUwM0EwJyxcbiAgUmhvOiAnXHUwM0ExJyxcbiAgU2lnbWE6ICdcdTAzQTMnLFxuICBUYXU6ICdcdTAzQTQnLFxuICBVcHNpbG9uOiAnXHUwM0E1JyxcbiAgUGhpOiAnXHUwM0E2JyxcbiAgQ2hpOiAnXHUwM0E3JyxcbiAgUHNpOiAnXHUwM0E4JyxcbiAgT21lZ2E6ICdcdTAzQTknLFxuICBhbHBoYTogJ1x1MDNCMScsXG4gIGJldGE6ICdcdTAzQjInLFxuICBnYW1tYTogJ1x1MDNCMycsXG4gIGRlbHRhOiAnXHUwM0I0JyxcbiAgZXBzaWxvbjogJ1x1MDNCNScsXG4gIHpldGE6ICdcdTAzQjYnLFxuICBldGE6ICdcdTAzQjcnLFxuICB0aGV0YTogJ1x1MDNCOCcsXG4gIGlvdGE6ICdcdTAzQjknLFxuICBrYXBwYTogJ1x1MDNCQScsXG4gIGxhbWJkYTogJ1x1MDNCQicsXG4gIG11OiAnXHUwM0JDJyxcbiAgbnU6ICdcdTAzQkQnLFxuICB4aTogJ1x1MDNCRScsXG4gIG9taWNyb246ICdcdTAzQkYnLFxuICBwaTogJ1x1MDNDMCcsXG4gIHJobzogJ1x1MDNDMScsXG4gIHNpZ21hZjogJ1x1MDNDMicsXG4gIHNpZ21hOiAnXHUwM0MzJyxcbiAgdGF1OiAnXHUwM0M0JyxcbiAgdXBzaWxvbjogJ1x1MDNDNScsXG4gIHBoaTogJ1x1MDNDNicsXG4gIGNoaTogJ1x1MDNDNycsXG4gIHBzaTogJ1x1MDNDOCcsXG4gIG9tZWdhOiAnXHUwM0M5JyxcbiAgdGhldGFzeW06ICdcdTAzRDEnLFxuICB1cHNpaDogJ1x1MDNEMicsXG4gIHBpdjogJ1x1MDNENicsXG4gIGJ1bGw6ICdcdTIwMjInLFxuICBoZWxsaXA6ICdcdTIwMjYnLFxuICBwcmltZTogJ1x1MjAzMicsXG4gIFByaW1lOiAnXHUyMDMzJyxcbiAgb2xpbmU6ICdcdTIwM0UnLFxuICBmcmFzbDogJ1x1MjA0NCcsXG4gIHdlaWVycDogJ1x1MjExOCcsXG4gIGltYWdlOiAnXHUyMTExJyxcbiAgcmVhbDogJ1x1MjExQycsXG4gIHRyYWRlOiAnXHUyMTIyJyxcbiAgYWxlZnN5bTogJ1x1MjEzNScsXG4gIGxhcnI6ICdcdTIxOTAnLFxuICB1YXJyOiAnXHUyMTkxJyxcbiAgcmFycjogJ1x1MjE5MicsXG4gIGRhcnI6ICdcdTIxOTMnLFxuICBoYXJyOiAnXHUyMTk0JyxcbiAgY3JhcnI6ICdcdTIxQjUnLFxuICBsQXJyOiAnXHUyMUQwJyxcbiAgdUFycjogJ1x1MjFEMScsXG4gIHJBcnI6ICdcdTIxRDInLFxuICBkQXJyOiAnXHUyMUQzJyxcbiAgaEFycjogJ1x1MjFENCcsXG4gIGZvcmFsbDogJ1x1MjIwMCcsXG4gIHBhcnQ6ICdcdTIyMDInLFxuICBleGlzdDogJ1x1MjIwMycsXG4gIGVtcHR5OiAnXHUyMjA1JyxcbiAgbmFibGE6ICdcdTIyMDcnLFxuICBpc2luOiAnXHUyMjA4JyxcbiAgbm90aW46ICdcdTIyMDknLFxuICBuaTogJ1x1MjIwQicsXG4gIHByb2Q6ICdcdTIyMEYnLFxuICBzdW06ICdcdTIyMTEnLFxuICBtaW51czogJ1x1MjIxMicsXG4gIGxvd2FzdDogJ1x1MjIxNycsXG4gIHJhZGljOiAnXHUyMjFBJyxcbiAgcHJvcDogJ1x1MjIxRCcsXG4gIGluZmluOiAnXHUyMjFFJyxcbiAgYW5nOiAnXHUyMjIwJyxcbiAgYW5kOiAnXHUyMjI3JyxcbiAgb3I6ICdcdTIyMjgnLFxuICBjYXA6ICdcdTIyMjknLFxuICBjdXA6ICdcdTIyMkEnLFxuICBpbnQ6ICdcdTIyMkInLFxuICB0aGVyZTQ6ICdcdTIyMzQnLFxuICBzaW06ICdcdTIyM0MnLFxuICBjb25nOiAnXHUyMjQ1JyxcbiAgYXN5bXA6ICdcdTIyNDgnLFxuICBuZTogJ1x1MjI2MCcsXG4gIGVxdWl2OiAnXHUyMjYxJyxcbiAgbGU6ICdcdTIyNjQnLFxuICBnZTogJ1x1MjI2NScsXG4gIHN1YjogJ1x1MjI4MicsXG4gIHN1cDogJ1x1MjI4MycsXG4gIG5zdWI6ICdcdTIyODQnLFxuICBzdWJlOiAnXHUyMjg2JyxcbiAgc3VwZTogJ1x1MjI4NycsXG4gIG9wbHVzOiAnXHUyMjk1JyxcbiAgb3RpbWVzOiAnXHUyMjk3JyxcbiAgcGVycDogJ1x1MjJBNScsXG4gIHNkb3Q6ICdcdTIyQzUnLFxuICBsY2VpbDogJ1x1MjMwOCcsXG4gIHJjZWlsOiAnXHUyMzA5JyxcbiAgbGZsb29yOiAnXHUyMzBBJyxcbiAgcmZsb29yOiAnXHUyMzBCJyxcbiAgbGFuZzogJ1x1MjMyOScsXG4gIHJhbmc6ICdcdTIzMkEnLFxuICBsb3o6ICdcdTI1Q0EnLFxuICBzcGFkZXM6ICdcdTI2NjAnLFxuICBjbHViczogJ1x1MjY2MycsXG4gIGhlYXJ0czogJ1x1MjY2NScsXG4gIGRpYW1zOiAnXHUyNjY2JyxcbiAgcXVvdDogJ1wiJyxcbiAgYW1wOiAnJicsXG4gIGx0OiAnPCcsXG4gIGd0OiAnPicsXG4gIE9FbGlnOiAnXHUwMTUyJyxcbiAgb2VsaWc6ICdcdTAxNTMnLFxuICBTY2Fyb246ICdcdTAxNjAnLFxuICBzY2Fyb246ICdcdTAxNjEnLFxuICBZdW1sOiAnXHUwMTc4JyxcbiAgY2lyYzogJ1x1MDJDNicsXG4gIHRpbGRlOiAnXHUwMkRDJyxcbiAgZW5zcDogJ1x1MjAwMicsXG4gIGVtc3A6ICdcdTIwMDMnLFxuICB0aGluc3A6ICdcdTIwMDknLFxuICB6d25qOiAnXHUyMDBDJyxcbiAgendqOiAnXHUyMDBEJyxcbiAgbHJtOiAnXHUyMDBFJyxcbiAgcmxtOiAnXHUyMDBGJyxcbiAgbmRhc2g6ICdcdTIwMTMnLFxuICBtZGFzaDogJ1x1MjAxNCcsXG4gIGxzcXVvOiAnXHUyMDE4JyxcbiAgcnNxdW86ICdcdTIwMTknLFxuICBzYnF1bzogJ1x1MjAxQScsXG4gIGxkcXVvOiAnXHUyMDFDJyxcbiAgcmRxdW86ICdcdTIwMUQnLFxuICBiZHF1bzogJ1x1MjAxRScsXG4gIGRhZ2dlcjogJ1x1MjAyMCcsXG4gIERhZ2dlcjogJ1x1MjAyMScsXG4gIHBlcm1pbDogJ1x1MjAzMCcsXG4gIGxzYXF1bzogJ1x1MjAzOScsXG4gIHJzYXF1bzogJ1x1MjAzQScsXG4gIGV1cm86ICdcdTIwQUMnXG59XG4iLCAiLyoqXG4gKiBMaXN0IG9mIGxlZ2FjeSAodGhhdCBkb25cdTIwMTl0IG5lZWQgYSB0cmFpbGluZyBgO2ApIG5hbWVkIHJlZmVyZW5jZXMgd2hpY2ggY291bGQsXG4gKiBkZXBlbmRpbmcgb24gd2hhdCBmb2xsb3dzIHRoZW0sIHR1cm4gaW50byBhIGRpZmZlcmVudCBtZWFuaW5nXG4gKlxuICogQHR5cGUge0FycmF5PHN0cmluZz59XG4gKi9cbmV4cG9ydCBjb25zdCBkYW5nZXJvdXMgPSBbXG4gICdjZW50JyxcbiAgJ2NvcHknLFxuICAnZGl2aWRlJyxcbiAgJ2d0JyxcbiAgJ2x0JyxcbiAgJ25vdCcsXG4gICdwYXJhJyxcbiAgJ3RpbWVzJ1xuXVxuIiwgImltcG9ydCB7Y2hhcmFjdGVyRW50aXRpZXNMZWdhY3l9IGZyb20gJ2NoYXJhY3Rlci1lbnRpdGllcy1sZWdhY3knXG5pbXBvcnQge2NoYXJhY3RlckVudGl0aWVzSHRtbDR9IGZyb20gJ2NoYXJhY3Rlci1lbnRpdGllcy1odG1sNCdcbmltcG9ydCB7ZGFuZ2Vyb3VzfSBmcm9tICcuLi9jb25zdGFudC9kYW5nZXJvdXMuanMnXG5cbmNvbnN0IG93biA9IHt9Lmhhc093blByb3BlcnR5XG5cbi8qKlxuICogYGNoYXJhY3RlckVudGl0aWVzSHRtbDRgIGJ1dCBpbnZlcnRlZC5cbiAqXG4gKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn1cbiAqL1xuY29uc3QgY2hhcmFjdGVycyA9IHt9XG5cbi8qKiBAdHlwZSB7c3RyaW5nfSAqL1xubGV0IGtleVxuXG5mb3IgKGtleSBpbiBjaGFyYWN0ZXJFbnRpdGllc0h0bWw0KSB7XG4gIGlmIChvd24uY2FsbChjaGFyYWN0ZXJFbnRpdGllc0h0bWw0LCBrZXkpKSB7XG4gICAgY2hhcmFjdGVyc1tjaGFyYWN0ZXJFbnRpdGllc0h0bWw0W2tleV1dID0ga2V5XG4gIH1cbn1cblxuLyoqXG4gKiBDb25maWd1cmFibGUgd2F5cyB0byBlbmNvZGUgY2hhcmFjdGVycyBhcyBuYW1lZCByZWZlcmVuY2VzLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBjb2RlXG4gKiBAcGFyYW0ge251bWJlcn0gbmV4dFxuICogQHBhcmFtIHtib29sZWFufHVuZGVmaW5lZH0gb21pdFxuICogQHBhcmFtIHtib29sZWFufHVuZGVmaW5lZH0gYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9OYW1lZChjb2RlLCBuZXh0LCBvbWl0LCBhdHRyaWJ1dGUpIHtcbiAgY29uc3QgY2hhcmFjdGVyID0gU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKVxuXG4gIGlmIChvd24uY2FsbChjaGFyYWN0ZXJzLCBjaGFyYWN0ZXIpKSB7XG4gICAgY29uc3QgbmFtZSA9IGNoYXJhY3RlcnNbY2hhcmFjdGVyXVxuICAgIGNvbnN0IHZhbHVlID0gJyYnICsgbmFtZVxuXG4gICAgaWYgKFxuICAgICAgb21pdCAmJlxuICAgICAgY2hhcmFjdGVyRW50aXRpZXNMZWdhY3kuaW5jbHVkZXMobmFtZSkgJiZcbiAgICAgICFkYW5nZXJvdXMuaW5jbHVkZXMobmFtZSkgJiZcbiAgICAgICghYXR0cmlidXRlIHx8XG4gICAgICAgIChuZXh0ICYmXG4gICAgICAgICAgbmV4dCAhPT0gNjEgLyogYD1gICovICYmXG4gICAgICAgICAgL1teXFxkYS16XS9pLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0KSkpKVxuICAgICkge1xuICAgICAgcmV0dXJuIHZhbHVlXG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlICsgJzsnXG4gIH1cblxuICByZXR1cm4gJydcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIEZvcm1hdFNtYXJ0T3B0aW9uc1xuICogQHByb3BlcnR5IHtib29sZWFufSBbdXNlTmFtZWRSZWZlcmVuY2VzPWZhbHNlXVxuICogICBQcmVmZXIgbmFtZWQgY2hhcmFjdGVyIHJlZmVyZW5jZXMgKGAmYW1wO2ApIHdoZXJlIHBvc3NpYmxlLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbdXNlU2hvcnRlc3RSZWZlcmVuY2VzPWZhbHNlXVxuICogICBQcmVmZXIgdGhlIHNob3J0ZXN0IHBvc3NpYmxlIHJlZmVyZW5jZSwgaWYgdGhhdCByZXN1bHRzIGluIGxlc3MgYnl0ZXMuXG4gKiAgICoqTm90ZSoqOiBgdXNlTmFtZWRSZWZlcmVuY2VzYCBjYW4gYmUgb21pdHRlZCB3aGVuIHVzaW5nIGB1c2VTaG9ydGVzdFJlZmVyZW5jZXNgLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbb21pdE9wdGlvbmFsU2VtaWNvbG9ucz1mYWxzZV1cbiAqICAgV2hldGhlciB0byBvbWl0IHNlbWljb2xvbnMgd2hlbiBwb3NzaWJsZS5cbiAqICAgKipOb3RlKio6IFRoaXMgY3JlYXRlcyB3aGF0IEhUTUwgY2FsbHMgXHUyMDFDcGFyc2UgZXJyb3JzXHUyMDFEIGJ1dCBpcyBvdGhlcndpc2Ugc3RpbGwgdmFsaWQgSFRNTCBcdTIwMTQgZG9uXHUyMDE5dCB1c2UgdGhpcyBleGNlcHQgd2hlbiBidWlsZGluZyBhIG1pbmlmaWVyLlxuICogICBPbWl0dGluZyBzZW1pY29sb25zIGlzIHBvc3NpYmxlIGZvciBjZXJ0YWluIG5hbWVkIGFuZCBudW1lcmljIHJlZmVyZW5jZXMgaW4gc29tZSBjYXNlcy5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW2F0dHJpYnV0ZT1mYWxzZV1cbiAqICAgQ3JlYXRlIGNoYXJhY3RlciByZWZlcmVuY2VzIHdoaWNoIGRvblx1MjAxOXQgZmFpbCBpbiBhdHRyaWJ1dGVzLlxuICogICAqKk5vdGUqKjogYGF0dHJpYnV0ZWAgb25seSBhcHBsaWVzIHdoZW4gb3BlcmF0aW5nIGRhbmdlcm91c2x5IHdpdGhcbiAqICAgYG9taXRPcHRpb25hbFNlbWljb2xvbnM6IHRydWVgLlxuICovXG5cbmltcG9ydCB7dG9IZXhhZGVjaW1hbH0gZnJvbSAnLi90by1oZXhhZGVjaW1hbC5qcydcbmltcG9ydCB7dG9EZWNpbWFsfSBmcm9tICcuL3RvLWRlY2ltYWwuanMnXG5pbXBvcnQge3RvTmFtZWR9IGZyb20gJy4vdG8tbmFtZWQuanMnXG5cbi8qKlxuICogQ29uZmlndXJhYmxlIHdheXMgdG8gZW5jb2RlIGEgY2hhcmFjdGVyIHlpZWxkaW5nIHByZXR0eSBvciBzbWFsbCByZXN1bHRzLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBjb2RlXG4gKiBAcGFyYW0ge251bWJlcn0gbmV4dFxuICogQHBhcmFtIHtGb3JtYXRTbWFydE9wdGlvbnN9IG9wdGlvbnNcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRTbWFydChjb2RlLCBuZXh0LCBvcHRpb25zKSB7XG4gIGxldCBudW1lcmljID0gdG9IZXhhZGVjaW1hbChjb2RlLCBuZXh0LCBvcHRpb25zLm9taXRPcHRpb25hbFNlbWljb2xvbnMpXG4gIC8qKiBAdHlwZSB7c3RyaW5nfHVuZGVmaW5lZH0gKi9cbiAgbGV0IG5hbWVkXG5cbiAgaWYgKG9wdGlvbnMudXNlTmFtZWRSZWZlcmVuY2VzIHx8IG9wdGlvbnMudXNlU2hvcnRlc3RSZWZlcmVuY2VzKSB7XG4gICAgbmFtZWQgPSB0b05hbWVkKFxuICAgICAgY29kZSxcbiAgICAgIG5leHQsXG4gICAgICBvcHRpb25zLm9taXRPcHRpb25hbFNlbWljb2xvbnMsXG4gICAgICBvcHRpb25zLmF0dHJpYnV0ZVxuICAgIClcbiAgfVxuXG4gIC8vIFVzZSB0aGUgc2hvcnRlc3QgbnVtZXJpYyByZWZlcmVuY2Ugd2hlbiByZXF1ZXN0ZWQuXG4gIC8vIEEgc2ltcGxlIGFsZ29yaXRobSB3b3VsZCB1c2UgZGVjaW1hbCBmb3IgYWxsIGNvZGUgcG9pbnRzIHVuZGVyIDEwMCwgYXNcbiAgLy8gdGhvc2UgYXJlIHNob3J0ZXIgdGhhbiBoZXhhZGVjaW1hbDpcbiAgLy9cbiAgLy8gKiBgJiM5OTtgIHZzIGAmI3g2MztgIChkZWNpbWFsIHNob3J0ZXIpXG4gIC8vICogYCYjMTAwO2AgdnMgYCYjeDY0O2AgKGVxdWFsKVxuICAvL1xuICAvLyBIb3dldmVyLCBiZWNhdXNlIHdlIHRha2UgYG5leHRgIGludG8gY29uc2lkZXJhdGlvbiB3aGVuIGBvbWl0YCBpcyB1c2VkLFxuICAvLyBBbmQgaXQgd291bGQgYmUgcG9zc2libGUgdGhhdCBkZWNpbWFscyBhcmUgc2hvcnRlciBvbiBiaWdnZXIgdmFsdWVzIGFzXG4gIC8vIHdlbGwgaWYgYG5leHRgIGlzIGhleGFkZWNpbWFsIGJ1dCBub3QgZGVjaW1hbCwgd2UgaW5zdGVhZCBjb21wYXJlIGJvdGguXG4gIGlmIChcbiAgICAob3B0aW9ucy51c2VTaG9ydGVzdFJlZmVyZW5jZXMgfHwgIW5hbWVkKSAmJlxuICAgIG9wdGlvbnMudXNlU2hvcnRlc3RSZWZlcmVuY2VzXG4gICkge1xuICAgIGNvbnN0IGRlY2ltYWwgPSB0b0RlY2ltYWwoY29kZSwgbmV4dCwgb3B0aW9ucy5vbWl0T3B0aW9uYWxTZW1pY29sb25zKVxuXG4gICAgaWYgKGRlY2ltYWwubGVuZ3RoIDwgbnVtZXJpYy5sZW5ndGgpIHtcbiAgICAgIG51bWVyaWMgPSBkZWNpbWFsXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5hbWVkICYmXG4gICAgKCFvcHRpb25zLnVzZVNob3J0ZXN0UmVmZXJlbmNlcyB8fCBuYW1lZC5sZW5ndGggPCBudW1lcmljLmxlbmd0aClcbiAgICA/IG5hbWVkXG4gICAgOiBudW1lcmljXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2NvcmUuanMnKS5Db3JlT3B0aW9ucyAmIGltcG9ydCgnLi91dGlsL2Zvcm1hdC1zbWFydC5qcycpLkZvcm1hdFNtYXJ0T3B0aW9uc30gT3B0aW9uc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9jb3JlLmpzJykuQ29yZU9wdGlvbnN9IExpZ2h0T3B0aW9uc1xuICovXG5cbmltcG9ydCB7Y29yZX0gZnJvbSAnLi9jb3JlLmpzJ1xuaW1wb3J0IHtmb3JtYXRTbWFydH0gZnJvbSAnLi91dGlsL2Zvcm1hdC1zbWFydC5qcydcbmltcG9ydCB7Zm9ybWF0QmFzaWN9IGZyb20gJy4vdXRpbC9mb3JtYXQtYmFzaWMuanMnXG5cbi8qKlxuICogRW5jb2RlIHNwZWNpYWwgY2hhcmFjdGVycyBpbiBgdmFsdWVgLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBWYWx1ZSB0byBlbmNvZGUuXG4gKiBAcGFyYW0ge09wdGlvbnN9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRW5jb2RlZCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeUVudGl0aWVzKHZhbHVlLCBvcHRpb25zKSB7XG4gIHJldHVybiBjb3JlKHZhbHVlLCBPYmplY3QuYXNzaWduKHtmb3JtYXQ6IGZvcm1hdFNtYXJ0fSwgb3B0aW9ucykpXG59XG5cbi8qKlxuICogRW5jb2RlIHNwZWNpYWwgY2hhcmFjdGVycyBpbiBgdmFsdWVgIGFzIGhleGFkZWNpbWFscy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqICAgVmFsdWUgdG8gZW5jb2RlLlxuICogQHBhcmFtIHtMaWdodE9wdGlvbnN9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRW5jb2RlZCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeUVudGl0aWVzTGlnaHQodmFsdWUsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGNvcmUodmFsdWUsIE9iamVjdC5hc3NpZ24oe2Zvcm1hdDogZm9ybWF0QmFzaWN9LCBvcHRpb25zKSlcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Db21tZW50fSBDb21tZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuaW1wb3J0IHtzdHJpbmdpZnlFbnRpdGllc30gZnJvbSAnc3RyaW5naWZ5LWVudGl0aWVzJ1xuXG4vKipcbiAqIFNlcmlhbGl6ZSBhIGNvbW1lbnQuXG4gKlxuICogQHBhcmFtIHtDb21tZW50fSBub2RlXG4gKiAgIE5vZGUgdG8gaGFuZGxlLlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IF8xXG4gKiAgIEluZGV4IG9mIGBub2RlYCBpbiBgcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBfMlxuICogICBQYXJlbnQgb2YgYG5vZGVgLlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tbWVudChub2RlLCBfMSwgXzIsIHN0YXRlKSB7XG4gIC8vIFNlZTogPGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI2NvbW1lbnRzPlxuICByZXR1cm4gc3RhdGUuc2V0dGluZ3MuYm9ndXNDb21tZW50c1xuICAgID8gJzw/JyArXG4gICAgICAgIHN0cmluZ2lmeUVudGl0aWVzKFxuICAgICAgICAgIG5vZGUudmFsdWUsXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcywge3N1YnNldDogWyc+J119KVxuICAgICAgICApICtcbiAgICAgICAgJz4nXG4gICAgOiAnPCEtLScgKyBub2RlLnZhbHVlLnJlcGxhY2UoL14+fF4tPnw8IS0tfC0tPnwtLSE+fDwhLSQvZywgZW5jb2RlKSArICctLT4nXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSAkMFxuICAgKi9cbiAgZnVuY3Rpb24gZW5jb2RlKCQwKSB7XG4gICAgcmV0dXJuIHN0cmluZ2lmeUVudGl0aWVzKFxuICAgICAgJDAsXG4gICAgICBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLCB7XG4gICAgICAgIHN1YnNldDogWyc8JywgJz4nXVxuICAgICAgfSlcbiAgICApXG4gIH1cbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Eb2N0eXBlfSBEb2N0eXBlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuLy8gTWFrZSBWUyBjb2RlIHNlZSByZWZlcmVuY2VzIHRvIHRoZSBhYm92ZSB0eXBlcy5cbicnXG5cbi8qKlxuICogU2VyaWFsaXplIGEgZG9jdHlwZS5cbiAqXG4gKiBAcGFyYW0ge0RvY3R5cGV9IF8xXG4gKiAgIE5vZGUgdG8gaGFuZGxlLlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IF8yXG4gKiAgIEluZGV4IG9mIGBub2RlYCBpbiBgcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBfM1xuICogICBQYXJlbnQgb2YgYG5vZGVgLlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZG9jdHlwZShfMSwgXzIsIF8zLCBzdGF0ZSkge1xuICByZXR1cm4gKFxuICAgICc8IScgK1xuICAgIChzdGF0ZS5zZXR0aW5ncy51cHBlckRvY3R5cGUgPyAnRE9DVFlQRScgOiAnZG9jdHlwZScpICtcbiAgICAoc3RhdGUuc2V0dGluZ3MudGlnaHREb2N0eXBlID8gJycgOiAnICcpICtcbiAgICAnaHRtbD4nXG4gIClcbn1cbiIsICIvKipcbiAqIENvdW50IGhvdyBvZnRlbiBhIGNoYXJhY3RlciAob3Igc3Vic3RyaW5nKSBpcyB1c2VkIGluIGEgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBWYWx1ZSB0byBzZWFyY2ggaW4uXG4gKiBAcGFyYW0ge3N0cmluZ30gY2hhcmFjdGVyXG4gKiAgIENoYXJhY3RlciAob3Igc3Vic3RyaW5nKSB0byBsb29rIGZvci5cbiAqIEByZXR1cm4ge251bWJlcn1cbiAqICAgTnVtYmVyIG9mIHRpbWVzIGBjaGFyYWN0ZXJgIG9jY3VycmVkIGluIGB2YWx1ZWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjY291bnQodmFsdWUsIGNoYXJhY3Rlcikge1xuICBjb25zdCBzb3VyY2UgPSBTdHJpbmcodmFsdWUpXG5cbiAgaWYgKHR5cGVvZiBjaGFyYWN0ZXIgIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgY2hhcmFjdGVyJylcbiAgfVxuXG4gIGxldCBjb3VudCA9IDBcbiAgbGV0IGluZGV4ID0gc291cmNlLmluZGV4T2YoY2hhcmFjdGVyKVxuXG4gIHdoaWxlIChpbmRleCAhPT0gLTEpIHtcbiAgICBjb3VudCsrXG4gICAgaW5kZXggPSBzb3VyY2UuaW5kZXhPZihjaGFyYWN0ZXIsIGluZGV4ICsgY2hhcmFjdGVyLmxlbmd0aClcbiAgfVxuXG4gIHJldHVybiBjb3VudFxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLk5vZGVzfSBOb2Rlc1xuICovXG5cbi8vIEhUTUwgd2hpdGVzcGFjZSBleHByZXNzaW9uLlxuLy8gU2VlIDxodHRwczovL2luZnJhLnNwZWMud2hhdHdnLm9yZy8jYXNjaWktd2hpdGVzcGFjZT4uXG5jb25zdCByZSA9IC9bIFxcdFxcblxcZlxccl0vZ1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyAqaW50ZXItZWxlbWVudCB3aGl0ZXNwYWNlKi5cbiAqXG4gKiBAcGFyYW0ge05vZGVzIHwgc3RyaW5nfSB0aGluZ1xuICogICBUaGluZyB0byBjaGVjayAoYE5vZGVgIG9yIGBzdHJpbmdgKS5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBgdmFsdWVgIGlzIGludGVyLWVsZW1lbnQgd2hpdGVzcGFjZSAoYGJvb2xlYW5gKTogY29uc2lzdGluZyBvZlxuICogICB6ZXJvIG9yIG1vcmUgb2Ygc3BhY2UsIHRhYiAoYFxcdGApLCBsaW5lIGZlZWQgKGBcXG5gKSwgY2FycmlhZ2UgcmV0dXJuXG4gKiAgIChgXFxyYCksIG9yIGZvcm0gZmVlZCAoYFxcZmApOyBpZiBhIG5vZGUgaXMgcGFzc2VkIGl0IG11c3QgYmUgYSBgVGV4dGAgbm9kZSxcbiAqICAgd2hvc2UgYHZhbHVlYCBmaWVsZCBpcyBjaGVja2VkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gd2hpdGVzcGFjZSh0aGluZykge1xuICByZXR1cm4gdHlwZW9mIHRoaW5nID09PSAnb2JqZWN0J1xuICAgID8gdGhpbmcudHlwZSA9PT0gJ3RleHQnXG4gICAgICA/IGVtcHR5KHRoaW5nLnZhbHVlKVxuICAgICAgOiBmYWxzZVxuICAgIDogZW1wdHkodGhpbmcpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gZW1wdHkodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlLnJlcGxhY2UocmUsICcnKSA9PT0gJydcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUm9vdENvbnRlbnR9IFJvb3RDb250ZW50XG4gKi9cblxuaW1wb3J0IHt3aGl0ZXNwYWNlfSBmcm9tICdoYXN0LXV0aWwtd2hpdGVzcGFjZSdcblxuZXhwb3J0IGNvbnN0IHNpYmxpbmdBZnRlciA9IHNpYmxpbmdzKDEpXG5leHBvcnQgY29uc3Qgc2libGluZ0JlZm9yZSA9IHNpYmxpbmdzKC0xKVxuXG4vKiogQHR5cGUge0FycmF5PFJvb3RDb250ZW50Pn0gKi9cbmNvbnN0IGVtcHR5Q2hpbGRyZW4gPSBbXVxuXG4vKipcbiAqIEZhY3RvcnkgdG8gY2hlY2sgc2libGluZ3MgaW4gYSBkaXJlY3Rpb24uXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IGluY3JlbWVudFxuICovXG5mdW5jdGlvbiBzaWJsaW5ncyhpbmNyZW1lbnQpIHtcbiAgcmV0dXJuIHNpYmxpbmdcblxuICAvKipcbiAgICogRmluZCBhcHBsaWNhYmxlIHNpYmxpbmdzIGluIGEgZGlyZWN0aW9uLlxuICAgKlxuICAgKiBAdGVtcGxhdGUge1BhcmVudHN9IFBhcmVudFxuICAgKiAgIFBhcmVudCB0eXBlLlxuICAgKiBAcGFyYW0ge1BhcmVudCB8IHVuZGVmaW5lZH0gcGFyZW50XG4gICAqICAgUGFyZW50LlxuICAgKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAgICogICBJbmRleCBvZiBjaGlsZCBpbiBgcGFyZW50YC5cbiAgICogQHBhcmFtIHtib29sZWFuIHwgdW5kZWZpbmVkfSBbaW5jbHVkZVdoaXRlc3BhY2U9ZmFsc2VdXG4gICAqICAgV2hldGhlciB0byBpbmNsdWRlIHdoaXRlc3BhY2UgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICAgKiBAcmV0dXJucyB7UGFyZW50IGV4dGVuZHMge2NoaWxkcmVuOiBBcnJheTxpbmZlciBDaGlsZD59ID8gQ2hpbGQgfCB1bmRlZmluZWQgOiBuZXZlcn1cbiAgICogICBDaGlsZCBvZiBwYXJlbnQuXG4gICAqL1xuICBmdW5jdGlvbiBzaWJsaW5nKHBhcmVudCwgaW5kZXgsIGluY2x1ZGVXaGl0ZXNwYWNlKSB7XG4gICAgY29uc3Qgc2libGluZ3MgPSBwYXJlbnQgPyBwYXJlbnQuY2hpbGRyZW4gOiBlbXB0eUNoaWxkcmVuXG4gICAgbGV0IG9mZnNldCA9IChpbmRleCB8fCAwKSArIGluY3JlbWVudFxuICAgIGxldCBuZXh0ID0gc2libGluZ3Nbb2Zmc2V0XVxuXG4gICAgaWYgKCFpbmNsdWRlV2hpdGVzcGFjZSkge1xuICAgICAgd2hpbGUgKG5leHQgJiYgd2hpdGVzcGFjZShuZXh0KSkge1xuICAgICAgICBvZmZzZXQgKz0gaW5jcmVtZW50XG4gICAgICAgIG5leHQgPSBzaWJsaW5nc1tvZmZzZXRdXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogaXRcdTIwMTlzIGEgY29ycmVjdCBjaGlsZC5cbiAgICByZXR1cm4gbmV4dFxuICB9XG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudH0gRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqL1xuXG4vKipcbiAqIEBjYWxsYmFjayBPbWl0SGFuZGxlXG4gKiAgIENoZWNrIGlmIGEgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICogQHBhcmFtIHtFbGVtZW50fSBlbGVtZW50XG4gKiAgIEVsZW1lbnQgdG8gY2hlY2suXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRvIG9taXQgYSB0YWcuXG4gKlxuICovXG5cbmNvbnN0IG93biA9IHt9Lmhhc093blByb3BlcnR5XG5cbi8qKlxuICogRmFjdG9yeSB0byBjaGVjayBpZiBhIGdpdmVuIG5vZGUgY2FuIGhhdmUgYSB0YWcgb21pdHRlZC5cbiAqXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIE9taXRIYW5kbGU+fSBoYW5kbGVyc1xuICogICBPbWlzc2lvbiBoYW5kbGVycywgd2hlcmUgZWFjaCBrZXkgaXMgYSB0YWcgbmFtZSwgYW5kIGVhY2ggdmFsdWUgaXMgdGhlXG4gKiAgIGNvcnJlc3BvbmRpbmcgaGFuZGxlci5cbiAqIEByZXR1cm5zIHtPbWl0SGFuZGxlfVxuICogICBXaGV0aGVyIHRvIG9taXQgYSB0YWcgb2YgYW4gZWxlbWVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9taXNzaW9uKGhhbmRsZXJzKSB7XG4gIHJldHVybiBvbWl0XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGEgZ2l2ZW4gbm9kZSBjYW4gaGF2ZSBhIHRhZyBvbWl0dGVkLlxuICAgKlxuICAgKiBAdHlwZSB7T21pdEhhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9taXQobm9kZSwgaW5kZXgsIHBhcmVudCkge1xuICAgIHJldHVybiAoXG4gICAgICBvd24uY2FsbChoYW5kbGVycywgbm9kZS50YWdOYW1lKSAmJlxuICAgICAgaGFuZGxlcnNbbm9kZS50YWdOYW1lXShub2RlLCBpbmRleCwgcGFyZW50KVxuICAgIClcbiAgfVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkVsZW1lbnR9IEVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKi9cblxuaW1wb3J0IHt3aGl0ZXNwYWNlfSBmcm9tICdoYXN0LXV0aWwtd2hpdGVzcGFjZSdcbmltcG9ydCB7c2libGluZ0FmdGVyfSBmcm9tICcuL3V0aWwvc2libGluZ3MuanMnXG5pbXBvcnQge29taXNzaW9ufSBmcm9tICcuL29taXNzaW9uLmpzJ1xuXG5leHBvcnQgY29uc3QgY2xvc2luZyA9IG9taXNzaW9uKHtcbiAgYm9keSxcbiAgY2FwdGlvbjogaGVhZE9yQ29sZ3JvdXBPckNhcHRpb24sXG4gIGNvbGdyb3VwOiBoZWFkT3JDb2xncm91cE9yQ2FwdGlvbixcbiAgZGQsXG4gIGR0LFxuICBoZWFkOiBoZWFkT3JDb2xncm91cE9yQ2FwdGlvbixcbiAgaHRtbCxcbiAgbGksXG4gIG9wdGdyb3VwLFxuICBvcHRpb24sXG4gIHAsXG4gIHJwOiBydWJ5RWxlbWVudCxcbiAgcnQ6IHJ1YnlFbGVtZW50LFxuICB0Ym9keSxcbiAgdGQ6IGNlbGxzLFxuICB0Zm9vdCxcbiAgdGg6IGNlbGxzLFxuICB0aGVhZCxcbiAgdHJcbn0pXG5cbi8qKlxuICogTWFjcm8gZm9yIGA8L2hlYWQ+YCwgYDwvY29sZ3JvdXA+YCwgYW5kIGA8L2NhcHRpb24+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBoZWFkT3JDb2xncm91cE9yQ2FwdGlvbihfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleCwgdHJ1ZSlcbiAgcmV0dXJuIChcbiAgICAhbmV4dCB8fFxuICAgIChuZXh0LnR5cGUgIT09ICdjb21tZW50JyAmJlxuICAgICAgIShuZXh0LnR5cGUgPT09ICd0ZXh0JyAmJiB3aGl0ZXNwYWNlKG5leHQudmFsdWUuY2hhckF0KDApKSkpXG4gIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvaHRtbD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGh0bWwoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiAhbmV4dCB8fCBuZXh0LnR5cGUgIT09ICdjb21tZW50J1xufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC9ib2R5PmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gYm9keShfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuICFuZXh0IHx8IG5leHQudHlwZSAhPT0gJ2NvbW1lbnQnXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L3A+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBwKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gbmV4dFxuICAgID8gbmV4dC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgICAgKG5leHQudGFnTmFtZSA9PT0gJ2FkZHJlc3MnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnYXJ0aWNsZScgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdhc2lkZScgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdibG9ja3F1b3RlJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2RldGFpbHMnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnZGl2JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2RsJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2ZpZWxkc2V0JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2ZpZ2NhcHRpb24nIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnZmlndXJlJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2Zvb3RlcicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdmb3JtJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2gxJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2gyJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2gzJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2g0JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2g1JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2g2JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2hlYWRlcicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdoZ3JvdXAnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnaHInIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnbWFpbicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdtZW51JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ25hdicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdvbCcgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdwJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ3ByZScgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdzZWN0aW9uJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ3RhYmxlJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ3VsJylcbiAgICA6ICFwYXJlbnQgfHxcbiAgICAgICAgLy8gQ29uZnVzaW5nIHBhcmVudC5cbiAgICAgICAgIShcbiAgICAgICAgICBwYXJlbnQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAgICAgKHBhcmVudC50YWdOYW1lID09PSAnYScgfHxcbiAgICAgICAgICAgIHBhcmVudC50YWdOYW1lID09PSAnYXVkaW8nIHx8XG4gICAgICAgICAgICBwYXJlbnQudGFnTmFtZSA9PT0gJ2RlbCcgfHxcbiAgICAgICAgICAgIHBhcmVudC50YWdOYW1lID09PSAnaW5zJyB8fFxuICAgICAgICAgICAgcGFyZW50LnRhZ05hbWUgPT09ICdtYXAnIHx8XG4gICAgICAgICAgICBwYXJlbnQudGFnTmFtZSA9PT0gJ25vc2NyaXB0JyB8fFxuICAgICAgICAgICAgcGFyZW50LnRhZ05hbWUgPT09ICd2aWRlbycpXG4gICAgICAgIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvbGk+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBsaShfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuICFuZXh0IHx8IChuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJiBuZXh0LnRhZ05hbWUgPT09ICdsaScpXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L2R0PmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gZHQoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiBCb29sZWFuKFxuICAgIG5leHQgJiZcbiAgICAgIG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAobmV4dC50YWdOYW1lID09PSAnZHQnIHx8IG5leHQudGFnTmFtZSA9PT0gJ2RkJylcbiAgKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC9kZD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGRkKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gKFxuICAgICFuZXh0IHx8XG4gICAgKG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAobmV4dC50YWdOYW1lID09PSAnZHQnIHx8IG5leHQudGFnTmFtZSA9PT0gJ2RkJykpXG4gIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvcnQ+YCBvciBgPC9ycD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIHJ1YnlFbGVtZW50KF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gKFxuICAgICFuZXh0IHx8XG4gICAgKG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAobmV4dC50YWdOYW1lID09PSAncnAnIHx8IG5leHQudGFnTmFtZSA9PT0gJ3J0JykpXG4gIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvb3B0Z3JvdXA+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBvcHRncm91cChfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuICFuZXh0IHx8IChuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJiBuZXh0LnRhZ05hbWUgPT09ICdvcHRncm91cCcpXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L29wdGlvbj5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIG9wdGlvbihfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuIChcbiAgICAhbmV4dCB8fFxuICAgIChuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgKG5leHQudGFnTmFtZSA9PT0gJ29wdGlvbicgfHwgbmV4dC50YWdOYW1lID09PSAnb3B0Z3JvdXAnKSlcbiAgKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC90aGVhZD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIHRoZWFkKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gQm9vbGVhbihcbiAgICBuZXh0ICYmXG4gICAgICBuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgKG5leHQudGFnTmFtZSA9PT0gJ3Rib2R5JyB8fCBuZXh0LnRhZ05hbWUgPT09ICd0Zm9vdCcpXG4gIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvdGJvZHk+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiB0Ym9keShfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuIChcbiAgICAhbmV4dCB8fFxuICAgIChuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgKG5leHQudGFnTmFtZSA9PT0gJ3Rib2R5JyB8fCBuZXh0LnRhZ05hbWUgPT09ICd0Zm9vdCcpKVxuICApXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L3Rmb290PmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gdGZvb3QoXywgaW5kZXgsIHBhcmVudCkge1xuICByZXR1cm4gIXNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC90cj5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIHRyKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gIW5leHQgfHwgKG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmIG5leHQudGFnTmFtZSA9PT0gJ3RyJylcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvdGQ+YCBvciBgPC90aD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGNlbGxzKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gKFxuICAgICFuZXh0IHx8XG4gICAgKG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAobmV4dC50YWdOYW1lID09PSAndGQnIHx8IG5leHQudGFnTmFtZSA9PT0gJ3RoJykpXG4gIClcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50fSBFbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICovXG5cbmltcG9ydCB7d2hpdGVzcGFjZX0gZnJvbSAnaGFzdC11dGlsLXdoaXRlc3BhY2UnXG5pbXBvcnQge3NpYmxpbmdBZnRlciwgc2libGluZ0JlZm9yZX0gZnJvbSAnLi91dGlsL3NpYmxpbmdzLmpzJ1xuaW1wb3J0IHtjbG9zaW5nfSBmcm9tICcuL2Nsb3NpbmcuanMnXG5pbXBvcnQge29taXNzaW9ufSBmcm9tICcuL29taXNzaW9uLmpzJ1xuXG5leHBvcnQgY29uc3Qgb3BlbmluZyA9IG9taXNzaW9uKHtcbiAgYm9keSxcbiAgY29sZ3JvdXAsXG4gIGhlYWQsXG4gIGh0bWwsXG4gIHRib2R5XG59KVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPGh0bWw+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IG5vZGVcbiAqICAgRWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBvcGVuaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gaHRtbChub2RlKSB7XG4gIGNvbnN0IGhlYWQgPSBzaWJsaW5nQWZ0ZXIobm9kZSwgLTEpXG4gIHJldHVybiAhaGVhZCB8fCBoZWFkLnR5cGUgIT09ICdjb21tZW50J1xufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPGhlYWQ+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IG5vZGVcbiAqICAgRWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBvcGVuaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gaGVhZChub2RlKSB7XG4gIGNvbnN0IGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlblxuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IHNlZW4gPSBbXVxuICBsZXQgaW5kZXggPSAtMVxuXG4gIHdoaWxlICgrK2luZGV4IDwgY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgY29uc3QgY2hpbGQgPSBjaGlsZHJlbltpbmRleF1cbiAgICBpZiAoXG4gICAgICBjaGlsZC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgIChjaGlsZC50YWdOYW1lID09PSAndGl0bGUnIHx8IGNoaWxkLnRhZ05hbWUgPT09ICdiYXNlJylcbiAgICApIHtcbiAgICAgIGlmIChzZWVuLmluY2x1ZGVzKGNoaWxkLnRhZ05hbWUpKSByZXR1cm4gZmFsc2VcbiAgICAgIHNlZW4ucHVzaChjaGlsZC50YWdOYW1lKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjaGlsZHJlbi5sZW5ndGggPiAwXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8Ym9keT5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gbm9kZVxuICogICBFbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIG9wZW5pbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBib2R5KG5vZGUpIHtcbiAgY29uc3QgaGVhZCA9IHNpYmxpbmdBZnRlcihub2RlLCAtMSwgdHJ1ZSlcblxuICByZXR1cm4gKFxuICAgICFoZWFkIHx8XG4gICAgKGhlYWQudHlwZSAhPT0gJ2NvbW1lbnQnICYmXG4gICAgICAhKGhlYWQudHlwZSA9PT0gJ3RleHQnICYmIHdoaXRlc3BhY2UoaGVhZC52YWx1ZS5jaGFyQXQoMCkpKSAmJlxuICAgICAgIShcbiAgICAgICAgaGVhZC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgICAgKGhlYWQudGFnTmFtZSA9PT0gJ21ldGEnIHx8XG4gICAgICAgICAgaGVhZC50YWdOYW1lID09PSAnbGluaycgfHxcbiAgICAgICAgICBoZWFkLnRhZ05hbWUgPT09ICdzY3JpcHQnIHx8XG4gICAgICAgICAgaGVhZC50YWdOYW1lID09PSAnc3R5bGUnIHx8XG4gICAgICAgICAgaGVhZC50YWdOYW1lID09PSAndGVtcGxhdGUnKVxuICAgICAgKSlcbiAgKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPGNvbGdyb3VwPmAuXG4gKiBUaGUgc3BlYyBkZXNjcmliZXMgc29tZSBsb2dpYyBmb3IgdGhlIG9wZW5pbmcgdGFnLCBidXQgaXRcdTIwMTlzIGVhc2llciB0b1xuICogaW1wbGVtZW50IGluIHRoZSBjbG9zaW5nIHRhZywgdG8gdGhlIHNhbWUgZWZmZWN0LCBzbyB3ZSBoYW5kbGUgaXQgdGhlcmVcbiAqIGluc3RlYWQuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBub2RlXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBvcGVuaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gY29sZ3JvdXAobm9kZSwgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBwcmV2aW91cyA9IHNpYmxpbmdCZWZvcmUocGFyZW50LCBpbmRleClcbiAgY29uc3QgaGVhZCA9IHNpYmxpbmdBZnRlcihub2RlLCAtMSwgdHJ1ZSlcblxuICAvLyBQcmV2aW91cyBjb2xncm91cCB3YXMgYWxyZWFkeSBvbWl0dGVkLlxuICBpZiAoXG4gICAgcGFyZW50ICYmXG4gICAgcHJldmlvdXMgJiZcbiAgICBwcmV2aW91cy50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICBwcmV2aW91cy50YWdOYW1lID09PSAnY29sZ3JvdXAnICYmXG4gICAgY2xvc2luZyhwcmV2aW91cywgcGFyZW50LmNoaWxkcmVuLmluZGV4T2YocHJldmlvdXMpLCBwYXJlbnQpXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIEJvb2xlYW4oaGVhZCAmJiBoZWFkLnR5cGUgPT09ICdlbGVtZW50JyAmJiBoZWFkLnRhZ05hbWUgPT09ICdjb2wnKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPHRib2R5PmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBub2RlXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBvcGVuaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gdGJvZHkobm9kZSwgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBwcmV2aW91cyA9IHNpYmxpbmdCZWZvcmUocGFyZW50LCBpbmRleClcbiAgY29uc3QgaGVhZCA9IHNpYmxpbmdBZnRlcihub2RlLCAtMSlcblxuICAvLyBQcmV2aW91cyB0YWJsZSBzZWN0aW9uIHdhcyBhbHJlYWR5IG9taXR0ZWQuXG4gIGlmIChcbiAgICBwYXJlbnQgJiZcbiAgICBwcmV2aW91cyAmJlxuICAgIHByZXZpb3VzLnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgIChwcmV2aW91cy50YWdOYW1lID09PSAndGhlYWQnIHx8IHByZXZpb3VzLnRhZ05hbWUgPT09ICd0Ym9keScpICYmXG4gICAgY2xvc2luZyhwcmV2aW91cywgcGFyZW50LmNoaWxkcmVuLmluZGV4T2YocHJldmlvdXMpLCBwYXJlbnQpXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIEJvb2xlYW4oaGVhZCAmJiBoZWFkLnR5cGUgPT09ICdlbGVtZW50JyAmJiBoZWFkLnRhZ05hbWUgPT09ICd0cicpXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudH0gRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Qcm9wZXJ0aWVzfSBQcm9wZXJ0aWVzXG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vaW5kZXguanMnKS5TdGF0ZX0gU3RhdGVcbiAqL1xuXG5pbXBvcnQge2Njb3VudH0gZnJvbSAnY2NvdW50J1xuaW1wb3J0IHtzdHJpbmdpZnkgYXMgY29tbWFzfSBmcm9tICdjb21tYS1zZXBhcmF0ZWQtdG9rZW5zJ1xuaW1wb3J0IHtmaW5kLCBzdmd9IGZyb20gJ3Byb3BlcnR5LWluZm9ybWF0aW9uJ1xuaW1wb3J0IHtzdHJpbmdpZnkgYXMgc3BhY2VzfSBmcm9tICdzcGFjZS1zZXBhcmF0ZWQtdG9rZW5zJ1xuaW1wb3J0IHtzdHJpbmdpZnlFbnRpdGllc30gZnJvbSAnc3RyaW5naWZ5LWVudGl0aWVzJ1xuaW1wb3J0IHtjbG9zaW5nfSBmcm9tICcuLi9vbWlzc2lvbi9jbG9zaW5nLmpzJ1xuaW1wb3J0IHtvcGVuaW5nfSBmcm9tICcuLi9vbWlzc2lvbi9vcGVuaW5nLmpzJ1xuXG4vKipcbiAqIE1hcHMgb2Ygc3Vic2V0cy5cbiAqXG4gKiBFYWNoIHZhbHVlIGlzIGEgbWF0cml4IG9mIHR1cGxlcy5cbiAqIFRoZSB2YWx1ZSBhdCBgMGAgY2F1c2VzIHBhcnNlIGVycm9ycywgdGhlIHZhbHVlIGF0IGAxYCBpcyB2YWxpZC5cbiAqIE9mIGJvdGgsIHRoZSB2YWx1ZSBhdCBgMGAgaXMgdW5zYWZlLCBhbmQgdGhlIHZhbHVlIGF0IGAxYCBpcyBzYWZlLlxuICpcbiAqIEB0eXBlIHtSZWNvcmQ8J2RvdWJsZScgfCAnbmFtZScgfCAnc2luZ2xlJyB8ICd1bnF1b3RlZCcsIEFycmF5PFtBcnJheTxzdHJpbmc+LCBBcnJheTxzdHJpbmc+XT4+fVxuICovXG5jb25zdCBjb25zdGFudHMgPSB7XG4gIC8vIFNlZTogPGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2F0dHJpYnV0ZS1uYW1lLXN0YXRlPi5cbiAgbmFtZTogW1xuICAgIFsnXFx0XFxuXFxmXFxyICYvPT4nLnNwbGl0KCcnKSwgJ1xcdFxcblxcZlxcciBcIiZcXCcvPT5gJy5zcGxpdCgnJyldLFxuICAgIFsnXFwwXFx0XFxuXFxmXFxyIFwiJlxcJy88PT4nLnNwbGl0KCcnKSwgJ1xcMFxcdFxcblxcZlxcciBcIiZcXCcvPD0+YCcuc3BsaXQoJycpXVxuICBdLFxuICAvLyBTZWU6IDxodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNhdHRyaWJ1dGUtdmFsdWUtKHVucXVvdGVkKS1zdGF0ZT4uXG4gIHVucXVvdGVkOiBbXG4gICAgWydcXHRcXG5cXGZcXHIgJj4nLnNwbGl0KCcnKSwgJ1xcMFxcdFxcblxcZlxcciBcIiZcXCc8PT5gJy5zcGxpdCgnJyldLFxuICAgIFsnXFwwXFx0XFxuXFxmXFxyIFwiJlxcJzw9PmAnLnNwbGl0KCcnKSwgJ1xcMFxcdFxcblxcZlxcciBcIiZcXCc8PT5gJy5zcGxpdCgnJyldXG4gIF0sXG4gIC8vIFNlZTogPGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2F0dHJpYnV0ZS12YWx1ZS0oc2luZ2xlLXF1b3RlZCktc3RhdGU+LlxuICBzaW5nbGU6IFtcbiAgICBbXCImJ1wiLnNwbGl0KCcnKSwgJ1wiJlxcJ2AnLnNwbGl0KCcnKV0sXG4gICAgW1wiXFwwJidcIi5zcGxpdCgnJyksICdcXDBcIiZcXCdgJy5zcGxpdCgnJyldXG4gIF0sXG4gIC8vIFNlZTogPGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2F0dHJpYnV0ZS12YWx1ZS0oZG91YmxlLXF1b3RlZCktc3RhdGU+LlxuICBkb3VibGU6IFtcbiAgICBbJ1wiJicuc3BsaXQoJycpLCAnXCImXFwnYCcuc3BsaXQoJycpXSxcbiAgICBbJ1xcMFwiJicuc3BsaXQoJycpLCAnXFwwXCImXFwnYCcuc3BsaXQoJycpXVxuICBdXG59XG5cbi8qKlxuICogU2VyaWFsaXplIGFuIGVsZW1lbnQgbm9kZS5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IG5vZGVcbiAqICAgTm9kZSB0byBoYW5kbGUuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgYG5vZGVgIGluIGBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgYG5vZGVgLlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZWxlbWVudChub2RlLCBpbmRleCwgcGFyZW50LCBzdGF0ZSkge1xuICBjb25zdCBzY2hlbWEgPSBzdGF0ZS5zY2hlbWFcbiAgY29uc3Qgb21pdCA9IHNjaGVtYS5zcGFjZSA9PT0gJ3N2ZycgPyBmYWxzZSA6IHN0YXRlLnNldHRpbmdzLm9taXRPcHRpb25hbFRhZ3NcbiAgbGV0IHNlbGZDbG9zaW5nID1cbiAgICBzY2hlbWEuc3BhY2UgPT09ICdzdmcnXG4gICAgICA/IHN0YXRlLnNldHRpbmdzLmNsb3NlRW1wdHlFbGVtZW50c1xuICAgICAgOiBzdGF0ZS5zZXR0aW5ncy52b2lkcy5pbmNsdWRlcyhub2RlLnRhZ05hbWUudG9Mb3dlckNhc2UoKSlcbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICBjb25zdCBwYXJ0cyA9IFtdXG4gIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICBsZXQgbGFzdFxuXG4gIGlmIChzY2hlbWEuc3BhY2UgPT09ICdodG1sJyAmJiBub2RlLnRhZ05hbWUgPT09ICdzdmcnKSB7XG4gICAgc3RhdGUuc2NoZW1hID0gc3ZnXG4gIH1cblxuICBjb25zdCBhdHRycyA9IHNlcmlhbGl6ZUF0dHJpYnV0ZXMoc3RhdGUsIG5vZGUucHJvcGVydGllcylcblxuICBjb25zdCBjb250ZW50ID0gc3RhdGUuYWxsKFxuICAgIHNjaGVtYS5zcGFjZSA9PT0gJ2h0bWwnICYmIG5vZGUudGFnTmFtZSA9PT0gJ3RlbXBsYXRlJyA/IG5vZGUuY29udGVudCA6IG5vZGVcbiAgKVxuXG4gIHN0YXRlLnNjaGVtYSA9IHNjaGVtYVxuXG4gIC8vIElmIHRoZSBub2RlIGlzIGNhdGVnb3Jpc2VkIGFzIHZvaWQsIGJ1dCBpdCBoYXMgY2hpbGRyZW4sIHJlbW92ZSB0aGVcbiAgLy8gY2F0ZWdvcmlzYXRpb24uXG4gIC8vIFRoaXMgZW5hYmxlcyBmb3IgZXhhbXBsZSBgbWVudWl0ZW1gcywgd2hpY2ggYXJlIHZvaWQgaW4gVzNDIEhUTUwgYnV0IG5vdFxuICAvLyB2b2lkIGluIFdIQVRXRyBIVE1MLCB0byBiZSBzdHJpbmdpZmllZCBwcm9wZXJseS5cbiAgLy8gTm90ZTogYG1lbnVpdGVtYCBoYXMgc2luY2UgYmVlbiByZW1vdmVkIGZyb20gdGhlIEhUTUwgc3BlYywgYW5kIHNvIGlzIG5vXG4gIC8vIGxvbmdlciB2b2lkLlxuICBpZiAoY29udGVudCkgc2VsZkNsb3NpbmcgPSBmYWxzZVxuXG4gIGlmIChhdHRycyB8fCAhb21pdCB8fCAhb3BlbmluZyhub2RlLCBpbmRleCwgcGFyZW50KSkge1xuICAgIHBhcnRzLnB1c2goJzwnLCBub2RlLnRhZ05hbWUsIGF0dHJzID8gJyAnICsgYXR0cnMgOiAnJylcblxuICAgIGlmIChcbiAgICAgIHNlbGZDbG9zaW5nICYmXG4gICAgICAoc2NoZW1hLnNwYWNlID09PSAnc3ZnJyB8fCBzdGF0ZS5zZXR0aW5ncy5jbG9zZVNlbGZDbG9zaW5nKVxuICAgICkge1xuICAgICAgbGFzdCA9IGF0dHJzLmNoYXJBdChhdHRycy5sZW5ndGggLSAxKVxuICAgICAgaWYgKFxuICAgICAgICAhc3RhdGUuc2V0dGluZ3MudGlnaHRTZWxmQ2xvc2luZyB8fFxuICAgICAgICBsYXN0ID09PSAnLycgfHxcbiAgICAgICAgKGxhc3QgJiYgbGFzdCAhPT0gJ1wiJyAmJiBsYXN0ICE9PSBcIidcIilcbiAgICAgICkge1xuICAgICAgICBwYXJ0cy5wdXNoKCcgJylcbiAgICAgIH1cblxuICAgICAgcGFydHMucHVzaCgnLycpXG4gICAgfVxuXG4gICAgcGFydHMucHVzaCgnPicpXG4gIH1cblxuICBwYXJ0cy5wdXNoKGNvbnRlbnQpXG5cbiAgaWYgKCFzZWxmQ2xvc2luZyAmJiAoIW9taXQgfHwgIWNsb3Npbmcobm9kZSwgaW5kZXgsIHBhcmVudCkpKSB7XG4gICAgcGFydHMucHVzaCgnPC8nICsgbm9kZS50YWdOYW1lICsgJz4nKVxuICB9XG5cbiAgcmV0dXJuIHBhcnRzLmpvaW4oJycpXG59XG5cbi8qKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqIEBwYXJhbSB7UHJvcGVydGllcyB8IG51bGwgfCB1bmRlZmluZWR9IHByb3BzXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBzZXJpYWxpemVBdHRyaWJ1dGVzKHN0YXRlLCBwcm9wcykge1xuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IHZhbHVlcyA9IFtdXG4gIGxldCBpbmRleCA9IC0xXG4gIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICBsZXQga2V5XG5cbiAgaWYgKHByb3BzKSB7XG4gICAgZm9yIChrZXkgaW4gcHJvcHMpIHtcbiAgICAgIGlmIChwcm9wc1trZXldICE9PSBudWxsICYmIHByb3BzW2tleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHNlcmlhbGl6ZUF0dHJpYnV0ZShzdGF0ZSwga2V5LCBwcm9wc1trZXldKVxuICAgICAgICBpZiAodmFsdWUpIHZhbHVlcy5wdXNoKHZhbHVlKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHdoaWxlICgrK2luZGV4IDwgdmFsdWVzLmxlbmd0aCkge1xuICAgIGNvbnN0IGxhc3QgPSBzdGF0ZS5zZXR0aW5ncy50aWdodEF0dHJpYnV0ZXNcbiAgICAgID8gdmFsdWVzW2luZGV4XS5jaGFyQXQodmFsdWVzW2luZGV4XS5sZW5ndGggLSAxKVxuICAgICAgOiB1bmRlZmluZWRcblxuICAgIC8vIEluIHRpZ2h0IG1vZGUsIGRvblx1MjAxOXQgYWRkIGEgc3BhY2UgYWZ0ZXIgcXVvdGVkIGF0dHJpYnV0ZXMuXG4gICAgaWYgKGluZGV4ICE9PSB2YWx1ZXMubGVuZ3RoIC0gMSAmJiBsYXN0ICE9PSAnXCInICYmIGxhc3QgIT09IFwiJ1wiKSB7XG4gICAgICB2YWx1ZXNbaW5kZXhdICs9ICcgJ1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2YWx1ZXMuam9pbignJylcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICogQHBhcmFtIHtQcm9wZXJ0aWVzW2tleW9mIFByb3BlcnRpZXNdfSB2YWx1ZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gc2VyaWFsaXplQXR0cmlidXRlKHN0YXRlLCBrZXksIHZhbHVlKSB7XG4gIGNvbnN0IGluZm8gPSBmaW5kKHN0YXRlLnNjaGVtYSwga2V5KVxuICBjb25zdCB4ID1cbiAgICBzdGF0ZS5zZXR0aW5ncy5hbGxvd1BhcnNlRXJyb3JzICYmIHN0YXRlLnNjaGVtYS5zcGFjZSA9PT0gJ2h0bWwnID8gMCA6IDFcbiAgY29uc3QgeSA9IHN0YXRlLnNldHRpbmdzLmFsbG93RGFuZ2Vyb3VzQ2hhcmFjdGVycyA/IDAgOiAxXG4gIGxldCBxdW90ZSA9IHN0YXRlLnF1b3RlXG4gIC8qKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgcmVzdWx0XG5cbiAgaWYgKGluZm8ub3ZlcmxvYWRlZEJvb2xlYW4gJiYgKHZhbHVlID09PSBpbmZvLmF0dHJpYnV0ZSB8fCB2YWx1ZSA9PT0gJycpKSB7XG4gICAgdmFsdWUgPSB0cnVlXG4gIH0gZWxzZSBpZiAoXG4gICAgaW5mby5ib29sZWFuIHx8XG4gICAgKGluZm8ub3ZlcmxvYWRlZEJvb2xlYW4gJiYgdHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJylcbiAgKSB7XG4gICAgdmFsdWUgPSBCb29sZWFuKHZhbHVlKVxuICB9XG5cbiAgaWYgKFxuICAgIHZhbHVlID09PSBudWxsIHx8XG4gICAgdmFsdWUgPT09IHVuZGVmaW5lZCB8fFxuICAgIHZhbHVlID09PSBmYWxzZSB8fFxuICAgICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmIE51bWJlci5pc05hTih2YWx1ZSkpXG4gICkge1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgY29uc3QgbmFtZSA9IHN0cmluZ2lmeUVudGl0aWVzKFxuICAgIGluZm8uYXR0cmlidXRlLFxuICAgIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMsIHtcbiAgICAgIC8vIEFsd2F5cyBlbmNvZGUgd2l0aG91dCBwYXJzZSBlcnJvcnMgaW4gbm9uLUhUTUwuXG4gICAgICBzdWJzZXQ6IGNvbnN0YW50cy5uYW1lW3hdW3ldXG4gICAgfSlcbiAgKVxuXG4gIC8vIE5vIHZhbHVlLlxuICAvLyBUaGVyZSBpcyBjdXJyZW50bHkgb25seSBvbmUgYm9vbGVhbiBwcm9wZXJ0eSBpbiBTVkc6IGBbZG93bmxvYWRdYCBvblxuICAvLyBgPGE+YC5cbiAgLy8gVGhpcyBwcm9wZXJ0eSBkb2VzIG5vdCBzZWVtIHRvIHdvcmsgaW4gYnJvd3NlcnMgKEZpcmVmb3gsIFNhZmFyaSwgQ2hyb21lKSxcbiAgLy8gc28gSSBjYW5cdTIwMTl0IHRlc3QgaWYgZHJvcHBpbmcgdGhlIHZhbHVlIHdvcmtzLlxuICAvLyBCdXQgSSBhc3N1bWUgdGhhdCBpdCBzaG91bGQ6XG4gIC8vXG4gIC8vIGBgYGh0bWxcbiAgLy8gPCFkb2N0eXBlIGh0bWw+XG4gIC8vIDxzdmcgdmlld0JveD1cIjAgMCAxMDAgMTAwXCI+XG4gIC8vICAgPGEgaHJlZj1odHRwczovL2V4YW1wbGUuY29tIGRvd25sb2FkPlxuICAvLyAgICAgPGNpcmNsZSBjeD01MCBjeT00MCByPTM1IC8+XG4gIC8vICAgPC9hPlxuICAvLyA8L3N2Zz5cbiAgLy8gYGBgXG4gIC8vXG4gIC8vIFNlZTogPGh0dHBzOi8vZ2l0aHViLmNvbS93b29vcm0vcHJvcGVydHktaW5mb3JtYXRpb24vYmxvYi9tYWluL2xpYi9zdmcuanM+XG4gIGlmICh2YWx1ZSA9PT0gdHJ1ZSkgcmV0dXJuIG5hbWVcblxuICAvLyBgc3BhY2VzYCBkb2Vzblx1MjAxOXQgYWNjZXB0IGEgc2Vjb25kIGFyZ3VtZW50LCBidXQgaXRcdTIwMTlzIGdpdmVuIGhlcmUganVzdCB0b1xuICAvLyBrZWVwIHRoZSBjb2RlIGNsZWFuZXIuXG4gIHZhbHVlID0gQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICA/IChpbmZvLmNvbW1hU2VwYXJhdGVkID8gY29tbWFzIDogc3BhY2VzKSh2YWx1ZSwge1xuICAgICAgICBwYWRMZWZ0OiAhc3RhdGUuc2V0dGluZ3MudGlnaHRDb21tYVNlcGFyYXRlZExpc3RzXG4gICAgICB9KVxuICAgIDogU3RyaW5nKHZhbHVlKVxuXG4gIGlmIChzdGF0ZS5zZXR0aW5ncy5jb2xsYXBzZUVtcHR5QXR0cmlidXRlcyAmJiAhdmFsdWUpIHJldHVybiBuYW1lXG5cbiAgLy8gQ2hlY2sgdW5xdW90ZWQgdmFsdWUuXG4gIGlmIChzdGF0ZS5zZXR0aW5ncy5wcmVmZXJVbnF1b3RlZCkge1xuICAgIHJlc3VsdCA9IHN0cmluZ2lmeUVudGl0aWVzKFxuICAgICAgdmFsdWUsXG4gICAgICBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLCB7XG4gICAgICAgIGF0dHJpYnV0ZTogdHJ1ZSxcbiAgICAgICAgc3Vic2V0OiBjb25zdGFudHMudW5xdW90ZWRbeF1beV1cbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgLy8gSWYgd2UgZG9uXHUyMDE5dCB3YW50IHVucXVvdGVkLCBvciBpZiBgdmFsdWVgIGNvbnRhaW5zIGNoYXJhY3RlciByZWZlcmVuY2VzIHdoZW5cbiAgLy8gdW5xdW90ZWRcdTIwMjZcbiAgaWYgKHJlc3VsdCAhPT0gdmFsdWUpIHtcbiAgICAvLyBJZiB0aGUgYWx0ZXJuYXRpdmUgaXMgbGVzcyBjb21tb24gdGhhbiBgcXVvdGVgLCBzd2l0Y2guXG4gICAgaWYgKFxuICAgICAgc3RhdGUuc2V0dGluZ3MucXVvdGVTbWFydCAmJlxuICAgICAgY2NvdW50KHZhbHVlLCBxdW90ZSkgPiBjY291bnQodmFsdWUsIHN0YXRlLmFsdGVybmF0aXZlKVxuICAgICkge1xuICAgICAgcXVvdGUgPSBzdGF0ZS5hbHRlcm5hdGl2ZVxuICAgIH1cblxuICAgIHJlc3VsdCA9XG4gICAgICBxdW90ZSArXG4gICAgICBzdHJpbmdpZnlFbnRpdGllcyhcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMsIHtcbiAgICAgICAgICAvLyBBbHdheXMgZW5jb2RlIHdpdGhvdXQgcGFyc2UgZXJyb3JzIGluIG5vbi1IVE1MLlxuICAgICAgICAgIHN1YnNldDogKHF1b3RlID09PSBcIidcIiA/IGNvbnN0YW50cy5zaW5nbGUgOiBjb25zdGFudHMuZG91YmxlKVt4XVt5XSxcbiAgICAgICAgICBhdHRyaWJ1dGU6IHRydWVcbiAgICAgICAgfSlcbiAgICAgICkgK1xuICAgICAgcXVvdGVcbiAgfVxuXG4gIC8vIERvblx1MjAxOXQgYWRkIGEgYD1gIGZvciB1bnF1b3RlZCBlbXB0aWVzLlxuICByZXR1cm4gbmFtZSArIChyZXN1bHQgPyAnPScgKyByZXN1bHQgOiByZXN1bHQpXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlRleHR9IFRleHRcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdC11dGlsLXRvLWhhc3QnKS5SYXd9IFJhd1xuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuaW1wb3J0IHtzdHJpbmdpZnlFbnRpdGllc30gZnJvbSAnc3RyaW5naWZ5LWVudGl0aWVzJ1xuXG4vKipcbiAqIFNlcmlhbGl6ZSBhIHRleHQgbm9kZS5cbiAqXG4gKiBAcGFyYW0ge1JhdyB8IFRleHR9IG5vZGVcbiAqICAgTm9kZSB0byBoYW5kbGUuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gX1xuICogICBJbmRleCBvZiBgbm9kZWAgaW4gYHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBgbm9kZWAuXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0ZXh0KG5vZGUsIF8sIHBhcmVudCwgc3RhdGUpIHtcbiAgLy8gQ2hlY2sgaWYgY29udGVudCBvZiBgbm9kZWAgc2hvdWxkIGJlIGVzY2FwZWQuXG4gIHJldHVybiBwYXJlbnQgJiZcbiAgICBwYXJlbnQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgKHBhcmVudC50YWdOYW1lID09PSAnc2NyaXB0JyB8fCBwYXJlbnQudGFnTmFtZSA9PT0gJ3N0eWxlJylcbiAgICA/IG5vZGUudmFsdWVcbiAgICA6IHN0cmluZ2lmeUVudGl0aWVzKFxuICAgICAgICBub2RlLnZhbHVlLFxuICAgICAgICBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLCB7XG4gICAgICAgICAgc3Vic2V0OiBbJzwnLCAnJiddXG4gICAgICAgIH0pXG4gICAgICApXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0LXV0aWwtdG8taGFzdCcpLlJhd30gUmF3XG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vaW5kZXguanMnKS5TdGF0ZX0gU3RhdGVcbiAqL1xuXG5pbXBvcnQge3RleHR9IGZyb20gJy4vdGV4dC5qcydcblxuLyoqXG4gKiBTZXJpYWxpemUgYSByYXcgbm9kZS5cbiAqXG4gKiBAcGFyYW0ge1Jhd30gbm9kZVxuICogICBOb2RlIHRvIGhhbmRsZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBgbm9kZWAgaW4gYHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBgbm9kZWAuXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByYXcobm9kZSwgaW5kZXgsIHBhcmVudCwgc3RhdGUpIHtcbiAgcmV0dXJuIHN0YXRlLnNldHRpbmdzLmFsbG93RGFuZ2Vyb3VzSHRtbFxuICAgID8gbm9kZS52YWx1ZVxuICAgIDogdGV4dChub2RlLCBpbmRleCwgcGFyZW50LCBzdGF0ZSlcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUm9vdH0gUm9vdFxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuLy8gTWFrZSBWUyBjb2RlIHNlZSByZWZlcmVuY2VzIHRvIHRoZSBhYm92ZSB0eXBlcy5cbicnXG5cbi8qKlxuICogU2VyaWFsaXplIGEgcm9vdC5cbiAqXG4gKiBAcGFyYW0ge1Jvb3R9IG5vZGVcbiAqICAgTm9kZSB0byBoYW5kbGUuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gXzFcbiAqICAgSW5kZXggb2YgYG5vZGVgIGluIGBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IF8yXG4gKiAgIFBhcmVudCBvZiBgbm9kZWAuXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByb290KG5vZGUsIF8xLCBfMiwgc3RhdGUpIHtcbiAgcmV0dXJuIHN0YXRlLmFsbChub2RlKVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLk5vZGVzfSBOb2Rlc1xuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9pbmRleC5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbmltcG9ydCB7endpdGNofSBmcm9tICd6d2l0Y2gnXG5pbXBvcnQge2NvbW1lbnR9IGZyb20gJy4vY29tbWVudC5qcydcbmltcG9ydCB7ZG9jdHlwZX0gZnJvbSAnLi9kb2N0eXBlLmpzJ1xuaW1wb3J0IHtlbGVtZW50fSBmcm9tICcuL2VsZW1lbnQuanMnXG5pbXBvcnQge3Jhd30gZnJvbSAnLi9yYXcuanMnXG5pbXBvcnQge3Jvb3R9IGZyb20gJy4vcm9vdC5qcydcbmltcG9ydCB7dGV4dH0gZnJvbSAnLi90ZXh0LmpzJ1xuXG4vKipcbiAqIEB0eXBlIHsobm9kZTogTm9kZXMsIGluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQsIHBhcmVudDogUGFyZW50cyB8IHVuZGVmaW5lZCwgc3RhdGU6IFN0YXRlKSA9PiBzdHJpbmd9XG4gKi9cbmV4cG9ydCBjb25zdCBoYW5kbGUgPSB6d2l0Y2goJ3R5cGUnLCB7XG4gIGludmFsaWQsXG4gIHVua25vd24sXG4gIGhhbmRsZXJzOiB7Y29tbWVudCwgZG9jdHlwZSwgZWxlbWVudCwgcmF3LCByb290LCB0ZXh0fVxufSlcblxuLyoqXG4gKiBGYWlsIHdoZW4gYSBub24tbm9kZSBpcyBmb3VuZCBpbiB0aGUgdHJlZS5cbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IG5vZGVcbiAqICAgVW5rbm93biB2YWx1ZS5cbiAqIEByZXR1cm5zIHtuZXZlcn1cbiAqICAgTmV2ZXIuXG4gKi9cbmZ1bmN0aW9uIGludmFsaWQobm9kZSkge1xuICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIG5vZGUsIG5vdCBgJyArIG5vZGUgKyAnYCcpXG59XG5cbi8qKlxuICogRmFpbCB3aGVuIGEgbm9kZSB3aXRoIGFuIHVua25vd24gdHlwZSBpcyBmb3VuZCBpbiB0aGUgdHJlZS5cbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IG5vZGVfXG4gKiAgVW5rbm93biBub2RlLlxuICogQHJldHVybnMge25ldmVyfVxuICogICBOZXZlci5cbiAqL1xuZnVuY3Rpb24gdW5rbm93bihub2RlXykge1xuICAvLyBgdHlwZWAgaXMgZ3VhcmFudGVlZCBieSBydW50aW1lIEpTLlxuICBjb25zdCBub2RlID0gLyoqIEB0eXBlIHtOb2Rlc30gKi8gKG5vZGVfKVxuICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBjb21waWxlIHVua25vd24gbm9kZSBgJyArIG5vZGUudHlwZSArICdgJylcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Ob2Rlc30gTm9kZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUm9vdENvbnRlbnR9IFJvb3RDb250ZW50XG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgncHJvcGVydHktaW5mb3JtYXRpb24nKS5TY2hlbWF9IFNjaGVtYVxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3N0cmluZ2lmeS1lbnRpdGllcycpLk9wdGlvbnN9IFN0cmluZ2lmeUVudGl0aWVzT3B0aW9uc1xuICovXG5cbi8qKlxuICogQHR5cGVkZWYge09taXQ8U3RyaW5naWZ5RW50aXRpZXNPcHRpb25zLCAnYXR0cmlidXRlJyB8ICdlc2NhcGVPbmx5JyB8ICdzdWJzZXQnPn0gQ2hhcmFjdGVyUmVmZXJlbmNlc1xuICpcbiAqIEB0eXBlZGVmIE9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFthbGxvd0Rhbmdlcm91c0NoYXJhY3RlcnM9ZmFsc2VdXG4gKiAgIERvIG5vdCBlbmNvZGUgc29tZSBjaGFyYWN0ZXJzIHdoaWNoIGNhdXNlIFhTUyB2dWxuZXJhYmlsaXRpZXMgaW4gb2xkZXJcbiAqICAgYnJvd3NlcnMgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgPiBcdTI2QTBcdUZFMEYgKipEYW5nZXIqKjogb25seSBzZXQgdGhpcyBpZiB5b3UgY29tcGxldGVseSB0cnVzdCB0aGUgY29udGVudC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFthbGxvd0Rhbmdlcm91c0h0bWw9ZmFsc2VdXG4gKiAgIEFsbG93IGByYXdgIG5vZGVzIGFuZCBpbnNlcnQgdGhlbSBhcyByYXcgSFRNTCAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICBXaGVuIGBmYWxzZWAsIGBSYXdgIG5vZGVzIGFyZSBlbmNvZGVkLlxuICpcbiAqICAgPiBcdTI2QTBcdUZFMEYgKipEYW5nZXIqKjogb25seSBzZXQgdGhpcyBpZiB5b3UgY29tcGxldGVseSB0cnVzdCB0aGUgY29udGVudC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFthbGxvd1BhcnNlRXJyb3JzPWZhbHNlXVxuICogICBEbyBub3QgZW5jb2RlIGNoYXJhY3RlcnMgd2hpY2ggY2F1c2UgcGFyc2UgZXJyb3JzIChldmVuIHRob3VnaCB0aGV5IHdvcmspLFxuICogICB0byBzYXZlIGJ5dGVzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBTVkcgc3BhY2UuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogaW50ZW50aW9uYWxseSBjcmVhdGVzIHBhcnNlIGVycm9ycyBpbiBtYXJrdXAgKGhvdyBwYXJzZVxuICogICA+IGVycm9ycyBhcmUgaGFuZGxlZCBpcyB3ZWxsIGRlZmluZWQsIHNvIHRoaXMgd29ya3MgYnV0IGlzblx1MjAxOXQgcHJldHR5KS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtib2d1c0NvbW1lbnRzPWZhbHNlXVxuICogICBVc2UgXHUyMDFDYm9ndXMgY29tbWVudHNcdTIwMUQgaW5zdGVhZCBvZiBjb21tZW50cyB0byBzYXZlIGJ5ZXM6IGA8P2NoYXJsaWU+YFxuICogICBpbnN0ZWFkIG9mIGA8IS0tY2hhcmxpZS0tPmAgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IGludGVudGlvbmFsbHkgY3JlYXRlcyBwYXJzZSBlcnJvcnMgaW4gbWFya3VwIChob3cgcGFyc2VcbiAqICAgPiBlcnJvcnMgYXJlIGhhbmRsZWQgaXMgd2VsbCBkZWZpbmVkLCBzbyB0aGlzIHdvcmtzIGJ1dCBpc25cdTIwMTl0IHByZXR0eSkuXG4gKiBAcHJvcGVydHkge0NoYXJhY3RlclJlZmVyZW5jZXMgfCBudWxsIHwgdW5kZWZpbmVkfSBbY2hhcmFjdGVyUmVmZXJlbmNlc11cbiAqICAgQ29uZmlndXJlIGhvdyB0byBzZXJpYWxpemUgY2hhcmFjdGVyIHJlZmVyZW5jZXMgKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtjbG9zZUVtcHR5RWxlbWVudHM9ZmFsc2VdXG4gKiAgIENsb3NlIFNWRyBlbGVtZW50cyB3aXRob3V0IGFueSBjb250ZW50IHdpdGggc2xhc2ggKGAvYCkgb24gdGhlIG9wZW5pbmcgdGFnXG4gKiAgIGluc3RlYWQgb2YgYW4gZW5kIHRhZzogYDxjaXJjbGUgLz5gIGluc3RlYWQgb2YgYDxjaXJjbGU+PC9jaXJjbGU+YFxuICogICAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICBTZWUgYHRpZ2h0U2VsZkNsb3NpbmdgIHRvIGNvbnRyb2wgd2hldGhlciBhIHNwYWNlIGlzIHVzZWQgYmVmb3JlIHRoZVxuICogICBzbGFzaC5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBIVE1MIHNwYWNlLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2Nsb3NlU2VsZkNsb3Npbmc9ZmFsc2VdXG4gKiAgIENsb3NlIHNlbGYtY2xvc2luZyBub2RlcyB3aXRoIGFuIGV4dHJhIHNsYXNoIChgL2ApOiBgPGltZyAvPmAgaW5zdGVhZCBvZlxuICogICBgPGltZz5gIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIFNlZSBgdGlnaHRTZWxmQ2xvc2luZ2AgdG8gY29udHJvbCB3aGV0aGVyIGEgc3BhY2UgaXMgdXNlZCBiZWZvcmUgdGhlXG4gKiAgIHNsYXNoLlxuICpcbiAqICAgTm90IHVzZWQgaW4gdGhlIFNWRyBzcGFjZS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtjb2xsYXBzZUVtcHR5QXR0cmlidXRlcz1mYWxzZV1cbiAqICAgQ29sbGFwc2UgZW1wdHkgYXR0cmlidXRlczogZ2V0IGBjbGFzc2AgaW5zdGVhZCBvZiBgY2xhc3M9XCJcImAgKGRlZmF1bHQ6XG4gKiAgIGBmYWxzZWApLlxuICpcbiAqICAgTm90IHVzZWQgaW4gdGhlIFNWRyBzcGFjZS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBib29sZWFuIGF0dHJpYnV0ZXMgKHN1Y2ggYXMgYGhpZGRlbmApIGFyZSBhbHdheXMgY29sbGFwc2VkLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29taXRPcHRpb25hbFRhZ3M9ZmFsc2VdXG4gKiAgIE9taXQgb3B0aW9uYWwgb3BlbmluZyBhbmQgY2xvc2luZyB0YWdzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIEZvciBleGFtcGxlLCBpbiBgPG9sPjxsaT5vbmU8L2xpPjxsaT50d288L2xpPjwvb2w+YCwgYm90aCBgPC9saT5gIGNsb3NpbmdcbiAqICAgdGFncyBjYW4gYmUgb21pdHRlZC5cbiAqICAgVGhlIGZpcnN0IGJlY2F1c2UgaXRcdTIwMTlzIGZvbGxvd2VkIGJ5IGFub3RoZXIgYGxpYCwgdGhlIGxhc3QgYmVjYXVzZSBpdFx1MjAxOXNcbiAqICAgZm9sbG93ZWQgYnkgbm90aGluZy5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBTVkcgc3BhY2UuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbcHJlZmVyVW5xdW90ZWQ9ZmFsc2VdXG4gKiAgIExlYXZlIGF0dHJpYnV0ZXMgdW5xdW90ZWQgaWYgdGhhdCByZXN1bHRzIGluIGxlc3MgYnl0ZXMgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgTm90IHVzZWQgaW4gdGhlIFNWRyBzcGFjZS5cbiAqIEBwcm9wZXJ0eSB7UXVvdGUgfCBudWxsIHwgdW5kZWZpbmVkfSBbcXVvdGU9J1wiJ11cbiAqICAgUHJlZmVycmVkIHF1b3RlIHRvIHVzZSAoZGVmYXVsdDogYCdcIidgKS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtxdW90ZVNtYXJ0PWZhbHNlXVxuICogICBVc2UgdGhlIG90aGVyIHF1b3RlIGlmIHRoYXQgcmVzdWx0cyBpbiBsZXNzIGJ5dGVzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqIEBwcm9wZXJ0eSB7U3BhY2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbc3BhY2U9J2h0bWwnXVxuICogICBXaGVuIGFuIGA8c3ZnPmAgZWxlbWVudCBpcyBmb3VuZCBpbiB0aGUgSFRNTCBzcGFjZSwgdGhpcyBwYWNrYWdlIGFscmVhZHlcbiAqICAgYXV0b21hdGljYWxseSBzd2l0Y2hlcyB0byBhbmQgZnJvbSB0aGUgU1ZHIHNwYWNlIHdoZW4gZW50ZXJpbmcgYW5kIGV4aXRpbmdcbiAqICAgaXQgKGRlZmF1bHQ6IGAnaHRtbCdgKS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBoYXN0IGlzIG5vdCBYTUwuXG4gKiAgID4gSXQgc3VwcG9ydHMgU1ZHIGFzIGVtYmVkZGVkIGluIEhUTUwuXG4gKiAgID4gSXQgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZmVhdHVyZXMgYXZhaWxhYmxlIGluIFhNTC5cbiAqICAgPiBQYXNzaW5nIFNWRyBtaWdodCBicmVhayBidXQgZnJhZ21lbnRzIG9mIG1vZGVybiBTVkcgc2hvdWxkIGJlIGZpbmUuXG4gKiAgID4gVXNlIFtgeGFzdGBdW3hhc3RdIGlmIHlvdSBuZWVkIHRvIHN1cHBvcnQgU1ZHIGFzIFhNTC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt0aWdodEF0dHJpYnV0ZXM9ZmFsc2VdXG4gKiAgIEpvaW4gYXR0cmlidXRlcyB0b2dldGhlciwgd2l0aG91dCB3aGl0ZXNwYWNlLCBpZiBwb3NzaWJsZTogZ2V0XG4gKiAgIGBjbGFzcz1cImEgYlwidGl0bGU9XCJjIGRcImAgaW5zdGVhZCBvZiBgY2xhc3M9XCJhIGJcIiB0aXRsZT1cImMgZFwiYCB0byBzYXZlXG4gKiAgIGJ5dGVzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBTVkcgc3BhY2UuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogaW50ZW50aW9uYWxseSBjcmVhdGVzIHBhcnNlIGVycm9ycyBpbiBtYXJrdXAgKGhvdyBwYXJzZVxuICogICA+IGVycm9ycyBhcmUgaGFuZGxlZCBpcyB3ZWxsIGRlZmluZWQsIHNvIHRoaXMgd29ya3MgYnV0IGlzblx1MjAxOXQgcHJldHR5KS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt0aWdodENvbW1hU2VwYXJhdGVkTGlzdHM9ZmFsc2VdXG4gKiAgIEpvaW4ga25vd24gY29tbWEtc2VwYXJhdGVkIGF0dHJpYnV0ZSB2YWx1ZXMgd2l0aCBqdXN0IGEgY29tbWEgKGAsYCksXG4gKiAgIGluc3RlYWQgb2YgcGFkZGluZyB0aGVtIG9uIHRoZSByaWdodCBhcyB3ZWxsIChgLFx1MjQyMGAsIHdoZXJlIGBcdTI0MjBgIHJlcHJlc2VudHMgYVxuICogICBzcGFjZSkgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3RpZ2h0RG9jdHlwZT1mYWxzZV1cbiAqICAgRHJvcCB1bm5lZWRlZCBzcGFjZXMgaW4gZG9jdHlwZXM6IGA8IWRvY3R5cGVodG1sPmAgaW5zdGVhZCBvZlxuICogICBgPCFkb2N0eXBlIGh0bWw+YCB0byBzYXZlIGJ5dGVzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBpbnRlbnRpb25hbGx5IGNyZWF0ZXMgcGFyc2UgZXJyb3JzIGluIG1hcmt1cCAoaG93IHBhcnNlXG4gKiAgID4gZXJyb3JzIGFyZSBoYW5kbGVkIGlzIHdlbGwgZGVmaW5lZCwgc28gdGhpcyB3b3JrcyBidXQgaXNuXHUyMDE5dCBwcmV0dHkpLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3RpZ2h0U2VsZkNsb3Npbmc9ZmFsc2VdXG4gKiAgIERvIG5vdCB1c2UgYW4gZXh0cmEgc3BhY2Ugd2hlbiBjbG9zaW5nIHNlbGYtY2xvc2luZyBlbGVtZW50czogYDxpbWcvPmBcbiAqICAgaW5zdGVhZCBvZiBgPGltZyAvPmAgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IG9ubHkgdXNlZCBpZiBgY2xvc2VTZWxmQ2xvc2luZzogdHJ1ZWAgb3JcbiAqICAgPiBgY2xvc2VFbXB0eUVsZW1lbnRzOiB0cnVlYC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt1cHBlckRvY3R5cGU9ZmFsc2VdXG4gKiAgIFVzZSBhIGA8IURPQ1RZUEVcdTIwMjZgIGluc3RlYWQgb2YgYDwhZG9jdHlwZVx1MjAyNmAgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgVXNlbGVzcyBleGNlcHQgZm9yIFhIVE1MLlxuICogQHByb3BlcnR5IHtSZWFkb25seUFycmF5PHN0cmluZz4gfCBudWxsIHwgdW5kZWZpbmVkfSBbdm9pZHNdXG4gKiAgIFRhZyBuYW1lcyBvZiBlbGVtZW50cyB0byBzZXJpYWxpemUgd2l0aG91dCBjbG9zaW5nIHRhZyAoZGVmYXVsdDogYGh0bWwtdm9pZC1lbGVtZW50c2ApLlxuICpcbiAqICAgTm90IHVzZWQgaW4gdGhlIFNWRyBzcGFjZS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBJdFx1MjAxOXMgaGlnaGx5IHVubGlrZWx5IHRoYXQgeW91IHdhbnQgdG8gcGFzcyB0aGlzLCBiZWNhdXNlXG4gKiAgID4gaGFzdCBpcyBub3QgZm9yIFhNTCwgYW5kIEhUTUwgd2lsbCBub3QgYWRkIG1vcmUgdm9pZCBlbGVtZW50cy5cbiAqXG4gKiBAdHlwZWRlZiB7J1wiJyB8IFwiJ1wifSBRdW90ZVxuICogICBIVE1MIHF1b3RlcyBmb3IgYXR0cmlidXRlIHZhbHVlcy5cbiAqXG4gKiBAdHlwZWRlZiB7T21pdDxSZXF1aXJlZDx7W2tleSBpbiBrZXlvZiBPcHRpb25zXTogRXhjbHVkZTxPcHRpb25zW2tleV0sIG51bGwgfCB1bmRlZmluZWQ+fT4sICdzcGFjZScgfCAncXVvdGUnPn0gU2V0dGluZ3NcbiAqXG4gKiBAdHlwZWRlZiB7J2h0bWwnIHwgJ3N2Zyd9IFNwYWNlXG4gKiAgIE5hbWVzcGFjZS5cbiAqXG4gKiBAdHlwZWRlZiBTdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcHJvcGVydHkgeyhub2RlOiBOb2RlcywgaW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCwgcGFyZW50OiBQYXJlbnRzIHwgdW5kZWZpbmVkKSA9PiBzdHJpbmd9IG9uZVxuICogICBTZXJpYWxpemUgb25lIG5vZGUuXG4gKiBAcHJvcGVydHkgeyhub2RlOiBQYXJlbnRzIHwgdW5kZWZpbmVkKSA9PiBzdHJpbmd9IGFsbFxuICogICBTZXJpYWxpemUgdGhlIGNoaWxkcmVuIG9mIGEgcGFyZW50IG5vZGUuXG4gKiBAcHJvcGVydHkge1NldHRpbmdzfSBzZXR0aW5nc1xuICogICBVc2VyIGNvbmZpZ3VyYXRpb24uXG4gKiBAcHJvcGVydHkge1NjaGVtYX0gc2NoZW1hXG4gKiAgIEN1cnJlbnQgc2NoZW1hLlxuICogQHByb3BlcnR5IHtRdW90ZX0gcXVvdGVcbiAqICAgUHJlZmVycmVkIHF1b3RlLlxuICogQHByb3BlcnR5IHtRdW90ZX0gYWx0ZXJuYXRpdmVcbiAqICAgQWx0ZXJuYXRpdmUgcXVvdGUuXG4gKi9cblxuaW1wb3J0IHtodG1sVm9pZEVsZW1lbnRzfSBmcm9tICdodG1sLXZvaWQtZWxlbWVudHMnXG5pbXBvcnQge2h0bWwsIHN2Z30gZnJvbSAncHJvcGVydHktaW5mb3JtYXRpb24nXG5pbXBvcnQge2hhbmRsZX0gZnJvbSAnLi9oYW5kbGUvaW5kZXguanMnXG5cbi8qKiBAdHlwZSB7T3B0aW9uc30gKi9cbmNvbnN0IGVtcHR5T3B0aW9ucyA9IHt9XG5cbi8qKiBAdHlwZSB7Q2hhcmFjdGVyUmVmZXJlbmNlc30gKi9cbmNvbnN0IGVtcHR5Q2hhcmFjdGVyUmVmZXJlbmNlcyA9IHt9XG5cbi8qKiBAdHlwZSB7QXJyYXk8bmV2ZXI+fSAqL1xuY29uc3QgZW1wdHlDaGlsZHJlbiA9IFtdXG5cbi8qKlxuICogU2VyaWFsaXplIGhhc3QgYXMgSFRNTC5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PFJvb3RDb250ZW50PiB8IE5vZGVzfSB0cmVlXG4gKiAgIFRyZWUgdG8gc2VyaWFsaXplLlxuICogQHBhcmFtIHtPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFNlcmlhbGl6ZWQgSFRNTC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSHRtbCh0cmVlLCBvcHRpb25zKSB7XG4gIGNvbnN0IG9wdGlvbnNfID0gb3B0aW9ucyB8fCBlbXB0eU9wdGlvbnNcbiAgY29uc3QgcXVvdGUgPSBvcHRpb25zXy5xdW90ZSB8fCAnXCInXG4gIGNvbnN0IGFsdGVybmF0aXZlID0gcXVvdGUgPT09ICdcIicgPyBcIidcIiA6ICdcIidcblxuICBpZiAocXVvdGUgIT09ICdcIicgJiYgcXVvdGUgIT09IFwiJ1wiKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHF1b3RlIGAnICsgcXVvdGUgKyAnYCwgZXhwZWN0ZWQgYFxcJ2Agb3IgYFwiYCcpXG4gIH1cblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBjb25zdCBzdGF0ZSA9IHtcbiAgICBvbmUsXG4gICAgYWxsLFxuICAgIHNldHRpbmdzOiB7XG4gICAgICBvbWl0T3B0aW9uYWxUYWdzOiBvcHRpb25zXy5vbWl0T3B0aW9uYWxUYWdzIHx8IGZhbHNlLFxuICAgICAgYWxsb3dQYXJzZUVycm9yczogb3B0aW9uc18uYWxsb3dQYXJzZUVycm9ycyB8fCBmYWxzZSxcbiAgICAgIGFsbG93RGFuZ2Vyb3VzQ2hhcmFjdGVyczogb3B0aW9uc18uYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzIHx8IGZhbHNlLFxuICAgICAgcXVvdGVTbWFydDogb3B0aW9uc18ucXVvdGVTbWFydCB8fCBmYWxzZSxcbiAgICAgIHByZWZlclVucXVvdGVkOiBvcHRpb25zXy5wcmVmZXJVbnF1b3RlZCB8fCBmYWxzZSxcbiAgICAgIHRpZ2h0QXR0cmlidXRlczogb3B0aW9uc18udGlnaHRBdHRyaWJ1dGVzIHx8IGZhbHNlLFxuICAgICAgdXBwZXJEb2N0eXBlOiBvcHRpb25zXy51cHBlckRvY3R5cGUgfHwgZmFsc2UsXG4gICAgICB0aWdodERvY3R5cGU6IG9wdGlvbnNfLnRpZ2h0RG9jdHlwZSB8fCBmYWxzZSxcbiAgICAgIGJvZ3VzQ29tbWVudHM6IG9wdGlvbnNfLmJvZ3VzQ29tbWVudHMgfHwgZmFsc2UsXG4gICAgICB0aWdodENvbW1hU2VwYXJhdGVkTGlzdHM6IG9wdGlvbnNfLnRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0cyB8fCBmYWxzZSxcbiAgICAgIHRpZ2h0U2VsZkNsb3Npbmc6IG9wdGlvbnNfLnRpZ2h0U2VsZkNsb3NpbmcgfHwgZmFsc2UsXG4gICAgICBjb2xsYXBzZUVtcHR5QXR0cmlidXRlczogb3B0aW9uc18uY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXMgfHwgZmFsc2UsXG4gICAgICBhbGxvd0Rhbmdlcm91c0h0bWw6IG9wdGlvbnNfLmFsbG93RGFuZ2Vyb3VzSHRtbCB8fCBmYWxzZSxcbiAgICAgIHZvaWRzOiBvcHRpb25zXy52b2lkcyB8fCBodG1sVm9pZEVsZW1lbnRzLFxuICAgICAgY2hhcmFjdGVyUmVmZXJlbmNlczpcbiAgICAgICAgb3B0aW9uc18uY2hhcmFjdGVyUmVmZXJlbmNlcyB8fCBlbXB0eUNoYXJhY3RlclJlZmVyZW5jZXMsXG4gICAgICBjbG9zZVNlbGZDbG9zaW5nOiBvcHRpb25zXy5jbG9zZVNlbGZDbG9zaW5nIHx8IGZhbHNlLFxuICAgICAgY2xvc2VFbXB0eUVsZW1lbnRzOiBvcHRpb25zXy5jbG9zZUVtcHR5RWxlbWVudHMgfHwgZmFsc2VcbiAgICB9LFxuICAgIHNjaGVtYTogb3B0aW9uc18uc3BhY2UgPT09ICdzdmcnID8gc3ZnIDogaHRtbCxcbiAgICBxdW90ZSxcbiAgICBhbHRlcm5hdGl2ZVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlLm9uZShcbiAgICBBcnJheS5pc0FycmF5KHRyZWUpID8ge3R5cGU6ICdyb290JywgY2hpbGRyZW46IHRyZWV9IDogdHJlZSxcbiAgICB1bmRlZmluZWQsXG4gICAgdW5kZWZpbmVkXG4gIClcbn1cblxuLyoqXG4gKiBTZXJpYWxpemUgYSBub2RlLlxuICpcbiAqIEB0aGlzIHtTdGF0ZX1cbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHtOb2Rlc30gbm9kZVxuICogICBOb2RlIHRvIGhhbmRsZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBgbm9kZWAgaW4gYHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBgbm9kZWAuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIG5vZGUuXG4gKi9cbmZ1bmN0aW9uIG9uZShub2RlLCBpbmRleCwgcGFyZW50KSB7XG4gIHJldHVybiBoYW5kbGUobm9kZSwgaW5kZXgsIHBhcmVudCwgdGhpcylcbn1cblxuLyoqXG4gKiBTZXJpYWxpemUgYWxsIGNoaWxkcmVuIG9mIGBwYXJlbnRgLlxuICpcbiAqIEB0aGlzIHtTdGF0ZX1cbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IHdob3NlIGNoaWxkcmVuIHRvIHNlcmlhbGl6ZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhbGwocGFyZW50KSB7XG4gIC8qKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn0gKi9cbiAgY29uc3QgcmVzdWx0cyA9IFtdXG4gIGNvbnN0IGNoaWxkcmVuID0gKHBhcmVudCAmJiBwYXJlbnQuY2hpbGRyZW4pIHx8IGVtcHR5Q2hpbGRyZW5cbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IGNoaWxkcmVuLmxlbmd0aCkge1xuICAgIHJlc3VsdHNbaW5kZXhdID0gdGhpcy5vbmUoY2hpbGRyZW5baW5kZXhdLCBpbmRleCwgcGFyZW50KVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdHMuam9pbignJylcbn1cbiIsICJcbmV4cG9ydCBpbnRlcmZhY2UgSW5saW5lQ29kZVBhcmFtZXRlcnMge1xuXHRsYW5ndWFnZTogc3RyaW5nO1xuXHR0aXRsZTogc3RyaW5nO1xuXHRpY29uOiBib29sZWFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VJbmxpbmVDb2RlKGNvZGVUZXh0OiBzdHJpbmcpOiB7cGFyYW1ldGVyczogSW5saW5lQ29kZVBhcmFtZXRlcnMgfCBudWxsLCB0ZXh0OiBzdHJpbmd9IHtcblx0Y29uc3QgbWF0Y2ggPSAvXnsoKD86W15cIid7fVxcXFxdfFxcXFwufFwiKD86W15cIlxcXFxdfFxcXFwuKSpcInwnKD86W14nXFxcXF18XFxcXC4pKicpKil9ICo/KFteIF0uKikkLy5leGVjKGNvZGVUZXh0KTtcblxuXHRpZiAodHlwZW9mIG1hdGNoPy5bMV0gIT09IFwidW5kZWZpbmVkXCIgJiYgdHlwZW9mIG1hdGNoPy5bMl0gIT09IFwidW5kZWZpbmVkXCIpIHtcblx0XHRpZiAobWF0Y2hbMV0gPT09IFwiXCIpXG5cdFx0XHRyZXR1cm4ge3BhcmFtZXRlcnM6IG51bGwsIHRleHQ6IG1hdGNoWzJdfTtcblx0XHRlbHNlXG5cdFx0XHRyZXR1cm4ge3BhcmFtZXRlcnM6IHBhcnNlSW5saW5lQ29kZVBhcmFtZXRlcnMobWF0Y2hbMV0pLCB0ZXh0OiBtYXRjaFsyXX07XG5cdH0gZWxzZVxuXHRcdHJldHVybiB7cGFyYW1ldGVyczogbnVsbCwgdGV4dDogY29kZVRleHR9O1xufVxuZnVuY3Rpb24gcGFyc2VJbmxpbmVDb2RlUGFyYW1ldGVycyhwYXJhbWV0ZXJMaW5lOiBzdHJpbmcpOiBJbmxpbmVDb2RlUGFyYW1ldGVycyB7XG5cdGNvbnN0IGlubGluZUNvZGVQYXJhbWV0ZXJzOiBJbmxpbmVDb2RlUGFyYW1ldGVycyA9IHtcblx0XHRsYW5ndWFnZTogXCJcIixcblx0XHR0aXRsZTogXCJcIixcblx0XHRpY29uOiBmYWxzZSxcblx0fTtcblx0Y29uc3QgbGFuZ3VhZ2VCcmVhayA9IHBhcmFtZXRlckxpbmUuaW5kZXhPZihcIiBcIik7XG5cdGlubGluZUNvZGVQYXJhbWV0ZXJzLmxhbmd1YWdlID0gcGFyYW1ldGVyTGluZS5zbGljZSgwLGxhbmd1YWdlQnJlYWsgIT09IC0xP2xhbmd1YWdlQnJlYWs6cGFyYW1ldGVyTGluZS5sZW5ndGgpLnRvTG93ZXJDYXNlKCk7XG5cdGlmIChsYW5ndWFnZUJyZWFrID09PSAtMSlcblx0XHRyZXR1cm4gaW5saW5lQ29kZVBhcmFtZXRlcnM7XG5cdGNvbnN0IHBhcmFtZXRlclN0cmluZ3MgPSBwYXJhbWV0ZXJMaW5lLnNsaWNlKGxhbmd1YWdlQnJlYWsrMSkubWF0Y2goLyg/OlteXFxzXCInXSt8XCJbXlwiXSpcInwnW14nXSonKSsvZyk7XG5cdGlmICghcGFyYW1ldGVyU3RyaW5ncylcblx0XHRyZXR1cm4gaW5saW5lQ29kZVBhcmFtZXRlcnM7XG5cdHBhcmFtZXRlclN0cmluZ3MuZm9yRWFjaCgocGFyYW1ldGVyU3RyaW5nKSA9PiBwYXJzZUlubGluZUNvZGVQYXJhbWV0ZXJTdHJpbmcocGFyYW1ldGVyU3RyaW5nLGlubGluZUNvZGVQYXJhbWV0ZXJzKSk7XG5cdHJldHVybiBpbmxpbmVDb2RlUGFyYW1ldGVycztcbn1cbmZ1bmN0aW9uIHBhcnNlSW5saW5lQ29kZVBhcmFtZXRlclN0cmluZyhwYXJhbWV0ZXJTdHJpbmc6IHN0cmluZywgaW5saW5lQ29kZVBhcmFtZXRlcnM6IElubGluZUNvZGVQYXJhbWV0ZXJzKTogdm9pZCB7XG5cdGlmIChwYXJhbWV0ZXJTdHJpbmcuc3RhcnRzV2l0aChcInRpdGxlOlwiKSB8fCBwYXJhbWV0ZXJTdHJpbmcuc3RhcnRzV2l0aChcInRpdGxlPVwiKSkge1xuXHRcdGNvbnN0IHRpdGxlTWF0Y2ggPSAvKFtcIiddPykoW15cXDFdKylcXDEvLmV4ZWMocGFyYW1ldGVyU3RyaW5nLnNsaWNlKFwidGl0bGU6XCIubGVuZ3RoKSk7XG5cdFx0aWYgKHRpdGxlTWF0Y2gpXG5cdFx0XHRpbmxpbmVDb2RlUGFyYW1ldGVycy50aXRsZSA9IHRpdGxlTWF0Y2hbMl0udHJpbSgpLnJlcGxhY2UoL1xcXFx7L2csIFwie1wiKTtcblx0fSBlbHNlIGlmIChwYXJhbWV0ZXJTdHJpbmcgPT09IFwiaWNvblwiIHx8IChwYXJhbWV0ZXJTdHJpbmcuc3RhcnRzV2l0aChcImljb246XCIpICYmIHBhcmFtZXRlclN0cmluZy50b0xvd2VyQ2FzZSgpID09PSBcImljb246dHJ1ZVwiKSlcblx0XHRpbmxpbmVDb2RlUGFyYW1ldGVycy5pY29uID0gdHJ1ZTtcbn1cbiIsICJpbXBvcnQgeyBMQU5HVUFHRV9OQU1FUywgQ29kZVN0eWxlclRoZW1lU2V0dGluZ3MsIEZPTERfUExBQ0VIT0xERVIsIEdJVF9JQ09OUywgU1RBTVBfSUNPTiwgU0lURV9JQ09OUywgVVBEQVRFX0lDT04gfSBmcm9tIFwiLi9TZXR0aW5nc1wiO1xuaW1wb3J0IHsgQ29kZWJsb2NrUGFyYW1ldGVycywgSGlnaGxpZ2h0cyB9IGZyb20gXCIuL1BhcnNpbmcvQ29kZWJsb2NrUGFyc2luZ1wiO1xuaW1wb3J0IHsgSW5saW5lQ29kZVBhcmFtZXRlcnMgfSBmcm9tIFwiLi9QYXJzaW5nL0lubGluZUNvZGVQYXJzaW5nXCI7XG5pbXBvcnQgeyBNYXJrZG93blJlbmRlcmVyLCBNYXJrZG93blZpZXcgfSBmcm9tIFwib2JzaWRpYW5cIjtcbmltcG9ydCBDb2RlU3R5bGVyUGx1Z2luIGZyb20gXCIuL21haW5cIjtcbmltcG9ydCB7IHVwZGF0ZUV4dGVybmFsUmVmZXJlbmNlIH0gZnJvbSBcIi4vUmVmZXJlbmNpbmdcIjtcbmltcG9ydCB7IFJlZmVyZW5jZSB9IGZyb20gXCIuL1BhcnNpbmcvUmVmZXJlbmNlUGFyc2luZ1wiO1xuaW1wb3J0IHsgcmVyZW5kZXIgfSBmcm9tIFwiLi9FZGl0aW5nVmlld1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSGVhZGVyKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzLCBzb3VyY2VQYXRoOiBzdHJpbmcsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbik6IEhUTUxFbGVtZW50IHtcblx0Y29uc3QgaGVhZGVyQ29udGFpbmVyID0gY3JlYXRlRGl2KCk7XG5cdGNvbnN0IGljb25VUkwgPSBjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlP2dldExhbmd1YWdlSWNvbihjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlLHBsdWdpbi5sYW5ndWFnZUljb25zKTp1bmRlZmluZWQ7XG5cdGlmICghaXNIZWFkZXJIaWRkZW4oY29kZWJsb2NrUGFyYW1ldGVycyx0aGVtZVNldHRpbmdzLGljb25VUkwpKSB7XG5cdFx0aGVhZGVyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyXCIpO1xuXHRcdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlICE9PSBcIlwiKSB7XG5cdFx0XHRpZiAoaXNMYW5ndWFnZUljb25TaG93bihjb2RlYmxvY2tQYXJhbWV0ZXJzLHRoZW1lU2V0dGluZ3MsaWNvblVSTCkpXG5cdFx0XHRcdGhlYWRlckNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVJbWFnZVdyYXBwZXIoaWNvblVSTCBhcyBzdHJpbmcsY3JlYXRlRGl2KCkpKTtcblx0XHRcdGlmIChpc0xhbmd1YWdlVGFnU2hvd24oY29kZWJsb2NrUGFyYW1ldGVycyx0aGVtZVNldHRpbmdzKSlcblx0XHRcdFx0aGVhZGVyQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZURpdih7Y2xzOiBcImNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWdcIiwgdGV4dDogZ2V0TGFuZ3VhZ2VUYWcoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSl9KSk7XG5cdFx0fVxuXHRcdGhlYWRlckNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVUaXRsZUNvbnRhaW5lcihjb2RlYmxvY2tQYXJhbWV0ZXJzLCB0aGVtZVNldHRpbmdzLCBzb3VyY2VQYXRoLCBwbHVnaW4pKTtcblx0XHRpZiAodHJ1ZSAmJiBjb2RlYmxvY2tQYXJhbWV0ZXJzPy5leHRlcm5hbFJlZmVyZW5jZSkgLy9UT0RPIChAbWF5dXJhbmt2KSBBZGQgc2V0dGluZ3MgdG9nZ2xlXG5cdFx0XHRoZWFkZXJDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlRXh0ZXJuYWxSZWZlcmVuY2VDb250YWluZXIoY29kZWJsb2NrUGFyYW1ldGVycywgc291cmNlUGF0aCwgcGx1Z2luKSk7XG5cdFx0aWYgKGZhbHNlKSAvL1RPRE8gKEBtYXl1cmFua3YpIEFkZCBzZXR0aW5ncyB0b2dnbGVcblx0XHRcdGhlYWRlckNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVFeGVjdXRlQ29kZUNvbnRhaW5lcihjb2RlYmxvY2tQYXJhbWV0ZXJzLCB0aGVtZVNldHRpbmdzLCBwbHVnaW4pKTtcblx0fSBlbHNlXG5cdFx0aGVhZGVyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLWhpZGRlblwiKTtcblx0cmV0dXJuIGhlYWRlckNvbnRhaW5lcjtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVRpdGxlQ29udGFpbmVyKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzLCBzb3VyY2VQYXRoOiBzdHJpbmcsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbik6IEhUTUxFbGVtZW50IHtcblx0Y29uc3QgdGl0bGVDb250YWluZXIgPSBjcmVhdGVEaXYoe2NsczogXCJjb2RlLXN0eWxlci1oZWFkZXItdGV4dFwifSk7XG5cdGNvbnN0IHRpdGxlID0gY29kZWJsb2NrUGFyYW1ldGVycy50aXRsZSB8fCAoY29kZWJsb2NrUGFyYW1ldGVycy5mb2xkLmVuYWJsZWQ/KGNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5wbGFjZWhvbGRlciB8fCB0aGVtZVNldHRpbmdzLmhlYWRlci5mb2xkUGxhY2Vob2xkZXIgfHwgRk9MRF9QTEFDRUhPTERFUik6XCJcIik7XG5cdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLnJlZmVyZW5jZSA9PT0gXCJcIilcblx0XHR0aXRsZUNvbnRhaW5lci5pbm5lclRleHQgPSB0aXRsZTtcblx0ZWxzZSBpZiAoL14oPzpodHRwcz98ZmlsZSk6XFwvXFwvLy50ZXN0KGNvZGVibG9ja1BhcmFtZXRlcnMucmVmZXJlbmNlKSlcblx0XHRNYXJrZG93blJlbmRlcmVyLnJlbmRlcihwbHVnaW4uYXBwLGBbJHt0aXRsZX1dKCR7Y29kZWJsb2NrUGFyYW1ldGVycy5yZWZlcmVuY2V9KWAsdGl0bGVDb250YWluZXIsc291cmNlUGF0aCxwbHVnaW4pO1xuXHRlbHNlXG5cdFx0TWFya2Rvd25SZW5kZXJlci5yZW5kZXIocGx1Z2luLmFwcCxgW1ske2NvZGVibG9ja1BhcmFtZXRlcnMucmVmZXJlbmNlfXwke3RpdGxlfV1dYCx0aXRsZUNvbnRhaW5lcixzb3VyY2VQYXRoLHBsdWdpbik7IC8vVE9ETyAoQG1heXVyYW5rdikgQWRkIGxpbmtzIHRvIG1ldGFkYXRhIGNhY2hlIHByb3Blcmx5XG5cdHJldHVybiB0aXRsZUNvbnRhaW5lcjtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUV4dGVybmFsUmVmZXJlbmNlQ29udGFpbmVyKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHNvdXJjZVBhdGg6IHN0cmluZywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogSFRNTEVsZW1lbnQge1xuXHQvL1RPRE8gKEBtYXl1cmFua3YpIEFkZCB0aGVtZSBzZXR0aW5ncyB0byBjb25kaXRpb25hbGx5IHNldCBzZWN0aW9uc1xuXHRjb25zdCBleHRlcm5hbFJlZmVyZW5jZUNvbnRhaW5lciA9IGNyZWF0ZURpdih7IGNsczogXCJjb2RlLXN0eWxlci1oZWFkZXItZXh0ZXJuYWwtcmVmZXJlbmNlXCIgfSk7XG5cdGNvbnN0IHNpdGVJY29uID0gY3JlYXRlRGl2KHsgY2xzOiBcImV4dGVybmFsLXJlZmVyZW5jZS1yZXBvLWljb25cIiB9KTtcblx0c2l0ZUljb24uaW5uZXJIVE1MID0gU0lURV9JQ09OUz8uW2NvZGVibG9ja1BhcmFtZXRlcnM/LmV4dGVybmFsUmVmZXJlbmNlPy5leHRlcm5hbD8uaW5mbz8uc2l0ZSBhcyBzdHJpbmddID8/IFNJVEVfSUNPTlNbXCJnZW5lcmljXCJdO1xuXHRleHRlcm5hbFJlZmVyZW5jZUNvbnRhaW5lci5hcHBlbmRDaGlsZChzaXRlSWNvbik7XG5cdGV4dGVybmFsUmVmZXJlbmNlQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZURpdih7IGNsczogXCJleHRlcm5hbC1yZWZlcmVuY2UtcmVwb1wiLCB0ZXh0OiBjb2RlYmxvY2tQYXJhbWV0ZXJzPy5leHRlcm5hbFJlZmVyZW5jZT8uZXh0ZXJuYWw/LmluZm8/LmF1dGhvciArIFwiL1wiICsgY29kZWJsb2NrUGFyYW1ldGVycz8uZXh0ZXJuYWxSZWZlcmVuY2U/LmV4dGVybmFsPy5pbmZvPy5yZXBvc2l0b3J5IH0pKTtcblx0Y29uc3QgcmVmSWNvbiA9IGNyZWF0ZURpdih7IGNsczogXCJleHRlcm5hbC1yZWZlcmVuY2UtcmVmLWljb25cIiB9KTtcblx0cmVmSWNvbi5pbm5lckhUTUwgPSBHSVRfSUNPTlM/Lltjb2RlYmxvY2tQYXJhbWV0ZXJzPy5leHRlcm5hbFJlZmVyZW5jZT8uZXh0ZXJuYWw/LmluZm8/LnJlZkluZm8/LnR5cGUgYXMgc3RyaW5nXSA/PyBHSVRfSUNPTlNbXCJicmFuY2hcIl07XG5cdGV4dGVybmFsUmVmZXJlbmNlQ29udGFpbmVyLmFwcGVuZENoaWxkKHJlZkljb24pO1xuXHRleHRlcm5hbFJlZmVyZW5jZUNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVEaXYoe2NsczogXCJleHRlcm5hbC1yZWZlcmVuY2UtcmVmXCIsIHRleHQ6IGNvZGVibG9ja1BhcmFtZXRlcnM/LmV4dGVybmFsUmVmZXJlbmNlPy5leHRlcm5hbD8uaW5mbz8ucmVmSW5mbz8ucmVmIGFzIHN0cmluZ30pKTtcblx0Y29uc3Qgc3RhbXBJY29uID0gY3JlYXRlRGl2KHsgY2xzOiBcImV4dGVybmFsLXJlZmVyZW5jZS10aW1lc3RhbXAtaWNvblwiIH0pO1xuXHRzdGFtcEljb24uaW5uZXJIVE1MID0gU1RBTVBfSUNPTjtcblx0ZXh0ZXJuYWxSZWZlcmVuY2VDb250YWluZXIuYXBwZW5kQ2hpbGQoc3RhbXBJY29uKTtcblx0ZXh0ZXJuYWxSZWZlcmVuY2VDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlRGl2KHsgY2xzOiBcImV4dGVybmFsLXJlZmVyZW5jZS10aW1lc3RhbXBcIiwgdGV4dDogY29kZWJsb2NrUGFyYW1ldGVycz8uZXh0ZXJuYWxSZWZlcmVuY2U/LmV4dGVybmFsPy5pbmZvPy5kYXRldGltZSBhcyBzdHJpbmcgfSkpO1xuXHRjb25zdCB1cGRhdGVJY29uID0gY3JlYXRlRWwoXCJidXR0b25cIiwgeyBjbHM6IFwiZXh0ZXJuYWwtcmVmZXJlbmNlLXVwZGF0ZS1pY29uXCJ9KTtcblx0dXBkYXRlSWNvbi5pbm5lckhUTUwgPSBVUERBVEVfSUNPTjtcblx0dXBkYXRlSWNvbi50aXRsZSA9IFwiVXBkYXRlIFJlZmVyZW5jZVwiO1xuXHR1cGRhdGVJY29uLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBhc3luYyAoZXZlbnQpID0+IHtcblx0XHRldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcblx0XHRhd2FpdCB1cGRhdGVFeHRlcm5hbFJlZmVyZW5jZShjb2RlYmxvY2tQYXJhbWV0ZXJzPy5leHRlcm5hbFJlZmVyZW5jZSBhcyBSZWZlcmVuY2UsIHBsdWdpbik7XG5cdFx0Y29uc3QgY29kZWJsb2NrRWxlbWVudCA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnBhcmVudEVsZW1lbnQ/LnBhcmVudEVsZW1lbnQ/LnBhcmVudEVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoXCJjb2RlXCIpO1xuXHRcdGlmICghY29kZWJsb2NrRWxlbWVudClcblx0XHRcdHJldHVybjtcblx0XHRjb25zdCB2aWV3ID0gcGx1Z2luLmFwcC53b3Jrc3BhY2UuZ2V0QWN0aXZlVmlld09mVHlwZShNYXJrZG93blZpZXcpO1xuXHRcdGlmICghdmlldylcblx0XHRcdHJldHVybjtcblxuXHRcdGlmICh2aWV3Py5nZXRNb2RlKCkgPT09IFwicHJldmlld1wiKSB7XG5cdFx0XHR2aWV3Py5wcmV2aWV3TW9kZS5yZXJlbmRlcih0cnVlKTtcblx0XHRcdGNvZGVibG9ja0VsZW1lbnQuYWRkQ2xhc3MoXCJSRVJFTkRFUi1DT0RFLVNUWUxFUlwiKTtcblx0XHRcdC8vQHRzLWV4cGVjdC1lcnJvciBVbmRvY3VtZW50ZWQgT2JzaWRpYW4gQVBJXG5cdFx0XHRmb3IgKGNvbnN0IHNlY3Rpb24gb2Ygdmlldy5wcmV2aWV3TW9kZS5yZW5kZXJlci5zZWN0aW9ucy5maWx0ZXIocyA9PiAocy5lbCBhcyBIVE1MRWxlbWVudCkucXVlcnlTZWxlY3RvcihcIlJFUkVOREVSLUNPREUtU1RZTEVSXCIpKSkge1xuXHRcdFx0XHRzZWN0aW9uLnJlbmRlcmVkID0gZmFsc2U7XG5cdFx0XHRcdHNlY3Rpb24uaHRtbCA9IFwiXCI7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vQHRzLWV4cGVjdC1lcnJvciBVbmRvY3VtZW50ZWQgT2JzaWRpYW4gQVBJXG5cdFx0XHRjb25zdCBjbVZpZXcgPSB2aWV3Py5zb3VyY2VNb2RlLmNtRWRpdG9yLmNtO1xuXHRcdFx0Y29uc3QgcG9zID0gY21WaWV3LnBvc0F0RE9NKGV2ZW50LnRhcmdldCk7XG5cdFx0XHRjb25zdCBjdXJyZW50OiBudW1iZXIgPSBjbVZpZXcuc3RhdGUuc2VsZWN0aW9uLm1haW4uaGVhZDtcblx0XHRcdGNtVmlldy5kaXNwYXRjaCh7IHNlbGVjdGlvbjogeyBhbmNob3I6IHBvcywgaGVhZDogcG9zIH0sIGVmZmVjdHM6IHJlcmVuZGVyLm9mKHtwb3M6IGN1cnJlbnR9KSB9KTtcblx0XHRcdGNtVmlldy5mb2N1cygpO1xuXHRcdFx0c2V0VGltZW91dCgoKT0+Y21WaWV3LmRpc3BhdGNoKHsgc2VsZWN0aW9uOiB7IGFuY2hvcjogY3VycmVudCwgaGVhZDogY3VycmVudCB9fSksMTApO1xuXHRcdH1cblx0fSk7XG5cdGV4dGVybmFsUmVmZXJlbmNlQ29udGFpbmVyLmFwcGVuZENoaWxkKHVwZGF0ZUljb24pO1xuXHRyZXR1cm4gZXh0ZXJuYWxSZWZlcmVuY2VDb250YWluZXI7XG59XG5mdW5jdGlvbiBjcmVhdGVFeGVjdXRlQ29kZUNvbnRhaW5lcihjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCB0aGVtZVNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogSFRNTEVsZW1lbnQge1xuXHRjb25zdCBleGVjdXRlQ29kZUNvbnRhaW5lciA9IGNyZWF0ZURpdih7Y2xzOiBcImNvZGUtc3R5bGVyLWhlYWRlci1leGVjdXRlLWNvZGVcIn0pO1xuXHQvL1RPRE8gKEBtYXl1cmFua3YpIEZpbmlzaFxuXHRyZXR1cm4gZXhlY3V0ZUNvZGVDb250YWluZXI7XG59XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSW5saW5lT3BlbmVyKGlubGluZUNvZGVQYXJhbWV0ZXJzOiBJbmxpbmVDb2RlUGFyYW1ldGVycywgbGFuZ3VhZ2VJY29uczogUmVjb3JkPHN0cmluZyxzdHJpbmc+LCBjb250YWluZXJDbGFzc2VzOiBBcnJheTxzdHJpbmc+ID0gW1wiY29kZS1zdHlsZXItaW5saW5lLW9wZW5lclwiXSk6IEhUTUxFbGVtZW50IHtcblx0Y29uc3Qgb3BlbmVyQ29udGFpbmVyID0gY3JlYXRlU3Bhbih7Y2xzOiBjb250YWluZXJDbGFzc2VzLmpvaW4oXCIgXCIpfSk7XG5cdGlmIChpbmxpbmVDb2RlUGFyYW1ldGVycy5pY29uKSB7XG5cdFx0Y29uc3QgaWNvblVSTCA9IGdldExhbmd1YWdlSWNvbihpbmxpbmVDb2RlUGFyYW1ldGVycy5sYW5ndWFnZSxsYW5ndWFnZUljb25zKTtcblx0XHRpZiAodHlwZW9mIGljb25VUkwgIT09IFwidW5kZWZpbmVkXCIpXG5cdFx0XHRvcGVuZXJDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlSW1hZ2VXcmFwcGVyKGljb25VUkwsY3JlYXRlU3BhbigpLFwiY29kZS1zdHlsZXItaW5saW5lLWljb25cIikpO1xuXHR9XG5cdGlmIChpbmxpbmVDb2RlUGFyYW1ldGVycy50aXRsZSlcblx0XHRvcGVuZXJDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlU3Bhbih7Y2xzOiBcImNvZGUtc3R5bGVyLWlubGluZS10aXRsZVwiLCB0ZXh0OiBpbmxpbmVDb2RlUGFyYW1ldGVycy50aXRsZX0pKTtcblx0cmV0dXJuIG9wZW5lckNvbnRhaW5lcjtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUltYWdlV3JhcHBlcihpY29uVVJMOiBzdHJpbmcsIGltYWdlV3JhcHBlcjogSFRNTEVsZW1lbnQsIGltZ0NsYXNzID0gXCJjb2RlLXN0eWxlci1pY29uXCIpOiBIVE1MRWxlbWVudCB7XG5cdGNvbnN0IGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpbWdcIik7XG5cdGltZy5jbGFzc0xpc3QuYWRkKGltZ0NsYXNzKTtcblx0aW1nLnNyYyA9IGljb25VUkw7XG5cdGltYWdlV3JhcHBlci5hcHBlbmRDaGlsZChpbWcpO1xuXHRyZXR1cm4gaW1hZ2VXcmFwcGVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGFuZ3VhZ2VJY29uKGxhbmd1YWdlOiBzdHJpbmcsIGxhbmd1YWdlSWNvbnM6IFJlY29yZDxzdHJpbmcsc3RyaW5nPik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBsYW5ndWFnZUljb25zPy5bZ2V0TGFuZ3VhZ2VUYWcobGFuZ3VhZ2UpXTtcbn1cbmZ1bmN0aW9uIGdldExhbmd1YWdlVGFnKGxhbmd1YWdlOiBzdHJpbmcpIHtcblx0cmV0dXJuIExBTkdVQUdFX05BTUVTPy5bbGFuZ3VhZ2VdID8/IChsYW5ndWFnZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGxhbmd1YWdlLnNsaWNlKDEpIHx8IFwiXCIpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzSGVhZGVySGlkZGVuKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzLCBpY29uVVJMOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcblx0cmV0dXJuICFpc0hlYWRlclJlcXVpcmVkKGNvZGVibG9ja1BhcmFtZXRlcnMpICYmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlID09PSBcIlwiIHx8ICh0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy5kaXNwbGF5ICE9PSBcImFsd2F5c1wiICYmICh0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheSAhPT0gXCJhbHdheXNcIiB8fCAodHlwZW9mIGljb25VUkwgPT0gXCJ1bmRlZmluZWRcIikpKSk7XG59XG5mdW5jdGlvbiBpc0xhbmd1YWdlSWNvblNob3duKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzLCBpY29uVVJMOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcblx0cmV0dXJuICh0eXBlb2YgaWNvblVSTCAhPT0gXCJ1bmRlZmluZWRcIikgJiYgKHRoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5ID09PSBcImFsd2F5c1wiIHx8IChpc0hlYWRlclJlcXVpcmVkKGNvZGVibG9ja1BhcmFtZXRlcnMpICYmIHRoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5ID09PSBcImlmX2hlYWRlcl9zaG93blwiKSk7XG59XG5mdW5jdGlvbiBpc0xhbmd1YWdlVGFnU2hvd24oY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgdGhlbWVTZXR0aW5nczogQ29kZVN0eWxlclRoZW1lU2V0dGluZ3MpOiBib29sZWFuIHtcblx0cmV0dXJuIHRoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLmRpc3BsYXkgPT09IFwiYWx3YXlzXCIgfHwgKGlzSGVhZGVyUmVxdWlyZWQoY29kZWJsb2NrUGFyYW1ldGVycykgJiYgdGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheSA9PT0gXCJpZl9oZWFkZXJfc2hvd25cIik7XG59XG5mdW5jdGlvbiBpc0hlYWRlclJlcXVpcmVkKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMpOiBib29sZWFuIHtcblx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5lbmFibGVkIHx8IGNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgIT09IFwiXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaW5lQ2xhc3MoY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgbGluZU51bWJlcjogbnVtYmVyLCBsaW5lOiBzdHJpbmcpOiBBcnJheTxzdHJpbmc+IHtcblx0bGV0IGNsYXNzTGlzdDogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXHRpZiAoY29kZWJsb2NrUGFyYW1ldGVycy5oaWdobGlnaHRzLmRlZmF1bHQubGluZU51bWJlcnMuaW5jbHVkZXMobGluZU51bWJlcitjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLm9mZnNldCkgfHwgY29kZWJsb2NrUGFyYW1ldGVycy5oaWdobGlnaHRzLmRlZmF1bHQucGxhaW5UZXh0LnNvbWUodGV4dCA9PiBsaW5lLmluZGV4T2YodGV4dCkgPiAtMSkgfHwgY29kZWJsb2NrUGFyYW1ldGVycy5oaWdobGlnaHRzLmRlZmF1bHQucmVndWxhckV4cHJlc3Npb25zLnNvbWUocmVnRXhwID0+IHJlZ0V4cC50ZXN0KGxpbmUpKSlcblx0XHRjbGFzc0xpc3QucHVzaChcImNvZGUtc3R5bGVyLWxpbmUtaGlnaGxpZ2h0ZWRcIik7XG5cdE9iamVjdC5lbnRyaWVzKGNvZGVibG9ja1BhcmFtZXRlcnMuaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZSkuZm9yRWFjaCgoW2FsdGVybmF0aXZlSGlnaGxpZ2h0LGhpZ2hsaWdodGVkTGluZXNdOiBbc3RyaW5nLEhpZ2hsaWdodHNdKSA9PiB7XG5cdFx0aWYgKGhpZ2hsaWdodGVkTGluZXMubGluZU51bWJlcnMuaW5jbHVkZXMobGluZU51bWJlcitjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLm9mZnNldCkgfHwgaGlnaGxpZ2h0ZWRMaW5lcy5wbGFpblRleHQuc29tZSh0ZXh0ID0+IGxpbmUuaW5kZXhPZih0ZXh0KSA+IC0xKSB8fCBoaWdobGlnaHRlZExpbmVzLnJlZ3VsYXJFeHByZXNzaW9ucy5zb21lKHJlZ0V4cCA9PiByZWdFeHAudGVzdChsaW5lKSkpXG5cdFx0XHRjbGFzc0xpc3QucHVzaChgY29kZS1zdHlsZXItbGluZS1oaWdobGlnaHRlZC0ke2FsdGVybmF0aXZlSGlnaGxpZ2h0LnJlcGxhY2UoL1xccysvZywgXCItXCIpLnRvTG93ZXJDYXNlKCl9YCk7XG5cdH0pO1xuXHRpZiAoY2xhc3NMaXN0Lmxlbmd0aCA9PT0gMClcblx0XHRjbGFzc0xpc3QgPSBbXCJjb2RlLXN0eWxlci1saW5lXCJdO1xuXHRyZXR1cm4gY2xhc3NMaXN0O1xufVxuIiwgImNvbnN0IE1PREVTID0gW1xuXHRcInJlZmVyZW5jZVwiLFxuXHRcInlhbWwtZnJvbnRtYXR0ZXJcIixcbl07XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRNb2RlcygpIHtcblx0TU9ERVMuZm9yRWFjaChtb2RlID0+IGFkZE1vZGUobW9kZSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZU1vZGVzKCkge1xuXHRNT0RFUy5mb3JFYWNoKG1vZGUgPT4gcmVtb3ZlTW9kZShtb2RlKSk7XG59XG5mdW5jdGlvbiBhZGRNb2RlKG1vZGVOYW1lOiBzdHJpbmcpIHtcblx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0d2luZG93LkNvZGVNaXJyb3IubW9kZUluZm8ucHVzaCh7XG5cdFx0bmFtZTogbW9kZU5hbWUsXG5cdFx0bWltZTogXCJ0ZXh0L1wiK21vZGVOYW1lLFxuXHRcdG1vZGU6IG1vZGVOYW1lLFxuXHRcdGV4dDogW21vZGVOYW1lXVxuXHR9KTtcbn1cbmZ1bmN0aW9uIHJlbW92ZU1vZGUobW9kZU5hbWU6IHN0cmluZykge1xuXHQvL0B0cy1leHBlY3QtZXJyb3IgVW5kb2N1bWVudGVkIE9ic2lkaWFuIEFQSVxuXHRjb25zdCBtb2RlSW5kZXggPSB3aW5kb3cuQ29kZU1pcnJvci5tb2RlSW5mby5maW5kSW5kZXgoKG1vZGUpID0+IG1vZGUubW9kZSA9PT0gbW9kZU5hbWUpO1xuXHRpZiAobW9kZUluZGV4ICE9PSAtMSlcblx0XHQvL0B0cy1leHBlY3QtZXJyb3IgVW5kb2N1bWVudGVkIE9ic2lkaWFuIEFQSVxuXHRcdHdpbmRvdy5Db2RlTWlycm9yLm1vZGVJbmZvLnNwbGljZShtb2RlSW5kZXgsIDEpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkUmVmZXJlbmNlU3ludGF4SGlnaGxpZ2h0KENvZGVNaXJyb3I6IHR5cGVvZiB3aW5kb3cuQ29kZU1pcnJvcikge1xuXHRDb2RlTWlycm9yLmRlZmluZU1vZGUoXCJyZWZlcmVuY2VcIiwgZnVuY3Rpb24oY29uZmlnLCBfcGFyc2VyQ29uZmlnKSB7XG5cdFx0Y29uc3Qga2V5UGF0dGVybiA9IC9eKFthLXpBLVowLTlfLV0rKVxccyooPz06KS87XG5cdFx0Y29uc3QgdmFsdWVQYXR0ZXJuID0gL14oOj8oXFxzKig/OlwiKD86XFxcXC58W15cIl0pKlwifFxcUyspKT8pLztcblx0XHRyZXR1cm4ge1xuXHRcdFx0c3RhcnRTdGF0ZTogKCkgPT4geyByZXR1cm4geyBpbkJsb2NrOiBmYWxzZSwgaW5kZW50OiAwIH07IH0sXG5cdFx0XHRpbmRlbnQ6IChzdGF0ZSwgdGV4dEFmdGVyKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGluZGVudFVuaXQgPSBjb25maWcuaW5kZW50VW5pdDtcblx0XHRcdFx0Y29uc3QgaW5kZW50ID0gc3RhdGUuaW5kZW50IHx8IDA7XG5cdFx0XHRcdGlmICh0ZXh0QWZ0ZXIgJiYgdGV4dEFmdGVyLnN0YXJ0c1dpdGgoXCItXCIpKSByZXR1cm4gaW5kZW50ICsgaW5kZW50VW5pdDtcblx0XHRcdFx0ZWxzZSByZXR1cm4gaW5kZW50O1xuXHRcdFx0fSxcblx0XHRcdHRva2VuOiAoc3RyZWFtLCBzdGF0ZSkgPT4ge1xuXHRcdFx0XHRpZiAoc3RyZWFtLmVhdFNwYWNlKCkpIHJldHVybiBudWxsO1xuXHRcdFx0XHRpZiAoc3RyZWFtLm1hdGNoKC9eIy4qLykpIHJldHVybiBcImNvbW1lbnRcIjtcblx0XHRcdFx0aWYgKHN0cmVhbS5tYXRjaCgvXmh0dHBzPzpcXC9cXC8uKi8pKSByZXR1cm4gXCJ2YXJpYWJsZVwiO1xuXHRcdFx0XHRpZiAoc3RyZWFtLm1hdGNoKC9eXFx3K1xcL1xcdytcXC9cXHcrXFwvXFx3KyQvKSkgcmV0dXJuIFwidmFyaWFibGVcIjtcblx0XHRcdFx0aWYgKHN0cmVhbS5tYXRjaCgvXlxcdytcXC9cXHcrXFwvXFx3KyQvKSkgcmV0dXJuIFwidmFyaWFibGVcIjtcblx0XHRcdFx0aWYgKHN0cmVhbS5tYXRjaCgvXlxcdytcXC9cXHcrJC8pKSByZXR1cm4gXCJ2YXJpYWJsZVwiO1xuXHRcdFx0XHRpZiAoc3RyZWFtLm1hdGNoKC9cXFtcXFsuK1xcXVxcXS8pKSByZXR1cm4gXCJ2YXJpYWJsZVwiO1xuXHRcdFx0XHRpZiAoc3RyZWFtLm1hdGNoKGtleVBhdHRlcm4pKSByZXR1cm4gXCJzdHJpbmdcIjtcblx0XHRcdFx0aWYgKHN0cmVhbS5tYXRjaCgvOi8pKSByZXR1cm4gXCJtZXRhXCI7XG5cdFx0XHRcdGNvbnN0IHZhbHVlTWF0Y2ggPSBzdHJlYW0ubWF0Y2godmFsdWVQYXR0ZXJuKTtcblx0XHRcdFx0aWYgKHZhbHVlTWF0Y2gpIHtcblx0XHRcdFx0XHRpZiAoLyhcIj8pXFwvLipcXC9cXDEvLmV4ZWModmFsdWVNYXRjaFsyXSkpIHJldHVybiBcIm9wZXJhdG9yXCI7XG5cdFx0XHRcdFx0aWYgKHZhbHVlTWF0Y2hbMl0uc3RhcnRzV2l0aChcIlxcXCJcIikpIHtcblx0XHRcdFx0XHRcdHN0cmVhbS5za2lwVG9FbmQoKTsgLy8gQ29uc3VtZSB0aGUgcmVzdCBvZiB0aGUgc3RyaW5nXG5cdFx0XHRcdFx0XHRyZXR1cm4gXCJwcm9wZXJ0eVwiO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoL15cXGQrKFxcLlxcZCspP1xcYi8udGVzdCh2YWx1ZU1hdGNoWzJdKSkgcmV0dXJuIFwibnVtYmVyXCI7XG5cdFx0XHRcdFx0ZWxzZSBpZiAoL14odHJ1ZXxmYWxzZXxudWxsKVxcYi8udGVzdCh2YWx1ZU1hdGNoWzJdKSkgcmV0dXJuIFwiYXRvbVwiO1xuXHRcdFx0XHRcdGVsc2UgcmV0dXJuIG51bGw7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoc3RyZWFtLnNvbCgpKSB7XG5cdFx0XHRcdFx0Y29uc3QgaW5kZW50ID0gc3RyZWFtLmluZGVudGF0aW9uKCk7XG5cdFx0XHRcdFx0aWYgKGluZGVudCA+IHN0YXRlLmluZGVudCkge1xuXHRcdFx0XHRcdFx0c3RhdGUuaW5kZW50ID0gaW5kZW50O1xuXHRcdFx0XHRcdFx0cmV0dXJuIFwiaW5kZW50XCI7XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChpbmRlbnQgPCBzdGF0ZS5pbmRlbnQpIHtcblx0XHRcdFx0XHRcdHN0YXRlLmluZGVudCA9IGluZGVudDtcblx0XHRcdFx0XHRcdHJldHVybiBcImRlZGVudFwiO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdHN0cmVhbS5uZXh0KCk7XG5cdFx0XHRcdHJldHVybiBudWxsO1xuXHRcdFx0fVxuXHRcdH07XG5cdH0pO1xuXHRDb2RlTWlycm9yLmRlZmluZU1JTUUoXCJ0ZXh0L3JlZmVyZW5jZVwiLCBcInJlZmVyZW5jZVwiKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBQUEsU0FBMkNBLElBQU1DLElBQUFBO0FBQzFCLGtCQUFBLE9BQVpDLFdBQTBDLFlBQUEsT0FBWEMsVUFDeENBLFFBQU9ELFVBQVVELEdBQUFBLElBQ1EsY0FBQSxPQUFYRyxVQUF5QkEsT0FBT0MsTUFDOUNELE9BQU8sQ0FBQSxHQUFJSCxFQUFBQSxJQUNlLFlBQUEsT0FBWkMsVUFDZEEsUUFBZSxRQUFJRCxHQUFBQSxJQUVuQkQsR0FBWSxRQUFJQyxHQUFBQTtJQUNqQixFQUFFSyxNQUFNLE9BQ1QsTUFBQTtBQUFBO0FDVEEsVUFBSUMsS0FBc0IsRUNBMUJBLEdBQXdCLENBQUNMLElBQVNNLE9BQUFBO0FBQ2pDLGlCQUFRQyxNQUFPRDtBQUNYRCxVQUFBQSxHQUFvQkcsRUFBRUYsSUFBWUMsRUFBQUEsS0FBQUEsQ0FBU0YsR0FBb0JHLEVBQUVSLElBQVNPLEVBQUFBLEtBQzVFRSxPQUFPQyxlQUFlVixJQUFTTyxJQUFLLEVBQUVJLFlBQUFBLE1BQWtCQyxLQUFLTixHQUFXQyxFQUFBQSxFQUFBQSxDQUFBQTtNQUUxRSxHQ05ERixHQUF3QixDQUFDUSxJQUFLQyxPQUFVTCxPQUFPTSxVQUFVQyxlQUFlQyxLQUFLSixJQUFLQyxFQUFBQSxH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QUFVO0FBQUEsRUFDVixZQUFZO0FBQUEsRUFDWixPQUFPO0FBQUEsRUFDUCxZQUFZO0FBQUEsRUFDWixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixTQUFTO0FBQUEsRUFDVCxVQUFVO0FBQUEsRUFDVixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxXQUFXO0FBQUEsRUFDWCxVQUFVO0FBQUEsRUFDVixNQUFNO0FBQUEsRUFDTixVQUFVO0FBQUEsRUFDVixPQUFPO0FBQUEsRUFDUCxZQUFZO0FBQUEsRUFDWixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxZQUFZO0FBQUEsRUFDWixRQUFRO0FBQUEsRUFDUixTQUFTO0FBQUEsRUFDVCxTQUFTO0FBQUEsRUFDVCxVQUFVO0FBQUEsRUFDVixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxjQUFjO0FBQUEsRUFDZCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxhQUFhO0FBQUEsRUFDYixPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixVQUFVO0FBQUEsRUFDVixpQkFBaUI7QUFBQSxFQUNqQixZQUFZO0FBQUEsRUFDWixjQUFjO0FBQUEsRUFDZCxPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixRQUFRO0FBQUEsRUFDUixnQkFBZ0I7QUFBQSxFQUNoQixPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxpQkFBaUI7QUFBQSxFQUNqQixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDViw0QkFBNEI7QUFBQSxFQUM1QixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxxQkFBcUI7QUFBQSxFQUNyQixPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxZQUFZO0FBQUEsRUFDWixVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxNQUFNO0FBQUEsRUFDTixRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxpQkFBaUI7QUFBQSxFQUNqQixNQUFNO0FBQUEsRUFDTixhQUFhO0FBQUEsRUFDYixVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixhQUFhO0FBQUEsRUFDYixzQkFBc0I7QUFBQSxFQUN0QixPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixhQUFhO0FBQUEsRUFDYixZQUFZO0FBQUEsRUFDWixhQUFhO0FBQUEsRUFDYixXQUFXO0FBQUEsRUFDWCxXQUFXO0FBQUEsRUFDWCxlQUFlO0FBQUEsRUFDZixrQkFBa0I7QUFBQSxFQUNsQixNQUFNO0FBQUEsRUFDTixTQUFTO0FBQUEsRUFDVCxhQUFhO0FBQUEsRUFDYixRQUFRO0FBQUEsRUFDUixlQUFlO0FBQUEsRUFDZixTQUFTO0FBQUEsRUFDVCxTQUFTO0FBQUEsRUFDVCxnQkFBZ0I7QUFBQSxFQUNoQixnQkFBZ0I7QUFBQSxFQUNoQixjQUFjO0FBQUEsRUFDZCxPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxXQUFXO0FBQUEsRUFDWCxZQUFZO0FBQUEsRUFDWixNQUFNO0FBQUEsRUFDTixTQUFTO0FBQUEsRUFDVCxTQUFTO0FBQUEsRUFDVCxjQUFjO0FBQUEsRUFDZCxRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxXQUFXO0FBQUEsRUFDWCxTQUFTO0FBQUEsRUFDVCxNQUFNO0FBQUEsRUFDTixxQkFBcUI7QUFBQSxFQUNyQixVQUFVO0FBQUEsRUFDVixhQUFhO0FBQUEsRUFDYixPQUFPO0FBQUEsRUFDUCxZQUFZO0FBQUEsRUFDWixXQUFXO0FBQUEsRUFDWCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixTQUFTO0FBQUEsRUFDVCxtQkFBbUI7QUFBQSxFQUNuQixjQUFjO0FBQUEsRUFDZCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixTQUFTO0FBQUEsRUFDVCxRQUFRO0FBQUEsRUFDUixjQUFjO0FBQUEsRUFDZCxRQUFRO0FBQUEsRUFDUixTQUFTO0FBQUEsRUFDVCxVQUFVO0FBQUEsRUFDVixZQUFZO0FBQUEsRUFDWixRQUFRO0FBQUEsRUFDUixVQUFVO0FBQUEsRUFDVixnQkFBZ0I7QUFBQSxFQUNoQixPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixNQUFNO0FBQUEsRUFDTixjQUFjO0FBQUEsRUFDZCxTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixjQUFjO0FBQUEsRUFDZCxhQUFhO0FBQUEsRUFDYixZQUFZO0FBQUEsRUFDWixTQUFTO0FBQUEsRUFDVCxjQUFjO0FBQUEsRUFDZCxNQUFNO0FBQUEsRUFDTixXQUFXO0FBQUEsRUFDWCxjQUFjO0FBQUEsRUFDZCxVQUFVO0FBQUEsRUFDVixjQUFjO0FBQUEsRUFDZCxZQUFZO0FBQUEsRUFDWixhQUFhO0FBQUEsRUFDYixVQUFVO0FBQUEsRUFDVixRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixVQUFVO0FBQUEsRUFDVixNQUFNO0FBQUEsRUFDTixLQUFLO0FBQUEsRUFDTCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixrQkFBa0I7QUFBQSxFQUNsQixTQUFTO0FBQUEsRUFDVCxNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixpQkFBaUI7QUFBQSxFQUNqQixjQUFjO0FBQUEsRUFDZCxnQkFBZ0I7QUFBQSxFQUNoQixPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxZQUFZO0FBQUEsRUFDWixPQUFPO0FBQUEsRUFDUCxpQkFBaUI7QUFBQSxFQUNqQixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixNQUFNO0FBQUEsRUFDTixjQUFjO0FBQUEsRUFDZCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxTQUFTO0FBQUEsRUFDVCxpQkFBaUI7QUFBQSxFQUNqQixVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxpQkFBaUI7QUFBQSxFQUNqQixTQUFTO0FBQUEsRUFDVCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixXQUFXO0FBQUEsRUFDWCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixZQUFZO0FBQUEsRUFDWixXQUFXO0FBQUEsRUFDWCxNQUFNO0FBQUEsRUFDTixXQUFXO0FBQUEsRUFDWCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxnQkFBZ0I7QUFBQSxFQUNoQixPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixRQUFRO0FBQUEsRUFDUixXQUFXO0FBQUEsRUFDWCxVQUFVO0FBQUEsRUFDVixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixXQUFXO0FBQUEsRUFDWCxNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixhQUFhO0FBQUEsRUFDYixXQUFXO0FBQUEsRUFDWCxR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Y0FBYTtBQUFBLEVBQ2IsUUFBTztBQUFBLEVBQ1AsU0FBUTtBQUFBLEVBQ1IsUUFBTztBQUFBLEVBQ1AsVUFBUztBQUFBLEVBQ1QsWUFBVztBQUFBLEVBQ1gsUUFBTztBQUFBLEVBQ1AsTUFBSztBQUFBLEVBQ0wsVUFBUztBQUFBLEVBQ1QsVUFBUztBQUFBLEVBQ1QsVUFBUztBQUFBLEVBQ1QsYUFBWTtBQUFBLEVBQ1osT0FBTTtBQUFBLEVBQ04sVUFBUztBQUFBLEVBQ1QsTUFBSztBQUFBLEVBQ0wsY0FBYTtBQUFBLEVBQ2IsU0FBUTtBQUFBLEVBQ1IsUUFBTztBQUFBLEVBQ1AsT0FBTTtBQUFBLEVBQ04sVUFBUztBQUFBLEVBQ1QsY0FBYTtBQUFBLEVBQ2IsYUFBWTtBQUFBLEVBQ1osWUFBVztBQUFBLEVBQ1gsU0FBUTtBQUFBLEVBQ1IsY0FBYTtBQUFBLEVBQ2IsTUFBSztBQUFBLEVBQ0wsV0FBVTtBQUFBLEVBQ1YsY0FBYTtBQUFBLEVBQ2IsY0FBYTtBQUFBLEVBQ2IsVUFBUztBQUFBLEVBQ1QsVUFBUztBQUFBLEVBQ1QsY0FBYTtBQUFBLEVBQ2IsWUFBVztBQUFBLEVBQ1gsT0FBTTtBQUFBLEVBQ04sVUFBUztBQUFBLEVBQ1QsUUFBTztBQUFBLEVBQ1AsYUFBWTtBQUFBLEVBQ1osVUFBUztBQUFBLEVBQ1QsY0FBYTtBQUFBLEVBQ2IsUUFBTztBQUFBLEVBQ1AsVUFBUztBQUFBLEVBQ1QsTUFBSztBQUFBLEVBQ0wsVUFBUztBQUFBLEVBQ1QsTUFBSztBQUFBLEVBQ0wsS0FBSTtBQUFBLEVBQ0osT0FBTTtBQUFBLEVBQ04sUUFBTztBQUFBLEVBQ1AsS0FBSTtBQUFBLEVBQ0osVUFBUztBQUFBLEVBQ1QsT0FBTTtBQUFBLEVBQ04sVUFBUztBQUFBLEVBQ1QsT0FBTTtBQUFBLEVBQ04sT0FBTTtBQUFBLEVBQ04sVUFBUztBQUFBLEVBQ1QsU0FBUTtBQUFBLEVBQ1IsUUFBTztBQUFBLEVBQ1AsU0FBUTtBQUFBLEVBQ1IsT0FBTTtBQUFBLEVBQ04sWUFBVztBQUFBLEVBQ1gsT0FBTTtBQUFBLEVBQ04s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UDtBQUFBLEVBQ0EsZ0JBQWdCO0FBQUEsSUFDZixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsY0FBYztBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFVBQVU7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxZQUFZO0FBQUEsSUFDWCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ04sUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFNBQVM7QUFBQSxJQUNSLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxNQUFNO0FBQUEsSUFDTCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsS0FBSztBQUFBLElBQ0osUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ04sUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsV0FBVztBQUFBLElBQ1YsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFNBQVM7QUFBQSxJQUNSLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsZ0JBQWdCO0FBQUEsSUFDZixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsV0FBVztBQUFBLElBQ1YsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxPQUFPO0FBQUEsSUFDTixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsS0FBSztBQUFBLElBQ0osUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFNBQVM7QUFBQSxJQUNSLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsaUJBQWlCO0FBQUEsSUFDaEIsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFVBQVU7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxrQkFBa0I7QUFBQSxJQUNqQixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsZ0JBQWdCO0FBQUEsSUFDZixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ04sUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFVBQVU7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxPQUFPO0FBQUEsSUFDTixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ04sUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFVBQVU7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxNQUFNO0FBQUEsSUFDTCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsNEJBQTRCO0FBQUEsSUFDM0IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxXQUFXO0FBQUEsSUFDVixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsZ0NBQWdDO0FBQUEsSUFDL0IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLHNCQUFzQjtBQUFBLElBQ3JCLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxVQUFVO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsWUFBWTtBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsYUFBYTtBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE1BQU07QUFBQSxJQUNMLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxVQUFVO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsV0FBVztBQUFBLElBQ1YsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFVBQVU7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsY0FBYztBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFdBQVc7QUFBQSxJQUNWLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxNQUFNO0FBQUEsSUFDTCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsY0FBYztBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFNBQVM7QUFBQSxJQUNSLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFNBQVM7QUFBQSxJQUNSLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsSUFDTixlQUFlO0FBQUEsTUFDZDtBQUFBLElBQ0Q7QUFBQSxFQUNEO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxjQUFjO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsWUFBWTtBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFdBQVc7QUFBQSxJQUNWLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxPQUFPO0FBQUEsSUFDTixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsSUFDTixlQUFlO0FBQUEsTUFDZDtBQUFBLElBQ0Q7QUFBQSxFQUNEO0FBQUEsRUFDQSxZQUFZO0FBQUEsSUFDWCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsYUFBYTtBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxXQUFXO0FBQUEsSUFDVixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxJQUNOLGVBQWU7QUFBQSxNQUNkO0FBQUEsSUFDRDtBQUFBLEVBQ0Q7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsaUJBQWlCO0FBQUEsSUFDaEIsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLGVBQWU7QUFBQSxJQUNkLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFVBQVU7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxVQUFVO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ04sUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxNQUNBO0FBQUEsSUFDRDtBQUFBLEVBQ0Q7QUFBQSxFQUNBLFVBQVU7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxjQUFjO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsWUFBWTtBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLGNBQWM7QUFBQSxJQUNiLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxjQUFjO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsSUFDTixlQUFlO0FBQUEsTUFDZDtBQUFBLElBQ0Q7QUFBQSxFQUNEO0FBQUEsRUFDQSxjQUFjO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLG9CQUFvQjtBQUFBLElBQ25CLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxPQUFPO0FBQUEsSUFDTixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLGNBQWM7QUFBQSxJQUNiLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxVQUFVO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsSUFDTixlQUFlO0FBQUEsTUFDZDtBQUFBLElBQ0Q7QUFBQSxFQUNEO0FBQUEsRUFDQSxxQkFBcUI7QUFBQSxJQUNwQixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsTUFBTTtBQUFBLElBQ0wsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxLQUFLO0FBQUEsSUFDSixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsSUFDTixlQUFlO0FBQUEsTUFDZDtBQUFBLElBQ0Q7QUFBQSxFQUNEO0FBQUEsRUFDQSxVQUFVO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsWUFBWTtBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLGFBQWE7QUFBQSxJQUNaLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxhQUFhO0FBQUEsSUFDWixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxZQUFZO0FBQUEsSUFDWCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsMkJBQTJCO0FBQUEsSUFDMUIsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLG1CQUFtQjtBQUFBLElBQ2xCLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsSUFDTixlQUFlO0FBQUEsTUFDZDtBQUFBLElBQ0Q7QUFBQSxFQUNEO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ04sUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLGVBQWU7QUFBQSxJQUNkLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxlQUFlO0FBQUEsSUFDZCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLGlCQUFpQjtBQUFBLElBQ2hCLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLHVCQUF1QjtBQUFBLElBQ3RCLFFBQVE7QUFBQSxJ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QUVKLEVBQUM7QUFBQSxJQUFFLEtBQUssRUFBRTtBQUFJLGFBQU9HLEtBQUUsS0FBSyxLQUFLRCxJQUFFTCxJQUFFRSxJQUFFSyxJQUFFSixFQUFDLElBQUUsS0FBSyxJQUFJRSxJQUFFTCxJQUFFRSxJQUFFSyxJQUFFSixFQUFDO0FBQUEsRUFBQztBQUFDLEVBQUMsR0FBRyxFQUFFLEdBQUcsSUFBRSxTQUFTSixJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsU0FBT0YsR0FBRUQsSUFBRUUsRUFBQyxFQUFFLElBQUssU0FBU0YsSUFBRTtBQUFDLFdBQU9HLEtBQUUsRUFBRSxJQUFJLEVBQUVILEdBQUUsR0FBRUEsR0FBRSxHQUFFQSxHQUFFLENBQUMsQ0FBQyxJQUFFLEdBQUcsSUFBSSxFQUFFQSxHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxDQUFDLENBQUM7QUFBQSxFQUFDLENBQUU7QUFBQyxHQUFFLEVBQUUsT0FBSyxTQUFTQyxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsU0FBT0YsR0FBRUQsSUFBRUUsRUFBQyxFQUFFLElBQUssU0FBU0YsSUFBRTtBQUFDLFdBQU9HLEtBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUUsRUFBRUgsR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsQ0FBQyxDQUFDLEdBQUUsRUFBQyxHQUFFLE1BQUksR0FBR0EsR0FBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUUsRUFBRUEsR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsQ0FBQyxDQUFDLEdBQUUsRUFBQyxHQUFFLEdBQUdBLEdBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQztBQUFBLEVBQUMsQ0FBRTtBQUFDLEdBQUUsRUFBRSxFQUFFLEdBQUcsSUFBRSxTQUFTRCxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsU0FBT0gsR0FBRUQsSUFBRUUsRUFBQyxFQUFFLElBQUssU0FBU0YsSUFBRTtBQUFDLFdBQU9HLEtBQUUsRUFBRSxJQUFJLEVBQUVILEdBQUUsR0FBRUEsR0FBRSxHQUFFQSxHQUFFLENBQUMsR0FBRUksRUFBQyxJQUFFLEdBQUcsSUFBSSxFQUFFSixHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxDQUFDLEdBQUVJLEdBQUUsUUFBUTtBQUFBLEVBQUMsQ0FBRTtBQUFDLEdBQUUsRUFBRSxPQUFLLFNBQVNILElBQUVDLElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxTQUFPSCxHQUFFRCxJQUFFRSxFQUFDLEVBQUUsSUFBSyxTQUFTRixJQUFFO0FBQUMsV0FBT0csS0FBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRSxFQUFFSCxHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxDQUFDLENBQUMsR0FBRSxFQUFDLEdBQUUsR0FBR0EsR0FBRSxDQUFDLEVBQUMsQ0FBQyxHQUFFSSxFQUFDLElBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUUsRUFBRUosR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsQ0FBQyxDQUFDLEdBQUUsRUFBQyxHQUFFLEdBQUdBLEdBQUUsQ0FBQyxFQUFDLENBQUMsR0FBRUksR0FBRSxRQUFRO0FBQUEsRUFBQyxDQUFFO0FBQUMsR0FBRSxFQUFFLEVBQUUsR0FBRyxJQUFFLFNBQVNMLElBQUVDLElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxTQUFPSCxHQUFFRCxJQUFFRSxFQUFDLEVBQUUsSUFBSyxTQUFTRixJQUFFO0FBQUMsV0FBT0csS0FBRSxFQUFFLElBQUksRUFBQyxHQUFFSCxHQUFFLEdBQUUsR0FBRUEsR0FBRSxHQUFFLEdBQUVBLEdBQUUsRUFBQyxHQUFFSSxFQUFDLElBQUUsR0FBRyxJQUFJLEVBQUVKLEdBQUUsR0FBRUEsR0FBRSxHQUFFQSxHQUFFLENBQUMsR0FBRUksR0FBRSxRQUFRO0FBQUEsRUFBQyxDQUFFO0FBQUMsR0FBRSxFQUFFLE9BQUssU0FBU0gsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFNBQU9ILEdBQUVELElBQUVF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QUUsR0FBRSxFQUFFQSxHQUFFLENBQUMsR0FBRSxHQUFFLEVBQUVBLEdBQUUsR0FBRSxHQUFFLENBQUMsRUFBQztBQUFDLEVBQUMsR0FBRyxFQUFFLEdBQUcsSUFBRSxTQUFTSCxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsTUFBSUMsS0FBRSxLQUFLLElBQUlILElBQUVDLEVBQUM7QUFBRSxTQUFPLE9BQU9FLEdBQUUsR0FBRUQsS0FBRSxFQUFFLElBQUlDLEVBQUMsSUFBRSxHQUFHLElBQUlBLEVBQUM7QUFBQyxHQUFFLEVBQUUsT0FBSyxTQUFTSCxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsTUFBSUMsS0FBRSxLQUFLLElBQUlILElBQUVDLEVBQUM7QUFBRSxTQUFPRSxHQUFFLElBQUVELEtBQUUsTUFBSSxHQUFHQyxHQUFFLENBQUMsSUFBRSxHQUFHQSxHQUFFLENBQUMsR0FBRUQsS0FBRSxFQUFFLElBQUlDLEVBQUMsSUFBRSxHQUFHLEtBQUtBLEVBQUM7QUFBQyxHQUFFLEVBQUUsRUFBRSxHQUFHLElBQUUsU0FBU0gsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLE1BQUlDLEtBQUUsS0FBSyxJQUFJSixJQUFFQyxFQUFDO0FBQUUsU0FBTyxPQUFPRyxHQUFFLEdBQUVGLEtBQUUsRUFBRSxJQUFJRSxJQUFFRCxFQUFDLElBQUUsR0FBRyxJQUFJQyxJQUFFRCxHQUFFLFFBQVE7QUFBQyxHQUFFLEVBQUUsT0FBSyxTQUFTSCxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsTUFBSUMsS0FBRSxLQUFLLElBQUlKLElBQUVDLEVBQUM7QUFBRSxTQUFPQyxLQUFFLEVBQUUsSUFBSUUsSUFBRUQsRUFBQyxJQUFFLEdBQUcsS0FBS0MsSUFBRUQsR0FBRSxRQUFRO0FBQUMsR0FBRSxFQUFFLEVBQUUsR0FBRyxJQUFFLFNBQVNILElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxNQUFJQyxLQUFFLEtBQUssSUFBSUosSUFBRUMsRUFBQyxHQUFFSSxLQUFFLEVBQUVELEdBQUUsR0FBRUEsR0FBRSxHQUFFQSxH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LFdBQU8sS0FBSyxVQUFVLEdBQUUsS0FBSyxXQUFXLEdBQUU7QUFBQSxFQUFJLEdBQUVBLEdBQUUsVUFBVSxrQkFBZ0IsV0FBVTtBQUFDLFdBQU8sS0FBSyxrQkFBa0IsR0FBRSxLQUFLLFVBQVUsR0FBRTtBQUFBLEVBQUksR0FBRUEsR0FBRSxVQUFVLGFBQVcsU0FBU0QsSUFBRTtBQUFDLFdBQU8sV0FBU0EsT0FBSUEsS0FBRSxDQUFDLElBQUcsS0FBSyxXQUFTLEVBQUUsRUFBRSxDQUFDLEdBQUUsS0FBSyxRQUFRLEdBQUVBLEVBQUMsR0FBRTtBQUFBLEVBQUksR0FBRUMsR0FBRSxVQUFVLE9BQUssU0FBU0YsSUFBRTtBQUFDLFdBQU8sS0FBSyxJQUFJLElBQUUsRUFBRUEsRUFBQyxHQUFFLEtBQUssaUJBQWlCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssaUJBQWlCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssaUJBQWlCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssaUJBQWlCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssaUJBQWlCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssaUJBQWlCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsQ0FBQyxHQUFFO0FBQUEsRUFBSSxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLEtBQUssSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssZ0JBQWdCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLEtBQUssSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssZ0JBQWdCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLEtBQUssSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssZ0JBQWdCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLEtBQUssSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssZ0JBQWdCO0FBQUEsRUFBQyxHQUFFLE9BQU8sZUFBZUUsR0FBRSxXQUFVLFdBQVUsRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEtBQUs7QUFBQSxFQUFRLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsS0FBSSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxLQUFJLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssSUFBSSxHQUFFLEtBQUssUUFBUSxRQUFRO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLEtBQUksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsS0FBSyxJQUFJLEdBQUUsS0FBSyxRQUFRLFFBQVE7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsS0FBSSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxLQUFJLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssSUFBSSxHQUFFLEtBQUssUUFBUSxRQUFRO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLEtBQUksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsS0FBSyxJQUFJLEdBQUUsS0FBSyxRQUFRLFFBQVE7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsS0FBSSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxLQUFJLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssS0FBSyxHQUFFLEtBQUssUUFBUSxRQUFRO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLEtBQUksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsS0FBSyxLQUFLLEdBQUUsS0FBSyxRQUFRLFFBQVE7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsS0FBSSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxLQUFLLEtBQUssR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxLQUFJLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssS0FBSyxHQUFFLEtBQUssUUFBUSxRQUFRO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLGFBQVksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEdBQUcsSUFBSSxLQUFLLEdBQUc7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsY0FBYSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sR0FBRyxLQUFLLEtBQUssR0FBRztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxhQUFZLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTSxFQUFDLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxFQUFDO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLGNBQWEsRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUUsS0FBSyxTQUFTLEdBQUUsRUFBQyxHQUFFLEtBQUssRUFBQyxDQUFDO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLGFBQVksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFNLEVBQUMsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEVBQUM7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsY0FBYSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxFQUFFLENBQUMsR0FBRSxLQUFLLFNBQVMsR0FBRSxFQUFDLEdBQUUsS0FBSyxFQUFDLENBQUM7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsY0FBYSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU0sRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxlQUFjLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFFLEtBQUssVUFBVSxHQUFFLEVBQUMsR0FBRSxLQUFLLEVBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxPQUFNLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLElBQUksRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxDQUFDO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLFFBQU8sRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsSUFBSSxFQUFDLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsTUFBSSxLQUFLLEVBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxPQUFNLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLElBQUksRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxRQUFPLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLElBQUksRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxPQUFNLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLElBQUksRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxRQUFPLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLElBQUksRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxRQUFPLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxTQUFRLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRUEsR0FBRSxjQUFZLFNBQVNGLElBQUU7QUFBQyxRQUFJQyxLQUFFLEdBQUdELEVBQUM7QUFBRSxXQUFPLEdBQUdBLElBQUVDLElBQUUsR0FBRSxHQUFHLEdBQUc7QUFBQSxFQUFDLEdBQUVDLEdBQUUsUUFBTSxTQUFTRixJQUFFO0FBQUMsV0FBTyxFQUFFLElBQUlFLEdBQUUsWUFBWUYsRUFBQyxDQUFDO0FBQUEsRUFBQyxHQUFFRSxHQUFFLGVBQWEsU0FBU0YsSUFBRTtBQUFDLFFBQUlDLEtBQUUsR0FBR0QsRUFBQztBQUFFLFdBQU8sR0FBR0EsSUFBRUMsSUFBRSxHQUFFLEdBQUcsSUFBSTtBQUFBLEVBQUMsR0FBRUMsR0FBRSxTQUFPLFNBQVNGLElBQUU7QUFBQyxXQUFPLEVBQUUsSUFBSUUsR0FBRSxhQUFhRixFQUFDLENBQUM7QUFBQSxFQUFDLEdBQUVFLEdBQUUsY0FBWSxTQUFTRixJQUFFQyxJQUFFO0FBQUMsZUFBU0EsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxHQUFHRixFQUFDO0FBQUUsV0FBTyxHQUFHQSxJQUFFRSxJQUFFRCxHQUFFLFVBQVMsR0FBRyxHQUFHO0FBQUEsRUFBQyxHQUFFQyxHQUFFLFFBQU0sU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQyxHQUFFRyxLQUFFLEVBQUVGLElBQUVELEVBQUMsR0FBRUksS0FBRSxHQUFHSixJQUFFRSxJQUFFLEdBQUUsR0FBRyxHQUFHO0FBQUUsV0FBTyxFQUFFLElBQUlFLElBQUVELEVBQUM7QUFBQSxFQUFDLEdBQUVELEdBQUUsZUFBYSxTQUFTRixJQUFFQyxJQUFFO0FBQUMsZUFBU0EsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxHQUFHRixFQUFDO0FBQUUsV0FBTyxHQUFHQSxJQUFFRSxJQUFFRCxHQUFFLFVBQVMsR0FBRyxJQUFJO0FBQUEsRUFBQyxHQUFFQyxHQUFFLFNBQU8sU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQyxHQUFFRyxLQUFFLEVBQUVGLElBQUVELEVBQUMsR0FBRUksS0FBRSxHQUFHSixJQUFFRSxJQUFFLEdBQUUsR0FBRyxJQUFJO0FBQUUsV0FBTyxFQUFFLElBQUlFLElBQUVELEVBQUM7QUFBQSxFQUFDLEdBQUVELEdBQUUsY0FBWSxTQUFTRixJQUFFQyxJQUFFO0FBQUMsZUFBU0EsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxHQUFHRixFQUFDO0FBQUUsV0FBTyxHQUFHQSxJQUFFRSxJQUFFRCxHQUFFLFVBQVMsR0FBRyxHQUFHO0FBQUEsRUFBQyxHQUFFQyxHQUFFLFFBQU0sU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQyxHQUFFRyxLQUFFLEVBQUVGLElBQUVELEVBQUMsR0FBRUksS0FBRSxHQUFHSixJQUFFRSxJQUFFLEdBQUUsR0FBRyxHQUFHO0FBQUUsV0FBTyxFQUFFLElBQUlFLElBQUVELEVBQUM7QUFBQSxFQUFDLEdBQUVELEdBQUUsZUFBYSxTQUFTRixJQUFFQyxJQUFFO0FBQUMsZUFBU0EsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxHQUFHRixFQUFDO0FBQUUsV0FBTyxHQUFHQSxJQUFFRSxJQUFFRCxHQUFFLFVBQVMsR0FBRyxJQUFJO0FBQUEsRUFBQyxHQUFFQyxHQUFFLFNBQU8sU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQyxHQUFFRyxLQUFFLEVBQUVGLElBQUVELEVBQUMsR0FBRUksS0FBRSxHQUFHSixJQUFFRSxJQUFFLEdBQUUsR0FBRyxJQUFJO0FBQUUsV0FBTyxFQUFFLElBQUlFLElBQUVELEVBQUM7QUFBQSxFQUFDLEdBQUVELEdBQUUsZUFBYSxTQUFTRixJQUFFQyxJQUFFO0FBQUMsZUFBU0EsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxHQUFHRixFQUFDO0FBQUUsV0FBTyxHQUFHQSxJQUFFRSxJQUFFRCxHQUFFLFVBQVMsR0FBRyxJQUFJO0FBQUEsRUFBQyxHQUFFQyxHQUFFLFNBQU8sU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQyxHQUFFRyxLQUFFLEVBQUVGLElBQUVELEVBQUMsR0FBRUksS0FBRSxHQUFHSixJQUFFRSxJQUFFLEdBQUUsR0FBRyxJQUFJO0FBQUUsV0FBTyxFQUFFLEtBQUtFLElBQUVELEVBQUM7QUFBQSxFQUFDLEdBQUVELEdBQUUsZ0JBQWMsU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQztBQUFFLFdBQU8sR0FBR0EsSUFBRUUsSUFBRUQsR0FBRSxVQUFTLEdBQUcsS0FBSztBQUFBLEVBQUMsR0FBRUMsR0FBRSxVQUFRLFNBQVNGLElBQUVDLElBQUU7QUFBQyxlQUFTQSxPQUFJQSxLQUFFLENBQUM7QUFBRyxRQUFJQyxLQUFFLEdBQUdGLEVBQUMsR0FBRUcsS0FBRSxFQUFFRixJQUFFRCxFQUFDLEdBQUVJLEtBQUUsR0FBR0osSUFBRUUsSUFBRSxHQUFFLEdBQUcsS0FBSztBQUFFLFdBQU8sRUFBRSxLQUFLRSxJQUFFRCxFQUFDO0FBQUEsRUFBQyxHQUFFRCxHQUFFLG9CQUFrQixTQUFTRixJQUFFQyxJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTQSxPQUFJQSxLQUFFLElBQUcsR0FBR0YsSUFBRUMsSUFBRUMsSUFBRSxHQUFFLEdBQUcsR0FBRztBQUFBLEVBQUMsR0FBRUEsR0FBRSxjQUFZLFNBQVNGLElBQUVDLElBQUVFLElBQUU7QUFBQyxXQUFPLFdBQVNBLE9BQUlBLEtBQUUsSUFBR0QsR0FBRSxrQkFBa0JGLElBQUVDLElBQUVFLEVBQUMsRUFBRSxJQUFLLFNBQVNILElBQUU7QUFBQyxhQUFPLEVBQUUsSUFBSUEsRUFBQztBQUFBLElBQUMsQ0FBRTtBQUFBLEVBQUMsR0FBRUUsR0FBRSxxQkFBbUIsU0FBU0YsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFdBQU8sV0FBU0EsT0FBSUEsS0FBRSxJQUFHLEdBQUdGLElBQUVDLElBQUVDLElBQUUsR0FBRSxHQUFHLElBQUk7QUFBQSxFQUFDLEdBQUVBLEdBQUUsZUFBYSxTQUFTRixJQUFFQyxJQUFFRSxJQUFFO0FBQUMsV0FBTyxXQUFTQSxPQUFJQSxLQUFFLElBQUdELEdBQUUsbUJBQW1CRixJQUFFQyxJQUFFRSxFQUFDLEVBQUUsSUFBSyxTQUFTSCxJQUFFO0FBQUMsYUFBTyxFQUFFLElBQUlBLEVBQUM7QUFBQSxJQUFDLENBQUU7QUFBQSxFQUFDLEdBQUVFLEdBQUUsb0JBQWtCLFNBQVNGLElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsSUFBRyxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHSCxJQUFFQyxJQUFFQyxJQUFFQyxHQUFFLFVBQVMsR0FBRyxHQUFHO0FBQUEsRUFBQyxHQUFFRCxHQUFFLGNBQVksU0FBU0YsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFdBQU8sV0FBU0QsT0FBSUEsS0FBRSxJQUFHLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUdILElBQUVDLElBQUVDLElBQUUsR0FBRSxHQUFHLEdBQUcsRUFBRSxJQUFLLFNBQVNBLElBQUU7QUFBQyxhQUFPLEVBQUUsSUFBSUEsSUFBRSxFQUFFQyxJQUFFSCxJQUFFQyxFQUFDLENBQUM7QUFBQSxJQUFDLENBQUU7QUFBQSxFQUFDLEdBQUVDLEdBQUUscUJBQW1CLFNBQVNGLElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsSUFBRyxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHSCxJQUFFQyxJQUFFQyxJQUFFQyxHQUFFLFVBQVMsR0FBRyxJQUFJO0FBQUEsRUFBQyxHQUFFRCxHQUFFLGVBQWEsU0FBU0YsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFdBQU8sV0FBU0QsT0FBSUEsS0FBRSxJQUFHLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUdILElBQUVDLElBQUVDLElBQUUsR0FBRSxHQUFHLElBQUksRUFBRSxJQUFLLFNBQVNBLElBQUU7QUFBQyxhQUFPLEVBQUUsSUFBSUEsSUFBRSxFQUFFQyxJQUFFSCxJQUFFQyxFQUFDLENBQUM7QUFBQSxJQUFDLENBQUU7QUFBQSxFQUFDLEdBQUVDLEdBQUUsb0JBQWtCLFNBQVNGLElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsSUFBRyxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHSCxJQUFFQyxJQUFFQyxJQUFFQyxHQUFFLFVBQVMsR0FBRyxHQUFHO0FBQUEsRUFBQyxHQUFFRCxHQUFFLGNBQVksU0FBU0YsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLGVBQVNELE9BQUlBLEtBQUUsSUFBRyxXQUFTQyxPQUFJQSxLQUFFLENBQUM7QUFBRyxRQUFJQyxLQUFFLEVBQUVELElBQUVILElBQUVDLEVBQUM7QUFBRSxXQUFPLEdBQUdELElBQUVDLElBQUVDLElBQUUsR0FBRSxHQUFHLEdBQUcsRUFBRSxJQUFLLFNBQVNGLElBQUU7QUFBQyxhQUFPLEVBQUUsSUFBSUEsSUFBRUksRUFBQztBQUFBLElBQUMsQ0FBRTtBQUFBLEVBQUMsR0FBRUYsR0FBRSxxQkFBbUIsU0FBU0YsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFdBQU8sV0FBU0QsT0FBSUEsS0FBRSxJQUFHLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUdILElBQUVDLElBQUVDLElBQUVDLEdBQUUsVUFBUyxHQUFHLElBQUk7QUFBQSxFQUFDLEdBQUVELEdBQUUsZUFBYSxTQUFTRixJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsZUFBU0QsT0FBSUEsS0FBRSxJQUFHLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsRUFBRUQsSUFBRUgsSUFBRUMsRUFBQztBQUFFLFdBQU8sR0FBR0QsSUFBRUMsSUFBRUMsSUFBRSxHQUFFLEdBQUcsSUFBSSxFQUFFLElBQUssU0FBU0YsSUFBRTtBQUFDLGFBQU8sRUFBRSxJQUFJQSxJQUFFSSxFQUFDO0FBQUEsSUFBQyxDQUFFO0FBQUEsRUFBQyxHQUFFRixHQUFFLGtCQUFnQixTQUFTRixJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTQSxPQUFJQSxLQUFFLEVBQUUsV0FBVSxHQUFHLElBQUlELElBQUVDLElBQUUsS0FBRTtBQUFBLEVBQUMsR0FBRUMsR0FBRSxZQUFVLFNBQVNGLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNBLE9BQUlBLEtBQUUsRUFBRSxXQUFVLEdBQUcsSUFBSUQsSUFBRUMsSUFBRSxJQUFFO0FBQUEsRUFBQyxHQUFFQyxHQUFFLG1CQUFpQixTQUFTRixJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTQSxPQUFJQSxLQUFFLEVBQUUsV0FBVSxHQUFHLEtBQUtELElBQUVDLElBQUUsS0FBRTtBQUFBLEVBQUMsR0FBRUMsR0FBRSxhQUFXLFNBQVNGLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNBLE9BQUlBLEtBQUUsRUFBRSxXQUFVLEdBQUcsS0FBS0QsSUFBRUMsSUFBRSxJQUFFO0FBQUEsRUFBQyxHQUFFQyxHQUFFLGtCQUFnQixTQUFTRixJQUFFRSxJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTRCxPQUFJQSxLQUFFLEVBQUUsV0FBVSxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHLElBQUlILElBQUVFLElBQUUsT0FBRyxFQUFFLE1BQU0sUUFBTyxFQUFFLENBQUNDLEVBQUMsR0FBRUgsSUFBRSxLQUFFLENBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRUUsR0FBRSxZQUFVLFNBQVNGLElBQUVFLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsRUFBRSxXQUFVLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUcsSUFBSUgsSUFBRUUsSUFBRSxNQUFHLEVBQUUsTUFBTSxRQUFPLEVBQUUsQ0FBQ0MsRUFBQyxHQUFFSCxJQUFFLEtBQUUsQ0FBQyxDQUFDO0FBQUEsRUFBQyxHQUFFRSxHQUFFLG1CQUFpQixTQUFTRixJQUFFRSxJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTRCxPQUFJQSxLQUFFLEVBQUUsV0FBVSxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHLEtBQUtILElBQUVFLElBQUUsT0FBRyxFQUFFLE1BQU0sUUFBTyxFQUFFLENBQUNDLEVBQUMsR0FBRUgsSUFBRSxLQUFFLENBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRUUsR0FBRSxhQUFXLFNBQVNGLElBQUVFLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsRUFBRSxXQUFVLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUcsS0FBS0gsSUFBRUUsSUFBRSxNQUFHLEVBQUUsTUFBTSxRQUFPLEVBQUUsQ0FBQ0MsRUFBQyxHQUFFSCxJQUFFLEtBQUUsQ0FBQyxDQUFDO0FBQUEsRUFBQyxHQUFFRSxHQUFFLGtCQUFnQixTQUFTRixJQUFFRSxJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTRCxPQUFJQSxLQUFFLEVBQUUsV0FBVSxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHLElBQUlILElBQUVFLElBQUUsT0FBRyxFQUFFLE1BQU0sUUFBTyxFQUFFLENBQUNDLEVBQUMsR0FBRUgsSUFBRSxLQUFFLENBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRUUsR0FBRSxZQUFVLFNBQVNGLElBQUVFLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9B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LElBQ1YsU0FBUztBQUFBLElBQ1QsV0FBVztBQUFBLElBQ1gsSUFBSTtBQUFBLElBQ0osWUFBWTtBQUFBLElBQ1osYUFBYTtBQUFBLElBQ2IsT0FBTztBQUFBLElBQ1AsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsSUFBSTtBQUFBLElBQ0osT0FBTztBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsVUFBVTtBQUFBLElBQ1YsU0FBUztBQUFBLElBQ1QsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsTUFBTTtBQUFBLElBQ04sT0FBTztBQUFBLElBQ1AsTUFBTTtBQUFBLElBQ04sVUFBVTtBQUFBLElBQ1YsTUFBTTtBQUFBLElBQ04sU0FBUztBQUFBLElBQ1QsTUFBTTtBQUFBLElBQ04sS0FBSztBQUFBLElBQ0wsVUFBVTtBQUFBLElBQ1YsS0FBSztBQUFBLElBQ0wsV0FBVztBQUFBLElBQ1gsT0FBTztBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsS0FBSztBQUFBLElBQ0wsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsT0FBTztBQUFBLElBQ1AsTUFBTTtBQUFBLElBQ04sT0FBTztBQUFBLElBQ1AsVUFBVTtBQUFBLElBQ1YsWUFBWTtBQUFBLElBQ1osU0FBUztBQUFBLElBQ1QsY0FBYztBQUFBLElBQ2QsWUFBWTtBQUFBLElBQ1osZUFBZTtBQUFBLElBQ2YsZUFBZTtBQUFBLElBQ2YsZ0JBQWdCO0FBQUEsSUFDaEIsZ0JBQWdCO0FBQUEsSUFDaEIsUUFBUTtBQUFBLElBQ1IsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsa0JBQWtCO0FBQUEsSUFDbEIsVUFBVTtBQUFBLElBQ1YsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsZUFBZTtBQUFBLElBQ2YsZUFBZTtBQUFBLElBQ2YsbUJBQW1CO0FBQUEsSUFDbkIsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLElBQ2IsT0FBTztBQUFBLElBQ1AsWUFBWTtBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osYUFBYTtBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1Isa0JBQWtCO0FBQUEsSUFDbEIsV0FBVztBQUFBLElBQ1gsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLElBQ2QsU0FBUztBQUFBLElBQ1QsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osU0FBUztBQUFBLElBQ1Qsa0JBQWtCO0FBQUEsSUFDbEIsUUFBUTtBQUFBLElBQ1IsY0FBYztBQUFBLElBQ2Qsa0JBQWtCO0FBQUEsSUFDbEIsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsZ0JBQWdCO0FBQUEsSUFDaEIsYUFBYTtBQUFBLElBQ2IsY0FBYztBQUFBLElBQ2QsY0FBYztBQUFBLElBQ2QsYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsWUFBWTtBQUFBLElBQ1osWUFBWTtBQUFBLElBQ1osU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLElBQ2Qsb0JBQW9CO0FBQUEsSUFDcEIsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLElBQ1YsVUFBVTtBQUFBLElBQ1YsYUFBYTtBQUFBLElBQ2IsMkJBQTJCO0FBQUEsSUFDM0IsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFB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QWU7QUFBQSxJQUNmLGVBQWU7QUFBQSxJQUNmLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLFNBQVM7QUFBQSxJQUNULGFBQWE7QUFBQSxJQUNiLGNBQWM7QUFBQSxJQUNkLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxJQUNQLFdBQVc7QUFBQSxJQUNYLFlBQVk7QUFBQSxJQUNaLFNBQVM7QUFBQSxJQUNULFlBQVk7QUFBQSxJQUNaLGNBQWM7QUFBQSxJQUNkLGVBQWU7QUFBQSxJQUNmLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxJQUNWLFdBQVc7QUFBQSxJQUNYLGtCQUFrQjtBQUFBLElBQ2xCLFVBQVU7QUFBQSxJQUNWLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxJQUNiLE9BQU87QUFBQSxJQUNQLFlBQVk7QUFBQSxJQUNaLFFBQVE7QUFBQSxJQUNSLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLFlBQVk7QUFBQSxJQUNaLGFBQWE7QUFBQSxJQUNiLFlBQVk7QUFBQSxJQUNaLGFBQWE7QUFBQSxJQUNiLFFBQVE7QUFBQSxJQUNSLGtCQUFrQjtBQUFBLElBQ2xCLFdBQVc7QUFBQSxJQUNYLE9BQU87QUFBQSxJQUNQLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFdBQVc7QUFBQSxJQUNYLFlBQVk7QUFBQSxJQUNaLGNBQWM7QUFBQSxJQUNkLFNBQVM7QUFBQSxJQUNULFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFlBQVk7QUFBQSxJQUNaLFNBQVM7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLGNBQWM7QUFBQSxJQUNkLGtCQUFrQjtBQUFBLElBQ2xCLGFBQWE7QUFBQSxJQUNiLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLGNBQWM7QUFBQSxJQUNkLGNBQWM7QUFBQSxJQUNkLGFBQWE7QUFBQSxJQUNiLFlBQVk7QUFBQSxJQUNaLGFBQWE7QUFBQSxJQUNiLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLFdBQVc7QUFBQSxJQUNYLFVBQVU7QUFBQSxJQUNWLFlBQVk7QUFBQSxJQUNaLFlBQVk7QUFBQSxJQUNaLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLFdBQVc7QUFBQSxJQUNYLFlBQVk7QUFBQSxJQUNaLFlBQVk7QUFBQSxJQUNaLGNBQWM7QUFBQSxJQUNkLFVBQVU7QUFBQSxJQUNWLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxJQUNWLFVBQVU7QUFBQSxJQUNWLFVBQVU7QUFBQSxJQUNWLFdBQVc7QUFBQSxJQUNYLFVBQVU7QUFBQSxJQUNWLFFBQVE7QUFBQSxJQUNSLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFVBQVU7QUFBQSxJQUNWLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLFVBQVU7QUFBQSxJQUNWLFVBQVU7QUFBQSxJQUNWLGdCQUFnQjtBQUFBLElBQ2hCLFdBQVc7QUFBQSxJQUNYLFFBQVE7QUFBQSxJQUNSLGtCQUFrQjtBQUFBLElBQ2xCLG1CQUFtQjtBQUFBLElBQ25CLFlBQVk7QUFBQSxJQUNaLFNBQVM7QUFBQSxJQUNULGVBQWU7QUFBQSxJQUNmLGdCQUFnQjtBQUFBLElBQ2hCLGlCQUFpQjtBQUFBLElBQ2pCLGdCQUFnQjtBQUFBLElBQ2hCLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLHVCQUF1QjtBQUFBLElBQ3ZCLHdCQUF3QjtBQUFBLElBQ3hCLGlCQUFpQjtBQUFBLElBQ2pCLGtCQUFrQjtBQUFBLElBQ2xCLGVBQWU7QUFBQSxJQUNmLGdCQUFnQjtBQUFBLElBQ2hCLGtCQUFrQjtBQUFBLElBQ2xCLGVBQWU7QUFBQSxJQUNmLGFBQWE7QUFBQSxJQUNiLFVBQVU7QUFBQSxJQUNWLFlBQVk7QUFBQSxJQUNaLGdCQUFnQjtBQUFBLElBQ2hCLGVBQWU7QUFBQSxJQUNm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SUFDVixPQUFPO0FBQUEsSUFDUCxXQUFXO0FBQUEsSUFDWCxZQUFZO0FBQUEsSUFDWixZQUFZO0FBQUEsSUFDWixVQUFVO0FBQUEsSUFDVixRQUFRO0FBQUEsSUFDUixTQUFTO0FBQUEsSUFDVCxZQUFZO0FBQUEsSUFDWixjQUFjO0FBQUEsSUFDZCxlQUFlO0FBQUEsSUFDZixTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsSUFDVixXQUFXO0FBQUEsSUFDWCxrQkFBa0I7QUFBQSxJQUNsQixVQUFVO0FBQUEsSUFDVixTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsSUFDYixPQUFPO0FBQUEsSUFDUCxZQUFZO0FBQUEsSUFDWixRQUFRO0FBQUEsSUFDUixXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixrQkFBa0I7QUFBQSxJQUNsQixXQUFXO0FBQUEsSUFDWCxPQUFPO0FBQUEsSUFDUCxTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxXQUFXO0FBQUEsSUFDWCxZQUFZO0FBQUEsSUFDWixjQUFjO0FBQUEsSUFDZCxTQUFTO0FBQUEsSUFDVCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxZQUFZO0FBQUEsSUFDWixTQUFTO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixjQUFjO0FBQUEsSUFDZCxrQkFBa0I7QUFBQSxJQUNsQixhQUFhO0FBQUEsSUFDYixXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYixjQUFjO0FBQUEsSUFDZCxjQUFjO0FBQUEsSUFDZCxhQUFhO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixXQUFXO0FBQUEsSUFDWCxjQUFjO0FBQUEsSUFDZCxXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixZQUFZO0FBQUEsSUFDWixZQUFZO0FBQUEsSUFDWixTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixXQUFXO0FBQUEsSUFDWCxZQUFZO0FBQUEsSUFDWixZQUFZO0FBQUEsSUFDWixjQUFjO0FBQUEsSUFDZCxVQUFVO0FBQUEsSUFDVixTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixRQUFRO0FBQUEsSUFDUixXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixXQUFXO0FBQUEsSUFDWCxjQUFjO0FBQUEsSUFDZCxVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixnQkFBZ0I7QUFBQSxJQUNoQixXQUFXO0FBQUEsSUFDWCxRQUFRO0FBQUEsSUFDUixTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsSUFDVixPQUFPO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixVQUFVO0FBQUEsSUFDVixTQUFTO0FBQUEsSUFDVCxrQkFBa0I7QUFBQSxJQUNsQixtQkFBbUI7QUFBQSxJQUNuQixZQUFZO0FBQUEsSUFDWixTQUFTO0FBQUEsSUFDVCxNQUFNO0FBQUEsSUFDTixZQUFZO0FBQUEsSUFDWixxQkFBcUI7QUFBQSxJQUNyQixrQkFBa0I7QUFBQSxJQUNsQixjQUFjO0FBQUEsSUFDZCxPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUEsSUFDTixPQUFPO0FBQUEsSUFDUCxlQUFlO0FBQUEsSUFDZixlQUFlO0FBQUEsSUFDZixRQUFRO0FBQUEsSUFDUixXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixxQkFBcUI7QUFBQSxJQUNyQixnQkFBZ0I7QUFBQSxJQUNoQixXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixHQUFHO0FBQUEsSUFDSCxRQUFRO0FBQUEs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VSxJQUFJO0FBQ3hCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsU0FBUyxJQUFJO0FBQ3ZCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsS0FBSyxJQUFJO0FBQ25CLEVBQUFBLFdBQVUsS0FBSyxJQUFJO0FBQ25CLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLEVBQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLEVBQUFBLFdBQVUsVUFBVSxJQUFJO0FBQ3hCLEVBQUFBLFdBQVUsWUFBWSxJQUFJO0FBQzFCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLEVBQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLEVBQUFBLFdBQVUsZ0JBQWdCLElBQUk7QUFDOUIsRUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsRUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsRUFBQUEsV0FBVSxVQUFVLElBQUk7QUFDeEIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsRUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsRUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsRUFBQUEsV0FBVSxHQUFHLElBQUk7QUFDakIsRUFBQUEsV0FBVSxLQUFLLElBQUk7QUFDbkIsRUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsRUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsRUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsRUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsRUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsRUFBQUEsV0FBVSxTQUFTLElBQUk7QUFDdkIsRUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsRUFBQUEsV0FBVSxZQUFZLElBQUk7QUFDMUIsRUFBQUEsV0FBVSxTQUFTLElBQUk7QUFDdkIsRUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsRUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsRUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsRUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsRUFBQUEsV0FBVSxLQUFLLElBQUk7QUFDbkIsRUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsRUFBQUEsV0FBVSxVQUFVLElBQUk7QUFDeEIsRUFBQUEsV0FBVSxTQUFTLElBQUk7QUFDdkIsRUFBQUEsV0FBVSxVQUFVLElBQUk7QUFDeEIsRUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxVQUFVLElBQUk7QUFDeEIsRUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsRUFBQUEsV0FBVSxHQUFHLElBQUk7QUFDakIsRUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsRUFBQUEsV0FBVSxXQUFXLElBQUk7QUFDekIsRUFBQUEsV0FBVSxLQUFLLElBQUk7QUFDbkIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxLQUFLLElBQUk7QUFDbkIsRUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsRUFBQUEsV0FBVSxHQUFHLElBQUk7QUFDakIsRUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsRUFBQUEsV0FBVSxTQUFTLElBQUk7QUFDdkIsRUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsRUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsRUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsRUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsRUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsRUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsRUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsRUFBQUEsV0FBVSxLQUFLLElBQUk7QUFDbkIsRUFBQUEsV0FBVSxTQUFTLElBQUk7QUFDdkIsRUFBQUEsV0FBVSxLQUFLLElBQUk7QUFDbkIsRUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsRUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsRUFBQUEsV0FBVSxVQUFVLElBQUk7QUFDeEIsRUFBQUEsV0FBVSxVQUFVLElBQUk7QUFDeEIsRUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsRUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxHQUFHLElBQUk7QUFDakIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxLQUFLLElBQUk7QUFDbkIsRUFBQUEsV0FBVSxLQUFLLElBQUk7QUFDbkIsRUFBQUEsV0FBVSxL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QSxRQUFPLE9BQU8sSUFBSSxFQUFFLElBQUk7QUFDL0IsRUFBQUEsUUFBT0EsUUFBTyxVQUFVLElBQUksRUFBRSxJQUFJO0FBQ2xDLEVBQUFBLFFBQU9BLFFBQU8sSUFBSSxJQUFJLEVBQUUsSUFBSTtBQUM1QixFQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsRUFBQUEsUUFBT0EsUUFBTyxJQUFJLElBQUksRUFBRSxJQUFJO0FBQzVCLEVBQUFBLFFBQU9BLFFBQU8sSUFBSSxJQUFJLEVBQUUsSUFBSTtBQUM1QixFQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsRUFBQUEsUUFBT0EsUUFBTyxJQUFJLElBQUksRUFBRSxJQUFJO0FBQzVCLEVBQUFBLFFBQU9BLFFBQU8sTUFBTSxJQUFJLEVBQUUsSUFBSTtBQUM5QixFQUFBQSxRQUFPQSxRQUFPLFFBQVEsSUFBSSxFQUFFLElBQUk7QUFDaEMsRUFBQUEsUUFBT0EsUUFBTyxRQUFRLElBQUksRUFBRSxJQUFJO0FBQ2hDLEVBQUFBLFFBQU9BLFFBQU8sSUFBSSxJQUFJLEVBQUUsSUFBSTtBQUM1QixFQUFBQSxRQUFPQSxRQUFPLE1BQU0sSUFBSSxFQUFFLElBQUk7QUFDOUIsRUFBQUEsUUFBT0EsUUFBTyxHQUFHLElBQUksRUFBRSxJQUFJO0FBQzNCLEVBQUFBLFFBQU9BLFFBQU8sS0FBSyxJQUFJLEVBQUUsSUFBSTtBQUM3QixFQUFBQSxRQUFPQSxRQUFPLE9BQU8sSUFBSSxFQUFFLElBQUk7QUFDL0IsRUFBQUEsUUFBT0EsUUFBTyxPQUFPLElBQUksRUFBRSxJQUFJO0FBQy9CLEVBQUFBLFFBQU9BLFFBQU8sUUFBUSxJQUFJLEVBQUUsSUFBSTtBQUNoQyxFQUFBQSxRQUFPQSxRQUFPLFFBQVEsSUFBSSxFQUFFLElBQUk7QUFDaEMsRUFBQUEsUUFBT0EsUUFBTyxPQUFPLElBQUksRUFBRSxJQUFJO0FBQy9CLEVBQUFBLFFBQU9BLFFBQU8sSUFBSSxJQUFJLEVBQUUsSUFBSTtBQUM1QixFQUFBQSxR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Q2hDLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLEVBQzVCLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQztBQUFBLEVBQ3RCLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLEVBQzFCLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLEVBQzlCLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLEVBQzlCLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLEVBQzlCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLEVBQzVCLENBQUMsVUFBVSxTQUFTLE9BQU8sT0FBTztBQUFBLEVBQ2xDLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLEVBQzVCLENBQUMsVUFBVSxZQUFZLE9BQU8sVUFBVTtBQUFBLEVBQ3hDLENBQUMsVUFBVSxTQUFTLE9BQU8sT0FBTztBQUFBLEVBQ2xDLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLEVBQzVCLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLEVBQzVCLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLEVBQzVCLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLEVBQzlCLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLEVBQzFCLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLEVBQzVCLENBQUMsVUFBVSxVQUFVLE9BQU8sUUFBUTtBQUFBLEVBQ3BDLENBQUMsVUFBVSxTQUFTLE9BQU8sT0FBTztBQUFBLEVBQ2xDLENBQUMsVUFBVSxVQUFVLE9BQU8sUUFBUTtBQUFBLEVBQ3BDLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxVQUFVLE9BQU8sUUFBUTtBQUFBLEVBQ3BDLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQztBQUFBLEVBQ3RCLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLEVBQzlCLENBQUMsVUFBVSxXQUFXLE9BQU8sU0FBUztBQUFBLEVBQ3RDLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLEVBQzFCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLEVBQzFCLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLEVBQzVCLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQztBQUFBLEVBQ3RCLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxTQUFTLE9BQU8sT0FBTztBQUFBLEVBQ2xDLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLEVBQzlCLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLEVBQzVCLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLEVBQzlCLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLEVBQzFCLENBQUMsVUFBVSxTQUFTLE9BQU8sT0FBTztBQUFBLEVBQ2xDLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLEVBQzFCLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLEVBQzlCLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLEVBQzlCLENBQUMsVUFBVSxVQUFVLE9BQU8sUUFBUTtBQUFBLEVBQ3BDLENBQUMsVUFBVSxVQUFVLE9BQU8sUUFBUTtBQUFBLEVBQ3BDLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLEVBQzlCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLEVBQzlCLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLEVBQzlCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLEVBQzlCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQztBQUFBLEVBQ3RCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLEVBQzFCLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLEVBQzFCLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLEVBQzFCLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUM5QixDQUFDO0FBQ00sU0FBUyxTQUFTLFNBQVM7QUFDOUIsTUFBSUM7QUFDSixVQUFRQSxNQUFLLGVBQWUsSUFBSSxPQUFPLE9BQU8sUUFBUUEsUUFBTyxTQUFTQSxNQUFLLE9BQU87QUFDdEY7QUFDQSxJQUFNQyxLQUFJO0FBQ0gsSUFBTSxtQkFBbUI7QUFBQSxFQUM1QixDQUFDLEdBQUcsSUFBSSxHQUFHLG9CQUFJLElBQUk7QUFBQSxJQUNmQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxFQUNOLENBQUM7QUFBQSxFQUNELENBQUMsR0FBRyxNQUFNLEdBQUcsb0JBQUksSUFBSSxDQUFDQSxHQUFFLElBQUlBLEdBQUUsSUFBSUEsR0FBRSxJQUFJQSxHQUFFLElBQUlBLEdBQUUsT0FBT0EsR0FBRSxjQUFjLENBQUM7QUFBQSxFQUN4RSxDQUFDLEdBQUcsR0FBRyxHQUFHLG9CQUFJLElBQUksQ0FBQ0EsR0FBRSxPQUFPQSxHQUFFLGdCQUFnQkEsR0FBRSxJQUFJLENBQUM7QUFBQSxFQUNyRCxDQUFDLEdBQUcsS0FBSyxHQUFHLG9CQUFJLElBQUk7QUFBQSxFQUNwQixDQUFDLEdBQUcsR0FBRyxHQUFHLG9CQUFJLElBQUk7QUFBQSxFQUNsQixDQUFDLEdBQUcsS0FBSyxHQUFHLG9CQUFJLElBQUk7QUFDeEI7QUFDTyxTQUFT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QUFDaEQsRUFBQUEsT0FBTUEsT0FBTSwwQkFBMEIsSUFBSSxFQUFFLElBQUk7QUFDaEQsRUFBQUEsT0FBTUEsT0FBTSwwQkFBMEIsSUFBSSxFQUFFLElBQUk7QUFDaEQsRUFBQUEsT0FBTUEsT0FBTSwrQkFBK0IsSUFBSSxFQUFFLElBQUk7QUFDckQsRUFBQUEsT0FBTUEsT0FBTSxxQkFBcUIsSUFBSSxFQUFFLElBQUk7QUFDM0MsRUFBQUEsT0FBTUEsT0FBTSwwQkFBMEIsSUFBSSxFQUFFLElBQUk7QUFDaEQsRUFBQUEsT0FBTUEsT0FBTSwrQkFBK0IsSUFBSSxFQUFFLElBQUk7QUFDckQsRUFBQUEsT0FBTUEsT0FBTSxvQ0FBb0MsSUFBSSxFQUFFLElBQUk7QUFDMUQsRUFBQUEsT0FBTUEsT0FBTSxrQ0FBa0MsSUFBSSxFQUFFLElBQUk7QUFDeEQsRUFBQUEsT0FBTUEsT0FBTSxrQ0FBa0MsSUFBSSxFQUFFLElBQUk7QUFDeEQsRUFBQUEsT0FBTUEsT0FBTSxpQ0FBaUMsSUFBSSxFQUFFLElBQUk7QUFDdkQsRUFBQUEsT0FBTUEsT0FBTSw0QkFBNEIsSUFBSSxFQUFFLElBQUk7QUFDbEQsRUFBQUEsT0FBTUEsT0FBTSxpQ0FBaUMsSUFBSSxFQUFFLElBQUk7QUFDdkQsRUFBQUEsT0FBTUEsT0FBTSxzQ0FBc0MsSUFBSSxFQUFFLElBQUk7QUFDNUQsRUFBQUEsT0FBTUEsT0FBTSwyQ0FBMkMsSUFBSSxFQUFFLElBQUk7QUFDakUsRUFBQUEsT0FBTUEsT0FBTSwrQkFBK0IsSUFBSSxFQUFFLElBQUk7QUFDckQsRUFBQUEsT0FBTUEsT0FBTSx1QkFBdUIsSUFBSSxFQUFFLElBQUk7QUFDN0MsRUFBQUEsT0FBTUEsT0FBTSxnQkFBZ0IsSUFBSSxFQUFFLElBQUk7QUFDdEMsRUFBQUEsT0FBTUEsT0FBTSxzQkFBc0IsSUFBSSxFQUFFLElBQUk7QUFDNUMsRUFBQUEsT0FBTUEsT0FBTSx3QkFBd0IsSUFBSSxFQUFFLElBQUk7QUFDOUMsRUFBQUEsT0FBTUEsT0FBTSwrQkFBK0IsSUFBSSxFQUFFLElBQUk7QUFDckQsRUFBQUEsT0FBTUEsT0FBTSwrQkFBK0IsSUFBSSxFQUFFLElBQUk7QUFDckQsRUFBQUEsT0FBTUEsT0FBTSwwQkFBMEIsSUFBSSxFQUFFLElBQUk7QUFDaEQsRUFBQUEsT0FBTUEsT0FBTSw4QkFBOEIsSUFBSSxFQUFFLElBQUk7QUFDcEQsRUFBQUEsT0FBTUEsT0FBTSx3QkFBd0IsSUFBSSxFQUFFLElBQUk7QUFDOUMsRUFBQUEsT0FBTUEsT0FBTSxlQUFlLElBQUksRUFBRSxJQUFJO0FBQ3JDLEVBQUFBLE9BQU1BLE9BQU0seUJBQXlCLElBQUksRUFBRSxJQUFJO0FBQy9DLEVBQUFBLE9BQU1BLE9BQU0sZUFBZSxJQUFJLEVBQUUsSUFBSTtBQUNyQyxFQUFBQSxPQUFNQSxPQUFNLG9CQUFvQixJQUFJLEVBQUUsSUFBSTtBQUMxQyxFQUFBQSxPQUFNQSxPQUFNLFNBQVMsSUFBSSxFQUFFLElBQUk7QUFDL0IsRUFBQUEsT0FBTUEsT0FBTSx3QkFBd0IsSUFBSSxFQUFFLElBQUk7QUFDOUMsRUFBQUEsT0FBTUEsT0FBTSw2QkFBNkIsSUFBSSxFQUFFLElBQUk7QUFDbkQsRUFBQUEsT0FBTUEsT0FBTSxrQ0FBa0MsSUFBSSxFQUFFLElBQUk7QUFDeEQsRUFBQUEsT0FBTUEsT0FBTSx1Q0FBdUMsSUFBSSxFQUFFLElBQUk7QUFDN0QsRUFBQUEsT0FBTUEsT0FBTSxrQkFBa0IsSUFBSSxFQUFFLElBQUk7QUFDeEMsRUFBQUEsT0FBTUEsT0FBTSxhQUFhLElBQUksRUFBRSxJQUFJO0FBQ25DLEVBQUFBLE9BQU1BLE9BQU0sa0JBQWtCLElBQUksRUFBRSxJQUFJO0FBQ3hDLEVBQUFBLE9BQU1BLE9BQU0sU0FBUyxJQUFJLEVBQUUsSUFBSTtBQUMvQixFQUFBQSxPQUFNQSxPQUFNLHFCQUFxQixJQUFJLEVBQUUsSUFBSTtBQUMzQyxFQUFBQSxPQUFNQSxPQUFNLGNBQWMsSUFBSSxFQUFFLElBQUk7QUFDcEMsRUFBQUEsT0FBTUEsT0FBTSxvQkFBb0IsSUFBSSxFQUFFLElBQUk7QUFDMUMsRUFBQUEsT0FBTUEsT0FBTSw4QkFBOEIsSUFBSSxFQUFFLElBQUk7QUFDcEQsRUFBQUEsT0FBTUEsT0FBTSxrQ0FBa0MsSUFBSSxFQUFFLElBQUk7QUFDeEQsRUFBQUEsT0FBTUEsT0FBTSx5Q0FBeUMsSUFBSSxFQUFFLElBQUk7QUFDL0QsRUFBQUEsT0FBTUEsT0FBTSx5Q0FBeUMsSUFBSSxFQUFFLElBQUk7QUFDL0QsRUFBQUEsT0FBTUEsT0FBTSxpQ0FBaUMsSUFBSSxFQUFFLElBQUk7QUFDdkQsRUFBQUEsT0FBTUEsT0FBTSwrQ0FBK0MsSUFBSSxFQUFFLElBQUk7QUFDckUsRUFBQUEsT0FBTUEsT0FBTSw4QkFBOEIsSUFBSSxFQUFFLElBQUk7QUFDcEQsRUFBQUEsT0FBTUEsT0FBTSxrQ0FBa0MsSUFBSSxFQUFFLElBQUk7QUFDeEQsRUFBQUEsT0FBTUEsT0FBTSx5Q0FBeUMsSUFBSSxFQUFFLElBQUk7QUFDL0QsRUFBQUEsT0FBTUEsT0FBTSx5Q0FBeUMsSUFBSSxFQUFFLElBQUk7QUFDL0QsRUFBQUEsT0FBTUEsT0FBTSxpQ0FBaUMsSUFBSSxFQUFFLElBQUk7QUFDdkQsRUFBQUEsT0FBTUEsT0FBTSxlQUFlLElBQUksRUFBRSxJQUFJO0FBQ3JDLEVBQUFBLE9BQU1BLE9BQU0sZUFBZSxJQUFJLEVBQUUsSUFBSTtBQUNyQyxFQUFBQSxPQUFNQSxPQUFNLHVCQUF1QixJQUFJLEVBQUUsSUFBSTtBQUM3QyxFQUFBQSxPQUFNQSxPQUFNLG1CQUFtQixJQUFJLEVBQUUsSUFBSTtBQUN6QyxFQUFBQSxPQUFNQSxPQUFNLHFCQUFxQixJQUFJLEVBQUUsSUFBSTtBQUMzQyxFQUFBQSxPQUFNQSxPQUFNLDJCQUEyQixJQUFJLEVBQUUsSUFBSTtBQUNqRCxFQUFBQSxPQUFNQSxPQUFNLHFCQUFxQixJQUFJLEVBQUUsSUFBSTtBQUMzQyxFQUFBQSxPQUFNQSxPQUFNLDZCQUE2QixJQUFJLEVBQUUsSUFBSTtBQUNuRCxFQUFBQSxPQUFNQSxPQUFNLHVDQUF1QyxJQUFJLEVBQUUsSUFBSTtBQUM3RCxFQUFBQSxPQUFNQSxPQUFNLGlDQUFpQyxJQUFJLEVBQUUsSUFBSTtBQUN2RCxFQUFBQSxPQUFNQSxPQUFNLDZCQUE2QixJQUFJLEVBQUUsSUFBSTtBQUNuRCxFQUFBQSxPQUFNQSxPQUFNLGlDQUFpQyxJQUFJLEVBQUUsSUFBSTtBQUMzRCxHQUFHLFVBQVUsUUFBUSxDQUFDLEVBQUU7QUFFakIsSUFBTSxnQkFBZ0I7QUFBQSxFQUN6QixNQUFNLE1BQU07QUFBQSxFQUNaLFFBQVEsTUFBTTtBQUFBLEVBQ2QsU0FBUyxNQUFNO0FBQUEsRUFDZixhQUFhLE1BQU07QUFBQSxFQUNuQixXQUFXLE1BQU07QUFBQSxFQUNqQixlQUFlLE1BQU07QUFDekI7QUFLQSxTQUFTLGFBQWEsSUFBSTtBQUN0QixTQUFPLE1BQU0sWUFBRSxXQUFXLE1BQU0sWUFBRTtBQUN0QztBQUNBLFNBQVMsYUFBYSxJQUFJO0FBQ3RCLFNBQU8sTUFBTSxZQUFFLG1CQUFtQixNQUFNLFlBQUU7QUFDOUM7QUFDQSxTQUFTLGFBQWEsSUFBSTtBQUN0QixTQUFPLE1BQU0sWUFBRSxpQkFBaUIsTUFBTSxZQUFFO0FBQzVDO0FBQ0EsU0FBUyxjQUFjLElBQUk7QUFDdkIsU0FBTyxhQUFhLEVBQUUsS0FBSyxhQUFhLEVBQUU7QUFDOUM7QUFDQSxTQUFTQyxxQkFBb0IsSUFBSTtBQUM3QixTQUFPLGNBQWMsRUFBRSxLQUFLLGFBQWEsRUFBRTtBQUMvQztBQUNBLFNBQVMscUJBQXFCLElBQUk7QUFDOUIsU0FBTyxNQUFNLFlBQUUsbUJBQW1CLE1BQU0sWUFBRTtBQUM5QztBQUNBLFNBQVMscUJBQXFCLElBQUk7QUFDOUIsU0FBTyxNQUFNLFlBQUUsaUJBQWlCLE1BQU0sWUFBRTtBQUM1QztBQUNBLFNBQVMsZ0JBQWdCLElBQUk7QUFDekIsU0FBTyxhQUFhLEVBQUUsS0FBSyxxQkFBcUIsRUFBRSxLQUFLLHFCQUFxQixFQUFFO0FBQ2xGO0FBQ0EsU0FBUyxhQUFhLElBQUk7QUFDdEIsU0FBTyxLQUFLO0FBQ2hCO0FBQ0EsU0FBUyxhQUFhLElBQUk7QUFDdEIsU0FBTyxPQUFPLFlBQUUsU0FBUyxPQUFPLFlBQUUsYUFBYSxPQUFPLFlBQUUsY0FBYyxPQUFPLFlBQUU7QUFDbkY7QUFDQSxTQUFTQywrQkFBOEIsUUFBUTtBQUMzQyxTQUFPLFdBQVcsWUFBRSxlQUFlRCxxQkFBb0IsTUFBTTtBQUNqRTtBQUNBLFNBQVMsb0NBQW9DLElBQUk7QUFDN0MsU0FBTyxhQUFhLEVBQUUsS0FBSyxPQUFPLFlBQUUsV0FBVyxPQUFPLFlBQUU7QUFDNUQ7QUFFTyxJQUFNLFlBQU4sTUFBZ0I7QUFBQSxFQUNuQixZQUFZLFNBQVMsU0FBUztBQUMxQixTQUFLLFVBQVU7QUFDZixTQUFLLFVBQVU7QUFDZixTQUFLLFNBQVM7QUFFZCxTQUFLLFNBQVM7QUFPZCxTQUFLLGdCQUFnQjtBQUNyQixTQUFLLG1CQUFtQjtBQUN4QixTQUFLLFNBQVM7QUFDZCxTQUFLLFFBQVEsTUFBTTtBQUNuQixTQUFLLGNBQWMsTUFBTTtBQUN6QixTQUFLLGNBQWM7QUFDbkIsU0FBSyx3QkFBd0I7QUFDN0IsU0FBSyx3QkFBd0I7QUFDN0IsU0FBSyxlQUFlO0FBQ3BCLFNBQUssY0FBYyxFQUFFLE1BQU0sSUFBSSxPQUFPLEdBQUc7QUFDekMsU0FBSyxlQUFlLElBQUksYUFBYSxPQUFPO0FBQzVDLFNBQUssa0JBQWtCLEtBQUssbUJBQW1CLEVBQUU7QUFBQSxFQUNyRDtBQUFBO0FBQUEsRUFFQSxLQUFLLE1BQU07QUFDUCxRQUFJRSxLQUFJO0FBQ1IsS0FBQyxNQUFNQSxNQUFLLEtBQUssU0FBUyxrQkFBa0IsUUFBUSxPQUFPLFNBQVMsU0FBUyxHQUFHLEtBQUtBLEtBQUksS0FBSyxhQUFhLFNBQVMsSUFBSSxDQUFDO0FBQUEsRUFDN0g7QUFBQTtBQUFBLEVBRUEsbUJBQW1CLFFBQVE7QUFDdkIsUUFBSSxDQUFDLEtBQUssUUFBUSx3QkFBd0I7QUFDdEMsYUFBTztBQUFBLElBQ1g7QUFDQSxXQUFPO0FBQUEsTUFDSCxXQUFXLEtBQUssYUFBYTtBQUFBLE1BQzdCLFVBQVUsS0FBSyxhQUFhLE1BQU07QUFBQSxNQUNsQyxhQUFhLEtBQUssYUFBYSxTQUFTO0FBQUEsTUFDeEMsU0FBUztBQUFBLE1BQ1QsUUFBUTtBQUFBLE1BQ1IsV0FBVztBQUFBLElBQ2Y7QUFBQSxFQUNKO0FBQUEsRUFDQSxrQkFBa0I7QUFDZCxRQUFJLEtBQUs7QUFDTDtBQUNKLFNBQUssU0FBUztBQUNkLFdBQU8sS0FBSyxVQUFVLENBQUMsS0FBSyxRQUFRO0FBQ2hDLFdBQUssd0JBQXdCO0FBQzdCLFlBQU0sS0FBSyxLQUFLLFNBQVM7QUFDekIsVUFBSSxDQUFDLEtBQUssbUJBQW1CLEdBQUc7QUFDNUIsYUFBSyxXQUFXLEVBQUU7QUFBQSxNQUN0QjtBQUFBLElBQ0o7QUFDQSxTQUFLLFNBQVM7QUFBQSxFQUNsQjtBQUFBO0FBQUEsRUFFQSxRQUFRO0FBQ0osU0FBSyxTQUFTO0FBQUEsRUFDbEI7QUFBQSxFQUNBLE9BQU8sZUFBZTtBQUNsQixRQUFJLENBQUMsS0FBSyxRQUFRO0FBQ2QsWUFBTSxJQUFJLE1BQU0sNEJBQTRCO0FBQUEsSUFDaEQ7QUFDQSxTQUFLLFNBQVM7QUFFZCxRQUFJLEtBQUs7QUFDTDtBQUNKLFNBQUssZ0JBQWdCO0FBQ3JCLFFBQUksQ0FBQyxLQUFLLFFBQVE7QUFDZCx3QkFBa0IsUUFBUSxrQkFBa0IsU0FBUyxTQUFTLGNBQWM7QUFBQSxJQUNoRjtBQUFBLEVBQ0o7QUFBQSxFQUNBLE1BQU0sT0FBTyxhQUFhLGVBQWU7QUFDckMsU0FBSyxTQUFTO0FBQ2QsU0FBSyxhQUFhLE1BQU0sT0FBTyxXQUFXO0FBQzFDLFNBQUssZ0JBQWdCO0FBQ3JCLFFBQUksQ0FBQyxLQUFLLFFBQVE7QUFDZCx3QkFBa0IsUUFBUSxrQkFBa0IsU0FBUyxTQUFTLGNBQWM7QUFBQSxJQUNoRjtBQUFBLEVBQ0o7QUFBQSxFQUNBLHVCQUF1QixPQUFPO0FBQzFCLFNBQUssU0FBUztBQUNkLFNBQUssYUFBYSx1QkFBdUIsS0FBSztBQUM5QyxTQUFLLGdCQUFnQjtBQUFBLEVBQ3pCO0FBQUE7QUFBQSxFQUVBLHFCQUFxQjtBQUNqQixRQUFJLEtBQUssYUFBYSxlQUFlO0FBQ2pDLFdBQUssV0FBVyxLQUFLLHFCQUFxQjtBQUMxQyxXQUFLLFNBQVM7QUFDZCxhQUFPO0FBQUEsSUFDWDtBQUNBLFdBQU87QUFBQSxFQUNYO0FBQUE7QUFBQSxFQUVBLFdBQVc7QUFDUCxTQUFLO0FBQ0wsV0FBTyxLQUFLLGFBQWEsUUFBUTtBQUFBLEVBQ3JDO0FBQUEsRUFDQSxXQUFXLE9BQU87QUFDZCxTQUFLLHlCQUF5QjtBQUM5QixTQUFLLGFBQWEsUUFBUSxLQUFLO0FBQUEsRUFDbkM7QUFBQSxFQUNBLGtCQUFrQixPQUFPLElBQUk7QUFDekIsU0FBSyxRQUFRO0FBQ2IsU0FBSyxXQUFXLEVBQUU7QUFBQSxFQUN0QjtBQUFBLEVBQ0EsV0FBVyxPQUFPO0FBQ2QsU0FBSyx5QkFBeUI7QUFDOUIsYUFBU0MsS0FBSSxHQUFHQSxLQUFJLE9BQU9BLE1BQUs7QUFDNUIsV0FBSyxhQUFhLFFBQVE7QUFBQSxJQUM5QjtBQUFBLEVBQ0o7QUFBQSxFQUNBLHdCQUF3QixTQUFTLGVBQWU7QUFDNUMsUUFBSSxLQUFLLGFBQWEsV0FBVyxTQUFTLGFBQWEsR0FBRztBQUV0RCxXQUFLLFdBQVcsUUFBUSxTQUFTLENBQUM7QUFDbEMsYUFBTztBQUFBLElBQ1g7QUFDQSxXQUFPO0FBQUEsRUFDWDtBQUFBO0FBQUEsRUFFQSx1QkFBdUI7QUFDbkIsU0FBSyxlQUFlO0FBQUEsTUFDaEIsTUFBTSxVQUFVO0FBQUEsTUFDaEIsU0FBUztBQUFBLE1BQ1QsT0FBTyxPQUFPO0FBQUEsTUFDZCxhQUFhO0FBQUEsTUFDYixnQkFBZ0I7QUFBQSxNQUNoQixPQUFPLENBQUM7QUFBQSxNQUNSLFVBQVUsS0FBSyxtQkFBbUIsQ0FBQztBQUFBLElBQ3ZDO0FBQUEsRUFDSjtBQUFBLEVBQ0EscUJBQXFCO0FBQ2pCLFNBQUssZUFBZTtBQUFBLE1BQ2hCLE1BQU0sVUFBVTtBQUFBLE1BQ2hCLFNBQVM7QUFBQSxNQUNULE9BQU8sT0FBTztBQUFBLE1BQ2QsYUFBYTtBQUFBLE1BQ2IsZ0JBQWdCO0FBQUEsTUFDaEIsT0FBTyxDQUFDO0FBQUEsTUFDUixVQUFVLEtBQUssbUJBQW1CLENBQUM7QUFBQSxJQUN2QztBQUFBLEVBQ0o7QUFBQSxFQUNBLG9CQUFvQixRQUFRO0FBQ3hCLFNBQUssZUFBZTtBQUFBLE1BQ2hCLE1BQU0sVUFBVTtBQUFBLE1BQ2hCLE1BQU07QUFBQSxNQUNOLFVBQVUsS0FBSyxtQkFBbUIsTUFBTTtBQUFBLElBQzVDO0FBQUEsRUFDSjtBQUFBLEVBQ0Esb0JBQW9CLGFBQWE7QUFDN0IsU0FBSyxlQUFlO0FBQUEsTUFDaEIsTUFBTSxVQUFVO0FBQUEsTUFDaEIsTUFBTTtBQUFBLE1BQ04sYUFBYTtBQUFBLE1BQ2IsVUFBVTtBQUFBLE1BQ1YsVUFBVTtBQUFBLE1BQ1YsVUFBVSxLQUFLO0FBQUEsSUFDbkI7QUFBQSxFQUNKO0FBQUEsRUFDQSxzQkFBc0IsTUFBTSxPQUFPO0FBQy9CLFNBQUssd0JBQXdCO0FBQUEsTUFDekI7QUFBQSxNQUNBO0FBQUEsTUFDQSxVQUFVLEtBQUs7QUFBQSxJQUNuQjtBQUFBLEVBQ0o7QUFBQTtBQUFBLEVBRUEsWUFBWSxpQkFBaUI7QUFDekIsU0FBSyxjQUFjO0FBQUEsTUFDZixNQUFNO0FBQUEsTUFDTixPQUFPO0FBQUEsSUFDWDtBQUNBLFNBQUssa0JBQWtCLEtBQUssbUJBQW1CLENBQUM7QUFBQSxFQUNwRDtBQUFBLEVBQ0EsaUJBQWlCO0FBQ2IsUUFBSUQ7QUFDSixRQUFJO0FBQ0osVUFBTSxRQUFRLEtBQUs7QUFDbkIsUUFBSSxhQUFhLE9BQU8sS0FBSyxZQUFZLElBQUksTUFBTSxNQUFNO0FBQ3JELFlBQU0sTUFBTSxLQUFLLEtBQUssV0FBVztBQUNqQyxVQUFJLE1BQU0sWUFBWSxLQUFLLGlCQUFpQjtBQUN4QyxjQUFNLGlCQUFrQkEsT0FBTSxLQUFLLE1BQU0sVUFBVSxXQUFXLFFBQVFBLFFBQU8sU0FBU0EsTUFBTSxHQUFHLFFBQVEsdUJBQU8sT0FBTyxJQUFJO0FBQ3pILHNCQUFjLEtBQUssWUFBWSxJQUFJLElBQUksS0FBSztBQUU1QyxhQUFLLGdCQUFnQjtBQUFBLE1BQ3pCO0FBQUEsSUFDSixPQUNLO0FBQ0QsV0FBSyxLQUFLLElBQUksa0JBQWtCO0FBQUEsSUFDcEM7QUFBQSxFQUNKO0FBQUEsRUFDQSxrQkFBa0I7QUFDZCxRQUFJLEtBQUssaUJBQWlCO0FBQ3RCLFdBQUssZ0JBQWdCLFVBQVUsS0FBSyxhQUFhO0FBQ2pELFdBQUssZ0JBQWdCLFNBQVMsS0FBSyxhQUFhO0FBQ2hELFdBQUssZ0JBQWdCLFlBQVksS0FBSyxhQUFhO0FBQUEsSUFDdkQ7QUFBQSxFQUNKO0FBQUE7QUFBQSxFQUVBLGFBQWFFLEtBQUk7QUFDYixTQUFLLDJCQUEyQkEsSUFBRyxRQUFRO0FBQzNDLFNBQUssZUFBZTtBQUNwQixRQUFJQSxJQUFHLFVBQVU7QUFDYixNQUFBQSxJQUFHLFNBQVMsVUFBVSxLQUFLLGFBQWE7QUFDeEMsTUFBQUEsSUFBRyxTQUFTLFNBQVMsS0FBSyxhQUFhLE1BQU07QUFDN0MsTUFBQUEsSUFBRyxTQUFTLFlBQVksS0FBSyxhQUFhLFNBQVM7QUFBQSxJQUN2RDtBQUNBLFNBQUssa0JBQWtCLEtBQUssbUJBQW1CLEVBQUU7QUFBQSxFQUNyRDtBQUFBLEVBQ0Esc0JBQXNCO0FBQ2xCLFVBQU1BLE1BQUssS0FBSztBQUNoQixTQUFLLGFBQWFBLEdBQUU7QUFDcEIsSUFBQUEsSUFBRyxRQUFRLFNBQVNBLElBQUcsT0FBTztBQUM5QixRQUFJQSxJQUFHLFNBQVMsVUFBVSxXQUFXO0FBQ2pDLFdBQUssbUJBQW1CQSxJQUFHO0FBQzNCLFdBQUssUUFBUSxXQUFXQSxHQUFFO0FBQUEsSUFDOUIsT0FDSztBQUNELFVBQUlBLElBQUcsTUFBTSxTQUFTLEdBQUc7QUFDckIsYUFBSyxLQUFLLElBQUksb0JBQW9CO0FBQUEsTUFDdEM7QUFDQSxVQUFJQSxJQUFHLGFBQWE7QUFDaEIsYUFBSyxLQUFLLElBQUkseUJBQXlCO0FBQUEsTUFDM0M7QUFDQSxXQUFLLFFBQVEsU0FBU0EsR0FBRTtBQUFBLElBQzVCO0FBQ0EsU0FBSyxhQUFhLGdCQUFnQjtBQUFBLEVBQ3RDO0FBQUEsRUFDQSxtQkFBbUJBLEtBQUk7QUFDbkIsU0FBSyxhQUFhQSxHQUFFO0FBQ3BCLFNBQUssUUFBUSxVQUFVQSxHQUFFO0FBQ3pCLFNBQUssYUFBYSxnQkFBZ0I7QUFBQSxFQUN0QztBQUFBLEVBQ0EsbUJBQW1CQSxLQUFJO0FBQ25CLFNBQUssYUFBYUEsR0FBRTtBQUNwQixTQUFLLFFBQVEsVUFBVUEsR0FBRTtBQUN6QixTQUFLLGFBQWEsZ0JBQWdCO0FBQUEsRUFDdEM7QUFBQSxFQUNBLDJCQUEyQixjQUFjO0FBQ3JDLFFBQUksS0FBSyx1QkFBdUI7QUFHNUIsVUFBSSxnQkFBZ0IsS0FBSyxzQkFBc0IsVUFBVTtBQUNyRCxhQUFLLHNCQUFzQixTQUFTLFVBQVUsYUFBYTtBQUMzRCxhQUFLLHNCQUFzQixTQUFTLFNBQVMsYUFBYTtBQUMxRCxhQUFLLHNCQUFzQixTQUFTLFlBQVksYUFBYTtBQUFBLE1BQ2pFO0FBQ0EsY0FBUSxLQUFLLHNCQUFzQixNQUFNO0FBQUEsUUFDckMsS0FBSyxVQUFVLFdBQVc7QUFDdEIsZUFBSyxRQUFRLFlBQVksS0FBSyxxQkFBcUI7QUFDbkQ7QUFBQSxRQUNKO0FBQUEsUUFDQSxLQUFLLFVBQVUsZ0JBQWdCO0FBQzNCLGVBQUssUUFBUSxnQkFBZ0IsS0FBSyxxQkFBcUI7QUFDdkQ7QUFBQSxRQUNKO0FBQUEsUUFDQSxLQUFLLFVBQVUsc0JBQXNCO0FBQ2pDLGVBQUssUUFBUSxzQkFBc0IsS0FBSyxxQkFBcUI7QUFDN0Q7QUFBQSxRQUNKO0FBQUEsTUFDSjtBQUNBLFdBQUssd0JBQXdCO0FBQUEsSUFDakM7QUFBQSxFQUNKO0FBQUEsRUFDQSxnQkFBZ0I7QUFDWixVQUFNQyxZQUFXLEtBQUssbUJBQW1CLENBQUM7QUFDMUMsUUFBSUEsV0FBVTtBQUNWLE1BQUFBLFVBQVMsVUFBVUEsVUFBUztBQUM1QixNQUFBQSxVQUFTLFNBQVNBLFVBQVM7QUFDM0IsTUFBQUEsVUFBUyxZQUFZQSxVQUFTO0FBQUEsSUFDbEM7QUFDQSxTQUFLLDJCQUEyQkEsU0FBUTtBQUN4QyxTQUFLLFFBQVEsTUFBTSxFQUFFLE1BQU0sVUFBVSxLQUFLLFVBQUFBLFVBQVMsQ0FBQztBQUNwRCxTQUFLLFNBQVM7QUFBQSxFQUNsQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBVUEsbUNBQW1DLE1BQU0sSUFBSTtBQUN6QyxRQUFJLEtBQUssdUJBQXVCO0FBQzVCLFVBQUksS0FBSyxzQkFBc0IsU0FBUyxNQUFNO0FBQzFDLGFBQUssa0JBQWtCLEtBQUssbUJBQW1CLENBQUM7QUFDaEQsYUFBSywyQkFBMkIsS0FBSyxlQUFlO0FBQ3BELGFBQUssYUFBYSxnQkFBZ0I7QUFBQSxNQUN0QyxPQUNLO0FBQ0QsYUFBSyxzQkFBc0IsU0FBUztBQUNwQztBQUFBLE1BQ0o7QUFBQSxJQUNKO0FBQ0EsU0FBSyxzQkFBc0IsTUFBTSxFQUFFO0FBQUEsRUFDdkM7QUFBQSxFQUNBLGVBQWUsSUFBSTtBQUNmLFVBQU0sT0FBTyxhQUFhLEVBQUUsSUFDdEIsVUFBVSx1QkFDVixPQUFPLFlBQUUsT0FDTCxVQUFVLGlCQUNWLFVBQVU7QUFDcEIsU0FBSyxtQ0FBbUMsTUFBTSxPQUFPLGNBQWMsRUFBRSxDQUFDO0FBQUEsRUFDMUU7QUFBQTtBQUFBO0FBQUEsRUFHQSxXQUFXLElBQUk7QUFDWCxTQUFLLG1DQUFtQyxVQUFVLFdBQVcsRUFBRTtBQUFBLEVBQ25FO0FBQUE7QUFBQSxFQUVBLDhCQUE4QixJQUFJO0FBQzlCLFFBQUksU0FBUztBQUNiLFFBQUksU0FBUztBQUNiLFFBQUksbUJBQW1CO0FBQ3ZCLGFBQVNGLEtBQUksR0FBRyxVQUFVLHlCQUFlLENBQUMsR0FBR0EsTUFBSyxHQUFHLEtBQUssS0FBSyxTQUFTLEdBQUc7QUFDdkUsTUFBQUEsS0FBSSxnQkFBZ0IsMEJBQWdCLFNBQVNBLEtBQUksR0FBRyxFQUFFO0FBQ3RELFVBQUlBLEtBQUk7QUFDSjtBQUNKLGdCQUFVO0FBQ1YsZ0JBQVUseUJBQWVBLEVBQUM7QUFDMUIsWUFBTSxTQUFTLFVBQVUsYUFBYTtBQUV0QyxVQUFJLFFBQVE7QUFFUixjQUFNLGVBQWUsVUFBVSxNQUFNO0FBR3JDLFlBQUksT0FBTyxZQUFFLGFBQ1QsS0FBSyxpQ0FBaUMsS0FDdENGLCtCQUE4QixLQUFLLGFBQWEsS0FBSyxDQUFDLENBQUMsR0FBRztBQUcxRCxtQkFBUyxDQUFDLFlBQUUsU0FBUztBQUVyQixVQUFBRSxNQUFLO0FBQUEsUUFDVCxPQUNLO0FBRUQsbUJBQ0ksZ0JBQWdCLElBQ1YsQ0FBQyx5QkFBZUEsRUFBQyxJQUFJLENBQUMsYUFBYSxZQUFZLElBQy9DLGdCQUFnQixJQUNaLENBQUMseUJBQWUsRUFBRUEsRUFBQyxDQUFDLElBQ3BCLENBQUMseUJBQWUsRUFBRUEsRUFBQyxHQUFHLHlCQUFlLEVBQUVBLEVBQUMsQ0FBQztBQUN2RCxtQkFBUztBQUNULDZCQUFtQixPQUFPLFlBQUU7QUFBQSxRQUNoQztBQUNBLFlBQUksZ0JBQWdCLEdBQUc7QUFFbkIsZUFBSyxTQUFTO0FBQ2Q7QUFBQSxRQUNKO0FBQUEsTUFDSjtBQUFBLElBQ0o7QUFDQSxTQUFLLFdBQVcsTUFBTTtBQUN0QixRQUFJLG9CQUFvQixDQUFDLEtBQUssYUFBYSxlQUFlO0FBQ3RELFdBQUssS0FBSyxJQUFJLHVDQUF1QztBQUFBLElBQ3pEO0FBSUEsU0FBSyxXQUFXLENBQUM7QUFDakIsV0FBTztBQUFBLEVBQ1g7QUFBQSxFQUNBLG1DQUFtQztBQUMvQixXQUFRLEtBQUssZ0JBQWdCLE1BQU0saUNBQy9CLEtBQUssZ0JBQWdCLE1BQU0saUNBQzNCLEtBQUssZ0JBQWdCLE1BQU07QUFBQSxFQUNuQztBQUFBLEVBQ0EsNENBQTRDLElBQUk7QUFDNUMsUUFBSSxLQUFLLGlDQUFpQyxHQUFHO0FBQ3pDLFdBQUssWUFBWSxTQUFTLE9BQU8sY0FBYyxFQUFFO0FBQUEsSUFDckQsT0FDSztBQUNELFdBQUssZUFBZSxFQUFFO0FBQUEsSUFDMUI7QUFBQSxFQUNKO0FBQUE7QUFBQSxFQUVBLFdBQVcsSUFBSTtBQUNYLFlBQVEsS0FBSyxPQUFPO0FBQUEsTUFDaEIsS0FBSyxNQUFNLE1BQU07QUFDYixhQUFLLFdBQVcsRUFBRTtBQUNsQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssTUFBTSxRQUFRO0FBQ2YsYUFBSyxhQUFhLEVBQUU7QUFDcEI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sU0FBUztBQUNoQixhQUFLLGNBQWMsRUFBRTtBQUNyQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssTUFBTSxhQUFhO0FBQ3BCLGFBQUssaUJBQWlCLEVBQUU7QUFDeEI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sV0FBVztBQUNsQixhQUFLLGdCQUFnQixFQUFFO0FBQ3ZCO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxNQUFNLFVBQVU7QUFDakIsYUFBSyxjQUFjLEVBQUU7QUFDckI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sY0FBYztBQUNyQixhQUFLLGlCQUFpQixFQUFFO0FBQ3hCO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxNQUFNLFVBQVU7QUFDakIsYUFBSyxjQUFjLEVBQUU7QUFDckI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sdUJBQXVCO0FBQzlCLGFBQUsseUJBQXlCLEVBQUU7QUFDaEM7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0scUJBQXFCO0FBQzVCLGFBQUssdUJBQXVCLEVBQUU7QUFDOUI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0scUJBQXFCO0FBQzVCLGFBQUssdUJBQXVCLEVBQUU7QUFDOUI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sd0JBQXdCO0FBQy9CLGFBQUssMEJBQTBCLEVBQUU7QUFDakM7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sc0JBQXNCO0FBQzdCLGFBQUssd0JBQXdCLEVBQUU7QUFDL0I7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sc0JBQXNCO0FBQzdCLGFBQUssd0JBQXdCLEVBQUU7QUFDL0I7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sNEJBQTRCO0FBQ25DLGFBQUssNkJBQTZCLEVBQUU7QUFDcEM7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sMEJBQTBCO0FBQ2pDLGFBQUssMkJBQTJCLEVBQUU7QUFDbEM7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sMEJBQTBCO0FBQ2pDLGFBQUssMkJBQTJCLEVBQUU7QUFDbEM7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sMEJBQTBCO0FBQ2pDLGFBQUssNEJBQTRCLEVBQUU7QUFDbkM7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sK0JBQStCO0FBQ3RDLGFBQUssZ0NBQWdDLEVBQUU7QUFDdkM7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0scUJBQXFCO0FBQzVCLGFBQUssd0JBQXdCLEVBQUU7QUFDL0I7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sMEJBQTBCO0FBQ2pDLGFBQUssNEJBQTRCLEVBQUU7QUFDbkM7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sK0JBQStCO0FBQ3RDLGFBQUssZ0NBQWdDLEVBQUU7QUFDdkM7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sb0NBQW9DO0FBQzNDLGFBQUssb0NBQW9DLEVBQUU7QUFDM0M7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sa0NBQWtDO0FBQ3pDLGFBQUssa0NBQWtDLEVBQUU7QUFDekM7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sa0NBQWtDO0FBQ3pDLGFBQUssa0NBQWtDLEVBQUU7QUFDekM7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0saUNBQWlDO0FBQ3hDLGFBQUssa0NBQWtDLEVBQUU7QUFDekM7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sNEJBQTRCO0FBQ25DLGFBQUssOEJBQThCLEVBQUU7QUFDckM7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0saUNBQWlDO0FBQ3hDLGFBQUssa0NBQWtDLEVBQUU7QUFDekM7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sc0NBQXNDO0FBQzdDLGFBQUssc0NBQXNDLEVBQUU7QUFDN0M7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sMkNBQTJDO0FBQ2xELGFBQUssMENBQTBDLEVBQUU7QUFDakQ7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sK0JBQStCO0FBQ3RDLGFBQUssZ0NBQWdDLEVBQUU7QUFDdkM7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sdUJBQXVCO0FBQzlCLGFBQUssMEJBQTBCLEVBQUU7QUFDakM7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sZ0JBQWdCO0FBQ3ZCLGFBQUssb0JBQW9CLEVBQUU7QUFDM0I7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sc0JBQXNCO0FBQzdCLGFBQUsseUJBQXlCLEVBQUU7QUFDaEM7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sd0JBQXdCO0FBQy9CLGFBQUssMkJBQTJCLEVBQUU7QUFDbEM7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sK0JBQStCO0FBQ3RDLGFBQUssaUNBQWlDLEVBQUU7QUFDeEM7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sK0JBQStCO0FBQ3RDLGFBQUssaUNBQWlDLEVBQUU7QUFDeEM7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sMEJBQTBCO0FBQ2pDLGFBQUssNkJBQTZCLEVBQUU7QUFDcEM7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sOEJBQThCO0FBQ3JDLGFBQUssZ0NBQWdDLEVBQUU7QUFDdkM7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sd0JBQXdCO0FBQy9CLGFBQUssMEJBQTBCLEVBQUU7QUFDakM7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sZUFBZTtBQUN0QixhQUFLLG1CQUFtQixFQUFFO0FBQzFCO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxNQUFNLHlCQUF5QjtBQUNoQyxhQUFLLDRCQUE0QixFQUFFO0FBQ25DO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxNQUFNLGVBQWU7QUFDdEIsYUFBSyxtQkFBbUIsRUFBRTtBQUMxQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssTUFBTSxvQkFBb0I7QUFDM0IsYUFBSyx1QkFBdUIsRUFBRTtBQUM5QjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssTUFBTSxTQUFTO0FBQ2hCLGFBQUssY0FBYyxFQUFFO0FBQ3JCO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxNQUFNLHdCQUF3QjtBQUMvQixhQUFLLDBCQUEwQixFQUFFO0FBQ2pDO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxNQUFNLDZCQUE2QjtBQUNwQyxhQUFLLDhCQUE4QixFQUFFO0FBQ3JDO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxNQUFNLGtDQUFrQztBQUN6QyxhQUFLLGtDQUFrQyxFQUFFO0FBQ3pDO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxNQUFNLHVDQUF1QztBQUM5QyxhQUFLLHNDQUFzQyxFQUFFO0FBQzdDO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxNQUFNLGtCQUFrQjtBQUN6QixhQUFLLHFCQUFxQixFQUFFO0FBQzVCO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxNQUFNLGFBQWE7QUFDcEIsYUFBSyxpQkFBaUIsRUFBRTtBQUN4QjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssTUFBTSxrQkFBa0I7QUFDekIsYUFBSyxxQkFBcUIsRUFBRTtBQUM1QjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssTUFBTSxTQUFTO0FBQ2hCLGFBQUssY0FBYyxFQUFFO0FBQ3JCO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxNQUFNLHFCQUFxQjtBQUM1QixhQUFLLHdCQUF3QixFQUFFO0FBQy9CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxNQUFNLGNBQWM7QUFDckIsYUFBSyxrQkFBa0IsRUFBRTtBQUN6QjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssTUFBTSxvQkFBb0I7QUFDM0IsYUFBSyx1QkFBdUIsRUFBRTtBQUM5QjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssTUFBTSw4QkFBOEI7QUFDckMsYUFBSyxnQ0FBZ0MsRUFBRTtBQUN2QztBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssTUFBTSxrQ0FBa0M7QUFDekMsYUFBSyxvQ0FBb0MsRUFBRTtBQUMzQztBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssTUFBTSx5Q0FBeUM7QUFDaEQsYUFBSywwQ0FBMEMsRUFBRTtBQUNqRDtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssTUFBTSx5Q0FBeUM7QUFDaEQsYUFBSywwQ0FBMEMsRUFBRTtBQUNqRDtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssTUFBTSxpQ0FBaUM7QUFDeEMsYUFBSyxtQ0FBbUMsRUFBRTtBQUMxQztBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssTUFBTSwrQ0FBK0M7QUFDdEQsYUFBSywrQ0FBK0MsRUFBRTtBQUN0RDtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssTUFBTSw4QkFBOEI7QUFDckMsYUFBSyxnQ0FBZ0MsRUFBRTtBQUN2QztBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssTUFBTSxrQ0FBa0M7QUFDekMsYUFBSyxvQ0FBb0MsRUFBRTtBQUMzQztBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssTUFBTSx5Q0FBeUM7QUFDaEQsYUFBSywwQ0FBMEMsRUFBRTtBQUNqRDtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssTUFBTSx5Q0FBeUM7QUFDaEQsYUFBSywwQ0FBMEMsRUFBRTtBQUNqRDtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssTUFBTSxpQ0FBaUM7QUFDeEMsYUFBSyxtQ0FBbUMsRUFBRTtBQUMxQztBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssTUFBTSxlQUFlO0FBQ3RCLGFBQUssbUJBQW1CLEVBQUU7QUFDMUI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLE1BQU0sZUFBZTtBQUN0QixhQUFLLG1CQUFtQixFQUFFO0FBQzFCO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxNQUFNLHVCQUF1QjtBQUM5QixhQUFLLDBCQUEwQixFQUFFO0FBQ2pDO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxNQUFNLG1CQUFtQjtBQUMxQixhQUFLLHNCQUFzQixFQUFFO0FBQzdCO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxNQUFNLHFCQUFxQjtBQUM1QixhQUFLLHlCQUF5QixFQUFFO0FBQ2hDO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxNQUFNLDJCQUEyQjtBQUNsQyxhQUFLLDhCQUE4QixFQUFFO0FBQ3JDO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxNQUFNLHFCQUFxQjtBQUM1QixhQUFLLHlCQUF5QixFQUFFO0FBQ2hDO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxNQUFNLDZCQUE2QjtBQUNwQyxhQUFLLGdDQUFnQyxFQUFFO0FBQ3ZDO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxNQUFNLHVDQUF1QztBQUM5QyxhQUFLLHlDQUF5QyxFQUFFO0FBQ2hEO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxNQUFNLGlDQUFpQztBQUN4QyxhQUFLLG9DQUFvQyxFQUFFO0FBQzNDO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxNQUFNLDZCQUE2QjtBQUNwQyxhQUFLLGdDQUFnQyxFQUFFO0FBQ3ZDO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxNQUFNLGlDQUFpQztBQUN4QyxhQUFLLG1DQUFtQyxFQUFFO0FBQzFDO0FBQUEsTUFDSjtBQUFBLE1BQ0EsU0FBUztBQUNMLGNBQU0sSUFBSSxNQUFNLGVBQWU7QUFBQSxNQUNuQztBQUFBLElBQ0o7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJQSxXQUFXLElBQUk7QUFDWCxZQUFRLElBQUk7QUFBQSxNQUNSLEtBQUssWUFBRSxnQkFBZ0I7QUFDbkIsYUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsV0FBVztBQUNkLGFBQUssY0FBYyxNQUFNO0FBQ3pCLGFBQUssUUFBUSxNQUFNO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLE1BQU07QUFDVCxhQUFLLEtBQUssSUFBSSx1QkFBdUI7QUFDckMsYUFBSyxlQUFlLEVBQUU7QUFDdEI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsS0FBSztBQUNSLGFBQUssY0FBYztBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLFNBQVM7QUFDTCxhQUFLLGVBQWUsRUFBRTtBQUFBLE1BQzFCO0FBQUEsSUFDSjtBQUFBLEVBQ0o7QUFBQTtBQUFBO0FBQUEsRUFHQSxhQUFhLElBQUk7QUFDYixZQUFRLElBQUk7QUFBQSxNQUNSLEtBQUssWUFBRSxXQUFXO0FBQ2QsYUFBSyxjQUFjLE1BQU07QUFDekIsYUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsZ0JBQWdCO0FBQ25CLGFBQUssUUFBUSxNQUFNO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLE1BQU07QUFDVCxhQUFLLEtBQUssSUFBSSx1QkFBdUI7QUFDckMsYUFBSyxXQUFXLHFCQUFxQjtBQUNyQztBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxLQUFLO0FBQ1IsYUFBSyxjQUFjO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsU0FBUztBQUNMLGFBQUssZUFBZSxFQUFFO0FBQUEsTUFDMUI7QUFBQSxJQUNKO0FBQUEsRUFDSjtBQUFBO0FBQUE7QUFBQSxFQUdBLGNBQWMsSUFBSTtBQUNkLFlBQVEsSUFBSTtBQUFBLE1BQ1IsS0FBSyxZQUFFLGdCQUFnQjtBQUNuQixhQUFLLFFBQVEsTUFBTTtBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxNQUFNO0FBQ1QsYUFBSyxLQUFLLElBQUksdUJBQXVCO0FBQ3JDLGFBQUssV0FBVyxxQkFBcUI7QUFDckM7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsS0FBSztBQUNSLGFBQUssY0FBYztBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLFNBQVM7QUFDTCxhQUFLLGVBQWUsRUFBRTtBQUFBLE1BQzFCO0FBQUEsSUFDSjtBQUFBLEVBQ0o7QUFBQTtBQUFBO0FBQUEsRUFHQSxpQkFBaUIsSUFBSTtBQUNqQixZQUFRLElBQUk7QUFBQSxNQUNSLEtBQUssWUFBRSxnQkFBZ0I7QUFDbkIsYUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsTUFBTTtBQUNULGFBQUssS0FBSyxJQUFJLHVCQUF1QjtBQUNyQyxhQUFLLFdBQVcscUJBQXFCO0FBQ3JDO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLEtBQUs7QUFDUixhQUFLLGNBQWM7QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxTQUFTO0FBQ0wsYUFBSyxlQUFlLEVBQUU7QUFBQSxNQUMxQjtBQUFBLElBQ0o7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBLEVBR0EsZ0JBQWdCLElBQUk7QUFDaEIsWUFBUSxJQUFJO0FBQUEsTUFDUixLQUFLLFlBQUUsTUFBTTtBQUNULGFBQUssS0FBSyxJQUFJLHVCQUF1QjtBQUNyQyxhQUFLLFdBQVcscUJBQXFCO0FBQ3JDO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLEtBQUs7QUFDUixhQUFLLGNBQWM7QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxTQUFTO0FBQ0wsYUFBSyxlQUFlLEVBQUU7QUFBQSxNQUMxQjtBQUFBLElBQ0o7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBLEVBR0EsY0FBYyxJQUFJO0FBQ2QsUUFBSSxjQUFjLEVBQUUsR0FBRztBQUNuQixXQUFLLHFCQUFxQjtBQUMxQixXQUFLLFFBQVEsTUFBTTtBQUNuQixXQUFLLGNBQWMsRUFBRTtBQUFBLElBQ3pCO0FBRUksY0FBUSxJQUFJO0FBQUEsUUFDUixLQUFLLFlBQUUsa0JBQWtCO0FBQ3JCLGVBQUssUUFBUSxNQUFNO0FBQ25CO0FBQUEsUUFDSjtBQUFBLFFBQ0EsS0FBSyxZQUFFLFNBQVM7QUFDWixlQUFLLFFBQVEsTUFBTTtBQUNuQjtBQUFBLFFBQ0o7QUFBQSxRQUNBLEtBQUssWUFBRSxlQUFlO0FBQ2xCLGVBQUssS0FBSyxJQUFJLHNDQUFzQztBQUNwRCxlQUFLLG9CQUFvQixDQUFDO0FBQzFCLGVBQUssUUFBUSxNQUFNO0FBQ25CLGVBQUssbUJBQW1CLEVBQUU7QUFDMUI7QUFBQSxRQUNKO0FBQUEsUUFDQSxLQUFLLFlBQUUsS0FBSztBQUNSLGVBQUssS0FBSyxJQUFJLGdCQUFnQjtBQUM5QixlQUFLLFdBQVcsR0FBRztBQUNuQixlQUFLLGNBQWM7QUFDbkI7QUFBQSxRQUNKO0FBQUEsUUFDQSxTQUFTO0FBQ0wsZUFBSyxLQUFLLElBQUksOEJBQThCO0FBQzVDLGVBQUssV0FBVyxHQUFHO0FBQ25CLGVBQUssUUFBUSxNQUFNO0FBQ25CLGVBQUssV0FBVyxFQUFFO0FBQUEsUUFDdEI7QUFBQSxNQUNKO0FBQUEsRUFDUjtBQUFBO0FBQUE7QUFBQSxFQUdBLGlCQUFpQixJQUFJO0FBQ2pCLFFBQUksY0FBYyxFQUFFLEdBQUc7QUFDbkIsV0FBSyxtQkFBbUI7QUFDeEIsV0FBSyxRQUFRLE1BQU07QUFDbkIsV0FBSyxjQUFjLEVBQUU7QUFBQSxJQUN6QjtBQUVJLGNBQVEsSUFBSTtBQUFBLFFBQ1IsS0FBSyxZQUFFLG1CQUFtQjtBQUN0QixlQUFLLEtBQUssSUFBSSxpQkFBaUI7QUFDL0IsZUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxRQUNKO0FBQUEsUUFDQSxLQUFLLFlBQUUsS0FBSztBQUNSLGVBQUssS0FBSyxJQUFJLGdCQUFnQjtBQUM5QixlQUFLLFdBQVcsSUFBSTtBQUNwQixlQUFLLGNBQWM7QUFDbkI7QUFBQSxRQUNKO0FBQUEsUUFDQSxTQUFTO0FBQ0wsZUFBSyxLQUFLLElBQUksOEJBQThCO0FBQzVDLGVBQUssb0JBQW9CLENBQUM7QUFDMUIsZUFBSyxRQUFRLE1BQU07QUFDbkIsZUFBSyxtQkFBbUIsRUFBRTtBQUFBLFFBQzlCO0FBQUEsTUFDSjtBQUFBLEVBQ1I7QUFBQTtBQUFBO0FBQUEsRUFHQSxjQUFjLElBQUk7QUFDZCxVQUFNLFFBQVEsS0FBSztBQUNuQixZQUFRLElBQUk7QUFBQSxNQUNSLEtBQUssWUFBRTtBQUFBLE1BQ1AsS0FBSyxZQUFFO0FBQUEsTUFDUCxLQUFLLFlBQUU7QUFBQSxNQUNQLEtBQUssWUFBRSxXQUFXO0FBQ2QsYUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsU0FBUztBQUNaLGFBQUssUUFBUSxNQUFNO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLG1CQUFtQjtBQUN0QixhQUFLLFFBQVEsTUFBTTtBQUNuQixhQUFLLG9CQUFvQjtBQUN6QjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxNQUFNO0FBQ1QsYUFBSyxLQUFLLElBQUksdUJBQXVCO0FBQ3JDLGNBQU0sV0FBVztBQUNqQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxLQUFLO0FBQ1IsYUFBSyxLQUFLLElBQUksUUFBUTtBQUN0QixhQUFLLGNBQWM7QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxTQUFTO0FBQ0wsY0FBTSxXQUFXLE9BQU8sY0FBYyxhQUFhLEVBQUUsSUFBSSxhQUFhLEVBQUUsSUFBSSxFQUFFO0FBQUEsTUFDbEY7QUFBQSxJQUNKO0FBQUEsRUFDSjtBQUFBO0FBQUE7QUFBQSxFQUdBLHlCQUF5QixJQUFJO0FBQ3pCLFFBQUksT0FBTyxZQUFFLFNBQVM7QUFDbEIsV0FBSyxRQUFRLE1BQU07QUFBQSxJQUN2QixPQUNLO0FBQ0QsV0FBSyxXQUFXLEdBQUc7QUFDbkIsV0FBSyxRQUFRLE1BQU07QUFDbkIsV0FBSyxhQUFhLEVBQUU7QUFBQSxJQUN4QjtBQUFBLEVBQ0o7QUFBQTtBQUFBO0FBQUEsRUFHQSx1QkFBdUIsSUFBSTtBQUN2QixRQUFJLGNBQWMsRUFBRSxHQUFHO0FBQ25CLFdBQUssUUFBUSxNQUFNO0FBQ25CLFdBQUssdUJBQXVCLEVBQUU7QUFBQSxJQUNsQyxPQUNLO0FBQ0QsV0FBSyxXQUFXLElBQUk7QUFDcEIsV0FBSyxRQUFRLE1BQU07QUFDbkIsV0FBSyxhQUFhLEVBQUU7QUFBQSxJQUN4QjtBQUFBLEVBQ0o7QUFBQSxFQUNBLG9CQUFvQixLQUFLO0FBQ3JCLFFBQUksQ0FBQyxLQUFLLGFBQWEsV0FBVyxLQUFLLGtCQUFrQixLQUFLLEdBQUc7QUFDN0QsYUFBTyxDQUFDLEtBQUssbUJBQW1CO0FBQUEsSUFDcEM7QUFDQSxTQUFLLG1CQUFtQjtBQUN4QixVQUFNLFFBQVEsS0FBSztBQUNuQixVQUFNLFVBQVUsS0FBSztBQUNyQixVQUFNLEtBQUssS0FBSyxhQUFhLEtBQUssS0FBSyxpQkFBaUIsTUFBTTtBQUM5RCxZQUFRLElBQUk7QUFBQSxNQUNSLEtBQUssWUFBRTtBQUFBLE1BQ1AsS0FBSyxZQUFFO0FBQUEsTUFDUCxLQUFLLFlBQUU7QUFBQSxNQUNQLEtBQUssWUFBRSxXQUFXO0FBQ2QsYUFBSyxXQUFXLEtBQUssaUJBQWlCLE1BQU07QUFDNUMsYUFBSyxRQUFRLE1BQU07QUFDbkIsZUFBTztBQUFBLE1BQ1g7QUFBQSxNQUNBLEtBQUssWUFBRSxTQUFTO0FBQ1osYUFBSyxXQUFXLEtBQUssaUJBQWlCLE1BQU07QUFDNUMsYUFBSyxRQUFRLE1BQU07QUFDbkIsZUFBTztBQUFBLE1BQ1g7QUFBQSxNQUNBLEtBQUssWUFBRSxtQkFBbUI7QUFDdEIsYUFBSyxXQUFXLEtBQUssaUJBQWlCLE1BQU07QUFDNUMsYUFBSyxvQkFBb0I7QUFDekIsYUFBSyxRQUFRLE1BQU07QUFDbkIsZUFBTztBQUFBLE1BQ1g7QUFBQSxNQUNBLFNBQVM7QUFDTCxlQUFPLENBQUMsS0FBSyxtQkFBbUI7QUFBQSxNQUNwQztBQUFBLElBQ0o7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBLEVBR0EsdUJBQXVCLElBQUk7QUFDdkIsUUFBSSxLQUFLLG9CQUFvQixFQUFFLEdBQUc7QUFDOUIsV0FBSyxXQUFXLElBQUk7QUFDcEIsV0FBSyxRQUFRLE1BQU07QUFDbkIsV0FBSyxhQUFhLEVBQUU7QUFBQSxJQUN4QjtBQUFBLEVBQ0o7QUFBQTtBQUFBO0FBQUEsRUFHQSwwQkFBMEIsSUFBSTtBQUMxQixRQUFJLE9BQU8sWUFBRSxTQUFTO0FBQ2xCLFdBQUssUUFBUSxNQUFNO0FBQUEsSUFDdkIsT0FDSztBQUNELFdBQUssV0FBVyxHQUFHO0FBQ25CLFdBQUssUUFBUSxNQUFNO0FBQ25CLFdBQUssY0FBYyxFQUFFO0FBQUEsSUFDekI7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBLEVBR0Esd0JBQXdCLElBQUk7QUFDeEIsUUFBSSxjQUFjLEVBQUUsR0FBRztBQUNuQixXQUFLLFFBQVEsTUFBTTtBQUNuQixXQUFLLHdCQUF3QixFQUFFO0FBQUEsSUFDbkMsT0FDSztBQUNELFdBQUssV0FBVyxJQUFJO0FBQ3BCLFdBQUssUUFBUSxNQUFNO0FBQ25CLFdBQUssY0FBYyxFQUFFO0FBQUEsSUFDekI7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBLEVBR0Esd0JBQXdCLElBQUk7QUFDeEIsUUFBSSxLQUFLLG9CQUFvQixFQUFFLEdBQUc7QUFDOUIsV0FBSyxXQUFXLElBQUk7QUFDcEIsV0FBSyxRQUFRLE1BQU07QUFDbkIsV0FBSyxjQUFjLEVBQUU7QUFBQSxJQUN6QjtBQUFBLEVBQ0o7QUFBQTtBQUFBO0FBQUEsRUFHQSw2QkFBNkIsSUFBSTtBQUM3QixZQUFRLElBQUk7QUFBQSxNQUNSLEtBQUssWUFBRSxTQUFTO0FBQ1osYUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsa0JBQWtCO0FBQ3JCLGFBQUssUUFBUSxNQUFNO0FBQ25CLGFBQUssV0FBVyxJQUFJO0FBQ3BCO0FBQUEsTUFDSjtBQUFBLE1BQ0EsU0FBUztBQUNMLGFBQUssV0FBVyxHQUFHO0FBQ25CLGFBQUssUUFBUSxNQUFNO0FBQ25CLGFBQUssaUJBQWlCLEVBQUU7QUFBQSxNQUM1QjtBQUFBLElBQ0o7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBLEVBR0EsMkJBQTJCLElBQUk7QUFDM0IsUUFBSSxjQUFjLEVBQUUsR0FBRztBQUNuQixXQUFLLFFBQVEsTUFBTTtBQUNuQixXQUFLLDJCQUEyQixFQUFFO0FBQUEsSUFDdEMsT0FDSztBQUNELFdBQUssV0FBVyxJQUFJO0FBQ3BCLFdBQUssUUFBUSxNQUFNO0FBQ25CLFdBQUssaUJBQWlCLEVBQUU7QUFBQSxJQUM1QjtBQUFBLEVBQ0o7QUFBQTtBQUFBO0FBQUEsRUFHQSwyQkFBMkIsSUFBSTtBQUMzQixRQUFJLEtBQUssb0JBQW9CLEVBQUUsR0FBRztBQUM5QixXQUFLLFdBQVcsSUFBSTtBQUNwQixXQUFLLFFBQVEsTUFBTTtBQUNuQixXQUFLLGlCQUFpQixFQUFFO0FBQUEsSUFDNUI7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBLEVBR0EsNEJBQTRCLElBQUk7QUFDNUIsUUFBSSxPQUFPLFlBQUUsY0FBYztBQUN2QixXQUFLLFFBQVEsTUFBTTtBQUNuQixXQUFLLFdBQVcsR0FBRztBQUFBLElBQ3ZCLE9BQ0s7QUFDRCxXQUFLLFFBQVEsTUFBTTtBQUNuQixXQUFLLGlCQUFpQixFQUFFO0FBQUEsSUFDNUI7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBLEVBR0EsZ0NBQWdDLElBQUk7QUFDaEMsUUFBSSxPQUFPLFlBQUUsY0FBYztBQUN2QixXQUFLLFFBQVEsTUFBTTtBQUNuQixXQUFLLFdBQVcsR0FBRztBQUFBLElBQ3ZCLE9BQ0s7QUFDRCxXQUFLLFFBQVEsTUFBTTtBQUNuQixXQUFLLGlCQUFpQixFQUFFO0FBQUEsSUFDNUI7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBLEVBR0Esd0JBQXdCLElBQUk7QUFDeEIsWUFBUSxJQUFJO0FBQUEsTUFDUixLQUFLLFlBQUUsY0FBYztBQUNqQixhQUFLLFFBQVEsTUFBTTtBQUNuQixhQUFLLFdBQVcsR0FBRztBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxnQkFBZ0I7QUFDbkIsYUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsTUFBTTtBQUNULGFBQUssS0FBSyxJQUFJLHVCQUF1QjtBQUNyQyxhQUFLLFdBQVcscUJBQXFCO0FBQ3JDO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLEtBQUs7QUFDUixhQUFLLEtBQUssSUFBSSw4QkFBOEI7QUFDNUMsYUFBSyxjQUFjO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsU0FBUztBQUNMLGFBQUssZUFBZSxFQUFFO0FBQUEsTUFDMUI7QUFBQSxJQUNKO0FBQUEsRUFDSjtBQUFBO0FBQUE7QUFBQSxFQUdBLDRCQUE0QixJQUFJO0FBQzVCLFlBQVEsSUFBSTtBQUFBLE1BQ1IsS0FBSyxZQUFFLGNBQWM7QUFDakIsYUFBSyxRQUFRLE1BQU07QUFDbkIsYUFBSyxXQUFXLEdBQUc7QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsZ0JBQWdCO0FBQ25CLGFBQUssUUFBUSxNQUFNO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLE1BQU07QUFDVCxhQUFLLEtBQUssSUFBSSx1QkFBdUI7QUFDckMsYUFBSyxRQUFRLE1BQU07QUFDbkIsYUFBSyxXQUFXLHFCQUFxQjtBQUNyQztBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxLQUFLO0FBQ1IsYUFBSyxLQUFLLElBQUksOEJBQThCO0FBQzVDLGFBQUssY0FBYztBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLFNBQVM7QUFDTCxhQUFLLFFBQVEsTUFBTTtBQUNuQixhQUFLLGVBQWUsRUFBRTtBQUFBLE1BQzFCO0FBQUEsSUFDSjtBQUFBLEVBQ0o7QUFBQTtBQUFBO0FBQUEsRUFHQSxnQ0FBZ0MsSUFBSTtBQUNoQyxZQUFRLElBQUk7QUFBQSxNQUNSLEtBQUssWUFBRSxjQUFjO0FBQ2pCLGFBQUssV0FBVyxHQUFHO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLGdCQUFnQjtBQUNuQixhQUFLLFFBQVEsTUFBTTtBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxtQkFBbUI7QUFDdEIsYUFBSyxRQUFRLE1BQU07QUFDbkIsYUFBSyxXQUFXLEdBQUc7QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsTUFBTTtBQUNULGFBQUssS0FBSyxJQUFJLHVCQUF1QjtBQUNyQyxhQUFLLFFBQVEsTUFBTTtBQUNuQixhQUFLLFdBQVcscUJBQXFCO0FBQ3JDO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLEtBQUs7QUFDUixhQUFLLEtBQUssSUFBSSw4QkFBOEI7QUFDNUMsYUFBSyxjQUFjO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsU0FBUztBQUNMLGFBQUssUUFBUSxNQUFNO0FBQ25CLGFBQUssZUFBZSxFQUFFO0FBQUEsTUFDMUI7QUFBQSxJQUNKO0FBQUEsRUFDSjtBQUFBO0FBQUE7QUFBQSxFQUdBLG9DQUFvQyxJQUFJO0FBQ3BDLFFBQUksT0FBTyxZQUFFLFNBQVM7QUFDbEIsV0FBSyxRQUFRLE1BQU07QUFBQSxJQUN2QixXQUNTLGNBQWMsRUFBRSxHQUFHO0FBQ3hCLFdBQUssV0FBVyxHQUFHO0FBQ25CLFdBQUssUUFBUSxNQUFNO0FBQ25CLFdBQUssa0NBQWtDLEVBQUU7QUFBQSxJQUM3QyxPQUNLO0FBQ0QsV0FBSyxXQUFXLEdBQUc7QUFDbkIsV0FBSyxRQUFRLE1BQU07QUFDbkIsV0FBSyx3QkFBd0IsRUFBRTtBQUFBLElBQ25DO0FBQUEsRUFDSjtBQUFBO0FBQUE7QUFBQSxFQUdBLGtDQUFrQyxJQUFJO0FBQ2xDLFFBQUksY0FBYyxFQUFFLEdBQUc7QUFDbkIsV0FBSyxRQUFRLE1BQU07QUFDbkIsV0FBSyxrQ0FBa0MsRUFBRTtBQUFBLElBQzdDLE9BQ0s7QUFDRCxXQUFLLFdBQVcsSUFBSTtBQUNwQixXQUFLLFFBQVEsTUFBTTtBQUNuQixXQUFLLHdCQUF3QixFQUFFO0FBQUEsSUFDbkM7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBLEVBR0Esa0NBQWtDLElBQUk7QUFDbEMsUUFBSSxLQUFLLG9CQUFvQixFQUFFLEdBQUc7QUFDOUIsV0FBSyxXQUFXLElBQUk7QUFDcEIsV0FBSyxRQUFRLE1BQU07QUFDbkIsV0FBSyx3QkFBd0IsRUFBRTtBQUFBLElBQ25DO0FBQUEsRUFDSjtBQUFBO0FBQUE7QUFBQSxFQUdBLGtDQUFrQyxJQUFJO0FBQ2xDLFFBQUksS0FBSyxhQUFhLFdBQVcsVUFBRyxRQUFRLEtBQUssS0FDN0Msb0NBQW9DLEtBQUssYUFBYSxLQUFLLFVBQUcsT0FBTyxNQUFNLENBQUMsR0FBRztBQUMvRSxXQUFLLGVBQWUsRUFBRTtBQUN0QixlQUFTQSxLQUFJLEdBQUdBLEtBQUksVUFBRyxPQUFPLFFBQVFBLE1BQUs7QUFDdkMsYUFBSyxlQUFlLEtBQUssU0FBUyxDQUFDO0FBQUEsTUFDdkM7QUFDQSxXQUFLLFFBQVEsTUFBTTtBQUFBLElBQ3ZCLFdBQ1MsQ0FBQyxLQUFLLG1CQUFtQixHQUFHO0FBQ2pDLFdBQUssUUFBUSxNQUFNO0FBQ25CLFdBQUssd0JBQXdCLEVBQUU7QUFBQSxJQUNuQztBQUFBLEVBQ0o7QUFBQTtBQUFBO0FBQUEsRUFHQSw4QkFBOEIsSUFBSTtBQUM5QixZQUFRLElBQUk7QUFBQSxNQUNSLEtBQUssWUFBRSxjQUFjO0FBQ2pCLGFBQUssUUFBUSxNQUFNO0FBQ25CLGFBQUssV0FBVyxHQUFHO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLGdCQUFnQjtBQUNuQixhQUFLLFFBQVEsTUFBTTtBQUNuQixhQUFLLFdBQVcsR0FBRztBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxNQUFNO0FBQ1QsYUFBSyxLQUFLLElBQUksdUJBQXVCO0FBQ3JDLGFBQUssV0FBVyxxQkFBcUI7QUFDckM7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsS0FBSztBQUNSLGFBQUssS0FBSyxJQUFJLDhCQUE4QjtBQUM1QyxhQUFLLGNBQWM7QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxTQUFTO0FBQ0wsYUFBSyxlQUFlLEVBQUU7QUFBQSxNQUMxQjtBQUFBLElBQ0o7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBLEVBR0Esa0NBQWtDLElBQUk7QUFDbEMsWUFBUSxJQUFJO0FBQUEsTUFDUixLQUFLLFlBQUUsY0FBYztBQUNqQixhQUFLLFFBQVEsTUFBTTtBQUNuQixhQUFLLFdBQVcsR0FBRztBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxnQkFBZ0I7QUFDbkIsYUFBSyxRQUFRLE1BQU07QUFDbkIsYUFBSyxXQUFXLEdBQUc7QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsTUFBTTtBQUNULGFBQUssS0FBSyxJQUFJLHVCQUF1QjtBQUNyQyxhQUFLLFFBQVEsTUFBTTtBQUNuQixhQUFLLFdBQVcscUJBQXFCO0FBQ3JDO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLEtBQUs7QUFDUixhQUFLLEtBQUssSUFBSSw4QkFBOEI7QUFDNUMsYUFBSyxjQUFjO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsU0FBUztBQUNMLGFBQUssUUFBUSxNQUFNO0FBQ25CLGFBQUssZUFBZSxFQUFFO0FBQUEsTUFDMUI7QUFBQSxJQUNKO0FBQUEsRUFDSjtBQUFBO0FBQUE7QUFBQSxFQUdBLHNDQUFzQyxJQUFJO0FBQ3RDLFlBQVEsSUFBSTtBQUFBLE1BQ1IsS0FBSyxZQUFFLGNBQWM7QUFDakIsYUFBSyxXQUFXLEdBQUc7QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsZ0JBQWdCO0FBQ25CLGFBQUssUUFBUSxNQUFNO0FBQ25CLGFBQUssV0FBVyxHQUFHO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLG1CQUFtQjtBQUN0QixhQUFLLFFBQVEsTUFBTTtBQUNuQixhQUFLLFdBQVcsR0FBRztBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxNQUFNO0FBQ1QsYUFBSyxLQUFLLElBQUksdUJBQXVCO0FBQ3JDLGFBQUssUUFBUSxNQUFNO0FBQ25CLGFBQUssV0FBVyxxQkFBcUI7QUFDckM7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsS0FBSztBQUNSLGFBQUssS0FBSyxJQUFJLDhCQUE4QjtBQUM1QyxhQUFLLGNBQWM7QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxTQUFTO0FBQ0wsYUFBSyxRQUFRLE1BQU07QUFDbkIsYUFBSyxlQUFlLEVBQUU7QUFBQSxNQUMxQjtBQUFBLElBQ0o7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBLEVBR0EsMENBQTBDLElBQUk7QUFDMUMsUUFBSSxPQUFPLFlBQUUsU0FBUztBQUNsQixXQUFLLFFBQVEsTUFBTTtBQUNuQixXQUFLLFdBQVcsR0FBRztBQUFBLElBQ3ZCLE9BQ0s7QUFDRCxXQUFLLFFBQVEsTUFBTTtBQUNuQixXQUFLLDhCQUE4QixFQUFFO0FBQUEsSUFDekM7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBLEVBR0EsZ0NBQWdDLElBQUk7QUFDaEMsUUFBSSxLQUFLLGFBQWEsV0FBVyxVQUFHLFFBQVEsS0FBSyxLQUM3QyxvQ0FBb0MsS0FBSyxhQUFhLEtBQUssVUFBRyxPQUFPLE1BQU0sQ0FBQyxHQUFHO0FBQy9FLFdBQUssZUFBZSxFQUFFO0FBQ3RCLGVBQVNBLEtBQUksR0FBR0EsS0FBSSxVQUFHLE9BQU8sUUFBUUEsTUFBSztBQUN2QyxhQUFLLGVBQWUsS0FBSyxTQUFTLENBQUM7QUFBQSxNQUN2QztBQUNBLFdBQUssUUFBUSxNQUFNO0FBQUEsSUFDdkIsV0FDUyxDQUFDLEtBQUssbUJBQW1CLEdBQUc7QUFDakMsV0FBSyxRQUFRLE1BQU07QUFDbkIsV0FBSyw4QkFBOEIsRUFBRTtBQUFBLElBQ3pDO0FBQUEsRUFDSjtBQUFBO0FBQUE7QUFBQSxFQUdBLDBCQUEwQixJQUFJO0FBQzFCLFlBQVEsSUFBSTtBQUFBLE1BQ1IsS0FBSyxZQUFFO0FBQUEsTUFDUCxLQUFLLFlBQUU7QUFBQSxNQUNQLEtBQUssWUFBRTtBQUFBLE1BQ1AsS0FBSyxZQUFFLFdBQVc7QUFFZDtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRTtBQUFBLE1BQ1AsS0FBSyxZQUFFO0FBQUEsTUFDUCxLQUFLLFlBQUUsS0FBSztBQUNSLGFBQUssUUFBUSxNQUFNO0FBQ25CLGFBQUsseUJBQXlCLEVBQUU7QUFDaEM7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsYUFBYTtBQUNoQixhQUFLLEtBQUssSUFBSSx1Q0FBdUM7QUFDckQsYUFBSyxZQUFZLEdBQUc7QUFDcEIsYUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxTQUFTO0FBQ0wsYUFBSyxZQUFZLEVBQUU7QUFDbkIsYUFBSyxRQUFRLE1BQU07QUFDbkIsYUFBSyxvQkFBb0IsRUFBRTtBQUFBLE1BQy9CO0FBQUEsSUFDSjtBQUFBLEVBQ0o7QUFBQTtBQUFBO0FBQUEsRUFHQSxvQkFBb0IsSUFBSTtBQUNwQixZQUFRLElBQUk7QUFBQSxNQUNSLEtBQUssWUFBRTtBQUFBLE1BQ1AsS0FBSyxZQUFFO0FBQUEsTUFDUCxLQUFLLFlBQUU7QUFBQSxNQUNQLEtBQUssWUFBRTtBQUFBLE1BQ1AsS0FBSyxZQUFFO0FBQUEsTUFDUCxLQUFLLFlBQUU7QUFBQSxNQUNQLEtBQUssWUFBRSxLQUFLO0FBQ1IsYUFBSyxlQUFlO0FBQ3BCLGFBQUssUUFBUSxNQUFNO0FBQ25CLGFBQUsseUJBQXlCLEVBQUU7QUFDaEM7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsYUFBYTtBQUNoQixhQUFLLGVBQWU7QUFDcEIsYUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUU7QUFBQSxNQUNQLEtBQUssWUFBRTtBQUFBLE1BQ1AsS0FBSyxZQUFFLGdCQUFnQjtBQUNuQixhQUFLLEtBQUssSUFBSSxrQ0FBa0M7QUFDaEQsYUFBSyxZQUFZLFFBQVEsT0FBTyxjQUFjLEVBQUU7QUFDaEQ7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsTUFBTTtBQUNULGFBQUssS0FBSyxJQUFJLHVCQUF1QjtBQUNyQyxhQUFLLFlBQVksUUFBUTtBQUN6QjtBQUFBLE1BQ0o7QUFBQSxNQUNBLFNBQVM7QUFDTCxhQUFLLFlBQVksUUFBUSxPQUFPLGNBQWMsYUFBYSxFQUFFLElBQUksYUFBYSxFQUFFLElBQUksRUFBRTtBQUFBLE1BQzFGO0FBQUEsSUFDSjtBQUFBLEVBQ0o7QUFBQTtBQUFBO0FBQUEsRUFHQSx5QkFBeUIsSUFBSTtBQUN6QixZQUFRLElBQUk7QUFBQSxNQUNSLEtBQUssWUFBRTtBQUFBLE1BQ1AsS0FBSyxZQUFFO0FBQUEsTUFDUCxLQUFLLFlBQUU7QUFBQSxNQUNQLEtBQUssWUFBRSxXQUFXO0FBRWQ7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsU0FBUztBQUNaLGFBQUssUUFBUSxNQUFNO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLGFBQWE7QUFDaEIsYUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsbUJBQW1CO0FBQ3RCLGFBQUssUUFBUSxNQUFNO0FBQ25CLGFBQUssb0JBQW9CO0FBQ3pCO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLEtBQUs7QUFDUixhQUFLLEtBQUssSUFBSSxRQUFRO0FBQ3RCLGFBQUssY0FBYztBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLFNBQVM7QUFDTCxhQUFLLFlBQVksRUFBRTtBQUNuQixhQUFLLFFBQVEsTUFBTTtBQUNuQixhQUFLLG9CQUFvQixFQUFFO0FBQUEsTUFDL0I7QUFBQSxJQUNKO0FBQUEsRUFDSjtBQUFBO0FBQUE7QUFBQSxFQUdBLDJCQUEyQixJQUFJO0FBQzNCLFlBQVEsSUFBSTtBQUFBLE1BQ1IsS0FBSyxZQUFFO0FBQUEsTUFDUCxLQUFLLFlBQUU7QUFBQSxNQUNQLEtBQUssWUFBRTtBQUFBLE1BQ1AsS0FBSyxZQUFFLFdBQVc7QUFFZDtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxnQkFBZ0I7QUFDbkIsYUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsWUFBWTtBQUNmLGFBQUssUUFBUSxNQUFNO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLG1CQUFtQjtBQUN0QixhQUFLLEtBQUssSUFBSSxxQkFBcUI7QUFDbkMsYUFBSyxRQUFRLE1BQU07QUFDbkIsYUFBSyxvQkFBb0I7QUFDekI7QUFBQSxNQUNKO0FBQUEsTUFDQSxTQUFTO0FBQ0wsYUFBSyxRQUFRLE1BQU07QUFDbkIsYUFBSyw2QkFBNkIsRUFBRTtBQUFBLE1BQ3hDO0FBQUEsSUFDSjtBQUFBLEVBQ0o7QUFBQTtBQUFBO0FBQUEsRUFHQSxpQ0FBaUMsSUFBSTtBQUNqQyxZQUFRLElBQUk7QUFBQSxNQUNSLEtBQUssWUFBRSxnQkFBZ0I7QUFDbkIsYUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsV0FBVztBQUNkLGFBQUssY0FBYyxNQUFNO0FBQ3pCLGFBQUssUUFBUSxNQUFNO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLE1BQU07QUFDVCxhQUFLLEtBQUssSUFBSSx1QkFBdUI7QUFDckMsYUFBSyxZQUFZLFNBQVM7QUFDMUI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsS0FBSztBQUNSLGFBQUssS0FBSyxJQUFJLFFBQVE7QUFDdEIsYUFBSyxjQUFjO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsU0FBUztBQUNMLGFBQUssWUFBWSxTQUFTLE9BQU8sY0FBYyxFQUFFO0FBQUEsTUFDckQ7QUFBQSxJQUNKO0FBQUEsRUFDSjtBQUFBO0FBQUE7QUFBQSxFQUdBLGlDQUFpQyxJQUFJO0FBQ2pDLFlBQVEsSUFBSTtBQUFBLE1BQ1IsS0FBSyxZQUFFLFlBQVk7QUFDZixhQUFLLFFBQVEsTUFBTTtBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxXQUFXO0FBQ2QsYUFBSyxjQUFjLE1BQU07QUFDekIsYUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsTUFBTTtBQUNULGFBQUssS0FBSyxJQUFJLHVCQUF1QjtBQUNyQyxhQUFLLFlBQVksU0FBUztBQUMxQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxLQUFLO0FBQ1IsYUFBSyxLQUFLLElBQUksUUFBUTtBQUN0QixhQUFLLGNBQWM7QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxTQUFTO0FBQ0wsYUFBSyxZQUFZLFNBQVMsT0FBTyxjQUFjLEVBQUU7QUFBQSxNQUNyRDtBQUFBLElBQ0o7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBLEVBR0EsNkJBQTZCLElBQUk7QUFDN0IsWUFBUSxJQUFJO0FBQUEsTUFDUixLQUFLLFlBQUU7QUFBQSxNQUNQLEtBQUssWUFBRTtBQUFBLE1BQ1AsS0FBSyxZQUFFO0FBQUEsTUFDUCxLQUFLLFlBQUUsV0FBVztBQUNkLGFBQUssZ0JBQWdCO0FBQ3JCLGFBQUssUUFBUSxNQUFNO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLFdBQVc7QUFDZCxhQUFLLGNBQWMsTUFBTTtBQUN6QixhQUFLLFFBQVEsTUFBTTtBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxtQkFBbUI7QUFDdEIsYUFBSyxnQkFBZ0I7QUFDckIsYUFBSyxRQUFRLE1BQU07QUFDbkIsYUFBSyxvQkFBb0I7QUFDekI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsTUFBTTtBQUNULGFBQUssS0FBSyxJQUFJLHVCQUF1QjtBQUNyQyxhQUFLLFlBQVksU0FBUztBQUMxQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRTtBQUFBLE1BQ1AsS0FBSyxZQUFFO0FBQUEsTUFDUCxLQUFLLFlBQUU7QUFBQSxNQUNQLEtBQUssWUFBRTtBQUFBLE1BQ1AsS0FBSyxZQUFFLGNBQWM7QUFDakIsYUFBSyxLQUFLLElBQUksMkNBQTJDO0FBQ3pELGFBQUssWUFBWSxTQUFTLE9BQU8sY0FBYyxFQUFFO0FBQ2pEO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLEtBQUs7QUFDUixhQUFLLEtBQUssSUFBSSxRQUFRO0FBQ3RCLGFBQUssY0FBYztBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLFNBQVM7QUFDTCxhQUFLLFlBQVksU0FBUyxPQUFPLGNBQWMsRUFBRTtBQUFBLE1BQ3JEO0FBQUEsSUFDSjtBQUFBLEVBQ0o7QUFBQTtBQUFBO0FBQUEsRUFHQSxnQ0FBZ0MsSUFBSTtBQUNoQyxZQUFRLElBQUk7QUFBQSxNQUNSLEtBQUssWUFBRTtBQUFBLE1BQ1AsS0FBSyxZQUFFO0FBQUEsTUFDUCxLQUFLLFlBQUU7QUFBQSxNQUNQLEtBQUssWUFBRSxXQUFXO0FBQ2QsYUFBSyxnQkFBZ0I7QUFDckIsYUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsU0FBUztBQUNaLGFBQUssZ0JBQWdCO0FBQ3JCLGFBQUssUUFBUSxNQUFNO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLG1CQUFtQjtBQUN0QixhQUFLLGdCQUFnQjtBQUNyQixhQUFLLFFBQVEsTUFBTTtBQUNuQixhQUFLLG9CQUFvQjtBQUN6QjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxLQUFLO0FBQ1IsYUFBSyxLQUFLLElBQUksUUFBUTtBQUN0QixhQUFLLGNBQWM7QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxTQUFTO0FBQ0wsYUFBSyxLQUFLLElBQUksa0NBQWtDO0FBQ2hELGFBQUssUUFBUSxNQUFNO0FBQ25CLGFBQUssMEJBQTBCLEVBQUU7QUFBQSxNQUNyQztBQUFBLElBQ0o7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBLEVBR0EsMEJBQTBCLElBQUk7QUFDMUIsWUFBUSxJQUFJO0FBQUEsTUFDUixLQUFLLFlBQUUsbUJBQW1CO0FBQ3RCLGNBQU0sUUFBUSxLQUFLO0FBQ25CLGNBQU0sY0FBYztBQUNwQixhQUFLLFFBQVEsTUFBTTtBQUNuQixhQUFLLG9CQUFvQjtBQUN6QjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxLQUFLO0FBQ1IsYUFBSyxLQUFLLElBQUksUUFBUTtBQUN0QixhQUFLLGNBQWM7QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxTQUFTO0FBQ0wsYUFBSyxLQUFLLElBQUksc0JBQXNCO0FBQ3BDLGFBQUssUUFBUSxNQUFNO0FBQ25CLGFBQUssMEJBQTBCLEVBQUU7QUFBQSxNQUNyQztBQUFBLElBQ0o7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBLEVBR0EsbUJBQW1CLElBQUk7QUFDbkIsVUFBTSxRQUFRLEtBQUs7QUFDbkIsWUFBUSxJQUFJO0FBQUEsTUFDUixLQUFLLFlBQUUsbUJBQW1CO0FBQ3RCLGFBQUssUUFBUSxNQUFNO0FBQ25CLGFBQUssbUJBQW1CLEtBQUs7QUFDN0I7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsS0FBSztBQUNSLGFBQUssbUJBQW1CLEtBQUs7QUFDN0IsYUFBSyxjQUFjO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLE1BQU07QUFDVCxhQUFLLEtBQUssSUFBSSx1QkFBdUI7QUFDckMsY0FBTSxRQUFRO0FBQ2Q7QUFBQSxNQUNKO0FBQUEsTUFDQSxTQUFTO0FBQ0wsY0FBTSxRQUFRLE9BQU8sY0FBYyxFQUFFO0FBQUEsTUFDekM7QUFBQSxJQUNKO0FBQUEsRUFDSjtBQUFBO0FBQUE7QUFBQSxFQUdBLDRCQUE0QixJQUFJO0FBQzVCLFFBQUksS0FBSyx3QkFBd0IsVUFBRyxXQUFXLElBQUksR0FBRztBQUNsRCxXQUFLLG9CQUFvQixVQUFHLFVBQVUsU0FBUyxDQUFDO0FBQ2hELFdBQUssUUFBUSxNQUFNO0FBQUEsSUFDdkIsV0FDUyxLQUFLLHdCQUF3QixVQUFHLFNBQVMsS0FBSyxHQUFHO0FBRXRELFdBQUssa0JBQWtCLEtBQUssbUJBQW1CLFVBQUcsUUFBUSxTQUFTLENBQUM7QUFDcEUsV0FBSyxRQUFRLE1BQU07QUFBQSxJQUN2QixXQUNTLEtBQUssd0JBQXdCLFVBQUcsYUFBYSxJQUFJLEdBQUc7QUFDekQsVUFBSSxLQUFLLGVBQWU7QUFDcEIsYUFBSyxRQUFRLE1BQU07QUFBQSxNQUN2QixPQUNLO0FBQ0QsYUFBSyxLQUFLLElBQUksa0JBQWtCO0FBQ2hDLGFBQUssb0JBQW9CLFVBQUcsWUFBWSxTQUFTLENBQUM7QUFDbEQsYUFBSyxhQUFhLE9BQU87QUFDekIsYUFBSyxRQUFRLE1BQU07QUFBQSxNQUN2QjtBQUFBLElBQ0osV0FHUyxDQUFDLEtBQUssbUJBQW1CLEdBQUc7QUFDakMsV0FBSyxLQUFLLElBQUksd0JBQXdCO0FBQ3RDLFdBQUssb0JBQW9CLENBQUM7QUFDMUIsV0FBSyxRQUFRLE1BQU07QUFDbkIsV0FBSyxtQkFBbUIsRUFBRTtBQUFBLElBQzlCO0FBQUEsRUFDSjtBQUFBO0FBQUE7QUFBQSxFQUdBLG1CQUFtQixJQUFJO0FBQ25CLFlBQVEsSUFBSTtBQUFBLE1BQ1IsS0FBSyxZQUFFLGNBQWM7QUFDakIsYUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsbUJBQW1CO0FBQ3RCLGFBQUssS0FBSyxJQUFJLDJCQUEyQjtBQUN6QyxhQUFLLFFBQVEsTUFBTTtBQUNuQixjQUFNLFFBQVEsS0FBSztBQUNuQixhQUFLLG1CQUFtQixLQUFLO0FBQzdCO0FBQUEsTUFDSjtBQUFBLE1BQ0EsU0FBUztBQUNMLGFBQUssUUFBUSxNQUFNO0FBQ25CLGFBQUssY0FBYyxFQUFFO0FBQUEsTUFDekI7QUFBQSxJQUNKO0FBQUEsRUFDSjtBQUFBO0FBQUE7QUFBQSxFQUdBLHVCQUF1QixJQUFJO0FBQ3ZCLFVBQU0sUUFBUSxLQUFLO0FBQ25CLFlBQVEsSUFBSTtBQUFBLE1BQ1IsS0FBSyxZQUFFLGNBQWM7QUFDakIsYUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsbUJBQW1CO0FBQ3RCLGFBQUssS0FBSyxJQUFJLDJCQUEyQjtBQUN6QyxhQUFLLFFBQVEsTUFBTTtBQUNuQixhQUFLLG1CQUFtQixLQUFLO0FBQzdCO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLEtBQUs7QUFDUixhQUFLLEtBQUssSUFBSSxZQUFZO0FBQzFCLGFBQUssbUJBQW1CLEtBQUs7QUFDN0IsYUFBSyxjQUFjO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsU0FBUztBQUNMLGNBQU0sUUFBUTtBQUNkLGFBQUssUUFBUSxNQUFNO0FBQ25CLGFBQUssY0FBYyxFQUFFO0FBQUEsTUFDekI7QUFBQSxJQUNKO0FBQUEsRUFDSjtBQUFBO0FBQUE7QUFBQSxFQUdBLGNBQWMsSUFBSTtBQUNkLFVBQU0sUUFBUSxLQUFLO0FBQ25CLFlBQVEsSUFBSTtBQUFBLE1BQ1IsS0FBSyxZQUFFLGNBQWM7QUFDakIsYUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsZ0JBQWdCO0FBQ25CLGNBQU0sUUFBUTtBQUNkLGFBQUssUUFBUSxNQUFNO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLE1BQU07QUFDVCxhQUFLLEtBQUssSUFBSSx1QkFBdUI7QUFDckMsY0FBTSxRQUFRO0FBQ2Q7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsS0FBSztBQUNSLGFBQUssS0FBSyxJQUFJLFlBQVk7QUFDMUIsYUFBSyxtQkFBbUIsS0FBSztBQUM3QixhQUFLLGNBQWM7QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxTQUFTO0FBQ0wsY0FBTSxRQUFRLE9BQU8sY0FBYyxFQUFFO0FBQUEsTUFDekM7QUFBQSxJQUNKO0FBQUEsRUFDSjtBQUFBO0FBQUE7QUFBQSxFQUdBLDBCQUEwQixJQUFJO0FBQzFCLFVBQU0sUUFBUSxLQUFLO0FBQ25CLFlBQVEsSUFBSTtBQUFBLE1BQ1IsS0FBSyxZQUFFLGtCQUFrQjtBQUNyQixjQUFNLFFBQVE7QUFDZCxhQUFLLFFBQVEsTUFBTTtBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxnQkFBZ0I7QUFDbkIsY0FBTSxRQUFRO0FBQ2Q7QUFBQSxNQUNKO0FBQUEsTUFDQSxTQUFTO0FBQ0wsYUFBSyxRQUFRLE1BQU07QUFDbkIsYUFBSyxjQUFjLEVBQUU7QUFBQSxNQUN6QjtBQUFBLElBQ0o7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBLEVBR0EsOEJBQThCLElBQUk7QUFDOUIsUUFBSSxPQUFPLFlBQUUsY0FBYztBQUN2QixXQUFLLFFBQVEsTUFBTTtBQUFBLElBQ3ZCLE9BQ0s7QUFDRCxXQUFLLFFBQVEsTUFBTTtBQUNuQixXQUFLLGNBQWMsRUFBRTtBQUFBLElBQ3pCO0FBQUEsRUFDSjtBQUFBO0FBQUE7QUFBQSxFQUdBLGtDQUFrQyxJQUFJO0FBQ2xDLFFBQUksT0FBTyxZQUFFLGNBQWM7QUFDdkIsV0FBSyxRQUFRLE1BQU07QUFBQSxJQUN2QixPQUNLO0FBQ0QsV0FBSyxRQUFRLE1BQU07QUFDbkIsV0FBSyxxQkFBcUIsRUFBRTtBQUFBLElBQ2hDO0FBQUEsRUFDSjtBQUFBO0FBQUE7QUFBQSxFQUdBLHNDQUFzQyxJQUFJO0FBQ3RDLFFBQUksT0FBTyxZQUFFLHFCQUFxQixPQUFPLFlBQUUsS0FBSztBQUM1QyxXQUFLLEtBQUssSUFBSSxhQUFhO0FBQUEsSUFDL0I7QUFDQSxTQUFLLFFBQVEsTUFBTTtBQUNuQixTQUFLLGlCQUFpQixFQUFFO0FBQUEsRUFDNUI7QUFBQTtBQUFBO0FBQUEsRUFHQSxxQkFBcUIsSUFBSTtBQUNyQixVQUFNLFFBQVEsS0FBSztBQUNuQixZQUFRLElBQUk7QUFBQSxNQUNSLEtBQUssWUFBRSxjQUFjO0FBQ2pCLGFBQUssUUFBUSxNQUFNO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLEtBQUs7QUFDUixhQUFLLEtBQUssSUFBSSxZQUFZO0FBQzFCLGFBQUssbUJBQW1CLEtBQUs7QUFDN0IsYUFBSyxjQUFjO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsU0FBUztBQUNMLGNBQU0sUUFBUTtBQUNkLGFBQUssUUFBUSxNQUFNO0FBQ25CLGFBQUssY0FBYyxFQUFFO0FBQUEsTUFDekI7QUFBQSxJQUNKO0FBQUEsRUFDSjtBQUFBO0FBQUE7QUFBQSxFQUdBLGlCQUFpQixJQUFJO0FBQ2pCLFVBQU0sUUFBUSxLQUFLO0FBQ25CLFlBQVEsSUFBSTtBQUFBLE1BQ1IsS0FBSyxZQUFFLG1CQUFtQjtBQUN0QixhQUFLLFFBQVEsTUFBTTtBQUNuQixhQUFLLG1CQUFtQixLQUFLO0FBQzdCO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLGtCQUFrQjtBQUNyQixhQUFLLFFBQVEsTUFBTTtBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxjQUFjO0FBQ2pCLGNBQU0sUUFBUTtBQUNkO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLEtBQUs7QUFDUixhQUFLLEtBQUssSUFBSSxZQUFZO0FBQzFCLGFBQUssbUJBQW1CLEtBQUs7QUFDN0IsYUFBSyxjQUFjO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsU0FBUztBQUNMLGNBQU0sUUFBUTtBQUNkLGFBQUssUUFBUSxNQUFNO0FBQ25CLGFBQUssY0FBYyxFQUFFO0FBQUEsTUFDekI7QUFBQSxJQUNKO0FBQUEsRUFDSjtBQUFBO0FBQUE7QUFBQSxFQUdBLHFCQUFxQixJQUFJO0FBQ3JCLFVBQU0sUUFBUSxLQUFLO0FBQ25CLFlBQVEsSUFBSTtBQUFBLE1BQ1IsS0FBSyxZQUFFLGNBQWM7QUFDakIsY0FBTSxRQUFRO0FBQ2QsYUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsbUJBQW1CO0FBQ3RCLGFBQUssS0FBSyxJQUFJLHdCQUF3QjtBQUN0QyxhQUFLLFFBQVEsTUFBTTtBQUNuQixhQUFLLG1CQUFtQixLQUFLO0FBQzdCO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLEtBQUs7QUFDUixhQUFLLEtBQUssSUFBSSxZQUFZO0FBQzFCLGFBQUssbUJBQW1CLEtBQUs7QUFDN0IsYUFBSyxjQUFjO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsU0FBUztBQUNMLGNBQU0sUUFBUTtBQUNkLGFBQUssUUFBUSxNQUFNO0FBQ25CLGFBQUssY0FBYyxFQUFFO0FBQUEsTUFDekI7QUFBQSxJQUNKO0FBQUEsRUFDSjtBQUFBO0FBQUE7QUFBQSxFQUdBLGNBQWMsSUFBSTtBQUNkLFlBQVEsSUFBSTtBQUFBLE1BQ1IsS0FBSyxZQUFFO0FBQUEsTUFDUCxLQUFLLFlBQUU7QUFBQSxNQUNQLEtBQUssWUFBRTtBQUFBLE1BQ1AsS0FBSyxZQUFFLFdBQVc7QUFDZCxhQUFLLFFBQVEsTUFBTTtBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxtQkFBbUI7QUFDdEIsYUFBSyxRQUFRLE1BQU07QUFDbkIsYUFBSyx3QkFBd0IsRUFBRTtBQUMvQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxLQUFLO0FBQ1IsYUFBSyxLQUFLLElBQUksWUFBWTtBQUMxQixhQUFLLG9CQUFvQixJQUFJO0FBQzdCLGNBQU0sUUFBUSxLQUFLO0FBQ25CLGNBQU0sY0FBYztBQUNwQixhQUFLLG1CQUFtQixLQUFLO0FBQzdCLGFBQUssY0FBYztBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLFNBQVM7QUFDTCxhQUFLLEtBQUssSUFBSSxrQ0FBa0M7QUFDaEQsYUFBSyxRQUFRLE1BQU07QUFDbkIsYUFBSyx3QkFBd0IsRUFBRTtBQUFBLE1BQ25DO0FBQUEsSUFDSjtBQUFBLEVBQ0o7QUFBQTtBQUFBO0FBQUEsRUFHQSx3QkFBd0IsSUFBSTtBQUN4QixRQUFJLGFBQWEsRUFBRSxHQUFHO0FBQ2xCLFdBQUssb0JBQW9CLE9BQU8sYUFBYSxhQUFhLEVBQUUsQ0FBQyxDQUFDO0FBQzlELFdBQUssUUFBUSxNQUFNO0FBQUEsSUFDdkI7QUFFSSxjQUFRLElBQUk7QUFBQSxRQUNSLEtBQUssWUFBRTtBQUFBLFFBQ1AsS0FBSyxZQUFFO0FBQUEsUUFDUCxLQUFLLFlBQUU7QUFBQSxRQUNQLEtBQUssWUFBRSxXQUFXO0FBRWQ7QUFBQSxRQUNKO0FBQUEsUUFDQSxLQUFLLFlBQUUsTUFBTTtBQUNULGVBQUssS0FBSyxJQUFJLHVCQUF1QjtBQUNyQyxlQUFLLG9CQUFvQixxQkFBcUI7QUFDOUMsZUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxRQUNKO0FBQUEsUUFDQSxLQUFLLFlBQUUsbUJBQW1CO0FBQ3RCLGVBQUssS0FBSyxJQUFJLGtCQUFrQjtBQUNoQyxlQUFLLG9CQUFvQixJQUFJO0FBQzdCLGdCQUFNLFFBQVEsS0FBSztBQUNuQixnQkFBTSxjQUFjO0FBQ3BCLGVBQUssbUJBQW1CLEtBQUs7QUFDN0IsZUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxRQUNKO0FBQUEsUUFDQSxLQUFLLFlBQUUsS0FBSztBQUNSLGVBQUssS0FBSyxJQUFJLFlBQVk7QUFDMUIsZUFBSyxvQkFBb0IsSUFBSTtBQUM3QixnQkFBTSxRQUFRLEtBQUs7QUFDbkIsZ0JBQU0sY0FBYztBQUNwQixlQUFLLG1CQUFtQixLQUFLO0FBQzdCLGVBQUssY0FBYztBQUNuQjtBQUFBLFFBQ0o7QUFBQSxRQUNBLFNBQVM7QUFDTCxlQUFLLG9CQUFvQixPQUFPLGNBQWMsRUFBRSxDQUFDO0FBQ2pELGVBQUssUUFBUSxNQUFNO0FBQUEsUUFDdkI7QUFBQSxNQUNKO0FBQUEsRUFDUjtBQUFBO0FBQUE7QUFBQSxFQUdBLGtCQUFrQixJQUFJO0FBQ2xCLFVBQU0sUUFBUSxLQUFLO0FBQ25CLFlBQVEsSUFBSTtBQUFBLE1BQ1IsS0FBSyxZQUFFO0FBQUEsTUFDUCxLQUFLLFlBQUU7QUFBQSxNQUNQLEtBQUssWUFBRTtBQUFBLE1BQ1AsS0FBSyxZQUFFLFdBQVc7QUFDZCxhQUFLLFFBQVEsTUFBTTtBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxtQkFBbUI7QUFDdEIsYUFBSyxRQUFRLE1BQU07QUFDbkIsYUFBSyxtQkFBbUIsS0FBSztBQUM3QjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxNQUFNO0FBQ1QsYUFBSyxLQUFLLElBQUksdUJBQXVCO0FBQ3JDLGNBQU0sUUFBUTtBQUNkO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLEtBQUs7QUFDUixhQUFLLEtBQUssSUFBSSxZQUFZO0FBQzFCLGNBQU0sY0FBYztBQUNwQixhQUFLLG1CQUFtQixLQUFLO0FBQzdCLGFBQUssY0FBYztBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLFNBQVM7QUFDTCxjQUFNLFFBQVEsT0FBTyxjQUFjLGFBQWEsRUFBRSxJQUFJLGFBQWEsRUFBRSxJQUFJLEVBQUU7QUFBQSxNQUMvRTtBQUFBLElBQ0o7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBLEVBR0EsdUJBQXVCLElBQUk7QUFDdkIsVUFBTSxRQUFRLEtBQUs7QUFDbkIsWUFBUSxJQUFJO0FBQUEsTUFDUixLQUFLLFlBQUU7QUFBQSxNQUNQLEtBQUssWUFBRTtBQUFBLE1BQ1AsS0FBSyxZQUFFO0FBQUEsTUFDUCxLQUFLLFlBQUUsV0FBVztBQUVkO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLG1CQUFtQjtBQUN0QixhQUFLLFFBQVEsTUFBTTtBQUNuQixhQUFLLG1CQUFtQixLQUFLO0FBQzdCO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLEtBQUs7QUFDUixhQUFLLEtBQUssSUFBSSxZQUFZO0FBQzFCLGNBQU0sY0FBYztBQUNwQixhQUFLLG1CQUFtQixLQUFLO0FBQzdCLGFBQUssY0FBYztBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLFNBQVM7QUFDTCxZQUFJLEtBQUssd0JBQXdCLFVBQUcsUUFBUSxLQUFLLEdBQUc7QUFDaEQsZUFBSyxRQUFRLE1BQU07QUFBQSxRQUN2QixXQUNTLEtBQUssd0JBQXdCLFVBQUcsUUFBUSxLQUFLLEdBQUc7QUFDckQsZUFBSyxRQUFRLE1BQU07QUFBQSxRQUN2QixXQUdTLENBQUMsS0FBSyxtQkFBbUIsR0FBRztBQUNqQyxlQUFLLEtBQUssSUFBSSx3Q0FBd0M7QUFDdEQsZ0JBQU0sY0FBYztBQUNwQixlQUFLLFFBQVEsTUFBTTtBQUNuQixlQUFLLG1CQUFtQixFQUFFO0FBQUEsUUFDOUI7QUFBQSxNQUNKO0FBQUEsSUFDSjtBQUFBLEVBQ0o7QUFBQTtBQUFBO0FBQUEsRUFHQSxnQ0FBZ0MsSUFBSTtBQUNoQyxVQUFNLFFBQVEsS0FBSztBQUNuQixZQUFRLElBQUk7QUFBQSxNQUNSLEtBQUssWUFBRTtBQUFBLE1BQ1AsS0FBSyxZQUFFO0FBQUEsTUFDUCxLQUFLLFlBQUU7QUFBQSxNQUNQLEtBQUssWUFBRSxXQUFXO0FBQ2QsYUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsZ0JBQWdCO0FBQ25CLGFBQUssS0FBSyxJQUFJLDBDQUEwQztBQUN4RCxjQUFNLFdBQVc7QUFDakIsYUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsWUFBWTtBQUNmLGFBQUssS0FBSyxJQUFJLDBDQUEwQztBQUN4RCxjQUFNLFdBQVc7QUFDakIsYUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsbUJBQW1CO0FBQ3RCLGFBQUssS0FBSyxJQUFJLDhCQUE4QjtBQUM1QyxjQUFNLGNBQWM7QUFDcEIsYUFBSyxRQUFRLE1BQU07QUFDbkIsYUFBSyxtQkFBbUIsS0FBSztBQUM3QjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxLQUFLO0FBQ1IsYUFBSyxLQUFLLElBQUksWUFBWTtBQUMxQixjQUFNLGNBQWM7QUFDcEIsYUFBSyxtQkFBbUIsS0FBSztBQUM3QixhQUFLLGNBQWM7QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxTQUFTO0FBQ0wsYUFBSyxLQUFLLElBQUkseUNBQXlDO0FBQ3ZELGNBQU0sY0FBYztBQUNwQixhQUFLLFFBQVEsTUFBTTtBQUNuQixhQUFLLG1CQUFtQixFQUFFO0FBQUEsTUFDOUI7QUFBQSxJQUNKO0FBQUEsRUFDSjtBQUFBO0FBQUE7QUFBQSxFQUdBLG9DQUFvQyxJQUFJO0FBQ3BDLFVBQU0sUUFBUSxLQUFLO0FBQ25CLFlBQVEsSUFBSTtBQUFBLE1BQ1IsS0FBSyxZQUFFO0FBQUEsTUFDUCxLQUFLLFlBQUU7QUFBQSxNQUNQLEtBQUssWUFBRTtBQUFBLE1BQ1AsS0FBSyxZQUFFLFdBQVc7QUFFZDtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxnQkFBZ0I7QUFDbkIsY0FBTSxXQUFXO0FBQ2pCLGFBQUssUUFBUSxNQUFNO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLFlBQVk7QUFDZixjQUFNLFdBQVc7QUFDakIsYUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsbUJBQW1CO0FBQ3RCLGFBQUssS0FBSyxJQUFJLDhCQUE4QjtBQUM1QyxjQUFNLGNBQWM7QUFDcEIsYUFBSyxRQUFRLE1BQU07QUFDbkIsYUFBSyxtQkFBbUIsS0FBSztBQUM3QjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxLQUFLO0FBQ1IsYUFBSyxLQUFLLElBQUksWUFBWTtBQUMxQixjQUFNLGNBQWM7QUFDcEIsYUFBSyxtQkFBbUIsS0FBSztBQUM3QixhQUFLLGNBQWM7QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxTQUFTO0FBQ0wsYUFBSyxLQUFLLElBQUkseUNBQXlDO0FBQ3ZELGNBQU0sY0FBYztBQUNwQixhQUFLLFFBQVEsTUFBTTtBQUNuQixhQUFLLG1CQUFtQixFQUFFO0FBQUEsTUFDOUI7QUFBQSxJQUNKO0FBQUEsRUFDSjtBQUFBO0FBQUE7QUFBQSxFQUdBLDBDQUEwQyxJQUFJO0FBQzFDLFVBQU0sUUFBUSxLQUFLO0FBQ25CLFlBQVEsSUFBSTtBQUFBLE1BQ1IsS0FBSyxZQUFFLGdCQUFnQjtBQUNuQixhQUFLLFFBQVEsTUFBTTtBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxNQUFNO0FBQ1QsYUFBSyxLQUFLLElBQUksdUJBQXVCO0FBQ3JDLGNBQU0sWUFBWTtBQUNsQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxtQkFBbUI7QUFDdEIsYUFBSyxLQUFLLElBQUksNkJBQTZCO0FBQzNDLGNBQU0sY0FBYztBQUNwQixhQUFLLG1CQUFtQixLQUFLO0FBQzdCLGFBQUssUUFBUSxNQUFNO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLEtBQUs7QUFDUixhQUFLLEtBQUssSUFBSSxZQUFZO0FBQzFCLGNBQU0sY0FBYztBQUNwQixhQUFLLG1CQUFtQixLQUFLO0FBQzdCLGFBQUssY0FBYztBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLFNBQVM7QUFDTCxjQUFNLFlBQVksT0FBTyxjQUFjLEVBQUU7QUFBQSxNQUM3QztBQUFBLElBQ0o7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBLEVBR0EsMENBQTBDLElBQUk7QUFDMUMsVUFBTSxRQUFRLEtBQUs7QUFDbkIsWUFBUSxJQUFJO0FBQUEsTUFDUixLQUFLLFlBQUUsWUFBWTtBQUNmLGFBQUssUUFBUSxNQUFNO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLE1BQU07QUFDVCxhQUFLLEtBQUssSUFBSSx1QkFBdUI7QUFDckMsY0FBTSxZQUFZO0FBQ2xCO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLG1CQUFtQjtBQUN0QixhQUFLLEtBQUssSUFBSSw2QkFBNkI7QUFDM0MsY0FBTSxjQUFjO0FBQ3BCLGFBQUssbUJBQW1CLEtBQUs7QUFDN0IsYUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsS0FBSztBQUNSLGFBQUssS0FBSyxJQUFJLFlBQVk7QUFDMUIsY0FBTSxjQUFjO0FBQ3BCLGFBQUssbUJBQW1CLEtBQUs7QUFDN0IsYUFBSyxjQUFjO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsU0FBUztBQUNMLGNBQU0sWUFBWSxPQUFPLGNBQWMsRUFBRTtBQUFBLE1BQzdDO0FBQUEsSUFDSjtBQUFBLEVBQ0o7QUFBQTtBQUFBO0FBQUEsRUFHQSxtQ0FBbUMsSUFBSTtBQUNuQyxVQUFNLFFBQVEsS0FBSztBQUNuQixZQUFRLElBQUk7QUFBQSxNQUNSLEtBQUssWUFBRTtBQUFBLE1BQ1AsS0FBSyxZQUFFO0FBQUEsTUFDUCxLQUFLLFlBQUU7QUFBQSxNQUNQLEtBQUssWUFBRSxXQUFXO0FBQ2QsYUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsbUJBQW1CO0FBQ3RCLGFBQUssUUFBUSxNQUFNO0FBQ25CLGFBQUssbUJBQW1CLEtBQUs7QUFDN0I7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsZ0JBQWdCO0FBQ25CLGFBQUssS0FBSyxJQUFJLHlEQUF5RDtBQUN2RSxjQUFNLFdBQVc7QUFDakIsYUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsWUFBWTtBQUNmLGFBQUssS0FBSyxJQUFJLHlEQUF5RDtBQUN2RSxjQUFNLFdBQVc7QUFDakIsYUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsS0FBSztBQUNSLGFBQUssS0FBSyxJQUFJLFlBQVk7QUFDMUIsY0FBTSxjQUFjO0FBQ3BCLGFBQUssbUJBQW1CLEtBQUs7QUFDN0IsYUFBSyxjQUFjO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsU0FBUztBQUNMLGFBQUssS0FBSyxJQUFJLHlDQUF5QztBQUN2RCxjQUFNLGNBQWM7QUFDcEIsYUFBSyxRQUFRLE1BQU07QUFDbkIsYUFBSyxtQkFBbUIsRUFBRTtBQUFBLE1BQzlCO0FBQUEsSUFDSjtBQUFBLEVBQ0o7QUFBQTtBQUFBO0FBQUEsRUFHQSwrQ0FBK0MsSUFBSTtBQUMvQyxVQUFNLFFBQVEsS0FBSztBQUNuQixZQUFRLElBQUk7QUFBQSxNQUNSLEtBQUssWUFBRTtBQUFBLE1BQ1AsS0FBSyxZQUFFO0FBQUEsTUFDUCxLQUFLLFlBQUU7QUFBQSxNQUNQLEtBQUssWUFBRSxXQUFXO0FBRWQ7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsbUJBQW1CO0FBQ3RCLGFBQUssbUJBQW1CLEtBQUs7QUFDN0IsYUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsZ0JBQWdCO0FBQ25CLGNBQU0sV0FBVztBQUNqQixhQUFLLFFBQVEsTUFBTTtBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxZQUFZO0FBQ2YsY0FBTSxXQUFXO0FBQ2pCLGFBQUssUUFBUSxNQUFNO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLEtBQUs7QUFDUixhQUFLLEtBQUssSUFBSSxZQUFZO0FBQzFCLGNBQU0sY0FBYztBQUNwQixhQUFLLG1CQUFtQixLQUFLO0FBQzdCLGFBQUssY0FBYztBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLFNBQVM7QUFDTCxhQUFLLEtBQUssSUFBSSx5Q0FBeUM7QUFDdkQsY0FBTSxjQUFjO0FBQ3BCLGFBQUssUUFBUSxNQUFNO0FBQ25CLGFBQUssbUJBQW1CLEVBQUU7QUFBQSxNQUM5QjtBQUFBLElBQ0o7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBLEVBR0EsZ0NBQWdDLElBQUk7QUFDaEMsVUFBTSxRQUFRLEtBQUs7QUFDbkIsWUFBUSxJQUFJO0FBQUEsTUFDUixLQUFLLFlBQUU7QUFBQSxNQUNQLEtBQUssWUFBRTtBQUFBLE1BQ1AsS0FBSyxZQUFFO0FBQUEsTUFDUCxLQUFLLFlBQUUsV0FBVztBQUNkLGFBQUssUUFBUSxNQUFNO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLGdCQUFnQjtBQUNuQixhQUFLLEtBQUssSUFBSSwwQ0FBMEM7QUFDeEQsY0FBTSxXQUFXO0FBQ2pCLGFBQUssUUFBUSxNQUFNO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLFlBQVk7QUFDZixhQUFLLEtBQUssSUFBSSwwQ0FBMEM7QUFDeEQsY0FBTSxXQUFXO0FBQ2pCLGFBQUssUUFBUSxNQUFNO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLG1CQUFtQjtBQUN0QixhQUFLLEtBQUssSUFBSSw4QkFBOEI7QUFDNUMsY0FBTSxjQUFjO0FBQ3BCLGFBQUssUUFBUSxNQUFNO0FBQ25CLGFBQUssbUJBQW1CLEtBQUs7QUFDN0I7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsS0FBSztBQUNSLGFBQUssS0FBSyxJQUFJLFlBQVk7QUFDMUIsY0FBTSxjQUFjO0FBQ3BCLGFBQUssbUJBQW1CLEtBQUs7QUFDN0IsYUFBSyxjQUFjO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsU0FBUztBQUNMLGFBQUssS0FBSyxJQUFJLHlDQUF5QztBQUN2RCxjQUFNLGNBQWM7QUFDcEIsYUFBSyxRQUFRLE1BQU07QUFDbkIsYUFBSyxtQkFBbUIsRUFBRTtBQUFBLE1BQzlCO0FBQUEsSUFDSjtBQUFBLEVBQ0o7QUFBQTtBQUFBO0FBQUEsRUFHQSxvQ0FBb0MsSUFBSTtBQUNwQyxVQUFNLFFBQVEsS0FBSztBQUNuQixZQUFRLElBQUk7QUFBQSxNQUNSLEtBQUssWUFBRTtBQUFBLE1BQ1AsS0FBSyxZQUFFO0FBQUEsTUFDUCxLQUFLLFlBQUU7QUFBQSxNQUNQLEtBQUssWUFBRSxXQUFXO0FBRWQ7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsZ0JBQWdCO0FBQ25CLGNBQU0sV0FBVztBQUNqQixhQUFLLFFBQVEsTUFBTTtBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxZQUFZO0FBQ2YsY0FBTSxXQUFXO0FBQ2pCLGFBQUssUUFBUSxNQUFNO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLG1CQUFtQjtBQUN0QixhQUFLLEtBQUssSUFBSSw4QkFBOEI7QUFDNUMsY0FBTSxjQUFjO0FBQ3BCLGFBQUssUUFBUSxNQUFNO0FBQ25CLGFBQUssbUJBQW1CLEtBQUs7QUFDN0I7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsS0FBSztBQUNSLGFBQUssS0FBSyxJQUFJLFlBQVk7QUFDMUIsY0FBTSxjQUFjO0FBQ3BCLGFBQUssbUJBQW1CLEtBQUs7QUFDN0IsYUFBSyxjQUFjO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsU0FBUztBQUNMLGFBQUssS0FBSyxJQUFJLHlDQUF5QztBQUN2RCxjQUFNLGNBQWM7QUFDcEIsYUFBSyxRQUFRLE1BQU07QUFDbkIsYUFBSyxtQkFBbUIsRUFBRTtBQUFBLE1BQzlCO0FBQUEsSUFDSjtBQUFBLEVBQ0o7QUFBQTtBQUFBO0FBQUEsRUFHQSwwQ0FBMEMsSUFBSTtBQUMxQyxVQUFNLFFBQVEsS0FBSztBQUNuQixZQUFRLElBQUk7QUFBQSxNQUNSLEtBQUssWUFBRSxnQkFBZ0I7QUFDbkIsYUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsTUFBTTtBQUNULGFBQUssS0FBSyxJQUFJLHVCQUF1QjtBQUNyQyxjQUFNLFlBQVk7QUFDbEI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsbUJBQW1CO0FBQ3RCLGFBQUssS0FBSyxJQUFJLDZCQUE2QjtBQUMzQyxjQUFNLGNBQWM7QUFDcEIsYUFBSyxtQkFBbUIsS0FBSztBQUM3QixhQUFLLFFBQVEsTUFBTTtBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxLQUFLO0FBQ1IsYUFBSyxLQUFLLElBQUksWUFBWTtBQUMxQixjQUFNLGNBQWM7QUFDcEIsYUFBSyxtQkFBbUIsS0FBSztBQUM3QixhQUFLLGNBQWM7QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxTQUFTO0FBQ0wsY0FBTSxZQUFZLE9BQU8sY0FBYyxFQUFFO0FBQUEsTUFDN0M7QUFBQSxJQUNKO0FBQUEsRUFDSjtBQUFBO0FBQUE7QUFBQSxFQUdBLDBDQUEwQyxJQUFJO0FBQzFDLFVBQU0sUUFBUSxLQUFLO0FBQ25CLFlBQVEsSUFBSTtBQUFBLE1BQ1IsS0FBSyxZQUFFLFlBQVk7QUFDZixhQUFLLFFBQVEsTUFBTTtBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxNQUFNO0FBQ1QsYUFBSyxLQUFLLElBQUksdUJBQXVCO0FBQ3JDLGNBQU0sWUFBWTtBQUNsQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxtQkFBbUI7QUFDdEIsYUFBSyxLQUFLLElBQUksNkJBQTZCO0FBQzNDLGNBQU0sY0FBYztBQUNwQixhQUFLLG1CQUFtQixLQUFLO0FBQzdCLGFBQUssUUFBUSxNQUFNO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLEtBQUs7QUFDUixhQUFLLEtBQUssSUFBSSxZQUFZO0FBQzFCLGNBQU0sY0FBYztBQUNwQixhQUFLLG1CQUFtQixLQUFLO0FBQzdCLGFBQUssY0FBYztBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLFNBQVM7QUFDTCxjQUFNLFlBQVksT0FBTyxjQUFjLEVBQUU7QUFBQSxNQUM3QztBQUFBLElBQ0o7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBLEVBR0EsbUNBQW1DLElBQUk7QUFDbkMsVUFBTSxRQUFRLEtBQUs7QUFDbkIsWUFBUSxJQUFJO0FBQUEsTUFDUixLQUFLLFlBQUU7QUFBQSxNQUNQLEtBQUssWUFBRTtBQUFBLE1BQ1AsS0FBSyxZQUFFO0FBQUEsTUFDUCxLQUFLLFlBQUUsV0FBVztBQUVkO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLG1CQUFtQjtBQUN0QixhQUFLLG1CQUFtQixLQUFLO0FBQzdCLGFBQUssUUFBUSxNQUFNO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLEtBQUs7QUFDUixhQUFLLEtBQUssSUFBSSxZQUFZO0FBQzFCLGNBQU0sY0FBYztBQUNwQixhQUFLLG1CQUFtQixLQUFLO0FBQzdCLGFBQUssY0FBYztBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLFNBQVM7QUFDTCxhQUFLLEtBQUssSUFBSSwrQ0FBK0M7QUFDN0QsYUFBSyxRQUFRLE1BQU07QUFDbkIsYUFBSyxtQkFBbUIsRUFBRTtBQUFBLE1BQzlCO0FBQUEsSUFDSjtBQUFBLEVBQ0o7QUFBQTtBQUFBO0FBQUEsRUFHQSxtQkFBbUIsSUFBSTtBQUNuQixVQUFNLFFBQVEsS0FBSztBQUNuQixZQUFRLElBQUk7QUFBQSxNQUNSLEtBQUssWUFBRSxtQkFBbUI7QUFDdEIsYUFBSyxtQkFBbUIsS0FBSztBQUM3QixhQUFLLFFBQVEsTUFBTTtBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssWUFBRSxNQUFNO0FBQ1QsYUFBSyxLQUFLLElBQUksdUJBQXVCO0FBQ3JDO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLEtBQUs7QUFDUixhQUFLLG1CQUFtQixLQUFLO0FBQzdCLGFBQUssY0FBYztBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBO0FBQUEsSUFFSjtBQUFBLEVBQ0o7QUFBQTtBQUFBO0FBQUEsRUFHQSxtQkFBbUIsSUFBSTtBQUNuQixZQUFRLElBQUk7QUFBQSxNQUNSLEtBQUssWUFBRSxzQkFBc0I7QUFDekIsYUFBSyxRQUFRLE1BQU07QUFDbkI7QUFBQSxNQUNKO0FBQUEsTUFDQSxLQUFLLFlBQUUsS0FBSztBQUNSLGFBQUssS0FBSyxJQUFJLFVBQVU7QUFDeEIsYUFBSyxjQUFjO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsU0FBUztBQUNMLGFBQUssZUFBZSxFQUFFO0FBQUEsTUFDMUI7QUFBQSxJQUNKO0FBQUEsRUFDSjtBQUFBO0FBQUE7QUFBQSxFQUdBLDBCQUEwQixJQUFJO0FBQzFCLFFBQUksT0FBTyxZQUFFLHNCQUFzQjtBQUMvQixXQUFLLFFBQVEsTUFBTTtBQUFBLElBQ3ZCLE9BQ0s7QUFDRCxXQUFLLFdBQVcsR0FBRztBQUNuQixXQUFLLFFBQVEsTUFBTTtBQUNuQixXQUFLLG1CQUFtQixFQUFFO0FBQUEsSUFDOUI7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBLEVBR0Esc0JBQXNCLElBQUk7QUFDdEIsWUFBUSxJQUFJO0FBQUEsTUFDUixLQUFLLFlBQUUsbUJBQW1CO0FBQ3RCLGFBQUssUUFBUSxNQUFNO0FBQ25CO0FBQUEsTUFDSjtBQUFBLE1BQ0EsS0FBSyxZQUFFLHNCQUFzQjtBQUN6QixhQUFLLFdBQVcsR0FBRztBQUNuQjtBQUFBLE1BQ0o7QUFBQSxNQUNBLFNBQVM7QUFDTCxhQUFLLFdBQVcsSUFBSTtBQUNwQixhQUFLLFFBQVEsTUFBTTtBQUNuQixhQUFLLG1CQUFtQixFQUFFO0FBQUEsTUFDOUI7QUFBQSxJQUNKO0FBQUEsRUFDSjtBQUFBO0FBQUE7QUFBQSxFQUdBLHlCQUF5QixJQUFJO0FBQ3pCLFFBQUksT0FBTyxZQUFFLGFBQWE7QUFDdEIsV0FBSyxRQUFRLE1BQU07QUFBQSxJQUN2QixXQUNTSCxxQkFBb0IsRUFBRSxHQUFHO0FBQzlCLFdBQUssUUFBUSxNQUFNO0FBQ25CLFdBQUssOEJBQThCLEVBQUU7QUFBQSxJQUN6QyxPQUNLO0FBQ0QsV0FBSyw0Q0FBNEMsWUFBRSxTQUFTO0FBQzVELFdBQUssa0JBQWtCLEtBQUssYUFBYSxFQUFFO0FBQUEsSUFDL0M7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBLEVBR0EsOEJBQThCLElBQUk7QUFDOUIsVUFBTSxjQUFjLEtBQUssOEJBQThCLEVBQUU7QUFHekQsUUFBSSxLQUFLLG1CQUFtQixHQUFHO0FBQUEsSUFFL0IsV0FDUyxhQUFhO0FBQ2xCLGVBQVNHLEtBQUksR0FBR0EsS0FBSSxZQUFZLFFBQVFBLE1BQUs7QUFDekMsYUFBSyw0Q0FBNEMsWUFBWUEsRUFBQyxDQUFDO0FBQUEsTUFDbkU7QUFDQSxXQUFLLFFBQVEsS0FBSztBQUFBLElBQ3RCLE9BQ0s7QUFDRCxXQUFLLDRDQUE0QyxZQUFFLFNBQVM7QUFDNUQsV0FBSyxRQUFRLE1BQU07QUFBQSxJQUN2QjtBQUFBLEVBQ0o7QUFBQTtBQUFBO0FBQUEsRUFHQSx5QkFBeUIsSUFBSTtBQUN6QixRQUFJSCxxQkFBb0IsRUFBRSxHQUFHO0FBQ3pCLFdBQUssNENBQTRDLEVBQUU7QUFBQSxJQUN2RCxPQUNLO0FBQ0QsVUFBSSxPQUFPLFlBQUUsV0FBVztBQUNwQixhQUFLLEtBQUssSUFBSSw4QkFBOEI7QUFBQSxNQUNoRDtBQUNBLFdBQUssa0JBQWtCLEtBQUssYUFBYSxFQUFFO0FBQUEsSUFDL0M7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBLEVBR0EsZ0NBQWdDLElBQUk7QUFDaEMsU0FBSyxjQUFjO0FBQ25CLFFBQUksT0FBTyxZQUFFLGlCQUFpQixPQUFPLFlBQUUsaUJBQWlCO0FBQ3BELFdBQUssUUFBUSxNQUFNO0FBQUEsSUFDdkIsV0FFUyxhQUFhLEVBQUUsR0FBRztBQUN2QixXQUFLLFFBQVEsTUFBTTtBQUNuQixXQUFLLGdDQUFnQyxFQUFFO0FBQUEsSUFDM0MsT0FDSztBQUNELFdBQUssS0FBSyxJQUFJLDBDQUEwQztBQUN4RCxXQUFLLDRDQUE0QyxZQUFFLFNBQVM7QUFDNUQsV0FBSyw0Q0FBNEMsWUFBRSxXQUFXO0FBQzlELFdBQUssa0JBQWtCLEtBQUssYUFBYSxFQUFFO0FBQUEsSUFDL0M7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBLEVBR0EseUNBQXlDLElBQUk7QUFDekMsUUFBSSxnQkFBZ0IsRUFBRSxHQUFHO0FBQ3JCLFdBQUssUUFBUSxNQUFNO0FBQ25CLFdBQUssb0NBQW9DLEVBQUU7QUFBQSxJQUMvQyxPQUNLO0FBQ0QsV0FBSyxLQUFLLElBQUksMENBQTBDO0FBQ3hELFdBQUssNENBQTRDLFlBQUUsU0FBUztBQUM1RCxXQUFLLDRDQUE0QyxZQUFFLFdBQVc7QUFDOUQsV0FBSyxXQUFXLENBQUM7QUFDakIsV0FBSyxRQUFRLEtBQUs7QUFBQSxJQUN0QjtBQUFBLEVBQ0o7QUFBQTtBQUFBO0FBQUEsRUFHQSxvQ0FBb0MsSUFBSTtBQUNwQyxRQUFJLHFCQUFxQixFQUFFLEdBQUc7QUFDMUIsV0FBSyxjQUFjLEtBQUssY0FBYyxLQUFLLEtBQUs7QUFBQSxJQUNwRCxXQUNTLHFCQUFxQixFQUFFLEdBQUc7QUFDL0IsV0FBSyxjQUFjLEtBQUssY0FBYyxLQUFLLEtBQUs7QUFBQSxJQUNwRCxXQUNTLGFBQWEsRUFBRSxHQUFHO0FBQ3ZCLFdBQUssY0FBYyxLQUFLLGNBQWMsS0FBSyxLQUFLO0FBQUEsSUFDcEQsV0FDUyxPQUFPLFlBQUUsV0FBVztBQUN6QixXQUFLLFFBQVEsTUFBTTtBQUFBLElBQ3ZCLE9BQ0s7QUFDRCxXQUFLLEtBQUssSUFBSSx1Q0FBdUM7QUFDckQsV0FBSyxRQUFRLE1BQU07QUFDbkIsV0FBSyxtQ0FBbUMsRUFBRTtBQUFBLElBQzlDO0FBQUEsRUFDSjtBQUFBO0FBQUE7QUFBQSxFQUdBLGdDQUFnQyxJQUFJO0FBQ2hDLFFBQUksYUFBYSxFQUFFLEdBQUc7QUFDbEIsV0FBSyxjQUFjLEtBQUssY0FBYyxLQUFLLEtBQUs7QUFBQSxJQUNwRCxXQUNTLE9BQU8sWUFBRSxXQUFXO0FBQ3pCLFdBQUssUUFBUSxNQUFNO0FBQUEsSUFDdkIsT0FDSztBQUNELFdBQUssS0FBSyxJQUFJLHVDQUF1QztBQUNyRCxXQUFLLFFBQVEsTUFBTTtBQUNuQixXQUFLLG1DQUFtQyxFQUFFO0FBQUEsSUFDOUM7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBLEVBR0EsbUNBQW1DLElBQUk7QUFDbkMsUUFBSSxLQUFLLGdCQUFnQixZQUFFLE1BQU07QUFDN0IsV0FBSyxLQUFLLElBQUksc0JBQXNCO0FBQ3BDLFdBQUssY0FBYyxZQUFFO0FBQUEsSUFDekIsV0FDUyxLQUFLLGNBQWMsU0FBUztBQUNqQyxXQUFLLEtBQUssSUFBSSxxQ0FBcUM7QUFDbkQsV0FBSyxjQUFjLFlBQUU7QUFBQSxJQUN6QixXQUNTLFlBQVksS0FBSyxXQUFXLEdBQUc7QUFDcEMsV0FBSyxLQUFLLElBQUksMkJBQTJCO0FBQ3pDLFdBQUssY0FBYyxZQUFFO0FBQUEsSUFDekIsV0FDUyxxQkFBcUIsS0FBSyxXQUFXLEdBQUc7QUFDN0MsV0FBSyxLQUFLLElBQUksOEJBQThCO0FBQUEsSUFDaEQsV0FDUyxtQkFBbUIsS0FBSyxXQUFXLEtBQUssS0FBSyxnQkFBZ0IsWUFBRSxpQkFBaUI7QUFDckYsV0FBSyxLQUFLLElBQUkseUJBQXlCO0FBQ3ZDLFlBQU0sY0FBYyxtQ0FBbUMsSUFBSSxLQUFLLFdBQVc7QUFDM0UsVUFBSSxnQkFBZ0IsUUFBVztBQUMzQixhQUFLLGNBQWM7QUFBQSxNQUN2QjtBQUFBLElBQ0o7QUFDQSxTQUFLLDRDQUE0QyxLQUFLLFdBQVc7QUFDakUsU0FBSyxrQkFBa0IsS0FBSyxhQUFhLEVBQUU7QUFBQSxFQUMvQztBQUNKOzs7QUNwMUZBLElBQU0sNEJBQTRCLG9CQUFJLElBQUksQ0FBQyxPQUFFLElBQUksT0FBRSxJQUFJLE9BQUUsSUFBSSxPQUFFLFVBQVUsT0FBRSxRQUFRLE9BQUUsR0FBRyxPQUFFLElBQUksT0FBRSxJQUFJLE9BQUUsSUFBSSxPQUFFLEdBQUcsQ0FBQztBQUNoSCxJQUFNLHVDQUF1QyxvQkFBSSxJQUFJO0FBQUEsRUFDakQsR0FBRztBQUFBLEVBQ0gsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUNOLENBQUM7QUFDRCxJQUFNLHFCQUFxQixvQkFBSSxJQUFJO0FBQUEsRUFDL0IsQ0FBQyxPQUFFLFFBQVEsR0FBRyxJQUFJO0FBQUEsRUFDbEIsQ0FBQyxPQUFFLFNBQVMsR0FBRyxJQUFJO0FBQUEsRUFDbkIsQ0FBQyxPQUFFLE1BQU0sR0FBRyxJQUFJO0FBQUEsRUFDaEIsQ0FBQyxPQUFFLFNBQVMsR0FBRyxJQUFJO0FBQUEsRUFDbkIsQ0FBQyxPQUFFLFFBQVEsR0FBRyxJQUFJO0FBQUEsRUFDbEIsQ0FBQyxPQUFFLE9BQU8sR0FBRyxJQUFJO0FBQUEsRUFDakIsQ0FBQyxPQUFFLElBQUksR0FBRyxJQUFJO0FBQUEsRUFDZCxDQUFDLE9BQUUsVUFBVSxHQUFHLElBQUk7QUFBQSxFQUNwQixDQUFDLE9BQUUsSUFBSSxHQUFHLElBQUk7QUFBQSxFQUNkLENBQUMsT0FBRSxnQkFBZ0IsR0FBRyxNQUFNO0FBQUEsRUFDNUIsQ0FBQyxPQUFFLElBQUksR0FBRyxNQUFNO0FBQUEsRUFDaEIsQ0FBQyxPQUFFLElBQUksR0FBRyxNQUFNO0FBQUEsRUFDaEIsQ0FBQyxPQUFFLElBQUksR0FBRyxNQUFNO0FBQUEsRUFDaEIsQ0FBQyxPQUFFLElBQUksR0FBRyxNQUFNO0FBQUEsRUFDaEIsQ0FBQyxPQUFFLE9BQU8sR0FBRyxNQUFNO0FBQUEsRUFDbkIsQ0FBQyxPQUFFLE1BQU0sR0FBRyxHQUFHO0FBQUEsRUFDZixDQUFDLE9BQUUsZ0JBQWdCLEdBQUcsR0FBRztBQUFBLEVBQ3pCLENBQUMsT0FBRSxPQUFPLEdBQUcsR0FBRztBQUNwQixDQUFDO0FBQ0QsSUFBTSxnQkFBZ0IsQ0FBQyxPQUFFLElBQUksT0FBRSxJQUFJLE9BQUUsSUFBSSxPQUFFLElBQUksT0FBRSxJQUFJLE9BQUUsRUFBRTtBQUN6RCxJQUFNLG9CQUFvQixDQUFDLE9BQUUsSUFBSSxPQUFFLFVBQVUsT0FBRSxJQUFJO0FBQ25ELElBQU0scUJBQXFCLENBQUMsT0FBRSxPQUFPLE9BQUUsT0FBTyxPQUFFLE9BQU8sT0FBRSxVQUFVLE9BQUUsSUFBSTtBQUN6RSxJQUFNLGdCQUFnQixDQUFDLE9BQUUsT0FBTyxPQUFFLFVBQVUsT0FBRSxJQUFJO0FBQ2xELElBQU0sY0FBYyxDQUFDLE9BQUUsSUFBSSxPQUFFLEVBQUU7QUFFeEIsSUFBTSxtQkFBTixNQUF1QjtBQUFBLEVBQzFCLElBQUksMkJBQTJCO0FBQzNCLFdBQU8sS0FBSyxjQUFjLElBQUksS0FBSyxZQUFZLG1CQUFtQixLQUFLLE9BQU8sSUFBSSxLQUFLO0FBQUEsRUFDM0Y7QUFBQSxFQUNBLFlBQVlNLFdBQVUsYUFBYSxTQUFTO0FBQ3hDLFNBQUssY0FBYztBQUNuQixTQUFLLFVBQVU7QUFDZixTQUFLLFFBQVEsQ0FBQztBQUNkLFNBQUssU0FBUyxDQUFDO0FBQ2YsU0FBSyxXQUFXO0FBQ2hCLFNBQUssWUFBWTtBQUNqQixTQUFLLGVBQWUsT0FBRTtBQUN0QixTQUFLLFVBQVVBO0FBQUEsRUFDbkI7QUFBQTtBQUFBLEVBRUEsU0FBU0MsVUFBUztBQUNkLFdBQU8sS0FBSyxNQUFNLFlBQVlBLFVBQVMsS0FBSyxRQUFRO0FBQUEsRUFDeEQ7QUFBQTtBQUFBLEVBRUEsZ0JBQWdCO0FBQ1osV0FBTyxLQUFLLGlCQUFpQixPQUFFLFlBQVksS0FBSyxZQUFZLGdCQUFnQixLQUFLLE9BQU8sTUFBTSxHQUFHO0FBQUEsRUFDckc7QUFBQSxFQUNBLHdCQUF3QjtBQUNwQixTQUFLLFVBQVUsS0FBSyxNQUFNLEtBQUssUUFBUTtBQUN2QyxTQUFLLGVBQWUsS0FBSyxPQUFPLEtBQUssUUFBUTtBQUFBLEVBQ2pEO0FBQUE7QUFBQSxFQUVBLEtBQUtBLFVBQVMsT0FBTztBQUNqQixTQUFLO0FBQ0wsU0FBSyxNQUFNLEtBQUssUUFBUSxJQUFJQTtBQUM1QixTQUFLLFVBQVVBO0FBQ2YsU0FBSyxPQUFPLEtBQUssUUFBUSxJQUFJO0FBQzdCLFNBQUssZUFBZTtBQUNwQixRQUFJLEtBQUssY0FBYyxHQUFHO0FBQ3RCLFdBQUs7QUFBQSxJQUNUO0FBQ0EsU0FBSyxRQUFRLFdBQVdBLFVBQVMsT0FBTyxJQUFJO0FBQUEsRUFDaEQ7QUFBQSxFQUNBLE1BQU07QUFDRixVQUFNLFNBQVMsS0FBSztBQUNwQixRQUFJLEtBQUssWUFBWSxLQUFLLEtBQUssY0FBYyxHQUFHO0FBQzVDLFdBQUs7QUFBQSxJQUNUO0FBQ0EsU0FBSztBQUNMLFNBQUssc0JBQXNCO0FBQzNCLFNBQUssUUFBUSxVQUFVLFFBQVEsSUFBSTtBQUFBLEVBQ3ZDO0FBQUEsRUFDQSxRQUFRLFlBQVksWUFBWTtBQUM1QixVQUFNLE1BQU0sS0FBSyxTQUFTLFVBQVU7QUFDcEMsU0FBSyxNQUFNLEdBQUcsSUFBSTtBQUNsQixRQUFJLFFBQVEsS0FBSyxVQUFVO0FBQ3ZCLFdBQUssVUFBVTtBQUFBLElBQ25CO0FBQUEsRUFDSjtBQUFBLEVBQ0EsWUFBWSxrQkFBa0IsWUFBWSxjQUFjO0FBQ3BELFVBQU0sZUFBZSxLQUFLLFNBQVMsZ0JBQWdCLElBQUk7QUFDdkQsU0FBSyxNQUFNLE9BQU8sY0FBYyxHQUFHLFVBQVU7QUFDN0MsU0FBSyxPQUFPLE9BQU8sY0FBYyxHQUFHLFlBQVk7QUFDaEQsU0FBSztBQUNMLFFBQUksaUJBQWlCLEtBQUssVUFBVTtBQUNoQyxXQUFLLHNCQUFzQjtBQUFBLElBQy9CO0FBQ0EsU0FBSyxRQUFRLFdBQVcsS0FBSyxTQUFTLEtBQUssY0FBYyxpQkFBaUIsS0FBSyxRQUFRO0FBQUEsRUFDM0Y7QUFBQSxFQUNBLHNCQUFzQixTQUFTO0FBQzNCLFFBQUksWUFBWSxLQUFLLFdBQVc7QUFDaEMsT0FBRztBQUNDLGtCQUFZLEtBQUssT0FBTyxZQUFZLFNBQVMsWUFBWSxDQUFDO0FBQUEsSUFDOUQsU0FBUyxZQUFZLEtBQUssS0FBSyxZQUFZLGdCQUFnQixLQUFLLE1BQU0sU0FBUyxDQUFDLE1BQU0sR0FBRztBQUN6RixTQUFLLGdCQUFnQixZQUFZLElBQUksSUFBSSxTQUFTO0FBQUEsRUFDdEQ7QUFBQSxFQUNBLGdCQUFnQixLQUFLO0FBQ2pCLFdBQU8sS0FBSyxZQUFZLEtBQUs7QUFDekIsWUFBTSxTQUFTLEtBQUs7QUFDcEIsVUFBSSxLQUFLLFlBQVksS0FBSyxLQUFLLGNBQWMsR0FBRztBQUM1QyxhQUFLLGFBQWE7QUFBQSxNQUN0QjtBQUNBLFdBQUs7QUFDTCxXQUFLLHNCQUFzQjtBQUMzQixXQUFLLFFBQVEsVUFBVSxRQUFRLEtBQUssV0FBVyxHQUFHO0FBQUEsSUFDdEQ7QUFBQSxFQUNKO0FBQUEsRUFDQSxzQkFBc0JBLFVBQVM7QUFDM0IsVUFBTSxNQUFNLEtBQUssU0FBU0EsUUFBTztBQUNqQyxTQUFLLGdCQUFnQixNQUFNLElBQUksSUFBSSxHQUFHO0FBQUEsRUFDMUM7QUFBQSxFQUNBLGVBQWUsVUFBVSxVQUFVO0FBQy9CLFVBQU0sTUFBTSxLQUFLLGlCQUFpQixVQUFVLFFBQVE7QUFDcEQsU0FBSyxnQkFBZ0IsTUFBTSxJQUFJLElBQUksR0FBRztBQUFBLEVBQzFDO0FBQUEsRUFDQSwrQkFBK0I7QUFDM0IsU0FBSyxlQUFlLGVBQWUsR0FBRyxJQUFJO0FBQUEsRUFDOUM7QUFBQSxFQUNBLDBCQUEwQjtBQUN0QixTQUFLLGVBQWUsYUFBYSxHQUFHLElBQUk7QUFBQSxFQUM1QztBQUFBLEVBQ0Esd0JBQXdCO0FBR3BCLFNBQUssWUFBWTtBQUNqQixTQUFLLGdCQUFnQixDQUFDO0FBQUEsRUFDMUI7QUFBQSxFQUNBLGlCQUFpQixVQUFVLFdBQVc7QUFDbEMsYUFBU0MsS0FBSSxLQUFLLFVBQVVBLE1BQUssR0FBR0EsTUFBSztBQUNyQyxVQUFJLFNBQVMsU0FBUyxLQUFLLE9BQU9BLEVBQUMsQ0FBQyxLQUFLLEtBQUssWUFBWSxnQkFBZ0IsS0FBSyxNQUFNQSxFQUFDLENBQUMsTUFBTSxXQUFXO0FBQ3BHLGVBQU9BO0FBQUEsTUFDWDtBQUFBLElBQ0o7QUFDQSxXQUFPO0FBQUEsRUFDWDtBQUFBLEVBQ0EsWUFBWSxVQUFVLFVBQVU7QUFDNUIsVUFBTSxNQUFNLEtBQUssaUJBQWlCLFVBQVUsUUFBUTtBQUNwRCxTQUFLLGdCQUFnQixNQUFNLENBQUM7QUFBQSxFQUNoQztBQUFBLEVBQ0EsMEJBQTBCO0FBQ3RCLFNBQUssWUFBWSxlQUFlLEdBQUcsSUFBSTtBQUFBLEVBQzNDO0FBQUEsRUFDQSw4QkFBOEI7QUFDMUIsU0FBSyxZQUFZLG9CQUFvQixHQUFHLElBQUk7QUFBQSxFQUNoRDtBQUFBLEVBQ0EsNkJBQTZCO0FBQ3pCLFNBQUssWUFBWSxtQkFBbUIsR0FBRyxJQUFJO0FBQUEsRUFDL0M7QUFBQSxFQUNBLE9BQU9ELFVBQVM7QUFDWixVQUFNLE1BQU0sS0FBSyxTQUFTQSxRQUFPO0FBQ2pDLFFBQUksT0FBTyxHQUFHO0FBQ1YsVUFBSSxRQUFRLEtBQUssVUFBVTtBQUN2QixhQUFLLElBQUk7QUFBQSxNQUNiLE9BQ0s7QUFDRCxhQUFLLE1BQU0sT0FBTyxLQUFLLENBQUM7QUFDeEIsYUFBSyxPQUFPLE9BQU8sS0FBSyxDQUFDO0FBQ3pCLGFBQUs7QUFDTCxhQUFLLHNCQUFzQjtBQUMzQixhQUFLLFFBQVEsVUFBVUEsVUFBUyxLQUFLO0FBQUEsTUFDekM7QUFBQSxJQUNKO0FBQUEsRUFDSjtBQUFBO0FBQUEsRUFFQSxtQ0FBbUM7QUFFL0IsV0FBTyxLQUFLLFlBQVksS0FBSyxLQUFLLE9BQU8sQ0FBQyxNQUFNLE9BQUUsT0FBTyxLQUFLLE1BQU0sQ0FBQyxJQUFJO0FBQUEsRUFDN0U7QUFBQSxFQUNBLFNBQVNBLFVBQVM7QUFDZCxXQUFPLEtBQUssU0FBU0EsUUFBTyxJQUFJO0FBQUEsRUFDcEM7QUFBQSxFQUNBLGtCQUFrQkEsVUFBUztBQUN2QixVQUFNLGFBQWEsS0FBSyxTQUFTQSxRQUFPLElBQUk7QUFDNUMsV0FBTyxjQUFjLElBQUksS0FBSyxNQUFNLFVBQVUsSUFBSTtBQUFBLEVBQ3REO0FBQUEsRUFDQSwyQkFBMkI7QUFDdkIsV0FBTyxLQUFLLGFBQWEsS0FBSyxLQUFLLE9BQU8sQ0FBQyxNQUFNLE9BQUU7QUFBQSxFQUN2RDtBQUFBO0FBQUEsRUFFQSxXQUFXLFNBQVM7QUFDaEIsYUFBU0MsS0FBSSxLQUFLLFVBQVVBLE1BQUssR0FBR0EsTUFBSztBQUNyQyxZQUFNLEtBQUssS0FBSyxPQUFPQSxFQUFDO0FBQ3hCLFlBQU0sS0FBSyxLQUFLLFlBQVksZ0JBQWdCLEtBQUssTUFBTUEsRUFBQyxDQUFDO0FBQ3pELFVBQUksT0FBTyxXQUFXLE9BQU8sR0FBRyxNQUFNO0FBQ2xDLGVBQU87QUFBQSxNQUNYO0FBQ0EsVUFBSSxtQkFBbUIsSUFBSSxFQUFFLE1BQU0sSUFBSTtBQUNuQyxlQUFPO0FBQUEsTUFDWDtBQUFBLElBQ0o7QUFDQSxXQUFPO0FBQUEsRUFDWDtBQUFBLEVBQ0EsMkJBQTJCO0FBQ3ZCLGFBQVNBLEtBQUksS0FBSyxVQUFVQSxNQUFLLEdBQUdBLE1BQUs7QUFDckMsWUFBTSxLQUFLLEtBQUssT0FBT0EsRUFBQztBQUN4QixZQUFNLEtBQUssS0FBSyxZQUFZLGdCQUFnQixLQUFLLE1BQU1BLEVBQUMsQ0FBQztBQUN6RCxVQUFJLGlCQUFpQixFQUFFLEtBQUssT0FBTyxHQUFHLE1BQU07QUFDeEMsZUFBTztBQUFBLE1BQ1g7QUFDQSxVQUFJLG1CQUFtQixJQUFJLEVBQUUsTUFBTSxJQUFJO0FBQ25DLGVBQU87QUFBQSxNQUNYO0FBQUEsSUFDSjtBQUNBLFdBQU87QUFBQSxFQUNYO0FBQUEsRUFDQSxtQkFBbUIsU0FBUztBQUN4QixhQUFTQSxLQUFJLEtBQUssVUFBVUEsTUFBSyxHQUFHQSxNQUFLO0FBQ3JDLFlBQU0sS0FBSyxLQUFLLE9BQU9BLEVBQUM7QUFDeEIsWUFBTSxLQUFLLEtBQUssWUFBWSxnQkFBZ0IsS0FBSyxNQUFNQSxFQUFDLENBQUM7QUFDekQsVUFBSSxPQUFPLFdBQVcsT0FBTyxHQUFHLE1BQU07QUFDbEMsZUFBTztBQUFBLE1BQ1g7QUFDQSxXQUFNLE9BQU8sT0FBRSxNQUFNLE9BQU8sT0FBRSxPQUFPLE9BQU8sR0FBRyxRQUFTLG1CQUFtQixJQUFJLEVBQUUsTUFBTSxJQUFJO0FBQ3ZGLGVBQU87QUFBQSxNQUNYO0FBQUEsSUFDSjtBQUNBLFdBQU87QUFBQSxFQUNYO0FBQUEsRUFDQSxpQkFBaUIsU0FBUztBQUN0QixhQUFTQSxLQUFJLEtBQUssVUFBVUEsTUFBSyxHQUFHQSxNQUFLO0FBQ3JDLFlBQU0sS0FBSyxLQUFLLE9BQU9BLEVBQUM7QUFDeEIsWUFBTSxLQUFLLEtBQUssWUFBWSxnQkFBZ0IsS0FBSyxNQUFNQSxFQUFDLENBQUM7QUFDekQsVUFBSSxPQUFPLFdBQVcsT0FBTyxHQUFHLE1BQU07QUFDbEMsZUFBTztBQUFBLE1BQ1g7QUFDQSxVQUFLLE9BQU8sT0FBRSxVQUFVLE9BQU8sR0FBRyxRQUFTLG1CQUFtQixJQUFJLEVBQUUsTUFBTSxJQUFJO0FBQzFFLGVBQU87QUFBQSxNQUNYO0FBQUEsSUFDSjtBQUNBLFdBQU87QUFBQSxFQUNYO0FBQUEsRUFDQSxnQkFBZ0IsU0FBUztBQUNyQixhQUFTQSxLQUFJLEtBQUssVUFBVUEsTUFBSyxHQUFHQSxNQUFLO0FBQ3JDLFlBQU0sS0FBSyxLQUFLLE9BQU9BLEVBQUM7QUFDeEIsWUFBTSxLQUFLLEtBQUssWUFBWSxnQkFBZ0IsS0FBSyxNQUFNQSxFQUFDLENBQUM7QUFDekQsVUFBSSxPQUFPLEdBQUcsTUFBTTtBQUNoQjtBQUFBLE1BQ0o7QUFDQSxVQUFJLE9BQU8sU0FBUztBQUNoQixlQUFPO0FBQUEsTUFDWDtBQUNBLFVBQUksT0FBTyxPQUFFLFNBQVMsT0FBTyxPQUFFLFlBQVksT0FBTyxPQUFFLE1BQU07QUFDdEQsZUFBTztBQUFBLE1BQ1g7QUFBQSxJQUNKO0FBQ0EsV0FBTztBQUFBLEVBQ1g7QUFBQSxFQUNBLGtDQUFrQztBQUM5QixhQUFTQSxLQUFJLEtBQUssVUFBVUEsTUFBSyxHQUFHQSxNQUFLO0FBQ3JDLFlBQU0sS0FBSyxLQUFLLE9BQU9BLEVBQUM7QUFDeEIsWUFBTSxLQUFLLEtBQUssWUFBWSxnQkFBZ0IsS0FBSyxNQUFNQSxFQUFDLENBQUM7QUFDekQsVUFBSSxPQUFPLEdBQUcsTUFBTTtBQUNoQjtBQUFBLE1BQ0o7QUFDQSxVQUFJLE9BQU8sT0FBRSxTQUFTLE9BQU8sT0FBRSxTQUFTLE9BQU8sT0FBRSxPQUFPO0FBQ3BELGVBQU87QUFBQSxNQUNYO0FBQ0EsVUFBSSxPQUFPLE9BQUUsU0FBUyxPQUFPLE9BQUUsTUFBTTtBQUNqQyxlQUFPO0FBQUEsTUFDWDtBQUFBLElBQ0o7QUFDQSxXQUFPO0FBQUEsRUFDWDtBQUFBLEVBQ0EsaUJBQWlCLFNBQVM7QUFDdEIsYUFBU0EsS0FBSSxLQUFLLFVBQVVBLE1BQUssR0FBR0EsTUFBSztBQUNyQyxZQUFNLEtBQUssS0FBSyxPQUFPQSxFQUFDO0FBQ3hCLFlBQU0sS0FBSyxLQUFLLFlBQVksZ0JBQWdCLEtBQUssTUFBTUEsRUFBQyxDQUFDO0FBQ3pELFVBQUksT0FBTyxHQUFHLE1BQU07QUFDaEI7QUFBQSxNQUNKO0FBQ0EsVUFBSSxPQUFPLFNBQVM7QUFDaEIsZUFBTztBQUFBLE1BQ1g7QUFDQSxVQUFJLE9BQU8sT0FBRSxVQUFVLE9BQU8sT0FBRSxVQUFVO0FBQ3RDLGVBQU87QUFBQSxNQUNYO0FBQUEsSUFDSjtBQUNBLFdBQU87QUFBQSxFQUNYO0FBQUE7QUFBQSxFQUVBLHlCQUF5QjtBQUNyQixXQUFPLDBCQUEwQixJQUFJLEtBQUssWUFBWSxHQUFHO0FBQ3JELFdBQUssSUFBSTtBQUFBLElBQ2I7QUFBQSxFQUNKO0FBQUEsRUFDQSxtQ0FBbUM7QUFDL0IsV0FBTyxxQ0FBcUMsSUFBSSxLQUFLLFlBQVksR0FBRztBQUNoRSxXQUFLLElBQUk7QUFBQSxJQUNiO0FBQUEsRUFDSjtBQUFBLEVBQ0Esb0NBQW9DLGFBQWE7QUFDN0MsV0FBTyxLQUFLLGlCQUFpQixlQUFlLHFDQUFxQyxJQUFJLEtBQUssWUFBWSxHQUFHO0FBQ3JHLFdBQUssSUFBSTtBQUFBLElBQ2I7QUFBQSxFQUNKO0FBQ0o7OztBQ3JUQSxJQUFNLG9CQUFvQjtBQUNuQixJQUFJO0FBQUEsQ0FDVixTQUFVQyxZQUFXO0FBQ2xCLEVBQUFBLFdBQVVBLFdBQVUsUUFBUSxJQUFJLENBQUMsSUFBSTtBQUNyQyxFQUFBQSxXQUFVQSxXQUFVLFNBQVMsSUFBSSxDQUFDLElBQUk7QUFDMUMsR0FBRyxZQUFZLGNBQWMsWUFBWSxDQUFDLEVBQUU7QUFDNUMsSUFBTSxTQUFTLEVBQUUsTUFBTSxVQUFVLE9BQU87QUFFakMsSUFBTSx3QkFBTixNQUE0QjtBQUFBLEVBQy9CLFlBQVksYUFBYTtBQUNyQixTQUFLLGNBQWM7QUFDbkIsU0FBSyxVQUFVLENBQUM7QUFDaEIsU0FBSyxXQUFXO0FBQUEsRUFDcEI7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUlBLCtCQUErQixZQUFZLFNBQVM7QUFDaEQsVUFBTSxhQUFhLENBQUM7QUFDcEIsVUFBTSxnQkFBZ0IsUUFBUTtBQUM5QixVQUFNLFlBQVksS0FBSyxZQUFZLFdBQVcsVUFBVTtBQUN4RCxVQUFNLGlCQUFpQixLQUFLLFlBQVksZ0JBQWdCLFVBQVU7QUFDbEUsYUFBU0MsS0FBSSxHQUFHQSxLQUFJLEtBQUssUUFBUSxRQUFRQSxNQUFLO0FBQzFDLFlBQU0sUUFBUSxLQUFLLFFBQVFBLEVBQUM7QUFDNUIsVUFBSSxNQUFNLFNBQVMsVUFBVSxRQUFRO0FBQ2pDO0FBQUEsTUFDSjtBQUNBLFlBQU0sRUFBRSxTQUFBQyxTQUFRLElBQUk7QUFDcEIsVUFBSSxLQUFLLFlBQVksV0FBV0EsUUFBTyxNQUFNLGFBQ3pDLEtBQUssWUFBWSxnQkFBZ0JBLFFBQU8sTUFBTSxnQkFBZ0I7QUFDOUQsY0FBTSxlQUFlLEtBQUssWUFBWSxZQUFZQSxRQUFPO0FBQ3pELFlBQUksYUFBYSxXQUFXLGVBQWU7QUFDdkMscUJBQVcsS0FBSyxFQUFFLEtBQUtELElBQUcsT0FBTyxhQUFhLENBQUM7QUFBQSxRQUNuRDtBQUFBLE1BQ0o7QUFBQSxJQUNKO0FBQ0EsV0FBTztBQUFBLEVBQ1g7QUFBQSxFQUNBLHdCQUF3QixZQUFZO0FBQ2hDLFFBQUksS0FBSyxRQUFRLFNBQVM7QUFDdEI7QUFDSixVQUFNLFVBQVUsS0FBSyxZQUFZLFlBQVksVUFBVTtBQUN2RCxVQUFNLGFBQWEsS0FBSywrQkFBK0IsWUFBWSxPQUFPO0FBQzFFLFFBQUksV0FBVyxTQUFTO0FBQ3BCO0FBRUosVUFBTSxhQUFhLElBQUksSUFBSSxRQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxNQUFNLE9BQU8sS0FBSyxDQUFDLENBQUM7QUFDL0UsUUFBSSxrQkFBa0I7QUFFdEIsYUFBU0EsS0FBSSxHQUFHQSxLQUFJLFdBQVcsUUFBUUEsTUFBSztBQUN4QyxZQUFNLFlBQVksV0FBV0EsRUFBQztBQUU5QixVQUFJLFVBQVUsTUFBTSxNQUFNLENBQUMsVUFBVSxXQUFXLElBQUksTUFBTSxJQUFJLE1BQU0sTUFBTSxLQUFLLEdBQUc7QUFDOUUsMkJBQW1CO0FBQ25CLFlBQUksbUJBQW1CLG1CQUFtQjtBQUN0QyxlQUFLLFFBQVEsT0FBTyxVQUFVLEtBQUssQ0FBQztBQUFBLFFBQ3hDO0FBQUEsTUFDSjtBQUFBLElBQ0o7QUFBQSxFQUNKO0FBQUE7QUFBQSxFQUVBLGVBQWU7QUFDWCxTQUFLLFFBQVEsUUFBUSxNQUFNO0FBQUEsRUFDL0I7QUFBQSxFQUNBLFlBQVlDLFVBQVMsT0FBTztBQUN4QixTQUFLLHdCQUF3QkEsUUFBTztBQUNwQyxTQUFLLFFBQVEsUUFBUTtBQUFBLE1BQ2pCLE1BQU0sVUFBVTtBQUFBLE1BQ2hCLFNBQUFBO0FBQUEsTUFDQTtBQUFBLElBQ0osQ0FBQztBQUFBLEVBQ0w7QUFBQSxFQUNBLDJCQUEyQkEsVUFBUyxPQUFPO0FBQ3ZDLFVBQU0sY0FBYyxLQUFLLFFBQVEsUUFBUSxLQUFLLFFBQVE7QUFDdEQsU0FBSyxRQUFRLE9BQU8sYUFBYSxHQUFHO0FBQUEsTUFDaEMsTUFBTSxVQUFVO0FBQUEsTUFDaEIsU0FBQUE7QUFBQSxNQUNBO0FBQUEsSUFDSixDQUFDO0FBQUEsRUFDTDtBQUFBLEVBQ0EsWUFBWSxPQUFPO0FBQ2YsVUFBTSxhQUFhLEtBQUssUUFBUSxRQUFRLEtBQUs7QUFDN0MsUUFBSSxjQUFjLEdBQUc7QUFDakIsV0FBSyxRQUFRLE9BQU8sWUFBWSxDQUFDO0FBQUEsSUFDckM7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTUEsb0JBQW9CO0FBQ2hCLFVBQU0sWUFBWSxLQUFLLFFBQVEsUUFBUSxNQUFNO0FBQzdDLFFBQUksYUFBYSxHQUFHO0FBQ2hCLFdBQUssUUFBUSxPQUFPLEdBQUcsWUFBWSxDQUFDO0FBQUEsSUFDeEMsT0FDSztBQUNELFdBQUssUUFBUSxTQUFTO0FBQUEsSUFDMUI7QUFBQSxFQUNKO0FBQUE7QUFBQSxFQUVBLGtDQUFrQyxTQUFTO0FBQ3ZDLFVBQU0sUUFBUSxLQUFLLFFBQVEsS0FBSyxDQUFDQyxXQUFVQSxPQUFNLFNBQVMsVUFBVSxVQUFVLEtBQUssWUFBWSxXQUFXQSxPQUFNLE9BQU8sTUFBTSxPQUFPO0FBQ3BJLFdBQU8sU0FBUyxNQUFNLFNBQVMsVUFBVSxVQUFVLFFBQVE7QUFBQSxFQUMvRDtBQUFBLEVBQ0EsZ0JBQWdCRCxVQUFTO0FBQ3JCLFdBQU8sS0FBSyxRQUFRLEtBQUssQ0FBQyxVQUFVLE1BQU0sU0FBUyxVQUFVLFdBQVcsTUFBTSxZQUFZQSxRQUFPO0FBQUEsRUFDckc7QUFDSjs7O0FDNUdBLFNBQVMsZUFBZSxPQUFPO0FBQzNCLFNBQU87QUFBQSxJQUNILFVBQVU7QUFBQSxJQUNWO0FBQUEsSUFDQSxZQUFZO0FBQUEsRUFDaEI7QUFDSjtBQUNPLElBQU0scUJBQXFCO0FBQUE7QUFBQSxFQUU5QixpQkFBaUI7QUFDYixXQUFPO0FBQUEsTUFDSCxVQUFVO0FBQUEsTUFDVixNQUFNLGNBQWM7QUFBQSxNQUNwQixZQUFZLENBQUM7QUFBQSxJQUNqQjtBQUFBLEVBQ0o7QUFBQSxFQUNBLHlCQUF5QjtBQUNyQixXQUFPO0FBQUEsTUFDSCxVQUFVO0FBQUEsTUFDVixZQUFZLENBQUM7QUFBQSxJQUNqQjtBQUFBLEVBQ0o7QUFBQSxFQUNBLGNBQWMsU0FBUyxjQUFjLE9BQU87QUFDeEMsV0FBTztBQUFBLE1BQ0gsVUFBVTtBQUFBLE1BQ1Y7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0EsWUFBWSxDQUFDO0FBQUEsTUFDYixZQUFZO0FBQUEsSUFDaEI7QUFBQSxFQUNKO0FBQUEsRUFDQSxrQkFBa0IsTUFBTTtBQUNwQixXQUFPO0FBQUEsTUFDSCxVQUFVO0FBQUEsTUFDVjtBQUFBLE1BQ0EsWUFBWTtBQUFBLElBQ2hCO0FBQUEsRUFDSjtBQUFBO0FBQUEsRUFFQSxZQUFZLFlBQVksU0FBUztBQUM3QixlQUFXLFdBQVcsS0FBSyxPQUFPO0FBQ2xDLFlBQVEsYUFBYTtBQUFBLEVBQ3pCO0FBQUEsRUFDQSxhQUFhLFlBQVksU0FBUyxlQUFlO0FBQzdDLFVBQU0sZUFBZSxXQUFXLFdBQVcsUUFBUSxhQUFhO0FBQ2hFLGVBQVcsV0FBVyxPQUFPLGNBQWMsR0FBRyxPQUFPO0FBQ3JELFlBQVEsYUFBYTtBQUFBLEVBQ3pCO0FBQUEsRUFDQSxtQkFBbUIsaUJBQWlCLGdCQUFnQjtBQUNoRCxvQkFBZ0IsVUFBVTtBQUFBLEVBQzlCO0FBQUEsRUFDQSxtQkFBbUIsaUJBQWlCO0FBQ2hDLFdBQU8sZ0JBQWdCO0FBQUEsRUFDM0I7QUFBQSxFQUNBLGdCQUFnQkUsV0FBVSxNQUFNLFVBQVUsVUFBVTtBQUNoRCxVQUFNLGNBQWNBLFVBQVMsV0FBVyxLQUFLLENBQUMsU0FBUyxLQUFLLGFBQWEsZUFBZTtBQUN4RixRQUFJLGFBQWE7QUFDYixrQkFBWSxPQUFPO0FBQ25CLGtCQUFZLFdBQVc7QUFDdkIsa0JBQVksV0FBVztBQUFBLElBQzNCLE9BQ0s7QUFDRCxZQUFNLE9BQU87QUFBQSxRQUNULFVBQVU7QUFBQSxRQUNWO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBLFlBQVk7QUFBQSxNQUNoQjtBQUNBLHlCQUFtQixZQUFZQSxXQUFVLElBQUk7QUFBQSxJQUNqRDtBQUFBLEVBQ0o7QUFBQSxFQUNBLGdCQUFnQkEsV0FBVSxNQUFNO0FBQzVCLElBQUFBLFVBQVMsT0FBTztBQUFBLEVBQ3BCO0FBQUEsRUFDQSxnQkFBZ0JBLFdBQVU7QUFDdEIsV0FBT0EsVUFBUztBQUFBLEVBQ3BCO0FBQUEsRUFDQSxXQUFXLE1BQU07QUFDYixRQUFJLEtBQUssWUFBWTtBQUNqQixZQUFNLE1BQU0sS0FBSyxXQUFXLFdBQVcsUUFBUSxJQUFJO0FBQ25ELFdBQUssV0FBVyxXQUFXLE9BQU8sS0FBSyxDQUFDO0FBQ3hDLFdBQUssYUFBYTtBQUFBLElBQ3RCO0FBQUEsRUFDSjtBQUFBLEVBQ0EsV0FBVyxZQUFZQyxPQUFNO0FBQ3pCLFFBQUksV0FBVyxXQUFXLFNBQVMsR0FBRztBQUNsQyxZQUFNLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxTQUFTLENBQUM7QUFDdkUsVUFBSSxtQkFBbUIsV0FBVyxRQUFRLEdBQUc7QUFDekMsaUJBQVMsU0FBU0E7QUFDbEI7QUFBQSxNQUNKO0FBQUEsSUFDSjtBQUNBLHVCQUFtQixZQUFZLFlBQVksZUFBZUEsS0FBSSxDQUFDO0FBQUEsRUFDbkU7QUFBQSxFQUNBLGlCQUFpQixZQUFZQSxPQUFNLGVBQWU7QUFDOUMsVUFBTSxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsUUFBUSxhQUFhLElBQUksQ0FBQztBQUN2RixRQUFJLFlBQVksbUJBQW1CLFdBQVcsUUFBUSxHQUFHO0FBQ3JELGVBQVMsU0FBU0E7QUFBQSxJQUN0QixPQUNLO0FBQ0QseUJBQW1CLGFBQWEsWUFBWSxlQUFlQSxLQUFJLEdBQUcsYUFBYTtBQUFBLElBQ25GO0FBQUEsRUFDSjtBQUFBLEVBQ0EsZ0JBQWdCLFdBQVcsT0FBTztBQUM5QixVQUFNLG9CQUFvQixJQUFJLElBQUksVUFBVSxNQUFNLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDO0FBQzFFLGFBQVNDLEtBQUksR0FBR0EsS0FBSSxNQUFNLFFBQVFBLE1BQUs7QUFDbkMsVUFBSSxDQUFDLGtCQUFrQixJQUFJLE1BQU1BLEVBQUMsRUFBRSxJQUFJLEdBQUc7QUFDdkMsa0JBQVUsTUFBTSxLQUFLLE1BQU1BLEVBQUMsQ0FBQztBQUFBLE1BQ2pDO0FBQUEsSUFDSjtBQUFBLEVBQ0o7QUFBQTtBQUFBLEVBRUEsY0FBYyxNQUFNO0FBQ2hCLFdBQU8sS0FBSyxXQUFXLENBQUM7QUFBQSxFQUM1QjtBQUFBLEVBQ0EsY0FBYyxNQUFNO0FBQ2hCLFdBQU8sS0FBSztBQUFBLEVBQ2hCO0FBQUEsRUFDQSxjQUFjLE1BQU07QUFDaEIsV0FBTyxLQUFLO0FBQUEsRUFDaEI7QUFBQSxFQUNBLFlBQVlDLFVBQVM7QUFDakIsV0FBT0EsU0FBUTtBQUFBLEVBQ25CO0FBQUE7QUFBQSxFQUVBLFdBQVdBLFVBQVM7QUFDaEIsV0FBT0EsU0FBUTtBQUFBLEVBQ25CO0FBQUEsRUFDQSxnQkFBZ0JBLFVBQVM7QUFDckIsV0FBT0EsU0FBUTtBQUFBLEVBQ25CO0FBQUEsRUFDQSxtQkFBbUIsVUFBVTtBQUN6QixXQUFPLFNBQVM7QUFBQSxFQUNwQjtBQUFBLEVBQ0Esc0JBQXNCLGFBQWE7QUFDL0IsV0FBTyxZQUFZO0FBQUEsRUFDdkI7QUFBQSxFQUNBLHdCQUF3QixhQUFhO0FBQ2pDLFdBQU8sWUFBWTtBQUFBLEVBQ3ZCO0FBQUEsRUFDQSw0QkFBNEIsYUFBYTtBQUNyQyxXQUFPLFlBQVk7QUFBQSxFQUN2QjtBQUFBLEVBQ0EsNEJBQTRCLGFBQWE7QUFDckMsV0FBTyxZQUFZO0FBQUEsRUFDdkI7QUFBQTtBQUFBLEVBRUEsV0FBVyxNQUFNO0FBQ2IsV0FBTyxLQUFLLGFBQWE7QUFBQSxFQUM3QjtBQUFBLEVBQ0EsY0FBYyxNQUFNO0FBQ2hCLFdBQU8sS0FBSyxhQUFhO0FBQUEsRUFDN0I7QUFBQSxFQUNBLG1CQUFtQixNQUFNO0FBQ3JCLFdBQU8sS0FBSyxhQUFhO0FBQUEsRUFDN0I7QUFBQSxFQUNBLGNBQWMsTUFBTTtBQUNoQixXQUFPLE9BQU8sVUFBVSxlQUFlLEtBQUssTUFBTSxTQUFTO0FBQUEsRUFDL0Q7QUFBQTtBQUFBLEVBRUEsMEJBQTBCLE1BQU1DLFdBQVU7QUFDdEMsU0FBSyxxQkFBcUJBO0FBQUEsRUFDOUI7QUFBQSxFQUNBLDBCQUEwQixNQUFNO0FBQzVCLFdBQU8sS0FBSztBQUFBLEVBQ2hCO0FBQUEsRUFDQSw2QkFBNkIsTUFBTSxhQUFhO0FBQzVDLFNBQUsscUJBQXFCLEVBQUUsR0FBRyxLQUFLLG9CQUFvQixHQUFHLFlBQVk7QUFBQSxFQUMzRTtBQUNKOzs7QUMxS0EsSUFBTSxxQkFBcUI7QUFDM0IsSUFBTSxrQkFBa0I7QUFDeEIsSUFBTSx3QkFBd0I7QUFDOUIsSUFBTSxpQ0FBaUM7QUFBQSxFQUNuQztBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUNKO0FBQ0EsSUFBTSw4Q0FBOEM7QUFBQSxFQUNoRCxHQUFHO0FBQUEsRUFDSDtBQUFBLEVBQ0E7QUFDSjtBQUNBLElBQU0seUJBQXlCLG9CQUFJLElBQUk7QUFBQSxFQUNuQztBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0osQ0FBQztBQUNELElBQU0sb0NBQW9DLENBQUMsb0NBQW9DLHNDQUFzQztBQUNySCxJQUFNLG1EQUFtRDtBQUFBLEVBQ3JELEdBQUc7QUFBQSxFQUNIO0FBQUEsRUFDQTtBQUNKO0FBRUEsU0FBUyxVQUFVLFVBQVUsVUFBVTtBQUNuQyxTQUFPLFNBQVMsS0FBSyxDQUFDLFdBQVcsU0FBUyxXQUFXLE1BQU0sQ0FBQztBQUNoRTtBQUVPLFNBQVMsYUFBYSxPQUFPO0FBQ2hDLFNBQVEsTUFBTSxTQUFTLHNCQUNuQixNQUFNLGFBQWEsU0FDbEIsTUFBTSxhQUFhLFFBQVEsTUFBTSxhQUFhO0FBQ3ZEO0FBQ08sU0FBUyxnQkFBZ0IsT0FBTztBQUNuQyxNQUFJLE1BQU0sU0FBUyxvQkFBb0I7QUFDbkMsV0FBTyxjQUFjO0FBQUEsRUFDekI7QUFDQSxRQUFNLEVBQUUsU0FBUyxJQUFJO0FBQ3JCLE1BQUksWUFBWSxTQUFTLFlBQVksTUFBTSx1QkFBdUI7QUFDOUQsV0FBTyxjQUFjO0FBQUEsRUFDekI7QUFDQSxNQUFJLEVBQUUsU0FBUyxJQUFJO0FBQ25CLE1BQUksYUFBYSxNQUFNO0FBQ25CLGVBQVcsU0FBUyxZQUFZO0FBQ2hDLFFBQUksdUJBQXVCLElBQUksUUFBUSxHQUFHO0FBQ3RDLGFBQU8sY0FBYztBQUFBLElBQ3pCO0FBQ0EsUUFBSSxXQUFXLGFBQWEsT0FBTyw4Q0FBOEM7QUFDakYsUUFBSSxVQUFVLFVBQVUsUUFBUSxHQUFHO0FBQy9CLGFBQU8sY0FBYztBQUFBLElBQ3pCO0FBQ0EsZUFDSSxhQUFhLE9BQU8sb0NBQW9DO0FBQzVELFFBQUksVUFBVSxVQUFVLFFBQVEsR0FBRztBQUMvQixhQUFPLGNBQWM7QUFBQSxJQUN6QjtBQUFBLEVBQ0o7QUFDQSxTQUFPLGNBQWM7QUFDekI7OztBQ2pIQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBLElBQU0sYUFBYTtBQUFBLEVBQ2YsV0FBVztBQUFBLEVBQ1gsaUJBQWlCO0FBQ3JCO0FBRUEsSUFBTSxzQkFBc0I7QUFDNUIsSUFBTSwrQkFBK0I7QUFDckMsSUFBTSwyQkFBMkIsSUFBSSxJQUFJO0FBQUEsRUFDckM7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFDSixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxZQUFZLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDM0MsSUFBTSwyQkFBMkIsb0JBQUksSUFBSTtBQUFBLEVBQ3JDLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxTQUFTLE1BQU0sV0FBVyxXQUFXLEdBQUcsTUFBTSxDQUFDO0FBQUEsRUFDM0UsQ0FBQyxpQkFBaUIsRUFBRSxRQUFRLFNBQVMsTUFBTSxXQUFXLFdBQVcsR0FBRyxNQUFNLENBQUM7QUFBQSxFQUMzRSxDQUFDLGNBQWMsRUFBRSxRQUFRLFNBQVMsTUFBTSxRQUFRLFdBQVcsR0FBRyxNQUFNLENBQUM7QUFBQSxFQUNyRSxDQUFDLGNBQWMsRUFBRSxRQUFRLFNBQVMsTUFBTSxRQUFRLFdBQVcsR0FBRyxNQUFNLENBQUM7QUFBQSxFQUNyRSxDQUFDLGNBQWMsRUFBRSxRQUFRLFNBQVMsTUFBTSxRQUFRLFdBQVcsR0FBRyxNQUFNLENBQUM7QUFBQSxFQUNyRSxDQUFDLGVBQWUsRUFBRSxRQUFRLFNBQVMsTUFBTSxTQUFTLFdBQVcsR0FBRyxNQUFNLENBQUM7QUFBQSxFQUN2RSxDQUFDLGNBQWMsRUFBRSxRQUFRLFNBQVMsTUFBTSxRQUFRLFdBQVcsR0FBRyxNQUFNLENBQUM7QUFBQSxFQUNyRSxDQUFDLFlBQVksRUFBRSxRQUFRLE9BQU8sTUFBTSxRQUFRLFdBQVcsR0FBRyxJQUFJLENBQUM7QUFBQSxFQUMvRCxDQUFDLFlBQVksRUFBRSxRQUFRLE9BQU8sTUFBTSxRQUFRLFdBQVcsR0FBRyxJQUFJLENBQUM7QUFBQSxFQUMvRCxDQUFDLGFBQWEsRUFBRSxRQUFRLE9BQU8sTUFBTSxTQUFTLFdBQVcsR0FBRyxJQUFJLENBQUM7QUFBQSxFQUNqRSxDQUFDLFNBQVMsRUFBRSxRQUFRLElBQUksTUFBTSxTQUFTLFdBQVcsR0FBRyxNQUFNLENBQUM7QUFBQSxFQUM1RCxDQUFDLGVBQWUsRUFBRSxRQUFRLFNBQVMsTUFBTSxTQUFTLFdBQVcsR0FBRyxNQUFNLENBQUM7QUFDM0UsQ0FBQztBQUVNLElBQU0sK0JBQStCLElBQUksSUFBSTtBQUFBLEVBQ2hEO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtB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LElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsZ0NBQWdDO0FBQUEsSUFDOUIsUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLEVBQ0o7QUFBQTtBQUFBLEVBRUEsbUJBQW1CO0FBQUEsSUFDakIsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsMkNBQTJDO0FBQUEsSUFDekMsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsMkNBQTJDO0FBQUEsSUFDekMsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEseUNBQXlDO0FBQUEsSUFDdkMsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsNENBQTRDO0FBQUEsSUFDMUMsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsNENBQTRDO0FBQUEsSUFDMUMsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsb0NBQW9DO0FBQUEsSUFDbEMsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsb0NBQW9DO0FBQUEsSUFDbEMsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsMkRBQTJEO0FBQUEsSUFDekQsUUFDRTtBQUFBLElBQ0YsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsZUFBZTtBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsc0JBQXNCO0FBQUEsSUFDcEIsUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLElBQ0YsS0FBSztBQUFBLEVBQ1A7QUFBQTtBQUFBLEVBRUEsc0JBQXNCO0FBQUEsSUFDcEIsUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLElBQ0YsS0FBSztBQUFBLEVBQ1A7QUFBQTtBQUFBLEVBRUEsK0NBQStDO0FBQUEsSUFDN0MsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsZ0NBQWdDO0FBQUEsSUFDOUIsUUFDRTtBQUFBLElBQ0YsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsMkJBQTJCO0FBQUEsSUFDekIsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsd0JBQXdCO0FBQUEsSUFDdEIsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsMEJBQTBCO0FBQUEsSUFDeEIsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLElBQ2IsS0FBSztBQUFBLEVBQ1A7QUFBQTtBQUFBLEVBRUEsNkJBQTZCO0FBQUEsSUFDM0IsUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLEVBQ0o7QUFBQTtBQUFBLEVBRUEsd0JBQXdCO0FBQUEsSUFDdEIsUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLEVBQ0o7QUFBQTtBQUFBLEVBRUEsaURBQWlEO0FBQUEsSUFDL0MsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsb0NBQW9DO0FBQUEsSUFDbEMsUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLEVBQ0o7QUFBQTtBQUFBLEVBRUEsNkNBQTZDO0FBQUEsSUFDM0MsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEseUNBQXlDO0FBQUEsSUFDdkMsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEseUJBQXlCO0FBQUEsSUFDdkIsUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLEVBQ0o7QUFBQTtBQUFBLEVBRUEsd0NBQXdDO0FBQUEsSUFDdEMsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsd0JBQXdCO0FBQUEsSUFDdEIsUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLEVBQ0o7QUFBQTtBQUFBLEVBRUEsZ0NBQWdDO0FBQUEsSUFDOUIsUUFB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VSxNQUFNLE1BQU0sTUFBTTtBQUMxQyxRQUFNLFFBQVEsT0FBTyxPQUFPLElBQUk7QUFDaEMsU0FBTyxRQUFRLFFBQVEsQ0FBQyxLQUFLLEtBQUssT0FBTyxhQUFhLElBQUksQ0FBQyxJQUN2RCxRQUNBLFFBQVE7QUFDZDs7O0FDUk8sSUFBTSwwQkFBMEI7QUFBQSxFQUNyQztBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUNGOzs7QUMzR08sSUFBTSx5QkFBeUI7QUFBQSxFQUNwQyxNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixLQUFLO0FBQUEsRUFDTCxRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixLQUFLO0FBQUEsRUFDTCxNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxLQUFLO0FBQUEsRUFDTCxLQUFLO0FBQUEsRUFDTCxLQUFLO0FBQUEsRUFDTCxNQUFNO0FBQUEsRUFDTixLQUFLO0FBQUEsRUFDTCxRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixLQUFLO0FBQUEsRUFDTCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixLQUFLO0FBQUEsRUFDTCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxNQUFNO0FBQUEsRUFDTixLQUFLO0FBQUEsRUFDTCxPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixTQUFTO0FBQUEsRUFDVCxJQUFJO0FBQUEsRUFDSixLQUFLO0FBQUEsRUFDTCxPQUFPO0FBQUEsRUFDUCxLQUFLO0FBQUEsRUFDTCxTQUFTO0FBQUEsRUFDVCxLQUFLO0FBQUEsRUFDTCxLQUFLO0FBQUEsRUFDTCxLQUFLO0FBQUEsRUFDTCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxNQUFNO0FBQUEsRUFDTixLQUFLO0FBQUEsRUFDTCxPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixTQUFTO0FBQUEsRUFDVCxJQUFJO0FBQUEsRUFDSixLQUFLO0FBQUEsRUFDTCxRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxLQUFLO0FBQUEsRUFDTCxTQUFTO0FBQUEsRUFDVCxLQUFLO0FBQUEsRUFDTCxLQUFLO0FBQUEsRUFDTCxLQUFLO0FBQUEsRUFDTCxPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixPQUFPO0FBQUEsRUFDUCxLQUFLO0FBQUEsRUFDTCxNQUFNO0FBQUEsRUFDTixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxJQUFJO0FBQUEsRUFDSixNQUFNO0FBQUEsRUFDTixLQUFLO0FBQUEsRUFDTCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxLQUFLO0FBQUEsRUFDTCxLQUFLO0FBQUEsRUFDTCxJQUFJO0FBQUEsRUFDSixLQUFLO0FBQUEsRUFDTCxLQUFLO0FBQUEsRUFDTCxLQUFLO0FBQUEsRUFDTCxRQUFRO0FBQUEsRUFDUixLQUFLO0FBQUEsRUFDTCxNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxJQUFJO0FBQUEsRUFDSixPQUFPO0FBQUEsRUFDUCxJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixLQUFLO0FBQUEsRUFDTCxLQUFLO0FBQUEsRUFDTCxNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixLQUFLO0FBQUEsRUFDTCxRQUFRO0FBQUEsRUFDUixPQUFP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QkFBMEIsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBQUEsSUFDM0c7QUFDQSxRQUFJO0FBQ0gsWUFBTSw4QkFBOEIsSUFBSTtBQUFBLFNBQ3BDO0FBQ0osWUFBTSw2QkFBNkIsSUFBSTtBQUN2QyxXQUFLLGtCQUFrQjtBQUFBLElBQ3hCO0FBQUEsRUFDRDtBQUFBLEVBRUEsb0JBQTBCO0FBQ3pCLFNBQUssSUFBSSxVQUFVLGtCQUFrQixDQUFDLFNBQXdCO0FBQzdELFVBQUksS0FBSyxnQkFBZ0IsaUNBQWdCLEtBQUssS0FBSyxRQUFRLE1BQU07QUFDaEUsYUFBSyxLQUFLLFlBQVksU0FBUyxJQUFJO0FBQUEsSUFDckMsQ0FBQztBQUFBLEVBQ0Y7QUFDRDsiLAogICJuYW1lcyI6IFsicm9vdCIsICJmYWN0b3J5IiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImRlZmluZSIsICJhbWQiLCAic2VsZiIsICJfX3dlYnBhY2tfcmVxdWlyZV9fIiwgImRlZmluaXRpb24iLCAia2V5IiwgIm8iLCAiT2JqZWN0IiwgImRlZmluZVByb3BlcnR5IiwgImVudW1lcmFibGUiLCAiZ2V0IiwgIm9iaiIsICJwcm9wIiwgInByb3RvdHlwZSIsICJoYXNPd25Qcm9wZXJ0eSIsICJjYWxsIiwgIlN5bWJvbCIsICJ0b1N0cmluZ1RhZyIsICJ2YWx1ZSIsICJlIiwgInQiLCAiRSIsICJldmVudExpc3RlbmVyIiwgIm1ldGhvZCIsICJlbGVtZW50cyIsICJldmVudHMiLCAiZm4iLCAib3B0aW9ucyIsICJIVE1MQ29sbGVjdGlvbiIsICJOb2RlTGlzdCIsICJBcnJheSIsICJmcm9tIiwgImlzQXJyYXkiLCAiZWwiLCAiZXYiLCAiY2FwdHVyZSIsICJzbGljZSIsICJhcmd1bWVudHMiLCAicCIsICJyIiwgImEiLCAibCIsICJzIiwgImkiLCAiYyIsICJvbiIsICJiaW5kIiwgIm9mZiIsICJjcmVhdGVFbGVtZW50RnJvbVN0cmluZyIsICJodG1sIiwgImRpdiIsICJkb2N1bWVudCIsICJjcmVhdGVFbGVtZW50IiwgImlubmVySFRNTCIsICJ0cmltIiwgImZpcnN0RWxlbWVudENoaWxkIiwgImNyZWF0ZUZyb21UZW1wbGF0ZSIsICJzdHIiLCAicmVtb3ZlQXR0cmlidXRlIiwgIm5hbWUiLCAiZ2V0QXR0cmlidXRlIiwgInJlc29sdmUiLCAiZWxlbWVudCIsICJiYXNlIiwgImNvbiIsICJzdWJ0cmVlIiwgImNoaWxkIiwgImNoaWxkcmVuIiwgImFyciIsICJzdWIiLCAicHVzaCIsICJrZXlzIiwgImxlbmd0aCIsICJldmVudFBhdGgiLCAiZXZ0IiwgInBhdGgiLCAiY29tcG9zZWRQYXRoIiwgInRhcmdldCIsICJwYXJlbnRFbGVtZW50IiwgIndpbmRvdyIsICJyZXNvbHZlRWxlbWVudCIsICJ2YWwiLCAiRWxlbWVudCIsICJzcGxpdCIsICJyZWR1Y2UiLCAicHYiLCAiY3YiLCAiY2kiLCAicXVlcnlTZWxlY3RvciIsICJzaGFkb3dSb290IiwgImFkanVzdGFibGVJbnB1dE51bWJlcnMiLCAibWFwcGVyIiwgInYiLCAiaGFuZGxlU2Nyb2xsIiwgImluYyIsICJOdW1iZXIiLCAic2hpZnRLZXkiLCAiY3RybEtleSIsICJkZWx0YVkiLCAiaW5kZXgiLCAic2VsZWN0aW9uU3RhcnQiLCAicmVwbGFjZSIsICJmb2N1cyIsICJzZXRTZWxlY3Rpb25SYW5nZSIsICJwcmV2ZW50RGVmYXVsdCIsICJkaXNwYXRjaEV2ZW50IiwgIkV2ZW50IiwgInBhc3NpdmUiLCAibWluIiwgIm1heCIsICJmbG9vciIsICJyb3VuZCIsICJNYXRoIiwgImhzdlRvUmdiIiwgImgiLCAiZiIsICJxIiwgIm1vZCIsICJoc3ZUb0hzbCIsICJyZ2JUb0hzdiIsICJnIiwgImIiLCAibWluVmFsIiwgIm1heFZhbCIsICJkZWx0YSIsICJkciIsICJkZyIsICJkYiIsICJjbXlrVG9Ic3YiLCAibSIsICJ5IiwgImsiLCAiaHNsVG9Ic3YiLCAibnMiLCAiaXNOYU4iLCAiaGV4VG9Ic3YiLCAiaGV4IiwgIm1hdGNoIiwgIm1hcCIsICJwYXJzZUludCIsICJwYXJzZVRvSFNWQSIsICJ0b0xvd2VyQ2FzZSIsICJjdHgiLCAiZ2V0Q29udGV4dCIsICJmaWxsU3R5bGUiLCAicmVnZXgiLCAiY215ayIsICJyZ2JhIiwgImhzbGEiLCAiaHN2YSIsICJoZXhhIiwgIm51bWFyaXplIiwgImFycmF5IiwgInRlc3QiLCAidW5kZWZpbmVkIiwgImludmFsaWQiLCAidHlwZSIsICJleGVjIiwgInZhbHVlcyIsICJqb2luIiwgInJhdyIsICJzdWJzdHJpbmciLCAiSFNWYUNvbG9yIiwgIm9yaWdpbmFsIiwgIm5leHQiLCAicHJlY2lzaW9uIiwgInRvRml4ZWQiLCAidGhhdCIsICJ0b0hTVkEiLCAidG9TdHJpbmciLCAidG9IU0xBIiwgInRvUkdCQSIsICJ0b0NNWUsiLCAicmdiIiwgInRvSEVYQSIsICJwYWRTdGFydCIsICJhbHBoYSIsICJ0b1VwcGVyQ2FzZSIsICJjbG9uZSIsICJjbGFtcCIsICJNb3ZlYWJsZSIsICJvcHQiLCAiYXNzaWduIiwgImxvY2siLCAib25jaGFuZ2UiLCAib25zdG9wIiwgIl9rZXlib2FyZCIsICJhY3RpdmVFbGVtZW50IiwgIndyYXBwZXIiLCAidXAiLCAicmlnaHQiLCAiZG93biIsICJsZWZ0IiwgInhtIiwgInltIiwgInVwZGF0ZSIsICJjYWNoZSIsICJ4IiwgInN0YXJ0c1dpdGgiLCAiX3RhcHN0YXJ0IiwgIl8iLCAiX3RhcHN0b3AiLCAiX3RhcG1vdmUiLCAiY2FuY2VsYWJsZSIsICJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCAidG91Y2giLCAidG91Y2hlcyIsICJjbGllbnRYIiwgImNsaWVudFkiLCAid2lkdGgiLCAidG9wIiwgImhlaWdodCIsICJzdHlsZSIsICJvZmZzZXRXaWR0aCIsICJvZmZzZXRIZWlnaHQiLCAiY3giLCAiY3kiLCAidHJpZ2dlciIsICJkZXN0cm95IiwgIlNlbGVjdGFibGUiLCAiY2xhc3NOYW1lIiwgIm9uVGFwIiwgImZvckVhY2giLCAiY2xhc3NMaXN0IiwgInN0b3BQcm9wYWdhdGlvbiIsICJ2YXJpYW50RmxpcE9yZGVyIiwgInN0YXJ0IiwgIm1pZGRsZSIsICJlbmQiLCAicG9zaXRpb25GbGlwT3JkZXIiLCAiYm90dG9tIiwgInBvc2l0aW9uIiwgIm1hcmdpbiIsICJwYWRkaW5nIiwgIkQiLCAiSFRNTEVsZW1lbnQiLCAicmVmZXJlbmNlIiwgInBvcHBlciIsICJFcnJvciIsICJjb250YWluZXIiLCAiYXJyb3ciLCAiQiIsICJNIiwgIkMiLCAiZG9jdW1lbnRFbGVtZW50IiwgIkYiLCAiSyIsICJTIiwgIlYiLCAidnMiLCAidm0iLCAidmUiLCAiaHMiLCAiaG0iLCAiaGUiLCAiJCIsICJSIiwgImoiLCAidSIsICJuIiwgImQiLCAidyIsICJ6IiwgIkwiLCAiUCIsICJUIiwgIk8iLCAiSCIsICJQaWNrciIsICJjb25zdHJ1Y3RvciIsICJfaW5pdGlhbGl6aW5nQWN0aXZlIiwgIl9yZWNhbGMiLCAiX25hbm9wb3AiLCAiX3Jvb3QiLCAiX2NvbG9yIiwgIl9sYXN0Q29sb3IiLCAiX3N3YXRjaENvbG9ycyIsICJfc2V0dXBBbmltYXRpb25GcmFtZSIsICJfZXZlbnRMaXN0ZW5lciIsICJpbml0IiwgInNhdmUiLCAiaGlkZSIsICJzaG93IiwgImNsZWFyIiwgImNoYW5nZSIsICJjaGFuZ2VzdG9wIiwgImNhbmNlbCIsICJzd2F0Y2hzZWxlY3QiLCAidGhpcyIsICJERUZBVUxUX09QVElPTlMiLCAic3dhdGNoZXMiLCAiY29tcG9uZW50cyIsICJ0aGVtZSIsICJzbGlkZXJzIiwgImxvY2tPcGFjaXR5IiwgImluY2x1ZGVzIiwgImludGVyYWN0aW9uIiwgInByZXZpZXciLCAib3BhY2l0eSIsICJodWUiLCAicGFsZXR0ZSIsICJfcHJlQnVpbGQiLCAiX2J1aWxkQ29tcG9uZW50cyIsICJfYmluZEV2ZW50cyIsICJfZmluYWxCdWlsZCIsICJjb2xvciIsICJhZGRTd2F0Y2giLCAiYnV0dG9uIiwgImFwcCIsICJjcmVhdGVQb3BwZXIiLCAic2V0QXR0cmlidXRlIiwgIl90IiwgInJlcXVlc3RBbmltYXRpb25GcmFtZSIsICJjYiIsICJzZXRDb2xvciIsICJkZWZhdWx0IiwgIl9yZVBvc2l0aW9uaW5nUGlja2VyIiwgImRlZmF1bHRSZXByZXNlbnRhdGlvbiIsICJfcmVwcmVzZW50YXRpb24iLCAic2V0Q29sb3JSZXByZXNlbnRhdGlvbiIsICJzaG93QWx3YXlzIiwgIl9lbWl0IiwgImluc3RhbmNlIiwgInVzZUFzQnV0dG9uIiwgImlubGluZSIsICJhcHBDbGFzcyIsICJoaWRkZW4iLCAiaW5wdXQiLCAiaW50IiwgImZpbmQiLCAiYWRkIiwgImNvbnRhaW5zIiwgImFwcGVuZENoaWxkIiwgInJlbW92ZUNoaWxkIiwgInBhcmVudCIsICJuZXh0U2libGluZyIsICJpbnNlcnRCZWZvcmUiLCAicmVtb3ZlIiwgInBhcmVudE5vZGUiLCAicmVwbGFjZUNoaWxkIiwgImRpc2FibGVkIiwgImRpc2FibGUiLCAiY29tcGFyaXNvbiIsICJ0cmFuc2l0aW9uIiwgImxhc3RDb2xvciIsICJpbnN0IiwgImNzIiwgInJlcGVhdCIsICJzbyIsICJzaCIsICJnZXRDb2xvciIsICJwaWNrZXIiLCAiY3VycmVudENvbG9yIiwgIl91cGRhdGVPdXRwdXQiLCAiY3NzUkdCYVN0cmluZyIsICJiYWNrZ3JvdW5kIiwgInNldFByb3BlcnR5IiwgInNsaWRlciIsICJiYWNrZ3JvdW5kQ29sb3IiLCAic2VsZWN0YWJsZSIsICJfY29tcG9uZW50cyIsICJldmVudEJpbmRpbmdzIiwgIl9jbGVhckNvbG9yIiwgInNldEhTVkEiLCAiYXBwbHlDb2xvciIsICJyZXN1bHQiLCAic3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uIiwgImNrIiwgImNsb3NlV2l0aEtleSIsICJpc09wZW4iLCAiY29kZSIsICJzb21lIiwgImFkanVzdGFibGVOdW1iZXJzIiwgInJhbmdlcyIsICJzdGVwIiwgInJhbmdlIiwgImdldENvbG9yUmVwcmVzZW50YXRpb24iLCAibnYiLCAidG9QcmVjaXNpb24iLCAiYXV0b1JlcG9zaXRpb24iLCAidGltZW91dCIsICJjbG9zZU9uU2Nyb2xsIiwgInNldFRpbWVvdXQiLCAicnMiLCAiY2xlYXJUaW1lb3V0IiwgIl9ldmVudEJpbmRpbmdzIiwgImJvZHkiLCAiZWIiLCAiaW5uZXJIZWlnaHQiLCAiaW5uZXJXaWR0aCIsICJldmVudFNvdXJjZSIsICJvdXRwdXRQcmVjaXNpb24iLCAic2lsZW50IiwgIl9wYXJzZUxvY2FsQ29sb3IiLCAiYWxwaGFNYWtlc0FDaGFuZ2UiLCAiaTE4biIsICJJMThOX0RFRkFVTFRTIiwgImV2ZW50IiwgImFyZ3MiLCAiY2FsbEJhY2tzIiwgImluZGV4T2YiLCAic3BsaWNlIiwgInJlbW92ZVN3YXRjaCIsICJzd2F0Y2hDb2xvciIsICJjYW5jZWxBbmltYXRpb25GcmFtZSIsICJkZXN0cm95QW5kUmVtb3ZlIiwgInJlY2FsYyIsICJzdHJpbmciLCAidXR5cGUiLCAiY2xpY2siLCAiZ2V0U2VsZWN0ZWRDb2xvciIsICJnZXRSb290IiwgImVuYWJsZSIsICJzdGF0aWMiLCAiVkVSU0lPTiIsICJtb2R1bGUiLCAiY29yZSIsICJpdCIsICJlIiwgImRvY3VtZW50IiwgImlzIiwgIlMiLCAiZiIsICJPIiwgIlAiLCAia2V5IiwgImEiLCAiYiIsICJjIiwgInNvdXJjZSIsICJleHBvcnRzIiwgIm93biIsICJwb3MiLCAicyIsICJpIiwgImwiLCAiY29kZVBvaW50QXQiLCAiaW5kZXgiLCAiZnJvbUNvZGVQb2ludCIsICJ4IiwgInJvb3QiLCAicGFyc2UiLCAidGV4dCIsICJ0b2tlbiIsICJjb21tZW50IiwgInUiLCAicCIsICJidWZmZXIiLCAic3RyaW5naWZ5IiwgInN0YWNrIiwgInYiLCAidmFsdWUiLCAibGlzdCIsICJKU09ONSIsICJpbXBvcnRfb2JzaWRpYW4iLCAic2V0dGluZ3MiLCAiX2EiLCAiaW5kZXgiLCAidCIsICJlIiwgIm4iLCAiciIsICJpIiwgIm8iLCAiYyIsICJ1IiwgInMiLCAiZCIsICJiIiwgIkEiLCAiRiIsICJ2IiwgIkgiLCAiQiIsICJDIiwgImsiLCAiUyIsICJSIiwgIk0iLCAiTyIsICJMIiwgIkciLCAiaiIsICJYIiwgIkkiLCAiWSIsICJhIiwgImwiLCAiZiIsICJoIiwgInAiLCAiZyIsICJtIiwgInkiLCAiRSIsICJ0ZXh0IiwgInZhbHVlIiwgImUiLCAiX2EiLCAicmVyZW5kZXIiLCAiUGlja3IiLCAiaSIsICJib2R5IiwgIl9hIiwgImltcG9ydF9vYnNpZGlhbiIsICJpbXBvcnRfb2JzaWRpYW4iLCAiaW1wb3J0X29ic2lkaWFuIiwgImkiLCAiaW1wb3J0X29ic2lkaWFuIiwgImltcG9ydF9vYnNpZGlhbiIsICJfYSIsICJlIiwgImltcG9ydF9vYnNpZGlhbiIsICJjaGVja3MiLCAiaW5kZXgiLCAiYWxsIiwgImtleSIsICJkIiwgImlzIiwgImluZGV4IiwgIm9rIiwgImluZGV4IiwgImluZGV4IiwgImtleSIsICJfIiwgIl8iLCAiXyIsICJodG1sIiwgInN2ZyIsICJwYXJzZSIsICJpbmRleCIsICJwYXJzZSIsICJzdHJpbmdpZnkiLCAib3duIiwgImgiLCAiaW5kZXgiLCAia2V5IiwgInBhcnNlIiwgInZhbHVlIiwgImgiLCAiaHRtbCIsICJzIiwgInN2ZyIsICJzZWFyY2giLCAiaW5kZXgiLCAicG9pbnQiLCAib3duIiwgInN2ZyIsICJodG1sIiwgIm9rIiwgImluZGV4IiwgInMiLCAiaCIsICJwb3NpdGlvbiIsICJsb2NhdGlvbiIsICJrZXkiLCAib3BlbmluZyIsICJjbG9zaW5nIiwgInBvaW50IiwgIkNPREVfUE9JTlRTIiwgIkVSUiIsICJpIiwgIlRva2VuVHlwZSIsICJpIiwgImMiLCAiYyIsICJfYSIsICJDaGFyQ29kZXMiLCAiQmluVHJpZUZsYWdzIiwgIkVudGl0eURlY29kZXJTdGF0ZSIsICJEZWNvZGluZ01vZGUiLCAiZXJyb3JzIiwgImJhc2UiLCAiX2EiLCAiTlMiLCAiQVRUUlMiLCAiRE9DVU1FTlRfTU9ERSIsICJUQUdfTkFNRVMiLCAiVEFHX0lEIiwgIl9hIiwgIiQiLCAiU3RhdGUiLCAiaXNBc2NpaUFscGhhTnVtZXJpYyIsICJpc0VudGl0eUluQXR0cmlidXRlSW52YWxpZEVuZCIsICJfYSIsICJpIiwgImN0IiwgImxvY2F0aW9uIiwgImRvY3VtZW50IiwgImVsZW1lbnQiLCAiaSIsICJFbnRyeVR5cGUiLCAiaSIsICJlbGVtZW50IiwgImVudHJ5IiwgImRvY3VtZW50IiwgInRleHQiLCAiaiIsICJlbGVtZW50IiwgImxvY2F0aW9uIiwgImkiLCAiSW5zZXJ0aW9uTW9kZSIsICJkb2N1bWVudCIsICJodG1sIiwgIl9hIiwgImVsZW1lbnQiLCAibG9jYXRpb24iLCAic2libGluZ3MiLCAiaSIsICJwIiwgImluZGV4IiwgImMiLCAicGFyc2UiLCAiaHRtbCIsICJwb3NpdGlvbiIsICJwb2ludCIsICJpbmRleCIsICJwYXRoIiwgImluZGV4IiwgIm5vcm1hbGl6ZSIsICJwYXRoIiwgImluZGV4IiwgImluZGV4IiwgInByb3AiLCAiYmFzZW5hbWUiLCAiZGlybmFtZSIsICJhc3NlcnRQYXRoIiwgImV4dG5hbWUiLCAicGF0aCIsICJwYXJzZSIsICJjYW1lbGNhc2UiLCAib2siLCAidmFsdWUiLCAiXyIsICIkMiIsICJvd24iLCAia2V5IiwgIm9uZSIsICJpbmRleCIsICJhbGwiLCAib3duIiwgImluZGV4IiwgImVtcHR5IiwgImluY3JlbWVudCIsICJpbmRleCIsICJzaWJsaW5ncyIsICJvd24iLCAiaW5kZXgiLCAiZHQiLCAiaHRtbCIsICJwIiwgIl8iLCAiaW5kZXgiLCAiYm9keSIsICJodG1sIiwgInRib2R5IiwgImhlYWQiLCAiaW5kZXgiLCAiZWxlbWVudCIsICJpbmRleCIsICJzdmciLCAia2V5IiwgIngiLCAieSIsICJzdHJpbmdpZnkiLCAiXyIsICJpbmRleCIsICJlbGVtZW50IiwgImVtcHR5T3B0aW9ucyIsICJlbXB0eUNoaWxkcmVuIiwgIm9uZSIsICJhbGwiLCAic3ZnIiwgImh0bWwiLCAiaW5kZXgiLCAiaW1wb3J0X29ic2lkaWFuIiwgIl9hIiwgIl9iIiwgIl9jIiwgInMiLCAiX2EiLCAidGV4dCIsICJlbGVtZW50IiwgIl9hIiwgIl8iLCAia2V5IiwgInRleHQiLCAiZm9sZCIsICJpbmRleCIsICJyZXN1bHQiLCAiX2EiLCAiY29kZVNlY3Rpb24iLCAiX2EiLCAiXyIsICJlIiwgIl9hIiwgInBvc2l0aW9uIiwgInJlbW92ZUZvbGRMYW5ndWFnZXMiLCAibGFuZyIsICJlbXB0eSIsICJwbHVnaW4iLCAiZm9sZFN0YXJ0IiwgImZvbGRFbmQiLCAiaSIsICJjb252ZXJ0Q29tbWVudExpbmtzIiwgInRleHQiLCAic3R5bGUiLCAiZWxlbWVudCIsICJrZXkiLCAiX2EiXQp9Cg== +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovd2VicGFjay9ib290c3RyYXAiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovc3JjL2pzL3V0aWxzL3V0aWxzLmpzIiwgIm5vZGVfbW9kdWxlcy9Ac2ltb253ZXAvcGlja3IvZGlzdC93ZWJwYWNrOi9zcmMvanMvdXRpbHMvY29sb3IuanMiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3NyYy9qcy91dGlscy9oc3ZhY29sb3IuanMiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3NyYy9qcy9saWJzL21vdmVhYmxlLmpzIiwgIm5vZGVfbW9kdWxlcy9Ac2ltb253ZXAvcGlja3IvZGlzdC93ZWJwYWNrOi9zcmMvanMvbGlicy9zZWxlY3RhYmxlLmpzIiwgIm5vZGVfbW9kdWxlcy9Ac2ltb253ZXAvcGlja3IvZGlzdC93ZWJwYWNrOi9zcmMvanMvdGVtcGxhdGUuanMiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3NyYy9pbmRleC50cyIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovc3JjL2pzL3BpY2tyLmpzIiwgIm5vZGVfbW9kdWxlcy9qc29uNS9kaXN0L2luZGV4LmpzIiwgInNyYy9tYWluLnRzIiwgInNyYy9TZXR0aW5ncy50cyIsICJzcmMvU2V0dGluZ3NUYWIudHMiLCAibm9kZV9tb2R1bGVzL2NvbG9ydHJhbnNsYXRvci9lc20vaW5kZXguanMiLCAic3JjL0FwcGx5U3R5bGluZy50cyIsICJzcmMvRWRpdGluZ1ZpZXcudHMiLCAic3JjL1BhcnNpbmcvQ29kZWJsb2NrUGFyc2luZy50cyIsICJzcmMvRXh0ZXJuYWwvRXhlY3V0ZUNvZGUvQ29kZUJsb2NrQXJncy50cyIsICJzcmMvUmVmZXJlbmNpbmcudHMiLCAic3JjL1BhcnNpbmcvUmVmZXJlbmNlUGFyc2luZy50cyIsICJzcmMvUmVhZGluZ1ZpZXcudHMiLCAibm9kZV9tb2R1bGVzL3VuaXN0LXV0aWwtaXMvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy91bmlzdC11dGlsLXZpc2l0LXBhcmVudHMvbGliL2NvbG9yLmpzIiwgIm5vZGVfbW9kdWxlcy91bmlzdC11dGlsLXZpc2l0LXBhcmVudHMvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9kZXZsb3AvbGliL2RlZmF1bHQuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL3NjaGVtYS5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3V0aWwvbWVyZ2UuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi9ub3JtYWxpemUuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2luZm8uanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL3R5cGVzLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9kZWZpbmVkLWluZm8uanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2NyZWF0ZS5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3hsaW5rLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIveG1sLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9jYXNlLXNlbnNpdGl2ZS10cmFuc2Zvcm0uanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2Nhc2UtaW5zZW5zaXRpdmUtdHJhbnNmb3JtLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIveG1sbnMuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi9hcmlhLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvaHRtbC5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3N2Zy5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL2ZpbmQuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9jb21tYS1zZXBhcmF0ZWQtdG9rZW5zL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtcGFyc2Utc2VsZWN0b3IvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9zcGFjZS1zZXBhcmF0ZWQtdG9rZW5zL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0c2NyaXB0L2xpYi9jcmVhdGUtaC5qcyIsICJub2RlX21vZHVsZXMvaGFzdHNjcmlwdC9saWIvc3ZnLWNhc2Utc2Vuc2l0aXZlLXRhZy1uYW1lcy5qcyIsICJub2RlX21vZHVsZXMvaGFzdHNjcmlwdC9saWIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL3ZmaWxlLWxvY2F0aW9uL2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvd2ViLW5hbWVzcGFjZXMvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1mcm9tLXBhcnNlNS9saWIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L2NvbW1vbi91bmljb2RlLmpzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC9jb21tb24vZXJyb3ItY29kZXMuanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L3Rva2VuaXplci9wcmVwcm9jZXNzb3IuanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L2NvbW1vbi90b2tlbi5qcyIsICJub2RlX21vZHVsZXMvZW50aXRpZXMvbGliL2VzbS9nZW5lcmF0ZWQvZ2VuZXJhdGVkL2RlY29kZS1kYXRhLWh0bWwudHMiLCAibm9kZV9tb2R1bGVzL2VudGl0aWVzL2xpYi9lc20vZ2VuZXJhdGVkL2dlbmVyYXRlZC9kZWNvZGUtZGF0YS14bWwudHMiLCAibm9kZV9tb2R1bGVzL2VudGl0aWVzL2xpYi9lc20vZGVjb2RlX2NvZGVwb2ludC50cyIsICJub2RlX21vZHVsZXMvZW50aXRpZXMvbGliL2VzbS9kZWNvZGUudHMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L2NvbW1vbi9odG1sLmpzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC90b2tlbml6ZXIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L3BhcnNlci9vcGVuLWVsZW1lbnQtc3RhY2suanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L3BhcnNlci9mb3JtYXR0aW5nLWVsZW1lbnQtbGlzdC5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvdHJlZS1hZGFwdGVycy9kZWZhdWx0LmpzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC9jb21tb24vZG9jdHlwZS5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvY29tbW9uL2ZvcmVpZ24tY29udGVudC5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvcGFyc2VyL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9lbnRpdGllcy9saWIvZXNtL2VzY2FwZS50cyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3Qvc2VyaWFsaXplci9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL3VuaXN0LXV0aWwtc3RyaW5naWZ5LXBvc2l0aW9uL2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvdmZpbGUtbWVzc2FnZS9saWIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW5wYXRoLmJyb3dzZXIuanMiLCAibm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW5wcm9jLmJyb3dzZXIuanMiLCAibm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW51cmwuc2hhcmVkLmpzIiwgIm5vZGVfbW9kdWxlcy92ZmlsZS9saWIvbWludXJsLmJyb3dzZXIuanMiLCAibm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLWZyb20taHRtbC9saWIvZXJyb3JzLmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtZnJvbS1odG1sL2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvaHRtbC12b2lkLWVsZW1lbnRzL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy96d2l0Y2gvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL3N0cmluZ2lmeS1lbnRpdGllcy9saWIvY29yZS5qcyIsICJub2RlX21vZHVsZXMvc3RyaW5naWZ5LWVudGl0aWVzL2xpYi91dGlsL3RvLWhleGFkZWNpbWFsLmpzIiwgIm5vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL3V0aWwvdG8tZGVjaW1hbC5qcyIsICJub2RlX21vZHVsZXMvY2hhcmFjdGVyLWVudGl0aWVzLWxlZ2FjeS9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvY2hhcmFjdGVyLWVudGl0aWVzLWh0bWw0L2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL2NvbnN0YW50L2Rhbmdlcm91cy5qcyIsICJub2RlX21vZHVsZXMvc3RyaW5naWZ5LWVudGl0aWVzL2xpYi91dGlsL3RvLW5hbWVkLmpzIiwgIm5vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL3V0aWwvZm9ybWF0LXNtYXJ0LmpzIiwgIm5vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaGFuZGxlL2NvbW1lbnQuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9oYW5kbGUvZG9jdHlwZS5qcyIsICJub2RlX21vZHVsZXMvY2NvdW50L2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtd2hpdGVzcGFjZS9saWIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9vbWlzc2lvbi91dGlsL3NpYmxpbmdzLmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvb21pc3Npb24vb21pc3Npb24uanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9vbWlzc2lvbi9jbG9zaW5nLmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvb21pc3Npb24vb3BlbmluZy5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL2hhbmRsZS9lbGVtZW50LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaGFuZGxlL3RleHQuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9oYW5kbGUvcmF3LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaGFuZGxlL3Jvb3QuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9oYW5kbGUvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9pbmRleC5qcyIsICJzcmMvUGFyc2luZy9JbmxpbmVDb2RlUGFyc2luZy50cyIsICJzcmMvQ29kZWJsb2NrRGVjb3JhdGluZy50cyIsICJzcmMvU3ludGF4SGlnaGxpZ2h0aW5nLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJQaWNrclwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJQaWNrclwiXSA9IGZhY3RvcnkoKTtcbn0pKHNlbGYsICgpID0+IHtcbnJldHVybiAiLCAiLy8gVGhlIHJlcXVpcmUgc2NvcGVcbnZhciBfX3dlYnBhY2tfcmVxdWlyZV9fID0ge307XG5cbiIsICIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCAiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsICIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCAiLyogZXNsaW50LWRpc2FibGUgcHJlZmVyLXJlc3QtcGFyYW1zICovXG5mdW5jdGlvbiBldmVudExpc3RlbmVyKG1ldGhvZCwgZWxlbWVudHMsIGV2ZW50cywgZm4sIG9wdGlvbnMgPSB7fSkge1xuXG4gICAgLy8gTm9ybWFsaXplIGFycmF5XG4gICAgaWYgKGVsZW1lbnRzIGluc3RhbmNlb2YgSFRNTENvbGxlY3Rpb24gfHwgZWxlbWVudHMgaW5zdGFuY2VvZiBOb2RlTGlzdCkge1xuICAgICAgICBlbGVtZW50cyA9IEFycmF5LmZyb20oZWxlbWVudHMpO1xuICAgIH0gZWxzZSBpZiAoIUFycmF5LmlzQXJyYXkoZWxlbWVudHMpKSB7XG4gICAgICAgIGVsZW1lbnRzID0gW2VsZW1lbnRzXTtcbiAgICB9XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZXZlbnRzKSkge1xuICAgICAgICBldmVudHMgPSBbZXZlbnRzXTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGVsIG9mIGVsZW1lbnRzKSB7XG4gICAgICAgIGZvciAoY29uc3QgZXYgb2YgZXZlbnRzKSB7XG4gICAgICAgICAgICBlbFttZXRob2RdKGV2LCBmbiwge2NhcHR1cmU6IGZhbHNlLCAuLi5vcHRpb25zfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcbn1cblxuLyoqXG4gKiBBZGQgZXZlbnQocykgdG8gZWxlbWVudChzKS5cbiAqIEBwYXJhbSBlbGVtZW50cyBET00tRWxlbWVudHNcbiAqIEBwYXJhbSBldmVudHMgRXZlbnQgbmFtZXNcbiAqIEBwYXJhbSBmbiBDYWxsYmFja1xuICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uYWwgb3B0aW9uc1xuICogQHJldHVybiBBcnJheSBwYXNzZWQgYXJndW1lbnRzXG4gKi9cbmV4cG9ydCBjb25zdCBvbiA9IGV2ZW50TGlzdGVuZXIuYmluZChudWxsLCAnYWRkRXZlbnRMaXN0ZW5lcicpO1xuXG4vKipcbiAqIFJlbW92ZSBldmVudChzKSBmcm9tIGVsZW1lbnQocykuXG4gKiBAcGFyYW0gZWxlbWVudHMgRE9NLUVsZW1lbnRzXG4gKiBAcGFyYW0gZXZlbnRzIEV2ZW50IG5hbWVzXG4gKiBAcGFyYW0gZm4gQ2FsbGJhY2tcbiAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbmFsIG9wdGlvbnNcbiAqIEByZXR1cm4gQXJyYXkgcGFzc2VkIGFyZ3VtZW50c1xuICovXG5leHBvcnQgY29uc3Qgb2ZmID0gZXZlbnRMaXN0ZW5lci5iaW5kKG51bGwsICdyZW1vdmVFdmVudExpc3RlbmVyJyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBET00tRWxlbWVudCBvdXQgb2YgYSBzdHJpbmcgKFNpbmdsZSBlbGVtZW50KS5cbiAqIEBwYXJhbSBodG1sIEhUTUwgcmVwcmVzZW50aW5nIGEgc2luZ2xlIGVsZW1lbnRcbiAqIEByZXR1cm5zIHtFbGVtZW50IHwgbnVsbH0gVGhlIGVsZW1lbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFbGVtZW50RnJvbVN0cmluZyhodG1sKSB7XG4gICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgZGl2LmlubmVySFRNTCA9IGh0bWwudHJpbSgpO1xuICAgIHJldHVybiBkaXYuZmlyc3RFbGVtZW50Q2hpbGQ7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBodG1sIGVsZW1lbnQsIGV2ZXJ5IGVsZW1lbnQgd2hpY2ggaGFzXG4gKiBhICc6cmVmJyBhdHRyaWJ1dGUgd2lsbCBiZSBzYXZlZCBpbiBhIG9iamVjdCAod2hpY2ggd2lsbCBiZSByZXR1cm5lZClcbiAqIHdoZXJlIHRoZSB2YWx1ZSBvZiAnOnJlZicgaXMgdGhlIG9iamVjdC1rZXkgYW5kIHRoZSB2YWx1ZSB0aGUgSFRNTEVsZW1lbnQuXG4gKlxuICogSXQncyBwb3NzaWJsZSB0byBjcmVhdGUgYSBoaWVyYXJjaHkgaWYgeW91IGFkZCBhICc6b2JqJyBhdHRyaWJ1dGUuIEV2ZXJ5XG4gKiBzaWJsaW5nIHdpbGwgYmUgYWRkZWQgdG8gdGhlIG9iamVjdCB3aGljaCB3aWxsIGdldCB0aGUgbmFtZSBmcm9tIHRoZSAnZGF0YS1jb24nIGF0dHJpYnV0ZS5cbiAqXG4gKiBJZiB5b3Ugd2FudCB0byBjcmVhdGUgYW4gQXJyYXkgb3V0IG9mIG11bHRpcGxlIGVsZW1lbnRzLCB5b3UgY2FuIHVzZSB0aGUgJzphcnInIGF0dHJpYnV0ZSxcbiAqIHRoZSB2YWx1ZSBkZWZpbmVzIHRoZSBrZXkgYW5kIGFsbCBlbGVtZW50cywgd2hpY2ggaGFzIHRoZSBzYW1lIHBhcmVudCBhbmQgdGhlIHNhbWUgJ2RhdGEtYXJyJyBhdHRyaWJ1dGUsXG4gKiB3b3VsZCBiZSBhZGRlZCB0byBpdC5cbiAqXG4gKiBAcGFyYW0gc3RyIC0gVGhlIEhUTUwgU3RyaW5nLlxuICovXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGcm9tVGVtcGxhdGUoc3RyKSB7XG5cbiAgICAvLyBSZW1vdmVzIGFuIGF0dHJpYnV0ZSBmcm9tIGEgSFRNTEVsZW1lbnQgYW5kIHJldHVybnMgdGhlIHZhbHVlLlxuICAgIGNvbnN0IHJlbW92ZUF0dHJpYnV0ZSA9IChlbCwgbmFtZSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGVsLmdldEF0dHJpYnV0ZShuYW1lKTtcbiAgICAgICAgZWwucmVtb3ZlQXR0cmlidXRlKG5hbWUpO1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfTtcblxuICAgIC8vIFJlY3Vyc2l2ZSBmdW5jdGlvbiB0byByZXNvbHZlIHRlbXBsYXRlXG4gICAgY29uc3QgcmVzb2x2ZSA9IChlbGVtZW50LCBiYXNlID0ge30pID0+IHtcblxuICAgICAgICAvLyBDaGVjayBrZXkgYW5kIGNvbnRhaW5lciBhdHRyaWJ1dGVcbiAgICAgICAgY29uc3QgY29uID0gcmVtb3ZlQXR0cmlidXRlKGVsZW1lbnQsICc6b2JqJyk7XG4gICAgICAgIGNvbnN0IGtleSA9IHJlbW92ZUF0dHJpYnV0ZShlbGVtZW50LCAnOnJlZicpO1xuICAgICAgICBjb25zdCBzdWJ0cmVlID0gY29uID8gKGJhc2VbY29uXSA9IHt9KSA6IGJhc2U7XG5cbiAgICAgICAgLy8gQ2hlY2sgYW5kIHNhdmUgZWxlbWVudFxuICAgICAgICBrZXkgJiYgKGJhc2Vba2V5XSA9IGVsZW1lbnQpO1xuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIEFycmF5LmZyb20oZWxlbWVudC5jaGlsZHJlbikpIHtcbiAgICAgICAgICAgIGNvbnN0IGFyciA9IHJlbW92ZUF0dHJpYnV0ZShjaGlsZCwgJzphcnInKTtcbiAgICAgICAgICAgIGNvbnN0IHN1YiA9IHJlc29sdmUoY2hpbGQsIGFyciA/IHt9IDogc3VidHJlZSk7XG5cbiAgICAgICAgICAgIGlmIChhcnIpIHtcblxuICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZXJlIGlzIGFscmVhZHkgYW4gYXJyYXkgYW5kIGFkZCBlbGVtZW50XG4gICAgICAgICAgICAgICAgKHN1YnRyZWVbYXJyXSB8fCAoc3VidHJlZVthcnJdID0gW10pKVxuICAgICAgICAgICAgICAgICAgICAucHVzaChPYmplY3Qua2V5cyhzdWIpLmxlbmd0aCA/IHN1YiA6IGNoaWxkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBiYXNlO1xuICAgIH07XG5cbiAgICByZXR1cm4gcmVzb2x2ZShjcmVhdGVFbGVtZW50RnJvbVN0cmluZyhzdHIpKTtcbn1cblxuLyoqXG4gKiBQb2x5ZmlsbCBmb3Igc2FmYXJpICYgZmlyZWZveCBmb3IgdGhlIGV2ZW50UGF0aCBldmVudCBwcm9wZXJ0eS5cbiAqIEBwYXJhbSBldnQgVGhlIGV2ZW50IG9iamVjdC5cbiAqIEByZXR1cm4gW1N0cmluZ10gZXZlbnQgcGF0aC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV2ZW50UGF0aChldnQpIHtcbiAgICBsZXQgcGF0aCA9IGV2dC5wYXRoIHx8IChldnQuY29tcG9zZWRQYXRoICYmIGV2dC5jb21wb3NlZFBhdGgoKSk7XG4gICAgaWYgKHBhdGgpIHtcbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfVxuXG4gICAgbGV0IGVsID0gZXZ0LnRhcmdldC5wYXJlbnRFbGVtZW50O1xuICAgIHBhdGggPSBbZXZ0LnRhcmdldCwgZWxdO1xuICAgIHdoaWxlIChlbCA9IGVsLnBhcmVudEVsZW1lbnQpIHtcbiAgICAgICAgcGF0aC5wdXNoKGVsKTtcbiAgICB9XG5cbiAgICBwYXRoLnB1c2goZG9jdW1lbnQsIHdpbmRvdyk7XG4gICAgcmV0dXJuIHBhdGg7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgYSBIVE1MRWxlbWVudCBieSBxdWVyeS5cbiAqIEBwYXJhbSB2YWxcbiAqIEByZXR1cm5zIHtudWxsfERvY3VtZW50fEVsZW1lbnR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlRWxlbWVudCh2YWwpIHtcbiAgICBpZiAodmFsIGluc3RhbmNlb2YgRWxlbWVudCkge1xuICAgICAgICByZXR1cm4gdmFsO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHZhbC5zcGxpdCgvPj4vZykucmVkdWNlKChwdiwgY3YsIGNpLCBhKSA9PiB7XG4gICAgICAgICAgICBwdiA9IHB2LnF1ZXJ5U2VsZWN0b3IoY3YpO1xuICAgICAgICAgICAgcmV0dXJuIGNpIDwgYS5sZW5ndGggLSAxID8gcHYuc2hhZG93Um9vdCA6IHB2O1xuICAgICAgICB9LCBkb2N1bWVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogQ3JlYXRlcyB0aGUgYWJpbGl0eSB0byBjaGFuZ2UgbnVtYmVycyBpbiBhbiBpbnB1dCBmaWVsZCB3aXRoIHRoZSBzY3JvbGwtd2hlZWwuXG4gKiBAcGFyYW0gZWxcbiAqIEBwYXJhbSBtYXBwZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkanVzdGFibGVJbnB1dE51bWJlcnMoZWwsIG1hcHBlciA9IHYgPT4gdikge1xuXG4gICAgZnVuY3Rpb24gaGFuZGxlU2Nyb2xsKGUpIHtcbiAgICAgICAgY29uc3QgaW5jID0gKFswLjAwMSwgMC4wMSwgMC4xXSlbTnVtYmVyKGUuc2hpZnRLZXkgfHwgZS5jdHJsS2V5ICogMildICogKGUuZGVsdGFZIDwgMCA/IDEgOiAtMSk7XG5cbiAgICAgICAgbGV0IGluZGV4ID0gMDtcbiAgICAgICAgbGV0IG9mZiA9IGVsLnNlbGVjdGlvblN0YXJ0O1xuICAgICAgICBlbC52YWx1ZSA9IGVsLnZhbHVlLnJlcGxhY2UoL1tcXGQuXSsvZywgKHYsIGkpID0+IHtcblxuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgbnVtYmVyIGlzIGluIGN1cnNvciByYW5nZSBhbmQgaW5jcmVhc2UgaXRcbiAgICAgICAgICAgIGlmIChpIDw9IG9mZiAmJiBpICsgdi5sZW5ndGggPj0gb2ZmKSB7XG4gICAgICAgICAgICAgICAgb2ZmID0gaTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbWFwcGVyKE51bWJlcih2KSwgaW5jLCBpbmRleCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZWwuZm9jdXMoKTtcbiAgICAgICAgZWwuc2V0U2VsZWN0aW9uUmFuZ2Uob2ZmLCBvZmYpO1xuXG4gICAgICAgIC8vIFByZXZlbnQgZGVmYXVsdCBhbmQgdHJpZ2dlciBpbnB1dCBldmVudFxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGVsLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdpbnB1dCcpKTtcbiAgICB9XG5cbiAgICAvLyBCaW5kIGV2ZW50c1xuICAgIG9uKGVsLCAnZm9jdXMnLCAoKSA9PiBvbih3aW5kb3csICd3aGVlbCcsIGhhbmRsZVNjcm9sbCwge3Bhc3NpdmU6IGZhbHNlfSkpO1xuICAgIG9uKGVsLCAnYmx1cicsICgpID0+IG9mZih3aW5kb3csICd3aGVlbCcsIGhhbmRsZVNjcm9sbCkpO1xufVxuIiwgIi8vIFNob3J0aGFuZHNcbmNvbnN0IHttaW4sIG1heCwgZmxvb3IsIHJvdW5kfSA9IE1hdGg7XG5cbi8qKlxuICogVHJpZXMgdG8gY29udmVydCBhIGNvbG9yIG5hbWUgdG8gcmdiL2EgaGV4IHJlcHJlc2VudGF0aW9uXG4gKiBAcGFyYW0gbmFtZVxuICogQHJldHVybnMge3N0cmluZyB8IENhbnZhc0dyYWRpZW50IHwgQ2FudmFzUGF0dGVybn1cbiAqL1xuZnVuY3Rpb24gc3RhbmRhcmRpemVDb2xvcihuYW1lKSB7XG5cbiAgICAvLyBTaW5jZSBpbnZhbGlkIGNvbG9yJ3Mgd2lsbCBiZSBwYXJzZWQgYXMgYmxhY2ssIGZpbHRlciB0aGVtIG91dFxuICAgIGlmIChuYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdibGFjaycpIHtcbiAgICAgICAgcmV0dXJuICcjMDAwJztcbiAgICB9XG5cbiAgICBjb25zdCBjdHggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKS5nZXRDb250ZXh0KCcyZCcpO1xuICAgIGN0eC5maWxsU3R5bGUgPSBuYW1lO1xuICAgIHJldHVybiBjdHguZmlsbFN0eWxlID09PSAnIzAwMCcgPyBudWxsIDogY3R4LmZpbGxTdHlsZTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IEhTViBzcGVjdHJ1bSB0byBSR0IuXG4gKiBAcGFyYW0gaCBIdWVcbiAqIEBwYXJhbSBzIFNhdHVyYXRpb25cbiAqIEBwYXJhbSB2IFZhbHVlXG4gKiBAcmV0dXJucyB7bnVtYmVyW119IEFycmF5IHdpdGggcmdiIHZhbHVlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhzdlRvUmdiKGgsIHMsIHYpIHtcbiAgICBoID0gKGggLyAzNjApICogNjtcbiAgICBzIC89IDEwMDtcbiAgICB2IC89IDEwMDtcblxuICAgIGNvbnN0IGkgPSBmbG9vcihoKTtcblxuICAgIGNvbnN0IGYgPSBoIC0gaTtcbiAgICBjb25zdCBwID0gdiAqICgxIC0gcyk7XG4gICAgY29uc3QgcSA9IHYgKiAoMSAtIGYgKiBzKTtcbiAgICBjb25zdCB0ID0gdiAqICgxIC0gKDEgLSBmKSAqIHMpO1xuXG4gICAgY29uc3QgbW9kID0gaSAlIDY7XG4gICAgY29uc3QgciA9IFt2LCBxLCBwLCBwLCB0LCB2XVttb2RdO1xuICAgIGNvbnN0IGcgPSBbdCwgdiwgdiwgcSwgcCwgcF1bbW9kXTtcbiAgICBjb25zdCBiID0gW3AsIHAsIHQsIHYsIHYsIHFdW21vZF07XG5cbiAgICByZXR1cm4gW1xuICAgICAgICByICogMjU1LFxuICAgICAgICBnICogMjU1LFxuICAgICAgICBiICogMjU1XG4gICAgXTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IEhTViBzcGVjdHJ1bSB0byBIZXguXG4gKiBAcGFyYW0gaCBIdWVcbiAqIEBwYXJhbSBzIFNhdHVyYXRpb25cbiAqIEBwYXJhbSB2IFZhbHVlXG4gKiBAcmV0dXJucyB7c3RyaW5nW119IEhleCB2YWx1ZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhzdlRvSGV4KGgsIHMsIHYpIHtcbiAgICByZXR1cm4gaHN2VG9SZ2IoaCwgcywgdikubWFwKHYgPT5cbiAgICAgICAgcm91bmQodikudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsICcwJylcbiAgICApO1xufVxuXG4vKipcbiAqIENvbnZlcnQgSFNWIHNwZWN0cnVtIHRvIENNWUsuXG4gKiBAcGFyYW0gaCBIdWVcbiAqIEBwYXJhbSBzIFNhdHVyYXRpb25cbiAqIEBwYXJhbSB2IFZhbHVlXG4gKiBAcmV0dXJucyB7bnVtYmVyW119IENNWUsgdmFsdWVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoc3ZUb0NteWsoaCwgcywgdikge1xuICAgIGNvbnN0IHJnYiA9IGhzdlRvUmdiKGgsIHMsIHYpO1xuICAgIGNvbnN0IHIgPSByZ2JbMF0gLyAyNTU7XG4gICAgY29uc3QgZyA9IHJnYlsxXSAvIDI1NTtcbiAgICBjb25zdCBiID0gcmdiWzJdIC8gMjU1O1xuXG4gICAgY29uc3QgayA9IG1pbigxIC0gciwgMSAtIGcsIDEgLSBiKTtcbiAgICBjb25zdCBjID0gayA9PT0gMSA/IDAgOiAoMSAtIHIgLSBrKSAvICgxIC0gayk7XG4gICAgY29uc3QgbSA9IGsgPT09IDEgPyAwIDogKDEgLSBnIC0gaykgLyAoMSAtIGspO1xuICAgIGNvbnN0IHkgPSBrID09PSAxID8gMCA6ICgxIC0gYiAtIGspIC8gKDEgLSBrKTtcblxuICAgIHJldHVybiBbXG4gICAgICAgIGMgKiAxMDAsXG4gICAgICAgIG0gKiAxMDAsXG4gICAgICAgIHkgKiAxMDAsXG4gICAgICAgIGsgKiAxMDBcbiAgICBdO1xufVxuXG4vKipcbiAqIENvbnZlcnQgSFNWIHNwZWN0cnVtIHRvIEhTTC5cbiAqIEBwYXJhbSBoIEh1ZVxuICogQHBhcmFtIHMgU2F0dXJhdGlvblxuICogQHBhcmFtIHYgVmFsdWVcbiAqIEByZXR1cm5zIHtudW1iZXJbXX0gSFNMIHZhbHVlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gaHN2VG9Ic2woaCwgcywgdikge1xuICAgIHMgLz0gMTAwO1xuICAgIHYgLz0gMTAwO1xuXG4gICAgY29uc3QgbCA9ICgyIC0gcykgKiB2IC8gMjtcblxuICAgIGlmIChsICE9PSAwKSB7XG4gICAgICAgIGlmIChsID09PSAxKSB7XG4gICAgICAgICAgICBzID0gMDtcbiAgICAgICAgfSBlbHNlIGlmIChsIDwgMC41KSB7XG4gICAgICAgICAgICBzID0gcyAqIHYgLyAobCAqIDIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcyA9IHMgKiB2IC8gKDIgLSBsICogMik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gW1xuICAgICAgICBoLFxuICAgICAgICBzICogMTAwLFxuICAgICAgICBsICogMTAwXG4gICAgXTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IFJHQiB0byBIU1YuXG4gKiBAcGFyYW0gciBSZWRcbiAqIEBwYXJhbSBnIEdyZWVuXG4gKiBAcGFyYW0gYiBCbHVlXG4gKiBAcmV0dXJuIHtudW1iZXJbXX0gSFNWIHZhbHVlcy5cbiAqL1xuZnVuY3Rpb24gcmdiVG9Ic3YociwgZywgYikge1xuICAgIHIgLz0gMjU1O1xuICAgIGcgLz0gMjU1O1xuICAgIGIgLz0gMjU1O1xuXG4gICAgY29uc3QgbWluVmFsID0gbWluKHIsIGcsIGIpO1xuICAgIGNvbnN0IG1heFZhbCA9IG1heChyLCBnLCBiKTtcbiAgICBjb25zdCBkZWx0YSA9IG1heFZhbCAtIG1pblZhbDtcblxuICAgIGxldCBoLCBzO1xuICAgIGNvbnN0IHYgPSBtYXhWYWw7XG4gICAgaWYgKGRlbHRhID09PSAwKSB7XG4gICAgICAgIGggPSBzID0gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgICBzID0gZGVsdGEgLyBtYXhWYWw7XG4gICAgICAgIGNvbnN0IGRyID0gKCgobWF4VmFsIC0gcikgLyA2KSArIChkZWx0YSAvIDIpKSAvIGRlbHRhO1xuICAgICAgICBjb25zdCBkZyA9ICgoKG1heFZhbCAtIGcpIC8gNikgKyAoZGVsdGEgLyAyKSkgLyBkZWx0YTtcbiAgICAgICAgY29uc3QgZGIgPSAoKChtYXhWYWwgLSBiKSAvIDYpICsgKGRlbHRhIC8gMikpIC8gZGVsdGE7XG5cbiAgICAgICAgaWYgKHIgPT09IG1heFZhbCkge1xuICAgICAgICAgICAgaCA9IGRiIC0gZGc7XG4gICAgICAgIH0gZWxzZSBpZiAoZyA9PT0gbWF4VmFsKSB7XG4gICAgICAgICAgICBoID0gKDEgLyAzKSArIGRyIC0gZGI7XG4gICAgICAgIH0gZWxzZSBpZiAoYiA9PT0gbWF4VmFsKSB7XG4gICAgICAgICAgICBoID0gKDIgLyAzKSArIGRnIC0gZHI7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaCA8IDApIHtcbiAgICAgICAgICAgIGggKz0gMTtcbiAgICAgICAgfSBlbHNlIGlmIChoID4gMSkge1xuICAgICAgICAgICAgaCAtPSAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIFtcbiAgICAgICAgaCAqIDM2MCxcbiAgICAgICAgcyAqIDEwMCxcbiAgICAgICAgdiAqIDEwMFxuICAgIF07XG59XG5cbi8qKlxuICogQ29udmVydCBDTVlLIHRvIEhTVi5cbiAqIEBwYXJhbSBjIEN5YW5cbiAqIEBwYXJhbSBtIE1hZ2VudGFcbiAqIEBwYXJhbSB5IFllbGxvd1xuICogQHBhcmFtIGsgS2V5IChCbGFjaylcbiAqIEByZXR1cm4ge251bWJlcltdfSBIU1YgdmFsdWVzLlxuICovXG5mdW5jdGlvbiBjbXlrVG9Ic3YoYywgbSwgeSwgaykge1xuICAgIGMgLz0gMTAwO1xuICAgIG0gLz0gMTAwO1xuICAgIHkgLz0gMTAwO1xuICAgIGsgLz0gMTAwO1xuXG4gICAgY29uc3QgciA9ICgxIC0gbWluKDEsIGMgKiAoMSAtIGspICsgaykpICogMjU1O1xuICAgIGNvbnN0IGcgPSAoMSAtIG1pbigxLCBtICogKDEgLSBrKSArIGspKSAqIDI1NTtcbiAgICBjb25zdCBiID0gKDEgLSBtaW4oMSwgeSAqICgxIC0gaykgKyBrKSkgKiAyNTU7XG5cbiAgICByZXR1cm4gWy4uLnJnYlRvSHN2KHIsIGcsIGIpXTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IEhTTCB0byBIU1YuXG4gKiBAcGFyYW0gaCBIdWVcbiAqIEBwYXJhbSBzIFNhdHVyYXRpb25cbiAqIEBwYXJhbSBsIExpZ2h0bmVzc1xuICogQHJldHVybiB7bnVtYmVyW119IEhTViB2YWx1ZXMuXG4gKi9cbmZ1bmN0aW9uIGhzbFRvSHN2KGgsIHMsIGwpIHtcbiAgICBzIC89IDEwMDtcbiAgICBsIC89IDEwMDtcbiAgICBzICo9IGwgPCAwLjUgPyBsIDogMSAtIGw7XG5cbiAgICBjb25zdCBucyA9ICgyICogcyAvIChsICsgcykpICogMTAwO1xuICAgIGNvbnN0IHYgPSAobCArIHMpICogMTAwO1xuICAgIHJldHVybiBbaCwgaXNOYU4obnMpID8gMCA6IG5zLCB2XTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IEhFWCB0byBIU1YuXG4gKiBAcGFyYW0gaGV4IEhleGFkZWNpbWFsIHN0cmluZyBvZiByZ2IgY29sb3JzLCBjYW4gaGF2ZSBsZW5ndGggMyBvciA2LlxuICogQHJldHVybiB7bnVtYmVyW119IEhTViB2YWx1ZXMuXG4gKi9cbmZ1bmN0aW9uIGhleFRvSHN2KGhleCkge1xuICAgIHJldHVybiByZ2JUb0hzdiguLi5oZXgubWF0Y2goLy57Mn0vZykubWFwKHYgPT4gcGFyc2VJbnQodiwgMTYpKSk7XG59XG5cbi8qKlxuICogVHJ5J3MgdG8gcGFyc2UgYSBzdHJpbmcgd2hpY2ggcmVwcmVzZW50cyBhIGNvbG9yIHRvIGEgSFNWIGFycmF5LlxuICogQ3VycmVudCBzdXBwb3J0ZWQgdHlwZXMgYXJlIGNteWssIHJnYmEsIGhzbGEgYW5kIGhleGFkZWNpbWFsLlxuICogQHBhcmFtIHN0clxuICogQHJldHVybiB7Kn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlVG9IU1ZBKHN0cikge1xuXG4gICAgLy8gQ2hlY2sgaWYgc3RyaW5nIGlzIGEgY29sb3ItbmFtZVxuICAgIHN0ciA9IHN0ci5tYXRjaCgvXlthLXpBLVpdKyQvKSA/IHN0YW5kYXJkaXplQ29sb3Ioc3RyKSA6IHN0cjtcblxuICAgIC8vIFJlZ3VsYXIgZXhwcmVzc2lvbnMgdG8gbWF0Y2ggZGlmZmVyZW50IHR5cGVzIG9mIGNvbG9yIHJlcHJlc2VudGlvblxuICAgIGNvbnN0IHJlZ2V4ID0ge1xuICAgICAgICBjbXlrOiAvXmNteWtcXEQrKFtcXGQuXSspXFxEKyhbXFxkLl0rKVxcRCsoW1xcZC5dKylcXEQrKFtcXGQuXSspL2ksXG4gICAgICAgIHJnYmE6IC9ecmdiYT9cXEQrKFtcXGQuXSspKCU/KVxcRCsoW1xcZC5dKykoJT8pXFxEKyhbXFxkLl0rKSglPylcXEQqPygoW1xcZC5dKykoJT8pfCQpL2ksXG4gICAgICAgIGhzbGE6IC9eaHNsYT9cXEQrKFtcXGQuXSspXFxEKyhbXFxkLl0rKVxcRCsoW1xcZC5dKylcXEQqPygoW1xcZC5dKykoJT8pfCQpL2ksXG4gICAgICAgIGhzdmE6IC9eaHN2YT9cXEQrKFtcXGQuXSspXFxEKyhbXFxkLl0rKVxcRCsoW1xcZC5dKylcXEQqPygoW1xcZC5dKykoJT8pfCQpL2ksXG4gICAgICAgIGhleGE6IC9eIz8oKFtcXGRBLUZhLWZdezMsNH0pfChbXFxkQS1GYS1mXXs2fSl8KFtcXGRBLUZhLWZdezh9KSkkL2lcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogVGFrZXMgYW4gQXJyYXkgb2YgYW55IHR5cGUsIGNvbnZlcnQgc3RyaW5ncyB3aGljaCByZXByZXNlbnRzXG4gICAgICogYSBudW1iZXIgdG8gYSBudW1iZXIgYW4gYW55dGhpbmcgZWxzZSB0byB1bmRlZmluZWQuXG4gICAgICogQHBhcmFtIGFycmF5XG4gICAgICogQHJldHVybiB7Kn1cbiAgICAgKi9cbiAgICBjb25zdCBudW1hcml6ZSA9IGFycmF5ID0+IGFycmF5Lm1hcCh2ID0+IC9eKHxcXGQrKVxcLlxcZCt8XFxkKyQvLnRlc3QodikgPyBOdW1iZXIodikgOiB1bmRlZmluZWQpO1xuXG4gICAgbGV0IG1hdGNoO1xuICAgIGludmFsaWQ6IGZvciAoY29uc3QgdHlwZSBpbiByZWdleCkge1xuXG4gICAgICAgIC8vIENoZWNrIGlmIGN1cnJlbnQgc2NoZW1lIHBhc3NlZFxuICAgICAgICBpZiAoIShtYXRjaCA9IHJlZ2V4W3R5cGVdLmV4ZWMoc3RyKSkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVHJ5IHRvIGNvbnZlcnRcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdjbXlrJzoge1xuICAgICAgICAgICAgICAgIGNvbnN0IFssIGMsIG0sIHksIGtdID0gbnVtYXJpemUobWF0Y2gpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGMgPiAxMDAgfHwgbSA+IDEwMCB8fCB5ID4gMTAwIHx8IGsgPiAxMDApIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWsgaW52YWxpZDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlczogY215a1RvSHN2KGMsIG0sIHksIGspLCB0eXBlfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ3JnYmEnOiB7XG4gICAgICAgICAgICAgICAgbGV0IFssIHIsICwgZywgLCBiLCAsICwgYV0gPSBudW1hcml6ZShtYXRjaCk7XG5cbiAgICAgICAgICAgICAgICByID0gbWF0Y2hbMl0gPT09ICclJyA/IChyIC8gMTAwKSAqIDI1NSA6IHI7XG4gICAgICAgICAgICAgICAgZyA9IG1hdGNoWzRdID09PSAnJScgPyAoZyAvIDEwMCkgKiAyNTUgOiBnO1xuICAgICAgICAgICAgICAgIGIgPSBtYXRjaFs2XSA9PT0gJyUnID8gKGIgLyAxMDApICogMjU1IDogYjtcbiAgICAgICAgICAgICAgICBhID0gbWF0Y2hbOV0gPT09ICclJyA/IChhIC8gMTAwKSA6IGE7XG5cbiAgICAgICAgICAgICAgICBpZiAociA+IDI1NSB8fCBnID4gMjU1IHx8IGIgPiAyNTUgfHwgYSA8IDAgfHwgYSA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWsgaW52YWxpZDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlczogWy4uLnJnYlRvSHN2KHIsIGcsIGIpLCBhXSwgYSwgdHlwZX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdoZXhhJzoge1xuICAgICAgICAgICAgICAgIGxldCBbLCBoZXhdID0gbWF0Y2g7XG5cbiAgICAgICAgICAgICAgICBpZiAoaGV4Lmxlbmd0aCA9PT0gNCB8fCBoZXgubGVuZ3RoID09PSAzKSB7XG4gICAgICAgICAgICAgICAgICAgIGhleCA9IGhleC5zcGxpdCgnJykubWFwKHYgPT4gdiArIHYpLmpvaW4oJycpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IHJhdyA9IGhleC5zdWJzdHJpbmcoMCwgNik7XG4gICAgICAgICAgICAgICAgbGV0IGEgPSBoZXguc3Vic3RyaW5nKDYpO1xuXG4gICAgICAgICAgICAgICAgLy8gQ29udmVydCAwIC0gMjU1IHRvIDAgLSAxIGZvciBvcGFjaXR5XG4gICAgICAgICAgICAgICAgYSA9IGEgPyAocGFyc2VJbnQoYSwgMTYpIC8gMjU1KSA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWVzOiBbLi4uaGV4VG9Ic3YocmF3KSwgYV0sIGEsIHR5cGV9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnaHNsYSc6IHtcbiAgICAgICAgICAgICAgICBsZXQgWywgaCwgcywgbCwgLCBhXSA9IG51bWFyaXplKG1hdGNoKTtcbiAgICAgICAgICAgICAgICBhID0gbWF0Y2hbNl0gPT09ICclJyA/IChhIC8gMTAwKSA6IGE7XG5cbiAgICAgICAgICAgICAgICBpZiAoaCA+IDM2MCB8fCBzID4gMTAwIHx8IGwgPiAxMDAgfHwgYSA8IDAgfHwgYSA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWsgaW52YWxpZDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlczogWy4uLmhzbFRvSHN2KGgsIHMsIGwpLCBhXSwgYSwgdHlwZX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdoc3ZhJzoge1xuICAgICAgICAgICAgICAgIGxldCBbLCBoLCBzLCB2LCAsIGFdID0gbnVtYXJpemUobWF0Y2gpO1xuICAgICAgICAgICAgICAgIGEgPSBtYXRjaFs2XSA9PT0gJyUnID8gKGEgLyAxMDApIDogYTtcblxuICAgICAgICAgICAgICAgIGlmIChoID4gMzYwIHx8IHMgPiAxMDAgfHwgdiA+IDEwMCB8fCBhIDwgMCB8fCBhID4gMSkge1xuICAgICAgICAgICAgICAgICAgICBicmVhayBpbnZhbGlkO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWVzOiBbaCwgcywgdiwgYV0sIGEsIHR5cGV9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHt2YWx1ZXM6IG51bGwsIHR5cGU6IG51bGx9O1xufVxuIiwgImltcG9ydCB7aHN2VG9DbXlrLCBoc3ZUb0hleCwgaHN2VG9Ic2wsIGhzdlRvUmdifSBmcm9tICcuL2NvbG9yJztcblxuLyoqXG4gKiBTaW1wbGUgY2xhc3Mgd2hpY2ggaG9sZHMgdGhlIHByb3BlcnRpZXNcbiAqIG9mIHRoZSBjb2xvciByZXByZXNlbnRpb24gbW9kZWwgaHNsYSAoaHVlIHNhdHVyYXRpb24gbGlnaHRuZXNzIGFscGhhKVxuICovXG5leHBvcnQgZnVuY3Rpb24gSFNWYUNvbG9yKGggPSAwLCBzID0gMCwgdiA9IDAsIGEgPSAxKSB7XG4gICAgY29uc3QgbWFwcGVyID0gKG9yaWdpbmFsLCBuZXh0KSA9PiAocHJlY2lzaW9uID0gLTEpID0+IHtcbiAgICAgICAgcmV0dXJuIG5leHQofnByZWNpc2lvbiA/IG9yaWdpbmFsLm1hcCh2ID0+IE51bWJlcih2LnRvRml4ZWQocHJlY2lzaW9uKSkpIDogb3JpZ2luYWwpO1xuICAgIH07XG5cbiAgICBjb25zdCB0aGF0ID0ge1xuICAgICAgICBoLCBzLCB2LCBhLFxuXG4gICAgICAgIHRvSFNWQSgpIHtcbiAgICAgICAgICAgIGNvbnN0IGhzdmEgPSBbdGhhdC5oLCB0aGF0LnMsIHRoYXQudiwgdGhhdC5hXTtcbiAgICAgICAgICAgIGhzdmEudG9TdHJpbmcgPSBtYXBwZXIoaHN2YSwgYXJyID0+IGBoc3ZhKCR7YXJyWzBdfSwgJHthcnJbMV19JSwgJHthcnJbMl19JSwgJHt0aGF0LmF9KWApO1xuICAgICAgICAgICAgcmV0dXJuIGhzdmE7XG4gICAgICAgIH0sXG5cbiAgICAgICAgdG9IU0xBKCkge1xuICAgICAgICAgICAgY29uc3QgaHNsYSA9IFsuLi5oc3ZUb0hzbCh0aGF0LmgsIHRoYXQucywgdGhhdC52KSwgdGhhdC5hXTtcbiAgICAgICAgICAgIGhzbGEudG9TdHJpbmcgPSBtYXBwZXIoaHNsYSwgYXJyID0+IGBoc2xhKCR7YXJyWzBdfSwgJHthcnJbMV19JSwgJHthcnJbMl19JSwgJHt0aGF0LmF9KWApO1xuICAgICAgICAgICAgcmV0dXJuIGhzbGE7XG4gICAgICAgIH0sXG5cbiAgICAgICAgdG9SR0JBKCkge1xuICAgICAgICAgICAgY29uc3QgcmdiYSA9IFsuLi5oc3ZUb1JnYih0aGF0LmgsIHRoYXQucywgdGhhdC52KSwgdGhhdC5hXTtcbiAgICAgICAgICAgIHJnYmEudG9TdHJpbmcgPSBtYXBwZXIocmdiYSwgYXJyID0+IGByZ2JhKCR7YXJyWzBdfSwgJHthcnJbMV19LCAke2FyclsyXX0sICR7dGhhdC5hfSlgKTtcbiAgICAgICAgICAgIHJldHVybiByZ2JhO1xuICAgICAgICB9LFxuXG4gICAgICAgIHRvQ01ZSygpIHtcbiAgICAgICAgICAgIGNvbnN0IGNteWsgPSBoc3ZUb0NteWsodGhhdC5oLCB0aGF0LnMsIHRoYXQudik7XG4gICAgICAgICAgICBjbXlrLnRvU3RyaW5nID0gbWFwcGVyKGNteWssIGFyciA9PiBgY215aygke2FyclswXX0lLCAke2FyclsxXX0lLCAke2FyclsyXX0lLCAke2FyclszXX0lKWApO1xuICAgICAgICAgICAgcmV0dXJuIGNteWs7XG4gICAgICAgIH0sXG5cbiAgICAgICAgdG9IRVhBKCkge1xuICAgICAgICAgICAgY29uc3QgaGV4ID0gaHN2VG9IZXgodGhhdC5oLCB0aGF0LnMsIHRoYXQudik7XG5cbiAgICAgICAgICAgIC8vIENoZWNrIGlmIGFscGhhIGNoYW5uZWwgbWFrZSBzZW5zZSwgY29udmVydCBpdCB0byAyNTUgbnVtYmVyIHNwYWNlLCBjb252ZXJ0XG4gICAgICAgICAgICAvLyBUbyBoZXggYW5kIHBhZCBpdCB3aXRoIHplcm9zIGlmIG5lZWRldC5cbiAgICAgICAgICAgIGNvbnN0IGFscGhhID0gdGhhdC5hID49IDEgPyAnJyA6IE51bWJlcigodGhhdC5hICogMjU1KS50b0ZpeGVkKDApKVxuICAgICAgICAgICAgICAgIC50b1N0cmluZygxNilcbiAgICAgICAgICAgICAgICAudG9VcHBlckNhc2UoKS5wYWRTdGFydCgyLCAnMCcpO1xuXG4gICAgICAgICAgICBhbHBoYSAmJiBoZXgucHVzaChhbHBoYSk7XG4gICAgICAgICAgICBoZXgudG9TdHJpbmcgPSAoKSA9PiBgIyR7aGV4LmpvaW4oJycpLnRvVXBwZXJDYXNlKCl9YDtcbiAgICAgICAgICAgIHJldHVybiBoZXg7XG4gICAgICAgIH0sXG5cbiAgICAgICAgY2xvbmU6ICgpID0+IEhTVmFDb2xvcih0aGF0LmgsIHRoYXQucywgdGhhdC52LCB0aGF0LmEpXG4gICAgfTtcblxuICAgIHJldHVybiB0aGF0O1xufVxuIiwgImltcG9ydCAqIGFzIF8gZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xuXG5jb25zdCBjbGFtcCA9IHYgPT4gTWF0aC5tYXgoTWF0aC5taW4odiwgMSksIDApO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTW92ZWFibGUob3B0KSB7XG5cbiAgICBjb25zdCB0aGF0ID0ge1xuXG4gICAgICAgIC8vIEFzc2lnbiBkZWZhdWx0IHZhbHVlc1xuICAgICAgICBvcHRpb25zOiBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICAgIGxvY2s6IG51bGwsXG4gICAgICAgICAgICBvbmNoYW5nZTogKCkgPT4gMCxcbiAgICAgICAgICAgIG9uc3RvcDogKCkgPT4gMFxuICAgICAgICB9LCBvcHQpLFxuXG4gICAgICAgIF9rZXlib2FyZChlKSB7XG4gICAgICAgICAgICBjb25zdCB7b3B0aW9uc30gPSB0aGF0O1xuICAgICAgICAgICAgY29uc3Qge3R5cGUsIGtleX0gPSBlO1xuXG4gICAgICAgICAgICAvLyBDaGVjayB0byBzZWUgaWYgdGhlIE1vdmFibGUgaXMgZm9jdXNlZCBhbmQgdGhlbiBtb3ZlIGl0IGJhc2VkIG9uIGFycm93IGtleSBpbnB1dHNcbiAgICAgICAgICAgIC8vIEZvciBpbXByb3ZlZCBhY2Nlc3NpYmlsaXR5XG4gICAgICAgICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gb3B0aW9ucy53cmFwcGVyKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qge2xvY2t9ID0gdGhhdC5vcHRpb25zO1xuICAgICAgICAgICAgICAgIGNvbnN0IHVwID0ga2V5ID09PSAnQXJyb3dVcCc7XG4gICAgICAgICAgICAgICAgY29uc3QgcmlnaHQgPSBrZXkgPT09ICdBcnJvd1JpZ2h0JztcbiAgICAgICAgICAgICAgICBjb25zdCBkb3duID0ga2V5ID09PSAnQXJyb3dEb3duJztcbiAgICAgICAgICAgICAgICBjb25zdCBsZWZ0ID0ga2V5ID09PSAnQXJyb3dMZWZ0JztcblxuICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSAna2V5ZG93bicgJiYgKHVwIHx8IHJpZ2h0IHx8IGRvd24gfHwgbGVmdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHhtID0gMDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHltID0gMDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAobG9jayA9PT0gJ3YnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB4bSA9ICh1cCB8fCByaWdodCkgPyAxIDogLTE7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobG9jayA9PT0gJ2gnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB4bSA9ICh1cCB8fCByaWdodCkgPyAtMSA6IDE7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB5bSA9IHVwID8gLTEgOiAoZG93biA/IDEgOiAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHhtID0gbGVmdCA/IC0xIDogKHJpZ2h0ID8gMSA6IDApO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhhdC51cGRhdGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFtcCh0aGF0LmNhY2hlLnggKyAoMC4wMSAqIHhtKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFtcCh0aGF0LmNhY2hlLnkgKyAoMC4wMSAqIHltKSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5LnN0YXJ0c1dpdGgoJ0Fycm93JykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5vcHRpb25zLm9uc3RvcCgpO1xuICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIF90YXBzdGFydChldnQpIHtcbiAgICAgICAgICAgIF8ub24oZG9jdW1lbnQsIFsnbW91c2V1cCcsICd0b3VjaGVuZCcsICd0b3VjaGNhbmNlbCddLCB0aGF0Ll90YXBzdG9wKTtcbiAgICAgICAgICAgIF8ub24oZG9jdW1lbnQsIFsnbW91c2Vtb3ZlJywgJ3RvdWNobW92ZSddLCB0aGF0Ll90YXBtb3ZlKTtcblxuICAgICAgICAgICAgaWYgKGV2dC5jYW5jZWxhYmxlKSB7XG4gICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFRyaWdnZXJcbiAgICAgICAgICAgIHRoYXQuX3RhcG1vdmUoZXZ0KTtcbiAgICAgICAgfSxcblxuICAgICAgICBfdGFwbW92ZShldnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHtvcHRpb25zLCBjYWNoZX0gPSB0aGF0O1xuICAgICAgICAgICAgY29uc3Qge2xvY2ssIGVsZW1lbnQsIHdyYXBwZXJ9ID0gb3B0aW9ucztcbiAgICAgICAgICAgIGNvbnN0IGIgPSB3cmFwcGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgICAgICBsZXQgeCA9IDAsIHkgPSAwO1xuICAgICAgICAgICAgaWYgKGV2dCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvdWNoID0gZXZ0ICYmIGV2dC50b3VjaGVzICYmIGV2dC50b3VjaGVzWzBdO1xuICAgICAgICAgICAgICAgIHggPSBldnQgPyAodG91Y2ggfHwgZXZ0KS5jbGllbnRYIDogMDtcbiAgICAgICAgICAgICAgICB5ID0gZXZ0ID8gKHRvdWNoIHx8IGV2dCkuY2xpZW50WSA6IDA7XG5cbiAgICAgICAgICAgICAgICAvLyBSZXNldCB0byBib3VuZHNcbiAgICAgICAgICAgICAgICBpZiAoeCA8IGIubGVmdCkge1xuICAgICAgICAgICAgICAgICAgICB4ID0gYi5sZWZ0O1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoeCA+IGIubGVmdCArIGIud2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgeCA9IGIubGVmdCArIGIud2lkdGg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh5IDwgYi50b3ApIHtcbiAgICAgICAgICAgICAgICAgICAgeSA9IGIudG9wO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoeSA+IGIudG9wICsgYi5oZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgeSA9IGIudG9wICsgYi5oZWlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gTm9ybWFsaXplXG4gICAgICAgICAgICAgICAgeCAtPSBiLmxlZnQ7XG4gICAgICAgICAgICAgICAgeSAtPSBiLnRvcDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2FjaGUpIHtcbiAgICAgICAgICAgICAgICB4ID0gY2FjaGUueCAqIGIud2lkdGg7XG4gICAgICAgICAgICAgICAgeSA9IGNhY2hlLnkgKiBiLmhlaWdodDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGxvY2sgIT09ICdoJykge1xuICAgICAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUubGVmdCA9IGBjYWxjKCR7eCAvIGIud2lkdGggKiAxMDB9JSAtICR7ZWxlbWVudC5vZmZzZXRXaWR0aCAvIDJ9cHgpYDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGxvY2sgIT09ICd2Jykge1xuICAgICAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUudG9wID0gYGNhbGMoJHt5IC8gYi5oZWlnaHQgKiAxMDB9JSAtICR7ZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyfXB4KWA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoYXQuY2FjaGUgPSB7eDogeCAvIGIud2lkdGgsIHk6IHkgLyBiLmhlaWdodH07XG4gICAgICAgICAgICBjb25zdCBjeCA9IGNsYW1wKHggLyBiLndpZHRoKTtcbiAgICAgICAgICAgIGNvbnN0IGN5ID0gY2xhbXAoeSAvIGIuaGVpZ2h0KTtcblxuICAgICAgICAgICAgc3dpdGNoIChsb2NrKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAndic6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLm9uY2hhbmdlKGN4KTtcbiAgICAgICAgICAgICAgICBjYXNlICdoJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMub25jaGFuZ2UoY3kpO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLm9uY2hhbmdlKGN4LCBjeSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG5cbiAgICAgICAgX3RhcHN0b3AoKSB7XG4gICAgICAgICAgICB0aGF0Lm9wdGlvbnMub25zdG9wKCk7XG4gICAgICAgICAgICBfLm9mZihkb2N1bWVudCwgWydtb3VzZXVwJywgJ3RvdWNoZW5kJywgJ3RvdWNoY2FuY2VsJ10sIHRoYXQuX3RhcHN0b3ApO1xuICAgICAgICAgICAgXy5vZmYoZG9jdW1lbnQsIFsnbW91c2Vtb3ZlJywgJ3RvdWNobW92ZSddLCB0aGF0Ll90YXBtb3ZlKTtcbiAgICAgICAgfSxcblxuICAgICAgICB0cmlnZ2VyKCkge1xuICAgICAgICAgICAgdGhhdC5fdGFwbW92ZSgpO1xuICAgICAgICB9LFxuXG4gICAgICAgIHVwZGF0ZSh4ID0gMCwgeSA9IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHtsZWZ0LCB0b3AsIHdpZHRoLCBoZWlnaHR9ID0gdGhhdC5vcHRpb25zLndyYXBwZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMubG9jayA9PT0gJ2gnKSB7XG4gICAgICAgICAgICAgICAgeSA9IHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoYXQuX3RhcG1vdmUoe1xuICAgICAgICAgICAgICAgIGNsaWVudFg6IGxlZnQgKyB3aWR0aCAqIHgsXG4gICAgICAgICAgICAgICAgY2xpZW50WTogdG9wICsgaGVpZ2h0ICogeVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZGVzdHJveSgpIHtcbiAgICAgICAgICAgIGNvbnN0IHtvcHRpb25zLCBfdGFwc3RhcnQsIF9rZXlib2FyZH0gPSB0aGF0O1xuICAgICAgICAgICAgXy5vZmYoZG9jdW1lbnQsIFsna2V5ZG93bicsICdrZXl1cCddLCBfa2V5Ym9hcmQpO1xuICAgICAgICAgICAgXy5vZmYoW29wdGlvbnMud3JhcHBlciwgb3B0aW9ucy5lbGVtZW50XSwgJ21vdXNlZG93bicsIF90YXBzdGFydCk7XG4gICAgICAgICAgICBfLm9mZihbb3B0aW9ucy53cmFwcGVyLCBvcHRpb25zLmVsZW1lbnRdLCAndG91Y2hzdGFydCcsIF90YXBzdGFydCwge1xuICAgICAgICAgICAgICAgIHBhc3NpdmU6IGZhbHNlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBJbml0aWxpemVcbiAgICBjb25zdCB7b3B0aW9ucywgX3RhcHN0YXJ0LCBfa2V5Ym9hcmR9ID0gdGhhdDtcbiAgICBfLm9uKFtvcHRpb25zLndyYXBwZXIsIG9wdGlvbnMuZWxlbWVudF0sICdtb3VzZWRvd24nLCBfdGFwc3RhcnQpO1xuICAgIF8ub24oW29wdGlvbnMud3JhcHBlciwgb3B0aW9ucy5lbGVtZW50XSwgJ3RvdWNoc3RhcnQnLCBfdGFwc3RhcnQsIHtcbiAgICAgICAgcGFzc2l2ZTogZmFsc2VcbiAgICB9KTtcblxuICAgIF8ub24oZG9jdW1lbnQsIFsna2V5ZG93bicsICdrZXl1cCddLCBfa2V5Ym9hcmQpO1xuXG4gICAgcmV0dXJuIHRoYXQ7XG59XG4iLCAiaW1wb3J0ICogYXMgXyBmcm9tICcuLi91dGlscy91dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFNlbGVjdGFibGUob3B0ID0ge30pIHtcbiAgICBvcHQgPSBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgb25jaGFuZ2U6ICgpID0+IDAsXG4gICAgICAgIGNsYXNzTmFtZTogJycsXG4gICAgICAgIGVsZW1lbnRzOiBbXVxuICAgIH0sIG9wdCk7XG5cbiAgICBjb25zdCBvblRhcCA9IF8ub24ob3B0LmVsZW1lbnRzLCAnY2xpY2snLCBldnQgPT4ge1xuICAgICAgICBvcHQuZWxlbWVudHMuZm9yRWFjaChlID0+XG4gICAgICAgICAgICBlLmNsYXNzTGlzdFtldnQudGFyZ2V0ID09PSBlID8gJ2FkZCcgOiAncmVtb3ZlJ10ob3B0LmNsYXNzTmFtZSlcbiAgICAgICAgKTtcblxuICAgICAgICBvcHQub25jaGFuZ2UoZXZ0KTtcblxuICAgICAgICAvLyBGaXggZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS9TaW1vbndlcC9waWNrci9pc3N1ZXMvMjQzXG4gICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIGRlc3Ryb3k6ICgpID0+IF8ub2ZmKC4uLm9uVGFwKVxuICAgIH07XG59XG4iLCAiaW1wb3J0ICogYXMgXyBmcm9tICcuL3V0aWxzL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgaW5zdGFuY2UgPT4ge1xuXG4gICAgY29uc3Qge1xuICAgICAgICBjb21wb25lbnRzLFxuICAgICAgICB1c2VBc0J1dHRvbixcbiAgICAgICAgaW5saW5lLFxuICAgICAgICBhcHBDbGFzcyxcbiAgICAgICAgdGhlbWUsXG4gICAgICAgIGxvY2tPcGFjaXR5XG4gICAgfSA9IGluc3RhbmNlLm9wdGlvbnM7XG5cbiAgICAvLyBVdGlsc1xuICAgIGNvbnN0IGhpZGRlbiA9IGNvbiA9PiBjb24gPyAnJyA6ICdzdHlsZT1cImRpc3BsYXk6bm9uZVwiIGhpZGRlbic7XG4gICAgY29uc3QgdCA9IHN0ciA9PiBpbnN0YW5jZS5fdChzdHIpO1xuXG4gICAgY29uc3Qgcm9vdCA9IF8uY3JlYXRlRnJvbVRlbXBsYXRlKGBcbiAgICAgIDxkaXYgOnJlZj1cInJvb3RcIiBjbGFzcz1cInBpY2tyXCI+XG5cbiAgICAgICAgJHt1c2VBc0J1dHRvbiA/ICcnIDogJzxidXR0b24gdHlwZT1cImJ1dHRvblwiIDpyZWY9XCJidXR0b25cIiBjbGFzcz1cInBjci1idXR0b25cIj48L2J1dHRvbj4nfVxuXG4gICAgICAgIDxkaXYgOnJlZj1cImFwcFwiIGNsYXNzPVwicGNyLWFwcCAke2FwcENsYXNzIHx8ICcnfVwiIGRhdGEtdGhlbWU9XCIke3RoZW1lfVwiICR7aW5saW5lID8gJ3N0eWxlPVwicG9zaXRpb246IHVuc2V0XCInIDogJyd9IGFyaWEtbGFiZWw9XCIke3QoJ3VpOmRpYWxvZycsICdjb2xvciBwaWNrZXIgZGlhbG9nJyl9XCIgcm9sZT1cIndpbmRvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwY3Itc2VsZWN0aW9uXCIgJHtoaWRkZW4oY29tcG9uZW50cy5wYWxldHRlKX0+XG4gICAgICAgICAgICA8ZGl2IDpvYmo9XCJwcmV2aWV3XCIgY2xhc3M9XCJwY3ItY29sb3ItcHJldmlld1wiICR7aGlkZGVuKGNvbXBvbmVudHMucHJldmlldyl9PlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiA6cmVmPVwibGFzdENvbG9yXCIgY2xhc3M9XCJwY3ItbGFzdC1jb2xvclwiIGFyaWEtbGFiZWw9XCIke3QoJ2J0bjpsYXN0LWNvbG9yJyl9XCI+PC9idXR0b24+XG4gICAgICAgICAgICAgIDxkaXYgOnJlZj1cImN1cnJlbnRDb2xvclwiIGNsYXNzPVwicGNyLWN1cnJlbnQtY29sb3JcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IDpvYmo9XCJwYWxldHRlXCIgY2xhc3M9XCJwY3ItY29sb3ItcGFsZXR0ZVwiPlxuICAgICAgICAgICAgICA8ZGl2IDpyZWY9XCJwaWNrZXJcIiBjbGFzcz1cInBjci1waWNrZXJcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiA6cmVmPVwicGFsZXR0ZVwiIGNsYXNzPVwicGNyLXBhbGV0dGVcIiB0YWJpbmRleD1cIjBcIiBhcmlhLWxhYmVsPVwiJHt0KCdhcmlhOnBhbGV0dGUnKX1cIiByb2xlPVwibGlzdGJveFwiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgOm9iaj1cImh1ZVwiIGNsYXNzPVwicGNyLWNvbG9yLWNob29zZXJcIiAke2hpZGRlbihjb21wb25lbnRzLmh1ZSl9PlxuICAgICAgICAgICAgICA8ZGl2IDpyZWY9XCJwaWNrZXJcIiBjbGFzcz1cInBjci1waWNrZXJcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiA6cmVmPVwic2xpZGVyXCIgY2xhc3M9XCJwY3ItaHVlIHBjci1zbGlkZXJcIiB0YWJpbmRleD1cIjBcIiBhcmlhLWxhYmVsPVwiJHt0KCdhcmlhOmh1ZScpfVwiIHJvbGU9XCJzbGlkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IDpvYmo9XCJvcGFjaXR5XCIgY2xhc3M9XCJwY3ItY29sb3Itb3BhY2l0eVwiICR7aGlkZGVuKGNvbXBvbmVudHMub3BhY2l0eSl9PlxuICAgICAgICAgICAgICA8ZGl2IDpyZWY9XCJwaWNrZXJcIiBjbGFzcz1cInBjci1waWNrZXJcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiA6cmVmPVwic2xpZGVyXCIgY2xhc3M9XCJwY3Itb3BhY2l0eSBwY3Itc2xpZGVyXCIgdGFiaW5kZXg9XCIwXCIgYXJpYS1sYWJlbD1cIiR7dCgnYXJpYTpvcGFjaXR5JywgJ29wYWNpdHkgc2VsZWN0aW9uIHNsaWRlcicpfVwiIHJvbGU9XCJzbGlkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBjci1zd2F0Y2hlcyAke2NvbXBvbmVudHMucGFsZXR0ZSA/ICcnIDogJ3Bjci1sYXN0J31cIiA6cmVmPVwic3dhdGNoZXNcIj48L2Rpdj5cblxuICAgICAgICAgIDxkaXYgOm9iaj1cImludGVyYWN0aW9uXCIgY2xhc3M9XCJwY3ItaW50ZXJhY3Rpb25cIiAke2hpZGRlbihPYmplY3Qua2V5cyhjb21wb25lbnRzLmludGVyYWN0aW9uKS5sZW5ndGgpfT5cbiAgICAgICAgICAgIDxpbnB1dCA6cmVmPVwicmVzdWx0XCIgY2xhc3M9XCJwY3ItcmVzdWx0XCIgdHlwZT1cInRleHRcIiBzcGVsbGNoZWNrPVwiZmFsc2VcIiAke2hpZGRlbihjb21wb25lbnRzLmludGVyYWN0aW9uLmlucHV0KX0gYXJpYS1sYWJlbD1cIiR7dCgnYXJpYTppbnB1dCcsICdjb2xvciBpbnB1dCBmaWVsZCcpfVwiPlxuXG4gICAgICAgICAgICA8aW5wdXQgOmFycj1cIm9wdGlvbnNcIiBjbGFzcz1cInBjci10eXBlXCIgZGF0YS10eXBlPVwiSEVYQVwiIHZhbHVlPVwiJHtsb2NrT3BhY2l0eSA/ICdIRVgnIDogJ0hFWEEnfVwiIHR5cGU9XCJidXR0b25cIiAke2hpZGRlbihjb21wb25lbnRzLmludGVyYWN0aW9uLmhleCl9PlxuICAgICAgICAgICAgPGlucHV0IDphcnI9XCJvcHRpb25zXCIgY2xhc3M9XCJwY3ItdHlwZVwiIGRhdGEtdHlwZT1cIlJHQkFcIiB2YWx1ZT1cIiR7bG9ja09wYWNpdHkgPyAnUkdCJyA6ICdSR0JBJ31cIiB0eXBlPVwiYnV0dG9uXCIgJHtoaWRkZW4oY29tcG9uZW50cy5pbnRlcmFjdGlvbi5yZ2JhKX0+XG4gICAgICAgICAgICA8aW5wdXQgOmFycj1cIm9wdGlvbnNcIiBjbGFzcz1cInBjci10eXBlXCIgZGF0YS10eXBlPVwiSFNMQVwiIHZhbHVlPVwiJHtsb2NrT3BhY2l0eSA/ICdIU0wnIDogJ0hTTEEnfVwiIHR5cGU9XCJidXR0b25cIiAke2hpZGRlbihjb21wb25lbnRzLmludGVyYWN0aW9uLmhzbGEpfT5cbiAgICAgICAgICAgIDxpbnB1dCA6YXJyPVwib3B0aW9uc1wiIGNsYXNzPVwicGNyLXR5cGVcIiBkYXRhLXR5cGU9XCJIU1ZBXCIgdmFsdWU9XCIke2xvY2tPcGFjaXR5ID8gJ0hTVicgOiAnSFNWQSd9XCIgdHlwZT1cImJ1dHRvblwiICR7aGlkZGVuKGNvbXBvbmVudHMuaW50ZXJhY3Rpb24uaHN2YSl9PlxuICAgICAgICAgICAgPGlucHV0IDphcnI9XCJvcHRpb25zXCIgY2xhc3M9XCJwY3ItdHlwZVwiIGRhdGEtdHlwZT1cIkNNWUtcIiB2YWx1ZT1cIkNNWUtcIiB0eXBlPVwiYnV0dG9uXCIgJHtoaWRkZW4oY29tcG9uZW50cy5pbnRlcmFjdGlvbi5jbXlrKX0+XG5cbiAgICAgICAgICAgIDxpbnB1dCA6cmVmPVwic2F2ZVwiIGNsYXNzPVwicGNyLXNhdmVcIiB2YWx1ZT1cIiR7dCgnYnRuOnNhdmUnKX1cIiB0eXBlPVwiYnV0dG9uXCIgJHtoaWRkZW4oY29tcG9uZW50cy5pbnRlcmFjdGlvbi5zYXZlKX0gYXJpYS1sYWJlbD1cIiR7dCgnYXJpYTpidG46c2F2ZScpfVwiPlxuICAgICAgICAgICAgPGlucHV0IDpyZWY9XCJjYW5jZWxcIiBjbGFzcz1cInBjci1jYW5jZWxcIiB2YWx1ZT1cIiR7dCgnYnRuOmNhbmNlbCcpfVwiIHR5cGU9XCJidXR0b25cIiAke2hpZGRlbihjb21wb25lbnRzLmludGVyYWN0aW9uLmNhbmNlbCl9IGFyaWEtbGFiZWw9XCIke3QoJ2FyaWE6YnRuOmNhbmNlbCcpfVwiPlxuICAgICAgICAgICAgPGlucHV0IDpyZWY9XCJjbGVhclwiIGNsYXNzPVwicGNyLWNsZWFyXCIgdmFsdWU9XCIke3QoJ2J0bjpjbGVhcicpfVwiIHR5cGU9XCJidXR0b25cIiAke2hpZGRlbihjb21wb25lbnRzLmludGVyYWN0aW9uLmNsZWFyKX0gYXJpYS1sYWJlbD1cIiR7dCgnYXJpYTpidG46Y2xlYXInKX1cIj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgKTtcblxuICAgIGNvbnN0IGludCA9IHJvb3QuaW50ZXJhY3Rpb247XG5cbiAgICAvLyBTZWxlY3Qgb3B0aW9uIHdoaWNoIGlzIG5vdCBoaWRkZW5cbiAgICBpbnQub3B0aW9ucy5maW5kKG8gPT4gIW8uaGlkZGVuICYmICFvLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpKTtcblxuICAgIC8vIEFwcGVuZCBtZXRob2QgdG8gZmluZCBjdXJyZW50bHkgYWN0aXZlIG9wdGlvblxuICAgIGludC50eXBlID0gKCkgPT4gaW50Lm9wdGlvbnMuZmluZChlID0+IGUuY2xhc3NMaXN0LmNvbnRhaW5zKCdhY3RpdmUnKSk7XG4gICAgcmV0dXJuIHJvb3Q7XG59O1xuIiwgInR5cGUgRGlyZWN0aW9uID0gJ3RvcCcgfCAnbGVmdCcgfCAnYm90dG9tJyB8ICdyaWdodCc7XG50eXBlIEFsaWdubWVudCA9ICdzdGFydCcgfCAnbWlkZGxlJyB8ICdlbmQnO1xuXG5leHBvcnQgdHlwZSBWYXJpYW50RmxpcE9yZGVyID0ge1xuICAgIHN0YXJ0OiBzdHJpbmc7XG4gICAgbWlkZGxlOiBzdHJpbmc7XG4gICAgZW5kOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBQb3NpdGlvbkZsaXBPcmRlciA9IHtcbiAgICB0b3A6IHN0cmluZztcbiAgICByaWdodDogc3RyaW5nO1xuICAgIGJvdHRvbTogc3RyaW5nO1xuICAgIGxlZnQ6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIE5hbm9Qb3BQb3NpdGlvbiA9IGAke0RpcmVjdGlvbn0tJHtBbGlnbm1lbnR9YCB8IERpcmVjdGlvbjtcblxuZXhwb3J0IHR5cGUgTmFub1BvcE9wdGlvbnMgPSB7XG4gICAgY29udGFpbmVyOiBET01SZWN0O1xuICAgIHBvc2l0aW9uOiBOYW5vUG9wUG9zaXRpb247XG4gICAgdmFyaWFudEZsaXBPcmRlcjogVmFyaWFudEZsaXBPcmRlcjtcbiAgICBwb3NpdGlvbkZsaXBPcmRlcjogUG9zaXRpb25GbGlwT3JkZXI7XG4gICAgbWFyZ2luOiBudW1iZXI7XG4gICAgcmVmZXJlbmNlPzogSFRNTEVsZW1lbnQ7XG4gICAgcG9wcGVyPzogSFRNTEVsZW1lbnQ7XG4gICAgYXJyb3c/OiBIVE1MRWxlbWVudDtcbiAgICBwYWRkaW5nPzogbnVtYmVyO1xufTtcblxudHlwZSBBdmFpbGFibGVQb3NpdGlvbnMgPSB7XG4gICAgdDogbnVtYmVyO1xuICAgIGI6IG51bWJlcjtcbiAgICBsOiBudW1iZXI7XG4gICAgcjogbnVtYmVyO1xufTtcblxudHlwZSBBdmFpbGFibGVWYXJpYW50cyA9IHtcbiAgICB2czogbnVtYmVyO1xuICAgIHZtOiBudW1iZXI7XG4gICAgdmU6IG51bWJlcjtcbiAgICBoczogbnVtYmVyO1xuICAgIGhtOiBudW1iZXI7XG4gICAgaGU6IG51bWJlcjtcbn07XG5cbnR5cGUgUG9zaXRpb25QYWlycyA9IFtEaXJlY3Rpb24sIERpcmVjdGlvbl07XG5cbmV4cG9ydCB0eXBlIFBvc2l0aW9uTWF0Y2ggPSAndHMnIHwgJ3RtJyB8ICd0ZScgfCAnYnMnIHwgJ2JtJyB8ICdiZScgfCAnbHMnIHwgJ2xtJyB8ICdsZScgfCAncnMnIHwgJ3JtJyB8ICdyZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmFub1BvcCB7XG4gICAgdXBkYXRlKHVwZGF0ZWRPcHRpb25zPzogUGFydGlhbDxOYW5vUG9wT3B0aW9ucz4pOiBQb3NpdGlvbk1hdGNoIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOYW5vUG9wQ29uc3RydWN0b3Ige1xuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHJlZmVyZW5jZSBSZWZlcmVuY2UgZWxlbWVudFxuICAgICAqIEBwYXJhbSBwb3BwZXIgQWN0dWFsIHBvcHBlciBlbGVtZW50XG4gICAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uYWwgb3B0aW9uc1xuICAgICAqL1xuICAgIChyZWZlcmVuY2U6IEhUTUxFbGVtZW50LCBwb3BwZXI6IEhUTUxFbGVtZW50LCBvcHRpb25zPzogUGFydGlhbDxOYW5vUG9wT3B0aW9ucz4pOiBOYW5vUG9wO1xuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIG9wdGlvbnMgUGFydGlhbCBvcHRpb25zIHdoaWNoIGdldCBtZXJnZWQgd2l0aCB0aGUgY3VycmVudCBvbmVcbiAgICAgKi9cbiAgICAob3B0aW9ucz86IFBhcnRpYWw8TmFub1BvcE9wdGlvbnM+KTogTmFub1BvcDtcbn1cblxuLy8gRXhwb3J0IGN1cnJlbnQgdmVyc2lvblxuZXhwb3J0IGNvbnN0IHZlcnNpb24gPSBWRVJTSU9OO1xuXG4vLyBFeHBvcnQgZGVmYXVsdFxuZXhwb3J0IGNvbnN0IGRlZmF1bHRzID0ge1xuICAgIHZhcmlhbnRGbGlwT3JkZXI6IHtzdGFydDogJ3NtZScsIG1pZGRsZTogJ21zZScsIGVuZDogJ2Vtcyd9LFxuICAgIHBvc2l0aW9uRmxpcE9yZGVyOiB7dG9wOiAndGJybCcsIHJpZ2h0OiAncmx0YicsIGJvdHRvbTogJ2J0cmwnLCBsZWZ0OiAnbHJidCd9LFxuICAgIHBvc2l0aW9uOiAnYm90dG9tJyxcbiAgICBtYXJnaW46IDgsXG4gICAgcGFkZGluZzogMFxufTtcblxuLyoqXG4gKiBSZXBvc2l0aW9ucyBhbiBlbGVtZW50IG9uY2UgdXNpbmcgdGhlIHByb3ZpZGVkIG9wdGlvbnMgYW5kIGVsZW1lbnRzLlxuICogQHBhcmFtIHJlZmVyZW5jZSBSZWZlcmVuY2UgZWxlbWVudFxuICogQHBhcmFtIHBvcHBlciBQb3BwZXIgZWxlbWVudFxuICogQHBhcmFtIG9wdCBPcHRpb25hbCwgYWRkaXRpb25hbCBvcHRpb25zXG4gKi9cbmV4cG9ydCBjb25zdCByZXBvc2l0aW9uID0gKFxuICAgIHJlZmVyZW5jZTogSFRNTEVsZW1lbnQsXG4gICAgcG9wcGVyOiBIVE1MRWxlbWVudCxcbiAgICBvcHQ/OiBQYXJ0aWFsPE5hbm9Qb3BPcHRpb25zPlxuKTogUG9zaXRpb25NYXRjaCB8IG51bGwgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgICAgY29udGFpbmVyLFxuICAgICAgICBhcnJvdyxcbiAgICAgICAgbWFyZ2luLFxuICAgICAgICBwYWRkaW5nLFxuICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgdmFyaWFudEZsaXBPcmRlcixcbiAgICAgICAgcG9zaXRpb25GbGlwT3JkZXJcbiAgICB9ID0ge1xuICAgICAgICBjb250YWluZXI6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxcbiAgICAgICAgLi4uZGVmYXVsdHMsXG4gICAgICAgIC4uLm9wdFxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZXNldCBwb3NpdGlvbiB0byByZXNvbHZlIHZpZXdwb3J0XG4gICAgICogU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9wb3NpdGlvbiNmaXhlZFxuICAgICAqL1xuICAgIGNvbnN0IHtsZWZ0OiBvcmlnaW5hbExlZnQsIHRvcDogb3JpZ2luYWxUb3B9ID0gcG9wcGVyLnN0eWxlO1xuICAgIHBvcHBlci5zdHlsZS5sZWZ0ID0gJzAnO1xuICAgIHBvcHBlci5zdHlsZS50b3AgPSAnMCc7XG5cbiAgICBjb25zdCByZWZCb3ggPSByZWZlcmVuY2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgcG9wQm94ID0gcG9wcGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgLyoqXG4gICAgICogSG9sZHMgY29vcmRpbmF0ZXMgb2YgdG9wLCBsZWZ0LCBib3R0b20gYW5kIHJpZ2h0IGFsaWdubWVudFxuICAgICAqL1xuICAgIGNvbnN0IHBvc2l0aW9uU3RvcmU6IEF2YWlsYWJsZVBvc2l0aW9ucyA9IHtcbiAgICAgICAgdDogcmVmQm94LnRvcCAtIHBvcEJveC5oZWlnaHQgLSBtYXJnaW4sXG4gICAgICAgIGI6IHJlZkJveC5ib3R0b20gKyBtYXJnaW4sXG4gICAgICAgIHI6IHJlZkJveC5yaWdodCArIG1hcmdpbixcbiAgICAgICAgbDogcmVmQm94LmxlZnQgLSBwb3BCb3gud2lkdGggLSBtYXJnaW5cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogSG9sZHMgY29ycmVzcG9uZGluZyB2YXJpYW50cyAoc3RhcnQsIG1pZGRsZSwgZW5kKS5cbiAgICAgKiBUaGUgdmFsdWVzIGRlcGVuZCBvbiBob3Jpem9udGFsIC8gdmVydGljYWwgb3JpZW50YXRpb25cbiAgICAgKi9cbiAgICBjb25zdCB2YXJpYW50U3RvcmU6IEF2YWlsYWJsZVZhcmlhbnRzID0ge1xuICAgICAgICB2czogcmVmQm94LmxlZnQsXG4gICAgICAgIHZtOiByZWZCb3gubGVmdCArIHJlZkJveC53aWR0aCAvIDIgLSBwb3BCb3gud2lkdGggLyAyLFxuICAgICAgICB2ZTogcmVmQm94LmxlZnQgKyByZWZCb3gud2lkdGggLSBwb3BCb3gud2lkdGgsXG4gICAgICAgIGhzOiByZWZCb3gudG9wLFxuICAgICAgICBobTogcmVmQm94LmJvdHRvbSAtIHJlZkJveC5oZWlnaHQgLyAyIC0gcG9wQm94LmhlaWdodCAvIDIsXG4gICAgICAgIGhlOiByZWZCb3guYm90dG9tIC0gcG9wQm94LmhlaWdodFxuICAgIH07XG5cbiAgICAvLyBFeHRyYWN0IHBvc2l0aW9uIGFuZCB2YXJpYW50XG4gICAgLy8gVG9wLXN0YXJ0IC0+IHRvcCBpcyBcInBvc2l0aW9uXCIgYW5kIFwic3RhcnRcIiBpcyB0aGUgdmFyaWFudFxuICAgIGNvbnN0IFtwb3NLZXksIHZhcktleSA9ICdtaWRkbGUnXSA9IHBvc2l0aW9uLnNwbGl0KCctJyk7XG4gICAgY29uc3QgcG9zaXRpb25zID0gcG9zaXRpb25GbGlwT3JkZXJbcG9zS2V5IGFzIGtleW9mIFBvc2l0aW9uRmxpcE9yZGVyXTtcbiAgICBjb25zdCB2YXJpYW50cyA9IHZhcmlhbnRGbGlwT3JkZXJbdmFyS2V5IGFzIGtleW9mIFZhcmlhbnRGbGlwT3JkZXJdO1xuXG4gICAgLy8gVHJ5IG91dCBhbGwgcG9zc2libGUgY29tYmluYXRpb25zLCBzdGFydGluZyB3aXRoIHRoZSBwcmVmZXJyZWQgb25lLlxuICAgIGNvbnN0IHt0b3AsIGxlZnQsIGJvdHRvbSwgcmlnaHR9ID0gY29udGFpbmVyO1xuXG4gICAgZm9yIChjb25zdCBwIG9mIHBvc2l0aW9ucykge1xuICAgICAgICBjb25zdCB2ZXJ0aWNhbCA9IChwID09PSAndCcgfHwgcCA9PT0gJ2InKTtcblxuICAgICAgICAvLyBUaGUgcG9zaXRpb24tdmFsdWVcbiAgICAgICAgbGV0IHBvc2l0aW9uVmFsID0gcG9zaXRpb25TdG9yZVtwIGFzIGtleW9mIEF2YWlsYWJsZVBvc2l0aW9uc107XG5cbiAgICAgICAgLy8gV2hpY2ggcHJvcGVydHkgaGFzIHRvIGJlIGNoYW5nZXMuXG4gICAgICAgIGNvbnN0IFtwb3NpdGlvbktleSwgdmFyaWFudEtleV0gPSAodmVydGljYWwgPyBbJ3RvcCcsICdsZWZ0J10gOiBbJ2xlZnQnLCAndG9wJ10pIGFzIFBvc2l0aW9uUGFpcnM7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGJveCByZWZlcnMgdG8gdGhlIHNpemUgb2YgdGhlIHBvcHBlciBlbGVtZW50LiBEZXBlbmRpbmcgb24gdGhlIG9yaWVudGF0aW9uIHRoaXMgaXMgd2lkdGggb3IgaGVpZ2h0LlxuICAgICAgICAgKiBUaGUgbGltaXQgaXMgdGhlIGNvcnJlc3BvbmRpbmcsIG1heGltdW0gdmFsdWUgZm9yIHRoaXMgcG9zaXRpb24uXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBbcG9zaXRpb25TaXplLCB2YXJpYW50U2l6ZV0gPSB2ZXJ0aWNhbCA/IFtwb3BCb3guaGVpZ2h0LCBwb3BCb3gud2lkdGhdIDogW3BvcEJveC53aWR0aCwgcG9wQm94LmhlaWdodF07XG5cbiAgICAgICAgY29uc3QgW3Bvc2l0aW9uTWF4aW11bSwgdmFyaWFudE1heGltdW1dID0gdmVydGljYWwgPyBbYm90dG9tLCByaWdodF0gOiBbcmlnaHQsIGJvdHRvbV07XG4gICAgICAgIGNvbnN0IFtwb3NpdGlvbk1pbmltdW0sIHZhcmlhbnRNaW5pbXVtXSA9IHZlcnRpY2FsID8gW3RvcCwgbGVmdF0gOiBbbGVmdCwgdG9wXTtcblxuICAgICAgICAvLyBTa2lwIHByZS1jbGlwcGVkIHZhbHVlc1xuICAgICAgICBpZiAocG9zaXRpb25WYWwgPCBwb3NpdGlvbk1pbmltdW0gfHwgKHBvc2l0aW9uVmFsICsgcG9zaXRpb25TaXplICsgcGFkZGluZykgPiBwb3NpdGlvbk1heGltdW0pIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCB2IG9mIHZhcmlhbnRzKSB7XG5cbiAgICAgICAgICAgIC8vIFRoZSBwb3NpdGlvbi12YWx1ZSwgdGhlIHJlbGF0ZWQgc2l6ZSB2YWx1ZSBvZiB0aGUgcG9wcGVyIGFuZCB0aGUgbGltaXRcbiAgICAgICAgICAgIGxldCB2YXJpYW50VmFsID0gdmFyaWFudFN0b3JlWygodmVydGljYWwgPyAndicgOiAnaCcpICsgdikgYXMga2V5b2YgQXZhaWxhYmxlVmFyaWFudHNdO1xuXG4gICAgICAgICAgICBpZiAodmFyaWFudFZhbCA8IHZhcmlhbnRNaW5pbXVtIHx8ICh2YXJpYW50VmFsICsgdmFyaWFudFNpemUgKyBwYWRkaW5nKSA+IHZhcmlhbnRNYXhpbXVtKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFN1YnRyYWN0IHBvcEJveCdzIGluaXRpYWwgcG9zaXRpb25cbiAgICAgICAgICAgIHZhcmlhbnRWYWwgLT0gcG9wQm94W3ZhcmlhbnRLZXldO1xuICAgICAgICAgICAgcG9zaXRpb25WYWwgLT0gcG9wQm94W3Bvc2l0aW9uS2V5XTtcblxuICAgICAgICAgICAgLy8gQXBwbHkgc3R5bGVzIGFuZCBub3JtYWxpemUgdmlld3BvcnRcbiAgICAgICAgICAgIHBvcHBlci5zdHlsZVt2YXJpYW50S2V5XSA9IGAke3ZhcmlhbnRWYWx9cHhgO1xuICAgICAgICAgICAgcG9wcGVyLnN0eWxlW3Bvc2l0aW9uS2V5XSA9IGAke3Bvc2l0aW9uVmFsfXB4YDtcblxuICAgICAgICAgICAgaWYgKGFycm93KSB7XG4gICAgICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIHJlZkJveCdzIGNlbnRlciBvZmZzZXQgZnJvbSBpdHMgdmFyaWFudCBwb3NpdGlvbiBmb3IgYXJyb3cgcG9zaXRpb25pbmdcbiAgICAgICAgICAgICAgICBjb25zdCByZWZCb3hDZW50ZXJPZmZzZXQgPSB2ZXJ0aWNhbCA/IHJlZkJveC53aWR0aCAvIDIgOiByZWZCb3guaGVpZ2h0IC8gMjtcblxuICAgICAgICAgICAgICAgIC8vIFdoZW4gcmVmQm94IGlzIGxhcmdlciB0aGFuIHBvcEJveCwgaGF2ZSB0aGUgYXJyb3cncyB2YXJpYW50IHBvc2l0aW9uIGJlIHRoZSBjZW50ZXIgb2YgcG9wQm94IGluc3RlYWQuXG4gICAgICAgICAgICAgICAgY29uc3QgYXJyb3dWYXJpYW50VmFsID0gcmVmQm94Q2VudGVyT2Zmc2V0ICogMiA8IHZhcmlhbnRTaXplID9cbiAgICAgICAgICAgICAgICAgICAgcmVmQm94W3ZhcmlhbnRLZXldICsgcmVmQm94Q2VudGVyT2Zmc2V0IDogdmFyaWFudFZhbCArIHZhcmlhbnRTaXplIC8gMjtcblxuICAgICAgICAgICAgICAgIC8vIEFycm93IHBvc2l0aW9uIGlzIGVpdGhlciBvbiBvbmUgc2lkZSBvZiB0aGUgcG9wQm94IG9yIHRoZSBvdGhlci5cbiAgICAgICAgICAgICAgICBpZiAocG9zaXRpb25WYWwgPCByZWZCb3hbcG9zaXRpb25LZXldKSB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uVmFsICs9IHBvc2l0aW9uU2l6ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBBcHBseSBzdHlsZXMgdG8gYXJyb3dcbiAgICAgICAgICAgICAgICBhcnJvdy5zdHlsZVt2YXJpYW50S2V5XSA9IGAke2Fycm93VmFyaWFudFZhbH1weGA7XG4gICAgICAgICAgICAgICAgYXJyb3cuc3R5bGVbcG9zaXRpb25LZXldID0gYCR7cG9zaXRpb25WYWx9cHhgO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gKHAgKyB2KSBhcyBQb3NpdGlvbk1hdGNoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmV2ZXJ0IHN0eWxlIHZhbHVlcyAod29uJ3Qgd29yayB3aXRoIHN0eWxlZC1lbGVtZW50cyBvciBzaW1pbGFyIHN5c3RlbXMpXG4gICAgLy8gXCJGaXhcIiBmb3IgaHR0cHM6Ly9naXRodWIuY29tL1NpbW9ud2VwL25hbm9wb3AvaXNzdWVzLzdcbiAgICBwb3BwZXIuc3R5bGUubGVmdCA9IG9yaWdpbmFsTGVmdDtcbiAgICBwb3BwZXIuc3R5bGUudG9wID0gb3JpZ2luYWxUb3A7XG5cbiAgICByZXR1cm4gbnVsbDtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhIHN0YXRlZnVsIHBvcHBlci5cbiAqIFlvdSBjYW4gZWl0aGVyLi4uXG4gKiAuLi4gcGFzcyBhbiBvcHRpb25zIG9iamVjdDogY3JlYXRlUG9wcGVyKDxvcHRpb25zPilcbiAqIC4uLiBwYXNzIGJvdGggdGhlIHJlZmVyZW5jZSBhbmQgcG9wcGVyOiBjcmVhdGUoPHJlZj4sIDxlbD4sIDw/b3B0aW9ucz4pXG4gKiAuLi4gcGFzcyBub3RoaW5nLCBpbiB0aGlzIGNhc2UgeW91J2xsIGhhdmUgdG8gc2V0IGF0IGxlYXN0IGJvdGggYSByZWZlcmVuY2UgYW5kIGEgcG9wcGVyIGluIHVwZGF0ZS5cbiAqXG4gKiBAcGFyYW0gcmVmZXJlbmNlIHwgb3B0aW9ucyBSZWZlcmVuY2UgZWxlbWVudCBvciBvcHRpb25zXG4gKiBAcGFyYW0gcG9wcGVyIFBvcHBlciBlbGVtZW50XG4gKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25hbCBhZGRpdGlvbmFsIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZVBvcHBlcjogTmFub1BvcENvbnN0cnVjdG9yID0gKFxuICAgIHJlZmVyZW5jZT86IEhUTUxFbGVtZW50IHwgUGFydGlhbDxOYW5vUG9wT3B0aW9ucz4sXG4gICAgcG9wcGVyPzogSFRNTEVsZW1lbnQsXG4gICAgb3B0aW9ucz86IFBhcnRpYWw8TmFub1BvcE9wdGlvbnM+XG4pOiBOYW5vUG9wID0+IHtcblxuICAgIC8vIFJlc29sdmUgb3B0aW9uc1xuICAgIGNvbnN0IGJhc2VPcHRpb25zOiBQYXJ0aWFsPE5hbm9Qb3BPcHRpb25zPiA9IHR5cGVvZiByZWZlcmVuY2UgPT09ICdvYmplY3QnICYmICEocmVmZXJlbmNlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpID9cbiAgICAgICAgcmVmZXJlbmNlIDoge3JlZmVyZW5jZSwgcG9wcGVyLCAuLi5vcHRpb25zfTtcblxuICAgIHJldHVybiB7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJlcG9zaXRpb25zIHRoZSBjdXJyZW50IHBvcHBlci5cbiAgICAgICAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uYWwgb3B0aW9ucyB3aGljaCBnZXQgbWVyZ2VkIHdpdGggdGhlIGN1cnJlbnQgb25lcy5cbiAgICAgICAgICovXG4gICAgICAgIHVwZGF0ZShvcHRpb25zOiBQYXJ0aWFsPE5hbm9Qb3BPcHRpb25zPiA9IGJhc2VPcHRpb25zKTogUG9zaXRpb25NYXRjaCB8IG51bGwge1xuICAgICAgICAgICAgY29uc3Qge3JlZmVyZW5jZSwgcG9wcGVyfSA9IE9iamVjdC5hc3NpZ24oYmFzZU9wdGlvbnMsIG9wdGlvbnMpO1xuXG4gICAgICAgICAgICBpZiAoIXBvcHBlciB8fCAhcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdQb3BwZXItIG9yIHJlZmVyZW5jZS1lbGVtZW50IG1pc3NpbmcuJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZXBvc2l0aW9uKHJlZmVyZW5jZSwgcG9wcGVyLCBiYXNlT3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9O1xufTtcbiIsICJpbXBvcnQgKiBhcyBfIGZyb20gJy4vdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHtwYXJzZVRvSFNWQX0gZnJvbSAnLi91dGlscy9jb2xvcic7XG5pbXBvcnQge0hTVmFDb2xvcn0gZnJvbSAnLi91dGlscy9oc3ZhY29sb3InO1xuaW1wb3J0IE1vdmVhYmxlIGZyb20gJy4vbGlicy9tb3ZlYWJsZSc7XG5pbXBvcnQgU2VsZWN0YWJsZSBmcm9tICcuL2xpYnMvc2VsZWN0YWJsZSc7XG5pbXBvcnQgYnVpbGRQaWNrciBmcm9tICcuL3RlbXBsYXRlJztcbmltcG9ydCB7Y3JlYXRlUG9wcGVyfSBmcm9tICduYW5vcG9wJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGlja3Ige1xuXG4gICAgLy8gRXhwb3NlIHBpY2tyIHV0aWxzXG4gICAgc3RhdGljIHV0aWxzID0gXztcblxuICAgIC8vIEFzc2lnbiB2ZXJzaW9uIGFuZCBleHBvcnRcbiAgICBzdGF0aWMgdmVyc2lvbiA9IFZFUlNJT047XG5cbiAgICAvLyBEZWZhdWx0IHN0cmluZ3NcbiAgICBzdGF0aWMgSTE4Tl9ERUZBVUxUUyA9IHtcblxuICAgICAgICAvLyBTdHJpbmdzIHZpc2libGUgaW4gdGhlIFVJXG4gICAgICAgICd1aTpkaWFsb2cnOiAnY29sb3IgcGlja2VyIGRpYWxvZycsXG4gICAgICAgICdidG46dG9nZ2xlJzogJ3RvZ2dsZSBjb2xvciBwaWNrZXIgZGlhbG9nJyxcbiAgICAgICAgJ2J0bjpzd2F0Y2gnOiAnY29sb3Igc3dhdGNoJyxcbiAgICAgICAgJ2J0bjpsYXN0LWNvbG9yJzogJ3VzZSBwcmV2aW91cyBjb2xvcicsXG4gICAgICAgICdidG46c2F2ZSc6ICdTYXZlJyxcbiAgICAgICAgJ2J0bjpjYW5jZWwnOiAnQ2FuY2VsJyxcbiAgICAgICAgJ2J0bjpjbGVhcic6ICdDbGVhcicsXG5cbiAgICAgICAgLy8gU3RyaW5ncyB1c2VkIGZvciBhcmlhLWxhYmVsc1xuICAgICAgICAnYXJpYTpidG46c2F2ZSc6ICdzYXZlIGFuZCBjbG9zZScsXG4gICAgICAgICdhcmlhOmJ0bjpjYW5jZWwnOiAnY2FuY2VsIGFuZCBjbG9zZScsXG4gICAgICAgICdhcmlhOmJ0bjpjbGVhcic6ICdjbGVhciBhbmQgY2xvc2UnLFxuICAgICAgICAnYXJpYTppbnB1dCc6ICdjb2xvciBpbnB1dCBmaWVsZCcsXG4gICAgICAgICdhcmlhOnBhbGV0dGUnOiAnY29sb3Igc2VsZWN0aW9uIGFyZWEnLFxuICAgICAgICAnYXJpYTpodWUnOiAnaHVlIHNlbGVjdGlvbiBzbGlkZXInLFxuICAgICAgICAnYXJpYTpvcGFjaXR5JzogJ3NlbGVjdGlvbiBzbGlkZXInXG4gICAgfTtcblxuICAgIC8vIERlZmF1bHQgb3B0aW9uc1xuICAgIHN0YXRpYyBERUZBVUxUX09QVElPTlMgPSB7XG4gICAgICAgIGFwcENsYXNzOiBudWxsLFxuICAgICAgICB0aGVtZTogJ2NsYXNzaWMnLFxuICAgICAgICB1c2VBc0J1dHRvbjogZmFsc2UsXG4gICAgICAgIHBhZGRpbmc6IDgsXG4gICAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgY29tcGFyaXNvbjogdHJ1ZSxcbiAgICAgICAgY2xvc2VPblNjcm9sbDogZmFsc2UsXG4gICAgICAgIG91dHB1dFByZWNpc2lvbjogMCxcbiAgICAgICAgbG9ja09wYWNpdHk6IGZhbHNlLFxuICAgICAgICBhdXRvUmVwb3NpdGlvbjogdHJ1ZSxcbiAgICAgICAgY29udGFpbmVyOiAnYm9keScsXG5cbiAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgaW50ZXJhY3Rpb246IHt9XG4gICAgICAgIH0sXG5cbiAgICAgICAgaTE4bjoge30sXG4gICAgICAgIHN3YXRjaGVzOiBudWxsLFxuICAgICAgICBpbmxpbmU6IGZhbHNlLFxuICAgICAgICBzbGlkZXJzOiBudWxsLFxuXG4gICAgICAgIGRlZmF1bHQ6ICcjNDI0NDVhJyxcbiAgICAgICAgZGVmYXVsdFJlcHJlc2VudGF0aW9uOiBudWxsLFxuICAgICAgICBwb3NpdGlvbjogJ2JvdHRvbS1taWRkbGUnLFxuICAgICAgICBhZGp1c3RhYmxlTnVtYmVyczogdHJ1ZSxcbiAgICAgICAgc2hvd0Fsd2F5czogZmFsc2UsXG5cbiAgICAgICAgY2xvc2VXaXRoS2V5OiAnRXNjYXBlJ1xuICAgIH07XG5cbiAgICAvLyBXaWxsIGJlIHVzZWQgdG8gcHJldmVudCBzcGVjaWZpYyBhY3Rpb25zIGR1cmluZyBpbml0aWxpemF0aW9uXG4gICAgX2luaXRpYWxpemluZ0FjdGl2ZSA9IHRydWU7XG5cbiAgICAvLyBJZiB0aGUgY3VycmVudCBjb2xvciB2YWx1ZSBzaG91bGQgYmUgcmVjYWxjdWxhdGVkXG4gICAgX3JlY2FsYyA9IHRydWU7XG5cbiAgICAvLyBQb3NpdGlvbmluZyBlbmdpbmUgYW5kIERPTS1UcmVlXG4gICAgX25hbm9wb3AgPSBudWxsO1xuICAgIF9yb290ID0gbnVsbDtcblxuICAgIC8vIEN1cnJlbnQgYW5kIGxhc3QgY29sb3IgZm9yIGNvbXBhcmlzb25cbiAgICBfY29sb3IgPSBIU1ZhQ29sb3IoKTtcbiAgICBfbGFzdENvbG9yID0gSFNWYUNvbG9yKCk7XG4gICAgX3N3YXRjaENvbG9ycyA9IFtdO1xuXG4gICAgLy8gQW5pbWF0aW9uIGZyYW1lIHVzZWQgZm9yIHNldHVwLlxuICAgIC8vIFdpbGwgYmUgY2FuY2VsbGVkIGluIGNhc2Ugb2YgZGVzdHJ1Y3Rpb24uXG4gICAgX3NldHVwQW5pbWF0aW9uRnJhbWUgPSBudWxsO1xuXG4gICAgLy8gRXZlbmxpc3RlbmVyIG5hbWU6IFtjYWxsYmFja3NdXG4gICAgX2V2ZW50TGlzdGVuZXIgPSB7XG4gICAgICAgIGluaXQ6IFtdLFxuICAgICAgICBzYXZlOiBbXSxcbiAgICAgICAgaGlkZTogW10sXG4gICAgICAgIHNob3c6IFtdLFxuICAgICAgICBjbGVhcjogW10sXG4gICAgICAgIGNoYW5nZTogW10sXG4gICAgICAgIGNoYW5nZXN0b3A6IFtdLFxuICAgICAgICBjYW5jZWw6IFtdLFxuICAgICAgICBzd2F0Y2hzZWxlY3Q6IFtdXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKG9wdCkge1xuXG4gICAgICAgIC8vIEFzc2lnbiBkZWZhdWx0IHZhbHVlc1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHQgPSBPYmplY3QuYXNzaWduKHsuLi5QaWNrci5ERUZBVUxUX09QVElPTlN9LCBvcHQpO1xuXG4gICAgICAgIGNvbnN0IHtzd2F0Y2hlcywgY29tcG9uZW50cywgdGhlbWUsIHNsaWRlcnMsIGxvY2tPcGFjaXR5LCBwYWRkaW5nfSA9IG9wdDtcblxuICAgICAgICBpZiAoWyduYW5vJywgJ21vbm9saXRoJ10uaW5jbHVkZXModGhlbWUpICYmICFzbGlkZXJzKSB7XG4gICAgICAgICAgICBvcHQuc2xpZGVycyA9ICdoJztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENoZWNrIGludGVyYWN0aW9uIHNlY3Rpb25cbiAgICAgICAgaWYgKCFjb21wb25lbnRzLmludGVyYWN0aW9uKSB7XG4gICAgICAgICAgICBjb21wb25lbnRzLmludGVyYWN0aW9uID0ge307XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPdmVyd3JpdGUgcGFsZXR0ZSBpZiBwcmV2aWV3LCBvcGFjaXR5IG9yIGh1ZSBhcmUgdHJ1ZVxuICAgICAgICBjb25zdCB7cHJldmlldywgb3BhY2l0eSwgaHVlLCBwYWxldHRlfSA9IGNvbXBvbmVudHM7XG4gICAgICAgIGNvbXBvbmVudHMub3BhY2l0eSA9ICghbG9ja09wYWNpdHkgJiYgb3BhY2l0eSk7XG4gICAgICAgIGNvbXBvbmVudHMucGFsZXR0ZSA9IHBhbGV0dGUgfHwgcHJldmlldyB8fCBvcGFjaXR5IHx8IGh1ZTtcblxuICAgICAgICAvLyBJbml0aWFsaXplIHBpY2tlclxuICAgICAgICB0aGlzLl9wcmVCdWlsZCgpO1xuICAgICAgICB0aGlzLl9idWlsZENvbXBvbmVudHMoKTtcbiAgICAgICAgdGhpcy5fYmluZEV2ZW50cygpO1xuICAgICAgICB0aGlzLl9maW5hbEJ1aWxkKCk7XG5cbiAgICAgICAgLy8gQXBwZW5kIHByZS1kZWZpbmVkIHN3YXRjaCBjb2xvcnNcbiAgICAgICAgaWYgKHN3YXRjaGVzICYmIHN3YXRjaGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgc3dhdGNoZXMuZm9yRWFjaChjb2xvciA9PiB0aGlzLmFkZFN3YXRjaChjb2xvcikpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSW5pdGlhbGl6ZSBwb3NpdGlvbmluZyBlbmdpbmVcbiAgICAgICAgY29uc3Qge2J1dHRvbiwgYXBwfSA9IHRoaXMuX3Jvb3Q7XG4gICAgICAgIHRoaXMuX25hbm9wb3AgPSBjcmVhdGVQb3BwZXIoYnV0dG9uLCBhcHAsIHtcbiAgICAgICAgICAgIG1hcmdpbjogcGFkZGluZ1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBJbml0aWFsaXplIGFjY2Vzc2liaWxpdHlcbiAgICAgICAgYnV0dG9uLnNldEF0dHJpYnV0ZSgncm9sZScsICdidXR0b24nKTtcbiAgICAgICAgYnV0dG9uLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsIHRoaXMuX3QoJ2J0bjp0b2dnbGUnKSk7XG5cbiAgICAgICAgLy8gSW5pdGlsaXphdGlvbiBpcyBmaW5pc2gsIHBpY2tyIGlzIHZpc2libGUgYW5kIHJlYWR5IGZvciB1c2FnZVxuICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgdGhpcy5fc2V0dXBBbmltYXRpb25GcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoZnVuY3Rpb24gY2IoKSB7XG5cbiAgICAgICAgICAgIC8vIFRPRE86IFBlcmZvcm1hbmNlIGlzc3VlIGR1ZSB0byBoaWdoIGNhbGwtcmF0ZT9cbiAgICAgICAgICAgIGlmICghYXBwLm9mZnNldFdpZHRoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3RBbmltYXRpb25GcmFtZShjYik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEFwcGx5IGRlZmF1bHQgY29sb3JcbiAgICAgICAgICAgIHRoYXQuc2V0Q29sb3Iob3B0LmRlZmF1bHQpO1xuICAgICAgICAgICAgdGhhdC5fcmVQb3NpdGlvbmluZ1BpY2tlcigpO1xuXG4gICAgICAgICAgICAvLyBJbml0aWFsaXplIGNvbG9yIHJlcHJlc2VudGF0aW9uXG4gICAgICAgICAgICBpZiAob3B0LmRlZmF1bHRSZXByZXNlbnRhdGlvbikge1xuICAgICAgICAgICAgICAgIHRoYXQuX3JlcHJlc2VudGF0aW9uID0gb3B0LmRlZmF1bHRSZXByZXNlbnRhdGlvbjtcbiAgICAgICAgICAgICAgICB0aGF0LnNldENvbG9yUmVwcmVzZW50YXRpb24odGhhdC5fcmVwcmVzZW50YXRpb24pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBTaG93IHBpY2tyIGlmIGxvY2tlZFxuICAgICAgICAgICAgaWYgKG9wdC5zaG93QWx3YXlzKSB7XG4gICAgICAgICAgICAgICAgdGhhdC5zaG93KCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEluaXRpYWxpemF0aW9uIGlzIGRvbmUgLSBwaWNrciBpcyB1c2FibGUsIGZpcmUgaW5pdCBldmVudFxuICAgICAgICAgICAgdGhhdC5faW5pdGlhbGl6aW5nQWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICB0aGF0Ll9lbWl0KCdpbml0Jyk7XG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgaW5zdGFuY2UgdmlhIG1ldGhvZFxuICAgIHN0YXRpYyBjcmVhdGUgPSBvcHRpb25zID0+IG5ldyBQaWNrcihvcHRpb25zKTtcblxuICAgIC8vIERvZXMgb25seSB0aGUgYWJzb2x1dGx5IGJhc2ljIHRoaW5nIHRvIGluaXRpYWxpemUgdGhlIGNvbXBvbmVudHNcbiAgICBfcHJlQnVpbGQoKSB7XG4gICAgICAgIGNvbnN0IHtvcHRpb25zfSA9IHRoaXM7XG5cbiAgICAgICAgLy8gUmVzb2x2ZSBlbGVtZW50c1xuICAgICAgICBmb3IgKGNvbnN0IHR5cGUgb2YgWydlbCcsICdjb250YWluZXInXSkge1xuICAgICAgICAgICAgb3B0aW9uc1t0eXBlXSA9IF8ucmVzb2x2ZUVsZW1lbnQob3B0aW9uc1t0eXBlXSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDcmVhdGUgZWxlbWVudCBhbmQgYXBwZW5kIGl0IHRvIGJvZHkgdG9cbiAgICAgICAgLy8gUHJldmVudCBpbml0aWFsaXphdGlvbiBlcnJvcnNcbiAgICAgICAgdGhpcy5fcm9vdCA9IGJ1aWxkUGlja3IodGhpcyk7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgYSBjdXN0b20gYnV0dG9uIGlzIHVzZWRcbiAgICAgICAgaWYgKG9wdGlvbnMudXNlQXNCdXR0b24pIHtcbiAgICAgICAgICAgIHRoaXMuX3Jvb3QuYnV0dG9uID0gb3B0aW9ucy5lbDsgLy8gUmVwbGFjZSBidXR0b24gd2l0aCBjdXN0b21pemVkIGJ1dHRvblxuICAgICAgICB9XG5cbiAgICAgICAgb3B0aW9ucy5jb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5fcm9vdC5yb290KTtcbiAgICB9XG5cbiAgICBfZmluYWxCdWlsZCgpIHtcbiAgICAgICAgY29uc3Qgb3B0ID0gdGhpcy5vcHRpb25zO1xuICAgICAgICBjb25zdCByb290ID0gdGhpcy5fcm9vdDtcblxuICAgICAgICAvLyBSZW1vdmUgZnJvbSBib2R5XG4gICAgICAgIG9wdC5jb250YWluZXIucmVtb3ZlQ2hpbGQocm9vdC5yb290KTtcblxuICAgICAgICBpZiAob3B0LmlubGluZSkge1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gb3B0LmVsLnBhcmVudEVsZW1lbnQ7XG5cbiAgICAgICAgICAgIGlmIChvcHQuZWwubmV4dFNpYmxpbmcpIHtcbiAgICAgICAgICAgICAgICBwYXJlbnQuaW5zZXJ0QmVmb3JlKHJvb3QuYXBwLCBvcHQuZWwubmV4dFNpYmxpbmcpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQocm9vdC5hcHApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3B0LmNvbnRhaW5lci5hcHBlbmRDaGlsZChyb290LmFwcCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEb24ndCByZXBsYWNlIHRoZSB0aGUgZWxlbWVudCBpZiBhIGN1c3RvbSBidXR0b24gaXMgdXNlZFxuICAgICAgICBpZiAoIW9wdC51c2VBc0J1dHRvbikge1xuXG4gICAgICAgICAgICAvLyBSZXBsYWNlIGVsZW1lbnQgd2l0aCBhY3R1YWwgY29sb3ItcGlja2VyXG4gICAgICAgICAgICBvcHQuZWwucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQocm9vdC5yb290LCBvcHQuZWwpO1xuICAgICAgICB9IGVsc2UgaWYgKG9wdC5pbmxpbmUpIHtcbiAgICAgICAgICAgIG9wdC5lbC5yZW1vdmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENoZWNrIGlmIGl0IHNob3VsZCBiZSBpbW1lZGlhdGx5IGRpc2FibGVkXG4gICAgICAgIGlmIChvcHQuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgY29sb3IgY29tcGFyaXNvbiBpcyBkaXNhYmxlZCwgaWYgeWVzIC0gcmVtb3ZlIHRyYW5zaXRpb25zIHNvIGV2ZXJ5dGhpbmcga2VlcHMgc21vb3RobHlcbiAgICAgICAgaWYgKCFvcHQuY29tcGFyaXNvbikge1xuICAgICAgICAgICAgcm9vdC5idXR0b24uc3R5bGUudHJhbnNpdGlvbiA9ICdub25lJztcblxuICAgICAgICAgICAgaWYgKCFvcHQudXNlQXNCdXR0b24pIHtcbiAgICAgICAgICAgICAgICByb290LnByZXZpZXcubGFzdENvbG9yLnN0eWxlLnRyYW5zaXRpb24gPSAnbm9uZSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICB9XG5cbiAgICBfYnVpbGRDb21wb25lbnRzKCkge1xuXG4gICAgICAgIC8vIEluc3RhbmNlIHJlZmVyZW5jZVxuICAgICAgICBjb25zdCBpbnN0ID0gdGhpcztcbiAgICAgICAgY29uc3QgY3MgPSB0aGlzLm9wdGlvbnMuY29tcG9uZW50cztcbiAgICAgICAgY29uc3Qgc2xpZGVycyA9IChpbnN0Lm9wdGlvbnMuc2xpZGVycyB8fCAndicpLnJlcGVhdCgyKTtcbiAgICAgICAgY29uc3QgW3NvLCBzaF0gPSBzbGlkZXJzLm1hdGNoKC9eW3ZoXSskL2cpID8gc2xpZGVycyA6IFtdO1xuXG4gICAgICAgIC8vIFJlLWFzc2lnbiBpZiBudWxsXG4gICAgICAgIGNvbnN0IGdldENvbG9yID0gKCkgPT5cbiAgICAgICAgICAgIHRoaXMuX2NvbG9yIHx8ICh0aGlzLl9jb2xvciA9IHRoaXMuX2xhc3RDb2xvci5jbG9uZSgpKTtcblxuICAgICAgICBjb25zdCBjb21wb25lbnRzID0ge1xuXG4gICAgICAgICAgICBwYWxldHRlOiBNb3ZlYWJsZSh7XG4gICAgICAgICAgICAgICAgZWxlbWVudDogaW5zdC5fcm9vdC5wYWxldHRlLnBpY2tlcixcbiAgICAgICAgICAgICAgICB3cmFwcGVyOiBpbnN0Ll9yb290LnBhbGV0dGUucGFsZXR0ZSxcblxuICAgICAgICAgICAgICAgIG9uc3RvcDogKCkgPT4gaW5zdC5fZW1pdCgnY2hhbmdlc3RvcCcsICdzbGlkZXInLCBpbnN0KSxcbiAgICAgICAgICAgICAgICBvbmNoYW5nZSh4LCB5KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghY3MucGFsZXR0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29sb3IgPSBnZXRDb2xvcigpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7X3Jvb3QsIG9wdGlvbnN9ID0gaW5zdDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qge2xhc3RDb2xvciwgY3VycmVudENvbG9yfSA9IF9yb290LnByZXZpZXc7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBpbnB1dCBmaWVsZCBvbmx5IGlmIHRoZSB1c2VyIGlzIGN1cnJlbnRseSBub3QgdHlwaW5nXG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnN0Ll9yZWNhbGMpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIHNhdHVyYXRpb24gYmFzZWQgb24gdGhlIHBvc2l0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvci5zID0geCAqIDEwMDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IudiA9IDEwMCAtIHkgKiAxMDA7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFByZXZlbnQgZmFsbGluZyB1bmRlciB6ZXJvXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvci52IDwgMCA/IGNvbG9yLnYgPSAwIDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluc3QuX3VwZGF0ZU91dHB1dCgnc2xpZGVyJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBTZXQgcGlja2VyIGFuZCBncmFkaWVudCBjb2xvclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjc3NSR0JhU3RyaW5nID0gY29sb3IudG9SR0JBKCkudG9TdHJpbmcoMCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kID0gY3NzUkdCYVN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cmFwcGVyLnN0eWxlLmJhY2tncm91bmQgPSBgXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCByZ2JhKDAsIDAsIDAsICR7Y29sb3IuYX0pLCB0cmFuc3BhcmVudCksXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgaHNsYSgke2NvbG9yLmh9LCAxMDAlLCA1MCUsICR7Y29sb3IuYX0pLCByZ2JhKDI1NSwgMjU1LCAyNTUsICR7Y29sb3IuYX0pKVxuICAgICAgICAgICAgICAgICAgICBgO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIGNvbG9yIGlzIGxvY2tlZFxuICAgICAgICAgICAgICAgICAgICBpZiAoIW9wdGlvbnMuY29tcGFyaXNvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3Jvb3QuYnV0dG9uLnN0eWxlLnNldFByb3BlcnR5KCctLXBjci1jb2xvcicsIGNzc1JHQmFTdHJpbmcpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdXNlciBjaGFuZ2VzIHRoZSBjb2xvciwgcmVtb3ZlIHRoZSBjbGVhcmVkIGljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIF9yb290LmJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCdjbGVhcicpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFvcHRpb25zLnVzZUFzQnV0dG9uICYmICFpbnN0Ll9sYXN0Q29sb3IpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXBwbHkgY29sb3IgdG8gYm90aCB0aGUgbGFzdCBhbmQgY3VycmVudCBjb2xvciBzaW5jZSB0aGUgY3VycmVudCBzdGF0ZSBpcyBjbGVhcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXN0Q29sb3Iuc3R5bGUuc2V0UHJvcGVydHkoJy0tcGNyLWNvbG9yJywgY3NzUkdCYVN0cmluZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGVyZSdzIGEgc3dhdGNoIHdoaWNoIGNvbG9yIG1hdGNoZXMgdGhlIGN1cnJlbnQgb25lXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhleGEgPSBjb2xvci50b0hFWEEoKS50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHtlbCwgY29sb3J9IG9mIGluc3QuX3N3YXRjaENvbG9ycykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZWwuY2xhc3NMaXN0W2hleGEgPT09IGNvbG9yLnRvSEVYQSgpLnRvU3RyaW5nKCkgPyAnYWRkJyA6ICdyZW1vdmUnXSgncGNyLWFjdGl2ZScpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gQ2hhbmdlIGN1cnJlbnQgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudENvbG9yLnN0eWxlLnNldFByb3BlcnR5KCctLXBjci1jb2xvcicsIGNzc1JHQmFTdHJpbmcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgICBodWU6IE1vdmVhYmxlKHtcbiAgICAgICAgICAgICAgICBsb2NrOiBzaCA9PT0gJ3YnID8gJ2gnIDogJ3YnLFxuICAgICAgICAgICAgICAgIGVsZW1lbnQ6IGluc3QuX3Jvb3QuaHVlLnBpY2tlcixcbiAgICAgICAgICAgICAgICB3cmFwcGVyOiBpbnN0Ll9yb290Lmh1ZS5zbGlkZXIsXG5cbiAgICAgICAgICAgICAgICBvbnN0b3A6ICgpID0+IGluc3QuX2VtaXQoJ2NoYW5nZXN0b3AnLCAnc2xpZGVyJywgaW5zdCksXG4gICAgICAgICAgICAgICAgb25jaGFuZ2Uodikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNzLmh1ZSB8fCAhY3MucGFsZXR0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29sb3IgPSBnZXRDb2xvcigpO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBodWVcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluc3QuX3JlY2FsYykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IuaCA9IHYgKiAzNjA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmJhY2tncm91bmRDb2xvciA9IGBoc2woJHtjb2xvci5ofSwgMTAwJSwgNTAlKWA7XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHMucGFsZXR0ZS50cmlnZ2VyKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgICAgIG9wYWNpdHk6IE1vdmVhYmxlKHtcbiAgICAgICAgICAgICAgICBsb2NrOiBzbyA9PT0gJ3YnID8gJ2gnIDogJ3YnLFxuICAgICAgICAgICAgICAgIGVsZW1lbnQ6IGluc3QuX3Jvb3Qub3BhY2l0eS5waWNrZXIsXG4gICAgICAgICAgICAgICAgd3JhcHBlcjogaW5zdC5fcm9vdC5vcGFjaXR5LnNsaWRlcixcblxuICAgICAgICAgICAgICAgIG9uc3RvcDogKCkgPT4gaW5zdC5fZW1pdCgnY2hhbmdlc3RvcCcsICdzbGlkZXInLCBpbnN0KSxcbiAgICAgICAgICAgICAgICBvbmNoYW5nZSh2KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghY3Mub3BhY2l0eSB8fCAhY3MucGFsZXR0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29sb3IgPSBnZXRDb2xvcigpO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBvcGFjaXR5XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnN0Ll9yZWNhbGMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yLmEgPSBNYXRoLnJvdW5kKHYgKiAxZTIpIC8gMTAwO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gVXBkYXRlIGNvbG9yXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kID0gYHJnYmEoMCwgMCwgMCwgJHtjb2xvci5hfSlgO1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRzLnBhbGV0dGUudHJpZ2dlcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgICBzZWxlY3RhYmxlOiBTZWxlY3RhYmxlKHtcbiAgICAgICAgICAgICAgICBlbGVtZW50czogaW5zdC5fcm9vdC5pbnRlcmFjdGlvbi5vcHRpb25zLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2FjdGl2ZScsXG5cbiAgICAgICAgICAgICAgICBvbmNoYW5nZShlKSB7XG4gICAgICAgICAgICAgICAgICAgIGluc3QuX3JlcHJlc2VudGF0aW9uID0gZS50YXJnZXQuZ2V0QXR0cmlidXRlKCdkYXRhLXR5cGUnKS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgICAgICAgICBpbnN0Ll9yZWNhbGMgJiYgaW5zdC5fdXBkYXRlT3V0cHV0KCdzd2F0Y2gnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuX2NvbXBvbmVudHMgPSBjb21wb25lbnRzO1xuICAgIH1cblxuICAgIF9iaW5kRXZlbnRzKCkge1xuICAgICAgICBjb25zdCB7X3Jvb3QsIG9wdGlvbnN9ID0gdGhpcztcblxuICAgICAgICBjb25zdCBldmVudEJpbmRpbmdzID0gW1xuXG4gICAgICAgICAgICAvLyBDbGVhciBjb2xvclxuICAgICAgICAgICAgXy5vbihfcm9vdC5pbnRlcmFjdGlvbi5jbGVhciwgJ2NsaWNrJywgKCkgPT4gdGhpcy5fY2xlYXJDb2xvcigpKSxcblxuICAgICAgICAgICAgLy8gU2VsZWN0IGxhc3QgY29sb3Igb24gY2xpY2tcbiAgICAgICAgICAgIF8ub24oW1xuICAgICAgICAgICAgICAgIF9yb290LmludGVyYWN0aW9uLmNhbmNlbCxcbiAgICAgICAgICAgICAgICBfcm9vdC5wcmV2aWV3Lmxhc3RDb2xvclxuICAgICAgICAgICAgXSwgJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0SFNWQSguLi4odGhpcy5fbGFzdENvbG9yIHx8IHRoaXMuX2NvbG9yKS50b0hTVkEoKSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdCgnY2FuY2VsJyk7XG4gICAgICAgICAgICB9KSxcblxuICAgICAgICAgICAgLy8gU2F2ZSBjb2xvclxuICAgICAgICAgICAgXy5vbihfcm9vdC5pbnRlcmFjdGlvbi5zYXZlLCAnY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgIXRoaXMuYXBwbHlDb2xvcigpICYmICFvcHRpb25zLnNob3dBbHdheXMgJiYgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICB9KSxcblxuICAgICAgICAgICAgLy8gVXNlciBpbnB1dFxuICAgICAgICAgICAgXy5vbihfcm9vdC5pbnRlcmFjdGlvbi5yZXN1bHQsIFsna2V5dXAnLCAnaW5wdXQnXSwgZSA9PiB7XG5cbiAgICAgICAgICAgICAgICAvLyBGaXJlIGxpc3RlbmVyIGlmIGluaXRpYWxpemF0aW9uIGlzIGZpbmlzaCBhbmQgY2hhbmdlZCBjb2xvciB3YXMgdmFsaWRcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zZXRDb2xvcihlLnRhcmdldC52YWx1ZSwgdHJ1ZSkgJiYgIXRoaXMuX2luaXRpYWxpemluZ0FjdGl2ZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0KCdjaGFuZ2UnLCB0aGlzLl9jb2xvciwgJ2lucHV0JywgdGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXQoJ2NoYW5nZXN0b3AnLCAnaW5wdXQnLCB0aGlzKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgICAgIC8vIERldGVjdCB1c2VyIGlucHV0IGFuZCBkaXNhYmxlIGF1dG8tcmVjYWxjdWxhdGlvblxuICAgICAgICAgICAgXy5vbihfcm9vdC5pbnRlcmFjdGlvbi5yZXN1bHQsIFsnZm9jdXMnLCAnYmx1ciddLCBlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZWNhbGMgPSBlLnR5cGUgPT09ICdibHVyJztcbiAgICAgICAgICAgICAgICB0aGlzLl9yZWNhbGMgJiYgdGhpcy5fdXBkYXRlT3V0cHV0KG51bGwpO1xuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgICAgIC8vIENhbmNlbCBpbnB1dCBkZXRlY3Rpb24gb24gY29sb3IgY2hhbmdlXG4gICAgICAgICAgICBfLm9uKFtcbiAgICAgICAgICAgICAgICBfcm9vdC5wYWxldHRlLnBhbGV0dGUsXG4gICAgICAgICAgICAgICAgX3Jvb3QucGFsZXR0ZS5waWNrZXIsXG4gICAgICAgICAgICAgICAgX3Jvb3QuaHVlLnNsaWRlcixcbiAgICAgICAgICAgICAgICBfcm9vdC5odWUucGlja2VyLFxuICAgICAgICAgICAgICAgIF9yb290Lm9wYWNpdHkuc2xpZGVyLFxuICAgICAgICAgICAgICAgIF9yb290Lm9wYWNpdHkucGlja2VyXG4gICAgICAgICAgICBdLCBbJ21vdXNlZG93bicsICd0b3VjaHN0YXJ0J10sICgpID0+IHRoaXMuX3JlY2FsYyA9IHRydWUsIHtwYXNzaXZlOiB0cnVlfSlcbiAgICAgICAgXTtcblxuICAgICAgICAvLyBQcm92aWRlIGhpZGluZyAvIHNob3dpbmcgYWJpbGl0aWVzIG9ubHkgaWYgc2hvd0Fsd2F5cyBpcyBmYWxzZVxuICAgICAgICBpZiAoIW9wdGlvbnMuc2hvd0Fsd2F5cykge1xuICAgICAgICAgICAgY29uc3QgY2sgPSBvcHRpb25zLmNsb3NlV2l0aEtleTtcblxuICAgICAgICAgICAgZXZlbnRCaW5kaW5ncy5wdXNoKFxuXG4gICAgICAgICAgICAgICAgLy8gU2F2ZSBhbmQgaGlkZSAvIHNob3cgcGlja2VyXG4gICAgICAgICAgICAgICAgXy5vbihfcm9vdC5idXR0b24sICdjbGljaycsICgpID0+IHRoaXMuaXNPcGVuKCkgPyB0aGlzLmhpZGUoKSA6IHRoaXMuc2hvdygpKSxcblxuICAgICAgICAgICAgICAgIC8vIENsb3NlIHdpdGggZXNjYXBlIGtleVxuICAgICAgICAgICAgICAgIF8ub24oZG9jdW1lbnQsICdrZXl1cCcsIGUgPT4gdGhpcy5pc09wZW4oKSAmJiAoZS5rZXkgPT09IGNrIHx8IGUuY29kZSA9PT0gY2spICYmIHRoaXMuaGlkZSgpKSxcblxuICAgICAgICAgICAgICAgIC8vIENhbmNlbCBzZWxlY3RpbmcgaWYgdGhlIHVzZXIgdGFwcyBiZWhpbmQgdGhlIGNvbG9yIHBpY2tlclxuICAgICAgICAgICAgICAgIF8ub24oZG9jdW1lbnQsIFsndG91Y2hzdGFydCcsICdtb3VzZWRvd24nXSwgZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT3BlbigpICYmICFfLmV2ZW50UGF0aChlKS5zb21lKGVsID0+IGVsID09PSBfcm9vdC5hcHAgfHwgZWwgPT09IF9yb290LmJ1dHRvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwge2NhcHR1cmU6IHRydWV9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE1ha2UgaW5wdXQgYWRqdXN0YWJsZSBpZiBlbmFibGVkXG4gICAgICAgIGlmIChvcHRpb25zLmFkanVzdGFibGVOdW1iZXJzKSB7XG4gICAgICAgICAgICBjb25zdCByYW5nZXMgPSB7XG4gICAgICAgICAgICAgICAgcmdiYTogWzI1NSwgMjU1LCAyNTUsIDFdLFxuICAgICAgICAgICAgICAgIGhzdmE6IFszNjAsIDEwMCwgMTAwLCAxXSxcbiAgICAgICAgICAgICAgICBoc2xhOiBbMzYwLCAxMDAsIDEwMCwgMV0sXG4gICAgICAgICAgICAgICAgY215azogWzEwMCwgMTAwLCAxMDAsIDEwMF1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIF8uYWRqdXN0YWJsZUlucHV0TnVtYmVycyhfcm9vdC5pbnRlcmFjdGlvbi5yZXN1bHQsIChvLCBzdGVwLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJhbmdlID0gcmFuZ2VzW3RoaXMuZ2V0Q29sb3JSZXByZXNlbnRhdGlvbigpLnRvTG93ZXJDYXNlKCldO1xuXG4gICAgICAgICAgICAgICAgaWYgKHJhbmdlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1heCA9IHJhbmdlW2luZGV4XTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBDYWxjdWxhdGUgbmV4dCByZWFzb25hYmxlIG51bWJlclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBudiA9IG8gKyAobWF4ID49IDEwMCA/IHN0ZXAgKiAxMDAwIDogc3RlcCk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gQXBwbHkgcmFuZ2Ugb2YgemVybyB1cCB0byBtYXgsIGZpeCBmbG9hdGluZy1wb2ludCBpc3N1ZXNcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG52IDw9IDAgPyAwIDogTnVtYmVyKChudiA8IG1heCA/IG52IDogbWF4KS50b1ByZWNpc2lvbigzKSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG87XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLmF1dG9SZXBvc2l0aW9uICYmICFvcHRpb25zLmlubGluZSkge1xuICAgICAgICAgICAgbGV0IHRpbWVvdXQgPSBudWxsO1xuICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG5cbiAgICAgICAgICAgIC8vIFJlLWNhbGMgcG9zaXRpb24gb24gd2luZG93IHJlc2l6ZSwgc2Nyb2xsIGFuZCB3aGVlbFxuICAgICAgICAgICAgZXZlbnRCaW5kaW5ncy5wdXNoKFxuICAgICAgICAgICAgICAgIF8ub24od2luZG93LCBbJ3Njcm9sbCcsICdyZXNpemUnXSwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5pc09wZW4oKSkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5jbG9zZU9uU2Nyb2xsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aW1lb3V0ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGltZW91dCA9IG51bGwsIDEwMCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgcG9zaXRpb24gb24gZXZlcnkgZnJhbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24gcnMoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX3JlUG9zaXRpb25pbmdQaWNrZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRpbWVvdXQgIT09IG51bGwpICYmIHJlcXVlc3RBbmltYXRpb25GcmFtZShycyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aW1lb3V0ID0gbnVsbCwgMTAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIHtjYXB0dXJlOiB0cnVlfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTYXZlIGJpbmRpbmdzXG4gICAgICAgIHRoaXMuX2V2ZW50QmluZGluZ3MgPSBldmVudEJpbmRpbmdzO1xuICAgIH1cblxuICAgIF9yZVBvc2l0aW9uaW5nUGlja2VyKCkge1xuICAgICAgICBjb25zdCB7b3B0aW9uc30gPSB0aGlzO1xuXG4gICAgICAgIC8vIE5vIHJlcG9zaXRpb25pbmcgbmVlZGVkIGlmIGlubGluZVxuICAgICAgICBpZiAoIW9wdGlvbnMuaW5saW5lKSB7XG4gICAgICAgICAgICBjb25zdCBzdWNjZXNzID0gdGhpcy5fbmFub3BvcC51cGRhdGUoe1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lcjogZG9jdW1lbnQuYm9keS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogb3B0aW9ucy5wb3NpdGlvblxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmICghc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVsID0gdGhpcy5fcm9vdC5hcHA7XG4gICAgICAgICAgICAgICAgY29uc3QgZWIgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICBlbC5zdHlsZS50b3AgPSBgJHsod2luZG93LmlubmVySGVpZ2h0IC0gZWIuaGVpZ2h0KSAvIDJ9cHhgO1xuICAgICAgICAgICAgICAgIGVsLnN0eWxlLmxlZnQgPSBgJHsod2luZG93LmlubmVyV2lkdGggLSBlYi53aWR0aCkgLyAyfXB4YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIF91cGRhdGVPdXRwdXQoZXZlbnRTb3VyY2UpIHtcbiAgICAgICAgY29uc3Qge19yb290LCBfY29sb3IsIG9wdGlvbnN9ID0gdGhpcztcblxuICAgICAgICAvLyBDaGVjayBpZiBjb21wb25lbnQgaXMgcHJlc2VudFxuICAgICAgICBpZiAoX3Jvb3QuaW50ZXJhY3Rpb24udHlwZSgpKSB7XG5cbiAgICAgICAgICAgIC8vIENvbnN0cnVjdCBmdW5jdGlvbiBuYW1lIGFuZCBjYWxsIGlmIHByZXNlbnRcbiAgICAgICAgICAgIGNvbnN0IG1ldGhvZCA9IGB0byR7X3Jvb3QuaW50ZXJhY3Rpb24udHlwZSgpLmdldEF0dHJpYnV0ZSgnZGF0YS10eXBlJyl9YDtcbiAgICAgICAgICAgIF9yb290LmludGVyYWN0aW9uLnJlc3VsdC52YWx1ZSA9IHR5cGVvZiBfY29sb3JbbWV0aG9kXSA9PT0gJ2Z1bmN0aW9uJyA/XG4gICAgICAgICAgICAgICAgX2NvbG9yW21ldGhvZF0oKS50b1N0cmluZyhvcHRpb25zLm91dHB1dFByZWNpc2lvbikgOiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZpcmUgbGlzdGVuZXIgaWYgaW5pdGlhbGl6YXRpb24gaXMgZmluaXNoXG4gICAgICAgIGlmICghdGhpcy5faW5pdGlhbGl6aW5nQWN0aXZlICYmIHRoaXMuX3JlY2FsYykge1xuICAgICAgICAgICAgdGhpcy5fZW1pdCgnY2hhbmdlJywgX2NvbG9yLCBldmVudFNvdXJjZSwgdGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBfY2xlYXJDb2xvcihzaWxlbnQgPSBmYWxzZSkge1xuICAgICAgICBjb25zdCB7X3Jvb3QsIG9wdGlvbnN9ID0gdGhpcztcblxuICAgICAgICAvLyBDaGFuZ2Ugb25seSB0aGUgYnV0dG9uIGNvbG9yIGlmIGl0IGlzbid0IGN1c3RvbWl6ZWRcbiAgICAgICAgaWYgKCFvcHRpb25zLnVzZUFzQnV0dG9uKSB7XG4gICAgICAgICAgICBfcm9vdC5idXR0b24uc3R5bGUuc2V0UHJvcGVydHkoJy0tcGNyLWNvbG9yJywgJ3JnYmEoMCwgMCwgMCwgMC4xNSknKTtcbiAgICAgICAgfVxuXG4gICAgICAgIF9yb290LmJ1dHRvbi5jbGFzc0xpc3QuYWRkKCdjbGVhcicpO1xuXG4gICAgICAgIGlmICghb3B0aW9ucy5zaG93QWx3YXlzKSB7XG4gICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2xhc3RDb2xvciA9IG51bGw7XG4gICAgICAgIGlmICghdGhpcy5faW5pdGlhbGl6aW5nQWN0aXZlICYmICFzaWxlbnQpIHtcblxuICAgICAgICAgICAgLy8gRmlyZSBsaXN0ZW5lclxuICAgICAgICAgICAgdGhpcy5fZW1pdCgnc2F2ZScsIG51bGwpO1xuICAgICAgICAgICAgdGhpcy5fZW1pdCgnY2xlYXInKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9wYXJzZUxvY2FsQ29sb3Ioc3RyKSB7XG4gICAgICAgIGNvbnN0IHt2YWx1ZXMsIHR5cGUsIGF9ID0gcGFyc2VUb0hTVkEoc3RyKTtcbiAgICAgICAgY29uc3Qge2xvY2tPcGFjaXR5fSA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgY29uc3QgYWxwaGFNYWtlc0FDaGFuZ2UgPSBhICE9PSB1bmRlZmluZWQgJiYgYSAhPT0gMTtcblxuICAgICAgICAvLyBJZiBubyBvcGFjaXR5IGlzIGFwcGxpZWQsIGFkZCB1bmRlZmluZWQgYXQgdGhlIHZlcnkgZW5kIHdoaWNoIGdldHNcbiAgICAgICAgLy8gU2V0IHRvIDEgaW4gc2V0SFNWQVxuICAgICAgICBpZiAodmFsdWVzICYmIHZhbHVlcy5sZW5ndGggPT09IDMpIHtcbiAgICAgICAgICAgIHZhbHVlc1szXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2YWx1ZXM6ICghdmFsdWVzIHx8IChsb2NrT3BhY2l0eSAmJiBhbHBoYU1ha2VzQUNoYW5nZSkpID8gbnVsbCA6IHZhbHVlcyxcbiAgICAgICAgICAgIHR5cGVcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBfdChrZXkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5pMThuW2tleV0gfHwgUGlja3IuSTE4Tl9ERUZBVUxUU1trZXldO1xuICAgIH1cblxuICAgIF9lbWl0KGV2ZW50LCAuLi5hcmdzKSB7XG4gICAgICAgIHRoaXMuX2V2ZW50TGlzdGVuZXJbZXZlbnRdLmZvckVhY2goY2IgPT4gY2IoLi4uYXJncywgdGhpcykpO1xuICAgIH1cblxuICAgIG9uKGV2ZW50LCBjYikge1xuICAgICAgICB0aGlzLl9ldmVudExpc3RlbmVyW2V2ZW50XS5wdXNoKGNiKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgb2ZmKGV2ZW50LCBjYikge1xuICAgICAgICBjb25zdCBjYWxsQmFja3MgPSAodGhpcy5fZXZlbnRMaXN0ZW5lcltldmVudF0gfHwgW10pO1xuICAgICAgICBjb25zdCBpbmRleCA9IGNhbGxCYWNrcy5pbmRleE9mKGNiKTtcblxuICAgICAgICBpZiAofmluZGV4KSB7XG4gICAgICAgICAgICBjYWxsQmFja3Muc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFwcGVuZHMgYSBjb2xvciB0byB0aGUgc3dhdGNoIHBhbGV0dGVcbiAgICAgKiBAcGFyYW0gY29sb3JcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBhZGRTd2F0Y2goY29sb3IpIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlc30gPSB0aGlzLl9wYXJzZUxvY2FsQ29sb3IoY29sb3IpO1xuXG4gICAgICAgIGlmICh2YWx1ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHtfc3dhdGNoQ29sb3JzLCBfcm9vdH0gPSB0aGlzO1xuICAgICAgICAgICAgY29uc3QgY29sb3IgPSBIU1ZhQ29sb3IoLi4udmFsdWVzKTtcblxuICAgICAgICAgICAgLy8gQ3JlYXRlIG5ldyBzd2F0Y2ggSFRNTEVsZW1lbnRcbiAgICAgICAgICAgIGNvbnN0IGVsID0gXy5jcmVhdGVFbGVtZW50RnJvbVN0cmluZyhcbiAgICAgICAgICAgICAgICBgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgc3R5bGU9XCItLXBjci1jb2xvcjogJHtjb2xvci50b1JHQkEoKS50b1N0cmluZygwKX1cIiBhcmlhLWxhYmVsPVwiJHt0aGlzLl90KCdidG46c3dhdGNoJyl9XCIvPmBcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIC8vIEFwcGVuZCBlbGVtZW50IGFuZCBzYXZlIHN3YXRjaCBkYXRhXG4gICAgICAgICAgICBfcm9vdC5zd2F0Y2hlcy5hcHBlbmRDaGlsZChlbCk7XG4gICAgICAgICAgICBfc3dhdGNoQ29sb3JzLnB1c2goe2VsLCBjb2xvcn0pO1xuXG4gICAgICAgICAgICAvLyBCaW5kIGV2ZW50XG4gICAgICAgICAgICB0aGlzLl9ldmVudEJpbmRpbmdzLnB1c2goXG4gICAgICAgICAgICAgICAgXy5vbihlbCwgJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEhTVkEoLi4uY29sb3IudG9IU1ZBKCksIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0KCdzd2F0Y2hzZWxlY3QnLCBjb2xvcik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXQoJ2NoYW5nZScsIGNvbG9yLCAnc3dhdGNoJywgdGhpcyk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgYSBzd2F0Y2ggY29sb3IgYnkgaXQncyBpbmRleFxuICAgICAqIEBwYXJhbSBpbmRleFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgICAqL1xuICAgIHJlbW92ZVN3YXRjaChpbmRleCkge1xuICAgICAgICBjb25zdCBzd2F0Y2hDb2xvciA9IHRoaXMuX3N3YXRjaENvbG9yc1tpbmRleF07XG5cbiAgICAgICAgLy8gQ2hlY2sgc3dhdGNoIGRhdGFcbiAgICAgICAgaWYgKHN3YXRjaENvbG9yKSB7XG4gICAgICAgICAgICBjb25zdCB7ZWx9ID0gc3dhdGNoQ29sb3I7XG5cbiAgICAgICAgICAgIC8vIFJlbW92ZSBIVE1MIGNoaWxkIGFuZCBzd2F0Y2ggZGF0YVxuICAgICAgICAgICAgdGhpcy5fcm9vdC5zd2F0Y2hlcy5yZW1vdmVDaGlsZChlbCk7XG4gICAgICAgICAgICB0aGlzLl9zd2F0Y2hDb2xvcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGFwcGx5Q29sb3Ioc2lsZW50ID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3Qge3ByZXZpZXcsIGJ1dHRvbn0gPSB0aGlzLl9yb290O1xuXG4gICAgICAgIC8vIENoYW5nZSBwcmV2aWV3IGFuZCBjdXJyZW50IGNvbG9yXG4gICAgICAgIGNvbnN0IGNzc1JHQmFTdHJpbmcgPSB0aGlzLl9jb2xvci50b1JHQkEoKS50b1N0cmluZygwKTtcbiAgICAgICAgcHJldmlldy5sYXN0Q29sb3Iuc3R5bGUuc2V0UHJvcGVydHkoJy0tcGNyLWNvbG9yJywgY3NzUkdCYVN0cmluZyk7XG5cbiAgICAgICAgLy8gQ2hhbmdlIG9ubHkgdGhlIGJ1dHRvbiBjb2xvciBpZiBpdCBpc24ndCBjdXN0b21pemVkXG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zLnVzZUFzQnV0dG9uKSB7XG4gICAgICAgICAgICBidXR0b24uc3R5bGUuc2V0UHJvcGVydHkoJy0tcGNyLWNvbG9yJywgY3NzUkdCYVN0cmluZyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBVc2VyIGNoYW5nZWQgdGhlIGNvbG9yIHNvIHJlbW92ZSB0aGUgY2xlYXIgY2xhc1xuICAgICAgICBidXR0b24uY2xhc3NMaXN0LnJlbW92ZSgnY2xlYXInKTtcblxuICAgICAgICAvLyBTYXZlIGxhc3QgY29sb3JcbiAgICAgICAgdGhpcy5fbGFzdENvbG9yID0gdGhpcy5fY29sb3IuY2xvbmUoKTtcblxuICAgICAgICAvLyBGaXJlIGxpc3RlbmVyXG4gICAgICAgIGlmICghdGhpcy5faW5pdGlhbGl6aW5nQWN0aXZlICYmICFzaWxlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXQoJ3NhdmUnLCB0aGlzLl9jb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXN0cm95J3MgYWxsIGZ1bmN0aW9uYWxpdHlzXG4gICAgICovXG4gICAgZGVzdHJveSgpIHtcblxuICAgICAgICAvLyBDYW5jZWwgc2V0dXAtZnJhbWUgaWYgc2V0XG4gICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX3NldHVwQW5pbWF0aW9uRnJhbWUpO1xuXG4gICAgICAgIC8vIFVuYmluZCBldmVudHNcbiAgICAgICAgdGhpcy5fZXZlbnRCaW5kaW5ncy5mb3JFYWNoKGFyZ3MgPT4gXy5vZmYoLi4uYXJncykpO1xuXG4gICAgICAgIC8vIERlc3Ryb3kgc3ViLWNvbXBvbmVudHNcbiAgICAgICAgT2JqZWN0LmtleXModGhpcy5fY29tcG9uZW50cylcbiAgICAgICAgICAgIC5mb3JFYWNoKGtleSA9PiB0aGlzLl9jb21wb25lbnRzW2tleV0uZGVzdHJveSgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXN0cm95J3MgYWxsIGZ1bmN0aW9uYWxpdHlzIGFuZCByZW1vdmVzXG4gICAgICogdGhlIHBpY2tyIGVsZW1lbnQuXG4gICAgICovXG4gICAgZGVzdHJveUFuZFJlbW92ZSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICAgIGNvbnN0IHtyb290LCBhcHB9ID0gdGhpcy5fcm9vdDtcblxuICAgICAgICAvLyBSZW1vdmUgZWxlbWVudFxuICAgICAgICBpZiAocm9vdC5wYXJlbnRFbGVtZW50KSB7XG4gICAgICAgICAgICByb290LnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQocm9vdCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZW1vdmUgLnBjci1hcHBcbiAgICAgICAgYXBwLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoYXBwKTtcblxuICAgICAgICAvLyBUaGVyZSBhcmUgcmVmZXJlbmNlcyB0byB2YXJpb3VzIERPTSBlbGVtZW50cyBzdG9yZWQgaW4gdGhlIHBpY2tyIGluc3RhbmNlXG4gICAgICAgIC8vIFRoaXMgY2xlYW5zIGFsbCBvZiB0aGVtIHRvIGF2b2lkIGRldGFjaGVkIERPTXNcbiAgICAgICAgT2JqZWN0LmtleXModGhpcylcbiAgICAgICAgICAgIC5mb3JFYWNoKGtleSA9PiB0aGlzW2tleV0gPSBudWxsKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIaWRlcyB0aGUgY29sb3ItcGlja2VyIHVpLlxuICAgICAqL1xuICAgIGhpZGUoKSB7XG4gICAgICAgIGlmICh0aGlzLmlzT3BlbigpKSB7XG4gICAgICAgICAgICB0aGlzLl9yb290LmFwcC5jbGFzc0xpc3QucmVtb3ZlKCd2aXNpYmxlJyk7XG4gICAgICAgICAgICB0aGlzLl9lbWl0KCdoaWRlJyk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93cyB0aGUgY29sb3ItcGlja2VyIHVpLlxuICAgICAqL1xuICAgIHNob3coKSB7XG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zLmRpc2FibGVkICYmICF0aGlzLmlzT3BlbigpKSB7XG4gICAgICAgICAgICB0aGlzLl9yb290LmFwcC5jbGFzc0xpc3QuYWRkKCd2aXNpYmxlJyk7XG4gICAgICAgICAgICB0aGlzLl9yZVBvc2l0aW9uaW5nUGlja2VyKCk7XG4gICAgICAgICAgICB0aGlzLl9lbWl0KCdzaG93JywgdGhpcy5fY29sb3IpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHJldHVybiB7Ym9vbGVhbn0gSWYgdGhlIGNvbG9yIHBpY2tlciBpcyBjdXJyZW50bHkgb3BlblxuICAgICAqL1xuICAgIGlzT3BlbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3QuYXBwLmNsYXNzTGlzdC5jb250YWlucygndmlzaWJsZScpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBhIHNwZWNpZmljIGNvbG9yLlxuICAgICAqIEBwYXJhbSBoIEh1ZVxuICAgICAqIEBwYXJhbSBzIFNhdHVyYXRpb25cbiAgICAgKiBAcGFyYW0gdiBWYWx1ZVxuICAgICAqIEBwYXJhbSBhIEFscGhhIGNoYW5uZWwgKDAgLSAxKVxuICAgICAqIEBwYXJhbSBzaWxlbnQgSWYgdGhlIGJ1dHRvbiBzaG91bGQgbm90IGNoYW5nZSB0aGUgY29sb3JcbiAgICAgKiBAcmV0dXJuIGJvb2xlYW4gaWYgdGhlIGNvbG9yIGhhcyBiZWVuIGFjY2VwdGVkXG4gICAgICovXG4gICAgc2V0SFNWQShoID0gMzYwLCBzID0gMCwgdiA9IDAsIGEgPSAxLCBzaWxlbnQgPSBmYWxzZSkge1xuXG4gICAgICAgIC8vIERlYWN0aXZhdGUgY29sb3IgY2FsY3VsYXRpb25cbiAgICAgICAgY29uc3QgcmVjYWxjID0gdGhpcy5fcmVjYWxjOyAvLyBTYXZlIHN0YXRlXG4gICAgICAgIHRoaXMuX3JlY2FsYyA9IGZhbHNlO1xuXG4gICAgICAgIC8vIFZhbGlkYXRlIGlucHV0XG4gICAgICAgIGlmIChoIDwgMCB8fCBoID4gMzYwIHx8IHMgPCAwIHx8IHMgPiAxMDAgfHwgdiA8IDAgfHwgdiA+IDEwMCB8fCBhIDwgMCB8fCBhID4gMSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT3ZlcnJpZGUgY3VycmVudCBjb2xvciBhbmQgcmUtYWN0aXZlIGNvbG9yIGNhbGN1bGF0aW9uXG4gICAgICAgIHRoaXMuX2NvbG9yID0gSFNWYUNvbG9yKGgsIHMsIHYsIGEpO1xuXG4gICAgICAgIC8vIFVwZGF0ZSBzbGlkZXIgYW5kIHBhbGV0dGVcbiAgICAgICAgY29uc3Qge2h1ZSwgb3BhY2l0eSwgcGFsZXR0ZX0gPSB0aGlzLl9jb21wb25lbnRzO1xuICAgICAgICBodWUudXBkYXRlKChoIC8gMzYwKSk7XG4gICAgICAgIG9wYWNpdHkudXBkYXRlKGEpO1xuICAgICAgICBwYWxldHRlLnVwZGF0ZShzIC8gMTAwLCAxIC0gKHYgLyAxMDApKTtcblxuICAgICAgICAvLyBDaGVjayBpZiBjYWxsIGlzIHNpbGVudFxuICAgICAgICBpZiAoIXNpbGVudCkge1xuICAgICAgICAgICAgdGhpcy5hcHBseUNvbG9yKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBVcGRhdGUgb3V0cHV0IGlmIHJlY2FsY3VsYXRpb24gaXMgZW5hYmxlZFxuICAgICAgICBpZiAocmVjYWxjKSB7XG4gICAgICAgICAgICB0aGlzLl91cGRhdGVPdXRwdXQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlc3RvcmUgb2xkIHN0YXRlXG4gICAgICAgIHRoaXMuX3JlY2FsYyA9IHJlY2FsYztcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHJpZXMgdG8gcGFyc2UgYSBzdHJpbmcgd2hpY2ggcmVwcmVzZW50cyBhIGNvbG9yLlxuICAgICAqIEV4YW1wbGVzOiAjZmZmXG4gICAgICogICAgICAgICAgIHJnYiAxMCAxMCAyMDBcbiAgICAgKiAgICAgICAgICAgaHN2YSAxMCAyMCA1IDAuNVxuICAgICAqIEBwYXJhbSBzdHJpbmdcbiAgICAgKiBAcGFyYW0gc2lsZW50XG4gICAgICovXG4gICAgc2V0Q29sb3Ioc3RyaW5nLCBzaWxlbnQgPSBmYWxzZSkge1xuXG4gICAgICAgIC8vIENoZWNrIGlmIG51bGxcbiAgICAgICAgaWYgKHN0cmluZyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5fY2xlYXJDb2xvcihzaWxlbnQpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7dmFsdWVzLCB0eXBlfSA9IHRoaXMuX3BhcnNlTG9jYWxDb2xvcihzdHJpbmcpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIGNvbG9yIGlzIG9rXG4gICAgICAgIGlmICh2YWx1ZXMpIHtcblxuICAgICAgICAgICAgLy8gQ2hhbmdlIHNlbGVjdGVkIGNvbG9yIGZvcm1hdFxuICAgICAgICAgICAgY29uc3QgdXR5cGUgPSB0eXBlLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICBjb25zdCB7b3B0aW9uc30gPSB0aGlzLl9yb290LmludGVyYWN0aW9uO1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gb3B0aW9ucy5maW5kKGVsID0+IGVsLmdldEF0dHJpYnV0ZSgnZGF0YS10eXBlJykgPT09IHV0eXBlKTtcblxuICAgICAgICAgICAgLy8gQXV0byBzZWxlY3Qgb25seSBpZiBub3QgaGlkZGVuXG4gICAgICAgICAgICBpZiAodGFyZ2V0ICYmICF0YXJnZXQuaGlkZGVuKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBlbCBvZiBvcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgIGVsLmNsYXNzTGlzdFtlbCA9PT0gdGFyZ2V0ID8gJ2FkZCcgOiAncmVtb3ZlJ10oJ2FjdGl2ZScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVXBkYXRlIGNvbG9yIChmaXJlcyAnc2F2ZScgZXZlbnQgaWYgc2lsZW50IGlzICdmYWxzZScpXG4gICAgICAgICAgICBpZiAoIXRoaXMuc2V0SFNWQSguLi52YWx1ZXMsIHNpbGVudCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFVwZGF0ZSByZXByZXNlbnRhdGlvbiAoZmlyZXMgJ2NoYW5nZScgZXZlbnQpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZXRDb2xvclJlcHJlc2VudGF0aW9uKHV0eXBlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGFuZ2VzIHRoZSBjb2xvciBfcmVwcmVzZW50YXRpb24uXG4gICAgICogQWxsb3dlZCB2YWx1ZXMgYXJlIEhFWCwgUkdCLCBIU1YsIEhTTCBhbmQgQ01ZS1xuICAgICAqIEBwYXJhbSB0eXBlXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IGlmIHRoZSBzZWxlY3RlZCB0eXBlIHdhcyB2YWxpZC5cbiAgICAgKi9cbiAgICBzZXRDb2xvclJlcHJlc2VudGF0aW9uKHR5cGUpIHtcblxuICAgICAgICAvLyBGb3JjZSB1cHBlcmNhc2UgdG8gYWxsb3cgYSBjYXNlLXNlbnNpdGl2IGNvbXBhcmlzb25cbiAgICAgICAgdHlwZSA9IHR5cGUudG9VcHBlckNhc2UoKTtcblxuICAgICAgICAvLyBGaW5kIGJ1dHRvbiB3aXRoIGdpdmVuIHR5cGUgYW5kIHRyaWdnZXIgY2xpY2sgZXZlbnRcbiAgICAgICAgcmV0dXJuICEhdGhpcy5fcm9vdC5pbnRlcmFjdGlvbi5vcHRpb25zXG4gICAgICAgICAgICAuZmluZCh2ID0+IHYuZ2V0QXR0cmlidXRlKCdkYXRhLXR5cGUnKS5zdGFydHNXaXRoKHR5cGUpICYmICF2LmNsaWNrKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgY29sb3IgcmVwcmVzZW50YWlvbi4gU2VlIHNldENvbG9yUmVwcmVzZW50YXRpb25cbiAgICAgKiBAcmV0dXJucyB7Kn1cbiAgICAgKi9cbiAgICBnZXRDb2xvclJlcHJlc2VudGF0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVwcmVzZW50YXRpb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHJldHVybnMgSFNWYUNvbG9yIEN1cnJlbnQgSFNWYUNvbG9yIG9iamVjdC5cbiAgICAgKi9cbiAgICBnZXRDb2xvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbG9yO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBjb2xvci5cbiAgICAgKiBAcmV0dXJucyB7e2EsIHRvSFNWQSwgdG9IRVhBLCBzLCB2LCBoLCBjbG9uZSwgdG9DTVlLLCB0b0hTTEEsIHRvUkdCQX19XG4gICAgICovXG4gICAgZ2V0U2VsZWN0ZWRDb2xvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xhc3RDb2xvcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBUaGUgcm9vdCBIVE1MRWxlbWVudCB3aXRoIGFsbCBoaXMgY29tcG9uZW50cy5cbiAgICAgKi9cbiAgICBnZXRSb290KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcm9vdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEaXNhYmxlIHBpY2tyXG4gICAgICovXG4gICAgZGlzYWJsZSgpIHtcbiAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgIHRoaXMub3B0aW9ucy5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuX3Jvb3QuYnV0dG9uLmNsYXNzTGlzdC5hZGQoJ2Rpc2FibGVkJyk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVuYWJsZSBwaWNrclxuICAgICAqL1xuICAgIGVuYWJsZSgpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3Jvb3QuYnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoJ2Rpc2FibGVkJyk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn1cbiIsICIoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuXHR0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcgPyBtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKSA6XG5cdHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShmYWN0b3J5KSA6XG5cdChnbG9iYWwuSlNPTjUgPSBmYWN0b3J5KCkpO1xufSh0aGlzLCAoZnVuY3Rpb24gKCkgeyAndXNlIHN0cmljdCc7XG5cblx0ZnVuY3Rpb24gY3JlYXRlQ29tbW9uanNNb2R1bGUoZm4sIG1vZHVsZSkge1xuXHRcdHJldHVybiBtb2R1bGUgPSB7IGV4cG9ydHM6IHt9IH0sIGZuKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMpLCBtb2R1bGUuZXhwb3J0cztcblx0fVxuXG5cdHZhciBfZ2xvYmFsID0gY3JlYXRlQ29tbW9uanNNb2R1bGUoZnVuY3Rpb24gKG1vZHVsZSkge1xuXHQvLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvODYjaXNzdWVjb21tZW50LTExNTc1OTAyOFxuXHR2YXIgZ2xvYmFsID0gbW9kdWxlLmV4cG9ydHMgPSB0eXBlb2Ygd2luZG93ICE9ICd1bmRlZmluZWQnICYmIHdpbmRvdy5NYXRoID09IE1hdGhcblx0ICA/IHdpbmRvdyA6IHR5cGVvZiBzZWxmICE9ICd1bmRlZmluZWQnICYmIHNlbGYuTWF0aCA9PSBNYXRoID8gc2VsZlxuXHQgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXctZnVuY1xuXHQgIDogRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblx0aWYgKHR5cGVvZiBfX2cgPT0gJ251bWJlcicpIHsgX19nID0gZ2xvYmFsOyB9IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZWZcblx0fSk7XG5cblx0dmFyIF9jb3JlID0gY3JlYXRlQ29tbW9uanNNb2R1bGUoZnVuY3Rpb24gKG1vZHVsZSkge1xuXHR2YXIgY29yZSA9IG1vZHVsZS5leHBvcnRzID0geyB2ZXJzaW9uOiAnMi42LjUnIH07XG5cdGlmICh0eXBlb2YgX19lID09ICdudW1iZXInKSB7IF9fZSA9IGNvcmU7IH0gLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuXHR9KTtcblx0dmFyIF9jb3JlXzEgPSBfY29yZS52ZXJzaW9uO1xuXG5cdHZhciBfaXNPYmplY3QgPSBmdW5jdGlvbiAoaXQpIHtcblx0ICByZXR1cm4gdHlwZW9mIGl0ID09PSAnb2JqZWN0JyA/IGl0ICE9PSBudWxsIDogdHlwZW9mIGl0ID09PSAnZnVuY3Rpb24nO1xuXHR9O1xuXG5cdHZhciBfYW5PYmplY3QgPSBmdW5jdGlvbiAoaXQpIHtcblx0ICBpZiAoIV9pc09iamVjdChpdCkpIHsgdGhyb3cgVHlwZUVycm9yKGl0ICsgJyBpcyBub3QgYW4gb2JqZWN0IScpOyB9XG5cdCAgcmV0dXJuIGl0O1xuXHR9O1xuXG5cdHZhciBfZmFpbHMgPSBmdW5jdGlvbiAoZXhlYykge1xuXHQgIHRyeSB7XG5cdCAgICByZXR1cm4gISFleGVjKCk7XG5cdCAgfSBjYXRjaCAoZSkge1xuXHQgICAgcmV0dXJuIHRydWU7XG5cdCAgfVxuXHR9O1xuXG5cdC8vIFRoYW5rJ3MgSUU4IGZvciBoaXMgZnVubnkgZGVmaW5lUHJvcGVydHlcblx0dmFyIF9kZXNjcmlwdG9ycyA9ICFfZmFpbHMoZnVuY3Rpb24gKCkge1xuXHQgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdhJywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSkuYSAhPSA3O1xuXHR9KTtcblxuXHR2YXIgZG9jdW1lbnQgPSBfZ2xvYmFsLmRvY3VtZW50O1xuXHQvLyB0eXBlb2YgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBpcyAnb2JqZWN0JyBpbiBvbGQgSUVcblx0dmFyIGlzID0gX2lzT2JqZWN0KGRvY3VtZW50KSAmJiBfaXNPYmplY3QoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG5cdHZhciBfZG9tQ3JlYXRlID0gZnVuY3Rpb24gKGl0KSB7XG5cdCAgcmV0dXJuIGlzID8gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpdCkgOiB7fTtcblx0fTtcblxuXHR2YXIgX2llOERvbURlZmluZSA9ICFfZGVzY3JpcHRvcnMgJiYgIV9mYWlscyhmdW5jdGlvbiAoKSB7XG5cdCAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfZG9tQ3JlYXRlKCdkaXYnKSwgJ2EnLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfSB9KS5hICE9IDc7XG5cdH0pO1xuXG5cdC8vIDcuMS4xIFRvUHJpbWl0aXZlKGlucHV0IFssIFByZWZlcnJlZFR5cGVdKVxuXG5cdC8vIGluc3RlYWQgb2YgdGhlIEVTNiBzcGVjIHZlcnNpb24sIHdlIGRpZG4ndCBpbXBsZW1lbnQgQEB0b1ByaW1pdGl2ZSBjYXNlXG5cdC8vIGFuZCB0aGUgc2Vjb25kIGFyZ3VtZW50IC0gZmxhZyAtIHByZWZlcnJlZCB0eXBlIGlzIGEgc3RyaW5nXG5cdHZhciBfdG9QcmltaXRpdmUgPSBmdW5jdGlvbiAoaXQsIFMpIHtcblx0ICBpZiAoIV9pc09iamVjdChpdCkpIHsgcmV0dXJuIGl0OyB9XG5cdCAgdmFyIGZuLCB2YWw7XG5cdCAgaWYgKFMgJiYgdHlwZW9mIChmbiA9IGl0LnRvU3RyaW5nKSA9PSAnZnVuY3Rpb24nICYmICFfaXNPYmplY3QodmFsID0gZm4uY2FsbChpdCkpKSB7IHJldHVybiB2YWw7IH1cblx0ICBpZiAodHlwZW9mIChmbiA9IGl0LnZhbHVlT2YpID09ICdmdW5jdGlvbicgJiYgIV9pc09iamVjdCh2YWwgPSBmbi5jYWxsKGl0KSkpIHsgcmV0dXJuIHZhbDsgfVxuXHQgIGlmICghUyAmJiB0eXBlb2YgKGZuID0gaXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIV9pc09iamVjdCh2YWwgPSBmbi5jYWxsKGl0KSkpIHsgcmV0dXJuIHZhbDsgfVxuXHQgIHRocm93IFR5cGVFcnJvcihcIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZVwiKTtcblx0fTtcblxuXHR2YXIgZFAgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG5cblx0dmFyIGYgPSBfZGVzY3JpcHRvcnMgPyBPYmplY3QuZGVmaW5lUHJvcGVydHkgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKSB7XG5cdCAgX2FuT2JqZWN0KE8pO1xuXHQgIFAgPSBfdG9QcmltaXRpdmUoUCwgdHJ1ZSk7XG5cdCAgX2FuT2JqZWN0KEF0dHJpYnV0ZXMpO1xuXHQgIGlmIChfaWU4RG9tRGVmaW5lKSB7IHRyeSB7XG5cdCAgICByZXR1cm4gZFAoTywgUCwgQXR0cmlidXRlcyk7XG5cdCAgfSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9IH1cblx0ICBpZiAoJ2dldCcgaW4gQXR0cmlidXRlcyB8fCAnc2V0JyBpbiBBdHRyaWJ1dGVzKSB7IHRocm93IFR5cGVFcnJvcignQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQhJyk7IH1cblx0ICBpZiAoJ3ZhbHVlJyBpbiBBdHRyaWJ1dGVzKSB7IE9bUF0gPSBBdHRyaWJ1dGVzLnZhbHVlOyB9XG5cdCAgcmV0dXJuIE87XG5cdH07XG5cblx0dmFyIF9vYmplY3REcCA9IHtcblx0XHRmOiBmXG5cdH07XG5cblx0dmFyIF9wcm9wZXJ0eURlc2MgPSBmdW5jdGlvbiAoYml0bWFwLCB2YWx1ZSkge1xuXHQgIHJldHVybiB7XG5cdCAgICBlbnVtZXJhYmxlOiAhKGJpdG1hcCAmIDEpLFxuXHQgICAgY29uZmlndXJhYmxlOiAhKGJpdG1hcCAmIDIpLFxuXHQgICAgd3JpdGFibGU6ICEoYml0bWFwICYgNCksXG5cdCAgICB2YWx1ZTogdmFsdWVcblx0ICB9O1xuXHR9O1xuXG5cdHZhciBfaGlkZSA9IF9kZXNjcmlwdG9ycyA/IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcblx0ICByZXR1cm4gX29iamVjdERwLmYob2JqZWN0LCBrZXksIF9wcm9wZXJ0eURlc2MoMSwgdmFsdWUpKTtcblx0fSA6IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcblx0ICBvYmplY3Rba2V5XSA9IHZhbHVlO1xuXHQgIHJldHVybiBvYmplY3Q7XG5cdH07XG5cblx0dmFyIGhhc093blByb3BlcnR5ID0ge30uaGFzT3duUHJvcGVydHk7XG5cdHZhciBfaGFzID0gZnVuY3Rpb24gKGl0LCBrZXkpIHtcblx0ICByZXR1cm4gaGFzT3duUHJvcGVydHkuY2FsbChpdCwga2V5KTtcblx0fTtcblxuXHR2YXIgaWQgPSAwO1xuXHR2YXIgcHggPSBNYXRoLnJhbmRvbSgpO1xuXHR2YXIgX3VpZCA9IGZ1bmN0aW9uIChrZXkpIHtcblx0ICByZXR1cm4gJ1N5bWJvbCgnLmNvbmNhdChrZXkgPT09IHVuZGVmaW5lZCA/ICcnIDoga2V5LCAnKV8nLCAoKytpZCArIHB4KS50b1N0cmluZygzNikpO1xuXHR9O1xuXG5cdHZhciBfbGlicmFyeSA9IGZhbHNlO1xuXG5cdHZhciBfc2hhcmVkID0gY3JlYXRlQ29tbW9uanNNb2R1bGUoZnVuY3Rpb24gKG1vZHVsZSkge1xuXHR2YXIgU0hBUkVEID0gJ19fY29yZS1qc19zaGFyZWRfXyc7XG5cdHZhciBzdG9yZSA9IF9nbG9iYWxbU0hBUkVEXSB8fCAoX2dsb2JhbFtTSEFSRURdID0ge30pO1xuXG5cdChtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG5cdCAgcmV0dXJuIHN0b3JlW2tleV0gfHwgKHN0b3JlW2tleV0gPSB2YWx1ZSAhPT0gdW5kZWZpbmVkID8gdmFsdWUgOiB7fSk7XG5cdH0pKCd2ZXJzaW9ucycsIFtdKS5wdXNoKHtcblx0ICB2ZXJzaW9uOiBfY29yZS52ZXJzaW9uLFxuXHQgIG1vZGU6IF9saWJyYXJ5ID8gJ3B1cmUnIDogJ2dsb2JhbCcsXG5cdCAgY29weXJpZ2h0OiAnXHUwMEE5IDIwMTkgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSknXG5cdH0pO1xuXHR9KTtcblxuXHR2YXIgX2Z1bmN0aW9uVG9TdHJpbmcgPSBfc2hhcmVkKCduYXRpdmUtZnVuY3Rpb24tdG8tc3RyaW5nJywgRnVuY3Rpb24udG9TdHJpbmcpO1xuXG5cdHZhciBfcmVkZWZpbmUgPSBjcmVhdGVDb21tb25qc01vZHVsZShmdW5jdGlvbiAobW9kdWxlKSB7XG5cdHZhciBTUkMgPSBfdWlkKCdzcmMnKTtcblxuXHR2YXIgVE9fU1RSSU5HID0gJ3RvU3RyaW5nJztcblx0dmFyIFRQTCA9ICgnJyArIF9mdW5jdGlvblRvU3RyaW5nKS5zcGxpdChUT19TVFJJTkcpO1xuXG5cdF9jb3JlLmluc3BlY3RTb3VyY2UgPSBmdW5jdGlvbiAoaXQpIHtcblx0ICByZXR1cm4gX2Z1bmN0aW9uVG9TdHJpbmcuY2FsbChpdCk7XG5cdH07XG5cblx0KG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKE8sIGtleSwgdmFsLCBzYWZlKSB7XG5cdCAgdmFyIGlzRnVuY3Rpb24gPSB0eXBlb2YgdmFsID09ICdmdW5jdGlvbic7XG5cdCAgaWYgKGlzRnVuY3Rpb24pIHsgX2hhcyh2YWwsICduYW1lJykgfHwgX2hpZGUodmFsLCAnbmFtZScsIGtleSk7IH1cblx0ICBpZiAoT1trZXldID09PSB2YWwpIHsgcmV0dXJuOyB9XG5cdCAgaWYgKGlzRnVuY3Rpb24pIHsgX2hhcyh2YWwsIFNSQykgfHwgX2hpZGUodmFsLCBTUkMsIE9ba2V5XSA/ICcnICsgT1trZXldIDogVFBMLmpvaW4oU3RyaW5nKGtleSkpKTsgfVxuXHQgIGlmIChPID09PSBfZ2xvYmFsKSB7XG5cdCAgICBPW2tleV0gPSB2YWw7XG5cdCAgfSBlbHNlIGlmICghc2FmZSkge1xuXHQgICAgZGVsZXRlIE9ba2V5XTtcblx0ICAgIF9oaWRlKE8sIGtleSwgdmFsKTtcblx0ICB9IGVsc2UgaWYgKE9ba2V5XSkge1xuXHQgICAgT1trZXldID0gdmFsO1xuXHQgIH0gZWxzZSB7XG5cdCAgICBfaGlkZShPLCBrZXksIHZhbCk7XG5cdCAgfVxuXHQvLyBhZGQgZmFrZSBGdW5jdGlvbiN0b1N0cmluZyBmb3IgY29ycmVjdCB3b3JrIHdyYXBwZWQgbWV0aG9kcyAvIGNvbnN0cnVjdG9ycyB3aXRoIG1ldGhvZHMgbGlrZSBMb0Rhc2ggaXNOYXRpdmVcblx0fSkoRnVuY3Rpb24ucHJvdG90eXBlLCBUT19TVFJJTkcsIGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuXHQgIHJldHVybiB0eXBlb2YgdGhpcyA9PSAnZnVuY3Rpb24nICYmIHRoaXNbU1JDXSB8fCBfZnVuY3Rpb25Ub1N0cmluZy5jYWxsKHRoaXMpO1xuXHR9KTtcblx0fSk7XG5cblx0dmFyIF9hRnVuY3Rpb24gPSBmdW5jdGlvbiAoaXQpIHtcblx0ICBpZiAodHlwZW9mIGl0ICE9ICdmdW5jdGlvbicpIHsgdGhyb3cgVHlwZUVycm9yKGl0ICsgJyBpcyBub3QgYSBmdW5jdGlvbiEnKTsgfVxuXHQgIHJldHVybiBpdDtcblx0fTtcblxuXHQvLyBvcHRpb25hbCAvIHNpbXBsZSBjb250ZXh0IGJpbmRpbmdcblxuXHR2YXIgX2N0eCA9IGZ1bmN0aW9uIChmbiwgdGhhdCwgbGVuZ3RoKSB7XG5cdCAgX2FGdW5jdGlvbihmbik7XG5cdCAgaWYgKHRoYXQgPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gZm47IH1cblx0ICBzd2l0Y2ggKGxlbmd0aCkge1xuXHQgICAgY2FzZSAxOiByZXR1cm4gZnVuY3Rpb24gKGEpIHtcblx0ICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSk7XG5cdCAgICB9O1xuXHQgICAgY2FzZSAyOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIpIHtcblx0ICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSwgYik7XG5cdCAgICB9O1xuXHQgICAgY2FzZSAzOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIsIGMpIHtcblx0ICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSwgYiwgYyk7XG5cdCAgICB9O1xuXHQgIH1cblx0ICByZXR1cm4gZnVuY3Rpb24gKC8qIC4uLmFyZ3MgKi8pIHtcblx0ICAgIHJldHVybiBmbi5hcHBseSh0aGF0LCBhcmd1bWVudHMpO1xuXHQgIH07XG5cdH07XG5cblx0dmFyIFBST1RPVFlQRSA9ICdwcm90b3R5cGUnO1xuXG5cdHZhciAkZXhwb3J0ID0gZnVuY3Rpb24gKHR5cGUsIG5hbWUsIHNvdXJjZSkge1xuXHQgIHZhciBJU19GT1JDRUQgPSB0eXBlICYgJGV4cG9ydC5GO1xuXHQgIHZhciBJU19HTE9CQUwgPSB0eXBlICYgJGV4cG9ydC5HO1xuXHQgIHZhciBJU19TVEFUSUMgPSB0eXBlICYgJGV4cG9ydC5TO1xuXHQgIHZhciBJU19QUk9UTyA9IHR5cGUgJiAkZXhwb3J0LlA7XG5cdCAgdmFyIElTX0JJTkQgPSB0eXBlICYgJGV4cG9ydC5CO1xuXHQgIHZhciB0YXJnZXQgPSBJU19HTE9CQUwgPyBfZ2xvYmFsIDogSVNfU1RBVElDID8gX2dsb2JhbFtuYW1lXSB8fCAoX2dsb2JhbFtuYW1lXSA9IHt9KSA6IChfZ2xvYmFsW25hbWVdIHx8IHt9KVtQUk9UT1RZUEVdO1xuXHQgIHZhciBleHBvcnRzID0gSVNfR0xPQkFMID8gX2NvcmUgOiBfY29yZVtuYW1lXSB8fCAoX2NvcmVbbmFtZV0gPSB7fSk7XG5cdCAgdmFyIGV4cFByb3RvID0gZXhwb3J0c1tQUk9UT1RZUEVdIHx8IChleHBvcnRzW1BST1RPVFlQRV0gPSB7fSk7XG5cdCAgdmFyIGtleSwgb3duLCBvdXQsIGV4cDtcblx0ICBpZiAoSVNfR0xPQkFMKSB7IHNvdXJjZSA9IG5hbWU7IH1cblx0ICBmb3IgKGtleSBpbiBzb3VyY2UpIHtcblx0ICAgIC8vIGNvbnRhaW5zIGluIG5hdGl2ZVxuXHQgICAgb3duID0gIUlTX0ZPUkNFRCAmJiB0YXJnZXQgJiYgdGFyZ2V0W2tleV0gIT09IHVuZGVmaW5lZDtcblx0ICAgIC8vIGV4cG9ydCBuYXRpdmUgb3IgcGFzc2VkXG5cdCAgICBvdXQgPSAob3duID8gdGFyZ2V0IDogc291cmNlKVtrZXldO1xuXHQgICAgLy8gYmluZCB0aW1lcnMgdG8gZ2xvYmFsIGZvciBjYWxsIGZyb20gZXhwb3J0IGNvbnRleHRcblx0ICAgIGV4cCA9IElTX0JJTkQgJiYgb3duID8gX2N0eChvdXQsIF9nbG9iYWwpIDogSVNfUFJPVE8gJiYgdHlwZW9mIG91dCA9PSAnZnVuY3Rpb24nID8gX2N0eChGdW5jdGlvbi5jYWxsLCBvdXQpIDogb3V0O1xuXHQgICAgLy8gZXh0ZW5kIGdsb2JhbFxuXHQgICAgaWYgKHRhcmdldCkgeyBfcmVkZWZpbmUodGFyZ2V0LCBrZXksIG91dCwgdHlwZSAmICRleHBvcnQuVSk7IH1cblx0ICAgIC8vIGV4cG9ydFxuXHQgICAgaWYgKGV4cG9ydHNba2V5XSAhPSBvdXQpIHsgX2hpZGUoZXhwb3J0cywga2V5LCBleHApOyB9XG5cdCAgICBpZiAoSVNfUFJPVE8gJiYgZXhwUHJvdG9ba2V5XSAhPSBvdXQpIHsgZXhwUHJvdG9ba2V5XSA9IG91dDsgfVxuXHQgIH1cblx0fTtcblx0X2dsb2JhbC5jb3JlID0gX2NvcmU7XG5cdC8vIHR5cGUgYml0bWFwXG5cdCRleHBvcnQuRiA9IDE7ICAgLy8gZm9yY2VkXG5cdCRleHBvcnQuRyA9IDI7ICAgLy8gZ2xvYmFsXG5cdCRleHBvcnQuUyA9IDQ7ICAgLy8gc3RhdGljXG5cdCRleHBvcnQuUCA9IDg7ICAgLy8gcHJvdG9cblx0JGV4cG9ydC5CID0gMTY7ICAvLyBiaW5kXG5cdCRleHBvcnQuVyA9IDMyOyAgLy8gd3JhcFxuXHQkZXhwb3J0LlUgPSA2NDsgIC8vIHNhZmVcblx0JGV4cG9ydC5SID0gMTI4OyAvLyByZWFsIHByb3RvIG1ldGhvZCBmb3IgYGxpYnJhcnlgXG5cdHZhciBfZXhwb3J0ID0gJGV4cG9ydDtcblxuXHQvLyA3LjEuNCBUb0ludGVnZXJcblx0dmFyIGNlaWwgPSBNYXRoLmNlaWw7XG5cdHZhciBmbG9vciA9IE1hdGguZmxvb3I7XG5cdHZhciBfdG9JbnRlZ2VyID0gZnVuY3Rpb24gKGl0KSB7XG5cdCAgcmV0dXJuIGlzTmFOKGl0ID0gK2l0KSA/IDAgOiAoaXQgPiAwID8gZmxvb3IgOiBjZWlsKShpdCk7XG5cdH07XG5cblx0Ly8gNy4yLjEgUmVxdWlyZU9iamVjdENvZXJjaWJsZShhcmd1bWVudClcblx0dmFyIF9kZWZpbmVkID0gZnVuY3Rpb24gKGl0KSB7XG5cdCAgaWYgKGl0ID09IHVuZGVmaW5lZCkgeyB0aHJvdyBUeXBlRXJyb3IoXCJDYW4ndCBjYWxsIG1ldGhvZCBvbiAgXCIgKyBpdCk7IH1cblx0ICByZXR1cm4gaXQ7XG5cdH07XG5cblx0Ly8gdHJ1ZSAgLT4gU3RyaW5nI2F0XG5cdC8vIGZhbHNlIC0+IFN0cmluZyNjb2RlUG9pbnRBdFxuXHR2YXIgX3N0cmluZ0F0ID0gZnVuY3Rpb24gKFRPX1NUUklORykge1xuXHQgIHJldHVybiBmdW5jdGlvbiAodGhhdCwgcG9zKSB7XG5cdCAgICB2YXIgcyA9IFN0cmluZyhfZGVmaW5lZCh0aGF0KSk7XG5cdCAgICB2YXIgaSA9IF90b0ludGVnZXIocG9zKTtcblx0ICAgIHZhciBsID0gcy5sZW5ndGg7XG5cdCAgICB2YXIgYSwgYjtcblx0ICAgIGlmIChpIDwgMCB8fCBpID49IGwpIHsgcmV0dXJuIFRPX1NUUklORyA/ICcnIDogdW5kZWZpbmVkOyB9XG5cdCAgICBhID0gcy5jaGFyQ29kZUF0KGkpO1xuXHQgICAgcmV0dXJuIGEgPCAweGQ4MDAgfHwgYSA+IDB4ZGJmZiB8fCBpICsgMSA9PT0gbCB8fCAoYiA9IHMuY2hhckNvZGVBdChpICsgMSkpIDwgMHhkYzAwIHx8IGIgPiAweGRmZmZcblx0ICAgICAgPyBUT19TVFJJTkcgPyBzLmNoYXJBdChpKSA6IGFcblx0ICAgICAgOiBUT19TVFJJTkcgPyBzLnNsaWNlKGksIGkgKyAyKSA6IChhIC0gMHhkODAwIDw8IDEwKSArIChiIC0gMHhkYzAwKSArIDB4MTAwMDA7XG5cdCAgfTtcblx0fTtcblxuXHR2YXIgJGF0ID0gX3N0cmluZ0F0KGZhbHNlKTtcblx0X2V4cG9ydChfZXhwb3J0LlAsICdTdHJpbmcnLCB7XG5cdCAgLy8gMjEuMS4zLjMgU3RyaW5nLnByb3RvdHlwZS5jb2RlUG9pbnRBdChwb3MpXG5cdCAgY29kZVBvaW50QXQ6IGZ1bmN0aW9uIGNvZGVQb2ludEF0KHBvcykge1xuXHQgICAgcmV0dXJuICRhdCh0aGlzLCBwb3MpO1xuXHQgIH1cblx0fSk7XG5cblx0dmFyIGNvZGVQb2ludEF0ID0gX2NvcmUuU3RyaW5nLmNvZGVQb2ludEF0O1xuXG5cdHZhciBtYXggPSBNYXRoLm1heDtcblx0dmFyIG1pbiA9IE1hdGgubWluO1xuXHR2YXIgX3RvQWJzb2x1dGVJbmRleCA9IGZ1bmN0aW9uIChpbmRleCwgbGVuZ3RoKSB7XG5cdCAgaW5kZXggPSBfdG9JbnRlZ2VyKGluZGV4KTtcblx0ICByZXR1cm4gaW5kZXggPCAwID8gbWF4KGluZGV4ICsgbGVuZ3RoLCAwKSA6IG1pbihpbmRleCwgbGVuZ3RoKTtcblx0fTtcblxuXHR2YXIgZnJvbUNoYXJDb2RlID0gU3RyaW5nLmZyb21DaGFyQ29kZTtcblx0dmFyICRmcm9tQ29kZVBvaW50ID0gU3RyaW5nLmZyb21Db2RlUG9pbnQ7XG5cblx0Ly8gbGVuZ3RoIHNob3VsZCBiZSAxLCBvbGQgRkYgcHJvYmxlbVxuXHRfZXhwb3J0KF9leHBvcnQuUyArIF9leHBvcnQuRiAqICghISRmcm9tQ29kZVBvaW50ICYmICRmcm9tQ29kZVBvaW50Lmxlbmd0aCAhPSAxKSwgJ1N0cmluZycsIHtcblx0ICAvLyAyMS4xLjIuMiBTdHJpbmcuZnJvbUNvZGVQb2ludCguLi5jb2RlUG9pbnRzKVxuXHQgIGZyb21Db2RlUG9pbnQ6IGZ1bmN0aW9uIGZyb21Db2RlUG9pbnQoeCkge1xuXHQgICAgdmFyIGFyZ3VtZW50cyQxID0gYXJndW1lbnRzO1xuXHQgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuXHQgICAgdmFyIHJlcyA9IFtdO1xuXHQgICAgdmFyIGFMZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuXHQgICAgdmFyIGkgPSAwO1xuXHQgICAgdmFyIGNvZGU7XG5cdCAgICB3aGlsZSAoYUxlbiA+IGkpIHtcblx0ICAgICAgY29kZSA9ICthcmd1bWVudHMkMVtpKytdO1xuXHQgICAgICBpZiAoX3RvQWJzb2x1dGVJbmRleChjb2RlLCAweDEwZmZmZikgIT09IGNvZGUpIHsgdGhyb3cgUmFuZ2VFcnJvcihjb2RlICsgJyBpcyBub3QgYSB2YWxpZCBjb2RlIHBvaW50Jyk7IH1cblx0ICAgICAgcmVzLnB1c2goY29kZSA8IDB4MTAwMDBcblx0ICAgICAgICA/IGZyb21DaGFyQ29kZShjb2RlKVxuXHQgICAgICAgIDogZnJvbUNoYXJDb2RlKCgoY29kZSAtPSAweDEwMDAwKSA+PiAxMCkgKyAweGQ4MDAsIGNvZGUgJSAweDQwMCArIDB4ZGMwMClcblx0ICAgICAgKTtcblx0ICAgIH0gcmV0dXJuIHJlcy5qb2luKCcnKTtcblx0ICB9XG5cdH0pO1xuXG5cdHZhciBmcm9tQ29kZVBvaW50ID0gX2NvcmUuU3RyaW5nLmZyb21Db2RlUG9pbnQ7XG5cblx0Ly8gVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBEbyBub3QgZWRpdC5cblx0dmFyIFNwYWNlX1NlcGFyYXRvciA9IC9bXFx1MTY4MFxcdTIwMDAtXFx1MjAwQVxcdTIwMkZcXHUyMDVGXFx1MzAwMF0vO1xuXHR2YXIgSURfU3RhcnQgPSAvW1xceEFBXFx4QjVcXHhCQVxceEMwLVxceEQ2XFx4RDgtXFx4RjZcXHhGOC1cXHUwMkMxXFx1MDJDNi1cXHUwMkQxXFx1MDJFMC1cXHUwMkU0XFx1MDJFQ1xcdTAyRUVcXHUwMzcwLVxcdTAzNzRcXHUwMzc2XFx1MDM3N1xcdTAzN0EtXFx1MDM3RFxcdTAzN0ZcXHUwMzg2XFx1MDM4OC1cXHUwMzhBXFx1MDM4Q1xcdTAzOEUtXFx1MDNBMVxcdTAzQTMtXFx1MDNGNVxcdTAzRjctXFx1MDQ4MVxcdTA0OEEtXFx1MDUyRlxcdTA1MzEtXFx1MDU1NlxcdTA1NTlcXHUwNTYxLVxcdTA1ODdcXHUwNUQwLVxcdTA1RUFcXHUwNUYwLVxcdTA1RjJcXHUwNjIwLVxcdTA2NEFcXHUwNjZFXFx1MDY2RlxcdTA2NzEtXFx1MDZEM1xcdTA2RDVcXHUwNkU1XFx1MDZFNlxcdTA2RUVcXHUwNkVGXFx1MDZGQS1cXHUwNkZDXFx1MDZGRlxcdTA3MTBcXHUwNzEyLVxcdTA3MkZcXHUwNzRELVxcdTA3QTVcXHUwN0IxXFx1MDdDQS1cXHUwN0VBXFx1MDdGNFxcdTA3RjVcXHUwN0ZBXFx1MDgwMC1cXHUwODE1XFx1MDgxQVxcdTA4MjRcXHUwODI4XFx1MDg0MC1cXHUwODU4XFx1MDg2MC1cXHUwODZBXFx1MDhBMC1cXHUwOEI0XFx1MDhCNi1cXHUwOEJEXFx1MDkwNC1cXHUwOTM5XFx1MDkzRFxcdTA5NTBcXHUwOTU4LVxcdTA5NjFcXHUwOTcxLVxcdTA5ODBcXHUwOTg1LVxcdTA5OENcXHUwOThGXFx1MDk5MFxcdTA5OTMtXFx1MDlBOFxcdTA5QUEtXFx1MDlCMFxcdTA5QjJcXHUwOUI2LVxcdTA5QjlcXHUwOUJEXFx1MDlDRVxcdTA5RENcXHUwOUREXFx1MDlERi1cXHUwOUUxXFx1MDlGMFxcdTA5RjFcXHUwOUZDXFx1MEEwNS1cXHUwQTBBXFx1MEEwRlxcdTBBMTBcXHUwQTEzLVxcdTBBMjhcXHUwQTJBLVxcdTBBMzBcXHUwQTMyXFx1MEEzM1xcdTBBMzVcXHUwQTM2XFx1MEEzOFxcdTBBMzlcXHUwQTU5LVxcdTBBNUNcXHUwQTVFXFx1MEE3Mi1cXHUwQTc0XFx1MEE4NS1cXHUwQThEXFx1MEE4Ri1cXHUwQTkxXFx1MEE5My1cXHUwQUE4XFx1MEFBQS1cXHUwQUIwXFx1MEFCMlxcdTBBQjNcXHUwQUI1LVxcdTBBQjlcXHUwQUJEXFx1MEFEMFxcdTBBRTBcXHUwQUUxXFx1MEFGOVxcdTBCMDUtXFx1MEIwQ1xcdTBCMEZcXHUwQjEwXFx1MEIxMy1cXHUwQjI4XFx1MEIyQS1cXHUwQjMwXFx1MEIzMlxcdTBCMzNcXHUwQjM1LVxcdTBCMzlcXHUwQjNEXFx1MEI1Q1xcdTBCNURcXHUwQjVGLVxcdTBCNjFcXHUwQjcxXFx1MEI4M1xcdTBCODUtXFx1MEI4QVxcdTBCOEUtXFx1MEI5MFxcdTBCOTItXFx1MEI5NVxcdTBCOTlcXHUwQjlBXFx1MEI5Q1xcdTBCOUVcXHUwQjlGXFx1MEJBM1xcdTBCQTRcXHUwQkE4LVxcdTBCQUFcXHUwQkFFLVxcdTBCQjlcXHUwQkQwXFx1MEMwNS1cXHUwQzBDXFx1MEMwRS1cXHUwQzEwXFx1MEMxMi1cXHUwQzI4XFx1MEMyQS1cXHUwQzM5XFx1MEMzRFxcdTBDNTgtXFx1MEM1QVxcdTBDNjBcXHUwQzYxXFx1MEM4MFxcdTBDODUtXFx1MEM4Q1xcdTBDOEUtXFx1MEM5MFxcdTBDOTItXFx1MENBOFxcdTBDQUEtXFx1MENCM1xcdTBDQjUtXFx1MENCOVxcdTBDQkRcXHUwQ0RFXFx1MENFMFxcdTBDRTFcXHUwQ0YxXFx1MENGMlxcdTBEMDUtXFx1MEQwQ1xcdTBEMEUtXFx1MEQxMFxcdTBEMTItXFx1MEQzQVxcdTBEM0RcXHUwRDRFXFx1MEQ1NC1cXHUwRDU2XFx1MEQ1Ri1cXHUwRDYxXFx1MEQ3QS1cXHUwRDdGXFx1MEQ4NS1cXHUwRDk2XFx1MEQ5QS1cXHUwREIxXFx1MERCMy1cXHUwREJCXFx1MERCRFxcdTBEQzAtXFx1MERDNlxcdTBFMDEtXFx1MEUzMFxcdTBFMzJcXHUwRTMzXFx1MEU0MC1cXHUwRTQ2XFx1MEU4MVxcdTBFODJcXHUwRTg0XFx1MEU4N1xcdTBFODhcXHUwRThBXFx1MEU4RFxcdTBFOTQtXFx1MEU5N1xcdTBFOTktXFx1MEU5RlxcdTBFQTEtXFx1MEVBM1xcdTBFQTVcXHUwRUE3XFx1MEVBQVxcdTBFQUJcXHUwRUFELVxcdTBFQjBcXHUwRUIyXFx1MEVCM1xcdTBFQkRcXHUwRUMwLVxcdTBFQzRcXHUwRUM2XFx1MEVEQy1cXHUwRURGXFx1MEYwMFxcdTBGNDAtXFx1MEY0N1xcdTBGNDktXFx1MEY2Q1xcdTBGODgtXFx1MEY4Q1xcdTEwMDAtXFx1MTAyQVxcdTEwM0ZcXHUxMDUwLVxcdTEwNTVcXHUxMDVBLVxcdTEwNURcXHUxMDYxXFx1MTA2NVxcdTEwNjZcXHUxMDZFLVxcdTEwNzBcXHUxMDc1LVxcdTEwODFcXHUxMDhFXFx1MTBBMC1cXHUxMEM1XFx1MTBDN1xcdTEwQ0RcXHUxMEQwLVxcdTEwRkFcXHUxMEZDLVxcdTEyNDhcXHUxMjRBLVxcdTEyNERcXHUxMjUwLVxcdTEyNTZcXHUxMjU4XFx1MTI1QS1cXHUxMjVEXFx1MTI2MC1cXHUxMjg4XFx1MTI4QS1cXHUxMjhEXFx1MTI5MC1cXHUxMkIwXFx1MTJCMi1cXHUxMkI1XFx1MTJCOC1cXHUxMkJFXFx1MTJDMFxcdTEyQzItXFx1MTJDNVxcdTEyQzgtXFx1MTJENlxcdTEyRDgtXFx1MTMxMFxcdTEzMTItXFx1MTMxNVxcdTEzMTgtXFx1MTM1QVxcdTEzODAtXFx1MTM4RlxcdTEzQTAtXFx1MTNGNVxcdTEzRjgtXFx1MTNGRFxcdTE0MDEtXFx1MTY2Q1xcdTE2NkYtXFx1MTY3RlxcdTE2ODEtXFx1MTY5QVxcdTE2QTAtXFx1MTZFQVxcdTE2RUUtXFx1MTZGOFxcdTE3MDAtXFx1MTcwQ1xcdTE3MEUtXFx1MTcxMVxcdTE3MjAtXFx1MTczMVxcdTE3NDAtXFx1MTc1MVxcdTE3NjAtXFx1MTc2Q1xcdTE3NkUtXFx1MTc3MFxcdTE3ODAtXFx1MTdCM1xcdTE3RDdcXHUxN0RDXFx1MTgyMC1cXHUxODc3XFx1MTg4MC1cXHUxODg0XFx1MTg4Ny1cXHUxOEE4XFx1MThBQVxcdTE4QjAtXFx1MThGNVxcdTE5MDAtXFx1MTkxRVxcdTE5NTAtXFx1MTk2RFxcdTE5NzAtXFx1MTk3NFxcdTE5ODAtXFx1MTlBQlxcdTE5QjAtXFx1MTlDOVxcdTFBMDAtXFx1MUExNlxcdTFBMjAtXFx1MUE1NFxcdTFBQTdcXHUxQjA1LVxcdTFCMzNcXHUxQjQ1LVxcdTFCNEJcXHUxQjgzLVxcdTFCQTBcXHUxQkFFXFx1MUJBRlxcdTFCQkEtXFx1MUJFNVxcdTFDMDAtXFx1MUMyM1xcdTFDNEQtXFx1MUM0RlxcdTFDNUEtXFx1MUM3RFxcdTFDODAtXFx1MUM4OFxcdTFDRTktXFx1MUNFQ1xcdTFDRUUtXFx1MUNGMVxcdTFDRjVcXHUxQ0Y2XFx1MUQwMC1cXHUxREJGXFx1MUUwMC1cXHUxRjE1XFx1MUYxOC1cXHUxRjFEXFx1MUYyMC1cXHUxRjQ1XFx1MUY0OC1cXHUxRjREXFx1MUY1MC1cXHUxRjU3XFx1MUY1OVxcdTFGNUJcXHUxRjVEXFx1MUY1Ri1cXHUxRjdEXFx1MUY4MC1cXHUxRkI0XFx1MUZCNi1cXHUxRkJDXFx1MUZCRVxcdTFGQzItXFx1MUZDNFxcdTFGQzYtXFx1MUZDQ1xcdTFGRDAtXFx1MUZEM1xcdTFGRDYtXFx1MUZEQlxcdTFGRTAtXFx1MUZFQ1xcdTFGRjItXFx1MUZGNFxcdTFGRjYtXFx1MUZGQ1xcdTIwNzFcXHUyMDdGXFx1MjA5MC1cXHUyMDlDXFx1MjEwMlxcdTIxMDdcXHUyMTBBLVxcdTIxMTNcXHUyMTE1XFx1MjExOS1cXHUyMTFEXFx1MjEyNFxcdTIxMjZcXHUyMTI4XFx1MjEyQS1cXHUyMTJEXFx1MjEyRi1cXHUyMTM5XFx1MjEzQy1cXHUyMTNGXFx1MjE0NS1cXHUyMTQ5XFx1MjE0RVxcdTIxNjAtXFx1MjE4OFxcdTJDMDAtXFx1MkMyRVxcdTJDMzAtXFx1MkM1RVxcdTJDNjAtXFx1MkNFNFxcdTJDRUItXFx1MkNFRVxcdTJDRjJcXHUyQ0YzXFx1MkQwMC1cXHUyRDI1XFx1MkQyN1xcdTJEMkRcXHUyRDMwLVxcdTJENjdcXHUyRDZGXFx1MkQ4MC1cXHUyRDk2XFx1MkRBMC1cXHUyREE2XFx1MkRBOC1cXHUyREFFXFx1MkRCMC1cXHUyREI2XFx1MkRCOC1cXHUyREJFXFx1MkRDMC1cXHUyREM2XFx1MkRDOC1cXHUyRENFXFx1MkREMC1cXHUyREQ2XFx1MkREOC1cXHUyRERFXFx1MkUyRlxcdTMwMDUtXFx1MzAwN1xcdTMwMjEtXFx1MzAyOVxcdTMwMzEtXFx1MzAzNVxcdTMwMzgtXFx1MzAzQ1xcdTMwNDEtXFx1MzA5NlxcdTMwOUQtXFx1MzA5RlxcdTMwQTEtXFx1MzBGQVxcdTMwRkMtXFx1MzBGRlxcdTMxMDUtXFx1MzEyRVxcdTMxMzEtXFx1MzE4RVxcdTMxQTAtXFx1MzFCQVxcdTMxRjAtXFx1MzFGRlxcdTM0MDAtXFx1NERCNVxcdTRFMDAtXFx1OUZFQVxcdUEwMDAtXFx1QTQ4Q1xcdUE0RDAtXFx1QTRGRFxcdUE1MDAtXFx1QTYwQ1xcdUE2MTAtXFx1QTYxRlxcdUE2MkFcXHVBNjJCXFx1QTY0MC1cXHVBNjZFXFx1QTY3Ri1cXHVBNjlEXFx1QTZBMC1cXHVBNkVGXFx1QTcxNy1cXHVBNzFGXFx1QTcyMi1cXHVBNzg4XFx1QTc4Qi1cXHVBN0FFXFx1QTdCMC1cXHVBN0I3XFx1QTdGNy1cXHVBODAxXFx1QTgwMy1cXHVBODA1XFx1QTgwNy1cXHVBODBBXFx1QTgwQy1cXHVBODIyXFx1QTg0MC1cXHVBODczXFx1QTg4Mi1cXHVBOEIzXFx1QThGMi1cXHVBOEY3XFx1QThGQlxcdUE4RkRcXHVBOTBBLVxcdUE5MjVcXHVBOTMwLVxcdUE5NDZcXHVBOTYwLVxcdUE5N0NcXHVBOTg0LVxcdUE5QjJcXHVBOUNGXFx1QTlFMC1cXHVBOUU0XFx1QTlFNi1cXHVBOUVGXFx1QTlGQS1cXHVBOUZFXFx1QUEwMC1cXHVBQTI4XFx1QUE0MC1cXHVBQTQyXFx1QUE0NC1cXHVBQTRCXFx1QUE2MC1cXHVBQTc2XFx1QUE3QVxcdUFBN0UtXFx1QUFBRlxcdUFBQjFcXHVBQUI1XFx1QUFCNlxcdUFBQjktXFx1QUFCRFxcdUFBQzBcXHVBQUMyXFx1QUFEQi1cXHVBQUREXFx1QUFFMC1cXHVBQUVBXFx1QUFGMi1cXHVBQUY0XFx1QUIwMS1cXHVBQjA2XFx1QUIwOS1cXHVBQjBFXFx1QUIxMS1cXHVBQjE2XFx1QUIyMC1cXHVBQjI2XFx1QUIyOC1cXHVBQjJFXFx1QUIzMC1cXHVBQjVBXFx1QUI1Qy1cXHVBQjY1XFx1QUI3MC1cXHVBQkUyXFx1QUMwMC1cXHVEN0EzXFx1RDdCMC1cXHVEN0M2XFx1RDdDQi1cXHVEN0ZCXFx1RjkwMC1cXHVGQTZEXFx1RkE3MC1cXHVGQUQ5XFx1RkIwMC1cXHVGQjA2XFx1RkIxMy1cXHVGQjE3XFx1RkIxRFxcdUZCMUYtXFx1RkIyOFxcdUZCMkEtXFx1RkIzNlxcdUZCMzgtXFx1RkIzQ1xcdUZCM0VcXHVGQjQwXFx1RkI0MVxcdUZCNDNcXHVGQjQ0XFx1RkI0Ni1cXHVGQkIxXFx1RkJEMy1cXHVGRDNEXFx1RkQ1MC1cXHVGRDhGXFx1RkQ5Mi1cXHVGREM3XFx1RkRGMC1cXHVGREZCXFx1RkU3MC1cXHVGRTc0XFx1RkU3Ni1cXHVGRUZDXFx1RkYyMS1cXHVGRjNBXFx1RkY0MS1cXHVGRjVBXFx1RkY2Ni1cXHVGRkJFXFx1RkZDMi1cXHVGRkM3XFx1RkZDQS1cXHVGRkNGXFx1RkZEMi1cXHVGRkQ3XFx1RkZEQS1cXHVGRkRDXXxcXHVEODAwW1xcdURDMDAtXFx1REMwQlxcdURDMEQtXFx1REMyNlxcdURDMjgtXFx1REMzQVxcdURDM0NcXHVEQzNEXFx1REMzRi1cXHVEQzREXFx1REM1MC1cXHVEQzVEXFx1REM4MC1cXHVEQ0ZBXFx1REQ0MC1cXHVERDc0XFx1REU4MC1cXHVERTlDXFx1REVBMC1cXHVERUQwXFx1REYwMC1cXHVERjFGXFx1REYyRC1cXHVERjRBXFx1REY1MC1cXHVERjc1XFx1REY4MC1cXHVERjlEXFx1REZBMC1cXHVERkMzXFx1REZDOC1cXHVERkNGXFx1REZEMS1cXHVERkQ1XXxcXHVEODAxW1xcdURDMDAtXFx1REM5RFxcdURDQjAtXFx1RENEM1xcdURDRDgtXFx1RENGQlxcdUREMDAtXFx1REQyN1xcdUREMzAtXFx1REQ2M1xcdURFMDAtXFx1REYzNlxcdURGNDAtXFx1REY1NVxcdURGNjAtXFx1REY2N118XFx1RDgwMltcXHVEQzAwLVxcdURDMDVcXHVEQzA4XFx1REMwQS1cXHVEQzM1XFx1REMzN1xcdURDMzhcXHVEQzNDXFx1REMzRi1cXHVEQzU1XFx1REM2MC1cXHVEQzc2XFx1REM4MC1cXHVEQzlFXFx1RENFMC1cXHVEQ0YyXFx1RENGNFxcdURDRjVcXHVERDAwLVxcdUREMTVcXHVERDIwLVxcdUREMzlcXHVERDgwLVxcdUREQjdcXHVEREJFXFx1RERCRlxcdURFMDBcXHVERTEwLVxcdURFMTNcXHVERTE1LVxcdURFMTdcXHVERTE5LVxcdURFMzNcXHVERTYwLVxcdURFN0NcXHVERTgwLVxcdURFOUNcXHVERUMwLVxcdURFQzdcXHVERUM5LVxcdURFRTRcXHVERjAwLVxcdURGMzVcXHVERjQwLVxcdURGNTVcXHVERjYwLVxcdURGNzJcXHVERjgwLVxcdURGOTFdfFxcdUQ4MDNbXFx1REMwMC1cXHVEQzQ4XFx1REM4MC1cXHVEQ0IyXFx1RENDMC1cXHVEQ0YyXXxcXHVEODA0W1xcdURDMDMtXFx1REMzN1xcdURDODMtXFx1RENBRlxcdURDRDAtXFx1RENFOFxcdUREMDMtXFx1REQyNlxcdURENTAtXFx1REQ3MlxcdURENzZcXHVERDgzLVxcdUREQjJcXHVEREMxLVxcdUREQzRcXHVERERBXFx1REREQ1xcdURFMDAtXFx1REUxMVxcdURFMTMtXFx1REUyQlxcdURFODAtXFx1REU4NlxcdURFODhcXHVERThBLVxcdURFOERcXHVERThGLVxcdURFOURcXHVERTlGLVxcdURFQThcXHVERUIwLVxcdURFREVcXHVERjA1LVxcdURGMENcXHVERjBGXFx1REYxMFxcdURGMTMtXFx1REYyOFxcdURGMkEtXFx1REYzMFxcdURGMzJcXHVERjMzXFx1REYzNS1cXHVERjM5XFx1REYzRFxcdURGNTBcXHVERjVELVxcdURGNjFdfFxcdUQ4MDVbXFx1REMwMC1cXHVEQzM0XFx1REM0Ny1cXHVEQzRBXFx1REM4MC1cXHVEQ0FGXFx1RENDNFxcdURDQzVcXHVEQ0M3XFx1REQ4MC1cXHVEREFFXFx1REREOC1cXHVERERCXFx1REUwMC1cXHVERTJGXFx1REU0NFxcdURFODAtXFx1REVBQVxcdURGMDAtXFx1REYxOV18XFx1RDgwNltcXHVEQ0EwLVxcdURDREZcXHVEQ0ZGXFx1REUwMFxcdURFMEItXFx1REUzMlxcdURFM0FcXHVERTUwXFx1REU1Qy1cXHVERTgzXFx1REU4Ni1cXHVERTg5XFx1REVDMC1cXHVERUY4XXxcXHVEODA3W1xcdURDMDAtXFx1REMwOFxcdURDMEEtXFx1REMyRVxcdURDNDBcXHVEQzcyLVxcdURDOEZcXHVERDAwLVxcdUREMDZcXHVERDA4XFx1REQwOVxcdUREMEItXFx1REQzMFxcdURENDZdfFxcdUQ4MDhbXFx1REMwMC1cXHVERjk5XXxcXHVEODA5W1xcdURDMDAtXFx1REM2RVxcdURDODAtXFx1REQ0M118W1xcdUQ4MENcXHVEODFDLVxcdUQ4MjBcXHVEODQwLVxcdUQ4NjhcXHVEODZBLVxcdUQ4NkNcXHVEODZGLVxcdUQ4NzJcXHVEODc0LVxcdUQ4NzldW1xcdURDMDAtXFx1REZGRl18XFx1RDgwRFtcXHVEQzAwLVxcdURDMkVdfFxcdUQ4MTFbXFx1REMwMC1cXHVERTQ2XXxcXHVEODFBW1xcdURDMDAtXFx1REUzOFxcdURFNDAtXFx1REU1RVxcdURFRDAtXFx1REVFRFxcdURGMDAtXFx1REYyRlxcdURGNDAtXFx1REY0M1xcdURGNjMtXFx1REY3N1xcdURGN0QtXFx1REY4Rl18XFx1RDgxQltcXHVERjAwLVxcdURGNDRcXHVERjUwXFx1REY5My1cXHVERjlGXFx1REZFMFxcdURGRTFdfFxcdUQ4MjFbXFx1REMwMC1cXHVERkVDXXxcXHVEODIyW1xcdURDMDAtXFx1REVGMl18XFx1RDgyQ1tcXHVEQzAwLVxcdUREMUVcXHVERDcwLVxcdURFRkJdfFxcdUQ4MkZbXFx1REMwMC1cXHVEQzZBXFx1REM3MC1cXHVEQzdDXFx1REM4MC1cXHVEQzg4XFx1REM5MC1cXHVEQzk5XXxcXHVEODM1W1xcdURDMDAtXFx1REM1NFxcdURDNTYtXFx1REM5Q1xcdURDOUVcXHVEQzlGXFx1RENBMlxcdURDQTVcXHVEQ0E2XFx1RENBOS1cXHVEQ0FDXFx1RENBRS1cXHVEQ0I5XFx1RENCQlxcdURDQkQtXFx1RENDM1xcdURDQzUtXFx1REQwNVxcdUREMDctXFx1REQwQVxcdUREMEQtXFx1REQxNFxcdUREMTYtXFx1REQxQ1xcdUREMUUtXFx1REQzOVxcdUREM0ItXFx1REQzRVxcdURENDAtXFx1REQ0NFxcdURENDZcXHVERDRBLVxcdURENTBcXHVERDUyLVxcdURFQTVcXHVERUE4LVxcdURFQzBcXHVERUMyLVxcdURFREFcXHVERURDLVxcdURFRkFcXHVERUZDLVxcdURGMTRcXHVERjE2LVxcdURGMzRcXHVERjM2LVxcdURGNEVcXHVERjUwLVxcdURGNkVcXHVERjcwLVxcdURGODhcXHVERjhBLVxcdURGQThcXHVERkFBLVxcdURGQzJcXHVERkM0LVxcdURGQ0JdfFxcdUQ4M0FbXFx1REMwMC1cXHVEQ0M0XFx1REQwMC1cXHVERDQzXXxcXHVEODNCW1xcdURFMDAtXFx1REUwM1xcdURFMDUtXFx1REUxRlxcdURFMjFcXHVERTIyXFx1REUyNFxcdURFMjdcXHVERTI5LVxcdURFMzJcXHVERTM0LVxcdURFMzdcXHVERTM5XFx1REUzQlxcdURFNDJcXHVERTQ3XFx1REU0OVxcdURFNEJcXHVERTRELVxcdURFNEZcXHVERTUxXFx1REU1MlxcdURFNTRcXHVERTU3XFx1REU1OVxcdURFNUJcXHVERTVEXFx1REU1RlxcdURFNjFcXHVERTYyXFx1REU2NFxcdURFNjctXFx1REU2QVxcdURFNkMtXFx1REU3MlxcdURFNzQtXFx1REU3N1xcdURFNzktXFx1REU3Q1xcdURFN0VcXHVERTgwLVxcdURFODlcXHVERThCLVxcdURFOUJcXHVERUExLVxcdURFQTNcXHVERUE1LVxcdURFQTlcXHVERUFCLVxcdURFQkJdfFxcdUQ4NjlbXFx1REMwMC1cXHVERUQ2XFx1REYwMC1cXHVERkZGXXxcXHVEODZEW1xcdURDMDAtXFx1REYzNFxcdURGNDAtXFx1REZGRl18XFx1RDg2RVtcXHVEQzAwLVxcdURDMURcXHVEQzIwLVxcdURGRkZdfFxcdUQ4NzNbXFx1REMwMC1cXHVERUExXFx1REVCMC1cXHVERkZGXXxcXHVEODdBW1xcdURDMDAtXFx1REZFMF18XFx1RDg3RVtcXHVEQzAwLVxcdURFMURdLztcblx0dmFyIElEX0NvbnRpbnVlID0gL1tcXHhBQVxceEI1XFx4QkFcXHhDMC1cXHhENlxceEQ4LVxceEY2XFx4RjgtXFx1MDJDMVxcdTAyQzYtXFx1MDJEMVxcdTAyRTAtXFx1MDJFNFxcdTAyRUNcXHUwMkVFXFx1MDMwMC1cXHUwMzc0XFx1MDM3NlxcdTAzNzdcXHUwMzdBLVxcdTAzN0RcXHUwMzdGXFx1MDM4NlxcdTAzODgtXFx1MDM4QVxcdTAzOENcXHUwMzhFLVxcdTAzQTFcXHUwM0EzLVxcdTAzRjVcXHUwM0Y3LVxcdTA0ODFcXHUwNDgzLVxcdTA0ODdcXHUwNDhBLVxcdTA1MkZcXHUwNTMxLVxcdTA1NTZcXHUwNTU5XFx1MDU2MS1cXHUwNTg3XFx1MDU5MS1cXHUwNUJEXFx1MDVCRlxcdTA1QzFcXHUwNUMyXFx1MDVDNFxcdTA1QzVcXHUwNUM3XFx1MDVEMC1cXHUwNUVBXFx1MDVGMC1cXHUwNUYyXFx1MDYxMC1cXHUwNjFBXFx1MDYyMC1cXHUwNjY5XFx1MDY2RS1cXHUwNkQzXFx1MDZENS1cXHUwNkRDXFx1MDZERi1cXHUwNkU4XFx1MDZFQS1cXHUwNkZDXFx1MDZGRlxcdTA3MTAtXFx1MDc0QVxcdTA3NEQtXFx1MDdCMVxcdTA3QzAtXFx1MDdGNVxcdTA3RkFcXHUwODAwLVxcdTA4MkRcXHUwODQwLVxcdTA4NUJcXHUwODYwLVxcdTA4NkFcXHUwOEEwLVxcdTA4QjRcXHUwOEI2LVxcdTA4QkRcXHUwOEQ0LVxcdTA4RTFcXHUwOEUzLVxcdTA5NjNcXHUwOTY2LVxcdTA5NkZcXHUwOTcxLVxcdTA5ODNcXHUwOTg1LVxcdTA5OENcXHUwOThGXFx1MDk5MFxcdTA5OTMtXFx1MDlBOFxcdTA5QUEtXFx1MDlCMFxcdTA5QjJcXHUwOUI2LVxcdTA5QjlcXHUwOUJDLVxcdTA5QzRcXHUwOUM3XFx1MDlDOFxcdTA5Q0ItXFx1MDlDRVxcdTA5RDdcXHUwOURDXFx1MDlERFxcdTA5REYtXFx1MDlFM1xcdTA5RTYtXFx1MDlGMVxcdTA5RkNcXHUwQTAxLVxcdTBBMDNcXHUwQTA1LVxcdTBBMEFcXHUwQTBGXFx1MEExMFxcdTBBMTMtXFx1MEEyOFxcdTBBMkEtXFx1MEEzMFxcdTBBMzJcXHUwQTMzXFx1MEEzNVxcdTBBMzZcXHUwQTM4XFx1MEEzOVxcdTBBM0NcXHUwQTNFLVxcdTBBNDJcXHUwQTQ3XFx1MEE0OFxcdTBBNEItXFx1MEE0RFxcdTBBNTFcXHUwQTU5LVxcdTBBNUNcXHUwQTVFXFx1MEE2Ni1cXHUwQTc1XFx1MEE4MS1cXHUwQTgzXFx1MEE4NS1cXHUwQThEXFx1MEE4Ri1cXHUwQTkxXFx1MEE5My1cXHUwQUE4XFx1MEFBQS1cXHUwQUIwXFx1MEFCMlxcdTBBQjNcXHUwQUI1LVxcdTBBQjlcXHUwQUJDLVxcdTBBQzVcXHUwQUM3LVxcdTBBQzlcXHUwQUNCLVxcdTBBQ0RcXHUwQUQwXFx1MEFFMC1cXHUwQUUzXFx1MEFFNi1cXHUwQUVGXFx1MEFGOS1cXHUwQUZGXFx1MEIwMS1cXHUwQjAzXFx1MEIwNS1cXHUwQjBDXFx1MEIwRlxcdTBCMTBcXHUwQjEzLVxcdTBCMjhcXHUwQjJBLVxcdTBCMzBcXHUwQjMyXFx1MEIzM1xcdTBCMzUtXFx1MEIzOVxcdTBCM0MtXFx1MEI0NFxcdTBCNDdcXHUwQjQ4XFx1MEI0Qi1cXHUwQjREXFx1MEI1NlxcdTBCNTdcXHUwQjVDXFx1MEI1RFxcdTBCNUYtXFx1MEI2M1xcdTBCNjYtXFx1MEI2RlxcdTBCNzFcXHUwQjgyXFx1MEI4M1xcdTBCODUtXFx1MEI4QVxcdTBCOEUtXFx1MEI5MFxcdTBCOTItXFx1MEI5NVxcdTBCOTlcXHUwQjlBXFx1MEI5Q1xcdTBCOUVcXHUwQjlGXFx1MEJBM1xcdTBCQTRcXHUwQkE4LVxcdTBCQUFcXHUwQkFFLVxcdTBCQjlcXHUwQkJFLVxcdTBCQzJcXHUwQkM2LVxcdTBCQzhcXHUwQkNBLVxcdTBCQ0RcXHUwQkQwXFx1MEJEN1xcdTBCRTYtXFx1MEJFRlxcdTBDMDAtXFx1MEMwM1xcdTBDMDUtXFx1MEMwQ1xcdTBDMEUtXFx1MEMxMFxcdTBDMTItXFx1MEMyOFxcdTBDMkEtXFx1MEMzOVxcdTBDM0QtXFx1MEM0NFxcdTBDNDYtXFx1MEM0OFxcdTBDNEEtXFx1MEM0RFxcdTBDNTVcXHUwQzU2XFx1MEM1OC1cXHUwQzVBXFx1MEM2MC1cXHUwQzYzXFx1MEM2Ni1cXHUwQzZGXFx1MEM4MC1cXHUwQzgzXFx1MEM4NS1cXHUwQzhDXFx1MEM4RS1cXHUwQzkwXFx1MEM5Mi1cXHUwQ0E4XFx1MENBQS1cXHUwQ0IzXFx1MENCNS1cXHUwQ0I5XFx1MENCQy1cXHUwQ0M0XFx1MENDNi1cXHUwQ0M4XFx1MENDQS1cXHUwQ0NEXFx1MENENVxcdTBDRDZcXHUwQ0RFXFx1MENFMC1cXHUwQ0UzXFx1MENFNi1cXHUwQ0VGXFx1MENGMVxcdTBDRjJcXHUwRDAwLVxcdTBEMDNcXHUwRDA1LVxcdTBEMENcXHUwRDBFLVxcdTBEMTBcXHUwRDEyLVxcdTBENDRcXHUwRDQ2LVxcdTBENDhcXHUwRDRBLVxcdTBENEVcXHUwRDU0LVxcdTBENTdcXHUwRDVGLVxcdTBENjNcXHUwRDY2LVxcdTBENkZcXHUwRDdBLVxcdTBEN0ZcXHUwRDgyXFx1MEQ4M1xcdTBEODUtXFx1MEQ5NlxcdTBEOUEtXFx1MERCMVxcdTBEQjMtXFx1MERCQlxcdTBEQkRcXHUwREMwLVxcdTBEQzZcXHUwRENBXFx1MERDRi1cXHUwREQ0XFx1MERENlxcdTBERDgtXFx1MERERlxcdTBERTYtXFx1MERFRlxcdTBERjJcXHUwREYzXFx1MEUwMS1cXHUwRTNBXFx1MEU0MC1cXHUwRTRFXFx1MEU1MC1cXHUwRTU5XFx1MEU4MVxcdTBFODJcXHUwRTg0XFx1MEU4N1xcdTBFODhcXHUwRThBXFx1MEU4RFxcdTBFOTQtXFx1MEU5N1xcdTBFOTktXFx1MEU5RlxcdTBFQTEtXFx1MEVBM1xcdTBFQTVcXHUwRUE3XFx1MEVBQVxcdTBFQUJcXHUwRUFELVxcdTBFQjlcXHUwRUJCLVxcdTBFQkRcXHUwRUMwLVxcdTBFQzRcXHUwRUM2XFx1MEVDOC1cXHUwRUNEXFx1MEVEMC1cXHUwRUQ5XFx1MEVEQy1cXHUwRURGXFx1MEYwMFxcdTBGMThcXHUwRjE5XFx1MEYyMC1cXHUwRjI5XFx1MEYzNVxcdTBGMzdcXHUwRjM5XFx1MEYzRS1cXHUwRjQ3XFx1MEY0OS1cXHUwRjZDXFx1MEY3MS1cXHUwRjg0XFx1MEY4Ni1cXHUwRjk3XFx1MEY5OS1cXHUwRkJDXFx1MEZDNlxcdTEwMDAtXFx1MTA0OVxcdTEwNTAtXFx1MTA5RFxcdTEwQTAtXFx1MTBDNVxcdTEwQzdcXHUxMENEXFx1MTBEMC1cXHUxMEZBXFx1MTBGQy1cXHUxMjQ4XFx1MTI0QS1cXHUxMjREXFx1MTI1MC1cXHUxMjU2XFx1MTI1OFxcdTEyNUEtXFx1MTI1RFxcdTEyNjAtXFx1MTI4OFxcdTEyOEEtXFx1MTI4RFxcdTEyOTAtXFx1MTJCMFxcdTEyQjItXFx1MTJCNVxcdTEyQjgtXFx1MTJCRVxcdTEyQzBcXHUxMkMyLVxcdTEyQzVcXHUxMkM4LVxcdTEyRDZcXHUxMkQ4LVxcdTEzMTBcXHUxMzEyLVxcdTEzMTVcXHUxMzE4LVxcdTEzNUFcXHUxMzVELVxcdTEzNUZcXHUxMzgwLVxcdTEzOEZcXHUxM0EwLVxcdTEzRjVcXHUxM0Y4LVxcdTEzRkRcXHUxNDAxLVxcdTE2NkNcXHUxNjZGLVxcdTE2N0ZcXHUxNjgxLVxcdTE2OUFcXHUxNkEwLVxcdTE2RUFcXHUxNkVFLVxcdTE2RjhcXHUxNzAwLVxcdTE3MENcXHUxNzBFLVxcdTE3MTRcXHUxNzIwLVxcdTE3MzRcXHUxNzQwLVxcdTE3NTNcXHUxNzYwLVxcdTE3NkNcXHUxNzZFLVxcdTE3NzBcXHUxNzcyXFx1MTc3M1xcdTE3ODAtXFx1MTdEM1xcdTE3RDdcXHUxN0RDXFx1MTdERFxcdTE3RTAtXFx1MTdFOVxcdTE4MEItXFx1MTgwRFxcdTE4MTAtXFx1MTgxOVxcdTE4MjAtXFx1MTg3N1xcdTE4ODAtXFx1MThBQVxcdTE4QjAtXFx1MThGNVxcdTE5MDAtXFx1MTkxRVxcdTE5MjAtXFx1MTkyQlxcdTE5MzAtXFx1MTkzQlxcdTE5NDYtXFx1MTk2RFxcdTE5NzAtXFx1MTk3NFxcdTE5ODAtXFx1MTlBQlxcdTE5QjAtXFx1MTlDOVxcdTE5RDAtXFx1MTlEOVxcdTFBMDAtXFx1MUExQlxcdTFBMjAtXFx1MUE1RVxcdTFBNjAtXFx1MUE3Q1xcdTFBN0YtXFx1MUE4OVxcdTFBOTAtXFx1MUE5OVxcdTFBQTdcXHUxQUIwLVxcdTFBQkRcXHUxQjAwLVxcdTFCNEJcXHUxQjUwLVxcdTFCNTlcXHUxQjZCLVxcdTFCNzNcXHUxQjgwLVxcdTFCRjNcXHUxQzAwLVxcdTFDMzdcXHUxQzQwLVxcdTFDNDlcXHUxQzRELVxcdTFDN0RcXHUxQzgwLVxcdTFDODhcXHUxQ0QwLVxcdTFDRDJcXHUxQ0Q0LVxcdTFDRjlcXHUxRDAwLVxcdTFERjlcXHUxREZCLVxcdTFGMTVcXHUxRjE4LVxcdTFGMURcXHUxRjIwLVxcdTFGNDVcXHUxRjQ4LVxcdTFGNERcXHUxRjUwLVxcdTFGNTdcXHUxRjU5XFx1MUY1QlxcdTFGNURcXHUxRjVGLVxcdTFGN0RcXHUxRjgwLVxcdTFGQjRcXHUxRkI2LVxcdTFGQkNcXHUxRkJFXFx1MUZDMi1cXHUxRkM0XFx1MUZDNi1cXHUxRkNDXFx1MUZEMC1cXHUxRkQzXFx1MUZENi1cXHUxRkRCXFx1MUZFMC1cXHUxRkVDXFx1MUZGMi1cXHUxRkY0XFx1MUZGNi1cXHUxRkZDXFx1MjAzRlxcdTIwNDBcXHUyMDU0XFx1MjA3MVxcdTIwN0ZcXHUyMDkwLVxcdTIwOUNcXHUyMEQwLVxcdTIwRENcXHUyMEUxXFx1MjBFNS1cXHUyMEYwXFx1MjEwMlxcdTIxMDdcXHUyMTBBLVxcdTIxMTNcXHUyMTE1XFx1MjExOS1cXHUyMTFEXFx1MjEyNFxcdTIxMjZcXHUyMTI4XFx1MjEyQS1cXHUyMTJEXFx1MjEyRi1cXHUyMTM5XFx1MjEzQy1cXHUyMTNGXFx1MjE0NS1cXHUyMTQ5XFx1MjE0RVxcdTIxNjAtXFx1MjE4OFxcdTJDMDAtXFx1MkMyRVxcdTJDMzAtXFx1MkM1RVxcdTJDNjAtXFx1MkNFNFxcdTJDRUItXFx1MkNGM1xcdTJEMDAtXFx1MkQyNVxcdTJEMjdcXHUyRDJEXFx1MkQzMC1cXHUyRDY3XFx1MkQ2RlxcdTJEN0YtXFx1MkQ5NlxcdTJEQTAtXFx1MkRBNlxcdTJEQTgtXFx1MkRBRVxcdTJEQjAtXFx1MkRCNlxcdTJEQjgtXFx1MkRCRVxcdTJEQzAtXFx1MkRDNlxcdTJEQzgtXFx1MkRDRVxcdTJERDAtXFx1MkRENlxcdTJERDgtXFx1MkRERVxcdTJERTAtXFx1MkRGRlxcdTJFMkZcXHUzMDA1LVxcdTMwMDdcXHUzMDIxLVxcdTMwMkZcXHUzMDMxLVxcdTMwMzVcXHUzMDM4LVxcdTMwM0NcXHUzMDQxLVxcdTMwOTZcXHUzMDk5XFx1MzA5QVxcdTMwOUQtXFx1MzA5RlxcdTMwQTEtXFx1MzBGQVxcdTMwRkMtXFx1MzBGRlxcdTMxMDUtXFx1MzEyRVxcdTMxMzEtXFx1MzE4RVxcdTMxQTAtXFx1MzFCQVxcdTMxRjAtXFx1MzFGRlxcdTM0MDAtXFx1NERCNVxcdTRFMDAtXFx1OUZFQVxcdUEwMDAtXFx1QTQ4Q1xcdUE0RDAtXFx1QTRGRFxcdUE1MDAtXFx1QTYwQ1xcdUE2MTAtXFx1QTYyQlxcdUE2NDAtXFx1QTY2RlxcdUE2NzQtXFx1QTY3RFxcdUE2N0YtXFx1QTZGMVxcdUE3MTctXFx1QTcxRlxcdUE3MjItXFx1QTc4OFxcdUE3OEItXFx1QTdBRVxcdUE3QjAtXFx1QTdCN1xcdUE3RjctXFx1QTgyN1xcdUE4NDAtXFx1QTg3M1xcdUE4ODAtXFx1QThDNVxcdUE4RDAtXFx1QThEOVxcdUE4RTAtXFx1QThGN1xcdUE4RkJcXHVBOEZEXFx1QTkwMC1cXHVBOTJEXFx1QTkzMC1cXHVBOTUzXFx1QTk2MC1cXHVBOTdDXFx1QTk4MC1cXHVBOUMwXFx1QTlDRi1cXHVBOUQ5XFx1QTlFMC1cXHVBOUZFXFx1QUEwMC1cXHVBQTM2XFx1QUE0MC1cXHVBQTREXFx1QUE1MC1cXHVBQTU5XFx1QUE2MC1cXHVBQTc2XFx1QUE3QS1cXHVBQUMyXFx1QUFEQi1cXHVBQUREXFx1QUFFMC1cXHVBQUVGXFx1QUFGMi1cXHVBQUY2XFx1QUIwMS1cXHVBQjA2XFx1QUIwOS1cXHVBQjBFXFx1QUIxMS1cXHVBQjE2XFx1QUIyMC1cXHVBQjI2XFx1QUIyOC1cXHVBQjJFXFx1QUIzMC1cXHVBQjVBXFx1QUI1Qy1cXHVBQjY1XFx1QUI3MC1cXHVBQkVBXFx1QUJFQ1xcdUFCRURcXHVBQkYwLVxcdUFCRjlcXHVBQzAwLVxcdUQ3QTNcXHVEN0IwLVxcdUQ3QzZcXHVEN0NCLVxcdUQ3RkJcXHVGOTAwLVxcdUZBNkRcXHVGQTcwLVxcdUZBRDlcXHVGQjAwLVxcdUZCMDZcXHVGQjEzLVxcdUZCMTdcXHVGQjFELVxcdUZCMjhcXHVGQjJBLVxcdUZCMzZcXHVGQjM4LVxcdUZCM0NcXHVGQjNFXFx1RkI0MFxcdUZCNDFcXHVGQjQzXFx1RkI0NFxcdUZCNDYtXFx1RkJCMVxcdUZCRDMtXFx1RkQzRFxcdUZENTAtXFx1RkQ4RlxcdUZEOTItXFx1RkRDN1xcdUZERjAtXFx1RkRGQlxcdUZFMDAtXFx1RkUwRlxcdUZFMjAtXFx1RkUyRlxcdUZFMzNcXHVGRTM0XFx1RkU0RC1cXHVGRTRGXFx1RkU3MC1cXHVGRTc0XFx1RkU3Ni1cXHVGRUZDXFx1RkYxMC1cXHVGRjE5XFx1RkYyMS1cXHVGRjNBXFx1RkYzRlxcdUZGNDEtXFx1RkY1QVxcdUZGNjYtXFx1RkZCRVxcdUZGQzItXFx1RkZDN1xcdUZGQ0EtXFx1RkZDRlxcdUZGRDItXFx1RkZEN1xcdUZGREEtXFx1RkZEQ118XFx1RDgwMFtcXHVEQzAwLVxcdURDMEJcXHVEQzBELVxcdURDMjZcXHVEQzI4LVxcdURDM0FcXHVEQzNDXFx1REMzRFxcdURDM0YtXFx1REM0RFxcdURDNTAtXFx1REM1RFxcdURDODAtXFx1RENGQVxcdURENDAtXFx1REQ3NFxcdURERkRcXHVERTgwLVxcdURFOUNcXHVERUEwLVxcdURFRDBcXHVERUUwXFx1REYwMC1cXHVERjFGXFx1REYyRC1cXHVERjRBXFx1REY1MC1cXHVERjdBXFx1REY4MC1cXHVERjlEXFx1REZBMC1cXHVERkMzXFx1REZDOC1cXHVERkNGXFx1REZEMS1cXHVERkQ1XXxcXHVEODAxW1xcdURDMDAtXFx1REM5RFxcdURDQTAtXFx1RENBOVxcdURDQjAtXFx1RENEM1xcdURDRDgtXFx1RENGQlxcdUREMDAtXFx1REQyN1xcdUREMzAtXFx1REQ2M1xcdURFMDAtXFx1REYzNlxcdURGNDAtXFx1REY1NVxcdURGNjAtXFx1REY2N118XFx1RDgwMltcXHVEQzAwLVxcdURDMDVcXHVEQzA4XFx1REMwQS1cXHVEQzM1XFx1REMzN1xcdURDMzhcXHVEQzNDXFx1REMzRi1cXHVEQzU1XFx1REM2MC1cXHVEQzc2XFx1REM4MC1cXHVEQzlFXFx1RENFMC1cXHVEQ0YyXFx1RENGNFxcdURDRjVcXHVERDAwLVxcdUREMTVcXHVERDIwLVxcdUREMzlcXHVERDgwLVxcdUREQjdcXHVEREJFXFx1RERCRlxcdURFMDAtXFx1REUwM1xcdURFMDVcXHVERTA2XFx1REUwQy1cXHVERTEzXFx1REUxNS1cXHVERTE3XFx1REUxOS1cXHVERTMzXFx1REUzOC1cXHVERTNBXFx1REUzRlxcdURFNjAtXFx1REU3Q1xcdURFODAtXFx1REU5Q1xcdURFQzAtXFx1REVDN1xcdURFQzktXFx1REVFNlxcdURGMDAtXFx1REYzNVxcdURGNDAtXFx1REY1NVxcdURGNjAtXFx1REY3MlxcdURGODAtXFx1REY5MV18XFx1RDgwM1tcXHVEQzAwLVxcdURDNDhcXHVEQzgwLVxcdURDQjJcXHVEQ0MwLVxcdURDRjJdfFxcdUQ4MDRbXFx1REMwMC1cXHVEQzQ2XFx1REM2Ni1cXHVEQzZGXFx1REM3Ri1cXHVEQ0JBXFx1RENEMC1cXHVEQ0U4XFx1RENGMC1cXHVEQ0Y5XFx1REQwMC1cXHVERDM0XFx1REQzNi1cXHVERDNGXFx1REQ1MC1cXHVERDczXFx1REQ3NlxcdUREODAtXFx1RERDNFxcdUREQ0EtXFx1RERDQ1xcdURERDAtXFx1REREQVxcdURERENcXHVERTAwLVxcdURFMTFcXHVERTEzLVxcdURFMzdcXHVERTNFXFx1REU4MC1cXHVERTg2XFx1REU4OFxcdURFOEEtXFx1REU4RFxcdURFOEYtXFx1REU5RFxcdURFOUYtXFx1REVBOFxcdURFQjAtXFx1REVFQVxcdURFRjAtXFx1REVGOVxcdURGMDAtXFx1REYwM1xcdURGMDUtXFx1REYwQ1xcdURGMEZcXHVERjEwXFx1REYxMy1cXHVERjI4XFx1REYyQS1cXHVERjMwXFx1REYzMlxcdURGMzNcXHVERjM1LVxcdURGMzlcXHVERjNDLVxcdURGNDRcXHVERjQ3XFx1REY0OFxcdURGNEItXFx1REY0RFxcdURGNTBcXHVERjU3XFx1REY1RC1cXHVERjYzXFx1REY2Ni1cXHVERjZDXFx1REY3MC1cXHVERjc0XXxcXHVEODA1W1xcdURDMDAtXFx1REM0QVxcdURDNTAtXFx1REM1OVxcdURDODAtXFx1RENDNVxcdURDQzdcXHVEQ0QwLVxcdURDRDlcXHVERDgwLVxcdUREQjVcXHVEREI4LVxcdUREQzBcXHVEREQ4LVxcdURERERcXHVERTAwLVxcdURFNDBcXHVERTQ0XFx1REU1MC1cXHVERTU5XFx1REU4MC1cXHVERUI3XFx1REVDMC1cXHVERUM5XFx1REYwMC1cXHVERjE5XFx1REYxRC1cXHVERjJCXFx1REYzMC1cXHVERjM5XXxcXHVEODA2W1xcdURDQTAtXFx1RENFOVxcdURDRkZcXHVERTAwLVxcdURFM0VcXHVERTQ3XFx1REU1MC1cXHVERTgzXFx1REU4Ni1cXHVERTk5XFx1REVDMC1cXHVERUY4XXxcXHVEODA3W1xcdURDMDAtXFx1REMwOFxcdURDMEEtXFx1REMzNlxcdURDMzgtXFx1REM0MFxcdURDNTAtXFx1REM1OVxcdURDNzItXFx1REM4RlxcdURDOTItXFx1RENBN1xcdURDQTktXFx1RENCNlxcdUREMDAtXFx1REQwNlxcdUREMDhcXHVERDA5XFx1REQwQi1cXHVERDM2XFx1REQzQVxcdUREM0NcXHVERDNEXFx1REQzRi1cXHVERDQ3XFx1REQ1MC1cXHVERDU5XXxcXHVEODA4W1xcdURDMDAtXFx1REY5OV18XFx1RDgwOVtcXHVEQzAwLVxcdURDNkVcXHVEQzgwLVxcdURENDNdfFtcXHVEODBDXFx1RDgxQy1cXHVEODIwXFx1RDg0MC1cXHVEODY4XFx1RDg2QS1cXHVEODZDXFx1RDg2Ri1cXHVEODcyXFx1RDg3NC1cXHVEODc5XVtcXHVEQzAwLVxcdURGRkZdfFxcdUQ4MERbXFx1REMwMC1cXHVEQzJFXXxcXHVEODExW1xcdURDMDAtXFx1REU0Nl18XFx1RDgxQVtcXHVEQzAwLVxcdURFMzhcXHVERTQwLVxcdURFNUVcXHVERTYwLVxcdURFNjlcXHVERUQwLVxcdURFRURcXHVERUYwLVxcdURFRjRcXHVERjAwLVxcdURGMzZcXHVERjQwLVxcdURGNDNcXHVERjUwLVxcdURGNTlcXHVERjYzLVxcdURGNzdcXHVERjdELVxcdURGOEZdfFxcdUQ4MUJbXFx1REYwMC1cXHVERjQ0XFx1REY1MC1cXHVERjdFXFx1REY4Ri1cXHVERjlGXFx1REZFMFxcdURGRTFdfFxcdUQ4MjFbXFx1REMwMC1cXHVERkVDXXxcXHVEODIyW1xcdURDMDAtXFx1REVGMl18XFx1RDgyQ1tcXHVEQzAwLVxcdUREMUVcXHVERDcwLVxcdURFRkJdfFxcdUQ4MkZbXFx1REMwMC1cXHVEQzZBXFx1REM3MC1cXHVEQzdDXFx1REM4MC1cXHVEQzg4XFx1REM5MC1cXHVEQzk5XFx1REM5RFxcdURDOUVdfFxcdUQ4MzRbXFx1REQ2NS1cXHVERDY5XFx1REQ2RC1cXHVERDcyXFx1REQ3Qi1cXHVERDgyXFx1REQ4NS1cXHVERDhCXFx1RERBQS1cXHVEREFEXFx1REU0Mi1cXHVERTQ0XXxcXHVEODM1W1xcdURDMDAtXFx1REM1NFxcdURDNTYtXFx1REM5Q1xcdURDOUVcXHVEQzlGXFx1RENBMlxcdURDQTVcXHVEQ0E2XFx1RENBOS1cXHVEQ0FDXFx1RENBRS1cXHVEQ0I5XFx1RENCQlxcdURDQkQtXFx1RENDM1xcdURDQzUtXFx1REQwNVxcdUREMDctXFx1REQwQVxcdUREMEQtXFx1REQxNFxcdUREMTYtXFx1REQxQ1xcdUREMUUtXFx1REQzOVxcdUREM0ItXFx1REQzRVxcdURENDAtXFx1REQ0NFxcdURENDZcXHVERDRBLVxcdURENTBcXHVERDUyLVxcdURFQTVcXHVERUE4LVxcdURFQzBcXHVERUMyLVxcdURFREFcXHVERURDLVxcdURFRkFcXHVERUZDLVxcdURGMTRcXHVERjE2LVxcdURGMzRcXHVERjM2LVxcdURGNEVcXHVERjUwLVxcdURGNkVcXHVERjcwLVxcdURGODhcXHVERjhBLVxcdURGQThcXHVERkFBLVxcdURGQzJcXHVERkM0LVxcdURGQ0JcXHVERkNFLVxcdURGRkZdfFxcdUQ4MzZbXFx1REUwMC1cXHVERTM2XFx1REUzQi1cXHVERTZDXFx1REU3NVxcdURFODRcXHVERTlCLVxcdURFOUZcXHVERUExLVxcdURFQUZdfFxcdUQ4MzhbXFx1REMwMC1cXHVEQzA2XFx1REMwOC1cXHVEQzE4XFx1REMxQi1cXHVEQzIxXFx1REMyM1xcdURDMjRcXHVEQzI2LVxcdURDMkFdfFxcdUQ4M0FbXFx1REMwMC1cXHVEQ0M0XFx1RENEMC1cXHVEQ0Q2XFx1REQwMC1cXHVERDRBXFx1REQ1MC1cXHVERDU5XXxcXHVEODNCW1xcdURFMDAtXFx1REUwM1xcdURFMDUtXFx1REUxRlxcdURFMjFcXHVERTIyXFx1REUyNFxcdURFMjdcXHVERTI5LVxcdURFMzJcXHVERTM0LVxcdURFMzdcXHVERTM5XFx1REUzQlxcdURFNDJcXHVERTQ3XFx1REU0OVxcdURFNEJcXHVERTRELVxcdURFNEZcXHVERTUxXFx1REU1MlxcdURFNTRcXHVERTU3XFx1REU1OVxcdURFNUJcXHVERTVEXFx1REU1RlxcdURFNjFcXHVERTYyXFx1REU2NFxcdURFNjctXFx1REU2QVxcdURFNkMtXFx1REU3MlxcdURFNzQtXFx1REU3N1xcdURFNzktXFx1REU3Q1xcdURFN0VcXHVERTgwLVxcdURFODlcXHVERThCLVxcdURFOUJcXHVERUExLVxcdURFQTNcXHVERUE1LVxcdURFQTlcXHVERUFCLVxcdURFQkJdfFxcdUQ4NjlbXFx1REMwMC1cXHVERUQ2XFx1REYwMC1cXHVERkZGXXxcXHVEODZEW1xcdURDMDAtXFx1REYzNFxcdURGNDAtXFx1REZGRl18XFx1RDg2RVtcXHVEQzAwLVxcdURDMURcXHVEQzIwLVxcdURGRkZdfFxcdUQ4NzNbXFx1REMwMC1cXHVERUExXFx1REVCMC1cXHVERkZGXXxcXHVEODdBW1xcdURDMDAtXFx1REZFMF18XFx1RDg3RVtcXHVEQzAwLVxcdURFMURdfFxcdURCNDBbXFx1REQwMC1cXHVEREVGXS87XG5cblx0dmFyIHVuaWNvZGUgPSB7XG5cdFx0U3BhY2VfU2VwYXJhdG9yOiBTcGFjZV9TZXBhcmF0b3IsXG5cdFx0SURfU3RhcnQ6IElEX1N0YXJ0LFxuXHRcdElEX0NvbnRpbnVlOiBJRF9Db250aW51ZVxuXHR9O1xuXG5cdHZhciB1dGlsID0ge1xuXHQgICAgaXNTcGFjZVNlcGFyYXRvcjogZnVuY3Rpb24gaXNTcGFjZVNlcGFyYXRvciAoYykge1xuXHQgICAgICAgIHJldHVybiB0eXBlb2YgYyA9PT0gJ3N0cmluZycgJiYgdW5pY29kZS5TcGFjZV9TZXBhcmF0b3IudGVzdChjKVxuXHQgICAgfSxcblxuXHQgICAgaXNJZFN0YXJ0Q2hhcjogZnVuY3Rpb24gaXNJZFN0YXJ0Q2hhciAoYykge1xuXHQgICAgICAgIHJldHVybiB0eXBlb2YgYyA9PT0gJ3N0cmluZycgJiYgKFxuXHQgICAgICAgICAgICAoYyA+PSAnYScgJiYgYyA8PSAneicpIHx8XG5cdCAgICAgICAgKGMgPj0gJ0EnICYmIGMgPD0gJ1onKSB8fFxuXHQgICAgICAgIChjID09PSAnJCcpIHx8IChjID09PSAnXycpIHx8XG5cdCAgICAgICAgdW5pY29kZS5JRF9TdGFydC50ZXN0KGMpXG5cdCAgICAgICAgKVxuXHQgICAgfSxcblxuXHQgICAgaXNJZENvbnRpbnVlQ2hhcjogZnVuY3Rpb24gaXNJZENvbnRpbnVlQ2hhciAoYykge1xuXHQgICAgICAgIHJldHVybiB0eXBlb2YgYyA9PT0gJ3N0cmluZycgJiYgKFxuXHQgICAgICAgICAgICAoYyA+PSAnYScgJiYgYyA8PSAneicpIHx8XG5cdCAgICAgICAgKGMgPj0gJ0EnICYmIGMgPD0gJ1onKSB8fFxuXHQgICAgICAgIChjID49ICcwJyAmJiBjIDw9ICc5JykgfHxcblx0ICAgICAgICAoYyA9PT0gJyQnKSB8fCAoYyA9PT0gJ18nKSB8fFxuXHQgICAgICAgIChjID09PSAnXFx1MjAwQycpIHx8IChjID09PSAnXFx1MjAwRCcpIHx8XG5cdCAgICAgICAgdW5pY29kZS5JRF9Db250aW51ZS50ZXN0KGMpXG5cdCAgICAgICAgKVxuXHQgICAgfSxcblxuXHQgICAgaXNEaWdpdDogZnVuY3Rpb24gaXNEaWdpdCAoYykge1xuXHQgICAgICAgIHJldHVybiB0eXBlb2YgYyA9PT0gJ3N0cmluZycgJiYgL1swLTldLy50ZXN0KGMpXG5cdCAgICB9LFxuXG5cdCAgICBpc0hleERpZ2l0OiBmdW5jdGlvbiBpc0hleERpZ2l0IChjKSB7XG5cdCAgICAgICAgcmV0dXJuIHR5cGVvZiBjID09PSAnc3RyaW5nJyAmJiAvWzAtOUEtRmEtZl0vLnRlc3QoYylcblx0ICAgIH0sXG5cdH07XG5cblx0dmFyIHNvdXJjZTtcblx0dmFyIHBhcnNlU3RhdGU7XG5cdHZhciBzdGFjaztcblx0dmFyIHBvcztcblx0dmFyIGxpbmU7XG5cdHZhciBjb2x1bW47XG5cdHZhciB0b2tlbjtcblx0dmFyIGtleTtcblx0dmFyIHJvb3Q7XG5cblx0dmFyIHBhcnNlID0gZnVuY3Rpb24gcGFyc2UgKHRleHQsIHJldml2ZXIpIHtcblx0ICAgIHNvdXJjZSA9IFN0cmluZyh0ZXh0KTtcblx0ICAgIHBhcnNlU3RhdGUgPSAnc3RhcnQnO1xuXHQgICAgc3RhY2sgPSBbXTtcblx0ICAgIHBvcyA9IDA7XG5cdCAgICBsaW5lID0gMTtcblx0ICAgIGNvbHVtbiA9IDA7XG5cdCAgICB0b2tlbiA9IHVuZGVmaW5lZDtcblx0ICAgIGtleSA9IHVuZGVmaW5lZDtcblx0ICAgIHJvb3QgPSB1bmRlZmluZWQ7XG5cblx0ICAgIGRvIHtcblx0ICAgICAgICB0b2tlbiA9IGxleCgpO1xuXG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlLlxuXHQgICAgICAgIC8vIGlmICghcGFyc2VTdGF0ZXNbcGFyc2VTdGF0ZV0pIHtcblx0ICAgICAgICAvLyAgICAgdGhyb3cgaW52YWxpZFBhcnNlU3RhdGUoKVxuXHQgICAgICAgIC8vIH1cblxuXHQgICAgICAgIHBhcnNlU3RhdGVzW3BhcnNlU3RhdGVdKCk7XG5cdCAgICB9IHdoaWxlICh0b2tlbi50eXBlICE9PSAnZW9mJylcblxuXHQgICAgaWYgKHR5cGVvZiByZXZpdmVyID09PSAnZnVuY3Rpb24nKSB7XG5cdCAgICAgICAgcmV0dXJuIGludGVybmFsaXplKHsnJzogcm9vdH0sICcnLCByZXZpdmVyKVxuXHQgICAgfVxuXG5cdCAgICByZXR1cm4gcm9vdFxuXHR9O1xuXG5cdGZ1bmN0aW9uIGludGVybmFsaXplIChob2xkZXIsIG5hbWUsIHJldml2ZXIpIHtcblx0ICAgIHZhciB2YWx1ZSA9IGhvbGRlcltuYW1lXTtcblx0ICAgIGlmICh2YWx1ZSAhPSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcblx0ICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcblx0ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xuXHQgICAgICAgICAgICAgICAgdmFyIGtleSA9IFN0cmluZyhpKTtcblx0ICAgICAgICAgICAgICAgIHZhciByZXBsYWNlbWVudCA9IGludGVybmFsaXplKHZhbHVlLCBrZXksIHJldml2ZXIpO1xuXHQgICAgICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID09PSB1bmRlZmluZWQpIHtcblx0ICAgICAgICAgICAgICAgICAgICBkZWxldGUgdmFsdWVba2V5XTtcblx0ICAgICAgICAgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHZhbHVlLCBrZXksIHtcblx0ICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHJlcGxhY2VtZW50LFxuXHQgICAgICAgICAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcblx0ICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcblx0ICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuXHQgICAgICAgICAgICAgICAgICAgIH0pO1xuXHQgICAgICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgZm9yICh2YXIga2V5JDEgaW4gdmFsdWUpIHtcblx0ICAgICAgICAgICAgICAgIHZhciByZXBsYWNlbWVudCQxID0gaW50ZXJuYWxpemUodmFsdWUsIGtleSQxLCByZXZpdmVyKTtcblx0ICAgICAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCQxID09PSB1bmRlZmluZWQpIHtcblx0ICAgICAgICAgICAgICAgICAgICBkZWxldGUgdmFsdWVba2V5JDFdO1xuXHQgICAgICAgICAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodmFsdWUsIGtleSQxLCB7XG5cdCAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiByZXBsYWNlbWVudCQxLFxuXHQgICAgICAgICAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcblx0ICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcblx0ICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuXHQgICAgICAgICAgICAgICAgICAgIH0pO1xuXHQgICAgICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfVxuXHQgICAgfVxuXG5cdCAgICByZXR1cm4gcmV2aXZlci5jYWxsKGhvbGRlciwgbmFtZSwgdmFsdWUpXG5cdH1cblxuXHR2YXIgbGV4U3RhdGU7XG5cdHZhciBidWZmZXI7XG5cdHZhciBkb3VibGVRdW90ZTtcblx0dmFyIHNpZ247XG5cdHZhciBjO1xuXG5cdGZ1bmN0aW9uIGxleCAoKSB7XG5cdCAgICBsZXhTdGF0ZSA9ICdkZWZhdWx0Jztcblx0ICAgIGJ1ZmZlciA9ICcnO1xuXHQgICAgZG91YmxlUXVvdGUgPSBmYWxzZTtcblx0ICAgIHNpZ24gPSAxO1xuXG5cdCAgICBmb3IgKDs7KSB7XG5cdCAgICAgICAgYyA9IHBlZWsoKTtcblxuXHQgICAgICAgIC8vIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZS5cblx0ICAgICAgICAvLyBpZiAoIWxleFN0YXRlc1tsZXhTdGF0ZV0pIHtcblx0ICAgICAgICAvLyAgICAgdGhyb3cgaW52YWxpZExleFN0YXRlKGxleFN0YXRlKVxuXHQgICAgICAgIC8vIH1cblxuXHQgICAgICAgIHZhciB0b2tlbiA9IGxleFN0YXRlc1tsZXhTdGF0ZV0oKTtcblx0ICAgICAgICBpZiAodG9rZW4pIHtcblx0ICAgICAgICAgICAgcmV0dXJuIHRva2VuXG5cdCAgICAgICAgfVxuXHQgICAgfVxuXHR9XG5cblx0ZnVuY3Rpb24gcGVlayAoKSB7XG5cdCAgICBpZiAoc291cmNlW3Bvc10pIHtcblx0ICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21Db2RlUG9pbnQoc291cmNlLmNvZGVQb2ludEF0KHBvcykpXG5cdCAgICB9XG5cdH1cblxuXHRmdW5jdGlvbiByZWFkICgpIHtcblx0ICAgIHZhciBjID0gcGVlaygpO1xuXG5cdCAgICBpZiAoYyA9PT0gJ1xcbicpIHtcblx0ICAgICAgICBsaW5lKys7XG5cdCAgICAgICAgY29sdW1uID0gMDtcblx0ICAgIH0gZWxzZSBpZiAoYykge1xuXHQgICAgICAgIGNvbHVtbiArPSBjLmxlbmd0aDtcblx0ICAgIH0gZWxzZSB7XG5cdCAgICAgICAgY29sdW1uKys7XG5cdCAgICB9XG5cblx0ICAgIGlmIChjKSB7XG5cdCAgICAgICAgcG9zICs9IGMubGVuZ3RoO1xuXHQgICAgfVxuXG5cdCAgICByZXR1cm4gY1xuXHR9XG5cblx0dmFyIGxleFN0YXRlcyA9IHtcblx0ICAgIGRlZmF1bHQ6IGZ1bmN0aW9uIGRlZmF1bHQkMSAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnXFx0Jzpcblx0ICAgICAgICBjYXNlICdcXHYnOlxuXHQgICAgICAgIGNhc2UgJ1xcZic6XG5cdCAgICAgICAgY2FzZSAnICc6XG5cdCAgICAgICAgY2FzZSAnXFx1MDBBMCc6XG5cdCAgICAgICAgY2FzZSAnXFx1RkVGRic6XG5cdCAgICAgICAgY2FzZSAnXFxuJzpcblx0ICAgICAgICBjYXNlICdcXHInOlxuXHQgICAgICAgIGNhc2UgJ1xcdTIwMjgnOlxuXHQgICAgICAgIGNhc2UgJ1xcdTIwMjknOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnLyc6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnY29tbWVudCc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdlb2YnKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh1dGlsLmlzU3BhY2VTZXBhcmF0b3IoYykpIHtcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICAvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUuXG5cdCAgICAgICAgLy8gaWYgKCFsZXhTdGF0ZXNbcGFyc2VTdGF0ZV0pIHtcblx0ICAgICAgICAvLyAgICAgdGhyb3cgaW52YWxpZExleFN0YXRlKHBhcnNlU3RhdGUpXG5cdCAgICAgICAgLy8gfVxuXG5cdCAgICAgICAgcmV0dXJuIGxleFN0YXRlc1twYXJzZVN0YXRlXSgpXG5cdCAgICB9LFxuXG5cdCAgICBjb21tZW50OiBmdW5jdGlvbiBjb21tZW50ICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICcqJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdtdWx0aUxpbmVDb21tZW50Jztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICcvJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdzaW5nbGVMaW5lQ29tbWVudCc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH0sXG5cblx0ICAgIG11bHRpTGluZUNvbW1lbnQ6IGZ1bmN0aW9uIG11bHRpTGluZUNvbW1lbnQgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJyonOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ211bHRpTGluZUNvbW1lbnRBc3Rlcmlzayc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZWFkKCk7XG5cdCAgICB9LFxuXG5cdCAgICBtdWx0aUxpbmVDb21tZW50QXN0ZXJpc2s6IGZ1bmN0aW9uIG11bHRpTGluZUNvbW1lbnRBc3RlcmlzayAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnKic6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICcvJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWZhdWx0Jztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlIHVuZGVmaW5lZDpcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICBsZXhTdGF0ZSA9ICdtdWx0aUxpbmVDb21tZW50Jztcblx0ICAgIH0sXG5cblx0ICAgIHNpbmdsZUxpbmVDb21tZW50OiBmdW5jdGlvbiBzaW5nbGVMaW5lQ29tbWVudCAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnXFxuJzpcblx0ICAgICAgICBjYXNlICdcXHInOlxuXHQgICAgICAgIGNhc2UgJ1xcdTIwMjgnOlxuXHQgICAgICAgIGNhc2UgJ1xcdTIwMjknOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlZmF1bHQnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgdW5kZWZpbmVkOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbignZW9mJylcblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZWFkKCk7XG5cdCAgICB9LFxuXG5cdCAgICB2YWx1ZTogZnVuY3Rpb24gdmFsdWUgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJ3snOlxuXHQgICAgICAgIGNhc2UgJ1snOlxuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ3B1bmN0dWF0b3InLCByZWFkKCkpXG5cblx0ICAgICAgICBjYXNlICduJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsaXRlcmFsKCd1bGwnKTtcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdudWxsJywgbnVsbClcblxuXHQgICAgICAgIGNhc2UgJ3QnOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxpdGVyYWwoJ3J1ZScpO1xuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ2Jvb2xlYW4nLCB0cnVlKVxuXG5cdCAgICAgICAgY2FzZSAnZic6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGl0ZXJhbCgnYWxzZScpO1xuXHQgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ2Jvb2xlYW4nLCBmYWxzZSlcblxuXHQgICAgICAgIGNhc2UgJy0nOlxuXHQgICAgICAgIGNhc2UgJysnOlxuXHQgICAgICAgICAgICBpZiAocmVhZCgpID09PSAnLScpIHtcblx0ICAgICAgICAgICAgICAgIHNpZ24gPSAtMTtcblx0ICAgICAgICAgICAgfVxuXG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ3NpZ24nO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJy4nOlxuXHQgICAgICAgICAgICBidWZmZXIgPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxQb2ludExlYWRpbmcnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJzAnOlxuXHQgICAgICAgICAgICBidWZmZXIgPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ3plcm8nO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJzEnOlxuXHQgICAgICAgIGNhc2UgJzInOlxuXHQgICAgICAgIGNhc2UgJzMnOlxuXHQgICAgICAgIGNhc2UgJzQnOlxuXHQgICAgICAgIGNhc2UgJzUnOlxuXHQgICAgICAgIGNhc2UgJzYnOlxuXHQgICAgICAgIGNhc2UgJzcnOlxuXHQgICAgICAgIGNhc2UgJzgnOlxuXHQgICAgICAgIGNhc2UgJzknOlxuXHQgICAgICAgICAgICBidWZmZXIgPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxJbnRlZ2VyJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICdJJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsaXRlcmFsKCduZmluaXR5Jyk7XG5cdCAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbignbnVtZXJpYycsIEluZmluaXR5KVxuXG5cdCAgICAgICAgY2FzZSAnTic6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGl0ZXJhbCgnYU4nKTtcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdudW1lcmljJywgTmFOKVxuXG5cdCAgICAgICAgY2FzZSAnXCInOlxuXHQgICAgICAgIGNhc2UgXCInXCI6XG5cdCAgICAgICAgICAgIGRvdWJsZVF1b3RlID0gKHJlYWQoKSA9PT0gJ1wiJyk7XG5cdCAgICAgICAgICAgIGJ1ZmZlciA9ICcnO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdzdHJpbmcnO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXG5cdCAgICBpZGVudGlmaWVyTmFtZVN0YXJ0RXNjYXBlOiBmdW5jdGlvbiBpZGVudGlmaWVyTmFtZVN0YXJ0RXNjYXBlICgpIHtcblx0ICAgICAgICBpZiAoYyAhPT0gJ3UnKSB7XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgdmFyIHUgPSB1bmljb2RlRXNjYXBlKCk7XG5cdCAgICAgICAgc3dpdGNoICh1KSB7XG5cdCAgICAgICAgY2FzZSAnJCc6XG5cdCAgICAgICAgY2FzZSAnXyc6XG5cdCAgICAgICAgICAgIGJyZWFrXG5cblx0ICAgICAgICBkZWZhdWx0OlxuXHQgICAgICAgICAgICBpZiAoIXV0aWwuaXNJZFN0YXJ0Q2hhcih1KSkge1xuXHQgICAgICAgICAgICAgICAgdGhyb3cgaW52YWxpZElkZW50aWZpZXIoKVxuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgYnJlYWtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBidWZmZXIgKz0gdTtcblx0ICAgICAgICBsZXhTdGF0ZSA9ICdpZGVudGlmaWVyTmFtZSc7XG5cdCAgICB9LFxuXG5cdCAgICBpZGVudGlmaWVyTmFtZTogZnVuY3Rpb24gaWRlbnRpZmllck5hbWUgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJyQnOlxuXHQgICAgICAgIGNhc2UgJ18nOlxuXHQgICAgICAgIGNhc2UgJ1xcdTIwMEMnOlxuXHQgICAgICAgIGNhc2UgJ1xcdTIwMEQnOlxuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJ1xcXFwnOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2lkZW50aWZpZXJOYW1lRXNjYXBlJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHV0aWwuaXNJZENvbnRpbnVlQ2hhcihjKSkge1xuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ2lkZW50aWZpZXInLCBidWZmZXIpXG5cdCAgICB9LFxuXG5cdCAgICBpZGVudGlmaWVyTmFtZUVzY2FwZTogZnVuY3Rpb24gaWRlbnRpZmllck5hbWVFc2NhcGUgKCkge1xuXHQgICAgICAgIGlmIChjICE9PSAndScpIHtcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICB2YXIgdSA9IHVuaWNvZGVFc2NhcGUoKTtcblx0ICAgICAgICBzd2l0Y2ggKHUpIHtcblx0ICAgICAgICBjYXNlICckJzpcblx0ICAgICAgICBjYXNlICdfJzpcblx0ICAgICAgICBjYXNlICdcXHUyMDBDJzpcblx0ICAgICAgICBjYXNlICdcXHUyMDBEJzpcblx0ICAgICAgICAgICAgYnJlYWtcblxuXHQgICAgICAgIGRlZmF1bHQ6XG5cdCAgICAgICAgICAgIGlmICghdXRpbC5pc0lkQ29udGludWVDaGFyKHUpKSB7XG5cdCAgICAgICAgICAgICAgICB0aHJvdyBpbnZhbGlkSWRlbnRpZmllcigpXG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICBicmVha1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGJ1ZmZlciArPSB1O1xuXHQgICAgICAgIGxleFN0YXRlID0gJ2lkZW50aWZpZXJOYW1lJztcblx0ICAgIH0sXG5cblx0ICAgIHNpZ246IGZ1bmN0aW9uIHNpZ24kMSAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnLic6XG5cdCAgICAgICAgICAgIGJ1ZmZlciA9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbFBvaW50TGVhZGluZyc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnMCc6XG5cdCAgICAgICAgICAgIGJ1ZmZlciA9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnemVybyc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXG5cdCAgICAgICAgY2FzZSAnMSc6XG5cdCAgICAgICAgY2FzZSAnMic6XG5cdCAgICAgICAgY2FzZSAnMyc6XG5cdCAgICAgICAgY2FzZSAnNCc6XG5cdCAgICAgICAgY2FzZSAnNSc6XG5cdCAgICAgICAgY2FzZSAnNic6XG5cdCAgICAgICAgY2FzZSAnNyc6XG5cdCAgICAgICAgY2FzZSAnOCc6XG5cdCAgICAgICAgY2FzZSAnOSc6XG5cdCAgICAgICAgICAgIGJ1ZmZlciA9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbEludGVnZXInO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJ0knOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGxpdGVyYWwoJ25maW5pdHknKTtcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdudW1lcmljJywgc2lnbiAqIEluZmluaXR5KVxuXG5cdCAgICAgICAgY2FzZSAnTic6XG5cdCAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgbGl0ZXJhbCgnYU4nKTtcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdudW1lcmljJywgTmFOKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH0sXG5cblx0ICAgIHplcm86IGZ1bmN0aW9uIHplcm8gKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJy4nOlxuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsUG9pbnQnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJ2UnOlxuXHQgICAgICAgIGNhc2UgJ0UnOlxuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsRXhwb25lbnQnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJ3gnOlxuXHQgICAgICAgIGNhc2UgJ1gnOlxuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdoZXhhZGVjaW1hbCc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiBuZXdUb2tlbignbnVtZXJpYycsIHNpZ24gKiAwKVxuXHQgICAgfSxcblxuXHQgICAgZGVjaW1hbEludGVnZXI6IGZ1bmN0aW9uIGRlY2ltYWxJbnRlZ2VyICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICcuJzpcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbFBvaW50Jztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICdlJzpcblx0ICAgICAgICBjYXNlICdFJzpcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbEV4cG9uZW50Jztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHV0aWwuaXNEaWdpdChjKSkge1xuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ251bWVyaWMnLCBzaWduICogTnVtYmVyKGJ1ZmZlcikpXG5cdCAgICB9LFxuXG5cdCAgICBkZWNpbWFsUG9pbnRMZWFkaW5nOiBmdW5jdGlvbiBkZWNpbWFsUG9pbnRMZWFkaW5nICgpIHtcblx0ICAgICAgICBpZiAodXRpbC5pc0RpZ2l0KGMpKSB7XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxGcmFjdGlvbic7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH0sXG5cblx0ICAgIGRlY2ltYWxQb2ludDogZnVuY3Rpb24gZGVjaW1hbFBvaW50ICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICdlJzpcblx0ICAgICAgICBjYXNlICdFJzpcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnZGVjaW1hbEV4cG9uZW50Jztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHV0aWwuaXNEaWdpdChjKSkge1xuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsRnJhY3Rpb24nO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ251bWVyaWMnLCBzaWduICogTnVtYmVyKGJ1ZmZlcikpXG5cdCAgICB9LFxuXG5cdCAgICBkZWNpbWFsRnJhY3Rpb246IGZ1bmN0aW9uIGRlY2ltYWxGcmFjdGlvbiAoKSB7XG5cdCAgICAgICAgc3dpdGNoIChjKSB7XG5cdCAgICAgICAgY2FzZSAnZSc6XG5cdCAgICAgICAgY2FzZSAnRSc6XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2RlY2ltYWxFeHBvbmVudCc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh1dGlsLmlzRGlnaXQoYykpIHtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdudW1lcmljJywgc2lnbiAqIE51bWJlcihidWZmZXIpKVxuXHQgICAgfSxcblxuXHQgICAgZGVjaW1hbEV4cG9uZW50OiBmdW5jdGlvbiBkZWNpbWFsRXhwb25lbnQgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJysnOlxuXHQgICAgICAgIGNhc2UgJy0nOlxuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsRXhwb25lbnRTaWduJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHV0aWwuaXNEaWdpdChjKSkge1xuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsRXhwb25lbnRJbnRlZ2VyJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfSxcblxuXHQgICAgZGVjaW1hbEV4cG9uZW50U2lnbjogZnVuY3Rpb24gZGVjaW1hbEV4cG9uZW50U2lnbiAoKSB7XG5cdCAgICAgICAgaWYgKHV0aWwuaXNEaWdpdChjKSkge1xuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdkZWNpbWFsRXhwb25lbnRJbnRlZ2VyJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfSxcblxuXHQgICAgZGVjaW1hbEV4cG9uZW50SW50ZWdlcjogZnVuY3Rpb24gZGVjaW1hbEV4cG9uZW50SW50ZWdlciAoKSB7XG5cdCAgICAgICAgaWYgKHV0aWwuaXNEaWdpdChjKSkge1xuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICByZXR1cm4gbmV3VG9rZW4oJ251bWVyaWMnLCBzaWduICogTnVtYmVyKGJ1ZmZlcikpXG5cdCAgICB9LFxuXG5cdCAgICBoZXhhZGVjaW1hbDogZnVuY3Rpb24gaGV4YWRlY2ltYWwgKCkge1xuXHQgICAgICAgIGlmICh1dGlsLmlzSGV4RGlnaXQoYykpIHtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnaGV4YWRlY2ltYWxJbnRlZ2VyJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfSxcblxuXHQgICAgaGV4YWRlY2ltYWxJbnRlZ2VyOiBmdW5jdGlvbiBoZXhhZGVjaW1hbEludGVnZXIgKCkge1xuXHQgICAgICAgIGlmICh1dGlsLmlzSGV4RGlnaXQoYykpIHtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdudW1lcmljJywgc2lnbiAqIE51bWJlcihidWZmZXIpKVxuXHQgICAgfSxcblxuXHQgICAgc3RyaW5nOiBmdW5jdGlvbiBzdHJpbmcgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJ1xcXFwnOlxuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgICAgIGJ1ZmZlciArPSBlc2NhcGUoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICdcIic6XG5cdCAgICAgICAgICAgIGlmIChkb3VibGVRdW90ZSkge1xuXHQgICAgICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdzdHJpbmcnLCBidWZmZXIpXG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgXCInXCI6XG5cdCAgICAgICAgICAgIGlmICghZG91YmxlUXVvdGUpIHtcblx0ICAgICAgICAgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbignc3RyaW5nJywgYnVmZmVyKVxuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICdcXG4nOlxuXHQgICAgICAgIGNhc2UgJ1xccic6XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblxuXHQgICAgICAgIGNhc2UgJ1xcdTIwMjgnOlxuXHQgICAgICAgIGNhc2UgJ1xcdTIwMjknOlxuXHQgICAgICAgICAgICBzZXBhcmF0b3JDaGFyKGMpO1xuXHQgICAgICAgICAgICBicmVha1xuXG5cdCAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgfSxcblxuXHQgICAgc3RhcnQ6IGZ1bmN0aW9uIHN0YXJ0ICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICd7Jzpcblx0ICAgICAgICBjYXNlICdbJzpcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdwdW5jdHVhdG9yJywgcmVhZCgpKVxuXG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlIHNpbmNlIHRoZSBkZWZhdWx0IGxleFN0YXRlIGhhbmRsZXMgZW9mLlxuXHQgICAgICAgIC8vIGNhc2UgdW5kZWZpbmVkOlxuXHQgICAgICAgIC8vICAgICByZXR1cm4gbmV3VG9rZW4oJ2VvZicpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgbGV4U3RhdGUgPSAndmFsdWUnO1xuXHQgICAgfSxcblxuXHQgICAgYmVmb3JlUHJvcGVydHlOYW1lOiBmdW5jdGlvbiBiZWZvcmVQcm9wZXJ0eU5hbWUgKCkge1xuXHQgICAgICAgIHN3aXRjaCAoYykge1xuXHQgICAgICAgIGNhc2UgJyQnOlxuXHQgICAgICAgIGNhc2UgJ18nOlxuXHQgICAgICAgICAgICBidWZmZXIgPSByZWFkKCk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ2lkZW50aWZpZXJOYW1lJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICdcXFxcJzpcblx0ICAgICAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgICAgICBsZXhTdGF0ZSA9ICdpZGVudGlmaWVyTmFtZVN0YXJ0RXNjYXBlJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICd9Jzpcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdwdW5jdHVhdG9yJywgcmVhZCgpKVxuXG5cdCAgICAgICAgY2FzZSAnXCInOlxuXHQgICAgICAgIGNhc2UgXCInXCI6XG5cdCAgICAgICAgICAgIGRvdWJsZVF1b3RlID0gKHJlYWQoKSA9PT0gJ1wiJyk7XG5cdCAgICAgICAgICAgIGxleFN0YXRlID0gJ3N0cmluZyc7XG5cdCAgICAgICAgICAgIHJldHVyblxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh1dGlsLmlzSWRTdGFydENoYXIoYykpIHtcblx0ICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQoKTtcblx0ICAgICAgICAgICAgbGV4U3RhdGUgPSAnaWRlbnRpZmllck5hbWUnO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXG5cdCAgICBhZnRlclByb3BlcnR5TmFtZTogZnVuY3Rpb24gYWZ0ZXJQcm9wZXJ0eU5hbWUgKCkge1xuXHQgICAgICAgIGlmIChjID09PSAnOicpIHtcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdwdW5jdHVhdG9yJywgcmVhZCgpKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH0sXG5cblx0ICAgIGJlZm9yZVByb3BlcnR5VmFsdWU6IGZ1bmN0aW9uIGJlZm9yZVByb3BlcnR5VmFsdWUgKCkge1xuXHQgICAgICAgIGxleFN0YXRlID0gJ3ZhbHVlJztcblx0ICAgIH0sXG5cblx0ICAgIGFmdGVyUHJvcGVydHlWYWx1ZTogZnVuY3Rpb24gYWZ0ZXJQcm9wZXJ0eVZhbHVlICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICcsJzpcblx0ICAgICAgICBjYXNlICd9Jzpcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdwdW5jdHVhdG9yJywgcmVhZCgpKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH0sXG5cblx0ICAgIGJlZm9yZUFycmF5VmFsdWU6IGZ1bmN0aW9uIGJlZm9yZUFycmF5VmFsdWUgKCkge1xuXHQgICAgICAgIGlmIChjID09PSAnXScpIHtcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdwdW5jdHVhdG9yJywgcmVhZCgpKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGxleFN0YXRlID0gJ3ZhbHVlJztcblx0ICAgIH0sXG5cblx0ICAgIGFmdGVyQXJyYXlWYWx1ZTogZnVuY3Rpb24gYWZ0ZXJBcnJheVZhbHVlICgpIHtcblx0ICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICBjYXNlICcsJzpcblx0ICAgICAgICBjYXNlICddJzpcblx0ICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKCdwdW5jdHVhdG9yJywgcmVhZCgpKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH0sXG5cblx0ICAgIGVuZDogZnVuY3Rpb24gZW5kICgpIHtcblx0ICAgICAgICAvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUgc2luY2UgaXQncyBoYW5kbGVkIGJ5IHRoZSBkZWZhdWx0IGxleFN0YXRlLlxuXHQgICAgICAgIC8vIGlmIChjID09PSB1bmRlZmluZWQpIHtcblx0ICAgICAgICAvLyAgICAgcmVhZCgpXG5cdCAgICAgICAgLy8gICAgIHJldHVybiBuZXdUb2tlbignZW9mJylcblx0ICAgICAgICAvLyB9XG5cblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICB9LFxuXHR9O1xuXG5cdGZ1bmN0aW9uIG5ld1Rva2VuICh0eXBlLCB2YWx1ZSkge1xuXHQgICAgcmV0dXJuIHtcblx0ICAgICAgICB0eXBlOiB0eXBlLFxuXHQgICAgICAgIHZhbHVlOiB2YWx1ZSxcblx0ICAgICAgICBsaW5lOiBsaW5lLFxuXHQgICAgICAgIGNvbHVtbjogY29sdW1uLFxuXHQgICAgfVxuXHR9XG5cblx0ZnVuY3Rpb24gbGl0ZXJhbCAocykge1xuXHQgICAgZm9yICh2YXIgaSA9IDAsIGxpc3QgPSBzOyBpIDwgbGlzdC5sZW5ndGg7IGkgKz0gMSkge1xuXHQgICAgICAgIHZhciBjID0gbGlzdFtpXTtcblxuXHQgICAgICAgIHZhciBwID0gcGVlaygpO1xuXG5cdCAgICAgICAgaWYgKHAgIT09IGMpIHtcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgIH1cblx0fVxuXG5cdGZ1bmN0aW9uIGVzY2FwZSAoKSB7XG5cdCAgICB2YXIgYyA9IHBlZWsoKTtcblx0ICAgIHN3aXRjaCAoYykge1xuXHQgICAgY2FzZSAnYic6XG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIHJldHVybiAnXFxiJ1xuXG5cdCAgICBjYXNlICdmJzpcblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgcmV0dXJuICdcXGYnXG5cblx0ICAgIGNhc2UgJ24nOlxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICByZXR1cm4gJ1xcbidcblxuXHQgICAgY2FzZSAncic6XG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIHJldHVybiAnXFxyJ1xuXG5cdCAgICBjYXNlICd0Jzpcblx0ICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgcmV0dXJuICdcXHQnXG5cblx0ICAgIGNhc2UgJ3YnOlxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICByZXR1cm4gJ1xcdidcblxuXHQgICAgY2FzZSAnMCc6XG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIGlmICh1dGlsLmlzRGlnaXQocGVlaygpKSkge1xuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmV0dXJuICdcXDAnXG5cblx0ICAgIGNhc2UgJ3gnOlxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICByZXR1cm4gaGV4RXNjYXBlKClcblxuXHQgICAgY2FzZSAndSc6XG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIHJldHVybiB1bmljb2RlRXNjYXBlKClcblxuXHQgICAgY2FzZSAnXFxuJzpcblx0ICAgIGNhc2UgJ1xcdTIwMjgnOlxuXHQgICAgY2FzZSAnXFx1MjAyOSc6XG5cdCAgICAgICAgcmVhZCgpO1xuXHQgICAgICAgIHJldHVybiAnJ1xuXG5cdCAgICBjYXNlICdcXHInOlxuXHQgICAgICAgIHJlYWQoKTtcblx0ICAgICAgICBpZiAocGVlaygpID09PSAnXFxuJykge1xuXHQgICAgICAgICAgICByZWFkKCk7XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmV0dXJuICcnXG5cblx0ICAgIGNhc2UgJzEnOlxuXHQgICAgY2FzZSAnMic6XG5cdCAgICBjYXNlICczJzpcblx0ICAgIGNhc2UgJzQnOlxuXHQgICAgY2FzZSAnNSc6XG5cdCAgICBjYXNlICc2Jzpcblx0ICAgIGNhc2UgJzcnOlxuXHQgICAgY2FzZSAnOCc6XG5cdCAgICBjYXNlICc5Jzpcblx0ICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkKCkpXG5cblx0ICAgIGNhc2UgdW5kZWZpbmVkOlxuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH1cblxuXHQgICAgcmV0dXJuIHJlYWQoKVxuXHR9XG5cblx0ZnVuY3Rpb24gaGV4RXNjYXBlICgpIHtcblx0ICAgIHZhciBidWZmZXIgPSAnJztcblx0ICAgIHZhciBjID0gcGVlaygpO1xuXG5cdCAgICBpZiAoIXV0aWwuaXNIZXhEaWdpdChjKSkge1xuXHQgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgIH1cblxuXHQgICAgYnVmZmVyICs9IHJlYWQoKTtcblxuXHQgICAgYyA9IHBlZWsoKTtcblx0ICAgIGlmICghdXRpbC5pc0hleERpZ2l0KGMpKSB7XG5cdCAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZCgpKVxuXHQgICAgfVxuXG5cdCAgICBidWZmZXIgKz0gcmVhZCgpO1xuXG5cdCAgICByZXR1cm4gU3RyaW5nLmZyb21Db2RlUG9pbnQocGFyc2VJbnQoYnVmZmVyLCAxNikpXG5cdH1cblxuXHRmdW5jdGlvbiB1bmljb2RlRXNjYXBlICgpIHtcblx0ICAgIHZhciBidWZmZXIgPSAnJztcblx0ICAgIHZhciBjb3VudCA9IDQ7XG5cblx0ICAgIHdoaWxlIChjb3VudC0tID4gMCkge1xuXHQgICAgICAgIHZhciBjID0gcGVlaygpO1xuXHQgICAgICAgIGlmICghdXRpbC5pc0hleERpZ2l0KGMpKSB7XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQoKSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBidWZmZXIgKz0gcmVhZCgpO1xuXHQgICAgfVxuXG5cdCAgICByZXR1cm4gU3RyaW5nLmZyb21Db2RlUG9pbnQocGFyc2VJbnQoYnVmZmVyLCAxNikpXG5cdH1cblxuXHR2YXIgcGFyc2VTdGF0ZXMgPSB7XG5cdCAgICBzdGFydDogZnVuY3Rpb24gc3RhcnQgKCkge1xuXHQgICAgICAgIGlmICh0b2tlbi50eXBlID09PSAnZW9mJykge1xuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkRU9GKClcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBwdXNoKCk7XG5cdCAgICB9LFxuXG5cdCAgICBiZWZvcmVQcm9wZXJ0eU5hbWU6IGZ1bmN0aW9uIGJlZm9yZVByb3BlcnR5TmFtZSAoKSB7XG5cdCAgICAgICAgc3dpdGNoICh0b2tlbi50eXBlKSB7XG5cdCAgICAgICAgY2FzZSAnaWRlbnRpZmllcic6XG5cdCAgICAgICAgY2FzZSAnc3RyaW5nJzpcblx0ICAgICAgICAgICAga2V5ID0gdG9rZW4udmFsdWU7XG5cdCAgICAgICAgICAgIHBhcnNlU3RhdGUgPSAnYWZ0ZXJQcm9wZXJ0eU5hbWUnO1xuXHQgICAgICAgICAgICByZXR1cm5cblxuXHQgICAgICAgIGNhc2UgJ3B1bmN0dWF0b3InOlxuXHQgICAgICAgICAgICAvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUgc2luY2UgaXQncyBoYW5kbGVkIGJ5IHRoZSBsZXhTdGF0ZS5cblx0ICAgICAgICAgICAgLy8gaWYgKHRva2VuLnZhbHVlICE9PSAnfScpIHtcblx0ICAgICAgICAgICAgLy8gICAgIHRocm93IGludmFsaWRUb2tlbigpXG5cdCAgICAgICAgICAgIC8vIH1cblxuXHQgICAgICAgICAgICBwb3AoKTtcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICdlb2YnOlxuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkRU9GKClcblx0ICAgICAgICB9XG5cblx0ICAgICAgICAvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUgc2luY2UgaXQncyBoYW5kbGVkIGJ5IHRoZSBsZXhTdGF0ZS5cblx0ICAgICAgICAvLyB0aHJvdyBpbnZhbGlkVG9rZW4oKVxuXHQgICAgfSxcblxuXHQgICAgYWZ0ZXJQcm9wZXJ0eU5hbWU6IGZ1bmN0aW9uIGFmdGVyUHJvcGVydHlOYW1lICgpIHtcblx0ICAgICAgICAvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUgc2luY2UgaXQncyBoYW5kbGVkIGJ5IHRoZSBsZXhTdGF0ZS5cblx0ICAgICAgICAvLyBpZiAodG9rZW4udHlwZSAhPT0gJ3B1bmN0dWF0b3InIHx8IHRva2VuLnZhbHVlICE9PSAnOicpIHtcblx0ICAgICAgICAvLyAgICAgdGhyb3cgaW52YWxpZFRva2VuKClcblx0ICAgICAgICAvLyB9XG5cblx0ICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gJ2VvZicpIHtcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZEVPRigpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcGFyc2VTdGF0ZSA9ICdiZWZvcmVQcm9wZXJ0eVZhbHVlJztcblx0ICAgIH0sXG5cblx0ICAgIGJlZm9yZVByb3BlcnR5VmFsdWU6IGZ1bmN0aW9uIGJlZm9yZVByb3BlcnR5VmFsdWUgKCkge1xuXHQgICAgICAgIGlmICh0b2tlbi50eXBlID09PSAnZW9mJykge1xuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkRU9GKClcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBwdXNoKCk7XG5cdCAgICB9LFxuXG5cdCAgICBiZWZvcmVBcnJheVZhbHVlOiBmdW5jdGlvbiBiZWZvcmVBcnJheVZhbHVlICgpIHtcblx0ICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gJ2VvZicpIHtcblx0ICAgICAgICAgICAgdGhyb3cgaW52YWxpZEVPRigpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09ICdwdW5jdHVhdG9yJyAmJiB0b2tlbi52YWx1ZSA9PT0gJ10nKSB7XG5cdCAgICAgICAgICAgIHBvcCgpO1xuXHQgICAgICAgICAgICByZXR1cm5cblx0ICAgICAgICB9XG5cblx0ICAgICAgICBwdXNoKCk7XG5cdCAgICB9LFxuXG5cdCAgICBhZnRlclByb3BlcnR5VmFsdWU6IGZ1bmN0aW9uIGFmdGVyUHJvcGVydHlWYWx1ZSAoKSB7XG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlIHNpbmNlIGl0J3MgaGFuZGxlZCBieSB0aGUgbGV4U3RhdGUuXG5cdCAgICAgICAgLy8gaWYgKHRva2VuLnR5cGUgIT09ICdwdW5jdHVhdG9yJykge1xuXHQgICAgICAgIC8vICAgICB0aHJvdyBpbnZhbGlkVG9rZW4oKVxuXHQgICAgICAgIC8vIH1cblxuXHQgICAgICAgIGlmICh0b2tlbi50eXBlID09PSAnZW9mJykge1xuXHQgICAgICAgICAgICB0aHJvdyBpbnZhbGlkRU9GKClcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBzd2l0Y2ggKHRva2VuLnZhbHVlKSB7XG5cdCAgICAgICAgY2FzZSAnLCc6XG5cdCAgICAgICAgICAgIHBhcnNlU3RhdGUgPSAnYmVmb3JlUHJvcGVydHlOYW1lJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICd9Jzpcblx0ICAgICAgICAgICAgcG9wKCk7XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlIHNpbmNlIGl0J3MgaGFuZGxlZCBieSB0aGUgbGV4U3RhdGUuXG5cdCAgICAgICAgLy8gdGhyb3cgaW52YWxpZFRva2VuKClcblx0ICAgIH0sXG5cblx0ICAgIGFmdGVyQXJyYXlWYWx1ZTogZnVuY3Rpb24gYWZ0ZXJBcnJheVZhbHVlICgpIHtcblx0ICAgICAgICAvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUgc2luY2UgaXQncyBoYW5kbGVkIGJ5IHRoZSBsZXhTdGF0ZS5cblx0ICAgICAgICAvLyBpZiAodG9rZW4udHlwZSAhPT0gJ3B1bmN0dWF0b3InKSB7XG5cdCAgICAgICAgLy8gICAgIHRocm93IGludmFsaWRUb2tlbigpXG5cdCAgICAgICAgLy8gfVxuXG5cdCAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09ICdlb2YnKSB7XG5cdCAgICAgICAgICAgIHRocm93IGludmFsaWRFT0YoKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHN3aXRjaCAodG9rZW4udmFsdWUpIHtcblx0ICAgICAgICBjYXNlICcsJzpcblx0ICAgICAgICAgICAgcGFyc2VTdGF0ZSA9ICdiZWZvcmVBcnJheVZhbHVlJztcblx0ICAgICAgICAgICAgcmV0dXJuXG5cblx0ICAgICAgICBjYXNlICddJzpcblx0ICAgICAgICAgICAgcG9wKCk7XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgLy8gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlIHNpbmNlIGl0J3MgaGFuZGxlZCBieSB0aGUgbGV4U3RhdGUuXG5cdCAgICAgICAgLy8gdGhyb3cgaW52YWxpZFRva2VuKClcblx0ICAgIH0sXG5cblx0ICAgIGVuZDogZnVuY3Rpb24gZW5kICgpIHtcblx0ICAgICAgICAvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUgc2luY2UgaXQncyBoYW5kbGVkIGJ5IHRoZSBsZXhTdGF0ZS5cblx0ICAgICAgICAvLyBpZiAodG9rZW4udHlwZSAhPT0gJ2VvZicpIHtcblx0ICAgICAgICAvLyAgICAgdGhyb3cgaW52YWxpZFRva2VuKClcblx0ICAgICAgICAvLyB9XG5cdCAgICB9LFxuXHR9O1xuXG5cdGZ1bmN0aW9uIHB1c2ggKCkge1xuXHQgICAgdmFyIHZhbHVlO1xuXG5cdCAgICBzd2l0Y2ggKHRva2VuLnR5cGUpIHtcblx0ICAgIGNhc2UgJ3B1bmN0dWF0b3InOlxuXHQgICAgICAgIHN3aXRjaCAodG9rZW4udmFsdWUpIHtcblx0ICAgICAgICBjYXNlICd7Jzpcblx0ICAgICAgICAgICAgdmFsdWUgPSB7fTtcblx0ICAgICAgICAgICAgYnJlYWtcblxuXHQgICAgICAgIGNhc2UgJ1snOlxuXHQgICAgICAgICAgICB2YWx1ZSA9IFtdO1xuXHQgICAgICAgICAgICBicmVha1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGJyZWFrXG5cblx0ICAgIGNhc2UgJ251bGwnOlxuXHQgICAgY2FzZSAnYm9vbGVhbic6XG5cdCAgICBjYXNlICdudW1lcmljJzpcblx0ICAgIGNhc2UgJ3N0cmluZyc6XG5cdCAgICAgICAgdmFsdWUgPSB0b2tlbi52YWx1ZTtcblx0ICAgICAgICBicmVha1xuXG5cdCAgICAvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUuXG5cdCAgICAvLyBkZWZhdWx0OlxuXHQgICAgLy8gICAgIHRocm93IGludmFsaWRUb2tlbigpXG5cdCAgICB9XG5cblx0ICAgIGlmIChyb290ID09PSB1bmRlZmluZWQpIHtcblx0ICAgICAgICByb290ID0gdmFsdWU7XG5cdCAgICB9IGVsc2Uge1xuXHQgICAgICAgIHZhciBwYXJlbnQgPSBzdGFja1tzdGFjay5sZW5ndGggLSAxXTtcblx0ICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwYXJlbnQpKSB7XG5cdCAgICAgICAgICAgIHBhcmVudC5wdXNoKHZhbHVlKTtcblx0ICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocGFyZW50LCBrZXksIHtcblx0ICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcblx0ICAgICAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuXHQgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcblx0ICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcblx0ICAgICAgICAgICAgfSk7XG5cdCAgICAgICAgfVxuXHQgICAgfVxuXG5cdCAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuXHQgICAgICAgIHN0YWNrLnB1c2godmFsdWUpO1xuXG5cdCAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG5cdCAgICAgICAgICAgIHBhcnNlU3RhdGUgPSAnYmVmb3JlQXJyYXlWYWx1ZSc7XG5cdCAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgcGFyc2VTdGF0ZSA9ICdiZWZvcmVQcm9wZXJ0eU5hbWUnO1xuXHQgICAgICAgIH1cblx0ICAgIH0gZWxzZSB7XG5cdCAgICAgICAgdmFyIGN1cnJlbnQgPSBzdGFja1tzdGFjay5sZW5ndGggLSAxXTtcblx0ICAgICAgICBpZiAoY3VycmVudCA9PSBudWxsKSB7XG5cdCAgICAgICAgICAgIHBhcnNlU3RhdGUgPSAnZW5kJztcblx0ICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoY3VycmVudCkpIHtcblx0ICAgICAgICAgICAgcGFyc2VTdGF0ZSA9ICdhZnRlckFycmF5VmFsdWUnO1xuXHQgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgIHBhcnNlU3RhdGUgPSAnYWZ0ZXJQcm9wZXJ0eVZhbHVlJztcblx0ICAgICAgICB9XG5cdCAgICB9XG5cdH1cblxuXHRmdW5jdGlvbiBwb3AgKCkge1xuXHQgICAgc3RhY2sucG9wKCk7XG5cblx0ICAgIHZhciBjdXJyZW50ID0gc3RhY2tbc3RhY2subGVuZ3RoIC0gMV07XG5cdCAgICBpZiAoY3VycmVudCA9PSBudWxsKSB7XG5cdCAgICAgICAgcGFyc2VTdGF0ZSA9ICdlbmQnO1xuXHQgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGN1cnJlbnQpKSB7XG5cdCAgICAgICAgcGFyc2VTdGF0ZSA9ICdhZnRlckFycmF5VmFsdWUnO1xuXHQgICAgfSBlbHNlIHtcblx0ICAgICAgICBwYXJzZVN0YXRlID0gJ2FmdGVyUHJvcGVydHlWYWx1ZSc7XG5cdCAgICB9XG5cdH1cblxuXHQvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUuXG5cdC8vIGZ1bmN0aW9uIGludmFsaWRQYXJzZVN0YXRlICgpIHtcblx0Ly8gICAgIHJldHVybiBuZXcgRXJyb3IoYEpTT041OiBpbnZhbGlkIHBhcnNlIHN0YXRlICcke3BhcnNlU3RhdGV9J2ApXG5cdC8vIH1cblxuXHQvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUuXG5cdC8vIGZ1bmN0aW9uIGludmFsaWRMZXhTdGF0ZSAoc3RhdGUpIHtcblx0Ly8gICAgIHJldHVybiBuZXcgRXJyb3IoYEpTT041OiBpbnZhbGlkIGxleCBzdGF0ZSAnJHtzdGF0ZX0nYClcblx0Ly8gfVxuXG5cdGZ1bmN0aW9uIGludmFsaWRDaGFyIChjKSB7XG5cdCAgICBpZiAoYyA9PT0gdW5kZWZpbmVkKSB7XG5cdCAgICAgICAgcmV0dXJuIHN5bnRheEVycm9yKChcIkpTT041OiBpbnZhbGlkIGVuZCBvZiBpbnB1dCBhdCBcIiArIGxpbmUgKyBcIjpcIiArIGNvbHVtbikpXG5cdCAgICB9XG5cblx0ICAgIHJldHVybiBzeW50YXhFcnJvcigoXCJKU09ONTogaW52YWxpZCBjaGFyYWN0ZXIgJ1wiICsgKGZvcm1hdENoYXIoYykpICsgXCInIGF0IFwiICsgbGluZSArIFwiOlwiICsgY29sdW1uKSlcblx0fVxuXG5cdGZ1bmN0aW9uIGludmFsaWRFT0YgKCkge1xuXHQgICAgcmV0dXJuIHN5bnRheEVycm9yKChcIkpTT041OiBpbnZhbGlkIGVuZCBvZiBpbnB1dCBhdCBcIiArIGxpbmUgKyBcIjpcIiArIGNvbHVtbikpXG5cdH1cblxuXHQvLyBUaGlzIGNvZGUgaXMgdW5yZWFjaGFibGUuXG5cdC8vIGZ1bmN0aW9uIGludmFsaWRUb2tlbiAoKSB7XG5cdC8vICAgICBpZiAodG9rZW4udHlwZSA9PT0gJ2VvZicpIHtcblx0Ly8gICAgICAgICByZXR1cm4gc3ludGF4RXJyb3IoYEpTT041OiBpbnZhbGlkIGVuZCBvZiBpbnB1dCBhdCAke2xpbmV9OiR7Y29sdW1ufWApXG5cdC8vICAgICB9XG5cblx0Ly8gICAgIGNvbnN0IGMgPSBTdHJpbmcuZnJvbUNvZGVQb2ludCh0b2tlbi52YWx1ZS5jb2RlUG9pbnRBdCgwKSlcblx0Ly8gICAgIHJldHVybiBzeW50YXhFcnJvcihgSlNPTjU6IGludmFsaWQgY2hhcmFjdGVyICcke2Zvcm1hdENoYXIoYyl9JyBhdCAke2xpbmV9OiR7Y29sdW1ufWApXG5cdC8vIH1cblxuXHRmdW5jdGlvbiBpbnZhbGlkSWRlbnRpZmllciAoKSB7XG5cdCAgICBjb2x1bW4gLT0gNTtcblx0ICAgIHJldHVybiBzeW50YXhFcnJvcigoXCJKU09ONTogaW52YWxpZCBpZGVudGlmaWVyIGNoYXJhY3RlciBhdCBcIiArIGxpbmUgKyBcIjpcIiArIGNvbHVtbikpXG5cdH1cblxuXHRmdW5jdGlvbiBzZXBhcmF0b3JDaGFyIChjKSB7XG5cdCAgICBjb25zb2xlLndhcm4oKFwiSlNPTjU6ICdcIiArIChmb3JtYXRDaGFyKGMpKSArIFwiJyBpbiBzdHJpbmdzIGlzIG5vdCB2YWxpZCBFQ01BU2NyaXB0OyBjb25zaWRlciBlc2NhcGluZ1wiKSk7XG5cdH1cblxuXHRmdW5jdGlvbiBmb3JtYXRDaGFyIChjKSB7XG5cdCAgICB2YXIgcmVwbGFjZW1lbnRzID0ge1xuXHQgICAgICAgIFwiJ1wiOiBcIlxcXFwnXCIsXG5cdCAgICAgICAgJ1wiJzogJ1xcXFxcIicsXG5cdCAgICAgICAgJ1xcXFwnOiAnXFxcXFxcXFwnLFxuXHQgICAgICAgICdcXGInOiAnXFxcXGInLFxuXHQgICAgICAgICdcXGYnOiAnXFxcXGYnLFxuXHQgICAgICAgICdcXG4nOiAnXFxcXG4nLFxuXHQgICAgICAgICdcXHInOiAnXFxcXHInLFxuXHQgICAgICAgICdcXHQnOiAnXFxcXHQnLFxuXHQgICAgICAgICdcXHYnOiAnXFxcXHYnLFxuXHQgICAgICAgICdcXDAnOiAnXFxcXDAnLFxuXHQgICAgICAgICdcXHUyMDI4JzogJ1xcXFx1MjAyOCcsXG5cdCAgICAgICAgJ1xcdTIwMjknOiAnXFxcXHUyMDI5Jyxcblx0ICAgIH07XG5cblx0ICAgIGlmIChyZXBsYWNlbWVudHNbY10pIHtcblx0ICAgICAgICByZXR1cm4gcmVwbGFjZW1lbnRzW2NdXG5cdCAgICB9XG5cblx0ICAgIGlmIChjIDwgJyAnKSB7XG5cdCAgICAgICAgdmFyIGhleFN0cmluZyA9IGMuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNik7XG5cdCAgICAgICAgcmV0dXJuICdcXFxceCcgKyAoJzAwJyArIGhleFN0cmluZykuc3Vic3RyaW5nKGhleFN0cmluZy5sZW5ndGgpXG5cdCAgICB9XG5cblx0ICAgIHJldHVybiBjXG5cdH1cblxuXHRmdW5jdGlvbiBzeW50YXhFcnJvciAobWVzc2FnZSkge1xuXHQgICAgdmFyIGVyciA9IG5ldyBTeW50YXhFcnJvcihtZXNzYWdlKTtcblx0ICAgIGVyci5saW5lTnVtYmVyID0gbGluZTtcblx0ICAgIGVyci5jb2x1bW5OdW1iZXIgPSBjb2x1bW47XG5cdCAgICByZXR1cm4gZXJyXG5cdH1cblxuXHR2YXIgc3RyaW5naWZ5ID0gZnVuY3Rpb24gc3RyaW5naWZ5ICh2YWx1ZSwgcmVwbGFjZXIsIHNwYWNlKSB7XG5cdCAgICB2YXIgc3RhY2sgPSBbXTtcblx0ICAgIHZhciBpbmRlbnQgPSAnJztcblx0ICAgIHZhciBwcm9wZXJ0eUxpc3Q7XG5cdCAgICB2YXIgcmVwbGFjZXJGdW5jO1xuXHQgICAgdmFyIGdhcCA9ICcnO1xuXHQgICAgdmFyIHF1b3RlO1xuXG5cdCAgICBpZiAoXG5cdCAgICAgICAgcmVwbGFjZXIgIT0gbnVsbCAmJlxuXHQgICAgICAgIHR5cGVvZiByZXBsYWNlciA9PT0gJ29iamVjdCcgJiZcblx0ICAgICAgICAhQXJyYXkuaXNBcnJheShyZXBsYWNlcilcblx0ICAgICkge1xuXHQgICAgICAgIHNwYWNlID0gcmVwbGFjZXIuc3BhY2U7XG5cdCAgICAgICAgcXVvdGUgPSByZXBsYWNlci5xdW90ZTtcblx0ICAgICAgICByZXBsYWNlciA9IHJlcGxhY2VyLnJlcGxhY2VyO1xuXHQgICAgfVxuXG5cdCAgICBpZiAodHlwZW9mIHJlcGxhY2VyID09PSAnZnVuY3Rpb24nKSB7XG5cdCAgICAgICAgcmVwbGFjZXJGdW5jID0gcmVwbGFjZXI7XG5cdCAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocmVwbGFjZXIpKSB7XG5cdCAgICAgICAgcHJvcGVydHlMaXN0ID0gW107XG5cdCAgICAgICAgZm9yICh2YXIgaSA9IDAsIGxpc3QgPSByZXBsYWNlcjsgaSA8IGxpc3QubGVuZ3RoOyBpICs9IDEpIHtcblx0ICAgICAgICAgICAgdmFyIHYgPSBsaXN0W2ldO1xuXG5cdCAgICAgICAgICAgIHZhciBpdGVtID0gKHZvaWQgMCk7XG5cblx0ICAgICAgICAgICAgaWYgKHR5cGVvZiB2ID09PSAnc3RyaW5nJykge1xuXHQgICAgICAgICAgICAgICAgaXRlbSA9IHY7XG5cdCAgICAgICAgICAgIH0gZWxzZSBpZiAoXG5cdCAgICAgICAgICAgICAgICB0eXBlb2YgdiA9PT0gJ251bWJlcicgfHxcblx0ICAgICAgICAgICAgICAgIHYgaW5zdGFuY2VvZiBTdHJpbmcgfHxcblx0ICAgICAgICAgICAgICAgIHYgaW5zdGFuY2VvZiBOdW1iZXJcblx0ICAgICAgICAgICAgKSB7XG5cdCAgICAgICAgICAgICAgICBpdGVtID0gU3RyaW5nKHYpO1xuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgaWYgKGl0ZW0gIT09IHVuZGVmaW5lZCAmJiBwcm9wZXJ0eUxpc3QuaW5kZXhPZihpdGVtKSA8IDApIHtcblx0ICAgICAgICAgICAgICAgIHByb3BlcnR5TGlzdC5wdXNoKGl0ZW0pO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfVxuXHQgICAgfVxuXG5cdCAgICBpZiAoc3BhY2UgaW5zdGFuY2VvZiBOdW1iZXIpIHtcblx0ICAgICAgICBzcGFjZSA9IE51bWJlcihzcGFjZSk7XG5cdCAgICB9IGVsc2UgaWYgKHNwYWNlIGluc3RhbmNlb2YgU3RyaW5nKSB7XG5cdCAgICAgICAgc3BhY2UgPSBTdHJpbmcoc3BhY2UpO1xuXHQgICAgfVxuXG5cdCAgICBpZiAodHlwZW9mIHNwYWNlID09PSAnbnVtYmVyJykge1xuXHQgICAgICAgIGlmIChzcGFjZSA+IDApIHtcblx0ICAgICAgICAgICAgc3BhY2UgPSBNYXRoLm1pbigxMCwgTWF0aC5mbG9vcihzcGFjZSkpO1xuXHQgICAgICAgICAgICBnYXAgPSAnICAgICAgICAgICcuc3Vic3RyKDAsIHNwYWNlKTtcblx0ICAgICAgICB9XG5cdCAgICB9IGVsc2UgaWYgKHR5cGVvZiBzcGFjZSA9PT0gJ3N0cmluZycpIHtcblx0ICAgICAgICBnYXAgPSBzcGFjZS5zdWJzdHIoMCwgMTApO1xuXHQgICAgfVxuXG5cdCAgICByZXR1cm4gc2VyaWFsaXplUHJvcGVydHkoJycsIHsnJzogdmFsdWV9KVxuXG5cdCAgICBmdW5jdGlvbiBzZXJpYWxpemVQcm9wZXJ0eSAoa2V5LCBob2xkZXIpIHtcblx0ICAgICAgICB2YXIgdmFsdWUgPSBob2xkZXJba2V5XTtcblx0ICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuXHQgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlLnRvSlNPTjUgPT09ICdmdW5jdGlvbicpIHtcblx0ICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUudG9KU09ONShrZXkpO1xuXHQgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZS50b0pTT04gPT09ICdmdW5jdGlvbicpIHtcblx0ICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUudG9KU09OKGtleSk7XG5cdCAgICAgICAgICAgIH1cblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAocmVwbGFjZXJGdW5jKSB7XG5cdCAgICAgICAgICAgIHZhbHVlID0gcmVwbGFjZXJGdW5jLmNhbGwoaG9sZGVyLCBrZXksIHZhbHVlKTtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBOdW1iZXIpIHtcblx0ICAgICAgICAgICAgdmFsdWUgPSBOdW1iZXIodmFsdWUpO1xuXHQgICAgICAgIH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBTdHJpbmcpIHtcblx0ICAgICAgICAgICAgdmFsdWUgPSBTdHJpbmcodmFsdWUpO1xuXHQgICAgICAgIH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBCb29sZWFuKSB7XG5cdCAgICAgICAgICAgIHZhbHVlID0gdmFsdWUudmFsdWVPZigpO1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHN3aXRjaCAodmFsdWUpIHtcblx0ICAgICAgICBjYXNlIG51bGw6IHJldHVybiAnbnVsbCdcblx0ICAgICAgICBjYXNlIHRydWU6IHJldHVybiAndHJ1ZSdcblx0ICAgICAgICBjYXNlIGZhbHNlOiByZXR1cm4gJ2ZhbHNlJ1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG5cdCAgICAgICAgICAgIHJldHVybiBxdW90ZVN0cmluZyh2YWx1ZSwgZmFsc2UpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcblx0ICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSlcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuXHQgICAgICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBzZXJpYWxpemVBcnJheSh2YWx1ZSkgOiBzZXJpYWxpemVPYmplY3QodmFsdWUpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuXHQgICAgfVxuXG5cdCAgICBmdW5jdGlvbiBxdW90ZVN0cmluZyAodmFsdWUpIHtcblx0ICAgICAgICB2YXIgcXVvdGVzID0ge1xuXHQgICAgICAgICAgICBcIidcIjogMC4xLFxuXHQgICAgICAgICAgICAnXCInOiAwLjIsXG5cdCAgICAgICAgfTtcblxuXHQgICAgICAgIHZhciByZXBsYWNlbWVudHMgPSB7XG5cdCAgICAgICAgICAgIFwiJ1wiOiBcIlxcXFwnXCIsXG5cdCAgICAgICAgICAgICdcIic6ICdcXFxcXCInLFxuXHQgICAgICAgICAgICAnXFxcXCc6ICdcXFxcXFxcXCcsXG5cdCAgICAgICAgICAgICdcXGInOiAnXFxcXGInLFxuXHQgICAgICAgICAgICAnXFxmJzogJ1xcXFxmJyxcblx0ICAgICAgICAgICAgJ1xcbic6ICdcXFxcbicsXG5cdCAgICAgICAgICAgICdcXHInOiAnXFxcXHInLFxuXHQgICAgICAgICAgICAnXFx0JzogJ1xcXFx0Jyxcblx0ICAgICAgICAgICAgJ1xcdic6ICdcXFxcdicsXG5cdCAgICAgICAgICAgICdcXDAnOiAnXFxcXDAnLFxuXHQgICAgICAgICAgICAnXFx1MjAyOCc6ICdcXFxcdTIwMjgnLFxuXHQgICAgICAgICAgICAnXFx1MjAyOSc6ICdcXFxcdTIwMjknLFxuXHQgICAgICAgIH07XG5cblx0ICAgICAgICB2YXIgcHJvZHVjdCA9ICcnO1xuXG5cdCAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xuXHQgICAgICAgICAgICB2YXIgYyA9IHZhbHVlW2ldO1xuXHQgICAgICAgICAgICBzd2l0Y2ggKGMpIHtcblx0ICAgICAgICAgICAgY2FzZSBcIidcIjpcblx0ICAgICAgICAgICAgY2FzZSAnXCInOlxuXHQgICAgICAgICAgICAgICAgcXVvdGVzW2NdKys7XG5cdCAgICAgICAgICAgICAgICBwcm9kdWN0ICs9IGM7XG5cdCAgICAgICAgICAgICAgICBjb250aW51ZVxuXG5cdCAgICAgICAgICAgIGNhc2UgJ1xcMCc6XG5cdCAgICAgICAgICAgICAgICBpZiAodXRpbC5pc0RpZ2l0KHZhbHVlW2kgKyAxXSkpIHtcblx0ICAgICAgICAgICAgICAgICAgICBwcm9kdWN0ICs9ICdcXFxceDAwJztcblx0ICAgICAgICAgICAgICAgICAgICBjb250aW51ZVxuXHQgICAgICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50c1tjXSkge1xuXHQgICAgICAgICAgICAgICAgcHJvZHVjdCArPSByZXBsYWNlbWVudHNbY107XG5cdCAgICAgICAgICAgICAgICBjb250aW51ZVxuXHQgICAgICAgICAgICB9XG5cblx0ICAgICAgICAgICAgaWYgKGMgPCAnICcpIHtcblx0ICAgICAgICAgICAgICAgIHZhciBoZXhTdHJpbmcgPSBjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpO1xuXHQgICAgICAgICAgICAgICAgcHJvZHVjdCArPSAnXFxcXHgnICsgKCcwMCcgKyBoZXhTdHJpbmcpLnN1YnN0cmluZyhoZXhTdHJpbmcubGVuZ3RoKTtcblx0ICAgICAgICAgICAgICAgIGNvbnRpbnVlXG5cdCAgICAgICAgICAgIH1cblxuXHQgICAgICAgICAgICBwcm9kdWN0ICs9IGM7XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdmFyIHF1b3RlQ2hhciA9IHF1b3RlIHx8IE9iamVjdC5rZXlzKHF1b3RlcykucmVkdWNlKGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiAocXVvdGVzW2FdIDwgcXVvdGVzW2JdKSA/IGEgOiBiOyB9KTtcblxuXHQgICAgICAgIHByb2R1Y3QgPSBwcm9kdWN0LnJlcGxhY2UobmV3IFJlZ0V4cChxdW90ZUNoYXIsICdnJyksIHJlcGxhY2VtZW50c1txdW90ZUNoYXJdKTtcblxuXHQgICAgICAgIHJldHVybiBxdW90ZUNoYXIgKyBwcm9kdWN0ICsgcXVvdGVDaGFyXG5cdCAgICB9XG5cblx0ICAgIGZ1bmN0aW9uIHNlcmlhbGl6ZU9iamVjdCAodmFsdWUpIHtcblx0ICAgICAgICBpZiAoc3RhY2suaW5kZXhPZih2YWx1ZSkgPj0gMCkge1xuXHQgICAgICAgICAgICB0aHJvdyBUeXBlRXJyb3IoJ0NvbnZlcnRpbmcgY2lyY3VsYXIgc3RydWN0dXJlIHRvIEpTT041Jylcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBzdGFjay5wdXNoKHZhbHVlKTtcblxuXHQgICAgICAgIHZhciBzdGVwYmFjayA9IGluZGVudDtcblx0ICAgICAgICBpbmRlbnQgPSBpbmRlbnQgKyBnYXA7XG5cblx0ICAgICAgICB2YXIga2V5cyA9IHByb3BlcnR5TGlzdCB8fCBPYmplY3Qua2V5cyh2YWx1ZSk7XG5cdCAgICAgICAgdmFyIHBhcnRpYWwgPSBbXTtcblx0ICAgICAgICBmb3IgKHZhciBpID0gMCwgbGlzdCA9IGtleXM7IGkgPCBsaXN0Lmxlbmd0aDsgaSArPSAxKSB7XG5cdCAgICAgICAgICAgIHZhciBrZXkgPSBsaXN0W2ldO1xuXG5cdCAgICAgICAgICAgIHZhciBwcm9wZXJ0eVN0cmluZyA9IHNlcmlhbGl6ZVByb3BlcnR5KGtleSwgdmFsdWUpO1xuXHQgICAgICAgICAgICBpZiAocHJvcGVydHlTdHJpbmcgIT09IHVuZGVmaW5lZCkge1xuXHQgICAgICAgICAgICAgICAgdmFyIG1lbWJlciA9IHNlcmlhbGl6ZUtleShrZXkpICsgJzonO1xuXHQgICAgICAgICAgICAgICAgaWYgKGdhcCAhPT0gJycpIHtcblx0ICAgICAgICAgICAgICAgICAgICBtZW1iZXIgKz0gJyAnO1xuXHQgICAgICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICAgICAgbWVtYmVyICs9IHByb3BlcnR5U3RyaW5nO1xuXHQgICAgICAgICAgICAgICAgcGFydGlhbC5wdXNoKG1lbWJlcik7XG5cdCAgICAgICAgICAgIH1cblx0ICAgICAgICB9XG5cblx0ICAgICAgICB2YXIgZmluYWw7XG5cdCAgICAgICAgaWYgKHBhcnRpYWwubGVuZ3RoID09PSAwKSB7XG5cdCAgICAgICAgICAgIGZpbmFsID0gJ3t9Jztcblx0ICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICB2YXIgcHJvcGVydGllcztcblx0ICAgICAgICAgICAgaWYgKGdhcCA9PT0gJycpIHtcblx0ICAgICAgICAgICAgICAgIHByb3BlcnRpZXMgPSBwYXJ0aWFsLmpvaW4oJywnKTtcblx0ICAgICAgICAgICAgICAgIGZpbmFsID0gJ3snICsgcHJvcGVydGllcyArICd9Jztcblx0ICAgICAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgICAgIHZhciBzZXBhcmF0b3IgPSAnLFxcbicgKyBpbmRlbnQ7XG5cdCAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzID0gcGFydGlhbC5qb2luKHNlcGFyYXRvcik7XG5cdCAgICAgICAgICAgICAgICBmaW5hbCA9ICd7XFxuJyArIGluZGVudCArIHByb3BlcnRpZXMgKyAnLFxcbicgKyBzdGVwYmFjayArICd9Jztcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHN0YWNrLnBvcCgpO1xuXHQgICAgICAgIGluZGVudCA9IHN0ZXBiYWNrO1xuXHQgICAgICAgIHJldHVybiBmaW5hbFxuXHQgICAgfVxuXG5cdCAgICBmdW5jdGlvbiBzZXJpYWxpemVLZXkgKGtleSkge1xuXHQgICAgICAgIGlmIChrZXkubGVuZ3RoID09PSAwKSB7XG5cdCAgICAgICAgICAgIHJldHVybiBxdW90ZVN0cmluZyhrZXksIHRydWUpXG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdmFyIGZpcnN0Q2hhciA9IFN0cmluZy5mcm9tQ29kZVBvaW50KGtleS5jb2RlUG9pbnRBdCgwKSk7XG5cdCAgICAgICAgaWYgKCF1dGlsLmlzSWRTdGFydENoYXIoZmlyc3RDaGFyKSkge1xuXHQgICAgICAgICAgICByZXR1cm4gcXVvdGVTdHJpbmcoa2V5LCB0cnVlKVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGZvciAodmFyIGkgPSBmaXJzdENoYXIubGVuZ3RoOyBpIDwga2V5Lmxlbmd0aDsgaSsrKSB7XG5cdCAgICAgICAgICAgIGlmICghdXRpbC5pc0lkQ29udGludWVDaGFyKFN0cmluZy5mcm9tQ29kZVBvaW50KGtleS5jb2RlUG9pbnRBdChpKSkpKSB7XG5cdCAgICAgICAgICAgICAgICByZXR1cm4gcXVvdGVTdHJpbmcoa2V5LCB0cnVlKVxuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgcmV0dXJuIGtleVxuXHQgICAgfVxuXG5cdCAgICBmdW5jdGlvbiBzZXJpYWxpemVBcnJheSAodmFsdWUpIHtcblx0ICAgICAgICBpZiAoc3RhY2suaW5kZXhPZih2YWx1ZSkgPj0gMCkge1xuXHQgICAgICAgICAgICB0aHJvdyBUeXBlRXJyb3IoJ0NvbnZlcnRpbmcgY2lyY3VsYXIgc3RydWN0dXJlIHRvIEpTT041Jylcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBzdGFjay5wdXNoKHZhbHVlKTtcblxuXHQgICAgICAgIHZhciBzdGVwYmFjayA9IGluZGVudDtcblx0ICAgICAgICBpbmRlbnQgPSBpbmRlbnQgKyBnYXA7XG5cblx0ICAgICAgICB2YXIgcGFydGlhbCA9IFtdO1xuXHQgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcblx0ICAgICAgICAgICAgdmFyIHByb3BlcnR5U3RyaW5nID0gc2VyaWFsaXplUHJvcGVydHkoU3RyaW5nKGkpLCB2YWx1ZSk7XG5cdCAgICAgICAgICAgIHBhcnRpYWwucHVzaCgocHJvcGVydHlTdHJpbmcgIT09IHVuZGVmaW5lZCkgPyBwcm9wZXJ0eVN0cmluZyA6ICdudWxsJyk7XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgdmFyIGZpbmFsO1xuXHQgICAgICAgIGlmIChwYXJ0aWFsLmxlbmd0aCA9PT0gMCkge1xuXHQgICAgICAgICAgICBmaW5hbCA9ICdbXSc7XG5cdCAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgaWYgKGdhcCA9PT0gJycpIHtcblx0ICAgICAgICAgICAgICAgIHZhciBwcm9wZXJ0aWVzID0gcGFydGlhbC5qb2luKCcsJyk7XG5cdCAgICAgICAgICAgICAgICBmaW5hbCA9ICdbJyArIHByb3BlcnRpZXMgKyAnXSc7XG5cdCAgICAgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgICAgICB2YXIgc2VwYXJhdG9yID0gJyxcXG4nICsgaW5kZW50O1xuXHQgICAgICAgICAgICAgICAgdmFyIHByb3BlcnRpZXMkMSA9IHBhcnRpYWwuam9pbihzZXBhcmF0b3IpO1xuXHQgICAgICAgICAgICAgICAgZmluYWwgPSAnW1xcbicgKyBpbmRlbnQgKyBwcm9wZXJ0aWVzJDEgKyAnLFxcbicgKyBzdGVwYmFjayArICddJztcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHN0YWNrLnBvcCgpO1xuXHQgICAgICAgIGluZGVudCA9IHN0ZXBiYWNrO1xuXHQgICAgICAgIHJldHVybiBmaW5hbFxuXHQgICAgfVxuXHR9O1xuXG5cdHZhciBKU09ONSA9IHtcblx0ICAgIHBhcnNlOiBwYXJzZSxcblx0ICAgIHN0cmluZ2lmeTogc3RyaW5naWZ5LFxuXHR9O1xuXG5cdHZhciBsaWIgPSBKU09ONTtcblxuXHR2YXIgZXM1ID0gbGliO1xuXG5cdHJldHVybiBlczU7XG5cbn0pKSk7XG4iLCAiaW1wb3J0IHsgUGx1Z2luLCBNYXJrZG93blZpZXcsIFdvcmtzcGFjZUxlYWYgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IHsgY29udmVydFNldHRpbmdzLCBERUZBVUxUX1NFVFRJTkdTLCBMQU5HVUFHRVMsIENvZGVTdHlsZXJTZXR0aW5ncywgUkVGRVJFTkNFX0NPREVCTE9DSywgRVhURVJOQUxfUkVGRVJFTkNFX1BBVEgsIEVYVEVSTkFMX1JFRkVSRU5DRV9DQUNIRSB9IGZyb20gXCIuL1NldHRpbmdzXCI7XG5pbXBvcnQgeyBTZXR0aW5nc1RhYiB9IGZyb20gXCIuL1NldHRpbmdzVGFiXCI7XG5pbXBvcnQgeyByZW1vdmVTdHlsZXNBbmRDbGFzc2VzLCB1cGRhdGVTdHlsaW5nIH0gZnJvbSBcIi4vQXBwbHlTdHlsaW5nXCI7XG5pbXBvcnQgeyBjcmVhdGVDb2RlYmxvY2tDb2RlTWlycm9yRXh0ZW5zaW9ucywgZWRpdGluZ0RvY3VtZW50Rm9sZCB9IGZyb20gXCIuL0VkaXRpbmdWaWV3XCI7XG5pbXBvcnQgeyBkZXN0cm95UmVhZGluZ01vZGVFbGVtZW50cywgcmVhZGluZ0RvY3VtZW50Rm9sZCwgZXhlY3V0ZUNvZGVNdXRhdGlvbk9ic2VydmVyLCByZWFkaW5nVmlld0NvZGVibG9ja0RlY29yYXRpbmdQb3N0UHJvY2Vzc29yLCByZWFkaW5nVmlld0lubGluZURlY29yYXRpbmdQb3N0UHJvY2Vzc29yIH0gZnJvbSBcIi4vUmVhZGluZ1ZpZXdcIjtcbmltcG9ydCB7IGNsZWFuRXh0ZXJuYWxSZWZlcmVuY2VkRmlsZXMsIHJlZmVyZW5jZUNvZGVibG9ja1Byb2Nlc3NvciwgdXBkYXRlRXh0ZXJuYWxSZWZlcmVuY2VkRmlsZXMgfSBmcm9tIFwiLi9SZWZlcmVuY2luZ1wiO1xuaW1wb3J0IHsgYWRkTW9kZXMsIHJlbW92ZU1vZGVzIH0gZnJvbSBcIi4vU3ludGF4SGlnaGxpZ2h0aW5nXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvZGVTdHlsZXJQbHVnaW4gZXh0ZW5kcyBQbHVnaW4ge1xuXHRzZXR0aW5nczogQ29kZVN0eWxlclNldHRpbmdzO1xuXHRleGVjdXRlQ29kZU11dGF0aW9uT2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXI7XG5cdGxhbmd1YWdlSWNvbnM6IFJlY29yZDxzdHJpbmcsc3RyaW5nPjtcblx0c2l6ZXM6IHtcblx0XHRmb250OiBzdHJpbmc7XG5cdFx0em9vbTogc3RyaW5nO1xuXHR9O1xuXG5cdGFzeW5jIG9ubG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRhd2FpdCB0aGlzLmxvYWRTZXR0aW5ncygpOyAvLyBMb2FkIFNldHRpbmdzXG5cdFx0Y29uc3Qgc2V0dGluZ3NUYWIgPSBuZXcgU2V0dGluZ3NUYWIodGhpcy5hcHAsdGhpcyk7XG5cdFx0dGhpcy5hZGRTZXR0aW5nVGFiKHNldHRpbmdzVGFiKTtcblxuXHRcdGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyXCIpOyAvLyBMb2FkIFN0eWxlc1xuXHRcdHVwZGF0ZVN0eWxpbmcodGhpcy5zZXR0aW5ncyx0aGlzLmFwcCk7XG5cblx0XHR0aGlzLmxhbmd1YWdlSWNvbnMgPSBPYmplY3Qua2V5cyhMQU5HVUFHRVMpLnJlZHVjZSgocmVzdWx0OiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSwga2V5OiBzdHJpbmcpID0+IHsgLy8gTG9hZCBJY29uc1xuXHRcdFx0aWYgKExBTkdVQUdFU1trZXldPy5pY29uKVxuXHRcdFx0XHRyZXN1bHRba2V5XSA9IFVSTC5jcmVhdGVPYmplY3RVUkwobmV3IEJsb2IoW2A8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+JHtMQU5HVUFHRVNba2V5XS5pY29ufTwvc3ZnPmBdLCB7IHR5cGU6IFwiaW1hZ2Uvc3ZnK3htbFwiIH0pKTtcblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fSx7fSk7XG5cdFx0dGhpcy5zaXplcyA9IHtcblx0XHRcdGZvbnQ6IGRvY3VtZW50LmJvZHkuZ2V0Q3NzUHJvcGVydHlWYWx1ZShcIi0tZm9udC10ZXh0LXNpemVcIiksXG5cdFx0XHR6b29tOiBkb2N1bWVudC5ib2R5LmdldENzc1Byb3BlcnR5VmFsdWUoXCItLXpvb20tZmFjdG9yXCIpLFxuXHRcdH07XG5cblx0XHR0aGlzLmV4ZWN1dGVDb2RlTXV0YXRpb25PYnNlcnZlciA9IGV4ZWN1dGVDb2RlTXV0YXRpb25PYnNlcnZlcjsgLy8gQWRkIGV4ZWN1dGUgY29kZSBtdXRhdGlvbiBvYnNlcnZlclxuXG5cdFx0YWRkTW9kZXMoKTtcblx0XHR0aGlzLnJlZ2lzdGVyTWFya2Rvd25Db2RlQmxvY2tQcm9jZXNzb3IoUkVGRVJFTkNFX0NPREVCTE9DSywgYXN5bmMgKHNvdXJjZSwgZWwsIGN0eCkgPT4geyBhd2FpdCByZWZlcmVuY2VDb2RlYmxvY2tQcm9jZXNzb3Ioc291cmNlLCBlbCwgY3R4LCB0aGlzKTt9KTtcblxuXHRcdHRoaXMucmVnaXN0ZXJNYXJrZG93blBvc3RQcm9jZXNzb3IoYXN5bmMgKGVsLGN0eCkgPT4ge2F3YWl0IHJlYWRpbmdWaWV3Q29kZWJsb2NrRGVjb3JhdGluZ1Bvc3RQcm9jZXNzb3IoZWwsY3R4LHRoaXMpO30pOyAvLyBBZGQgY29kZWJsb2NrIGRlY29yYXRpbmcgbWFya2Rvd25Qb3N0UHJvY2Vzc29yXG5cdFx0dGhpcy5yZWdpc3Rlck1hcmtkb3duUG9zdFByb2Nlc3Nvcihhc3luYyAoZWwsY3R4KSA9PiB7YXdhaXQgcmVhZGluZ1ZpZXdJbmxpbmVEZWNvcmF0aW5nUG9zdFByb2Nlc3NvcihlbCxjdHgsdGhpcyk7fSk7IC8vIEFkZCBpbmxpbmUgY29kZSBkZWNvcmF0aW5nIG1hcmtkb3duUG9zdFByb2Nlc3NvclxuXG5cdFx0dGhpcy5yZWdpc3RlckVkaXRvckV4dGVuc2lvbihjcmVhdGVDb2RlYmxvY2tDb2RlTWlycm9yRXh0ZW5zaW9ucyh0aGlzLnNldHRpbmdzLHRoaXMpKTsgLy8gQWRkIGNvZGVtaXJyb3IgZXh0ZW5zaW9uc1xuXG5cdFx0bGV0IHpvb21UaW1lb3V0OiBOb2RlSlMuVGltZW91dCA9IHNldFRpbWVvdXQoKCk9Pnt9KTtcblx0XHR0aGlzLnJlZ2lzdGVyRXZlbnQodGhpcy5hcHAud29ya3NwYWNlLm9uKFwiY3NzLWNoYW5nZVwiLCgpPT57XG5cdFx0XHR1cGRhdGVTdHlsaW5nKHRoaXMuc2V0dGluZ3MsdGhpcy5hcHApOyAvLyBVcGRhdGUgc3R5bGluZyBvbiBjc3MgY2hhbmdlc1xuXHRcdFx0Y29uc3QgY3VycmVudEZvbnRTaXplID0gZG9jdW1lbnQuYm9keS5nZXRDc3NQcm9wZXJ0eVZhbHVlKFwiLS1mb250LXRleHQtc2l6ZVwiKTtcblx0XHRcdGlmICh0aGlzLnNpemVzLmZvbnQgIT09IGN1cnJlbnRGb250U2l6ZSkge1xuXHRcdFx0XHR0aGlzLnNpemVzLmZvbnQgPSBjdXJyZW50Rm9udFNpemU7XG5cdFx0XHRcdGNsZWFyVGltZW91dCh6b29tVGltZW91dCk7XG5cdFx0XHRcdHpvb21UaW1lb3V0ID0gc2V0VGltZW91dCgoKT0+e1xuXHRcdFx0XHRcdHRoaXMucmVuZGVyUmVhZGluZ1ZpZXcoKTsgLy8gUmUtcmVuZGVyIG9uIGZvbnQgc2l6ZSBjaGFuZ2VzXG5cdFx0XHRcdH0sMTAwMCk7XG5cdFx0XHR9XG5cdFx0fSx0aGlzKSk7XG5cdFx0dGhpcy5yZWdpc3RlckV2ZW50KHRoaXMuYXBwLndvcmtzcGFjZS5vbihcInJlc2l6ZVwiLCgpPT57XG5cdFx0XHRjb25zdCBjdXJyZW50Wm9vbVNpemUgPSBkb2N1bWVudC5ib2R5LmdldENzc1Byb3BlcnR5VmFsdWUoXCItLXpvb20tZmFjdG9yXCIpO1xuXHRcdFx0aWYgKHRoaXMuc2l6ZXMuem9vbSAhPT0gY3VycmVudFpvb21TaXplKSB7XG5cdFx0XHRcdHRoaXMuc2l6ZXMuem9vbSA9IGN1cnJlbnRab29tU2l6ZTtcblx0XHRcdFx0Y2xlYXJUaW1lb3V0KHpvb21UaW1lb3V0KTtcblx0XHRcdFx0em9vbVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT57XG5cdFx0XHRcdFx0dGhpcy5yZW5kZXJSZWFkaW5nVmlldygpOyAvLyBSZS1yZW5kZXIgb24gem9vbSBjaGFuZ2VzXG5cdFx0XHRcdH0sMTAwMCk7XG5cdFx0XHR9XG5cdFx0fSx0aGlzKSk7XG5cblx0XHR0aGlzLmFkZENvbW1hbmQoe2lkOiBcImZvbGQtYWxsXCIsIG5hbWU6IFwiRm9sZCBhbGwgY29kZWJsb2Nrc1wiLCBjYWxsYmFjazogKCk9Pntcblx0XHRcdGNvbnN0IGFjdGl2ZVZpZXcgPSB0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0QWN0aXZlVmlld09mVHlwZShNYXJrZG93blZpZXcpO1xuXHRcdFx0aWYgKGFjdGl2ZVZpZXcpIHtcblx0XHRcdFx0aWYgKGFjdGl2ZVZpZXcuZ2V0TW9kZSgpID09PSBcInByZXZpZXdcIilcblx0XHRcdFx0XHRyZWFkaW5nRG9jdW1lbnRGb2xkKGFjdGl2ZVZpZXcuY29udGVudEVsLHRydWUpO1xuXHRcdFx0XHRlbHNlIGlmIChhY3RpdmVWaWV3LmdldE1vZGUoKSA9PT0gXCJzb3VyY2VcIilcblx0XHRcdFx0XHQvL0B0cy1leHBlY3QtZXJyb3IgVW5kb2N1bWVudGVkIE9ic2lkaWFuIEFQSVxuXHRcdFx0XHRcdGVkaXRpbmdEb2N1bWVudEZvbGQoYWN0aXZlVmlldy5lZGl0b3IuY20uZG9jVmlldy52aWV3LHRydWUpO1xuXHRcdFx0fVxuXHRcdH19KTtcblx0XHR0aGlzLmFkZENvbW1hbmQoe2lkOiBcInVuZm9sZC1hbGxcIiwgbmFtZTogXCJVbmZvbGQgYWxsIGNvZGVibG9ja3NcIiwgY2FsbGJhY2s6ICgpPT57XG5cdFx0XHRjb25zdCBhY3RpdmVWaWV3ID0gdGhpcy5hcHAud29ya3NwYWNlLmdldEFjdGl2ZVZpZXdPZlR5cGUoTWFya2Rvd25WaWV3KTtcblx0XHRcdGlmIChhY3RpdmVWaWV3KSB7XG5cdFx0XHRcdGlmIChhY3RpdmVWaWV3LmdldE1vZGUoKSA9PT0gXCJwcmV2aWV3XCIpXG5cdFx0XHRcdFx0cmVhZGluZ0RvY3VtZW50Rm9sZChhY3RpdmVWaWV3LmNvbnRlbnRFbCxmYWxzZSk7XG5cdFx0XHRcdGVsc2UgaWYgKGFjdGl2ZVZpZXcuZ2V0TW9kZSgpID09PSBcInNvdXJjZVwiKVxuXHRcdFx0XHRcdC8vQHRzLWV4cGVjdC1lcnJvciBVbmRvY3VtZW50ZWQgT2JzaWRpYW4gQVBJXG5cdFx0XHRcdFx0ZWRpdGluZ0RvY3VtZW50Rm9sZChhY3RpdmVWaWV3LmVkaXRvci5jbS5kb2NWaWV3LnZpZXcsZmFsc2UpO1xuXHRcdFx0fVxuXHRcdH19KTtcblx0XHR0aGlzLmFkZENvbW1hbmQoe2lkOiBcInJlc2V0LWFsbFwiLCBuYW1lOiBcIlJlc2V0IGZvbGQgc3RhdGUgZm9yIGFsbCBjb2RlYmxvY2tzXCIsIGNhbGxiYWNrOiAoKT0+e1xuXHRcdFx0Y29uc3QgYWN0aXZlVmlldyA9IHRoaXMuYXBwLndvcmtzcGFjZS5nZXRBY3RpdmVWaWV3T2ZUeXBlKE1hcmtkb3duVmlldyk7XG5cdFx0XHRpZiAoYWN0aXZlVmlldykge1xuXHRcdFx0XHRpZiAoYWN0aXZlVmlldy5nZXRNb2RlKCkgPT09IFwicHJldmlld1wiKVxuXHRcdFx0XHRcdHJlYWRpbmdEb2N1bWVudEZvbGQoYWN0aXZlVmlldy5jb250ZW50RWwpO1xuXHRcdFx0XHRlbHNlIGlmIChhY3RpdmVWaWV3LmdldE1vZGUoKSA9PT0gXCJzb3VyY2VcIilcblx0XHRcdFx0XHQvL0B0cy1leHBlY3QtZXJyb3IgVW5kb2N1bWVudGVkIE9ic2lkaWFuIEFQSVxuXHRcdFx0XHRcdGVkaXRpbmdEb2N1bWVudEZvbGQoYWN0aXZlVmlldy5lZGl0b3IuY20uZG9jVmlldy52aWV3KTtcblx0XHRcdH1cblx0XHR9fSk7XG5cdFx0dGhpcy5hZGRDb21tYW5kKHtpZDogXCJ1cGRhdGUtcmVmZXJlbmNlcy12YXVsdFwiLCBuYW1lOiBcIlVwZGF0ZSBhbGwgZXh0ZXJuYWwgcmVmZXJlbmNlcyBpbiB2YXVsdFwiLCBjYWxsYmFjazogYXN5bmMgKCk9Pntcblx0XHRcdGF3YWl0IHVwZGF0ZUV4dGVybmFsUmVmZXJlbmNlZEZpbGVzKHRoaXMpO1xuXHRcdH19KTtcblx0XHR0aGlzLmFkZENvbW1hbmQoe2lkOiBcInVwZGF0ZS1yZWZlcmVuY2VzLXBhZ2VcIiwgbmFtZTogXCJVcGRhdGUgYWxsIGV4dGVybmFsIHJlZmVyZW5jZXMgaW4gbm90ZVwiLCBjYWxsYmFjazogYXN5bmMgKCk9Pntcblx0XHRcdGF3YWl0IHVwZGF0ZUV4dGVybmFsUmVmZXJlbmNlZEZpbGVzKHRoaXMsIHRoaXMuYXBwLndvcmtzcGFjZS5nZXRBY3RpdmVGaWxlKCk/LnBhdGgpO1xuXHRcdH19KTtcblx0XHR0aGlzLmFkZENvbW1hbmQoe2lkOiBcImNsZWFuLXJlZmVyZW5jZXNcIiwgbmFtZTogXCJSZW1vdmUgYWxsIHVubmVlZGVkIGV4dGVybmFsIHJlZmVyZW5jZXNcIiwgY2FsbGJhY2s6IGFzeW5jICgpPT57XG5cdFx0XHRhd2FpdCBjbGVhbkV4dGVybmFsUmVmZXJlbmNlZEZpbGVzKHRoaXMpO1xuXHRcdH19KTtcblxuXHRcdHRoaXMuYXBwLndvcmtzcGFjZS5vbkxheW91dFJlYWR5KGFzeW5jICgpID0+IHRoaXMuaW5pdGlhbGlzZU9uTGF5b3V0KCkpOyAvLyBBZGQgZGVjb3JhdGlvbiBvbiBlbmFibGluZyBvZiBwbHVnaW5cblxuXHRcdGNvbnNvbGUubG9nKFwiTG9hZGVkIHBsdWdpbjogQ29kZSBTdHlsZXJcIik7XG5cdH1cblxuXHRvbnVubG9hZCgpOiB2b2lkIHtcblx0XHRyZW1vdmVNb2RlcygpO1xuXHRcdHRoaXMuZXhlY3V0ZUNvZGVNdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcblx0XHRyZW1vdmVTdHlsZXNBbmRDbGFzc2VzKCk7XG5cdFx0ZGVzdHJveVJlYWRpbmdNb2RlRWxlbWVudHMoKTtcblx0XHRmb3IgKGNvbnN0IHVybCBvZiBPYmplY3QudmFsdWVzKHRoaXMubGFuZ3VhZ2VJY29ucykpIC8vIFVubG9hZCBpY29uc1xuXHRcdFx0VVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuXHRcdGNvbnNvbGUubG9nKFwiVW5sb2FkZWQgcGx1Z2luOiBDb2RlIFN0eWxlclwiKTtcblx0fVxuXG5cdGFzeW5jIGxvYWRTZXR0aW5ncygpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHR0aGlzLnNldHRpbmdzID0gey4uLnN0cnVjdHVyZWRDbG9uZShERUZBVUxUX1NFVFRJTkdTKSwgLi4uY29udmVydFNldHRpbmdzKGF3YWl0IHRoaXMubG9hZERhdGEoKSl9O1xuXHR9XG5cblx0YXN5bmMgc2F2ZVNldHRpbmdzKCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGF3YWl0IHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XG5cdFx0dGhpcy5hcHAud29ya3NwYWNlLnVwZGF0ZU9wdGlvbnMoKTtcblx0XHR1cGRhdGVTdHlsaW5nKHRoaXMuc2V0dGluZ3MsdGhpcy5hcHApO1xuXHR9XG5cblx0YXN5bmMgaW5pdGlhbGlzZU9uTGF5b3V0KCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGlmICghKGF3YWl0IHRoaXMuYXBwLnZhdWx0LmFkYXB0ZXIuZXhpc3RzKHRoaXMuYXBwLnZhdWx0LmNvbmZpZ0RpciArIEVYVEVSTkFMX1JFRkVSRU5DRV9QQVRIKSkpIHsvLyBDcmVhdGUgZm9sZGVyIGZvciBleHRlcm5hbCByZWZlcmVuY2VzXG5cdFx0XHRhd2FpdCB0aGlzLmFwcC52YXVsdC5hZGFwdGVyLm1rZGlyKHRoaXMuYXBwLnZhdWx0LmNvbmZpZ0RpciArIEVYVEVSTkFMX1JFRkVSRU5DRV9QQVRIKTtcblx0XHRcdGF3YWl0IHRoaXMuYXBwLnZhdWx0LmFkYXB0ZXIud3JpdGUodGhpcy5hcHAudmF1bHQuY29uZmlnRGlyICsgRVhURVJOQUxfUkVGRVJFTkNFX0NBQ0hFLCBKU09OLnN0cmluZ2lmeSh7fSkpO1xuXHRcdH1cblx0XHRpZiAodGhpcy5zZXR0aW5ncy5leHRlcm5hbFJlZmVyZW5jZVVwZGF0ZU9uTG9hZClcblx0XHRcdGF3YWl0IHVwZGF0ZUV4dGVybmFsUmVmZXJlbmNlZEZpbGVzKHRoaXMpO1xuXHRcdGVsc2Uge1xuXHRcdFx0YXdhaXQgY2xlYW5FeHRlcm5hbFJlZmVyZW5jZWRGaWxlcyh0aGlzKTtcblx0XHRcdHRoaXMucmVuZGVyUmVhZGluZ1ZpZXcoKTtcblx0XHR9XG5cdH1cblxuXHRyZW5kZXJSZWFkaW5nVmlldygpOiB2b2lkIHtcblx0XHR0aGlzLmFwcC53b3Jrc3BhY2UuaXRlcmF0ZVJvb3RMZWF2ZXMoKGxlYWY6IFdvcmtzcGFjZUxlYWYpID0+IHtcblx0XHRcdGlmIChsZWFmLnZpZXcgaW5zdGFuY2VvZiBNYXJrZG93blZpZXcgJiYgbGVhZi52aWV3LmdldE1vZGUoKSA9PT0gXCJwcmV2aWV3XCIpXG5cdFx0XHRcdGxlYWYudmlldy5wcmV2aWV3TW9kZS5yZXJlbmRlcih0cnVlKTtcblx0XHR9KTtcblx0fVxufVxuIiwgIi8vIFR5cGluZ1xuZXhwb3J0IHR5cGUgSEVYID0gYCMke3N0cmluZ31gO1xuZXhwb3J0IHR5cGUgQ1NTID0gYC0tJHtzdHJpbmd9YDtcbmV4cG9ydCB0eXBlIENvbG91ciA9IEhFWCB8IENTUztcbmV4cG9ydCB0eXBlIFBlcmNlbnRhZ2UgPSBgJHtudW1iZXJ9JWA7XG5leHBvcnQgdHlwZSBEaXNwbGF5ID0gXCJub25lXCIgfCBcImlmX2hlYWRlcl9zaG93blwiIHwgXCJhbHdheXNcIjtcblxuLy8gSW50ZXJmYWNlIENyZWF0aW9uXG5leHBvcnQgaW50ZXJmYWNlIENvZGVTdHlsZXJUaGVtZU1vZGVDb2xvdXJzIHtcblx0Y29kZWJsb2NrOiB7XG5cdFx0YmFja2dyb3VuZENvbG91cjogQ29sb3VyO1xuXHRcdHRleHRDb2xvdXI6IENvbG91cjtcblx0fSxcblx0Z3V0dGVyOiB7XG5cdFx0YmFja2dyb3VuZENvbG91cjogQ29sb3VyO1xuXHRcdHRleHRDb2xvdXI6IENvbG91cjtcblx0XHRhY3RpdmVUZXh0Q29sb3VyOiBDb2xvdXI7XG5cdH0sXG5cdGhlYWRlcjoge1xuXHRcdGJhY2tncm91bmRDb2xvdXI6IENvbG91cjtcblx0XHR0aXRsZToge1xuXHRcdFx0dGV4dENvbG91cjogQ29sb3VyO1xuXHRcdH0sXG5cdFx0bGFuZ3VhZ2VUYWc6IHtcblx0XHRcdGJhY2tncm91bmRDb2xvdXI6IENvbG91cjtcblx0XHRcdHRleHRDb2xvdXI6IENvbG91cjtcblx0XHR9LFxuXHRcdGV4dGVybmFsUmVmZXJlbmNlOiB7XG5cdFx0XHRkaXNwbGF5UmVwb3NpdG9yeUNvbG91cjogQ29sb3VyO1xuXHRcdFx0ZGlzcGxheVZlcnNpb25Db2xvdXI6IENvbG91cjtcblx0XHRcdGRpc3BsYXlUaW1lc3RhbXBDb2xvdXI6IENvbG91cjtcblx0XHR9XG5cdFx0bGluZUNvbG91cjogQ29sb3VyO1xuXHR9LFxuXHRoaWdobGlnaHRzOiB7XG5cdFx0YWN0aXZlQ29kZWJsb2NrTGluZUNvbG91cjogQ29sb3VyO1xuXHRcdGFjdGl2ZUVkaXRvckxpbmVDb2xvdXI6IENvbG91cjtcblx0XHRkZWZhdWx0Q29sb3VyOiBDb2xvdXI7XG5cdFx0YWx0ZXJuYXRpdmVIaWdobGlnaHRzOiBSZWNvcmQ8c3RyaW5nLENvbG91cj47XG5cdH0sXG5cdGlubGluZToge1xuXHRcdGJhY2tncm91bmRDb2xvdXI6IENvbG91cjtcblx0XHR0ZXh0Q29sb3VyOiBDb2xvdXI7XG5cdFx0YWN0aXZlVGV4dENvbG91cjogQ29sb3VyO1xuXHRcdHRpdGxlVGV4dENvbG91cjogQ29sb3VyXG5cdH1cblx0YWR2YW5jZWQ6IHtcblx0XHRidXR0b25Db2xvdXI6IENvbG91cjtcblx0XHRidXR0b25BY3RpdmVDb2xvdXI6IENvbG91cjtcblx0fVxufVxuZXhwb3J0IGludGVyZmFjZSBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncyB7XG5cdGNvZGVibG9jazoge1xuXHRcdGxpbmVOdW1iZXJzOiBib29sZWFuO1xuXHRcdHVud3JhcExpbmVzOiBib29sZWFuO1xuXHRcdHdyYXBMaW5lc0FjdGl2ZTogYm9vbGVhbjtcblx0XHRjdXJ2YXR1cmU6IG51bWJlcjtcblx0fSxcblx0Z3V0dGVyOiB7XG5cdFx0aGlnaGxpZ2h0OiBib29sZWFuO1xuXHRcdGFjdGl2ZUxpbmU6IGJvb2xlYW47XG5cdH0sXG5cdGhlYWRlcjoge1xuXHRcdHRpdGxlOiB7XG5cdFx0XHR0ZXh0Rm9udDogc3RyaW5nO1xuXHRcdFx0dGV4dEJvbGQ6IGJvb2xlYW47XG5cdFx0XHR0ZXh0SXRhbGljOiBib29sZWFuO1xuXHRcdH0sXG5cdFx0bGFuZ3VhZ2VUYWc6IHtcblx0XHRcdGRpc3BsYXk6IERpc3BsYXk7XG5cdFx0XHR0ZXh0Rm9udDogc3RyaW5nO1xuXHRcdFx0dGV4dEJvbGQ6IGJvb2xlYW47XG5cdFx0XHR0ZXh0SXRhbGljOiBib29sZWFuO1xuXHRcdH0sXG5cdFx0bGFuZ3VhZ2VJY29uOiB7XG5cdFx0XHRkaXNwbGF5OiBEaXNwbGF5O1xuXHRcdFx0ZGlzcGxheUNvbG91cjogYm9vbGVhbjtcblx0XHR9LFxuXHRcdGV4dGVybmFsUmVmZXJlbmNlOiB7XG5cdFx0XHRkaXNwbGF5UmVwb3NpdG9yeTogYm9vbGVhbjtcblx0XHRcdGRpc3BsYXlWZXJzaW9uOiBib29sZWFuO1xuXHRcdFx0ZGlzcGxheVRpbWVzdGFtcDogYm9vbGVhbjtcblx0XHR9XG5cdFx0Zm9udFNpemU6IG51bWJlcjtcblx0XHRmb2xkUGxhY2Vob2xkZXI6IHN0cmluZztcblx0fSxcblx0aGlnaGxpZ2h0czoge1xuXHRcdGFjdGl2ZUNvZGVibG9ja0xpbmU6IGJvb2xlYW47XG5cdFx0YWN0aXZlRWRpdG9yTGluZTogYm9vbGVhbjtcblx0fSxcblx0aW5saW5lOiB7XG5cdFx0c3ludGF4SGlnaGxpZ2h0OiBib29sZWFuO1xuXHRcdHN0eWxlOiBib29sZWFuO1xuXHRcdGZvbnRXZWlnaHQ6IG51bWJlcjtcblx0XHRjdXJ2YXR1cmU6IG51bWJlcjtcblx0XHRwYWRkaW5nVmVydGljYWw6IG51bWJlcjtcblx0XHRwYWRkaW5nSG9yaXpvbnRhbDogbnVtYmVyO1xuXHRcdG1hcmdpbkhvcml6b250YWw6IG51bWJlcjtcblx0XHR0aXRsZUZvbnRXZWlnaHQ6IG51bWJlcjtcblx0fSxcblx0YWR2YW5jZWQ6IHtcblx0XHRncmFkaWVudEhpZ2hsaWdodHM6IGJvb2xlYW47XG5cdFx0Z3JhZGllbnRIaWdobGlnaHRzQ29sb3VyU3RvcDogUGVyY2VudGFnZTtcblx0XHRsYW5ndWFnZUJvcmRlckNvbG91cjogYm9vbGVhbjtcblx0XHRsYW5ndWFnZUJvcmRlcldpZHRoOiBudW1iZXI7XG5cdFx0aWNvblNpemU6IG51bWJlcjtcblx0fTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZVN0eWxlclRoZW1lQ29sb3VycyB7XG5cdGxpZ2h0OiBDb2RlU3R5bGVyVGhlbWVNb2RlQ29sb3Vycztcblx0ZGFyazogQ29kZVN0eWxlclRoZW1lTW9kZUNvbG91cnM7XG59XG5leHBvcnQgaW50ZXJmYWNlIENvZGVTdHlsZXJUaGVtZSB7XG5cdHNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncztcblx0Y29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZVN0eWxlclNldHRpbmdzIHtcblx0dGhlbWVzOiBSZWNvcmQ8c3RyaW5nLENvZGVTdHlsZXJUaGVtZT47XG5cdHNlbGVjdGVkVGhlbWU6IHN0cmluZztcblx0Y3VycmVudFRoZW1lOiBDb2RlU3R5bGVyVGhlbWU7XG5cdG5ld1RoZW1lOiBzdHJpbmc7XG5cdG5ld0hpZ2hsaWdodDogc3RyaW5nO1xuXHRleGFtcGxlQ29kZWJsb2NrUGFyYW1ldGVyczogc3RyaW5nO1xuXHRleGFtcGxlQ29kZWJsb2NrQ29udGVudDogc3RyaW5nO1xuXHRleGFtcGxlSW5saW5lQ29kZTogc3RyaW5nO1xuXHRkZWNvcmF0ZVByaW50OiBib29sZWFuO1xuXHRleGNsdWRlZExhbmd1YWdlczogc3RyaW5nO1xuXHRleHRlcm5hbFJlZmVyZW5jZVVwZGF0ZU9uTG9hZDogYm9vbGVhbjtcblx0cHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdDogc3RyaW5nO1xuXHRyZWRpcmVjdExhbmd1YWdlczogUmVjb3JkPHN0cmluZyx7Y29sb3VyPzogQ29sb3VyLCBpY29uPzogc3RyaW5nfT47XG5cdHZlcnNpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYW5ndWFnZSB7XG5cdGljb24/OiBzdHJpbmc7XG5cdGNvbG91cj86IENvbG91cjtcblx0aW5saW5lQ29tbWVudD86IEFycmF5PHN0cmluZz47XG5cdGJsb2NrQ29tbWVudD86IEFycmF5PHtcblx0XHRvcGVuOiBzdHJpbmc7XG5cdFx0Y2xvc2U6IHN0cmluZztcblx0XHRjb250aW51YXRpb24/OiBzdHJpbmc7IC8vIERlZmF1bHQ6IE5vbmVcblx0XHRtdWx0aWxpbmU/OiBzdHJpbmc7IC8vIERlZmF1bHQ6IHRydWVcblx0fT47XG59XG5cbi8vIFRoZW1lIERlZmF1bHRzXG5jb25zdCBUSEVNRV9ERUZBVUxUX1NFVFRJTkdTOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncyA9IHtcblx0Y29kZWJsb2NrOiB7XG5cdFx0bGluZU51bWJlcnM6IHRydWUsXG5cdFx0dW53cmFwTGluZXM6IHRydWUsXG5cdFx0d3JhcExpbmVzQWN0aXZlOiBmYWxzZSxcblx0XHRjdXJ2YXR1cmU6IDQsXG5cdH0sXG5cdGd1dHRlcjoge1xuXHRcdGhpZ2hsaWdodDogdHJ1ZSxcblx0XHRhY3RpdmVMaW5lOiBmYWxzZSxcblx0fSxcblx0aGVhZGVyOiB7XG5cdFx0dGl0bGU6IHtcblx0XHRcdHRleHRGb250OiBcIlwiLFxuXHRcdFx0dGV4dEJvbGQ6IGZhbHNlLFxuXHRcdFx0dGV4dEl0YWxpYzogdHJ1ZSxcblx0XHR9LFxuXHRcdGxhbmd1YWdlVGFnOiB7XG5cdFx0XHRkaXNwbGF5OiBcIm5vbmVcIixcblx0XHRcdHRleHRGb250OiBcIlwiLFxuXHRcdFx0dGV4dEJvbGQ6IHRydWUsXG5cdFx0XHR0ZXh0SXRhbGljOiBmYWxzZSxcblx0XHR9LFxuXHRcdGxhbmd1YWdlSWNvbjoge1xuXHRcdFx0ZGlzcGxheTogXCJub25lXCIsXG5cdFx0XHRkaXNwbGF5Q29sb3VyOiB0cnVlLFxuXHRcdH0sXG5cdFx0ZXh0ZXJuYWxSZWZlcmVuY2U6IHtcblx0XHRcdGRpc3BsYXlSZXBvc2l0b3J5OiB0cnVlLFxuXHRcdFx0ZGlzcGxheVZlcnNpb246IHRydWUsXG5cdFx0XHRkaXNwbGF5VGltZXN0YW1wOiB0cnVlLFxuXHRcdH0sXG5cdFx0Zm9udFNpemU6IDE0LFxuXHRcdGZvbGRQbGFjZWhvbGRlcjogXCJcIixcblx0fSxcblx0aGlnaGxpZ2h0czoge1xuXHRcdGFjdGl2ZUNvZGVibG9ja0xpbmU6IGZhbHNlLFxuXHRcdGFjdGl2ZUVkaXRvckxpbmU6IGZhbHNlLFxuXHR9LFxuXHRpbmxpbmU6IHtcblx0XHRzeW50YXhIaWdobGlnaHQ6IHRydWUsXG5cdFx0c3R5bGU6IHRydWUsXG5cdFx0Zm9udFdlaWdodDogNCxcblx0XHRjdXJ2YXR1cmU6IDYsXG5cdFx0cGFkZGluZ1ZlcnRpY2FsOiA1LFxuXHRcdHBhZGRpbmdIb3Jpem9udGFsOiA1LFxuXHRcdG1hcmdpbkhvcml6b250YWw6IDAsXG5cdFx0dGl0bGVGb250V2VpZ2h0OiA4LFxuXHR9LFxuXHRhZHZhbmNlZDoge1xuXHRcdGdyYWRpZW50SGlnaGxpZ2h0czogZmFsc2UsXG5cdFx0Z3JhZGllbnRIaWdobGlnaHRzQ29sb3VyU3RvcDogXCI3MCVcIixcblx0XHRsYW5ndWFnZUJvcmRlckNvbG91cjogZmFsc2UsXG5cdFx0bGFuZ3VhZ2VCb3JkZXJXaWR0aDogNSxcblx0XHRpY29uU2l6ZTogMjgsXG5cdH0sXG59O1xuZXhwb3J0IGNvbnN0IFRIRU1FX0ZBTExCQUNLX0NPTE9VUlM6IENvZGVTdHlsZXJUaGVtZU1vZGVDb2xvdXJzID0ge1xuXHRjb2RlYmxvY2s6IHtcblx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIi0tY29kZS1iYWNrZ3JvdW5kXCIsXG5cdFx0dGV4dENvbG91cjogXCItLWNvZGUtbm9ybWFsXCIsXG5cdH0sXG5cdGd1dHRlcjoge1xuXHRcdGJhY2tncm91bmRDb2xvdXI6IFwiLS1jb2RlLWJhY2tncm91bmRcIixcblx0XHR0ZXh0Q29sb3VyOiBcIi0tdGV4dC1mYWludFwiLFxuXHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiLS10ZXh0LW11dGVkXCIsXG5cdH0sXG5cdGhlYWRlcjoge1xuXHRcdGJhY2tncm91bmRDb2xvdXI6IFwiLS1jb2RlLWJhY2tncm91bmRcIixcblx0XHR0aXRsZToge1xuXHRcdFx0dGV4dENvbG91cjogXCItLWNvZGUtY29tbWVudFwiLFxuXHRcdH0sXG5cdFx0bGFuZ3VhZ2VUYWc6IHtcblx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFwiLS1jb2RlLWJhY2tncm91bmRcIixcblx0XHRcdHRleHRDb2xvdXI6IFwiLS1jb2RlLWNvbW1lbnRcIixcblx0XHR9LFxuXHRcdGV4dGVybmFsUmVmZXJlbmNlOiB7XG5cdFx0XHRkaXNwbGF5UmVwb3NpdG9yeUNvbG91cjogXCIjMDBGRkZGXCIsXG5cdFx0XHRkaXNwbGF5VmVyc2lvbkNvbG91cjogXCIjRkYwMEZGXCIsXG5cdFx0XHRkaXNwbGF5VGltZXN0YW1wQ29sb3VyOiBcIiM4MDgwODBcIixcblx0XHR9LFxuXHRcdGxpbmVDb2xvdXI6IFwiLS1jb2xvci1iYXNlLTMwXCIsXG5cdH0sXG5cdGhpZ2hsaWdodHM6IHtcblx0XHRhY3RpdmVDb2RlYmxvY2tMaW5lQ29sb3VyOiBcIi0tY29sb3ItYmFzZS0zMFwiLFxuXHRcdGFjdGl2ZUVkaXRvckxpbmVDb2xvdXI6IFwiLS1jb2xvci1iYXNlLTIwXCIsXG5cdFx0ZGVmYXVsdENvbG91cjogXCItLXRleHQtaGlnaGxpZ2h0LWJnXCIsXG5cdFx0YWx0ZXJuYXRpdmVIaWdobGlnaHRzOiB7fSxcblx0fSxcblx0aW5saW5lOiB7XG5cdFx0YmFja2dyb3VuZENvbG91cjogXCItLWNvZGUtYmFja2dyb3VuZFwiLFxuXHRcdHRleHRDb2xvdXI6IFwiLS1jb2RlLW5vcm1hbFwiLFxuXHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiLS1jb2RlLW5vcm1hbFwiLFxuXHRcdHRpdGxlVGV4dENvbG91cjogXCItLWNvZGUtY29tbWVudFwiLFxuXHR9LFxuXHRhZHZhbmNlZDoge1xuXHRcdGJ1dHRvbkNvbG91cjogXCItLXRleHQtbXV0ZWRcIixcblx0XHRidXR0b25BY3RpdmVDb2xvdXI6IFwiLS10ZXh0LW5vcm1hbFwiLFxuXHR9XG59O1xuXG4vLyBDb2xvciBTY2hlbWVzXG5jb25zdCBTT0xBUklaRUQ6IFJlY29yZDxzdHJpbmcsQ29sb3VyPiA9IHtcblx0XCJiYXNlMDNcIjogXCIjMDAyYjM2XCIsXG5cdFwiYmFzZTAyXCI6IFwiIzA3MzY0MlwiLFxuXHRcImJhc2UwMVwiOiBcIiM1ODZlNzVcIixcblx0XCJiYXNlMDBcIjogXCIjNjU3YjgzXCIsXG5cdFwiYmFzZTBcIjogXCIjODM5NDk2XCIsXG5cdFwiYmFzZTFcIjogXCIjOTNhMWExXCIsXG5cdFwiYmFzZTJcIjogXCIjZWVlOGQ1XCIsXG5cdFwiYmFzZTNcIjogXCIjZmRmNmUzXCIsXG5cdFwieWVsbG93XCI6IFwiI2I1ODkwMFwiLFxuXHRcIm9yYW5nZVwiOiBcIiNjYjRiMTZcIixcblx0XCJyZWRcIjogXCIjZGMzMjJmXCIsXG5cdFwibWFnZW50YVwiOiBcIiNkMzM2ODJcIixcblx0XCJ2aW9sZXRcIjogXCIjNmM3MWM0XCIsXG5cdFwiYmx1ZVwiOiBcIiMyNjhiZDJcIixcblx0XCJjeWFuXCI6IFwiIzJhYTE5OFwiLFxuXHRcImdyZWVuXCI6IFwiIzg1OTkwMFwiLFxufTtcbi8vIGNvbnN0IENBVFBVQ0NJTjogUmVjb3JkPHN0cmluZyxDb2xvdXI+ID0ge1xuLy8gXHRsYXR0ZToge1xuLy8gXHRcdGJhY2tncm91bmRDb2xvcjogXCIjZWZmMWY1XCIsXG4vLyBcdFx0Zm9yZWdyb3VuZENvbG9yOiBcIiM0YzRmNjlcIixcbi8vIFx0XHRzZWxlY3Rpb25Db2xvcjogXCIjYWNiMGJlXCIsXG4vLyBcdFx0Y3Vyc29yQ29sb3I6IFwiI2RjOGE3OFwiLFxuLy8gXHRcdGN1cnNvckFjY2VudENvbG9yOiBcIiNlZmYxZjVcIixcbi8vIFx0XHRjb2xvcnM6IHtcbi8vIFx0XHRcdGJsYWNrOiBcIiM1YzVmNzdcIixcbi8vIFx0XHRcdGJsdWU6IFwiIzFlNjZmNVwiLFxuLy8gXHRcdFx0cmVkOiBcIiNkMjBmMzlcIixcbi8vIFx0XHRcdGdyZWVuOiBcIiM0MGEwMmJcIixcbi8vIFx0XHRcdHllbGxvdzogXCIjZGY4ZTFkXCIsXG4vLyBcdFx0XHRtYWdlbnRhOiBcIiNlYTc2Y2JcIixcbi8vIFx0XHRcdGN5YW46IFwiIzE3OTI5OVwiLFxuLy8gXHRcdFx0d2hpdGU6IFwiI2FjYjBiZVwiLFxuLy8gXHRcdFx0bGlnaHRCbGFjazogXCIjNmM2Zjg1XCIsXG4vLyBcdFx0XHRsaWdodFdoaXRlOiBcIiNiY2MwY2NcIixcbi8vIFx0XHRcdGxpZ2h0Qmx1ZTogXCIjMWU2NmY1XCIsXG4vLyBcdFx0XHRsaWdodFJlZDogXCIjZDIwZjM5XCIsXG4vLyBcdFx0XHRsaWdodEdyZWVuOiBcIiM0MGEwMmJcIixcbi8vIFx0XHRcdGxpZ2h0WWVsbG93OiBcIiNkZjhlMWRcIixcbi8vIFx0XHRcdGxpZ2h0TWFnZW50YTogXCIjZWE3NmNiXCIsXG4vLyBcdFx0XHRsaWdodEN5YW46IFwiIzE3OTI5OVwiLFxuLy8gXHRcdH0sXG4vLyBcdH0sXG4vLyBcdGZyYXBwXHUwMEU5OiB7XG4vLyBcdFx0YmFja2dyb3VuZENvbG9yOiBcIiMzMDM0NDZcIixcbi8vIFx0XHRmb3JlZ3JvdW5kQ29sb3I6IFwiI2M2ZDBmNVwiLFxuLy8gXHRcdHNlbGVjdGlvbkNvbG9yOiBcIiM2MjY4ODBcIixcbi8vIFx0XHRjdXJzb3JDb2xvcjogXCIjZjJkNWNmXCIsXG4vLyBcdFx0Y3Vyc29yQWNjZW50Q29sb3I6IFwiIzIzMjYzNFwiLFxuLy8gXHRcdGNvbG9yczoge1xuLy8gXHRcdFx0YmxhY2s6IFwiIzUxNTc2ZFwiLFxuLy8gXHRcdFx0Ymx1ZTogXCIjOGNhYWVlXCIsXG4vLyBcdFx0XHRyZWQ6IFwiI2U3ODI4NFwiLFxuLy8gXHRcdFx0Z3JlZW46IFwiI2E2ZDE4OVwiLFxuLy8gXHRcdFx0eWVsbG93OiBcIiNlNWM4OTBcIixcbi8vIFx0XHRcdG1hZ2VudGE6IFwiI2Y0YjhlNFwiLFxuLy8gXHRcdFx0Y3lhbjogXCIjODFjOGJlXCIsXG4vLyBcdFx0XHR3aGl0ZTogXCIjYjViZmUyXCIsXG4vLyBcdFx0XHRsaWdodEJsYWNrOiBcIiM2MjY4ODBcIixcbi8vIFx0XHRcdGxpZ2h0V2hpdGU6IFwiI2E1YWRjZVwiLFxuLy8gXHRcdFx0bGlnaHRCbHVlOiBcIiM4Y2FhZWVcIixcbi8vIFx0XHRcdGxpZ2h0UmVkOiBcIiNlNzgyODRcIixcbi8vIFx0XHRcdGxpZ2h0R3JlZW46IFwiI2E2ZDE4OVwiLFxuLy8gXHRcdFx0bGlnaHRZZWxsb3c6IFwiI2U1Yzg5MFwiLFxuLy8gXHRcdFx0bGlnaHRNYWdlbnRhOiBcIiNmNGI4ZTRcIixcbi8vIFx0XHRcdGxpZ2h0Q3lhbjogXCIjODFjOGJlXCIsXG4vLyBcdFx0fSxcbi8vIFx0fSxcbi8vIFx0bWFjY2hpYXRvOiB7XG4vLyBcdFx0YmFja2dyb3VuZENvbG9yOiBcIiMyNDI3M2FcIixcbi8vIFx0XHRmb3JlZ3JvdW5kQ29sb3I6IFwiI2NhZDNmNVwiLFxuLy8gXHRcdHNlbGVjdGlvbkNvbG9yOiBcIiM1YjYwNzhcIixcbi8vIFx0XHRjdXJzb3JDb2xvcjogXCIjZjRkYmQ2XCIsXG4vLyBcdFx0Y3Vyc29yQWNjZW50Q29sb3I6IFwiIzE4MTkyNlwiLFxuLy8gXHRcdGNvbG9yczoge1xuLy8gXHRcdFx0YmxhY2s6IFwiIzQ5NGQ2NFwiLFxuLy8gXHRcdFx0Ymx1ZTogXCIjOGFhZGY0XCIsXG4vLyBcdFx0XHRyZWQ6IFwiI2VkODc5NlwiLFxuLy8gXHRcdFx0Z3JlZW46IFwiI2E2ZGE5NVwiLFxuLy8gXHRcdFx0eWVsbG93OiBcIiNlZWQ0OWZcIixcbi8vIFx0XHRcdG1hZ2VudGE6IFwiI2Y1YmRlNlwiLFxuLy8gXHRcdFx0Y3lhbjogXCIjOGJkNWNhOGJkNWNhXCIsXG4vLyBcdFx0XHR3aGl0ZTogXCIjYjhjMGUwXCIsXG4vLyBcdFx0XHRsaWdodEJsYWNrOiBcIiM1YjYwNzhcIixcbi8vIFx0XHRcdGxpZ2h0V2hpdGU6IFwiI2E1YWRjYlwiLFxuLy8gXHRcdFx0bGlnaHRCbHVlOiBcIiM4YWFkZjRcIixcbi8vIFx0XHRcdGxpZ2h0UmVkOiBcIiNlZDg3OTZcIixcbi8vIFx0XHRcdGxpZ2h0R3JlZW46IFwiI2E2ZGE5NVwiLFxuLy8gXHRcdFx0bGlnaHRZZWxsb3c6IFwiI2VlZDQ5ZlwiLFxuLy8gXHRcdFx0bGlnaHRNYWdlbnRhOiBcIiNmNWJkZTZcIixcbi8vIFx0XHRcdGxpZ2h0Q3lhbjogXCIjOGJkNWNhXCIsXG4vLyBcdFx0fSxcbi8vIFx0fSxcbi8vIFx0bW9jaGE6IHtcbi8vIFx0XHRiYWNrZ3JvdW5kQ29sb3I6IFwiIzFlMWUyZVwiLFxuLy8gXHRcdGZvcmVncm91bmRDb2xvcjogXCIjY2RkNmY0XCIsXG4vLyBcdFx0c2VsZWN0aW9uQ29sb3I6IFwiIzU4NWI3MFwiLFxuLy8gXHRcdGN1cnNvckNvbG9yOiBcIiNmNWUwZGNcIixcbi8vIFx0XHRjdXJzb3JBY2NlbnRDb2xvcjogXCIjMTExMTFiXCIsXG4vLyBcdFx0Y29sb3JzOiB7XG4vLyBcdFx0XHRibGFjazogXCIjNDU0NzVBXCIsXG4vLyBcdFx0XHRibHVlOiBcIiM4OWI0ZmFcIixcbi8vIFx0XHRcdHJlZDogXCIjZjM4YmE4XCIsXG4vLyBcdFx0XHRncmVlbjogXCIjYTZlM2ExXCIsXG4vLyBcdFx0XHR5ZWxsb3c6IFwiI2Y5ZTJhZlwiLFxuLy8gXHRcdFx0bWFnZW50YTogXCIjZjVjMmU3XCIsXG4vLyBcdFx0XHRjeWFuOiBcIiM5NGUyZDVcIixcbi8vIFx0XHRcdHdoaXRlOiBcIiNiYWMyZGVcIixcbi8vIFx0XHRcdGxpZ2h0QmxhY2s6IFwiIzU4NWI3MFwiLFxuLy8gXHRcdFx0bGlnaHRXaGl0ZTogXCIjYTZhZGM4XCIsXG4vLyBcdFx0XHRsaWdodEJsdWU6IFwiIzg5YjRmYVwiLFxuLy8gXHRcdFx0bGlnaHRSZWQ6IFwiI2YzOGJhOFwiLFxuLy8gXHRcdFx0bGlnaHRHcmVlbjogXCIjYTZlM2ExXCIsXG4vLyBcdFx0XHRsaWdodFllbGxvdzogXCIjZjllMmFmXCIsXG4vLyBcdFx0XHRsaWdodE1hZ2VudGE6IFwiI2Y1YzJlN1wiLFxuLy8gXHRcdFx0bGlnaHRDeWFuOiBcIiM5NGUyZDVcIixcbi8vIFx0XHR9LFxuLy8gXHR9LFxuLy8gfTtcbi8vIGNvbnN0IEdSVVZCT1g6IFJlY29yZDxzdHJpbmcsQ29sb3VyPiA9IHtcbi8vIFx0ZGFyazBfaGFyZDogXCIjMWQyMDIxXCIsXG4vLyBcdGRhcmswOiBcIiMyODI4MjhcIixcbi8vIFx0ZGFyazBfc29mdDogXCIjMzIzMDJmXCIsXG4vLyBcdGRhcmsxOiBcIiMzYzM4MzZcIixcbi8vIFx0ZGFyazI6IFwiIzUwNDk0NVwiLFxuLy8gXHRkYXJrMzogXCIjNjY1YzU0XCIsXG4vLyBcdGRhcms0OiBcIiM3YzZmNjRcIixcblxuLy8gXHRncmF5XzI0NTogXCIjOTI4Mzc0XCIsXG4vLyBcdGdyYXlfMjQ0OiBcIiM5MjgzNzRcIixcblxuLy8gXHRsaWdodDBfaGFyZDogXCIjZjlmNWQ3XCIsXG4vLyBcdGxpZ2h0MDogXCIjZmJmMWM3XCIsXG4vLyBcdGxpZ2h0MF9zb2Z0OiBcIiNmMmU1YmNcIixcbi8vIFx0bGlnaHQxOiBcIiNlYmRiYjJcIixcbi8vIFx0bGlnaHQyOiBcIiNkNWM0YTFcIixcbi8vIFx0bGlnaHQzOiBcIiNiZGFlOTNcIixcbi8vIFx0bGlnaHQ0OiBcIiNhODk5ODRcIixcblxuLy8gXHRicmlnaHRfcmVkOiBcIiNmYjQ5MzRcIixcbi8vIFx0YnJpZ2h0X2dyZWVuOiBcIiNiOGJiMjZcIixcbi8vIFx0YnJpZ2h0X3llbGxvdzogXCIjZmFiZDJmXCIsXG4vLyBcdGJyaWdodF9ibHVlOiBcIiM4M2E1OThcIixcbi8vIFx0YnJpZ2h0X3B1cnBsZTogXCIjZDM4NjliXCIsXG4vLyBcdGJyaWdodF9hcXVhOiBcIiM4ZWMwN2NcIixcbi8vIFx0YnJpZ2h0X29yYW5nZTogXCIjZmU4MDE5XCIsXG5cbi8vIFx0bmV1dHJhbF9yZWQ6IFwiI2NjMjQxZFwiLFxuLy8gXHRuZXV0cmFsX2dyZWVuOiBcIiM5ODk3MWFcIixcbi8vIFx0bmV1dHJhbF95ZWxsb3c6IFwiI2Q3OTkyMVwiLFxuLy8gXHRuZXV0cmFsX2JsdWU6IFwiIzQ1ODU4OFwiLFxuLy8gXHRuZXV0cmFsX3B1cnBsZTogXCIjYjE2Mjg2XCIsXG4vLyBcdG5ldXRyYWxfYXF1YTogXCIjNjg5ZDZhXCIsXG4vLyBcdG5ldXRyYWxfb3JhbmdlOiBcIiNkNjVkMGVcIixcblxuLy8gXHRmYWRlZF9yZWQ6IFwiIzlkMDAwNlwiLFxuLy8gXHRmYWRlZF9ncmVlbjogXCIjNzk3NDBlXCIsXG4vLyBcdGZhZGVkX3llbGxvdzogXCIjYjU3NjE0XCIsXG4vLyBcdGZhZGVkX2JsdWU6IFwiIzA3NjY3OFwiLFxuLy8gXHRmYWRlZF9wdXJwbGU6IFwiIzhmM2Y3MVwiLFxuLy8gXHRmYWRlZF9hcXVhOiBcIiM0MjdiNThcIixcbi8vIFx0ZmFkZWRfb3JhbmdlOiBcIiNhZjNhMDNcIixcbi8vIH07XG4vLyBjb25zdCBOT1JEOiBSZWNvcmQ8c3RyaW5nLENvbG91cj4gPSB7XG5cbi8vIH07XG4vLyBjb25zdCBEUkFDVUxBOiBSZWNvcmQ8c3RyaW5nLENvbG91cj4gPSB7XG5cbi8vIH07XG5cbi8vIFRoZW1lIENyZWF0aW9uXG5jb25zdCBERUZBVUxUX1RIRU1FOiBDb2RlU3R5bGVyVGhlbWUgPSB7XG5cdHNldHRpbmdzOiBUSEVNRV9ERUZBVUxUX1NFVFRJTkdTLFxuXHRjb2xvdXJzOiB7XG5cdFx0bGlnaHQ6IFRIRU1FX0ZBTExCQUNLX0NPTE9VUlMsXG5cdFx0ZGFyazogVEhFTUVfRkFMTEJBQ0tfQ09MT1VSUyxcblx0fSxcbn07XG5jb25zdCBTT0xBUklaRURfVEhFTUU6IENvZGVTdHlsZXJUaGVtZSA9IHtcblx0c2V0dGluZ3M6IFRIRU1FX0RFRkFVTFRfU0VUVElOR1MsXG5cdGNvbG91cnM6IHtcblx0XHRsaWdodDoge1xuXHRcdFx0Y29kZWJsb2NrOiB7XG5cdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFNPTEFSSVpFRC5iYXNlMyxcblx0XHRcdFx0dGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG5cdFx0XHR9LFxuXHRcdFx0Z3V0dGVyOiB7XG5cdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFNPTEFSSVpFRC5iYXNlMixcblx0XHRcdFx0dGV4dENvbG91cjogXCIjNmM2YzZjXCIsXG5cdFx0XHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiIzhjOGM4Y1wiLFxuXHRcdFx0fSxcblx0XHRcdGhlYWRlcjoge1xuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIiNENUNDQjRcIixcblx0XHRcdFx0dGl0bGU6IHtcblx0XHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiM4NjY3MDRcIixcblx0XHRcdFx0fSxcblx0XHRcdFx0bGFuZ3VhZ2VUYWc6IHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIiNCOEI1QUFcIixcblx0XHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNDMjVGMzBcIixcblx0XHRcdFx0fSxcblx0XHRcdFx0ZXh0ZXJuYWxSZWZlcmVuY2U6IHtcblx0XHRcdFx0XHRkaXNwbGF5UmVwb3NpdG9yeUNvbG91cjogXCIjOTQxMTAwXCIsXG5cdFx0XHRcdFx0ZGlzcGxheVZlcnNpb25Db2xvdXI6IFwiI2ZmOTMwMFwiLFxuXHRcdFx0XHRcdGRpc3BsYXlUaW1lc3RhbXBDb2xvdXI6IFwiIzgwODA4MFwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRsaW5lQ29sb3VyOiBcIiNFREQ0ODlcIixcblx0XHRcdH0sXG5cdFx0XHRoaWdobGlnaHRzOiB7XG5cdFx0XHRcdGFjdGl2ZUNvZGVibG9ja0xpbmVDb2xvdXI6IFNPTEFSSVpFRC5iYXNlMixcblx0XHRcdFx0YWN0aXZlRWRpdG9yTGluZUNvbG91cjogXCIjNjA0NjA2MzNcIixcblx0XHRcdFx0ZGVmYXVsdENvbG91cjogXCIjRTlERkJBXCIsXG5cdFx0XHRcdGFsdGVybmF0aXZlSGlnaGxpZ2h0czoge30sXG5cdFx0XHR9LFxuXHRcdFx0aW5saW5lOiB7XG5cdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFNPTEFSSVpFRC5iYXNlMyxcblx0XHRcdFx0dGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG5cdFx0XHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiI2JhYmFiYVwiLFxuXHRcdFx0XHR0aXRsZVRleHRDb2xvdXI6IFwiI0MyNUYzMFwiLFxuXHRcdFx0fSxcblx0XHRcdGFkdmFuY2VkOiB7XG5cdFx0XHRcdGJ1dHRvbkNvbG91cjogXCItLXRleHQtbXV0ZWRcIixcblx0XHRcdFx0YnV0dG9uQWN0aXZlQ29sb3VyOiBcIi0tdGV4dC1ub3JtYWxcIixcblx0XHRcdH1cblx0XHR9LFxuXHRcdGRhcms6IHtcblx0XHRcdGNvZGVibG9jazoge1xuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBTT0xBUklaRUQuYmFzZTAzLFxuXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcblx0XHRcdH0sXG5cdFx0XHRndXR0ZXI6IHtcblx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogU09MQVJJWkVELmJhc2UwMixcblx0XHRcdFx0dGV4dENvbG91cjogXCIjNmM2YzZjXCIsXG5cdFx0XHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiIzRjNGM0Y1wiLFxuXHRcdFx0fSxcblx0XHRcdGhlYWRlcjoge1xuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIiMwYTQ1NTRcIixcblx0XHRcdFx0dGl0bGU6IHtcblx0XHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNkYWRhZGFcIixcblx0XHRcdFx0fSxcblx0XHRcdFx0bGFuZ3VhZ2VUYWc6IHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIiMwMDgwODBcIixcblx0XHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiMwMDAwMDBcIixcblx0XHRcdFx0fSxcblx0XHRcdFx0ZXh0ZXJuYWxSZWZlcmVuY2U6IHtcblx0XHRcdFx0XHRkaXNwbGF5UmVwb3NpdG9yeUNvbG91cjogXCIjMDBGRkZGXCIsXG5cdFx0XHRcdFx0ZGlzcGxheVZlcnNpb25Db2xvdXI6IFwiIzk0MzdmZlwiLFxuXHRcdFx0XHRcdGRpc3BsYXlUaW1lc3RhbXBDb2xvdXI6IFwiIzgwODA4MFwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRsaW5lQ29sb3VyOiBcIiM0NmNjZWRcIixcblx0XHRcdH0sXG5cdFx0XHRoaWdobGlnaHRzOiB7XG5cdFx0XHRcdGFjdGl2ZUNvZGVibG9ja0xpbmVDb2xvdXI6IFNPTEFSSVpFRC5iYXNlMDIsXG5cdFx0XHRcdGFjdGl2ZUVkaXRvckxpbmVDb2xvdXI6IFwiIzQ2OGVlYjMzXCIsXG5cdFx0XHRcdGRlZmF1bHRDb2xvdXI6IFwiIzA1NGI1Y1wiLFxuXHRcdFx0XHRhbHRlcm5hdGl2ZUhpZ2hsaWdodHM6IHt9LFxuXHRcdFx0fSxcblx0XHRcdGlubGluZToge1xuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBTT0xBUklaRUQuYmFzZTAzLFxuXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcblx0XHRcdFx0YWN0aXZlVGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG5cdFx0XHRcdHRpdGxlVGV4dENvbG91cjogXCIjMDAwMDAwXCIsXG5cdFx0XHR9LFxuXHRcdFx0YWR2YW5jZWQ6IHtcblx0XHRcdFx0YnV0dG9uQ29sb3VyOiBcIi0tdGV4dC1tdXRlZFwiLFxuXHRcdFx0XHRidXR0b25BY3RpdmVDb2xvdXI6IFwiLS10ZXh0LW5vcm1hbFwiLFxuXHRcdFx0fVxuXHRcdH0sXG5cdH0sXG59O1xuLy8gY29uc3QgTk9SRF9USEVNRSA9IHtcblxuLy8gfTtcbi8vIGNvbnN0IERSQUNVTEFfVEhFTUUgPSB7XG5cbi8vIH07XG4vLyBjb25zdCBDQVRQVUNDSU5fVEhFTUUgPSB7XG5cbi8vIH07XG4vLyBjb25zdCBHUlVWQk9YX1RIRU1FID0ge1xuLy8gXHRzZXR0aW5nczogVEhFTUVfREVGQVVMVF9TRVRUSU5HUyxcbi8vIFx0Y29sb3Vyczoge1xuLy8gXHRcdGxpZ2h0OiB7XG4vLyBcdFx0XHRjb2RlYmxvY2s6IHtcbi8vIFx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogR1JVVkJPWC5saWdodDAsXG4vLyBcdFx0XHRcdHRleHRDb2xvdXI6IFwiI2JhYmFiYVwiLFxuLy8gXHRcdFx0fSxcbi8vIFx0XHRcdGd1dHRlcjoge1xuLy8gXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBHUlVWQk9YLmxpZ2h0MSxcbi8vIFx0XHRcdFx0dGV4dENvbG91cjogXCIjNmM2YzZjXCIsXG4vLyBcdFx0XHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiIzhjOGM4Y1wiLFxuLy8gXHRcdFx0fSxcbi8vIFx0XHRcdGhlYWRlcjoge1xuLy8gXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIiNENUNDQjRcIixcbi8vIFx0XHRcdFx0dGl0bGU6IHtcbi8vIFx0XHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiM4NjY3MDRcIixcbi8vIFx0XHRcdFx0fSxcbi8vIFx0XHRcdFx0bGFuZ3VhZ2VUYWc6IHtcbi8vIFx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIiNCOEI1QUFcIixcbi8vIFx0XHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNDMjVGMzBcIixcbi8vIFx0XHRcdFx0fSxcbi8vIFx0XHRcdFx0bGluZUNvbG91cjogXCIjRURENDg5XCIsXG4vLyBcdFx0XHR9LFxuLy8gXHRcdFx0aGlnaGxpZ2h0czoge1xuLy8gXHRcdFx0XHRhY3RpdmVDb2RlYmxvY2tMaW5lQ29sb3VyOiBHUlVWQk9YLmxpZ2h0MSxcbi8vIFx0XHRcdFx0YWN0aXZlRWRpdG9yTGluZUNvbG91cjogXCIjNjA0NjA2MzNcIixcbi8vIFx0XHRcdFx0ZGVmYXVsdENvbG91cjogXCIjRTlERkJBXCIsXG4vLyBcdFx0XHRcdGFsdGVybmF0aXZlSGlnaGxpZ2h0czoge30sXG4vLyBcdFx0XHR9LFxuLy8gXHRcdFx0aW5saW5lOiB7XG4vLyBcdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IEdSVVZCT1gubGlnaHQwLFxuLy8gXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcbi8vIFx0XHRcdFx0YWN0aXZlVGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG4vLyBcdFx0XHRcdHRpdGxlVGV4dENvbG91cjogXCIjQzI1RjMwXCIsXG4vLyBcdFx0XHR9LFxuLy8gXHRcdFx0YWR2YW5jZWQ6IHtcbi8vIFx0XHRcdFx0YnV0dG9uQ29sb3VyOiBcIi0tdGV4dC1tdXRlZFwiLFxuLy8gXHRcdFx0XHRidXR0b25BY3RpdmVDb2xvdXI6IFwiLS10ZXh0LW5vcm1hbFwiLFxuLy8gXHRcdFx0fVxuLy8gXHRcdH0sXG4vLyBcdFx0ZGFyazoge1xuLy8gXHRcdFx0Y29kZWJsb2NrOiB7XG4vLyBcdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IEdSVVZCT1guZGFyazAsXG4vLyBcdFx0XHRcdHRleHRDb2xvdXI6IFwiI2JhYmFiYVwiLFxuLy8gXHRcdFx0fSxcbi8vIFx0XHRcdGd1dHRlcjoge1xuLy8gXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBHUlVWQk9YLmRhcmsxLFxuLy8gXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiM2YzZjNmNcIixcbi8vIFx0XHRcdFx0YWN0aXZlVGV4dENvbG91cjogXCIjNGM0YzRjXCIsXG4vLyBcdFx0XHR9LFxuLy8gXHRcdFx0aGVhZGVyOiB7XG4vLyBcdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFwiIzBhNDU1NFwiLFxuLy8gXHRcdFx0XHR0aXRsZToge1xuLy8gXHRcdFx0XHRcdHRleHRDb2xvdXI6IFwiI2RhZGFkYVwiLFxuLy8gXHRcdFx0XHR9LFxuLy8gXHRcdFx0XHRsYW5ndWFnZVRhZzoge1xuLy8gXHRcdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFwiIzAwODA4MFwiLFxuLy8gXHRcdFx0XHRcdHRleHRDb2xvdXI6IFwiIzAwMDAwMFwiLFxuLy8gXHRcdFx0XHR9LFxuLy8gXHRcdFx0XHRsaW5lQ29sb3VyOiBcIiM0NmNjZWRcIixcbi8vIFx0XHRcdH0sXG4vLyBcdFx0XHRoaWdobGlnaHRzOiB7XG4vLyBcdFx0XHRcdGFjdGl2ZUNvZGVibG9ja0xpbmVDb2xvdXI6IEdSVVZCT1guZGFyazEsXG4vLyBcdFx0XHRcdGFjdGl2ZUVkaXRvckxpbmVDb2xvdXI6IFwiIzQ2OGVlYjMzXCIsXG4vLyBcdFx0XHRcdGRlZmF1bHRDb2xvdXI6IFwiIzA1NGI1Y1wiLFxuLy8gXHRcdFx0XHRhbHRlcm5hdGl2ZUhpZ2hsaWdodHM6IHt9LFxuLy8gXHRcdFx0fSxcbi8vIFx0XHRcdGlubGluZToge1xuLy8gXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBHUlVWQk9YLmRhcmswLFxuLy8gXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcbi8vIFx0XHRcdFx0YWN0aXZlVGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG4vLyBcdFx0XHRcdHRpdGxlVGV4dENvbG91cjogXCIjMDAwMDAwXCIsXG4vLyBcdFx0XHR9LFxuLy8gXHRcdFx0YWR2YW5jZWQ6IHtcbi8vIFx0XHRcdFx0YnV0dG9uQ29sb3VyOiBcIi0tdGV4dC1tdXRlZFwiLFxuLy8gXHRcdFx0XHRidXR0b25BY3RpdmVDb2xvdXI6IFwiLS10ZXh0LW5vcm1hbFwiLFxuLy8gXHRcdFx0fVxuLy8gXHRcdH0sXG4vLyBcdH0sXG4vLyB9O1xuXG5leHBvcnQgY29uc3QgSU5CVUlMVF9USEVNRVM6IFJlY29yZDxzdHJpbmcsQ29kZVN0eWxlclRoZW1lPiA9IHtcblx0XCJEZWZhdWx0XCI6IERFRkFVTFRfVEhFTUUsXG5cdFwiU29sYXJpemVkXCI6IFNPTEFSSVpFRF9USEVNRSxcbn07XG5cbi8vIERlZmF1bHQgVmFsdWVzXG5leHBvcnQgY29uc3QgRVhBTVBMRV9DT0RFQkxPQ0tfUEFSQU1FVEVSUyA9IFwicHl0aG9uIHRpdGxlOmZvb1wiO1xuZXhwb3J0IGNvbnN0IEVYQU1QTEVfQ09ERUJMT0NLX0NPTlRFTlQgPSBcInByaW50KFxcXCJUaGlzIGxpbmUgaXMgdmVyeSBsb25nIGFuZCBzaG91bGQgYmUgdXNlZCBhcyBhbiBleGFtcGxlIGZvciBob3cgdGhlIHBsdWdpbiBkZWFscyB3aXRoIHdyYXBwaW5nIGFuZCB1bndyYXBwaW5nIHZlcnkgbG9uZyBsaW5lcyBnaXZlbiB0aGUgY2hvaWNlIG9mIGNvZGVibG9jayBwYXJhbWV0ZXJzIGFuZCBzZXR0aW5ncy5cXFwiKVxcbnByaW50KFxcXCJUaGlzIGxpbmUgaXMgaGlnaGxpZ2h0ZWQuXFxcIilcIjtcbmV4cG9ydCBjb25zdCBFWEFNUExFX0lOTElORV9DT0RFID0gXCJ7cHl0aG9uIGljb24gdGl0bGU6Zm9vfSBwcmludChcXFwiVGhpcyBpcyBpbmxpbmUgY29kZVxcXCIpXCI7XG5leHBvcnQgY29uc3QgRVhDTFVERURfTEFOR1VBR0VTID0gXCJhZC0qLCByZWZlcmVuY2VcIjtcbmV4cG9ydCBjb25zdCBXSElURUxJU1RfQ09ERUJMT0NLUyA9IFwicnVuLSosIGluY2x1ZGVcIjtcblxuLy8gUGx1Z2luIGRlZmF1bHQgc2V0dGluZ3NcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NFVFRJTkdTOiBDb2RlU3R5bGVyU2V0dGluZ3MgPSB7XG5cdHRoZW1lczogc3RydWN0dXJlZENsb25lKElOQlVJTFRfVEhFTUVTKSxcblx0c2VsZWN0ZWRUaGVtZTogXCJEZWZhdWx0XCIsXG5cdGN1cnJlbnRUaGVtZTogc3RydWN0dXJlZENsb25lKERFRkFVTFRfVEhFTUUpLFxuXHRuZXdUaGVtZTogXCJcIixcblx0bmV3SGlnaGxpZ2h0OiBcIlwiLFxuXHRleGFtcGxlQ29kZWJsb2NrUGFyYW1ldGVyczogRVhBTVBMRV9DT0RFQkxPQ0tfUEFSQU1FVEVSUyxcblx0ZXhhbXBsZUNvZGVibG9ja0NvbnRlbnQ6IEVYQU1QTEVfQ09ERUJMT0NLX0NPTlRFTlQsXG5cdGV4YW1wbGVJbmxpbmVDb2RlOiBFWEFNUExFX0lOTElORV9DT0RFLFxuXHRkZWNvcmF0ZVByaW50OiB0cnVlLFxuXHRleGNsdWRlZExhbmd1YWdlczogRVhDTFVERURfTEFOR1VBR0VTLFxuXHRleHRlcm5hbFJlZmVyZW5jZVVwZGF0ZU9uTG9hZDogZmFsc2UsXG5cdHByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3Q6IFdISVRFTElTVF9DT0RFQkxPQ0tTLFxuXHRyZWRpcmVjdExhbmd1YWdlczoge30sXG5cdHZlcnNpb246IFwiMS4xLjRcIixcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0U2V0dGluZ3Moc2V0dGluZ3M6IENvZGVTdHlsZXJTZXR0aW5ncyk6IENvZGVTdHlsZXJTZXR0aW5ncyB7XG5cdGlmICh0eXBlb2Ygc2V0dGluZ3M/LnZlcnNpb24gPT09IFwidW5kZWZpbmVkXCIpXG5cdFx0cmV0dXJuIHNldHRpbmdzQ2xlYXIoKTtcblx0d2hpbGUgKHNlbXZlck5ld2VyKERFRkFVTFRfU0VUVElOR1MudmVyc2lvbixzZXR0aW5ncy52ZXJzaW9uKSkge1xuXHRcdGlmIChzZXR0aW5ncy52ZXJzaW9uIGluIHNldHRpbmdzVXBkYXRlcnMpXG5cdFx0XHRzZXR0aW5ncyA9IHNldHRpbmdzVXBkYXRlcnNbc2V0dGluZ3MudmVyc2lvbl0oc2V0dGluZ3MpO1xuXHRcdGVsc2Vcblx0XHRcdHNldHRpbmdzID0gc2V0dGluZ3NDbGVhcigpO1xuXHR9XG5cdHJldHVybiBzZXR0aW5ncztcbn1cbmZ1bmN0aW9uIHNlbXZlck5ld2VyKG5ld1ZlcnNpb246IHN0cmluZywgb2xkVmVyc2lvbjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdHJldHVybiBuZXdWZXJzaW9uLmxvY2FsZUNvbXBhcmUob2xkVmVyc2lvbiwgdW5kZWZpbmVkLCB7IG51bWVyaWM6IHRydWUgfSkgPT09IDE7XG59XG5mdW5jdGlvbiBzZXR0aW5nc1ZlcnNpb25VcGRhdGUoc2V0dGluZ3M6IENvZGVTdHlsZXJTZXR0aW5ncywgdGhlbWVVcGRhdGVyOiAodGhlbWU6IENvZGVTdHlsZXJUaGVtZSk9PkNvZGVTdHlsZXJUaGVtZSA9ICh0aGVtZSk9PnRoZW1lLCBvdGhlclNldHRpbmdzVXBkYXRlcjogKHNldHRpbmdzOiBDb2RlU3R5bGVyU2V0dGluZ3MpPT5Db2RlU3R5bGVyU2V0dGluZ3MgPSAoc2V0dGluZ3MpPT5zZXR0aW5ncywgcmVkaXJlY3RMYW5ndWFnZXNVcGRhdGVyOiAocmVkaXJlY3RMYW5ndWFnZXM6IFJlY29yZDxzdHJpbmcse2NvbG91cj86IENvbG91ciwgaWNvbj86IHN0cmluZ30+KT0+UmVjb3JkPHN0cmluZyx7Y29sb3VyPzogQ29sb3VyLCBpY29uPzogc3RyaW5nfT4gPSAocmVkaXJlY3RMYW5ndWFnZXMpPT5yZWRpcmVjdExhbmd1YWdlcyk6IENvZGVTdHlsZXJTZXR0aW5ncyB7XG5cdGZvciAoY29uc3QgW25hbWUsIHRoZW1lXSBvZiBPYmplY3QuZW50cmllcyhzZXR0aW5ncy50aGVtZXMpKSB7XG5cdFx0c2V0dGluZ3MudGhlbWVzW25hbWVdID0gdGhlbWVVcGRhdGVyKHRoZW1lKTtcblx0fVxuXHRzZXR0aW5ncy5jdXJyZW50VGhlbWUgPSBzdHJ1Y3R1cmVkQ2xvbmUoc2V0dGluZ3MudGhlbWVzW3NldHRpbmdzLnNlbGVjdGVkVGhlbWVdKTtcblx0c2V0dGluZ3MucmVkaXJlY3RMYW5ndWFnZXMgPSByZWRpcmVjdExhbmd1YWdlc1VwZGF0ZXIoc2V0dGluZ3MucmVkaXJlY3RMYW5ndWFnZXMpO1xuXHRzZXR0aW5ncyA9IG90aGVyU2V0dGluZ3NVcGRhdGVyKHNldHRpbmdzKTtcblx0c2V0dGluZ3MudmVyc2lvbiA9IE9iamVjdC5rZXlzKHNldHRpbmdzVXBkYXRlcnMpLmZpbmQoKHZhbHVlLGluZGV4LGFycmF5KT0+YXJyYXk/LltpbmRleC0xXT09PXNldHRpbmdzLnZlcnNpb24pID8/IFwiMS4wLjBcIjtcblx0cmV0dXJuIHNldHRpbmdzO1xufVxuZnVuY3Rpb24gc2V0dGluZ3NQcmVzZXJ2ZShzZXR0aW5nczogQ29kZVN0eWxlclNldHRpbmdzKTogQ29kZVN0eWxlclNldHRpbmdzIHtcblx0c2V0dGluZ3MudmVyc2lvbiA9IE9iamVjdC5rZXlzKHNldHRpbmdzVXBkYXRlcnMpLmZpbmQoKHZhbHVlLGluZGV4LGFycmF5KT0+YXJyYXk/LltpbmRleC0xXT09PXNldHRpbmdzLnZlcnNpb24pID8/IFwiMS4wLjBcIjtcblx0cmV0dXJuIHNldHRpbmdzO1xufVxuZnVuY3Rpb24gc2V0dGluZ3NDbGVhcigpOiBDb2RlU3R5bGVyU2V0dGluZ3Mge1xuXHRyZXR1cm4gREVGQVVMVF9TRVRUSU5HUztcbn1cblxuY29uc3Qgc2V0dGluZ3NVcGRhdGVyczogUmVjb3JkPHN0cmluZywoc2V0dGluZ3M6IENvZGVTdHlsZXJTZXR0aW5ncyk9PkNvZGVTdHlsZXJTZXR0aW5ncz4gPSB7XG5cdFwiMS4wLjBcIjogc2V0dGluZ3NDbGVhcixcblx0XCIxLjAuMVwiOiBzZXR0aW5nc0NsZWFyLFxuXHRcIjEuMC4yXCI6IHNldHRpbmdzQ2xlYXIsXG5cdFwiMS4wLjNcIjogc2V0dGluZ3NDbGVhcixcblx0XCIxLjAuNFwiOiBzZXR0aW5nc0NsZWFyLFxuXHRcIjEuMC41XCI6IHNldHRpbmdzQ2xlYXIsXG5cdFwiMS4wLjZcIjogc2V0dGluZ3NDbGVhcixcblx0XCIxLjAuN1wiOiBzZXR0aW5nc1ByZXNlcnZlLFxuXHRcIjEuMC44XCI6IHNldHRpbmdzUHJlc2VydmUsXG5cdFwiMS4wLjlcIjogc2V0dGluZ3NQcmVzZXJ2ZSxcblx0XCIxLjAuMTBcIjogKHNldHRpbmdzKT0+c2V0dGluZ3NWZXJzaW9uVXBkYXRlKHNldHRpbmdzLCh0aGVtZSk9Pntcblx0XHR0aGVtZS5zZXR0aW5ncy5pbmxpbmUuc3R5bGUgPSB0cnVlO1xuXHRcdHJldHVybiB0aGVtZTtcblx0fSwoc2V0dGluZ3MpPT57Ly9AdHMtZXhwZWN0LWVycm9yIE9sZGVyIGludGVyZmFjZSB2ZXJzaW9uc1xuXHRcdGRlbGV0ZSBzZXR0aW5ncy5zcGVjaWFsTGFuZ3VhZ2VzO1xuXHRcdHJldHVybiBzZXR0aW5ncztcblx0fSksXG5cdFwiMS4wLjExXCI6IHNldHRpbmdzUHJlc2VydmUsXG5cdFwiMS4xLjBcIjogc2V0dGluZ3NQcmVzZXJ2ZSxcblx0XCIxLjEuMVwiOiBzZXR0aW5nc1ByZXNlcnZlLFxuXHRcIjEuMS4yXCI6IHNldHRpbmdzUHJlc2VydmUsXG5cdFwiMS4xLjNcIjogc2V0dGluZ3NQcmVzZXJ2ZSxcblx0XCIxLjEuNFwiOiBzZXR0aW5nc1ByZXNlcnZlLFxuXHRcIjEuMS41XCI6IChzZXR0aW5ncykgPT4gc2V0dGluZ3NWZXJzaW9uVXBkYXRlKHNldHRpbmdzLCh0aGVtZSk9Pntcblx0XHR0aGVtZS5zZXR0aW5ncy5oZWFkZXIuZXh0ZXJuYWxSZWZlcmVuY2UgPSBzdHJ1Y3R1cmVkQ2xvbmUoVEhFTUVfREVGQVVMVF9TRVRUSU5HUy5oZWFkZXIuZXh0ZXJuYWxSZWZlcmVuY2UpO1xuXHRcdHRoZW1lLmNvbG91cnMubGlnaHQuaGVhZGVyLmV4dGVybmFsUmVmZXJlbmNlID0gc3RydWN0dXJlZENsb25lKFRIRU1FX0ZBTExCQUNLX0NPTE9VUlMuaGVhZGVyLmV4dGVybmFsUmVmZXJlbmNlKTtcblx0XHR0aGVtZS5jb2xvdXJzLmRhcmsuaGVhZGVyLmV4dGVybmFsUmVmZXJlbmNlID0gc3RydWN0dXJlZENsb25lKFRIRU1FX0ZBTExCQUNLX0NPTE9VUlMuaGVhZGVyLmV4dGVybmFsUmVmZXJlbmNlKTtcblx0XHRyZXR1cm4gdGhlbWU7XG5cdH0sIChzZXR0aW5ncykgPT4ge1xuXHRcdHNldHRpbmdzLmV4dGVybmFsUmVmZXJlbmNlVXBkYXRlT25Mb2FkID0gZmFsc2U7XG5cdFx0cmV0dXJuIHNldHRpbmdzO1xuXHR9KSxcbn07XG5cbi8vIENvbnN0YW50c1xuZXhwb3J0IGNvbnN0IEZPTERfUExBQ0VIT0xERVIgPSBcIkZvbGRlZCBDb2RlXCI7XG5leHBvcnQgY29uc3QgUEFSQU1FVEVSUyA9IFtcInRpdGxlXCIsXCJmb2xkXCIsXCJsblwiLFwid3JhcFwiLFwidW53cmFwXCIsXCJpZ25vcmVcIl07XG5leHBvcnQgY29uc3QgVFJBTlNJVElPTl9MRU5HVEggPSAyNDA7IC8vIDI0MG1zXG5leHBvcnQgY29uc3QgU1BFQ0lBTF9MQU5HVUFHRVMgPSBbXCJecmVmZXJlbmNlJFwiLFwiXmZvb2Zvb1wiLFwiXnByZXZpZXckXCIsXCJeaW5jbHVkZSRcIixcIl5vdXRwdXQkXCIsXCJecnVuLS4rJFwiXTtcbmV4cG9ydCBjb25zdCBTRVRUSU5HU19TT1VSQ0VQQVRIX1BSRUZJWCA9IFwiQENvZGUtU3R5bGVyLVNldHRpbmdzOlwiO1xuZXhwb3J0IGNvbnN0IExPQ0FMX1BSRUZJWCA9IFwiQC9cIjtcbmV4cG9ydCBjb25zdCBSRUZFUkVOQ0VfQ09ERUJMT0NLID0gXCJyZWZlcmVuY2VcIjtcbmV4cG9ydCBjb25zdCBFWFRFUk5BTF9SRUZFUkVOQ0VfUEFUSCA9IFwiL3BsdWdpbnMvY29kZS1zdHlsZXIvcmVmZXJlbmNlLWZpbGVzL1wiO1xuZXhwb3J0IGNvbnN0IEVYVEVSTkFMX1JFRkVSRU5DRV9DQUNIRSA9IEVYVEVSTkFMX1JFRkVSRU5DRV9QQVRIICsgXCJjYWNoZS5qc29uXCI7XG5leHBvcnQgY29uc3QgRVhURVJOQUxfUkVGRVJFTkNFX0lORk9fU1VGRklYID0gXCItaW5mby5qc29uXCI7XG5leHBvcnQgY29uc3QgR0lUX0lDT05TOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuXHRcImJyYW5jaFwiOiBcIiYjeGUwYTA7XCIsXG5cdFwidHJlZVwiOiBcIiYjeGVhZmM7XCIsIC8vIGNvbW1pdFxufTtcbmV4cG9ydCBjb25zdCBTSVRFX0lDT05TOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuXHRcImdpdGh1YlwiOiBcIiYjeGYwOWI7XCIsXG5cdFwiZ2l0bGFiXCI6IFwiJiN4ZTY1YztcIixcblx0XCJiaXRidWNrZXRcIjogXCImI3hlNzAzO1wiLFxuXHRcInNvdXJjZWZvcmdlXCI6IFwiJiN4ZjAyMzg7XCIsXG5cdFwiZ2VuZXJpY1wiOiBcIiYjeGYwNTlmO1wiLFxufTtcbmV4cG9ydCBjb25zdCBTVEFNUF9JQ09OID0gXCImI3hmMDBmMDtcIjtcbmV4cG9ydCBjb25zdCBVUERBVEVfSUNPTiA9IFwiJiN4ZTM0ODtcIjtcblxuY29uc3QgUFJJU01fTEFOR1VBR0VTOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSA9IHsgLy8gUHJpc20gTGFuZ3VhZ2VzOiBodHRwczovL3ByaXNtanMuY29tL3BsdWdpbnMvc2hvdy1sYW5ndWFnZS9cblx0Ly8gXCJub25lXCI6IFwiUGxhaW4gdGV4dFwiLCAvLyBOT1RFOiBPYnNpZGlhbiB1c2VzIHRoaXMgZm9yIGNvZGVibG9ja3Mgd2l0aG91dCBsYW5ndWFnZSBuYW1lc1xuXHRcInBsYWluXCI6IFwiUGxhaW4gdGV4dFwiLFxuXHRcInBsYWludGV4dFwiOiBcIlBsYWluIHRleHRcIixcblx0XCJ0ZXh0XCI6IFwiUGxhaW4gdGV4dFwiLFxuXHRcInR4dFwiOiBcIlBsYWluIHRleHRcIixcblx0XCJodG1sXCI6IFwiSFRNTFwiLFxuXHRcInhtbFwiOiBcIlhNTFwiLFxuXHRcInN2Z1wiOiBcIlNWR1wiLFxuXHRcIm1hdGhtbFwiOiBcIk1hdGhNTFwiLFxuXHRcInNzbWxcIjogXCJTU01MXCIsXG5cdFwicnNzXCI6IFwiUlNTXCIsXG5cdFwiY3NzXCI6IFwiQ1NTXCIsXG5cdFwiY2xpa2VcIjogXCJDLWxpa2VcIixcblx0XCJqc1wiOiBcIkphdmFTY3JpcHRcIixcblx0XCJhYmFwXCI6IFwiQUJBUFwiLFxuXHRcImFibmZcIjogXCJBQk5GXCIsXG5cdFwiYWxcIjogXCJBTFwiLFxuXHRcImFudGxyNFwiOiBcIkFOVExSNFwiLFxuXHRcImc0XCI6IFwiQU5UTFI0XCIsXG5cdFwiYXBhY2hlY29uZlwiOiBcIkFwYWNoZSBDb25maWd1cmF0aW9uXCIsXG5cdFwiYXBsXCI6IFwiQVBMXCIsXG5cdFwiYXFsXCI6IFwiQVFMXCIsXG5cdFwiaW5vXCI6IFwiQXJkdWlub1wiLFxuXHRcImFyZmZcIjogXCJBUkZGXCIsXG5cdFwiYXJtYXNtXCI6IFwiQVJNIEFzc2VtYmx5XCIsXG5cdFwiYXJtLWFzbVwiOiBcIkFSTSBBc3NlbWJseVwiLFxuXHRcImFydFwiOiBcIkFydHVyb1wiLFxuXHRcImFzY2lpZG9jXCI6IFwiQXNjaWlEb2NcIixcblx0XCJhZG9jXCI6IFwiQXNjaWlEb2NcIixcblx0XCJhc3BuZXRcIjogXCJBU1AuTkVUIChDIylcIixcblx0XCJhc202NTAyXCI6IFwiNjUwMiBBc3NlbWJseVwiLFxuXHRcImFzbWF0bWVsXCI6IFwiQXRtZWwgQVZSIEFzc2VtYmx5XCIsXG5cdFwiYXV0b2hvdGtleVwiOiBcIkF1dG9Ib3RrZXlcIixcblx0XCJhdXRvaXRcIjogXCJBdXRvSXRcIixcblx0XCJhdmlzeW50aFwiOiBcIkF2aVN5bnRoXCIsXG5cdFwiYXZzXCI6IFwiQXZpU3ludGhcIixcblx0XCJhdnJvLWlkbFwiOiBcIkF2cm8gSURMXCIsXG5cdFwiYXZkbFwiOiBcIkF2cm8gSURMXCIsXG5cdFwiYXdrXCI6IFwiQVdLXCIsXG5cdFwiZ2F3a1wiOiBcIkdBV0tcIixcblx0XCJzaFwiOiBcIlNoZWxsXCIsXG5cdFwiYmFzaWNcIjogXCJCQVNJQ1wiLFxuXHRcImJiY29kZVwiOiBcIkJCY29kZVwiLFxuXHRcImJialwiOiBcIkJCalwiLFxuXHRcImJuZlwiOiBcIkJORlwiLFxuXHRcInJibmZcIjogXCJSQk5GXCIsXG5cdFwiYnFuXCI6IFwiQlFOXCIsXG5cdFwiYnNsXCI6IFwiQlNMICgxQzpFbnRlcnByaXNlKVwiLFxuXHRcIm9zY3JpcHRcIjogXCJPbmVTY3JpcHRcIixcblx0XCJjc2hhcnBcIjogXCJDI1wiLFxuXHRcImNzXCI6IFwiQyNcIixcblx0XCJkb3RuZXRcIjogXCJDI1wiLFxuXHRcImNwcFwiOiBcIkMrK1wiLFxuXHRcImNmc2NyaXB0XCI6IFwiQ0ZTY3JpcHRcIixcblx0XCJjZmNcIjogXCJDRlNjcmlwdFwiLFxuXHRcImNpbFwiOiBcIkNJTFwiLFxuXHRcImNpbGtjXCI6IFwiQ2lsay9DXCIsXG5cdFwiY2lsay1jXCI6IFwiQ2lsay9DXCIsXG5cdFwiY2lsa2NwcFwiOiBcIkNpbGsvQysrXCIsXG5cdFwiY2lsay1jcHBcIjogXCJDaWxrL0MrK1wiLFxuXHRcImNpbGtcIjogXCJDaWxrL0MrK1wiLFxuXHRcImNtYWtlXCI6IFwiQ01ha2VcIixcblx0XCJjb2JvbFwiOiBcIkNPQk9MXCIsXG5cdFwiY29mZmVlXCI6IFwiQ29mZmVlU2NyaXB0XCIsXG5cdFwiY29uY1wiOiBcIkNvbmN1cm5hc1wiLFxuXHRcImNzcFwiOiBcIkNvbnRlbnQtU2VjdXJpdHktUG9saWN5XCIsXG5cdFwiY3NzLWV4dHJhc1wiOiBcIkNTUyBFeHRyYXNcIixcblx0XCJjc3ZcIjogXCJDU1ZcIixcblx0XCJjdWVcIjogXCJDVUVcIixcblx0XCJkYXRhd2VhdmVcIjogXCJEYXRhV2VhdmVcIixcblx0XCJkYXhcIjogXCJEQVhcIixcblx0XCJkamFuZ29cIjogXCJEamFuZ28vSmluamEyXCIsXG5cdFwiamluamEyXCI6IFwiRGphbmdvL0ppbmphMlwiLFxuXHRcImRucy16b25lLWZpbGVcIjogXCJETlMgem9uZSBmaWxlXCIsXG5cdFwiZG5zLXpvbmVcIjogXCJETlMgem9uZSBmaWxlXCIsXG5cdFwiZG9ja2VyZmlsZVwiOiBcIkRvY2tlclwiLFxuXHRcImRvdFwiOiBcIkRPVCAoR3JhcGh2aXopXCIsXG5cdFwiZ3ZcIjogXCJET1QgKEdyYXBodml6KVwiLFxuXHRcImVibmZcIjogXCJFQk5GXCIsXG5cdFwiZWRpdG9yY29uZmlnXCI6IFwiRWRpdG9yQ29uZmlnXCIsXG5cdFwiZWpzXCI6IFwiRUpTXCIsXG5cdFwiZXRsdWFcIjogXCJFbWJlZGRlZCBMdWEgdGVtcGxhdGluZ1wiLFxuXHRcImVyYlwiOiBcIkVSQlwiLFxuXHRcImV4Y2VsLWZvcm11bGFcIjogXCJFeGNlbCBGb3JtdWxhXCIsXG5cdFwieGxzeFwiOiBcIkV4Y2VsIEZvcm11bGFcIixcblx0XCJ4bHNcIjogXCJFeGNlbCBGb3JtdWxhXCIsXG5cdFwiZnNoYXJwXCI6IFwiRiNcIixcblx0XCJmaXJlc3RvcmUtc2VjdXJpdHktcnVsZXNcIjogXCJGaXJlc3RvcmUgc2VjdXJpdHkgcnVsZXNcIixcblx0XCJmdGxcIjogXCJGcmVlTWFya2VyIFRlbXBsYXRlIExhbmd1YWdlXCIsXG5cdFwiZ21sXCI6IFwiR2FtZU1ha2VyIExhbmd1YWdlXCIsXG5cdFwiZ2FtZW1ha2VybGFuZ3VhZ2VcIjogXCJHYW1lTWFrZXIgTGFuZ3VhZ2VcIixcblx0XCJnYXBcIjogXCJHQVAgKENBUylcIixcblx0XCJnY29kZVwiOiBcIkctY29kZVwiLFxuXHRcImdkc2NyaXB0XCI6IFwiR0RTY3JpcHRcIixcblx0XCJnZWRjb21cIjogXCJHRURDT01cIixcblx0XCJnZXR0ZXh0XCI6IFwiZ2V0dGV4dFwiLFxuXHRcInBvXCI6IFwiZ2V0dGV4dFwiLFxuXHRcImdsc2xcIjogXCJHTFNMXCIsXG5cdFwiZ25cIjogXCJHTlwiLFxuXHRcImduaVwiOiBcIkdOXCIsXG5cdFwibGlua2VyLXNjcmlwdFwiOiBcIkdOVSBMaW5rZXIgU2NyaXB0XCIsXG5cdFwibGRcIjogXCJHTlUgTGlua2VyIFNjcmlwdFwiLFxuXHRcImdvLW1vZHVsZVwiOiBcIkdvIG1vZHVsZVwiLFxuXHRcImdvLW1vZFwiOiBcIkdvIG1vZHVsZVwiLFxuXHRcImdyYXBocWxcIjogXCJHcmFwaFFMXCIsXG5cdFwiaGJzXCI6IFwiSGFuZGxlYmFyc1wiLFxuXHRcImhzXCI6IFwiSGFza2VsbFwiLFxuXHRcImhjbFwiOiBcIkhDTFwiLFxuXHRcImhsc2xcIjogXCJITFNMXCIsXG5cdFwiaHR0cFwiOiBcIkhUVFBcIixcblx0XCJocGtwXCI6IFwiSFRUUCBQdWJsaWMtS2V5LVBpbnNcIixcblx0XCJoc3RzXCI6IFwiSFRUUCBTdHJpY3QtVHJhbnNwb3J0LVNlY3VyaXR5XCIsXG5cdFwiaWNoaWdvamFtXCI6IFwiSWNoaWdvSmFtXCIsXG5cdFwiaWN1LW1lc3NhZ2UtZm9ybWF0XCI6IFwiSUNVIE1lc3NhZ2UgRm9ybWF0XCIsXG5cdFwiaWRyXCI6IFwiSWRyaXNcIixcblx0XCJpZ25vcmVcIjogXCIuaWdub3JlXCIsXG5cdFwiZ2l0aWdub3JlXCI6IFwiLmdpdGlnbm9yZVwiLFxuXHRcImhnaWdub3JlXCI6IFwiLmhnaWdub3JlXCIsXG5cdFwibnBtaWdub3JlXCI6IFwiLm5wbWlnbm9yZVwiLFxuXHRcImluZm9ybTdcIjogXCJJbmZvcm0gN1wiLFxuXHRcImphdmFkb2NcIjogXCJKYXZhRG9jXCIsXG5cdFwiamF2YWRvY2xpa2VcIjogXCJKYXZhRG9jLWxpa2VcIixcblx0XCJqYXZhc3RhY2t0cmFjZVwiOiBcIkphdmEgc3RhY2sgdHJhY2VcIixcblx0XCJqcVwiOiBcIkpRXCIsXG5cdFwianNkb2NcIjogXCJKU0RvY1wiLFxuXHRcImpzLWV4dHJhc1wiOiBcIkpTIEV4dHJhc1wiLFxuXHRcImpzb25cIjogXCJKU09OXCIsXG5cdFwid2VibWFuaWZlc3RcIjogXCJXZWIgQXBwIE1hbmlmZXN0XCIsXG5cdFwianNvbjVcIjogXCJKU09ONVwiLFxuXHRcImpzb25wXCI6IFwiSlNPTlBcIixcblx0XCJqc3N0YWNrdHJhY2VcIjogXCJKUyBzdGFjayB0cmFjZVwiLFxuXHRcImpzLXRlbXBsYXRlc1wiOiBcIkpTIFRlbXBsYXRlc1wiLFxuXHRcImtlZXBhbGl2ZWRcIjogXCJLZWVwYWxpdmVkIENvbmZpZ3VyZVwiLFxuXHRcImt0c1wiOiBcIktvdGxpbiBTY3JpcHRcIixcblx0XCJrdFwiOiBcIktvdGxpblwiLFxuXHRcImt1bWlyXCI6IFwiS3VNaXIgKFx1MDQxQVx1MDQ0M1x1MDQxQ1x1MDQzOFx1MDQ0MClcIixcblx0XCJrdW1cIjogXCJLdU1pciAoXHUwNDFBXHUwNDQzXHUwNDFDXHUwNDM4XHUwNDQwKVwiLFxuXHRcImxhdGV4XCI6IFwiTGFUZVhcIixcblx0XCJ0ZXhcIjogXCJUZVhcIixcblx0XCJjb250ZXh0XCI6IFwiQ29uVGVYdFwiLFxuXHRcImxpbHlwb25kXCI6IFwiTGlseVBvbmRcIixcblx0XCJseVwiOiBcIkxpbHlQb25kXCIsXG5cdFwiZW1hY3NcIjogXCJMaXNwXCIsXG5cdFwiZWxpc3BcIjogXCJMaXNwXCIsXG5cdFwiZW1hY3MtbGlzcFwiOiBcIkxpc3BcIixcblx0XCJsbHZtXCI6IFwiTExWTSBJUlwiLFxuXHRcImxvZ1wiOiBcIkxvZyBmaWxlXCIsXG5cdFwibG9sY29kZVwiOiBcIkxPTENPREVcIixcblx0XCJtYWdtYVwiOiBcIk1hZ21hIChDQVMpXCIsXG5cdFwibWRcIjogXCJNYXJrZG93blwiLFxuXHRcIm1hcmt1cC10ZW1wbGF0aW5nXCI6IFwiTWFya3VwIHRlbXBsYXRpbmdcIixcblx0XCJtYXRsYWJcIjogXCJNQVRMQUJcIixcblx0XCJtYXhzY3JpcHRcIjogXCJNQVhTY3JpcHRcIixcblx0XCJtZWxcIjogXCJNRUxcIixcblx0XCJtZXRhZm9udFwiOiBcIk1FVEFGT05UXCIsXG5cdFwibW9uZ29kYlwiOiBcIk1vbmdvREJcIixcblx0XCJtb29uXCI6IFwiTW9vblNjcmlwdFwiLFxuXHRcIm4xcWxcIjogXCJOMVFMXCIsXG5cdFwibjRqc1wiOiBcIk40SlNcIixcblx0XCJuNGpzZFwiOiBcIk40SlNcIixcblx0XCJuYW5kMnRldHJpcy1oZGxcIjogXCJOYW5kIFRvIFRldHJpcyBIRExcIixcblx0XCJuYW5pc2NyaXB0XCI6IFwiTmFuaW5vdmVsIFNjcmlwdFwiLFxuXHRcIm5hbmlcIjogXCJOYW5pbm92ZWwgU2NyaXB0XCIsXG5cdFwibmFzbVwiOiBcIk5BU01cIixcblx0XCJuZW9uXCI6IFwiTkVPTlwiLFxuXHRcIm5naW54XCI6IFwibmdpbnhcIixcblx0XCJuc2lzXCI6IFwiTlNJU1wiLFxuXHRcIm9iamVjdGl2ZWNcIjogXCJPYmplY3RpdmUtQ1wiLFxuXHRcIm9iamNcIjogXCJPYmplY3RpdmUtQ1wiLFxuXHRcIm9jYW1sXCI6IFwiT0NhbWxcIixcblx0XCJvcGVuY2xcIjogXCJPcGVuQ0xcIixcblx0XCJvcGVucWFzbVwiOiBcIk9wZW5RYXNtXCIsXG5cdFwicWFzbVwiOiBcIk9wZW5RYXNtXCIsXG5cdFwicGFyaWdwXCI6IFwiUEFSSS9HUFwiLFxuXHRcIm9iamVjdHBhc2NhbFwiOiBcIk9iamVjdCBQYXNjYWxcIixcblx0XCJwc2xcIjogXCJQQVRST0wgU2NyaXB0aW5nIExhbmd1YWdlXCIsXG5cdFwicGNheGlzXCI6IFwiUEMtQXhpc1wiLFxuXHRcInB4XCI6IFwiUEMtQXhpc1wiLFxuXHRcInBlb3BsZWNvZGVcIjogXCJQZW9wbGVDb2RlXCIsXG5cdFwicGNvZGVcIjogXCJQZW9wbGVDb2RlXCIsXG5cdFwicGhwXCI6IFwiUEhQXCIsXG5cdFwicGhwZG9jXCI6IFwiUEhQRG9jXCIsXG5cdFwicGhwLWV4dHJhc1wiOiBcIlBIUCBFeHRyYXNcIixcblx0XCJwbGFudC11bWxcIjogXCJQbGFudFVNTFwiLFxuXHRcInBsYW50dW1sXCI6IFwiUGxhbnRVTUxcIixcblx0XCJwbHNxbFwiOiBcIlBML1NRTFwiLFxuXHRcInBvd2VycXVlcnlcIjogXCJQb3dlclF1ZXJ5XCIsXG5cdFwicHFcIjogXCJQb3dlclF1ZXJ5XCIsXG5cdFwibXNjcmlwdFwiOiBcIlBvd2VyUXVlcnlcIixcblx0XCJwb3dlcnNoZWxsXCI6IFwiUG93ZXJTaGVsbFwiLFxuXHRcInByb21xbFwiOiBcIlByb21RTFwiLFxuXHRcInByb3BlcnRpZXNcIjogXCIucHJvcGVydGllc1wiLFxuXHRcInByb3RvYnVmXCI6IFwiUHJvdG9jb2wgQnVmZmVyc1wiLFxuXHRcInB1cmViYXNpY1wiOiBcIlB1cmVCYXNpY1wiLFxuXHRcInBiZmFzbVwiOiBcIlB1cmVCYXNpY1wiLFxuXHRcInB1cnNcIjogXCJQdXJlU2NyaXB0XCIsXG5cdFwicHlcIjogXCJQeXRob25cIixcblx0XCJxc2hhcnBcIjogXCJRI1wiLFxuXHRcInFzXCI6IFwiUSNcIixcblx0XCJxXCI6IFwiUSAoa2RiKyBkYXRhYmFzZSlcIixcblx0XCJxbWxcIjogXCJRTUxcIixcblx0XCJya3RcIjogXCJSYWNrZXRcIixcblx0XCJjc2h0bWxcIjogXCJSYXpvciBDI1wiLFxuXHRcInJhem9yXCI6IFwiUmF6b3IgQyNcIixcblx0XCJqc3hcIjogXCJSZWFjdCBKU1hcIixcblx0XCJ0c3hcIjogXCJSZWFjdCBUU1hcIixcblx0XCJyZW5weVwiOiBcIlJlbidweVwiLFxuXHRcInJweVwiOiBcIlJlbidweVwiLFxuXHRcInJlc1wiOiBcIlJlU2NyaXB0XCIsXG5cdFwicmVzdFwiOiBcInJlU1QgKHJlU3RydWN0dXJlZFRleHQpXCIsXG5cdFwicm9ib3RmcmFtZXdvcmtcIjogXCJSb2JvdCBGcmFtZXdvcmtcIixcblx0XCJyb2JvdFwiOiBcIlJvYm90IEZyYW1ld29ya1wiLFxuXHRcInJiXCI6IFwiUnVieVwiLFxuXHRcInNhc1wiOiBcIlNBU1wiLFxuXHRcInNhc3NcIjogXCJTYXNzIChTYXNzKVwiLFxuXHRcInNjc3NcIjogXCJTYXNzIChTQ1NTKVwiLFxuXHRcInNoZWxsLXNlc3Npb25cIjogXCJTaGVsbCBzZXNzaW9uXCIsXG5cdFwic2gtc2Vzc2lvblwiOiBcIlNoZWxsIHNlc3Npb25cIixcblx0XCJzaGVsbHNlc3Npb25cIjogXCJTaGVsbCBzZXNzaW9uXCIsXG5cdFwic21sXCI6IFwiU01MXCIsXG5cdFwic21sbmpcIjogXCJTTUwvTkpcIixcblx0XCJzb2xpZGl0eVwiOiBcIlNvbGlkaXR5IChFdGhlcmV1bSlcIixcblx0XCJzb2xcIjogXCJTb2xpZGl0eSAoRXRoZXJldW0pXCIsXG5cdFwic29sdXRpb24tZmlsZVwiOiBcIlNvbHV0aW9uIGZpbGVcIixcblx0XCJzbG5cIjogXCJTb2x1dGlvbiBmaWxlXCIsXG5cdFwic295XCI6IFwiU295IChDbG9zdXJlIFRlbXBsYXRlKVwiLFxuXHRcInNwYXJxbFwiOiBcIlNQQVJRTFwiLFxuXHRcInJxXCI6IFwiU1BBUlFMXCIsXG5cdFwic3BsdW5rLXNwbFwiOiBcIlNwbHVuayBTUExcIixcblx0XCJzcWZcIjogXCJTUUY6IFN0YXR1cyBRdW8gRnVuY3Rpb24gKEFybWEgMylcIixcblx0XCJzcWxcIjogXCJTUUxcIixcblx0XCJzdGF0YVwiOiBcIlN0YXRhIEFkb1wiLFxuXHRcImllY3N0XCI6IFwiU3RydWN0dXJlZCBUZXh0IChJRUMgNjExMzEtMylcIixcblx0XCJzdXBlcmNvbGxpZGVyXCI6IFwiU3VwZXJDb2xsaWRlclwiLFxuXHRcInNjbGFuZ1wiOiBcIlN1cGVyQ29sbGlkZXJcIixcblx0XCJzeXN0ZW1kXCI6IFwiU3lzdGVtZCBjb25maWd1cmF0aW9uIGZpbGVcIixcblx0XCJ0NC10ZW1wbGF0aW5nXCI6IFwiVDQgdGVtcGxhdGluZ1wiLFxuXHRcInQ0LWNzXCI6IFwiVDQgVGV4dCBUZW1wbGF0ZXMgKEMjKVwiLFxuXHRcInQ0XCI6IFwiVDQgVGV4dCBUZW1wbGF0ZXMgKEMjKVwiLFxuXHRcInQ0LXZiXCI6IFwiVDQgVGV4dCBUZW1wbGF0ZXMgKFZCKVwiLFxuXHRcInRhcFwiOiBcIlRBUFwiLFxuXHRcInR0MlwiOiBcIlRlbXBsYXRlIFRvb2xraXQgMlwiLFxuXHRcInRvbWxcIjogXCJUT01MXCIsXG5cdFwidHJpY2tsZVwiOiBcInRyaWNrbGVcIixcblx0XCJ0cm95XCI6IFwidHJveVwiLFxuXHRcInRyaWdcIjogXCJUcmlHXCIsXG5cdFwidHNcIjogXCJUeXBlU2NyaXB0XCIsXG5cdFwidHNjb25maWdcIjogXCJUU0NvbmZpZ1wiLFxuXHRcInVzY3JpcHRcIjogXCJVbnJlYWxTY3JpcHRcIixcblx0XCJ1Y1wiOiBcIlVucmVhbFNjcmlwdFwiLFxuXHRcInVvcmF6b3JcIjogXCJVTyBSYXpvciBTY3JpcHRcIixcblx0XCJ1cmlcIjogXCJVUklcIixcblx0XCJ1cmxcIjogXCJVUkxcIixcblx0XCJ2Ym5ldFwiOiBcIlZCLk5ldFwiLFxuXHRcInZoZGxcIjogXCJWSERMXCIsXG5cdFwidmltXCI6IFwidmltXCIsXG5cdFwidmlzdWFsLWJhc2ljXCI6IFwiVmlzdWFsIEJhc2ljXCIsXG5cdFwidmJhXCI6IFwiVkJBXCIsXG5cdFwidmJcIjogXCJWaXN1YWwgQmFzaWNcIixcblx0XCJ3YXNtXCI6IFwiV2ViQXNzZW1ibHlcIixcblx0XCJ3ZWItaWRsXCI6IFwiV2ViIElETFwiLFxuXHRcIndlYmlkbFwiOiBcIldlYiBJRExcIixcblx0XCJ3Z3NsXCI6IFwiV0dTTFwiLFxuXHRcIndpa2lcIjogXCJXaWtpIG1hcmt1cFwiLFxuXHRcIndvbGZyYW1cIjogXCJXb2xmcmFtIGxhbmd1YWdlXCIsXG5cdFwibmJcIjogXCJNYXRoZW1hdGljYSBOb3RlYm9va1wiLFxuXHRcIndsXCI6IFwiV29sZnJhbSBsYW5ndWFnZVwiLFxuXHRcInhlb3JhY3ViZVwiOiBcIlhlb3JhQ3ViZVwiLFxuXHRcInhtbC1kb2NcIjogXCJYTUwgZG9jICgubmV0KVwiLFxuXHRcInhvam9cIjogXCJYb2pvIChSRUFMYmFzaWMpXCIsXG5cdFwieHF1ZXJ5XCI6IFwiWFF1ZXJ5XCIsXG5cdFwieWFtbFwiOiBcIllBTUxcIixcblx0XCJ5bWxcIjogXCJZQU1MXCIsXG5cdFwieWFuZ1wiOiBcIllBTkdcIixcbn07XG5jb25zdCBNQU5VQUxfUFJJU01fTEFOR1VBR0VTOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSA9IHsgLy8gTWFudWFsbHkgZ2VuZXJhdGVkIGxpc3QgZnJvbSBodHRwczovL3ByaXNtanMuY29tLyAgLSAgMjk3IGxhbmd1YWdlc1xuXHRcImNzc1wiOlwiQ1NTXCIsXG5cdFwiY2xpa2VcIjpcIkMtbGlrZVwiLFxuXHRcImphdmFzY3JpcHRcIjpcIkphdmFTY3JpcHRcIixcblx0XCJqc1wiOlwiSmF2YVNjcmlwdFwiLFxuXHRcImFiYXBcIjpcIkFCQVBcIixcblx0XCJhYm5mXCI6XCJBQk5GXCIsXG5cdFwiYWN0aW9uc2NyaXB0XCI6XCJBY3Rpb25TY3JpcHRcIixcblx0XCJhZGFcIjpcIkFkYVwiLFxuXHRcImFnZGFcIjpcIkFnZGFcIixcblx0XCJhbFwiOlwiQUxcIixcblx0XCJhbnRscjRcIjpcIkFOVExSNFwiLFxuXHRcImc0XCI6XCJBTlRMUjRcIixcblx0XCJhcGFjaGVjb25mXCI6XCJBcGFjaGUgQ29uZmlndXJhdGlvblwiLFxuXHRcImFwZXhcIjpcIkFwZXhcIixcblx0XCJhcGxcIjpcIkFQTFwiLFxuXHRcImFwcGxlc2NyaXB0XCI6XCJBcHBsZVNjcmlwdFwiLFxuXHRcImFxbFwiOlwiQVFMXCIsXG5cdFwiYXJkdWlub1wiOlwiQXJkdWlub1wiLFxuXHRcImlub1wiOlwiQXJkdWlub1wiLFxuXHRcImFyZmZcIjpcIkFSRkZcIixcblx0XCJhcm1hc21cIjpcIkFSTSBBc3NlbWJseVwiLFxuXHRcImFybS1hc21cIjpcIkFSTSBBc3NlbWJseVwiLFxuXHRcImFydHVyb1wiOlwiQXJ0dXJvXCIsXG5cdFwiYXJ0XCI6XCJBcnR1cm9cIixcblx0XCJhc2NpaWRvY1wiOlwiQXNjaWlEb2NcIixcblx0XCJhZG9jXCI6XCJBc2NpaURvY1wiLFxuXHRcImFzcG5ldFwiOlwiQVNQLk5FVCAoQyMpXCIsXG5cdFwiYXNtNjUwMlwiOlwiNjUwMiBBc3NlbWJseVwiLFxuXHRcImFzbWF0bWVsXCI6XCJBdG1lbCBBVlIgQXNzZW1ibHlcIixcblx0XCJhdXRvaG90a2V5XCI6XCJBdXRvSG90a2V5XCIsXG5cdFwiYXV0b2l0XCI6XCJBdXRvSXRcIixcblx0XCJhdmlzeW50aFwiOlwiQXZpU3ludGhcIixcblx0XCJhdnNcIjpcIkF2aVN5bnRoXCIsXG5cdFwiYXZyby1pZGxcIjpcIkF2cm8gSURMXCIsXG5cdFwiYXZkbFwiOlwiQXZybyBJRExcIixcblx0XCJhd2tcIjpcIkFXS1wiLFxuXHRcImdhd2tcIjpcIkdBV0tcIixcblx0XCJiYXNoXCI6XCJCYXNoXCIsXG5cdFwic2hcIjpcIlNoZWxsXCIsXG5cdFwic2hlbGxcIjpcIlNoZWxsXCIsXG5cdFwiYmFzaWNcIjpcIkJBU0lDXCIsXG5cdFwiYmF0Y2hcIjpcIkJhdGNoXCIsXG5cdFwiYmJjb2RlXCI6XCJCQmNvZGVcIixcblx0XCJzaG9ydGNvZGVcIjpcIkJCY29kZVwiLFxuXHRcImJialwiOlwiQkJqXCIsXG5cdFwiYmlyYlwiOlwiQmlyYlwiLFxuXHRcImJpc29uXCI6XCJCaXNvblwiLFxuXHRcImJuZlwiOlwiQk5GXCIsXG5cdFwicmJuZlwiOlwiQk5GXCIsXG5cdFwiYnFuXCI6XCJCUU5cIixcblx0XCJicmFpbmZ1Y2tcIjpcIkJyYWluZnVja1wiLFxuXHRcImJyaWdodHNjcmlwdFwiOlwiQnJpZ2h0U2NyaXB0XCIsXG5cdFwiYnJvXCI6XCJCcm9cIixcblx0XCJic2xcIjpcIkJTTCAoMUMpXCIsXG5cdFwib3NjcmlwdFwiOlwiQlNMICgxQylcIixcblx0XCJjXCI6XCJDXCIsXG5cdFwiY3NoYXJwXCI6XCJDI1wiLFxuXHRcImNzXCI6XCJDI1wiLFxuXHRcImRvdG5ldFwiOlwiQyNcIixcblx0XCJjcHBcIjpcIkMrK1wiLFxuXHRcImNmc2NyaXB0XCI6XCJDRlNjcmlwdFwiLFxuXHRcImNmY1wiOlwiQ0ZTY3JpcHRcIixcblx0XCJjaGFpc2NyaXB0XCI6XCJDaGFpU2NyaXB0XCIsXG5cdFwiY2lsXCI6XCJDSUxcIixcblx0XCJjaWxrY1wiOlwiQ2lsay9DXCIsXG5cdFwiY2lsay1jXCI6XCJDaWxrL0NcIixcblx0XCJjaWxrY3BwXCI6XCJDaWxrL0MrK1wiLFxuXHRcImNpbGstY3BwXCI6XCJDaWxrL0MrK1wiLFxuXHRcImNpbGtcIjpcIkNpbGsvQysrXCIsXG5cdFwiY2xvanVyZVwiOlwiQ2xvanVyZVwiLFxuXHRcImNtYWtlXCI6XCJDTWFrZVwiLFxuXHRcImNvYm9sXCI6XCJDT0JPTFwiLFxuXHRcImNvZmZlZXNjcmlwdFwiOlwiQ29mZmVlU2NyaXB0XCIsXG5cdFwiY29mZmVlXCI6XCJDb2ZmZWVTY3JpcHRcIixcblx0XCJjb25jdXJuYXNcIjpcIkNvbmN1cm5hc1wiLFxuXHRcImNvbmNcIjpcIkNvbmN1cm5hc1wiLFxuXHRcImNzcFwiOlwiQ29udGVudC1TZWN1cml0eS1Qb2xpY3lcIixcblx0XCJjb29rbGFuZ1wiOlwiQ29va2xhbmdcIixcblx0XCJjb3FcIjpcIkNvcVwiLFxuXHRcImNyeXN0YWxcIjpcIkNyeXN0YWxcIixcblx0XCJjc3MtZXh0cmFzXCI6XCJDU1MgRXh0cmFzXCIsXG5cdFwiY3N2XCI6XCJDU1ZcIixcblx0XCJjdWVcIjpcIkNVRVwiLFxuXHRcImN5cGhlclwiOlwiQ3lwaGVyXCIsXG5cdFwiZFwiOlwiRFwiLFxuXHRcImRhcnRcIjpcIkRhcnRcIixcblx0XCJkYXRhd2VhdmVcIjpcIkRhdGFXZWF2ZVwiLFxuXHRcImRheFwiOlwiREFYXCIsXG5cdFwiZGhhbGxcIjpcIkRoYWxsXCIsXG5cdFwiZGlmZlwiOlwiRGlmZlwiLFxuXHRcImRqYW5nb1wiOlwiRGphbmdvL0ppbmphMlwiLFxuXHRcImppbmphMlwiOlwiRGphbmdvL0ppbmphMlwiLFxuXHRcImRucy16b25lLWZpbGVcIjpcIkROUyB6b25lIGZpbGVcIixcblx0XCJkbnMtem9uZVwiOlwiRE5TIHpvbmUgZmlsZVwiLFxuXHRcImRvY2tlclwiOlwiRG9ja2VyXCIsXG5cdFwiZG9ja2VyZmlsZVwiOlwiRG9ja2VyXCIsXG5cdFwiZG90XCI6XCJET1QgKEdyYXBodml6KVwiLFxuXHRcImd2XCI6XCJET1QgKEdyYXBodml6KVwiLFxuXHRcImVibmZcIjpcIkVCTkZcIixcblx0XCJlZGl0b3Jjb25maWdcIjpcIkVkaXRvckNvbmZpZ1wiLFxuXHRcImVpZmZlbFwiOlwiRWlmZmVsXCIsXG5cdFwiZWpzXCI6XCJFSlNcIixcblx0XCJldGFcIjpcIkVKU1wiLFxuXHRcImVsaXhpclwiOlwiRWxpeGlyXCIsXG5cdFwiZWxtXCI6XCJFbG1cIixcblx0XCJldGx1YVwiOlwiRW1iZWRkZWQgTHVhIHRlbXBsYXRpbmdcIixcblx0XCJlcmJcIjpcIkVSQlwiLFxuXHRcImVybGFuZ1wiOlwiRXJsYW5nXCIsXG5cdFwiZXhjZWwtZm9ybXVsYVwiOlwiRXhjZWwgRm9ybXVsYVwiLFxuXHRcInhsc3hcIjpcIkV4Y2VsIEZvcm11bGFcIixcblx0XCJ4bHNcIjpcIkV4Y2VsIEZvcm11bGFcIixcblx0XCJmc2hhcnBcIjpcIkYjXCIsXG5cdFwiZmFjdG9yXCI6XCJGYWN0b3JcIixcblx0XCJmYWxzZVwiOlwiRmFsc2VcIixcblx0XCJmaXJlc3RvcmUtc2VjdXJpdHktcnVsZXNcIjpcIkZpcmVzdG9yZSBzZWN1cml0eSBydWxlc1wiLFxuXHRcImZsb3dcIjpcIkZsb3dcIixcblx0XCJmb3J0cmFuXCI6XCJGb3J0cmFuXCIsXG5cdFwiZnRsXCI6XCJGcmVlTWFya2VyIFRlbXBsYXRlIExhbmd1YWdlXCIsXG5cdFwiZ21sXCI6XCJHYW1lTWFrZXIgTGFuZ3VhZ2VcIixcblx0XCJnYW1lbWFrZXJsYW5ndWFnZVwiOlwiR2FtZU1ha2VyIExhbmd1YWdlXCIsXG5cdFwiZ2FwXCI6XCJHQVAgKENBUylcIixcblx0XCJnY29kZVwiOlwiRy1jb2RlXCIsXG5cdFwiZ2RzY3JpcHRcIjpcIkdEU2NyaXB0XCIsXG5cdFwiZ2VkY29tXCI6XCJHRURDT01cIixcblx0XCJnZXR0ZXh0XCI6XCJnZXR0ZXh0XCIsXG5cdFwicG9cIjpcImdldHRleHRcIixcblx0XCJnaGVya2luXCI6XCJHaGVya2luXCIsXG5cdFwiZ2l0XCI6XCJHaXRcIixcblx0XCJnbHNsXCI6XCJHTFNMXCIsXG5cdFwiZ25cIjpcIkdOXCIsXG5cdFwiZ25pXCI6XCJHTlwiLFxuXHRcImxpbmtlci1zY3JpcHRcIjpcIkdOVSBMaW5rZXIgU2NyaXB0XCIsXG5cdFwibGRcIjpcIkdOVSBMaW5rZXIgU2NyaXB0XCIsXG5cdFwiZ29cIjpcIkdvXCIsXG5cdFwiZ28tbW9kdWxlXCI6XCJHbyBtb2R1bGVcIixcblx0XCJnby1tb2RcIjpcIkdvIG1vZHVsZVwiLFxuXHRcImdyYWRsZVwiOlwiR3JhZGxlXCIsXG5cdFwiZ3JhcGhxbFwiOlwiR3JhcGhRTFwiLFxuXHRcImdyb292eVwiOlwiR3Jvb3Z5XCIsXG5cdFwiaGFtbFwiOlwiSGFtbFwiLFxuXHRcImhhbmRsZWJhcnNcIjpcIkhhbmRsZWJhcnNcIixcblx0XCJoYnNcIjpcIkhhbmRsZWJhcnNcIixcblx0XCJtdXN0YWNoZVwiOlwiSGFuZGxlYmFyc1wiLFxuXHRcImhhc2tlbGxcIjpcIkhhc2tlbGxcIixcblx0XCJoc1wiOlwiSGFza2VsbFwiLFxuXHRcImhheGVcIjpcIkhheGVcIixcblx0XCJoY2xcIjpcIkhDTFwiLFxuXHRcImhsc2xcIjpcIkhMU0xcIixcblx0XCJob29uXCI6XCJIb29uXCIsXG5cdFwiaHR0cFwiOlwiSFRUUFwiLFxuXHRcImhwa3BcIjpcIkhUVFAgUHVibGljLUtleS1QaW5zXCIsXG5cdFwiaHN0c1wiOlwiSFRUUCBTdHJpY3QtVHJhbnNwb3J0LVNlY3VyaXR5XCIsXG5cdFwiaWNoaWdvamFtXCI6XCJJY2hpZ29KYW1cIixcblx0XCJpY29uXCI6XCJJY29uXCIsXG5cdFwiaWN1LW1lc3NhZ2UtZm9ybWF0XCI6XCJJQ1UgTWVzc2FnZSBGb3JtYXRcIixcblx0XCJpZHJpc1wiOlwiSWRyaXNcIixcblx0XCJpZHJcIjpcIklkcmlzXCIsXG5cdFwiaW5mb3JtN1wiOlwiSW5mb3JtIDdcIixcblx0XCJpbmlcIjpcIkluaVwiLFxuXHRcImlvXCI6XCJJb1wiLFxuXHRcImpcIjpcIkpcIixcblx0XCJqYXZhXCI6XCJKYXZhXCIsXG5cdFwiamF2YWRvY1wiOlwiSmF2YURvY1wiLFxuXHRcImphdmFkb2NsaWtlXCI6XCJKYXZhRG9jLWxpa2VcIixcblx0XCJqYXZhc3RhY2t0cmFjZVwiOlwiSmF2YSBzdGFjayB0cmFjZVwiLFxuXHRcImpleGxcIjpcIkpleGxcIixcblx0XCJqb2xpZVwiOlwiSm9saWVcIixcblx0XCJqcVwiOlwiSlFcIixcblx0XCJqc2RvY1wiOlwiSlNEb2NcIixcblx0XCJqcy1leHRyYXNcIjpcIkpTIEV4dHJhc1wiLFxuXHRcImpzb25cIjpcIkpTT05cIixcblx0XCJ3ZWJtYW5pZmVzdFwiOlwiSlNPTlwiLFxuXHRcImpzb241XCI6XCJKU09ONVwiLFxuXHRcImpzb25wXCI6XCJKU09OUFwiLFxuXHRcImpzc3RhY2t0cmFjZVwiOlwiSlMgc3RhY2sgdHJhY2VcIixcblx0XCJqcy10ZW1wbGF0ZXNcIjpcIkpTIFRlbXBsYXRlc1wiLFxuXHRcImp1bGlhXCI6XCJKdWxpYVwiLFxuXHRcImtlZXBhbGl2ZWRcIjpcIktlZXBhbGl2ZWQgQ29uZmlndXJlXCIsXG5cdFwia2V5bWFuXCI6XCJLZXltYW5cIixcblx0XCJrb3RsaW5cIjpcIktvdGxpblwiLFxuXHRcImt0XCI6XCJLb3RsaW5cIixcblx0XCJrdHNcIjpcIktvdGxpblwiLFxuXHRcImt1bWlyXCI6XCJLdU1pciAoXHUwNDFBXHUwNDQzXHUwNDFDXHUwNDM4XHUwNDQwKVwiLFxuXHRcImt1bVwiOlwiS3VNaXIgKFx1MDQxQVx1MDQ0M1x1MDQxQ1x1MDQzOFx1MDQ0MClcIixcblx0XCJrdXN0b1wiOlwiS3VzdG9cIixcblx0XCJsYXRleFwiOlwiTGFUZVhcIixcblx0XCJ0ZXhcIjpcIkxhVGVYXCIsXG5cdFwiY29udGV4dFwiOlwiTGFUZVhcIixcblx0XCJsYXR0ZVwiOlwiTGF0dGVcIixcblx0XCJsZXNzXCI6XCJMZXNzXCIsXG5cdFwibGlseXBvbmRcIjpcIkxpbHlQb25kXCIsXG5cdFwibHlcIjpcIkxpbHlQb25kXCIsXG5cdFwibGlxdWlkXCI6XCJMaXF1aWRcIixcblx0XCJsaXNwXCI6XCJMaXNwXCIsXG5cdFwiZW1hY3NcIjpcIkxpc3BcIixcblx0XCJlbGlzcFwiOlwiTGlzcFwiLFxuXHRcImVtYWNzLWxpc3BcIjpcIkxpc3BcIixcblx0XCJsaXZlc2NyaXB0XCI6XCJMaXZlU2NyaXB0XCIsXG5cdFwibGx2bVwiOlwiTExWTSBJUlwiLFxuXHRcImxvZ1wiOlwiTG9nIGZpbGVcIixcblx0XCJsb2xjb2RlXCI6XCJMT0xDT0RFXCIsXG5cdFwibHVhXCI6XCJMdWFcIixcblx0XCJtYWdtYVwiOlwiTWFnbWEgKENBUylcIixcblx0XCJtYWtlZmlsZVwiOlwiTWFrZWZpbGVcIixcblx0XCJtYXJrZG93blwiOlwiTWFya2Rvd25cIixcblx0XCJtZFwiOlwiTWFya2Rvd25cIixcblx0XCJtYXJrdXAtdGVtcGxhdGluZ1wiOlwiTWFya3VwIHRlbXBsYXRpbmdcIixcblx0XCJtYXRhXCI6XCJNYXRhXCIsXG5cdFwibWF0bGFiXCI6XCJNQVRMQUJcIixcblx0XCJtYXhzY3JpcHRcIjpcIk1BWFNjcmlwdFwiLFxuXHRcIm1lbFwiOlwiTUVMXCIsXG5cdFwibWVybWFpZFwiOlwiTWVybWFpZFwiLFxuXHRcIm1ldGFmb250XCI6XCJNRVRBRk9OVFwiLFxuXHRcIm1pemFyXCI6XCJNaXphclwiLFxuXHRcIm1vbmdvZGJcIjpcIk1vbmdvREJcIixcblx0XCJtb25rZXlcIjpcIk1vbmtleVwiLFxuXHRcIm1vb25zY3JpcHRcIjpcIk1vb25TY3JpcHRcIixcblx0XCJtb29uXCI6XCJNb29uU2NyaXB0XCIsXG5cdFwibjFxbFwiOlwiTjFRTFwiLFxuXHRcIm40anNcIjpcIk40SlNcIixcblx0XCJuNGpzZFwiOlwiTjRKU1wiLFxuXHRcIm5hbmQydGV0cmlzLWhkbFwiOlwiTmFuZCBUbyBUZXRyaXMgSERMXCIsXG5cdFwibmFuaXNjcmlwdFwiOlwiTmFuaW5vdmVsIFNjcmlwdFwiLFxuXHRcIm5hbmlcIjpcIk5hbmlub3ZlbCBTY3JpcHRcIixcblx0XCJuYXNtXCI6XCJOQVNNXCIsXG5cdFwibmVvblwiOlwiTkVPTlwiLFxuXHRcIm5ldm9kXCI6XCJOZXZvZFwiLFxuXHRcIm5naW54XCI6XCJuZ2lueFwiLFxuXHRcIm5pbVwiOlwiTmltXCIsXG5cdFwibml4XCI6XCJOaXhcIixcblx0XCJuc2lzXCI6XCJOU0lTXCIsXG5cdFwib2JqZWN0aXZlY1wiOlwiT2JqZWN0aXZlLUNcIixcblx0XCJvYmpjXCI6XCJPYmplY3RpdmUtQ1wiLFxuXHRcIm9jYW1sXCI6XCJPQ2FtbFwiLFxuXHRcIm9kaW5cIjpcIk9kaW5cIixcblx0XCJvcGVuY2xcIjpcIk9wZW5DTFwiLFxuXHRcIm9wZW5xYXNtXCI6XCJPcGVuUWFzbVwiLFxuXHRcInFhc21cIjpcIk9wZW5RYXNtXCIsXG5cdFwib3pcIjpcIk96XCIsXG5cdFwicGFyaWdwXCI6XCJQQVJJL0dQXCIsXG5cdFwicGFyc2VyXCI6XCJQYXJzZXJcIixcblx0XCJwYXNjYWxcIjpcIlBhc2NhbFwiLFxuXHRcInBhc2NhbGlnb1wiOlwiUGFzY2FsaWdvXCIsXG5cdFwicHNsXCI6XCJQQVRST0wgU2NyaXB0aW5nIExhbmd1YWdlXCIsXG5cdFwicGNheGlzXCI6XCJQQy1BeGlzXCIsXG5cdFwicHhcIjpcIlBDLUF4aXNcIixcblx0XCJwZW9wbGVjb2RlXCI6XCJQZW9wbGVDb2RlXCIsXG5cdFwicGNvZGVcIjpcIlBlb3BsZUNvZGVcIixcblx0XCJwZXJsXCI6XCJQZXJsXCIsXG5cdFwicGhwXCI6XCJQSFBcIixcblx0XCJwaHBkb2NcIjpcIlBIUERvY1wiLFxuXHRcInBocC1leHRyYXNcIjpcIlBIUCBFeHRyYXNcIixcblx0XCJwbGFudC11bWxcIjpcIlBsYW50VU1MXCIsXG5cdFwicGxhbnR1bWxcIjpcIlBsYW50VU1MXCIsXG5cdFwicGxzcWxcIjpcIlBML1NRTFwiLFxuXHRcInBvd2VycXVlcnlcIjpcIlBvd2VyUXVlcnlcIixcblx0XCJwcVwiOlwiUG93ZXJRdWVyeVwiLFxuXHRcIm1zY3JpcHRcIjpcIlBvd2VyUXVlcnlcIixcblx0XCJwb3dlcnNoZWxsXCI6XCJQb3dlclNoZWxsXCIsXG5cdFwicHJvY2Vzc2luZ1wiOlwiUHJvY2Vzc2luZ1wiLFxuXHRcInByb2xvZ1wiOlwiUHJvbG9nXCIsXG5cdFwicHJvbXFsXCI6XCJQcm9tUUxcIixcblx0XCJwcm9wZXJ0aWVzXCI6XCIucHJvcGVydGllc1wiLFxuXHRcInByb3RvYnVmXCI6XCJQcm90b2NvbCBCdWZmZXJzXCIsXG5cdFwicHVnXCI6XCJQdWdcIixcblx0XCJwdXBwZXRcIjpcIlB1cHBldFwiLFxuXHRcInB1cmVcIjpcIlB1cmVcIixcblx0XCJwdXJlYmFzaWNcIjpcIlB1cmVCYXNpY1wiLFxuXHRcInBiZmFzbVwiOlwiUHVyZUJhc2ljXCIsXG5cdFwicHVyZXNjcmlwdFwiOlwiUHVyZVNjcmlwdFwiLFxuXHRcInB1cnNcIjpcIlB1cmVTY3JpcHRcIixcblx0XCJweXRob25cIjpcIlB5dGhvblwiLFxuXHRcInB5XCI6XCJQeXRob25cIixcblx0XCJxc2hhcnBcIjpcIlEjXCIsXG5cdFwicXNcIjpcIlEjXCIsXG5cdFwicVwiOlwiUSAoa2RiKyBkYXRhYmFzZSlcIixcblx0XCJxbWxcIjpcIlFNTFwiLFxuXHRcInFvcmVcIjpcIlFvcmVcIixcblx0XCJyXCI6XCJSXCIsXG5cdFwicmFja2V0XCI6XCJSYWNrZXRcIixcblx0XCJya3RcIjpcIlJhY2tldFwiLFxuXHRcImNzaHRtbFwiOlwiUmF6b3IgQyNcIixcblx0XCJqc3hcIjpcIlJlYWN0IEpTWFwiLFxuXHRcInRzeFwiOlwiUmVhY3QgVFNYXCIsXG5cdFwicmVhc29uXCI6XCJSZWFzb25cIixcblx0XCJyZWdleFwiOlwiUmVnZXhcIixcblx0XCJyZWdvXCI6XCJSZWdvXCIsXG5cdFwicmVucHlcIjpcIlJlbidweVwiLFxuXHRcInJweVwiOlwiUmVuJ3B5XCIsXG5cdFwicmVzY3JpcHRcIjpcIlJlU2NyaXB0XCIsXG5cdFwicmVzXCI6XCJSZVNjcmlwdFwiLFxuXHRcInJlc3RcIjpcInJlU1QgKHJlU3RydWN0dXJlZFRleHQpXCIsXG5cdFwicmlwXCI6XCJSaXBcIixcblx0XCJyb2JvY29uZlwiOlwiUm9ib2NvbmZcIixcblx0XCJyb2JvdGZyYW1ld29ya1wiOlwiUm9ib3QgRnJhbWV3b3JrXCIsXG5cdFwicm9ib3RcIjpcIlJvYm90IEZyYW1ld29ya1wiLFxuXHRcInJ1YnlcIjpcIlJ1YnlcIixcblx0XCJyYlwiOlwiUnVieVwiLFxuXHRcInJ1c3RcIjpcIlJ1c3RcIixcblx0XCJzYXNcIjpcIlNBU1wiLFxuXHRcInNhc3NcIjpcIlNhc3MgKFNhc3MpXCIsXG5cdFwic2Nzc1wiOlwiU2FzcyAoU0NTUylcIixcblx0XCJzY2FsYVwiOlwiU2NhbGFcIixcblx0XCJzY2hlbWVcIjpcIlNjaGVtZVwiLFxuXHRcInNoZWxsLXNlc3Npb25cIjpcIlNoZWxsIHNlc3Npb25cIixcblx0XCJzaC1zZXNzaW9uXCI6XCJTaGVsbCBzZXNzaW9uXCIsXG5cdFwic2hlbGxzZXNzaW9uXCI6XCJTaGVsbCBzZXNzaW9uXCIsXG5cdFwic21hbGlcIjpcIlNtYWxpXCIsXG5cdFwic21hbGx0YWxrXCI6XCJTbWFsbHRhbGtcIixcblx0XCJzbWFydHlcIjpcIlNtYXJ0eVwiLFxuXHRcInNtbFwiOlwiU01MXCIsXG5cdFwic21sbmpcIjpcIlNNTFwiLFxuXHRcInNvbGlkaXR5XCI6XCJTb2xpZGl0eSAoRXRoZXJldW0pXCIsXG5cdFwic29sXCI6XCJTb2xpZGl0eSAoRXRoZXJldW0pXCIsXG5cdFwic29sdXRpb24tZmlsZVwiOlwiU29sdXRpb24gZmlsZVwiLFxuXHRcInNsblwiOlwiU29sdXRpb24gZmlsZVwiLFxuXHRcInNveVwiOlwiU295IChDbG9zdXJlIFRlbXBsYXRlKVwiLFxuXHRcInNwYXJxbFwiOlwiU1BBUlFMXCIsXG5cdFwicnFcIjpcIlNQQVJRTFwiLFxuXHRcInNwbHVuay1zcGxcIjpcIlNwbHVuayBTUExcIixcblx0XCJzcWZcIjpcIlNRRlwiLFxuXHRcInNxbFwiOlwiU1FMXCIsXG5cdFwic3F1aXJyZWxcIjpcIlNxdWlycmVsXCIsXG5cdFwic3RhblwiOlwiU3RhblwiLFxuXHRcInN0YXRhXCI6XCJTdGF0YSBBZG9cIixcblx0XCJpZWNzdFwiOlwiU3RydWN0dXJlZCBUZXh0IChJRUMgNjExMzEtMylcIixcblx0XCJzdHlsdXNcIjpcIlN0eWx1c1wiLFxuXHRcInN1cGVyY29sbGlkZXJcIjpcIlN1cGVyQ29sbGlkZXJcIixcblx0XCJzY2xhbmdcIjpcIlN1cGVyQ29sbGlkZXJcIixcblx0XCJzd2lmdFwiOlwiU3dpZnRcIixcblx0XCJzeXN0ZW1kXCI6XCJTeXN0ZW1kIGNvbmZpZ3VyYXRpb24gZmlsZVwiLFxuXHRcInQ0LXRlbXBsYXRpbmdcIjpcIlQ0IHRlbXBsYXRpbmdcIixcblx0XCJ0NC1jc1wiOlwiVDQgVGV4dCBUZW1wbGF0ZXMgKEMjKVwiLFxuXHRcInQ0XCI6XCJUNCBUZXh0IFRlbXBsYXRlcyAoQyMpXCIsXG5cdFwidDQtdmJcIjpcIlQ0IFRleHQgVGVtcGxhdGVzIChWQilcIixcblx0XCJ0YXBcIjpcIlRBUFwiLFxuXHRcInRjbFwiOlwiVGNsXCIsXG5cdFwidHQyXCI6XCJUZW1wbGF0ZSBUb29sa2l0IDJcIixcblx0XCJ0ZXh0aWxlXCI6XCJUZXh0aWxlXCIsXG5cdFwidG9tbFwiOlwiVE9NTFwiLFxuXHRcInRyZW1vclwiOlwiVHJlbW9yXCIsXG5cdFwidHJpY2tsZVwiOlwiVHJlbW9yXCIsXG5cdFwidHJveVwiOlwiVHJlbW9yXCIsXG5cdFwidHVydGxlXCI6XCJUdXJ0bGVcIixcblx0XCJ0cmlnXCI6XCJUdXJ0bGVcIixcblx0XCJ0d2lnXCI6XCJUd2lnXCIsXG5cdFwidHlwZXNjcmlwdFwiOlwiVHlwZVNjcmlwdFwiLFxuXHRcInRzXCI6XCJUeXBlU2NyaXB0XCIsXG5cdFwidHlwb3NjcmlwdFwiOlwiVHlwb1NjcmlwdFwiLFxuXHRcInRzY29uZmlnXCI6XCJUU0NvbmZpZ1wiLFxuXHRcInVucmVhbHNjcmlwdFwiOlwiVW5yZWFsU2NyaXB0XCIsXG5cdFwidXNjcmlwdFwiOlwiVW5yZWFsU2NyaXB0XCIsXG5cdFwidWNcIjpcIlVucmVhbFNjcmlwdFwiLFxuXHRcInVvcmF6b3JcIjpcIlVPIFJhem9yIFNjcmlwdFwiLFxuXHRcInVyaVwiOlwiVVJJXCIsXG5cdFwidXJsXCI6XCJVUklcIixcblx0XCJ2XCI6XCJWXCIsXG5cdFwidmFsYVwiOlwiVmFsYVwiLFxuXHRcInZibmV0XCI6XCJWQi5OZXRcIixcblx0XCJ2ZWxvY2l0eVwiOlwiVmVsb2NpdHlcIixcblx0XCJ2ZXJpbG9nXCI6XCJWZXJpbG9nXCIsXG5cdFwidmhkbFwiOlwiVkhETFwiLFxuXHRcInZpbVwiOlwidmltXCIsXG5cdFwidmlzdWFsLWJhc2ljXCI6XCJWaXN1YWwgQmFzaWNcIixcblx0XCJ2YlwiOlwiVmlzdWFsIEJhc2ljXCIsXG5cdFwid2FycHNjcmlwdFwiOlwiV2FycFNjcmlwdFwiLFxuXHRcIndhc21cIjpcIldlYkFzc2VtYmx5XCIsXG5cdFwid2ViLWlkbFwiOlwiV2ViIElETFwiLFxuXHRcIndlYmlkbFwiOlwiV2ViIElETFwiLFxuXHRcIndnc2xcIjpcIldHU0xcIixcblx0XCJ3aWtpXCI6XCJXaWtpIG1hcmt1cFwiLFxuXHRcIndvbGZyYW1cIjpcIldvbGZyYW0gbGFuZ3VhZ2VcIixcblx0XCJtYXRoZW1hdGljYVwiOlwiV29sZnJhbSBsYW5ndWFnZVwiLFxuXHRcIm5iXCI6XCJXb2xmcmFtIGxhbmd1YWdlXCIsXG5cdFwid2xcIjpcIldvbGZyYW0gbGFuZ3VhZ2VcIixcblx0XCJ3cmVuXCI6XCJXcmVuXCIsXG5cdFwieGVvcmFcIjpcIlhlb3JhXCIsXG5cdFwieGVvcmFjdWJlXCI6XCJYZW9yYVwiLFxuXHRcInhtbC1kb2NcIjpcIlhNTCBkb2MgKC5uZXQpXCIsXG5cdFwieG9qb1wiOlwiWG9qbyAoUkVBTGJhc2ljKVwiLFxuXHRcInhxdWVyeVwiOlwiWFF1ZXJ5XCIsXG5cdFwieWFtbFwiOlwiWUFNTFwiLFxuXHRcInltbFwiOlwiWUFNTFwiLFxuXHRcInlhbmdcIjpcIllBTkdcIixcblx0XCJ6aWdcIjpcIlppZ1wiXG59O1xuY29uc3QgTUFOVUFMX0xBTkdVQUdFUzoge1trZXk6IHN0cmluZ106IHN0cmluZ30gPSB7IC8vIE1hbnVhbGx5IGNyZWF0ZWQgbGlzdFxuXHRcImZpc2hcIjpcIkZpc2hcIixcblx0XCJvY3RhdmVcIjpcIk9jdGF2ZVwiLFxuXHRcIm1heGltYVwiOlwiTWF4aW1hXCIsXG5cdFwibXlzcWxcIjpcIlNRTFwiLFxuXHRcInBvc3RncmVzcWxcIjpcIlNRTFwiLFxuXHRcInJzY3JpcHRcIjpcIlJcIixcblx0XCJzaGVsbHNjcmlwdFwiOlwiU2hlbGxcIixcblx0XCJzcWxpdGVcIjpcIlNRTFwiLFxuXHRcInpzaFwiOlwiWnNoXCIsXG59O1xuZXhwb3J0IGNvbnN0IExBTkdVQUdFX05BTUVTOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSA9IHsuLi5QUklTTV9MQU5HVUFHRVMsLi4uTUFOVUFMX1BSSVNNX0xBTkdVQUdFUywuLi5NQU5VQUxfTEFOR1VBR0VTfTtcblxuZXhwb3J0IGNvbnN0IExBTkdVQUdFUzoge1trZXk6IHN0cmluZ106IExhbmd1YWdlfSA9IHtcblx0XCIuZ2l0aWdub3JlXCI6IHtcblx0XHRjb2xvdXI6IFwiI2RkNGMzNVwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTI5LjQ3MiwxNC43NTMsMTcuMjQ3LDIuNTI4YTEuOCwxLjgsMCwwLDAtMi41NSwwTDEyLjE1OCw1LjA2N2wzLjIyLDMuMjJhMi4xNDEsMi4xNDEsMCwwLDEsMi43MTIsMi43M2wzLjEsMy4xYTIuMTQzLDIuMTQzLDAsMSwxLTEuMjg1LDEuMjFsLTIuODk1LTIuODk1djcuNjE3YTIuMTQxLDIuMTQxLDAsMSwxLTEuNzY0LS4wNjJWMTIuM2EyLjE0NiwyLjE0NiwwLDAsMS0xLjE2NS0yLjgxNEwxMC45MTEsNi4zMTQsMi41MjgsMTQuN2ExLjgsMS44LDAsMCwwLDAsMi41NTFMMTQuNzUzLDI5LjQ3MmExLjgsMS44LDAsMCwwLDIuNTUsMEwyOS40NzIsMTcuM2ExLjgsMS44LDAsMCwwLDAtMi41NTFcXFwiIHN0eWxlPVxcXCJmaWxsOiNkZDRjMzVcXFwiLz48cGF0aCBkPVxcXCJNMTIuMTU4LDUuMDY3bDMuMjIsMy4yMmEyLjE0MSwyLjE0MSwwLDAsMSwyLjcxMiwyLjczbDMuMSwzLjFhMi4xNDMsMi4xNDMsMCwxLDEtMS4yODUsMS4yMWwtMi44OTUtMi44OTV2Ny42MTdhMi4xNDEsMi4xNDEsMCwxLDEtMS43NjQtLjA2MlYxMi4zYTIuMTQ2LDIuMTQ2LDAsMCwxLTEuMTY1LTIuODE0TDEwLjkxMSw2LjMxNFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcdGlubGluZUNvbW1lbnQ6IFtcblx0XHRcdFwiI1wiLFxuXHRcdF0sXG5cdH0sXG5cdFwiLmhnaWdub3JlXCI6IHtcblx0XHRjb2xvdXI6IFwiI2JmYmZiZlwiLFxuXHRcdGljb246IFwiPHBhdGggZD1cXFwiTTI4LjA0MiwyMy4xNzJjNC45ODktOC4zLTEuMDU0LTIxLjc1MS0xMi4xLTIwLjM4NEM1Ljk1NSw0LjAyMiw1Ljc5NCwxNC41MywxNC41OTMsMTcuMDI2YzcuNjE0LDIuMTYyLDEuNTczLDYuOTkyLDEuNzQ5LDEwLjIwOHM2LjYyLDQuMzgyLDExLjctNC4wNjNcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYjFiMWJcXFwiLz48Y2lyY2xlIGN4PVxcXCI5Ljc4NFxcXCIgY3k9XFxcIjI0LjI1N1xcXCIgcj1cXFwiNC4zMzJcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYjFiMWJcXFwiLz48Y2lyY2xlIGN4PVxcXCI0LjgzNVxcXCIgY3k9XFxcIjE1LjA5OVxcXCIgcj1cXFwiMi44MzVcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYjFiMWJcXFwiLz48cGF0aCBkPVxcXCJNMjguMjMxLDIyLjgzNWM0Ljk4OS04LjMtMS4wNTQtMjEuNzUxLTEyLjEtMjAuMzg0QzYuMTQ0LDMuNjg2LDUuOTgzLDE0LjE5NCwxNC43ODEsMTYuNjljNy42MTQsMi4xNjIsMS41NzMsNi45OTIsMS43NDksMTAuMjA4czYuNjIsNC4zODIsMTEuNy00LjA2M1xcXCIgc3R5bGU9XFxcImZpbGw6I2JmYmZiZlxcXCIvPjxjaXJjbGUgY3g9XFxcIjkuOTcyXFxcIiBjeT1cXFwiMjMuOTIxXFxcIiByPVxcXCI0LjMzMlxcXCIgc3R5bGU9XFxcImZpbGw6I2JmYmZiZlxcXCIvPjxjaXJjbGUgY3g9XFxcIjUuMDIzXFxcIiBjeT1cXFwiMTQuNzYyXFxcIiByPVxcXCIyLjgzNVxcXCIgc3R5bGU9XFxcImZpbGw6I2JmYmZiZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNy44MTEsMjguMTY4YS42NjkuNjY5LDAsMCwxLC42MzUtLjk5NCw3LDcsMCwwLDAsMy43LS43NDZjMy4yNDctMS44NDEsOC4yNDQtMTAuNyw1LjczMS0xNi4yODVBMTIuNzcsMTIuNzcsMCwwLDAsMjUuMDQ5LDUuN2MtLjIzNi0uMjQ5LS4xLS4yMzYuMDU5LS4xNTJhMTAuMDgsMTAuMDgsMCwwLDEsMi44NTcsMy42NzYsMTQuNTc4LDE0LjU3OCwwLDAsMSwxLjEsMTAuMjc5Yy0uNDk0LDEuODE3LTIuMiw1LjkyOC00LjY5MSw3LjcwNnMtNS40MjQsMi44LTYuNTYzLjk1NU0xNS41NDgsMTYuNjczYy0xLjctLjUtMy44OTQtMS4yMDgtNS4xNjMtMi44NjdBOC4wODgsOC4wODgsMCwwLDEsOC44NTQsMTAuNDljLS4wNDMtLjI3LS4wOC0uNSwwLS41NThhMjEuODgyLDIxLjg4MiwwLDAsMCwxLjY4OCwyLjcyMyw2LjQ4Nyw2LjQ4NywwLDAsMCwzLjUyNiwyLjI1NiwxMi4zODMsMTIuMzgzLDAsMCwxLDMuODY3LDEuMzdjLjczOS42MjkuOCwxLjk4OS41NTIsMi4xNDJzLS43NTktMS4xLTIuOTM4LTEuNzQ5bS04LjE1NSwxMC40YzMuMzY5LDMuMTIxLDguNDM5LTEuMTY2LDYuMjA3LTQuOTU0LS4yNTEtLjQyNS0uNTc2LS43NDktLjQ2OS0uNDIzLjcxNCwyLjE3OC4wNTQsMy45LTEuMTc2LDQuNzg4YTQuMDYzLDQuMDYzLDAsMCwxLTQuMTkyLjMyOGMtLjM5LS4yLS41NTEuMDkyLS4zNy4yNjFtLTMuOTMtMTAuMTZjLjAxOC4yLjI5Mi40NTguNzIyLjU3NmEyLjk2OSwyLjk2OSwwLDAsMCwyLjU1LS40MTMsMi43NTksMi43NTksMCwwLDAsLjgxLTMuNDUyYy0uMTcyLS4zMDgtLjQtLjUzMy0uMjE4LS4wNDFBMi42OCwyLjY4LDAsMCwxLDYuMTQ4LDE2LjUzYTIuNDM5LDIuNDM5LDAsMCwxLTIuMS4xNjRjLS4zOTEtLjExOS0uNi4wMTYtLjU4LjIyM1xcXCIvPjxwYXRoIGQ9XFxcIk0xOS4wNTYsMjguNDA3Yy0uMDMzLjM4OS40MTQuNDY2LDEuMDE2LjM3NmE2Ljc1NSw2Ljc1NSwwLDAsMCwyLjMxMy0uNjQ4LDkuNTQsOS41NCwwLDAsMCwzLjMxNC0yLjYzYzIuNjYyLTMuNDczLDMuNi03LjU4MiwzLjQ2LTguMTczQTE2LjE3MiwxNi4xNzIsMCwwLDEsMjcsMjIuNjkyYy0xLjg4OCwyLjk2OC0zLjI1Niw0LjU0OC02LjQxMyw1LjMxNC0uODc5LjIxMy0xLjQ4NS0uMTEyLTEuNTI5LjRtLTctMTMuNUE3Ljk2Nyw3Ljk2NywwLDAsMCwxNC42LDE2LjA4OWExMi4yLDEyLjIsMCwwLDEsMi45NiwxLjMxYy4zNzguMjUzLjYxOC44MTkuNjQyLjMxN3MtLjI4NS0uOTM0LS45NzYtMS4xNjRhMTUuMjc0LDE1LjI3NCwwLDAsMC0yLjAwOS0uNjc0Yy0uNDg1LS4xLTEuMjczLS4yODUtMS45NDktLjQ5My0uMzcxLS4xMTQtLjc0OC0uMzEzLTEuMjE0LS40ODNNMTAuMDM3LDI3LjcxOGMuNDI5LS4wOSwyLjkyNC0uNzM2LDMuNTEtMi43ODguMTgzLS42NC4yMTUtLjUxMS4xNjQtLjE2NWEzLjgsMy44LDAsMCwxLTMuMzU4LDMuMTIzYy0uMjg5LjAzLS42NjgtLjEtLjMxNS0uMTdNNS4wNDYsMTcuMmE3Ljk5MSw3Ljk5MSwwLDAsMCwxLjE5NS0uMzM2LDIuMzgzLDIuMzgzLDAsMCwwLDEuMjMyLTEuNzQxYy4wNjQtLjUwNS4wODMtLjM3OC4xMDktLjFhMi42MjcsMi42MjcsMCwwLDEtMi4xNDcsMi4zMjRjLS4yLjAyOC0uNTYuMDExLS4zODktLjE0M1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0yNy41NCwxNy40NDZjMi4xMjQtNi4xMjMtMi4zMjEtMTUuMzctMTEuMzE1LTE0LjI1OC04LjEyNiwxLTguMjU3LDkuNTU3LTEuMSwxMS41OSw4LjExMiwxLjIyOCwzLjIyNyw3LjM0NywyLjUzNSwxMC40MzMtLjYyMSwyLjc2Niw2LjU1NSwzLjIyMSw5Ljg3Ni03Ljc2NU03LjIxOSwyNi4yYTIuMDI4LDIuMDI4LDAsMCwxLDEuMzMyLjQ0MiwzLjUyNSwzLjUyNSwwLDAsMCwzLjc1NS0uOTgzQTQuMTU0LDQuMTU0LDAsMCwwLDEyLjg2OSwyMmMtLjgwNi0yLjMxOS00LjIyOS0yLjI3OC01Ljc1OC0uMzUzLTEuNjU0LDIuMTUtLjQsNC41MzkuMTA4LDQuNTQ4TTIuNjc2LDE1LjQ1MWExLjE2NiwxLjE2NiwwLDAsMCwuOTA4Ljg2M2MuNzMxLjEuODguNDM0LDEuNzQzLjI2M0EyLjQ2NCwyLjQ2NCwwLDAsMCw3LjEsMTQuOTE2YTEuNzcxLDEuNzcxLDAsMCwwLS44MjQtMi4xNCwyLjY4OSwyLjY4OSwwLDAsMC0zLjA0Ny4zNjMsMi4yNjMsMi4yNjMsMCwwLDAtLjU1OCwyLjMxMlxcXCIgc3R5bGU9XFxcImZpbGw6Izk5OVxcXCIvPjxwYXRoIGQ9XFxcIk0yMS45ODEsMjIuMjI4Yy0yLjItLjI3Mi01LjM2LDQuNjktMi4zNzgsNC4xMDloMGE1LjY0NSw1LjY0NSwwLDAsMCwzLjY4My0xLjkzMiwyMy4xMzYsMjMuMTM2LDAsMCwwLDQuMDU1LTcuMmMuNS0xLjg2MS4yNTEtNC43NDUtLjI2OS0yLjAzNi0uNTMzLDIuNzgxLTIuODkzLDcuMzM2LTUuMDkxLDcuMDY0TTEwLjUyMywyNi4zNjJBMi43NzgsMi43NzgsMCwwLDAsMTIuNSwyMi45OWMtLjE2NS0xLjI3Ni0uODYxLDEuNTg0LTIuMTUsMi4wMTItMS45NTMuNjQ4LTEuNzMzLDEuODYxLjE3NiwxLjM2MW0tNC45NzgtMTAuMmMuNjYzLS4xNzMsMS41NC0xLjA3NywxLjEtMS43NjctLjUzNy0uODUtMi4wMzMtLjEyMi0yLjA4NC44MjRzLjI3NywxLjEyNy45NzkuOTQzXFxcIiBzdHlsZT1cXFwiZmlsbDojZjNmM2YzXFxcIi8+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+ID0gW1wiamF2YXNjcmlwdFwiLFwidHlwZXNjcmlwdFwiLFwiYmFzaFwiLFwiY3NoYXJwXCIsXCJ3b2xmcmFtXCIsXCJuYlwiLFwid2xcIixcImhzXCIsXCJweVwiLFwic2NwdFwiXTtcbmNvbnN0IEVYRUNVVEVfQ09ERV9DQU5PTklDQUxfTEFOR1VBR0VTOiBBcnJheTxzdHJpbmc+ID0gW1wianNcIixcInRzXCIsXCJjc1wiLFwibGVhblwiLFwibHVhXCIsXCJweXRob25cIixcImNwcFwiLFwicHJvbG9nXCIsXCJzaGVsbFwiLFwiZ3Jvb3Z5XCIsXCJyXCIsXCJnb1wiLFwicnVzdFwiLFwiamF2YVwiLFwicG93ZXJzaGVsbFwiLFwia290bGluXCIsXCJtYXRoZW1hdGljYVwiLFwiaGFza2VsbFwiLFwic2NhbGFcIixcInJhY2tldFwiLFwiZnNoYXJwXCIsXCJjXCIsXCJkYXJ0XCIsXCJydWJ5XCIsXCJiYXRjaFwiLFwic3FsXCIsXCJvY3RhdmVcIixcIm1heGltYVwiLFwiYXBwbGVzY3JpcHRcIl07XG5cbmV4cG9ydCBjb25zdCBFWEVDVVRFX0NPREVfU1VQUE9SVEVEX0xBTkdVQUdFUyA9IFsuLi5FWEVDVVRFX0NPREVfTEFOR1VBR0VfQUxJQVNFUywuLi5FWEVDVVRFX0NPREVfQ0FOT05JQ0FMX0xBTkdVQUdFU107XG4iLCAiaW1wb3J0IHsgQXBwLCBQbHVnaW5TZXR0aW5nVGFiLCBTZXR0aW5nLCBOb3RpY2UsIFRleHRDb21wb25lbnQsIERyb3Bkb3duQ29tcG9uZW50LCBTbGlkZXJDb21wb25lbnQsIFRvZ2dsZUNvbXBvbmVudCwgRXh0cmFCdXR0b25Db21wb25lbnQsIE1hcmtkb3duUmVuZGVyZXIgfSBmcm9tIFwib2JzaWRpYW5cIjtcbmltcG9ydCBQaWNrciBmcm9tIFwiQHNpbW9ud2VwL3BpY2tyXCI7XG5pbXBvcnQgeyBDb2xvclRyYW5zbGF0b3IgfSBmcm9tIFwiY29sb3J0cmFuc2xhdG9yXCI7XG5cbmltcG9ydCBDb2RlU3R5bGVyUGx1Z2luIGZyb20gXCIuL21haW5cIjtcbmltcG9ydCB7IENvbG91ciwgQ1NTLCBIRVgsIERpc3BsYXksIENvZGVTdHlsZXJTZXR0aW5ncywgQ29kZVN0eWxlclRoZW1lQ29sb3VycywgRk9MRF9QTEFDRUhPTERFUiwgUEFSQU1FVEVSUywgREVGQVVMVF9TRVRUSU5HUywgTEFOR1VBR0VfTkFNRVMsIExBTkdVQUdFUywgU0VUVElOR1NfU09VUkNFUEFUSF9QUkVGSVgsIEVYQU1QTEVfSU5MSU5FX0NPREUsIEVYQU1QTEVfQ09ERUJMT0NLX1BBUkFNRVRFUlMsIEVYQU1QTEVfQ09ERUJMT0NLX0NPTlRFTlQsIEVYQ0xVREVEX0xBTkdVQUdFUywgV0hJVEVMSVNUX0NPREVCTE9DS1MsIElOQlVJTFRfVEhFTUVTLCBDb2RlU3R5bGVyVGhlbWUgfSBmcm9tIFwiLi9TZXR0aW5nc1wiO1xuXG5jb25zdCBTRVRUSU5HU19QQUdFUzogUmVjb3JkPHN0cmluZyxzdHJpbmc+ID0ge1xuXHRcIm1haW5cIjogXCJDb3JlIFNldHRpbmdzXCIsXG5cdFwiY29kZWJsb2NrXCI6IFwiQ29kZWJsb2NrIFN0eWxpbmdcIixcblx0XCJpbmxpbmVcIjogXCJJbmxpbmUgQ29kZSBTdHlsaW5nXCIsXG59O1xuY29uc3QgQ09ERUJMT0NLX1BBR0VTOiBSZWNvcmQ8c3RyaW5nLHN0cmluZz4gPSB7XG5cdFwiYm9keVwiOiBcIkNvZGVibG9jayBCb2R5XCIsXG5cdFwiZ3V0dGVyXCI6IFwiQ29kZWJsb2NrIEd1dHRlclwiLFxuXHRcImhlYWRlclwiOiBcIkNvZGVibG9jayBIZWFkZXJcIixcblx0XCJoaWdobGlnaHRcIjogXCJDb2RlYmxvY2sgSGlnaGxpZ2h0aW5nXCIsXG5cdFwibGFuZ3VhZ2VzXCI6IFwiQ29kZWJsb2NrIExhbmd1YWdlc1wiLFxuXHQvLyBcInBsdWdpbnNcIjogXCJQbHVnaW4gQ29tcGF0aWJpbGl0eVwiLFxuXHRcImV4YW1wbGVcIjogXCJFeGFtcGxlIENvZGVibG9jayBDb250ZW50XCIsXG59O1xuY29uc3QgRElTUExBWV9PUFRJT05TOiBSZWNvcmQ8RGlzcGxheSxzdHJpbmc+ID0ge1xuXHRcIm5vbmVcIjogXCJOZXZlclwiLFxuXHRcImlmX2hlYWRlcl9zaG93blwiOiBcIklmIEhlYWRlciBTaG93blwiLFxuXHRcImFsd2F5c1wiOiBcIkFsd2F5c1wiLFxufTtcblxuZXhwb3J0IGNsYXNzIFNldHRpbmdzVGFiIGV4dGVuZHMgUGx1Z2luU2V0dGluZ1RhYiB7XG5cdHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbjtcblx0cGlja3JzOiBSZWNvcmQ8c3RyaW5nLFBpY2tyUmVzZXR0YWJsZT47XG5cdHBhZ2U6IHN0cmluZztcblx0Y29kZWJsb2NrUGFnZTogc3RyaW5nO1xuXHRoaWRlQWR2YW5jZWQ6IGJvb2xlYW47XG5cdGNvZGVibG9ja1NldHRpbmdFbDogSFRNTEVsZW1lbnQ7XG5cdGFkdmFuY2VkU2V0dGluZ3NDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXHRhbHRlcm5hdGl2ZUhpZ2hsaWdodHNDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXHRleGFtcGxlQ29kZWJsb2NrQ29udGFpbmVyOiBIVE1MRWxlbWVudDtcblx0ZXhhbXBsZUlubGluZUNvZGVDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXHR3cmFwTGluZXNDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXHRsaW5lTnVtYmVyc0NvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cdGhlYWRlclRhZ3NDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXHRoZWFkZXJJY29uc0NvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cdGhlYWRlckV4dGVybmFsUmVmZXJlbmNlQ29udGFpbmVyOiBIVE1MRWxlbWVudDtcblx0aW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cdGRpc2FibGVhYmxlQ29tcG9uZW50czogUmVjb3JkPHN0cmluZyxBcnJheTxUb2dnbGVDb21wb25lbnQgfCBTbGlkZXJDb21wb25lbnQgfCBUZXh0Q29tcG9uZW50IHwgRXh0cmFCdXR0b25Db21wb25lbnQ+PjtcblxuXHRjb25zdHJ1Y3RvcihhcHA6IEFwcCwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKSB7XG5cdFx0c3VwZXIoYXBwLCBwbHVnaW4pO1xuXHRcdHRoaXMucGx1Z2luID0gcGx1Z2luO1xuXHRcdHRoaXMucGlja3JzID0ge307XG5cdFx0dGhpcy5wYWdlID0gXCJtYWluXCI7XG5cdFx0dGhpcy5jb2RlYmxvY2tQYWdlID0gXCJib2R5XCI7XG5cdFx0dGhpcy5oaWRlQWR2YW5jZWQgPSB0cnVlO1xuXHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzID0ge307XG5cdH1cblxuXHQvKipcblx0ICogIEJ1aWxkcyB0aGUgaHRtbCBwYWdlIHRoYXQgaXMgc2hvd2VkIGluIHRoZSBzZXR0aW5ncy5cblx0ICovXG5cdGRpc3BsYXkoKSB7XG5cdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHMgPSB7XG5cdFx0XHRcImVkaXRvckFjdGl2ZUxpbmVIaWdobGlnaHRcIjogW10sXG5cdFx0XHRcImNvZGVibG9ja0FjdGl2ZUxpbmVIaWdobGlnaHRcIjogW10sXG5cdFx0XHRcImdyYWRpZW50SGlnaGxpZ2h0aW5nXCI6IFtdLFxuXHRcdFx0XCJsYW5ndWFnZUJvcmRlckNvbG91clwiOiBbXSxcblx0XHR9O1xuXHRcdHRoaXMuaGlkZUFkdmFuY2VkID0gdHJ1ZTtcblx0XHR0aGlzLmdlbmVyYXRlU2V0dGluZ3ModGhpcy5jb250YWluZXJFbCk7XG5cdH1cblxuXHQvLyBDcmVhdGUgU2V0dGluZ3MgUGFnZXNcblx0ZGlzcGxheU1haW5TZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHR0aGlzLmVtcHR5U2V0dGluZ3MoY29udGFpbmVyRWwpO1xuXHRcdHRoaXMuZ2VuZXJhdGVUaGVtZVNldHRpbmdzKGNvbnRhaW5lckVsKTtcblx0XHR0aGlzLmdlbmVyYXRlU2V0dGluZ3NTd2l0Y2hlcihjb250YWluZXJFbCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUNvcmVTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUFkdmFuY2VkSGVhZGluZyhjb250YWluZXJFbCk7XG5cdFx0dGhpcy5hZHZhbmNlZFNldHRpbmdzQ29udGFpbmVyID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUFkdmFuY2VkU2V0dGluZ3MoKTtcblx0XHR0aGlzLmdlbmVyYXRlRG9uYXRpb25Gb290ZXIoY29udGFpbmVyRWwpO1xuXHR9XG5cdGRpc3BsYXlDb2RlYmxvY2tTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHR0aGlzLmVtcHR5U2V0dGluZ3MoY29udGFpbmVyRWwpO1xuXHRcdHRoaXMuZ2VuZXJhdGVUaGVtZVNldHRpbmdzKGNvbnRhaW5lckVsKTtcblx0XHR0aGlzLmdlbmVyYXRlU2V0dGluZ3NTd2l0Y2hlcihjb250YWluZXJFbCk7XG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoXCJoclwiKTtcblx0XHR0aGlzLmV4YW1wbGVDb2RlYmxvY2tDb250YWluZXIgPSBjb250YWluZXJFbC5jcmVhdGVEaXYoKTtcblx0XHR0aGlzLmdlbmVyYXRlRXhhbXBsZUNvZGVibG9jaygpO1xuXHRcdHRoaXMuZ2VuZXJhdGVDb2RlYmxvY2tTdHlsaW5nU3dpdGNoZXIoY29udGFpbmVyRWwpO1xuXHRcdHRoaXMuY29kZWJsb2NrU2V0dGluZ0VsID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUNvZGVibG9ja1NldHRpbmcoKTtcblxuXHR9XG5cdGRpc3BsYXlJbmxpbmVDb2RlU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0dGhpcy5lbXB0eVNldHRpbmdzKGNvbnRhaW5lckVsKTtcblx0XHR0aGlzLmdlbmVyYXRlVGhlbWVTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdFx0dGhpcy5nZW5lcmF0ZVNldHRpbmdzU3dpdGNoZXIoY29udGFpbmVyRWwpO1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaHJcIik7XG5cdFx0dGhpcy5leGFtcGxlSW5saW5lQ29kZUNvbnRhaW5lciA9IGNvbnRhaW5lckVsLmNyZWF0ZURpdigpO1xuXHRcdHRoaXMuZ2VuZXJhdGVFeGFtcGxlSW5saW5lQ29kZSgpO1xuXHRcdHRoaXMuZ2VuZXJhdGVFeGFtcGxlSW5saW5lQ29kZVNldHRpbmdzKGNvbnRhaW5lckVsKTtcblx0XHR0aGlzLmdlbmVyYXRlSW5saW5lQ29kZVNldHRpbmdzKGNvbnRhaW5lckVsKTtcblx0fVxuXG5cdC8vIENyZWF0ZSBTZXR0aW5ncyBHcm91cHNcblx0ZW1wdHlTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRjb250YWluZXJFbC5lbXB0eSgpO1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDFcIiwge3RleHQ6IFwiU2V0dGluZ3MgZm9yIHRoZSBDb2RlIFN0eWxlciBQbHVnaW4uXCJ9KTtcblx0fVxuXHRnZW5lcmF0ZVNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGlmICh0aGlzLnBhZ2UgPT09IFwibWFpblwiKVxuXHRcdFx0dGhpcy5kaXNwbGF5TWFpblNldHRpbmdzKGNvbnRhaW5lckVsKTtcblx0XHRlbHNlIGlmICh0aGlzLnBhZ2UgPT09IFwiY29kZWJsb2NrXCIpXG5cdFx0XHR0aGlzLmRpc3BsYXlDb2RlYmxvY2tTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdFx0ZWxzZSBpZiAodGhpcy5wYWdlID09PSBcImlubGluZVwiKVxuXHRcdFx0dGhpcy5kaXNwbGF5SW5saW5lQ29kZVNldHRpbmdzKGNvbnRhaW5lckVsKTtcblx0fVxuXHRnZW5lcmF0ZVNldHRpbmdzU3dpdGNoZXIoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkNob29zZSBTZXR0aW5ncyBQYWdlXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkNoYW5nZSBkcm9wZG93biB0byBtb2RpZnkgZGlmZmVyZW50IGdyb3VwcyBvZiBzZXR0aW5nc1wiKVxuXHRcdFx0LmFkZERyb3Bkb3duKChkcm9wZG93bikgPT4gZHJvcGRvd25cblx0XHRcdFx0LmFkZE9wdGlvbnMoU0VUVElOR1NfUEFHRVMpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBhZ2UpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWU6IHN0cmluZykgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGFnZSA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuZ2VuZXJhdGVTZXR0aW5ncyhjb250YWluZXJFbCk7XG5cdFx0XHRcdH0pKTtcblx0fVxuXHRnZW5lcmF0ZUNvZGVibG9ja1N0eWxpbmdTd2l0Y2hlcihjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiQ2hvb3NlIENvZGVibG9jayBTZXR0aW5nc1wiKVxuXHRcdFx0LnNldERlc2MoXCJDaGFuZ2UgZHJvcGRvd24gdG8gbW9kaWZ5IHN0eWxlcyBhbmQgc2V0dGluZ3Mgb2YgZGlmZmVyZW50IGNvZGVibG9jayBzZWN0aW9uc1wiKVxuXHRcdFx0LmFkZERyb3Bkb3duKChkcm9wZG93bikgPT4gZHJvcGRvd25cblx0XHRcdFx0LmFkZE9wdGlvbnMoQ09ERUJMT0NLX1BBR0VTKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5jb2RlYmxvY2tQYWdlKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlOiBzdHJpbmcpID0+IHtcblx0XHRcdFx0XHR0aGlzLmNvZGVibG9ja1BhZ2UgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLmdlbmVyYXRlQ29kZWJsb2NrU2V0dGluZygpO1xuXHRcdFx0XHR9KSk7XG5cdH1cblx0Z2VuZXJhdGVDb2RlYmxvY2tTZXR0aW5nKCkge1xuXHRcdHRoaXMuY29kZWJsb2NrU2V0dGluZ0VsLmVtcHR5KCk7XG5cdFx0aWYgKHRoaXMuY29kZWJsb2NrUGFnZSA9PT0gXCJib2R5XCIpXG5cdFx0XHR0aGlzLmdlbmVyYXRlQ29kZWJsb2NrQm9keVNldHRpbmdzKHRoaXMuY29kZWJsb2NrU2V0dGluZ0VsKTtcblx0XHRlbHNlIGlmICh0aGlzLmNvZGVibG9ja1BhZ2UgPT09IFwiZ3V0dGVyXCIpXG5cdFx0XHR0aGlzLmdlbmVyYXRlQ29kZWJsb2NrR3V0dGVyU2V0dGluZ3ModGhpcy5jb2RlYmxvY2tTZXR0aW5nRWwpO1xuXHRcdGVsc2UgaWYgKHRoaXMuY29kZWJsb2NrUGFnZSA9PT0gXCJoZWFkZXJcIilcblx0XHRcdHRoaXMuZ2VuZXJhdGVDb2RlYmxvY2tIZWFkZXJTZXR0aW5ncyh0aGlzLmNvZGVibG9ja1NldHRpbmdFbCk7XG5cdFx0ZWxzZSBpZiAodGhpcy5jb2RlYmxvY2tQYWdlID09PSBcImhpZ2hsaWdodFwiKVxuXHRcdFx0dGhpcy5nZW5lcmF0ZUNvZGVibG9ja0hpZ2hsaWdodFNldHRpbmdzKHRoaXMuY29kZWJsb2NrU2V0dGluZ0VsKTtcblx0XHRlbHNlIGlmICh0aGlzLmNvZGVibG9ja1BhZ2UgPT09IFwibGFuZ3VhZ2VzXCIpXG5cdFx0XHR0aGlzLmdlbmVyYXRlQ29kZWJsb2NrTGFuZ3VhZ2VTZXR0aW5ncyh0aGlzLmNvZGVibG9ja1NldHRpbmdFbCk7XG5cdFx0ZWxzZSBpZiAodGhpcy5jb2RlYmxvY2tQYWdlID09PSBcInBsdWdpbnNcIilcblx0XHRcdHRoaXMuZ2VuZXJhdGVQbHVnaW5Db21wYXRpYmlsaXR5U2V0dGluZ3ModGhpcy5jb2RlYmxvY2tTZXR0aW5nRWwpO1xuXHRcdGVsc2UgaWYgKHRoaXMuY29kZWJsb2NrUGFnZSA9PT0gXCJleGFtcGxlXCIpXG5cdFx0XHR0aGlzLmdlbmVyYXRlRXhhbXBsZUNvZGVibG9ja1NldHRpbmdzKHRoaXMuY29kZWJsb2NrU2V0dGluZ0VsKTtcblx0fVxuXHRnZW5lcmF0ZUNvcmVTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiU3R5bGUgQ29kZSBvbiBFeHBvcnRcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZW5hYmxlZCwgc3R5bGluZyB3aWxsIGJlIGFwcGxpZWQgd2hlbiBleHBvcnRpbmcgdG8gUERGLlwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5kZWNvcmF0ZVByaW50KVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuZGVjb3JhdGVQcmludCA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pKTtcblx0fVxuXHRnZW5lcmF0ZVRoZW1lU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoXCJoMlwiLCB7dGV4dDogXCJUaGVtZSBTZXR0aW5nc1wifSk7XG5cdFx0bGV0IHRoZW1lRHJvcGRvd246IERyb3Bkb3duQ29tcG9uZW50O1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJTZWxlY3QgVGhlbWVcIilcblx0XHRcdC5hZGREcm9wZG93bigoZHJvcGRvd24pID0+IHtcblx0XHRcdFx0dGhlbWVEcm9wZG93biA9IGRyb3Bkb3duO1xuXHRcdFx0XHR0aGlzLnVwZGF0ZURyb3Bkb3duKHRoZW1lRHJvcGRvd24sdGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xuXHRcdFx0XHR0aGVtZURyb3Bkb3duLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWUgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdKTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdHRoaXMuZGlzcGxheSgpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pXG5cdFx0XHQuYWRkRXh0cmFCdXR0b24oYnV0dG9uID0+IHtcblx0XHRcdFx0YnV0dG9uLnNldFRvb2x0aXAoXCJVcGRhdGUgdGhlbWVcIik7XG5cdFx0XHRcdGJ1dHRvbi5zZXRJY29uKFwic2F2ZVwiKTtcblx0XHRcdFx0YnV0dG9uLm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXSA9IHN0cnVjdHVyZWRDbG9uZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUpO1xuXHRcdFx0XHRcdHRoaXMudXBkYXRlQWx0ZXJuYXRpdmVIaWdobGlnaHRzKCk7XG5cdFx0XHRcdFx0bmV3IE5vdGljZShgJHt0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lfSB0aGVtZSBzYXZlZCBzdWNjZXNzZnVsbHkhYCk7IC8vTk9TT05BUlxuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSlcblx0XHRcdC5hZGRFeHRyYUJ1dHRvbihidXR0b24gPT4ge1xuXHRcdFx0XHRidXR0b24uc2V0VG9vbHRpcChcIkRlbGV0ZSB0aGVtZVwiKTtcblx0XHRcdFx0YnV0dG9uLnNldEljb24oXCJ0cmFzaFwiKTtcblx0XHRcdFx0YnV0dG9uLm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lLnRyaW0oKS5sZW5ndGggPT09IDApXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiU2VsZWN0IGEgdGhlbWUgZmlyc3QgdG8gZGVsZXRlXCIpOyAvL05PU09OQVJcblx0XHRcdFx0XHRlbHNlIGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lIGluIERFRkFVTFRfU0VUVElOR1MudGhlbWVzKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShcIllvdSBjYW5ub3QgZGVsZXRlIHRoZSBkZWZhdWx0IHRoZW1lc1wiKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRkZWxldGUgdGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdO1xuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShgJHt0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lfSB0aGVtZSBkZWxldGVkIHN1Y2Nlc3NmdWxseSFgKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lID0gXCJEZWZhdWx0XCI7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdKTtcblx0XHRcdFx0XHRcdHRoaXMudXBkYXRlRHJvcGRvd24odGhlbWVEcm9wZG93bix0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdFx0dGhpcy5kaXNwbGF5KCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdGxldCBuZXdUaGVtZU5hbWU6IFRleHRDb21wb25lbnQ7XG5cdFx0bGV0IG5ld1RoZW1lRGVmYXVsdDogVG9nZ2xlQ29tcG9uZW50O1xuXHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lID0gXCJcIjtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiQWRkIE5ldyBUaGVtZVwiKVxuXHRcdFx0LnNldERlc2MoXCJDcmVhdGUgYSBuZXcgdGhlbWUgZnJvbSB0aGUgY3VycmVudCBzZXR0aW5ncy5cIilcblx0XHRcdC5hZGRUZXh0KHRleHQgPT4ge25ld1RoZW1lTmFtZSA9IHRleHRcblx0XHRcdFx0LnNldFBsYWNlaG9sZGVyKFwiTmV3IHRoZW1lIG5hbWVcIilcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWUgPSB2YWx1ZTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LmFkZEV4dHJhQnV0dG9uKGJ1dHRvbiA9PiB7XG5cdFx0XHRcdGJ1dHRvbi5zZXRUb29sdGlwKFwiU2F2ZSB0aGVtZVwiKTtcblx0XHRcdFx0YnV0dG9uLnNldEljb24oXCJwbHVzXCIpO1xuXHRcdFx0XHRidXR0b24ub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0aWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lLnRyaW0oKS5sZW5ndGggPT09IDApXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiU2V0IGEgbmFtZSBmb3IgeW91ciB0aGVtZVwiKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0ZWxzZSBpZiAodGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWUgaW4gREVGQVVMVF9TRVRUSU5HUy50aGVtZXMpXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiWW91IGNhbid0IG92ZXJ3cml0ZSB0aGUgZGVmYXVsdCB0aGVtZXNcIik7IC8vTk9TT05BUlxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0aWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lIGluIHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lcykge1xuXHRcdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWVdID0gc3RydWN0dXJlZENsb25lKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZSk7XG5cdFx0XHRcdFx0XHRcdG5ldyBOb3RpY2UoYCR7dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWV9IHRoZW1lIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5IWApOyAvL05PU09OQVJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdUaGVtZV0gPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lKTtcblx0XHRcdFx0XHRcdFx0bmV3IE5vdGljZShgJHt0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdUaGVtZX0gdGhlbWUgc2F2ZWQgc3VjY2Vzc2Z1bGx5IWApOyAvL05PU09OQVJcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWUgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdUaGVtZTtcblx0XHRcdFx0XHRcdHRoaXMudXBkYXRlRHJvcGRvd24odGhlbWVEcm9wZG93bix0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XG5cdFx0XHRcdFx0XHR0aGlzLnVwZGF0ZUFsdGVybmF0aXZlSGlnaGxpZ2h0cygpO1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWUgPSBcIlwiO1xuXHRcdFx0XHRcdFx0bmV3VGhlbWVOYW1lLnNldFZhbHVlKFwiXCIpO1xuXHRcdFx0XHRcdFx0bmV3VGhlbWVEZWZhdWx0LnNldFZhbHVlKGZhbHNlKTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHR9XG5cdGdlbmVyYXRlQ29kZWJsb2NrQm9keVNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDNcIiwge3RleHQ6IFwiQ29kZWJsb2NrIEFwcGVhcmFuY2VcIn0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJDb2RlYmxvY2sgQmFja2dyb3VuZCBDb2xvdXJcIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxcblx0XHRcdFx0XCJjb2RlYmxvY2tfYmFja2dyb3VuZFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmNvZGVibG9jay5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmNvZGVibG9jay5iYWNrZ3JvdW5kQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiQ29kZWJsb2NrIFRleHQgQ29sb3VyXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiY29kZWJsb2NrX3RleHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5jb2RlYmxvY2sudGV4dENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5jb2RlYmxvY2sudGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkNvZGVibG9jayBDdXJ2YXR1cmVcIilcblx0XHRcdC5zZXREZXNjKFwiRGV0ZXJtaW5lcyBob3cgcm91bmRlZCB0aGUgY29kZWJsb2NrcyBhcHBlYXIgaW4gcGl4ZWxzLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0bGV0IHJlc2V0dGFibGVTbGlkZXI6IFNsaWRlckNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRTbGlkZXIoKHNsaWRlcikgPT4ge3Jlc2V0dGFibGVTbGlkZXIgPSBzbGlkZXJcblx0XHRcdFx0XHQuc2V0TGltaXRzKDAsMjUsMSlcblx0XHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5jdXJ2YXR1cmUpXG5cdFx0XHRcdFx0LnNldER5bmFtaWNUb29sdGlwKClcblx0XHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLmN1cnZhdHVyZSA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBjdXJ2YXR1cmVcIilcblx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLmN1cnZhdHVyZSA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5jb2RlYmxvY2suY3VydmF0dXJlO1xuXHRcdFx0XHRcdFx0cmVzZXR0YWJsZVNsaWRlci5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLmN1cnZhdHVyZSk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJMYW5ndWFnZSBDb2xvdXJlZCBCb3JkZXJzXCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGVuYWJsZWQsIGxhbmd1YWdlcyB3aXRoIGljb25zIGRpc3BsYXkgYSBsZWZ0IGJvcmRlciB3aXRoIHRoZSBjb2xvdXIgb2YgdGhlIGljb24uIFRoZSBzbGlkZXIgc2V0cyB0aGUgd2lkdGggb2YgdGhlIGJvcmRlci5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyQ29sb3VyKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyQ29sb3VyID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJsYW5ndWFnZUJvcmRlckNvbG91clwiXS5mb3JFYWNoKGNvbXBvbmVudCA9PiB7Y29tcG9uZW50LnNldERpc2FibGVkKCF2YWx1ZSk7fSk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSkpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoMCwyMCwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQubGFuZ3VhZ2VCb3JkZXJXaWR0aClcblx0XHRcdFx0XHQuc2V0RGlzYWJsZWQoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlckNvbG91cilcblx0XHRcdFx0XHQuc2V0RHluYW1pY1Rvb2x0aXAoKVxuXHRcdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlcldpZHRoID0gdmFsdWU7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImxhbmd1YWdlQm9yZGVyQ29sb3VyXCJdLnB1c2gocmVzZXR0YWJsZVNsaWRlcik7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRsZXQgcmVzZXRCdXR0b246IEV4dHJhQnV0dG9uQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtyZXNldEJ1dHRvbiA9IGJ1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0RGlzYWJsZWQoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlckNvbG91cilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBjb2xvdXIgc3RvcFwiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlcldpZHRoID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLnNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyV2lkdGg7XG5cdFx0XHRcdFx0XHRyZXNldHRhYmxlU2xpZGVyLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlcldpZHRoKTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzW1wibGFuZ3VhZ2VCb3JkZXJDb2xvdXJcIl0ucHVzaChyZXNldEJ1dHRvbik7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIlVud3JhcCBjb2RlYmxvY2sgbGluZXNcIilcblx0XHRcdC5zZXREZXNjKFwiQ2hvb3NlIHdoZXRoZXIgdG8gdW53cmFwIGxpbmVzIGluIHJlYWRpbmcgbW9kZVwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLnVud3JhcExpbmVzKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay51bndyYXBMaW5lcyA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuZ2VuZXJhdGVXcmFwTGluZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3ModHJ1ZSk7XG5cdFx0XHRcdH0pKTtcblx0XHR0aGlzLndyYXBMaW5lc0NvbnRhaW5lciA9IGNvbnRhaW5lckVsLmNyZWF0ZURpdigpO1xuXHRcdHRoaXMuZ2VuZXJhdGVXcmFwTGluZVNldHRpbmdzKCk7XG5cdH1cblx0Z2VuZXJhdGVXcmFwTGluZVNldHRpbmdzKCkge1xuXHRcdHRoaXMud3JhcExpbmVzQ29udGFpbmVyLmVtcHR5KCk7XG5cdFx0aWYgKCF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLnVud3JhcExpbmVzKVxuXHRcdFx0cmV0dXJuO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMud3JhcExpbmVzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJXcmFwIExpbmVzIG9uIENsaWNrXCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGVuYWJsZWQsIGluIHJlYWRpbmcgbW9kZSwgaG9sZGluZyBjbGljayBvbiBhIGNvZGVibG9jayB3aWxsIHdyYXAgdGhlIGxpbmVzIGZvciBiZXR0ZXIgdmlzaWJpbGl0eS5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay53cmFwTGluZXNBY3RpdmUpXG5cdFx0XHRcdC5zZXREaXNhYmxlZCghdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay51bndyYXBMaW5lcylcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2sud3JhcExpbmVzQWN0aXZlID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3ModHJ1ZSk7XG5cdFx0XHRcdH0pKTtcblx0fVxuXHRnZW5lcmF0ZUNvZGVibG9ja0d1dHRlclNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDNcIiwge3RleHQ6IFwiR3V0dGVyIEFwcGVhcmFuY2VcIn0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJFbmFibGUgTGluZSBOdW1iZXJzXCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGRpc2FibGVkLCB0aGUgYmVsb3cgc2V0dGluZ3MgYXJlIGRpc2FibGVkIHRvby5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5saW5lTnVtYmVycylcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2subGluZU51bWJlcnMgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLmdlbmVyYXRlQ29kZWJsb2NrTGluZU51bWJlclNldHRpbmdzKCk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3ModHJ1ZSk7XG5cdFx0XHRcdH0pKTtcblx0XHR0aGlzLmxpbmVOdW1iZXJzQ29udGFpbmVyID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUNvZGVibG9ja0xpbmVOdW1iZXJTZXR0aW5ncygpO1xuXHR9XG5cdGdlbmVyYXRlQ29kZWJsb2NrTGluZU51bWJlclNldHRpbmdzKCkge1xuXHRcdHRoaXMubGluZU51bWJlcnNDb250YWluZXIuZW1wdHkoKTtcblx0XHRpZiAoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2subGluZU51bWJlcnMpXG5cdFx0XHRyZXR1cm47XG5cdFx0bmV3IFNldHRpbmcodGhpcy5saW5lTnVtYmVyc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiR3V0dGVyIEJhY2tncm91bmQgQ29sb3VyXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMubGluZU51bWJlcnNDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XCJndXR0ZXJfYmFja2dyb3VuZFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmd1dHRlci5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmd1dHRlci5iYWNrZ3JvdW5kQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmxpbmVOdW1iZXJzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJMaW5lIE51bWJlciBDb2xvdXJcIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5saW5lTnVtYmVyc0NvbnRhaW5lcixzZXR0aW5nLFxuXHRcdFx0XHRcImxpbmVfbnVtYmVyXCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uZ3V0dGVyLnRleHRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uZ3V0dGVyLnRleHRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMubGluZU51bWJlcnNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIkhpZ2hsaWdodCBMaW5lIE51bWJlcnNcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZW5hYmxlZCwgaGlnaGxpZ2h0cyB3aWxsIGFsc28gaGlnaGxpZ2h0IHRoZSBsaW5lIG51bWJlcnMuXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5ndXR0ZXIuaGlnaGxpZ2h0KVxuXHRcdFx0XHQuc2V0RGlzYWJsZWQoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2subGluZU51bWJlcnMpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuZ3V0dGVyLmhpZ2hsaWdodCA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pKTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmxpbmVOdW1iZXJzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmRpY2F0ZSBDdXJyZW50IExpbmUgTnVtYmVyXCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGVuYWJsZWQsIHRoZSBjdXJyZW50IGxpbmUgbnVtYmVyIGluIGNvZGVibG9ja3Mgd2lsbCBiZSBpbmRpY2F0ZWQgd2l0aCBhIHNlcGFyYXRlIGNvbG91ci5cIilcblx0XHRcdC5zZXRDbGFzcyhcImNvZGUtc3R5bGVyLXNwYWNlZFwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuZ3V0dGVyLmFjdGl2ZUxpbmUpXG5cdFx0XHRcdC5zZXREaXNhYmxlZCghdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5saW5lTnVtYmVycylcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5ndXR0ZXIuYWN0aXZlTGluZSA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pXG5cdFx0XHQpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMubGluZU51bWJlcnNDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XCJhY3RpdmVfbGluZV9udW1iZXJcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5ndXR0ZXIuYWN0aXZlVGV4dENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5ndXR0ZXIuYWN0aXZlVGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdH1cblx0Z2VuZXJhdGVDb2RlYmxvY2tIZWFkZXJTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImgzXCIsIHt0ZXh0OiBcIkhlYWRlciBBcHBlYXJhbmNlXCJ9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiSGVhZGVyIEJhY2tncm91bmQgQ29sb3VyXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiaGVhZGVyX2JhY2tncm91bmRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIuYmFja2dyb3VuZENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIuYmFja2dyb3VuZENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkhlYWRlciBGb250IFNpemVcIilcblx0XHRcdC5zZXREZXNjKFwiU2V0IHRoZSBmb250IHNpemUgZm9yIGhlYWRlciBsYW5ndWFnZSB0YWdzIGFuZCB0aXRsZXMuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoNiwzMiwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmZvbnRTaXplKVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5mb250U2l6ZSA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBmb250IHNpemVcIilcblx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmZvbnRTaXplID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLnNldHRpbmdzLmhlYWRlci5mb250U2l6ZTtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5mb250U2l6ZSk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJIZWFkZXIgVGl0bGUgVGV4dCBTdHlsaW5nXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlN0eWxlIHRoZSBoZWFkZXIgdGl0bGUgdGV4dCB1c2luZyBib2xkIGFuZCBpdGFsaWMgdG9nZ2xlcywgYnkgc2V0dGluZyBhIGZvbnQgb3IgYnkgc2V0dGluZyBhIHRleHQgY29sb3VyLlwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4ge3RvZ2dsZVxuXHRcdFx0XHQuc2V0VG9vbHRpcChcIlRvZ2dsZSBib2xkIHRpdGxlIHRleHRcIilcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIudGl0bGUudGV4dEJvbGQpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLnRpdGxlLnRleHRCb2xkID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4ge3RvZ2dsZVxuXHRcdFx0XHQuc2V0VG9vbHRpcChcIlRvZ2dsZSBpdGFsaWMgdGl0bGUgdGV4dFwiKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci50aXRsZS50ZXh0SXRhbGljKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci50aXRsZS50ZXh0SXRhbGljID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LmFkZFRleHQodGV4dCA9PiB7dGV4dFxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoXCJGb250XCIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLnRpdGxlLnRleHRGb250KVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci50aXRsZS50ZXh0Rm9udCA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSlcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxcblx0XHRcdFx0XCJoZWFkZXJfdGl0bGVfdGV4dFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci50aXRsZS50ZXh0Q29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci50aXRsZS50ZXh0Q29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRsZXQgZm9sZFBsYWNlaG9sZGVyVGltZW91dDogTm9kZUpTLlRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT57fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkZvbGQgUGxhY2Vob2xkZXIgVGV4dFwiKVxuXHRcdFx0LnNldERlc2MoXCJUaXRsZSBwbGFjZWhvbGRlciB0ZXh0IGZvciBmb2xkZWQgY29kZSB3aGVuIG5vIHRpdGxlIHBhcmFtZXRlciBpcyBzZXQuXCIpXG5cdFx0XHQuYWRkVGV4dCh0ZXh0ID0+IHRleHRcblx0XHRcdFx0LnNldFBsYWNlaG9sZGVyKEZPTERfUExBQ0VIT0xERVIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmZvbGRQbGFjZWhvbGRlcilcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIuZm9sZFBsYWNlaG9sZGVyID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHRjbGVhclRpbWVvdXQoZm9sZFBsYWNlaG9sZGVyVGltZW91dCk7XG5cdFx0XHRcdFx0Zm9sZFBsYWNlaG9sZGVyVGltZW91dCA9IHNldFRpbWVvdXQoKCk9PnRoaXMucmVyZW5kZXIoKSwxMDAwKTtcblx0XHRcdFx0fSkpO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJIZWFkZXIgU2VwYXJhdG9yIENvbG91clwiKVxuXHRcdFx0LnNldERlc2MoXCJDb2xvdXIgb2YgdGhlIGxpbmUgc2VwYXJhdGluZyB0aGUgY29kZWJsb2NrIGhlYWRlciBhbmQgdGhlIGNvZGVibG9jay5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxcblx0XHRcdFx0XCJoZWFkZXJfc2VwYXJhdG9yXCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGVhZGVyLmxpbmVDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGVhZGVyLmxpbmVDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoXCJoNVwiLCB7dGV4dDogXCJIZWFkZXIgTGFuZ3VhZ2UgVGFnIEFwcGVhcmFuY2VcIn0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJEaXNwbGF5IEhlYWRlciBMYW5ndWFnZSBUYWdzXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkRldGVybWluZSB3aGVuIHRvIHNob3cgbGFuZ3VhZ2UgdGFncyBpbiB0aGUgaGVhZGVyLiBcXFwiVGl0bGUgT25seVxcXCIgd2lsbCBvbmx5IHNob3cgbGFuZ3VhZ2UgdGFncyB3aGVuIHRoZSB0aXRsZSBwYXJhbWV0ZXIgaXMgc2V0LlwiKVxuXHRcdFx0LmFkZERyb3Bkb3duKChkcm9wZG93bikgPT4gZHJvcGRvd25cblx0XHRcdFx0LmFkZE9wdGlvbnMoRElTUExBWV9PUFRJT05TKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy5kaXNwbGF5KVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlOiBEaXNwbGF5KSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy5kaXNwbGF5ID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5nZW5lcmF0ZUhlYWRlclRhZ1NldHRpbmdzKCk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3ModHJ1ZSk7XG5cdFx0XHRcdH0pKTtcblx0XHR0aGlzLmhlYWRlclRhZ3NDb250YWluZXIgPSBjb250YWluZXJFbC5jcmVhdGVEaXYoKTtcblx0XHR0aGlzLmdlbmVyYXRlSGVhZGVyVGFnU2V0dGluZ3MoKTtcblxuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDVcIiwge3RleHQ6IFwiSGVhZGVyIExhbmd1YWdlIEljb24gQXBwZWFyYW5jZVwifSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkRpc3BsYXkgSGVhZGVyIExhbmd1YWdlIEljb25zXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkRldGVybWluZSB3aGVuIHRvIHNob3cgbGFuZ3VhZ2UgaWNvbnMgd2hlcmUgYXZhaWxhYmxlLiBcXFwiVGl0bGUgT25seVxcXCIgd2lsbCBvbmx5IHNob3cgbGFuZ3VhZ2UgdGFncyB3aGVuIHRoZSB0aXRsZSBwYXJhbWV0ZXIgaXMgc2V0LlwiKVxuXHRcdFx0LmFkZERyb3Bkb3duKChkcm9wZG93bikgPT4gZHJvcGRvd25cblx0XHRcdFx0LmFkZE9wdGlvbnMoRElTUExBWV9PUFRJT05TKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheSlcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZTogRGlzcGxheSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXkgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLmdlbmVyYXRlSGVhZGVyTGFuZ3VhZ2VJY29uU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncyh0cnVlKTtcblx0XHRcdFx0fSkpO1xuXHRcdHRoaXMuaGVhZGVySWNvbnNDb250YWluZXIgPSBjb250YWluZXJFbC5jcmVhdGVEaXYoKTtcblx0XHR0aGlzLmdlbmVyYXRlSGVhZGVyTGFuZ3VhZ2VJY29uU2V0dGluZ3MoKTtcblx0XHR0aGlzLmhlYWRlckV4dGVybmFsUmVmZXJlbmNlQ29udGFpbmVyID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUhlYWRlckV4dGVybmFsUmVmZXJlbmNlU2V0dGluZ3MoKTtcblx0fVxuXHRnZW5lcmF0ZUhlYWRlclRhZ1NldHRpbmdzKCkge1xuXHRcdHRoaXMuaGVhZGVyVGFnc0NvbnRhaW5lci5lbXB0eSgpO1xuXHRcdGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLmRpc3BsYXkgPT09IFwibm9uZVwiKVxuXHRcdFx0cmV0dXJuO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaGVhZGVyVGFnc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSGVhZGVyIExhbmd1YWdlIFRhZyBCYWNrZ3JvdW5kIENvbG91clwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbix0aGlzLmhlYWRlclRhZ3NDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XCJoZWFkZXJfbGFuZ3VhZ2VfdGFnX2JhY2tncm91bmRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIubGFuZ3VhZ2VUYWcuYmFja2dyb3VuZENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIubGFuZ3VhZ2VUYWcuYmFja2dyb3VuZENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5oZWFkZXJUYWdzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJIZWFkZXIgTGFuZ3VhZ2UgVGFnIFRleHQgU3R5bGluZ1wiKVxuXHRcdFx0LnNldERlc2MoXCJTdHlsZSB0aGUgaGVhZGVyIGxhbmd1YWdlIHRhZyB0ZXh0IHVzaW5nIGJvbGQgYW5kIGl0YWxpYyB0b2dnbGVzLCBieSBzZXR0aW5nIGEgZm9udCBvciBieSBzZXR0aW5nIGEgdGV4dCBjb2xvdXIuXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFRvb2x0aXAoXCJUb2dnbGUgYm9sZCBsYW5ndWFnZSB0YWcgdGV4dFwiKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Qm9sZClcblx0XHRcdFx0LnNldERpc2FibGVkKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheT09PVwibm9uZVwiKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Qm9sZCA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRUb29sdGlwKFwiVG9nZ2xlIGl0YWxpYyBsYW5ndWFnZSB0YWcgdGV4dFwiKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0SXRhbGljKVxuXHRcdFx0XHQuc2V0RGlzYWJsZWQodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy5kaXNwbGF5PT09XCJub25lXCIpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLnRleHRJdGFsaWMgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KSlcblx0XHRcdC5hZGRUZXh0KHRleHQgPT4gdGV4dFxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoXCJGb250XCIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLnRleHRGb250KVxuXHRcdFx0XHQuc2V0RGlzYWJsZWQodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy5kaXNwbGF5PT09XCJub25lXCIpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLnRleHRGb250ID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSkpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMuaGVhZGVyVGFnc0NvbnRhaW5lcixzZXR0aW5nLFxuXHRcdFx0XHRcImhlYWRlcl9sYW5ndWFnZV90YWdfdGV4dFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Q29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Q29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0fVxuXHRnZW5lcmF0ZUhlYWRlckxhbmd1YWdlSWNvblNldHRpbmdzKCkge1xuXHRcdHRoaXMuaGVhZGVySWNvbnNDb250YWluZXIuZW1wdHkoKTtcblx0XHRpZiAodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheSA9PT0gXCJub25lXCIpXG5cdFx0XHRyZXR1cm47XG5cdFx0bmV3IFNldHRpbmcodGhpcy5oZWFkZXJJY29uc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiTGFuZ3VhZ2UgSWNvbnMgQ29sb3VyZWRcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZGlzYWJsZWQsIGxhbmd1YWdlIGljb25zIHdpbGwgYmUgYmxhY2sgYW5kIHdoaXRlLlwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5Q29sb3VyKVxuXHRcdFx0XHQuc2V0RGlzYWJsZWQodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheT09PVwibm9uZVwiKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheUNvbG91ciA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdH0pKTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmhlYWRlckljb25zQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJMYW5ndWFnZSBJY29uIFNpemVcIilcblx0XHRcdC5zZXREZXNjKFwiU2V0IHRoZSBzaXplIG9mIHRoZSBkaXNwbGF5ZWQgbGFuZ3VhZ2UgaWNvbnMuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoMTAsNDAsMSlcblx0XHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmljb25TaXplKVxuXHRcdFx0XHRcdC5zZXREaXNhYmxlZCh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5PT09XCJub25lXCIpXG5cdFx0XHRcdFx0LnNldER5bmFtaWNUb29sdGlwKClcblx0XHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQuaWNvblNpemUgPSB2YWx1ZTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IGJ1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0RGlzYWJsZWQodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheT09PVwibm9uZVwiKVxuXHRcdFx0XHRcdC5zZXRUb29sdGlwKFwiUmVzdG9yZSBkZWZhdWx0IGljb24gc2l6ZVwiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5pY29uU2l6ZSA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5hZHZhbmNlZC5pY29uU2l6ZTtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmljb25TaXplKTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSkpO1xuXHRcdFx0fSk7XG5cdH1cblx0Z2VuZXJhdGVIZWFkZXJFeHRlcm5hbFJlZmVyZW5jZVNldHRpbmdzKCkge1xuXHRcdHRoaXMuaGVhZGVyRXh0ZXJuYWxSZWZlcmVuY2VDb250YWluZXIuZW1wdHkoKTtcblx0XHR0aGlzLmhlYWRlckV4dGVybmFsUmVmZXJlbmNlQ29udGFpbmVyLmNyZWF0ZUVsKFwiaDVcIiwgeyB0ZXh0OiBcIkV4dGVybmFsIFJlZmVyZW5jZSBJbmRpY2F0b3JzIEFwcGVhcmFuY2VcIiB9KTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmhlYWRlckV4dGVybmFsUmVmZXJlbmNlQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJEaXNwbGF5IFJlcG9zaXRvcnlcIilcblx0XHRcdC5zZXREZXNjKFwiRGlzcGxheSByZXBvc2l0b3J5IGluIGNvZGVibG9jayBoZWFkZXIgZm9yIGV4dGVybmFsIHJlZmVyZW5jZXMuXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFRvb2x0aXAoXCJEaXNwbGF5IFJlcG9zaXRvcnlcIilcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIuZXh0ZXJuYWxSZWZlcmVuY2UuZGlzcGxheVJlcG9zaXRvcnkpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmV4dGVybmFsUmVmZXJlbmNlLmRpc3BsYXlSZXBvc2l0b3J5ID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSkpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMuaGVhZGVyRXh0ZXJuYWxSZWZlcmVuY2VDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XCJjb2RlYmxvY2tfaGVhZGVyX2Rpc3BsYXlfcmVwb3NpdG9yeVwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci5leHRlcm5hbFJlZmVyZW5jZS5kaXNwbGF5UmVwb3NpdG9yeUNvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIuZXh0ZXJuYWxSZWZlcmVuY2UuZGlzcGxheVJlcG9zaXRvcnlDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHRcdCgpID0+ICF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmV4dGVybmFsUmVmZXJlbmNlLmRpc3BsYXlSZXBvc2l0b3J5LFxuXHRcdFx0KTt9KTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmhlYWRlckV4dGVybmFsUmVmZXJlbmNlQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJEaXNwbGF5IFJlcG9zaXRvcnkgTmFtZVwiKVxuXHRcdFx0LnNldERlc2MoXCJEaXNwbGF5IHJlcG9zaXRvcnkgdmVyc2lvbiBpbiBjb2RlYmxvY2sgaGVhZGVyIGZvciBleHRlcm5hbCByZWZlcmVuY2VzLlwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRUb29sdGlwKFwiRGlzcGxheSBSZXBvc2l0b3J5IFZlcnNpb25cIilcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIuZXh0ZXJuYWxSZWZlcmVuY2UuZGlzcGxheVZlcnNpb24pXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmV4dGVybmFsUmVmZXJlbmNlLmRpc3BsYXlWZXJzaW9uID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSkpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMuaGVhZGVyRXh0ZXJuYWxSZWZlcmVuY2VDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XCJjb2RlYmxvY2tfaGVhZGVyX2Rpc3BsYXlfdmVyc2lvblwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci5leHRlcm5hbFJlZmVyZW5jZS5kaXNwbGF5VmVyc2lvbkNvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIuZXh0ZXJuYWxSZWZlcmVuY2UuZGlzcGxheVZlcnNpb25Db2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHRcdCgpID0+ICF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmV4dGVybmFsUmVmZXJlbmNlLmRpc3BsYXlWZXJzaW9uLFxuXHRcdFx0KTt9KTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmhlYWRlckV4dGVybmFsUmVmZXJlbmNlQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJEaXNwbGF5IFJlZmVyZW5jZSBUaW1lc3RhbXBcIilcblx0XHRcdC5zZXREZXNjKFwiRGlzcGxheSB0aGUgdGltZXN0YW1wIGF0IHdoaWNoIHRoZSByZWZlcmVuY2Ugd2FzIGxhc3QgdXBkYXRlZC5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VG9vbHRpcChcIkRpc3BsYXkgVGltZXN0YW1wXCIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmV4dGVybmFsUmVmZXJlbmNlLmRpc3BsYXlUaW1lc3RhbXApXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmV4dGVybmFsUmVmZXJlbmNlLmRpc3BsYXlUaW1lc3RhbXAgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KSlcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5oZWFkZXJFeHRlcm5hbFJlZmVyZW5jZUNvbnRhaW5lcixzZXR0aW5nLFxuXHRcdFx0XHRcImNvZGVibG9ja19oZWFkZXJfZGlzcGxheV90aW1lc3RhbXBcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIuZXh0ZXJuYWxSZWZlcmVuY2UuZGlzcGxheVRpbWVzdGFtcENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIuZXh0ZXJuYWxSZWZlcmVuY2UuZGlzcGxheVRpbWVzdGFtcENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdFx0KCkgPT4gIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIuZXh0ZXJuYWxSZWZlcmVuY2UuZGlzcGxheVRpbWVzdGFtcCxcblx0XHRcdCk7fSk7XG5cdH1cblx0Z2VuZXJhdGVDb2RlYmxvY2tIaWdobGlnaHRTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImgzXCIsIHt0ZXh0OiBcIkhpZ2hsaWdodGluZyBBcHBlYXJhbmNlXCJ9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiQ29kZWJsb2NrIEFjdGl2ZSBMaW5lIEhpZ2hsaWdodFwiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBlbmFibGVkLCBoaWdobGlnaHRzIHRoZSBhY3RpdmUgbGluZSBpbnNpZGUgY29kZWJsb2Nrcy5cIilcblx0XHRcdC5zZXRDbGFzcyhcImNvZGUtc3R5bGVyLXNwYWNlZFwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4ge3JldHVybiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oaWdobGlnaHRzLmFjdGl2ZUNvZGVibG9ja0xpbmUpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGlnaGxpZ2h0cy5hY3RpdmVDb2RlYmxvY2tMaW5lID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJjb2RlYmxvY2tBY3RpdmVMaW5lSGlnaGxpZ2h0XCJdLmZvckVhY2goY29tcG9uZW50ID0+IHtjb21wb25lbnQuc2V0RGlzYWJsZWQoIXZhbHVlKTt9KTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiY29kZWJsb2NrX2FjdGl2ZV9saW5lX2hpZ2hsaWdodFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhpZ2hsaWdodHMuYWN0aXZlQ29kZWJsb2NrTGluZUNvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oaWdobGlnaHRzLmFjdGl2ZUNvZGVibG9ja0xpbmVDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHRcdCgpID0+ICF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGlnaGxpZ2h0cy5hY3RpdmVDb2RlYmxvY2tMaW5lLFxuXHRcdFx0KTt9KTtcblx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImNvZGVibG9ja0FjdGl2ZUxpbmVIaWdobGlnaHRcIl0ucHVzaCh0aGlzLnBpY2tyc1tcImNvZGVibG9ja19hY3RpdmVfbGluZV9oaWdobGlnaHRcIl0ucmVzZXRCdXR0b24pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJEZWZhdWx0IEhpZ2hsaWdodCBDb2xvdXJcIilcblx0XHRcdC5zZXREZXNjKFwiVXNlZCBieSB0aGUgJ2hsJyBwYXJhbWV0ZXIuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiZGVmYXVsdF9oaWdobGlnaHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oaWdobGlnaHRzLmRlZmF1bHRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5kZWZhdWx0Q29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRsZXQgbmV3SGlnaGxpZ2h0VGV4dDogVGV4dENvbXBvbmVudDtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiQWRkIEFsdGVybmF0aXZlIEhpZ2hsaWdodFwiKVxuXHRcdFx0LnNldERlc2MoXCJEZWZpbmUgYSBuZXcgYWx0ZXJuYXRpdmUgaGlnaGxpZ2h0IG5hbWUuIFRoZSBjb2xvdXIgY2FuIGJlIG1vZGlmaWVkIGFmdGVyIGl0IGlzIGFkZGVkLlwiKVxuXHRcdFx0LmFkZFRleHQodmFsdWUgPT4ge25ld0hpZ2hsaWdodFRleHQgPSB2YWx1ZVxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoXCJlLmcuIGVycm9yLCB3YXJuXCIpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHQgPSB2YWx1ZTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LmFkZEJ1dHRvbigoYnV0dG9uKSA9PiB7XG5cdFx0XHRcdGJ1dHRvbi5zZXRCdXR0b25UZXh0KFwiQWRkXCIpO1xuXHRcdFx0XHRidXR0b24ub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0aWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodC50cmltKCkgPT09IFwiXCIpXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiUGxlYXNlIGVudGVyIGEgY29sb3VyIG5hbWUuXCIpOyAvL05PU09OQVJcblx0XHRcdFx0XHRlbHNlIGlmICghL15bXlxcZF1cXHcqJC8udGVzdCh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHQpKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShgXCIke3RoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodH1cIiBpcyBub3QgYSB2YWxpZCBjb2xvdXIgbmFtZS5gKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0ZWxzZSBpZiAodGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3SGlnaGxpZ2h0LnRyaW0oKS50b0xvd2VyQ2FzZSgpID09PSBcImhsXCIpXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiQ2Fubm90IG92ZXJyaWRlIHRoZSBkZWZhdWx0IGhpZ2hsaWdodCBwYXJhbWV0ZXIuXCIpOyAvL05PU09OQVJcblx0XHRcdFx0XHRlbHNlIGlmIChQQVJBTUVURVJTLmluY2x1ZGVzKHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodC50cmltKCkudG9Mb3dlckNhc2UoKSkpXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiQ2Fubm90IHVzZSBvdGhlciBkZWZhdWx0IHBhcmFtZXRlcnMuXCIpOyAvL05PU09OQVJcblx0XHRcdFx0XHRlbHNlIGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHQgaW4gdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMubGlnaHQuaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHMpXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKGBBIGhpZ2hsaWdodCB3aXRoIHRoZSBuYW1lIFwiJHt0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHR9XCIgYWxyZWFkeSBleGlzdHMuYCk7IC8vTk9TT05BUlxuXHRcdFx0XHRcdFx0Ly9UT0RPIChAbWF5dXJhbmt2KSBGdXR1cmU6IEZvY3VzIG9uIGV4aXN0aW5nIGhpZ2hsaWdodGVyIC0gYHJlbmRlck1hdGNoZXNgXG5cdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25zdCBuZXdDb2xvdXIgPSBnZXRSYW5kb21Db2xvdXIoKTtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5jb2xvdXJzLmxpZ2h0LmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzW3RoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodF0gPSBuZXdDb2xvdXI7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuY29sb3Vycy5kYXJrLmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzW3RoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodF0gPSBuZXdDb2xvdXI7XG5cdFx0XHRcdFx0XHR0aGlzLnVwZGF0ZUFsdGVybmF0aXZlSGlnaGxpZ2h0cygpO1xuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShgQWRkZWQgaGlnaGxpZ2h0IFwiJHt0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHR9XCIuYCk7IC8vTk9TT05BUlxuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3SGlnaGxpZ2h0ID0gXCJcIjtcblx0XHRcdFx0XHRcdG5ld0hpZ2hsaWdodFRleHQuc2V0VmFsdWUoXCJcIik7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncyh0cnVlKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0dGhpcy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNDb250YWluZXIgPSBjb250YWluZXJFbC5jcmVhdGVEaXYoKTtcblx0XHR0aGlzLnVwZGF0ZUFsdGVybmF0aXZlSGlnaGxpZ2h0cygpO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJHcmFkaWVudCBIaWdobGlnaHRpbmdcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZW5hYmxlZCwgaGlnaGxpZ2h0cyBmYWRlIGF3YXkgdG8gdGhlIHJpZ2h0LiBUaGUgc2xpZGVyIHNldHMgdGhlIGdyYWRpZW50IGNvbG91ciBzdG9wIGFzIGEgcGVyY2VudGFnZS5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0cylcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5ncmFkaWVudEhpZ2hsaWdodHMgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImdyYWRpZW50SGlnaGxpZ2h0aW5nXCJdLmZvckVhY2goY29tcG9uZW50ID0+IHtjb21wb25lbnQuc2V0RGlzYWJsZWQoIXZhbHVlKTt9KTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KSlcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7XG5cdFx0XHRcdGxldCByZXNldHRhYmxlU2xpZGVyOiBTbGlkZXJDb21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkU2xpZGVyKChzbGlkZXIpID0+IHtyZXNldHRhYmxlU2xpZGVyID0gc2xpZGVyXG5cdFx0XHRcdFx0LnNldExpbWl0cygwLDEwMCwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSgrdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0c0NvbG91clN0b3Auc2xpY2UoMCwtMSkpXG5cdFx0XHRcdFx0LnNldERpc2FibGVkKCF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQuZ3JhZGllbnRIaWdobGlnaHRzKVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0c0NvbG91clN0b3AgPSBgJHt2YWx1ZX0lYDtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzW1wiZ3JhZGllbnRIaWdobGlnaHRpbmdcIl0ucHVzaChyZXNldHRhYmxlU2xpZGVyKTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdGxldCByZXNldEJ1dHRvbjogRXh0cmFCdXR0b25Db21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge3Jlc2V0QnV0dG9uID0gYnV0dG9uXG5cdFx0XHRcdFx0LnNldEljb24oXCJyZXNldFwiKVxuXHRcdFx0XHRcdC5zZXREaXNhYmxlZCghdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0cylcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBjb2xvdXIgc3RvcFwiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5ncmFkaWVudEhpZ2hsaWdodHNDb2xvdXJTdG9wID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLnNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0c0NvbG91clN0b3A7XG5cdFx0XHRcdFx0XHRyZXNldHRhYmxlU2xpZGVyLnNldFZhbHVlKCt0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQuZ3JhZGllbnRIaWdobGlnaHRzQ29sb3VyU3RvcC5zbGljZSgwLC0xKSk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImdyYWRpZW50SGlnaGxpZ2h0aW5nXCJdLnB1c2gocmVzZXRCdXR0b24pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHR9XG5cdGdlbmVyYXRlQ29kZWJsb2NrTGFuZ3VhZ2VTZXR0aW5ncyhjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRsZXQgZXhjbHVkZVRpbWVvdXQ6IE5vZGVKUy5UaW1lb3V0ID0gc2V0VGltZW91dCgoKT0+e30pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJFeGNsdWRlIExhbmd1YWdlc1wiKVxuXHRcdFx0LnNldERlc2MoXCJEZWZpbmUgbGFuZ3VhZ2VzIGluIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgd2hpY2ggdGhlIHBsdWdpbiBzaG91bGQgbm90IGRlY29yYXRlLiBZb3UgY2FuIHVzZSBhIHdpbGRjYXJkICgqKSBlaXRoZXIgYXQgdGhlIGJlZ2lubmluZywgb3IgYXQgdGhlIGVuZC4gRm9yIGV4YW1wbGU6IGFkLSogd2lsbCBleGNsdWRlIGNvZGVibG9ja3Mgd2hlcmUgdGhlIGxhbmd1YWdlIHN0YXJ0cyB3aXRoIGFkLSBlLmcuOiBhZC1pbmZvLCBhZC1lcnJvciBldGMuXCIpXG5cdFx0XHQuYWRkVGV4dCh0ZXh0ID0+IHRleHRcblx0XHRcdFx0LnNldFBsYWNlaG9sZGVyKGBlLmcuICR7RVhDTFVERURfTEFOR1VBR0VTfSBldGMuYClcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmV4Y2x1ZGVkTGFuZ3VhZ2VzKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuZXhjbHVkZWRMYW5ndWFnZXMgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdGNsZWFyVGltZW91dChleGNsdWRlVGltZW91dCk7XG5cdFx0XHRcdFx0ZXhjbHVkZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT50aGlzLnJlcmVuZGVyKCksMTAwMCk7XG5cdFx0XHRcdH0pKTtcblx0XHRsZXQgd2hpdGVsaXN0VGltZW91dDogTm9kZUpTLlRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT57fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIldoaXRlbGlzdGVkIFByb2Nlc3NlZCBDb2RlYmxvY2tzXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkRlZmluZSBsYW5ndWFnZXMgaW4gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCB3aGljaCB0aGUgcGx1Z2luIHNob3VsZCBzdHlsZSBkZXNwaXRlIGJlaW5nIHByb2Nlc3NlZCBieSBhbm90aGVyIHBsdWdpbi4gWW91IGNhbiB1c2UgYSB3aWxkY2FyZCAoKikgZWl0aGVyIGF0IHRoZSBiZWdpbm5pbmcsIG9yIGF0IHRoZSBlbmQuIEZvciBleGFtcGxlOiBhZC0qIHdpbGwgZXhjbHVkZSBjb2RlYmxvY2tzIHdoZXJlIHRoZSBsYW5ndWFnZSBzdGFydHMgd2l0aCBhZC0gZS5nLjogYWQtaW5mbywgYWQtZXJyb3IgZXRjLlwiKVxuXHRcdFx0LmFkZFRleHQodGV4dCA9PiB0ZXh0XG5cdFx0XHRcdC5zZXRQbGFjZWhvbGRlcihgZS5nLiAke1dISVRFTElTVF9DT0RFQkxPQ0tTfSBldGMuYClcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3QpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5wcm9jZXNzZWRDb2RlYmxvY2tzV2hpdGVsaXN0ID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHRjbGVhclRpbWVvdXQod2hpdGVsaXN0VGltZW91dCk7XG5cdFx0XHRcdFx0d2hpdGVsaXN0VGltZW91dCA9IHNldFRpbWVvdXQoKCk9PnRoaXMucmVyZW5kZXIoKSwxMDAwKTtcblx0XHRcdFx0fSkpO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJSZWRpcmVjdCBMYW5ndWFnZSBTZXR0aW5nc1wiKVxuXHRcdFx0LnNldERlc2MoXCJVc2UgdGhpcyB0ZXh0Ym94IHRvIHJlZGlyZWN0IHNwZWNpZmljIGxhbmd1YWdlIGNvbG91cnMgYW5kIGljb25zIGFzIGEgSlNPTiB3aXRoIGxhbmd1YWdlIG5hbWVzIGFzIGtleXMgYW5kIGVpdGhlciBhIGNvbG91ciBrZXksIGFuIGljb24ga2V5IG9yIGJvdGggYXMgdGhlIHZhbHVlIGZvciBhIGdpdmVuIGxhbmd1YWdlLiBDb2xvdXJzIHNob3VsZCBiZSBwYXNzZWQgYXMgQ1NTIGNvbG91cnMgYW5kIGljb25zIHNob3VsZCBiZSBwYXNzZWQgYXMgYSBzdHJpbmcgb2YgdGhlIGluc2lkZSBvZiBhbiBzdmcgZWxlbWVudC4gVGhpcyBzZXR0aW5nIGlzIHRoZW1lIGluZGVwZW5kZW50LlwiKVxuXHRcdFx0LnNldENsYXNzKFwiY29kZS1zdHlsZXItc2V0dGluZy10ZXh0LWFyZWFcIilcblx0XHRcdC5hZGRUZXh0QXJlYSh0ZXh0QXJlYSA9PiB0ZXh0QXJlYVxuXHRcdFx0XHQuc2V0VmFsdWUoSlNPTi5zdHJpbmdpZnkodGhpcy5wbHVnaW4uc2V0dGluZ3MucmVkaXJlY3RMYW5ndWFnZXMpPT09XCJ7fVwiP1wiXCI6SlNPTi5zdHJpbmdpZnkodGhpcy5wbHVnaW4uc2V0dGluZ3MucmVkaXJlY3RMYW5ndWFnZXMsbnVsbCw0KSlcblx0XHRcdFx0LnNldFBsYWNlaG9sZGVyKEpTT04uc3RyaW5naWZ5KHt0b21sOiB7Y29sb3VyOiBcIiMwMTIzNDVcIiwgaWNvbjogTEFOR1VBR0VTW1wiQVBMXCJdLmNvbG91cn19LG51bGwsNCkpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpPT57XG5cdFx0XHRcdFx0aWYgKHZhbHVlID09PSBcIlwiKSB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5yZWRpcmVjdExhbmd1YWdlcyA9IHt9O1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MucmVkaXJlY3RMYW5ndWFnZXMgPSBKU09OLnBhcnNlKHZhbHVlKTtcblx0XHRcdFx0XHRcdFx0dGhpcy5yZWRpcmVjdExhbmd1YWdlcygpO1xuXHRcdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdFx0fSBjYXRjaCB7XG5cdFx0XHRcdFx0XHRcdG5ldyBOb3RpY2UoXCJJbnZhbGlkIEpTT05cIik7IC8vTk9TT05BUlxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQvL1RPRE8gKEBtYXl1cmFua3YpIFJlLXJlbmRlciAoVGVzdClcblx0XHRcdFx0fSkpO1xuXHR9XG5cdGdlbmVyYXRlSW5saW5lQ29kZVNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDNcIiwge3RleHQ6IFwiSW5saW5lIENvZGUgQXBwZWFyYW5jZVwifSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIlN5bnRheCBIaWdobGlnaHQgSW5saW5lIENvZGVcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZW5hYmxlZCwgaW4gcmVhZGluZyBtb2RlLCBpbmxpbmUgY29kZSB3aWxsIGJlIHN5bnRheCBoaWdobGlnaHRlZCBiYXNlZCBvbiBhIGxhbmd1YWdlIHNldCB3aXRoIGB7bGFuZ3VhZ2V9IGhpZ2hsaWdodGVkX2lubGluZV9jb2RlYC4gU2VlIHRoZSBSRUFETUUgZm9yIG1vcmUgaW5mb3JtYXRpb24uXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuc3ludGF4SGlnaGxpZ2h0KVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5zeW50YXhIaWdobGlnaHQgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncyh0cnVlKTtcblx0XHRcdFx0fSkpO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJTdHlsZSBJbmxpbmUgQ29kZVwiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBlbmFibGVkLCBpbmxpbmUgY29kZSB3aWxsIGJlIHN0eWxlZC5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5zdHlsZSlcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuc3R5bGUgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLmdlbmVyYXRlSW5saW5lQ29kZVN0eWxlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KSk7XG5cdFx0dGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KCk7XG5cdFx0dGhpcy5nZW5lcmF0ZUlubGluZUNvZGVTdHlsZVNldHRpbmdzKCk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBUaXRsZSBDb2xvdXJcIilcblx0XHRcdC5zZXREZXNjKFwiVGhlIHRleHQgY29sb3VyIG9mIGlubGluZSBjb2RlIHRpdGxlcy5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyLHNldHRpbmcsXG5cdFx0XHRcdFwidGl0bGVfdGV4dFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmlubGluZS50aXRsZVRleHRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaW5saW5lLnRpdGxlVGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBUaXRsZSBGb250IFdlaWdodFwiKVxuXHRcdFx0LnNldERlc2MoXCJEZXRlcm1pbmVzIGhvdyBib2xkIGlubGluZSBjb2RlIHRpdGxlcyBhcHBlYXIuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoMSw5LDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUudGl0bGVGb250V2VpZ2h0KVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS50aXRsZUZvbnRXZWlnaHQgPSB2YWx1ZTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtidXR0b25cblx0XHRcdFx0XHQuc2V0SWNvbihcInJlc2V0XCIpXG5cdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJSZXN0b3JlIGRlZmF1bHQgZm9udCB3ZWlnaHRcIilcblx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnRpdGxlRm9udFdlaWdodCA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5pbmxpbmUudGl0bGVGb250V2VpZ2h0O1xuXHRcdFx0XHRcdFx0cmVzZXR0YWJsZVNsaWRlci5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnRpdGxlRm9udFdlaWdodCk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHR9XG5cdGdlbmVyYXRlSW5saW5lQ29kZVN0eWxlU2V0dGluZ3MoKSB7XG5cdFx0dGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyLmVtcHR5KCk7XG5cdFx0aWYgKCF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnN0eWxlKVxuXHRcdFx0cmV0dXJuO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSW5saW5lIENvZGUgQmFja2dyb3VuZCBDb2xvdXJcIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyLHNldHRpbmcsXG5cdFx0XHRcdFwiaW5saW5lX2JhY2tncm91bmRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5pbmxpbmUuYmFja2dyb3VuZENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5pbmxpbmUuYmFja2dyb3VuZENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBUZXh0IENvbG91clwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbix0aGlzLmlubGluZUNvZGVTdHlsZXNDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XCJpbmxpbmVfdGV4dFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmlubGluZS50ZXh0Q29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmlubGluZS50ZXh0Q29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmlubGluZUNvZGVTdHlsZXNDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIklubGluZSBDb2RlIEFjdGl2ZSBUZXh0IENvbG91clwiKVxuXHRcdFx0LnNldERlc2MoXCJUaGUgdGV4dCBjb2xvdXIgd2hlbiBlZGl0aW5nIGlubGluZSBjb2RlLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbix0aGlzLmlubGluZUNvZGVTdHlsZXNDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XCJpbmxpbmVfYWN0aXZlX3RleHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5pbmxpbmUuYWN0aXZlVGV4dENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5pbmxpbmUuYWN0aXZlVGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBGb250IFdlaWdodFwiKVxuXHRcdFx0LnNldERlc2MoXCJEZXRlcm1pbmVzIGhvdyBib2xkIGlubGluZSBjb2RlIGFwcGVhcnMuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoMSw5LDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuZm9udFdlaWdodClcblx0XHRcdFx0XHQuc2V0RHluYW1pY1Rvb2x0aXAoKVxuXHRcdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuZm9udFdlaWdodCA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBmb250IHdlaWdodFwiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuZm9udFdlaWdodCA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5pbmxpbmUuZm9udFdlaWdodDtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5mb250V2VpZ2h0KTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBDdXJ2YXR1cmVcIilcblx0XHRcdC5zZXREZXNjKFwiRGV0ZXJtaW5lcyBob3cgcm91bmRlZCBpbmxpbmUgY29kZSBhcHBlYXIgaW4gcGl4ZWxzLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0bGV0IHJlc2V0dGFibGVTbGlkZXI6IFNsaWRlckNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRTbGlkZXIoKHNsaWRlcikgPT4ge3Jlc2V0dGFibGVTbGlkZXIgPSBzbGlkZXJcblx0XHRcdFx0XHQuc2V0TGltaXRzKDAsMTIsMSlcblx0XHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5jdXJ2YXR1cmUpXG5cdFx0XHRcdFx0LnNldER5bmFtaWNUb29sdGlwKClcblx0XHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLmN1cnZhdHVyZSA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBjdXJ2YXR1cmVcIilcblx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLmN1cnZhdHVyZSA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5pbmxpbmUuY3VydmF0dXJlO1xuXHRcdFx0XHRcdFx0cmVzZXR0YWJsZVNsaWRlci5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLmN1cnZhdHVyZSk7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuaW5saW5lQ29kZVN0eWxlc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiSW5saW5lIENvZGUgVmVydGljYWwgUGFkZGluZ1wiKVxuXHRcdFx0LnNldERlc2MoXCJEZXRlcm1pbmVzIGhvdyBtdWNoIHZlcnRpY2FsIGlubmVyIHBhZGRpbmcgaW4gcGl4ZWxzIGlubGluZSBjb2RlIGhhcy5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7XG5cdFx0XHRcdGxldCByZXNldHRhYmxlU2xpZGVyOiBTbGlkZXJDb21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkU2xpZGVyKChzbGlkZXIpID0+IHtyZXNldHRhYmxlU2xpZGVyID0gc2xpZGVyXG5cdFx0XHRcdFx0LnNldExpbWl0cygwLDEwLDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ1ZlcnRpY2FsKVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5wYWRkaW5nVmVydGljYWwgPSB2YWx1ZTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtidXR0b25cblx0XHRcdFx0XHQuc2V0SWNvbihcInJlc2V0XCIpXG5cdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJSZXN0b3JlIGRlZmF1bHQgdmVydGljYWwgcGFkZGluZ1wiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ1ZlcnRpY2FsID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLnNldHRpbmdzLmlubGluZS5wYWRkaW5nVmVydGljYWw7XG5cdFx0XHRcdFx0XHRyZXNldHRhYmxlU2xpZGVyLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ1ZlcnRpY2FsKTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBIb3Jpem9udGFsIFBhZGRpbmdcIilcblx0XHRcdC5zZXREZXNjKFwiRGV0ZXJtaW5lcyBob3cgbXVjaCBob3Jpem9udGFsIGlubmVyIHBhZGRpbmcgaW4gcGl4ZWxzIGlubGluZSBjb2RlIGhhcy5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7XG5cdFx0XHRcdGxldCByZXNldHRhYmxlU2xpZGVyOiBTbGlkZXJDb21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkU2xpZGVyKChzbGlkZXIpID0+IHtyZXNldHRhYmxlU2xpZGVyID0gc2xpZGVyXG5cdFx0XHRcdFx0LnNldExpbWl0cygwLDEwLDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ0hvcml6b250YWwpXG5cdFx0XHRcdFx0LnNldER5bmFtaWNUb29sdGlwKClcblx0XHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnBhZGRpbmdIb3Jpem9udGFsID0gdmFsdWU7XG5cdFx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0c2V0dGluZy5hZGRFeHRyYUJ1dHRvbigoYnV0dG9uKSA9PiB7YnV0dG9uXG5cdFx0XHRcdFx0LnNldEljb24oXCJyZXNldFwiKVxuXHRcdFx0XHRcdC5zZXRUb29sdGlwKFwiUmVzdG9yZSBkZWZhdWx0IGhvcml6b250YWwgcGFkZGluZ1wiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ0hvcml6b250YWwgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0uc2V0dGluZ3MuaW5saW5lLnBhZGRpbmdIb3Jpem9udGFsO1xuXHRcdFx0XHRcdFx0cmVzZXR0YWJsZVNsaWRlci5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnBhZGRpbmdIb3Jpem9udGFsKTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0bmV3IFNldHRpbmcodGhpcy5pbmxpbmVDb2RlU3R5bGVzQ29udGFpbmVyKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBIb3Jpem9udGFsIE1hcmdpblwiKVxuXHRcdFx0LnNldERlc2MoXCJEZXRlcm1pbmVzIGhvdyBtdWNoIGhvcml6b250YWwgb3V0ZXIgbWFyZ2luIGlzIGFkZGVkIHRvIHRoZSBpbmxpbmUgY29kZSBpbiBwaXhlbHMuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoMCw4LDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUubWFyZ2luSG9yaXpvbnRhbClcblx0XHRcdFx0XHQuc2V0RHluYW1pY1Rvb2x0aXAoKVxuXHRcdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUubWFyZ2luSG9yaXpvbnRhbCA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBob3Jpem9udGFsIG1hcmdpblwiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUubWFyZ2luSG9yaXpvbnRhbCA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5pbmxpbmUubWFyZ2luSG9yaXpvbnRhbDtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5tYXJnaW5Ib3Jpem9udGFsKTtcblx0XHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdH1cblx0Z2VuZXJhdGVBZHZhbmNlZEhlYWRpbmcoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0Y29uc3QgYWR2YW5jZWRTZXR0aW5nc0hlYWRpbmcgPSBjb250YWluZXJFbC5jcmVhdGVFbChcImgyXCIsIHt0ZXh0OiBcIkFkdmFuY2VkIFNldHRpbmdzXCIsIGNsczogYGFkdmFuY2VkLXNldHRpbmdzLWhlYWRlciR7dGhpcy5oaWRlQWR2YW5jZWQ/XCIgaGVhZGVyLWZvbGRlZFwiOlwiXCJ9YH0pO1xuXHRcdGFkdmFuY2VkU2V0dGluZ3NIZWFkaW5nLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCgpPT57XG5cdFx0XHR0aGlzLmhpZGVBZHZhbmNlZCA9ICF0aGlzLmhpZGVBZHZhbmNlZDtcblx0XHRcdGFkdmFuY2VkU2V0dGluZ3NIZWFkaW5nLmNsYXNzTGlzdC50b2dnbGUoXCJoZWFkZXItZm9sZGVkXCIsdGhpcy5oaWRlQWR2YW5jZWQpO1xuXHRcdFx0dGhpcy5nZW5lcmF0ZUFkdmFuY2VkU2V0dGluZ3MoKTtcblx0XHR9KTtcblx0fVxuXHRnZW5lcmF0ZUFkdmFuY2VkU2V0dGluZ3MoKSB7XG5cdFx0dGhpcy5hZHZhbmNlZFNldHRpbmdzQ29udGFpbmVyLmVtcHR5KCk7XG5cdFx0aWYgKHRoaXMuaGlkZUFkdmFuY2VkKVxuXHRcdFx0cmV0dXJuO1xuXHRcdHRoaXMuZ2VuZXJhdGVJbnRlcmZhY2VTZXR0aW5ncyh0aGlzLmFkdmFuY2VkU2V0dGluZ3NDb250YWluZXIpO1xuXHRcdG5ldyBTZXR0aW5nKHRoaXMuYWR2YW5jZWRTZXR0aW5nc0NvbnRhaW5lcilcblx0XHRcdC5zZXROYW1lKFwiRWRpdG9yIEFjdGl2ZSBMaW5lIEhpZ2hsaWdodFwiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBlbmFibGVkLCBoaWdobGlnaHRzIHRoZSBhY3RpdmUgbGluZSBvdXRzaWRlIGNvZGVibG9ja3MuXCIpXG5cdFx0XHQuc2V0Q2xhc3MoXCJjb2RlLXN0eWxlci1zcGFjZWRcIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VG9vbHRpcChcIlRvZ2dsZSBlZGl0b3IgYWN0aXZlIGxpbmUgaGlnaGxpZ2h0aW5nXCIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGlnaGxpZ2h0cy5hY3RpdmVFZGl0b3JMaW5lKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlRWRpdG9yTGluZSA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzW1wiZWRpdG9yQWN0aXZlTGluZUhpZ2hsaWdodFwiXS5mb3JFYWNoKGNvbXBvbmVudCA9PiB7Y29tcG9uZW50LnNldERpc2FibGVkKCF2YWx1ZSk7fSk7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0fSkpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLHRoaXMuYWR2YW5jZWRTZXR0aW5nc0NvbnRhaW5lcixzZXR0aW5nLFxuXHRcdFx0XHRcImVkaXRvcl9hY3RpdmVfbGluZV9oaWdobGlnaHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oaWdobGlnaHRzLmFjdGl2ZUVkaXRvckxpbmVDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5hY3RpdmVFZGl0b3JMaW5lQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0XHQoKSA9PiAhdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlRWRpdG9yTGluZSxcblx0XHRcdCk7XG5cdFx0XHR9KTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmFkdmFuY2VkU2V0dGluZ3NDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIkV4dGVybmFsIFJlZmVyZW5jZXMgQXV0b21hdGljIFVwZGF0ZSBvbiBMb2FkXCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGVuYWJsZWQsIGV4dGVybmFsIHJlZmVyZW5jZXMgd2lsbCBiZSB1cGRhdGVkIGF1dG9tYXRpY2FsbHkgb24gbG9hZCB3aGVuIHBvc3NpYmxlLlwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRUb29sdGlwKFwiVG9nZ2xlIGF1dG8tdXBkYXRlIGV4dGVybmFsIHJlZmVyZW5jZXNcIilcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmV4dGVybmFsUmVmZXJlbmNlVXBkYXRlT25Mb2FkKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuZXh0ZXJuYWxSZWZlcmVuY2VVcGRhdGVPbkxvYWQgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHR9KSk7XG5cdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJlZGl0b3JBY3RpdmVMaW5lSGlnaGxpZ2h0XCJdLnB1c2godGhpcy5waWNrcnNbXCJlZGl0b3JfYWN0aXZlX2xpbmVfaGlnaGxpZ2h0XCJdLnJlc2V0QnV0dG9uKTtcblx0XHRuZXcgU2V0dGluZyh0aGlzLmFkdmFuY2VkU2V0dGluZ3NDb250YWluZXIpXG5cdFx0XHQuc2V0TmFtZShcIlJlc2V0IGluYnVpbHQgdGhlbWVzXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlRoaXMgd2lsbCByZXR1cm4gYWxsIGluYnVpbHQgdGhlbWVzIHRvIHRoZSBwbHVnaW4gZGVmYXVsdHNcIilcblx0XHRcdC5hZGRCdXR0b24oYnV0dG9uID0+IGJ1dHRvblxuXHRcdFx0XHQuc2V0QnV0dG9uVGV4dChcIlJlc2V0XCIpXG5cdFx0XHRcdC5vbkNsaWNrKCgpPT57XG5cdFx0XHRcdFx0T2JqZWN0LmVudHJpZXMoSU5CVUlMVF9USEVNRVMpLmZvckVhY2goKFt0aGVtZU5hbWUsdGhlbWVdOiBbc3RyaW5nLENvZGVTdHlsZXJUaGVtZV0pID0+IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGVtZU5hbWVdID0gc3RydWN0dXJlZENsb25lKHRoZW1lKSk7XG5cdFx0XHRcdFx0aWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWUgaW4gSU5CVUlMVF9USEVNRVMpXG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdKTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncyh0cnVlKTtcblx0XHRcdFx0fSkpO1xuXHR9XG5cdGdlbmVyYXRlSW50ZXJmYWNlU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkJ1dHRvbiBDb2xvdXJcIilcblx0XHRcdC5zZXREZXNjKFwiVXNlZCBmb3IgVUkgYnV0dG9ucyBsaWtlIHRoZSBjb3B5IGNvZGUgYnV0dG9uLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbixjb250YWluZXJFbCxzZXR0aW5nLFxuXHRcdFx0XHRcImRlZmF1bHRfaGlnaGxpZ2h0XCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uYWR2YW5jZWQuYnV0dG9uQ29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmFkdmFuY2VkLmJ1dHRvbkNvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkJ1dHRvbiBBY3RpdmUgQ29sb3VyXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkNvbG91ciBidXR0b25zIHVzZSB3aGVuIGFjdGl2YXRlZC5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxcblx0XHRcdFx0XCJkZWZhdWx0X2hpZ2hsaWdodFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmFkdmFuY2VkLmJ1dHRvbkFjdGl2ZUNvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5hZHZhbmNlZC5idXR0b25BY3RpdmVDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHR9XG5cdGdlbmVyYXRlUGx1Z2luQ29tcGF0aWJpbGl0eVNldHRpbmdzKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZVNwYW4oXCJOZWVkcyBjb21wbGV0aW5nXCIpOyAvL1RPRE8gKEBtYXl1cmFua3YpIENvbXBsZXRlXG5cdFx0Ly8gRXhlY3V0ZSBDb2RlIFNldHRpbmdzXG5cdH1cblx0Z2VuZXJhdGVFeGFtcGxlQ29kZWJsb2NrU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkV4YW1wbGUgQ29kZWJsb2NrIFBhcmFtZXRlciBTdHJpbmdcIilcblx0XHRcdC5zZXREZXNjKFwiUGFyYW1ldGVycyBhbmQgbGFuZ3VhZ2Ugd2hpY2ggd291bGQgZm9sbG93IGNvZGVibG9jayBkZWxpbWl0ZXIuXCIpXG5cdFx0XHQuc2V0Q2xhc3MoXCJjb2RlLXN0eWxlci1zZXR0aW5nLXRleHQtd2lkZVwiKVxuXHRcdFx0LmFkZFRleHQodGV4dCA9PiB0ZXh0XG5cdFx0XHRcdC5zZXRQbGFjZWhvbGRlcihFWEFNUExFX0NPREVCTE9DS19QQVJBTUVURVJTKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuZXhhbXBsZUNvZGVibG9ja1BhcmFtZXRlcnMpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5leGFtcGxlQ29kZWJsb2NrUGFyYW1ldGVycyA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuc2F2ZVNldHRpbmdzKCk7XG5cdFx0XHRcdFx0dGhpcy5nZW5lcmF0ZUV4YW1wbGVDb2RlYmxvY2soKTtcblx0XHRcdFx0fSkpO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJFeGFtcGxlIENvZGVibG9jayBQYXJhbWV0ZXIgU3RyaW5nXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkNvbnRlbnQgZm9yIGV4YW1wbGUgY29kZWJsb2NrLlwiKVxuXHRcdFx0LnNldENsYXNzKFwiY29kZS1zdHlsZXItc2V0dGluZy10ZXh0LWFyZWFcIilcblx0XHRcdC5hZGRUZXh0QXJlYSh0ZXh0QXJlYSA9PiB0ZXh0QXJlYVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuZXhhbXBsZUNvZGVibG9ja0NvbnRlbnQpXG5cdFx0XHRcdC5zZXRQbGFjZWhvbGRlcihFWEFNUExFX0NPREVCTE9DS19DT05URU5UKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKT0+e1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmV4YW1wbGVDb2RlYmxvY2tDb250ZW50ID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHR0aGlzLmdlbmVyYXRlRXhhbXBsZUNvZGVibG9jaygpO1xuXHRcdFx0XHR9KSk7XG5cdH1cblx0Z2VuZXJhdGVFeGFtcGxlQ29kZWJsb2NrKCkge1xuXHRcdHRoaXMuZXhhbXBsZUNvZGVibG9ja0NvbnRhaW5lci5lbXB0eSgpO1xuXHRcdGNvbnN0IGNvZGVibG9ja1N0cmluZyA9IFwiYGBgYGBgYFwiK3RoaXMucGx1Z2luLnNldHRpbmdzLmV4YW1wbGVDb2RlYmxvY2tQYXJhbWV0ZXJzK1wiXFxuXCIrdGhpcy5wbHVnaW4uc2V0dGluZ3MuZXhhbXBsZUNvZGVibG9ja0NvbnRlbnQrXCJcXG5gYGBgYGBgXCI7XG5cdFx0TWFya2Rvd25SZW5kZXJlci5yZW5kZXIodGhpcy5wbHVnaW4uYXBwLGNvZGVibG9ja1N0cmluZyx0aGlzLmV4YW1wbGVDb2RlYmxvY2tDb250YWluZXIsU0VUVElOR1NfU09VUkNFUEFUSF9QUkVGSVgrY29kZWJsb2NrU3RyaW5nLHRoaXMucGx1Z2luKTtcblx0XHR0aGlzLmV4YW1wbGVDb2RlYmxvY2tDb250YWluZXIucXVlcnlTZWxlY3RvcihcInByZSA+IGJ1dHRvbi5jb3B5LWNvZGUtYnV0dG9uXCIpPy5jbGFzc0xpc3Q/LmFkZChcImNvZGUtc3R5bGVyLXNldHRpbmdzLWJ1dHRvblwiKTtcblx0fVxuXHRnZW5lcmF0ZUV4YW1wbGVJbmxpbmVDb2RlU2V0dGluZ3MoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIklubGluZSBDb2RlIEV4YW1wbGVcIilcblx0XHRcdC5zZXREZXNjKFwiVGV4dCB0byByZW5kZXIgYXMgZXhhbXBsZSBpbnNpZGUgY29kZSBkZWxpbWl0ZXJzLlwiKVxuXHRcdFx0LnNldENsYXNzKFwiY29kZS1zdHlsZXItc2V0dGluZy10ZXh0LXdpZGVcIilcblx0XHRcdC5hZGRUZXh0KHRleHQgPT4gdGV4dFxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoRVhBTVBMRV9JTkxJTkVfQ09ERSlcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmV4YW1wbGVJbmxpbmVDb2RlKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuZXhhbXBsZUlubGluZUNvZGUgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xuXHRcdFx0XHRcdHRoaXMuZ2VuZXJhdGVFeGFtcGxlSW5saW5lQ29kZSgpO1xuXHRcdFx0XHR9KSk7XG5cdH1cblx0Z2VuZXJhdGVFeGFtcGxlSW5saW5lQ29kZSgpIHtcblx0XHR0aGlzLmV4YW1wbGVJbmxpbmVDb2RlQ29udGFpbmVyLmVtcHR5KCk7XG5cdFx0TWFya2Rvd25SZW5kZXJlci5yZW5kZXIodGhpcy5wbHVnaW4uYXBwLFwiYFwiK3RoaXMucGx1Z2luLnNldHRpbmdzLmV4YW1wbGVJbmxpbmVDb2RlK1wiYFwiLHRoaXMuZXhhbXBsZUlubGluZUNvZGVDb250YWluZXIsU0VUVElOR1NfU09VUkNFUEFUSF9QUkVGSVgsdGhpcy5wbHVnaW4pO1xuXHRcdHRoaXMuZXhhbXBsZUlubGluZUNvZGVDb250YWluZXIucXVlcnlTZWxlY3RvcihcImNvZGVcIik/LmNsYXNzTGlzdD8uYWRkKFwiY29kZS1zdHlsZXItc2V0dGluZ3MtaW5saW5lLWNvZGVcIik7XG5cdH1cblx0Z2VuZXJhdGVEb25hdGlvbkZvb3Rlcihjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImhyXCIpO1xuXHRcdGNvbnN0IGRvbmF0aW9uRGl2ID0gY29udGFpbmVyRWwuY3JlYXRlRWwoXCJkaXZcIiwgeyBjbHM6IFwiY29kZS1zdHlsZXItZG9uYXRpb25cIiwgfSk7XG5cdFx0Y29uc3QgZG9uYXRpb25UZXh0ID0gY3JlYXRlRWwoXCJwXCIsIHt0ZXh0OiBcIklmIHlvdSBsaWtlIHRoaXMgcGx1Z2luLCBhbmQgd291bGQgbGlrZSB0byBoZWxwIHN1cHBvcnQgY29udGludWVkIGRldmVsb3BtZW50LCB1c2UgdGhlIGJ1dHRvbiBiZWxvdyFcIn0pO1xuXHRcdGRvbmF0aW9uRGl2LmFwcGVuZENoaWxkKGRvbmF0aW9uVGV4dCk7XG5cdFx0Y29uc3QgZG9uYXRpb25CdXR0b24gPSBjcmVhdGVFbChcImFcIiwgeyBocmVmOiBcImh0dHBzOi8vd3d3LmJ1eW1lYWNvZmZlZS5jb20vbWF5dXJhbmt2MlwifSk7XG5cdFx0ZG9uYXRpb25CdXR0b24uaW5uZXJIVE1MID0gXCI8aW1nIHNyYz1cXFwiaHR0cHM6Ly9pbWcuYnV5bWVhY29mZmVlLmNvbS9idXR0b24tYXBpLz90ZXh0PUJ1eSBtZSBhIGNvZmZlZSZlbW9qaT0mc2x1Zz1tYXl1cmFua3YyJmJ1dHRvbl9jb2xvdXI9ZTNlN2VmYTAmZm9udF9jb2xvdXI9MjYyNjI2JmZvbnRfZmFtaWx5PUludGVyJm91dGxpbmVfY29sb3VyPTI2MjYyNiZjb2ZmZWVfY29sb3VyPWEwNTIyZFxcXCIgaGVpZ2h0PVxcXCI0MnB4XFxcIj5cIjtcblx0XHRkb25hdGlvbkRpdi5hcHBlbmRDaGlsZChkb25hdGlvbkJ1dHRvbik7XG5cdH1cblxuXHQvLyBDcmVhdGUgU2V0dGluZ3Ncblx0Y3JlYXRlUGlja3IocGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luLCBjb250YWluZXJFbDogSFRNTEVsZW1lbnQsIHNldHRpbmc6IFNldHRpbmcsIGlkOiBzdHJpbmcsIGdldFJlbGV2YW50VGhlbWVDb2xvdXI6IChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycyk9PkNvbG91ciwgc2F2ZVJlbGV2YW50VGhlbWVDb2xvdXI6IChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKT0+dm9pZCwgZGlzYWJsZWQ/OiAoKT0+Ym9vbGVhbikge1xuXHRcdGNvbnN0IHBpY2tyOiBQaWNrclJlc2V0dGFibGUgPSBuZXcgUGlja3JSZXNldHRhYmxlKHBsdWdpbixjb250YWluZXJFbCxzZXR0aW5nLGdldFJlbGV2YW50VGhlbWVDb2xvdXIsc2F2ZVJlbGV2YW50VGhlbWVDb2xvdXIpO1xuXHRcdHBpY2tyXG5cdFx0XHQub24oXCJzaG93XCIsIChjb2xvdXI6IFBpY2tyLkhTVmFDb2xvciwgaW5zdGFuY2U6IFBpY2tyKSA9PiB7XG5cdFx0XHRcdGlmICh0eXBlb2YgZGlzYWJsZWQgIT09IFwidW5kZWZpbmVkXCIgJiYgZGlzYWJsZWQoKSlcblx0XHRcdFx0XHRpbnN0YW5jZS5oaWRlKCk7XG5cdFx0XHRcdC8vIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gKGluc3RhbmNlLmdldFJvb3QoKSBhcyBhbnkpLmludGVyYWN0aW9uLnJlc3VsdC5zZWxlY3QoKSkpXG5cdFx0XHR9KVxuXHRcdFx0Lm9uKFwic2F2ZVwiLCAoY29sb3VyOiBQaWNrci5IU1ZhQ29sb3IsIGluc3RhbmNlOiBQaWNrclJlc2V0dGFibGUpID0+IHtcblx0XHRcdFx0Y29uc3Qgc2F2ZWRDb2xvdXI6IENvbG91ciA9IGAjJHtjb2xvdXIudG9IRVhBKCkudG9TdHJpbmcoKS5zdWJzdHJpbmcoMSl9YDtcblx0XHRcdFx0aW5zdGFuY2UuaGlkZSgpO1xuXHRcdFx0XHRpbnN0YW5jZS5hZGRTd2F0Y2goc2F2ZWRDb2xvdXIpO1xuXHRcdFx0XHRpbnN0YW5jZS5zYXZlQ29sb3VyKHNhdmVkQ29sb3VyKTtcblx0XHRcdH0pXG5cdFx0XHQub24oXCJjYW5jZWxcIiwgKGluc3RhbmNlOiBQaWNrclJlc2V0dGFibGUpID0+IHtpbnN0YW5jZS5oaWRlKCk7fSk7XG5cdFx0c2V0dGluZy5hZGRFeHRyYUJ1dHRvbigoYnV0dG9uKSA9PiB7cGlja3IucmVzZXRCdXR0b24gPSBidXR0b25cblx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdC5zZXREaXNhYmxlZCh0eXBlb2YgZGlzYWJsZWQgIT09IFwidW5kZWZpbmVkXCIgJiYgZGlzYWJsZWQoKSlcblx0XHRcdC5zZXRUb29sdGlwKFwiUmVzdG9yZSBkZWZhdWx0IGNvbG91clwiKVxuXHRcdFx0Lm9uQ2xpY2soKCkgPT4ge3BpY2tyLnJlc2V0Q29sb3VyKCk7fSk7XG5cdFx0fSk7XG5cdFx0dGhpcy5waWNrcnNbaWRdPXBpY2tyO1xuXHR9XG5cblx0Ly8gVXBkYXRlIFNldHRpbmdzXG5cdHNhdmVTZXR0aW5ncyhyZXJlbmRlcjogYm9vbGVhbj1mYWxzZSkge1xuXHRcdChhc3luYyAoKSA9PiB7YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7fSkoKTtcblx0XHRpZiAocmVyZW5kZXIpXG5cdFx0XHR0aGlzLnJlcmVuZGVyKCk7XG5cdH1cblx0cmVyZW5kZXIoKSB7XG5cdFx0dGhpcy5wbHVnaW4ucmVuZGVyUmVhZGluZ1ZpZXcoKTtcblx0XHRpZiAodGhpcy5wYWdlID09PSBcImNvZGVibG9ja1wiKVxuXHRcdFx0dGhpcy5nZW5lcmF0ZUV4YW1wbGVDb2RlYmxvY2soKTtcblx0XHRlbHNlIGlmICh0aGlzLnBhZ2UgPT09IFwiaW5saW5lXCIpXG5cdFx0XHR0aGlzLmdlbmVyYXRlRXhhbXBsZUlubGluZUNvZGUoKTtcblx0fVxuXHR1cGRhdGVEcm9wZG93bihkcm9wZG93bjogRHJvcGRvd25Db21wb25lbnQsIHNldHRpbmdzOiBDb2RlU3R5bGVyU2V0dGluZ3MpIHtcblx0XHRkcm9wZG93bi5zZWxlY3RFbC5lbXB0eSgpO1xuXHRcdE9iamVjdC5rZXlzKHNldHRpbmdzLnRoZW1lcykuZm9yRWFjaCgodGhlbWVfbmFtZTogc3RyaW5nKSA9PiB7XG5cdFx0XHRkcm9wZG93bi5hZGRPcHRpb24odGhlbWVfbmFtZSwgdGhlbWVfbmFtZSk7XG5cdFx0fSk7XG5cdFx0ZHJvcGRvd24uc2V0VmFsdWUoc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZSk7XG5cdH1cblx0dXBkYXRlQWx0ZXJuYXRpdmVIaWdobGlnaHRzKCkge1xuXHRcdGlmICh0aGlzLnBhZ2UgIT09IFwiY29kZWJsb2NrXCIgfHwgdGhpcy5jb2RlYmxvY2tQYWdlICE9PSBcImhpZ2hsaWdodFwiKVxuXHRcdFx0cmV0dXJuO1xuXHRcdHRoaXMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzQ29udGFpbmVyLmVtcHR5KCk7XG5cdFx0T2JqZWN0LmtleXModGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMubGlnaHQuaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHMpLmZvckVhY2goKGFsdGVybmF0aXZlSGlnaGxpZ2h0TmFtZSkgPT4ge1xuXHRcdFx0bmV3IFNldHRpbmcodGhpcy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNDb250YWluZXIpXG5cdFx0XHRcdC5zZXROYW1lKGFsdGVybmF0aXZlSGlnaGxpZ2h0TmFtZSlcblx0XHRcdFx0LnNldERlc2MoYFRvIGhpZ2hsaWdodCBsaW5lcyB3aXRoIHRoaXMgaGlnaGxpZ2h0LCB1c2UgdGhlICR7YWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lfSBwYXJhbWV0ZXIuYClcblx0XHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0XHR0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4sdGhpcy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNDb250YWluZXIsc2V0dGluZyxcblx0XHRcdFx0XHRcdGBhbHRlcm5hdGl2ZV9oaWdobGlnaHRfJHthbHRlcm5hdGl2ZUhpZ2hsaWdodE5hbWV9YCxcblx0XHRcdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gYWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lIGluIHJlbGV2YW50VGhlbWVDb2xvdXJzLmxpZ2h0LmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzP3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzW2FsdGVybmF0aXZlSGlnaGxpZ2h0TmFtZV06dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNbYWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lXSxcblx0XHRcdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNbYWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lXSA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdFx0LnNldEljb24oXCJ0cmFzaFwiKVxuXHRcdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJEZWxldGUgaGlnaGxpZ2h0XCIpXG5cdFx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGRlbGV0ZSB0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuY29sb3Vycy5saWdodC5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0c1thbHRlcm5hdGl2ZUhpZ2hsaWdodE5hbWVdO1xuXHRcdFx0XHRcdFx0XHRkZWxldGUgdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMuZGFyay5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0c1thbHRlcm5hdGl2ZUhpZ2hsaWdodE5hbWVdO1xuXHRcdFx0XHRcdFx0XHRuZXcgTm90aWNlKGBSZW1vdmVkIGhpZ2hsaWdodCBcIiR7YWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lfVwiLmApOyAvL05PU09OQVJcblx0XHRcdFx0XHRcdFx0dGhpcy51cGRhdGVBbHRlcm5hdGl2ZUhpZ2hsaWdodHMoKTtcblx0XHRcdFx0XHRcdFx0dGhpcy5zYXZlU2V0dGluZ3MoKTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHR9KTtcblx0fVxuXHRyZWRpcmVjdExhbmd1YWdlcygpIHtcblx0XHRPYmplY3QuZW50cmllcyh0aGlzLnBsdWdpbi5zZXR0aW5ncy5yZWRpcmVjdExhbmd1YWdlcykuZm9yRWFjaCgoW2xhbmd1YWdlTmFtZSwgbGFuZ3VhZ2VTZXR0aW5nc106IFtzdHJpbmcsIHtjb2xvdXI/OiBDb2xvdXIsIGljb24/OiBzdHJpbmd9XSk9Pntcblx0XHRcdGlmIChcImljb25cIiBpbiBsYW5ndWFnZVNldHRpbmdzKSB7XG5cdFx0XHRcdGlmIChMQU5HVUFHRV9OQU1FU1tsYW5ndWFnZU5hbWVdIGluIHRoaXMucGx1Z2luLmxhbmd1YWdlSWNvbnMpXG5cdFx0XHRcdFx0VVJMLnJldm9rZU9iamVjdFVSTCh0aGlzLnBsdWdpbi5sYW5ndWFnZUljb25zW0xBTkdVQUdFX05BTUVTW2xhbmd1YWdlTmFtZV1dKTtcblx0XHRcdFx0dGhpcy5wbHVnaW4ubGFuZ3VhZ2VJY29uc1tMQU5HVUFHRV9OQU1FU1tsYW5ndWFnZU5hbWVdXSA9IFVSTC5jcmVhdGVPYmplY3RVUkwobmV3IEJsb2IoW2A8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+JHtsYW5ndWFnZVNldHRpbmdzLmljb259PC9zdmc+YF0sIHsgdHlwZTogXCJpbWFnZS9zdmcreG1sXCIgfSkpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG59XG5cbi8vIEV4dGVuZCBQaWNrciBDbGFzc1xuY2xhc3MgUGlja3JSZXNldHRhYmxlIGV4dGVuZHMgUGlja3Ige1xuXHRzYXZlQ29sb3VyOiAoc2F2ZUNvbG91cjogQ29sb3VyKT0+dm9pZDtcblx0cmVzZXRDb2xvdXI6ICgpPT52b2lkO1xuXHRnZXRDdXJyZW50Q29sb3VyOiAoYWNjZXNzVGhlbWU6IGJvb2xlYW4pPT52b2lkO1xuXHRyZXNldEJ1dHRvbjogRXh0cmFCdXR0b25Db21wb25lbnQ7XG5cblx0Y29uc3RydWN0b3IocGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luLCBjb250YWluZXJFbDogSFRNTEVsZW1lbnQsIHNldHRpbmc6IFNldHRpbmcsIGdldFJlbGV2YW50VGhlbWVDb2xvdXI6IChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycyk9PkNvbG91ciwgc2F2ZVJlbGV2YW50VGhlbWVDb2xvdXI6IChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKT0+dm9pZCwgdG9vbHRpcD86IHN0cmluZykge1xuXHRcdGNvbnN0IHNldHRpbmdzOiBQaWNrci5PcHRpb25zID0ge1xuXHRcdFx0ZWw6IHNldHRpbmcuY29udHJvbEVsLmNyZWF0ZURpdih7Y2xzOiBcInBpY2tlclwifSksXG5cdFx0XHR0aGVtZTogXCJuYW5vXCIsXG5cdFx0XHRkZWZhdWx0OiBnZXRDb2xvdXIoZ2V0UmVsZXZhbnRUaGVtZUNvbG91cihwbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMpKSxcblx0XHRcdHBvc2l0aW9uOiBcImxlZnQtbWlkZGxlXCIsXG5cdFx0XHRsb2NrT3BhY2l0eTogZmFsc2UsXG5cdFx0XHRjb21wb25lbnRzOiB7XG5cdFx0XHRcdHByZXZpZXc6IHRydWUsXG5cdFx0XHRcdGh1ZTogdHJ1ZSxcblx0XHRcdFx0b3BhY2l0eTogdHJ1ZSxcblx0XHRcdFx0aW50ZXJhY3Rpb246IHtcblx0XHRcdFx0XHRoZXg6IHRydWUsXG5cdFx0XHRcdFx0cmdiYTogdHJ1ZSxcblx0XHRcdFx0XHRoc2xhOiBmYWxzZSxcblx0XHRcdFx0XHRpbnB1dDogdHJ1ZSxcblx0XHRcdFx0XHRjYW5jZWw6IHRydWUsXG5cdFx0XHRcdFx0c2F2ZTogdHJ1ZSxcblx0XHRcdFx0fSxcblx0XHRcdH0sXG5cdFx0XHRpMThuOiB7XG5cdFx0XHRcdFwidWk6ZGlhbG9nXCI6IFwiQ29sb3VyIHBpY2tlciBkaWFsb2dcIixcblx0XHRcdFx0XCJidG46dG9nZ2xlXCI6ICh0eXBlb2YgdG9vbHRpcCAhPT0gXCJ1bmRlZmluZWRcIik/dG9vbHRpcDpcIlNlbGVjdCBjb2xvdXJcIixcblx0XHRcdFx0XCJidG46c3dhdGNoXCI6IFwiQ29sb3VyIHN3YXRjaFwiLFxuXHRcdFx0XHRcImJ0bjpsYXN0LWNvbG9yXCI6IFwiVXNlIHByZXZpb3VzIGNvbG91clwiLFxuXHRcdFx0fVxuXHRcdH07XG5cdFx0aWYgKGNvbnRhaW5lckVsLnBhcmVudEVsZW1lbnQgIT09IG51bGwpXG5cdFx0XHRzZXR0aW5ncy5jb250YWluZXIgPSBjb250YWluZXJFbC5wYXJlbnRFbGVtZW50O1xuXHRcdHN1cGVyKHNldHRpbmdzKTtcblx0XHR0aGlzLnNhdmVDb2xvdXIgPSAoc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7XG5cdFx0XHRzYXZlUmVsZXZhbnRUaGVtZUNvbG91cihwbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMsc2F2ZUNvbG91cik7XG5cdFx0XHQoYXN5bmMgKCkgPT4ge2F3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTt9KSgpO1xuXHRcdH07XG5cdFx0dGhpcy5yZXNldENvbG91ciA9ICgpID0+IHtcblx0XHRcdGNvbnN0IHJlc2V0Q29sb3VyOiBDb2xvdXIgPSBnZXRSZWxldmFudFRoZW1lQ29sb3VyKHBsdWdpbi5zZXR0aW5ncy50aGVtZXNbcGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLmNvbG91cnMpO1xuXHRcdFx0dGhpcy5zZXRDb2xvcihnZXRDb2xvdXIocmVzZXRDb2xvdXIpKTtcblx0XHRcdHRoaXMuc2F2ZUNvbG91cihyZXNldENvbG91cik7XG5cdFx0fTtcblx0fVxufVxuXG4vLyBDb2xvdXIgTWFuYWdlbWVudFxuZnVuY3Rpb24gZ2V0UmFuZG9tQ29sb3VyKCk6IENvbG91ciB7XG5cdGNvbnN0IGxldHRlcnMgPSBcIjAxMjM0NTY3ODlBQkNERUZcIjtcblx0bGV0IGNvbG91ciA9IFwiXCI7XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgNjsgaSsrKVxuXHRcdGNvbG91ciArPSBsZXR0ZXJzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDE2KV07XG5cdHJldHVybiBgIyR7Y29sb3VyfUZGYDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb2xvdXIodGhlbWVDb2xvdXI6IENvbG91cik6IENvbG91ciB7XG5cdHJldHVybiBpc0Nzcyh0aGVtZUNvbG91cik/Z2V0Q3NzVmFyaWFibGUodGhlbWVDb2xvdXIpOnRoZW1lQ29sb3VyO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzQ3NzKHBvc3NpYmxlQ3NzOiBzdHJpbmcpOiBwb3NzaWJsZUNzcyBpcyBDU1Mge1xuXHRyZXR1cm4gcG9zc2libGVDc3Muc3RhcnRzV2l0aChcIi0tXCIpICYmIHR5cGVvZiBwb3NzaWJsZUNzcyA9PT0gXCJzdHJpbmdcIjtcbn1cbmZ1bmN0aW9uIGdldENzc1ZhcmlhYmxlKGNzc1ZhcmlhYmxlOiBDU1MpOiBIRVgge1xuXHRjb25zdCB2YXJpYWJsZVZhbHVlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuZ2V0UHJvcGVydHlWYWx1ZShjc3NWYXJpYWJsZSkudHJpbSgpO1xuXHRpZiAodHlwZW9mIHZhcmlhYmxlVmFsdWUgPT09IFwic3RyaW5nXCIgJiYgdmFyaWFibGVWYWx1ZS5zdGFydHNXaXRoKFwiI1wiKSlcblx0XHRyZXR1cm4gYCMke3ZhcmlhYmxlVmFsdWUudHJpbSgpLnN1YnN0cmluZygxKX1gO1xuXHRlbHNlIGlmICh2YXJpYWJsZVZhbHVlLnN0YXJ0c1dpdGgoXCJyZ2JcIikpXG5cdFx0cmV0dXJuIGAjJHtDb2xvclRyYW5zbGF0b3IudG9IRVhBKHZhcmlhYmxlVmFsdWUucmVwbGFjZSgvY2FsY1xcKCguKj8pXFwpL2csKG1hdGNoLGNhcHR1cmUpPT5jYWxjKGNhcHR1cmUpKSkuc3Vic3RyaW5nKDEpfWA7XG5cdGVsc2UgaWYgKHZhcmlhYmxlVmFsdWUuc3RhcnRzV2l0aChcImhzbFwiKSlcblx0XHRyZXR1cm4gYCMke0NvbG9yVHJhbnNsYXRvci50b0hFWEEodmFyaWFibGVWYWx1ZS5yZXBsYWNlKC9jYWxjXFwoKC4qPylcXCkvZywobWF0Y2gsY2FwdHVyZSk9PmNhbGMoY2FwdHVyZSkpKS5zdWJzdHJpbmcoMSl9YDtcblx0ZWxzZVxuXHRcdGNvbnNvbGUud2FybihgV2FybmluZzogQ291bGRuJ3QgZGV0ZXJtaW5lIGNvbG91ciBmb3JtYXQgLSAke3ZhcmlhYmxlVmFsdWV9YCk7XG5cdHJldHVybiBgIyR7Q29sb3JUcmFuc2xhdG9yLnRvSEVYQSh2YXJpYWJsZVZhbHVlKS5zdWJzdHJpbmcoMSl9YDtcbn1cbmZ1bmN0aW9uIGNhbGMoY2FsY1N0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcblx0Y29uc3Qgc3BsaXRTdHJpbmcgPSBjYWxjU3RyaW5nLnRyaW0oKS5yZXBsYWNlKC8oXFxkKiklL2csXCIkMVwiKS5zcGxpdChcIiBcIik7XG5cdGNvbnN0IG9wZXJhdG9yczoge1trZXk6IHN0cmluZ106IChudW0xOm51bWJlciwgbnVtMjpudW1iZXIpID0+IG51bWJlcn0gPSB7XG5cdFx0XCIrXCI6IChudW0xOm51bWJlciwgbnVtMjpudW1iZXIpOm51bWJlciA9PiBNYXRoLm1heChudW0xK251bTIsMCksXG5cdFx0XCItXCI6IChudW0xOm51bWJlciAsbnVtMjpudW1iZXIpOm51bWJlciA9PiBNYXRoLm1heChudW0xLW51bTIsMCksXG5cdH07XG5cdGlmIChzcGxpdFN0cmluZy5sZW5ndGggPT09IDMpXG5cdFx0aWYgKHNwbGl0U3RyaW5nWzFdIGluIG9wZXJhdG9ycylcblx0XHRcdHJldHVybiBgJHtvcGVyYXRvcnNbc3BsaXRTdHJpbmdbMV1dKHBhcnNlRmxvYXQoc3BsaXRTdHJpbmdbMF0pLHBhcnNlRmxvYXQoc3BsaXRTdHJpbmdbMl0pKX0lYDtcblxuXHRjb25zb2xlLndhcm4oXCJXYXJuaW5nOiBDb3VsZG4ndCBwYXJzZSBjYWxjIHN0cmluZ1wiKTtcblx0cmV0dXJuIGNhbGNTdHJpbmc7XG59XG5cbi8vIEZldGNoIFNldHRpbmdzXG5mdW5jdGlvbiBnZXRDdXJyZW50TW9kZSgpIHtcblx0Y29uc3QgYm9keSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJib2R5XCIpO1xuXHRpZiAoYm9keSAhPT0gbnVsbCl7XG5cdFx0aWYgKGJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKFwidGhlbWUtbGlnaHRcIikpXG5cdFx0XHRyZXR1cm4gXCJsaWdodFwiO1xuXHRcdGVsc2UgaWYgKGJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKFwidGhlbWUtZGFya1wiKSlcblx0XHRcdHJldHVybiBcImRhcmtcIjtcblx0fVxuXHRjb25zb2xlLndhcm4oXCJXYXJuaW5nOiBDb3VsZG4ndCBnZXQgY3VycmVudCB0aGVtZVwiKTtcblx0cmV0dXJuIFwibGlnaHRcIjtcbn1cbiIsICJ2YXIgdD1mdW5jdGlvbigpe3JldHVybiB0PU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEscj1hcmd1bWVudHMubGVuZ3RoO248cjtuKyspZm9yKHZhciBpIGluIGU9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLGkpJiYodFtpXT1lW2ldKTtyZXR1cm4gdH0sdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Z1bmN0aW9uIGUodCxlLG4pe2lmKG58fDI9PT1hcmd1bWVudHMubGVuZ3RoKWZvcih2YXIgcixpPTAsbz1lLmxlbmd0aDtpPG87aSsrKSFyJiZpIGluIGV8fChyfHwocj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLDAsaSkpLHJbaV09ZVtpXSk7cmV0dXJuIHQuY29uY2F0KHJ8fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUpKX12YXIgbixyLGksbzshZnVuY3Rpb24odCl7dC5IRVg9XCJIRVhcIix0LlJHQj1cIlJHQlwiLHQuSFNMPVwiSFNMXCIsdC5DTVlLPVwiQ01ZS1wifShufHwobj17fSkpLGZ1bmN0aW9uKHQpe3QuQU5BTE9HT1VTPVwiQU5BTE9HT1VTXCIsdC5DT01QTEVNRU5UQVJZPVwiQ09NUExFTUVOVEFSWVwiLHQuU1BMSVRfQ09NUExFTUVOVEFSWT1cIlNQTElUX0NPTVBMRU1FTlRBUllcIix0LlRSSUFESUM9XCJUUklBRElDXCIsdC5URVRSQURJQz1cIlRFVFJBRElDXCIsdC5TUVVBUkU9XCJTUVVBUkVcIn0ocnx8KHI9e30pKSxmdW5jdGlvbih0KXt0LkFERElUSVZFPVwiQURESVRJVkVcIix0LlNVQlRSQUNUSVZFPVwiU1VCVFJBQ1RJVkVcIn0oaXx8KGk9e30pKSxmdW5jdGlvbih0KXt0LmJsYWNrPVwiIzAwMDAwMFwiLHQuc2lsdmVyPVwiI0MwQzBDMFwiLHQuZ3JheT1cIiM4MDgwODBcIix0LndoaXRlPVwiI0ZGRkZGRlwiLHQubWFyb29uPVwiIzgwMDAwMFwiLHQucmVkPVwiI0ZGMDAwMFwiLHQucHVycGxlPVwiIzgwMDA4MFwiLHQuZnVjaHNpYT1cIiNGRjAwRkZcIix0LmdyZWVuPVwiIzAwODAwMFwiLHQubGltZT1cIiMwMEZGMDBcIix0Lm9saXZlPVwiIzgwODAwMFwiLHQueWVsbG93PVwiI0ZGRkYwMFwiLHQubmF2eT1cIiMwMDAwODBcIix0LmJsdWU9XCIjMDAwMEZGXCIsdC50ZWFsPVwiIzAwODA4MFwiLHQuYXF1YT1cIiMwMEZGRkZcIix0Lm9yYW5nZT1cIiNGRkE1MDBcIix0LmFsaWNlYmx1ZT1cIiNGMEY4RkZcIix0LmFudGlxdWV3aGl0ZT1cIiNGQUVCRDdcIix0LmFxdWFtYXJpbmU9XCIjN0ZGRkQ0XCIsdC5henVyZT1cIiNGMEZGRkZcIix0LmJlaWdlPVwiI0Y1RjVEQ1wiLHQuYmlzcXVlPVwiI0ZGRTRDNFwiLHQuYmxhbmNoZWRhbG1vbmQ9XCIjRkZFQkNEXCIsdC5ibHVldmlvbGV0PVwiIzhBMkJFMlwiLHQuYnJvd249XCIjQTUyQTJBXCIsdC5idXJseXdvb2Q9XCIjREVCODg3XCIsdC5jYWRldGJsdWU9XCIjNUY5RUEwXCIsdC5jaGFydHJldXNlPVwiIzdGRkYwMFwiLHQuY2hvY29sYXRlPVwiI0QyNjkxRVwiLHQuY29yYWw9XCIjRkY3RjUwXCIsdC5jb3JuZmxvd2VyYmx1ZT1cIiM2NDk1RURcIix0LmNvcm5zaWxrPVwiI0ZGRjhEQ1wiLHQuY3JpbXNvbj1cIiNEQzE0M0NcIix0LmN5YW49XCIjMDBGRkZGXCIsdC5kYXJrYmx1ZT1cIiMwMDAwOEJcIix0LmRhcmtjeWFuPVwiIzAwOEI4QlwiLHQuZGFya2dvbGRlbnJvZD1cIiNCODg2MEJcIix0LmRhcmtncmF5PVwiI0E5QTlBOVwiLHQuZGFya2dyZWVuPVwiIzAwNjQwMFwiLHQuZGFya2dyZXk9XCIjQTlBOUE5XCIsdC5kYXJra2hha2k9XCIjQkRCNzZCXCIsdC5kYXJrbWFnZW50YT1cIiM4QjAwOEJcIix0LmRhcmtvbGl2ZWdyZWVuPVwiIzU1NkIyRlwiLHQuZGFya29yYW5nZT1cIiNGRjhDMDBcIix0LmRhcmtvcmNoaWQ9XCIjOTkzMkNDXCIsdC5kYXJrcmVkPVwiIzhCMDAwMFwiLHQuZGFya3NhbG1vbj1cIiNFOTk2N0FcIix0LmRhcmtzZWFncmVlbj1cIiM4RkJDOEZcIix0LmRhcmtzbGF0ZWJsdWU9XCIjNDgzRDhCXCIsdC5kYXJrc2xhdGVncmF5PVwiIzJGNEY0RlwiLHQuZGFya3NsYXRlZ3JleT1cIiMyRjRGNEZcIix0LmRhcmt0dXJxdW9pc2U9XCIjMDBDRUQxXCIsdC5kYXJrdmlvbGV0PVwiIzk0MDBEM1wiLHQuZGVlcHBpbms9XCIjRkYxNDkzXCIsdC5kZWVwc2t5Ymx1ZT1cIiMwMEJGRkZcIix0LmRpbWdyYXk9XCIjNjk2OTY5XCIsdC5kaW1ncmV5PVwiIzY5Njk2OVwiLHQuZG9kZ2VyYmx1ZT1cIiMxRTkwRkZcIix0LmZpcmVicmljaz1cIiNCMjIyMjJcIix0LmZsb3JhbHdoaXRlPVwiI0ZGRkFGMFwiLHQuZm9yZXN0Z3JlZW49XCIjMjI4QjIyXCIsdC5nYWluc2Jvcm89XCIjRENEQ0RDXCIsdC5naG9zdHdoaXRlPVwiI0Y4RjhGRlwiLHQuZ29sZD1cIiNGRkQ3MDBcIix0LmdvbGRlbnJvZD1cIiNEQUE1MjBcIix0LmdyZWVueWVsbG93PVwiI0FERkYyRlwiLHQuZ3JleT1cIiM4MDgwODBcIix0LmhvbmV5ZGV3PVwiI0YwRkZGMFwiLHQuaG90cGluaz1cIiNGRjY5QjRcIix0LmluZGlhbnJlZD1cIiNDRDVDNUNcIix0LmluZGlnbz1cIiM0QjAwODJcIix0Lml2b3J5PVwiI0ZGRkZGMFwiLHQua2hha2k9XCIjRjBFNjhDXCIsdC5sYXZlbmRlcj1cIiNFNkU2RkFcIix0LmxhdmVuZGVyYmx1c2g9XCIjRkZGMEY1XCIsdC5sYXduZ3JlZW49XCIjN0NGQzAwXCIsdC5sZW1vbmNoaWZmb249XCIjRkZGQUNEXCIsdC5saWdodGJsdWU9XCIjQUREOEU2XCIsdC5saWdodGNvcmFsPVwiI0YwODA4MFwiLHQubGlnaHRjeWFuPVwiI0UwRkZGRlwiLHQubGlnaHRnb2xkZW5yb2R5ZWxsb3c9XCIjRkFGQUQyXCIsdC5saWdodGdyYXk9XCIjRDNEM0QzXCIsdC5saWdodGdyZWVuPVwiIzkwRUU5MFwiLHQubGlnaHRncmV5PVwiI0QzRDNEM1wiLHQubGlnaHRwaW5rPVwiI0ZGQjZDMVwiLHQubGlnaHRzYWxtb249XCIjRkZBMDdBXCIsdC5saWdodHNlYWdyZWVuPVwiIzIwQjJBQVwiLHQubGlnaHRza3libHVlPVwiIzg3Q0VGQVwiLHQubGlnaHRzbGF0ZWdyYXk9XCIjNzc4ODk5XCIsdC5saWdodHNsYXRlZ3JleT1cIiM3Nzg4OTlcIix0LmxpZ2h0c3RlZWxibHVlPVwiI0IwQzRERVwiLHQubGlnaHR5ZWxsb3c9XCIjRkZGRkUwXCIsdC5saW1lZ3JlZW49XCIjMzJDRDMyXCIsdC5saW5lbj1cIiNGQUYwRTZcIix0Lm1hZ2VudGE9XCIjRkYwMEZGXCIsdC5tZWRpdW1hcXVhbWFyaW5lPVwiIzY2Q0RBQVwiLHQubWVkaXVtYmx1ZT1cIiMwMDAwQ0RcIix0Lm1lZGl1bW9yY2hpZD1cIiNCQTU1RDNcIix0Lm1lZGl1bXB1cnBsZT1cIiM5MzcwREJcIix0Lm1lZGl1bXNlYWdyZWVuPVwiIzNDQjM3MVwiLHQubWVkaXVtc2xhdGVibHVlPVwiIzdCNjhFRVwiLHQubWVkaXVtc3ByaW5nZ3JlZW49XCIjMDBGQTlBXCIsdC5tZWRpdW10dXJxdW9pc2U9XCIjNDhEMUNDXCIsdC5tZWRpdW12aW9sZXRyZWQ9XCIjQzcxNTg1XCIsdC5taWRuaWdodGJsdWU9XCIjMTkxOTcwXCIsdC5taW50Y3JlYW09XCIjRjVGRkZBXCIsdC5taXN0eXJvc2U9XCIjRkZFNEUxXCIsdC5tb2NjYXNpbj1cIiNGRkU0QjVcIix0Lm5hdmFqb3doaXRlPVwiI0ZGREVBRFwiLHQub2xkbGFjZT1cIiNGREY1RTZcIix0Lm9saXZlZHJhYj1cIiM2QjhFMjNcIix0Lm9yYW5nZXJlZD1cIiNGRjQ1MDBcIix0Lm9yY2hpZD1cIiNEQTcwRDZcIix0LnBhbGVnb2xkZW5yb2Q9XCIjRUVFOEFBXCIsdC5wYWxlZ3JlZW49XCIjOThGQjk4XCIsdC5wYWxldHVycXVvaXNlPVwiI0FGRUVFRVwiLHQucGFsZXZpb2xldHJlZD1cIiNEQjcwOTNcIix0LnBhcGF5YXdoaXA9XCIjRkZFRkQ1XCIsdC5wZWFjaHB1ZmY9XCIjRkZEQUI5XCIsdC5wZXJ1PVwiI0NEODUzRlwiLHQucGluaz1cIiNGRkMwQ0JcIix0LnBsdW09XCIjRERBMEREXCIsdC5wb3dkZXJibHVlPVwiI0IwRTBFNlwiLHQucm9zeWJyb3duPVwiI0JDOEY4RlwiLHQucm95YWxibHVlPVwiIzQxNjlFMVwiLHQuc2FkZGxlYnJvd249XCIjOEI0NTEzXCIsdC5zYWxtb249XCIjRkE4MDcyXCIsdC5zYW5keWJyb3duPVwiI0Y0QTQ2MFwiLHQuc2VhZ3JlZW49XCIjMkU4QjU3XCIsdC5zZWFzaGVsbD1cIiNGRkY1RUVcIix0LnNpZW5uYT1cIiNBMDUyMkRcIix0LnNreWJsdWU9XCIjODdDRUVCXCIsdC5zbGF0ZWJsdWU9XCIjNkE1QUNEXCIsdC5zbGF0ZWdyYXk9XCIjNzA4MDkwXCIsdC5zbGF0ZWdyZXk9XCIjNzA4MDkwXCIsdC5zbm93PVwiI0ZGRkFGQVwiLHQuc3ByaW5nZ3JlZW49XCIjMDBGRjdGXCIsdC5zdGVlbGJsdWU9XCIjNDY4MkI0XCIsdC50YW49XCIjRDJCNDhDXCIsdC50aGlzdGxlPVwiI0Q4QkZEOFwiLHQudG9tYXRvPVwiI0ZGNjM0N1wiLHQudHVycXVvaXNlPVwiIzQwRTBEMFwiLHQudmlvbGV0PVwiI0VFODJFRVwiLHQud2hlYXQ9XCIjRjVERUIzXCIsdC53aGl0ZXNtb2tlPVwiI0Y1RjVGNVwiLHQueWVsbG93Z3JlZW49XCIjOUFDRDMyXCIsdC5yZWJlY2NhcHVycGxlPVwiIzY2MzM5OVwifShvfHwobz17fSkpO3ZhciBhLGMsdT1PYmplY3Qua2V5cyhvKSxzPXtIRVg6W1wiclwiLFwiZ1wiLFwiYlwiLFwiYVwiXSxSR0I6W1wiclwiLFwiZ1wiLFwiYlwiLFwiYVwiXSxIU0w6W1wiaFwiLFwic1wiLFwibFwiLFwiYVwiXSxDTVlLOltcImNcIixcIm1cIixcInlcIixcImtcIixcImFcIl19LGQ9e0JHUjpuLlJHQixBQkdSOm4uUkdCLEhMUzpuLkhTTCxBSExTOm4uSFNMLENLTVk6bi5DTVlLLEFDS01ZOm4uQ01ZS307IWZ1bmN0aW9uKHQpe3QuTlVNQkVSPVwibnVtYmVyXCIsdC5CT09MRUFOPVwiYm9vbGVhblwifShhfHwoYT17fSkpO3ZhciBsLGYsaCxwPSgoYz17fSlbbi5IRVhdPS9eIyg/OihbYS1mXFxkXSkoW2EtZlxcZF0pKFthLWZcXGRdKShbYS1mXFxkXSk/fChbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KShbYS1mXFxkXXsyfSk/KSQvaSxjW24uUkdCXT0vXnJnYmE/XFxzKlxcKFxccyooPzooKD86XFxkKlxcLik/XFxkKyU/KVxccyosXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKixcXHMqKCg/OlxcZCpcXC4pP1xcZCslPykoPzpcXHMqLFxccyooKD86XFxkKlxcLik/XFxkKykpP3woKD86XFxkKlxcLik/XFxkKyU/KVxccyooKD86XFxkKlxcLik/XFxkKyU/KVxccyooKD86XFxkKlxcLik/XFxkKyU/KSg/OlxccypcXC9cXHMqKCg/OlxcZCpcXC4pP1xcZCslPykpPylcXHMqXFwpJC8sY1tuLkhTTF09L15oc2xhP1xccypcXChcXHMqKD86KC0/KD86XFxkKlxcLik/XFxkKyg/OmRlZ3xncmFkfHJhZHx0dXJuKT8pXFxzKixcXHMqKCg/OlxcZCpcXC4pP1xcZCspJVxccyosXFxzKigoPzpcXGQqXFwuKT9cXGQrKSUoPzpcXHMqLFxccyooKD86XFxkKlxcLik/XFxkKykpP3woLT8oPzpcXGQqXFwuKT9cXGQrKD86ZGVnfGdyYWR8cmFkfHR1cm4pPylcXHMqKCg/OlxcZCpcXC4pP1xcZCspJVxccyooKD86XFxkKlxcLik/XFxkKyklKD86XFxzKlxcL1xccyooKD86XFxkKlxcLik/XFxkKyU/KSk/KVxccypcXCkkLyxjW24uQ01ZS109L14oPzpkZXZpY2UtY215a3xjbXlrKVxccypcXChcXHMqKD86KCg/OlxcZCpcXC4pP1xcZCslPylcXHMqLFxccyooKD86XFxkKlxcLik/XFxkKyU/KVxccyosXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKixcXHMqKCg/OlxcZCpcXC4pP1xcZCslPykoPzpcXHMqLFxccyooKD86XFxkKlxcLik/XFxkKykpP3woKD86XFxkKlxcLik/XFxkKyU/KVxccyooKD86XFxkKlxcLik/XFxkKyU/KVxccyooKD86XFxkKlxcLik/XFxkKyU/KVxccyooKD86XFxkKlxcLik/XFxkKyU/KSg/OlxccypcXC9cXHMqKCg/OlxcZCpcXC4pP1xcZCslPykpPylcXHMqXFwpJC8sYyksZz0vXigtPyg/OlxcZCpcXC4pP1xcZCspKCg/OmRlZ3xncmFkfHJhZHx0dXJuKT8pJC8sbT0vXihcXGQrKD86XFwuXFxkKyk/fFxcLlxcZCspJSQvLGI9L14weChbYS1mXFxkXXsxLDJ9KSQvaSxBPS9cXHsoXFxkKylcXH0vZyx5PS8sKCArfFxcZCspL2csRT0vICsvLEY9XCJUaGUgcHJvdmlkZWQgc3RyaW5nIGNvbG9yIGRvZXNuJ3QgaGF2ZSBhIGNvcnJlY3QgZm9ybWF0XCIsdj1cIlRoZSBwcm92aWRlZCBjb2xvciBvYmplY3QgZG9lc24ndCBoYXZlIHRoZSBwcm9wZXIga2V5cyBvciBmb3JtYXRcIjshZnVuY3Rpb24odCl7dC5OT05FPVwibm9uZVwiLHQuREVHUkVFUz1cImRlZ1wiLHQuR1JBRElBTlM9XCJncmFkXCIsdC5SQURJQU5TPVwicmFkXCIsdC5UVVJOUz1cInR1cm5cIn0obHx8KGw9e30pKSxmdW5jdGlvbih0KXt0Lk5PTkU9XCJub25lXCIsdC5QRVJDRU5UPVwicGVyY2VudFwifShmfHwoZj17fSkpLGZ1bmN0aW9uKHQpe3QuREVWSUNFX0NNWUs9XCJkZXZpY2UtY215a1wiLHQuQ01ZSz1cImNteWtcIn0oaHx8KGg9e30pKTt2YXIgSCxCLEMsUyxSLE0sRD17ZGVjaW1hbHM6NixsZWdhY3lDU1M6ITEsc3BhY2VzQWZ0ZXJDb21tYXM6ITEsYW5nbGVzVW5pdDpsLk5PTkUscmdiVW5pdDpmLk5PTkUsY215a1VuaXQ6Zi5QRVJDRU5ULGFscGhhVW5pdDpmLk5PTkUsY215a0Z1bmN0aW9uOmguREVWSUNFX0NNWUt9LE89ZnVuY3Rpb24odCxlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSl9LEw9ZnVuY3Rpb24odCl7cmV0dXJuK1wiXCIuY29uY2F0KHQpLnJlcGxhY2UobSxcIiQxXCIpfSxHPWZ1bmN0aW9uKHQpe3JldHVybiBtLnRlc3QoXCJcIi5jb25jYXQodCkpP0wodCk6TWF0aC5taW4oK3QsMTAwKX0saz1mdW5jdGlvbih0KXtyZXR1cm4gMT09PXQubGVuZ3RoJiYodCs9dCkscGFyc2VJbnQodCwxNil9LGo9ZnVuY3Rpb24odCl7dmFyIGU9Syh0LDApLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO3JldHVybiAxPT09ZS5sZW5ndGg/XCIweDBcIi5jb25jYXQoZSk6XCIweFwiLmNvbmNhdChlKX0sWD1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT0hMSksIWUmJm0udGVzdCh0KT9NYXRoLm1pbigyNTUqTCh0KS8xMDAsMjU1KTpiLnRlc3QodCk/KDM9PT10Lmxlbmd0aCYmKHQrPXQuc2xpY2UoLTEpKSxlP0sodCkvMjU1OksodCkpOk1hdGgubWluKCt0LGU/MToyNTUpfSxJPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1pbihtLnRlc3QodCk/TCh0KS8xMDA6K3QsMSl9LFk9ZnVuY3Rpb24odCl7cmV0dXJuIGUoW10sdCwhMCkuc29ydCgpLmpvaW4oXCJcIikudG9VcHBlckNhc2UoKX0sSz1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPTYpO3ZhciBuPU1hdGgucG93KDEwLGUpO3JldHVybiBNYXRoLnJvdW5kKCt0Km4pL259LE49ZnVuY3Rpb24odCxlLG4pe3JldHVybiBNYXRoLm1heChlLE1hdGgubWluKHQsbikpfSxUPWZ1bmN0aW9uKHQpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiB0KXt2YXIgZT10Lm1hdGNoKGcpLG49K2VbMV07c3dpdGNoKGVbMl0pe2Nhc2UgbC5SQURJQU5TOnQ9SygxODAqbi9NYXRoLlBJKTticmVhaztjYXNlIGwuVFVSTlM6dD1LKDM2MCpuKTticmVhaztjYXNlIGwuR1JBRElBTlM6dD1LKC45Km4pO2JyZWFrO2Nhc2UgbC5ERUdSRUVTOmRlZmF1bHQ6dD1ufX1yZXR1cm4odD4zNjB8fHQ8MCkmJih0LT0zNjAqTWF0aC5mbG9vcih0LzM2MCkpLHR9LFA9ZnVuY3Rpb24odCxlKXt2YXIgbjtzd2l0Y2goZSl7Y2FzZSBsLlJBRElBTlM6bj1LKGZ1bmN0aW9uKHQpe3JldHVybiB0Kk1hdGguUEkvMTgwfSh0KSk7YnJlYWs7Y2FzZSBsLlRVUk5TOm49Syh0LzM2MCk7YnJlYWs7Y2FzZSBsLkdSQURJQU5TOm49SygxMC85KnQpO2JyZWFrO2Nhc2UgbC5ERUdSRUVTOmNhc2UgbC5OT05FOmRlZmF1bHQ6bj10fXJldHVybiBufSxVPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyllW24tMV09YXJndW1lbnRzW25dO2Zvcih2YXIgcj1bXSxpPVtdLG89W10sYz1bXSx1PVtdLHM9T2JqZWN0LnZhbHVlcyhsKSxkPU9iamVjdC52YWx1ZXMoZiksYj1PYmplY3QudmFsdWVzKGgpLEE9e2xlZ2FjeUNTUzowLHNwYWNlc0FmdGVyQ29tbWFzOjAsY215a0Z1bmN0aW9uOjB9LEY9MCx2PWU7Rjx2Lmxlbmd0aDtGKyspe3ZhciBIPXZbRl07aWYoXCJzdHJpbmdcIj09dHlwZW9mIEgpe2lmKHIucHVzaChIKSxILmluY2x1ZGVzKFwiLFwiKSl7QS5sZWdhY3lDU1MrKzt2YXIgQj1ILm1hdGNoKHkpOzE9PT1uZXcgU2V0KEIpLnNpemUmJkUudGVzdChCWzBdLnNsaWNlKDEpKSYmQS5zcGFjZXNBZnRlckNvbW1hcysrfWlmKEgubWF0Y2gocC5IU0wpKXt2YXIgQz0oaz1ILm1hdGNoKHAuSFNMKSlbMV18fGtbNV0sUz1rWzhdLFI9Qy5tYXRjaChnKVsyXTtpLnB1c2goXCJcIj09PVI/bC5OT05FOlIpLHUucHVzaChtLnRlc3QoUykpO2NvbnRpbnVlfWlmKHAuUkdCLnRlc3QoSCkpe3ZhciBNPShrPUgubWF0Y2gocC5SR0IpKVsxXXx8a1s1XSxPPWtbMl18fGtbNl0sTD1rWzNdfHxrWzddLEc9a1s4XTtvLnB1c2gobS50ZXN0KE0pJiZtLnRlc3QoTykmJm0udGVzdChMKSksdS5wdXNoKG0udGVzdChHKSk7Y29udGludWV9aWYoSC5tYXRjaChwLkNNWUspKXt2YXIgayxqPShrPUgubWF0Y2gocC5DTVlLKSlbMV18fGtbNl0sWD1rWzJdfHxrWzddLEk9a1szXXx8a1s4XSxZPWtbNF18fGtbOV07Rz1rWzEwXTtjLnB1c2gobS50ZXN0KGopJiZtLnRlc3QoWCkmJm0udGVzdChJKSYmbS50ZXN0KFkpKSxILnN0YXJ0c1dpdGgoXCJjbXlrXCIpJiZBLmNteWtGdW5jdGlvbisrLHUucHVzaChtLnRlc3QoRykpfX19cmV0dXJue2RlY2ltYWxzOnR5cGVvZiB0LmRlY2ltYWxzPT09YS5OVU1CRVI/dC5kZWNpbWFsczpELmRlY2ltYWxzLGxlZ2FjeUNTUzp0eXBlb2YgdC5sZWdhY3lDU1M9PT1hLkJPT0xFQU4/dC5sZWdhY3lDU1M6Qm9vbGVhbihyLmxlbmd0aCYmQS5sZWdhY3lDU1M9PT1yLmxlbmd0aCl8fEQubGVnYWN5Q1NTLHNwYWNlc0FmdGVyQ29tbWFzOnR5cGVvZiB0LnNwYWNlc0FmdGVyQ29tbWFzPT09YS5CT09MRUFOP3Quc3BhY2VzQWZ0ZXJDb21tYXM6Qm9vbGVhbihyLmxlbmd0aCYmQS5zcGFjZXNBZnRlckNvbW1hcz09PXIubGVuZ3RoKXx8RC5zcGFjZXNBZnRlckNvbW1hcyxhbmdsZXNVbml0OnQuYW5nbGVzVW5pdCYmcy5pbmNsdWRlcyh0LmFuZ2xlc1VuaXQpP3QuYW5nbGVzVW5pdDoxPT09bmV3IFNldChpKS5zaXplP2lbMF06RC5hbmdsZXNVbml0LHJnYlVuaXQ6dC5yZ2JVbml0JiZkLmluY2x1ZGVzKHQucmdiVW5pdCk/dC5yZ2JVbml0OjE9PT1uZXcgU2V0KG8pLnNpemUmJm9bMF0/Zi5QRVJDRU5UOkQucmdiVW5pdCxjbXlrVW5pdDp0LmNteWtVbml0JiZkLmluY2x1ZGVzKHQuY215a1VuaXQpP3QuY215a1VuaXQ6MSE9PW5ldyBTZXQoYykuc2l6ZXx8Y1swXT9ELmNteWtVbml0OmYuTk9ORSxhbHBoYVVuaXQ6dC5hbHBoYVVuaXQmJmQuaW5jbHVkZXModC5hbHBoYVVuaXQpP3QuYWxwaGFVbml0OjE9PT1uZXcgU2V0KHUpLnNpemUmJnVbMF0/Zi5QRVJDRU5UOkQuYWxwaGFVbml0LGNteWtGdW5jdGlvbjp0LmNteWtGdW5jdGlvbiYmYi5pbmNsdWRlcyh0LmNteWtGdW5jdGlvbik/dC5jbXlrRnVuY3Rpb246Yy5sZW5ndGgmJmMubGVuZ3RoPT09QS5jbXlrRnVuY3Rpb24/aC5DTVlLOkQuY215a0Z1bmN0aW9ufX0sdz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG48MCYmKG4rPTYpLG4+PTYmJihuLT02KSxLKG48MT8yNTUqKChlLXQpKm4rdCk6bjwzPzI1NSplOm48ND8yNTUqKChlLXQpKig0LW4pK3QpOjI1NSp0KX0seD1mdW5jdGlvbih0LGUsbil7ZS89MTAwO3ZhciByPShuLz0xMDApPD0uNT9uKihlKzEpOm4rZS1uKmUsaT0yKm4tcjtyZXR1cm57cjp3KGksciwodC89NjApKzIpLGc6dyhpLHIsdCksYjp3KGkscix0LTIpfX0sVj1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm57cjpLKDI1NSooMS10KSoocj0xLXIpKSxnOksoMjU1KigxLWUpKnIpLGI6SygyNTUqKDEtbikqcil9fSxxPWZ1bmN0aW9uKHQsZSxuKXt0Lz0yNTUsZS89MjU1LG4vPTI1NTt2YXIgcj0xLU1hdGgubWF4KHQsZSxuKSxpPTEtcixvPWkmJihpLWUpL2ksYT1pJiYoaS1uKS9pO3JldHVybntjOksoMTAwKihpJiYoaS10KS9pKSksbTpLKDEwMCpvKSx5OksoMTAwKmEpLGs6SygxMDAqcil9fSxfPWZ1bmN0aW9uKHQsZSxuLHIpe3ZvaWQgMD09PXImJihyPTEpLHQvPTI1NSxlLz0yNTUsbi89MjU1LHI9TWF0aC5taW4ociwxKTt2YXIgaT1NYXRoLm1heCh0LGUsbiksbz1NYXRoLm1pbih0LGUsbiksYT1pLW8sYz0wLHU9MCxzPShpK28pLzI7aWYoMCE9PWEpe3N3aXRjaChpKXtjYXNlIHQ6Yz0oZS1uKS9hJTY7YnJlYWs7Y2FzZSBlOmM9KG4tdCkvYSsyO2JyZWFrO2Nhc2UgbjpjPSh0LWUpL2ErNH0oYz1LKDYwKmMpKTwwJiYoYys9MzYwKSx1PWEvKDEtTWF0aC5hYnMoMipzLTEpKX1yZXR1cm57aDpjLHM6SygxMDAqdSksbDpLKDEwMCpzKSxhOnJ9fSwkPWZ1bmN0aW9uKHQsZSl7aWYodDwwJiYodCs9MzYwKSx0PjM2MCYmKHQtPTM2MCksMzYwPT09dHx8MD09PXQpcmV0dXJuIHQ7dmFyIG49W1swLDEyMF0sWzEyMCwxODBdLFsxODAsMjQwXSxbMjQwLDM2MF1dLHI9W1swLDYwXSxbNjAsMTIwXSxbMTIwLDI0MF0sWzI0MCwzNjBdXSxpPWU/cjpuLG89MCxhPTAsYz0wLHU9MDtyZXR1cm4oZT9uOnIpLmZpbmQoKGZ1bmN0aW9uKGUsbil7cmV0dXJuIHQ+PWVbMF0mJnQ8ZVsxXSYmKG89ZVswXSxhPWVbMV0sYz1pW25dWzBdLHU9aVtuXVsxXSwhMCl9KSksYysodS1jKS8oYS1vKSoodC1vKX0sej1mdW5jdGlvbih0KXtyZXR1cm4gdD9cIiwgXCI6XCIsXCJ9LFE9ZnVuY3Rpb24odCxlKXt2YXIgbj1ZKE9iamVjdC5rZXlzKHQpKTtyZXR1cm4gc1tkW25dXS5yZWR1Y2UoKGZ1bmN0aW9uKG4scixpKXt2YXIgbz10W3JdO3JldHVybiB2b2lkIDAhPT1vJiZuLnB1c2goZShvLGkpKSxufSksW10pfSxXPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQucmVwbGFjZShBLChmdW5jdGlvbih0LG4pe3JldHVyblwiXCIuY29uY2F0KGVbK24tMV0pfSkpfSxKPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5hbHBoYVVuaXQscj1lLmxlZ2FjeUNTUyxpPWUuZGVjaW1hbHM7cmV0dXJuIG4hPT1mLlBFUkNFTlR8fHI/Syh0LGkpOlwiXCIuY29uY2F0KEsoMTAwKnQsaSksXCIlXCIpfSxaPSgoSD17fSlbbi5IRVhdPWZ1bmN0aW9uKHQpe3ZhciBlPVEodCwoZnVuY3Rpb24odCl7cmV0dXJuIGU9Syh0KSwxPT09KG49SyhlLDApLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpKS5sZW5ndGgmJihuPVwiMFwiLmNvbmNhdChuKSksbjt2YXIgZSxufSkpLG49ND09PWUubGVuZ3RoP1wiI3sxfXsyfXszfXs0fVwiOlwiI3sxfXsyfXszfVwiO3JldHVybiBXKG4sZSl9LEhbbi5SR0JdPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5kZWNpbWFscyxyPWUubGVnYWN5Q1NTLGk9ZS5zcGFjZXNBZnRlckNvbW1hcyxvPWUucmdiVW5pdCxhPXooaSksYz1RKHQsKGZ1bmN0aW9uKHQscil7cmV0dXJuIG89PT1mLlBFUkNFTlQmJnI8Mz9cIlwiLmNvbmNhdChmdW5jdGlvbih0LGUpe3JldHVybiBLKHQvMjU1KjEwMCxlKX0odCxuKSxcIiVcIik6Mz09PXI/Sih0LGUpOksodCxuKX0pKSx1PXI/ND09PWMubGVuZ3RoP1wicmdiYSh7MX1cIi5jb25jYXQoYSxcInsyfVwiKS5jb25jYXQoYSxcInszfVwiKS5jb25jYXQoYSxcIns0fSlcIik6XCJyZ2IoezF9XCIuY29uY2F0KGEsXCJ7Mn1cIikuY29uY2F0KGEsXCJ7M30pXCIpOjQ9PT1jLmxlbmd0aD9cInJnYih7MX0gezJ9IHszfSAvIHs0fSlcIjpcInJnYih7MX0gezJ9IHszfSlcIjtyZXR1cm4gVyh1LGMpfSxIW24uSFNMXT1mdW5jdGlvbih0LGUpe3ZhciBuPWUuZGVjaW1hbHMscj1lLmxlZ2FjeUNTUyxpPWUuc3BhY2VzQWZ0ZXJDb21tYXMsbz1lLmFuZ2xlc1VuaXQsYT16KGkpLGM9USh0LChmdW5jdGlvbih0LHIpe2lmKDA9PT1yJiZvIT09bC5OT05FKXt2YXIgaT1LKFAodCxvKSxuKTtyZXR1cm5cIlwiLmNvbmNhdChpKS5jb25jYXQobyl9cmV0dXJuIDM9PT1yP0oodCxlKTpLKHQsbil9KSksdT1yPzQ9PT1jLmxlbmd0aD9cImhzbGEoezF9XCIuY29uY2F0KGEsXCJ7Mn0lXCIpLmNvbmNhdChhLFwiezN9JVwiKS5jb25jYXQoYSxcIns0fSlcIik6XCJoc2woezF9XCIuY29uY2F0KGEsXCJ7Mn0lXCIpLmNvbmNhdChhLFwiezN9JSlcIik6ND09PWMubGVuZ3RoP1wiaHNsKHsxfSB7Mn0lIHszfSUgLyB7NH0pXCI6XCJoc2woezF9IHsyfSUgezN9JSlcIjtyZXR1cm4gVyh1LGMpfSxIW24uQ01ZS109ZnVuY3Rpb24odCxlKXt2YXIgbj1lLmRlY2ltYWxzLHI9ZS5sZWdhY3lDU1MsaT1lLnNwYWNlc0FmdGVyQ29tbWFzLG89ZS5jbXlrVW5pdCxhPWUuY215a0Z1bmN0aW9uLGM9eihpKSx1PVEodCwoZnVuY3Rpb24odCxyKXtyZXR1cm4gbz09PWYuUEVSQ0VOVCYmcjw0P1wiXCIuY29uY2F0KEsodCxuKSxcIiVcIik6ND09PXI/Sih0LGUpOksodC8xMDAsbil9KSkscz1yPzU9PT11Lmxlbmd0aD9cIlwiLmNvbmNhdChhLFwiKHsxfVwiKS5jb25jYXQoYyxcInsyfVwiKS5jb25jYXQoYyxcInszfVwiKS5jb25jYXQoYyxcIns0fVwiKS5jb25jYXQoYyxcIns1fSlcIik6XCJcIi5jb25jYXQoYSxcIih7MX1cIikuY29uY2F0KGMsXCJ7Mn1cIikuY29uY2F0KGMsXCJ7M31cIikuY29uY2F0KGMsXCJ7NH0pXCIpOjU9PT11Lmxlbmd0aD9cIlwiLmNvbmNhdChhLFwiKHsxfSB7Mn0gezN9IHs0fSAvIHs1fSlcIik6XCJcIi5jb25jYXQoYSxcIih7MX0gezJ9IHszfSB7NH0pXCIpO3JldHVybiBXKHMsdSl9LEgpLHR0PWZ1bmN0aW9uKHQpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0JiYodD1tLnRlc3QodCk/TCh0KS8xMDA6K3QpLGlzTmFOKCt0KXx8dD4xPzE6Syh0KX0sZXQ9ZnVuY3Rpb24obixyLG8pe3JldHVybiByLnJlZHVjZSgoZnVuY3Rpb24ocixhKXtyZXR1cm4gZShlKFtdLHIsITApLFt0KHQoe30sbikse2g6bz09PWkuQURESVRJVkU/VChuLmgrYSk6VCgkKCQobi5oLCExKSthLCEwKSl9KV0sITEpfSksW3Qoe30sbildKX0sbnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXQodCxbMzAsLTMwXSxlKX0scnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXQodCxbMTgwXSxlKX0saXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXQodCxbMTUwLC0xNTBdLGUpfSxvdD1mdW5jdGlvbih0LGUpe3JldHVybiBldCh0LFsxMjAsLTEyMF0sZSl9LGF0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV0KHQsWzYwLC0xMjAsMTgwXSxlKX0sY3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXQodCxbOTAsLTkwLDE4MF0sZSl9LHV0PWZ1bmN0aW9uKHQpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0P2Z1bmN0aW9uKHQpe3ZhciBlO2lmKE9iamVjdC5rZXlzKG4pLnNvbWUoKGZ1bmN0aW9uKG4pe2lmKHBbbl0udGVzdCh0KSlyZXR1cm4gZT1uLCEwfSkpLCFlJiZ+dS5pbmRleE9mKHQpJiYoZT1uLkhFWCksIWUpdGhyb3cgbmV3IEVycm9yKEYpO3JldHVybiBlfSh0KTpmdW5jdGlvbih0KXt2YXIgZSxyPSExLGk9WShPYmplY3Qua2V5cyh0KSk7aWYoZFtpXSYmKGU9ZFtpXSksZSYmZT09PW4uUkdCKXt2YXIgbz1PYmplY3QuZW50cmllcyh0KS5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4hYi50ZXN0KFwiXCIuY29uY2F0KHRbMV0pKX0pKSxhPU9iamVjdC5lbnRyaWVzKHQpLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiEobS50ZXN0KFwiXCIuY29uY2F0KHRbMV0pKXx8IWIudGVzdChcIlwiLmNvbmNhdCh0WzFdKSkmJiFpc05hTigrdFsxXSkmJit0WzFdPD0yNTUpfSkpO28mJmEmJihyPSEwKSxvfHwoZT1uLkhFWCl9aWYoIWV8fHIpdGhyb3cgbmV3IEVycm9yKHYpO3JldHVybiBlfSh0KX0sc3Q9KChCPXt9KVtuLkhFWF09ZnVuY3Rpb24odCl7dmFyIGU9KH51LmluZGV4T2YodCk/b1t0XTp0KS5tYXRjaChwLkhFWCksbj17cjprKGVbMV18fGVbNV0pLGc6ayhlWzJdfHxlWzZdKSxiOmsoZVszXXx8ZVs3XSl9LHI9ZVs0XXx8ZVs4XTtyZXR1cm4gdm9pZCAwIT09ciYmKG4uYT1rKHIpLzI1NSksbn0sQltuLlJHQl09ZnVuY3Rpb24odCl7dmFyIGU9dC5tYXRjaChwLlJHQiksbj1YKGVbMV18fGVbNV0pLHI9WChlWzJdfHxlWzZdKSxpPVgoZVszXXx8ZVs3XSksbz1lWzRdfHxlWzhdLGE9e3I6TWF0aC5taW4obiwyNTUpLGc6TWF0aC5taW4ociwyNTUpLGI6TWF0aC5taW4oaSwyNTUpfTtyZXR1cm4gdm9pZCAwIT09byYmKGEuYT10dChvKSksYX0sQltuLkhTTF09ZnVuY3Rpb24odCl7dmFyIGU9dC5tYXRjaChwLkhTTCksbj1UKGVbMV18fGVbNV0pLHI9RyhlWzJdfHxlWzZdKSxpPUcoZVszXXx8ZVs3XSksbz1lWzRdfHxlWzhdLGE9eChuLHIsaSk7cmV0dXJuIHZvaWQgMCE9PW8mJihhLmE9dHQobykpLGF9LEJbbi5DTVlLXT1mdW5jdGlvbih0KXt2YXIgZT10Lm1hdGNoKHAuQ01ZSyksbj1JKGVbMV18fGVbNl0pLHI9SShlWzJdfHxlWzddKSxpPUkoZVszXXx8ZVs4XSksbz1JKGVbNF18fGVbOV0pLGE9ZVs1XXx8ZVsxMF0sYz1WKG4scixpLG8pO3JldHVybiB2b2lkIDAhPT1hJiYoYy5hPXR0KGEpKSxjfSxCKSxkdD0oKEM9e30pW24uSEVYXT1mdW5jdGlvbih0KXt2YXIgZT17cjpYKFwiXCIuY29uY2F0KHQucikpLGc6WChcIlwiLmNvbmNhdCh0LmcpKSxiOlgoXCJcIi5jb25jYXQodC5iKSl9O3JldHVybiBPKHQsXCJhXCIpJiYoZS5hPU1hdGgubWluKFgoXCJcIi5jb25jYXQodC5hKSwhMCksMSkpLGV9LENbbi5SR0JdPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLkhFWCh0KX0sQ1tuLkhTTF09ZnVuY3Rpb24odCl7dmFyIGU9RyhcIlwiLmNvbmNhdCh0LnMpKSxuPUcoXCJcIi5jb25jYXQodC5sKSkscj14KFQodC5oKSxlLG4pO3JldHVybiBPKHQsXCJhXCIpJiYoci5hPXR0KHQuYSkpLHJ9LENbbi5DTVlLXT1mdW5jdGlvbih0KXt2YXIgZT1JKFwiXCIuY29uY2F0KHQuYykpLG49SShcIlwiLmNvbmNhdCh0Lm0pKSxyPUkoXCJcIi5jb25jYXQodC55KSksaT1JKFwiXCIuY29uY2F0KHQuaykpLG89VihlLG4scixpKTtyZXR1cm4gTyh0LFwiYVwiKSYmKG8uYT10dCh0LmEpKSxvfSxDKSxsdD1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT11dCh0KSksXCJzdHJpbmdcIj09dHlwZW9mIHQ/c3RbZV0odCk6ZHRbZV0odCl9LGZ0PSgoUz17fSlbbi5IRVhdPWZ1bmN0aW9uKHQpe3JldHVybntyOmoodC5yKSxnOmoodC5nKSxiOmoodC5iKX19LFMuSEVYQT1mdW5jdGlvbih0KXt2YXIgZT1mdC5IRVgodCk7cmV0dXJuIGUuYT1PKHQsXCJhXCIpP2ooMjU1KnQuYSk6XCIweEZGXCIsZX0sU1tuLlJHQl09ZnVuY3Rpb24odCxlKXt2YXIgbj1tdCh0LGUpO3JldHVybiBPKG4sXCJhXCIpJiZkZWxldGUgbi5hLG59LFMuUkdCQT1mdW5jdGlvbih0LGUpe3ZhciBuPWZ0LlJHQih0LGUpO3JldHVybiBuLmE9Tyh0LFwiYVwiKT9LKHQuYSk6MSxufSxTW24uSFNMXT1mdW5jdGlvbih0LGUpe3ZhciBuPV8odC5yLHQuZyx0LmIpO3JldHVybiBkZWxldGUgbi5hLGJ0KG4sZSl9LFMuSFNMQT1mdW5jdGlvbih0LGUpe3ZhciBuPWZ0LkhTTCh0LGUpO3JldHVybiBuLmE9Tyh0LFwiYVwiKT9LKHQuYSxlKToxLG59LFNbbi5DTVlLXT1mdW5jdGlvbih0LGUpe3JldHVybiBBdChxKHQucix0LmcsdC5iKSxlKX0sUy5DTVlLQT1mdW5jdGlvbih0LGUpe3ZhciBuPWZ0LkNNWUsodCxlKTtyZXR1cm4gbi5hPU8odCxcImFcIik/Syh0LmEsZSk6MSxufSxTKSxodD1mdW5jdGlvbihlLHIsaSxvKXt2YXIgYT11dChlKSxjPVwic3RyaW5nXCI9PXR5cGVvZiBlLHU9bHQoZSxhKSxzPVwic3RyaW5nXCI9PXR5cGVvZiBlJiZPKHUsXCJhXCIpfHxcInN0cmluZ1wiIT10eXBlb2YgZSYmTyhlLFwiYVwiKSxkPV8odS5yLHUuZyx1LmIsdS5hKTtzfHxkZWxldGUgZC5hO3ZhciBsPWk/ZC5sLyhyKzEpOigxMDAtZC5sKS8ocisxKSxmPUFycmF5KHIpLmZpbGwobnVsbCkubWFwKChmdW5jdGlvbihlLG4pe3JldHVybiB0KHQoe30sZCkse2w6ZC5sK2wqKG4rMSkqKDEtMioraSl9KX0pKTtzd2l0Y2goYSl7Y2FzZSBuLkhFWDpkZWZhdWx0OnJldHVybiBmLm1hcCgoZnVuY3Rpb24oZSl7dmFyIG49eChlLmgsZS5zLGUubCk7cmV0dXJuIHMmJihuLmE9ZS5hKSxjP3M/Wi5IRVgodCh0KHt9LG4pLHthOksoMjU1Km4uYSl9KSk6Wi5IRVgobik6cz9mdC5IRVhBKG4pOmZ0LkhFWChuKX0pKTtjYXNlIG4uUkdCOnJldHVybiBmLm1hcCgoZnVuY3Rpb24odCl7dmFyIGU9eCh0LmgsdC5zLHQubCk7cmV0dXJuIHMmJihlLmE9dC5hKSxjP1ouUkdCKGUsbyk6cz9mdC5SR0JBKGUsby5kZWNpbWFscyk6ZnQuUkdCKGUsby5kZWNpbWFscyl9KSk7Y2FzZSBuLkhTTDpyZXR1cm4gZi5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBjP1ouSFNMKGUsbyk6cz9mdC5IU0xBKHQodCh7fSx4KGUuaCxlLnMsZS5sKSkse2E6ZS5hfSksby5kZWNpbWFscyk6ZnQuSFNMKHgoZS5oLGUucyxlLmwpLG8uZGVjaW1hbHMpfSkpfX0scHQ9KChSPXtidWlsZEhhcm1vbnk6ZnVuY3Rpb24odCxlLHIsaSl7dmFyIG89dXQodCksYT1sdCh0LG8pLGM9XyhhLnIsYS5nLGEuYixhLmEpLHU9XCJzdHJpbmdcIj09dHlwZW9mIHQmJk8oYSxcImFcIil8fFwic3RyaW5nXCIhPXR5cGVvZiB0JiZPKHQsXCJhXCIpLHM9XCJzdHJpbmdcIj09dHlwZW9mIHQ7c3dpdGNoKG8pe2Nhc2Ugbi5IRVg6ZGVmYXVsdDpyZXR1cm4gdT90aGlzLkhFWEEoYnQoYywwKSxlLHIscyk6dGhpcy5IRVgoYnQoYywwKSxlLHIscyk7Y2FzZSBuLkhTTDpyZXR1cm4gdT90aGlzLkhTTEEoYyxlLHIscyxpKTp0aGlzLkhTTChjLGUscixzLGkpO2Nhc2Ugbi5SR0I6cmV0dXJuIHU/dGhpcy5SR0JBKGMsZSxyLHMsaSk6dGhpcy5SR0IoYyxlLHIscyxpKX19fSlbbi5IRVhdPWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiBlKHQsbikubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gcj9aLkhFWCh4KHQuaCx0LnMsdC5sKSk6ZnQuSEVYKHgodC5oLHQucyx0LmwpKX0pKX0sUi5IRVhBPWZ1bmN0aW9uKGUsbixyLGkpe3JldHVybiBuKGUscikubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gaT9aLkhFWCh0KHQoe30seChlLmgsZS5zLGUubCkpLHthOjI1NSp0dChlLmEpfSkpOmZ0LkhFWEEodCh0KHt9LHgoZS5oLGUucyxlLmwpKSx7YTp0dChlLmEpfSkpfSkpfSxSW24uUkdCXT1mdW5jdGlvbih0LGUsbixyLGkpe3JldHVybiBlKHQsbikubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gcj9aLlJHQih4KHQuaCx0LnMsdC5sKSxpKTpmdC5SR0IoeCh0LmgsdC5zLHQubCksaS5kZWNpbWFscyl9KSl9LFIuUkdCQT1mdW5jdGlvbihlLG4scixpLG8pe3JldHVybiBuKGUscikubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gaT9aLlJHQih0KHQoe30seChlLmgsZS5zLGUubCkpLHthOnR0KGUuYSl9KSxvKTpmdC5SR0JBKHQodCh7fSx4KGUuaCxlLnMsZS5sKSkse2E6dHQoZS5hKX0pLG8uZGVjaW1hbHMpfSkpfSxSW24uSFNMXT1mdW5jdGlvbih0LGUsbixyLGkpe3JldHVybiBlKHQsbikubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gcj9aLkhTTCh7aDp0Lmgsczp0LnMsbDp0Lmx9LGkpOmZ0LkhTTCh4KHQuaCx0LnMsdC5sKSxpLmRlY2ltYWxzKX0pKX0sUi5IU0xBPWZ1bmN0aW9uKGUsbixyLGksbyl7cmV0dXJuIG4oZSxyKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBpP1ouSFNMKHQodCh7fSxlKSx7YTp0dChlLmEpfSksbyk6ZnQuSFNMQSh0KHQoe30seChlLmgsZS5zLGUubCkpLHthOnR0KGUuYSl9KSxvLmRlY2ltYWxzKX0pKX0sUiksZ3Q9KChNPXttaXg6ZnVuY3Rpb24oZSxuKXt2YXIgcixvLGEsYyx1LHMsZCxsLGYsaCxwLGcsbSxiLEEseT1lLm1hcCgoZnVuY3Rpb24odCl7dmFyIGU9dXQodCk7cmV0dXJuIGx0KHQsZSl9KSksRT1uPT09aS5TVUJUUkFDVElWRT95Lm1hcCgoZnVuY3Rpb24odCl7dmFyIGUsbixyLGksbyxhLGMsdSxzLGQsbCxmLGgscCxnPShlPXQucixuPXQuZyxyPXQuYixpPU1hdGgubWluKGUsbixyKSxvPU1hdGgubWluKDI1NS1lLDI1NS1uLDI1NS1yKSxhPWUtaSxjPW4taSx1PXItaSxzPU1hdGgubWluKGEsYyksZD1hLXMsbD0oYytzKS8yLGY9KHUrYy1zKS8yLGg9TWF0aC5tYXgoZCxsLGYpL01hdGgubWF4KGEsYyx1KSxwPWlzTmFOKGgpfHxoPT09MS8wfHxoPD0wPzE6aCx7cjpkL3Arbyx5OmwvcCtvLGI6Zi9wK299KTtyZXR1cm4gTyh0LFwiYVwiKSYmKGcuYT10LmEpLGd9KSk6bnVsbDtmdW5jdGlvbiBGKGUpe3ZhciByPW49PT1pLkFERElUSVZFP3tyOjAsZzowLGI6MCxhOjB9OntyOjAseTowLGI6MCxhOjB9O3JldHVybiBlLnJlZHVjZSgoZnVuY3Rpb24oZSxyKXt2YXIgbz1PKHIsXCJhXCIpP3IuYToxLGE9e3I6TWF0aC5taW4oZS5yK3IucipvLDI1NSksYjpNYXRoLm1pbihlLmIrci5iKm8sMjU1KSxhOjEtKDEtbykqKDEtZS5hKX0sYz1cImdcImluIGU/ZS5nOmUueSx1PVwiZ1wiaW4gcj9yLmc6ci55O3JldHVybiB0KHQoe30sYSksbj09PWkuQURESVRJVkU/e2c6TWF0aC5taW4oYyt1Km8sMjU1KX06e3k6TWF0aC5taW4oYyt1Km8sMjU1KX0pfSkscil9aWYobj09PWkuQURESVRJVkUpcj1GKHkpO2Vsc2V7dmFyIHY9RihFKTtvPXYucixhPXYueSxjPXYuYix1PU1hdGgubWluKG8sYSxjKSxzPU1hdGgubWluKDI1NS1vLDI1NS1hLDI1NS1jKSxkPW8tdSxsPWEtdSxmPWMtdSxoPU1hdGgubWluKGwsZikscD1kK2wtaCxnPWwraCxtPTIqKGYtaCksYj1NYXRoLm1heChwLGcsbSkvTWF0aC5tYXgoZCxsLGYpLEE9aXNOYU4oYil8fGI9PT0xLzB8fGI8PTA/MTpiLChyPXtyOnAvQStzLGc6Zy9BK3MsYjptL0Erc30pLmE9di5hfXJldHVybntyOksoci5yKSxnOksoci5nKSxiOksoci5iKSxhOk4oci5hLDAsMSl9fX0pW24uSEVYXT1mdW5jdGlvbih0LGUsbil7dmFyIHI9dGhpcy5taXgodCxlKTtyZXR1cm4gZGVsZXRlIHIuYSxuP1ouSEVYKHIpOmZ0LkhFWChyKX0sTS5IRVhBPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzLm1peCh0LGUpO3JldHVybiByLmE9bj8yNTUqdHQoci5hKTp0dChyLmEpLG4/Wi5IRVgocik6ZnQuSEVYQShyKX0sTVtuLlJHQl09ZnVuY3Rpb24odCxlLG4scil7dmFyIGk9dGhpcy5taXgodCxlKTtyZXR1cm4gZGVsZXRlIGkuYSxuP1ouUkdCKGkscik6ZnQuUkdCKGksci5kZWNpbWFscyl9LE0uUkdCQT1mdW5jdGlvbih0LGUsbixyKXt2YXIgaT10aGlzLm1peCh0LGUpO3JldHVybiBuP1ouUkdCKGkscik6ZnQuUkdCQShpLHIuZGVjaW1hbHMpfSxNW24uSFNMXT1mdW5jdGlvbih0LGUsbixyKXt2YXIgaT10aGlzLm1peCh0LGUpLG89XyhpLnIsaS5nLGkuYik7cmV0dXJuIGRlbGV0ZSBpLmEsZGVsZXRlIG8uYSxuP1ouSFNMKG8scik6ZnQuSFNMKGksci5kZWNpbWFscyl9LE0uSFNMQT1mdW5jdGlvbih0LGUsbixyKXt2YXIgaT10aGlzLm1peCh0LGUpLG89XyhpLnIsaS5nLGkuYixpLmEpO3JldHVybiBuP1ouSFNMKG8scik6ZnQuSFNMQShpLHIuZGVjaW1hbHMpfSxNKSxtdD1mdW5jdGlvbihlLG4pe3ZhciByPUsoZS5yLG4pLGk9SyhlLmcsbiksbz1LKGUuYixuKTtyZXR1cm4gdCh7cjpyLGc6aSxiOm99LE8oZSxcImFcIik/e2E6SyhlLmEsbil9Ont9KX0sYnQ9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdCh7aDpLKGUuaCxuKSxzOksoZS5zLG4pLGw6SyhlLmwsbil9LE8oZSxcImFcIik/e2E6SyhlLmEsbil9Ont9KX0sQXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm57YzpLKHQuYyxlKSxtOksodC5tLGUpLHk6Syh0LnksZSksazpLKHQuayxlKX19LHl0PWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiByKGx0KHQsZSksbil9LEV0PWZ1bmN0aW9uKHQsZSxuLHIsaSl7bjwxJiYobj01KTt2YXIgbz1mdW5jdGlvbih0LGUsbil7dmFyIHI9bi0xLGk9KGUuci10LnIpL3Isbz0oZS5nLXQuZykvcixhPShlLmItdC5iKS9yLGM9dHQodC5hKSx1PSh0dChlLmEpLWMpL3I7cmV0dXJuIEFycmF5KG4pLmZpbGwobnVsbCkubWFwKChmdW5jdGlvbihuLHMpe3JldHVybiAwPT09cz90OnM9PT1yP2U6e3I6Syh0LnIraSpzKSxnOksodC5nK28qcyksYjpLKHQuYithKnMpLGE6SyhjK3Uqcyl9fSkpfShsdCh0KSxsdChlKSxuKTtyZXR1cm4gby5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBpKHQscil9KSl9LEZ0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KSx0aGlzLl9vcHRpb25zPVUoZSx0KSx0aGlzLnJnYj1sdCh0KSx0aGlzLnVwZGF0ZUhTTCgpLHRoaXMudXBkYXRlQ01ZSygpfXJldHVybiBuLnByb3RvdHlwZS51cGRhdGVSR0I9ZnVuY3Rpb24oKXt0aGlzLnJnYj10KHQoe30seCh0aGlzLmhzbC5oLHRoaXMuaHNsLnMsdGhpcy5oc2wubCkpLHthOnRoaXMuaHNsLmF9KX0sbi5wcm90b3R5cGUudXBkYXRlUkdCRnJvbUNNWUs9ZnVuY3Rpb24oKXt0aGlzLnJnYj10KHQoe30sVih0aGlzLmNteWsuYyx0aGlzLmNteWsubSx0aGlzLmNteWsueSx0aGlzLmNteWsuaykpLHthOnRoaXMucmdiLmF9KX0sbi5wcm90b3R5cGUudXBkYXRlSFNMPWZ1bmN0aW9uKCl7dGhpcy5oc2w9Xyh0aGlzLnJnYi5yLHRoaXMucmdiLmcsdGhpcy5yZ2IuYix0aGlzLnJnYi5hKX0sbi5wcm90b3R5cGUudXBkYXRlQ01ZSz1mdW5jdGlvbigpe3RoaXMuY215az1xKHRoaXMucmdiLnIsdGhpcy5yZ2IuZyx0aGlzLnJnYi5iKX0sbi5wcm90b3R5cGUudXBkYXRlUkdCQW5kQ01ZSz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnVwZGF0ZVJHQigpLHRoaXMudXBkYXRlQ01ZSygpLHRoaXN9LG4ucHJvdG90eXBlLnVwZGF0ZUhTTEFuZENNWUs9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51cGRhdGVIU0woKSx0aGlzLnVwZGF0ZUNNWUsoKSx0aGlzfSxuLnByb3RvdHlwZS51cGRhdGVSR0JBbmRIU0w9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51cGRhdGVSR0JGcm9tQ01ZSygpLHRoaXMudXBkYXRlSFNMKCksdGhpc30sbi5wcm90b3R5cGUuc2V0T3B0aW9ucz1mdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9e30pLHRoaXMuX29wdGlvbnM9dCh0KHt9LHRoaXMuX29wdGlvbnMpLGUpLHRoaXN9LG4ucHJvdG90eXBlLnNldEg9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaHNsLmg9VCh0KSx0aGlzLnVwZGF0ZVJHQkFuZENNWUsoKX0sbi5wcm90b3R5cGUuc2V0Uz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5oc2wucz1OKHQsMCwxMDApLHRoaXMudXBkYXRlUkdCQW5kQ01ZSygpfSxuLnByb3RvdHlwZS5zZXRMPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmhzbC5sPU4odCwwLDEwMCksdGhpcy51cGRhdGVSR0JBbmRDTVlLKCl9LG4ucHJvdG90eXBlLnNldFI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucmdiLnI9Tih0LDAsMjU1KSx0aGlzLnVwZGF0ZUhTTEFuZENNWUsoKX0sbi5wcm90b3R5cGUuc2V0Rz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yZ2IuZz1OKHQsMCwyNTUpLHRoaXMudXBkYXRlSFNMQW5kQ01ZSygpfSxuLnByb3RvdHlwZS5zZXRCPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJnYi5iPU4odCwwLDI1NSksdGhpcy51cGRhdGVIU0xBbmRDTVlLKCl9LG4ucHJvdG90eXBlLnNldEE9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaHNsLmE9dGhpcy5yZ2IuYT1OKHQsMCwxKSx0aGlzfSxuLnByb3RvdHlwZS5zZXRDPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNteWsuYz1OKHQsMCwxMDApLHRoaXMudXBkYXRlUkdCQW5kSFNMKCl9LG4ucHJvdG90eXBlLnNldE09ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY215ay5tPU4odCwwLDEwMCksdGhpcy51cGRhdGVSR0JBbmRIU0woKX0sbi5wcm90b3R5cGUuc2V0WT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbXlrLnk9Tih0LDAsMTAwKSx0aGlzLnVwZGF0ZVJHQkFuZEhTTCgpfSxuLnByb3RvdHlwZS5zZXRLPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNteWsuaz1OKHQsMCwxMDApLHRoaXMudXBkYXRlUkdCQW5kSFNMKCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIm9wdGlvbnNcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29wdGlvbnN9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiSFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzLmhzbC5oLHRoaXMub3B0aW9ucy5kZWNpbWFscyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiU1wiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzLmhzbC5zLHRoaXMub3B0aW9ucy5kZWNpbWFscyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiTFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzLmhzbC5sLHRoaXMub3B0aW9ucy5kZWNpbWFscyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiUlwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzLnJnYi5yLHRoaXMub3B0aW9ucy5kZWNpbWFscyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiR1wiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzLnJnYi5nLHRoaXMub3B0aW9ucy5kZWNpbWFscyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiQlwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzLnJnYi5iLHRoaXMub3B0aW9ucy5kZWNpbWFscyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiQVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzLmhzbC5hLHRoaXMub3B0aW9ucy5kZWNpbWFscyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiQ1wiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzLmNteWsuYyx0aGlzLm9wdGlvbnMuZGVjaW1hbHMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIk1cIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEsodGhpcy5jbXlrLm0sdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJZXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMuY215ay55LHRoaXMub3B0aW9ucy5kZWNpbWFscyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiS1wiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzLmNteWsuayx0aGlzLm9wdGlvbnMuZGVjaW1hbHMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkhFWE9iamVjdFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZnQuSEVYKHRoaXMucmdiKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJIRVhBT2JqZWN0XCIse2dldDpmdW5jdGlvbigpe3JldHVybiBmdC5IRVhBKHRoaXMucmdiKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJSR0JPYmplY3RcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJue3I6dGhpcy5SLGc6dGhpcy5HLGI6dGhpcy5CfX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJSR0JBT2JqZWN0XCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0KHQoe30sdGhpcy5SR0JPYmplY3QpLHthOnRoaXMuQX0pfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkhTTE9iamVjdFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57aDp0aGlzLkgsczp0aGlzLlMsbDp0aGlzLkx9fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkhTTEFPYmplY3RcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHQodCh7fSx0aGlzLkhTTE9iamVjdCkse2E6dGhpcy5BfSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiQ01ZS09iamVjdFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57Yzp0aGlzLkMsbTp0aGlzLk0seTp0aGlzLlksazp0aGlzLkt9fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkNNWUtBT2JqZWN0XCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0KHQoe30sdGhpcy5DTVlLT2JqZWN0KSx7YTp0aGlzLkF9KX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJIRVhcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFouSEVYKHtyOnRoaXMuUixnOnRoaXMuRyxiOnRoaXMuQn0pfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkhFWEFcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFouSEVYKHtyOnRoaXMuUixnOnRoaXMuRyxiOnRoaXMuQixhOjI1NSp0aGlzLkF9KX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJSR0JcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFouUkdCKHtyOnRoaXMuUixnOnRoaXMuRyxiOnRoaXMuQn0sdGhpcy5vcHRpb25zKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJSR0JBXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBaLlJHQih7cjp0aGlzLlIsZzp0aGlzLkcsYjp0aGlzLkIsYTp0aGlzLkF9LHRoaXMub3B0aW9ucyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiSFNMXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBaLkhTTCh7aDp0aGlzLkgsczp0aGlzLlMsbDp0aGlzLkx9LHRoaXMub3B0aW9ucyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiSFNMQVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWi5IU0woe2g6dGhpcy5ILHM6dGhpcy5TLGw6dGhpcy5MLGE6dGhpcy5BfSx0aGlzLm9wdGlvbnMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkNNWUtcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFouQ01ZSyh7Yzp0aGlzLkMsbTp0aGlzLk0seTp0aGlzLlksazp0aGlzLkt9LHRoaXMub3B0aW9ucyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiQ01ZS0FcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFouQ01ZSyh7Yzp0aGlzLkMsbTp0aGlzLk0seTp0aGlzLlksazp0aGlzLkssYTp0aGlzLkF9LHRoaXMub3B0aW9ucyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksbi50b0hFWE9iamVjdD1mdW5jdGlvbih0KXt2YXIgZT11dCh0KTtyZXR1cm4geXQodCxlLDAsZnQuSEVYKX0sbi50b0hFWD1mdW5jdGlvbih0KXtyZXR1cm4gWi5IRVgobi50b0hFWE9iamVjdCh0KSl9LG4udG9IRVhBT2JqZWN0PWZ1bmN0aW9uKHQpe3ZhciBlPXV0KHQpO3JldHVybiB5dCh0LGUsMCxmdC5IRVhBKX0sbi50b0hFWEE9ZnVuY3Rpb24odCl7cmV0dXJuIFouSEVYKG4udG9IRVhBT2JqZWN0KHQpKX0sbi50b1JHQk9iamVjdD1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj11dCh0KTtyZXR1cm4geXQodCxuLGUuZGVjaW1hbHMsZnQuUkdCKX0sbi50b1JHQj1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj11dCh0KSxyPVUoZSx0KSxpPXl0KHQsbiw2LGZ0LlJHQik7cmV0dXJuIFouUkdCKGkscil9LG4udG9SR0JBT2JqZWN0PWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpO3JldHVybiB5dCh0LG4sZS5kZWNpbWFscyxmdC5SR0JBKX0sbi50b1JHQkE9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIG49dXQodCkscj1VKGUsdCksaT15dCh0LG4sNixmdC5SR0JBKTtyZXR1cm4gWi5SR0IoaSxyKX0sbi50b0hTTE9iamVjdD1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj11dCh0KTtyZXR1cm4geXQodCxuLGUuZGVjaW1hbHMsZnQuSFNMKX0sbi50b0hTTD1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj11dCh0KSxyPVUoZSx0KSxpPXl0KHQsbiw2LGZ0LkhTTCk7cmV0dXJuIFouSFNMKGkscil9LG4udG9IU0xBT2JqZWN0PWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpO3JldHVybiB5dCh0LG4sZS5kZWNpbWFscyxmdC5IU0xBKX0sbi50b0hTTEE9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIG49dXQodCkscj1VKGUsdCksaT15dCh0LG4sNixmdC5IU0xBKTtyZXR1cm4gWi5IU0woaSxyKX0sbi50b0NNWUtPYmplY3Q9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIG49dXQodCk7cmV0dXJuIHl0KHQsbixlLmRlY2ltYWxzLGZ0LkNNWUspfSxuLnRvQ01ZSz1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj11dCh0KSxyPVUoZSx0KSxpPXl0KHQsbiw2LGZ0LkNNWUspO3JldHVybiBaLkNNWUsoaSxyKX0sbi50b0NNWUtBT2JqZWN0PWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpO3JldHVybiB5dCh0LG4sZS5kZWNpbWFscyxmdC5DTVlLQSl9LG4udG9DTVlLQT1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj11dCh0KSxyPVUoZSx0KSxpPXl0KHQsbiw2LGZ0LkNNWUtBKTtyZXR1cm4gWi5DTVlLKGkscil9LG4uZ2V0QmxlbmRIRVhPYmplY3Q9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB2b2lkIDA9PT1uJiYobj01KSxFdCh0LGUsbiwwLGZ0LkhFWCl9LG4uZ2V0QmxlbmRIRVg9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB2b2lkIDA9PT1yJiYocj01KSxuLmdldEJsZW5kSEVYT2JqZWN0KHQsZSxyKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBaLkhFWCh0KX0pKX0sbi5nZXRCbGVuZEhFWEFPYmplY3Q9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB2b2lkIDA9PT1uJiYobj01KSxFdCh0LGUsbiwwLGZ0LkhFWEEpfSxuLmdldEJsZW5kSEVYQT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHZvaWQgMD09PXImJihyPTUpLG4uZ2V0QmxlbmRIRVhBT2JqZWN0KHQsZSxyKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBaLkhFWCh0KX0pKX0sbi5nZXRCbGVuZFJHQk9iamVjdD1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49NSksdm9pZCAwPT09ciYmKHI9e30pLEV0KHQsZSxuLHIuZGVjaW1hbHMsZnQuUkdCKX0sbi5nZXRCbGVuZFJHQj1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49NSksdm9pZCAwPT09ciYmKHI9e30pLEV0KHQsZSxuLDYsZnQuUkdCKS5tYXAoKGZ1bmN0aW9uKG4pe3JldHVybiBaLlJHQihuLFUocix0LGUpKX0pKX0sbi5nZXRCbGVuZFJHQkFPYmplY3Q9ZnVuY3Rpb24odCxlLG4scil7cmV0dXJuIHZvaWQgMD09PW4mJihuPTUpLHZvaWQgMD09PXImJihyPXt9KSxFdCh0LGUsbixyLmRlY2ltYWxzLGZ0LlJHQkEpfSxuLmdldEJsZW5kUkdCQT1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49NSksdm9pZCAwPT09ciYmKHI9e30pLEV0KHQsZSxuLDYsZnQuUkdCQSkubWFwKChmdW5jdGlvbihuKXtyZXR1cm4gWi5SR0IobixVKHIsdCxlKSl9KSl9LG4uZ2V0QmxlbmRIU0xPYmplY3Q9ZnVuY3Rpb24odCxlLG4scil7cmV0dXJuIHZvaWQgMD09PW4mJihuPTUpLHZvaWQgMD09PXImJihyPXt9KSxFdCh0LGUsbixyLmRlY2ltYWxzLGZ0LkhTTCl9LG4uZ2V0QmxlbmRIU0w9ZnVuY3Rpb24odCxlLG4scil7dm9pZCAwPT09biYmKG49NSksdm9pZCAwPT09ciYmKHI9e30pO3ZhciBpPVUocix0LGUpO3JldHVybiBFdCh0LGUsbiw2LGZ0LkhTTCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gWi5IU0wodCxpKX0pKX0sbi5nZXRCbGVuZEhTTEFPYmplY3Q9ZnVuY3Rpb24odCxlLG4scil7cmV0dXJuIHZvaWQgMD09PW4mJihuPTUpLHZvaWQgMD09PXImJihyPXt9KSxFdCh0LGUsbixyLmRlY2ltYWxzLGZ0LkhTTEEpfSxuLmdldEJsZW5kSFNMQT1mdW5jdGlvbih0LGUsbixyKXt2b2lkIDA9PT1uJiYobj01KSx2b2lkIDA9PT1yJiYocj17fSk7dmFyIGk9VShyLHQsZSk7cmV0dXJuIEV0KHQsZSxuLDYsZnQuSFNMQSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gWi5IU0wodCxpKX0pKX0sbi5nZXRNaXhIRVhPYmplY3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9aS5BRERJVElWRSksZ3QuSEVYKHQsZSwhMSl9LG4uZ2V0TWl4SEVYPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPWkuQURESVRJVkUpLGd0LkhFWCh0LGUsITApfSxuLmdldE1peEhFWEFPYmplY3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9aS5BRERJVElWRSksZ3QuSEVYQSh0LGUsITEpfSxuLmdldE1peEhFWEE9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9aS5BRERJVElWRSksZ3QuSEVYQSh0LGUsITApfSxuLmdldE1peFJHQk9iamVjdD1mdW5jdGlvbih0LG4scil7cmV0dXJuIHZvaWQgMD09PW4mJihuPWkuQURESVRJVkUpLHZvaWQgMD09PXImJihyPXt9KSxndC5SR0IodCxuLCExLFUuYXBwbHkodm9pZCAwLGUoW3JdLHQsITEpKSl9LG4uZ2V0TWl4UkdCPWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49aS5BRERJVElWRSksdm9pZCAwPT09ciYmKHI9e30pLGd0LlJHQih0LG4sITAsVS5hcHBseSh2b2lkIDAsZShbcl0sdCwhMSkpKX0sbi5nZXRNaXhSR0JBT2JqZWN0PWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49aS5BRERJVElWRSksdm9pZCAwPT09ciYmKHI9e30pLGd0LlJHQkEodCxuLCExLFUuYXBwbHkodm9pZCAwLGUoW3JdLHQsITEpKSl9LG4uZ2V0TWl4UkdCQT1mdW5jdGlvbih0LG4scil7cmV0dXJuIHZvaWQgMD09PW4mJihuPWkuQURESVRJVkUpLHZvaWQgMD09PXImJihyPXt9KSxndC5SR0JBKHQsbiwhMCxVLmFwcGx5KHZvaWQgMCxlKFtyXSx0LCExKSkpfSxuLmdldE1peEhTTE9iamVjdD1mdW5jdGlvbih0LG4scil7cmV0dXJuIHZvaWQgMD09PW4mJihuPWkuQURESVRJVkUpLHZvaWQgMD09PXImJihyPXt9KSxndC5IU0wodCxuLCExLFUuYXBwbHkodm9pZCAwLGUoW3JdLHQsITEpKSl9LG4uZ2V0TWl4SFNMPWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49aS5BRERJVElWRSksdm9pZCAwPT09ciYmKHI9e30pLGd0LkhTTCh0LG4sITAsVS5hcHBseSh2b2lkIDAsZShbcl0sdCwhMSkpKX0sbi5nZXRNaXhIU0xBT2JqZWN0PWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdm9pZCAwPT09biYmKG49aS5BRERJVElWRSksdm9pZCAwPT09ciYmKHI9e30pLGd0LkhTTEEodCxuLCExLFUuYXBwbHkodm9pZCAwLGUoW3JdLHQsITEpKSl9LG4uZ2V0TWl4SFNMQT1mdW5jdGlvbih0LG4scil7cmV0dXJuIHZvaWQgMD09PW4mJihuPWkuQURESVRJVkUpLHZvaWQgMD09PXImJihyPXt9KSxndC5IU0xBKHQsbiwhMCxVLmFwcGx5KHZvaWQgMCxlKFtyXSx0LCExKSkpfSxuLmdldFNoYWRlcz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHZvaWQgMD09PW4mJihuPXt9KSxodCh0LGUsITAsVShuLHQpKX0sbi5nZXRUaW50cz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHZvaWQgMD09PW4mJihuPXt9KSxodCh0LGUsITEsVShuLHQpKX0sbi5nZXRIYXJtb255PWZ1bmN0aW9uKHQsZSxuLG8pe3JldHVybiB2b2lkIDA9PT1lJiYoZT1yLkNPTVBMRU1FTlRBUlkpLHZvaWQgMD09PW4mJihuPWkuQURESVRJVkUpLHZvaWQgMD09PW8mJihvPXt9KSxmdW5jdGlvbih0LGUsbixpKXt2YXIgbztyZXR1cm4obz17fSxvW3IuQU5BTE9HT1VTXT1wdC5idWlsZEhhcm1vbnkoZSxudCxuLGkpLG9bci5DT01QTEVNRU5UQVJZXT1wdC5idWlsZEhhcm1vbnkoZSxydCxuLGkpLG9bci5TUExJVF9DT01QTEVNRU5UQVJZXT1wdC5idWlsZEhhcm1vbnkoZSxpdCxuLGkpLG9bci5UUklBRElDXT1wdC5idWlsZEhhcm1vbnkoZSxvdCxuLGkpLG9bci5URVRSQURJQ109cHQuYnVpbGRIYXJtb255KGUsYXQsbixpKSxvW3IuU1FVQVJFXT1wdC5idWlsZEhhcm1vbnkoZSxjdCxuLGkpLG8pW3RdfShlLHQsbixVKG8sdCkpfSxufSgpO2V4cG9ydHtGdCBhcyBDb2xvclRyYW5zbGF0b3IsciBhcyBIYXJtb255LGkgYXMgTWl4fTtcbiIsICJpbXBvcnQgeyBBcHAgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IHsgQ29kZVN0eWxlclNldHRpbmdzLCBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBDb2RlU3R5bGVyVGhlbWVNb2RlQ29sb3VycywgQ29kZVN0eWxlclRoZW1lU2V0dGluZ3MsIENvbG91ciwgTEFOR1VBR0VfTkFNRVMsIExBTkdVQUdFUyB9IGZyb20gXCIuL1NldHRpbmdzXCI7XG5pbXBvcnQgeyBpc0NzcyB9IGZyb20gXCIuL1NldHRpbmdzVGFiXCI7XG5cbmludGVyZmFjZSBUaGVtZVN0eWxlIHtcblx0Ym9yZGVyPzoge1xuXHRcdHNpemU6IG51bWJlcjtcblx0XHRzdHlsZTogc3RyaW5nO1xuXHR9LFxuXHRzY3JvbGxiYXI/OiBib29sZWFuO1xuXHRleHRyYT86IHN0cmluZztcbn1cblxuY29uc3QgU1RZTEVfSUQgPSBcImNvZGUtc3R5bGVyLXN0eWxlc1wiO1xuY29uc3QgVEhFTUVfU1RZTEVTOiBSZWNvcmQ8c3RyaW5nLFRoZW1lU3R5bGU+ID0ge1xuXHRcIlByaXNtXCI6IHtcblx0XHRib3JkZXI6IHtcblx0XHRcdHNpemU6IDEsXG5cdFx0XHRzdHlsZTogXCIxcHggc29saWQgdmFyKC0td2luZG93LWJvcmRlci1jb2xvcilcIixcblx0XHR9LFxuXHR9LFxuXHRcIlNoaW1tZXJpbmcgRm9jdXNcIjoge1xuXHRcdGJvcmRlcjoge1xuXHRcdFx0c2l6ZTogMSxcblx0XHRcdHN0eWxlOiBcInZhcigtLXRoaW4tbXV0ZWQtYm9yZGVyKVwiLFxuXHRcdH0sXG5cdH0sXG5cdFwiTWluaW1hbFwiOiB7XG5cdFx0ZXh0cmE6IGBcblx0XHRcdC5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202LmlzLXJlYWRhYmxlLWxpbmUtd2lkdGggOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyIHtcblx0XHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdH1cblx0XHRgLFxuXHR9LFxuXHRcIk9ic2lkaWFuaXRlXCI6IHtcblx0XHRzY3JvbGxiYXI6IHRydWUsXG5cdH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVTdHlsaW5nKHNldHRpbmdzOiBDb2RlU3R5bGVyU2V0dGluZ3MsIGFwcDogQXBwKTogdm9pZCB7XG5cdGNvbnN0IGN1cnJlbnRUaGVtZSA9IGdldEN1cnJlbnRUaGVtZShhcHApO1xuXHRsZXQgc3R5bGVUYWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChTVFlMRV9JRCk7XG5cdGlmICghc3R5bGVUYWcpIHtcblx0XHRzdHlsZVRhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTtcblx0XHRzdHlsZVRhZy5pZCA9IFNUWUxFX0lEO1xuXHRcdGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiaGVhZFwiKVswXS5hcHBlbmRDaGlsZChzdHlsZVRhZyk7XG5cdH1cblx0c3R5bGVUYWcuaW5uZXJUZXh0ID0gKHN0eWxlVGhlbWVDb2xvdXJzKHNldHRpbmdzLmN1cnJlbnRUaGVtZS5jb2xvdXJzKStzdHlsZVRoZW1lU2V0dGluZ3Moc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLGN1cnJlbnRUaGVtZSkrc3R5bGVMYW5ndWFnZUNvbG91cnMoc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLHNldHRpbmdzLnJlZGlyZWN0TGFuZ3VhZ2VzLGN1cnJlbnRUaGVtZSkpLnRyaW0oKS5yZXBsYWNlKC9cXHMrL2csXCIgXCIpO1xuXHRhZGRUaGVtZVNldHRpbmdzQ2xhc3NlcyhzZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MpO1xufVxuXG5mdW5jdGlvbiBzdHlsZVRoZW1lQ29sb3VycyAodGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKTogc3RyaW5nIHtcblx0cmV0dXJuIE9iamVjdC5rZXlzKHRoZW1lQ29sb3Vycy5saWdodC5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0cykucmVkdWNlKChyZXN1bHQ6IHN0cmluZywgYWx0ZXJuYXRpdmVIaWdobGlnaHQ6IHN0cmluZykgPT4ge1xuXHRcdHJldHVybiByZXN1bHQgKyBgXG5cdFx0XHRib2R5LmNvZGUtc3R5bGVyIC5jb2RlLXN0eWxlci1saW5lLWhpZ2hsaWdodGVkLSR7YWx0ZXJuYXRpdmVIaWdobGlnaHQucmVwbGFjZSgvXFxzKy9nLFwiLVwiKS50b0xvd2VyQ2FzZSgpfSB7XG5cdFx0XHRcdC0tZ3JhZGllbnQtYmFja2dyb3VuZC1jb2xvdXI6IHZhcigtLWNvZGUtc3R5bGVyLSR7YWx0ZXJuYXRpdmVIaWdobGlnaHQucmVwbGFjZSgvXFxzKy9nLFwiLVwiKS50b0xvd2VyQ2FzZSgpfS1oaWdobGlnaHQtY29sb3VyKSAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdGA7XG5cdH0sYFxuXHRcdGJvZHkuY29kZS1zdHlsZXIudGhlbWUtbGlnaHQge1xuXHRcdFx0JHtnZXRUaGVtZUNvbG91cnModGhlbWVDb2xvdXJzLmxpZ2h0KX1cblx0XHR9XG5cdFx0Ym9keS5jb2RlLXN0eWxlci50aGVtZS1kYXJrIHtcblx0XHRcdCR7Z2V0VGhlbWVDb2xvdXJzKHRoZW1lQ29sb3Vycy5kYXJrKX1cblx0XHR9XG5cdGApO1xufVxuXG5mdW5jdGlvbiBnZXRUaGVtZUNvbG91cnMgKHRoZW1lTW9kZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZU1vZGVDb2xvdXJzKTogc3RyaW5nIHtcblx0cmV0dXJuIE9iamVjdC5lbnRyaWVzKHtcblx0XHRcImNvZGVibG9jay1iYWNrZ3JvdW5kLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmNvZGVibG9jay5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFwiY29kZWJsb2NrLXRleHQtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuY29kZWJsb2NrLnRleHRDb2xvdXIsXG5cdFx0XCJndXR0ZXItYmFja2dyb3VuZC1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5ndXR0ZXIuYmFja2dyb3VuZENvbG91cixcblx0XHRcImd1dHRlci10ZXh0LWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmd1dHRlci50ZXh0Q29sb3VyLFxuXHRcdFwiZ3V0dGVyLWFjdGl2ZS10ZXh0LWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmd1dHRlci5hY3RpdmVUZXh0Q29sb3VyLFxuXHRcdFwiaGVhZGVyLWJhY2tncm91bmQtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuaGVhZGVyLmJhY2tncm91bmRDb2xvdXIsXG5cdFx0XCJoZWFkZXItdGl0bGUtdGV4dC1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5oZWFkZXIudGl0bGUudGV4dENvbG91cixcblx0XHRcImhlYWRlci1sYW5ndWFnZS10YWctYmFja2dyb3VuZC1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5oZWFkZXIubGFuZ3VhZ2VUYWcuYmFja2dyb3VuZENvbG91cixcblx0XHRcImhlYWRlci1sYW5ndWFnZS10YWctdGV4dC1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dENvbG91cixcblx0XHRcImhlYWRlci1zZXBhcmF0b3ItY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuaGVhZGVyLmxpbmVDb2xvdXIsXG5cdFx0XCJoZWFkZXItZXh0ZXJuYWwtcmVmZXJlbmNlLXJlcG9zaXRvcnlcIjogdGhlbWVNb2RlQ29sb3Vycy5oZWFkZXIuZXh0ZXJuYWxSZWZlcmVuY2UuZGlzcGxheVJlcG9zaXRvcnlDb2xvdXIsXG5cdFx0XCJoZWFkZXItZXh0ZXJuYWwtcmVmZXJlbmNlLXZlcnNpb25cIjogdGhlbWVNb2RlQ29sb3Vycy5oZWFkZXIuZXh0ZXJuYWxSZWZlcmVuY2UuZGlzcGxheVZlcnNpb25Db2xvdXIsXG5cdFx0XCJoZWFkZXItZXh0ZXJuYWwtcmVmZXJlbmNlLXRpbWVzdGFtcFwiOiB0aGVtZU1vZGVDb2xvdXJzLmhlYWRlci5leHRlcm5hbFJlZmVyZW5jZS5kaXNwbGF5VGltZXN0YW1wQ29sb3VyLFxuXHRcdFwiYWN0aXZlLWNvZGVibG9jay1saW5lLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmhpZ2hsaWdodHMuYWN0aXZlQ29kZWJsb2NrTGluZUNvbG91cixcblx0XHRcImFjdGl2ZS1lZGl0b3ItbGluZS1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5oaWdobGlnaHRzLmFjdGl2ZUVkaXRvckxpbmVDb2xvdXIsXG5cdFx0XCJkZWZhdWx0LWhpZ2hsaWdodC1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5oaWdobGlnaHRzLmRlZmF1bHRDb2xvdXIsXG5cdFx0XCJidXR0b24tY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuYWR2YW5jZWQuYnV0dG9uQ29sb3VyLFxuXHRcdFwiYnV0dG9uLWFjdGl2ZS1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5hZHZhbmNlZC5idXR0b25BY3RpdmVDb2xvdXIsXG5cdFx0XCJpbmxpbmUtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuaW5saW5lLnRleHRDb2xvdXIsXG5cdFx0XCJpbmxpbmUtY29sb3VyLWFjdGl2ZVwiOiB0aGVtZU1vZGVDb2xvdXJzLmlubGluZS5hY3RpdmVUZXh0Q29sb3VyLFxuXHRcdFwiaW5saW5lLWJhY2tncm91bmQtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuaW5saW5lLmJhY2tncm91bmRDb2xvdXIsXG5cdFx0XCJpbmxpbmUtdGl0bGUtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuaW5saW5lLnRpdGxlVGV4dENvbG91cixcblx0XHQuLi5PYmplY3QuZW50cmllcyh0aGVtZU1vZGVDb2xvdXJzLmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzKS5yZWR1Y2UoKHJlc3VsdDogUmVjb3JkPHN0cmluZyxDb2xvdXI+LFthbHRlcm5hdGl2ZUhpZ2hsaWdodCxjb2xvdXJdOiBbc3RyaW5nLENvbG91cl0pOiBSZWNvcmQ8c3RyaW5nLENvbG91cj4gPT4ge1xuXHRcdFx0cmVzdWx0W2Ake2FsdGVybmF0aXZlSGlnaGxpZ2h0LnJlcGxhY2UoL1xccysvZyxcIi1cIikudG9Mb3dlckNhc2UoKX0taGlnaGxpZ2h0LWNvbG91cmBdID0gY29sb3VyO1xuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHR9LHt9KVxuXHR9KS5yZWR1Y2UoKHJlc3VsdDogc3RyaW5nLCBbY3NzVmFyaWFibGUsY29sb3VyXTogW3N0cmluZyxDb2xvdXJdKTogc3RyaW5nID0+IHtcblx0XHRjb25zdCBzdHlsZUNvbG91ciA9IGlzQ3NzKGNvbG91cik/YHZhcigke2NvbG91cn0pYDpjb2xvdXI7XG5cdFx0cmV0dXJuIHJlc3VsdCArIGAtLWNvZGUtc3R5bGVyLSR7Y3NzVmFyaWFibGV9OiAke3N0eWxlQ29sb3VyfTtgO1xuXHR9LFwiXCIpO1xufVxuXG5mdW5jdGlvbiBzdHlsZVRoZW1lU2V0dGluZ3MgKHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzLCBjdXJyZW50VGhlbWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdHJldHVybiBgXG5cdFx0Ym9keS5jb2RlLXN0eWxlciAuY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZyB7XG5cdFx0XHQtLWNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWctdGV4dC1ib2xkOiAke3RoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLnRleHRCb2xkP1wiYm9sZFwiOlwibm9ybWFsXCJ9O1xuXHRcdFx0LS1jb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnLXRleHQtaXRhbGljOiAke3RoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLnRleHRJdGFsaWM/XCJpdGFsaWNcIjpcIm5vcm1hbFwifTtcblx0XHRcdGZvbnQtZmFtaWx5OiAke3RoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLnRleHRGb250IT09XCJcIj90aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Rm9udDpcInZhcigtLWZvbnQtdGV4dClcIn07XG5cdFx0fVxuXHRcdGJvZHkuY29kZS1zdHlsZXIgLmNvZGUtc3R5bGVyLWhlYWRlci10ZXh0IHtcblx0XHRcdC0tY29kZS1zdHlsZXItaGVhZGVyLXRpdGxlLXRleHQtYm9sZDogJHt0aGVtZVNldHRpbmdzLmhlYWRlci50aXRsZS50ZXh0Qm9sZD9cImJvbGRcIjpcIm5vcm1hbFwifTtcblx0XHRcdC0tY29kZS1zdHlsZXItaGVhZGVyLXRpdGxlLXRleHQtaXRhbGljOiAke3RoZW1lU2V0dGluZ3MuaGVhZGVyLnRpdGxlLnRleHRJdGFsaWM/XCJpdGFsaWNcIjpcIm5vcm1hbFwifTtcblx0XHRcdGZvbnQtZmFtaWx5OiAke3RoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLnRleHRGb250IT09XCJcIj90aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Rm9udDpcInZhcigtLWZvbnQtdGV4dClcIn07XG5cdFx0fVxuXHRcdGJvZHkuY29kZS1zdHlsZXIge1xuXHRcdFx0LS1ib3JkZXItcmFkaXVzOiAke3RoZW1lU2V0dGluZ3MuY29kZWJsb2NrLmN1cnZhdHVyZX1weDtcblx0XHRcdC0tbGFuZ3VhZ2UtaWNvbi1zaXplOiAke3RoZW1lU2V0dGluZ3MuYWR2YW5jZWQuaWNvblNpemV9cHg7XG5cdFx0XHQtLWdyYWRpZW50LWhpZ2hsaWdodHMtY29sb3VyLXN0b3A6ICR7dGhlbWVTZXR0aW5ncy5hZHZhbmNlZC5ncmFkaWVudEhpZ2hsaWdodHM/dGhlbWVTZXR0aW5ncy5hZHZhbmNlZC5ncmFkaWVudEhpZ2hsaWdodHNDb2xvdXJTdG9wOlwiMTAwJVwifTtcblx0XHRcdC0taGVhZGVyLWZvbnQtc2l6ZTogJHt0aGVtZVNldHRpbmdzLmhlYWRlci5mb250U2l6ZX1weDtcblx0XHRcdC0tbGluZS13cmFwcGluZzogJHt0aGVtZVNldHRpbmdzLmNvZGVibG9jay51bndyYXBMaW5lcz9cInByZVwiOlwicHJlLXdyYXBcIn07XG5cdFx0XHQtLWNvZGUtc3R5bGVyLWlubGluZS1mb250LXdlaWdodDogJHt0aGVtZVNldHRpbmdzLmlubGluZS5mb250V2VpZ2h0fTAwO1xuXHRcdFx0LS1jb2RlLXN0eWxlci1pbmxpbmUtYm9yZGVyLXJhZGl1czogJHt0aGVtZVNldHRpbmdzLmlubGluZS5jdXJ2YXR1cmV9cHg7XG5cdFx0XHQtLWNvZGUtc3R5bGVyLWlubGluZS1wYWRkaW5nLXZlcnRpY2FsOiAke3RoZW1lU2V0dGluZ3MuaW5saW5lLnBhZGRpbmdWZXJ0aWNhbH1weDtcblx0XHRcdC0tY29kZS1zdHlsZXItaW5saW5lLXBhZGRpbmctaG9yaXpvbnRhbDogJHt0aGVtZVNldHRpbmdzLmlubGluZS5wYWRkaW5nSG9yaXpvbnRhbH1weDtcblx0XHRcdC0tY29kZS1zdHlsZXItaW5saW5lLW1hcmdpbi1ob3Jpem9udGFsOiAke3RoZW1lU2V0dGluZ3MuaW5saW5lLm1hcmdpbkhvcml6b250YWx9cHg7XG5cdFx0XHQtLWNvZGUtc3R5bGVyLWlubGluZS10aXRsZS1mb250LXdlaWdodDogJHt0aGVtZVNldHRpbmdzLmlubGluZS50aXRsZUZvbnRXZWlnaHR9MDA7XG5cdFx0XHQkeyF0aGVtZVNldHRpbmdzLmNvZGVibG9jay53cmFwTGluZXNBY3RpdmU/XCJcIjpcIi0tbGluZS1hY3RpdmUtd3JhcHBpbmc6IHByZS13cmFwO1wifVxuXHRcdFx0JHt0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheUNvbG91cj9cIlwiOlwiLS1pY29uLWZpbHRlcjogZ3JheXNjYWxlKDEpO1wifVxuXHRcdH1cblx0XHQke1RIRU1FX1NUWUxFUz8uW2N1cnJlbnRUaGVtZV0/LmJvcmRlcj9gXG5cdFx0XHQubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyIHtcblx0XHRcdFx0LS1jb2RlLXN0eWxlci1oZWFkZXItYm9yZGVyOmArIC8vQHRzLWV4cGVjdC1lcnJvciBEb2VzIEV4aXN0XG5cdFx0XHRcdFx0VEhFTUVfU1RZTEVTW2N1cnJlbnRUaGVtZV0uYm9yZGVyLnN0eWxlK2A7XG5cdFx0XHRcdC0taGVhZGVyLXNlcGFyYXRvci13aWR0aC1wYWRkaW5nOiBjYWxjKHZhcigtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGgpIC0gYCsgLy9AdHMtZXhwZWN0LWVycm9yIERvZXMgRXhpc3Rcblx0XHRcdFx0XHRUSEVNRV9TVFlMRVNbY3VycmVudFRoZW1lXS5ib3JkZXIuc2l6ZStgcHgpO1xuXHRcdFx0XHQtLWZvbGRlZC1ib3R0b20tYm9yZGVyOiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItYm9yZGVyKTtcblx0XHRcdH1cblx0XHRgOlwiXCJ9XG5cdFx0JHtUSEVNRV9TVFlMRVM/LltjdXJyZW50VGhlbWVdPy5zY3JvbGxiYXI/YFxuXHRcdFx0cHJlLmNvZGUtc3R5bGVyLXByZTo6LXdlYmtpdC1zY3JvbGxiYXIsXG5cdFx0XHRwcmUuY29kZS1zdHlsZXItcHJlID4gY29kZTo6LXdlYmtpdC1zY3JvbGxiYXIge1xuXHRcdFx0XHR3aWR0aDogdmFyKC0tY29kZS1wYWRkaW5nKTtcblx0XHRcdFx0aGVpZ2h0OiB2YXIoLS1jb2RlLXBhZGRpbmcpO1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpO1xuXHRcdFx0fVxuXHRcdGA6XCJcIn1cblx0XHQke1RIRU1FX1NUWUxFUz8uW2N1cnJlbnRUaGVtZV0/LmV4dHJhP1RIRU1FX1NUWUxFU1tjdXJyZW50VGhlbWVdLmV4dHJhOlwiXCJ9XG5cdGA7XG59XG5cbmZ1bmN0aW9uIHN0eWxlTGFuZ3VhZ2VDb2xvdXJzICh0aGVtZVNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncywgcmVkaXJlY3RMYW5ndWFnZXM6IFJlY29yZDxzdHJpbmcse2NvbG91cj86IENvbG91ciwgaWNvbj86IHN0cmluZ30+LCBjdXJyZW50VGhlbWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdHJldHVybiBPYmplY3QuZW50cmllcyhMQU5HVUFHRV9OQU1FUykucmVkdWNlKChyZXN1bHQ6IHN0cmluZyxbbGFuZ3VhZ2VOYW1lLCBsYW5ndWFnZURpc3BsYXlOYW1lXTogW3N0cmluZyxzdHJpbmddKTogc3RyaW5nID0+IHtcblx0XHRpZiAoTEFOR1VBR0VTPy5bbGFuZ3VhZ2VEaXNwbGF5TmFtZV0/LmNvbG91ciB8fCAobGFuZ3VhZ2VOYW1lIGluIHJlZGlyZWN0TGFuZ3VhZ2VzICYmIFwiY29sb3VyXCIgaW4gcmVkaXJlY3RMYW5ndWFnZXNbbGFuZ3VhZ2VOYW1lXSkpIHtcblx0XHRcdHJlc3VsdCArPSBgXG5cdFx0XHRcdC5sYW5ndWFnZS0ke2xhbmd1YWdlTmFtZX0ge1xuXHRcdFx0XHRcdC0tbGFuZ3VhZ2UtYm9yZGVyLWNvbG91cjogJHtyZWRpcmVjdExhbmd1YWdlcz8uW2xhbmd1YWdlTmFtZV0/LltcImNvbG91clwiXSA/PyBMQU5HVUFHRVNbbGFuZ3VhZ2VEaXNwbGF5TmFtZV0uY29sb3VyfTtcblx0XHRcdFx0XHQtLWxhbmd1YWdlLWJvcmRlci13aWR0aDogJHt0aGVtZVNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyQ29sb3VyP3RoZW1lU2V0dGluZ3MuYWR2YW5jZWQubGFuZ3VhZ2VCb3JkZXJXaWR0aDowfXB4O1xuXHRcdFx0XHR9XG5cdFx0XHRgO1xuXHRcdFx0aWYgKFRIRU1FX1NUWUxFUz8uW2N1cnJlbnRUaGVtZV0/LmJvcmRlcikge1xuXHRcdFx0XHRyZXN1bHQgKz0gYFxuXHRcdFx0XHRcdC5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIubGFuZ3VhZ2UtJHtsYW5ndWFnZU5hbWV9ICB7XG5cdFx0XHRcdFx0XHQtLWxhbmd1YWdlLWJvcmRlci13aWR0aDogJHsgLy9AdHMtZXhwZWN0LWVycm9yIERvZXMgZXhpc3Rcblx0dGhlbWVTZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlckNvbG91cj90aGVtZVNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyV2lkdGgrVEhFTUVfU1RZTEVTW2N1cnJlbnRUaGVtZV0uYm9yZGVyLnNpemU6MH1weDtcblx0XHRcdFx0XHR9YDtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fSxcIlwiKTtcbn1cblxuZnVuY3Rpb24gYWRkVGhlbWVTZXR0aW5nc0NsYXNzZXMgKHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzKTogdm9pZCB7XG5cdHRoZW1lU2V0dGluZ3MuaW5saW5lLnN0eWxlID8gZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItc3R5bGUtaW5saW5lXCIpIDogZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKFwiY29kZS1zdHlsZXItc3R5bGUtaW5saW5lXCIpO1xuXHR0aGVtZVNldHRpbmdzLmd1dHRlci5oaWdobGlnaHQgPyBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlci1ndXR0ZXItaGlnaGxpZ2h0XCIpIDogZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKFwiY29kZS1zdHlsZXItZ3V0dGVyLWhpZ2hsaWdodFwiKTtcblx0dGhlbWVTZXR0aW5ncy5ndXR0ZXIuYWN0aXZlTGluZSA/IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLWd1dHRlci1hY3RpdmUtbGluZVwiKSA6IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZShcImNvZGUtc3R5bGVyLWd1dHRlci1hY3RpdmUtbGluZVwiKTtcblxuXHRkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXCJjb2RlLXN0eWxlci1hY3RpdmUtbGluZS1oaWdobGlnaHRcIixcImNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodC1jb2RlYmxvY2tcIixcImNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodC1lZGl0b3JcIik7IC8vVE9ETyAoQG1heXVyYW5rdikgSXMgdGhpcyBzZWN0aW9uIG5lY2Vzc2FyeT8gSXMgdGhpcyBmdW5jdGlvbiBuZWNlc3Nhcnk/XG5cdGlmICh0aGVtZVNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlRWRpdG9yTGluZSAmJiB0aGVtZVNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlQ29kZWJsb2NrTGluZSkgLy8gSW5zaWRlIGFuZCBvdXRzaWRlIG9mIGNvZGVibG9ja3Mgd2l0aCBkaWZmZXJlbnQgY29sb3Vyc1xuXHRcdGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodFwiKTtcblx0ZWxzZSBpZiAodGhlbWVTZXR0aW5ncy5oaWdobGlnaHRzLmFjdGl2ZUVkaXRvckxpbmUgJiYgIXRoZW1lU2V0dGluZ3MuaGlnaGxpZ2h0cy5hY3RpdmVDb2RlYmxvY2tMaW5lKSAvLyBPbmx5IG91dHNpZGUgY29kZWJsb2Nrc1xuXHRcdGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodC1lZGl0b3JcIik7XG5cdGVsc2UgaWYgKCF0aGVtZVNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlRWRpdG9yTGluZSAmJiB0aGVtZVNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlQ29kZWJsb2NrTGluZSkgLy8gT25seSBpbnNpZGUgY29kZWJsb2Nrc1xuXHRcdGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodC1jb2RlYmxvY2tcIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVTdHlsZXNBbmRDbGFzc2VzKCk6IHZvaWQge1xuXHRkb2N1bWVudC5nZXRFbGVtZW50QnlJZChTVFlMRV9JRCk/LnJlbW92ZSgpO1xuXHRkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXG5cdFx0XCJjb2RlLXN0eWxlclwiLFxuXHRcdFwiY29kZS1zdHlsZXItc2hvdy1saW5lLW51bWJlcnNcIixcblx0XHRcImNvZGUtc3R5bGVyLWd1dHRlci1oaWdobGlnaHRcIixcblx0XHRcImNvZGUtc3R5bGVyLWd1dHRlci1hY3RpdmUtbGluZVwiLFxuXHQpO1xufVxuXG5mdW5jdGlvbiBnZXRDdXJyZW50VGhlbWUoYXBwOiBBcHApOiBzdHJpbmcge1xuXHQvL0B0cy1leHBlY3QtZXJyb3IgVW5kb2N1bWVudGVkIE9ic2lkaWFuIEFQSVxuXHRyZXR1cm4gYXBwLnZhdWx0LmdldENvbmZpZyhcImNzc1RoZW1lXCIpO1xufVxuIiwgImltcG9ydCB7IE1hcmtkb3duUmVuZGVyZXIsIGVkaXRvckVkaXRvckZpZWxkLCBlZGl0b3JJbmZvRmllbGQsIGVkaXRvckxpdmVQcmV2aWV3RmllbGQgfSBmcm9tIFwib2JzaWRpYW5cIjtcbmltcG9ydCB7IEVkaXRvclZpZXcsIFZpZXdVcGRhdGUsIERlY29yYXRpb24sIERlY29yYXRpb25TZXQsIFdpZGdldFR5cGUsIFZpZXdQbHVnaW4sIFBsdWdpblZhbHVlIH0gZnJvbSBcIkBjb2RlbWlycm9yL3ZpZXdcIjtcbmltcG9ydCB7IEV4dGVuc2lvbiwgRWRpdG9yU3RhdGUsIFN0YXRlRmllbGQsIFN0YXRlRWZmZWN0LCBTdGF0ZUVmZmVjdFR5cGUsIFJhbmdlLCBSYW5nZVNldEJ1aWxkZXIsIFRyYW5zYWN0aW9uLCBMaW5lLCBTZWxlY3Rpb25SYW5nZSwgQ29tcGFydG1lbnQgfSBmcm9tIFwiQGNvZGVtaXJyb3Ivc3RhdGVcIjtcbmltcG9ydCB7IHN5bnRheFRyZWUsIHRva2VuQ2xhc3NOb2RlUHJvcCB9IGZyb20gXCJAY29kZW1pcnJvci9sYW5ndWFnZVwiO1xuaW1wb3J0IHsgU3ludGF4Tm9kZVJlZiB9IGZyb20gXCJAbGV6ZXIvY29tbW9uXCI7XG5cbmltcG9ydCB7IENvZGVTdHlsZXJTZXR0aW5ncywgQ29kZVN0eWxlclRoZW1lU2V0dGluZ3MsIFNQRUNJQUxfTEFOR1VBR0VTIH0gZnJvbSBcIi4vU2V0dGluZ3NcIjtcbmltcG9ydCB7IENvZGVibG9ja1BhcmFtZXRlcnMsIHBhcnNlQ29kZWJsb2NrUGFyYW1ldGVycywgdGVzdE9wZW5pbmdMaW5lLCB0cmltUGFyYW1ldGVyTGluZSwgaXNDb2RlYmxvY2tJZ25vcmVkLCBpc0xhbmd1YWdlSWdub3JlZCB9IGZyb20gXCIuL1BhcnNpbmcvQ29kZWJsb2NrUGFyc2luZ1wiO1xuaW1wb3J0IHsgSW5saW5lQ29kZVBhcmFtZXRlcnMsIHBhcnNlSW5saW5lQ29kZSB9IGZyb20gXCIuL1BhcnNpbmcvSW5saW5lQ29kZVBhcnNpbmdcIjtcbmltcG9ydCB7IGNyZWF0ZUhlYWRlciwgY3JlYXRlSW5saW5lT3BlbmVyLCBnZXRMYW5ndWFnZUljb24sIGdldExpbmVDbGFzcywgaXNIZWFkZXJIaWRkZW4gfSBmcm9tIFwiLi9Db2RlYmxvY2tEZWNvcmF0aW5nXCI7XG5pbXBvcnQgQ29kZVN0eWxlclBsdWdpbiBmcm9tIFwiLi9tYWluXCI7XG5pbXBvcnQgeyBhZGRSZWZlcmVuY2VTeW50YXhIaWdobGlnaHQgfSBmcm9tIFwiLi9TeW50YXhIaWdobGlnaHRpbmdcIjtcblxuaW50ZXJmYWNlIFNldHRpbmdzU3RhdGUge1xuXHRleGNsdWRlZExhbmd1YWdlczogc3RyaW5nO1xuXHRwcm9jZXNzZWRDb2RlYmxvY2tzV2hpdGVsaXN0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb2RlYmxvY2tDb2RlTWlycm9yRXh0ZW5zaW9ucyhzZXR0aW5nczogQ29kZVN0eWxlclNldHRpbmdzLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pIHtcblx0Y29uc3QgbGl2ZVByZXZpZXdDb21wYXJ0bWVudCA9IG5ldyBDb21wYXJ0bWVudDtcblx0Y29uc3QgaWdub3JlQ29tcGFydG1lbnQgPSBuZXcgQ29tcGFydG1lbnQ7XG5cblx0Y29uc3QgaW50ZXJhY3Rpb24gPSBWaWV3UGx1Z2luLmZyb21DbGFzcyhcblx0XHRjbGFzcyBDb2RlU3R5bGVyVmlld1BsdWdpbiBpbXBsZW1lbnRzIFBsdWdpblZhbHVlIHtcblx0XHRcdGNvbnN0cnVjdG9yKCkge1xuXHRcdFx0XHRhZGRSZWZlcmVuY2VTeW50YXhIaWdobGlnaHQod2luZG93LkNvZGVNaXJyb3IpO1xuXHRcdFx0fVxuXHRcdFx0dXBkYXRlKF91cGRhdGU6IFZpZXdVcGRhdGUpIHtcblx0XHRcdFx0Ly9UT0RPIChAbWF5dXJhbmt2KSBNb3ZlIHNlbGVjdGlvbiBiYWNrIHRvIG9yaWdpbmFsIHBvc2l0aW9uIC0gQ3VycmVudGx5IGRvbmUgd2l0aCBzZXRUaW1lb3V0XG5cdFx0XHRcdC8vIGNvbnN0IHByZXZpb3VzOiBudW1iZXIgPSB1cGRhdGUudHJhbnNhY3Rpb25zLmZsYXRNYXAodCA9PiB0LmVmZmVjdHMpLmZpbHRlcihlZmZlY3QgPT4gZWZmZWN0LmlzKHJlcmVuZGVyKSk/LlswXT8udmFsdWU/LnBvcztcblx0XHRcdFx0Ly8gY29uc29sZS5sb2cocHJldmlvdXMpO1xuXHRcdFx0XHQvLyBpZiAocHJldmlvdXMpXG5cdFx0XHRcdC8vIFx0dXBkYXRlLnZpZXcuZGlzcGF0Y2goe3NlbGVjdGlvbjogeyBhbmNob3I6IHByZXZpb3VzLCBoZWFkOiBwcmV2aW91cyB9fSk7XG5cdFx0XHR9XG5cdFx0XHRkZXN0cm95KCkge31cblx0XHR9LFxuXHRcdHtcblx0XHRcdGV2ZW50SGFuZGxlcnM6IHtcblx0XHRcdFx0Y2xpY2s6IGZ1bmN0aW9uKGV2ZW50OiBNb3VzZUV2ZW50LCB2aWV3OiBFZGl0b3JWaWV3KSB7XG5cdFx0XHRcdFx0aWYgKChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsYXNzTGlzdC5jb250YWlucyhcImNvZGUtc3R5bGVyLXNvdXJjZS1saW5rXCIpICYmIGV2ZW50Lm1ldGFLZXkgPT09IHRydWUpIHtcblx0XHRcdFx0XHRcdGNvbnN0IHNvdXJjZVBhdGggPSB2aWV3LnN0YXRlLmZpZWxkKGVkaXRvckluZm9GaWVsZCk/LmZpbGU/LnBhdGggPz8gXCJcIjtcblx0XHRcdFx0XHRcdGNvbnN0IGRlc3RpbmF0aW9uID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuZ2V0QXR0cmlidXRlKFwiZGVzdGluYXRpb25cIik7XG5cdFx0XHRcdFx0XHRpZiAoZGVzdGluYXRpb24pXG5cdFx0XHRcdFx0XHRcdHBsdWdpbi5hcHAud29ya3NwYWNlLm9wZW5MaW5rVGV4dChkZXN0aW5hdGlvbiwgc291cmNlUGF0aCwgdHJ1ZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHQpO1xuXG5cdGNvbnN0IGlnbm9yZUxpc3RlbmVyID0gRWRpdG9yVmlldy51cGRhdGVMaXN0ZW5lci5vZigodXBkYXRlOiBWaWV3VXBkYXRlKSA9PiB7IC8vVE9ETyAoQG1heXVyYW5rdikgQ2FuIEkgbWFrZSB0aGlzIHN0YXJ0U3RhdGUgb25seT8gRG9lcyBpdCBuZWVkIHRvIGJlP1xuXHRcdGNvbnN0IGxpdmVQcmV2aWV3RXh0ZW5zaW9ucyA9IGxpdmVQcmV2aWV3Q29tcGFydG1lbnQuZ2V0KHVwZGF0ZS5zdGF0ZSk7XG5cdFx0Y29uc3QgdG9JZ25vcmUgPSBpc1NvdXJjZU1vZGUodXBkYXRlLnN0YXRlKTtcblx0XHRjb25zdCBmaWxlSWdub3JlID0gaXNGaWxlSWdub3JlZCh1cGRhdGUuc3RhdGUpICYmICEoQXJyYXkuaXNBcnJheShsaXZlUHJldmlld0V4dGVuc2lvbnMpICYmIGxpdmVQcmV2aWV3RXh0ZW5zaW9ucy5sZW5ndGggPT09IDApO1xuXHRcdGNvbnN0IGZpbGVVbmlnbm9yZSA9ICF0b0lnbm9yZSAmJiAhaXNGaWxlSWdub3JlZCh1cGRhdGUuc3RhdGUpICYmIChBcnJheS5pc0FycmF5KGxpdmVQcmV2aWV3RXh0ZW5zaW9ucykgJiYgbGl2ZVByZXZpZXdFeHRlbnNpb25zLmxlbmd0aCA9PT0gMCk7XG5cdFx0aWYgKGlzU291cmNlTW9kZSh1cGRhdGUuc3RhcnRTdGF0ZSkgIT09IHRvSWdub3JlIHx8IGZpbGVJZ25vcmUgfHwgZmlsZVVuaWdub3JlKSB7XG5cdFx0XHR1cGRhdGUudmlldy5kaXNwYXRjaCh7ZWZmZWN0czogbGl2ZVByZXZpZXdDb21wYXJ0bWVudC5yZWNvbmZpZ3VyZSgodG9JZ25vcmV8fGZpbGVJZ25vcmUpP1tdOltoZWFkZXJEZWNvcmF0aW9ucyxsaW5lRGVjb3JhdGlvbnMsZm9sZERlY29yYXRpb25zLGhpZGRlbkRlY29yYXRpb25zXSl9KTtcblx0XHRcdGlmICghdG9JZ25vcmUgJiYgIWZpbGVJZ25vcmUpXG5cdFx0XHRcdHVwZGF0ZS52aWV3LmRpc3BhdGNoKHtlZmZlY3RzOiBmb2xkQWxsLm9mKHt9KX0pO1xuXHRcdH1cblx0fSk7XG5cdGNvbnN0IGlnbm9yZUZpbGVMaXN0ZW5lciA9IEVkaXRvclZpZXcudXBkYXRlTGlzdGVuZXIub2YoKHVwZGF0ZTogVmlld1VwZGF0ZSkgPT4ge1xuXHRcdGNvbnN0IGlnbm9yZUV4dGVuc2lvbnMgPSBpZ25vcmVDb21wYXJ0bWVudC5nZXQodXBkYXRlLnN0YXRlKTtcblx0XHRjb25zdCBmaWxlSWdub3JlID0gaXNGaWxlSWdub3JlZCh1cGRhdGUuc3RhdGUpICYmICEoQXJyYXkuaXNBcnJheShpZ25vcmVFeHRlbnNpb25zKSAmJiBpZ25vcmVFeHRlbnNpb25zLmxlbmd0aCA9PT0gMCk7XG5cdFx0Y29uc3QgZmlsZVVuaWdub3JlID0gIWlzRmlsZUlnbm9yZWQodXBkYXRlLnN0YXRlKSAmJiAoQXJyYXkuaXNBcnJheShpZ25vcmVFeHRlbnNpb25zKSAmJiBpZ25vcmVFeHRlbnNpb25zLmxlbmd0aCA9PT0gMCk7XG5cdFx0aWYgKGZpbGVJZ25vcmUgfHwgZmlsZVVuaWdub3JlKVxuXHRcdFx0dXBkYXRlLnZpZXcuZGlzcGF0Y2goe2VmZmVjdHM6IGlnbm9yZUNvbXBhcnRtZW50LnJlY29uZmlndXJlKGZpbGVJZ25vcmU/W106aW5saW5lRGVjb3JhdGlvbnMpfSk7XG5cdH0pO1xuXG5cdGNvbnN0IHNldHRpbmdzU3RhdGUgPSBTdGF0ZUZpZWxkLmRlZmluZTxTZXR0aW5nc1N0YXRlPih7XG5cdFx0Y3JlYXRlKCk6IFNldHRpbmdzU3RhdGUge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0ZXhjbHVkZWRMYW5ndWFnZXM6IHNldHRpbmdzLmV4Y2x1ZGVkTGFuZ3VhZ2VzLFxuXHRcdFx0XHRwcm9jZXNzZWRDb2RlYmxvY2tzV2hpdGVsaXN0OiBzZXR0aW5ncy5wcm9jZXNzZWRDb2RlYmxvY2tzV2hpdGVsaXN0LFxuXHRcdFx0fTtcblx0XHR9LFxuXHRcdHVwZGF0ZSh2YWx1ZTogU2V0dGluZ3NTdGF0ZSk6IFNldHRpbmdzU3RhdGUge1xuXHRcdFx0aWYgKHZhbHVlLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3QgIT09IHNldHRpbmdzLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3QgfHwgdmFsdWUuZXhjbHVkZWRMYW5ndWFnZXMgIT09IHNldHRpbmdzLmV4Y2x1ZGVkTGFuZ3VhZ2VzKVxuXHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdGV4Y2x1ZGVkTGFuZ3VhZ2VzOiBzZXR0aW5ncy5leGNsdWRlZExhbmd1YWdlcyxcblx0XHRcdFx0XHRwcm9jZXNzZWRDb2RlYmxvY2tzV2hpdGVsaXN0OiBzZXR0aW5ncy5wcm9jZXNzZWRDb2RlYmxvY2tzV2hpdGVsaXN0LFxuXHRcdFx0XHR9O1xuXHRcdFx0cmV0dXJuIHZhbHVlO1xuXHRcdH1cblx0fSk7XG5cdGNvbnN0IGNoYXJXaWR0aFN0YXRlID0gU3RhdGVGaWVsZC5kZWZpbmU8bnVtYmVyPih7IC8vVE9ETyAoQG1heXVyYW5rdikgSW1wcm92ZSBpbXBsZW1lbnRhdGlvblxuXHRcdGNyZWF0ZShzdGF0ZTogRWRpdG9yU3RhdGUpOiBudW1iZXIge1xuXHRcdFx0cmV0dXJuKHN0YXRlLmZpZWxkKGVkaXRvckVkaXRvckZpZWxkKS5kZWZhdWx0Q2hhcmFjdGVyV2lkdGggKiAxLjEwNSk7XG5cdFx0fSxcblx0XHR1cGRhdGUodmFsdWU6IG51bWJlciwgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogbnVtYmVyIHtcblx0XHRcdHJldHVybih0cmFuc2FjdGlvbi5zdGF0ZS5maWVsZChlZGl0b3JFZGl0b3JGaWVsZCkuZGVmYXVsdENoYXJhY3RlcldpZHRoICogMS4xMDUpO1xuXHRcdH1cblx0fSk7XG5cdGNvbnN0IGhlYWRlckRlY29yYXRpb25zID0gU3RhdGVGaWVsZC5kZWZpbmU8RGVjb3JhdGlvblNldD4oeyAvL1RPRE8gKEBtYXl1cmFua3YpIFVwZGF0ZSAoZG9lcyB0aGlzIG5lZWQgdG8gYmUgdXBkYXRlZCBpbiB0aGlzIG1hbm5lcj8pXG5cdFx0Y3JlYXRlKHN0YXRlOiBFZGl0b3JTdGF0ZSk6IERlY29yYXRpb25TZXQge1xuXHRcdFx0cmV0dXJuIGJ1aWxkSGVhZGVyRGVjb3JhdGlvbnMoc3RhdGUpO1xuXHRcdH0sXG5cdFx0dXBkYXRlKHZhbHVlOiBEZWNvcmF0aW9uU2V0LCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBEZWNvcmF0aW9uU2V0IHtcblx0XHRcdHJldHVybiBidWlsZEhlYWRlckRlY29yYXRpb25zKHRyYW5zYWN0aW9uLnN0YXRlLChwb3NpdGlvbik9PmlzRm9sZGVkKHRyYW5zYWN0aW9uLnN0YXRlLHBvc2l0aW9uKSk7XG5cdFx0fSxcblx0XHRwcm92aWRlKGZpZWxkOiBTdGF0ZUZpZWxkPERlY29yYXRpb25TZXQ+KTogRXh0ZW5zaW9uIHtcblx0XHRcdHJldHVybiBFZGl0b3JWaWV3LmRlY29yYXRpb25zLmZyb20oZmllbGQpO1xuXHRcdH1cblx0fSk7XG5cdGNvbnN0IGxpbmVEZWNvcmF0aW9ucyA9IFN0YXRlRmllbGQuZGVmaW5lPERlY29yYXRpb25TZXQ+KHsgLy9UT0RPIChAbWF5dXJhbmt2KSBEZWFsIHdpdGggc291cmNlIG1vZGUgLSBtYWtlIGFwcGx5IHN0eWxpbmcgaW4gc291cmNlIG1vZGVcblx0XHRjcmVhdGUoc3RhdGU6IEVkaXRvclN0YXRlKTogRGVjb3JhdGlvblNldCB7XG5cdFx0XHRyZXR1cm4gYnVpbGRMaW5lRGVjb3JhdGlvbnMoc3RhdGUpO1xuXHRcdH0sXG5cdFx0dXBkYXRlKHZhbHVlOiBEZWNvcmF0aW9uU2V0LCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBEZWNvcmF0aW9uU2V0IHtcblx0XHRcdHJldHVybiBidWlsZExpbmVEZWNvcmF0aW9ucyh0cmFuc2FjdGlvbi5zdGF0ZSk7XG5cdFx0fSxcblx0XHRwcm92aWRlKGZpZWxkOiBTdGF0ZUZpZWxkPERlY29yYXRpb25TZXQ+KTogRXh0ZW5zaW9uIHtcblx0XHRcdHJldHVybiBFZGl0b3JWaWV3LmRlY29yYXRpb25zLmZyb20oZmllbGQpO1xuXHRcdH1cblx0fSk7XG5cdGNvbnN0IGZvbGREZWNvcmF0aW9ucyA9IFN0YXRlRmllbGQuZGVmaW5lPERlY29yYXRpb25TZXQ+KHtcblx0XHRjcmVhdGUoc3RhdGU6IEVkaXRvclN0YXRlKTogRGVjb3JhdGlvblNldCB7IC8vVE9ETyAoQG1heXVyYW5rdikgQ2FuIEkgY2hhbmdlIHRoaXM/XG5cdFx0XHRjb25zdCBidWlsZGVyID0gbmV3IFJhbmdlU2V0QnVpbGRlcjxEZWNvcmF0aW9uPigpO1xuXHRcdFx0Zm9yIChsZXQgaXRlciA9IChzdGF0ZS5maWVsZChoZWFkZXJEZWNvcmF0aW9ucyxmYWxzZSkgPz8gRGVjb3JhdGlvbi5ub25lKS5pdGVyKCk7IGl0ZXIudmFsdWUgIT09IG51bGw7IGl0ZXIubmV4dCgpKSB7XG5cdFx0XHRcdGlmICghaXRlci52YWx1ZS5zcGVjLndpZGdldC5jb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQuZW5hYmxlZClcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0Y29kZWJsb2NrRm9sZENhbGxiYWNrKGl0ZXIuZnJvbSxzdGF0ZSwoZm9sZFN0YXJ0LGZvbGRFbmQpPT57XG5cdFx0XHRcdFx0YnVpbGRlci5hZGQoZm9sZFN0YXJ0LmZyb20sZm9sZEVuZC50byxmb2xkRGVjb3JhdGlvbigoaXRlci52YWx1ZSBhcyBEZWNvcmF0aW9uKS5zcGVjLndpZGdldC5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlKSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGJ1aWxkZXIuZmluaXNoKCk7XG5cdFx0fSxcblx0XHR1cGRhdGUodmFsdWU6IERlY29yYXRpb25TZXQsIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IERlY29yYXRpb25TZXQge1xuXHRcdFx0dmFsdWUgPSB2YWx1ZS5tYXAodHJhbnNhY3Rpb24uY2hhbmdlcykudXBkYXRlKHtmaWx0ZXI6IChmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIpPT5mcm9tIT09dG99KTtcblx0XHRcdHZhbHVlID0gdmFsdWUudXBkYXRlKHthZGQ6IHRyYW5zYWN0aW9uLmVmZmVjdHMuZmlsdGVyKGVmZmVjdD0+KGVmZmVjdC5pcyhmb2xkKXx8ZWZmZWN0LmlzKHVuaGlkZUZvbGQpKSkubWFwKGVmZmVjdD0+Zm9sZFJlZ2lvbihlZmZlY3QudmFsdWUpKX0pOyAvL1RPRE8gKEBtYXl1cmFua3YpIENhbiBJIHJlbW92ZSBgLCBzb3J0OiB0cnVlYFxuXHRcdFx0dHJhbnNhY3Rpb24uZWZmZWN0cy5maWx0ZXIoZWZmZWN0PT4oZWZmZWN0LmlzKHVuZm9sZCl8fGVmZmVjdC5pcyhoaWRlRm9sZCkpKS5mb3JFYWNoKGVmZmVjdD0+dmFsdWU9dmFsdWUudXBkYXRlKHVuZm9sZFJlZ2lvbihlZmZlY3QudmFsdWUpKSk7XG5cdFx0XHR0cmFuc2FjdGlvbi5lZmZlY3RzLmZpbHRlcihlZmZlY3Q9PmVmZmVjdC5pcyhyZW1vdmVGb2xkKSkuZm9yRWFjaChlZmZlY3Q9PnZhbHVlPXZhbHVlLnVwZGF0ZShyZW1vdmVGb2xkTGFuZ3VhZ2VzKGVmZmVjdC52YWx1ZSkpKTtcblx0XHRcdHJldHVybiB2YWx1ZTtcblx0XHR9LFxuXHRcdHByb3ZpZGUoZmllbGQ6IFN0YXRlRmllbGQ8RGVjb3JhdGlvblNldD4pOiBFeHRlbnNpb24ge1xuXHRcdFx0cmV0dXJuIEVkaXRvclZpZXcuZGVjb3JhdGlvbnMuZnJvbShmaWVsZCk7XG5cdFx0fSxcblx0fSk7XG5cdGNvbnN0IGhpZGRlbkRlY29yYXRpb25zID0gU3RhdGVGaWVsZC5kZWZpbmU8RGVjb3JhdGlvblNldD4oe1xuXHRcdGNyZWF0ZSgpOiBEZWNvcmF0aW9uU2V0IHtcblx0XHRcdHJldHVybiBEZWNvcmF0aW9uLm5vbmU7XG5cdFx0fSxcblx0XHR1cGRhdGUodmFsdWU6IERlY29yYXRpb25TZXQsIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IERlY29yYXRpb25TZXQge1xuXHRcdFx0aWYgKHRyYW5zYWN0aW9uLmVmZmVjdHMuc29tZShlZmZlY3Q9PmVmZmVjdC5pcyhmb2xkQWxsKSkpXG5cdFx0XHRcdHJldHVybiBEZWNvcmF0aW9uLm5vbmU7XG5cdFx0XHR2YWx1ZSA9IHZhbHVlLm1hcCh0cmFuc2FjdGlvbi5jaGFuZ2VzKS51cGRhdGUoe2ZpbHRlcjogKGZyb206IG51bWJlciwgdG86IG51bWJlcik9PmZyb20hPT10b30pO1xuXHRcdFx0dmFsdWUgPSB2YWx1ZS51cGRhdGUoe2FkZDogdHJhbnNhY3Rpb24uZWZmZWN0cy5maWx0ZXIoZWZmZWN0PT5lZmZlY3QuaXMoaGlkZUZvbGQpKS5tYXAoZWZmZWN0PT5lZmZlY3QudmFsdWUpfSk7IC8vVE9ETyAoQG1heXVyYW5rdikgQ2FuIEkgcmVtb3ZlIGAsIHNvcnQ6IHRydWVgXG5cdFx0XHR0cmFuc2FjdGlvbi5lZmZlY3RzLmZpbHRlcihlZmZlY3Q9PmVmZmVjdC5pcyh1bmhpZGVGb2xkKSkuZm9yRWFjaChlZmZlY3Q9PnZhbHVlPXZhbHVlLnVwZGF0ZSh1bmhpZGVGb2xkVXBkYXRlKGVmZmVjdC52YWx1ZSkpKTtcblx0XHRcdHRyYW5zYWN0aW9uLmVmZmVjdHMuZmlsdGVyKGVmZmVjdD0+ZWZmZWN0LmlzKHJlbW92ZUZvbGQpKS5mb3JFYWNoKGVmZmVjdD0+dmFsdWU9dmFsdWUudXBkYXRlKHJlbW92ZUZvbGRMYW5ndWFnZXMoZWZmZWN0LnZhbHVlKSkpO1xuXHRcdFx0cmV0dXJuIHZhbHVlO1xuXHRcdH1cblx0fSk7XG5cdGNvbnN0IGlubGluZURlY29yYXRpb25zID0gU3RhdGVGaWVsZC5kZWZpbmU8RGVjb3JhdGlvblNldD4oe1xuXHRcdGNyZWF0ZShzdGF0ZTogRWRpdG9yU3RhdGUpOiBEZWNvcmF0aW9uU2V0IHtcblx0XHRcdHJldHVybiBidWlsZElubGluZURlY29yYXRpb25zKHN0YXRlKTtcblx0XHR9LFxuXHRcdHVwZGF0ZSh2YWx1ZTogRGVjb3JhdGlvblNldCwgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogRGVjb3JhdGlvblNldCB7XG5cdFx0XHRyZXR1cm4gYnVpbGRJbmxpbmVEZWNvcmF0aW9ucyh0cmFuc2FjdGlvbi5zdGF0ZSk7XG5cdFx0fSxcblx0XHRwcm92aWRlKGZpZWxkOiBTdGF0ZUZpZWxkPERlY29yYXRpb25TZXQ+KTogRXh0ZW5zaW9uIHtcblx0XHRcdHJldHVybiBFZGl0b3JWaWV3LmRlY29yYXRpb25zLmZyb20oZmllbGQpO1xuXHRcdH1cblx0fSk7XG5cblx0ZnVuY3Rpb24gc2V0dGluZ3NDaGFuZ2VFeHRlbmRlcigpIHtcblx0XHRyZXR1cm4gRWRpdG9yU3RhdGUudHJhbnNhY3Rpb25FeHRlbmRlci5vZigodHJhbnNhY3Rpb24pID0+IHtcblx0XHRcdGxldCBhZGRFZmZlY3RzOiBBcnJheTxTdGF0ZUVmZmVjdDx1bmtub3duPj4gPSBbXTtcblx0XHRcdGNvbnN0IGluaXRpYWxTZXR0aW5ncyA9IHRyYW5zYWN0aW9uLnN0YXJ0U3RhdGUuZmllbGQoc2V0dGluZ3NTdGF0ZSk7XG5cdFx0XHRsZXQgcmVhZGRGb2xkTGFuZ3VhZ2VzOiBBcnJheTxzdHJpbmc+ID0gW107XG5cdFx0XHRsZXQgcmVtb3ZlRm9sZExhbmd1YWdlczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXHRcdFx0aWYgKGluaXRpYWxTZXR0aW5ncy5wcm9jZXNzZWRDb2RlYmxvY2tzV2hpdGVsaXN0ICE9PSBzZXR0aW5ncy5wcm9jZXNzZWRDb2RlYmxvY2tzV2hpdGVsaXN0KSB7XG5cdFx0XHRcdC8vQHRzLWV4cGVjdC1lcnJvciBVbmRvY3VtZW50ZWQgT2JzaWRpYW4gQVBJXG5cdFx0XHRcdGNvbnN0IGNvZGVibG9ja1Byb2Nlc3NvcnMgPSBPYmplY3Qua2V5cyhNYXJrZG93blByZXZpZXdSZW5kZXJlci5jb2RlQmxvY2tQb3N0UHJvY2Vzc29ycyk7XG5cdFx0XHRcdGNvbnN0IGluaXRpYWxFeGNsdWRlZENvZGVibG9ja3MgPSBjb2RlYmxvY2tQcm9jZXNzb3JzLmZpbHRlcihsYW5nPT4haW5pdGlhbFNldHRpbmdzLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3Quc3BsaXQoXCIsXCIpLm1hcChsYW5nPT5sYW5nLnRyaW0oKSkuaW5jbHVkZXMobGFuZykpO1xuXHRcdFx0XHRjb25zdCBjdXJyZW50RXhjbHVkZWRDb2RlYmxvY2tzID0gY29kZWJsb2NrUHJvY2Vzc29ycy5maWx0ZXIobGFuZz0+IXNldHRpbmdzLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3Quc3BsaXQoXCIsXCIpLm1hcChsYW5nPT5sYW5nLnRyaW0oKSkuaW5jbHVkZXMobGFuZykpO1xuXHRcdFx0XHRyZW1vdmVGb2xkTGFuZ3VhZ2VzID0gcmVtb3ZlRm9sZExhbmd1YWdlcy5jb25jYXQoc2V0RGlmZmVyZW5jZShjdXJyZW50RXhjbHVkZWRDb2RlYmxvY2tzLGluaXRpYWxFeGNsdWRlZENvZGVibG9ja3MpIGFzIEFycmF5PHN0cmluZz4pO1xuXHRcdFx0XHRyZWFkZEZvbGRMYW5ndWFnZXMgPSByZWFkZEZvbGRMYW5ndWFnZXMuY29uY2F0KHNldERpZmZlcmVuY2UoaW5pdGlhbEV4Y2x1ZGVkQ29kZWJsb2NrcyxjdXJyZW50RXhjbHVkZWRDb2RlYmxvY2tzKSBhcyBBcnJheTxzdHJpbmc+KTtcblx0XHRcdH1cblx0XHRcdGlmIChpbml0aWFsU2V0dGluZ3MuZXhjbHVkZWRMYW5ndWFnZXMgIT09IHNldHRpbmdzLmV4Y2x1ZGVkTGFuZ3VhZ2VzKSB7XG5cdFx0XHRcdGNvbnN0IGluaXRpYWxFeGNsdWRlZExhbmd1YWdlcyA9IGluaXRpYWxTZXR0aW5ncy5leGNsdWRlZExhbmd1YWdlcy5zcGxpdChcIixcIikubWFwKGxhbmc9PmxhbmcudHJpbSgpKTtcblx0XHRcdFx0Y29uc3QgY3VycmVudEV4Y2x1ZGVkTGFuZ3VhZ2VzID0gc2V0dGluZ3MuZXhjbHVkZWRMYW5ndWFnZXMuc3BsaXQoXCIsXCIpLm1hcChsYW5nPT5sYW5nLnRyaW0oKSk7XG5cdFx0XHRcdHJlbW92ZUZvbGRMYW5ndWFnZXMgPSByZW1vdmVGb2xkTGFuZ3VhZ2VzLmNvbmNhdChzZXREaWZmZXJlbmNlKGN1cnJlbnRFeGNsdWRlZExhbmd1YWdlcyxpbml0aWFsRXhjbHVkZWRMYW5ndWFnZXMpIGFzIEFycmF5PHN0cmluZz4pO1xuXHRcdFx0XHRyZWFkZEZvbGRMYW5ndWFnZXMgPSByZWFkZEZvbGRMYW5ndWFnZXMuY29uY2F0KHNldERpZmZlcmVuY2UoaW5pdGlhbEV4Y2x1ZGVkTGFuZ3VhZ2VzLGN1cnJlbnRFeGNsdWRlZExhbmd1YWdlcykgYXMgQXJyYXk8c3RyaW5nPik7XG5cdFx0XHR9XG5cdFx0XHRpZiAocmVtb3ZlRm9sZExhbmd1YWdlcy5sZW5ndGggIT09IDApXG5cdFx0XHRcdGFkZEVmZmVjdHMucHVzaChyZW1vdmVGb2xkLm9mKHJlbW92ZUZvbGRMYW5ndWFnZXMpKTtcblx0XHRcdGlmIChyZWFkZEZvbGRMYW5ndWFnZXMubGVuZ3RoICE9PSAwKVxuXHRcdFx0XHRhZGRFZmZlY3RzID0gYWRkRWZmZWN0cy5jb25jYXQoY29udmVydFJlYWRkRm9sZCh0cmFuc2FjdGlvbixyZWFkZEZvbGRMYW5ndWFnZXMpKTtcblx0XHRcdHJldHVybiAoYWRkRWZmZWN0cy5sZW5ndGggIT09IDApP3tlZmZlY3RzOiBhZGRFZmZlY3RzfTpudWxsO1xuXHRcdH0pO1xuXHR9XG5cdGZ1bmN0aW9uIGN1cnNvckZvbGRFeHRlbmRlcigpIHtcblx0XHRyZXR1cm4gRWRpdG9yU3RhdGUudHJhbnNhY3Rpb25FeHRlbmRlci5vZigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSA9PiB7XG5cdFx0XHRjb25zdCBhZGRFZmZlY3RzOiBBcnJheTxTdGF0ZUVmZmVjdDx1bmtub3duPj4gPSBbXTtcblx0XHRcdGNvbnN0IGZvbGREZWNvcmF0aW9uc1N0YXRlID0gdHJhbnNhY3Rpb24uc3RhcnRTdGF0ZS5maWVsZChmb2xkRGVjb3JhdGlvbnMsZmFsc2UpPy5tYXAodHJhbnNhY3Rpb24uY2hhbmdlcykgPz8gRGVjb3JhdGlvbi5ub25lO1xuXHRcdFx0Y29uc3QgaGlkZGVuRGVjb3JhdGlvbnNTdGF0ZSA9IHRyYW5zYWN0aW9uLnN0YXJ0U3RhdGUuZmllbGQoaGlkZGVuRGVjb3JhdGlvbnMsZmFsc2UpPy5tYXAodHJhbnNhY3Rpb24uY2hhbmdlcykgPz8gRGVjb3JhdGlvbi5ub25lO1xuXHRcdFx0dHJhbnNhY3Rpb24ubmV3U2VsZWN0aW9uLnJhbmdlcy5mb3JFYWNoKChyYW5nZTogU2VsZWN0aW9uUmFuZ2UpPT57XG5cdFx0XHRcdGZvbGREZWNvcmF0aW9uc1N0YXRlLmJldHdlZW4ocmFuZ2UuZnJvbSwgcmFuZ2UudG8sIChmb2xkRnJvbSwgZm9sZFRvLCBkZWNvcmF0aW9uVmFsdWUpID0+IHtcblx0XHRcdFx0XHRpZiAocmFuZ2VJbnRlcmFjdGlvbihmb2xkRnJvbSxmb2xkVG8scmFuZ2UpKVxuXHRcdFx0XHRcdFx0YWRkRWZmZWN0cy5wdXNoKGhpZGVGb2xkLm9mKHtmcm9tOiBmb2xkRnJvbSwgdG86IGZvbGRUbywgdmFsdWU6IGRlY29yYXRpb25WYWx1ZX0pKTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdGZvciAobGV0IGl0ZXIgPSBoaWRkZW5EZWNvcmF0aW9uc1N0YXRlLml0ZXIoKTsgaXRlci52YWx1ZSAhPT0gbnVsbDsgaXRlci5uZXh0KCkpIHtcblx0XHRcdFx0XHRpZiAoIXJhbmdlSW50ZXJhY3Rpb24oaXRlci5mcm9tLGl0ZXIudG8scmFuZ2UpKVxuXHRcdFx0XHRcdFx0YWRkRWZmZWN0cy5wdXNoKHVuaGlkZUZvbGQub2Yoe2Zyb206IGl0ZXIuZnJvbSwgdG86IGl0ZXIudG8sIHZhbHVlOiBpdGVyLnZhbHVlfSkpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdHJldHVybiAoYWRkRWZmZWN0cy5sZW5ndGggIT09IDApP3tlZmZlY3RzOiBhZGRFZmZlY3RzfTpudWxsO1xuXHRcdH0pO1xuXHR9XG5cdGZ1bmN0aW9uIGRvY3VtZW50Rm9sZEV4dGVuZGVyKCkge1xuXHRcdHJldHVybiBFZGl0b3JTdGF0ZS50cmFuc2FjdGlvbkV4dGVuZGVyLm9mKCh0cmFuc2FjdGlvbikgPT4ge1xuXHRcdFx0bGV0IGFkZEVmZmVjdHM6IEFycmF5PFN0YXRlRWZmZWN0PHVua25vd24+PiA9IFtdO1xuXHRcdFx0dHJhbnNhY3Rpb24uZWZmZWN0cy5maWx0ZXIoZWZmZWN0PT5lZmZlY3QuaXMoZm9sZEFsbCkpLmZvckVhY2goZWZmZWN0PT57XG5cdFx0XHRcdGlmICh0eXBlb2YgZWZmZWN0LnZhbHVlPy50b0ZvbGQgIT09IFwidW5kZWZpbmVkXCIpXG5cdFx0XHRcdFx0YWRkRWZmZWN0cyA9IGFkZEVmZmVjdHMuY29uY2F0KGRvY3VtZW50Rm9sZCh0cmFuc2FjdGlvbi5zdGFydFN0YXRlLGVmZmVjdC52YWx1ZS50b0ZvbGQpKTsgLy9UT0RPIChAbWF5dXJhbmt2KSBEb2VzIHRoaXMgbmVlZCB0byBiZSBzdGF0ZVxuXHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0YWRkRWZmZWN0cyA9IGFkZEVmZmVjdHMuY29uY2F0KGRvY3VtZW50Rm9sZCh0cmFuc2FjdGlvbi5zdGFydFN0YXRlKSk7XG5cdFx0XHR9KTtcblx0XHRcdHJldHVybiAoYWRkRWZmZWN0cy5sZW5ndGggIT09IDApP3tlZmZlY3RzOiBhZGRFZmZlY3RzfTpudWxsO1xuXHRcdH0pO1xuXHR9XG5cdC8vVE9ETyAoQG1heXVyYW5rdikgVXJnZW50OiBBdXRvIGFkZCB0ZW1wIHVuZm9sZCBvbiB0eXBlIG9mIGZvbGQgYW5kIHJlbW92ZSBib3RoIGZvbGQgYW5kIHRlbXAgdW5mb2xkIGZvciByZW1vdmFsXG5cblx0Y2xhc3MgTGluZU51bWJlcldpZGdldCBleHRlbmRzIFdpZGdldFR5cGUge1xuXHRcdGxpbmVOdW1iZXI6IG51bWJlcjtcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzO1xuXHRcdG1heExpbmVOdW06IG51bWJlcjtcblx0XHRlbXB0eTogYm9vbGVhbjtcblxuXHRcdGNvbnN0cnVjdG9yKGxpbmVOdW1iZXI6IG51bWJlciwgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgbWF4TGluZU51bTogbnVtYmVyLCBlbXB0eTogYm9vbGVhbiA9IGZhbHNlKSB7XG5cdFx0XHRzdXBlcigpO1xuXHRcdFx0dGhpcy5saW5lTnVtYmVyID0gbGluZU51bWJlcjtcblx0XHRcdHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycyA9IGNvZGVibG9ja1BhcmFtZXRlcnM7XG5cdFx0XHR0aGlzLm1heExpbmVOdW0gPSBtYXhMaW5lTnVtO1xuXHRcdFx0dGhpcy5lbXB0eSA9IGVtcHR5O1xuXHRcdH1cblxuXHRcdGVxKG90aGVyOiBMaW5lTnVtYmVyV2lkZ2V0KTogYm9vbGVhbiB7XG5cdFx0XHRyZXR1cm4gdGhpcy5saW5lTnVtYmVyID09PSBvdGhlci5saW5lTnVtYmVyICYmIHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5hbHdheXNFbmFibGVkID09PSBvdGhlci5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0VuYWJsZWQgJiYgdGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0Rpc2FibGVkID09PSBvdGhlci5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0Rpc2FibGVkICYmIHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5vZmZzZXQgPT09IG90aGVyLmNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMub2Zmc2V0ICYmIHRoaXMubWF4TGluZU51bSA9PT0gb3RoZXIubWF4TGluZU51bSAmJiB0aGlzLmVtcHR5ID09PSBvdGhlci5lbXB0eTtcblx0XHR9XG5cblx0XHR0b0RPTSgpOiBIVE1MRWxlbWVudCB7XG5cdFx0XHRyZXR1cm4gY3JlYXRlU3Bhbih7YXR0cjoge3N0eWxlOiB0aGlzLm1heExpbmVOdW0udG9TdHJpbmcoKS5sZW5ndGggPiAodGhpcy5saW5lTnVtYmVyICsgdGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLm9mZnNldCkudG9TdHJpbmcoKS5sZW5ndGg/XCJ3aWR0aDogdmFyKC0tbGluZS1udW1iZXItZ3V0dGVyLXdpZHRoKTtcIjpcIlwifSwgY2xzOiBcImNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyXCIsIHRleHQ6IHRoaXMuZW1wdHk/XCJcIjoodGhpcy5saW5lTnVtYmVyICsgdGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLm9mZnNldCkudG9TdHJpbmcoKX0pO1xuXHRcdH1cblx0fVxuXHRjbGFzcyBDb21tZW50TGlua1dpZGdldCBleHRlbmRzIFdpZGdldFR5cGUge1xuXHRcdGxpbmtUZXh0OiBzdHJpbmc7XG5cdFx0c291cmNlUGF0aDogc3RyaW5nO1xuXG5cdFx0Y29uc3RydWN0b3IobGlua1RleHQ6IHN0cmluZywgc291cmNlUGF0aDogc3RyaW5nKSB7XG5cdFx0XHRzdXBlcigpO1xuXHRcdFx0dGhpcy5saW5rVGV4dCA9IGxpbmtUZXh0O1xuXHRcdFx0dGhpcy5zb3VyY2VQYXRoID0gc291cmNlUGF0aDtcblx0XHR9XG5cblx0XHRlcShvdGhlcjogQ29tbWVudExpbmtXaWRnZXQpOiBib29sZWFuIHtcblx0XHRcdHJldHVybiB0aGlzLmxpbmtUZXh0ID09PSBvdGhlci5saW5rVGV4dCAmJiB0aGlzLnNvdXJjZVBhdGggPT09IG90aGVyLnNvdXJjZVBhdGg7XG5cdFx0fVxuXG5cdFx0dG9ET00oKTogSFRNTEVsZW1lbnQge1xuXHRcdFx0Y29uc3QgbGlua1BhcmVudEVsZW1lbnQgPSBjcmVhdGVEaXYoe2F0dHI6IHtjbGFzczogXCJjb2RlLXN0eWxlci1jb21tZW50LWxpbmtcIn19KTtcblx0XHRcdE1hcmtkb3duUmVuZGVyZXIucmVuZGVyKHBsdWdpbi5hcHAsdGhpcy5saW5rVGV4dCxsaW5rUGFyZW50RWxlbWVudCx0aGlzLnNvdXJjZVBhdGgscGx1Z2luKTtcblx0XHRcdHJldHVybiBsaW5rUGFyZW50RWxlbWVudDtcblx0XHR9XG5cdH1cblx0Y2xhc3MgSGVhZGVyV2lkZ2V0IGV4dGVuZHMgV2lkZ2V0VHlwZSB7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycztcblx0XHR0aGVtZVNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncztcblx0XHRzb3VyY2VQYXRoOiBzdHJpbmc7XG5cdFx0cGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luO1xuXHRcdGljb25VUkw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0XHRmb2xkZWQ6IGJvb2xlYW47XG5cdFx0aGlkZGVuOiBib29sZWFuO1xuXG5cdFx0Y29uc3RydWN0b3IoY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgZm9sZGVkOiBib29sZWFuLCB0aGVtZVNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncywgc291cmNlUGF0aDogc3RyaW5nLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pIHtcblx0XHRcdHN1cGVyKCk7XG5cdFx0XHR0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMgPSBzdHJ1Y3R1cmVkQ2xvbmUoY29kZWJsb2NrUGFyYW1ldGVycyk7XG5cdFx0XHR0aGlzLnRoZW1lU2V0dGluZ3MgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhlbWVTZXR0aW5ncyk7XG5cdFx0XHR0aGlzLnNvdXJjZVBhdGggPSBzb3VyY2VQYXRoO1xuXHRcdFx0dGhpcy5wbHVnaW4gPSBwbHVnaW47XG5cdFx0XHR0aGlzLmljb25VUkwgPSBnZXRMYW5ndWFnZUljb24odGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlLHRoaXMucGx1Z2luLmxhbmd1YWdlSWNvbnMpO1xuXHRcdFx0dGhpcy5mb2xkZWQgPSBmb2xkZWQ7XG5cdFx0XHR0aGlzLmhpZGRlbiA9IGlzSGVhZGVySGlkZGVuKHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycyx0aGlzLnRoZW1lU2V0dGluZ3MsdGhpcy5pY29uVVJMKTtcblx0XHR9XG5cblx0XHRlcShvdGhlcjogSGVhZGVyV2lkZ2V0KTogYm9vbGVhbiB7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHR0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgPT09IG90aGVyLmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgJiZcblx0XHRcdFx0dGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLnRpdGxlID09PSBvdGhlci5jb2RlYmxvY2tQYXJhbWV0ZXJzLnRpdGxlICYmXG5cdFx0XHRcdHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycy5yZWZlcmVuY2UgPT09IG90aGVyLmNvZGVibG9ja1BhcmFtZXRlcnMucmVmZXJlbmNlICYmXG5cdFx0XHRcdHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycy5mb2xkLmVuYWJsZWQgPT09IG90aGVyLmNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5lbmFibGVkICYmXG5cdFx0XHRcdHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycy5mb2xkLnBsYWNlaG9sZGVyID09PSBvdGhlci5jb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQucGxhY2Vob2xkZXIgJiZcblx0XHRcdFx0dGhpcy50aGVtZVNldHRpbmdzLmhlYWRlci5mb2xkUGxhY2Vob2xkZXIgPT09IG90aGVyLnRoZW1lU2V0dGluZ3MuaGVhZGVyLmZvbGRQbGFjZWhvbGRlciAmJlxuXHRcdFx0XHR0aGlzLnRoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5ID09PSBvdGhlci50aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheSAmJlxuXHRcdFx0XHR0aGlzLnRoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLmRpc3BsYXkgPT09IG90aGVyLnRoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLmRpc3BsYXkgJiZcblx0XHRcdFx0dGhpcy5mb2xkZWQgPT09IG90aGVyLmZvbGRlZCAmJlxuXHRcdFx0XHR0aGlzLmljb25VUkwgPT09IG90aGVyLmljb25VUkxcblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0dG9ET00odmlldzogRWRpdG9yVmlldyk6IEhUTUxFbGVtZW50IHtcblx0XHRcdGNvbnN0IGhlYWRlckNvbnRhaW5lciA9IGNyZWF0ZUhlYWRlcih0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMsdGhpcy50aGVtZVNldHRpbmdzLHRoaXMuc291cmNlUGF0aCx0aGlzLnBsdWdpbik7XG5cdFx0XHRpZiAodGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlIT09XCJcIilcblx0XHRcdFx0aGVhZGVyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoYGxhbmd1YWdlLSR7dGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlfWApO1xuXHRcdFx0aWYgKHRoaXMuZm9sZGVkKVxuXHRcdFx0XHRoZWFkZXJDb250YWluZXIuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLWhlYWRlci1mb2xkZWRcIik7XG5cdFx0XHRoZWFkZXJDb250YWluZXIub25jbGljayA9IChldmVudCkgPT4ge1xuXHRcdFx0XHRpZiAoIShldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpPy5jbGFzc0xpc3Q/LmNvbnRhaW5zKFwiaW50ZXJuYWwtbGlua1wiKSAmJiAhKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk/LmNsYXNzTGlzdD8uY29udGFpbnMoXCJleHRlcm5hbC1saW5rXCIpKVxuXHRcdFx0XHRcdGZvbGRPbkNsaWNrKHZpZXcsaGVhZGVyQ29udGFpbmVyLHRoaXMuZm9sZGVkLHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSk7XG5cdFx0XHR9O1xuXHRcdFx0cmV0dXJuIGhlYWRlckNvbnRhaW5lcjtcblx0XHR9XG5cdH1cblx0Y2xhc3MgT3BlbmVyV2lkZ2V0IGV4dGVuZHMgV2lkZ2V0VHlwZSB7XG5cdFx0aW5saW5lQ29kZVBhcmFtZXRlcnM6IElubGluZUNvZGVQYXJhbWV0ZXJzO1xuXHRcdHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbjtcblxuXHRcdGNvbnN0cnVjdG9yIChpbmxpbmVDb2RlUGFyYW1ldGVyczogSW5saW5lQ29kZVBhcmFtZXRlcnMsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbikge1xuXHRcdFx0c3VwZXIoKTtcblx0XHRcdHRoaXMuaW5saW5lQ29kZVBhcmFtZXRlcnMgPSBpbmxpbmVDb2RlUGFyYW1ldGVycztcblx0XHRcdHRoaXMucGx1Z2luID0gcGx1Z2luO1xuXHRcdH1cblxuXHRcdGVxKG90aGVyOiBPcGVuZXJXaWRnZXQpOiBib29sZWFuIHtcblx0XHRcdHJldHVybiAoXG5cdFx0XHRcdHRoaXMuaW5saW5lQ29kZVBhcmFtZXRlcnMubGFuZ3VhZ2UgPT0gb3RoZXIuaW5saW5lQ29kZVBhcmFtZXRlcnMubGFuZ3VhZ2UgJiZcblx0XHRcdFx0dGhpcy5pbmxpbmVDb2RlUGFyYW1ldGVycy50aXRsZSA9PSBvdGhlci5pbmxpbmVDb2RlUGFyYW1ldGVycy50aXRsZSAmJlxuXHRcdFx0XHR0aGlzLmlubGluZUNvZGVQYXJhbWV0ZXJzLmljb24gPT0gb3RoZXIuaW5saW5lQ29kZVBhcmFtZXRlcnMuaWNvbiAmJlxuXHRcdFx0XHRnZXRMYW5ndWFnZUljb24odGhpcy5pbmxpbmVDb2RlUGFyYW1ldGVycy5sYW5ndWFnZSx0aGlzLnBsdWdpbi5sYW5ndWFnZUljb25zKSA9PSBnZXRMYW5ndWFnZUljb24ob3RoZXIuaW5saW5lQ29kZVBhcmFtZXRlcnMubGFuZ3VhZ2Usb3RoZXIucGx1Z2luLmxhbmd1YWdlSWNvbnMpXG5cdFx0XHQpO1xuXHRcdH1cblxuXHRcdHRvRE9NKCk6IEhUTUxFbGVtZW50IHtcblx0XHRcdHJldHVybiBjcmVhdGVJbmxpbmVPcGVuZXIodGhpcy5pbmxpbmVDb2RlUGFyYW1ldGVycyx0aGlzLnBsdWdpbi5sYW5ndWFnZUljb25zLFtcImNvZGUtc3R5bGVyLWlubGluZS1vcGVuZXJcIixcImNtLWlubGluZS1jb2RlXCJdKTtcblx0XHR9XG5cdH1cblxuXHRmdW5jdGlvbiBidWlsZEhlYWRlckRlY29yYXRpb25zKHN0YXRlOiBFZGl0b3JTdGF0ZSwgZm9sZFZhbHVlOiAocG9zaXRpb246IG51bWJlciwgZGVmYXVsdEZvbGQ6IGJvb2xlYW4pPT5ib29sZWFuID0gKHBvc2l0aW9uLGRlZmF1bHRGb2xkKT0+ZGVmYXVsdEZvbGQpIHtcblx0XHRjb25zdCBidWlsZGVyID0gbmV3IFJhbmdlU2V0QnVpbGRlcjxEZWNvcmF0aW9uPigpO1xuXHRcdGNvbnN0IHNvdXJjZVBhdGggPSBzdGF0ZS5maWVsZChlZGl0b3JJbmZvRmllbGQpPy5maWxlPy5wYXRoID8/IFwiXCI7XG5cdFx0bGV0IGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnM7XG5cdFx0c3ludGF4VHJlZShzdGF0ZSkuaXRlcmF0ZSh7XG5cdFx0XHRlbnRlcjogKHN5bnRheE5vZGUpID0+IHtcblx0XHRcdFx0aWYgKHN5bnRheE5vZGUudHlwZS5uYW1lLmluY2x1ZGVzKFwiSHlwZXJNRC1jb2RlYmxvY2stYmVnaW5cIikpIHtcblx0XHRcdFx0XHRjb25zdCBzdGFydExpbmUgPSBzdGF0ZS5kb2MubGluZUF0KHN5bnRheE5vZGUuZnJvbSk7XG5cdFx0XHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycyA9IHBhcnNlQ29kZWJsb2NrUGFyYW1ldGVycyh0cmltUGFyYW1ldGVyTGluZShzdGFydExpbmUudGV4dC50b1N0cmluZygpKSxzZXR0aW5ncy5jdXJyZW50VGhlbWUpO1xuXHRcdFx0XHRcdGlmICghaXNMYW5ndWFnZUlnbm9yZWQoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSxzZXR0aW5ncy5leGNsdWRlZExhbmd1YWdlcykgJiYgIWlzQ29kZWJsb2NrSWdub3JlZChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlLHNldHRpbmdzLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3QpICYmICFjb2RlYmxvY2tQYXJhbWV0ZXJzLmlnbm9yZSkge1xuXHRcdFx0XHRcdFx0aWYgKCFTUEVDSUFMX0xBTkdVQUdFUy5zb21lKHJlZ0V4cCA9PiBuZXcgUmVnRXhwKHJlZ0V4cCkudGVzdChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlKSkpXG5cdFx0XHRcdFx0XHRcdGJ1aWxkZXIuYWRkKHN0YXJ0TGluZS5mcm9tLHN0YXJ0TGluZS5mcm9tLERlY29yYXRpb24ud2lkZ2V0KHt3aWRnZXQ6IG5ldyBIZWFkZXJXaWRnZXQoY29kZWJsb2NrUGFyYW1ldGVycyxmb2xkVmFsdWUoc3RhcnRMaW5lLmZyb20sY29kZWJsb2NrUGFyYW1ldGVycy5mb2xkLmVuYWJsZWQpLHNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncyxzb3VyY2VQYXRoLHBsdWdpbiksIGJsb2NrOiB0cnVlLCBzaWRlOiAtMX0pKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0XHRyZXR1cm4gYnVpbGRlci5maW5pc2goKTtcblx0fVxuXHRmdW5jdGlvbiBidWlsZExpbmVEZWNvcmF0aW9ucyhzdGF0ZTogRWRpdG9yU3RhdGUpOiBEZWNvcmF0aW9uU2V0IHtcblx0XHRjb25zdCBidWlsZGVyID0gbmV3IFJhbmdlU2V0QnVpbGRlcjxEZWNvcmF0aW9uPigpO1xuXHRcdGNvbnN0IHNvdXJjZVBhdGggPSBzdGF0ZS5maWVsZChlZGl0b3JJbmZvRmllbGQpPy5maWxlPy5wYXRoID8/IFwiXCI7XG5cdFx0Y29uc3Qgc291cmNlTW9kZSA9IGlzU291cmNlTW9kZShzdGF0ZSk7XG5cdFx0Zm9yIChsZXQgaXRlciA9IChzdGF0ZS5maWVsZChoZWFkZXJEZWNvcmF0aW9ucyxmYWxzZSkgPz8gRGVjb3JhdGlvbi5ub25lKS5pdGVyKCk7IGl0ZXIudmFsdWUgIT09IG51bGw7IGl0ZXIubmV4dCgpKSB7XG5cdFx0XHRjb25zdCBmb2xkU3RhcnQgPSBzdGF0ZS5kb2MubGluZUF0KGl0ZXIuZnJvbSk7XG5cdFx0XHRjb25zdCBzdGFydERlbGltaXRlciA9IHRlc3RPcGVuaW5nTGluZShmb2xkU3RhcnQudGV4dC50b1N0cmluZygpKTtcblx0XHRcdGNvbnN0IGNvZGVibG9ja1BhcmFtZXRlcnMgPSBpdGVyLnZhbHVlLnNwZWMud2lkZ2V0LmNvZGVibG9ja1BhcmFtZXRlcnM7XG5cdFx0XHRjb25zdCBzaG93TGluZU51bWJlcnMgPSAoc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5saW5lTnVtYmVycyAmJiAhY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5hbHdheXNEaXNhYmxlZCkgfHwgY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5hbHdheXNFbmFibGVkO1xuXHRcdFx0bGV0IGZvbGRFbmQ6IExpbmUgfCBudWxsID0gbnVsbDtcblx0XHRcdGxldCBtYXhMaW5lTnVtOiBudW1iZXIgPSAwO1xuXHRcdFx0Y29kZWJsb2NrRm9sZENhbGxiYWNrKGl0ZXIuZnJvbSxzdGF0ZSwoZm9sZFN0YXJ0LGZvbGRFbmQpPT57XG5cdFx0XHRcdG1heExpbmVOdW0gPSBmb2xkRW5kLnRvLWZvbGRTdGFydC5mcm9tLTErY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5vZmZzZXQ7XG5cdFx0XHR9KTtcblx0XHRcdGNvbnN0IGxpbmVOdW1iZXJNYXJnaW4gPSAobWF4TGluZU51bS50b1N0cmluZygpLmxlbmd0aCA+IDIpP21heExpbmVOdW0udG9TdHJpbmcoKS5sZW5ndGggKiBzdGF0ZS5maWVsZChjaGFyV2lkdGhTdGF0ZSk6dW5kZWZpbmVkO1xuXHRcdFx0YnVpbGRlci5hZGQoZm9sZFN0YXJ0LmZyb20sZm9sZFN0YXJ0LmZyb20sRGVjb3JhdGlvbi5saW5lKHthdHRyaWJ1dGVzOiB7c3R5bGU6IGAtLWxpbmUtbnVtYmVyLWd1dHRlci13aWR0aDogJHtsaW5lTnVtYmVyTWFyZ2luP2xpbmVOdW1iZXJNYXJnaW4rXCJweFwiOlwiY2FsYyh2YXIoLS1saW5lLW51bWJlci1ndXR0ZXItbWluLXdpZHRoKSAtIDEycHgpXCJ9O2AsIGNsYXNzOiBcImNvZGUtc3R5bGVyLWxpbmVcIisoW1wiXiRcIl0uY29uY2F0KFNQRUNJQUxfTEFOR1VBR0VTKS5zb21lKHJlZ0V4cCA9PiBuZXcgUmVnRXhwKHJlZ0V4cCkudGVzdChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlKSk/XCJcIjpgIGxhbmd1YWdlLSR7Y29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZX1gKX19KSk7XG5cdFx0XHRpZiAoc2hvd0xpbmVOdW1iZXJzKVxuXHRcdFx0XHRidWlsZGVyLmFkZChmb2xkU3RhcnQuZnJvbSxmb2xkU3RhcnQuZnJvbSxEZWNvcmF0aW9uLndpZGdldCh7d2lkZ2V0OiBuZXcgTGluZU51bWJlcldpZGdldCgwLGNvZGVibG9ja1BhcmFtZXRlcnMsbWF4TGluZU51bSx0cnVlKX0pKTtcblx0XHRcdGZvciAobGV0IGkgPSBmb2xkU3RhcnQubnVtYmVyKzE7IGkgPD0gc3RhdGUuZG9jLmxpbmVzOyBpKyspIHtcblx0XHRcdFx0Y29uc3QgbGluZSA9IHN0YXRlLmRvYz8ubGluZShpKTtcblx0XHRcdFx0aWYgKCFsaW5lKVxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjb25zdCBsaW5lVGV4dCA9IGxpbmUudGV4dC50b1N0cmluZygpO1xuXHRcdFx0XHRpZiAodGVzdE9wZW5pbmdMaW5lKGxpbmVUZXh0KSA9PT0gc3RhcnREZWxpbWl0ZXIpIHtcblx0XHRcdFx0XHRmb2xkRW5kID0gbGluZTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0XHRidWlsZGVyLmFkZChsaW5lLmZyb20sbGluZS5mcm9tLERlY29yYXRpb24ubGluZSh7YXR0cmlidXRlczoge3N0eWxlOiBgLS1saW5lLW51bWJlci1ndXR0ZXItd2lkdGg6ICR7bGluZU51bWJlck1hcmdpbj9saW5lTnVtYmVyTWFyZ2luK1wicHhcIjpcImNhbGModmFyKC0tbGluZS1udW1iZXItZ3V0dGVyLW1pbi13aWR0aCkgLSAxMnB4KVwifTtgLCBjbGFzczogKChTUEVDSUFMX0xBTkdVQUdFUy5zb21lKHJlZ0V4cCA9PiBuZXcgUmVnRXhwKHJlZ0V4cCkudGVzdCgoaXRlci52YWx1ZSBhcyBEZWNvcmF0aW9uKS5zcGVjLndpZGdldC5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlKSkpP1wiY29kZS1zdHlsZXItbGluZVwiOmdldExpbmVDbGFzcyhjb2RlYmxvY2tQYXJhbWV0ZXJzLGktZm9sZFN0YXJ0Lm51bWJlcixsaW5lLnRleHQpLmpvaW4oXCIgXCIpKSsoW1wiXiRcIl0uY29uY2F0KFNQRUNJQUxfTEFOR1VBR0VTKS5zb21lKHJlZ0V4cCA9PiBuZXcgUmVnRXhwKHJlZ0V4cCkudGVzdChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlKSk/XCJcIjpgIGxhbmd1YWdlLSR7Y29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZX1gKX19KSk7XG5cdFx0XHRcdGlmIChzaG93TGluZU51bWJlcnMpXG5cdFx0XHRcdFx0YnVpbGRlci5hZGQobGluZS5mcm9tLGxpbmUuZnJvbSxEZWNvcmF0aW9uLndpZGdldCh7d2lkZ2V0OiBuZXcgTGluZU51bWJlcldpZGdldChpIC0gZm9sZFN0YXJ0Lm51bWJlciwgY29kZWJsb2NrUGFyYW1ldGVycywgbWF4TGluZU51bSl9KSk7XG5cdFx0XHRcdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlID09PSBcIm1hcmtkb3duXCIpXG5cdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdGNvbnZlcnRDb21tZW50TGlua3Moc3RhdGUsIGxpbmUsIHNvdXJjZVBhdGgsIGJ1aWxkZXIsIHNvdXJjZU1vZGUpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGZvbGRFbmQgIT09IG51bGwpIHtcblx0XHRcdFx0YnVpbGRlci5hZGQoZm9sZEVuZC5mcm9tLGZvbGRFbmQuZnJvbSxEZWNvcmF0aW9uLmxpbmUoe2F0dHJpYnV0ZXM6IHtzdHlsZTogYC0tbGluZS1udW1iZXItZ3V0dGVyLXdpZHRoOiAke2xpbmVOdW1iZXJNYXJnaW4/bGluZU51bWJlck1hcmdpbitcInB4XCI6XCJjYWxjKHZhcigtLWxpbmUtbnVtYmVyLWd1dHRlci1taW4td2lkdGgpIC0gMTJweClcIn07YCwgY2xhc3M6IFwiY29kZS1zdHlsZXItbGluZVwiKyhbXCJeJFwiXS5jb25jYXQoU1BFQ0lBTF9MQU5HVUFHRVMpLnNvbWUocmVnRXhwID0+IG5ldyBSZWdFeHAocmVnRXhwKS50ZXN0KGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKT9cIlwiOmAgbGFuZ3VhZ2UtJHtjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlfWApfX0pKTtcblx0XHRcdFx0aWYgKHNob3dMaW5lTnVtYmVycylcblx0XHRcdFx0XHRidWlsZGVyLmFkZChmb2xkRW5kLmZyb20sZm9sZEVuZC5mcm9tLERlY29yYXRpb24ud2lkZ2V0KHt3aWRnZXQ6IG5ldyBMaW5lTnVtYmVyV2lkZ2V0KDAsY29kZWJsb2NrUGFyYW1ldGVycyxtYXhMaW5lTnVtLHRydWUpfSkpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gYnVpbGRlci5maW5pc2goKTtcblx0fVxuXHRmdW5jdGlvbiBjb252ZXJ0Q29tbWVudExpbmtzKHN0YXRlOiBFZGl0b3JTdGF0ZSwgbGluZTogTGluZSwgc291cmNlUGF0aDogc3RyaW5nLCBidWlsZGVyOiBSYW5nZVNldEJ1aWxkZXI8RGVjb3JhdGlvbj4sIHNvdXJjZU1vZGU6IGJvb2xlYW4pIHtcblx0XHRzeW50YXhUcmVlKHN0YXRlKS5pdGVyYXRlKHtcblx0XHRcdGVudGVyOiAoc3ludGF4Tm9kZSkgPT4ge1xuXHRcdFx0XHRpZiAoc3ludGF4Tm9kZS50eXBlLm5hbWUuaW5jbHVkZXMoXCJjb21tZW50X2htZC1jb2RlYmxvY2tcIikpIHtcblx0XHRcdFx0XHRjb25zdCBjb21tZW50VGV4dCA9IHN0YXRlLnNsaWNlRG9jKHN5bnRheE5vZGUuZnJvbSxzeW50YXhOb2RlLnRvKTtcblx0XHRcdFx0XHRjb25zdCBsaW5rTWF0Y2hlcyA9IFsuLi5jb21tZW50VGV4dC5tYXRjaEFsbCgvKD86XFxbXFxbW15cXF18XFxyXFxuXSs/KD86XFx8W15cXF18XFxyXFxuXSs/KT9cXF1cXF18XFxbLio/XFxdXFwoLitcXCkpL2cpXTtcblx0XHRcdFx0XHRsaW5rTWF0Y2hlcy5mb3JFYWNoKChsaW5rTWF0Y2g6IFJlZ0V4cE1hdGNoQXJyYXkpID0+IHtcblx0XHRcdFx0XHRcdGlmICh0eXBlb2YgbGlua01hdGNoPy5pbmRleCA9PT0gXCJ1bmRlZmluZWRcIilcblx0XHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdFx0Y29uc3QgZnJvbSA9IHN5bnRheE5vZGUuZnJvbSArIGxpbmtNYXRjaC5pbmRleDtcblx0XHRcdFx0XHRcdGNvbnN0IHRvID0gZnJvbSArIGxpbmtNYXRjaFswXS5sZW5ndGg7XG5cdFx0XHRcdFx0XHRpZiAoc291cmNlTW9kZSB8fCBzdGF0ZS5zZWxlY3Rpb24ucmFuZ2VzLnNvbWUoKHJhbmdlOiBTZWxlY3Rpb25SYW5nZSk9PnJhbmdlSW50ZXJhY3Rpb24oZnJvbSx0byxyYW5nZSkpKSB7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IG1kQnJlYWsgPSBsaW5rTWF0Y2hbMF0uaW5kZXhPZihcIl0oXCIpO1xuXHRcdFx0XHRcdFx0XHQvL1RPRE8gKEBtYXl1cmFua3YpIEFkZCBlZGl0b3Igd2lkZSB2aWV3ZXIgdG8gYWxsb3cgY2xpY2tpbmcgb24gZmlsZXMgd2l0aCBjdXJzb3IgaW5zaWRlXG5cdFx0XHRcdFx0XHRcdGlmIChtZEJyZWFrID09PSAtMSkge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IHdpa2lsaW5rU2VwYXJhdG9yID0gbGlua01hdGNoWzBdLmluZGV4T2YoXCJ8XCIpO1xuXHRcdFx0XHRcdFx0XHRcdGJ1aWxkZXIuYWRkKGZyb20rMix0by0yLERlY29yYXRpb24ubWFyayh7Y2xhc3M6IFwiY20taG1kLWludGVybmFsLWxpbmsgY29kZS1zdHlsZXItc291cmNlLWxpbmtcIiwgYXR0cmlidXRlczoge2Rlc3RpbmF0aW9uOiBsaW5rTWF0Y2hbMF0uc2xpY2UoMix3aWtpbGlua1NlcGFyYXRvciE9PS0xP3dpa2lsaW5rU2VwYXJhdG9yOi0yKX19KSk7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0YnVpbGRlci5hZGQoZnJvbSsxLGZyb20rbWRCcmVhayxEZWNvcmF0aW9uLm1hcmsoe2NsYXNzOiBcImNtLWxpbmsgY29kZS1zdHlsZXItc291cmNlLWxpbmtcIiwgYXR0cmlidXRlczoge2Rlc3RpbmF0aW9uOiBsaW5rTWF0Y2hbMF0uc2xpY2UobWRCcmVhaysyLC0xKX19KSk7XG5cdFx0XHRcdFx0XHRcdFx0YnVpbGRlci5hZGQoZnJvbSttZEJyZWFrKzIsdG8tMSxEZWNvcmF0aW9uLm1hcmsoe2NsYXNzOiBcImNtLXN0cmluZyBjbS11cmxcIn0pKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBlbHNlXG5cdFx0XHRcdFx0XHRcdGJ1aWxkZXIuYWRkKGZyb20sdG8sRGVjb3JhdGlvbi5yZXBsYWNlKHt3aWRnZXQ6IG5ldyBDb21tZW50TGlua1dpZGdldChsaW5rTWF0Y2hbMF0sIHNvdXJjZVBhdGgpfSkpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0ZnJvbTogbGluZS5mcm9tLFxuXHRcdFx0dG86IGxpbmUudG9cblx0XHR9KTtcblx0fVxuXHRmdW5jdGlvbiBidWlsZElubGluZURlY29yYXRpb25zKHN0YXRlOiBFZGl0b3JTdGF0ZSk6IERlY29yYXRpb25TZXQge1xuXHRcdGlmICghc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5zeW50YXhIaWdobGlnaHQpXG5cdFx0XHRyZXR1cm4gRGVjb3JhdGlvbi5ub25lO1xuXHRcdGNvbnN0IGJ1aWxkZXIgPSBuZXcgUmFuZ2VTZXRCdWlsZGVyPERlY29yYXRpb24+KCk7XG5cdFx0Y29uc3Qgc291cmNlTW9kZSA9IGlzU291cmNlTW9kZShzdGF0ZSk7XG5cdFx0c3ludGF4VHJlZShzdGF0ZSkuaXRlcmF0ZSh7XG5cdFx0XHRlbnRlcjogKHN5bnRheE5vZGUpPT57XG5cdFx0XHRcdGNvbnN0IHJhbmdlcyA9IGdldElubGluZUNvZGVSYW5nZXMoc3RhdGUsc3ludGF4Tm9kZSk7XG5cdFx0XHRcdGlmIChyYW5nZXMgPT09IG51bGwpXG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRjb25zdCB7cGFyYW1ldGVycyx0ZXh0LHNlY3Rpb259ID0gcmFuZ2VzO1xuXHRcdFx0XHRpZiAocGFyYW1ldGVycy52YWx1ZSA9PT0gbnVsbClcblx0XHRcdFx0XHRhZGRVbnN0eWxlZElubGluZURlY29yYXRpb25zKHN0YXRlLGJ1aWxkZXIscGFyYW1ldGVycyBhcyB7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyLCB2YWx1ZTogbnVsbH0sdGV4dCxzZWN0aW9uLHNvdXJjZU1vZGUpO1xuXHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0YWRkU3R5bGVkSW5saW5lRGVjb3JhdGlvbnMoc3RhdGUsYnVpbGRlcixwYXJhbWV0ZXJzIGFzIHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIsIHZhbHVlOiBJbmxpbmVDb2RlUGFyYW1ldGVyc30sdGV4dCxzZWN0aW9uLHNvdXJjZU1vZGUpO1xuXHRcdFx0fSxcblx0XHR9KTtcblx0XHRyZXR1cm4gYnVpbGRlci5maW5pc2goKTtcblx0fVxuXHRmdW5jdGlvbiBhZGRTdHlsZWRJbmxpbmVEZWNvcmF0aW9ucyhzdGF0ZTogRWRpdG9yU3RhdGUsIGJ1aWxkZXI6IFJhbmdlU2V0QnVpbGRlcjxEZWNvcmF0aW9uPiwgcGFyYW1ldGVyczoge2Zyb206IG51bWJlciwgdG86IG51bWJlciwgdmFsdWU6IElubGluZUNvZGVQYXJhbWV0ZXJzfSwgdGV4dDoge2Zyb206IG51bWJlciwgdG86IG51bWJlciwgdmFsdWU6IHN0cmluZ30sIHNlY3Rpb246IHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXJ9LCBzb3VyY2VNb2RlOiBib29sZWFuKSB7XG5cdFx0aWYgKHNvdXJjZU1vZGUgfHwgc3RhdGUuc2VsZWN0aW9uLnJhbmdlcy5zb21lKChyYW5nZTogU2VsZWN0aW9uUmFuZ2UpPT5yYW5nZUludGVyYWN0aW9uKHNlY3Rpb24uZnJvbSxzZWN0aW9uLnRvLHJhbmdlKSkpXG5cdFx0XHRidWlsZGVyLmFkZChwYXJhbWV0ZXJzLmZyb20sIHBhcmFtZXRlcnMudG8sIERlY29yYXRpb24ubWFyayh7Y2xhc3M6IFwiY29kZS1zdHlsZXItaW5saW5lLXBhcmFtZXRlcnNcIn0pKTtcblx0XHRlbHNlIHtcblx0XHRcdGJ1aWxkZXIuYWRkKHBhcmFtZXRlcnMuZnJvbSwgcGFyYW1ldGVycy50bywgRGVjb3JhdGlvbi5yZXBsYWNlKHt9KSk7XG5cdFx0XHRpZiAocGFyYW1ldGVycy52YWx1ZT8udGl0bGUgfHwgKHBhcmFtZXRlcnMudmFsdWU/Lmljb24gJiYgZ2V0TGFuZ3VhZ2VJY29uKHBhcmFtZXRlcnMudmFsdWUubGFuZ3VhZ2UscGx1Z2luLmxhbmd1YWdlSWNvbnMpKSlcblx0XHRcdFx0YnVpbGRlci5hZGQocGFyYW1ldGVycy5mcm9tLCBwYXJhbWV0ZXJzLmZyb20sIERlY29yYXRpb24ucmVwbGFjZSh7d2lkZ2V0OiBuZXcgT3BlbmVyV2lkZ2V0KHBhcmFtZXRlcnMudmFsdWUscGx1Z2luKX0pKTtcblx0XHR9XG5cdFx0bW9kZUhpZ2hsaWdodCh7c3RhcnQ6IHBhcmFtZXRlcnMudG8sIHRleHQ6IHRleHQudmFsdWUsIGxhbmd1YWdlOiBwYXJhbWV0ZXJzLnZhbHVlLmxhbmd1YWdlfSxidWlsZGVyKTtcblx0fVxuXG5cdGZ1bmN0aW9uIGNvbnZlcnRSZWFkZEZvbGQodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uLCByZWFkZExhbmd1YWdlczogQXJyYXk8c3RyaW5nPikge1xuXHRcdGNvbnN0IGFkZEVmZmVjdHM6IEFycmF5PFN0YXRlRWZmZWN0PHVua25vd24+PiA9IFtdO1xuXHRcdGZvciAobGV0IGl0ZXIgPSAodHJhbnNhY3Rpb24uc3RhdGUuZmllbGQoaGVhZGVyRGVjb3JhdGlvbnMsZmFsc2UpID8/IERlY29yYXRpb24ubm9uZSkuaXRlcigpOyBpdGVyLnZhbHVlICE9PSBudWxsOyBpdGVyLm5leHQoKSkgeyAvL1RPRE8gKEBtYXl1cmFua3YpIFJlZmFjdG9yOiBUcnkgYW5kIG1ha2UgdGhpcyBzdGFydFN0YXRlXG5cdFx0XHRpZiAoIWl0ZXIudmFsdWUuc3BlYy53aWRnZXQuY29kZWJsb2NrUGFyYW1ldGVycy5mb2xkLmVuYWJsZWQgfHwgIXJlYWRkTGFuZ3VhZ2VzLmluY2x1ZGVzKGl0ZXIudmFsdWUuc3BlYy53aWRnZXQuY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSkpXG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0Y29kZWJsb2NrRm9sZENhbGxiYWNrKGl0ZXIuZnJvbSx0cmFuc2FjdGlvbi5zdGF0ZSwoZm9sZFN0YXJ0LGZvbGRFbmQpPT57XG5cdFx0XHRcdGFkZEVmZmVjdHMucHVzaChmb2xkLm9mKHtmcm9tOiBmb2xkU3RhcnQuZnJvbSx0bzogZm9sZEVuZC50byx2YWx1ZToge3NwZWM6IHtsYW5ndWFnZTogKGl0ZXIudmFsdWUgYXMgRGVjb3JhdGlvbikuc3BlYy53aWRnZXQuY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZX19fSkpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdHJldHVybiBhZGRFZmZlY3RzO1xuXHR9XG5cdGZ1bmN0aW9uIGlzRm9sZGVkKHN0YXRlOiBFZGl0b3JTdGF0ZSwgcG9zaXRpb246IG51bWJlcik6IGJvb2xlYW4ge1xuXHRcdGxldCBmb2xkZWQgPSBmYWxzZTtcblx0XHRzdGF0ZS5maWVsZChmb2xkRGVjb3JhdGlvbnMsZmFsc2UpPy5iZXR3ZWVuKHBvc2l0aW9uLHBvc2l0aW9uLCgpPT57XG5cdFx0XHRmb2xkZWQgPSB0cnVlO1xuXHRcdH0pO1xuXHRcdHJldHVybiBmb2xkZWQ7XG5cdH1cblx0ZnVuY3Rpb24gZG9jdW1lbnRGb2xkKHN0YXRlOiBFZGl0b3JTdGF0ZSwgdG9Gb2xkPzogYm9vbGVhbik6IEFycmF5PFN0YXRlRWZmZWN0PHVua25vd24+PiB7XG5cdFx0Y29uc3QgYWRkRWZmZWN0czogQXJyYXk8U3RhdGVFZmZlY3Q8dW5rbm93bj4+ID0gW107XG5cdFx0Y29uc3QgcmVzZXQgPSAodHlwZW9mIHRvRm9sZCA9PT0gXCJ1bmRlZmluZWRcIik7XG5cdFx0Zm9yIChsZXQgaXRlciA9IChzdGF0ZS5maWVsZChoZWFkZXJEZWNvcmF0aW9ucyxmYWxzZSkgPz8gRGVjb3JhdGlvbi5ub25lKS5pdGVyKCk7IGl0ZXIudmFsdWUgIT09IG51bGw7IGl0ZXIubmV4dCgpKSB7XG5cdFx0XHRpZiAoaXRlci52YWx1ZS5zcGVjLndpZGdldC5oaWRkZW4pXG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0Y29uc3QgZm9sZGVkID0gaXRlci52YWx1ZS5zcGVjLndpZGdldC5mb2xkZWQ7XG5cdFx0XHRjb25zdCBkZWZhdWx0Rm9sZCA9IGl0ZXIudmFsdWUuc3BlYy53aWRnZXQuY29kZWJsb2NrUGFyYW1ldGVycy5mb2xkLmVuYWJsZWQ7XG5cdFx0XHRjb2RlYmxvY2tGb2xkQ2FsbGJhY2soaXRlci5mcm9tLHN0YXRlLChmb2xkU3RhcnQsZm9sZEVuZCk9Pntcblx0XHRcdFx0aWYgKCghcmVzZXQgJiYgdG9Gb2xkICYmICFmb2xkZWQpIHx8IChyZXNldCAmJiAhZm9sZGVkICYmIGRlZmF1bHRGb2xkKSlcblx0XHRcdFx0XHRhZGRFZmZlY3RzLnB1c2goZm9sZC5vZih7ZnJvbTogZm9sZFN0YXJ0LmZyb20sIHRvOiBmb2xkRW5kLnRvLCB2YWx1ZToge3NwZWM6IHtsYW5ndWFnZTogKGl0ZXIudmFsdWUgYXMgRGVjb3JhdGlvbikuc3BlYy53aWRnZXQuY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZX19fSkpO1xuXHRcdFx0XHRlbHNlIGlmICgoIXJlc2V0ICYmICF0b0ZvbGQgJiYgZm9sZGVkKSB8fCAocmVzZXQgJiYgZm9sZGVkICYmICFkZWZhdWx0Rm9sZCkpXG5cdFx0XHRcdFx0YWRkRWZmZWN0cy5wdXNoKHVuZm9sZC5vZih7ZnJvbTogZm9sZFN0YXJ0LmZyb20sIHRvOiBmb2xkRW5kLnRvfSkpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdHJldHVybiBhZGRFZmZlY3RzO1xuXHR9XG5cblx0cmV0dXJuIFtcblx0XHRpbnRlcmFjdGlvbixcblx0XHRpZ25vcmVMaXN0ZW5lcixpZ25vcmVGaWxlTGlzdGVuZXIsXG5cdFx0Y3Vyc29yRm9sZEV4dGVuZGVyKCksZG9jdW1lbnRGb2xkRXh0ZW5kZXIoKSxzZXR0aW5nc0NoYW5nZUV4dGVuZGVyKCksXG5cdFx0c2V0dGluZ3NTdGF0ZSxjaGFyV2lkdGhTdGF0ZSxsaXZlUHJldmlld0NvbXBhcnRtZW50Lm9mKFtdKSxpZ25vcmVDb21wYXJ0bWVudC5vZihbXSksXG5cdF07XG59XG5cbmNvbnN0IGZvbGQ6IFN0YXRlRWZmZWN0VHlwZTx7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyLCB2YWx1ZToge3NwZWM6IHtsYW5ndWFnZTogc3RyaW5nfX19PiA9IFN0YXRlRWZmZWN0LmRlZmluZSgpO1xuY29uc3QgdW5mb2xkOiBTdGF0ZUVmZmVjdFR5cGU8e2Zyb206IG51bWJlciwgdG86IG51bWJlcn0+ID0gU3RhdGVFZmZlY3QuZGVmaW5lKCk7XG5jb25zdCBoaWRlRm9sZDogU3RhdGVFZmZlY3RUeXBlPFJhbmdlPERlY29yYXRpb24+PiA9IFN0YXRlRWZmZWN0LmRlZmluZSgpO1xuY29uc3QgdW5oaWRlRm9sZDogU3RhdGVFZmZlY3RUeXBlPFJhbmdlPERlY29yYXRpb24+PiA9IFN0YXRlRWZmZWN0LmRlZmluZSgpO1xuY29uc3QgcmVtb3ZlRm9sZDogU3RhdGVFZmZlY3RUeXBlPEFycmF5PHN0cmluZz4+ID0gU3RhdGVFZmZlY3QuZGVmaW5lKCk7XG5jb25zdCBmb2xkQWxsOiBTdGF0ZUVmZmVjdFR5cGU8e3RvRm9sZD86IGJvb2xlYW59PiA9IFN0YXRlRWZmZWN0LmRlZmluZSgpO1xuZXhwb3J0IGNvbnN0IHJlcmVuZGVyOiBTdGF0ZUVmZmVjdFR5cGU8e3BvczogbnVtYmVyfT4gPSBTdGF0ZUVmZmVjdC5kZWZpbmUoKTtcblxuZnVuY3Rpb24gY29kZWJsb2NrRm9sZENhbGxiYWNrKHN0YXJ0UG9zaXRpb246IG51bWJlciwgc3RhdGU6IEVkaXRvclN0YXRlLCBmb2xkQ2FsbGJhY2s6IChmb2xkU3RhcnQ6IExpbmUsIGZvbGRFbmQ6IExpbmUpPT52b2lkKSB7XG5cdGNvbnN0IGZvbGRTdGFydCA9IHN0YXRlLmRvYy5saW5lQXQoc3RhcnRQb3NpdGlvbik7XG5cdGNvbnN0IHN0YXJ0RGVsaW1pdGVyID0gdGVzdE9wZW5pbmdMaW5lKGZvbGRTdGFydC50ZXh0LnRvU3RyaW5nKCkpO1xuXHRsZXQgZm9sZEVuZDogTGluZSB8IG51bGwgPSBudWxsO1xuXHRmb3IgKGxldCBpID0gZm9sZFN0YXJ0Lm51bWJlcisxOyBpIDw9IHN0YXRlLmRvYy5saW5lczsgaSsrKSB7XG5cdFx0Y29uc3QgbGluZSA9IHN0YXRlLmRvYy5saW5lKGkpO1xuXHRcdGNvbnN0IGxpbmVUZXh0ID0gbGluZS50ZXh0LnRvU3RyaW5nKCk7XG5cdFx0aWYgKHRlc3RPcGVuaW5nTGluZShsaW5lVGV4dCkgPT09IHN0YXJ0RGVsaW1pdGVyKSB7XG5cdFx0XHRmb2xkRW5kID0gbGluZTtcblx0XHRcdGJyZWFrO1xuXHRcdH1cblx0fVxuXHRpZiAoZm9sZEVuZCAhPT0gbnVsbClcblx0XHRmb2xkQ2FsbGJhY2soZm9sZFN0YXJ0LGZvbGRFbmQpO1xufVxuXG5mdW5jdGlvbiBnZXRJbmxpbmVDb2RlUmFuZ2VzKHN0YXRlOiBFZGl0b3JTdGF0ZSwgc3ludGF4Tm9kZTogU3ludGF4Tm9kZVJlZik6IHtwYXJhbWV0ZXJzOiB7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyLCB2YWx1ZTogSW5saW5lQ29kZVBhcmFtZXRlcnMgfCBudWxsfSwgdGV4dDoge2Zyb206IG51bWJlciwgdG86IG51bWJlciwgdmFsdWU6IHN0cmluZ30sIHNlY3Rpb246IHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXJ9fSB8IG51bGwge1xuXHRjb25zdCBkZWxpbWl0ZXJTaXplID0gZ2V0SW5saW5lRGVsaW1pdGVyU2l6ZShzeW50YXhOb2RlKTtcblx0aWYgKGRlbGltaXRlclNpemUgPT09IG51bGwpXG5cdFx0cmV0dXJuIG51bGw7XG5cdGNvbnN0IGlubGluZUNvZGVUZXh0ID0gc3RhdGUuZG9jLnNsaWNlU3RyaW5nKHN5bnRheE5vZGUuZnJvbSwgc3ludGF4Tm9kZS50byk7XG5cdGNvbnN0IHtwYXJhbWV0ZXJzLHRleHR9ID0gcGFyc2VJbmxpbmVDb2RlKGlubGluZUNvZGVUZXh0KTtcblx0Y29uc3QgcGFyYW1ldGVyc0xlbmd0aCA9IGlubGluZUNvZGVUZXh0Lmxhc3RJbmRleE9mKHRleHQpO1xuXHRyZXR1cm4ge3BhcmFtZXRlcnM6IHtmcm9tOiBzeW50YXhOb2RlLmZyb20sIHRvOiBzeW50YXhOb2RlLmZyb20rcGFyYW1ldGVyc0xlbmd0aCwgdmFsdWU6IHBhcmFtZXRlcnN9LCB0ZXh0OiB7ZnJvbTogc3ludGF4Tm9kZS5mcm9tK3BhcmFtZXRlcnNMZW5ndGgrMSx0bzogc3ludGF4Tm9kZS50byAsdmFsdWU6IHRleHR9LCBzZWN0aW9uOiB7ZnJvbTogc3ludGF4Tm9kZS5mcm9tLWRlbGltaXRlclNpemUsIHRvOiBzeW50YXhOb2RlLnRvK2RlbGltaXRlclNpemV9fTtcbn1cbmZ1bmN0aW9uIGdldElubGluZURlbGltaXRlclNpemUoc3ludGF4Tm9kZTogU3ludGF4Tm9kZVJlZik6IG51bWJlciB8IG51bGwge1xuXHRjb25zdCBwcm9wZXJ0aWVzID0gbmV3IFNldChzeW50YXhOb2RlLm5vZGUudHlwZS5wcm9wPHN0cmluZz4odG9rZW5DbGFzc05vZGVQcm9wKT8uc3BsaXQoXCIgXCIpKTtcblx0aWYgKCEocHJvcGVydGllcy5oYXMoXCJpbmxpbmUtY29kZVwiKSAmJiAhcHJvcGVydGllcy5oYXMoXCJmb3JtYXR0aW5nXCIpKSlcblx0XHRyZXR1cm4gbnVsbDtcblx0Y29uc3QgcHJldmlvdXNTaWJsaW5nID0gc3ludGF4Tm9kZS5ub2RlLnByZXZTaWJsaW5nO1xuXHRpZiAoIXByZXZpb3VzU2libGluZylcblx0XHRyZXR1cm4gbnVsbDtcblx0cmV0dXJuIHByZXZpb3VzU2libGluZy50by1wcmV2aW91c1NpYmxpbmcuZnJvbTtcbn1cbmZ1bmN0aW9uIGFkZFVuc3R5bGVkSW5saW5lRGVjb3JhdGlvbnMoc3RhdGU6IEVkaXRvclN0YXRlLCBidWlsZGVyOiBSYW5nZVNldEJ1aWxkZXI8RGVjb3JhdGlvbj4sIHBhcmFtZXRlcnM6IHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIsIHZhbHVlOiBudWxsfSwgdGV4dDoge2Zyb206IG51bWJlciwgdG86IG51bWJlciwgdmFsdWU6IHN0cmluZ30sIHNlY3Rpb246IHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXJ9LCBzb3VyY2VNb2RlOiBib29sZWFuKSB7XG5cdGlmICh0ZXh0LnZhbHVlKSB7XG5cdFx0aWYgKCFzdGF0ZS5zZWxlY3Rpb24ucmFuZ2VzLnNvbWUoKHJhbmdlOiBTZWxlY3Rpb25SYW5nZSk9PnJhbmdlLnRvID49IHNlY3Rpb24uZnJvbSAmJiByYW5nZS5mcm9tIDw9IHNlY3Rpb24udG8pICYmICFzb3VyY2VNb2RlKVxuXHRcdFx0YnVpbGRlci5hZGQocGFyYW1ldGVycy5mcm9tLCBwYXJhbWV0ZXJzLnRvLCBEZWNvcmF0aW9uLnJlcGxhY2Uoe30pKTtcblx0fVxufVxuZnVuY3Rpb24gbW9kZUhpZ2hsaWdodCh7c3RhcnQsdGV4dCxsYW5ndWFnZX06IHtzdGFydDogbnVtYmVyLCB0ZXh0OiBzdHJpbmcsIGxhbmd1YWdlOiBzdHJpbmd9LCBidWlsZGVyOiBSYW5nZVNldEJ1aWxkZXI8RGVjb3JhdGlvbj4pIHtcblx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0Y29uc3QgbW9kZSA9IHdpbmRvdy5Db2RlTWlycm9yLmdldE1vZGUod2luZG93LkNvZGVNaXJyb3IuZGVmYXVsdHMsd2luZG93LkNvZGVNaXJyb3IuZmluZE1vZGVCeU5hbWUobGFuZ3VhZ2UpPy5taW1lKTtcblx0Y29uc3Qgc3RhdGUgPSB3aW5kb3cuQ29kZU1pcnJvci5zdGFydFN0YXRlKG1vZGUpO1xuXHRpZiAobW9kZT8udG9rZW4pIHtcblx0XHRjb25zdCBzdHJlYW0gPSBuZXcgd2luZG93LkNvZGVNaXJyb3IuU3RyaW5nU3RyZWFtKHRleHQpO1xuXHRcdHdoaWxlICghc3RyZWFtLmVvbCgpKSB7XG5cdFx0XHRjb25zdCBzdHlsZSA9IG1vZGUudG9rZW4oc3RyZWFtLHN0YXRlKTtcblx0XHRcdGlmIChzdHlsZSlcblx0XHRcdFx0YnVpbGRlci5hZGQoc3RhcnQrc3RyZWFtLnN0YXJ0LCBzdGFydCtzdHJlYW0ucG9zLCBEZWNvcmF0aW9uLm1hcmsoe2NsYXNzOiBgY20tJHtzdHlsZX1gfSkpO1xuXHRcdFx0c3RyZWFtLnN0YXJ0ID0gc3RyZWFtLnBvcztcblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVkaXRpbmdEb2N1bWVudEZvbGQodmlldzogRWRpdG9yVmlldywgdG9Gb2xkPzogYm9vbGVhbikge1xuXHR2aWV3LmRpc3BhdGNoKHtlZmZlY3RzOiBmb2xkQWxsLm9mKCh0eXBlb2YgdG9Gb2xkICE9PSBcInVuZGVmaW5lZFwiKT97dG9Gb2xkOiB0b0ZvbGR9Ont9KX0pO1xuXHR2aWV3LnJlcXVlc3RNZWFzdXJlKCk7XG59XG5mdW5jdGlvbiBmb2xkT25DbGljayh2aWV3OiBFZGl0b3JWaWV3LCB0YXJnZXQ6IEhUTUxFbGVtZW50LCBmb2xkZWQ6IGJvb2xlYW4sIGxhbmd1YWdlOiBzdHJpbmcpIHtcblx0Y29kZWJsb2NrRm9sZENhbGxiYWNrKHZpZXcucG9zQXRET00odGFyZ2V0KSx2aWV3LnN0YXRlLChmb2xkU3RhcnQsZm9sZEVuZCk9Pntcblx0XHR2aWV3LmRpc3BhdGNoKHtlZmZlY3RzOiBmb2xkTGluZXMoIWZvbGRlZCx7ZnJvbTogZm9sZFN0YXJ0LmZyb20sIHRvOiBmb2xkRW5kLnRvLCB2YWx1ZToge3NwZWM6IHtsYW5ndWFnZTogbGFuZ3VhZ2V9fX0pfSk7XG5cdFx0dmlldy5yZXF1ZXN0TWVhc3VyZSgpO1xuXHR9KTtcbn1cbmZ1bmN0aW9uIGZvbGRMaW5lcyh0b0ZvbGQ6IGJvb2xlYW4sIGZvbGRJbmZvOiB7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyLHZhbHVlOiB7c3BlYzoge2xhbmd1YWdlOiBzdHJpbmd9fX0pOiBTdGF0ZUVmZmVjdDx1bmtub3duPiB7XG5cdHJldHVybiB0b0ZvbGQ/Zm9sZC5vZihmb2xkSW5mbyk6dW5mb2xkLm9mKHtmcm9tOiBmb2xkSW5mby5mcm9tLCB0bzogZm9sZEluZm8udG99KTtcbn1cbmZ1bmN0aW9uIGZvbGRSZWdpb24oe2Zyb206IGZvbGRGcm9tLCB0bzogZm9sZFRvLCB2YWx1ZToge3NwZWM6IHtsYW5ndWFnZX19fToge2Zyb206IG51bWJlciwgdG86IG51bWJlcix2YWx1ZToge3NwZWM6IHtsYW5ndWFnZTogc3RyaW5nfX19KTogUmFuZ2U8RGVjb3JhdGlvbj4ge1xuXHRyZXR1cm4gZm9sZERlY29yYXRpb24obGFuZ3VhZ2UpLnJhbmdlKGZvbGRGcm9tLGZvbGRUbyk7XG59XG5mdW5jdGlvbiB1bmZvbGRSZWdpb24oe2Zyb206IGZvbGRGcm9tLCB0bzogZm9sZFRvfToge2Zyb206IG51bWJlciwgdG86IG51bWJlcn0pIHtcblx0cmV0dXJuIHtmaWx0ZXI6IChmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIpID0+ICh0byA8PSBmb2xkRnJvbSB8fCBmcm9tID49IGZvbGRUbyksIGZpbHRlckZyb206IGZvbGRGcm9tLCBmaWx0ZXJUbzogZm9sZFRvfTtcbn1cbmZ1bmN0aW9uIHJlbW92ZUZvbGRMYW5ndWFnZXMobGFuZ3VhZ2VzOiBBcnJheTxzdHJpbmc+KSB7XG5cdHJldHVybiB7ZmlsdGVyOiAoZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyLCB2YWx1ZTogRGVjb3JhdGlvbikgPT4gIWxhbmd1YWdlcy5pbmNsdWRlcyh2YWx1ZT8uc3BlYz8ubGFuZ3VhZ2UpfTtcbn1cbmZ1bmN0aW9uIHVuaGlkZUZvbGRVcGRhdGUocmFuZ2U6IFJhbmdlPERlY29yYXRpb24+KSB7XG5cdHJldHVybiB7ZmlsdGVyRnJvbTogcmFuZ2UuZnJvbSwgZmlsdGVyVG86IHJhbmdlLnRvLCBmaWx0ZXI6IChmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIpPT4hKGZyb20gPT09IHJhbmdlLmZyb20gJiYgdG8gPT09IHJhbmdlLnRvKX07XG59XG5mdW5jdGlvbiBmb2xkRGVjb3JhdGlvbihsYW5ndWFnZTogc3RyaW5nKTogRGVjb3JhdGlvbiB7XG5cdHJldHVybiBEZWNvcmF0aW9uLnJlcGxhY2Uoe2Jsb2NrOiB0cnVlLCBsYW5ndWFnZTogbGFuZ3VhZ2V9KTtcbn1cbmZ1bmN0aW9uIHJhbmdlSW50ZXJhY3Rpb24oZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyLCByYW5nZTogU2VsZWN0aW9uUmFuZ2UpOiBib29sZWFuIHtcblx0cmV0dXJuIChmcm9tIDw9IHJhbmdlLmhlYWQgJiYgcmFuZ2UuaGVhZCA8PSB0bykgfHwgKGZyb20gPD0gcmFuZ2UuYW5jaG9yICYmIHJhbmdlLmFuY2hvciA8PSB0byk7XG59XG5cbmZ1bmN0aW9uIGlzRmlsZUlnbm9yZWQoc3RhdGU6IEVkaXRvclN0YXRlKTogYm9vbGVhbiB7XG5cdGNvbnN0IGZpbGVQYXRoID0gc3RhdGUuZmllbGQoZWRpdG9ySW5mb0ZpZWxkKT8uZmlsZT8ucGF0aDtcblx0aWYgKHR5cGVvZiBmaWxlUGF0aCAhPT0gXCJ1bmRlZmluZWRcIilcblx0XHRyZXR1cm4gdGhpcy5hcHAubWV0YWRhdGFDYWNoZS5nZXRDYWNoZShmaWxlUGF0aCk/LmZyb250bWF0dGVyPy5bXCJjb2RlLXN0eWxlci1pZ25vcmVcIl0/LnRvU3RyaW5nKCkgPT09IFwidHJ1ZVwiO1xuXHRyZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBpc1NvdXJjZU1vZGUoc3RhdGU6IEVkaXRvclN0YXRlKTogYm9vbGVhbiB7XG5cdHJldHVybiAhc3RhdGUuZmllbGQoZWRpdG9yTGl2ZVByZXZpZXdGaWVsZCk7XG59XG5mdW5jdGlvbiBzZXREaWZmZXJlbmNlKGFycmF5MTogQXJyYXk8dW5rbm93bj4sIGFycmF5MjogQXJyYXk8dW5rbm93bj4pIHtcblx0cmV0dXJuIGFycmF5MS5maWx0ZXIoZWxlbWVudCA9PiAhYXJyYXkyLmluY2x1ZGVzKGVsZW1lbnQpKTtcbn1cbiIsICJpbXBvcnQgeyBNYXJrZG93blByZXZpZXdSZW5kZXJlciwgUGx1Z2luIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCBDb2RlU3R5bGVyUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XG5pbXBvcnQgeyBDb2RlU3R5bGVyVGhlbWUsIEVYRUNVVEVfQ09ERV9TVVBQT1JURURfTEFOR1VBR0VTIH0gZnJvbSBcIi4uL1NldHRpbmdzXCI7XG5pbXBvcnQgeyBDb2RlQmxvY2tBcmdzLCBnZXRBcmdzIH0gZnJvbSBcIi4uL0V4dGVybmFsL0V4ZWN1dGVDb2RlL0NvZGVCbG9ja0FyZ3NcIjtcbmltcG9ydCB7IGdldFJlZmVyZW5jZSB9IGZyb20gXCJzcmMvUmVmZXJlbmNpbmdcIjtcbmltcG9ydCB7IFJlZmVyZW5jZSB9IGZyb20gXCIuL1JlZmVyZW5jZVBhcnNpbmdcIjtcbmltcG9ydCB7IGJhc2VuYW1lIH0gZnJvbSBcInBhdGhcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDb2RlYmxvY2tQYXJhbWV0ZXJzIHtcblx0bGFuZ3VhZ2U6IHN0cmluZztcblx0dGl0bGU6IHN0cmluZztcblx0cmVmZXJlbmNlOiBzdHJpbmc7XG5cdGZvbGQ6IHtcblx0XHRlbmFibGVkOiBib29sZWFuO1xuXHRcdHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cdH1cblx0bGluZU51bWJlcnM6IHtcblx0XHRhbHdheXNFbmFibGVkOiBib29sZWFuO1xuXHRcdGFsd2F5c0Rpc2FibGVkOiBib29sZWFuO1xuXHRcdG9mZnNldDogbnVtYmVyO1xuXHR9LFxuXHRsaW5lVW53cmFwOiB7XG5cdFx0YWx3YXlzRW5hYmxlZDogYm9vbGVhbjtcblx0XHRhbHdheXNEaXNhYmxlZDogYm9vbGVhbjtcblx0XHRhY3RpdmVXcmFwOiBib29sZWFuO1xuXHR9LFxuXHRoaWdobGlnaHRzOiB7XG5cdFx0ZGVmYXVsdDogSGlnaGxpZ2h0cztcblx0XHRhbHRlcm5hdGl2ZTogUmVjb3JkPHN0cmluZyxIaWdobGlnaHRzPlxuXHR9LFxuXHRpZ25vcmU6IGJvb2xlYW47XG5cdGV4dGVybmFsUmVmZXJlbmNlPzogUmVmZXJlbmNlO1xufVxuZXhwb3J0IGludGVyZmFjZSBIaWdobGlnaHRzIHtcblx0bGluZU51bWJlcnM6IEFycmF5PG51bWJlcj47XG5cdHBsYWluVGV4dDogQXJyYXk8c3RyaW5nPjtcblx0cmVndWxhckV4cHJlc3Npb25zOiBBcnJheTxSZWdFeHA+O1xufVxuaW50ZXJmYWNlIEV4dGVybmFsUGx1Z2luIGV4dGVuZHMgUGx1Z2luIHtcblx0c3VwcG9ydGVkTGFuZ3VhZ2VzPzogQXJyYXk8c3RyaW5nPjtcblx0Y29kZT86IChzb3VyY2U6IHN0cmluZywgc291cmNlUGF0aD86IHN0cmluZyk9PlByb21pc2U8e1xuXHRcdHN0YXJ0OiBudW1iZXI7XG5cdFx0Y29kZTogc3RyaW5nO1xuXHRcdGxhbmd1YWdlOiBzdHJpbmc7XG5cdFx0aGlnaGxpZ2h0OiBzdHJpbmc7XG5cdFx0bGluZXM6IEFycmF5PHN0cmluZz47XG5cdFx0ZmlsZVBhdGg6IHN0cmluZztcblx0XHRsaW5lbnVtYmVyOiBudW1iZXI7XG5cdH0+O1xuXHRhbmFseXplSGlnaExpZ2h0TGluZXM/OiAobGluZXM6IHN0cmluZ1tdLCBzb3VyY2U6IHN0cmluZyB8IHN0cmluZ1tdKT0+TWFwPG51bWJlcixib29sZWFuPjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBhcnNlQ29kZWJsb2NrU291cmNlKGNvZGVTZWN0aW9uOiBBcnJheTxzdHJpbmc+LCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4sIHNvdXJjZVBhdGg/OiBzdHJpbmcpOiBQcm9taXNlPHtjb2RlYmxvY2tzUGFyYW1ldGVyczogQXJyYXk8Q29kZWJsb2NrUGFyYW1ldGVycz4sIG5lc3RlZDogYm9vbGVhbn0+IHtcblx0Ly8gQHRzLWV4cGVjdC1lcnJvciBVbmRvY3VtZW50ZWQgT2JzaWRpYW4gQVBJXG5cdGNvbnN0IHBsdWdpbnM6IFJlY29yZDxzdHJpbmcsRXh0ZXJuYWxQbHVnaW4+ID0gcGx1Z2luLmFwcC5wbHVnaW5zLnBsdWdpbnM7XG5cdGNvbnN0IGFkbW9uaXRpb25zOiBib29sZWFuID0gKFwib2JzaWRpYW4tYWRtb25pdGlvblwiIGluIHBsdWdpbnMpO1xuXHRjb25zdCBjb2RlYmxvY2tzOiBBcnJheTxBcnJheTxzdHJpbmc+PiA9IFtdO1xuXHRmdW5jdGlvbiBwYXJzZUNvZGVibG9ja1NlY3Rpb24oY29kZVNlY3Rpb246IEFycmF5PHN0cmluZz4pOiB2b2lkIHtcblx0XHRpZiAoY29kZVNlY3Rpb24ubGVuZ3RoID09PSAwKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0Y29uc3Qgb3BlbmluZ0NvZGVibG9ja0xpbmUgPSBnZXRPcGVuaW5nTGluZShjb2RlU2VjdGlvbik7XG5cdFx0aWYgKCFvcGVuaW5nQ29kZWJsb2NrTGluZSlcblx0XHRcdHJldHVybjtcblxuXHRcdGNvbnN0IG9wZW5EZWxpbWl0ZXIgPSAvXlxccyooPzo+XFxzKikqKCg/OmBgYCt8fn5+KykpLiokLy5leGVjKG9wZW5pbmdDb2RlYmxvY2tMaW5lKT8uWzFdO1xuXHRcdGlmICghb3BlbkRlbGltaXRlcilcblx0XHRcdHJldHVybjtcblxuXHRcdGNvbnN0IG9wZW5EZWxpbWl0ZXJJbmRleCA9IGNvZGVTZWN0aW9uLmluZGV4T2Yob3BlbmluZ0NvZGVibG9ja0xpbmUpO1xuXHRcdGNvbnN0IGNsb3NlRGVsaW1pdGVySW5kZXggPSBjb2RlU2VjdGlvbi5zbGljZShvcGVuRGVsaW1pdGVySW5kZXgrMSkuZmluZEluZGV4KChsaW5lKT0+bmV3IFJlZ0V4cChgXlxcXFxzKig/Oj5cXFxccyopKiR7b3BlbkRlbGltaXRlcn0oPyEke29wZW5EZWxpbWl0ZXJbMF19KSRgKS50ZXN0KGxpbmUpKTtcblx0XHRpZiAoIWFkbW9uaXRpb25zIHx8ICEvXlxccyooPzo+XFxzKikqKD86YGBgK3x+fn4rKSAqYWQtLiokLy50ZXN0KG9wZW5pbmdDb2RlYmxvY2tMaW5lKSlcblx0XHRcdGNvZGVibG9ja3MucHVzaChjb2RlU2VjdGlvbi5zbGljZSgwLG9wZW5EZWxpbWl0ZXJJbmRleCsyK2Nsb3NlRGVsaW1pdGVySW5kZXgpKTtcblx0XHRlbHNlXG5cdFx0XHRwYXJzZUNvZGVibG9ja1NlY3Rpb24oY29kZVNlY3Rpb24uc2xpY2Uob3BlbkRlbGltaXRlckluZGV4KzEsb3BlbkRlbGltaXRlckluZGV4KzErY2xvc2VEZWxpbWl0ZXJJbmRleCkpO1xuXG5cdFx0cGFyc2VDb2RlYmxvY2tTZWN0aW9uKGNvZGVTZWN0aW9uLnNsaWNlKG9wZW5EZWxpbWl0ZXJJbmRleCsxK2Nsb3NlRGVsaW1pdGVySW5kZXgrMSkpO1xuXHR9XG5cdHBhcnNlQ29kZWJsb2NrU2VjdGlvbihjb2RlU2VjdGlvbik7XG5cdHJldHVybiB7Y29kZWJsb2Nrc1BhcmFtZXRlcnM6IGF3YWl0ICh0eXBlb2Ygc291cmNlUGF0aCAhPT0gXCJ1bmRlZmluZWRcIj9wYXJzZUNvZGVibG9ja3MoY29kZWJsb2NrcyxwbHVnaW4scGx1Z2lucyxzb3VyY2VQYXRoKTpwYXJzZUNvZGVibG9ja3MoY29kZWJsb2NrcyxwbHVnaW4scGx1Z2lucykpLCBuZXN0ZWQ6IGNvZGVibG9ja3NbMF0/IWFycmF5c0VxdWFsKGNvZGVTZWN0aW9uLGNvZGVibG9ja3NbMF0pOnRydWV9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBwYXJzZUNvZGVibG9ja3MoY29kZWJsb2NrczogQXJyYXk8QXJyYXk8c3RyaW5nPj4sIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbiwgcGx1Z2luczogUmVjb3JkPHN0cmluZyxFeHRlcm5hbFBsdWdpbj4sIHNvdXJjZVBhdGg/OiBzdHJpbmcpOiBQcm9taXNlPEFycmF5PENvZGVibG9ja1BhcmFtZXRlcnM+PiB7XG5cdGNvbnN0IGNvZGVibG9ja3NQYXJhbWV0ZXJzOiBBcnJheTxDb2RlYmxvY2tQYXJhbWV0ZXJzPiA9IFtdO1xuXHRmb3IgKGNvbnN0IGNvZGVibG9ja0xpbmVzIG9mIGNvZGVibG9ja3MpIHtcblx0XHRjb25zdCBjb2RlYmxvY2tQYXJhbWV0ZXJzID0gYXdhaXQgKHR5cGVvZiBzb3VyY2VQYXRoICE9PSBcInVuZGVmaW5lZFwiP3BhcnNlQ29kZWJsb2NrKGNvZGVibG9ja0xpbmVzLHBsdWdpbixwbHVnaW5zLHNvdXJjZVBhdGgpOnBhcnNlQ29kZWJsb2NrKGNvZGVibG9ja0xpbmVzLHBsdWdpbixwbHVnaW5zKSk7XG5cdFx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMgIT09IG51bGwpXG5cdFx0XHRjb2RlYmxvY2tzUGFyYW1ldGVycy5wdXNoKGNvZGVibG9ja1BhcmFtZXRlcnMpO1xuXHR9XG5cdHJldHVybiBjb2RlYmxvY2tzUGFyYW1ldGVycztcbn1cbmFzeW5jIGZ1bmN0aW9uIHBhcnNlQ29kZWJsb2NrKGNvZGVibG9ja0xpbmVzOiBBcnJheTxzdHJpbmc+LCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4sIHBsdWdpbnM6IFJlY29yZDxzdHJpbmcsRXh0ZXJuYWxQbHVnaW4+LCBzb3VyY2VQYXRoPzogc3RyaW5nKTogUHJvbWlzZTxDb2RlYmxvY2tQYXJhbWV0ZXJzIHwgbnVsbD4ge1xuXHRjb25zdCBwYXJhbWV0ZXJMaW5lID0gZ2V0UGFyYW1ldGVyTGluZShjb2RlYmxvY2tMaW5lcyk7XG5cdGlmICghcGFyYW1ldGVyTGluZSlcblx0XHRyZXR1cm4gbnVsbDtcblx0Y29uc3QgY29kZWJsb2NrUGFyYW1ldGVycyA9IHBhcnNlQ29kZWJsb2NrUGFyYW1ldGVycyhwYXJhbWV0ZXJMaW5lLHBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUpO1xuXG5cdGlmIChpc0NvZGVibG9ja0lnbm9yZWQoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSxwbHVnaW4uc2V0dGluZ3MucHJvY2Vzc2VkQ29kZWJsb2Nrc1doaXRlbGlzdCkgJiYgY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSAhPT0gXCJyZWZlcmVuY2VcIilcblx0XHRyZXR1cm4gbnVsbDtcblxuXHRyZXR1cm4gYXdhaXQgKHR5cGVvZiBzb3VyY2VQYXRoICE9PSBcInVuZGVmaW5lZFwiP3BsdWdpbkFkanVzdFBhcmFtZXRlcnMoY29kZWJsb2NrUGFyYW1ldGVycyxwbHVnaW4scGx1Z2lucyxjb2RlYmxvY2tMaW5lcyxzb3VyY2VQYXRoKTpwbHVnaW5BZGp1c3RQYXJhbWV0ZXJzKGNvZGVibG9ja1BhcmFtZXRlcnMscGx1Z2luLHBsdWdpbnMsY29kZWJsb2NrTGluZXMpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUNvZGVibG9ja1BhcmFtZXRlcnMocGFyYW1ldGVyTGluZTogc3RyaW5nLCB0aGVtZTogQ29kZVN0eWxlclRoZW1lKTogQ29kZWJsb2NrUGFyYW1ldGVycyB7XG5cdGNvbnN0IGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMgPSB7XG5cdFx0bGFuZ3VhZ2U6IFwiXCIsXG5cdFx0dGl0bGU6IFwiXCIsXG5cdFx0cmVmZXJlbmNlOiBcIlwiLFxuXHRcdGZvbGQ6IHtcblx0XHRcdGVuYWJsZWQ6IGZhbHNlLFxuXHRcdFx0cGxhY2Vob2xkZXI6IFwiXCIsXG5cdFx0fSxcblx0XHRsaW5lTnVtYmVyczoge1xuXHRcdFx0YWx3YXlzRW5hYmxlZDogZmFsc2UsXG5cdFx0XHRhbHdheXNEaXNhYmxlZDogZmFsc2UsXG5cdFx0XHRvZmZzZXQ6IDAsXG5cdFx0fSxcblx0XHRsaW5lVW53cmFwOiB7XG5cdFx0XHRhbHdheXNFbmFibGVkOiBmYWxzZSxcblx0XHRcdGFsd2F5c0Rpc2FibGVkOiBmYWxzZSxcblx0XHRcdGFjdGl2ZVdyYXA6IGZhbHNlLFxuXHRcdH0sXG5cdFx0aGlnaGxpZ2h0czoge1xuXHRcdFx0ZGVmYXVsdDoge1xuXHRcdFx0XHRsaW5lTnVtYmVyczogW10sXG5cdFx0XHRcdHBsYWluVGV4dDogW10sXG5cdFx0XHRcdHJlZ3VsYXJFeHByZXNzaW9uczogW10sXG5cdFx0XHR9LFxuXHRcdFx0YWx0ZXJuYXRpdmU6IHt9LFxuXHRcdH0sXG5cdFx0aWdub3JlOiBmYWxzZSxcblx0fTtcblxuXHRpZiAocGFyYW1ldGVyTGluZS5zdGFydHNXaXRoKFwiYGBgXCIpKVxuXHRcdHBhcmFtZXRlckxpbmUgPSBwYXJhbWV0ZXJMaW5lLnJlcGxhY2UoL15gYGArKD89W15gXXwkKS8sXCJcIik7XG5cdGVsc2UgaWYgKHBhcmFtZXRlckxpbmUuc3RhcnRzV2l0aChcIn5+flwiKSlcblx0XHRwYXJhbWV0ZXJMaW5lID0gcGFyYW1ldGVyTGluZS5yZXBsYWNlKC9efn5+Kyg/PVtefl18JCkvLFwiXCIpO1xuXHRlbHNlXG5cdFx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnM7XG5cblx0Y29uc3Qgcm1kTWF0Y2ggPSAvXlxceyguKylcXH0gKiQvLmV4ZWMocGFyYW1ldGVyTGluZSk7XG5cdGlmIChybWRNYXRjaClcblx0XHRwYXJhbWV0ZXJMaW5lID0gcm1kTWF0Y2hbMV07XG5cblx0Y29uc3QgbGFuZ3VhZ2VCcmVhayA9IHBhcmFtZXRlckxpbmUuaW5kZXhPZihcIiBcIik7XG5cdGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgPSBwYXJhbWV0ZXJMaW5lLnNsaWNlKDAsKGxhbmd1YWdlQnJlYWsgIT09IC0xKT9sYW5ndWFnZUJyZWFrOnBhcmFtZXRlckxpbmUubGVuZ3RoKS50b0xvd2VyQ2FzZSgpO1xuXHRpZiAobGFuZ3VhZ2VCcmVhayA9PT0gLTEpXG5cdFx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnM7XG5cdHBhcmFtZXRlckxpbmUgPSBwYXJhbWV0ZXJMaW5lLnNsaWNlKGxhbmd1YWdlQnJlYWsrMSk7XG5cdGlmIChybWRNYXRjaClcblx0XHRwYXJhbWV0ZXJMaW5lID0gXCJ0aXRsZTpcIiArIHBhcmFtZXRlckxpbmU7XG5cblx0Y29uc3QgcGFyYW1ldGVyU3RyaW5ncyA9IHBhcmFtZXRlckxpbmUubWF0Y2goLyg/Oig/OnJlZnxyZWZlcmVuY2V8dGl0bGUpOig/OlxcW1xcWy4qP1xcXVxcXXxcXFsuKj9cXF1cXCguK1xcKSl8W15cXHNcIiddK3xcIlteXCJdKlwifCdbXiddKicpKy9nKTtcblx0aWYgKCFwYXJhbWV0ZXJTdHJpbmdzKVxuXHRcdHJldHVybiBjb2RlYmxvY2tQYXJhbWV0ZXJzO1xuXG5cdHBhcmFtZXRlclN0cmluZ3MuZm9yRWFjaCgocGFyYW1ldGVyU3RyaW5nKSA9PiBwYXJzZUNvZGVibG9ja1BhcmFtZXRlclN0cmluZyhwYXJhbWV0ZXJTdHJpbmcucmVwbGFjZSgvKD86Xix8LCQpL2csIFwiXCIpLGNvZGVibG9ja1BhcmFtZXRlcnMsdGhlbWUpKTtcblx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnM7XG59XG5hc3luYyBmdW5jdGlvbiBwbHVnaW5BZGp1c3RQYXJhbWV0ZXJzKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbiwgcGx1Z2luczogUmVjb3JkPHN0cmluZyxFeHRlcm5hbFBsdWdpbj4sIGNvZGVibG9ja0xpbmVzOiBBcnJheTxzdHJpbmc+LCBzb3VyY2VQYXRoPzogc3RyaW5nKTogUHJvbWlzZTxDb2RlYmxvY2tQYXJhbWV0ZXJzPiB7XG5cdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlID09PSBcInJlZmVyZW5jZVwiKSB7XG5cdFx0aWYgKHR5cGVvZiBzb3VyY2VQYXRoID09PSBcInVuZGVmaW5lZFwiKVxuXHRcdFx0dGhyb3cgRXJyb3IoXCJSZWZlcmVuY2UgYmxvY2sgaGFzIHVuZGVmaW5lZCBzb3VyY2VQYXRoXCIpO1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMgPSBhd2FpdCBhZGp1c3RSZWZlcmVuY2UoY29kZWJsb2NrUGFyYW1ldGVycywgY29kZWJsb2NrTGluZXMsIHNvdXJjZVBhdGgsIHBsdWdpbik7XG5cdH0gIGVsc2UgaWYgKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgPT09IFwicHJldmlld1wiKVxuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMgPSBhd2FpdCAodHlwZW9mIHNvdXJjZVBhdGggIT09IFwidW5kZWZpbmVkXCI/cGx1Z2luQWRqdXN0UHJldmlld0NvZGUoY29kZWJsb2NrUGFyYW1ldGVycyxwbHVnaW5zLGNvZGVibG9ja0xpbmVzLHNvdXJjZVBhdGgpOnBsdWdpbkFkanVzdFByZXZpZXdDb2RlKGNvZGVibG9ja1BhcmFtZXRlcnMscGx1Z2lucyxjb2RlYmxvY2tMaW5lcykpO1xuXHRlbHNlIGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlID09PSBcImluY2x1ZGVcIilcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzID0gcGx1Z2luQWRqdXN0RmlsZUluY2x1ZGUoY29kZWJsb2NrUGFyYW1ldGVycyxwbHVnaW5zLGNvZGVibG9ja0xpbmVzKTtcblx0ZWxzZSBpZiAoL3J1bi1cXHcqLy50ZXN0KGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKVxuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMgPSBwbHVnaW5BZGp1c3RFeGVjdXRlQ29kZVJ1bihjb2RlYmxvY2tQYXJhbWV0ZXJzLHBsdWdpbixwbHVnaW5zKTtcblx0Y29kZWJsb2NrUGFyYW1ldGVycyA9IHBsdWdpbkFkanVzdEV4ZWN1dGVDb2RlKGNvZGVibG9ja1BhcmFtZXRlcnMscGx1Z2lucyxjb2RlYmxvY2tMaW5lcyk7XG5cdHJldHVybiBjb2RlYmxvY2tQYXJhbWV0ZXJzO1xufVxuYXN5bmMgZnVuY3Rpb24gYWRqdXN0UmVmZXJlbmNlKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIGNvZGVibG9ja0xpbmVzOiBBcnJheTxzdHJpbmc+LCBzb3VyY2VQYXRoOiBzdHJpbmcsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbik6IFByb21pc2U8Q29kZWJsb2NrUGFyYW1ldGVycz4ge1xuXHRjb25zdCByZWZlcmVuY2UgPSBhd2FpdCBnZXRSZWZlcmVuY2UoY29kZWJsb2NrTGluZXMsIHNvdXJjZVBhdGgsIHBsdWdpbik7XG5cdGlmICghY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5hbHdheXNEaXNhYmxlZCAmJiAhY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5hbHdheXNFbmFibGVkKSB7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5vZmZzZXQgPSByZWZlcmVuY2Uuc3RhcnRMaW5lIC0gMTtcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0VuYWJsZWQgPSBCb29sZWFuKHJlZmVyZW5jZS5zdGFydExpbmUgIT09IDEpO1xuXHR9XG5cdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLnRpdGxlID09PSBcIlwiKVxuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgPSByZWZlcmVuY2UuZXh0ZXJuYWw/LmluZm8/LnRpdGxlID8/IGJhc2VuYW1lKHJlZmVyZW5jZS5wYXRoKTtcblx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMucmVmZXJlbmNlID09PSBcIlwiKVxuXHRcdC8vQHRzLWV4cGVjdC1lcnJvciBVbmRvY3VtZW50ZWQgT2JzaWRpYW4gQVBJXG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5yZWZlcmVuY2UgPSByZWZlcmVuY2UuZXh0ZXJuYWw/LmluZm8/LmRpc3BsYXlVcmwgPz8gcmVmZXJlbmNlLmV4dGVybmFsPy5pbmZvPy51cmwgPz8gcGx1Z2luLmFwcC52YXVsdC5hZGFwdGVyLmdldEZpbGVQYXRoKHJlZmVyZW5jZS5wYXRoKTtcblx0Y29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSA9IHJlZmVyZW5jZS5sYW5ndWFnZTtcblx0aWYgKHJlZmVyZW5jZS5leHRlcm5hbClcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmV4dGVybmFsUmVmZXJlbmNlID0gcmVmZXJlbmNlO1xuXHRyZXR1cm4gY29kZWJsb2NrUGFyYW1ldGVycztcbn1cbmFzeW5jIGZ1bmN0aW9uIHBsdWdpbkFkanVzdFByZXZpZXdDb2RlKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHBsdWdpbnM6IFJlY29yZDxzdHJpbmcsRXh0ZXJuYWxQbHVnaW4+LCBjb2RlYmxvY2tMaW5lczogQXJyYXk8c3RyaW5nPiwgc291cmNlUGF0aD86IHN0cmluZyk6IFByb21pc2U8Q29kZWJsb2NrUGFyYW1ldGVycz4ge1xuXHRpZiAocGx1Z2lucz8uW1wib2JzaWRpYW4tY29kZS1wcmV2aWV3XCJdPy5jb2RlICYmIHBsdWdpbnM/LltcIm9ic2lkaWFuLWNvZGUtcHJldmlld1wiXT8uYW5hbHl6ZUhpZ2hMaWdodExpbmVzKSB7XG5cdFx0Y29uc3QgY29kZVByZXZpZXdQYXJhbXMgPSBhd2FpdCBwbHVnaW5zW1wib2JzaWRpYW4tY29kZS1wcmV2aWV3XCJdLmNvZGUoY29kZWJsb2NrTGluZXMuc2xpY2UoMSwtMSkuam9pbihcIlxcblwiKSxzb3VyY2VQYXRoKTtcblx0XHRpZiAoIWNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMuYWx3YXlzRGlzYWJsZWQgJiYgIWNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMuYWx3YXlzRW5hYmxlZCkge1xuXHRcdFx0aWYgKHR5cGVvZiBjb2RlUHJldmlld1BhcmFtcy5zdGFydCA9PT0gXCJudW1iZXJcIilcblx0XHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5vZmZzZXQgPSBjb2RlUHJldmlld1BhcmFtcy5zdGFydCAtIDE7XG5cdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0VuYWJsZWQgPSBCb29sZWFuKGNvZGVQcmV2aWV3UGFyYW1zLmxpbmVudW1iZXIpO1xuXHRcdH1cblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmhpZ2hsaWdodHMuZGVmYXVsdC5saW5lTnVtYmVycyA9IFsuLi5uZXcgU2V0KGNvZGVibG9ja1BhcmFtZXRlcnMuaGlnaGxpZ2h0cy5kZWZhdWx0LmxpbmVOdW1iZXJzLmNvbmNhdChBcnJheS5mcm9tKHBsdWdpbnNbXCJvYnNpZGlhbi1jb2RlLXByZXZpZXdcIl0uYW5hbHl6ZUhpZ2hMaWdodExpbmVzKGNvZGVQcmV2aWV3UGFyYW1zLmxpbmVzLGNvZGVQcmV2aWV3UGFyYW1zLmhpZ2hsaWdodCksKHBhaXI6IFtudW1iZXIsYm9vbGVhbl0pPT4ocGFpclswXSkpKSldO1xuXHRcdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLnRpdGxlID09PSBcIlwiKVxuXHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy50aXRsZSA9IGNvZGVQcmV2aWV3UGFyYW1zLmZpbGVQYXRoLnNwbGl0KFwiXFxcXFwiKS5wb3AoKT8uc3BsaXQoXCIvXCIpLnBvcCgpID8/IFwiXCI7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSA9IGNvZGVQcmV2aWV3UGFyYW1zLmxhbmd1YWdlO1xuXHR9XG5cdHJldHVybiBjb2RlYmxvY2tQYXJhbWV0ZXJzO1xufVxuZnVuY3Rpb24gcGx1Z2luQWRqdXN0RmlsZUluY2x1ZGUoY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgcGx1Z2luczogUmVjb3JkPHN0cmluZyxFeHRlcm5hbFBsdWdpbj4sIGNvZGVibG9ja0xpbmVzOiBBcnJheTxzdHJpbmc+KTogQ29kZWJsb2NrUGFyYW1ldGVycyB7XG5cdGlmIChcImZpbGUtaW5jbHVkZVwiIGluIHBsdWdpbnMpIHtcblx0XHRjb25zdCBmaWxlSW5jbHVkZUxhbmd1YWdlID0gL2luY2x1ZGUgKFxcdyspLy5leGVjKGNvZGVibG9ja0xpbmVzWzBdKT8uWzFdO1xuXHRcdGlmICh0eXBlb2YgZmlsZUluY2x1ZGVMYW5ndWFnZSAhPT0gXCJ1bmRlZmluZWRcIilcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgPSBmaWxlSW5jbHVkZUxhbmd1YWdlO1xuXHR9XG5cdHJldHVybiBjb2RlYmxvY2tQYXJhbWV0ZXJzO1xufVxuZnVuY3Rpb24gcGx1Z2luQWRqdXN0RXhlY3V0ZUNvZGUoY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgcGx1Z2luczogUmVjb3JkPHN0cmluZyxFeHRlcm5hbFBsdWdpbj4sIGNvZGVibG9ja0xpbmVzOiBBcnJheTxzdHJpbmc+KTogQ29kZWJsb2NrUGFyYW1ldGVycyB7XG5cdGlmIChcImV4ZWN1dGUtY29kZVwiIGluIHBsdWdpbnMpIHtcblx0XHRjb25zdCBjb2RlYmxvY2tBcmdzOiBDb2RlQmxvY2tBcmdzID0gZ2V0QXJncyhjb2RlYmxvY2tMaW5lc1swXSk7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy50aXRsZSA9IGNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgPz8gY29kZWJsb2NrQXJncz8ubGFiZWwgPz8gXCJcIjtcblx0fVxuXHRyZXR1cm4gY29kZWJsb2NrUGFyYW1ldGVycztcbn1cbmZ1bmN0aW9uIHBsdWdpbkFkanVzdEV4ZWN1dGVDb2RlUnVuKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbiwgcGx1Z2luczogUmVjb3JkPHN0cmluZyxFeHRlcm5hbFBsdWdpbj4pOiBDb2RlYmxvY2tQYXJhbWV0ZXJzIHtcblx0aWYgKFwiZXhlY3V0ZS1jb2RlXCIgaW4gcGx1Z2lucykge1xuXHRcdGlmIChFWEVDVVRFX0NPREVfU1VQUE9SVEVEX0xBTkdVQUdFUy5pbmNsdWRlcyhjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlLnNsaWNlKDQpKSAmJiAhaXNDb2RlYmxvY2tJZ25vcmVkKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UscGx1Z2luLnNldHRpbmdzLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3QpKVxuXHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSA9IGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2Uuc2xpY2UoNCk7XG5cdH1cblx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnM7XG59XG5cbmZ1bmN0aW9uIHBhcnNlQ29kZWJsb2NrUGFyYW1ldGVyU3RyaW5nKHBhcmFtZXRlclN0cmluZzogc3RyaW5nLCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCB0aGVtZTogQ29kZVN0eWxlclRoZW1lKTogdm9pZCB7XG5cdGlmIChwYXJhbWV0ZXJTdHJpbmcgPT09IFwiaWdub3JlXCIpXG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5pZ25vcmUgPSB0cnVlO1xuXHRlbHNlIGlmICgvXnRpdGxlWzo9XS8udGVzdChwYXJhbWV0ZXJTdHJpbmcpKVxuXHRcdG1hbmFnZVRpdGxlKHBhcmFtZXRlclN0cmluZyxjb2RlYmxvY2tQYXJhbWV0ZXJzKTtcblx0ZWxzZSBpZiAoL15yZWZbOj1dLy50ZXN0KHBhcmFtZXRlclN0cmluZykgfHwgL15yZWZlcmVuY2VbOj1dLy50ZXN0KHBhcmFtZXRlclN0cmluZykpXG5cdFx0bWFuYWdlUmVmZXJlbmNlKHBhcmFtZXRlclN0cmluZyxjb2RlYmxvY2tQYXJhbWV0ZXJzKTtcblx0ZWxzZSBpZiAoL15mb2xkWzo9XT8vLnRlc3QocGFyYW1ldGVyU3RyaW5nKSlcblx0XHRtYW5hZ2VGb2xkaW5nKHBhcmFtZXRlclN0cmluZyxjb2RlYmxvY2tQYXJhbWV0ZXJzKTtcblx0ZWxzZSBpZiAoL15sbls6PV0vLnRlc3QocGFyYW1ldGVyU3RyaW5nKSlcblx0XHRtYW5hZ2VMaW5lTnVtYmVyaW5nKHBhcmFtZXRlclN0cmluZyxjb2RlYmxvY2tQYXJhbWV0ZXJzKTtcblx0ZWxzZSBpZiAoL151bndyYXBbOj1dPy8udGVzdChwYXJhbWV0ZXJTdHJpbmcpIHx8IHBhcmFtZXRlclN0cmluZyA9PT0gXCJ3cmFwXCIpXG5cdFx0bWFuYWdlV3JhcHBpbmcocGFyYW1ldGVyU3RyaW5nLGNvZGVibG9ja1BhcmFtZXRlcnMpO1xuXHRlbHNlXG5cdFx0YWRkSGlnaGxpZ2h0cyhwYXJhbWV0ZXJTdHJpbmcsY29kZWJsb2NrUGFyYW1ldGVycyx0aGVtZSk7XG59XG5mdW5jdGlvbiBtYW5hZ2VUaXRsZShwYXJhbWV0ZXJTdHJpbmc6IHN0cmluZywgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycykge1xuXHRjb25zdCB0aXRsZU1hdGNoID0gLyhbXCInXT8pKFteXFwxXSspXFwxLy5leGVjKHBhcmFtZXRlclN0cmluZy5zbGljZShcInRpdGxlOlwiLmxlbmd0aCkpO1xuXHRpZiAodGl0bGVNYXRjaClcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLnRpdGxlID0gdGl0bGVNYXRjaFsyXS50cmltKCk7XG5cdHBhcmFtZXRlclN0cmluZyA9IHBhcmFtZXRlclN0cmluZy5zbGljZShcInRpdGxlOlwiLmxlbmd0aCk7XG5cdGNvbnN0IGxpbmtJbmZvID0gbWFuYWdlTGluayhwYXJhbWV0ZXJTdHJpbmcpO1xuXHRpZiAobGlua0luZm8pIHtcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLnRpdGxlID0gbGlua0luZm8udGl0bGU7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5yZWZlcmVuY2UgPSBsaW5rSW5mby5yZWZlcmVuY2U7XG5cdH1cbn1cbmZ1bmN0aW9uIG1hbmFnZVJlZmVyZW5jZShwYXJhbWV0ZXJTdHJpbmc6IHN0cmluZywgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycykge1xuXHRwYXJhbWV0ZXJTdHJpbmcgPSBwYXJhbWV0ZXJTdHJpbmcuc2xpY2UoKCgvXnJlZls6PV0vLnRlc3QocGFyYW1ldGVyU3RyaW5nKSk/XCJyZWY6XCI6XCJyZWZlcmVuY2U6XCIpLmxlbmd0aCk7XG5cdGNvbnN0IGxpbmtJbmZvID0gbWFuYWdlTGluayhwYXJhbWV0ZXJTdHJpbmcpO1xuXHRpZiAobGlua0luZm8pIHtcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLnJlZmVyZW5jZSA9IGxpbmtJbmZvLnJlZmVyZW5jZTtcblx0XHRpZiAoY29kZWJsb2NrUGFyYW1ldGVycy50aXRsZSA9PT0gXCJcIilcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgPSBsaW5rSW5mby50aXRsZTtcblx0fVxufVxuZXhwb3J0IGZ1bmN0aW9uIG1hbmFnZUxpbmsocGFyYW1ldGVyU3RyaW5nOiBzdHJpbmcpOiB7dGl0bGU6IHN0cmluZywgcmVmZXJlbmNlOiBzdHJpbmd9IHwgdW5kZWZpbmVkIHtcblx0Y29uc3QgcmVmV2lraU1hdGNoID0gL1xcW1xcWyhbXlxcXXxcXHJcXG5dKz8pKD86XFx8KFteXFxdfFxcclxcbl0rPykpP1xcXVxcXS8uZXhlYyhwYXJhbWV0ZXJTdHJpbmcpO1xuXHRjb25zdCByZWZNZE1hdGNoID0gL1xcWyguKj8pXFxdXFwoKC4rKVxcKS8uZXhlYyhwYXJhbWV0ZXJTdHJpbmcpO1xuXHRjb25zdCB1cmxNYXRjaCA9IC9eKFtcIiddPykoaHR0cHM/OlxcL1xcLy4qKVxcMSQvLmV4ZWMocGFyYW1ldGVyU3RyaW5nKTtcblx0bGV0IHRpdGxlID0gXCJcIjtcblx0bGV0IHJlZmVyZW5jZSA9IFwiXCI7XG5cdGlmIChyZWZXaWtpTWF0Y2gpIHtcblx0XHR0aXRsZSA9IHJlZldpa2lNYXRjaFsyXT9yZWZXaWtpTWF0Y2hbMl0udHJpbSgpOnJlZldpa2lNYXRjaFsxXS50cmltKCk7XG5cdFx0cmVmZXJlbmNlID0gcmVmV2lraU1hdGNoWzFdLnRyaW0oKTtcblx0fSBlbHNlIGlmIChyZWZNZE1hdGNoKSB7XG5cdFx0dGl0bGUgPSByZWZNZE1hdGNoWzFdLnRyaW0oKTtcblx0XHRyZWZlcmVuY2UgPSByZWZNZE1hdGNoWzJdLnRyaW0oKTtcblx0fSBlbHNlIGlmICh1cmxNYXRjaCkge1xuXHRcdHRpdGxlID0gXCJVUkxcIjtcblx0XHRyZWZlcmVuY2UgPSB1cmxNYXRjaFsyXS50cmltKCk7XG5cdH0gIGVsc2Vcblx0XHRyZXR1cm47XG5cdHJldHVybiB7dGl0bGU6IHRpdGxlLCByZWZlcmVuY2U6IHJlZmVyZW5jZX07XG59XG5mdW5jdGlvbiBtYW5hZ2VGb2xkaW5nKHBhcmFtZXRlclN0cmluZzogc3RyaW5nLCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzKSB7XG5cdGlmIChwYXJhbWV0ZXJTdHJpbmcgPT09IFwiZm9sZFwiKSB7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5mb2xkID0ge1xuXHRcdFx0ZW5hYmxlZDogdHJ1ZSxcblx0XHRcdHBsYWNlaG9sZGVyOiBcIlwiLFxuXHRcdH07XG5cdH0gZWxzZSB7XG5cdFx0Y29uc3QgZm9sZFBsYWNlaG9sZGVyTWF0Y2ggPSAvKFtcIiddPykoW15cXDFdKylcXDEvLmV4ZWMocGFyYW1ldGVyU3RyaW5nLnNsaWNlKFwiZm9sZDpcIi5sZW5ndGgpKTtcblx0XHRpZiAoZm9sZFBsYWNlaG9sZGVyTWF0Y2gpIHtcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZCA9IHtcblx0XHRcdFx0ZW5hYmxlZDogdHJ1ZSxcblx0XHRcdFx0cGxhY2Vob2xkZXI6IGZvbGRQbGFjZWhvbGRlck1hdGNoWzJdLnRyaW0oKSxcblx0XHRcdH07XG5cdFx0fVxuXHR9XG59XG5mdW5jdGlvbiBtYW5hZ2VMaW5lTnVtYmVyaW5nKHBhcmFtZXRlclN0cmluZzogc3RyaW5nLCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzKSB7XG5cdHBhcmFtZXRlclN0cmluZyA9IHBhcmFtZXRlclN0cmluZy5zbGljZShcImxuOlwiLmxlbmd0aCk7XG5cdGlmICgvXlxcZCskLy50ZXN0KHBhcmFtZXRlclN0cmluZykpIHtcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzID0ge1xuXHRcdFx0YWx3YXlzRW5hYmxlZDogdHJ1ZSxcblx0XHRcdGFsd2F5c0Rpc2FibGVkOiBmYWxzZSxcblx0XHRcdG9mZnNldDogcGFyc2VJbnQocGFyYW1ldGVyU3RyaW5nKS0xLFxuXHRcdH07XG5cdH0gZWxzZSBpZiAocGFyYW1ldGVyU3RyaW5nLnRvTG93ZXJDYXNlKCkgPT09IFwidHJ1ZVwiKSB7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycyA9IHtcblx0XHRcdGFsd2F5c0VuYWJsZWQ6IHRydWUsXG5cdFx0XHRhbHdheXNEaXNhYmxlZDogZmFsc2UsXG5cdFx0XHRvZmZzZXQ6IDAsXG5cdFx0fTtcblx0fSBlbHNlIGlmIChwYXJhbWV0ZXJTdHJpbmcudG9Mb3dlckNhc2UoKSA9PT0gXCJmYWxzZVwiKSB7XG5cdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycyA9IHtcblx0XHRcdGFsd2F5c0VuYWJsZWQ6IGZhbHNlLFxuXHRcdFx0YWx3YXlzRGlzYWJsZWQ6IHRydWUsXG5cdFx0XHRvZmZzZXQ6IDAsXG5cdFx0fTtcblx0fVxufVxuZnVuY3Rpb24gbWFuYWdlV3JhcHBpbmcocGFyYW1ldGVyU3RyaW5nOiBzdHJpbmcsIGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMpIHtcblx0aWYgKHBhcmFtZXRlclN0cmluZyA9PT0gXCJ3cmFwXCIpIHtcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVVbndyYXAgPSB7XG5cdFx0XHRhbHdheXNFbmFibGVkOiBmYWxzZSxcblx0XHRcdGFsd2F5c0Rpc2FibGVkOiB0cnVlLFxuXHRcdFx0YWN0aXZlV3JhcDogZmFsc2UsXG5cdFx0fTtcblx0fSBlbHNlIGlmIChwYXJhbWV0ZXJTdHJpbmcgPT09IFwidW53cmFwXCIpIHtcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVVbndyYXAgPSB7XG5cdFx0XHRhbHdheXNFbmFibGVkOiB0cnVlLFxuXHRcdFx0YWx3YXlzRGlzYWJsZWQ6IGZhbHNlLFxuXHRcdFx0YWN0aXZlV3JhcDogZmFsc2UsXG5cdFx0fTtcblx0fSBlbHNlIHtcblx0XHRwYXJhbWV0ZXJTdHJpbmcgPSBwYXJhbWV0ZXJTdHJpbmcuc2xpY2UoXCJ1bndyYXA6XCIubGVuZ3RoKTtcblx0XHRpZiAocGFyYW1ldGVyU3RyaW5nLnRvTG93ZXJDYXNlKCkgPT09IFwiaW5hY3RpdmVcIikge1xuXHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5saW5lVW53cmFwID0ge1xuXHRcdFx0XHRhbHdheXNFbmFibGVkOiB0cnVlLFxuXHRcdFx0XHRhbHdheXNEaXNhYmxlZDogZmFsc2UsXG5cdFx0XHRcdGFjdGl2ZVdyYXA6IHRydWUsXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSBpZiAocGFyYW1ldGVyU3RyaW5nLnRvTG93ZXJDYXNlKCkgPT09IFwidHJ1ZVwiKSB7XG5cdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVVbndyYXAgPSB7XG5cdFx0XHRcdGFsd2F5c0VuYWJsZWQ6IHRydWUsXG5cdFx0XHRcdGFsd2F5c0Rpc2FibGVkOiBmYWxzZSxcblx0XHRcdFx0YWN0aXZlV3JhcDogZmFsc2UsXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSBpZiAocGFyYW1ldGVyU3RyaW5nLnRvTG93ZXJDYXNlKCkgPT09IFwiZmFsc2VcIikge1xuXHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5saW5lVW53cmFwID0ge1xuXHRcdFx0XHRhbHdheXNFbmFibGVkOiBmYWxzZSxcblx0XHRcdFx0YWx3YXlzRGlzYWJsZWQ6IHRydWUsXG5cdFx0XHRcdGFjdGl2ZVdyYXA6IGZhbHNlLFxuXHRcdFx0fTtcblx0XHR9XG5cdH1cbn1cbmZ1bmN0aW9uIGFkZEhpZ2hsaWdodHMocGFyYW1ldGVyU3RyaW5nOiBzdHJpbmcsIGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHRoZW1lOiBDb2RlU3R5bGVyVGhlbWUpIHtcblx0Y29uc3QgaGlnaGxpZ2h0TWF0Y2ggPSAvXihcXHcrKVs6PV0oLispJC8uZXhlYyhwYXJhbWV0ZXJTdHJpbmcpO1xuXHRpZiAoaGlnaGxpZ2h0TWF0Y2gpIHtcblx0XHRpZiAoaGlnaGxpZ2h0TWF0Y2hbMV0gPT09IFwiaGxcIilcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMuaGlnaGxpZ2h0cy5kZWZhdWx0ID0gcGFyc2VIaWdobGlnaHRlZExpbmVzKGhpZ2hsaWdodE1hdGNoWzJdKTtcblx0XHRlbHNlIGlmIChoaWdobGlnaHRNYXRjaFsxXSBpbiB0aGVtZS5jb2xvdXJzLmxpZ2h0LmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzKVxuXHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5oaWdobGlnaHRzLmFsdGVybmF0aXZlW2hpZ2hsaWdodE1hdGNoWzFdXSA9IHBhcnNlSGlnaGxpZ2h0ZWRMaW5lcyhoaWdobGlnaHRNYXRjaFsyXSk7XG5cdH0gZWxzZSBpZiAoL157W1xcZC0sXSt9JC8udGVzdChwYXJhbWV0ZXJTdHJpbmcpKVxuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMuaGlnaGxpZ2h0cy5kZWZhdWx0ID0gcGFyc2VIaWdobGlnaHRlZExpbmVzKHBhcmFtZXRlclN0cmluZy5zbGljZSgxLC0xKSk7XG59XG5mdW5jdGlvbiBwYXJzZUhpZ2hsaWdodGVkTGluZXMoaGlnaGxpZ2h0ZWRMaW5lc1N0cmluZzogc3RyaW5nKTogSGlnaGxpZ2h0cyB7XG5cdGNvbnN0IGhpZ2hsaWdodFJ1bGVzID0gaGlnaGxpZ2h0ZWRMaW5lc1N0cmluZy5zcGxpdChcIixcIik7XG5cdGNvbnN0IGxpbmVOdW1iZXJzOiBTZXQ8bnVtYmVyPiA9IG5ldyBTZXQoKTtcblx0Y29uc3QgcGxhaW5UZXh0OiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoKTtcblx0Y29uc3QgcmVndWxhckV4cHJlc3Npb25zOiBTZXQ8UmVnRXhwPiA9IG5ldyBTZXQoKTtcblx0aGlnaGxpZ2h0UnVsZXMuZm9yRWFjaChoaWdobGlnaHRSdWxlID0+IHtcblx0XHRpZiAoL1xcZCstXFxkKy8udGVzdChoaWdobGlnaHRSdWxlKSkgeyAvLyBOdW1iZXIgUmFuZ2Vcblx0XHRcdGNvbnN0IFtzdGFydCxlbmRdID0gaGlnaGxpZ2h0UnVsZS5zcGxpdChcIi1cIikubWFwKG51bSA9PiBwYXJzZUludChudW0pKTtcblx0XHRcdGlmIChzdGFydCAmJiBlbmQgJiYgc3RhcnQgPD0gZW5kKVxuXHRcdFx0XHRBcnJheS5mcm9tKHtsZW5ndGg6ZW5kLXN0YXJ0KzF9LCAoXyxudW0pID0+IG51bSArIHN0YXJ0KS5mb3JFYWNoKGxpbmVOdW1iZXIgPT4gbGluZU51bWJlcnMuYWRkKGxpbmVOdW1iZXIpKTtcblx0XHR9IGVsc2UgaWYgKC9eXFwvKC4qKVxcLyQvLnRlc3QoaGlnaGxpZ2h0UnVsZSkpIHsgLy8gUmVnZXhcblx0XHRcdHRyeSB7XG5cdFx0XHRcdHJlZ3VsYXJFeHByZXNzaW9ucy5hZGQobmV3IFJlZ0V4cChoaWdobGlnaHRSdWxlLnJlcGxhY2UoL15cXC8oLiopXFwvJC8sIFwiJDFcIikpKTtcblx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHQvL3Bhc3Ncblx0XHRcdH1cblx0XHR9ICBlbHNlIGlmICgvXCIuKlwiLy50ZXN0KGhpZ2hsaWdodFJ1bGUpKSAvLyBQbGFpbiBUZXh0XG5cdFx0XHRwbGFpblRleHQuYWRkKGhpZ2hsaWdodFJ1bGUuc3Vic3RyaW5nKDEsaGlnaGxpZ2h0UnVsZS5sZW5ndGgtMSkpO1xuXHRcdGVsc2UgaWYgKC8nLionLy50ZXN0KGhpZ2hsaWdodFJ1bGUpKSAvLyBQbGFpbiBUZXh0XG5cdFx0XHRwbGFpblRleHQuYWRkKGhpZ2hsaWdodFJ1bGUuc3Vic3RyaW5nKDEsaGlnaGxpZ2h0UnVsZS5sZW5ndGgtMSkpO1xuXHRcdGVsc2UgaWYgKC9cXEQvLnRlc3QoaGlnaGxpZ2h0UnVsZSkpIC8vIFBsYWluIFRleHQgLy9UT0RPIChAbWF5dXJhbmt2KSBTaG91bGQgdGhpcyBiZSBcXEQrID8/XG5cdFx0XHRwbGFpblRleHQuYWRkKGhpZ2hsaWdodFJ1bGUpO1xuXHRcdGVsc2UgaWYgKC9cXGQrLy50ZXN0KGhpZ2hsaWdodFJ1bGUpKSAvLyBQbGFpbiBOdW1iZXJcblx0XHRcdGxpbmVOdW1iZXJzLmFkZChwYXJzZUludChoaWdobGlnaHRSdWxlKSk7XG5cdH0pO1xuXHRyZXR1cm4ge1xuXHRcdGxpbmVOdW1iZXJzOiBbLi4ubGluZU51bWJlcnNdLFxuXHRcdHBsYWluVGV4dDogWy4uLnBsYWluVGV4dF0sXG5cdFx0cmVndWxhckV4cHJlc3Npb25zOiBbLi4ucmVndWxhckV4cHJlc3Npb25zXSxcblx0fTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0xhbmd1YWdlSWdub3JlZChsYW5ndWFnZTogc3RyaW5nLCBleGNsdWRlZExhbmd1YWdlc1N0cmluZzogc3RyaW5nKTogYm9vbGVhbiB7XG5cdHJldHVybiBwYXJzZVJlZ2V4RXhjbHVkZWRMYW5ndWFnZXMoZXhjbHVkZWRMYW5ndWFnZXNTdHJpbmcpLnNvbWUocmVnZXhFeGNsdWRlZExhbmd1YWdlPT5yZWdleEV4Y2x1ZGVkTGFuZ3VhZ2UudGVzdChsYW5ndWFnZSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29kZWJsb2NrSWdub3JlZChsYW5ndWFnZTogc3RyaW5nLCB3aGl0ZWxpc3RlZENvZGVibG9ja3NTdHJpbmc6IHN0cmluZyk6IGJvb2xlYW4ge1xuXHQvL0B0cy1leHBlY3QtZXJyb3IgVW5kb2N1bWVudGVkIE9ic2lkaWFuIEFQSVxuXHRyZXR1cm4gKGxhbmd1YWdlIGluIE1hcmtkb3duUHJldmlld1JlbmRlcmVyLmNvZGVCbG9ja1Bvc3RQcm9jZXNzb3JzKSAmJiAhcGFyc2VSZWdleEV4Y2x1ZGVkTGFuZ3VhZ2VzKHdoaXRlbGlzdGVkQ29kZWJsb2Nrc1N0cmluZykuc29tZShyZWdleEV4Y2x1ZGVkTGFuZ3VhZ2U9PnJlZ2V4RXhjbHVkZWRMYW5ndWFnZS50ZXN0KGxhbmd1YWdlKSk7XG59XG5mdW5jdGlvbiBwYXJzZVJlZ2V4RXhjbHVkZWRMYW5ndWFnZXMoZXhjbHVkZWRMYW5ndWFnZXNTdHJpbmc6IHN0cmluZyk6IEFycmF5PFJlZ0V4cD4ge1xuXHRyZXR1cm4gZXhjbHVkZWRMYW5ndWFnZXNTdHJpbmcuc3BsaXQoXCIsXCIpLm1hcChyZWdleExhbmd1YWdlID0+IG5ldyBSZWdFeHAoYF4ke3JlZ2V4TGFuZ3VhZ2UudHJpbSgpLnJlcGxhY2UoL1xcKi9nLFwiLitcIil9JGAsXCJpXCIpKTtcbn1cblxuZnVuY3Rpb24gZ2V0UGFyYW1ldGVyTGluZShjb2RlYmxvY2tMaW5lczogQXJyYXk8c3RyaW5nPik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdGxldCBvcGVuaW5nQ29kZWJsb2NrTGluZSA9IGdldE9wZW5pbmdMaW5lKGNvZGVibG9ja0xpbmVzKTtcblx0aWYgKG9wZW5pbmdDb2RlYmxvY2tMaW5lICYmIChvcGVuaW5nQ29kZWJsb2NrTGluZSAhPT0gY29kZWJsb2NrTGluZXNbMF0gfHwgLz5cXHMqKD86W2B+XSkvLnRlc3Qob3BlbmluZ0NvZGVibG9ja0xpbmUpKSlcblx0XHRvcGVuaW5nQ29kZWJsb2NrTGluZSA9IGNsZWFuUGFyYW1ldGVyTGluZShvcGVuaW5nQ29kZWJsb2NrTGluZSk7XG5cdHJldHVybiBvcGVuaW5nQ29kZWJsb2NrTGluZTtcbn1cbmZ1bmN0aW9uIGdldE9wZW5pbmdMaW5lKGNvZGVibG9ja0xpbmVzOiBBcnJheTxzdHJpbmc+KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIGNvZGVibG9ja0xpbmVzLmZpbmQoKGxpbmU6IHN0cmluZyk9PkJvb2xlYW4odGVzdE9wZW5pbmdMaW5lKGxpbmUpKSk7XG59XG5leHBvcnQgZnVuY3Rpb24gdGVzdE9wZW5pbmdMaW5lKGNvZGVibG9ja0xpbmU6IHN0cmluZyk6IHN0cmluZyB7XG5cdGNvbnN0IGxpbmVNYXRjaCA9IC9eKFxccyooPzo+XFxzKikqKShgYGArfH5+fispLy5leGVjKGNvZGVibG9ja0xpbmUpO1xuXHRpZiAoIWxpbmVNYXRjaClcblx0XHRyZXR1cm4gXCJcIjtcblx0aWYgKGNvZGVibG9ja0xpbmUuaW5kZXhPZihsaW5lTWF0Y2hbMl0sbGluZU1hdGNoWzFdLmxlbmd0aCtsaW5lTWF0Y2hbMl0ubGVuZ3RoKzEpPT09LTEpXG5cdFx0cmV0dXJuIGxpbmVNYXRjaFsyXTtcblx0cmV0dXJuIFwiXCI7XG59XG5mdW5jdGlvbiBjbGVhblBhcmFtZXRlckxpbmUocGFyYW1ldGVyTGluZTogc3RyaW5nKTogc3RyaW5nIHtcblx0cmV0dXJuIHRyaW1QYXJhbWV0ZXJMaW5lKHBhcmFtZXRlckxpbmUpLnJlcGxhY2UoL14oPzo+XFxzKikqKGBgYCt8fn5+KykvLFwiJDFcIik7XG59XG5leHBvcnQgZnVuY3Rpb24gdHJpbVBhcmFtZXRlckxpbmUocGFyYW1ldGVyTGluZTogc3RyaW5nKTogc3RyaW5nIHtcblx0cmV0dXJuIHBhcmFtZXRlckxpbmUudHJpbSgpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RmlsZUNvbnRlbnRMaW5lcyhzb3VyY2VQYXRoOiBzdHJpbmcsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbik6IFByb21pc2U8QXJyYXk8c3RyaW5nPj4ge1xuXHRyZXR1cm4gKGF3YWl0IHBsdWdpbi5hcHAudmF1bHQuYWRhcHRlci5yZWFkKHNvdXJjZVBhdGgpKS5zcGxpdCgvXFxuL2cpO1xufVxuXG5mdW5jdGlvbiBhcnJheXNFcXVhbChhcnJheTE6IEFycmF5PHVua25vd24+LGFycmF5MjogQXJyYXk8dW5rbm93bj4pOiBib29sZWFuIHtcblx0cmV0dXJuIGFycmF5MS5sZW5ndGggPT09IGFycmF5Mi5sZW5ndGggJiYgYXJyYXkxLmV2ZXJ5KChlbCkgPT4gYXJyYXkyLmluY2x1ZGVzKGVsKSk7XG59XG4iLCAiaW1wb3J0IHtOb3RpY2V9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0ICogYXMgSlNPTjUgZnJvbSBcImpzb241XCI7XG5cbmV4cG9ydCB0eXBlIEV4cG9ydFR5cGUgPSBcInByZVwiIHwgXCJwb3N0XCI7XG5cbi8qKlxuICogQXJndW1lbnRzIGZvciBjb2RlIGJsb2Nrcywgc3BlY2lmaWVkIG5leHQgdG8gdGhlIGxhbmd1YWdlIGlkZW50aWZpZXIgYXMgSlNPTlxuICogQGV4YW1wbGUgYGBgcHl0aG9uIHtcImV4cG9ydFwiOiBcInByZVwifVxuICogQGV4YW1wbGUgYGBgY3BwIHtcImlnbm9yZUV4cG9ydFwiOiBbXCJwb3N0XCJdfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZGVCbG9ja0FyZ3Mge1xuXHRsYWJlbD86IHN0cmluZztcblx0aW1wb3J0Pzogc3RyaW5nIHwgc3RyaW5nW107XG5cdGV4cG9ydD86IEV4cG9ydFR5cGUgfCBFeHBvcnRUeXBlW107XG5cdGlnbm9yZT86IChFeHBvcnRUeXBlIHwgXCJnbG9iYWxcIilbXSB8IEV4cG9ydFR5cGUgfCBcImdsb2JhbFwiIHwgXCJhbGxcIjtcbn1cblxuLyoqXG4gKiBHZXQgY29kZSBibG9jayBhcmdzIGdpdmVuIHRoZSBmaXJzdCBsaW5lIG9mIHRoZSBjb2RlIGJsb2NrLlxuICpcbiAqIEBwYXJhbSBmaXJzdExpbmVPZkNvZGUgVGhlIGZpcnN0IGxpbmUgb2YgYSBjb2RlIGJsb2NrIHRoYXQgY29udGFpbnMgdGhlIGxhbmd1YWdlIG5hbWUuXG4gKiBAcmV0dXJucyBUaGUgYXJndW1lbnRzIGZyb20gdGhlIGZpcnN0IGxpbmUgb2YgdGhlIGNvZGUgYmxvY2suXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBcmdzKGZpcnN0TGluZU9mQ29kZTogc3RyaW5nKTogQ29kZUJsb2NrQXJncyB7XG5cdC8vIE5vIGFyZ3Mgc3BlY2lmaWVkXG5cdGlmICghZmlyc3RMaW5lT2ZDb2RlLmNvbnRhaW5zKFwie1wiKSAmJiAhZmlyc3RMaW5lT2ZDb2RlLmNvbnRhaW5zKFwifVwiKSlcblx0XHRyZXR1cm4ge307XG5cdHRyeSB7XG5cdFx0bGV0IGFyZ3MgPSBmaXJzdExpbmVPZkNvZGUuc3Vic3RyaW5nKGZpcnN0TGluZU9mQ29kZS5pbmRleE9mKFwie1wiKSArIDEpLnRyaW0oKTtcblx0XHQvLyBUcmFuc2Zvcm0gY3VzdG9tIHN5bnRheCB0byBKU09ONVxuXHRcdGFyZ3MgPSBhcmdzLnJlcGxhY2UoLz0vZywgXCI6XCIpO1xuXHRcdC8vIEhhbmRsZSB1bm5hbWVkIGV4cG9ydCBhcmcgLSBwcmUgLyBwb3N0IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGFyZ3Mgd2l0aG91dCBhbnkgYXJnIG5hbWVcblx0XHRjb25zdCBleHBvcnRzOiBFeHBvcnRUeXBlW10gPSBbXTtcblx0XHRjb25zdCBoYW5kbGVVbm5hbWVkRXhwb3J0ID0gKGV4cG9ydE5hbWU6IEV4cG9ydFR5cGUpID0+IHtcblx0XHRcdGxldCBpID0gYXJncy5pbmRleE9mKGV4cG9ydE5hbWUpO1xuXHRcdFx0d2hpbGUgKGkgIT09IC0xKSB7XG5cdFx0XHRcdGNvbnN0IG5leHRDaGFyID0gYXJnc1tpICsgZXhwb3J0TmFtZS5sZW5ndGhdO1xuXHRcdFx0XHRpZiAobmV4dENoYXIgIT09IFwiXFxcIlwiICYmIG5leHRDaGFyICE9PSBcIidcIikge1xuXHRcdFx0XHRcdC8vIFJlbW92ZSBmcm9tIGFyZ3Mgc3RyaW5nXG5cdFx0XHRcdFx0YXJncyA9IGFyZ3Muc3Vic3RyaW5nKDAsIGkpICsgYXJncy5zdWJzdHJpbmcoaSArIGV4cG9ydE5hbWUubGVuZ3RoICsgKG5leHRDaGFyID09PSBcIn1cIiA/IDAgOiAxKSk7XG5cdFx0XHRcdFx0ZXhwb3J0cy5wdXNoKGV4cG9ydE5hbWUpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGkgPSBhcmdzLmluZGV4T2YoZXhwb3J0TmFtZSwgaSArIDEpO1xuXHRcdFx0fVxuXHRcdH07XG5cdFx0aGFuZGxlVW5uYW1lZEV4cG9ydChcInByZVwiKTtcblx0XHRoYW5kbGVVbm5hbWVkRXhwb3J0KFwicG9zdFwiKTtcblx0XHRhcmdzID0gYHtleHBvcnQ6IFsnJHtleHBvcnRzLmpvaW4oXCInLCAnXCIpfSddLCAke2FyZ3N9YDtcblx0XHRyZXR1cm4gSlNPTjUucGFyc2UoYXJncyk7XG5cdH0gY2F0Y2ggKGVycikge1xuXHRcdG5ldyBOb3RpY2UoYEZhaWxlZCB0byBwYXJzZSBjb2RlIGJsb2NrIGFyZ3VtZW50cyBmcm9tIGxpbmU6XFxuJHtmaXJzdExpbmVPZkNvZGV9XFxuXFxuRmFpbGVkIHdpdGggZXJyb3I6XFxuJHtlcnJ9YCk7XG5cdFx0cmV0dXJuIHt9O1xuXHR9XG59XG4iLCAiaW1wb3J0IHsgTWFya2Rvd25Qb3N0UHJvY2Vzc29yQ29udGV4dCwgTWFya2Rvd25SZW5kZXJlciwgTWFya2Rvd25TZWN0aW9uSW5mb3JtYXRpb24sIFNlY3Rpb25DYWNoZSwgbm9ybWFsaXplUGF0aCwgcmVxdWVzdCB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IHsgUmVmZXJlbmNlLCBnZXRMaW5lTGltaXRzLCBwYXJzZUV4dGVybmFsUmVmZXJlbmNlLCBwYXJzZVJlZmVyZW5jZVBhcmFtZXRlcnMgfSBmcm9tIFwic3JjL1BhcnNpbmcvUmVmZXJlbmNlUGFyc2luZ1wiO1xuaW1wb3J0IHsgRVhURVJOQUxfUkVGRVJFTkNFX1BBVEgsIEVYVEVSTkFMX1JFRkVSRU5DRV9JTkZPX1NVRkZJWCwgTE9DQUxfUFJFRklYLCBSRUZFUkVOQ0VfQ09ERUJMT0NLLCBFWFRFUk5BTF9SRUZFUkVOQ0VfQ0FDSEUgfSBmcm9tIFwic3JjL1NldHRpbmdzXCI7XG5pbXBvcnQgQ29kZVN0eWxlclBsdWdpbiBmcm9tIFwic3JjL21haW5cIjtcbmltcG9ydCB7IHJlbmRlclNwZWNpZmljUmVhZGluZ1NlY3Rpb24gfSBmcm9tIFwiLi9SZWFkaW5nVmlld1wiO1xuaW1wb3J0IHsgZ2V0RmlsZUNvbnRlbnRMaW5lcyB9IGZyb20gXCIuL1BhcnNpbmcvQ29kZWJsb2NrUGFyc2luZ1wiO1xuXG50eXBlIENhY2hlID0gUmVjb3JkPHN0cmluZywgSWRDYWNoZT5cbmludGVyZmFjZSBJZENhY2hlIHtcblx0c291cmNlUGF0aHM6IEFycmF5PHN0cmluZz47XG5cdHJlZmVyZW5jZTogUmVmZXJlbmNlO1xufVxudHlwZSBSZWZlcmVuY2VCeUZpbGUgPSBSZWNvcmQ8c3RyaW5nLEFycmF5PHN0cmluZz4+XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWZlcmVuY2VDb2RlYmxvY2tQcm9jZXNzb3Ioc291cmNlOiBzdHJpbmcsIGNvZGVibG9ja0VsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb250ZXh0OiBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0LCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pIHtcblx0Y29uc3QgY29kZWJsb2NrU2VjdGlvbkluZm86IE1hcmtkb3duU2VjdGlvbkluZm9ybWF0aW9uIHwgbnVsbCA9IGNvbnRleHQuZ2V0U2VjdGlvbkluZm8oY29kZWJsb2NrRWxlbWVudCk7XG5cdGlmIChjb2RlYmxvY2tTZWN0aW9uSW5mbyA9PT0gbnVsbClcblx0XHR0aHJvdyBFcnJvcihcIkNvdWxkIG5vdCByZXRyaWV2ZSBjb2RlYmxvY2sgaW5mb3JtYXRpb25cIik7XG5cblx0Y29uc3QgY29kZWJsb2NrTGluZXMgPSBbY29kZWJsb2NrU2VjdGlvbkluZm8udGV4dC5zcGxpdChcIlxcblwiKVtjb2RlYmxvY2tTZWN0aW9uSW5mby5saW5lU3RhcnRdLCAuLi5zb3VyY2Uuc3BsaXQoXCJcXG5cIildO1xuXHRpZiAoY29kZWJsb2NrTGluZXNbY29kZWJsb2NrTGluZXMubGVuZ3RoIC0gMV0gIT09IFwiXCIpXG5cdFx0Y29kZWJsb2NrTGluZXMucHVzaChcIlwiKTtcblx0Y29uc3QgcmVmZXJlbmNlID0gYXdhaXQgZ2V0UmVmZXJlbmNlKGNvZGVibG9ja0xpbmVzLCBjb250ZXh0LnNvdXJjZVBhdGgsIHBsdWdpbik7XG5cdE1hcmtkb3duUmVuZGVyZXIucmVuZGVyKHBsdWdpbi5hcHAsIHJlZmVyZW5jZS5jb2RlLCBjb2RlYmxvY2tFbGVtZW50LCBjb250ZXh0LnNvdXJjZVBhdGgsIHBsdWdpbik7XG5cdHJlbmRlclNwZWNpZmljUmVhZGluZ1NlY3Rpb24oQXJyYXkuZnJvbShjb2RlYmxvY2tFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJwcmU6bm90KC5mcm9udG1hdHRlcilcIikpLCBjb250ZXh0LnNvdXJjZVBhdGgsIGNvZGVibG9ja1NlY3Rpb25JbmZvLCBwbHVnaW4pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UmVmZXJlbmNlKGNvZGVibG9ja0xpbmVzOiBBcnJheTxzdHJpbmc+LCBzb3VyY2VQYXRoOiBzdHJpbmcsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbik6IFByb21pc2U8UmVmZXJlbmNlPiB7XG5cdGNvbnN0IHJlZmVyZW5jZTogUmVmZXJlbmNlID0ge1xuXHRcdGNvZGU6IFwiXCIsXG5cdFx0bGFuZ3VhZ2U6IFwiXCIsXG5cdFx0c3RhcnRMaW5lOiAxLFxuXHRcdHBhdGg6IFwiXCIsXG5cdH07XG5cblx0dHJ5IHtcblx0XHRjb25zdCByZWZlcmVuY2VQYXJhbWV0ZXJzID0gcGFyc2VSZWZlcmVuY2VQYXJhbWV0ZXJzKGNvZGVibG9ja0xpbmVzLnNsaWNlKDEsIC0xKS5qb2luKFwiXFxuXCIpKTtcblx0XHRyZWZlcmVuY2UubGFuZ3VhZ2UgPSByZWZlcmVuY2VQYXJhbWV0ZXJzLmxhbmd1YWdlO1xuXHRcdHJlZmVyZW5jZS5wYXRoID0gcmVmZXJlbmNlUGFyYW1ldGVycy5maWxlUGF0aDtcblx0XHRpZiAoL15odHRwcz86XFwvXFwvLy50ZXN0KHJlZmVyZW5jZVBhcmFtZXRlcnMuZmlsZVBhdGgpKSB7XG5cdFx0XHRjb25zdCBleHRlcm5hbFJlZmVyZW5jZUlkID0gaWRFeHRlcm5hbFJlZmVyZW5jZShyZWZlcmVuY2UucGF0aCk7XG5cdFx0XHRyZWZlcmVuY2UuZXh0ZXJuYWwgPSB7XG5cdFx0XHRcdGlkOiBleHRlcm5hbFJlZmVyZW5jZUlkLmlkLFxuXHRcdFx0XHR3ZWJzaXRlOiBleHRlcm5hbFJlZmVyZW5jZUlkLndlYnNpdGUsXG5cdFx0XHRcdHN0b3JlUGF0aDogcGx1Z2luLmFwcC52YXVsdC5jb25maWdEaXIgKyBFWFRFUk5BTF9SRUZFUkVOQ0VfUEFUSCArIGV4dGVybmFsUmVmZXJlbmNlSWQuaWQsXG5cdFx0XHRcdGluZm86IHt0aXRsZTogXCJcIiwgdXJsOiByZWZlcmVuY2UucGF0aCwgc2l0ZTogZXh0ZXJuYWxSZWZlcmVuY2VJZC53ZWJzaXRlLCBkYXRldGltZTogXCJcIiwgcmF3VXJsOiByZWZlcmVuY2UucGF0aH0sXG5cdFx0XHR9O1xuXHRcdFx0cmVmZXJlbmNlUGFyYW1ldGVycy5maWxlUGF0aCA9IGF3YWl0IGFjY2Vzc0V4dGVybmFsUmVmZXJlbmNlKHJlZmVyZW5jZSwgZXh0ZXJuYWxSZWZlcmVuY2VJZC5pZCwgc291cmNlUGF0aCwgcGx1Z2luKTtcblx0XHRcdHJlZmVyZW5jZS5leHRlcm5hbC5pbmZvID0gey4uLnJlZmVyZW5jZS5leHRlcm5hbC5pbmZvLCAuLi5KU09OLnBhcnNlKGF3YWl0IHBsdWdpbi5hcHAudmF1bHQuYWRhcHRlci5yZWFkKHJlZmVyZW5jZS5leHRlcm5hbC5zdG9yZVBhdGggKyBFWFRFUk5BTF9SRUZFUkVOQ0VfSU5GT19TVUZGSVgpKX07XG5cdFx0fVxuXHRcdGNvbnN0IHZhdWx0UGF0aCA9IGdldFBhdGgocmVmZXJlbmNlUGFyYW1ldGVycy5maWxlUGF0aCwgXCJcIiwgcGx1Z2luKTtcblx0XHRpZiAocmVmZXJlbmNlUGFyYW1ldGVycy5maWxlUGF0aC5zdGFydHNXaXRoKFwiW1tcIikgJiYgcmVmZXJlbmNlUGFyYW1ldGVycy5maWxlUGF0aC5lbmRzV2l0aChcIl1dXCIpKVxuXHRcdFx0cmVmZXJlbmNlLnBhdGggPSB2YXVsdFBhdGg7XG5cdFx0aWYgKCEoYXdhaXQgcGx1Z2luLmFwcC52YXVsdC5hZGFwdGVyLmV4aXN0cyh2YXVsdFBhdGgpKSlcblx0XHRcdHRocm93IEVycm9yKGBMb2NhbCBGaWxlIGRvZXMgbm90IGV4aXN0IGF0ICR7dmF1bHRQYXRofWApO1xuXHRcdGNvbnN0IGNvZGVDb250ZW50ID0gKGF3YWl0IHBsdWdpbi5hcHAudmF1bHQuYWRhcHRlci5yZWFkKHZhdWx0UGF0aCkpLnRyaW0oKTtcblx0XHRjb25zdCBjb2RlU2VjdGlvbkluZm8gPSBnZXRMaW5lTGltaXRzKGNvZGVDb250ZW50LCByZWZlcmVuY2VQYXJhbWV0ZXJzKTtcblx0XHRyZWZlcmVuY2Uuc3RhcnRMaW5lID0gY29kZVNlY3Rpb25JbmZvLnN0YXJ0TGluZTtcblx0XHRyZWZlcmVuY2UuY29kZSA9IFtcImBgYFwiLCByZWZlcmVuY2VQYXJhbWV0ZXJzLmxhbmd1YWdlLFwiIFwiLGNvZGVibG9ja0xpbmVzWzBdLnN1YnN0cmluZyhSRUZFUkVOQ0VfQ09ERUJMT0NLLmxlbmd0aCkudHJpbSgpLCBcIlxcblwiLCBjb2RlU2VjdGlvbkluZm8uY29kZVNlY3Rpb24sIFwiXFxuXCIsIFwiYGBgXCJdLmpvaW4oXCJcIik7XG5cdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0cmVmZXJlbmNlLmNvZGUgPSBgPiBbIWVycm9yXSAkeygoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKSkucmVwbGFjZSgvXFxuL2csXCJcXG4+XCIpfWA7XG5cdH1cblx0cmV0dXJuIHJlZmVyZW5jZTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZUV4dGVybmFsUmVmZXJlbmNlZEZpbGVzKHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbiwgc291cmNlUGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkKTogUHJvbWlzZTx2b2lkPiB7XG5cdGF3YWl0IGNsZWFuRXh0ZXJuYWxSZWZlcmVuY2VkRmlsZXMocGx1Z2luKTtcblx0Y29uc3QgY2FjaGUgPSBhd2FpdCByZWFkQ2FjaGUocGx1Z2luKTtcblx0Y29uc3QgcmVmZXJlbmNlcyA9ICh0eXBlb2Ygc291cmNlUGF0aCAhPT0gXCJ1bmRlZmluZWRcIikgPyBhd2FpdCBnZXRGaWxlUmVmZXJlbmNlcyhzb3VyY2VQYXRoLCBwbHVnaW4pIDogT2JqZWN0LnZhbHVlcyhjYWNoZSkubWFwKChpZENhY2hlOiBJZENhY2hlKSA9PiBpZENhY2hlLnJlZmVyZW5jZSk7XG5cdGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcblx0XHRhd2FpdCB1cGRhdGVFeHRlcm5hbFJlZmVyZW5jZShyZWZlcmVuY2UsIHBsdWdpbik7XG5cdFx0Y2FjaGVbcmVmZXJlbmNlPy5leHRlcm5hbD8uaWQgYXMgc3RyaW5nXS5yZWZlcmVuY2UgPSByZWZlcmVuY2U7XG5cdH1cblx0YXdhaXQgdXBkYXRlQ2FjaGUoY2FjaGUsIHBsdWdpbik7XG5cdHBsdWdpbi5yZW5kZXJSZWFkaW5nVmlldygpO1xufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNsZWFuRXh0ZXJuYWxSZWZlcmVuY2VkRmlsZXMocGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogUHJvbWlzZTx2b2lkPiB7XG5cdGNvbnN0IGNhY2hlID0gYXdhaXQgcmVhZENhY2hlKHBsdWdpbik7XG5cdGNvbnN0IHJlZmVyZW5jZXNCeUZpbGUgPSBjYWNoZVRvUmVmZXJlbmNlc0J5RmlsZShjYWNoZSk7XG5cdGZvciAoY29uc3Qgc291cmNlUGF0aCBvZiBPYmplY3Qua2V5cyhyZWZlcmVuY2VzQnlGaWxlKSkge1xuXHRcdGNvbnN0IGZpbGVSZWZlcmVuY2VJZHMgPSAoYXdhaXQgZ2V0RmlsZVJlZmVyZW5jZXMoc291cmNlUGF0aCwgcGx1Z2luKSkubWFwKChyZWZlcmVuY2U6IFJlZmVyZW5jZSkgPT4gcmVmZXJlbmNlPy5leHRlcm5hbD8uaWQgYXMgc3RyaW5nKTtcblx0XHRyZWZlcmVuY2VzQnlGaWxlW3NvdXJjZVBhdGhdID0gcmVmZXJlbmNlc0J5RmlsZVtzb3VyY2VQYXRoXS5maWx0ZXIoKGlkOiBzdHJpbmcpID0+IGZpbGVSZWZlcmVuY2VJZHMuaW5jbHVkZXMoaWQpKTtcblx0fVxuXHRjb25zdCBuZXdfY2FjaGUgPSByZWZlcmVuY2VzQnlGaWxlVG9DYWNoZShyZWZlcmVuY2VzQnlGaWxlLCBjYWNoZSk7XG5cdGZvciAoY29uc3QgaWQgb2YgT2JqZWN0LmtleXMoY2FjaGUpKSB7XG5cdFx0aWYgKCFPYmplY3Qua2V5cyhuZXdfY2FjaGUpLmluY2x1ZGVzKGlkKSkge1xuXHRcdFx0YXdhaXQgcGx1Z2luLmFwcC52YXVsdC5hZGFwdGVyLnJlbW92ZShwbHVnaW4uYXBwLnZhdWx0LmNvbmZpZ0RpciArIEVYVEVSTkFMX1JFRkVSRU5DRV9QQVRIICsgaWQpO1xuXHRcdFx0YXdhaXQgcGx1Z2luLmFwcC52YXVsdC5hZGFwdGVyLnJlbW92ZShwbHVnaW4uYXBwLnZhdWx0LmNvbmZpZ0RpciArIEVYVEVSTkFMX1JFRkVSRU5DRV9QQVRIICsgaWQgKyBFWFRFUk5BTF9SRUZFUkVOQ0VfSU5GT19TVUZGSVgpO1xuXHRcdH1cblx0fVxuXHRhd2FpdCB1cGRhdGVDYWNoZShuZXdfY2FjaGUscGx1Z2luKTtcbn1cblxuZnVuY3Rpb24gY2FjaGVUb1JlZmVyZW5jZXNCeUZpbGUoY2FjaGU6IENhY2hlKTogUmVmZXJlbmNlQnlGaWxlIHtcblx0cmV0dXJuIE9iamVjdC5rZXlzKGNhY2hlKS5yZWR1Y2UoKHJlc3VsdDogUmVmZXJlbmNlQnlGaWxlLCBpZDogc3RyaW5nKSA9PiB7XG5cdFx0Y2FjaGVbaWRdLnNvdXJjZVBhdGhzLmZvckVhY2goKHNvdXJjZVBhdGg6IHN0cmluZykgPT4ge1xuXHRcdFx0aWYgKCFyZXN1bHRbc291cmNlUGF0aF0pXG5cdFx0XHRcdHJlc3VsdFtzb3VyY2VQYXRoXSA9IFtpZF07XG5cdFx0XHRlbHNlXG5cdFx0XHRcdHJlc3VsdFtzb3VyY2VQYXRoXS5wdXNoKGlkKTtcblx0XHR9KTtcblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9LCB7fSk7XG59XG5mdW5jdGlvbiByZWZlcmVuY2VzQnlGaWxlVG9DYWNoZShyZWZlcmVuY2VzQnlGaWxlOiBSZWZlcmVuY2VCeUZpbGUsIGNhY2hlOiBDYWNoZSk6IENhY2hlIHtcblx0cmV0dXJuIE9iamVjdC5rZXlzKHJlZmVyZW5jZXNCeUZpbGUpLnJlZHVjZSgobmV3X2NhY2hlOiBDYWNoZSwgc291cmNlUGF0aDogc3RyaW5nKSA9PiB7XG5cdFx0cmVmZXJlbmNlc0J5RmlsZVtzb3VyY2VQYXRoXS5mb3JFYWNoKChpZDogc3RyaW5nKSA9PiB7XG5cdFx0XHRpZiAodHlwZW9mIG5ld19jYWNoZT8uW2lkXSA9PT0gXCJ1bmRlZmluZWRcIilcblx0XHRcdFx0bmV3X2NhY2hlW2lkXSA9IHtzb3VyY2VQYXRoczogW3NvdXJjZVBhdGhdLCByZWZlcmVuY2U6IGNhY2hlW2lkXS5yZWZlcmVuY2V9O1xuXHRcdFx0ZWxzZSBpZiAoIW5ld19jYWNoZVtpZF0uc291cmNlUGF0aHMuaW5jbHVkZXMoc291cmNlUGF0aCkpXG5cdFx0XHRcdG5ld19jYWNoZVtpZF0uc291cmNlUGF0aHMucHVzaChzb3VyY2VQYXRoKTtcblx0XHR9KTtcblx0XHRyZXR1cm4gbmV3X2NhY2hlO1xuXHR9LCB7fSk7XG59XG5hc3luYyBmdW5jdGlvbiBnZXRGaWxlUmVmZXJlbmNlcyhzb3VyY2VQYXRoOiBzdHJpbmcsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbik6IFByb21pc2U8QXJyYXk8UmVmZXJlbmNlPj4ge1xuXHRjb25zdCBmaWxlQ29udGVudExpbmVzID0gYXdhaXQgZ2V0RmlsZUNvbnRlbnRMaW5lcyhzb3VyY2VQYXRoLCBwbHVnaW4pO1xuXHRpZiAoIWZpbGVDb250ZW50TGluZXMpXG5cdFx0dGhyb3cgRXJyb3IoYEZpbGUgY291bGQgbm90IGJlIHJlYWQ6ICR7c291cmNlUGF0aH1gKTtcblx0Y29uc3QgZmlsZVJlZmVyZW5jZSA9IFtdO1xuXHRjb25zdCBzZWN0aW9uczogQXJyYXk8U2VjdGlvbkNhY2hlPiA9IHBsdWdpbi5hcHAubWV0YWRhdGFDYWNoZS5nZXRDYWNoZShzb3VyY2VQYXRoKT8uc2VjdGlvbnMgPz8gW107XG5cdGZvciAoY29uc3Qgc2VjdGlvbiBvZiBzZWN0aW9ucykge1xuXHRcdGlmIChzZWN0aW9uLnR5cGUgIT09IFwiY29kZVwiKVxuXHRcdFx0Y29udGludWU7XG5cdFx0Y29uc3QgY29kZWJsb2NrTGluZXMgPSBbLi4uZmlsZUNvbnRlbnRMaW5lcy5zbGljZShzZWN0aW9uLnBvc2l0aW9uLnN0YXJ0LmxpbmUsIHNlY3Rpb24ucG9zaXRpb24uZW5kLmxpbmUpLCBcIlwiXTtcblx0XHRpZiAoIWNvZGVibG9ja0xpbmVzWzBdLmluY2x1ZGVzKFwiYGBgcmVmZXJlbmNlXCIpICYmICFjb2RlYmxvY2tMaW5lc1swXS5pbmNsdWRlcyhcIn5+fnJlZmVyZW5jZVwiKSlcblx0XHRcdGNvbnRpbnVlO1xuXHRcdGNvbnN0IHJlZmVyZW5jZSA9IGF3YWl0IGdldFJlZmVyZW5jZShjb2RlYmxvY2tMaW5lcywgc291cmNlUGF0aCwgcGx1Z2luKTtcblx0XHRpZiAocmVmZXJlbmNlPy5leHRlcm5hbD8uaWQpXG5cdFx0XHRmaWxlUmVmZXJlbmNlLnB1c2gocmVmZXJlbmNlKTtcblx0fVxuXHRyZXR1cm4gZmlsZVJlZmVyZW5jZTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZUV4dGVybmFsUmVmZXJlbmNlKHJlZmVyZW5jZTogUmVmZXJlbmNlLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pIHtcblx0dHJ5IHtcblx0XHRjb25zdCBzb3VyY2VJbmZvID0gYXdhaXQgcGFyc2VFeHRlcm5hbFJlZmVyZW5jZShyZWZlcmVuY2UpO1xuXHRcdGNvbnN0IGNvbnRlbnQgPSBhd2FpdCByZXF1ZXN0KHNvdXJjZUluZm8ucmF3VXJsID8/IHJlZmVyZW5jZS5wYXRoKTtcblx0XHRhd2FpdCBwbHVnaW4uYXBwLnZhdWx0LmFkYXB0ZXIud3JpdGUocmVmZXJlbmNlPy5leHRlcm5hbD8uc3RvcmVQYXRoIGFzIHN0cmluZywgY29udGVudCk7XG5cdFx0YXdhaXQgcGx1Z2luLmFwcC52YXVsdC5hZGFwdGVyLndyaXRlKHJlZmVyZW5jZT8uZXh0ZXJuYWw/LnN0b3JlUGF0aCBhcyBzdHJpbmcgKyBFWFRFUk5BTF9SRUZFUkVOQ0VfSU5GT19TVUZGSVgsIEpTT04uc3RyaW5naWZ5KHNvdXJjZUluZm8pKTtcblx0fSBjYXRjaChlcnJvcikge1xuXHRcdHRocm93IEVycm9yKGBDb3VsZCBub3QgZG93bmxvYWQgZmlsZTogJHtlcnJvcn1gKTtcblx0fVxufVxuYXN5bmMgZnVuY3Rpb24gYWNjZXNzRXh0ZXJuYWxSZWZlcmVuY2UocmVmZXJlbmNlOiBSZWZlcmVuY2UsIGlkOiBzdHJpbmcsIHNvdXJjZVBhdGg6IHN0cmluZywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogUHJvbWlzZTxzdHJpbmc+IHtcblx0dHJ5IHtcblx0XHRpZiAoIShhd2FpdCBwbHVnaW4uYXBwLnZhdWx0LmFkYXB0ZXIuZXhpc3RzKHJlZmVyZW5jZT8uZXh0ZXJuYWw/LnN0b3JlUGF0aCBhcyBzdHJpbmcpKSlcblx0XHRcdGF3YWl0IHVwZGF0ZUV4dGVybmFsUmVmZXJlbmNlKHJlZmVyZW5jZSwgcGx1Z2luKTtcblx0XHRjb25zdCBjYWNoZSA9IGF3YWl0IHJlYWRDYWNoZShwbHVnaW4pO1xuXHRcdGlmICghY2FjaGVbaWRdPy5zb3VyY2VQYXRocz8uaW5jbHVkZXMoc291cmNlUGF0aCkpIHtcblx0XHRcdGlmICghY2FjaGU/LltpZF0pXG5cdFx0XHRcdGNhY2hlW2lkXSA9IHtzb3VyY2VQYXRoczogW3NvdXJjZVBhdGhdLCByZWZlcmVuY2U6IHJlZmVyZW5jZX07XG5cdFx0XHRlbHNlXG5cdFx0XHRcdGNhY2hlW2lkXS5zb3VyY2VQYXRocy5wdXNoKHNvdXJjZVBhdGgpO1xuXHRcdFx0YXdhaXQgdXBkYXRlQ2FjaGUoY2FjaGUscGx1Z2luKTtcblx0XHR9XG5cdFx0cmV0dXJuIHJlZmVyZW5jZT8uZXh0ZXJuYWw/LnN0b3JlUGF0aCBhcyBzdHJpbmc7XG5cdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0dGhyb3cgRXJyb3IoZXJyb3IpO1xuXHR9XG59XG5hc3luYyBmdW5jdGlvbiByZWFkQ2FjaGUocGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogUHJvbWlzZTxDYWNoZT4ge1xuXHRyZXR1cm4gSlNPTi5wYXJzZShhd2FpdCBwbHVnaW4uYXBwLnZhdWx0LmFkYXB0ZXIucmVhZChwbHVnaW4uYXBwLnZhdWx0LmNvbmZpZ0RpciArIEVYVEVSTkFMX1JFRkVSRU5DRV9DQUNIRSkpO1xufVxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlQ2FjaGUoY2FjaGU6IENhY2hlLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pOiBQcm9taXNlPHZvaWQ+IHtcblx0YXdhaXQgcGx1Z2luLmFwcC52YXVsdC5hZGFwdGVyLndyaXRlKHBsdWdpbi5hcHAudmF1bHQuY29uZmlnRGlyICsgRVhURVJOQUxfUkVGRVJFTkNFX0NBQ0hFLCBKU09OLnN0cmluZ2lmeShjYWNoZSkpO1xufVxuZnVuY3Rpb24gaWRFeHRlcm5hbFJlZmVyZW5jZShmaWxlTGluazogc3RyaW5nKToge2lkOiBzdHJpbmcsIHdlYnNpdGU6IHN0cmluZ30ge1xuXHRjb25zdCBsaW5rSW5mbyA9IC9eaHR0cHM/OlxcL1xcLyguKylcXC5jb21cXC8oLispJC8uZXhlYyhmaWxlTGluayk7XG5cdGlmICghbGlua0luZm8/LlsxXSB8fCAhbGlua0luZm8/LlsyXSlcblx0XHR0aHJvdyBFcnJvcihcIk5vIHN1Y2ggcmVwb3NpdG9yeSBjb3VsZCBiZSBmb3VuZFwiKTtcblx0cmV0dXJuIHtpZDogW2xpbmtJbmZvWzFdLCAuLi5saW5rSW5mb1syXS5zcGxpdChcIi9cIildLmpvaW4oXCItXCIpLCB3ZWJzaXRlOiBsaW5rSW5mb1sxXX07XG59XG5cbmZ1bmN0aW9uIGdldFBhdGgoZmlsZVBhdGg6IHN0cmluZywgc291cmNlUGF0aDogc3RyaW5nLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pOiBzdHJpbmcge1xuXHRmaWxlUGF0aCA9IGZpbGVQYXRoLnRyaW0oKTtcblx0aWYgKGZpbGVQYXRoLnN0YXJ0c1dpdGgoXCJbW1wiKSAmJiBmaWxlUGF0aC5lbmRzV2l0aChcIl1dXCIpKVxuXHRcdHJldHVybiBwbHVnaW4uYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3QoZmlsZVBhdGguc2xpY2UoMiwtMiksIHNvdXJjZVBhdGgpPy5wYXRoID8/IGZpbGVQYXRoO1xuXHRmaWxlUGF0aCA9IGZpbGVQYXRoLnJlcGxhY2UoXCJcXFxcXCIsIFwiL1wiKTtcblx0aWYgKGZpbGVQYXRoLnN0YXJ0c1dpdGgoTE9DQUxfUFJFRklYKSlcblx0XHRyZXR1cm4gZmlsZVBhdGguc3Vic3RyaW5nKDIpO1xuXHRlbHNlIGlmIChmaWxlUGF0aC5zdGFydHNXaXRoKFwiLi9cIikgfHwgL15bXjw6XCIvXFxcXD4/fCpdLy50ZXN0KGZpbGVQYXRoKSkge1xuXHRcdGlmICghc291cmNlUGF0aCAmJiBzb3VyY2VQYXRoICE9IFwiXCIpXG5cdFx0XHR0aHJvdyBFcnJvcihcIkNhbm5vdCByZXNvbHZlIHJlbGF0aXZlIHBhdGggYmVjYXVzZSB0aGUgc291cmNlIHBhdGggaXMgbWlzc2luZ1wiKTtcblx0XHRyZXR1cm4gZ2V0UmVsYXRpdmVQYXRoKGZpbGVQYXRoLCBzb3VyY2VQYXRoLnRyaW0oKSk7XG5cdH0gIGVsc2UgaWYgKGZpbGVQYXRoLnN0YXJ0c1dpdGgoXCIvXCIpKVxuXHRcdHRocm93IEVycm9yKGBQYXRoIHNob3VsZCBub3Qgc3RhcnQgd2l0aCBcIi9cIiwgdXNlIFwiJHtMT0NBTF9QUkVGSVh9XCIgdG8gcmVmZXJlbmNlIGEgcGF0aCByZWxhdGl2ZSB0byB0aGUgdmF1bHQgcm9vdCBmb2xkZXJgKTtcblx0ZWxzZVxuXHRcdHRocm93IEVycm9yKFwiQ2Fubm90IHJlc29sdmUgcGF0aFwiKTtcbn1cbmZ1bmN0aW9uIGdldFJlbGF0aXZlUGF0aChmaWxlUGF0aDogc3RyaW5nLCBzb3VyY2VQYXRoOiBzdHJpbmcpIHtcblx0aWYgKGZpbGVQYXRoLnN0YXJ0c1dpdGgoXCIuL1wiKSlcblx0XHRmaWxlUGF0aCA9IGZpbGVQYXRoLnN1YnN0cmluZygyKTtcblx0Y29uc3QgdmF1bHREaXJzID0gc291cmNlUGF0aC5zcGxpdChcIi9cIik7XG5cdHZhdWx0RGlycy5wb3AoKTtcblx0d2hpbGUgKGZpbGVQYXRoLnN0YXJ0c1dpdGgoXCIuLi9cIikpXG5cdFx0aWYgKHZhdWx0RGlycy5wb3AoKSAhPT0gdW5kZWZpbmVkKVxuXHRcdFx0ZmlsZVBhdGggPSBmaWxlUGF0aC5zdWJzdHJpbmcoMyk7XG5cdFx0ZWxzZVxuXHRcdFx0dGhyb3cgRXJyb3IoXCJQYXRoIHJlZmVyZW5jZXMgb3V0c2lkZSB2YXVsdCwgdG9vIG1hbnkgXFxcIi4uL1xcXCJzIHVzZWRcIik7XG5cdHJldHVybiBub3JtYWxpemVQYXRoKFsuLi52YXVsdERpcnMsIGZpbGVQYXRoXS5qb2luKFwiL1wiKSk7XG59XG4iLCAiaW1wb3J0IHsgcGFyc2VZYW1sLCByZXF1ZXN0VXJsIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVmZXJlbmNlIHtcblx0c3RhcnRMaW5lOiBudW1iZXI7XG5cdGNvZGU6IHN0cmluZztcblx0bGFuZ3VhZ2U6IHN0cmluZztcblx0cGF0aDogc3RyaW5nO1xuXHRleHRlcm5hbD86IHtcblx0XHRpZDogc3RyaW5nLFxuXHRcdHN0b3JlUGF0aDogc3RyaW5nLFxuXHRcdHdlYnNpdGU6IHN0cmluZyxcblx0XHRpbmZvOiBFeHRlcm5hbFJlZmVyZW5jZUluZm87XG5cdH1cbn1cblxudHlwZSBMaW5lSWRlbnRpZmllciA9IG51bGwgfCBzdHJpbmcgfCBudW1iZXIgfCBSZWdFeHA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVmZXJlbmNlUGFyYW1ldGVycyB7XG5cdGZpbGVQYXRoOiBzdHJpbmc7XG5cdGxhbmd1YWdlOiBzdHJpbmc7XG5cdHN0YXJ0OiBMaW5lSWRlbnRpZmllcjtcblx0ZW5kOiBMaW5lSWRlbnRpZmllcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHRlcm5hbFJlZmVyZW5jZUluZm8ge1xuXHR0aXRsZTogc3RyaW5nO1xuXHR1cmw6IHN0cmluZztcblx0c2l0ZTogc3RyaW5nO1xuXHRkYXRldGltZTogc3RyaW5nO1xuXHRyYXdVcmw6IHN0cmluZztcblx0ZGlzcGxheVVybD86IHN0cmluZztcblx0YXV0aG9yPzogc3RyaW5nO1xuXHRyZXBvc2l0b3J5Pzogc3RyaW5nO1xuXHRwYXRoPzogc3RyaW5nO1xuXHRmaWxlTmFtZT86IHN0cmluZztcblx0cmVmSW5mbz86IHtcblx0XHRyZWY6IHN0cmluZztcblx0XHR0eXBlOiBzdHJpbmc7XG5cdFx0aGFzaDogc3RyaW5nO1xuXHR9O1xufVxuXG5pbnRlcmZhY2UgUGFzc2VkUGFyYW1ldGVycyB7XG5cdGZpbGVQYXRoPzogc3RyaW5nO1xuXHRmaWxlPzogc3RyaW5nO1xuXHRwYXRoPzogc3RyaW5nO1xuXHRsaW5rPzogc3RyaW5nO1xuXHRsYW5ndWFnZT86IHN0cmluZztcblx0bGFuZz86IHN0cmluZztcblx0c3RhcnQ/OiBzdHJpbmcgfCBudW1iZXI7XG5cdGVuZD86IHN0cmluZyB8IG51bWJlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUmVmZXJlbmNlUGFyYW1ldGVycyhzb3VyY2U6IHN0cmluZyk6IFJlZmVyZW5jZVBhcmFtZXRlcnMge1xuXHRzb3VyY2UgPSBzb3VyY2UucmVwbGFjZSgvXihbXjpdKyk6KC4rKVxcbi8sIFwiJDE6ICQyXFxuXCIpLnJlcGxhY2UoLyg/PCFcIilcXFtcXFsoLio/KVxcXVxcXSg/IVwiKS8sIFwiXFxcIltbJDFdXVxcXCJcIik7XG5cdGxldCBwYXNzZWRQYXJhbWV0ZXJzOiBQYXNzZWRQYXJhbWV0ZXJzIHwgc3RyaW5nIHwgbnVsbCA9IHBhcnNlWWFtbChzb3VyY2UpO1xuXHRpZiAocGFzc2VkUGFyYW1ldGVycyBhcyBzdHJpbmcgPT09IHNvdXJjZSB8fCBwYXNzZWRQYXJhbWV0ZXJzID09PSBudWxsKVxuXHRcdHRocm93IEVycm9yKFwiWUFNTCBQYXJzZSBFcnJvclwiKTtcblx0cGFzc2VkUGFyYW1ldGVycyA9IHBhc3NlZFBhcmFtZXRlcnMgYXMgUGFzc2VkUGFyYW1ldGVycztcblx0Y29uc3QgZmlsZVBhdGggPSBwYXNzZWRQYXJhbWV0ZXJzPy5maWxlUGF0aCA/PyBwYXNzZWRQYXJhbWV0ZXJzPy5maWxlID8/IHBhc3NlZFBhcmFtZXRlcnM/LnBhdGggPz8gcGFzc2VkUGFyYW1ldGVycz8ubGluaztcblx0aWYgKHR5cGVvZiBmaWxlUGF0aCA9PT0gXCJ1bmRlZmluZWRcIilcblx0XHR0aHJvdyBFcnJvcihcIk5vIGZpbGUgc3BlY2lmaWVkXCIpO1xuXHRjb25zdCByZWZlcmVuY2VQYXJhbWV0ZXJzOiBSZWZlcmVuY2VQYXJhbWV0ZXJzID0ge2ZpbGVQYXRoOiBmaWxlUGF0aCwgbGFuZ3VhZ2U6IHBhc3NlZFBhcmFtZXRlcnM/Lmxhbmd1YWdlID8/IHBhc3NlZFBhcmFtZXRlcnM/LmxhbmcgPz8gZ2V0TGFuZ3VhZ2UoZmlsZVBhdGgpLCBzdGFydDogbnVsbCwgZW5kOiBudWxsfTtcblx0cmVmZXJlbmNlUGFyYW1ldGVycy5zdGFydCA9IGdldExpbmVJZGVudGlmaWVyKHBhc3NlZFBhcmFtZXRlcnMuc3RhcnQpO1xuXHRyZWZlcmVuY2VQYXJhbWV0ZXJzLmVuZCA9IGdldExpbmVJZGVudGlmaWVyKHBhc3NlZFBhcmFtZXRlcnMuZW5kKTtcblx0cmV0dXJuIHJlZmVyZW5jZVBhcmFtZXRlcnM7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwYXJzZUV4dGVybmFsUmVmZXJlbmNlKHJlZmVyZW5jZTogUmVmZXJlbmNlKTogUHJvbWlzZTxQYXJ0aWFsPEV4dGVybmFsUmVmZXJlbmNlSW5mbz4+IHtcblx0Y29uc3QgSEVBREVSUyA9IHsgXCJBY2NlcHRcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH07XG5cdHRyeSB7XG5cdFx0aWYgKHJlZmVyZW5jZS5leHRlcm5hbD8ud2Vic2l0ZSA9PT0gXCJnaXRodWJcIikge1xuXHRcdFx0cmVmZXJlbmNlLnBhdGggPSAocmVmZXJlbmNlLnBhdGguc3BsaXQoXCI/XCIpWzBdKS5yZXBsYWNlKC8oPzw9Z2l0aHViLmNvbVxcLy4qXFwvLipcXC8pcmF3KD89XFwvKS8sXCJibG9iXCIpO1xuXHRcdFx0Y29uc3QgaW5mbyA9IChhd2FpdCByZXF1ZXN0VXJsKHt1cmw6IHJlZmVyZW5jZS5wYXRoLCBtZXRob2Q6IFwiR0VUXCIsIGhlYWRlcnM6IEhFQURFUlN9KSkuanNvbjtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdHRpdGxlOiBpbmZvLnBheWxvYWQuYmxvYi5kaXNwbGF5TmFtZSwgLy8gdGl0bGU6IGluZm8udGl0bGUsXG5cdFx0XHRcdHJhd1VybDogaW5mby5wYXlsb2FkLmJsb2IucmF3QmxvYlVybCxcblx0XHRcdFx0ZGF0ZXRpbWU6IHRpbWVTdGFtcCgpLFxuXHRcdFx0XHRkaXNwbGF5VXJsOiByZWZlcmVuY2UucGF0aCxcblx0XHRcdFx0YXV0aG9yOiBpbmZvLnBheWxvYWQucmVwby5vd25lckxvZ2luLFxuXHRcdFx0XHRyZXBvc2l0b3J5OiBpbmZvLnBheWxvYWQucmVwby5uYW1lLFxuXHRcdFx0XHRwYXRoOiBpbmZvLnBheWxvYWQucGF0aCxcblx0XHRcdFx0ZmlsZU5hbWU6IGluZm8ucGF5bG9hZC5ibG9iLmRpc3BsYXlOYW1lLFxuXHRcdFx0XHRyZWZJbmZvOiB7XG5cdFx0XHRcdFx0cmVmOiBpbmZvLnBheWxvYWQucmVmSW5mby5uYW1lLFxuXHRcdFx0XHRcdHR5cGU6IGluZm8ucGF5bG9hZC5yZWZJbmZvLnJlZlR5cGUsXG5cdFx0XHRcdFx0aGFzaDogaW5mby5wYXlsb2FkLnJlZkluZm8uY3VycmVudE9pZFxuXHRcdFx0XHR9LFxuXHRcdFx0fTtcblx0XHR9IGVsc2UgaWYgKHJlZmVyZW5jZS5leHRlcm5hbD8ud2Vic2l0ZSA9PT0gXCJnaXRsYWJcIikge1xuXHRcdFx0cmVmZXJlbmNlLnBhdGggPSAocmVmZXJlbmNlLnBhdGguc3BsaXQoXCI/XCIpWzBdKS5yZXBsYWNlKC8oPzw9Z2l0bGFiLmNvbVxcLy4qXFwvLipcXC8pcmF3KD89XFwvKS8sIFwiYmxvYlwiKTtcblx0XHRcdGNvbnN0IGluZm8gPSAoYXdhaXQgcmVxdWVzdFVybCh7IHVybDogcmVmZXJlbmNlLnBhdGgsIG1ldGhvZDogXCJHRVRcIiwgaGVhZGVyczogSEVBREVSUyB9KSkuanNvbjtcblx0XHRcdC8vVE9ETyAoQG1heXVyYW5rdikgVXBkYXRlXG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHR0aXRsZTogaW5mby5uYW1lLFxuXHRcdFx0XHRyYXdVcmw6IFwiaHR0cHM6Ly9naXRsYWIuY29tXCIgKyBpbmZvLnJhd19wYXRoLFxuXHRcdFx0XHRkYXRldGltZTogdGltZVN0YW1wKCksXG5cdFx0XHRcdGRpc3BsYXlVcmw6IHJlZmVyZW5jZS5wYXRoLFxuXHRcdFx0XHRhdXRob3I6IHJlZmVyZW5jZS5wYXRoLm1hdGNoKC8oPzw9Xmh0dHBzPzpcXC9cXC9naXRsYWIuY29tXFwvKS4qPyg/PVxcLykvKT8uWzBdID8/IFwiXCIsXG5cdFx0XHRcdHJlcG9zaXRvcnk6IHJlZmVyZW5jZS5wYXRoLm1hdGNoKC8oPzw9Xmh0dHBzPzpcXC9cXC9naXRsYWIuY29tXFwvLio/XFwvKS4qPyg/PVxcLykvKT8uWzBdID8/IFwiXCIsXG5cdFx0XHRcdHBhdGg6IGluZm8ucGF0aCxcblx0XHRcdFx0ZmlsZU5hbWU6IGluZm8ubmFtZSxcblx0XHRcdFx0cmVmSW5mbzoge1xuXHRcdFx0XHRcdHJlZjogXCJcIiwgLy9UT0RPIChAbWF5dXJhbmt2KSBQYXJzZSBmcm9tIHVybFxuXHRcdFx0XHRcdHR5cGU6IFwiXCIsICAvL1RPRE8gKEBtYXl1cmFua3YpIFBhcnNlIGZyb20gdXJsXG5cdFx0XHRcdFx0aGFzaDogaW5mby5sYXN0X2NvbW1pdF9zaGFcblx0XHRcdFx0fSxcblx0XHRcdH07XG5cdFx0fSAgZWxzZSBpZiAocmVmZXJlbmNlLmV4dGVybmFsPy53ZWJzaXRlID09PSBcImJpdGJ1Y2tldFwiKSB7XG5cdFx0XHQvL1RPRE8gKEBtYXl1cmFua3YpIFVwZGF0ZVxuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0dGl0bGU6IFwiXCIsXG5cdFx0XHRcdHJhd1VybDogXCJcIixcblx0XHRcdFx0ZGF0ZXRpbWU6IHRpbWVTdGFtcCgpLFxuXHRcdFx0fTtcblx0XHR9IGVsc2UgaWYgKHJlZmVyZW5jZS5leHRlcm5hbD8ud2Vic2l0ZSA9PT0gXCJzb3VyY2Vmb3JnZVwiKSB7XG5cdFx0XHQvL1RPRE8gKEBtYXl1cmFua3YpIFVwZGF0ZVxuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0dGl0bGU6IFwiXCIsXG5cdFx0XHRcdHJhd1VybDogXCJcIixcblx0XHRcdFx0ZGF0ZXRpbWU6IHRpbWVTdGFtcCgpLFxuXHRcdFx0fTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly9UT0RPIChAbWF5dXJhbmt2KSBVcGRhdGVcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdHRpdGxlOiBcIlwiLFxuXHRcdFx0XHRyYXdVcmw6IHJlZmVyZW5jZS5wYXRoLFxuXHRcdFx0XHRkYXRldGltZTogdGltZVN0YW1wKCksXG5cdFx0XHR9O1xuXHRcdH1cblx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHR0aHJvdyBFcnJvcihgQ291bGQgbm90IHBhcnNlIGV4dGVybmFsIFVSTDogJHtlcnJvcn1gKTtcblx0fVxufVxuXG5mdW5jdGlvbiBnZXRMYW5ndWFnZShmaWxlUGF0aDogc3RyaW5nKTogc3RyaW5nIHtcblx0aWYgKGZpbGVQYXRoLnN0YXJ0c1dpdGgoXCJbW1wiKSAmJiBmaWxlUGF0aC5lbmRzV2l0aChcIl1dXCIpKVxuXHRcdGZpbGVQYXRoID0gZmlsZVBhdGguc2xpY2UoMiwgLTIpO1xuXHRyZXR1cm4gZmlsZVBhdGguc2xpY2UoKGZpbGVQYXRoLmxhc3RJbmRleE9mKFwiLlwiKSAtIDEgPj4+IDApICsgMik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaW5lTGltaXRzKGNvZGVDb250ZW50OiBzdHJpbmcsIHJlZmVyZW5jZVBhcmFtZXRlcnM6IFJlZmVyZW5jZVBhcmFtZXRlcnMpOiB7IGNvZGVTZWN0aW9uOiBzdHJpbmcsIHN0YXJ0TGluZTogbnVtYmVyIH0ge1xuXHR0cnkge1xuXHRcdGNvbnN0IGxpbmVzID0gY29kZUNvbnRlbnQuc3BsaXQoXCJcXG5cIik7XG5cdFx0bGV0IHN0YXJ0SW5kZXg6IG51bWJlcjtcblx0XHRsZXQgZW5kSW5kZXg6IG51bWJlcjtcblx0XHRpZiAocmVmZXJlbmNlUGFyYW1ldGVycy5zdGFydCA9PT0gbnVsbClcblx0XHRcdHN0YXJ0SW5kZXggPSAwO1xuXHRcdGVsc2UgaWYgKHR5cGVvZiByZWZlcmVuY2VQYXJhbWV0ZXJzLnN0YXJ0ID09PSBcIm51bWJlclwiKVxuXHRcdFx0c3RhcnRJbmRleCA9IHJlZmVyZW5jZVBhcmFtZXRlcnMuc3RhcnQgLSAxO1xuXHRcdGVsc2UgaWYgKChyZWZlcmVuY2VQYXJhbWV0ZXJzLnN0YXJ0IGFzIHN0cmluZyk/LnN0YXJ0c1dpdGgoXCIvXCIpICYmIChyZWZlcmVuY2VQYXJhbWV0ZXJzLnN0YXJ0IGFzIHN0cmluZyk/LmVuZHNXaXRoKFwiL1wiKSkge1xuXHRcdFx0Y29uc3Qgc3RhcnRSZWdleCA9IG5ldyBSZWdFeHAoKHJlZmVyZW5jZVBhcmFtZXRlcnMuc3RhcnQgYXMgc3RyaW5nKS5yZXBsYWNlKC9eXFwvKC4qKVxcLyQvLCBcIiQxXCIpKTtcblx0XHRcdHN0YXJ0SW5kZXggPSBsaW5lcy5maW5kSW5kZXgoKGxpbmUpID0+IHN0YXJ0UmVnZXgudGVzdChsaW5lKSk7XG5cdFx0fSBlbHNlXG5cdFx0XHRzdGFydEluZGV4ID0gbGluZXMuZmluZEluZGV4KChsaW5lKSA9PiBsaW5lLmluZGV4T2YocmVmZXJlbmNlUGFyYW1ldGVycy5zdGFydCBhcyBzdHJpbmcpID4gLTEpO1xuXHRcdGlmIChyZWZlcmVuY2VQYXJhbWV0ZXJzLmVuZCA9PT0gbnVsbClcblx0XHRcdGVuZEluZGV4ID0gbGluZXMubGVuZ3RoIC0gMTtcblx0XHRlbHNlIGlmICh0eXBlb2YgcmVmZXJlbmNlUGFyYW1ldGVycy5lbmQgPT09IFwibnVtYmVyXCIpXG5cdFx0XHRlbmRJbmRleCA9IHJlZmVyZW5jZVBhcmFtZXRlcnMuZW5kIC0gMTtcblx0XHRlbHNlIGlmICgocmVmZXJlbmNlUGFyYW1ldGVycy5lbmQgYXMgc3RyaW5nKT8uc3RhcnRzV2l0aChcIi9cIikgJiYgKHJlZmVyZW5jZVBhcmFtZXRlcnMuZW5kIGFzIHN0cmluZyk/LmVuZHNXaXRoKFwiL1wiKSkge1xuXHRcdFx0Y29uc3QgZW5kUmVnZXggPSBuZXcgUmVnRXhwKChyZWZlcmVuY2VQYXJhbWV0ZXJzLmVuZCBhcyBzdHJpbmcpLnJlcGxhY2UoL15cXC8oLiopXFwvJC8sIFwiJDFcIikpO1xuXHRcdFx0ZW5kSW5kZXggPSBsaW5lcy5maW5kSW5kZXgoKGxpbmUpID0+IGVuZFJlZ2V4LnRlc3QobGluZSkpO1xuXHRcdH0gZWxzZSBpZiAoKHJlZmVyZW5jZVBhcmFtZXRlcnMuZW5kIGFzIHN0cmluZyk/LnN0YXJ0c1dpdGgoXCIrXCIpKVxuXHRcdFx0ZW5kSW5kZXggPSBzdGFydEluZGV4ICsgTnVtYmVyKChyZWZlcmVuY2VQYXJhbWV0ZXJzLmVuZCBhcyBzdHJpbmcpLnNsaWNlKDEpKTtcblx0XHRlbHNlXG5cdFx0XHRlbmRJbmRleCA9IGxpbmVzLmZpbmRJbmRleCgobGluZSkgPT4gbGluZS5pbmRleE9mKHJlZmVyZW5jZVBhcmFtZXRlcnMuZW5kIGFzIHN0cmluZykgPiAtMSk7XG5cdFx0aWYgKHN0YXJ0SW5kZXggPiBlbmRJbmRleClcblx0XHRcdHRocm93IEVycm9yKFwiU3BlY2lmaWVkIFN0YXJ0IGxpbmUgaXMgYWZ0ZXJ0aGUgc3BlY2lmaWVkIEVuZCBsaW5lXCIpO1xuXHRcdGVsc2UgaWYgKHN0YXJ0SW5kZXggPT09IC0xKVxuXHRcdFx0dGhyb3cgRXJyb3IoXCJTdGFydCBsaW5lIGNvdWxkIG5vdCBiZSBmb3VuZFwiKTtcblx0XHRlbHNlIGlmIChlbmRJbmRleCA9PT0gLTEpXG5cdFx0XHR0aHJvdyBFcnJvcihcIkVuZCBsaW5lIGNvdWxkIG5vdCBiZSBmb3VuZFwiKTtcblx0XHRyZXR1cm4geyBjb2RlU2VjdGlvbjogbGluZXMuc2xpY2Uoc3RhcnRJbmRleCwgZW5kSW5kZXggKyAxKS5qb2luKFwiXFxuXCIpLCBzdGFydExpbmU6IHN0YXJ0SW5kZXggKyAxIH07XG5cdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0dGhyb3cgRXJyb3IoZXJyb3IpO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGdldExpbmVJZGVudGlmaWVyKGxpbmVJZGVudGlmaWVyOiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQpOiBMaW5lSWRlbnRpZmllciB7XG5cdGlmICh0eXBlb2YgbGluZUlkZW50aWZpZXIgPT09IFwidW5kZWZpbmVkXCIpXG5cdFx0cmV0dXJuIG51bGw7XG5cdGVsc2UgaWYgKHR5cGVvZiBsaW5lSWRlbnRpZmllciA9PT0gXCJudW1iZXJcIilcblx0XHRyZXR1cm4gbGluZUlkZW50aWZpZXI7XG5cdGVsc2UgaWYgKC9eXFwvKC4qKVxcLyQvLnRlc3QobGluZUlkZW50aWZpZXIpKSB7IC8vIFJlZ2V4XG5cdFx0dHJ5IHtcblx0XHRcdHJldHVybiBuZXcgUmVnRXhwKGxpbmVJZGVudGlmaWVyLnJlcGxhY2UoL15cXC8oLiopXFwvJC8sIFwiJDFcIikpO1xuXHRcdH0gY2F0Y2gge1xuXHRcdFx0dGhyb3cgRXJyb3IoXCJJbnZhbGlkIFJlZ3VsYXIgRXhwcmVzc2lvblwiKTtcblx0XHR9XG5cdH0gIGVsc2UgaWYgKC9cIi4qXCIvLnRlc3QobGluZUlkZW50aWZpZXIpKSAvLyBQbGFpbiBUZXh0XG5cdFx0cmV0dXJuIGxpbmVJZGVudGlmaWVyLnN1YnN0cmluZygxLGxpbmVJZGVudGlmaWVyLmxlbmd0aC0xKTtcblx0ZWxzZSBpZiAoLycuKicvLnRlc3QobGluZUlkZW50aWZpZXIpKSAvLyBQbGFpbiBUZXh0XG5cdFx0cmV0dXJuIGxpbmVJZGVudGlmaWVyLnN1YnN0cmluZygxLGxpbmVJZGVudGlmaWVyLmxlbmd0aC0xKTtcblx0ZWxzZSBpZiAoL1xcRC8udGVzdChsaW5lSWRlbnRpZmllcikpIC8vIFBsYWluIFRleHQgLy9UT0RPIChAbWF5dXJhbmt2KSBTaG91bGQgdGhpcyBiZSBcXEQrID8/XG5cdFx0cmV0dXJuIGxpbmVJZGVudGlmaWVyO1xuXHRlbHNlIGlmICgvXFxkKy8udGVzdChsaW5lSWRlbnRpZmllcikpIC8vIFBsYWluIE51bWJlclxuXHRcdHJldHVybiBwYXJzZUludChsaW5lSWRlbnRpZmllcik7XG5cdHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGltZVN0YW1wKCk6IHN0cmluZyB7XG5cdGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xuXHRjb25zdCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xuXHRjb25zdCBtb250aCA9IFN0cmluZyhkYXRlLmdldE1vbnRoKCkgKyAxKS5wYWRTdGFydCgyLCBcIjBcIik7XG5cdGNvbnN0IGRheSA9IFN0cmluZyhkYXRlLmdldERhdGUoKSkucGFkU3RhcnQoMiwgXCIwXCIpO1xuXHRjb25zdCBob3VyID0gU3RyaW5nKGRhdGUuZ2V0SG91cnMoKSkucGFkU3RhcnQoMiwgXCIwXCIpO1xuXHRjb25zdCBtaW51dGUgPSBTdHJpbmcoZGF0ZS5nZXRNaW51dGVzKCkpLnBhZFN0YXJ0KDIsIFwiMFwiKTtcblx0Ly8gY29uc3Qgc2Vjb25kID0gU3RyaW5nKGRhdGUuZ2V0U2Vjb25kcygpKS5wYWRTdGFydCgyLCBcIjBcIik7XG5cblx0cmV0dXJuIGAke3llYXJ9LSR7bW9udGh9LSR7ZGF5fSAke2hvdXJ9OiR7bWludXRlfWA7XG59XG4iLCAiaW1wb3J0IHsgTWFya2Rvd25TZWN0aW9uSW5mb3JtYXRpb24sIENhY2hlZE1ldGFkYXRhLCBzYW5pdGl6ZUhUTUxUb0RvbSwgRnJvbnRNYXR0ZXJDYWNoZSwgTWFya2Rvd25SZW5kZXJlciB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IHsgdmlzaXRQYXJlbnRzIH0gZnJvbSBcInVuaXN0LXV0aWwtdmlzaXQtcGFyZW50c1wiO1xuaW1wb3J0IHsgZnJvbUh0bWwgfSBmcm9tIFwiaGFzdC11dGlsLWZyb20taHRtbFwiO1xuaW1wb3J0IHsgdG9IdG1sIH0gZnJvbSBcImhhc3QtdXRpbC10by1odG1sXCI7XG5pbXBvcnQgeyBFbGVtZW50Q29udGVudCwgRWxlbWVudCB9IGZyb20gXCJoYXN0XCI7XG5cbmltcG9ydCBDb2RlU3R5bGVyUGx1Z2luIGZyb20gXCIuL21haW5cIjtcbmltcG9ydCB7IFNFVFRJTkdTX1NPVVJDRVBBVEhfUFJFRklYLCBUUkFOU0lUSU9OX0xFTkdUSCB9IGZyb20gXCIuL1NldHRpbmdzXCI7XG5pbXBvcnQgeyBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBnZXRGaWxlQ29udGVudExpbmVzLCBpc0NvZGVibG9ja0lnbm9yZWQsIGlzTGFuZ3VhZ2VJZ25vcmVkLCBwYXJzZUNvZGVibG9ja1NvdXJjZSB9IGZyb20gXCIuL1BhcnNpbmcvQ29kZWJsb2NrUGFyc2luZ1wiO1xuaW1wb3J0IHsgSW5saW5lQ29kZVBhcmFtZXRlcnMsIHBhcnNlSW5saW5lQ29kZSB9IGZyb20gXCIuL1BhcnNpbmcvSW5saW5lQ29kZVBhcnNpbmdcIjtcbmltcG9ydCB7IGNyZWF0ZUhlYWRlciwgY3JlYXRlSW5saW5lT3BlbmVyLCBnZXRMaW5lQ2xhc3MgYXMgZ2V0TGluZUNsYXNzZXMgfSBmcm9tIFwiLi9Db2RlYmxvY2tEZWNvcmF0aW5nXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkaW5nVmlld0NvZGVibG9ja0RlY29yYXRpbmdQb3N0UHJvY2Vzc29yKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCB7c291cmNlUGF0aCxnZXRTZWN0aW9uSW5mbyxmcm9udG1hdHRlcn06IHtzb3VyY2VQYXRoOiBzdHJpbmcsIGdldFNlY3Rpb25JbmZvOiAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IE1hcmtkb3duU2VjdGlvbkluZm9ybWF0aW9uIHwgbnVsbCwgZnJvbnRtYXR0ZXI6IEZyb250TWF0dGVyQ2FjaGUgfCB1bmRlZmluZWR9LCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4sIGVkaXRpbmdFbWJlZHMgPSBmYWxzZSkge1xuXHRjb25zdCBjYWNoZTogQ2FjaGVkTWV0YWRhdGEgfCBudWxsID0gcGx1Z2luLmFwcC5tZXRhZGF0YUNhY2hlLmdldENhY2hlKHNvdXJjZVBhdGgpO1xuXHRpZiAoIXNvdXJjZVBhdGggfHwgIWVsZW1lbnQgfHwgKGZyb250bWF0dGVyID8/IGNhY2hlPy5mcm9udG1hdHRlcik/LltcImNvZGUtc3R5bGVyLWlnbm9yZVwiXSA9PT0gdHJ1ZSlcblx0XHRyZXR1cm47XG5cblx0ZWRpdGluZ0VtYmVkcyA9IGVkaXRpbmdFbWJlZHMgfHwgQm9vbGVhbihlbGVtZW50Lm1hdGNoUGFyZW50KFwiLmNtLWVtYmVkLWJsb2NrXCIpKTtcblx0Y29uc3Qgc3BlY2lmaWMgPSAhZWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiLnZpZXctY29udGVudCA+ICpcIik7XG5cdGNvbnN0IHByaW50aW5nID0gQm9vbGVhbihlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCJkaXYucHJpbnQgPiAqXCIpKSB8fCBCb29sZWFuKGVsZW1lbnQucXVlcnlTZWxlY3RvcihcImRpdi5zbGlkZXMgPiAqXCIpKTtcblx0aWYgKHByaW50aW5nICYmICFwbHVnaW4uc2V0dGluZ3MuZGVjb3JhdGVQcmludClcblx0XHRyZXR1cm47XG5cblx0Y29uc3QgY29kZWJsb2NrUHJlRWxlbWVudHM6IEFycmF5PEhUTUxFbGVtZW50PiA9IGF3YWl0IGdldENvZGVibG9ja1ByZUVsZW1lbnRzKGVsZW1lbnQsc3BlY2lmaWMsZWRpdGluZ0VtYmVkcyk7XG5cdGlmIChjb2RlYmxvY2tQcmVFbGVtZW50cy5sZW5ndGggPT09IDAgJiYgIShlZGl0aW5nRW1iZWRzICYmIHNwZWNpZmljKSlcblx0XHRyZXR1cm47XG5cblx0Y29uc3QgY29kZWJsb2NrU2VjdGlvbkluZm86IE1hcmtkb3duU2VjdGlvbkluZm9ybWF0aW9uIHwgbnVsbCA9IGdldFNlY3Rpb25JbmZvKGNvZGVibG9ja1ByZUVsZW1lbnRzWzBdKTtcblx0aWYgKGNvZGVibG9ja1NlY3Rpb25JbmZvICYmIHNwZWNpZmljICYmICFlZGl0aW5nRW1iZWRzKVxuXHRcdGF3YWl0IHJlbmRlclNwZWNpZmljUmVhZGluZ1NlY3Rpb24oY29kZWJsb2NrUHJlRWxlbWVudHMsc291cmNlUGF0aCxjb2RlYmxvY2tTZWN0aW9uSW5mbyxwbHVnaW4pO1xuXHRlbHNlIGlmIChzcGVjaWZpYyAmJiBzb3VyY2VQYXRoLnN0YXJ0c1dpdGgoU0VUVElOR1NfU09VUkNFUEFUSF9QUkVGSVgpKVxuXHRcdGF3YWl0IHJlbmRlclNldHRpbmdzKGNvZGVibG9ja1ByZUVsZW1lbnRzLHNvdXJjZVBhdGgscGx1Z2luKTtcblx0ZWxzZSBpZiAoc3BlY2lmaWMgJiYgIXByaW50aW5nKVxuXHRcdGF3YWl0IHJldHJpZ2dlclByb2Nlc3NvcihlbGVtZW50LHtzb3VyY2VQYXRoLGdldFNlY3Rpb25JbmZvLGZyb250bWF0dGVyfSxwbHVnaW4sZWRpdGluZ0VtYmVkcyk7XG5cdGVsc2Vcblx0XHRhd2FpdCByZW5kZXJEb2N1bWVudChjb2RlYmxvY2tQcmVFbGVtZW50cyxzb3VyY2VQYXRoLGNhY2hlLGVkaXRpbmdFbWJlZHMscHJpbnRpbmcscGx1Z2luKTtcbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkaW5nVmlld0lubGluZURlY29yYXRpbmdQb3N0UHJvY2Vzc29yKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCB7c291cmNlUGF0aH06IHtzb3VyY2VQYXRoOiBzdHJpbmcsIGdldFNlY3Rpb25JbmZvOiAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IE1hcmtkb3duU2VjdGlvbkluZm9ybWF0aW9uIHwgbnVsbCwgZnJvbnRtYXR0ZXI6IEZyb250TWF0dGVyQ2FjaGUgfCB1bmRlZmluZWR9LCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pIHtcblx0aWYgKCFzb3VyY2VQYXRoIHx8ICFlbGVtZW50KVxuXHRcdHJldHVybjtcblx0Zm9yIChjb25zdCBpbmxpbmVDb2RlRWxlbWVudCBvZiBBcnJheS5mcm9tKGVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcIjpub3QocHJlKSA+IGNvZGVcIikpKSB7XG5cdFx0YXdhaXQgcmVtYWtlSW5saW5lQ29kZShpbmxpbmVDb2RlRWxlbWVudCBhcyBIVE1MRWxlbWVudCxwbHVnaW4pO1xuXHR9XG59XG5leHBvcnQgZnVuY3Rpb24gZGVzdHJveVJlYWRpbmdNb2RlRWxlbWVudHMoKTogdm9pZCB7XG5cdGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuY29kZS1zdHlsZXItcHJlLXBhcmVudFwiKS5mb3JFYWNoKGNvZGVibG9ja1ByZVBhcmVudCA9PiB7XG5cdFx0Y29kZWJsb2NrUHJlUGFyZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJjb2RlLXN0eWxlci1wcmUtcGFyZW50XCIpO1xuXHR9KTtcblx0W1xuXHRcdC4uLkFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInByZS5jb2RlLXN0eWxlci1wcmUgZGl2W2NsYXNzXj0nY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciddXCIpKSxcblx0XHQuLi5BcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJwcmUuY29kZS1zdHlsZXItcHJlIGRpdltjbGFzc149J2NvZGUtc3R5bGVyLWxpbmUtbnVtYmVyJ11cIikpLFxuXHRcdC4uLkFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIjpub3QocHJlKSA+IGNvZGUgc3Bhbi5jb2RlLXN0eWxlci1pbmxpbmUtb3BlbmVyXCIpKSxcblx0XS5mb3JFYWNoKGVsZW1lbnQgPT4gZWxlbWVudC5yZW1vdmUoKSk7XG5cdGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJwcmUuY29kZS1zdHlsZXItcHJlXCIpLmZvckVhY2goKGNvZGVibG9ja1ByZUVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiB7XG5cdFx0Y29kZWJsb2NrUHJlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwiY29kZS1zdHlsZXItcHJlXCIpO1xuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcImNvZGUtc3R5bGVyLWZvbGRlZFwiKTtcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwiLS10cnVlLWhlaWdodFwiKTtcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwiLS1saW5lLW51bWJlci1tYXJnaW5cIik7XG5cdFx0Y29kZWJsb2NrUHJlRWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIm1heC1oZWlnaHRcIik7XG5cdFx0Y29kZWJsb2NrUHJlRWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIndoaXRlLXNwYWNlXCIpO1xuXHR9KTtcblx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInByZSA+IGNvZGUgfiBjb2RlLmxhbmd1YWdlLW91dHB1dFwiKS5mb3JFYWNoKChleGVjdXRlQ29kZU91dHB1dDogSFRNTEVsZW1lbnQpID0+IHtcblx0XHRleGVjdXRlQ29kZU91dHB1dC5jbGFzc0xpc3QucmVtb3ZlKFwiZXhlY3V0ZS1jb2RlLW91dHB1dFwiKTtcblx0XHRleGVjdXRlQ29kZU91dHB1dC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIi0tdHJ1ZS1oZWlnaHRcIik7XG5cdFx0ZXhlY3V0ZUNvZGVPdXRwdXQuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCJtYXgtaGVpZ2h0XCIpO1xuXHR9KTtcblx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInByZSA+IGNvZGU6bnRoLW9mLXR5cGUoMSlcIikuZm9yRWFjaCgoY29kZWJsb2NrQ29kZUVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiB7XG5cdFx0Y29kZWJsb2NrQ29kZUVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCItLXRydWUtaGVpZ2h0XCIpO1xuXHRcdGNvZGVibG9ja0NvZGVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwiLS1saW5lLXdyYXBwaW5nXCIpO1xuXHRcdGNvZGVibG9ja0NvZGVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwiLS1saW5lLWFjdGl2ZS13cmFwcGluZ1wiKTtcblx0XHRjb2RlYmxvY2tDb2RlRWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIm1heC1oZWlnaHRcIik7XG5cdFx0Y29kZWJsb2NrQ29kZUVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCJ3aGl0ZS1zcGFjZVwiKTtcblx0XHRjb2RlYmxvY2tDb2RlRWxlbWVudC5pbm5lckhUTUwgPSBBcnJheS5mcm9tKGNvZGVibG9ja0NvZGVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJjb2RlID4gW2NsYXNzKj1cXFwiY29kZS1zdHlsZXItbGluZVxcXCJdXCIpKS5yZWR1Y2UoKHJlY29uc3RydWN0ZWRDb2RlYmxvY2tMaW5lczogQXJyYXk8c3RyaW5nPiwgY29kZWJsb2NrTGluZTogSFRNTEVsZW1lbnQpOiBBcnJheTxzdHJpbmc+ID0+IHtcblx0XHRcdGNvbnN0IGNvZGVibG9ja0xpbmVUZXh0ID0gKGNvZGVibG9ja0xpbmUuZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCk7XG5cdFx0XHRpZiAoY29kZWJsb2NrTGluZVRleHQpXG5cdFx0XHRcdHJlY29uc3RydWN0ZWRDb2RlYmxvY2tMaW5lcy5wdXNoKGNvZGVibG9ja0xpbmVUZXh0LmlubmVySFRNTCk7XG5cdFx0XHRyZXR1cm4gcmVjb25zdHJ1Y3RlZENvZGVibG9ja0xpbmVzO1xuXHRcdH0sW10pLmpvaW4oXCJcXG5cIikrXCJcXG5cIjtcblx0fSk7XG5cdGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCI6bm90KHByZSkgPiBjb2RlXCIpLmZvckVhY2goKGlubGluZUNvZGVFbGVtZW50OiBIVE1MRWxlbWVudCkgPT4ge1xuXHRcdGlubGluZUNvZGVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJjb2RlLXN0eWxlci1oaWdobGlnaHRlZFwiKTtcblx0XHRpbmxpbmVDb2RlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwiY29kZS1zdHlsZXItaGlnaGxpZ2h0LWlnbm9yZVwiKTtcblx0XHRpbmxpbmVDb2RlRWxlbWVudC5pbm5lclRleHQgPSBpbmxpbmVDb2RlRWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJwYXJhbWV0ZXJzXCIpICsgaW5saW5lQ29kZUVsZW1lbnQuaW5uZXJUZXh0O1xuXHR9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbmRlclNwZWNpZmljUmVhZGluZ1NlY3Rpb24oY29kZWJsb2NrUHJlRWxlbWVudHM6IEFycmF5PEhUTUxFbGVtZW50Piwgc291cmNlUGF0aDogc3RyaW5nLCBjb2RlYmxvY2tTZWN0aW9uSW5mbzogTWFya2Rvd25TZWN0aW9uSW5mb3JtYXRpb24sIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbikge1xuXHRjb25zdCBjb2RlYmxvY2tzUGFyYW1ldGVycyA9IChhd2FpdCBwYXJzZUNvZGVibG9ja1NvdXJjZShBcnJheS5mcm9tKHtsZW5ndGg6IGNvZGVibG9ja1NlY3Rpb25JbmZvLmxpbmVFbmQtY29kZWJsb2NrU2VjdGlvbkluZm8ubGluZVN0YXJ0KzF9LCAoXyxudW0pID0+IG51bSArIGNvZGVibG9ja1NlY3Rpb25JbmZvLmxpbmVTdGFydCkubWFwKChsaW5lTnVtYmVyKT0+Y29kZWJsb2NrU2VjdGlvbkluZm8udGV4dC5zcGxpdChcIlxcblwiKVtsaW5lTnVtYmVyXSkscGx1Z2luLHNvdXJjZVBhdGgpKS5jb2RlYmxvY2tzUGFyYW1ldGVycztcblx0YXdhaXQgcmVtYWtlQ29kZWJsb2Nrcyhjb2RlYmxvY2tQcmVFbGVtZW50cywgY29kZWJsb2Nrc1BhcmFtZXRlcnMsIHNvdXJjZVBhdGgsIHRydWUsIGZhbHNlLCBwbHVnaW4pO1xufVxuYXN5bmMgZnVuY3Rpb24gcmVuZGVyU2V0dGluZ3MoY29kZWJsb2NrUHJlRWxlbWVudHM6IEFycmF5PEhUTUxFbGVtZW50Piwgc291cmNlUGF0aDogc3RyaW5nLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pIHtcblx0Y29uc3QgY29kZWJsb2Nrc1BhcmFtZXRlcnMgPSAoYXdhaXQgcGFyc2VDb2RlYmxvY2tTb3VyY2Uoc291cmNlUGF0aC5zdWJzdHJpbmcoU0VUVElOR1NfU09VUkNFUEFUSF9QUkVGSVgubGVuZ3RoKS5zcGxpdChcIlxcblwiKSxwbHVnaW4pKS5jb2RlYmxvY2tzUGFyYW1ldGVycztcblx0YXdhaXQgcmVtYWtlQ29kZWJsb2Nrcyhjb2RlYmxvY2tQcmVFbGVtZW50cyxjb2RlYmxvY2tzUGFyYW1ldGVycyxzb3VyY2VQYXRoLHRydWUsZmFsc2UscGx1Z2luKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIHJlbmRlckRvY3VtZW50KGNvZGVibG9ja1ByZUVsZW1lbnRzOiBBcnJheTxIVE1MRWxlbWVudD4sIHNvdXJjZVBhdGg6IHN0cmluZywgY2FjaGU6IENhY2hlZE1ldGFkYXRhIHwgbnVsbCwgZWRpdGluZ0VtYmVkczogYm9vbGVhbiwgcHJpbnRpbmc6IGJvb2xlYW4sIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbikge1xuXHRjb25zdCBjb2RlYmxvY2tzUGFyYW1ldGVyczogQXJyYXk8Q29kZWJsb2NrUGFyYW1ldGVycz4gPSBhd2FpdCBnZXRDb2RlYmxvY2tzUGFyYW1ldGVycyhzb3VyY2VQYXRoLGNhY2hlLHBsdWdpbixlZGl0aW5nRW1iZWRzKTtcblx0YXdhaXQgcmVtYWtlQ29kZWJsb2Nrcyhjb2RlYmxvY2tQcmVFbGVtZW50cyxjb2RlYmxvY2tzUGFyYW1ldGVycyxzb3VyY2VQYXRoLCFwcmludGluZyx0cnVlLHBsdWdpbik7XG59XG5hc3luYyBmdW5jdGlvbiByZXRyaWdnZXJQcm9jZXNzb3IoZWxlbWVudDogSFRNTEVsZW1lbnQsIGNvbnRleHQ6IHtzb3VyY2VQYXRoOiBzdHJpbmcsIGdldFNlY3Rpb25JbmZvOiAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IE1hcmtkb3duU2VjdGlvbkluZm9ybWF0aW9uIHwgbnVsbCwgZnJvbnRtYXR0ZXI6IEZyb250TWF0dGVyQ2FjaGUgfCB1bmRlZmluZWR9LCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4sIGVkaXRpbmdFbWJlZHM6IGJvb2xlYW4pIHtcblx0aWYgKGVsZW1lbnQubWF0Y2hQYXJlbnQoXCJkaXYuYmxvY2stbGFuZ3VhZ2UtZGF0YXZpZXdqc1wiKSAmJiBpc0NvZGVibG9ja0lnbm9yZWQoXCJkYXRhdmlld2pzXCIscGx1Z2luLnNldHRpbmdzLnByb2Nlc3NlZENvZGVibG9ja3NXaGl0ZWxpc3QpKVxuXHRcdHJldHVybjtcblx0YXdhaXQgc2xlZXAoNTApO1xuXHRlZGl0aW5nRW1iZWRzID0gZWRpdGluZ0VtYmVkcyB8fCBCb29sZWFuKGVsZW1lbnQubWF0Y2hQYXJlbnQoXCIuY20tZW1iZWQtYmxvY2tcIikpO1xuXHRpZiAoZWRpdGluZ0VtYmVkcyB8fCAhZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoXCJhZG1vbml0aW9uLWNvbnRlbnRcIikpIHtcblx0XHRjb25zdCBjb250ZW50RWwgPSBlbGVtZW50Lm1hdGNoUGFyZW50KFwiLnZpZXctY29udGVudFwiKSA/PyBlbGVtZW50Lm1hdGNoUGFyZW50KFwiZGl2LnByaW50XCIpO1xuXHRcdGlmIChjb250ZW50RWwgIT09IG51bGwpXG5cdFx0XHRhd2FpdCByZWFkaW5nVmlld0NvZGVibG9ja0RlY29yYXRpbmdQb3N0UHJvY2Vzc29yKGNvbnRlbnRFbCBhcyBIVE1MRWxlbWVudCxjb250ZXh0LHBsdWdpbixlZGl0aW5nRW1iZWRzKTsgLy8gUmUtcmVuZGVyIHdob2xlIGRvY3VtZW50XG5cdH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVtYWtlQ29kZWJsb2Nrcyhjb2RlYmxvY2tQcmVFbGVtZW50czogQXJyYXk8SFRNTEVsZW1lbnQ+LCBjb2RlYmxvY2tzUGFyYW1ldGVyczogQXJyYXk8Q29kZWJsb2NrUGFyYW1ldGVycz4sIHNvdXJjZVBhdGg6IHN0cmluZywgZHluYW1pYzogYm9vbGVhbiwgc2tpcFN0eWxlZDogYm9vbGVhbiwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKSB7XG5cdGlmIChjb2RlYmxvY2tQcmVFbGVtZW50cy5sZW5ndGggIT09IGNvZGVibG9ja3NQYXJhbWV0ZXJzLmxlbmd0aClcblx0XHRyZXR1cm47XG5cdGZvciAoY29uc3QgW2tleSxjb2RlYmxvY2tQcmVFbGVtZW50XSBvZiBBcnJheS5mcm9tKGNvZGVibG9ja1ByZUVsZW1lbnRzKS5lbnRyaWVzKCkpIHtcblx0XHRjb25zdCBjb2RlYmxvY2tQYXJhbWV0ZXJzID0gY29kZWJsb2Nrc1BhcmFtZXRlcnNba2V5XTtcblx0XHRjb25zdCBjb2RlYmxvY2tDb2RlRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gY29kZWJsb2NrUHJlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwicHJlID4gY29kZVwiKTtcblx0XHRpZiAoIWNvZGVibG9ja0NvZGVFbGVtZW50KVxuXHRcdFx0cmV0dXJuO1xuXHRcdGlmIChBcnJheS5mcm9tKGNvZGVibG9ja0NvZGVFbGVtZW50LmNsYXNzTGlzdCkuc29tZShjbGFzc05hbWUgPT4gL15sYW5ndWFnZS1cXFMrLy50ZXN0KGNsYXNzTmFtZSkpKVxuXHRcdFx0d2hpbGUoIWNvZGVibG9ja0NvZGVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhcImlzLWxvYWRlZFwiKSlcblx0XHRcdFx0YXdhaXQgc2xlZXAoMik7XG5cdFx0aWYgKHNraXBTdHlsZWQgJiYgY29kZWJsb2NrQ29kZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcImNvZGUgW2NsYXNzKj0nY29kZS1zdHlsZXItbGluZSddXCIpKVxuXHRcdFx0Y29udGludWU7XG5cdFx0aWYgKGlzTGFuZ3VhZ2VJZ25vcmVkKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UscGx1Z2luLnNldHRpbmdzLmV4Y2x1ZGVkTGFuZ3VhZ2VzKSB8fCBjb2RlYmxvY2tQYXJhbWV0ZXJzLmlnbm9yZSlcblx0XHRcdGNvbnRpbnVlO1xuXHRcdGF3YWl0IHJlbWFrZUNvZGVibG9jayhjb2RlYmxvY2tDb2RlRWxlbWVudCxjb2RlYmxvY2tQcmVFbGVtZW50LGNvZGVibG9ja1BhcmFtZXRlcnMsc291cmNlUGF0aCxkeW5hbWljLHBsdWdpbik7XG5cdH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVtYWtlQ29kZWJsb2NrKGNvZGVibG9ja0NvZGVFbGVtZW50OiBIVE1MRWxlbWVudCwgY29kZWJsb2NrUHJlRWxlbWVudDogSFRNTEVsZW1lbnQsIGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHNvdXJjZVBhdGg6IHN0cmluZywgZHluYW1pYzogYm9vbGVhbiwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKSB7XG5cdGlmIChkeW5hbWljKVxuXHRcdHBsdWdpbi5leGVjdXRlQ29kZU11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZShjb2RlYmxvY2tQcmVFbGVtZW50LHtjaGlsZExpc3Q6IHRydWUsc3VidHJlZTogdHJ1ZSxhdHRyaWJ1dGVzOiB0cnVlLGNoYXJhY3RlckRhdGE6IHRydWV9KTsgLy8gQWRkIEV4ZWN1dGUgQ29kZSBPYnNlcnZlclxuXG5cdGluc2VydEhlYWRlcihjb2RlYmxvY2tQcmVFbGVtZW50LGNvZGVibG9ja1BhcmFtZXRlcnMsc291cmNlUGF0aCxwbHVnaW4sZHluYW1pYyk7XG5cblx0Y29kZWJsb2NrUHJlRWxlbWVudC5jbGFzc0xpc3QuYWRkKC4uLmdldFByZUNsYXNzZXMoY29kZWJsb2NrUGFyYW1ldGVycyxkeW5hbWljKSk7XG5cdGNvZGVibG9ja1ByZUVsZW1lbnQuc2V0QXR0cmlidXRlKFwiZGVmYXVsdEZvbGRcIixjb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQuZW5hYmxlZC50b1N0cmluZygpKTtcblx0aWYgKGNvZGVibG9ja1ByZUVsZW1lbnQucGFyZW50RWxlbWVudClcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50LnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLXByZS1wYXJlbnRcIik7XG5cblx0aWYgKCFjb2RlYmxvY2tDb2RlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiY29kZSBbY2xhc3MqPSdjb2RlLXN0eWxlci1saW5lJ11cIikpIC8vIElnbm9yZSBzdHlsZWQgbGluZXNcblx0XHRkZWNvcmF0ZUNvZGVibG9ja0xpbmVzKGNvZGVibG9ja0NvZGVFbGVtZW50LGNvZGVibG9ja1BhcmFtZXRlcnMsc291cmNlUGF0aCxwbHVnaW4pO1xufVxuYXN5bmMgZnVuY3Rpb24gcmVtYWtlSW5saW5lQ29kZShpbmxpbmVDb2RlRWxlbWVudDogSFRNTEVsZW1lbnQsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbik6IFByb21pc2U8dm9pZD4ge1xuXHRpZiAoIXBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnN5bnRheEhpZ2hsaWdodCB8fCBpbmxpbmVDb2RlRWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoXCJjb2RlLXN0eWxlci1pbmxpbmVcIikpXG5cdFx0cmV0dXJuO1xuXHRjb25zdCBpbmxpbmVDb2RlVGV4dCA9IGlubGluZUNvZGVFbGVtZW50LmlubmVyVGV4dDtcblx0Y29uc3Qge3BhcmFtZXRlcnMsdGV4dH0gPSBwYXJzZUlubGluZUNvZGUoaW5saW5lQ29kZVRleHQpO1xuXHRpZiAocGFyYW1ldGVycykge1xuXHRcdGlubGluZUNvZGVFbGVtZW50LmlubmVySFRNTCA9IGF3YWl0IGdldEhpZ2hsaWdodGVkSFRNTChwYXJhbWV0ZXJzLHRleHQscGx1Z2luKTtcblx0XHRpbmxpbmVDb2RlRWxlbWVudC5pbm5lckhUTUwgPSBpbmxpbmVDb2RlRWxlbWVudC5pbm5lckhUTUwgKyBcIiZaZXJvV2lkdGhTcGFjZTtcIjtcblx0XHRpbmxpbmVDb2RlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItaW5saW5lXCIpO1xuXHRcdGNvbnN0IHBhcmFtZXRlclN0cmluZyA9IGlubGluZUNvZGVUZXh0LnN1YnN0cmluZygwLGlubGluZUNvZGVUZXh0Lmxhc3RJbmRleE9mKHRleHQpKTtcblx0XHRpbmxpbmVDb2RlRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJwYXJhbWV0ZXJzXCIscGFyYW1ldGVyU3RyaW5nKTsgLy8gU3RvcmUgcGFyYW1ldGVyIHN0cmluZyBhcyBhdHRyaWJ1dGUgc28gb3JpZ2luYWwgdGV4dCBjYW4gYmUgcmVzdG9yZWQgb24gcGx1Z2luIHJlbW92YWxcblx0XHRpZiAocGFyYW1ldGVycy5pY29uIHx8IHBhcmFtZXRlcnMudGl0bGUpXG5cdFx0XHRpbmxpbmVDb2RlRWxlbWVudC5pbnNlcnRCZWZvcmUoY3JlYXRlSW5saW5lT3BlbmVyKHBhcmFtZXRlcnMscGx1Z2luLmxhbmd1YWdlSWNvbnMpLGlubGluZUNvZGVFbGVtZW50LmNoaWxkTm9kZXNbMF0pO1xuXHR9IGVsc2UgaWYgKCFwYXJhbWV0ZXJzICYmIHRleHQpIHtcblx0XHRpbmxpbmVDb2RlRWxlbWVudC5pbm5lclRleHQgPSB0ZXh0O1xuXHRcdGlubGluZUNvZGVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlci1pbmxpbmVcIik7XG5cdH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0Q29kZWJsb2NrUHJlRWxlbWVudHMoZWxlbWVudDogSFRNTEVsZW1lbnQsIHNwZWNpZmljOiBib29sZWFuLGVkaXRpbmdFbWJlZHM6IGJvb2xlYW4pOiBQcm9taXNlPEFycmF5PEhUTUxFbGVtZW50Pj4ge1xuXHRsZXQgY29kZWJsb2NrUHJlRWxlbWVudHM6IEFycmF5PEhUTUxFbGVtZW50Pjtcblx0aWYgKCFlZGl0aW5nRW1iZWRzICYmICFzcGVjaWZpYylcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50cyA9IEFycmF5LmZyb20oZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLm1hcmtkb3duLXJlYWRpbmctdmlldyBwcmU6bm90KC5mcm9udG1hdHRlcilcIikpO1xuXHRlbHNlIGlmIChlZGl0aW5nRW1iZWRzICYmICFzcGVjaWZpYylcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50cyA9IEFycmF5LmZyb20oZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLm1hcmtkb3duLXNvdXJjZS12aWV3IC5jbS1lbWJlZC1ibG9jayBwcmU6bm90KC5mcm9udG1hdHRlcilcIikpO1xuXHRlbHNlIGlmICghZWRpdGluZ0VtYmVkcyAmJiBzcGVjaWZpYykge1xuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnRzID0gQXJyYXkuZnJvbShlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJwcmU6bm90KC5mcm9udG1hdHRlcilcIikpO1xuXHRcdGNvbnN0IGFkbW9uaXRpb25Db2RlRWxlbWVudCA9IGNvZGVibG9ja1ByZUVsZW1lbnRzPy5bMF0/LnF1ZXJ5U2VsZWN0b3IoXCJwcmU6bm90KFtjbGFzc10pID4gY29kZVtjbGFzcyo9XFxcImxhbmd1YWdlLWFkLVxcXCJdXCIpO1xuXHRcdGlmIChhZG1vbml0aW9uQ29kZUVsZW1lbnQpIHtcblx0XHRcdGF3YWl0IHNsZWVwKDUwKTsgLy9UT0RPXG5cdFx0XHRjb2RlYmxvY2tQcmVFbGVtZW50cyA9IEFycmF5LmZyb20oZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFwicHJlOm5vdCguZnJvbnRtYXR0ZXIpXCIpKTtcblx0XHR9XG5cdH0gZWxzZVxuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnRzID0gW107XG5cdHJldHVybiBjb2RlYmxvY2tQcmVFbGVtZW50cztcbn1cbmFzeW5jIGZ1bmN0aW9uIGdldENvZGVibG9ja3NQYXJhbWV0ZXJzKHNvdXJjZVBhdGg6IHN0cmluZywgY2FjaGU6IENhY2hlZE1ldGFkYXRhIHwgbnVsbCwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luLCBlZGl0aW5nRW1iZWRzOiBib29sZWFuKTogUHJvbWlzZTxBcnJheTxDb2RlYmxvY2tQYXJhbWV0ZXJzPj4ge1xuXHRsZXQgY29kZWJsb2Nrc1BhcmFtZXRlcnM6IEFycmF5PENvZGVibG9ja1BhcmFtZXRlcnM+ID0gW107XG5cdGNvbnN0IGZpbGVDb250ZW50TGluZXMgPSBhd2FpdCBnZXRGaWxlQ29udGVudExpbmVzKHNvdXJjZVBhdGgscGx1Z2luKTtcblxuXHRpZiAodHlwZW9mIGNhY2hlPy5zZWN0aW9ucyAhPT0gXCJ1bmRlZmluZWRcIikge1xuXHRcdGZvciAoY29uc3Qgc2VjdGlvbiBvZiBjYWNoZS5zZWN0aW9ucykge1xuXHRcdFx0aWYgKCFlZGl0aW5nRW1iZWRzIHx8IHNlY3Rpb24udHlwZSA9PT0gXCJjb2RlXCIgfHwgc2VjdGlvbi50eXBlID09PSBcImNhbGxvdXRcIikge1xuXHRcdFx0XHRjb25zdCBwYXJzZWRDb2RlYmxvY2tzUGFyYW1ldGVycyA9IGF3YWl0IHBhcnNlQ29kZWJsb2NrU291cmNlKGZpbGVDb250ZW50TGluZXMuc2xpY2Uoc2VjdGlvbi5wb3NpdGlvbi5zdGFydC5saW5lLHNlY3Rpb24ucG9zaXRpb24uZW5kLmxpbmUrMSkscGx1Z2luLHNvdXJjZVBhdGgpO1xuXHRcdFx0XHRpZiAoIWVkaXRpbmdFbWJlZHMgfHwgcGFyc2VkQ29kZWJsb2Nrc1BhcmFtZXRlcnMubmVzdGVkKVxuXHRcdFx0XHRcdGNvZGVibG9ja3NQYXJhbWV0ZXJzID0gY29kZWJsb2Nrc1BhcmFtZXRlcnMuY29uY2F0KHBhcnNlZENvZGVibG9ja3NQYXJhbWV0ZXJzLmNvZGVibG9ja3NQYXJhbWV0ZXJzKTtcblx0XHRcdH1cblx0XHR9XG5cdH0gZWxzZVxuXHRcdGNvbnNvbGUuZXJyb3IoYE1ldGFkYXRhIGNhY2hlIG5vdCBmb3VuZCBmb3IgZmlsZTogJHtzb3VyY2VQYXRofWApO1xuXHRyZXR1cm4gY29kZWJsb2Nrc1BhcmFtZXRlcnM7XG59XG5mdW5jdGlvbiBpbnNlcnRIZWFkZXIoY29kZWJsb2NrUHJlRWxlbWVudDogSFRNTEVsZW1lbnQsIGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHNvdXJjZVBhdGg6IHN0cmluZywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luLCBkeW5hbWljOiBib29sZWFuKTogdm9pZCB7XG5cdGNvbnN0IGhlYWRlckNvbnRhaW5lciA9IGNyZWF0ZUhlYWRlcihjb2RlYmxvY2tQYXJhbWV0ZXJzLCBwbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLCBzb3VyY2VQYXRoLCBwbHVnaW4pO1xuXHRpZiAoZHluYW1pYylcblx0XHRoZWFkZXJDb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsKCk9Pnt0b2dnbGVGb2xkKGNvZGVibG9ja1ByZUVsZW1lbnQpO30pOyAvLyBBZGQgbGlzdGVuZXIgZm9yIGhlYWRlciBmb2xkaW5nIG9uIGNsaWNrXG5cdGNvZGVibG9ja1ByZUVsZW1lbnQuaW5zZXJ0QmVmb3JlKGhlYWRlckNvbnRhaW5lcixjb2RlYmxvY2tQcmVFbGVtZW50LmNoaWxkTm9kZXNbMF0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRpbmdEb2N1bWVudEZvbGQoY29udGVudEVsOiBIVE1MRWxlbWVudCwgZm9sZD86IGJvb2xlYW4pIHtcblx0Y29uc3QgY29kZWJsb2NrUHJlRWxlbWVudHMgPSBjb250ZW50RWwucXVlcnlTZWxlY3RvckFsbChcInByZS5jb2RlLXN0eWxlci1wcmVcIik7XG5cdGlmICh0eXBlb2YgZm9sZCA9PT0gXCJ1bmRlZmluZWRcIikgLy9SZXR1cm4gYWxsIGJsb2NrcyB0byBvcmlnaW5hbCBzdGF0ZVxuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnRzLmZvckVhY2goKGNvZGVibG9ja1ByZUVsZW1lbnQ6IEhUTUxFbGVtZW50KT0+e3RvZ2dsZUZvbGQoY29kZWJsb2NrUHJlRWxlbWVudCwoY29kZWJsb2NrUHJlRWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJkZWZhdWx0Rm9sZFwiKT8/XCJmYWxzZVwiKT09PVwidHJ1ZVwiKTt9KTtcblx0ZWxzZSAvL0ZvbGQgb3IgdW5mb2xkIGFsbCBibG9ja3Ncblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50cy5mb3JFYWNoKChjb2RlYmxvY2tQcmVFbGVtZW50OiBIVE1MRWxlbWVudCk9Pnt0b2dnbGVGb2xkKGNvZGVibG9ja1ByZUVsZW1lbnQsZm9sZCk7fSk7XG59XG5hc3luYyBmdW5jdGlvbiB0b2dnbGVGb2xkKGNvZGVibG9ja1ByZUVsZW1lbnQ6IEhUTUxFbGVtZW50LCBmb2xkPzogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuXHRpZiAoY29kZWJsb2NrUHJlRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZD8uY2xhc3NMaXN0Py5jb250YWlucyhcImNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXItaGlkZGVuXCIpKVxuXHRcdHJldHVybjtcblx0Y29kZWJsb2NrUHJlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFwicHJlID4gY29kZVwiKS5mb3JFYWNoKChjb2RlYmxvY2tDb2RlRWxlbWVudDogSFRNTEVsZW1lbnQpPT5jb2RlYmxvY2tDb2RlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcIm1heC1oZWlnaHRcIixgY2FsYygke01hdGguY2VpbChjb2RlYmxvY2tDb2RlRWxlbWVudC5zY3JvbGxIZWlnaHQrMC4wMSl9cHggKyB2YXIoLS1jb2RlLXBhZGRpbmcpICogJHtjb2RlYmxvY2tDb2RlRWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoXCJleGVjdXRlLWNvZGUtb3V0cHV0XCIpP1wiMy41ICsgdmFyKC0taGVhZGVyLXNlcGFyYXRvci13aWR0aClcIjpcIjJcIn0pYCkpO1xuXHRjb2RlYmxvY2tQcmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJoaWRlLXNjcm9sbFwiKTtcblx0YXdhaXQgc2xlZXAoMSk7XG5cdGlmICh0eXBlb2YgZm9sZCA9PT0gXCJ1bmRlZmluZWRcIilcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoXCJjb2RlLXN0eWxlci1mb2xkZWRcIik7XG5cdGVsc2Vcblx0XHRmb2xkP2NvZGVibG9ja1ByZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLWZvbGRlZFwiKTpjb2RlYmxvY2tQcmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJjb2RlLXN0eWxlci1mb2xkZWRcIik7XG5cdGF3YWl0IHNsZWVwKFRSQU5TSVRJT05fTEVOR1RIKTtcblx0Y29kZWJsb2NrUHJlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFwicHJlID4gY29kZVwiKS5mb3JFYWNoKChjb2RlYmxvY2tDb2RlRWxlbWVudDogSFRNTEVsZW1lbnQpPT5jb2RlYmxvY2tDb2RlRWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIm1heC1oZWlnaHRcIikpO1xuXHRjb2RlYmxvY2tQcmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJoaWRlLXNjcm9sbFwiKTtcbn1cbmZ1bmN0aW9uIGdldFByZUNsYXNzZXMoY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgZHluYW1pYzogYm9vbGVhbik6IEFycmF5PHN0cmluZz4ge1xuXHRjb25zdCBwcmVDbGFzc0xpc3QgPSBbXCJjb2RlLXN0eWxlci1wcmVcIl07XG5cdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlKVxuXHRcdHByZUNsYXNzTGlzdC5wdXNoKGBsYW5ndWFnZS0ke2NvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2V9YCk7XG5cdGlmIChkeW5hbWljKSB7XG5cdFx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5lbmFibGVkKVxuXHRcdFx0cHJlQ2xhc3NMaXN0LnB1c2goXCJjb2RlLXN0eWxlci1mb2xkZWRcIik7XG5cdFx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMubGluZVVud3JhcC5hbHdheXNFbmFibGVkKVxuXHRcdFx0cHJlQ2xhc3NMaXN0LnB1c2goY29kZWJsb2NrUGFyYW1ldGVycy5saW5lVW53cmFwLmFjdGl2ZVdyYXA/XCJ1bndyYXBwZWQtaW5hY3RpdmVcIjpcInVud3JhcHBlZFwiKTtcblx0XHRlbHNlIGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVVbndyYXAuYWx3YXlzRGlzYWJsZWQpXG5cdFx0XHRwcmVDbGFzc0xpc3QucHVzaChcIndyYXBwZWRcIik7XG5cdH1cblx0cmV0dXJuIHByZUNsYXNzTGlzdDtcbn1cbmZ1bmN0aW9uIGRlY29yYXRlQ29kZWJsb2NrTGluZXMoY29kZWJsb2NrQ29kZUVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBzb3VyY2VQYXRoOiBzdHJpbmcsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbik6IHZvaWQge1xuXHRsZXQgaW5kZW50YXRpb24gPSAwO1xuXHRnZXRDb2RlYmxvY2tMaW5lcyhjb2RlYmxvY2tDb2RlRWxlbWVudCxzb3VyY2VQYXRoLHBsdWdpbikuZm9yRWFjaCgobGluZSxpbmRleCxjb2RlYmxvY2tMaW5lcykgPT4ge1xuXHRcdGNvbnN0IGN1cnJlbnRJbmRlbnRhdGlvbiA9IGNvdW50VGFicyhsaW5lKTtcblx0XHRpZiAoY3VycmVudEluZGVudGF0aW9uID4gaW5kZW50YXRpb24pIHtcblx0XHRcdC8vVE9ETyAoQG1heXVyYW5rdikgQWRkIGZvbGQgdG8gcHJldmlvdXMgcG9pbnRcblx0XHRcdGluZGVudGF0aW9uID0gY3VycmVudEluZGVudGF0aW9uO1xuXHRcdH0gZWxzZSBpZiAoY3VycmVudEluZGVudGF0aW9uIDwgaW5kZW50YXRpb24pIHtcblx0XHRcdC8vVE9ETyAoQG1heXVyYW5rdikgQ2xvc2UgYWxsIGZvbGRzIHRvIGxldmVsIG9mIGN1cnJlbnQgaW5kZW50YXRpb25cblx0XHRcdGluZGVudGF0aW9uID0gY3VycmVudEluZGVudGF0aW9uO1xuXHRcdH1cblx0XHRpZiAoY3VycmVudEluZGVudGF0aW9uID4gMCkge1xuXHRcdFx0Ly9UT0RPIChAbWF5dXJhbmt2KSBBZGQgaW5kZW50YXRpb24gbGluZVxuXHRcdH1cblx0XHRpZiAoaW5kZXggIT09IGNvZGVibG9ja0xpbmVzLmxlbmd0aC0xKVxuXHRcdFx0aW5zZXJ0TGluZVdyYXBwZXIoY29kZWJsb2NrQ29kZUVsZW1lbnQsY29kZWJsb2NrUGFyYW1ldGVycyxpbmRleCsxLGxpbmUscGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2subGluZU51bWJlcnMpO1xuXHR9KTtcbn1cbmZ1bmN0aW9uIGdldENvZGVibG9ja0xpbmVzKGNvZGVibG9ja0NvZGVFbGVtZW50OiBIVE1MRWxlbWVudCwgc291cmNlUGF0aDogc3RyaW5nLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pOiBBcnJheTxzdHJpbmc+IHtcblx0Y29uc3QgaHRtbFRyZWUgPSBmcm9tSHRtbChjb2RlYmxvY2tDb2RlRWxlbWVudC5pbm5lckhUTUwucmVwbGFjZSgvXFxuL2csXCI8YnI+XCIpLHtmcmFnbWVudDogdHJ1ZX0pO1xuXHRsZXQgY29kZWJsb2NrSFRNTCA9IGNvZGVibG9ja0NvZGVFbGVtZW50LmlubmVySFRNTDtcblx0dmlzaXRQYXJlbnRzKGh0bWxUcmVlLFtcInRleHRcIixcImVsZW1lbnRcIl0sKG5vZGUsYW5jZXN0b3JzKT0+e1xuXHRcdGlmIChub2RlLnR5cGUgPT09IFwiZWxlbWVudFwiICYmIG5vZGUudGFnTmFtZSA9PT0gXCJiclwiKSB7XG5cdFx0XHRpZiAoYW5jZXN0b3JzLmxlbmd0aCA+PSAyKSB7XG5cdFx0XHRcdGNvZGVibG9ja0hUTUwgPSBjb2RlYmxvY2tIVE1MLnJlcGxhY2UoL1xcbi8sYW5jZXN0b3JzLnNsaWNlKDEpLnJlZHVjZSgocmVzdWx0LGVsZW1lbnQpPT57XG5cdFx0XHRcdFx0Y29uc3QgZWxlbWVudENvcHkgPSBzdHJ1Y3R1cmVkQ2xvbmUoZWxlbWVudCk7XG5cdFx0XHRcdFx0ZWxlbWVudENvcHkuY2hpbGRyZW4gPSBbXTtcblx0XHRcdFx0XHRjb25zdCBzcGxpdFRhZyA9IHRvSHRtbChlbGVtZW50Q29weSkuc3BsaXQoLyg/PD0+KSg/PTxcXC8pLyk7XG5cdFx0XHRcdFx0cmV0dXJuIHNwbGl0VGFnLnNwbGljZSgtMSkrcmVzdWx0K3NwbGl0VGFnLmpvaW4oXCJcIik7XG5cdFx0XHRcdH0sXCI8YnI+XCIpKTtcblx0XHRcdH0gZWxzZVxuXHRcdFx0XHRjb2RlYmxvY2tIVE1MID0gY29kZWJsb2NrSFRNTC5yZXBsYWNlKC9cXG4vLFwiPGJyPlwiKTtcblx0XHR9XG5cdH0pO1xuXHRjb25zdCBzcGxpdEh0bWxUcmVlID0gZnJvbUh0bWwoY29kZWJsb2NrSFRNTCx7ZnJhZ21lbnQ6IHRydWV9KTtcblx0dmlzaXRQYXJlbnRzKHNwbGl0SHRtbFRyZWUsW1wiZWxlbWVudFwiXSwobm9kZSk9Pntcblx0XHRpZiAobm9kZS50eXBlID09PSBcImVsZW1lbnRcIiAmJiBBcnJheS5pc0FycmF5KG5vZGUucHJvcGVydGllcy5jbGFzc05hbWUpICYmIG5vZGUucHJvcGVydGllcz8uY2xhc3NOYW1lPy5pbmNsdWRlcyhcImNvbW1lbnRcIikpIHtcblx0XHRcdG5vZGUuY2hpbGRyZW4gPSBub2RlLmNoaWxkcmVuLnJlZHVjZSgocmVzdWx0OiBBcnJheTxFbGVtZW50Q29udGVudD4sIGNoaWxkOiBFbGVtZW50Q29udGVudCk6IEFycmF5PEVsZW1lbnRDb250ZW50PiA9PiB7XG5cdFx0XHRcdGlmIChjaGlsZC50eXBlICE9PSBcInRleHRcIilcblx0XHRcdFx0XHRyZXN1bHQucHVzaChjaGlsZCk7XG5cdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHRyZXN1bHQgPSBjb252ZXJ0Q29tbWVudExpbmtzKHJlc3VsdCxjaGlsZC52YWx1ZSxzb3VyY2VQYXRoLHBsdWdpbik7XG5cdFx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0XHR9LFtdKTtcblx0XHR9XG5cdH0pO1xuXHRjb2RlYmxvY2tIVE1MID0gdG9IdG1sKHNwbGl0SHRtbFRyZWUpO1xuXHRsZXQgY29kZWJsb2NrTGluZXMgPSBjb2RlYmxvY2tIVE1MLnNwbGl0KFwiPGJyPlwiKTtcblx0aWYgKGNvZGVibG9ja0xpbmVzLmxlbmd0aCA9PT0gMSlcblx0XHRjb2RlYmxvY2tMaW5lcyA9IFtcIlwiLFwiXCJdO1xuXHRjb2RlYmxvY2tDb2RlRWxlbWVudC5pbm5lckhUTUwgPSBcIlwiO1xuXHRyZXR1cm4gY29kZWJsb2NrTGluZXM7XG59XG5mdW5jdGlvbiBjb252ZXJ0Q29tbWVudExpbmtzKHJlc3VsdDogQXJyYXk8RWxlbWVudENvbnRlbnQ+LCBjb21tZW50VGV4dDogc3RyaW5nLCBzb3VyY2VQYXRoOiBzdHJpbmcsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbik6IEFycmF5PEVsZW1lbnRDb250ZW50PiB7XG5cdGNvbnN0IGxpbmtNYXRjaGVzID0gWy4uLmNvbW1lbnRUZXh0Lm1hdGNoQWxsKC8oPzpcXFtcXFtbXlxcXXxcXHJcXG5dKz8oPzpcXHxbXlxcXXxcXHJcXG5dKz8pP1xcXVxcXXxcXFsuKj9cXF1cXCguK1xcKSkvZyldLnJldmVyc2UoKTtcblx0Y29uc3QgbmV3Q2hpbGRyZW4gPSBsaW5rTWF0Y2hlcy5yZWR1Y2UoKHJlc3VsdDogQXJyYXk8RWxlbWVudENvbnRlbnQ+LCBsaW5rTWF0Y2g6IFJlZ0V4cE1hdGNoQXJyYXkpOiBBcnJheTxFbGVtZW50Q29udGVudD4gPT4ge1xuXHRcdGlmICh0eXBlb2YgbGlua01hdGNoPy5pbmRleCA9PT0gXCJ1bmRlZmluZWRcIilcblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0Y29uc3QgZW5kaW5nID0gY29tbWVudFRleHQuc2xpY2UobGlua01hdGNoLmluZGV4ICsgbGlua01hdGNoWzBdLmxlbmd0aCk7XG5cdFx0cmVzdWx0LnB1c2goe3R5cGU6IFwidGV4dFwiLHZhbHVlOiBlbmRpbmd9KTtcblx0XHRjb25zdCBsaW5rVGV4dCA9IGNvbW1lbnRUZXh0LnNsaWNlKGxpbmtNYXRjaC5pbmRleCwgbGlua01hdGNoLmluZGV4ICsgbGlua01hdGNoWzBdLmxlbmd0aCk7XG5cdFx0Y29uc3QgbGlua0NvbnRhaW5lciA9IGNyZWF0ZURpdigpO1xuXHRcdE1hcmtkb3duUmVuZGVyZXIucmVuZGVyKHBsdWdpbi5hcHAsIGxpbmtUZXh0LCBsaW5rQ29udGFpbmVyLCBzb3VyY2VQYXRoLCBwbHVnaW4pO1xuXHRcdGNvbnN0IGxpbmtDaGlsZCA9IChmcm9tSHRtbChsaW5rQ29udGFpbmVyLmlubmVySFRNTCx7ZnJhZ21lbnQ6IHRydWV9KT8uY2hpbGRyZW4/LlswXSBhcyBFbGVtZW50KT8uY2hpbGRyZW4/LlswXTtcblx0XHRyZXN1bHQucHVzaChsaW5rQ2hpbGQpO1xuXHRcdGNvbW1lbnRUZXh0ID0gY29tbWVudFRleHQuc2xpY2UoMCwgbGlua01hdGNoLmluZGV4KTtcblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9LFtdKS5yZXZlcnNlKCk7XG5cdHJldHVybiBbLi4ucmVzdWx0LCAuLi5be3R5cGU6IFwidGV4dFwiLHZhbHVlOiBjb21tZW50VGV4dH0gYXMgRWxlbWVudENvbnRlbnQsLi4ubmV3Q2hpbGRyZW5dXTtcbn1cbmZ1bmN0aW9uIGluc2VydExpbmVXcmFwcGVyKGNvZGVibG9ja0NvZGVFbGVtZW50OiBIVE1MRWxlbWVudCwgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgbGluZU51bWJlcjogbnVtYmVyLCBsaW5lOiBzdHJpbmcsIHNob3dMaW5lTnVtYmVyczogYm9vbGVhbik6IHZvaWQge1xuXHRjb25zdCBsaW5lV3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG5cdGNvZGVibG9ja0NvZGVFbGVtZW50LmFwcGVuZENoaWxkKGxpbmVXcmFwcGVyKTtcblx0Z2V0TGluZUNsYXNzZXMoY29kZWJsb2NrUGFyYW1ldGVycyxsaW5lTnVtYmVyLGxpbmUpLmZvckVhY2goKGxpbmVDbGFzcykgPT4gbGluZVdyYXBwZXIuY2xhc3NMaXN0LmFkZChsaW5lQ2xhc3MpKTtcblx0aWYgKChzaG93TGluZU51bWJlcnMgJiYgIWNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMuYWx3YXlzRGlzYWJsZWQpIHx8IGNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMuYWx3YXlzRW5hYmxlZClcblx0XHRsaW5lV3JhcHBlci5hcHBlbmRDaGlsZChjcmVhdGVEaXYoe2NsczogXCJjb2RlLXN0eWxlci1saW5lLW51bWJlclwiLCB0ZXh0OiAobGluZU51bWJlcitjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLm9mZnNldCkudG9TdHJpbmcoKX0pKTtcblx0bGluZVdyYXBwZXIuYXBwZW5kQ2hpbGQoY3JlYXRlRGl2KHtjbHM6IFwiY29kZS1zdHlsZXItbGluZS10ZXh0XCIsIHRleHQ6IHNhbml0aXplSFRNTFRvRG9tKGxpbmUgIT09IFwiXCIgPyBsaW5lIDogXCI8YnI+XCIpfSkpO1xufVxuZnVuY3Rpb24gY291bnRUYWJzKHRleHQ6IHN0cmluZyk6IG51bWJlciB7XG5cdC8vVE9ETyAoQG1heXVyYW5rdikgTWFrZSB3b3JrIHdpdGggc3BhY2UgaW5kZW50YXRpb24gdG9vXG5cdGxldCBjb3VudCA9IDA7XG5cdGxldCBpbmRleCA9IDA7XG5cdHdoaWxlICh0ZXh0LmNoYXJBdChpbmRleCsrKSA9PT0gXCJcXHRcIilcblx0XHRjb3VudCsrO1xuXHRyZXR1cm4gY291bnQ7XG59XG5hc3luYyBmdW5jdGlvbiBnZXRIaWdobGlnaHRlZEhUTUwocGFyYW1ldGVyczogSW5saW5lQ29kZVBhcmFtZXRlcnMsIHRleHQ6IHN0cmluZywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogUHJvbWlzZTxzdHJpbmc+IHtcblx0Y29uc3QgdGVtcG9yYXJ5UmVuZGVyaW5nQ29udGFpbmVyID0gY3JlYXRlRGl2KCk7XG5cdE1hcmtkb3duUmVuZGVyZXIucmVuZGVyKHBsdWdpbi5hcHAsW1wiYGBgXCIscGFyYW1ldGVycy5sYW5ndWFnZSxcIlxcblwiLHRleHQsXCJcXG5cIixcImBgYFwiXS5qb2luKFwiXCIpLHRlbXBvcmFyeVJlbmRlcmluZ0NvbnRhaW5lcixcIlwiLHBsdWdpbik7XG5cdGNvbnN0IHJlbmRlcmVkQ29kZUVsZW1lbnQgPSB0ZW1wb3JhcnlSZW5kZXJpbmdDb250YWluZXIucXVlcnlTZWxlY3RvcihcImNvZGVcIik7XG5cdGlmICghcmVuZGVyZWRDb2RlRWxlbWVudClcblx0XHRyZXR1cm4gXCJFUlJPUjogQ291bGQgbm90IHJlbmRlciBoaWdobGlnaHRlZCBjb2RlXCI7XG5cdHdoaWxlKHBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnN5bnRheEhpZ2hsaWdodCAmJiAhcmVuZGVyZWRDb2RlRWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoXCJpcy1sb2FkZWRcIikpXG5cdFx0YXdhaXQgc2xlZXAoMik7XG5cdHJldHVybiByZW5kZXJlZENvZGVFbGVtZW50LmlubmVySFRNTDtcbn1cblxuZXhwb3J0IGNvbnN0IGV4ZWN1dGVDb2RlTXV0YXRpb25PYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcblx0bXV0YXRpb25zLmZvckVhY2goKG11dGF0aW9uOiBNdXRhdGlvblJlY29yZCkgPT4ge1xuXHRcdGlmIChtdXRhdGlvbi50eXBlID09PSBcImNoaWxkTGlzdFwiICYmIChtdXRhdGlvbi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnRhZ05hbWUgPT09IFwiUFJFXCIpIHsgLy8gQWRkIGV4ZWN1dGUgY29kZSBvdXRwdXRcblx0XHRcdGNvbnN0IGV4ZWN1dGVDb2RlT3V0cHV0ID0gKG11dGF0aW9uLnRhcmdldCBhcyBIVE1MRWxlbWVudCkucXVlcnlTZWxlY3RvcihcInByZSA+IGNvZGUgfiBjb2RlLmxhbmd1YWdlLW91dHB1dFwiKSBhcyBIVE1MRWxlbWVudDtcblx0XHRcdGlmIChleGVjdXRlQ29kZU91dHB1dClcblx0XHRcdFx0ZXhlY3V0ZUNvZGVPdXRwdXQuY2xhc3NMaXN0LmFkZChcImV4ZWN1dGUtY29kZS1vdXRwdXRcIik7XG5cdFx0fVxuXHR9KTtcbn0pO1xuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Ob2RlfSBOb2RlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBhcmVudH0gUGFyZW50XG4gKi9cblxuLyoqXG4gKiBAdGVtcGxhdGUgRm5cbiAqIEB0ZW1wbGF0ZSBGYWxsYmFja1xuICogQHR5cGVkZWYge0ZuIGV4dGVuZHMgKHZhbHVlOiBhbnkpID0+IHZhbHVlIGlzIGluZmVyIFRoaW5nID8gVGhpbmcgOiBGYWxsYmFja30gUHJlZGljYXRlXG4gKi9cblxuLyoqXG4gKiBAY2FsbGJhY2sgQ2hlY2tcbiAqICAgQ2hlY2sgdGhhdCBhbiBhcmJpdHJhcnkgdmFsdWUgaXMgYSBub2RlLlxuICogQHBhcmFtIHt1bmtub3dufSB0aGlzXG4gKiAgIFRoZSBnaXZlbiBjb250ZXh0LlxuICogQHBhcmFtIHt1bmtub3dufSBbbm9kZV1cbiAqICAgQW55dGhpbmcgKHR5cGljYWxseSBhIG5vZGUpLlxuICogQHBhcmFtIHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbaW5kZXhdXG4gKiAgIFRoZSBub2RlXHUyMDE5cyBwb3NpdGlvbiBpbiBpdHMgcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkfSBbcGFyZW50XVxuICogICBUaGUgbm9kZVx1MjAxOXMgcGFyZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhpcyBpcyBhIG5vZGUgYW5kIHBhc3NlcyBhIHRlc3QuXG4gKlxuICogQHR5cGVkZWYge1JlY29yZDxzdHJpbmcsIHVua25vd24+IHwgTm9kZX0gUHJvcHNcbiAqICAgT2JqZWN0IHRvIGNoZWNrIGZvciBlcXVpdmFsZW5jZS5cbiAqXG4gKiAgIE5vdGU6IGBOb2RlYCBpcyBpbmNsdWRlZCBhcyBpdCBpcyBjb21tb24gYnV0IGlzIG5vdCBpbmRleGFibGUuXG4gKlxuICogQHR5cGVkZWYge0FycmF5PFByb3BzIHwgVGVzdEZ1bmN0aW9uIHwgc3RyaW5nPiB8IFByb3BzIHwgVGVzdEZ1bmN0aW9uIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gVGVzdFxuICogICBDaGVjayBmb3IgYW4gYXJiaXRyYXJ5IG5vZGUuXG4gKlxuICogQGNhbGxiYWNrIFRlc3RGdW5jdGlvblxuICogICBDaGVjayBpZiBhIG5vZGUgcGFzc2VzIGEgdGVzdC5cbiAqIEBwYXJhbSB7dW5rbm93bn0gdGhpc1xuICogICBUaGUgZ2l2ZW4gY29udGV4dC5cbiAqIEBwYXJhbSB7Tm9kZX0gbm9kZVxuICogICBBIG5vZGUuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gW2luZGV4XVxuICogICBUaGUgbm9kZVx1MjAxOXMgcG9zaXRpb24gaW4gaXRzIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50IHwgdW5kZWZpbmVkfSBbcGFyZW50XVxuICogICBUaGUgbm9kZVx1MjAxOXMgcGFyZW50LlxuICogQHJldHVybnMge2Jvb2xlYW4gfCB1bmRlZmluZWQgfCB2b2lkfVxuICogICBXaGV0aGVyIHRoaXMgbm9kZSBwYXNzZXMgdGhlIHRlc3QuXG4gKlxuICogICBOb3RlOiBgdm9pZGAgaXMgaW5jbHVkZWQgdW50aWwgVFMgc2VlcyBubyByZXR1cm4gYXMgYHVuZGVmaW5lZGAuXG4gKi9cblxuLyoqXG4gKiBDaGVjayBpZiBgbm9kZWAgaXMgYSBgTm9kZWAgYW5kIHdoZXRoZXIgaXQgcGFzc2VzIHRoZSBnaXZlbiB0ZXN0LlxuICpcbiAqIEBwYXJhbSB7dW5rbm93bn0gbm9kZVxuICogICBUaGluZyB0byBjaGVjaywgdHlwaWNhbGx5IGBOb2RlYC5cbiAqIEBwYXJhbSB7VGVzdH0gdGVzdFxuICogICBBIGNoZWNrIGZvciBhIHNwZWNpZmljIG5vZGUuXG4gKiBAcGFyYW0ge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIFRoZSBub2RlXHUyMDE5cyBwb3NpdGlvbiBpbiBpdHMgcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgVGhlIG5vZGVcdTIwMTlzIHBhcmVudC5cbiAqIEBwYXJhbSB7dW5rbm93bn0gY29udGV4dFxuICogICBDb250ZXh0IG9iamVjdCAoYHRoaXNgKSB0byBwYXNzIHRvIGB0ZXN0YCBmdW5jdGlvbnMuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciBgbm9kZWAgaXMgYSBub2RlIGFuZCBwYXNzZXMgYSB0ZXN0LlxuICovXG5leHBvcnQgY29uc3QgaXMgPVxuICAvLyBOb3RlOiBvdmVybG9hZHMgaW4gSlNEb2MgY2FuXHUyMDE5dCB5ZXQgdXNlIGRpZmZlcmVudCBgQHRlbXBsYXRlYHMuXG4gIC8qKlxuICAgKiBAdHlwZSB7KFxuICAgKiAgICg8Q29uZGl0aW9uIGV4dGVuZHMgc3RyaW5nPihub2RlOiB1bmtub3duLCB0ZXN0OiBDb25kaXRpb24sIGluZGV4PzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCwgcGFyZW50PzogUGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZCwgY29udGV4dD86IHVua25vd24pID0+IG5vZGUgaXMgTm9kZSAmIHt0eXBlOiBDb25kaXRpb259KSAmXG4gICAqICAgKDxDb25kaXRpb24gZXh0ZW5kcyBQcm9wcz4obm9kZTogdW5rbm93biwgdGVzdDogQ29uZGl0aW9uLCBpbmRleD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIHBhcmVudD86IFBhcmVudCB8IG51bGwgfCB1bmRlZmluZWQsIGNvbnRleHQ/OiB1bmtub3duKSA9PiBub2RlIGlzIE5vZGUgJiBDb25kaXRpb24pICZcbiAgICogICAoPENvbmRpdGlvbiBleHRlbmRzIFRlc3RGdW5jdGlvbj4obm9kZTogdW5rbm93biwgdGVzdDogQ29uZGl0aW9uLCBpbmRleD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIHBhcmVudD86IFBhcmVudCB8IG51bGwgfCB1bmRlZmluZWQsIGNvbnRleHQ/OiB1bmtub3duKSA9PiBub2RlIGlzIE5vZGUgJiBQcmVkaWNhdGU8Q29uZGl0aW9uLCBOb2RlPikgJlxuICAgKiAgICgobm9kZT86IG51bGwgfCB1bmRlZmluZWQpID0+IGZhbHNlKSAmXG4gICAqICAgKChub2RlOiB1bmtub3duLCB0ZXN0PzogbnVsbCB8IHVuZGVmaW5lZCwgaW5kZXg/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBwYXJlbnQ/OiBQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkLCBjb250ZXh0PzogdW5rbm93bikgPT4gbm9kZSBpcyBOb2RlKSAmXG4gICAqICAgKChub2RlOiB1bmtub3duLCB0ZXN0PzogVGVzdCwgaW5kZXg/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBwYXJlbnQ/OiBQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkLCBjb250ZXh0PzogdW5rbm93bikgPT4gYm9vbGVhbilcbiAgICogKX1cbiAgICovXG4gIChcbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge3Vua25vd259IFtub2RlXVxuICAgICAqIEBwYXJhbSB7VGVzdH0gW3Rlc3RdXG4gICAgICogQHBhcmFtIHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbaW5kZXhdXG4gICAgICogQHBhcmFtIHtQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkfSBbcGFyZW50XVxuICAgICAqIEBwYXJhbSB7dW5rbm93bn0gW2NvbnRleHRdXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1wYXJhbXNcbiAgICBmdW5jdGlvbiAobm9kZSwgdGVzdCwgaW5kZXgsIHBhcmVudCwgY29udGV4dCkge1xuICAgICAgY29uc3QgY2hlY2sgPSBjb252ZXJ0KHRlc3QpXG5cbiAgICAgIGlmIChcbiAgICAgICAgaW5kZXggIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICBpbmRleCAhPT0gbnVsbCAmJlxuICAgICAgICAodHlwZW9mIGluZGV4ICE9PSAnbnVtYmVyJyB8fFxuICAgICAgICAgIGluZGV4IDwgMCB8fFxuICAgICAgICAgIGluZGV4ID09PSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpXG4gICAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBwb3NpdGl2ZSBmaW5pdGUgaW5kZXgnKVxuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIHBhcmVudCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIHBhcmVudCAhPT0gbnVsbCAmJlxuICAgICAgICAoIWlzKHBhcmVudCkgfHwgIXBhcmVudC5jaGlsZHJlbilcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHBhcmVudCBub2RlJylcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICAocGFyZW50ID09PSB1bmRlZmluZWQgfHwgcGFyZW50ID09PSBudWxsKSAhPT1cbiAgICAgICAgKGluZGV4ID09PSB1bmRlZmluZWQgfHwgaW5kZXggPT09IG51bGwpXG4gICAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBib3RoIHBhcmVudCBhbmQgaW5kZXgnKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9va3NMaWtlQU5vZGUobm9kZSlcbiAgICAgICAgPyBjaGVjay5jYWxsKGNvbnRleHQsIG5vZGUsIGluZGV4LCBwYXJlbnQpXG4gICAgICAgIDogZmFsc2VcbiAgICB9XG4gIClcblxuLyoqXG4gKiBHZW5lcmF0ZSBhbiBhc3NlcnRpb24gZnJvbSBhIHRlc3QuXG4gKlxuICogVXNlZnVsIGlmIHlvdVx1MjAxOXJlIGdvaW5nIHRvIHRlc3QgbWFueSBub2RlcywgZm9yIGV4YW1wbGUgd2hlbiBjcmVhdGluZyBhXG4gKiB1dGlsaXR5IHdoZXJlIHNvbWV0aGluZyBlbHNlIHBhc3NlcyBhIGNvbXBhdGlibGUgdGVzdC5cbiAqXG4gKiBUaGUgY3JlYXRlZCBmdW5jdGlvbiBpcyBhIGJpdCBmYXN0ZXIgYmVjYXVzZSBpdCBleHBlY3RzIHZhbGlkIGlucHV0IG9ubHk6XG4gKiBhIGBub2RlYCwgYGluZGV4YCwgYW5kIGBwYXJlbnRgLlxuICpcbiAqIEBwYXJhbSB7VGVzdH0gdGVzdFxuICogICAqICAgd2hlbiBudWxsaXNoLCBjaGVja3MgaWYgYG5vZGVgIGlzIGEgYE5vZGVgLlxuICogICAqICAgd2hlbiBgc3RyaW5nYCwgd29ya3MgbGlrZSBwYXNzaW5nIGAobm9kZSkgPT4gbm9kZS50eXBlID09PSB0ZXN0YC5cbiAqICAgKiAgIHdoZW4gYGZ1bmN0aW9uYCBjaGVja3MgaWYgZnVuY3Rpb24gcGFzc2VkIHRoZSBub2RlIGlzIHRydWUuXG4gKiAgICogICB3aGVuIGBvYmplY3RgLCBjaGVja3MgdGhhdCBhbGwga2V5cyBpbiB0ZXN0IGFyZSBpbiBub2RlLCBhbmQgdGhhdCB0aGV5IGhhdmUgKHN0cmljdGx5KSBlcXVhbCB2YWx1ZXMuXG4gKiAgICogICB3aGVuIGBhcnJheWAsIGNoZWNrcyBpZiBhbnkgb25lIG9mIHRoZSBzdWJ0ZXN0cyBwYXNzLlxuICogQHJldHVybnMge0NoZWNrfVxuICogICBBbiBhc3NlcnRpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBjb252ZXJ0ID1cbiAgLy8gTm90ZTogb3ZlcmxvYWRzIGluIEpTRG9jIGNhblx1MjAxOXQgeWV0IHVzZSBkaWZmZXJlbnQgYEB0ZW1wbGF0ZWBzLlxuICAvKipcbiAgICogQHR5cGUgeyhcbiAgICogICAoPENvbmRpdGlvbiBleHRlbmRzIHN0cmluZz4odGVzdDogQ29uZGl0aW9uKSA9PiAobm9kZTogdW5rbm93biwgaW5kZXg/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBwYXJlbnQ/OiBQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkLCBjb250ZXh0PzogdW5rbm93bikgPT4gbm9kZSBpcyBOb2RlICYge3R5cGU6IENvbmRpdGlvbn0pICZcbiAgICogICAoPENvbmRpdGlvbiBleHRlbmRzIFByb3BzPih0ZXN0OiBDb25kaXRpb24pID0+IChub2RlOiB1bmtub3duLCBpbmRleD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIHBhcmVudD86IFBhcmVudCB8IG51bGwgfCB1bmRlZmluZWQsIGNvbnRleHQ/OiB1bmtub3duKSA9PiBub2RlIGlzIE5vZGUgJiBDb25kaXRpb24pICZcbiAgICogICAoPENvbmRpdGlvbiBleHRlbmRzIFRlc3RGdW5jdGlvbj4odGVzdDogQ29uZGl0aW9uKSA9PiAobm9kZTogdW5rbm93biwgaW5kZXg/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBwYXJlbnQ/OiBQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkLCBjb250ZXh0PzogdW5rbm93bikgPT4gbm9kZSBpcyBOb2RlICYgUHJlZGljYXRlPENvbmRpdGlvbiwgTm9kZT4pICZcbiAgICogICAoKHRlc3Q/OiBudWxsIHwgdW5kZWZpbmVkKSA9PiAobm9kZT86IHVua25vd24sIGluZGV4PzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCwgcGFyZW50PzogUGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZCwgY29udGV4dD86IHVua25vd24pID0+IG5vZGUgaXMgTm9kZSkgJlxuICAgKiAgICgodGVzdD86IFRlc3QpID0+IENoZWNrKVxuICAgKiApfVxuICAgKi9cbiAgKFxuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7VGVzdH0gW3Rlc3RdXG4gICAgICogQHJldHVybnMge0NoZWNrfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uICh0ZXN0KSB7XG4gICAgICBpZiAodGVzdCA9PT0gbnVsbCB8fCB0ZXN0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIG9rXG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgdGVzdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gY2FzdEZhY3RvcnkodGVzdClcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiB0ZXN0ID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh0ZXN0KSA/IGFueUZhY3RvcnkodGVzdCkgOiBwcm9wc0ZhY3RvcnkodGVzdClcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiB0ZXN0ID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gdHlwZUZhY3RvcnkodGVzdClcbiAgICAgIH1cblxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBmdW5jdGlvbiwgc3RyaW5nLCBvciBvYmplY3QgYXMgdGVzdCcpXG4gICAgfVxuICApXG5cbi8qKlxuICogQHBhcmFtIHtBcnJheTxQcm9wcyB8IFRlc3RGdW5jdGlvbiB8IHN0cmluZz59IHRlc3RzXG4gKiBAcmV0dXJucyB7Q2hlY2t9XG4gKi9cbmZ1bmN0aW9uIGFueUZhY3RvcnkodGVzdHMpIHtcbiAgLyoqIEB0eXBlIHtBcnJheTxDaGVjaz59ICovXG4gIGNvbnN0IGNoZWNrcyA9IFtdXG4gIGxldCBpbmRleCA9IC0xXG5cbiAgd2hpbGUgKCsraW5kZXggPCB0ZXN0cy5sZW5ndGgpIHtcbiAgICBjaGVja3NbaW5kZXhdID0gY29udmVydCh0ZXN0c1tpbmRleF0pXG4gIH1cblxuICByZXR1cm4gY2FzdEZhY3RvcnkoYW55KVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7dW5rbm93bn1cbiAgICogQHR5cGUge1Rlc3RGdW5jdGlvbn1cbiAgICovXG4gIGZ1bmN0aW9uIGFueSguLi5wYXJhbWV0ZXJzKSB7XG4gICAgbGV0IGluZGV4ID0gLTFcblxuICAgIHdoaWxlICgrK2luZGV4IDwgY2hlY2tzLmxlbmd0aCkge1xuICAgICAgaWYgKGNoZWNrc1tpbmRleF0uYXBwbHkodGhpcywgcGFyYW1ldGVycykpIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cblxuLyoqXG4gKiBUdXJuIGFuIG9iamVjdCBpbnRvIGEgdGVzdCBmb3IgYSBub2RlIHdpdGggYSBjZXJ0YWluIGZpZWxkcy5cbiAqXG4gKiBAcGFyYW0ge1Byb3BzfSBjaGVja1xuICogQHJldHVybnMge0NoZWNrfVxuICovXG5mdW5jdGlvbiBwcm9wc0ZhY3RvcnkoY2hlY2spIHtcbiAgY29uc3QgY2hlY2tBc1JlY29yZCA9IC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgdW5rbm93bj59ICovIChjaGVjaylcblxuICByZXR1cm4gY2FzdEZhY3RvcnkoYWxsKVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge05vZGV9IG5vZGVcbiAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAqL1xuICBmdW5jdGlvbiBhbGwobm9kZSkge1xuICAgIGNvbnN0IG5vZGVBc1JlY29yZCA9IC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgdW5rbm93bj59ICovIChcbiAgICAgIC8qKiBAdHlwZSB7dW5rbm93bn0gKi8gKG5vZGUpXG4gICAgKVxuXG4gICAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gICAgbGV0IGtleVxuXG4gICAgZm9yIChrZXkgaW4gY2hlY2spIHtcbiAgICAgIGlmIChub2RlQXNSZWNvcmRba2V5XSAhPT0gY2hlY2tBc1JlY29yZFtrZXldKSByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG59XG5cbi8qKlxuICogVHVybiBhIHN0cmluZyBpbnRvIGEgdGVzdCBmb3IgYSBub2RlIHdpdGggYSBjZXJ0YWluIHR5cGUuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGNoZWNrXG4gKiBAcmV0dXJucyB7Q2hlY2t9XG4gKi9cbmZ1bmN0aW9uIHR5cGVGYWN0b3J5KGNoZWNrKSB7XG4gIHJldHVybiBjYXN0RmFjdG9yeSh0eXBlKVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge05vZGV9IG5vZGVcbiAgICovXG4gIGZ1bmN0aW9uIHR5cGUobm9kZSkge1xuICAgIHJldHVybiBub2RlICYmIG5vZGUudHlwZSA9PT0gY2hlY2tcbiAgfVxufVxuXG4vKipcbiAqIFR1cm4gYSBjdXN0b20gdGVzdCBpbnRvIGEgdGVzdCBmb3IgYSBub2RlIHRoYXQgcGFzc2VzIHRoYXQgdGVzdC5cbiAqXG4gKiBAcGFyYW0ge1Rlc3RGdW5jdGlvbn0gdGVzdEZ1bmN0aW9uXG4gKiBAcmV0dXJucyB7Q2hlY2t9XG4gKi9cbmZ1bmN0aW9uIGNhc3RGYWN0b3J5KHRlc3RGdW5jdGlvbikge1xuICByZXR1cm4gY2hlY2tcblxuICAvKipcbiAgICogQHRoaXMge3Vua25vd259XG4gICAqIEB0eXBlIHtDaGVja31cbiAgICovXG4gIGZ1bmN0aW9uIGNoZWNrKHZhbHVlLCBpbmRleCwgcGFyZW50KSB7XG4gICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICBsb29rc0xpa2VBTm9kZSh2YWx1ZSkgJiZcbiAgICAgICAgdGVzdEZ1bmN0aW9uLmNhbGwoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICB0eXBlb2YgaW5kZXggPT09ICdudW1iZXInID8gaW5kZXggOiB1bmRlZmluZWQsXG4gICAgICAgICAgcGFyZW50IHx8IHVuZGVmaW5lZFxuICAgICAgICApXG4gICAgKVxuICB9XG59XG5cbmZ1bmN0aW9uIG9rKCkge1xuICByZXR1cm4gdHJ1ZVxufVxuXG4vKipcbiAqIEBwYXJhbSB7dW5rbm93bn0gdmFsdWVcbiAqIEByZXR1cm5zIHt2YWx1ZSBpcyBOb2RlfVxuICovXG5mdW5jdGlvbiBsb29rc0xpa2VBTm9kZSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAndHlwZScgaW4gdmFsdWVcbn1cbiIsICIvKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBkXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29sb3IoZCkge1xuICByZXR1cm4gZFxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Ob2RlfSBVbmlzdE5vZGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUGFyZW50fSBVbmlzdFBhcmVudFxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge0V4Y2x1ZGU8aW1wb3J0KCd1bmlzdC11dGlsLWlzJykuVGVzdCwgdW5kZWZpbmVkPiB8IHVuZGVmaW5lZH0gVGVzdFxuICogICBUZXN0IGZyb20gYHVuaXN0LXV0aWwtaXNgLlxuICpcbiAqICAgTm90ZTogd2UgaGF2ZSByZW1vdmUgYW5kIGFkZCBgdW5kZWZpbmVkYCwgYmVjYXVzZSBvdGhlcndpc2Ugd2hlbiBnZW5lcmF0aW5nXG4gKiAgIGF1dG9tYXRpYyBgLmQudHNgIGZpbGVzLCBUUyB0cmllcyB0byBmbGF0dGVuIHBhdGhzIGZyb20gYSBsb2NhbCBwZXJzcGVjdGl2ZSxcbiAqICAgd2hpY2ggZG9lc25cdTIwMTl0IHdvcmsgd2hlbiBwdWJsaXNoaW5nIG9uIG5wbS5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHsoXG4gKiAgIEZuIGV4dGVuZHMgKHZhbHVlOiBhbnkpID0+IHZhbHVlIGlzIGluZmVyIFRoaW5nXG4gKiAgID8gVGhpbmdcbiAqICAgOiBGYWxsYmFja1xuICogKX0gUHJlZGljYXRlXG4gKiAgIEdldCB0aGUgdmFsdWUgb2YgYSB0eXBlIGd1YXJkIGBGbmAuXG4gKiBAdGVtcGxhdGUgRm5cbiAqICAgVmFsdWU7IHR5cGljYWxseSBmdW5jdGlvbiB0aGF0IGlzIGEgdHlwZSBndWFyZCAoc3VjaCBhcyBgKHgpOiB4IGlzIFlgKS5cbiAqIEB0ZW1wbGF0ZSBGYWxsYmFja1xuICogICBWYWx1ZSB0byB5aWVsZCBpZiBgRm5gIGlzIG5vdCBhIHR5cGUgZ3VhcmQuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7KFxuICogICBDaGVjayBleHRlbmRzIG51bGwgfCB1bmRlZmluZWQgLy8gTm8gdGVzdC5cbiAqICAgPyBWYWx1ZVxuICogICA6IFZhbHVlIGV4dGVuZHMge3R5cGU6IENoZWNrfSAvLyBTdHJpbmcgKHR5cGUpIHRlc3QuXG4gKiAgID8gVmFsdWVcbiAqICAgOiBWYWx1ZSBleHRlbmRzIENoZWNrIC8vIFBhcnRpYWwgdGVzdC5cbiAqICAgPyBWYWx1ZVxuICogICA6IENoZWNrIGV4dGVuZHMgRnVuY3Rpb24gLy8gRnVuY3Rpb24gdGVzdC5cbiAqICAgPyBQcmVkaWNhdGU8Q2hlY2ssIFZhbHVlPiBleHRlbmRzIFZhbHVlXG4gKiAgICAgPyBQcmVkaWNhdGU8Q2hlY2ssIFZhbHVlPlxuICogICAgIDogbmV2ZXJcbiAqICAgOiBuZXZlciAvLyBTb21lIG90aGVyIHRlc3Q/XG4gKiApfSBNYXRjaGVzT25lXG4gKiAgIENoZWNrIHdoZXRoZXIgYSBub2RlIG1hdGNoZXMgYSBwcmltaXRpdmUgY2hlY2sgaW4gdGhlIHR5cGUgc3lzdGVtLlxuICogQHRlbXBsYXRlIFZhbHVlXG4gKiAgIFZhbHVlOyB0eXBpY2FsbHkgdW5pc3QgYE5vZGVgLlxuICogQHRlbXBsYXRlIENoZWNrXG4gKiAgIFZhbHVlOyB0eXBpY2FsbHkgYHVuaXN0LXV0aWwtaXNgLWNvbXBhdGlibGUgdGVzdCwgYnV0IG5vdCBhcnJheXMuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7KFxuICogICBDaGVjayBleHRlbmRzIEFycmF5PGFueT5cbiAqICAgPyBNYXRjaGVzT25lPFZhbHVlLCBDaGVja1trZXlvZiBDaGVja10+XG4gKiAgIDogTWF0Y2hlc09uZTxWYWx1ZSwgQ2hlY2s+XG4gKiApfSBNYXRjaGVzXG4gKiAgIENoZWNrIHdoZXRoZXIgYSBub2RlIG1hdGNoZXMgYSBjaGVjayBpbiB0aGUgdHlwZSBzeXN0ZW0uXG4gKiBAdGVtcGxhdGUgVmFsdWVcbiAqICAgVmFsdWU7IHR5cGljYWxseSB1bmlzdCBgTm9kZWAuXG4gKiBAdGVtcGxhdGUgQ2hlY2tcbiAqICAgVmFsdWU7IHR5cGljYWxseSBgdW5pc3QtdXRpbC1pc2AtY29tcGF0aWJsZSB0ZXN0LlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgezAgfCAxIHwgMiB8IDMgfCA0IHwgNSB8IDYgfCA3IHwgOCB8IDkgfCAxMH0gVWludFxuICogICBOdW1iZXI7IGNhcHBlZCByZWFzb25hYmx5LlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge0kgZXh0ZW5kcyAwID8gMSA6IEkgZXh0ZW5kcyAxID8gMiA6IEkgZXh0ZW5kcyAyID8gMyA6IEkgZXh0ZW5kcyAzID8gNCA6IEkgZXh0ZW5kcyA0ID8gNSA6IEkgZXh0ZW5kcyA1ID8gNiA6IEkgZXh0ZW5kcyA2ID8gNyA6IEkgZXh0ZW5kcyA3ID8gOCA6IEkgZXh0ZW5kcyA4ID8gOSA6IDEwfSBJbmNyZW1lbnRcbiAqICAgSW5jcmVtZW50IGEgbnVtYmVyIGluIHRoZSB0eXBlIHN5c3RlbS5cbiAqIEB0ZW1wbGF0ZSB7VWludH0gW0k9MF1cbiAqICAgSW5kZXguXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7KFxuICogICBOb2RlIGV4dGVuZHMgVW5pc3RQYXJlbnRcbiAqICAgPyBOb2RlIGV4dGVuZHMge2NoaWxkcmVuOiBBcnJheTxpbmZlciBDaGlsZHJlbj59XG4gKiAgICAgPyBDaGlsZCBleHRlbmRzIENoaWxkcmVuID8gTm9kZSA6IG5ldmVyXG4gKiAgICAgOiBuZXZlclxuICogICA6IG5ldmVyXG4gKiApfSBJbnRlcm5hbFBhcmVudFxuICogICBDb2xsZWN0IG5vZGVzIHRoYXQgY2FuIGJlIHBhcmVudHMgb2YgYENoaWxkYC5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBOb2RlXG4gKiAgIEFsbCBub2RlIHR5cGVzIGluIGEgdHJlZS5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBDaGlsZFxuICogICBOb2RlIHRvIHNlYXJjaCBmb3IuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7SW50ZXJuYWxQYXJlbnQ8SW5jbHVzaXZlRGVzY2VuZGFudDxUcmVlPiwgQ2hpbGQ+fSBQYXJlbnRcbiAqICAgQ29sbGVjdCBub2RlcyBpbiBgVHJlZWAgdGhhdCBjYW4gYmUgcGFyZW50cyBvZiBgQ2hpbGRgLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IFRyZWVcbiAqICAgQWxsIG5vZGUgdHlwZXMgaW4gYSB0cmVlLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IENoaWxkXG4gKiAgIE5vZGUgdG8gc2VhcmNoIGZvci5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHsoXG4gKiAgIERlcHRoIGV4dGVuZHMgTWF4XG4gKiAgID8gbmV2ZXJcbiAqICAgOlxuICogICAgIHwgSW50ZXJuYWxQYXJlbnQ8Tm9kZSwgQ2hpbGQ+XG4gKiAgICAgfCBJbnRlcm5hbEFuY2VzdG9yPE5vZGUsIEludGVybmFsUGFyZW50PE5vZGUsIENoaWxkPiwgTWF4LCBJbmNyZW1lbnQ8RGVwdGg+PlxuICogKX0gSW50ZXJuYWxBbmNlc3RvclxuICogICBDb2xsZWN0IG5vZGVzIGluIGBUcmVlYCB0aGF0IGNhbiBiZSBhbmNlc3RvcnMgb2YgYENoaWxkYC5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBOb2RlXG4gKiAgIEFsbCBub2RlIHR5cGVzIGluIGEgdHJlZS5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBDaGlsZFxuICogICBOb2RlIHRvIHNlYXJjaCBmb3IuXG4gKiBAdGVtcGxhdGUge1VpbnR9IFtNYXg9MTBdXG4gKiAgIE1heDsgc2VhcmNoZXMgdXAgdG8gdGhpcyBkZXB0aC5cbiAqIEB0ZW1wbGF0ZSB7VWludH0gW0RlcHRoPTBdXG4gKiAgIEN1cnJlbnQgZGVwdGguXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7SW50ZXJuYWxBbmNlc3RvcjxJbmNsdXNpdmVEZXNjZW5kYW50PFRyZWU+LCBDaGlsZD59IEFuY2VzdG9yXG4gKiAgIENvbGxlY3Qgbm9kZXMgaW4gYFRyZWVgIHRoYXQgY2FuIGJlIGFuY2VzdG9ycyBvZiBgQ2hpbGRgLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IFRyZWVcbiAqICAgQWxsIG5vZGUgdHlwZXMgaW4gYSB0cmVlLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IENoaWxkXG4gKiAgIE5vZGUgdG8gc2VhcmNoIGZvci5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHsoXG4gKiAgIFRyZWUgZXh0ZW5kcyBVbmlzdFBhcmVudFxuICogICAgID8gRGVwdGggZXh0ZW5kcyBNYXhcbiAqICAgICAgID8gVHJlZVxuICogICAgICAgOiBUcmVlIHwgSW5jbHVzaXZlRGVzY2VuZGFudDxUcmVlWydjaGlsZHJlbiddW251bWJlcl0sIE1heCwgSW5jcmVtZW50PERlcHRoPj5cbiAqICAgICA6IFRyZWVcbiAqICl9IEluY2x1c2l2ZURlc2NlbmRhbnRcbiAqICAgQ29sbGVjdCBhbGwgKGluY2x1c2l2ZSkgZGVzY2VuZGFudHMgb2YgYFRyZWVgLlxuICpcbiAqICAgPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IGZvciBwZXJmb3JtYW5jZSByZWFzb25zLCB0aGlzIHNlZW1zIHRvIGJlIHRoZSBmYXN0ZXN0IHdheSB0b1xuICogICA+IHJlY3Vyc2Ugd2l0aG91dCBhY3R1YWxseSBydW5uaW5nIGludG8gYW4gaW5maW5pdGUgbG9vcCwgd2hpY2ggdGhlXG4gKiAgID4gcHJldmlvdXMgdmVyc2lvbiBkaWQuXG4gKiAgID5cbiAqICAgPiBQcmFjdGljYWxseSwgYSBtYXggb2YgYDJgIGlzIHR5cGljYWxseSBlbm91Z2ggYXNzdW1pbmcgYSBgUm9vdGAgaXNcbiAqICAgPiBwYXNzZWQsIGJ1dCBpdCBkb2Vzblx1MjAxOXQgaW1wcm92ZSBwZXJmb3JtYW5jZS5cbiAqICAgPiBJdCBnZXRzIGhpZ2hlciB3aXRoIGBMaXN0ID4gTGlzdEl0ZW0gPiBUYWJsZSA+IFRhYmxlUm93ID4gVGFibGVDZWxsYC5cbiAqICAgPiBVc2luZyB1cCB0byBgMTBgIGRvZXNuXHUyMDE5dCBodXJ0IG9yIGhlbHAgZWl0aGVyLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IFRyZWVcbiAqICAgVHJlZSB0eXBlLlxuICogQHRlbXBsYXRlIHtVaW50fSBbTWF4PTEwXVxuICogICBNYXg7IHNlYXJjaGVzIHVwIHRvIHRoaXMgZGVwdGguXG4gKiBAdGVtcGxhdGUge1VpbnR9IFtEZXB0aD0wXVxuICogICBDdXJyZW50IGRlcHRoLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgeydza2lwJyB8IGJvb2xlYW59IEFjdGlvblxuICogICBVbmlvbiBvZiB0aGUgYWN0aW9uIHR5cGVzLlxuICpcbiAqIEB0eXBlZGVmIHtudW1iZXJ9IEluZGV4XG4gKiAgIE1vdmUgdG8gdGhlIHNpYmxpbmcgYXQgYGluZGV4YCBuZXh0IChhZnRlciBub2RlIGl0c2VsZiBpcyBjb21wbGV0ZWx5XG4gKiAgIHRyYXZlcnNlZCkuXG4gKlxuICogICBVc2VmdWwgaWYgbXV0YXRpbmcgdGhlIHRyZWUsIHN1Y2ggYXMgcmVtb3ZpbmcgdGhlIG5vZGUgdGhlIHZpc2l0b3IgaXNcbiAqICAgY3VycmVudGx5IG9uLCBvciBhbnkgb2YgaXRzIHByZXZpb3VzIHNpYmxpbmdzLlxuICogICBSZXN1bHRzIGxlc3MgdGhhbiAwIG9yIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBgY2hpbGRyZW4ubGVuZ3RoYCBzdG9wXG4gKiAgIHRyYXZlcnNpbmcgdGhlIHBhcmVudC5cbiAqXG4gKiBAdHlwZWRlZiB7WyhBY3Rpb24gfCBudWxsIHwgdW5kZWZpbmVkIHwgdm9pZCk/LCAoSW5kZXggfCBudWxsIHwgdW5kZWZpbmVkKT9dfSBBY3Rpb25UdXBsZVxuICogICBMaXN0IHdpdGggb25lIG9yIHR3byB2YWx1ZXMsIHRoZSBmaXJzdCBhbiBhY3Rpb24sIHRoZSBzZWNvbmQgYW4gaW5kZXguXG4gKlxuICogQHR5cGVkZWYge0FjdGlvbiB8IEFjdGlvblR1cGxlIHwgSW5kZXggfCBudWxsIHwgdW5kZWZpbmVkIHwgdm9pZH0gVmlzaXRvclJlc3VsdFxuICogICBBbnkgdmFsdWUgdGhhdCBjYW4gYmUgcmV0dXJuZWQgZnJvbSBhIHZpc2l0b3IuXG4gKi9cblxuLyoqXG4gKiBAY2FsbGJhY2sgVmlzaXRvclxuICogICBIYW5kbGUgYSBub2RlIChtYXRjaGluZyBgdGVzdGAsIGlmIGdpdmVuKS5cbiAqXG4gKiAgIFZpc2l0b3JzIGFyZSBmcmVlIHRvIHRyYW5zZm9ybSBgbm9kZWAuXG4gKiAgIFRoZXkgY2FuIGFsc28gdHJhbnNmb3JtIHRoZSBwYXJlbnQgb2Ygbm9kZSAodGhlIGxhc3Qgb2YgYGFuY2VzdG9yc2ApLlxuICpcbiAqICAgUmVwbGFjaW5nIGBub2RlYCBpdHNlbGYsIGlmIGBTS0lQYCBpcyBub3QgcmV0dXJuZWQsIHN0aWxsIGNhdXNlcyBpdHNcbiAqICAgZGVzY2VuZGFudHMgdG8gYmUgd2Fsa2VkICh3aGljaCBpcyBhIGJ1ZykuXG4gKlxuICogICBXaGVuIGFkZGluZyBvciByZW1vdmluZyBwcmV2aW91cyBzaWJsaW5ncyBvZiBgbm9kZWAgKG9yIG5leHQgc2libGluZ3MsIGluXG4gKiAgIGNhc2Ugb2YgcmV2ZXJzZSksIHRoZSBgVmlzaXRvcmAgc2hvdWxkIHJldHVybiBhIG5ldyBgSW5kZXhgIHRvIHNwZWNpZnkgdGhlXG4gKiAgIHNpYmxpbmcgdG8gdHJhdmVyc2UgYWZ0ZXIgYG5vZGVgIGlzIHRyYXZlcnNlZC5cbiAqICAgQWRkaW5nIG9yIHJlbW92aW5nIG5leHQgc2libGluZ3Mgb2YgYG5vZGVgIChvciBwcmV2aW91cyBzaWJsaW5ncywgaW4gY2FzZVxuICogICBvZiByZXZlcnNlKSBpcyBoYW5kbGVkIGFzIGV4cGVjdGVkIHdpdGhvdXQgbmVlZGluZyB0byByZXR1cm4gYSBuZXcgYEluZGV4YC5cbiAqXG4gKiAgIFJlbW92aW5nIHRoZSBjaGlsZHJlbiBwcm9wZXJ0eSBvZiBhbiBhbmNlc3RvciBzdGlsbCByZXN1bHRzIGluIHRoZW0gYmVpbmdcbiAqICAgdHJhdmVyc2VkLlxuICogQHBhcmFtIHtWaXNpdGVkfSBub2RlXG4gKiAgIEZvdW5kIG5vZGUuXG4gKiBAcGFyYW0ge0FycmF5PFZpc2l0ZWRQYXJlbnRzPn0gYW5jZXN0b3JzXG4gKiAgIEFuY2VzdG9ycyBvZiBgbm9kZWAuXG4gKiBAcmV0dXJucyB7VmlzaXRvclJlc3VsdH1cbiAqICAgV2hhdCB0byBkbyBuZXh0LlxuICpcbiAqICAgQW4gYEluZGV4YCBpcyB0cmVhdGVkIGFzIGEgdHVwbGUgb2YgYFtDT05USU5VRSwgSW5kZXhdYC5cbiAqICAgQW4gYEFjdGlvbmAgaXMgdHJlYXRlZCBhcyBhIHR1cGxlIG9mIGBbQWN0aW9uXWAuXG4gKlxuICogICBQYXNzaW5nIGEgdHVwbGUgYmFjayBvbmx5IG1ha2VzIHNlbnNlIGlmIHRoZSBgQWN0aW9uYCBpcyBgU0tJUGAuXG4gKiAgIFdoZW4gdGhlIGBBY3Rpb25gIGlzIGBFWElUYCwgdGhhdCBhY3Rpb24gY2FuIGJlIHJldHVybmVkLlxuICogICBXaGVuIHRoZSBgQWN0aW9uYCBpcyBgQ09OVElOVUVgLCBgSW5kZXhgIGNhbiBiZSByZXR1cm5lZC5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBbVmlzaXRlZD1VbmlzdE5vZGVdXG4gKiAgIFZpc2l0ZWQgbm9kZSB0eXBlLlxuICogQHRlbXBsYXRlIHtVbmlzdFBhcmVudH0gW1Zpc2l0ZWRQYXJlbnRzPVVuaXN0UGFyZW50XVxuICogICBBbmNlc3RvciB0eXBlLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge1Zpc2l0b3I8TWF0Y2hlczxJbmNsdXNpdmVEZXNjZW5kYW50PFRyZWU+LCBDaGVjaz4sIEFuY2VzdG9yPFRyZWUsIE1hdGNoZXM8SW5jbHVzaXZlRGVzY2VuZGFudDxUcmVlPiwgQ2hlY2s+Pj59IEJ1aWxkVmlzaXRvclxuICogICBCdWlsZCBhIHR5cGVkIGBWaXNpdG9yYCBmdW5jdGlvbiBmcm9tIGEgdHJlZSBhbmQgYSB0ZXN0LlxuICpcbiAqICAgSXQgd2lsbCBpbmZlciB3aGljaCB2YWx1ZXMgYXJlIHBhc3NlZCBhcyBgbm9kZWAgYW5kIHdoaWNoIGFzIGBwYXJlbnRzYC5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBbVHJlZT1VbmlzdE5vZGVdXG4gKiAgIFRyZWUgdHlwZS5cbiAqIEB0ZW1wbGF0ZSB7VGVzdH0gW0NoZWNrPVRlc3RdXG4gKiAgIFRlc3QgdHlwZS5cbiAqL1xuXG5pbXBvcnQge2NvbnZlcnR9IGZyb20gJ3VuaXN0LXV0aWwtaXMnXG5pbXBvcnQge2NvbG9yfSBmcm9tICd1bmlzdC11dGlsLXZpc2l0LXBhcmVudHMvZG8tbm90LXVzZS1jb2xvcidcblxuLyoqIEB0eXBlIHtSZWFkb25seTxBY3Rpb25UdXBsZT59ICovXG5jb25zdCBlbXB0eSA9IFtdXG5cbi8qKlxuICogQ29udGludWUgdHJhdmVyc2luZyBhcyBub3JtYWwuXG4gKi9cbmV4cG9ydCBjb25zdCBDT05USU5VRSA9IHRydWVcblxuLyoqXG4gKiBTdG9wIHRyYXZlcnNpbmcgaW1tZWRpYXRlbHkuXG4gKi9cbmV4cG9ydCBjb25zdCBFWElUID0gZmFsc2VcblxuLyoqXG4gKiBEbyBub3QgdHJhdmVyc2UgdGhpcyBub2RlXHUyMDE5cyBjaGlsZHJlbi5cbiAqL1xuZXhwb3J0IGNvbnN0IFNLSVAgPSAnc2tpcCdcblxuLyoqXG4gKiBWaXNpdCBub2Rlcywgd2l0aCBhbmNlc3RyYWwgaW5mb3JtYXRpb24uXG4gKlxuICogVGhpcyBhbGdvcml0aG0gcGVyZm9ybXMgKmRlcHRoLWZpcnN0KiAqdHJlZSB0cmF2ZXJzYWwqIGluICpwcmVvcmRlcipcbiAqICgqKk5MUioqKSBvciBpZiBgcmV2ZXJzZWAgaXMgZ2l2ZW4sIGluICpyZXZlcnNlIHByZW9yZGVyKiAoKipOUkwqKikuXG4gKlxuICogWW91IGNhbiBjaG9vc2UgZm9yIHdoaWNoIG5vZGVzIGB2aXNpdG9yYCBpcyBjYWxsZWQgYnkgcGFzc2luZyBhIGB0ZXN0YC5cbiAqIEZvciBjb21wbGV4IHRlc3RzLCB5b3Ugc2hvdWxkIHRlc3QgeW91cnNlbGYgaW4gYHZpc2l0b3JgLCBhcyBpdCB3aWxsIGJlXG4gKiBmYXN0ZXIgYW5kIHdpbGwgaGF2ZSBpbXByb3ZlZCB0eXBlIGluZm9ybWF0aW9uLlxuICpcbiAqIFdhbGtpbmcgdGhlIHRyZWUgaXMgYW4gaW50ZW5zaXZlIHRhc2suXG4gKiBNYWtlIHVzZSBvZiB0aGUgcmV0dXJuIHZhbHVlcyBvZiB0aGUgdmlzaXRvciB3aGVuIHBvc3NpYmxlLlxuICogSW5zdGVhZCBvZiB3YWxraW5nIGEgdHJlZSBtdWx0aXBsZSB0aW1lcywgd2FsayBpdCBvbmNlLCB1c2UgYHVuaXN0LXV0aWwtaXNgXG4gKiB0byBjaGVjayBpZiBhIG5vZGUgbWF0Y2hlcywgYW5kIHRoZW4gcGVyZm9ybSBkaWZmZXJlbnQgb3BlcmF0aW9ucy5cbiAqXG4gKiBZb3UgY2FuIGNoYW5nZSB0aGUgdHJlZS5cbiAqIFNlZSBgVmlzaXRvcmAgZm9yIG1vcmUgaW5mby5cbiAqXG4gKiBAb3ZlcmxvYWRcbiAqIEBwYXJhbSB7VHJlZX0gdHJlZVxuICogQHBhcmFtIHtDaGVja30gY2hlY2tcbiAqIEBwYXJhbSB7QnVpbGRWaXNpdG9yPFRyZWUsIENoZWNrPn0gdmlzaXRvclxuICogQHBhcmFtIHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3JldmVyc2VdXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICpcbiAqIEBvdmVybG9hZFxuICogQHBhcmFtIHtUcmVlfSB0cmVlXG4gKiBAcGFyYW0ge0J1aWxkVmlzaXRvcjxUcmVlPn0gdmlzaXRvclxuICogQHBhcmFtIHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3JldmVyc2VdXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICpcbiAqIEBwYXJhbSB7VW5pc3ROb2RlfSB0cmVlXG4gKiAgIFRyZWUgdG8gdHJhdmVyc2UuXG4gKiBAcGFyYW0ge1Zpc2l0b3IgfCBUZXN0fSB0ZXN0XG4gKiAgIGB1bmlzdC11dGlsLWlzYC1jb21wYXRpYmxlIHRlc3RcbiAqIEBwYXJhbSB7VmlzaXRvciB8IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbdmlzaXRvcl1cbiAqICAgSGFuZGxlIGVhY2ggbm9kZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtyZXZlcnNlXVxuICogICBUcmF2ZXJzZSBpbiByZXZlcnNlIHByZW9yZGVyIChOUkwpIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgcHJlb3JkZXIgKE5MUikuXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICogICBOb3RoaW5nLlxuICpcbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBUcmVlXG4gKiAgIE5vZGUgdHlwZS5cbiAqIEB0ZW1wbGF0ZSB7VGVzdH0gQ2hlY2tcbiAqICAgYHVuaXN0LXV0aWwtaXNgLWNvbXBhdGlibGUgdGVzdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZpc2l0UGFyZW50cyh0cmVlLCB0ZXN0LCB2aXNpdG9yLCByZXZlcnNlKSB7XG4gIC8qKiBAdHlwZSB7VGVzdH0gKi9cbiAgbGV0IGNoZWNrXG5cbiAgaWYgKHR5cGVvZiB0ZXN0ID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiB2aXNpdG9yICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV2ZXJzZSA9IHZpc2l0b3JcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIG5vIHZpc2l0b3IgZ2l2ZW4sIHNvIGB2aXNpdG9yYCBpcyB0ZXN0LlxuICAgIHZpc2l0b3IgPSB0ZXN0XG4gIH0gZWxzZSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciB2aXNpdG9yIGdpdmVuLCBzbyBgdGVzdGAgaXNuXHUyMDE5dCBhIHZpc2l0b3IuXG4gICAgY2hlY2sgPSB0ZXN0XG4gIH1cblxuICBjb25zdCBpcyA9IGNvbnZlcnQoY2hlY2spXG4gIGNvbnN0IHN0ZXAgPSByZXZlcnNlID8gLTEgOiAxXG5cbiAgZmFjdG9yeSh0cmVlLCB1bmRlZmluZWQsIFtdKSgpXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7VW5pc3ROb2RlfSBub2RlXG4gICAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICAgKiBAcGFyYW0ge0FycmF5PFVuaXN0UGFyZW50Pn0gcGFyZW50c1xuICAgKi9cbiAgZnVuY3Rpb24gZmFjdG9yeShub2RlLCBpbmRleCwgcGFyZW50cykge1xuICAgIGNvbnN0IHZhbHVlID0gLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn0gKi8gKFxuICAgICAgbm9kZSAmJiB0eXBlb2Ygbm9kZSA9PT0gJ29iamVjdCcgPyBub2RlIDoge31cbiAgICApXG5cbiAgICBpZiAodHlwZW9mIHZhbHVlLnR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBuYW1lID1cbiAgICAgICAgLy8gYGhhc3RgXG4gICAgICAgIHR5cGVvZiB2YWx1ZS50YWdOYW1lID09PSAnc3RyaW5nJ1xuICAgICAgICAgID8gdmFsdWUudGFnTmFtZVxuICAgICAgICAgIDogLy8gYHhhc3RgXG4gICAgICAgICAgdHlwZW9mIHZhbHVlLm5hbWUgPT09ICdzdHJpbmcnXG4gICAgICAgICAgPyB2YWx1ZS5uYW1lXG4gICAgICAgICAgOiB1bmRlZmluZWRcblxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHZpc2l0LCAnbmFtZScsIHtcbiAgICAgICAgdmFsdWU6XG4gICAgICAgICAgJ25vZGUgKCcgKyBjb2xvcihub2RlLnR5cGUgKyAobmFtZSA/ICc8JyArIG5hbWUgKyAnPicgOiAnJykpICsgJyknXG4gICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiB2aXNpdFxuXG4gICAgZnVuY3Rpb24gdmlzaXQoKSB7XG4gICAgICAvKiogQHR5cGUge1JlYWRvbmx5PEFjdGlvblR1cGxlPn0gKi9cbiAgICAgIGxldCByZXN1bHQgPSBlbXB0eVxuICAgICAgLyoqIEB0eXBlIHtSZWFkb25seTxBY3Rpb25UdXBsZT59ICovXG4gICAgICBsZXQgc3VicmVzdWx0XG4gICAgICAvKiogQHR5cGUge251bWJlcn0gKi9cbiAgICAgIGxldCBvZmZzZXRcbiAgICAgIC8qKiBAdHlwZSB7QXJyYXk8VW5pc3RQYXJlbnQ+fSAqL1xuICAgICAgbGV0IGdyYW5kcGFyZW50c1xuXG4gICAgICBpZiAoIXRlc3QgfHwgaXMobm9kZSwgaW5kZXgsIHBhcmVudHNbcGFyZW50cy5sZW5ndGggLSAxXSB8fCB1bmRlZmluZWQpKSB7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IGB2aXNpdG9yYCBpcyBub3cgYSB2aXNpdG9yLlxuICAgICAgICByZXN1bHQgPSB0b1Jlc3VsdCh2aXNpdG9yKG5vZGUsIHBhcmVudHMpKVxuXG4gICAgICAgIGlmIChyZXN1bHRbMF0gPT09IEVYSVQpIHtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCdjaGlsZHJlbicgaW4gbm9kZSAmJiBub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgIGNvbnN0IG5vZGVBc1BhcmVudCA9IC8qKiBAdHlwZSB7VW5pc3RQYXJlbnR9ICovIChub2RlKVxuXG4gICAgICAgIGlmIChub2RlQXNQYXJlbnQuY2hpbGRyZW4gJiYgcmVzdWx0WzBdICE9PSBTS0lQKSB7XG4gICAgICAgICAgb2Zmc2V0ID0gKHJldmVyc2UgPyBub2RlQXNQYXJlbnQuY2hpbGRyZW4ubGVuZ3RoIDogLTEpICsgc3RlcFxuICAgICAgICAgIGdyYW5kcGFyZW50cyA9IHBhcmVudHMuY29uY2F0KG5vZGVBc1BhcmVudClcblxuICAgICAgICAgIHdoaWxlIChvZmZzZXQgPiAtMSAmJiBvZmZzZXQgPCBub2RlQXNQYXJlbnQuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBjaGlsZCA9IG5vZGVBc1BhcmVudC5jaGlsZHJlbltvZmZzZXRdXG5cbiAgICAgICAgICAgIHN1YnJlc3VsdCA9IGZhY3RvcnkoY2hpbGQsIG9mZnNldCwgZ3JhbmRwYXJlbnRzKSgpXG5cbiAgICAgICAgICAgIGlmIChzdWJyZXN1bHRbMF0gPT09IEVYSVQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHN1YnJlc3VsdFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvZmZzZXQgPVxuICAgICAgICAgICAgICB0eXBlb2Ygc3VicmVzdWx0WzFdID09PSAnbnVtYmVyJyA/IHN1YnJlc3VsdFsxXSA6IG9mZnNldCArIHN0ZXBcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFR1cm4gYSByZXR1cm4gdmFsdWUgaW50byBhIGNsZWFuIHJlc3VsdC5cbiAqXG4gKiBAcGFyYW0ge1Zpc2l0b3JSZXN1bHR9IHZhbHVlXG4gKiAgIFZhbGlkIHJldHVybiB2YWx1ZXMgZnJvbSB2aXNpdG9ycy5cbiAqIEByZXR1cm5zIHtSZWFkb25seTxBY3Rpb25UdXBsZT59XG4gKiAgIENsZWFuIHJlc3VsdC5cbiAqL1xuZnVuY3Rpb24gdG9SZXN1bHQodmFsdWUpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlXG4gIH1cblxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBbQ09OVElOVUUsIHZhbHVlXVxuICB9XG5cbiAgcmV0dXJuIHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgPyBlbXB0eSA6IFt2YWx1ZV1cbn1cbiIsICJleHBvcnQgZnVuY3Rpb24gZGVwcmVjYXRlKGZuKSB7XG4gIHJldHVybiBmblxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXF1YWwoKSB7fVxuXG5leHBvcnQgZnVuY3Rpb24gb2soKSB7fVxuXG5leHBvcnQgZnVuY3Rpb24gdW5yZWFjaGFibGUoKSB7fVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9pbmZvLmpzJykuSW5mb30gSW5mb1xuICogQHR5cGVkZWYge1JlY29yZDxzdHJpbmcsIEluZm8+fSBQcm9wZXJ0aWVzXG4gKiBAdHlwZWRlZiB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gTm9ybWFsXG4gKi9cblxuZXhwb3J0IGNsYXNzIFNjaGVtYSB7XG4gIC8qKlxuICAgKiBAY29uc3RydWN0b3JcbiAgICogQHBhcmFtIHtQcm9wZXJ0aWVzfSBwcm9wZXJ0eVxuICAgKiBAcGFyYW0ge05vcm1hbH0gbm9ybWFsXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbc3BhY2VdXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eSwgbm9ybWFsLCBzcGFjZSkge1xuICAgIHRoaXMucHJvcGVydHkgPSBwcm9wZXJ0eVxuICAgIHRoaXMubm9ybWFsID0gbm9ybWFsXG4gICAgaWYgKHNwYWNlKSB7XG4gICAgICB0aGlzLnNwYWNlID0gc3BhY2VcbiAgICB9XG4gIH1cbn1cblxuLyoqIEB0eXBlIHtQcm9wZXJ0aWVzfSAqL1xuU2NoZW1hLnByb3RvdHlwZS5wcm9wZXJ0eSA9IHt9XG4vKiogQHR5cGUge05vcm1hbH0gKi9cblNjaGVtYS5wcm90b3R5cGUubm9ybWFsID0ge31cbi8qKiBAdHlwZSB7c3RyaW5nfG51bGx9ICovXG5TY2hlbWEucHJvdG90eXBlLnNwYWNlID0gbnVsbFxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9zY2hlbWEuanMnKS5Qcm9wZXJ0aWVzfSBQcm9wZXJ0aWVzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL3NjaGVtYS5qcycpLk5vcm1hbH0gTm9ybWFsXG4gKi9cblxuaW1wb3J0IHtTY2hlbWF9IGZyb20gJy4vc2NoZW1hLmpzJ1xuXG4vKipcbiAqIEBwYXJhbSB7U2NoZW1hW119IGRlZmluaXRpb25zXG4gKiBAcGFyYW0ge3N0cmluZ30gW3NwYWNlXVxuICogQHJldHVybnMge1NjaGVtYX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlKGRlZmluaXRpb25zLCBzcGFjZSkge1xuICAvKiogQHR5cGUge1Byb3BlcnRpZXN9ICovXG4gIGNvbnN0IHByb3BlcnR5ID0ge31cbiAgLyoqIEB0eXBlIHtOb3JtYWx9ICovXG4gIGNvbnN0IG5vcm1hbCA9IHt9XG4gIGxldCBpbmRleCA9IC0xXG5cbiAgd2hpbGUgKCsraW5kZXggPCBkZWZpbml0aW9ucy5sZW5ndGgpIHtcbiAgICBPYmplY3QuYXNzaWduKHByb3BlcnR5LCBkZWZpbml0aW9uc1tpbmRleF0ucHJvcGVydHkpXG4gICAgT2JqZWN0LmFzc2lnbihub3JtYWwsIGRlZmluaXRpb25zW2luZGV4XS5ub3JtYWwpXG4gIH1cblxuICByZXR1cm4gbmV3IFNjaGVtYShwcm9wZXJ0eSwgbm9ybWFsLCBzcGFjZSlcbn1cbiIsICIvKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUudG9Mb3dlckNhc2UoKVxufVxuIiwgImV4cG9ydCBjbGFzcyBJbmZvIHtcbiAgLyoqXG4gICAqIEBjb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHJvcGVydHlcbiAgICogQHBhcmFtIHtzdHJpbmd9IGF0dHJpYnV0ZVxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvcGVydHksIGF0dHJpYnV0ZSkge1xuICAgIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICAgIHRoaXMucHJvcGVydHkgPSBwcm9wZXJ0eVxuICAgIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICAgIHRoaXMuYXR0cmlidXRlID0gYXR0cmlidXRlXG4gIH1cbn1cblxuLyoqIEB0eXBlIHtzdHJpbmd8bnVsbH0gKi9cbkluZm8ucHJvdG90eXBlLnNwYWNlID0gbnVsbFxuSW5mby5wcm90b3R5cGUuYm9vbGVhbiA9IGZhbHNlXG5JbmZvLnByb3RvdHlwZS5ib29sZWFuaXNoID0gZmFsc2VcbkluZm8ucHJvdG90eXBlLm92ZXJsb2FkZWRCb29sZWFuID0gZmFsc2VcbkluZm8ucHJvdG90eXBlLm51bWJlciA9IGZhbHNlXG5JbmZvLnByb3RvdHlwZS5jb21tYVNlcGFyYXRlZCA9IGZhbHNlXG5JbmZvLnByb3RvdHlwZS5zcGFjZVNlcGFyYXRlZCA9IGZhbHNlXG5JbmZvLnByb3RvdHlwZS5jb21tYU9yU3BhY2VTZXBhcmF0ZWQgPSBmYWxzZVxuSW5mby5wcm90b3R5cGUubXVzdFVzZVByb3BlcnR5ID0gZmFsc2VcbkluZm8ucHJvdG90eXBlLmRlZmluZWQgPSBmYWxzZVxuIiwgImxldCBwb3dlcnMgPSAwXG5cbmV4cG9ydCBjb25zdCBib29sZWFuID0gaW5jcmVtZW50KClcbmV4cG9ydCBjb25zdCBib29sZWFuaXNoID0gaW5jcmVtZW50KClcbmV4cG9ydCBjb25zdCBvdmVybG9hZGVkQm9vbGVhbiA9IGluY3JlbWVudCgpXG5leHBvcnQgY29uc3QgbnVtYmVyID0gaW5jcmVtZW50KClcbmV4cG9ydCBjb25zdCBzcGFjZVNlcGFyYXRlZCA9IGluY3JlbWVudCgpXG5leHBvcnQgY29uc3QgY29tbWFTZXBhcmF0ZWQgPSBpbmNyZW1lbnQoKVxuZXhwb3J0IGNvbnN0IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCA9IGluY3JlbWVudCgpXG5cbmZ1bmN0aW9uIGluY3JlbWVudCgpIHtcbiAgcmV0dXJuIDIgKiogKytwb3dlcnNcbn1cbiIsICJpbXBvcnQge0luZm99IGZyb20gJy4vaW5mby5qcydcbmltcG9ydCAqIGFzIHR5cGVzIGZyb20gJy4vdHlwZXMuanMnXG5cbi8qKiBAdHlwZSB7QXJyYXk8a2V5b2YgdHlwZXM+fSAqL1xuLy8gQHRzLWV4cGVjdC1lcnJvcjogaHVzaC5cbmNvbnN0IGNoZWNrcyA9IE9iamVjdC5rZXlzKHR5cGVzKVxuXG5leHBvcnQgY2xhc3MgRGVmaW5lZEluZm8gZXh0ZW5kcyBJbmZvIHtcbiAgLyoqXG4gICAqIEBjb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHJvcGVydHlcbiAgICogQHBhcmFtIHtzdHJpbmd9IGF0dHJpYnV0ZVxuICAgKiBAcGFyYW0ge251bWJlcnxudWxsfSBbbWFza11cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtzcGFjZV1cbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb3BlcnR5LCBhdHRyaWJ1dGUsIG1hc2ssIHNwYWNlKSB7XG4gICAgbGV0IGluZGV4ID0gLTFcblxuICAgIHN1cGVyKHByb3BlcnR5LCBhdHRyaWJ1dGUpXG5cbiAgICBtYXJrKHRoaXMsICdzcGFjZScsIHNwYWNlKVxuXG4gICAgaWYgKHR5cGVvZiBtYXNrID09PSAnbnVtYmVyJykge1xuICAgICAgd2hpbGUgKCsraW5kZXggPCBjaGVja3MubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGNoZWNrID0gY2hlY2tzW2luZGV4XVxuICAgICAgICBtYXJrKHRoaXMsIGNoZWNrc1tpbmRleF0sIChtYXNrICYgdHlwZXNbY2hlY2tdKSA9PT0gdHlwZXNbY2hlY2tdKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5EZWZpbmVkSW5mby5wcm90b3R5cGUuZGVmaW5lZCA9IHRydWVcblxuLyoqXG4gKiBAcGFyYW0ge0RlZmluZWRJbmZvfSB2YWx1ZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAqIEBwYXJhbSB7dW5rbm93bn0gdmFsdWVcbiAqL1xuZnVuY3Rpb24gbWFyayh2YWx1ZXMsIGtleSwgdmFsdWUpIHtcbiAgaWYgKHZhbHVlKSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogYXNzdW1lIGB2YWx1ZWAgbWF0Y2hlcyB0aGUgZXhwZWN0ZWQgdmFsdWUgb2YgYGtleWAuXG4gICAgdmFsdWVzW2tleV0gPSB2YWx1ZVxuICB9XG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL3NjaGVtYS5qcycpLlByb3BlcnRpZXN9IFByb3BlcnRpZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vc2NoZW1hLmpzJykuTm9ybWFsfSBOb3JtYWxcbiAqXG4gKiBAdHlwZWRlZiB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gQXR0cmlidXRlc1xuICpcbiAqIEB0eXBlZGVmIHtPYmplY3R9IERlZmluaXRpb25cbiAqIEBwcm9wZXJ0eSB7UmVjb3JkPHN0cmluZywgbnVtYmVyfG51bGw+fSBwcm9wZXJ0aWVzXG4gKiBAcHJvcGVydHkgeyhhdHRyaWJ1dGVzOiBBdHRyaWJ1dGVzLCBwcm9wZXJ0eTogc3RyaW5nKSA9PiBzdHJpbmd9IHRyYW5zZm9ybVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtzcGFjZV1cbiAqIEBwcm9wZXJ0eSB7QXR0cmlidXRlc30gW2F0dHJpYnV0ZXNdXG4gKiBAcHJvcGVydHkge0FycmF5PHN0cmluZz59IFttdXN0VXNlUHJvcGVydHldXG4gKi9cblxuaW1wb3J0IHtub3JtYWxpemV9IGZyb20gJy4uL25vcm1hbGl6ZS5qcydcbmltcG9ydCB7U2NoZW1hfSBmcm9tICcuL3NjaGVtYS5qcydcbmltcG9ydCB7RGVmaW5lZEluZm99IGZyb20gJy4vZGVmaW5lZC1pbmZvLmpzJ1xuXG5jb25zdCBvd24gPSB7fS5oYXNPd25Qcm9wZXJ0eVxuXG4vKipcbiAqIEBwYXJhbSB7RGVmaW5pdGlvbn0gZGVmaW5pdGlvblxuICogQHJldHVybnMge1NjaGVtYX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZShkZWZpbml0aW9uKSB7XG4gIC8qKiBAdHlwZSB7UHJvcGVydGllc30gKi9cbiAgY29uc3QgcHJvcGVydHkgPSB7fVxuICAvKiogQHR5cGUge05vcm1hbH0gKi9cbiAgY29uc3Qgbm9ybWFsID0ge31cbiAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gIGxldCBwcm9wXG5cbiAgZm9yIChwcm9wIGluIGRlZmluaXRpb24ucHJvcGVydGllcykge1xuICAgIGlmIChvd24uY2FsbChkZWZpbml0aW9uLnByb3BlcnRpZXMsIHByb3ApKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IGRlZmluaXRpb24ucHJvcGVydGllc1twcm9wXVxuICAgICAgY29uc3QgaW5mbyA9IG5ldyBEZWZpbmVkSW5mbyhcbiAgICAgICAgcHJvcCxcbiAgICAgICAgZGVmaW5pdGlvbi50cmFuc2Zvcm0oZGVmaW5pdGlvbi5hdHRyaWJ1dGVzIHx8IHt9LCBwcm9wKSxcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIGRlZmluaXRpb24uc3BhY2VcbiAgICAgIClcblxuICAgICAgaWYgKFxuICAgICAgICBkZWZpbml0aW9uLm11c3RVc2VQcm9wZXJ0eSAmJlxuICAgICAgICBkZWZpbml0aW9uLm11c3RVc2VQcm9wZXJ0eS5pbmNsdWRlcyhwcm9wKVxuICAgICAgKSB7XG4gICAgICAgIGluZm8ubXVzdFVzZVByb3BlcnR5ID0gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBwcm9wZXJ0eVtwcm9wXSA9IGluZm9cblxuICAgICAgbm9ybWFsW25vcm1hbGl6ZShwcm9wKV0gPSBwcm9wXG4gICAgICBub3JtYWxbbm9ybWFsaXplKGluZm8uYXR0cmlidXRlKV0gPSBwcm9wXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ldyBTY2hlbWEocHJvcGVydHksIG5vcm1hbCwgZGVmaW5pdGlvbi5zcGFjZSlcbn1cbiIsICJpbXBvcnQge2NyZWF0ZX0gZnJvbSAnLi91dGlsL2NyZWF0ZS5qcydcblxuZXhwb3J0IGNvbnN0IHhsaW5rID0gY3JlYXRlKHtcbiAgc3BhY2U6ICd4bGluaycsXG4gIHRyYW5zZm9ybShfLCBwcm9wKSB7XG4gICAgcmV0dXJuICd4bGluazonICsgcHJvcC5zbGljZSg1KS50b0xvd2VyQ2FzZSgpXG4gIH0sXG4gIHByb3BlcnRpZXM6IHtcbiAgICB4TGlua0FjdHVhdGU6IG51bGwsXG4gICAgeExpbmtBcmNSb2xlOiBudWxsLFxuICAgIHhMaW5rSHJlZjogbnVsbCxcbiAgICB4TGlua1JvbGU6IG51bGwsXG4gICAgeExpbmtTaG93OiBudWxsLFxuICAgIHhMaW5rVGl0bGU6IG51bGwsXG4gICAgeExpbmtUeXBlOiBudWxsXG4gIH1cbn0pXG4iLCAiaW1wb3J0IHtjcmVhdGV9IGZyb20gJy4vdXRpbC9jcmVhdGUuanMnXG5cbmV4cG9ydCBjb25zdCB4bWwgPSBjcmVhdGUoe1xuICBzcGFjZTogJ3htbCcsXG4gIHRyYW5zZm9ybShfLCBwcm9wKSB7XG4gICAgcmV0dXJuICd4bWw6JyArIHByb3Auc2xpY2UoMykudG9Mb3dlckNhc2UoKVxuICB9LFxuICBwcm9wZXJ0aWVzOiB7eG1sTGFuZzogbnVsbCwgeG1sQmFzZTogbnVsbCwgeG1sU3BhY2U6IG51bGx9XG59KVxuIiwgIi8qKlxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSBhdHRyaWJ1dGVzXG4gKiBAcGFyYW0ge3N0cmluZ30gYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FzZVNlbnNpdGl2ZVRyYW5zZm9ybShhdHRyaWJ1dGVzLCBhdHRyaWJ1dGUpIHtcbiAgcmV0dXJuIGF0dHJpYnV0ZSBpbiBhdHRyaWJ1dGVzID8gYXR0cmlidXRlc1thdHRyaWJ1dGVdIDogYXR0cmlidXRlXG59XG4iLCAiaW1wb3J0IHtjYXNlU2Vuc2l0aXZlVHJhbnNmb3JtfSBmcm9tICcuL2Nhc2Utc2Vuc2l0aXZlLXRyYW5zZm9ybS5qcydcblxuLyoqXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHN0cmluZz59IGF0dHJpYnV0ZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wZXJ0eVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhc2VJbnNlbnNpdGl2ZVRyYW5zZm9ybShhdHRyaWJ1dGVzLCBwcm9wZXJ0eSkge1xuICByZXR1cm4gY2FzZVNlbnNpdGl2ZVRyYW5zZm9ybShhdHRyaWJ1dGVzLCBwcm9wZXJ0eS50b0xvd2VyQ2FzZSgpKVxufVxuIiwgImltcG9ydCB7Y3JlYXRlfSBmcm9tICcuL3V0aWwvY3JlYXRlLmpzJ1xuaW1wb3J0IHtjYXNlSW5zZW5zaXRpdmVUcmFuc2Zvcm19IGZyb20gJy4vdXRpbC9jYXNlLWluc2Vuc2l0aXZlLXRyYW5zZm9ybS5qcydcblxuZXhwb3J0IGNvbnN0IHhtbG5zID0gY3JlYXRlKHtcbiAgc3BhY2U6ICd4bWxucycsXG4gIGF0dHJpYnV0ZXM6IHt4bWxuc3hsaW5rOiAneG1sbnM6eGxpbmsnfSxcbiAgdHJhbnNmb3JtOiBjYXNlSW5zZW5zaXRpdmVUcmFuc2Zvcm0sXG4gIHByb3BlcnRpZXM6IHt4bWxuczogbnVsbCwgeG1sbnNYTGluazogbnVsbH1cbn0pXG4iLCAiaW1wb3J0IHtib29sZWFuaXNoLCBudW1iZXIsIHNwYWNlU2VwYXJhdGVkfSBmcm9tICcuL3V0aWwvdHlwZXMuanMnXG5pbXBvcnQge2NyZWF0ZX0gZnJvbSAnLi91dGlsL2NyZWF0ZS5qcydcblxuZXhwb3J0IGNvbnN0IGFyaWEgPSBjcmVhdGUoe1xuICB0cmFuc2Zvcm0oXywgcHJvcCkge1xuICAgIHJldHVybiBwcm9wID09PSAncm9sZScgPyBwcm9wIDogJ2FyaWEtJyArIHByb3Auc2xpY2UoNCkudG9Mb3dlckNhc2UoKVxuICB9LFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgYXJpYUFjdGl2ZURlc2NlbmRhbnQ6IG51bGwsXG4gICAgYXJpYUF0b21pYzogYm9vbGVhbmlzaCxcbiAgICBhcmlhQXV0b0NvbXBsZXRlOiBudWxsLFxuICAgIGFyaWFCdXN5OiBib29sZWFuaXNoLFxuICAgIGFyaWFDaGVja2VkOiBib29sZWFuaXNoLFxuICAgIGFyaWFDb2xDb3VudDogbnVtYmVyLFxuICAgIGFyaWFDb2xJbmRleDogbnVtYmVyLFxuICAgIGFyaWFDb2xTcGFuOiBudW1iZXIsXG4gICAgYXJpYUNvbnRyb2xzOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhcmlhQ3VycmVudDogbnVsbCxcbiAgICBhcmlhRGVzY3JpYmVkQnk6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGFyaWFEZXRhaWxzOiBudWxsLFxuICAgIGFyaWFEaXNhYmxlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhRHJvcEVmZmVjdDogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXJpYUVycm9yTWVzc2FnZTogbnVsbCxcbiAgICBhcmlhRXhwYW5kZWQ6IGJvb2xlYW5pc2gsXG4gICAgYXJpYUZsb3dUbzogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXJpYUdyYWJiZWQ6IGJvb2xlYW5pc2gsXG4gICAgYXJpYUhhc1BvcHVwOiBudWxsLFxuICAgIGFyaWFIaWRkZW46IGJvb2xlYW5pc2gsXG4gICAgYXJpYUludmFsaWQ6IG51bGwsXG4gICAgYXJpYUtleVNob3J0Y3V0czogbnVsbCxcbiAgICBhcmlhTGFiZWw6IG51bGwsXG4gICAgYXJpYUxhYmVsbGVkQnk6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGFyaWFMZXZlbDogbnVtYmVyLFxuICAgIGFyaWFMaXZlOiBudWxsLFxuICAgIGFyaWFNb2RhbDogYm9vbGVhbmlzaCxcbiAgICBhcmlhTXVsdGlMaW5lOiBib29sZWFuaXNoLFxuICAgIGFyaWFNdWx0aVNlbGVjdGFibGU6IGJvb2xlYW5pc2gsXG4gICAgYXJpYU9yaWVudGF0aW9uOiBudWxsLFxuICAgIGFyaWFPd25zOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhcmlhUGxhY2Vob2xkZXI6IG51bGwsXG4gICAgYXJpYVBvc0luU2V0OiBudW1iZXIsXG4gICAgYXJpYVByZXNzZWQ6IGJvb2xlYW5pc2gsXG4gICAgYXJpYVJlYWRPbmx5OiBib29sZWFuaXNoLFxuICAgIGFyaWFSZWxldmFudDogbnVsbCxcbiAgICBhcmlhUmVxdWlyZWQ6IGJvb2xlYW5pc2gsXG4gICAgYXJpYVJvbGVEZXNjcmlwdGlvbjogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXJpYVJvd0NvdW50OiBudW1iZXIsXG4gICAgYXJpYVJvd0luZGV4OiBudW1iZXIsXG4gICAgYXJpYVJvd1NwYW46IG51bWJlcixcbiAgICBhcmlhU2VsZWN0ZWQ6IGJvb2xlYW5pc2gsXG4gICAgYXJpYVNldFNpemU6IG51bWJlcixcbiAgICBhcmlhU29ydDogbnVsbCxcbiAgICBhcmlhVmFsdWVNYXg6IG51bWJlcixcbiAgICBhcmlhVmFsdWVNaW46IG51bWJlcixcbiAgICBhcmlhVmFsdWVOb3c6IG51bWJlcixcbiAgICBhcmlhVmFsdWVUZXh0OiBudWxsLFxuICAgIHJvbGU6IG51bGxcbiAgfVxufSlcbiIsICJpbXBvcnQge1xuICBib29sZWFuLFxuICBvdmVybG9hZGVkQm9vbGVhbixcbiAgYm9vbGVhbmlzaCxcbiAgbnVtYmVyLFxuICBzcGFjZVNlcGFyYXRlZCxcbiAgY29tbWFTZXBhcmF0ZWRcbn0gZnJvbSAnLi91dGlsL3R5cGVzLmpzJ1xuaW1wb3J0IHtjcmVhdGV9IGZyb20gJy4vdXRpbC9jcmVhdGUuanMnXG5pbXBvcnQge2Nhc2VJbnNlbnNpdGl2ZVRyYW5zZm9ybX0gZnJvbSAnLi91dGlsL2Nhc2UtaW5zZW5zaXRpdmUtdHJhbnNmb3JtLmpzJ1xuXG5leHBvcnQgY29uc3QgaHRtbCA9IGNyZWF0ZSh7XG4gIHNwYWNlOiAnaHRtbCcsXG4gIGF0dHJpYnV0ZXM6IHtcbiAgICBhY2NlcHRjaGFyc2V0OiAnYWNjZXB0LWNoYXJzZXQnLFxuICAgIGNsYXNzbmFtZTogJ2NsYXNzJyxcbiAgICBodG1sZm9yOiAnZm9yJyxcbiAgICBodHRwZXF1aXY6ICdodHRwLWVxdWl2J1xuICB9LFxuICB0cmFuc2Zvcm06IGNhc2VJbnNlbnNpdGl2ZVRyYW5zZm9ybSxcbiAgbXVzdFVzZVByb3BlcnR5OiBbJ2NoZWNrZWQnLCAnbXVsdGlwbGUnLCAnbXV0ZWQnLCAnc2VsZWN0ZWQnXSxcbiAgcHJvcGVydGllczoge1xuICAgIC8vIFN0YW5kYXJkIFByb3BlcnRpZXMuXG4gICAgYWJicjogbnVsbCxcbiAgICBhY2NlcHQ6IGNvbW1hU2VwYXJhdGVkLFxuICAgIGFjY2VwdENoYXJzZXQ6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGFjY2Vzc0tleTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYWN0aW9uOiBudWxsLFxuICAgIGFsbG93OiBudWxsLFxuICAgIGFsbG93RnVsbFNjcmVlbjogYm9vbGVhbixcbiAgICBhbGxvd1BheW1lbnRSZXF1ZXN0OiBib29sZWFuLFxuICAgIGFsbG93VXNlck1lZGlhOiBib29sZWFuLFxuICAgIGFsdDogbnVsbCxcbiAgICBhczogbnVsbCxcbiAgICBhc3luYzogYm9vbGVhbixcbiAgICBhdXRvQ2FwaXRhbGl6ZTogbnVsbCxcbiAgICBhdXRvQ29tcGxldGU6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGF1dG9Gb2N1czogYm9vbGVhbixcbiAgICBhdXRvUGxheTogYm9vbGVhbixcbiAgICBibG9ja2luZzogc3BhY2VTZXBhcmF0ZWQsXG4gICAgY2FwdHVyZTogbnVsbCxcbiAgICBjaGFyU2V0OiBudWxsLFxuICAgIGNoZWNrZWQ6IGJvb2xlYW4sXG4gICAgY2l0ZTogbnVsbCxcbiAgICBjbGFzc05hbWU6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGNvbHM6IG51bWJlcixcbiAgICBjb2xTcGFuOiBudWxsLFxuICAgIGNvbnRlbnQ6IG51bGwsXG4gICAgY29udGVudEVkaXRhYmxlOiBib29sZWFuaXNoLFxuICAgIGNvbnRyb2xzOiBib29sZWFuLFxuICAgIGNvbnRyb2xzTGlzdDogc3BhY2VTZXBhcmF0ZWQsXG4gICAgY29vcmRzOiBudW1iZXIgfCBjb21tYVNlcGFyYXRlZCxcbiAgICBjcm9zc09yaWdpbjogbnVsbCxcbiAgICBkYXRhOiBudWxsLFxuICAgIGRhdGVUaW1lOiBudWxsLFxuICAgIGRlY29kaW5nOiBudWxsLFxuICAgIGRlZmF1bHQ6IGJvb2xlYW4sXG4gICAgZGVmZXI6IGJvb2xlYW4sXG4gICAgZGlyOiBudWxsLFxuICAgIGRpck5hbWU6IG51bGwsXG4gICAgZGlzYWJsZWQ6IGJvb2xlYW4sXG4gICAgZG93bmxvYWQ6IG92ZXJsb2FkZWRCb29sZWFuLFxuICAgIGRyYWdnYWJsZTogYm9vbGVhbmlzaCxcbiAgICBlbmNUeXBlOiBudWxsLFxuICAgIGVudGVyS2V5SGludDogbnVsbCxcbiAgICBmZXRjaFByaW9yaXR5OiBudWxsLFxuICAgIGZvcm06IG51bGwsXG4gICAgZm9ybUFjdGlvbjogbnVsbCxcbiAgICBmb3JtRW5jVHlwZTogbnVsbCxcbiAgICBmb3JtTWV0aG9kOiBudWxsLFxuICAgIGZvcm1Ob1ZhbGlkYXRlOiBib29sZWFuLFxuICAgIGZvcm1UYXJnZXQ6IG51bGwsXG4gICAgaGVhZGVyczogc3BhY2VTZXBhcmF0ZWQsXG4gICAgaGVpZ2h0OiBudW1iZXIsXG4gICAgaGlkZGVuOiBib29sZWFuLFxuICAgIGhpZ2g6IG51bWJlcixcbiAgICBocmVmOiBudWxsLFxuICAgIGhyZWZMYW5nOiBudWxsLFxuICAgIGh0bWxGb3I6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGh0dHBFcXVpdjogc3BhY2VTZXBhcmF0ZWQsXG4gICAgaWQ6IG51bGwsXG4gICAgaW1hZ2VTaXplczogbnVsbCxcbiAgICBpbWFnZVNyY1NldDogbnVsbCxcbiAgICBpbmVydDogYm9vbGVhbixcbiAgICBpbnB1dE1vZGU6IG51bGwsXG4gICAgaW50ZWdyaXR5OiBudWxsLFxuICAgIGlzOiBudWxsLFxuICAgIGlzTWFwOiBib29sZWFuLFxuICAgIGl0ZW1JZDogbnVsbCxcbiAgICBpdGVtUHJvcDogc3BhY2VTZXBhcmF0ZWQsXG4gICAgaXRlbVJlZjogc3BhY2VTZXBhcmF0ZWQsXG4gICAgaXRlbVNjb3BlOiBib29sZWFuLFxuICAgIGl0ZW1UeXBlOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBraW5kOiBudWxsLFxuICAgIGxhYmVsOiBudWxsLFxuICAgIGxhbmc6IG51bGwsXG4gICAgbGFuZ3VhZ2U6IG51bGwsXG4gICAgbGlzdDogbnVsbCxcbiAgICBsb2FkaW5nOiBudWxsLFxuICAgIGxvb3A6IGJvb2xlYW4sXG4gICAgbG93OiBudW1iZXIsXG4gICAgbWFuaWZlc3Q6IG51bGwsXG4gICAgbWF4OiBudWxsLFxuICAgIG1heExlbmd0aDogbnVtYmVyLFxuICAgIG1lZGlhOiBudWxsLFxuICAgIG1ldGhvZDogbnVsbCxcbiAgICBtaW46IG51bGwsXG4gICAgbWluTGVuZ3RoOiBudW1iZXIsXG4gICAgbXVsdGlwbGU6IGJvb2xlYW4sXG4gICAgbXV0ZWQ6IGJvb2xlYW4sXG4gICAgbmFtZTogbnVsbCxcbiAgICBub25jZTogbnVsbCxcbiAgICBub01vZHVsZTogYm9vbGVhbixcbiAgICBub1ZhbGlkYXRlOiBib29sZWFuLFxuICAgIG9uQWJvcnQ6IG51bGwsXG4gICAgb25BZnRlclByaW50OiBudWxsLFxuICAgIG9uQXV4Q2xpY2s6IG51bGwsXG4gICAgb25CZWZvcmVNYXRjaDogbnVsbCxcbiAgICBvbkJlZm9yZVByaW50OiBudWxsLFxuICAgIG9uQmVmb3JlVG9nZ2xlOiBudWxsLFxuICAgIG9uQmVmb3JlVW5sb2FkOiBudWxsLFxuICAgIG9uQmx1cjogbnVsbCxcbiAgICBvbkNhbmNlbDogbnVsbCxcbiAgICBvbkNhblBsYXk6IG51bGwsXG4gICAgb25DYW5QbGF5VGhyb3VnaDogbnVsbCxcbiAgICBvbkNoYW5nZTogbnVsbCxcbiAgICBvbkNsaWNrOiBudWxsLFxuICAgIG9uQ2xvc2U6IG51bGwsXG4gICAgb25Db250ZXh0TG9zdDogbnVsbCxcbiAgICBvbkNvbnRleHRNZW51OiBudWxsLFxuICAgIG9uQ29udGV4dFJlc3RvcmVkOiBudWxsLFxuICAgIG9uQ29weTogbnVsbCxcbiAgICBvbkN1ZUNoYW5nZTogbnVsbCxcbiAgICBvbkN1dDogbnVsbCxcbiAgICBvbkRibENsaWNrOiBudWxsLFxuICAgIG9uRHJhZzogbnVsbCxcbiAgICBvbkRyYWdFbmQ6IG51bGwsXG4gICAgb25EcmFnRW50ZXI6IG51bGwsXG4gICAgb25EcmFnRXhpdDogbnVsbCxcbiAgICBvbkRyYWdMZWF2ZTogbnVsbCxcbiAgICBvbkRyYWdPdmVyOiBudWxsLFxuICAgIG9uRHJhZ1N0YXJ0OiBudWxsLFxuICAgIG9uRHJvcDogbnVsbCxcbiAgICBvbkR1cmF0aW9uQ2hhbmdlOiBudWxsLFxuICAgIG9uRW1wdGllZDogbnVsbCxcbiAgICBvbkVuZGVkOiBudWxsLFxuICAgIG9uRXJyb3I6IG51bGwsXG4gICAgb25Gb2N1czogbnVsbCxcbiAgICBvbkZvcm1EYXRhOiBudWxsLFxuICAgIG9uSGFzaENoYW5nZTogbnVsbCxcbiAgICBvbklucHV0OiBudWxsLFxuICAgIG9uSW52YWxpZDogbnVsbCxcbiAgICBvbktleURvd246IG51bGwsXG4gICAgb25LZXlQcmVzczogbnVsbCxcbiAgICBvbktleVVwOiBudWxsLFxuICAgIG9uTGFuZ3VhZ2VDaGFuZ2U6IG51bGwsXG4gICAgb25Mb2FkOiBudWxsLFxuICAgIG9uTG9hZGVkRGF0YTogbnVsbCxcbiAgICBvbkxvYWRlZE1ldGFkYXRhOiBudWxsLFxuICAgIG9uTG9hZEVuZDogbnVsbCxcbiAgICBvbkxvYWRTdGFydDogbnVsbCxcbiAgICBvbk1lc3NhZ2U6IG51bGwsXG4gICAgb25NZXNzYWdlRXJyb3I6IG51bGwsXG4gICAgb25Nb3VzZURvd246IG51bGwsXG4gICAgb25Nb3VzZUVudGVyOiBudWxsLFxuICAgIG9uTW91c2VMZWF2ZTogbnVsbCxcbiAgICBvbk1vdXNlTW92ZTogbnVsbCxcbiAgICBvbk1vdXNlT3V0OiBudWxsLFxuICAgIG9uTW91c2VPdmVyOiBudWxsLFxuICAgIG9uTW91c2VVcDogbnVsbCxcbiAgICBvbk9mZmxpbmU6IG51bGwsXG4gICAgb25PbmxpbmU6IG51bGwsXG4gICAgb25QYWdlSGlkZTogbnVsbCxcbiAgICBvblBhZ2VTaG93OiBudWxsLFxuICAgIG9uUGFzdGU6IG51bGwsXG4gICAgb25QYXVzZTogbnVsbCxcbiAgICBvblBsYXk6IG51bGwsXG4gICAgb25QbGF5aW5nOiBudWxsLFxuICAgIG9uUG9wU3RhdGU6IG51bGwsXG4gICAgb25Qcm9ncmVzczogbnVsbCxcbiAgICBvblJhdGVDaGFuZ2U6IG51bGwsXG4gICAgb25SZWplY3Rpb25IYW5kbGVkOiBudWxsLFxuICAgIG9uUmVzZXQ6IG51bGwsXG4gICAgb25SZXNpemU6IG51bGwsXG4gICAgb25TY3JvbGw6IG51bGwsXG4gICAgb25TY3JvbGxFbmQ6IG51bGwsXG4gICAgb25TZWN1cml0eVBvbGljeVZpb2xhdGlvbjogbnVsbCxcbiAgICBvblNlZWtlZDogbnVsbCxcbiAgICBvblNlZWtpbmc6IG51bGwsXG4gICAgb25TZWxlY3Q6IG51bGwsXG4gICAgb25TbG90Q2hhbmdlOiBudWxsLFxuICAgIG9uU3RhbGxlZDogbnVsbCxcbiAgICBvblN0b3JhZ2U6IG51bGwsXG4gICAgb25TdWJtaXQ6IG51bGwsXG4gICAgb25TdXNwZW5kOiBudWxsLFxuICAgIG9uVGltZVVwZGF0ZTogbnVsbCxcbiAgICBvblRvZ2dsZTogbnVsbCxcbiAgICBvblVuaGFuZGxlZFJlamVjdGlvbjogbnVsbCxcbiAgICBvblVubG9hZDogbnVsbCxcbiAgICBvblZvbHVtZUNoYW5nZTogbnVsbCxcbiAgICBvbldhaXRpbmc6IG51bGwsXG4gICAgb25XaGVlbDogbnVsbCxcbiAgICBvcGVuOiBib29sZWFuLFxuICAgIG9wdGltdW06IG51bWJlcixcbiAgICBwYXR0ZXJuOiBudWxsLFxuICAgIHBpbmc6IHNwYWNlU2VwYXJhdGVkLFxuICAgIHBsYWNlaG9sZGVyOiBudWxsLFxuICAgIHBsYXlzSW5saW5lOiBib29sZWFuLFxuICAgIHBvcG92ZXI6IG51bGwsXG4gICAgcG9wb3ZlclRhcmdldDogbnVsbCxcbiAgICBwb3BvdmVyVGFyZ2V0QWN0aW9uOiBudWxsLFxuICAgIHBvc3RlcjogbnVsbCxcbiAgICBwcmVsb2FkOiBudWxsLFxuICAgIHJlYWRPbmx5OiBib29sZWFuLFxuICAgIHJlZmVycmVyUG9saWN5OiBudWxsLFxuICAgIHJlbDogc3BhY2VTZXBhcmF0ZWQsXG4gICAgcmVxdWlyZWQ6IGJvb2xlYW4sXG4gICAgcmV2ZXJzZWQ6IGJvb2xlYW4sXG4gICAgcm93czogbnVtYmVyLFxuICAgIHJvd1NwYW46IG51bWJlcixcbiAgICBzYW5kYm94OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBzY29wZTogbnVsbCxcbiAgICBzY29wZWQ6IGJvb2xlYW4sXG4gICAgc2VhbWxlc3M6IGJvb2xlYW4sXG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW4sXG4gICAgc2hhZG93Um9vdERlbGVnYXRlc0ZvY3VzOiBib29sZWFuLFxuICAgIHNoYWRvd1Jvb3RNb2RlOiBudWxsLFxuICAgIHNoYXBlOiBudWxsLFxuICAgIHNpemU6IG51bWJlcixcbiAgICBzaXplczogbnVsbCxcbiAgICBzbG90OiBudWxsLFxuICAgIHNwYW46IG51bWJlcixcbiAgICBzcGVsbENoZWNrOiBib29sZWFuaXNoLFxuICAgIHNyYzogbnVsbCxcbiAgICBzcmNEb2M6IG51bGwsXG4gICAgc3JjTGFuZzogbnVsbCxcbiAgICBzcmNTZXQ6IG51bGwsXG4gICAgc3RhcnQ6IG51bWJlcixcbiAgICBzdGVwOiBudWxsLFxuICAgIHN0eWxlOiBudWxsLFxuICAgIHRhYkluZGV4OiBudW1iZXIsXG4gICAgdGFyZ2V0OiBudWxsLFxuICAgIHRpdGxlOiBudWxsLFxuICAgIHRyYW5zbGF0ZTogbnVsbCxcbiAgICB0eXBlOiBudWxsLFxuICAgIHR5cGVNdXN0TWF0Y2g6IGJvb2xlYW4sXG4gICAgdXNlTWFwOiBudWxsLFxuICAgIHZhbHVlOiBib29sZWFuaXNoLFxuICAgIHdpZHRoOiBudW1iZXIsXG4gICAgd3JhcDogbnVsbCxcblxuICAgIC8vIExlZ2FjeS5cbiAgICAvLyBTZWU6IGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI290aGVyLWVsZW1lbnRzLC1hdHRyaWJ1dGVzLWFuZC1hcGlzXG4gICAgYWxpZ246IG51bGwsIC8vIFNldmVyYWwuIFVzZSBDU1MgYHRleHQtYWxpZ25gIGluc3RlYWQsXG4gICAgYUxpbms6IG51bGwsIC8vIGA8Ym9keT5gLiBVc2UgQ1NTIGBhOmFjdGl2ZSB7Y29sb3J9YCBpbnN0ZWFkXG4gICAgYXJjaGl2ZTogc3BhY2VTZXBhcmF0ZWQsIC8vIGA8b2JqZWN0PmAuIExpc3Qgb2YgVVJJcyB0byBhcmNoaXZlc1xuICAgIGF4aXM6IG51bGwsIC8vIGA8dGQ+YCBhbmQgYDx0aD5gLiBVc2UgYHNjb3BlYCBvbiBgPHRoPmBcbiAgICBiYWNrZ3JvdW5kOiBudWxsLCAvLyBgPGJvZHk+YC4gVXNlIENTUyBgYmFja2dyb3VuZC1pbWFnZWAgaW5zdGVhZFxuICAgIGJnQ29sb3I6IG51bGwsIC8vIGA8Ym9keT5gIGFuZCB0YWJsZSBlbGVtZW50cy4gVXNlIENTUyBgYmFja2dyb3VuZC1jb2xvcmAgaW5zdGVhZFxuICAgIGJvcmRlcjogbnVtYmVyLCAvLyBgPHRhYmxlPmAuIFVzZSBDU1MgYGJvcmRlci13aWR0aGAgaW5zdGVhZCxcbiAgICBib3JkZXJDb2xvcjogbnVsbCwgLy8gYDx0YWJsZT5gLiBVc2UgQ1NTIGBib3JkZXItY29sb3JgIGluc3RlYWQsXG4gICAgYm90dG9tTWFyZ2luOiBudW1iZXIsIC8vIGA8Ym9keT5gXG4gICAgY2VsbFBhZGRpbmc6IG51bGwsIC8vIGA8dGFibGU+YFxuICAgIGNlbGxTcGFjaW5nOiBudWxsLCAvLyBgPHRhYmxlPmBcbiAgICBjaGFyOiBudWxsLCAvLyBTZXZlcmFsIHRhYmxlIGVsZW1lbnRzLiBXaGVuIGBhbGlnbj1jaGFyYCwgc2V0cyB0aGUgY2hhcmFjdGVyIHRvIGFsaWduIG9uXG4gICAgY2hhck9mZjogbnVsbCwgLy8gU2V2ZXJhbCB0YWJsZSBlbGVtZW50cy4gV2hlbiBgY2hhcmAsIG9mZnNldHMgdGhlIGFsaWdubWVudFxuICAgIGNsYXNzSWQ6IG51bGwsIC8vIGA8b2JqZWN0PmBcbiAgICBjbGVhcjogbnVsbCwgLy8gYDxicj5gLiBVc2UgQ1NTIGBjbGVhcmAgaW5zdGVhZFxuICAgIGNvZGU6IG51bGwsIC8vIGA8b2JqZWN0PmBcbiAgICBjb2RlQmFzZTogbnVsbCwgLy8gYDxvYmplY3Q+YFxuICAgIGNvZGVUeXBlOiBudWxsLCAvLyBgPG9iamVjdD5gXG4gICAgY29sb3I6IG51bGwsIC8vIGA8Zm9udD5gIGFuZCBgPGhyPmAuIFVzZSBDU1MgaW5zdGVhZFxuICAgIGNvbXBhY3Q6IGJvb2xlYW4sIC8vIExpc3RzLiBVc2UgQ1NTIHRvIHJlZHVjZSBzcGFjZSBiZXR3ZWVuIGl0ZW1zIGluc3RlYWRcbiAgICBkZWNsYXJlOiBib29sZWFuLCAvLyBgPG9iamVjdD5gXG4gICAgZXZlbnQ6IG51bGwsIC8vIGA8c2NyaXB0PmBcbiAgICBmYWNlOiBudWxsLCAvLyBgPGZvbnQ+YC4gVXNlIENTUyBpbnN0ZWFkXG4gICAgZnJhbWU6IG51bGwsIC8vIGA8dGFibGU+YFxuICAgIGZyYW1lQm9yZGVyOiBudWxsLCAvLyBgPGlmcmFtZT5gLiBVc2UgQ1NTIGBib3JkZXJgIGluc3RlYWRcbiAgICBoU3BhY2U6IG51bWJlciwgLy8gYDxpbWc+YCBhbmQgYDxvYmplY3Q+YFxuICAgIGxlZnRNYXJnaW46IG51bWJlciwgLy8gYDxib2R5PmBcbiAgICBsaW5rOiBudWxsLCAvLyBgPGJvZHk+YC4gVXNlIENTUyBgYTpsaW5rIHtjb2xvcjogKn1gIGluc3RlYWRcbiAgICBsb25nRGVzYzogbnVsbCwgLy8gYDxmcmFtZT5gLCBgPGlmcmFtZT5gLCBhbmQgYDxpbWc+YC4gVXNlIGFuIGA8YT5gXG4gICAgbG93U3JjOiBudWxsLCAvLyBgPGltZz5gLiBVc2UgYSBgPHBpY3R1cmU+YFxuICAgIG1hcmdpbkhlaWdodDogbnVtYmVyLCAvLyBgPGJvZHk+YFxuICAgIG1hcmdpbldpZHRoOiBudW1iZXIsIC8vIGA8Ym9keT5gXG4gICAgbm9SZXNpemU6IGJvb2xlYW4sIC8vIGA8ZnJhbWU+YFxuICAgIG5vSHJlZjogYm9vbGVhbiwgLy8gYDxhcmVhPmAuIFVzZSBubyBocmVmIGluc3RlYWQgb2YgYW4gZXhwbGljaXQgYG5vaHJlZmBcbiAgICBub1NoYWRlOiBib29sZWFuLCAvLyBgPGhyPmAuIFVzZSBiYWNrZ3JvdW5kLWNvbG9yIGFuZCBoZWlnaHQgaW5zdGVhZCBvZiBib3JkZXJzXG4gICAgbm9XcmFwOiBib29sZWFuLCAvLyBgPHRkPmAgYW5kIGA8dGg+YFxuICAgIG9iamVjdDogbnVsbCwgLy8gYDxhcHBsZXQ+YFxuICAgIHByb2ZpbGU6IG51bGwsIC8vIGA8aGVhZD5gXG4gICAgcHJvbXB0OiBudWxsLCAvLyBgPGlzaW5kZXg+YFxuICAgIHJldjogbnVsbCwgLy8gYDxsaW5rPmBcbiAgICByaWdodE1hcmdpbjogbnVtYmVyLCAvLyBgPGJvZHk+YFxuICAgIHJ1bGVzOiBudWxsLCAvLyBgPHRhYmxlPmBcbiAgICBzY2hlbWU6IG51bGwsIC8vIGA8bWV0YT5gXG4gICAgc2Nyb2xsaW5nOiBib29sZWFuaXNoLCAvLyBgPGZyYW1lPmAuIFVzZSBvdmVyZmxvdyBpbiB0aGUgY2hpbGQgY29udGV4dFxuICAgIHN0YW5kYnk6IG51bGwsIC8vIGA8b2JqZWN0PmBcbiAgICBzdW1tYXJ5OiBudWxsLCAvLyBgPHRhYmxlPmBcbiAgICB0ZXh0OiBudWxsLCAvLyBgPGJvZHk+YC4gVXNlIENTUyBgY29sb3JgIGluc3RlYWRcbiAgICB0b3BNYXJnaW46IG51bWJlciwgLy8gYDxib2R5PmBcbiAgICB2YWx1ZVR5cGU6IG51bGwsIC8vIGA8cGFyYW0+YFxuICAgIHZlcnNpb246IG51bGwsIC8vIGA8aHRtbD5gLiBVc2UgYSBkb2N0eXBlLlxuICAgIHZBbGlnbjogbnVsbCwgLy8gU2V2ZXJhbC4gVXNlIENTUyBgdmVydGljYWwtYWxpZ25gIGluc3RlYWRcbiAgICB2TGluazogbnVsbCwgLy8gYDxib2R5PmAuIFVzZSBDU1MgYGE6dmlzaXRlZCB7Y29sb3J9YCBpbnN0ZWFkXG4gICAgdlNwYWNlOiBudW1iZXIsIC8vIGA8aW1nPmAgYW5kIGA8b2JqZWN0PmBcblxuICAgIC8vIE5vbi1zdGFuZGFyZCBQcm9wZXJ0aWVzLlxuICAgIGFsbG93VHJhbnNwYXJlbmN5OiBudWxsLFxuICAgIGF1dG9Db3JyZWN0OiBudWxsLFxuICAgIGF1dG9TYXZlOiBudWxsLFxuICAgIGRpc2FibGVQaWN0dXJlSW5QaWN0dXJlOiBib29sZWFuLFxuICAgIGRpc2FibGVSZW1vdGVQbGF5YmFjazogYm9vbGVhbixcbiAgICBwcmVmaXg6IG51bGwsXG4gICAgcHJvcGVydHk6IG51bGwsXG4gICAgcmVzdWx0czogbnVtYmVyLFxuICAgIHNlY3VyaXR5OiBudWxsLFxuICAgIHVuc2VsZWN0YWJsZTogbnVsbFxuICB9XG59KVxuIiwgImltcG9ydCB7XG4gIGJvb2xlYW4sXG4gIG51bWJlcixcbiAgc3BhY2VTZXBhcmF0ZWQsXG4gIGNvbW1hU2VwYXJhdGVkLFxuICBjb21tYU9yU3BhY2VTZXBhcmF0ZWRcbn0gZnJvbSAnLi91dGlsL3R5cGVzLmpzJ1xuaW1wb3J0IHtjcmVhdGV9IGZyb20gJy4vdXRpbC9jcmVhdGUuanMnXG5pbXBvcnQge2Nhc2VTZW5zaXRpdmVUcmFuc2Zvcm19IGZyb20gJy4vdXRpbC9jYXNlLXNlbnNpdGl2ZS10cmFuc2Zvcm0uanMnXG5cbmV4cG9ydCBjb25zdCBzdmcgPSBjcmVhdGUoe1xuICBzcGFjZTogJ3N2ZycsXG4gIGF0dHJpYnV0ZXM6IHtcbiAgICBhY2NlbnRIZWlnaHQ6ICdhY2NlbnQtaGVpZ2h0JyxcbiAgICBhbGlnbm1lbnRCYXNlbGluZTogJ2FsaWdubWVudC1iYXNlbGluZScsXG4gICAgYXJhYmljRm9ybTogJ2FyYWJpYy1mb3JtJyxcbiAgICBiYXNlbGluZVNoaWZ0OiAnYmFzZWxpbmUtc2hpZnQnLFxuICAgIGNhcEhlaWdodDogJ2NhcC1oZWlnaHQnLFxuICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICBjbGlwUGF0aDogJ2NsaXAtcGF0aCcsXG4gICAgY2xpcFJ1bGU6ICdjbGlwLXJ1bGUnLFxuICAgIGNvbG9ySW50ZXJwb2xhdGlvbjogJ2NvbG9yLWludGVycG9sYXRpb24nLFxuICAgIGNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnM6ICdjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMnLFxuICAgIGNvbG9yUHJvZmlsZTogJ2NvbG9yLXByb2ZpbGUnLFxuICAgIGNvbG9yUmVuZGVyaW5nOiAnY29sb3ItcmVuZGVyaW5nJyxcbiAgICBjcm9zc09yaWdpbjogJ2Nyb3Nzb3JpZ2luJyxcbiAgICBkYXRhVHlwZTogJ2RhdGF0eXBlJyxcbiAgICBkb21pbmFudEJhc2VsaW5lOiAnZG9taW5hbnQtYmFzZWxpbmUnLFxuICAgIGVuYWJsZUJhY2tncm91bmQ6ICdlbmFibGUtYmFja2dyb3VuZCcsXG4gICAgZmlsbE9wYWNpdHk6ICdmaWxsLW9wYWNpdHknLFxuICAgIGZpbGxSdWxlOiAnZmlsbC1ydWxlJyxcbiAgICBmbG9vZENvbG9yOiAnZmxvb2QtY29sb3InLFxuICAgIGZsb29kT3BhY2l0eTogJ2Zsb29kLW9wYWNpdHknLFxuICAgIGZvbnRGYW1pbHk6ICdmb250LWZhbWlseScsXG4gICAgZm9udFNpemU6ICdmb250LXNpemUnLFxuICAgIGZvbnRTaXplQWRqdXN0OiAnZm9udC1zaXplLWFkanVzdCcsXG4gICAgZm9udFN0cmV0Y2g6ICdmb250LXN0cmV0Y2gnLFxuICAgIGZvbnRTdHlsZTogJ2ZvbnQtc3R5bGUnLFxuICAgIGZvbnRWYXJpYW50OiAnZm9udC12YXJpYW50JyxcbiAgICBmb250V2VpZ2h0OiAnZm9udC13ZWlnaHQnLFxuICAgIGdseXBoTmFtZTogJ2dseXBoLW5hbWUnLFxuICAgIGdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsOiAnZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbCcsXG4gICAgZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsOiAnZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWwnLFxuICAgIGhyZWZMYW5nOiAnaHJlZmxhbmcnLFxuICAgIGhvcml6QWR2WDogJ2hvcml6LWFkdi14JyxcbiAgICBob3Jpek9yaWdpblg6ICdob3Jpei1vcmlnaW4teCcsXG4gICAgaG9yaXpPcmlnaW5ZOiAnaG9yaXotb3JpZ2luLXknLFxuICAgIGltYWdlUmVuZGVyaW5nOiAnaW1hZ2UtcmVuZGVyaW5nJyxcbiAgICBsZXR0ZXJTcGFjaW5nOiAnbGV0dGVyLXNwYWNpbmcnLFxuICAgIGxpZ2h0aW5nQ29sb3I6ICdsaWdodGluZy1jb2xvcicsXG4gICAgbWFya2VyRW5kOiAnbWFya2VyLWVuZCcsXG4gICAgbWFya2VyTWlkOiAnbWFya2VyLW1pZCcsXG4gICAgbWFya2VyU3RhcnQ6ICdtYXJrZXItc3RhcnQnLFxuICAgIG5hdkRvd246ICduYXYtZG93bicsXG4gICAgbmF2RG93bkxlZnQ6ICduYXYtZG93bi1sZWZ0JyxcbiAgICBuYXZEb3duUmlnaHQ6ICduYXYtZG93bi1yaWdodCcsXG4gICAgbmF2TGVmdDogJ25hdi1sZWZ0JyxcbiAgICBuYXZOZXh0OiAnbmF2LW5leHQnLFxuICAgIG5hdlByZXY6ICduYXYtcHJldicsXG4gICAgbmF2UmlnaHQ6ICduYXYtcmlnaHQnLFxuICAgIG5hdlVwOiAnbmF2LXVwJyxcbiAgICBuYXZVcExlZnQ6ICduYXYtdXAtbGVmdCcsXG4gICAgbmF2VXBSaWdodDogJ25hdi11cC1yaWdodCcsXG4gICAgb25BYm9ydDogJ29uYWJvcnQnLFxuICAgIG9uQWN0aXZhdGU6ICdvbmFjdGl2YXRlJyxcbiAgICBvbkFmdGVyUHJpbnQ6ICdvbmFmdGVycHJpbnQnLFxuICAgIG9uQmVmb3JlUHJpbnQ6ICdvbmJlZm9yZXByaW50JyxcbiAgICBvbkJlZ2luOiAnb25iZWdpbicsXG4gICAgb25DYW5jZWw6ICdvbmNhbmNlbCcsXG4gICAgb25DYW5QbGF5OiAnb25jYW5wbGF5JyxcbiAgICBvbkNhblBsYXlUaHJvdWdoOiAnb25jYW5wbGF5dGhyb3VnaCcsXG4gICAgb25DaGFuZ2U6ICdvbmNoYW5nZScsXG4gICAgb25DbGljazogJ29uY2xpY2snLFxuICAgIG9uQ2xvc2U6ICdvbmNsb3NlJyxcbiAgICBvbkNvcHk6ICdvbmNvcHknLFxuICAgIG9uQ3VlQ2hhbmdlOiAnb25jdWVjaGFuZ2UnLFxuICAgIG9uQ3V0OiAnb25jdXQnLFxuICAgIG9uRGJsQ2xpY2s6ICdvbmRibGNsaWNrJyxcbiAgICBvbkRyYWc6ICdvbmRyYWcnLFxuICAgIG9uRHJhZ0VuZDogJ29uZHJhZ2VuZCcsXG4gICAgb25EcmFnRW50ZXI6ICdvbmRyYWdlbnRlcicsXG4gICAgb25EcmFnRXhpdDogJ29uZHJhZ2V4aXQnLFxuICAgIG9uRHJhZ0xlYXZlOiAnb25kcmFnbGVhdmUnLFxuICAgIG9uRHJhZ092ZXI6ICdvbmRyYWdvdmVyJyxcbiAgICBvbkRyYWdTdGFydDogJ29uZHJhZ3N0YXJ0JyxcbiAgICBvbkRyb3A6ICdvbmRyb3AnLFxuICAgIG9uRHVyYXRpb25DaGFuZ2U6ICdvbmR1cmF0aW9uY2hhbmdlJyxcbiAgICBvbkVtcHRpZWQ6ICdvbmVtcHRpZWQnLFxuICAgIG9uRW5kOiAnb25lbmQnLFxuICAgIG9uRW5kZWQ6ICdvbmVuZGVkJyxcbiAgICBvbkVycm9yOiAnb25lcnJvcicsXG4gICAgb25Gb2N1czogJ29uZm9jdXMnLFxuICAgIG9uRm9jdXNJbjogJ29uZm9jdXNpbicsXG4gICAgb25Gb2N1c091dDogJ29uZm9jdXNvdXQnLFxuICAgIG9uSGFzaENoYW5nZTogJ29uaGFzaGNoYW5nZScsXG4gICAgb25JbnB1dDogJ29uaW5wdXQnLFxuICAgIG9uSW52YWxpZDogJ29uaW52YWxpZCcsXG4gICAgb25LZXlEb3duOiAnb25rZXlkb3duJyxcbiAgICBvbktleVByZXNzOiAnb25rZXlwcmVzcycsXG4gICAgb25LZXlVcDogJ29ua2V5dXAnLFxuICAgIG9uTG9hZDogJ29ubG9hZCcsXG4gICAgb25Mb2FkZWREYXRhOiAnb25sb2FkZWRkYXRhJyxcbiAgICBvbkxvYWRlZE1ldGFkYXRhOiAnb25sb2FkZWRtZXRhZGF0YScsXG4gICAgb25Mb2FkU3RhcnQ6ICdvbmxvYWRzdGFydCcsXG4gICAgb25NZXNzYWdlOiAnb25tZXNzYWdlJyxcbiAgICBvbk1vdXNlRG93bjogJ29ubW91c2Vkb3duJyxcbiAgICBvbk1vdXNlRW50ZXI6ICdvbm1vdXNlZW50ZXInLFxuICAgIG9uTW91c2VMZWF2ZTogJ29ubW91c2VsZWF2ZScsXG4gICAgb25Nb3VzZU1vdmU6ICdvbm1vdXNlbW92ZScsXG4gICAgb25Nb3VzZU91dDogJ29ubW91c2VvdXQnLFxuICAgIG9uTW91c2VPdmVyOiAnb25tb3VzZW92ZXInLFxuICAgIG9uTW91c2VVcDogJ29ubW91c2V1cCcsXG4gICAgb25Nb3VzZVdoZWVsOiAnb25tb3VzZXdoZWVsJyxcbiAgICBvbk9mZmxpbmU6ICdvbm9mZmxpbmUnLFxuICAgIG9uT25saW5lOiAnb25vbmxpbmUnLFxuICAgIG9uUGFnZUhpZGU6ICdvbnBhZ2VoaWRlJyxcbiAgICBvblBhZ2VTaG93OiAnb25wYWdlc2hvdycsXG4gICAgb25QYXN0ZTogJ29ucGFzdGUnLFxuICAgIG9uUGF1c2U6ICdvbnBhdXNlJyxcbiAgICBvblBsYXk6ICdvbnBsYXknLFxuICAgIG9uUGxheWluZzogJ29ucGxheWluZycsXG4gICAgb25Qb3BTdGF0ZTogJ29ucG9wc3RhdGUnLFxuICAgIG9uUHJvZ3Jlc3M6ICdvbnByb2dyZXNzJyxcbiAgICBvblJhdGVDaGFuZ2U6ICdvbnJhdGVjaGFuZ2UnLFxuICAgIG9uUmVwZWF0OiAnb25yZXBlYXQnLFxuICAgIG9uUmVzZXQ6ICdvbnJlc2V0JyxcbiAgICBvblJlc2l6ZTogJ29ucmVzaXplJyxcbiAgICBvblNjcm9sbDogJ29uc2Nyb2xsJyxcbiAgICBvblNlZWtlZDogJ29uc2Vla2VkJyxcbiAgICBvblNlZWtpbmc6ICdvbnNlZWtpbmcnLFxuICAgIG9uU2VsZWN0OiAnb25zZWxlY3QnLFxuICAgIG9uU2hvdzogJ29uc2hvdycsXG4gICAgb25TdGFsbGVkOiAnb25zdGFsbGVkJyxcbiAgICBvblN0b3JhZ2U6ICdvbnN0b3JhZ2UnLFxuICAgIG9uU3VibWl0OiAnb25zdWJtaXQnLFxuICAgIG9uU3VzcGVuZDogJ29uc3VzcGVuZCcsXG4gICAgb25UaW1lVXBkYXRlOiAnb250aW1ldXBkYXRlJyxcbiAgICBvblRvZ2dsZTogJ29udG9nZ2xlJyxcbiAgICBvblVubG9hZDogJ29udW5sb2FkJyxcbiAgICBvblZvbHVtZUNoYW5nZTogJ29udm9sdW1lY2hhbmdlJyxcbiAgICBvbldhaXRpbmc6ICdvbndhaXRpbmcnLFxuICAgIG9uWm9vbTogJ29uem9vbScsXG4gICAgb3ZlcmxpbmVQb3NpdGlvbjogJ292ZXJsaW5lLXBvc2l0aW9uJyxcbiAgICBvdmVybGluZVRoaWNrbmVzczogJ292ZXJsaW5lLXRoaWNrbmVzcycsXG4gICAgcGFpbnRPcmRlcjogJ3BhaW50LW9yZGVyJyxcbiAgICBwYW5vc2UxOiAncGFub3NlLTEnLFxuICAgIHBvaW50ZXJFdmVudHM6ICdwb2ludGVyLWV2ZW50cycsXG4gICAgcmVmZXJyZXJQb2xpY3k6ICdyZWZlcnJlcnBvbGljeScsXG4gICAgcmVuZGVyaW5nSW50ZW50OiAncmVuZGVyaW5nLWludGVudCcsXG4gICAgc2hhcGVSZW5kZXJpbmc6ICdzaGFwZS1yZW5kZXJpbmcnLFxuICAgIHN0b3BDb2xvcjogJ3N0b3AtY29sb3InLFxuICAgIHN0b3BPcGFjaXR5OiAnc3RvcC1vcGFjaXR5JyxcbiAgICBzdHJpa2V0aHJvdWdoUG9zaXRpb246ICdzdHJpa2V0aHJvdWdoLXBvc2l0aW9uJyxcbiAgICBzdHJpa2V0aHJvdWdoVGhpY2tuZXNzOiAnc3RyaWtldGhyb3VnaC10aGlja25lc3MnLFxuICAgIHN0cm9rZURhc2hBcnJheTogJ3N0cm9rZS1kYXNoYXJyYXknLFxuICAgIHN0cm9rZURhc2hPZmZzZXQ6ICdzdHJva2UtZGFzaG9mZnNldCcsXG4gICAgc3Ryb2tlTGluZUNhcDogJ3N0cm9rZS1saW5lY2FwJyxcbiAgICBzdHJva2VMaW5lSm9pbjogJ3N0cm9rZS1saW5lam9pbicsXG4gICAgc3Ryb2tlTWl0ZXJMaW1pdDogJ3N0cm9rZS1taXRlcmxpbWl0JyxcbiAgICBzdHJva2VPcGFjaXR5OiAnc3Ryb2tlLW9wYWNpdHknLFxuICAgIHN0cm9rZVdpZHRoOiAnc3Ryb2tlLXdpZHRoJyxcbiAgICB0YWJJbmRleDogJ3RhYmluZGV4JyxcbiAgICB0ZXh0QW5jaG9yOiAndGV4dC1hbmNob3InLFxuICAgIHRleHREZWNvcmF0aW9uOiAndGV4dC1kZWNvcmF0aW9uJyxcbiAgICB0ZXh0UmVuZGVyaW5nOiAndGV4dC1yZW5kZXJpbmcnLFxuICAgIHRyYW5zZm9ybU9yaWdpbjogJ3RyYW5zZm9ybS1vcmlnaW4nLFxuICAgIHR5cGVPZjogJ3R5cGVvZicsXG4gICAgdW5kZXJsaW5lUG9zaXRpb246ICd1bmRlcmxpbmUtcG9zaXRpb24nLFxuICAgIHVuZGVybGluZVRoaWNrbmVzczogJ3VuZGVybGluZS10aGlja25lc3MnLFxuICAgIHVuaWNvZGVCaWRpOiAndW5pY29kZS1iaWRpJyxcbiAgICB1bmljb2RlUmFuZ2U6ICd1bmljb2RlLXJhbmdlJyxcbiAgICB1bml0c1BlckVtOiAndW5pdHMtcGVyLWVtJyxcbiAgICB2QWxwaGFiZXRpYzogJ3YtYWxwaGFiZXRpYycsXG4gICAgdkhhbmdpbmc6ICd2LWhhbmdpbmcnLFxuICAgIHZJZGVvZ3JhcGhpYzogJ3YtaWRlb2dyYXBoaWMnLFxuICAgIHZNYXRoZW1hdGljYWw6ICd2LW1hdGhlbWF0aWNhbCcsXG4gICAgdmVjdG9yRWZmZWN0OiAndmVjdG9yLWVmZmVjdCcsXG4gICAgdmVydEFkdlk6ICd2ZXJ0LWFkdi15JyxcbiAgICB2ZXJ0T3JpZ2luWDogJ3ZlcnQtb3JpZ2luLXgnLFxuICAgIHZlcnRPcmlnaW5ZOiAndmVydC1vcmlnaW4teScsXG4gICAgd29yZFNwYWNpbmc6ICd3b3JkLXNwYWNpbmcnLFxuICAgIHdyaXRpbmdNb2RlOiAnd3JpdGluZy1tb2RlJyxcbiAgICB4SGVpZ2h0OiAneC1oZWlnaHQnLFxuICAgIC8vIFRoZXNlIHdlcmUgY2FtZWxjYXNlZCBpbiBUaW55LiBOb3cgbG93ZXJjYXNlZCBpbiBTVkcgMlxuICAgIHBsYXliYWNrT3JkZXI6ICdwbGF5YmFja29yZGVyJyxcbiAgICB0aW1lbGluZUJlZ2luOiAndGltZWxpbmViZWdpbidcbiAgfSxcbiAgdHJhbnNmb3JtOiBjYXNlU2Vuc2l0aXZlVHJhbnNmb3JtLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgYWJvdXQ6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICBhY2NlbnRIZWlnaHQ6IG51bWJlcixcbiAgICBhY2N1bXVsYXRlOiBudWxsLFxuICAgIGFkZGl0aXZlOiBudWxsLFxuICAgIGFsaWdubWVudEJhc2VsaW5lOiBudWxsLFxuICAgIGFscGhhYmV0aWM6IG51bWJlcixcbiAgICBhbXBsaXR1ZGU6IG51bWJlcixcbiAgICBhcmFiaWNGb3JtOiBudWxsLFxuICAgIGFzY2VudDogbnVtYmVyLFxuICAgIGF0dHJpYnV0ZU5hbWU6IG51bGwsXG4gICAgYXR0cmlidXRlVHlwZTogbnVsbCxcbiAgICBhemltdXRoOiBudW1iZXIsXG4gICAgYmFuZHdpZHRoOiBudWxsLFxuICAgIGJhc2VsaW5lU2hpZnQ6IG51bGwsXG4gICAgYmFzZUZyZXF1ZW5jeTogbnVsbCxcbiAgICBiYXNlUHJvZmlsZTogbnVsbCxcbiAgICBiYm94OiBudWxsLFxuICAgIGJlZ2luOiBudWxsLFxuICAgIGJpYXM6IG51bWJlcixcbiAgICBieTogbnVsbCxcbiAgICBjYWxjTW9kZTogbnVsbCxcbiAgICBjYXBIZWlnaHQ6IG51bWJlcixcbiAgICBjbGFzc05hbWU6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGNsaXA6IG51bGwsXG4gICAgY2xpcFBhdGg6IG51bGwsXG4gICAgY2xpcFBhdGhVbml0czogbnVsbCxcbiAgICBjbGlwUnVsZTogbnVsbCxcbiAgICBjb2xvcjogbnVsbCxcbiAgICBjb2xvckludGVycG9sYXRpb246IG51bGwsXG4gICAgY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyczogbnVsbCxcbiAgICBjb2xvclByb2ZpbGU6IG51bGwsXG4gICAgY29sb3JSZW5kZXJpbmc6IG51bGwsXG4gICAgY29udGVudDogbnVsbCxcbiAgICBjb250ZW50U2NyaXB0VHlwZTogbnVsbCxcbiAgICBjb250ZW50U3R5bGVUeXBlOiBudWxsLFxuICAgIGNyb3NzT3JpZ2luOiBudWxsLFxuICAgIGN1cnNvcjogbnVsbCxcbiAgICBjeDogbnVsbCxcbiAgICBjeTogbnVsbCxcbiAgICBkOiBudWxsLFxuICAgIGRhdGFUeXBlOiBudWxsLFxuICAgIGRlZmF1bHRBY3Rpb246IG51bGwsXG4gICAgZGVzY2VudDogbnVtYmVyLFxuICAgIGRpZmZ1c2VDb25zdGFudDogbnVtYmVyLFxuICAgIGRpcmVjdGlvbjogbnVsbCxcbiAgICBkaXNwbGF5OiBudWxsLFxuICAgIGR1cjogbnVsbCxcbiAgICBkaXZpc29yOiBudW1iZXIsXG4gICAgZG9taW5hbnRCYXNlbGluZTogbnVsbCxcbiAgICBkb3dubG9hZDogYm9vbGVhbixcbiAgICBkeDogbnVsbCxcbiAgICBkeTogbnVsbCxcbiAgICBlZGdlTW9kZTogbnVsbCxcbiAgICBlZGl0YWJsZTogbnVsbCxcbiAgICBlbGV2YXRpb246IG51bWJlcixcbiAgICBlbmFibGVCYWNrZ3JvdW5kOiBudWxsLFxuICAgIGVuZDogbnVsbCxcbiAgICBldmVudDogbnVsbCxcbiAgICBleHBvbmVudDogbnVtYmVyLFxuICAgIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6IG51bGwsXG4gICAgZmlsbDogbnVsbCxcbiAgICBmaWxsT3BhY2l0eTogbnVtYmVyLFxuICAgIGZpbGxSdWxlOiBudWxsLFxuICAgIGZpbHRlcjogbnVsbCxcbiAgICBmaWx0ZXJSZXM6IG51bGwsXG4gICAgZmlsdGVyVW5pdHM6IG51bGwsXG4gICAgZmxvb2RDb2xvcjogbnVsbCxcbiAgICBmbG9vZE9wYWNpdHk6IG51bGwsXG4gICAgZm9jdXNhYmxlOiBudWxsLFxuICAgIGZvY3VzSGlnaGxpZ2h0OiBudWxsLFxuICAgIGZvbnRGYW1pbHk6IG51bGwsXG4gICAgZm9udFNpemU6IG51bGwsXG4gICAgZm9udFNpemVBZGp1c3Q6IG51bGwsXG4gICAgZm9udFN0cmV0Y2g6IG51bGwsXG4gICAgZm9udFN0eWxlOiBudWxsLFxuICAgIGZvbnRWYXJpYW50OiBudWxsLFxuICAgIGZvbnRXZWlnaHQ6IG51bGwsXG4gICAgZm9ybWF0OiBudWxsLFxuICAgIGZyOiBudWxsLFxuICAgIGZyb206IG51bGwsXG4gICAgZng6IG51bGwsXG4gICAgZnk6IG51bGwsXG4gICAgZzE6IGNvbW1hU2VwYXJhdGVkLFxuICAgIGcyOiBjb21tYVNlcGFyYXRlZCxcbiAgICBnbHlwaE5hbWU6IGNvbW1hU2VwYXJhdGVkLFxuICAgIGdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsOiBudWxsLFxuICAgIGdseXBoT3JpZW50YXRpb25WZXJ0aWNhbDogbnVsbCxcbiAgICBnbHlwaFJlZjogbnVsbCxcbiAgICBncmFkaWVudFRyYW5zZm9ybTogbnVsbCxcbiAgICBncmFkaWVudFVuaXRzOiBudWxsLFxuICAgIGhhbmRsZXI6IG51bGwsXG4gICAgaGFuZ2luZzogbnVtYmVyLFxuICAgIGhhdGNoQ29udGVudFVuaXRzOiBudWxsLFxuICAgIGhhdGNoVW5pdHM6IG51bGwsXG4gICAgaGVpZ2h0OiBudWxsLFxuICAgIGhyZWY6IG51bGwsXG4gICAgaHJlZkxhbmc6IG51bGwsXG4gICAgaG9yaXpBZHZYOiBudW1iZXIsXG4gICAgaG9yaXpPcmlnaW5YOiBudW1iZXIsXG4gICAgaG9yaXpPcmlnaW5ZOiBudW1iZXIsXG4gICAgaWQ6IG51bGwsXG4gICAgaWRlb2dyYXBoaWM6IG51bWJlcixcbiAgICBpbWFnZVJlbmRlcmluZzogbnVsbCxcbiAgICBpbml0aWFsVmlzaWJpbGl0eTogbnVsbCxcbiAgICBpbjogbnVsbCxcbiAgICBpbjI6IG51bGwsXG4gICAgaW50ZXJjZXB0OiBudW1iZXIsXG4gICAgazogbnVtYmVyLFxuICAgIGsxOiBudW1iZXIsXG4gICAgazI6IG51bWJlcixcbiAgICBrMzogbnVtYmVyLFxuICAgIGs0OiBudW1iZXIsXG4gICAga2VybmVsTWF0cml4OiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAga2VybmVsVW5pdExlbmd0aDogbnVsbCxcbiAgICBrZXlQb2ludHM6IG51bGwsIC8vIFNFTUlfQ09MT05fU0VQQVJBVEVEXG4gICAga2V5U3BsaW5lczogbnVsbCwgLy8gU0VNSV9DT0xPTl9TRVBBUkFURURcbiAgICBrZXlUaW1lczogbnVsbCwgLy8gU0VNSV9DT0xPTl9TRVBBUkFURURcbiAgICBrZXJuaW5nOiBudWxsLFxuICAgIGxhbmc6IG51bGwsXG4gICAgbGVuZ3RoQWRqdXN0OiBudWxsLFxuICAgIGxldHRlclNwYWNpbmc6IG51bGwsXG4gICAgbGlnaHRpbmdDb2xvcjogbnVsbCxcbiAgICBsaW1pdGluZ0NvbmVBbmdsZTogbnVtYmVyLFxuICAgIGxvY2FsOiBudWxsLFxuICAgIG1hcmtlckVuZDogbnVsbCxcbiAgICBtYXJrZXJNaWQ6IG51bGwsXG4gICAgbWFya2VyU3RhcnQ6IG51bGwsXG4gICAgbWFya2VySGVpZ2h0OiBudWxsLFxuICAgIG1hcmtlclVuaXRzOiBudWxsLFxuICAgIG1hcmtlcldpZHRoOiBudWxsLFxuICAgIG1hc2s6IG51bGwsXG4gICAgbWFza0NvbnRlbnRVbml0czogbnVsbCxcbiAgICBtYXNrVW5pdHM6IG51bGwsXG4gICAgbWF0aGVtYXRpY2FsOiBudWxsLFxuICAgIG1heDogbnVsbCxcbiAgICBtZWRpYTogbnVsbCxcbiAgICBtZWRpYUNoYXJhY3RlckVuY29kaW5nOiBudWxsLFxuICAgIG1lZGlhQ29udGVudEVuY29kaW5nczogbnVsbCxcbiAgICBtZWRpYVNpemU6IG51bWJlcixcbiAgICBtZWRpYVRpbWU6IG51bGwsXG4gICAgbWV0aG9kOiBudWxsLFxuICAgIG1pbjogbnVsbCxcbiAgICBtb2RlOiBudWxsLFxuICAgIG5hbWU6IG51bGwsXG4gICAgbmF2RG93bjogbnVsbCxcbiAgICBuYXZEb3duTGVmdDogbnVsbCxcbiAgICBuYXZEb3duUmlnaHQ6IG51bGwsXG4gICAgbmF2TGVmdDogbnVsbCxcbiAgICBuYXZOZXh0OiBudWxsLFxuICAgIG5hdlByZXY6IG51bGwsXG4gICAgbmF2UmlnaHQ6IG51bGwsXG4gICAgbmF2VXA6IG51bGwsXG4gICAgbmF2VXBMZWZ0OiBudWxsLFxuICAgIG5hdlVwUmlnaHQ6IG51bGwsXG4gICAgbnVtT2N0YXZlczogbnVsbCxcbiAgICBvYnNlcnZlcjogbnVsbCxcbiAgICBvZmZzZXQ6IG51bGwsXG4gICAgb25BYm9ydDogbnVsbCxcbiAgICBvbkFjdGl2YXRlOiBudWxsLFxuICAgIG9uQWZ0ZXJQcmludDogbnVsbCxcbiAgICBvbkJlZm9yZVByaW50OiBudWxsLFxuICAgIG9uQmVnaW46IG51bGwsXG4gICAgb25DYW5jZWw6IG51bGwsXG4gICAgb25DYW5QbGF5OiBudWxsLFxuICAgIG9uQ2FuUGxheVRocm91Z2g6IG51bGwsXG4gICAgb25DaGFuZ2U6IG51bGwsXG4gICAgb25DbGljazogbnVsbCxcbiAgICBvbkNsb3NlOiBudWxsLFxuICAgIG9uQ29weTogbnVsbCxcbiAgICBvbkN1ZUNoYW5nZTogbnVsbCxcbiAgICBvbkN1dDogbnVsbCxcbiAgICBvbkRibENsaWNrOiBudWxsLFxuICAgIG9uRHJhZzogbnVsbCxcbiAgICBvbkRyYWdFbmQ6IG51bGwsXG4gICAgb25EcmFnRW50ZXI6IG51bGwsXG4gICAgb25EcmFnRXhpdDogbnVsbCxcbiAgICBvbkRyYWdMZWF2ZTogbnVsbCxcbiAgICBvbkRyYWdPdmVyOiBudWxsLFxuICAgIG9uRHJhZ1N0YXJ0OiBudWxsLFxuICAgIG9uRHJvcDogbnVsbCxcbiAgICBvbkR1cmF0aW9uQ2hhbmdlOiBudWxsLFxuICAgIG9uRW1wdGllZDogbnVsbCxcbiAgICBvbkVuZDogbnVsbCxcbiAgICBvbkVuZGVkOiBudWxsLFxuICAgIG9uRXJyb3I6IG51bGwsXG4gICAgb25Gb2N1czogbnVsbCxcbiAgICBvbkZvY3VzSW46IG51bGwsXG4gICAgb25Gb2N1c091dDogbnVsbCxcbiAgICBvbkhhc2hDaGFuZ2U6IG51bGwsXG4gICAgb25JbnB1dDogbnVsbCxcbiAgICBvbkludmFsaWQ6IG51bGwsXG4gICAgb25LZXlEb3duOiBudWxsLFxuICAgIG9uS2V5UHJlc3M6IG51bGwsXG4gICAgb25LZXlVcDogbnVsbCxcbiAgICBvbkxvYWQ6IG51bGwsXG4gICAgb25Mb2FkZWREYXRhOiBudWxsLFxuICAgIG9uTG9hZGVkTWV0YWRhdGE6IG51bGwsXG4gICAgb25Mb2FkU3RhcnQ6IG51bGwsXG4gICAgb25NZXNzYWdlOiBudWxsLFxuICAgIG9uTW91c2VEb3duOiBudWxsLFxuICAgIG9uTW91c2VFbnRlcjogbnVsbCxcbiAgICBvbk1vdXNlTGVhdmU6IG51bGwsXG4gICAgb25Nb3VzZU1vdmU6IG51bGwsXG4gICAgb25Nb3VzZU91dDogbnVsbCxcbiAgICBvbk1vdXNlT3ZlcjogbnVsbCxcbiAgICBvbk1vdXNlVXA6IG51bGwsXG4gICAgb25Nb3VzZVdoZWVsOiBudWxsLFxuICAgIG9uT2ZmbGluZTogbnVsbCxcbiAgICBvbk9ubGluZTogbnVsbCxcbiAgICBvblBhZ2VIaWRlOiBudWxsLFxuICAgIG9uUGFnZVNob3c6IG51bGwsXG4gICAgb25QYXN0ZTogbnVsbCxcbiAgICBvblBhdXNlOiBudWxsLFxuICAgIG9uUGxheTogbnVsbCxcbiAgICBvblBsYXlpbmc6IG51bGwsXG4gICAgb25Qb3BTdGF0ZTogbnVsbCxcbiAgICBvblByb2dyZXNzOiBudWxsLFxuICAgIG9uUmF0ZUNoYW5nZTogbnVsbCxcbiAgICBvblJlcGVhdDogbnVsbCxcbiAgICBvblJlc2V0OiBudWxsLFxuICAgIG9uUmVzaXplOiBudWxsLFxuICAgIG9uU2Nyb2xsOiBudWxsLFxuICAgIG9uU2Vla2VkOiBudWxsLFxuICAgIG9uU2Vla2luZzogbnVsbCxcbiAgICBvblNlbGVjdDogbnVsbCxcbiAgICBvblNob3c6IG51bGwsXG4gICAgb25TdGFsbGVkOiBudWxsLFxuICAgIG9uU3RvcmFnZTogbnVsbCxcbiAgICBvblN1Ym1pdDogbnVsbCxcbiAgICBvblN1c3BlbmQ6IG51bGwsXG4gICAgb25UaW1lVXBkYXRlOiBudWxsLFxuICAgIG9uVG9nZ2xlOiBudWxsLFxuICAgIG9uVW5sb2FkOiBudWxsLFxuICAgIG9uVm9sdW1lQ2hhbmdlOiBudWxsLFxuICAgIG9uV2FpdGluZzogbnVsbCxcbiAgICBvblpvb206IG51bGwsXG4gICAgb3BhY2l0eTogbnVsbCxcbiAgICBvcGVyYXRvcjogbnVsbCxcbiAgICBvcmRlcjogbnVsbCxcbiAgICBvcmllbnQ6IG51bGwsXG4gICAgb3JpZW50YXRpb246IG51bGwsXG4gICAgb3JpZ2luOiBudWxsLFxuICAgIG92ZXJmbG93OiBudWxsLFxuICAgIG92ZXJsYXk6IG51bGwsXG4gICAgb3ZlcmxpbmVQb3NpdGlvbjogbnVtYmVyLFxuICAgIG92ZXJsaW5lVGhpY2tuZXNzOiBudW1iZXIsXG4gICAgcGFpbnRPcmRlcjogbnVsbCxcbiAgICBwYW5vc2UxOiBudWxsLFxuICAgIHBhdGg6IG51bGwsXG4gICAgcGF0aExlbmd0aDogbnVtYmVyLFxuICAgIHBhdHRlcm5Db250ZW50VW5pdHM6IG51bGwsXG4gICAgcGF0dGVyblRyYW5zZm9ybTogbnVsbCxcbiAgICBwYXR0ZXJuVW5pdHM6IG51bGwsXG4gICAgcGhhc2U6IG51bGwsXG4gICAgcGluZzogc3BhY2VTZXBhcmF0ZWQsXG4gICAgcGl0Y2g6IG51bGwsXG4gICAgcGxheWJhY2tPcmRlcjogbnVsbCxcbiAgICBwb2ludGVyRXZlbnRzOiBudWxsLFxuICAgIHBvaW50czogbnVsbCxcbiAgICBwb2ludHNBdFg6IG51bWJlcixcbiAgICBwb2ludHNBdFk6IG51bWJlcixcbiAgICBwb2ludHNBdFo6IG51bWJlcixcbiAgICBwcmVzZXJ2ZUFscGhhOiBudWxsLFxuICAgIHByZXNlcnZlQXNwZWN0UmF0aW86IG51bGwsXG4gICAgcHJpbWl0aXZlVW5pdHM6IG51bGwsXG4gICAgcHJvcGFnYXRlOiBudWxsLFxuICAgIHByb3BlcnR5OiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgcjogbnVsbCxcbiAgICByYWRpdXM6IG51bGwsXG4gICAgcmVmZXJyZXJQb2xpY3k6IG51bGwsXG4gICAgcmVmWDogbnVsbCxcbiAgICByZWZZOiBudWxsLFxuICAgIHJlbDogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIHJldjogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIHJlbmRlcmluZ0ludGVudDogbnVsbCxcbiAgICByZXBlYXRDb3VudDogbnVsbCxcbiAgICByZXBlYXREdXI6IG51bGwsXG4gICAgcmVxdWlyZWRFeHRlbnNpb25zOiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgcmVxdWlyZWRGZWF0dXJlczogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIHJlcXVpcmVkRm9udHM6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICByZXF1aXJlZEZvcm1hdHM6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICByZXNvdXJjZTogbnVsbCxcbiAgICByZXN0YXJ0OiBudWxsLFxuICAgIHJlc3VsdDogbnVsbCxcbiAgICByb3RhdGU6IG51bGwsXG4gICAgcng6IG51bGwsXG4gICAgcnk6IG51bGwsXG4gICAgc2NhbGU6IG51bGwsXG4gICAgc2VlZDogbnVsbCxcbiAgICBzaGFwZVJlbmRlcmluZzogbnVsbCxcbiAgICBzaWRlOiBudWxsLFxuICAgIHNsb3BlOiBudWxsLFxuICAgIHNuYXBzaG90VGltZTogbnVsbCxcbiAgICBzcGVjdWxhckNvbnN0YW50OiBudW1iZXIsXG4gICAgc3BlY3VsYXJFeHBvbmVudDogbnVtYmVyLFxuICAgIHNwcmVhZE1ldGhvZDogbnVsbCxcbiAgICBzcGFjaW5nOiBudWxsLFxuICAgIHN0YXJ0T2Zmc2V0OiBudWxsLFxuICAgIHN0ZERldmlhdGlvbjogbnVsbCxcbiAgICBzdGVtaDogbnVsbCxcbiAgICBzdGVtdjogbnVsbCxcbiAgICBzdGl0Y2hUaWxlczogbnVsbCxcbiAgICBzdG9wQ29sb3I6IG51bGwsXG4gICAgc3RvcE9wYWNpdHk6IG51bGwsXG4gICAgc3RyaWtldGhyb3VnaFBvc2l0aW9uOiBudW1iZXIsXG4gICAgc3RyaWtldGhyb3VnaFRoaWNrbmVzczogbnVtYmVyLFxuICAgIHN0cmluZzogbnVsbCxcbiAgICBzdHJva2U6IG51bGwsXG4gICAgc3Ryb2tlRGFzaEFycmF5OiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgc3Ryb2tlRGFzaE9mZnNldDogbnVsbCxcbiAgICBzdHJva2VMaW5lQ2FwOiBudWxsLFxuICAgIHN0cm9rZUxpbmVKb2luOiBudWxsLFxuICAgIHN0cm9rZU1pdGVyTGltaXQ6IG51bWJlcixcbiAgICBzdHJva2VPcGFjaXR5OiBudW1iZXIsXG4gICAgc3Ryb2tlV2lkdGg6IG51bGwsXG4gICAgc3R5bGU6IG51bGwsXG4gICAgc3VyZmFjZVNjYWxlOiBudW1iZXIsXG4gICAgc3luY0JlaGF2aW9yOiBudWxsLFxuICAgIHN5bmNCZWhhdmlvckRlZmF1bHQ6IG51bGwsXG4gICAgc3luY01hc3RlcjogbnVsbCxcbiAgICBzeW5jVG9sZXJhbmNlOiBudWxsLFxuICAgIHN5bmNUb2xlcmFuY2VEZWZhdWx0OiBudWxsLFxuICAgIHN5c3RlbUxhbmd1YWdlOiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgdGFiSW5kZXg6IG51bWJlcixcbiAgICB0YWJsZVZhbHVlczogbnVsbCxcbiAgICB0YXJnZXQ6IG51bGwsXG4gICAgdGFyZ2V0WDogbnVtYmVyLFxuICAgIHRhcmdldFk6IG51bWJlcixcbiAgICB0ZXh0QW5jaG9yOiBudWxsLFxuICAgIHRleHREZWNvcmF0aW9uOiBudWxsLFxuICAgIHRleHRSZW5kZXJpbmc6IG51bGwsXG4gICAgdGV4dExlbmd0aDogbnVsbCxcbiAgICB0aW1lbGluZUJlZ2luOiBudWxsLFxuICAgIHRpdGxlOiBudWxsLFxuICAgIHRyYW5zZm9ybUJlaGF2aW9yOiBudWxsLFxuICAgIHR5cGU6IG51bGwsXG4gICAgdHlwZU9mOiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgdG86IG51bGwsXG4gICAgdHJhbnNmb3JtOiBudWxsLFxuICAgIHRyYW5zZm9ybU9yaWdpbjogbnVsbCxcbiAgICB1MTogbnVsbCxcbiAgICB1MjogbnVsbCxcbiAgICB1bmRlcmxpbmVQb3NpdGlvbjogbnVtYmVyLFxuICAgIHVuZGVybGluZVRoaWNrbmVzczogbnVtYmVyLFxuICAgIHVuaWNvZGU6IG51bGwsXG4gICAgdW5pY29kZUJpZGk6IG51bGwsXG4gICAgdW5pY29kZVJhbmdlOiBudWxsLFxuICAgIHVuaXRzUGVyRW06IG51bWJlcixcbiAgICB2YWx1ZXM6IG51bGwsXG4gICAgdkFscGhhYmV0aWM6IG51bWJlcixcbiAgICB2TWF0aGVtYXRpY2FsOiBudW1iZXIsXG4gICAgdmVjdG9yRWZmZWN0OiBudWxsLFxuICAgIHZIYW5naW5nOiBudW1iZXIsXG4gICAgdklkZW9ncmFwaGljOiBudW1iZXIsXG4gICAgdmVyc2lvbjogbnVsbCxcbiAgICB2ZXJ0QWR2WTogbnVtYmVyLFxuICAgIHZlcnRPcmlnaW5YOiBudW1iZXIsXG4gICAgdmVydE9yaWdpblk6IG51bWJlcixcbiAgICB2aWV3Qm94OiBudWxsLFxuICAgIHZpZXdUYXJnZXQ6IG51bGwsXG4gICAgdmlzaWJpbGl0eTogbnVsbCxcbiAgICB3aWR0aDogbnVsbCxcbiAgICB3aWR0aHM6IG51bGwsXG4gICAgd29yZFNwYWNpbmc6IG51bGwsXG4gICAgd3JpdGluZ01vZGU6IG51bGwsXG4gICAgeDogbnVsbCxcbiAgICB4MTogbnVsbCxcbiAgICB4MjogbnVsbCxcbiAgICB4Q2hhbm5lbFNlbGVjdG9yOiBudWxsLFxuICAgIHhIZWlnaHQ6IG51bWJlcixcbiAgICB5OiBudWxsLFxuICAgIHkxOiBudWxsLFxuICAgIHkyOiBudWxsLFxuICAgIHlDaGFubmVsU2VsZWN0b3I6IG51bGwsXG4gICAgejogbnVsbCxcbiAgICB6b29tQW5kUGFuOiBudWxsXG4gIH1cbn0pXG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL3V0aWwvc2NoZW1hLmpzJykuU2NoZW1hfSBTY2hlbWFcbiAqL1xuXG5pbXBvcnQge25vcm1hbGl6ZX0gZnJvbSAnLi9ub3JtYWxpemUuanMnXG5pbXBvcnQge0RlZmluZWRJbmZvfSBmcm9tICcuL3V0aWwvZGVmaW5lZC1pbmZvLmpzJ1xuaW1wb3J0IHtJbmZvfSBmcm9tICcuL3V0aWwvaW5mby5qcydcblxuY29uc3QgdmFsaWQgPSAvXmRhdGFbLVxcdy46XSskL2lcbmNvbnN0IGRhc2ggPSAvLVthLXpdL2dcbmNvbnN0IGNhcCA9IC9bQS1aXS9nXG5cbi8qKlxuICogQHBhcmFtIHtTY2hlbWF9IHNjaGVtYVxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJucyB7SW5mb31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmQoc2NoZW1hLCB2YWx1ZSkge1xuICBjb25zdCBub3JtYWwgPSBub3JtYWxpemUodmFsdWUpXG4gIGxldCBwcm9wID0gdmFsdWVcbiAgbGV0IFR5cGUgPSBJbmZvXG5cbiAgaWYgKG5vcm1hbCBpbiBzY2hlbWEubm9ybWFsKSB7XG4gICAgcmV0dXJuIHNjaGVtYS5wcm9wZXJ0eVtzY2hlbWEubm9ybWFsW25vcm1hbF1dXG4gIH1cblxuICBpZiAobm9ybWFsLmxlbmd0aCA+IDQgJiYgbm9ybWFsLnNsaWNlKDAsIDQpID09PSAnZGF0YScgJiYgdmFsaWQudGVzdCh2YWx1ZSkpIHtcbiAgICAvLyBBdHRyaWJ1dGUgb3IgcHJvcGVydHkuXG4gICAgaWYgKHZhbHVlLmNoYXJBdCg0KSA9PT0gJy0nKSB7XG4gICAgICAvLyBUdXJuIGl0IGludG8gYSBwcm9wZXJ0eS5cbiAgICAgIGNvbnN0IHJlc3QgPSB2YWx1ZS5zbGljZSg1KS5yZXBsYWNlKGRhc2gsIGNhbWVsY2FzZSlcbiAgICAgIHByb3AgPSAnZGF0YScgKyByZXN0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgcmVzdC5zbGljZSgxKVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUdXJuIGl0IGludG8gYW4gYXR0cmlidXRlLlxuICAgICAgY29uc3QgcmVzdCA9IHZhbHVlLnNsaWNlKDQpXG5cbiAgICAgIGlmICghZGFzaC50ZXN0KHJlc3QpKSB7XG4gICAgICAgIGxldCBkYXNoZXMgPSByZXN0LnJlcGxhY2UoY2FwLCBrZWJhYilcblxuICAgICAgICBpZiAoZGFzaGVzLmNoYXJBdCgwKSAhPT0gJy0nKSB7XG4gICAgICAgICAgZGFzaGVzID0gJy0nICsgZGFzaGVzXG4gICAgICAgIH1cblxuICAgICAgICB2YWx1ZSA9ICdkYXRhJyArIGRhc2hlc1xuICAgICAgfVxuICAgIH1cblxuICAgIFR5cGUgPSBEZWZpbmVkSW5mb1xuICB9XG5cbiAgcmV0dXJuIG5ldyBUeXBlKHByb3AsIHZhbHVlKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSAkMFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24ga2ViYWIoJDApIHtcbiAgcmV0dXJuICctJyArICQwLnRvTG93ZXJDYXNlKClcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gJDBcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGNhbWVsY2FzZSgkMCkge1xuICByZXR1cm4gJDAuY2hhckF0KDEpLnRvVXBwZXJDYXNlKClcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vbGliL3V0aWwvaW5mby5qcycpLkluZm99IEluZm9cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vbGliL3V0aWwvc2NoZW1hLmpzJykuU2NoZW1hfSBTY2hlbWFcbiAqL1xuXG5pbXBvcnQge21lcmdlfSBmcm9tICcuL2xpYi91dGlsL21lcmdlLmpzJ1xuaW1wb3J0IHt4bGlua30gZnJvbSAnLi9saWIveGxpbmsuanMnXG5pbXBvcnQge3htbH0gZnJvbSAnLi9saWIveG1sLmpzJ1xuaW1wb3J0IHt4bWxuc30gZnJvbSAnLi9saWIveG1sbnMuanMnXG5pbXBvcnQge2FyaWF9IGZyb20gJy4vbGliL2FyaWEuanMnXG5pbXBvcnQge2h0bWwgYXMgaHRtbEJhc2V9IGZyb20gJy4vbGliL2h0bWwuanMnXG5pbXBvcnQge3N2ZyBhcyBzdmdCYXNlfSBmcm9tICcuL2xpYi9zdmcuanMnXG5cbmV4cG9ydCB7ZmluZH0gZnJvbSAnLi9saWIvZmluZC5qcydcbmV4cG9ydCB7aGFzdFRvUmVhY3R9IGZyb20gJy4vbGliL2hhc3QtdG8tcmVhY3QuanMnXG5leHBvcnQge25vcm1hbGl6ZX0gZnJvbSAnLi9saWIvbm9ybWFsaXplLmpzJ1xuZXhwb3J0IGNvbnN0IGh0bWwgPSBtZXJnZShbeG1sLCB4bGluaywgeG1sbnMsIGFyaWEsIGh0bWxCYXNlXSwgJ2h0bWwnKVxuZXhwb3J0IGNvbnN0IHN2ZyA9IG1lcmdlKFt4bWwsIHhsaW5rLCB4bWxucywgYXJpYSwgc3ZnQmFzZV0sICdzdmcnKVxuIiwgIi8qKlxuICogQHR5cGVkZWYgT3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uIGZvciBgc3RyaW5naWZ5YC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW3BhZExlZnQ9dHJ1ZV1cbiAqICAgV2hldGhlciB0byBwYWQgYSBzcGFjZSBiZWZvcmUgYSB0b2tlbi5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW3BhZFJpZ2h0PWZhbHNlXVxuICogICBXaGV0aGVyIHRvIHBhZCBhIHNwYWNlIGFmdGVyIGEgdG9rZW4uXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7T3B0aW9uc30gU3RyaW5naWZ5T3B0aW9uc1xuICogICBQbGVhc2UgdXNlIGBTdHJpbmdpZnlPcHRpb25zYCBpbnN0ZWFkLlxuICovXG5cbi8qKlxuICogUGFyc2UgY29tbWEtc2VwYXJhdGVkIHRva2VucyB0byBhbiBhcnJheS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqICAgQ29tbWEtc2VwYXJhdGVkIHRva2Vucy5cbiAqIEByZXR1cm5zIHtBcnJheTxzdHJpbmc+fVxuICogICBMaXN0IG9mIHRva2Vucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlKHZhbHVlKSB7XG4gIC8qKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn0gKi9cbiAgY29uc3QgdG9rZW5zID0gW11cbiAgY29uc3QgaW5wdXQgPSBTdHJpbmcodmFsdWUgfHwgJycpXG4gIGxldCBpbmRleCA9IGlucHV0LmluZGV4T2YoJywnKVxuICBsZXQgc3RhcnQgPSAwXG4gIC8qKiBAdHlwZSB7Ym9vbGVhbn0gKi9cbiAgbGV0IGVuZCA9IGZhbHNlXG5cbiAgd2hpbGUgKCFlbmQpIHtcbiAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICBpbmRleCA9IGlucHV0Lmxlbmd0aFxuICAgICAgZW5kID0gdHJ1ZVxuICAgIH1cblxuICAgIGNvbnN0IHRva2VuID0gaW5wdXQuc2xpY2Uoc3RhcnQsIGluZGV4KS50cmltKClcblxuICAgIGlmICh0b2tlbiB8fCAhZW5kKSB7XG4gICAgICB0b2tlbnMucHVzaCh0b2tlbilcbiAgICB9XG5cbiAgICBzdGFydCA9IGluZGV4ICsgMVxuICAgIGluZGV4ID0gaW5wdXQuaW5kZXhPZignLCcsIHN0YXJ0KVxuICB9XG5cbiAgcmV0dXJuIHRva2Vuc1xufVxuXG4vKipcbiAqIFNlcmlhbGl6ZSBhbiBhcnJheSBvZiBzdHJpbmdzIG9yIG51bWJlcnMgdG8gY29tbWEtc2VwYXJhdGVkIHRva2Vucy5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PHN0cmluZ3xudW1iZXI+fSB2YWx1ZXNcbiAqICAgTGlzdCBvZiB0b2tlbnMuXG4gKiBAcGFyYW0ge09wdGlvbnN9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uIGZvciBgc3RyaW5naWZ5YCAob3B0aW9uYWwpLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgQ29tbWEtc2VwYXJhdGVkIHRva2Vucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeSh2YWx1ZXMsIG9wdGlvbnMpIHtcbiAgY29uc3Qgc2V0dGluZ3MgPSBvcHRpb25zIHx8IHt9XG5cbiAgLy8gRW5zdXJlIHRoZSBsYXN0IGVtcHR5IGVudHJ5IGlzIHNlZW4uXG4gIGNvbnN0IGlucHV0ID0gdmFsdWVzW3ZhbHVlcy5sZW5ndGggLSAxXSA9PT0gJycgPyBbLi4udmFsdWVzLCAnJ10gOiB2YWx1ZXNcblxuICByZXR1cm4gaW5wdXRcbiAgICAuam9pbihcbiAgICAgIChzZXR0aW5ncy5wYWRSaWdodCA/ICcgJyA6ICcnKSArXG4gICAgICAgICcsJyArXG4gICAgICAgIChzZXR0aW5ncy5wYWRMZWZ0ID09PSBmYWxzZSA/ICcnIDogJyAnKVxuICAgIClcbiAgICAudHJpbSgpXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudH0gRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlByb3BlcnRpZXN9IFByb3BlcnRpZXNcbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSB7c3RyaW5nfSBTaW1wbGVTZWxlY3RvclxuICogICBTZWxlY3RvciB0eXBlLlxuICogQHRlbXBsYXRlIHtzdHJpbmd9IERlZmF1bHRUYWdOYW1lXG4gKiAgIERlZmF1bHQgdGFnIG5hbWUuXG4gKiBAdHlwZWRlZiB7KFxuICogICBTaW1wbGVTZWxlY3RvciBleHRlbmRzICcnXG4gKiAgICAgPyBEZWZhdWx0VGFnTmFtZVxuICogICAgIDogU2ltcGxlU2VsZWN0b3IgZXh0ZW5kcyBgJHtpbmZlciBUYWdOYW1lfS4ke2luZmVyIFJlc3R9YFxuICogICAgID8gRXh0cmFjdFRhZ05hbWU8VGFnTmFtZSwgRGVmYXVsdFRhZ05hbWU+XG4gKiAgICAgOiBTaW1wbGVTZWxlY3RvciBleHRlbmRzIGAke2luZmVyIFRhZ05hbWV9IyR7aW5mZXIgUmVzdH1gXG4gKiAgICAgPyBFeHRyYWN0VGFnTmFtZTxUYWdOYW1lLCBEZWZhdWx0VGFnTmFtZT5cbiAqICAgICA6IFNpbXBsZVNlbGVjdG9yIGV4dGVuZHMgc3RyaW5nXG4gKiAgICAgPyBTaW1wbGVTZWxlY3RvclxuICogICAgIDogRGVmYXVsdFRhZ05hbWVcbiAqICl9IEV4dHJhY3RUYWdOYW1lXG4gKiAgIEV4dHJhY3QgdGFnIG5hbWUgZnJvbSBhIHNpbXBsZSBzZWxlY3Rvci5cbiAqL1xuXG5jb25zdCBzZWFyY2ggPSAvWyMuXS9nXG5cbi8qKlxuICogQ3JlYXRlIGEgaGFzdCBlbGVtZW50IGZyb20gYSBzaW1wbGUgQ1NTIHNlbGVjdG9yLlxuICpcbiAqIEB0ZW1wbGF0ZSB7c3RyaW5nfSBTZWxlY3RvclxuICogICBUeXBlIG9mIHNlbGVjdG9yLlxuICogQHRlbXBsYXRlIHtzdHJpbmd9IFtEZWZhdWx0VGFnTmFtZT0nZGl2J11cbiAqICAgVHlwZSBvZiBkZWZhdWx0IHRhZyBuYW1lIChkZWZhdWx0OiBgJ2RpdidgKS5cbiAqIEBwYXJhbSB7U2VsZWN0b3IgfCBudWxsIHwgdW5kZWZpbmVkfSBbc2VsZWN0b3JdXG4gKiAgIFNpbXBsZSBDU1Mgc2VsZWN0b3IgKG9wdGlvbmFsKS5cbiAqXG4gKiAgIENhbiBjb250YWluIGEgdGFnIG5hbWUgKGBmb29gKSwgY2xhc3NlcyAoYC5iYXJgKSwgYW5kIGFuIElEIChgI2JhemApLlxuICogICBNdWx0aXBsZSBjbGFzc2VzIGFyZSBhbGxvd2VkLlxuICogICBVc2VzIHRoZSBsYXN0IElEIGlmIG11bHRpcGxlIElEcyBhcmUgZm91bmQuXG4gKiBAcGFyYW0ge0RlZmF1bHRUYWdOYW1lIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2RlZmF1bHRUYWdOYW1lPSdkaXYnXVxuICogICBUYWcgbmFtZSB0byB1c2UgaWYgYHNlbGVjdG9yYCBkb2VzIG5vdCBzcGVjaWZ5IG9uZSAoZGVmYXVsdDogYCdkaXYnYCkuXG4gKiBAcmV0dXJucyB7RWxlbWVudCAmIHt0YWdOYW1lOiBFeHRyYWN0VGFnTmFtZTxTZWxlY3RvciwgRGVmYXVsdFRhZ05hbWU+fX1cbiAqICAgQnVpbHQgZWxlbWVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU2VsZWN0b3Ioc2VsZWN0b3IsIGRlZmF1bHRUYWdOYW1lKSB7XG4gIGNvbnN0IHZhbHVlID0gc2VsZWN0b3IgfHwgJydcbiAgLyoqIEB0eXBlIHtQcm9wZXJ0aWVzfSAqL1xuICBjb25zdCBwcm9wcyA9IHt9XG4gIGxldCBzdGFydCA9IDBcbiAgLyoqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9ICovXG4gIGxldCBwcmV2aW91c1xuICAvKiogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IHRhZ05hbWVcblxuICB3aGlsZSAoc3RhcnQgPCB2YWx1ZS5sZW5ndGgpIHtcbiAgICBzZWFyY2gubGFzdEluZGV4ID0gc3RhcnRcbiAgICBjb25zdCBtYXRjaCA9IHNlYXJjaC5leGVjKHZhbHVlKVxuICAgIGNvbnN0IHN1YnZhbHVlID0gdmFsdWUuc2xpY2Uoc3RhcnQsIG1hdGNoID8gbWF0Y2guaW5kZXggOiB2YWx1ZS5sZW5ndGgpXG5cbiAgICBpZiAoc3VidmFsdWUpIHtcbiAgICAgIGlmICghcHJldmlvdXMpIHtcbiAgICAgICAgdGFnTmFtZSA9IHN1YnZhbHVlXG4gICAgICB9IGVsc2UgaWYgKHByZXZpb3VzID09PSAnIycpIHtcbiAgICAgICAgcHJvcHMuaWQgPSBzdWJ2YWx1ZVxuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHByb3BzLmNsYXNzTmFtZSkpIHtcbiAgICAgICAgcHJvcHMuY2xhc3NOYW1lLnB1c2goc3VidmFsdWUpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcm9wcy5jbGFzc05hbWUgPSBbc3VidmFsdWVdXG4gICAgICB9XG5cbiAgICAgIHN0YXJ0ICs9IHN1YnZhbHVlLmxlbmd0aFxuICAgIH1cblxuICAgIGlmIChtYXRjaCkge1xuICAgICAgcHJldmlvdXMgPSBtYXRjaFswXVxuICAgICAgc3RhcnQrK1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ2VsZW1lbnQnLFxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IHRhZyBuYW1lIGlzIHBhcnNlZC5cbiAgICB0YWdOYW1lOiB0YWdOYW1lIHx8IGRlZmF1bHRUYWdOYW1lIHx8ICdkaXYnLFxuICAgIHByb3BlcnRpZXM6IHByb3BzLFxuICAgIGNoaWxkcmVuOiBbXVxuICB9XG59XG4iLCAiLyoqXG4gKiBQYXJzZSBzcGFjZS1zZXBhcmF0ZWQgdG9rZW5zIHRvIGFuIGFycmF5IG9mIHN0cmluZ3MuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiAgIFNwYWNlLXNlcGFyYXRlZCB0b2tlbnMuXG4gKiBAcmV0dXJucyB7QXJyYXk8c3RyaW5nPn1cbiAqICAgTGlzdCBvZiB0b2tlbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZSh2YWx1ZSkge1xuICBjb25zdCBpbnB1dCA9IFN0cmluZyh2YWx1ZSB8fCAnJykudHJpbSgpXG4gIHJldHVybiBpbnB1dCA/IGlucHV0LnNwbGl0KC9bIFxcdFxcblxcclxcZl0rL2cpIDogW11cbn1cblxuLyoqXG4gKiBTZXJpYWxpemUgYW4gYXJyYXkgb2Ygc3RyaW5ncyBhcyBzcGFjZSBzZXBhcmF0ZWQtdG9rZW5zLlxuICpcbiAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nfG51bWJlcj59IHZhbHVlc1xuICogICBMaXN0IG9mIHRva2Vucy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFNwYWNlLXNlcGFyYXRlZCB0b2tlbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnkodmFsdWVzKSB7XG4gIHJldHVybiB2YWx1ZXMuam9pbignICcpLnRyaW0oKVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkVsZW1lbnR9IEVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Ob2Rlc30gTm9kZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Sb290fSBSb290XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUm9vdENvbnRlbnR9IFJvb3RDb250ZW50XG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgncHJvcGVydHktaW5mb3JtYXRpb24nKS5JbmZvfSBJbmZvXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdwcm9wZXJ0eS1pbmZvcm1hdGlvbicpLlNjaGVtYX0gU2NoZW1hXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7RWxlbWVudCB8IFJvb3R9IFJlc3VsdFxuICogICBSZXN1bHQgZnJvbSBhIGBoYCAob3IgYHNgKSBjYWxsLlxuICpcbiAqIEB0eXBlZGVmIHtudW1iZXIgfCBzdHJpbmd9IFN0eWxlVmFsdWVcbiAqICAgVmFsdWUgZm9yIGEgQ1NTIHN0eWxlIGZpZWxkLlxuICogQHR5cGVkZWYge1JlY29yZDxzdHJpbmcsIFN0eWxlVmFsdWU+fSBTdHlsZVxuICogICBTdXBwb3J0ZWQgdmFsdWUgb2YgYSBgc3R5bGVgIHByb3AuXG4gKiBAdHlwZWRlZiB7Ym9vbGVhbiB8IG51bWJlciB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFByaW1pdGl2ZVZhbHVlXG4gKiAgIFByaW1pdGl2ZSBwcm9wZXJ0eSB2YWx1ZS5cbiAqIEB0eXBlZGVmIHtBcnJheTxudW1iZXIgfCBzdHJpbmc+fSBBcnJheVZhbHVlXG4gKiAgIExpc3Qgb2YgcHJvcGVydHkgdmFsdWVzIGZvciBzcGFjZS0gb3IgY29tbWEgc2VwYXJhdGVkIHZhbHVlcyAoc3VjaCBhcyBgY2xhc3NOYW1lYCkuXG4gKiBAdHlwZWRlZiB7QXJyYXlWYWx1ZSB8IFByaW1pdGl2ZVZhbHVlfSBQcm9wZXJ0eVZhbHVlXG4gKiAgIFByaW1pdGl2ZSB2YWx1ZSBvciBsaXN0IHZhbHVlLlxuICogQHR5cGVkZWYge3tbcHJvcGVydHk6IHN0cmluZ106IFByb3BlcnR5VmFsdWUgfCBTdHlsZX19IFByb3BlcnRpZXNcbiAqICAgQWNjZXB0YWJsZSB2YWx1ZSBmb3IgZWxlbWVudCBwcm9wZXJ0aWVzLlxuICpcbiAqIEB0eXBlZGVmIHtudW1iZXIgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBQcmltaXRpdmVDaGlsZFxuICogICBQcmltaXRpdmUgY2hpbGRyZW4sIGVpdGhlciBpZ25vcmVkIChudWxsaXNoKSwgb3IgdHVybmVkIGludG8gdGV4dCBub2Rlcy5cbiAqIEB0eXBlZGVmIHtBcnJheTxBcnJheUNoaWxkTmVzdGVkIHwgTm9kZXMgfCBQcmltaXRpdmVDaGlsZD59IEFycmF5Q2hpbGRcbiAqICAgTGlzdCBvZiBjaGlsZHJlbi5cbiAqIEB0eXBlZGVmIHtBcnJheTxOb2RlcyB8IFByaW1pdGl2ZUNoaWxkPn0gQXJyYXlDaGlsZE5lc3RlZFxuICogICBMaXN0IG9mIGNoaWxkcmVuIChkZWVwKS5cbiAqIEB0eXBlZGVmIHtBcnJheUNoaWxkIHwgTm9kZXMgfCBQcmltaXRpdmVDaGlsZH0gQ2hpbGRcbiAqICAgQWNjZXB0YWJsZSBjaGlsZCB2YWx1ZS5cbiAqL1xuXG5pbXBvcnQge3BhcnNlIGFzIGNvbW1hc30gZnJvbSAnY29tbWEtc2VwYXJhdGVkLXRva2VucydcbmltcG9ydCB7cGFyc2VTZWxlY3Rvcn0gZnJvbSAnaGFzdC11dGlsLXBhcnNlLXNlbGVjdG9yJ1xuaW1wb3J0IHtmaW5kLCBub3JtYWxpemV9IGZyb20gJ3Byb3BlcnR5LWluZm9ybWF0aW9uJ1xuaW1wb3J0IHtwYXJzZSBhcyBzcGFjZXN9IGZyb20gJ3NwYWNlLXNlcGFyYXRlZC10b2tlbnMnXG5cbmNvbnN0IGJ1dHRvblR5cGVzID0gbmV3IFNldChbJ2J1dHRvbicsICdtZW51JywgJ3Jlc2V0JywgJ3N1Ym1pdCddKVxuXG5jb25zdCBvd24gPSB7fS5oYXNPd25Qcm9wZXJ0eVxuXG4vKipcbiAqIEBwYXJhbSB7U2NoZW1hfSBzY2hlbWFcbiAqICAgU2NoZW1hIHRvIHVzZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBkZWZhdWx0VGFnTmFtZVxuICogICBEZWZhdWx0IHRhZyBuYW1lLlxuICogQHBhcmFtIHtBcnJheTxzdHJpbmc+IHwgdW5kZWZpbmVkfSBbY2FzZVNlbnNpdGl2ZV1cbiAqICAgQ2FzZS1zZW5zaXRpdmUgdGFnIG5hbWVzIChkZWZhdWx0OiBgdW5kZWZpbmVkYCkuXG4gKiBAcmV0dXJuc1xuICogICBgaGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVIKHNjaGVtYSwgZGVmYXVsdFRhZ05hbWUsIGNhc2VTZW5zaXRpdmUpIHtcbiAgY29uc3QgYWRqdXN0ID0gY2FzZVNlbnNpdGl2ZSAmJiBjcmVhdGVBZGp1c3RNYXAoY2FzZVNlbnNpdGl2ZSlcblxuICAvKipcbiAgICogSHlwZXJzY3JpcHQgY29tcGF0aWJsZSBEU0wgZm9yIGNyZWF0aW5nIHZpcnR1YWwgaGFzdCB0cmVlcy5cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7bnVsbCB8IHVuZGVmaW5lZH0gW3NlbGVjdG9yXVxuICAgKiBAcGFyYW0gey4uLkNoaWxkfSBjaGlsZHJlblxuICAgKiBAcmV0dXJucyB7Um9vdH1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZWxlY3RvclxuICAgKiBAcGFyYW0ge1Byb3BlcnRpZXN9IHByb3BlcnRpZXNcbiAgICogQHBhcmFtIHsuLi5DaGlsZH0gY2hpbGRyZW5cbiAgICogQHJldHVybnMge0VsZW1lbnR9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VsZWN0b3JcbiAgICogQHBhcmFtIHsuLi5DaGlsZH0gY2hpbGRyZW5cbiAgICogQHJldHVybnMge0VsZW1lbnR9XG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3NlbGVjdG9yXVxuICAgKiAgIFNlbGVjdG9yLlxuICAgKiBAcGFyYW0ge0NoaWxkIHwgUHJvcGVydGllcyB8IG51bGwgfCB1bmRlZmluZWR9IFtwcm9wZXJ0aWVzXVxuICAgKiAgIFByb3BlcnRpZXMgKG9yIGZpcnN0IGNoaWxkKSAoZGVmYXVsdDogYHVuZGVmaW5lZGApLlxuICAgKiBAcGFyYW0gey4uLkNoaWxkfSBjaGlsZHJlblxuICAgKiAgIENoaWxkcmVuLlxuICAgKiBAcmV0dXJucyB7UmVzdWx0fVxuICAgKiAgIFJlc3VsdC5cbiAgICovXG4gIGZ1bmN0aW9uIGgoc2VsZWN0b3IsIHByb3BlcnRpZXMsIC4uLmNoaWxkcmVuKSB7XG4gICAgbGV0IGluZGV4ID0gLTFcbiAgICAvKiogQHR5cGUge1Jlc3VsdH0gKi9cbiAgICBsZXQgbm9kZVxuXG4gICAgaWYgKHNlbGVjdG9yID09PSB1bmRlZmluZWQgfHwgc2VsZWN0b3IgPT09IG51bGwpIHtcbiAgICAgIG5vZGUgPSB7dHlwZTogJ3Jvb3QnLCBjaGlsZHJlbjogW119XG4gICAgICAvLyBQcm9wZXJ0aWVzIGFyZSBub3Qgc3VwcG9ydGVkIGZvciByb290cy5cbiAgICAgIGNvbnN0IGNoaWxkID0gLyoqIEB0eXBlIHtDaGlsZH0gKi8gKHByb3BlcnRpZXMpXG4gICAgICBjaGlsZHJlbi51bnNoaWZ0KGNoaWxkKVxuICAgIH0gZWxzZSB7XG4gICAgICBub2RlID0gcGFyc2VTZWxlY3RvcihzZWxlY3RvciwgZGVmYXVsdFRhZ05hbWUpXG4gICAgICAvLyBOb3JtYWxpemUgdGhlIG5hbWUuXG4gICAgICBub2RlLnRhZ05hbWUgPSBub2RlLnRhZ05hbWUudG9Mb3dlckNhc2UoKVxuICAgICAgaWYgKGFkanVzdCAmJiBvd24uY2FsbChhZGp1c3QsIG5vZGUudGFnTmFtZSkpIHtcbiAgICAgICAgbm9kZS50YWdOYW1lID0gYWRqdXN0W25vZGUudGFnTmFtZV1cbiAgICAgIH1cblxuICAgICAgLy8gSGFuZGxlIHByb3BzLlxuICAgICAgaWYgKGlzUHJvcGVydGllcyhwcm9wZXJ0aWVzLCBub2RlLnRhZ05hbWUpKSB7XG4gICAgICAgIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICAgICAgICBsZXQga2V5XG5cbiAgICAgICAgZm9yIChrZXkgaW4gcHJvcGVydGllcykge1xuICAgICAgICAgIGlmIChvd24uY2FsbChwcm9wZXJ0aWVzLCBrZXkpKSB7XG4gICAgICAgICAgICBhZGRQcm9wZXJ0eShzY2hlbWEsIG5vZGUucHJvcGVydGllcywga2V5LCBwcm9wZXJ0aWVzW2tleV0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjaGlsZHJlbi51bnNoaWZ0KHByb3BlcnRpZXMpXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIGNoaWxkcmVuLlxuICAgIHdoaWxlICgrK2luZGV4IDwgY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICBhZGRDaGlsZChub2RlLmNoaWxkcmVuLCBjaGlsZHJlbltpbmRleF0pXG4gICAgfVxuXG4gICAgaWYgKG5vZGUudHlwZSA9PT0gJ2VsZW1lbnQnICYmIG5vZGUudGFnTmFtZSA9PT0gJ3RlbXBsYXRlJykge1xuICAgICAgbm9kZS5jb250ZW50ID0ge3R5cGU6ICdyb290JywgY2hpbGRyZW46IG5vZGUuY2hpbGRyZW59XG4gICAgICBub2RlLmNoaWxkcmVuID0gW11cbiAgICB9XG5cbiAgICByZXR1cm4gbm9kZVxuICB9XG5cbiAgcmV0dXJuIGhcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBzb21ldGhpbmcgaXMgcHJvcGVydGllcyBvciBhIGNoaWxkLlxuICpcbiAqIEBwYXJhbSB7Q2hpbGQgfCBQcm9wZXJ0aWVzfSB2YWx1ZVxuICogICBWYWx1ZSB0byBjaGVjay5cbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gKiAgIFRhZyBuYW1lLlxuICogQHJldHVybnMge3ZhbHVlIGlzIFByb3BlcnRpZXN9XG4gKiAgIFdoZXRoZXIgYHZhbHVlYCBpcyBhIHByb3BlcnRpZXMgb2JqZWN0LlxuICovXG5mdW5jdGlvbiBpc1Byb3BlcnRpZXModmFsdWUsIG5hbWUpIHtcbiAgaWYgKFxuICAgIHZhbHVlID09PSBudWxsIHx8XG4gICAgdmFsdWUgPT09IHVuZGVmaW5lZCB8fFxuICAgIHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcgfHxcbiAgICBBcnJheS5pc0FycmF5KHZhbHVlKVxuICApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGlmIChuYW1lID09PSAnaW5wdXQnIHx8ICF2YWx1ZS50eXBlIHx8IHR5cGVvZiB2YWx1ZS50eXBlICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBpZiAoJ2NoaWxkcmVuJyBpbiB2YWx1ZSAmJiBBcnJheS5pc0FycmF5KHZhbHVlLmNoaWxkcmVuKSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKG5hbWUgPT09ICdidXR0b24nKSB7XG4gICAgcmV0dXJuIGJ1dHRvblR5cGVzLmhhcyh2YWx1ZS50eXBlLnRvTG93ZXJDYXNlKCkpXG4gIH1cblxuICByZXR1cm4gISgndmFsdWUnIGluIHZhbHVlKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7U2NoZW1hfSBzY2hlbWFcbiAqICAgU2NoZW1hLlxuICogQHBhcmFtIHtQcm9wZXJ0aWVzfSBwcm9wZXJ0aWVzXG4gKiAgIFByb3BlcnRpZXMgb2JqZWN0LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICogICBQcm9wZXJ0eSBuYW1lLlxuICogQHBhcmFtIHtQcm9wZXJ0eVZhbHVlIHwgU3R5bGV9IHZhbHVlXG4gKiAgIFByb3BlcnR5IHZhbHVlLlxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqICAgTm90aGluZy5cbiAqL1xuZnVuY3Rpb24gYWRkUHJvcGVydHkoc2NoZW1hLCBwcm9wZXJ0aWVzLCBrZXksIHZhbHVlKSB7XG4gIGNvbnN0IGluZm8gPSBmaW5kKHNjaGVtYSwga2V5KVxuICBsZXQgaW5kZXggPSAtMVxuICAvKiogQHR5cGUge1Byb3BlcnR5VmFsdWV9ICovXG4gIGxldCByZXN1bHRcblxuICAvLyBJZ25vcmUgbnVsbGlzaCBhbmQgTmFOIHZhbHVlcy5cbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwpIHJldHVyblxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgLy8gSWdub3JlIE5hTi5cbiAgICBpZiAoTnVtYmVyLmlzTmFOKHZhbHVlKSkgcmV0dXJuXG5cbiAgICByZXN1bHQgPSB2YWx1ZVxuICB9XG4gIC8vIEJvb2xlYW5zLlxuICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xuICAgIHJlc3VsdCA9IHZhbHVlXG4gIH1cbiAgLy8gSGFuZGxlIGxpc3QgdmFsdWVzLlxuICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKGluZm8uc3BhY2VTZXBhcmF0ZWQpIHtcbiAgICAgIHJlc3VsdCA9IHNwYWNlcyh2YWx1ZSlcbiAgICB9IGVsc2UgaWYgKGluZm8uY29tbWFTZXBhcmF0ZWQpIHtcbiAgICAgIHJlc3VsdCA9IGNvbW1hcyh2YWx1ZSlcbiAgICB9IGVsc2UgaWYgKGluZm8uY29tbWFPclNwYWNlU2VwYXJhdGVkKSB7XG4gICAgICByZXN1bHQgPSBzcGFjZXMoY29tbWFzKHZhbHVlKS5qb2luKCcgJykpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IHBhcnNlUHJpbWl0aXZlKGluZm8sIGluZm8ucHJvcGVydHksIHZhbHVlKVxuICAgIH1cbiAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJlc3VsdCA9IHZhbHVlLmNvbmNhdCgpXG4gIH0gZWxzZSB7XG4gICAgcmVzdWx0ID0gaW5mby5wcm9wZXJ0eSA9PT0gJ3N0eWxlJyA/IHN0eWxlKHZhbHVlKSA6IFN0cmluZyh2YWx1ZSlcbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KHJlc3VsdCkpIHtcbiAgICAvKiogQHR5cGUge0FycmF5PG51bWJlciB8IHN0cmluZz59ICovXG4gICAgY29uc3QgZmluYWxSZXN1bHQgPSBbXVxuXG4gICAgd2hpbGUgKCsraW5kZXggPCByZXN1bHQubGVuZ3RoKSB7XG4gICAgICAvLyBBc3N1bWUgbm8gYm9vbGVhbnMgaW4gYXJyYXkuXG4gICAgICBjb25zdCB2YWx1ZSA9IC8qKiBAdHlwZSB7bnVtYmVyIHwgc3RyaW5nfSAqLyAoXG4gICAgICAgIHBhcnNlUHJpbWl0aXZlKGluZm8sIGluZm8ucHJvcGVydHksIHJlc3VsdFtpbmRleF0pXG4gICAgICApXG4gICAgICBmaW5hbFJlc3VsdFtpbmRleF0gPSB2YWx1ZVxuICAgIH1cblxuICAgIHJlc3VsdCA9IGZpbmFsUmVzdWx0XG4gIH1cblxuICAvLyBDbGFzcyBuYW1lcyAod2hpY2ggY2FuIGJlIGFkZGVkIGJvdGggb24gdGhlIGBzZWxlY3RvcmAgYW5kIGhlcmUpLlxuICBpZiAoaW5mby5wcm9wZXJ0eSA9PT0gJ2NsYXNzTmFtZScgJiYgQXJyYXkuaXNBcnJheShwcm9wZXJ0aWVzLmNsYXNzTmFtZSkpIHtcbiAgICAvLyBBc3N1bWUgbm8gYm9vbGVhbnMgaW4gYGNsYXNzTmFtZWAuXG4gICAgY29uc3QgdmFsdWUgPSAvKiogQHR5cGUge251bWJlciB8IHN0cmluZ30gKi8gKHJlc3VsdClcbiAgICByZXN1bHQgPSBwcm9wZXJ0aWVzLmNsYXNzTmFtZS5jb25jYXQodmFsdWUpXG4gIH1cblxuICBwcm9wZXJ0aWVzW2luZm8ucHJvcGVydHldID0gcmVzdWx0XG59XG5cbi8qKlxuICogQHBhcmFtIHtBcnJheTxSb290Q29udGVudD59IG5vZGVzXG4gKiAgIENoaWxkcmVuLlxuICogQHBhcmFtIHtDaGlsZH0gdmFsdWVcbiAqICAgQ2hpbGQuXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICogICBOb3RoaW5nLlxuICovXG5mdW5jdGlvbiBhZGRDaGlsZChub2RlcywgdmFsdWUpIHtcbiAgbGV0IGluZGV4ID0gLTFcblxuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgIC8vIEVtcHR5LlxuICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIG5vZGVzLnB1c2goe3R5cGU6ICd0ZXh0JywgdmFsdWU6IFN0cmluZyh2YWx1ZSl9KVxuICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgd2hpbGUgKCsraW5kZXggPCB2YWx1ZS5sZW5ndGgpIHtcbiAgICAgIGFkZENoaWxkKG5vZGVzLCB2YWx1ZVtpbmRleF0pXG4gICAgfVxuICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgJ3R5cGUnIGluIHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlLnR5cGUgPT09ICdyb290Jykge1xuICAgICAgYWRkQ2hpbGQobm9kZXMsIHZhbHVlLmNoaWxkcmVuKVxuICAgIH0gZWxzZSB7XG4gICAgICBub2Rlcy5wdXNoKHZhbHVlKVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIG5vZGUsIG5vZGVzLCBvciBzdHJpbmcsIGdvdCBgJyArIHZhbHVlICsgJ2AnKVxuICB9XG59XG5cbi8qKlxuICogUGFyc2UgYSBzaW5nbGUgcHJpbWl0aXZlcy5cbiAqXG4gKiBAcGFyYW0ge0luZm99IGluZm9cbiAqICAgUHJvcGVydHkgaW5mb3JtYXRpb24uXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogICBQcm9wZXJ0eSBuYW1lLlxuICogQHBhcmFtIHtQcmltaXRpdmVWYWx1ZX0gdmFsdWVcbiAqICAgUHJvcGVydHkgdmFsdWUuXG4gKiBAcmV0dXJucyB7UHJpbWl0aXZlVmFsdWV9XG4gKiAgIFByb3BlcnR5IHZhbHVlLlxuICovXG5mdW5jdGlvbiBwYXJzZVByaW1pdGl2ZShpbmZvLCBuYW1lLCB2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIGlmIChpbmZvLm51bWJlciAmJiB2YWx1ZSAmJiAhTnVtYmVyLmlzTmFOKE51bWJlcih2YWx1ZSkpKSB7XG4gICAgICByZXR1cm4gTnVtYmVyKHZhbHVlKVxuICAgIH1cblxuICAgIGlmIChcbiAgICAgIChpbmZvLmJvb2xlYW4gfHwgaW5mby5vdmVybG9hZGVkQm9vbGVhbikgJiZcbiAgICAgICh2YWx1ZSA9PT0gJycgfHwgbm9ybWFsaXplKHZhbHVlKSA9PT0gbm9ybWFsaXplKG5hbWUpKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmFsdWVcbn1cblxuLyoqXG4gKiBTZXJpYWxpemUgYSBgc3R5bGVgIG9iamVjdCBhcyBhIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0ge1N0eWxlfSB2YWx1ZVxuICogICBTdHlsZSBvYmplY3QuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBDU1Mgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBzdHlsZSh2YWx1ZSkge1xuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IHJlc3VsdCA9IFtdXG4gIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICBsZXQga2V5XG5cbiAgZm9yIChrZXkgaW4gdmFsdWUpIHtcbiAgICBpZiAob3duLmNhbGwodmFsdWUsIGtleSkpIHtcbiAgICAgIHJlc3VsdC5wdXNoKFtrZXksIHZhbHVlW2tleV1dLmpvaW4oJzogJykpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdC5qb2luKCc7ICcpXG59XG5cbi8qKlxuICogQ3JlYXRlIGEgbWFwIHRvIGFkanVzdCBjYXNpbmcuXG4gKlxuICogQHBhcmFtIHtBcnJheTxzdHJpbmc+fSB2YWx1ZXNcbiAqICAgTGlzdCBvZiBwcm9wZXJseSBjYXNlZCBrZXlzLlxuICogQHJldHVybnMge1JlY29yZDxzdHJpbmcsIHN0cmluZz59XG4gKiAgIE1hcCBvZiBsb3dlcmNhc2Uga2V5cyB0byB1cHBlcmNhc2Uga2V5cy5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQWRqdXN0TWFwKHZhbHVlcykge1xuICAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIHN0cmluZz59ICovXG4gIGNvbnN0IHJlc3VsdCA9IHt9XG4gIGxldCBpbmRleCA9IC0xXG5cbiAgd2hpbGUgKCsraW5kZXggPCB2YWx1ZXMubGVuZ3RoKSB7XG4gICAgcmVzdWx0W3ZhbHVlc1tpbmRleF0udG9Mb3dlckNhc2UoKV0gPSB2YWx1ZXNbaW5kZXhdXG4gIH1cblxuICByZXR1cm4gcmVzdWx0XG59XG4iLCAiZXhwb3J0IGNvbnN0IHN2Z0Nhc2VTZW5zaXRpdmVUYWdOYW1lcyA9IFtcbiAgJ2FsdEdseXBoJyxcbiAgJ2FsdEdseXBoRGVmJyxcbiAgJ2FsdEdseXBoSXRlbScsXG4gICdhbmltYXRlQ29sb3InLFxuICAnYW5pbWF0ZU1vdGlvbicsXG4gICdhbmltYXRlVHJhbnNmb3JtJyxcbiAgJ2NsaXBQYXRoJyxcbiAgJ2ZlQmxlbmQnLFxuICAnZmVDb2xvck1hdHJpeCcsXG4gICdmZUNvbXBvbmVudFRyYW5zZmVyJyxcbiAgJ2ZlQ29tcG9zaXRlJyxcbiAgJ2ZlQ29udm9sdmVNYXRyaXgnLFxuICAnZmVEaWZmdXNlTGlnaHRpbmcnLFxuICAnZmVEaXNwbGFjZW1lbnRNYXAnLFxuICAnZmVEaXN0YW50TGlnaHQnLFxuICAnZmVEcm9wU2hhZG93JyxcbiAgJ2ZlRmxvb2QnLFxuICAnZmVGdW5jQScsXG4gICdmZUZ1bmNCJyxcbiAgJ2ZlRnVuY0cnLFxuICAnZmVGdW5jUicsXG4gICdmZUdhdXNzaWFuQmx1cicsXG4gICdmZUltYWdlJyxcbiAgJ2ZlTWVyZ2UnLFxuICAnZmVNZXJnZU5vZGUnLFxuICAnZmVNb3JwaG9sb2d5JyxcbiAgJ2ZlT2Zmc2V0JyxcbiAgJ2ZlUG9pbnRMaWdodCcsXG4gICdmZVNwZWN1bGFyTGlnaHRpbmcnLFxuICAnZmVTcG90TGlnaHQnLFxuICAnZmVUaWxlJyxcbiAgJ2ZlVHVyYnVsZW5jZScsXG4gICdmb3JlaWduT2JqZWN0JyxcbiAgJ2dseXBoUmVmJyxcbiAgJ2xpbmVhckdyYWRpZW50JyxcbiAgJ3JhZGlhbEdyYWRpZW50JyxcbiAgJ3NvbGlkQ29sb3InLFxuICAndGV4dEFyZWEnLFxuICAndGV4dFBhdGgnXG5dXG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2NyZWF0ZS1oLmpzJykuQ2hpbGR9IENoaWxkXG4gKiAgIEFjY2VwdGFibGUgY2hpbGQgdmFsdWUuXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2NyZWF0ZS1oLmpzJykuUHJvcGVydGllc30gUHJvcGVydGllc1xuICogICBBY2NlcHRhYmxlIHZhbHVlIGZvciBlbGVtZW50IHByb3BlcnRpZXMuXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2NyZWF0ZS1oLmpzJykuUmVzdWx0fSBSZXN1bHRcbiAqICAgUmVzdWx0IGZyb20gYSBgaGAgKG9yIGBzYCkgY2FsbC5cbiAqL1xuXG4vLyBSZWdpc3RlciB0aGUgSlNYIG5hbWVzcGFjZSBvbiBgaGAuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vanN4LWNsYXNzaWMuanMnKS5FbGVtZW50fSBoLkpTWC5FbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2pzeC1jbGFzc2ljLmpzJykuRWxlbWVudENoaWxkcmVuQXR0cmlidXRlfSBoLkpTWC5FbGVtZW50Q2hpbGRyZW5BdHRyaWJ1dGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vanN4LWNsYXNzaWMuanMnKS5JbnRyaW5zaWNBdHRyaWJ1dGVzfSBoLkpTWC5JbnRyaW5zaWNBdHRyaWJ1dGVzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2pzeC1jbGFzc2ljLmpzJykuSW50cmluc2ljRWxlbWVudHN9IGguSlNYLkludHJpbnNpY0VsZW1lbnRzXG4gKi9cblxuLy8gUmVnaXN0ZXIgdGhlIEpTWCBuYW1lc3BhY2Ugb24gYHNgLlxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2pzeC1jbGFzc2ljLmpzJykuRWxlbWVudH0gcy5KU1guRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9qc3gtY2xhc3NpYy5qcycpLkVsZW1lbnRDaGlsZHJlbkF0dHJpYnV0ZX0gcy5KU1guRWxlbWVudENoaWxkcmVuQXR0cmlidXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2pzeC1jbGFzc2ljLmpzJykuSW50cmluc2ljQXR0cmlidXRlc30gcy5KU1guSW50cmluc2ljQXR0cmlidXRlc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9qc3gtY2xhc3NpYy5qcycpLkludHJpbnNpY0VsZW1lbnRzfSBzLkpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICovXG5cbmltcG9ydCB7aHRtbCwgc3ZnfSBmcm9tICdwcm9wZXJ0eS1pbmZvcm1hdGlvbidcbmltcG9ydCB7Y3JlYXRlSH0gZnJvbSAnLi9jcmVhdGUtaC5qcydcbmltcG9ydCB7c3ZnQ2FzZVNlbnNpdGl2ZVRhZ05hbWVzfSBmcm9tICcuL3N2Zy1jYXNlLXNlbnNpdGl2ZS10YWctbmFtZXMuanMnXG5cbi8vIE5vdGU6IHRoaXMgZXhwbGljaXQgdHlwZSBpcyBuZWVkZWQsIG90aGVyd2lzZSBUUyBjcmVhdGVzIGJyb2tlbiB0eXBlcy5cbi8qKiBAdHlwZSB7UmV0dXJuVHlwZTxjcmVhdGVIPn0gKi9cbmV4cG9ydCBjb25zdCBoID0gY3JlYXRlSChodG1sLCAnZGl2JylcblxuLy8gTm90ZTogdGhpcyBleHBsaWNpdCB0eXBlIGlzIG5lZWRlZCwgb3RoZXJ3aXNlIFRTIGNyZWF0ZXMgYnJva2VuIHR5cGVzLlxuLyoqIEB0eXBlIHtSZXR1cm5UeXBlPGNyZWF0ZUg+fSAqL1xuZXhwb3J0IGNvbnN0IHMgPSBjcmVhdGVIKHN2ZywgJ2cnLCBzdmdDYXNlU2Vuc2l0aXZlVGFnTmFtZXMpXG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd2ZmlsZScpLlZGaWxlfSBWRmlsZVxuICogQHR5cGVkZWYge2ltcG9ydCgndmZpbGUnKS5WYWx1ZX0gVmFsdWVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUG9pbnR9IFVuaXN0UG9pbnRcbiAqL1xuXG4vKipcbiAqXG4gKiBAdHlwZWRlZiBQb2ludExpa2VcbiAqICAgdW5pc3QgcG9pbnQsIGFsbG93ZWQgYXMgaW5wdXQuXG4gKiBAcHJvcGVydHkge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IFtsaW5lXVxuICogICBMaW5lLlxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbY29sdW1uXVxuICogICBDb2x1bW4uXG4gKiBAcHJvcGVydHkge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IFtvZmZzZXRdXG4gKiAgIE9mZnNldC5cbiAqXG4gKiBAY2FsbGJhY2sgVG9Qb2ludFxuICogICBHZXQgdGhlIGxpbmUvY29sdW1uIGJhc2VkIGBQb2ludGAgZm9yIGBvZmZzZXRgIGluIHRoZSBib3VuZCBpbmRpY2VzLlxuICpcbiAqICAgUmV0dXJucyBgdW5kZWZpbmVkYCB3aGVuIGdpdmVuIG91dCBvZiBib3VuZHMgaW5wdXQuXG4gKlxuICogICBBbHNvIGltcGxlbWVudGVkIGluIFJ1c3QgaW4gW2B3b29vcm0vbWFya2Rvd24tcnNgXVttYXJrZG93bi1yc10uXG4gKlxuICogICBbbWFya2Rvd24tcnNdOiBodHRwczovL2dpdGh1Yi5jb20vd29vb3JtL21hcmtkb3duLXJzL2Jsb2IvbWFpbi9zcmMvdXRpbC9sb2NhdGlvbi5yc1xuICogQHBhcmFtIHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbb2Zmc2V0XVxuICogICBTb21ldGhpbmcgdGhhdCBzaG91bGQgYmUgYW4gYG9mZnNldC5cbiAqIEByZXR1cm5zIHtVbmlzdFBvaW50IHwgdW5kZWZpbmVkfVxuICogICBQb2ludCwgaWYgYG9mZnNldGAgaXMgdmFsaWQgYW5kIGluLWJvdW5kcyBpbnB1dC5cbiAqXG4gKiBAY2FsbGJhY2sgVG9PZmZzZXRcbiAqICAgR2V0IHRoZSBgb2Zmc2V0YCBmcm9tIGEgbGluZS9jb2x1bW4gYmFzZWQgYFBvaW50YCBpbiB0aGUgYm91bmQgaW5kaWNlcy5cbiAqIEBwYXJhbSB7UG9pbnRMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3BvaW50XVxuICogICBTb21ldGhpbmcgdGhhdCBzaG91bGQgYmUgYSBgcG9pbnQuXG4gKiBAcmV0dXJucyB7bnVtYmVyIHwgdW5kZWZpbmVkfVxuICogICBPZmZzZXQgKGBudW1iZXJgKSBvciBgdW5kZWZpbmVkYCBmb3IgaW52YWxpZCBvciBvdXQgb2YgYm91bmRzIGlucHV0LlxuICpcbiAqIEB0eXBlZGVmIExvY2F0aW9uXG4gKiAgIEFjY2Vzc29ycyBmb3IgaW5kZXguXG4gKiBAcHJvcGVydHkge1RvUG9pbnR9IHRvUG9pbnRcbiAqICAgR2V0IHRoZSBsaW5lL2NvbHVtbiBiYXNlZCBgUG9pbnRgIGZvciBgb2Zmc2V0YCBpbiB0aGUgYm91bmQgaW5kaWNlcy5cbiAqIEBwcm9wZXJ0eSB7VG9PZmZzZXR9IHRvT2Zmc2V0XG4gKiAgIEdldCB0aGUgYG9mZnNldGAgZnJvbSBhIGxpbmUvY29sdW1uIGJhc2VkIGBQb2ludGAgaW4gdGhlIGJvdW5kIGluZGljZXMuXG4gKi9cblxuY29uc3Qgc2VhcmNoID0gL1xccj9cXG58XFxyL2dcblxuLyoqXG4gKiBDcmVhdGUgYW4gaW5kZXggb2YgdGhlIGdpdmVuIGRvY3VtZW50IHRvIHRyYW5zbGF0ZSBiZXR3ZWVuIGxpbmUvY29sdW1uIGFuZFxuICogb2Zmc2V0IGJhc2VkIHBvc2l0aW9uYWwgaW5mby5cbiAqXG4gKiBBbHNvIGltcGxlbWVudGVkIGluIFJ1c3QgaW4gW2B3b29vcm0vbWFya2Rvd24tcnNgXVttYXJrZG93bi1yc10uXG4gKlxuICogW21hcmtkb3duLXJzXTogaHR0cHM6Ly9naXRodWIuY29tL3dvb29ybS9tYXJrZG93bi1ycy9ibG9iL21haW4vc3JjL3V0aWwvbG9jYXRpb24ucnNcbiAqXG4gKiBAcGFyYW0ge1ZGaWxlIHwgVmFsdWV9IGZpbGVcbiAqICAgRmlsZSB0byBpbmRleC5cbiAqIEByZXR1cm5zIHtMb2NhdGlvbn1cbiAqICAgQWNjZXNzb3JzIGZvciBpbmRleC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvY2F0aW9uKGZpbGUpIHtcbiAgY29uc3QgdmFsdWUgPSBTdHJpbmcoZmlsZSlcbiAgLyoqXG4gICAqIExpc3QsIHdoZXJlIGVhY2ggaW5kZXggaXMgYSBsaW5lIG51bWJlciAoMC1iYXNlZCksIGFuZCBlYWNoIHZhbHVlIGlzIHRoZVxuICAgKiBieXRlIGluZGV4ICphZnRlciogd2hlcmUgdGhlIGxpbmUgZW5kcy5cbiAgICpcbiAgICogQHR5cGUge0FycmF5PG51bWJlcj59XG4gICAqL1xuICBjb25zdCBpbmRpY2VzID0gW11cblxuICBzZWFyY2gubGFzdEluZGV4ID0gMFxuXG4gIHdoaWxlIChzZWFyY2gudGVzdCh2YWx1ZSkpIHtcbiAgICBpbmRpY2VzLnB1c2goc2VhcmNoLmxhc3RJbmRleClcbiAgfVxuXG4gIGluZGljZXMucHVzaCh2YWx1ZS5sZW5ndGggKyAxKVxuXG4gIHJldHVybiB7dG9Qb2ludCwgdG9PZmZzZXR9XG5cbiAgLyoqIEB0eXBlIHtUb1BvaW50fSAqL1xuICBmdW5jdGlvbiB0b1BvaW50KG9mZnNldCkge1xuICAgIGxldCBpbmRleCA9IC0xXG5cbiAgICBpZiAoXG4gICAgICB0eXBlb2Ygb2Zmc2V0ID09PSAnbnVtYmVyJyAmJlxuICAgICAgb2Zmc2V0ID4gLTEgJiZcbiAgICAgIG9mZnNldCA8IGluZGljZXNbaW5kaWNlcy5sZW5ndGggLSAxXVxuICAgICkge1xuICAgICAgd2hpbGUgKCsraW5kZXggPCBpbmRpY2VzLmxlbmd0aCkge1xuICAgICAgICBpZiAoaW5kaWNlc1tpbmRleF0gPiBvZmZzZXQpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGluZTogaW5kZXggKyAxLFxuICAgICAgICAgICAgY29sdW1uOiBvZmZzZXQgLSAoaW5kZXggPiAwID8gaW5kaWNlc1tpbmRleCAtIDFdIDogMCkgKyAxLFxuICAgICAgICAgICAgb2Zmc2V0XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqIEB0eXBlIHtUb09mZnNldH0gKi9cbiAgZnVuY3Rpb24gdG9PZmZzZXQocG9pbnQpIHtcbiAgICBjb25zdCBsaW5lID0gcG9pbnQgJiYgcG9pbnQubGluZVxuICAgIGNvbnN0IGNvbHVtbiA9IHBvaW50ICYmIHBvaW50LmNvbHVtblxuXG4gICAgaWYgKFxuICAgICAgdHlwZW9mIGxpbmUgPT09ICdudW1iZXInICYmXG4gICAgICB0eXBlb2YgY29sdW1uID09PSAnbnVtYmVyJyAmJlxuICAgICAgIU51bWJlci5pc05hTihsaW5lKSAmJlxuICAgICAgIU51bWJlci5pc05hTihjb2x1bW4pICYmXG4gICAgICBsaW5lIC0gMSBpbiBpbmRpY2VzXG4gICAgKSB7XG4gICAgICBjb25zdCBvZmZzZXQgPSAoaW5kaWNlc1tsaW5lIC0gMl0gfHwgMCkgKyBjb2x1bW4gLSAxIHx8IDBcblxuICAgICAgaWYgKG9mZnNldCA+IC0xICYmIG9mZnNldCA8IGluZGljZXNbaW5kaWNlcy5sZW5ndGggLSAxXSkge1xuICAgICAgICByZXR1cm4gb2Zmc2V0XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCAiLyoqXG4gKiBNYXAgb2Ygd2ViIG5hbWVzcGFjZXMuXG4gKlxuICogQHR5cGUge1JlY29yZDxzdHJpbmcsIHN0cmluZz59XG4gKi9cbmV4cG9ydCBjb25zdCB3ZWJOYW1lc3BhY2VzID0ge1xuICBodG1sOiAnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsXG4gIG1hdGhtbDogJ2h0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwnLFxuICBzdmc6ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsXG4gIHhsaW5rOiAnaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluaycsXG4gIHhtbDogJ2h0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZScsXG4gIHhtbG5zOiAnaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8nXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudH0gRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkVsZW1lbnREYXRhfSBFbGVtZW50RGF0YVxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLk5vZGVzfSBOb2Rlc1xuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlJvb3R9IFJvb3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Sb290Q29udGVudH0gUm9vdENvbnRlbnRcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdwYXJzZTUnKS5EZWZhdWx0VHJlZUFkYXB0ZXJNYXB9IERlZmF1bHRUcmVlQWRhcHRlck1hcFxuICogQHR5cGVkZWYge2ltcG9ydCgncGFyc2U1JykuVG9rZW4uRWxlbWVudExvY2F0aW9ufSBQNUVsZW1lbnRMb2NhdGlvblxuICogQHR5cGVkZWYge2ltcG9ydCgncGFyc2U1JykuVG9rZW4uTG9jYXRpb259IFA1TG9jYXRpb25cbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdwcm9wZXJ0eS1pbmZvcm1hdGlvbicpLlNjaGVtYX0gU2NoZW1hXG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb2ludH0gUG9pbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUG9zaXRpb259IFBvc2l0aW9uXG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgndmZpbGUnKS5WRmlsZX0gVkZpbGVcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtEZWZhdWx0VHJlZUFkYXB0ZXJNYXBbJ2RvY3VtZW50J119IFA1RG9jdW1lbnRcbiAqIEB0eXBlZGVmIHtEZWZhdWx0VHJlZUFkYXB0ZXJNYXBbJ2RvY3VtZW50RnJhZ21lbnQnXX0gUDVEb2N1bWVudEZyYWdtZW50XG4gKiBAdHlwZWRlZiB7RGVmYXVsdFRyZWVBZGFwdGVyTWFwWydkb2N1bWVudFR5cGUnXX0gUDVEb2N1bWVudFR5cGVcbiAqIEB0eXBlZGVmIHtEZWZhdWx0VHJlZUFkYXB0ZXJNYXBbJ2NvbW1lbnROb2RlJ119IFA1Q29tbWVudFxuICogQHR5cGVkZWYge0RlZmF1bHRUcmVlQWRhcHRlck1hcFsndGV4dE5vZGUnXX0gUDVUZXh0XG4gKiBAdHlwZWRlZiB7RGVmYXVsdFRyZWVBZGFwdGVyTWFwWydlbGVtZW50J119IFA1RWxlbWVudFxuICogQHR5cGVkZWYge0RlZmF1bHRUcmVlQWRhcHRlck1hcFsnbm9kZSddfSBQNU5vZGVcbiAqIEB0eXBlZGVmIHtEZWZhdWx0VHJlZUFkYXB0ZXJNYXBbJ3RlbXBsYXRlJ119IFA1VGVtcGxhdGVcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIE9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7U3BhY2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbc3BhY2U9J2h0bWwnXVxuICogICBXaGljaCBzcGFjZSB0aGUgZG9jdW1lbnQgaXMgaW4gKGRlZmF1bHQ6IGAnaHRtbCdgKS5cbiAqXG4gKiAgIFdoZW4gYW4gYDxzdmc+YCBlbGVtZW50IGlzIGZvdW5kIGluIHRoZSBIVE1MIHNwYWNlLCB0aGlzIHBhY2thZ2UgYWxyZWFkeVxuICogICBhdXRvbWF0aWNhbGx5IHN3aXRjaGVzIHRvIGFuZCBmcm9tIHRoZSBTVkcgc3BhY2Ugd2hlbiBlbnRlcmluZyBhbmQgZXhpdGluZ1xuICogICBpdC5cbiAqIEBwcm9wZXJ0eSB7VkZpbGUgfCBudWxsIHwgdW5kZWZpbmVkfSBbZmlsZV1cbiAqICAgRmlsZSB1c2VkIHRvIGFkZCBwb3NpdGlvbmFsIGluZm8gdG8gbm9kZXMgKG9wdGlvbmFsKS5cbiAqXG4gKiAgIElmIGdpdmVuLCB0aGUgZmlsZSBzaG91bGQgcmVwcmVzZW50IHRoZSBvcmlnaW5hbCBIVE1MIHNvdXJjZS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt2ZXJib3NlPWZhbHNlXVxuICogICBXaGV0aGVyIHRvIGFkZCBleHRyYSBwb3NpdGlvbmFsIGluZm8gYWJvdXQgc3RhcnRpbmcgdGFncywgY2xvc2luZyB0YWdzLFxuICogICBhbmQgYXR0cmlidXRlcyB0byBlbGVtZW50cyAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogb25seSB1c2VkIHdoZW4gYGZpbGVgIGlzIGdpdmVuLlxuICpcbiAqIEB0eXBlZGVmIHsnaHRtbCcgfCAnc3ZnJ30gU3BhY2VcbiAqICAgTmFtZXNwYWNlLlxuICpcbiAqIEB0eXBlZGVmIFN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEBwcm9wZXJ0eSB7VkZpbGUgfCB1bmRlZmluZWR9IGZpbGVcbiAqICAgQ29ycmVzcG9uZGluZyBmaWxlLlxuICogQHByb3BlcnR5IHtib29sZWFufSBsb2NhdGlvblxuICogICBXaGV0aGVyIGxvY2F0aW9uIGluZm8gd2FzIGZvdW5kLlxuICogQHByb3BlcnR5IHtTY2hlbWF9IHNjaGVtYVxuICogICBDdXJyZW50IHNjaGVtYS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gdmVyYm9zZVxuICogICBBZGQgZXh0cmEgcG9zaXRpb25hbCBpbmZvLlxuICovXG5cbmltcG9ydCB7b2sgYXMgYXNzZXJ0fSBmcm9tICdkZXZsb3AnXG5pbXBvcnQge2gsIHN9IGZyb20gJ2hhc3RzY3JpcHQnXG5pbXBvcnQge2ZpbmQsIGh0bWwsIHN2Z30gZnJvbSAncHJvcGVydHktaW5mb3JtYXRpb24nXG5pbXBvcnQge2xvY2F0aW9ufSBmcm9tICd2ZmlsZS1sb2NhdGlvbidcbmltcG9ydCB7d2ViTmFtZXNwYWNlc30gZnJvbSAnd2ViLW5hbWVzcGFjZXMnXG5cbmNvbnN0IG93biA9IHt9Lmhhc093blByb3BlcnR5XG4vKiogQHR5cGUge3Vua25vd259ICovXG4vLyB0eXBlLWNvdmVyYWdlOmlnbm9yZS1uZXh0LWxpbmVcbmNvbnN0IHByb3RvID0gT2JqZWN0LnByb3RvdHlwZVxuXG4vKipcbiAqIFRyYW5zZm9ybSBhIGBwYXJzZTVgIEFTVCB0byBoYXN0LlxuICpcbiAqIEBwYXJhbSB7UDVOb2RlfSB0cmVlXG4gKiAgIGBwYXJzZTVgIHRyZWUgdG8gdHJhbnNmb3JtLlxuICogQHBhcmFtIHtPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAqIEByZXR1cm5zIHtOb2Rlc31cbiAqICAgaGFzdCB0cmVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZnJvbVBhcnNlNSh0cmVlLCBvcHRpb25zKSB7XG4gIGNvbnN0IHNldHRpbmdzID0gb3B0aW9ucyB8fCB7fVxuXG4gIHJldHVybiBvbmUoXG4gICAge1xuICAgICAgZmlsZTogc2V0dGluZ3MuZmlsZSB8fCB1bmRlZmluZWQsXG4gICAgICBsb2NhdGlvbjogZmFsc2UsXG4gICAgICBzY2hlbWE6IHNldHRpbmdzLnNwYWNlID09PSAnc3ZnJyA/IHN2ZyA6IGh0bWwsXG4gICAgICB2ZXJib3NlOiBzZXR0aW5ncy52ZXJib3NlIHx8IGZhbHNlXG4gICAgfSxcbiAgICB0cmVlXG4gIClcbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm0gYSBub2RlLlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEBwYXJhbSB7UDVOb2RlfSBub2RlXG4gKiAgIHA1IG5vZGUuXG4gKiBAcmV0dXJucyB7Tm9kZXN9XG4gKiAgIGhhc3Qgbm9kZS5cbiAqL1xuZnVuY3Rpb24gb25lKHN0YXRlLCBub2RlKSB7XG4gIC8qKiBAdHlwZSB7Tm9kZXN9ICovXG4gIGxldCByZXN1bHRcblxuICBzd2l0Y2ggKG5vZGUubm9kZU5hbWUpIHtcbiAgICBjYXNlICcjY29tbWVudCc6IHtcbiAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IC8qKiBAdHlwZSB7UDVDb21tZW50fSAqLyAobm9kZSlcbiAgICAgIHJlc3VsdCA9IHt0eXBlOiAnY29tbWVudCcsIHZhbHVlOiByZWZlcmVuY2UuZGF0YX1cbiAgICAgIHBhdGNoKHN0YXRlLCByZWZlcmVuY2UsIHJlc3VsdClcbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG5cbiAgICBjYXNlICcjZG9jdW1lbnQnOlxuICAgIGNhc2UgJyNkb2N1bWVudC1mcmFnbWVudCc6IHtcbiAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IC8qKiBAdHlwZSB7UDVEb2N1bWVudCB8IFA1RG9jdW1lbnRGcmFnbWVudH0gKi8gKG5vZGUpXG4gICAgICBjb25zdCBxdWlya3NNb2RlID1cbiAgICAgICAgJ21vZGUnIGluIHJlZmVyZW5jZVxuICAgICAgICAgID8gcmVmZXJlbmNlLm1vZGUgPT09ICdxdWlya3MnIHx8IHJlZmVyZW5jZS5tb2RlID09PSAnbGltaXRlZC1xdWlya3MnXG4gICAgICAgICAgOiBmYWxzZVxuXG4gICAgICByZXN1bHQgPSB7XG4gICAgICAgIHR5cGU6ICdyb290JyxcbiAgICAgICAgY2hpbGRyZW46IGFsbChzdGF0ZSwgbm9kZS5jaGlsZE5vZGVzKSxcbiAgICAgICAgZGF0YToge3F1aXJrc01vZGV9XG4gICAgICB9XG5cbiAgICAgIGlmIChzdGF0ZS5maWxlICYmIHN0YXRlLmxvY2F0aW9uKSB7XG4gICAgICAgIGNvbnN0IGRvYyA9IFN0cmluZyhzdGF0ZS5maWxlKVxuICAgICAgICBjb25zdCBsb2MgPSBsb2NhdGlvbihkb2MpXG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gbG9jLnRvUG9pbnQoMClcbiAgICAgICAgY29uc3QgZW5kID0gbG9jLnRvUG9pbnQoZG9jLmxlbmd0aClcbiAgICAgICAgLy8gQWx3YXlzIGRlZmluZWQgYXMgd2UgZ2l2ZSB2YWxpZCBpbnB1dC5cbiAgICAgICAgYXNzZXJ0KHN0YXJ0LCAnZXhwZWN0ZWQgYHN0YXJ0YCcpXG4gICAgICAgIGFzc2VydChlbmQsICdleHBlY3RlZCBgZW5kYCcpXG4gICAgICAgIHJlc3VsdC5wb3NpdGlvbiA9IHtzdGFydCwgZW5kfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuXG4gICAgY2FzZSAnI2RvY3VtZW50VHlwZSc6IHtcbiAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IC8qKiBAdHlwZSB7UDVEb2N1bWVudFR5cGV9ICovIChub2RlKVxuICAgICAgcmVzdWx0ID0ge3R5cGU6ICdkb2N0eXBlJ31cbiAgICAgIHBhdGNoKHN0YXRlLCByZWZlcmVuY2UsIHJlc3VsdClcbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG5cbiAgICBjYXNlICcjdGV4dCc6IHtcbiAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IC8qKiBAdHlwZSB7UDVUZXh0fSAqLyAobm9kZSlcbiAgICAgIHJlc3VsdCA9IHt0eXBlOiAndGV4dCcsIHZhbHVlOiByZWZlcmVuY2UudmFsdWV9XG4gICAgICBwYXRjaChzdGF0ZSwgcmVmZXJlbmNlLCByZXN1bHQpXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuXG4gICAgLy8gRWxlbWVudC5cbiAgICBkZWZhdWx0OiB7XG4gICAgICBjb25zdCByZWZlcmVuY2UgPSAvKiogQHR5cGUge1A1RWxlbWVudH0gKi8gKG5vZGUpXG4gICAgICByZXN1bHQgPSBlbGVtZW50KHN0YXRlLCByZWZlcmVuY2UpXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogVHJhbnNmb3JtIGNoaWxkcmVuLlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEBwYXJhbSB7QXJyYXk8UDVOb2RlPn0gbm9kZXNcbiAqICAgTm9kZXMuXG4gKiBAcmV0dXJucyB7QXJyYXk8Um9vdENvbnRlbnQ+fVxuICogICBoYXN0IG5vZGVzLlxuICovXG5mdW5jdGlvbiBhbGwoc3RhdGUsIG5vZGVzKSB7XG4gIGxldCBpbmRleCA9IC0xXG4gIC8qKiBAdHlwZSB7QXJyYXk8Um9vdENvbnRlbnQ+fSAqL1xuICBjb25zdCByZXN1bHRzID0gW11cblxuICB3aGlsZSAoKytpbmRleCA8IG5vZGVzLmxlbmd0aCkge1xuICAgIC8vIEFzc3VtZSBubyByb290cyBpbiBgbm9kZXNgLlxuICAgIGNvbnN0IHJlc3VsdCA9IC8qKiBAdHlwZSB7Um9vdENvbnRlbnR9ICovIChvbmUoc3RhdGUsIG5vZGVzW2luZGV4XSkpXG4gICAgcmVzdWx0cy5wdXNoKHJlc3VsdClcbiAgfVxuXG4gIHJldHVybiByZXN1bHRzXG59XG5cbi8qKlxuICogVHJhbnNmb3JtIGFuIGVsZW1lbnQuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHtQNUVsZW1lbnR9IG5vZGVcbiAqICAgYHBhcnNlNWAgbm9kZSB0byB0cmFuc2Zvcm0uXG4gKiBAcmV0dXJucyB7RWxlbWVudH1cbiAqICAgaGFzdCBub2RlLlxuICovXG5mdW5jdGlvbiBlbGVtZW50KHN0YXRlLCBub2RlKSB7XG4gIGNvbnN0IHNjaGVtYSA9IHN0YXRlLnNjaGVtYVxuXG4gIHN0YXRlLnNjaGVtYSA9IG5vZGUubmFtZXNwYWNlVVJJID09PSB3ZWJOYW1lc3BhY2VzLnN2ZyA/IHN2ZyA6IGh0bWxcblxuICAvLyBQcm9wcy5cbiAgbGV0IGluZGV4ID0gLTFcbiAgLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSAqL1xuICBjb25zdCBwcm9wcyA9IHt9XG5cbiAgd2hpbGUgKCsraW5kZXggPCBub2RlLmF0dHJzLmxlbmd0aCkge1xuICAgIGNvbnN0IGF0dHJpYnV0ZSA9IG5vZGUuYXR0cnNbaW5kZXhdXG4gICAgY29uc3QgbmFtZSA9XG4gICAgICAoYXR0cmlidXRlLnByZWZpeCA/IGF0dHJpYnV0ZS5wcmVmaXggKyAnOicgOiAnJykgKyBhdHRyaWJ1dGUubmFtZVxuICAgIGlmICghb3duLmNhbGwocHJvdG8sIG5hbWUpKSB7XG4gICAgICBwcm9wc1tuYW1lXSA9IGF0dHJpYnV0ZS52YWx1ZVxuICAgIH1cbiAgfVxuXG4gIC8vIEJ1aWxkLlxuICBjb25zdCBmbiA9IHN0YXRlLnNjaGVtYS5zcGFjZSA9PT0gJ3N2ZycgPyBzIDogaFxuICBjb25zdCByZXN1bHQgPSBmbihub2RlLnRhZ05hbWUsIHByb3BzLCBhbGwoc3RhdGUsIG5vZGUuY2hpbGROb2RlcykpXG4gIHBhdGNoKHN0YXRlLCBub2RlLCByZXN1bHQpXG5cbiAgLy8gU3dpdGNoIGNvbnRlbnQuXG4gIGlmIChyZXN1bHQudGFnTmFtZSA9PT0gJ3RlbXBsYXRlJykge1xuICAgIGNvbnN0IHJlZmVyZW5jZSA9IC8qKiBAdHlwZSB7UDVUZW1wbGF0ZX0gKi8gKG5vZGUpXG4gICAgY29uc3QgcG9zID0gcmVmZXJlbmNlLnNvdXJjZUNvZGVMb2NhdGlvblxuICAgIGNvbnN0IHN0YXJ0VGFnID0gcG9zICYmIHBvcy5zdGFydFRhZyAmJiBwb3NpdGlvbihwb3Muc3RhcnRUYWcpXG4gICAgY29uc3QgZW5kVGFnID0gcG9zICYmIHBvcy5lbmRUYWcgJiYgcG9zaXRpb24ocG9zLmVuZFRhZylcblxuICAgIC8vIFJvb3QgaW4sIHJvb3Qgb3V0LlxuICAgIGNvbnN0IGNvbnRlbnQgPSAvKiogQHR5cGUge1Jvb3R9ICovIChvbmUoc3RhdGUsIHJlZmVyZW5jZS5jb250ZW50KSlcblxuICAgIGlmIChzdGFydFRhZyAmJiBlbmRUYWcgJiYgc3RhdGUuZmlsZSkge1xuICAgICAgY29udGVudC5wb3NpdGlvbiA9IHtzdGFydDogc3RhcnRUYWcuZW5kLCBlbmQ6IGVuZFRhZy5zdGFydH1cbiAgICB9XG5cbiAgICByZXN1bHQuY29udGVudCA9IGNvbnRlbnRcbiAgfVxuXG4gIHN0YXRlLnNjaGVtYSA9IHNjaGVtYVxuXG4gIHJldHVybiByZXN1bHRcbn1cblxuLyoqXG4gKiBQYXRjaCBwb3NpdGlvbmFsIGluZm8gZnJvbSBgZnJvbWAgb250byBgdG9gLlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEBwYXJhbSB7UDVOb2RlfSBmcm9tXG4gKiAgIHA1IG5vZGUuXG4gKiBAcGFyYW0ge05vZGVzfSB0b1xuICogICBoYXN0IG5vZGUuXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICogICBOb3RoaW5nLlxuICovXG5mdW5jdGlvbiBwYXRjaChzdGF0ZSwgZnJvbSwgdG8pIHtcbiAgaWYgKCdzb3VyY2VDb2RlTG9jYXRpb24nIGluIGZyb20gJiYgZnJvbS5zb3VyY2VDb2RlTG9jYXRpb24gJiYgc3RhdGUuZmlsZSkge1xuICAgIGNvbnN0IHBvc2l0aW9uID0gY3JlYXRlTG9jYXRpb24oc3RhdGUsIHRvLCBmcm9tLnNvdXJjZUNvZGVMb2NhdGlvbilcblxuICAgIGlmIChwb3NpdGlvbikge1xuICAgICAgc3RhdGUubG9jYXRpb24gPSB0cnVlXG4gICAgICB0by5wb3NpdGlvbiA9IHBvc2l0aW9uXG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlIGNsZWFuIHBvc2l0aW9uYWwgaW5mb3JtYXRpb24uXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHtOb2Rlc30gbm9kZVxuICogICBoYXN0IG5vZGUuXG4gKiBAcGFyYW0ge1A1RWxlbWVudExvY2F0aW9ufSBsb2NhdGlvblxuICogICBwNSBsb2NhdGlvbiBpbmZvLlxuICogQHJldHVybnMge1Bvc2l0aW9uIHwgdW5kZWZpbmVkfVxuICogICBQb3NpdGlvbiwgb3Igbm90aGluZy5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlTG9jYXRpb24oc3RhdGUsIG5vZGUsIGxvY2F0aW9uKSB7XG4gIGNvbnN0IHJlc3VsdCA9IHBvc2l0aW9uKGxvY2F0aW9uKVxuXG4gIGlmIChub2RlLnR5cGUgPT09ICdlbGVtZW50Jykge1xuICAgIGNvbnN0IHRhaWwgPSBub2RlLmNoaWxkcmVuW25vZGUuY2hpbGRyZW4ubGVuZ3RoIC0gMV1cblxuICAgIC8vIEJ1ZyBmb3IgdW5jbG9zZWQgd2l0aCBjaGlsZHJlbi5cbiAgICAvLyBTZWU6IDxodHRwczovL2dpdGh1Yi5jb20vaW5pa3VsaW4vcGFyc2U1L2lzc3Vlcy8xMDk+LlxuICAgIGlmIChcbiAgICAgIHJlc3VsdCAmJlxuICAgICAgIWxvY2F0aW9uLmVuZFRhZyAmJlxuICAgICAgdGFpbCAmJlxuICAgICAgdGFpbC5wb3NpdGlvbiAmJlxuICAgICAgdGFpbC5wb3NpdGlvbi5lbmRcbiAgICApIHtcbiAgICAgIHJlc3VsdC5lbmQgPSBPYmplY3QuYXNzaWduKHt9LCB0YWlsLnBvc2l0aW9uLmVuZClcbiAgICB9XG5cbiAgICBpZiAoc3RhdGUudmVyYm9zZSkge1xuICAgICAgLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBQb3NpdGlvbiB8IHVuZGVmaW5lZD59ICovXG4gICAgICBjb25zdCBwcm9wcyA9IHt9XG4gICAgICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgICAgIGxldCBrZXlcblxuICAgICAgaWYgKGxvY2F0aW9uLmF0dHJzKSB7XG4gICAgICAgIGZvciAoa2V5IGluIGxvY2F0aW9uLmF0dHJzKSB7XG4gICAgICAgICAgaWYgKG93bi5jYWxsKGxvY2F0aW9uLmF0dHJzLCBrZXkpKSB7XG4gICAgICAgICAgICBwcm9wc1tmaW5kKHN0YXRlLnNjaGVtYSwga2V5KS5wcm9wZXJ0eV0gPSBwb3NpdGlvbihcbiAgICAgICAgICAgICAgbG9jYXRpb24uYXR0cnNba2V5XVxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBhc3NlcnQobG9jYXRpb24uc3RhcnRUYWcsICdhIHN0YXJ0IHRhZyBzaG91bGQgZXhpc3QnKVxuICAgICAgY29uc3Qgb3BlbmluZyA9IHBvc2l0aW9uKGxvY2F0aW9uLnN0YXJ0VGFnKVxuICAgICAgY29uc3QgY2xvc2luZyA9IGxvY2F0aW9uLmVuZFRhZyA/IHBvc2l0aW9uKGxvY2F0aW9uLmVuZFRhZykgOiB1bmRlZmluZWRcbiAgICAgIC8qKiBAdHlwZSB7RWxlbWVudERhdGFbJ3Bvc2l0aW9uJ119ICovXG4gICAgICBjb25zdCBkYXRhID0ge29wZW5pbmd9XG4gICAgICBpZiAoY2xvc2luZykgZGF0YS5jbG9zaW5nID0gY2xvc2luZ1xuICAgICAgZGF0YS5wcm9wZXJ0aWVzID0gcHJvcHNcblxuICAgICAgbm9kZS5kYXRhID0ge3Bvc2l0aW9uOiBkYXRhfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cblxuLyoqXG4gKiBUdXJuIGEgcDUgbG9jYXRpb24gaW50byBhIHBvc2l0aW9uLlxuICpcbiAqIEBwYXJhbSB7UDVMb2NhdGlvbn0gbG9jXG4gKiAgIExvY2F0aW9uLlxuICogQHJldHVybnMge1Bvc2l0aW9uIHwgdW5kZWZpbmVkfVxuICogICBQb3NpdGlvbiBvciBub3RoaW5nLlxuICovXG5mdW5jdGlvbiBwb3NpdGlvbihsb2MpIHtcbiAgY29uc3Qgc3RhcnQgPSBwb2ludCh7XG4gICAgbGluZTogbG9jLnN0YXJ0TGluZSxcbiAgICBjb2x1bW46IGxvYy5zdGFydENvbCxcbiAgICBvZmZzZXQ6IGxvYy5zdGFydE9mZnNldFxuICB9KVxuICBjb25zdCBlbmQgPSBwb2ludCh7XG4gICAgbGluZTogbG9jLmVuZExpbmUsXG4gICAgY29sdW1uOiBsb2MuZW5kQ29sLFxuICAgIG9mZnNldDogbG9jLmVuZE9mZnNldFxuICB9KVxuXG4gIC8vIEB0cy1leHBlY3QtZXJyb3I6IHdlIGRvIHVzZSBgdW5kZWZpbmVkYCBmb3IgcG9pbnRzIGlmIG9uZSBvciB0aGUgb3RoZXJcbiAgLy8gZXhpc3RzLlxuICByZXR1cm4gc3RhcnQgfHwgZW5kID8ge3N0YXJ0LCBlbmR9IDogdW5kZWZpbmVkXG59XG5cbi8qKlxuICogRmlsdGVyIG91dCBpbnZhbGlkIHBvaW50cy5cbiAqXG4gKiBAcGFyYW0ge1BvaW50fSBwb2ludFxuICogICBQb2ludCB3aXRoIHBvdGVudGlhbGx5IGB1bmRlZmluZWRgIHZhbHVlcy5cbiAqIEByZXR1cm5zIHtQb2ludCB8IHVuZGVmaW5lZH1cbiAqICAgUG9pbnQgb3Igbm90aGluZy5cbiAqL1xuZnVuY3Rpb24gcG9pbnQocG9pbnQpIHtcbiAgcmV0dXJuIHBvaW50LmxpbmUgJiYgcG9pbnQuY29sdW1uID8gcG9pbnQgOiB1bmRlZmluZWRcbn1cbiIsICJjb25zdCBVTkRFRklORURfQ09ERV9QT0lOVFMgPSBuZXcgU2V0KFtcbiAgICA2NTUzNCwgNjU1MzUsIDEzMTA3MCwgMTMxMDcxLCAxOTY2MDYsIDE5NjYwNywgMjYyMTQyLCAyNjIxNDMsIDMyNzY3OCwgMzI3Njc5LCAzOTMyMTQsXG4gICAgMzkzMjE1LCA0NTg3NTAsIDQ1ODc1MSwgNTI0Mjg2LCA1MjQyODcsIDU4OTgyMiwgNTg5ODIzLCA2NTUzNTgsIDY1NTM1OSwgNzIwODk0LFxuICAgIDcyMDg5NSwgNzg2NDMwLCA3ODY0MzEsIDg1MTk2NiwgODUxOTY3LCA5MTc1MDIsIDkxNzUwMywgOTgzMDM4LCA5ODMwMzksIDEwNDg1NzQsXG4gICAgMTA0ODU3NSwgMTExNDExMCwgMTExNDExMSxcbl0pO1xuZXhwb3J0IGNvbnN0IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUiA9ICdcXHVGRkZEJztcbmV4cG9ydCB2YXIgQ09ERV9QT0lOVFM7XG4oZnVuY3Rpb24gKENPREVfUE9JTlRTKSB7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJFT0ZcIl0gPSAtMV0gPSBcIkVPRlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTlVMTFwiXSA9IDBdID0gXCJOVUxMXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJUQUJVTEFUSU9OXCJdID0gOV0gPSBcIlRBQlVMQVRJT05cIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkNBUlJJQUdFX1JFVFVSTlwiXSA9IDEzXSA9IFwiQ0FSUklBR0VfUkVUVVJOXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJMSU5FX0ZFRURcIl0gPSAxMF0gPSBcIkxJTkVfRkVFRFwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiRk9STV9GRUVEXCJdID0gMTJdID0gXCJGT1JNX0ZFRURcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIlNQQUNFXCJdID0gMzJdID0gXCJTUEFDRVwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiRVhDTEFNQVRJT05fTUFSS1wiXSA9IDMzXSA9IFwiRVhDTEFNQVRJT05fTUFSS1wiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiUVVPVEFUSU9OX01BUktcIl0gPSAzNF0gPSBcIlFVT1RBVElPTl9NQVJLXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJOVU1CRVJfU0lHTlwiXSA9IDM1XSA9IFwiTlVNQkVSX1NJR05cIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkFNUEVSU0FORFwiXSA9IDM4XSA9IFwiQU1QRVJTQU5EXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJBUE9TVFJPUEhFXCJdID0gMzldID0gXCJBUE9TVFJPUEhFXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJIWVBIRU5fTUlOVVNcIl0gPSA0NV0gPSBcIkhZUEhFTl9NSU5VU1wiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiU09MSURVU1wiXSA9IDQ3XSA9IFwiU09MSURVU1wiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiRElHSVRfMFwiXSA9IDQ4XSA9IFwiRElHSVRfMFwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiRElHSVRfOVwiXSA9IDU3XSA9IFwiRElHSVRfOVwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiU0VNSUNPTE9OXCJdID0gNTldID0gXCJTRU1JQ09MT05cIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkxFU1NfVEhBTl9TSUdOXCJdID0gNjBdID0gXCJMRVNTX1RIQU5fU0lHTlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiRVFVQUxTX1NJR05cIl0gPSA2MV0gPSBcIkVRVUFMU19TSUdOXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJHUkVBVEVSX1RIQU5fU0lHTlwiXSA9IDYyXSA9IFwiR1JFQVRFUl9USEFOX1NJR05cIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIlFVRVNUSU9OX01BUktcIl0gPSA2M10gPSBcIlFVRVNUSU9OX01BUktcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkxBVElOX0NBUElUQUxfQVwiXSA9IDY1XSA9IFwiTEFUSU5fQ0FQSVRBTF9BXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJMQVRJTl9DQVBJVEFMX0ZcIl0gPSA3MF0gPSBcIkxBVElOX0NBUElUQUxfRlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTEFUSU5fQ0FQSVRBTF9YXCJdID0gODhdID0gXCJMQVRJTl9DQVBJVEFMX1hcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkxBVElOX0NBUElUQUxfWlwiXSA9IDkwXSA9IFwiTEFUSU5fQ0FQSVRBTF9aXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJSSUdIVF9TUVVBUkVfQlJBQ0tFVFwiXSA9IDkzXSA9IFwiUklHSFRfU1FVQVJFX0JSQUNLRVRcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkdSQVZFX0FDQ0VOVFwiXSA9IDk2XSA9IFwiR1JBVkVfQUNDRU5UXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJMQVRJTl9TTUFMTF9BXCJdID0gOTddID0gXCJMQVRJTl9TTUFMTF9BXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJMQVRJTl9TTUFMTF9GXCJdID0gMTAyXSA9IFwiTEFUSU5fU01BTExfRlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTEFUSU5fU01BTExfWFwiXSA9IDEyMF0gPSBcIkxBVElOX1NNQUxMX1hcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkxBVElOX1NNQUxMX1pcIl0gPSAxMjJdID0gXCJMQVRJTl9TTUFMTF9aXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJSRVBMQUNFTUVOVF9DSEFSQUNURVJcIl0gPSA2NTUzM10gPSBcIlJFUExBQ0VNRU5UX0NIQVJBQ1RFUlwiO1xufSkoQ09ERV9QT0lOVFMgPSBDT0RFX1BPSU5UUyB8fCAoQ09ERV9QT0lOVFMgPSB7fSkpO1xuZXhwb3J0IGNvbnN0IFNFUVVFTkNFUyA9IHtcbiAgICBEQVNIX0RBU0g6ICctLScsXG4gICAgQ0RBVEFfU1RBUlQ6ICdbQ0RBVEFbJyxcbiAgICBET0NUWVBFOiAnZG9jdHlwZScsXG4gICAgU0NSSVBUOiAnc2NyaXB0JyxcbiAgICBQVUJMSUM6ICdwdWJsaWMnLFxuICAgIFNZU1RFTTogJ3N5c3RlbScsXG59O1xuLy9TdXJyb2dhdGVzXG5leHBvcnQgZnVuY3Rpb24gaXNTdXJyb2dhdGUoY3ApIHtcbiAgICByZXR1cm4gY3AgPj0gNTUyOTYgJiYgY3AgPD0gNTczNDM7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNTdXJyb2dhdGVQYWlyKGNwKSB7XG4gICAgcmV0dXJuIGNwID49IDU2MzIwICYmIGNwIDw9IDU3MzQzO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFN1cnJvZ2F0ZVBhaXJDb2RlUG9pbnQoY3AxLCBjcDIpIHtcbiAgICByZXR1cm4gKGNwMSAtIDU1Mjk2KSAqIDEwMjQgKyA5MjE2ICsgY3AyO1xufVxuLy9OT1RFOiBleGNsdWRpbmcgTlVMTCBhbmQgQVNDSUkgd2hpdGVzcGFjZVxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udHJvbENvZGVQb2ludChjcCkge1xuICAgIHJldHVybiAoKGNwICE9PSAweDIwICYmIGNwICE9PSAweDBhICYmIGNwICE9PSAweDBkICYmIGNwICE9PSAweDA5ICYmIGNwICE9PSAweDBjICYmIGNwID49IDB4MDEgJiYgY3AgPD0gMHgxZikgfHxcbiAgICAgICAgKGNwID49IDB4N2YgJiYgY3AgPD0gMHg5ZikpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzVW5kZWZpbmVkQ29kZVBvaW50KGNwKSB7XG4gICAgcmV0dXJuIChjcCA+PSA2NDk3NiAmJiBjcCA8PSA2NTAwNykgfHwgVU5ERUZJTkVEX0NPREVfUE9JTlRTLmhhcyhjcCk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD11bmljb2RlLmpzLm1hcCIsICJleHBvcnQgdmFyIEVSUjtcbihmdW5jdGlvbiAoRVJSKSB7XG4gICAgRVJSW1wiY29udHJvbENoYXJhY3RlckluSW5wdXRTdHJlYW1cIl0gPSBcImNvbnRyb2wtY2hhcmFjdGVyLWluLWlucHV0LXN0cmVhbVwiO1xuICAgIEVSUltcIm5vbmNoYXJhY3RlckluSW5wdXRTdHJlYW1cIl0gPSBcIm5vbmNoYXJhY3Rlci1pbi1pbnB1dC1zdHJlYW1cIjtcbiAgICBFUlJbXCJzdXJyb2dhdGVJbklucHV0U3RyZWFtXCJdID0gXCJzdXJyb2dhdGUtaW4taW5wdXQtc3RyZWFtXCI7XG4gICAgRVJSW1wibm9uVm9pZEh0bWxFbGVtZW50U3RhcnRUYWdXaXRoVHJhaWxpbmdTb2xpZHVzXCJdID0gXCJub24tdm9pZC1odG1sLWVsZW1lbnQtc3RhcnQtdGFnLXdpdGgtdHJhaWxpbmctc29saWR1c1wiO1xuICAgIEVSUltcImVuZFRhZ1dpdGhBdHRyaWJ1dGVzXCJdID0gXCJlbmQtdGFnLXdpdGgtYXR0cmlidXRlc1wiO1xuICAgIEVSUltcImVuZFRhZ1dpdGhUcmFpbGluZ1NvbGlkdXNcIl0gPSBcImVuZC10YWctd2l0aC10cmFpbGluZy1zb2xpZHVzXCI7XG4gICAgRVJSW1widW5leHBlY3RlZFNvbGlkdXNJblRhZ1wiXSA9IFwidW5leHBlY3RlZC1zb2xpZHVzLWluLXRhZ1wiO1xuICAgIEVSUltcInVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyXCJdID0gXCJ1bmV4cGVjdGVkLW51bGwtY2hhcmFjdGVyXCI7XG4gICAgRVJSW1widW5leHBlY3RlZFF1ZXN0aW9uTWFya0luc3RlYWRPZlRhZ05hbWVcIl0gPSBcInVuZXhwZWN0ZWQtcXVlc3Rpb24tbWFyay1pbnN0ZWFkLW9mLXRhZy1uYW1lXCI7XG4gICAgRVJSW1wiaW52YWxpZEZpcnN0Q2hhcmFjdGVyT2ZUYWdOYW1lXCJdID0gXCJpbnZhbGlkLWZpcnN0LWNoYXJhY3Rlci1vZi10YWctbmFtZVwiO1xuICAgIEVSUltcInVuZXhwZWN0ZWRFcXVhbHNTaWduQmVmb3JlQXR0cmlidXRlTmFtZVwiXSA9IFwidW5leHBlY3RlZC1lcXVhbHMtc2lnbi1iZWZvcmUtYXR0cmlidXRlLW5hbWVcIjtcbiAgICBFUlJbXCJtaXNzaW5nRW5kVGFnTmFtZVwiXSA9IFwibWlzc2luZy1lbmQtdGFnLW5hbWVcIjtcbiAgICBFUlJbXCJ1bmV4cGVjdGVkQ2hhcmFjdGVySW5BdHRyaWJ1dGVOYW1lXCJdID0gXCJ1bmV4cGVjdGVkLWNoYXJhY3Rlci1pbi1hdHRyaWJ1dGUtbmFtZVwiO1xuICAgIEVSUltcInVua25vd25OYW1lZENoYXJhY3RlclJlZmVyZW5jZVwiXSA9IFwidW5rbm93bi1uYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNlXCI7XG4gICAgRVJSW1wibWlzc2luZ1NlbWljb2xvbkFmdGVyQ2hhcmFjdGVyUmVmZXJlbmNlXCJdID0gXCJtaXNzaW5nLXNlbWljb2xvbi1hZnRlci1jaGFyYWN0ZXItcmVmZXJlbmNlXCI7XG4gICAgRVJSW1widW5leHBlY3RlZENoYXJhY3RlckFmdGVyRG9jdHlwZVN5c3RlbUlkZW50aWZpZXJcIl0gPSBcInVuZXhwZWN0ZWQtY2hhcmFjdGVyLWFmdGVyLWRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXJcIjtcbiAgICBFUlJbXCJ1bmV4cGVjdGVkQ2hhcmFjdGVySW5VbnF1b3RlZEF0dHJpYnV0ZVZhbHVlXCJdID0gXCJ1bmV4cGVjdGVkLWNoYXJhY3Rlci1pbi11bnF1b3RlZC1hdHRyaWJ1dGUtdmFsdWVcIjtcbiAgICBFUlJbXCJlb2ZCZWZvcmVUYWdOYW1lXCJdID0gXCJlb2YtYmVmb3JlLXRhZy1uYW1lXCI7XG4gICAgRVJSW1wiZW9mSW5UYWdcIl0gPSBcImVvZi1pbi10YWdcIjtcbiAgICBFUlJbXCJtaXNzaW5nQXR0cmlidXRlVmFsdWVcIl0gPSBcIm1pc3NpbmctYXR0cmlidXRlLXZhbHVlXCI7XG4gICAgRVJSW1wibWlzc2luZ1doaXRlc3BhY2VCZXR3ZWVuQXR0cmlidXRlc1wiXSA9IFwibWlzc2luZy13aGl0ZXNwYWNlLWJldHdlZW4tYXR0cmlidXRlc1wiO1xuICAgIEVSUltcIm1pc3NpbmdXaGl0ZXNwYWNlQWZ0ZXJEb2N0eXBlUHVibGljS2V5d29yZFwiXSA9IFwibWlzc2luZy13aGl0ZXNwYWNlLWFmdGVyLWRvY3R5cGUtcHVibGljLWtleXdvcmRcIjtcbiAgICBFUlJbXCJtaXNzaW5nV2hpdGVzcGFjZUJldHdlZW5Eb2N0eXBlUHVibGljQW5kU3lzdGVtSWRlbnRpZmllcnNcIl0gPSBcIm1pc3Npbmctd2hpdGVzcGFjZS1iZXR3ZWVuLWRvY3R5cGUtcHVibGljLWFuZC1zeXN0ZW0taWRlbnRpZmllcnNcIjtcbiAgICBFUlJbXCJtaXNzaW5nV2hpdGVzcGFjZUFmdGVyRG9jdHlwZVN5c3RlbUtleXdvcmRcIl0gPSBcIm1pc3Npbmctd2hpdGVzcGFjZS1hZnRlci1kb2N0eXBlLXN5c3RlbS1rZXl3b3JkXCI7XG4gICAgRVJSW1wibWlzc2luZ1F1b3RlQmVmb3JlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXJcIl0gPSBcIm1pc3NpbmctcXVvdGUtYmVmb3JlLWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXJcIjtcbiAgICBFUlJbXCJtaXNzaW5nUXVvdGVCZWZvcmVEb2N0eXBlU3lzdGVtSWRlbnRpZmllclwiXSA9IFwibWlzc2luZy1xdW90ZS1iZWZvcmUtZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllclwiO1xuICAgIEVSUltcIm1pc3NpbmdEb2N0eXBlUHVibGljSWRlbnRpZmllclwiXSA9IFwibWlzc2luZy1kb2N0eXBlLXB1YmxpYy1pZGVudGlmaWVyXCI7XG4gICAgRVJSW1wibWlzc2luZ0RvY3R5cGVTeXN0ZW1JZGVudGlmaWVyXCJdID0gXCJtaXNzaW5nLWRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXJcIjtcbiAgICBFUlJbXCJhYnJ1cHREb2N0eXBlUHVibGljSWRlbnRpZmllclwiXSA9IFwiYWJydXB0LWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXJcIjtcbiAgICBFUlJbXCJhYnJ1cHREb2N0eXBlU3lzdGVtSWRlbnRpZmllclwiXSA9IFwiYWJydXB0LWRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXJcIjtcbiAgICBFUlJbXCJjZGF0YUluSHRtbENvbnRlbnRcIl0gPSBcImNkYXRhLWluLWh0bWwtY29udGVudFwiO1xuICAgIEVSUltcImluY29ycmVjdGx5T3BlbmVkQ29tbWVudFwiXSA9IFwiaW5jb3JyZWN0bHktb3BlbmVkLWNvbW1lbnRcIjtcbiAgICBFUlJbXCJlb2ZJblNjcmlwdEh0bWxDb21tZW50TGlrZVRleHRcIl0gPSBcImVvZi1pbi1zY3JpcHQtaHRtbC1jb21tZW50LWxpa2UtdGV4dFwiO1xuICAgIEVSUltcImVvZkluRG9jdHlwZVwiXSA9IFwiZW9mLWluLWRvY3R5cGVcIjtcbiAgICBFUlJbXCJuZXN0ZWRDb21tZW50XCJdID0gXCJuZXN0ZWQtY29tbWVudFwiO1xuICAgIEVSUltcImFicnVwdENsb3NpbmdPZkVtcHR5Q29tbWVudFwiXSA9IFwiYWJydXB0LWNsb3Npbmctb2YtZW1wdHktY29tbWVudFwiO1xuICAgIEVSUltcImVvZkluQ29tbWVudFwiXSA9IFwiZW9mLWluLWNvbW1lbnRcIjtcbiAgICBFUlJbXCJpbmNvcnJlY3RseUNsb3NlZENvbW1lbnRcIl0gPSBcImluY29ycmVjdGx5LWNsb3NlZC1jb21tZW50XCI7XG4gICAgRVJSW1wiZW9mSW5DZGF0YVwiXSA9IFwiZW9mLWluLWNkYXRhXCI7XG4gICAgRVJSW1wiYWJzZW5jZU9mRGlnaXRzSW5OdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlXCJdID0gXCJhYnNlbmNlLW9mLWRpZ2l0cy1pbi1udW1lcmljLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJudWxsQ2hhcmFjdGVyUmVmZXJlbmNlXCJdID0gXCJudWxsLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJzdXJyb2dhdGVDaGFyYWN0ZXJSZWZlcmVuY2VcIl0gPSBcInN1cnJvZ2F0ZS1jaGFyYWN0ZXItcmVmZXJlbmNlXCI7XG4gICAgRVJSW1wiY2hhcmFjdGVyUmVmZXJlbmNlT3V0c2lkZVVuaWNvZGVSYW5nZVwiXSA9IFwiY2hhcmFjdGVyLXJlZmVyZW5jZS1vdXRzaWRlLXVuaWNvZGUtcmFuZ2VcIjtcbiAgICBFUlJbXCJjb250cm9sQ2hhcmFjdGVyUmVmZXJlbmNlXCJdID0gXCJjb250cm9sLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJub25jaGFyYWN0ZXJDaGFyYWN0ZXJSZWZlcmVuY2VcIl0gPSBcIm5vbmNoYXJhY3Rlci1jaGFyYWN0ZXItcmVmZXJlbmNlXCI7XG4gICAgRVJSW1wibWlzc2luZ1doaXRlc3BhY2VCZWZvcmVEb2N0eXBlTmFtZVwiXSA9IFwibWlzc2luZy13aGl0ZXNwYWNlLWJlZm9yZS1kb2N0eXBlLW5hbWVcIjtcbiAgICBFUlJbXCJtaXNzaW5nRG9jdHlwZU5hbWVcIl0gPSBcIm1pc3NpbmctZG9jdHlwZS1uYW1lXCI7XG4gICAgRVJSW1wiaW52YWxpZENoYXJhY3RlclNlcXVlbmNlQWZ0ZXJEb2N0eXBlTmFtZVwiXSA9IFwiaW52YWxpZC1jaGFyYWN0ZXItc2VxdWVuY2UtYWZ0ZXItZG9jdHlwZS1uYW1lXCI7XG4gICAgRVJSW1wiZHVwbGljYXRlQXR0cmlidXRlXCJdID0gXCJkdXBsaWNhdGUtYXR0cmlidXRlXCI7XG4gICAgRVJSW1wibm9uQ29uZm9ybWluZ0RvY3R5cGVcIl0gPSBcIm5vbi1jb25mb3JtaW5nLWRvY3R5cGVcIjtcbiAgICBFUlJbXCJtaXNzaW5nRG9jdHlwZVwiXSA9IFwibWlzc2luZy1kb2N0eXBlXCI7XG4gICAgRVJSW1wibWlzcGxhY2VkRG9jdHlwZVwiXSA9IFwibWlzcGxhY2VkLWRvY3R5cGVcIjtcbiAgICBFUlJbXCJlbmRUYWdXaXRob3V0TWF0Y2hpbmdPcGVuRWxlbWVudFwiXSA9IFwiZW5kLXRhZy13aXRob3V0LW1hdGNoaW5nLW9wZW4tZWxlbWVudFwiO1xuICAgIEVSUltcImNsb3NpbmdPZkVsZW1lbnRXaXRoT3BlbkNoaWxkRWxlbWVudHNcIl0gPSBcImNsb3Npbmctb2YtZWxlbWVudC13aXRoLW9wZW4tY2hpbGQtZWxlbWVudHNcIjtcbiAgICBFUlJbXCJkaXNhbGxvd2VkQ29udGVudEluTm9zY3JpcHRJbkhlYWRcIl0gPSBcImRpc2FsbG93ZWQtY29udGVudC1pbi1ub3NjcmlwdC1pbi1oZWFkXCI7XG4gICAgRVJSW1wib3BlbkVsZW1lbnRzTGVmdEFmdGVyRW9mXCJdID0gXCJvcGVuLWVsZW1lbnRzLWxlZnQtYWZ0ZXItZW9mXCI7XG4gICAgRVJSW1wiYWJhbmRvbmVkSGVhZEVsZW1lbnRDaGlsZFwiXSA9IFwiYWJhbmRvbmVkLWhlYWQtZWxlbWVudC1jaGlsZFwiO1xuICAgIEVSUltcIm1pc3BsYWNlZFN0YXJ0VGFnRm9ySGVhZEVsZW1lbnRcIl0gPSBcIm1pc3BsYWNlZC1zdGFydC10YWctZm9yLWhlYWQtZWxlbWVudFwiO1xuICAgIEVSUltcIm5lc3RlZE5vc2NyaXB0SW5IZWFkXCJdID0gXCJuZXN0ZWQtbm9zY3JpcHQtaW4taGVhZFwiO1xuICAgIEVSUltcImVvZkluRWxlbWVudFRoYXRDYW5Db250YWluT25seVRleHRcIl0gPSBcImVvZi1pbi1lbGVtZW50LXRoYXQtY2FuLWNvbnRhaW4tb25seS10ZXh0XCI7XG59KShFUlIgPSBFUlIgfHwgKEVSUiA9IHt9KSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1lcnJvci1jb2Rlcy5qcy5tYXAiLCAiaW1wb3J0IHsgQ09ERV9QT0lOVFMgYXMgJCwgZ2V0U3Vycm9nYXRlUGFpckNvZGVQb2ludCwgaXNDb250cm9sQ29kZVBvaW50LCBpc1N1cnJvZ2F0ZSwgaXNTdXJyb2dhdGVQYWlyLCBpc1VuZGVmaW5lZENvZGVQb2ludCwgfSBmcm9tICcuLi9jb21tb24vdW5pY29kZS5qcyc7XG5pbXBvcnQgeyBFUlIgfSBmcm9tICcuLi9jb21tb24vZXJyb3ItY29kZXMuanMnO1xuLy9Db25zdFxuY29uc3QgREVGQVVMVF9CVUZGRVJfV0FURVJMSU5FID0gMSA8PCAxNjtcbi8vUHJlcHJvY2Vzc29yXG4vL05PVEU6IEhUTUwgaW5wdXQgcHJlcHJvY2Vzc2luZ1xuLy8oc2VlOiBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9wYXJzaW5nLmh0bWwjcHJlcHJvY2Vzc2luZy10aGUtaW5wdXQtc3RyZWFtKVxuZXhwb3J0IGNsYXNzIFByZXByb2Nlc3NvciB7XG4gICAgY29uc3RydWN0b3IoaGFuZGxlcikge1xuICAgICAgICB0aGlzLmhhbmRsZXIgPSBoYW5kbGVyO1xuICAgICAgICB0aGlzLmh0bWwgPSAnJztcbiAgICAgICAgdGhpcy5wb3MgPSAtMTtcbiAgICAgICAgLy8gTk9URTogSW5pdGlhbCBgbGFzdEdhcFBvc2AgaXMgLTIsIHRvIGVuc3VyZSBgY29sYCBvbiBpbml0aWFsaXNhdGlvbiBpcyAwXG4gICAgICAgIHRoaXMubGFzdEdhcFBvcyA9IC0yO1xuICAgICAgICB0aGlzLmdhcFN0YWNrID0gW107XG4gICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgIHRoaXMubGFzdENodW5rV3JpdHRlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLmVuZE9mQ2h1bmtIaXQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5idWZmZXJXYXRlcmxpbmUgPSBERUZBVUxUX0JVRkZFUl9XQVRFUkxJTkU7XG4gICAgICAgIHRoaXMuaXNFb2wgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5saW5lU3RhcnRQb3MgPSAwO1xuICAgICAgICB0aGlzLmRyb3BwZWRCdWZmZXJTaXplID0gMDtcbiAgICAgICAgdGhpcy5saW5lID0gMTtcbiAgICAgICAgLy9OT1RFOiBhdm9pZCByZXBvcnRpbmcgZXJyb3JzIHR3aWNlIG9uIGFkdmFuY2UvcmV0cmVhdFxuICAgICAgICB0aGlzLmxhc3RFcnJPZmZzZXQgPSAtMTtcbiAgICB9XG4gICAgLyoqIFRoZSBjb2x1bW4gb24gdGhlIGN1cnJlbnQgbGluZS4gSWYgd2UganVzdCBzYXcgYSBnYXAgKGVnLiBhIHN1cnJvZ2F0ZSBwYWlyKSwgcmV0dXJuIHRoZSBpbmRleCBiZWZvcmUuICovXG4gICAgZ2V0IGNvbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9zIC0gdGhpcy5saW5lU3RhcnRQb3MgKyBOdW1iZXIodGhpcy5sYXN0R2FwUG9zICE9PSB0aGlzLnBvcyk7XG4gICAgfVxuICAgIGdldCBvZmZzZXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRyb3BwZWRCdWZmZXJTaXplICsgdGhpcy5wb3M7XG4gICAgfVxuICAgIGdldEVycm9yKGNvZGUpIHtcbiAgICAgICAgY29uc3QgeyBsaW5lLCBjb2wsIG9mZnNldCB9ID0gdGhpcztcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvZGUsXG4gICAgICAgICAgICBzdGFydExpbmU6IGxpbmUsXG4gICAgICAgICAgICBlbmRMaW5lOiBsaW5lLFxuICAgICAgICAgICAgc3RhcnRDb2w6IGNvbCxcbiAgICAgICAgICAgIGVuZENvbDogY29sLFxuICAgICAgICAgICAgc3RhcnRPZmZzZXQ6IG9mZnNldCxcbiAgICAgICAgICAgIGVuZE9mZnNldDogb2Zmc2V0LFxuICAgICAgICB9O1xuICAgIH1cbiAgICBfZXJyKGNvZGUpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFuZGxlci5vblBhcnNlRXJyb3IgJiYgdGhpcy5sYXN0RXJyT2Zmc2V0ICE9PSB0aGlzLm9mZnNldCkge1xuICAgICAgICAgICAgdGhpcy5sYXN0RXJyT2Zmc2V0ID0gdGhpcy5vZmZzZXQ7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZXIub25QYXJzZUVycm9yKHRoaXMuZ2V0RXJyb3IoY29kZSkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9hZGRHYXAoKSB7XG4gICAgICAgIHRoaXMuZ2FwU3RhY2sucHVzaCh0aGlzLmxhc3RHYXBQb3MpO1xuICAgICAgICB0aGlzLmxhc3RHYXBQb3MgPSB0aGlzLnBvcztcbiAgICB9XG4gICAgX3Byb2Nlc3NTdXJyb2dhdGUoY3ApIHtcbiAgICAgICAgLy9OT1RFOiB0cnkgdG8gcGVlayBhIHN1cnJvZ2F0ZSBwYWlyXG4gICAgICAgIGlmICh0aGlzLnBvcyAhPT0gdGhpcy5odG1sLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIGNvbnN0IG5leHRDcCA9IHRoaXMuaHRtbC5jaGFyQ29kZUF0KHRoaXMucG9zICsgMSk7XG4gICAgICAgICAgICBpZiAoaXNTdXJyb2dhdGVQYWlyKG5leHRDcCkpIHtcbiAgICAgICAgICAgICAgICAvL05PVEU6IHdlIGhhdmUgYSBzdXJyb2dhdGUgcGFpci4gUGVlayBwYWlyIGNoYXJhY3RlciBhbmQgcmVjYWxjdWxhdGUgY29kZSBwb2ludC5cbiAgICAgICAgICAgICAgICB0aGlzLnBvcysrO1xuICAgICAgICAgICAgICAgIC8vTk9URTogYWRkIGEgZ2FwIHRoYXQgc2hvdWxkIGJlIGF2b2lkZWQgZHVyaW5nIHJldHJlYXRcbiAgICAgICAgICAgICAgICB0aGlzLl9hZGRHYXAoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0U3Vycm9nYXRlUGFpckNvZGVQb2ludChjcCwgbmV4dENwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvL05PVEU6IHdlIGFyZSBhdCB0aGUgZW5kIG9mIGEgY2h1bmssIHRoZXJlZm9yZSB3ZSBjYW4ndCBpbmZlciB0aGUgc3Vycm9nYXRlIHBhaXIgeWV0LlxuICAgICAgICBlbHNlIGlmICghdGhpcy5sYXN0Q2h1bmtXcml0dGVuKSB7XG4gICAgICAgICAgICB0aGlzLmVuZE9mQ2h1bmtIaXQgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuICQuRU9GO1xuICAgICAgICB9XG4gICAgICAgIC8vTk9URTogaXNvbGF0ZWQgc3Vycm9nYXRlXG4gICAgICAgIHRoaXMuX2VycihFUlIuc3Vycm9nYXRlSW5JbnB1dFN0cmVhbSk7XG4gICAgICAgIHJldHVybiBjcDtcbiAgICB9XG4gICAgd2lsbERyb3BQYXJzZWRDaHVuaygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9zID4gdGhpcy5idWZmZXJXYXRlcmxpbmU7XG4gICAgfVxuICAgIGRyb3BQYXJzZWRDaHVuaygpIHtcbiAgICAgICAgaWYgKHRoaXMud2lsbERyb3BQYXJzZWRDaHVuaygpKSB7XG4gICAgICAgICAgICB0aGlzLmh0bWwgPSB0aGlzLmh0bWwuc3Vic3RyaW5nKHRoaXMucG9zKTtcbiAgICAgICAgICAgIHRoaXMubGluZVN0YXJ0UG9zIC09IHRoaXMucG9zO1xuICAgICAgICAgICAgdGhpcy5kcm9wcGVkQnVmZmVyU2l6ZSArPSB0aGlzLnBvcztcbiAgICAgICAgICAgIHRoaXMucG9zID0gMDtcbiAgICAgICAgICAgIHRoaXMubGFzdEdhcFBvcyA9IC0yO1xuICAgICAgICAgICAgdGhpcy5nYXBTdGFjay5sZW5ndGggPSAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIHdyaXRlKGNodW5rLCBpc0xhc3RDaHVuaykge1xuICAgICAgICBpZiAodGhpcy5odG1sLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuaHRtbCArPSBjaHVuaztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaHRtbCA9IGNodW5rO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxhc3RDaHVua1dyaXR0ZW4gPSBpc0xhc3RDaHVuaztcbiAgICB9XG4gICAgaW5zZXJ0SHRtbEF0Q3VycmVudFBvcyhjaHVuaykge1xuICAgICAgICB0aGlzLmh0bWwgPSB0aGlzLmh0bWwuc3Vic3RyaW5nKDAsIHRoaXMucG9zICsgMSkgKyBjaHVuayArIHRoaXMuaHRtbC5zdWJzdHJpbmcodGhpcy5wb3MgKyAxKTtcbiAgICAgICAgdGhpcy5lbmRPZkNodW5rSGl0ID0gZmFsc2U7XG4gICAgfVxuICAgIHN0YXJ0c1dpdGgocGF0dGVybiwgY2FzZVNlbnNpdGl2ZSkge1xuICAgICAgICAvLyBDaGVjayBpZiBvdXIgYnVmZmVyIGhhcyBlbm91Z2ggY2hhcmFjdGVyc1xuICAgICAgICBpZiAodGhpcy5wb3MgKyBwYXR0ZXJuLmxlbmd0aCA+IHRoaXMuaHRtbC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9ICF0aGlzLmxhc3RDaHVua1dyaXR0ZW47XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNhc2VTZW5zaXRpdmUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0bWwuc3RhcnRzV2l0aChwYXR0ZXJuLCB0aGlzLnBvcyk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXR0ZXJuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBjcCA9IHRoaXMuaHRtbC5jaGFyQ29kZUF0KHRoaXMucG9zICsgaSkgfCAweDIwO1xuICAgICAgICAgICAgaWYgKGNwICE9PSBwYXR0ZXJuLmNoYXJDb2RlQXQoaSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHBlZWsob2Zmc2V0KSB7XG4gICAgICAgIGNvbnN0IHBvcyA9IHRoaXMucG9zICsgb2Zmc2V0O1xuICAgICAgICBpZiAocG9zID49IHRoaXMuaHRtbC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9ICF0aGlzLmxhc3RDaHVua1dyaXR0ZW47XG4gICAgICAgICAgICByZXR1cm4gJC5FT0Y7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29kZSA9IHRoaXMuaHRtbC5jaGFyQ29kZUF0KHBvcyk7XG4gICAgICAgIHJldHVybiBjb2RlID09PSAkLkNBUlJJQUdFX1JFVFVSTiA/ICQuTElORV9GRUVEIDogY29kZTtcbiAgICB9XG4gICAgYWR2YW5jZSgpIHtcbiAgICAgICAgdGhpcy5wb3MrKztcbiAgICAgICAgLy9OT1RFOiBMRiBzaG91bGQgYmUgaW4gdGhlIGxhc3QgY29sdW1uIG9mIHRoZSBsaW5lXG4gICAgICAgIGlmICh0aGlzLmlzRW9sKSB7XG4gICAgICAgICAgICB0aGlzLmlzRW9sID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmxpbmUrKztcbiAgICAgICAgICAgIHRoaXMubGluZVN0YXJ0UG9zID0gdGhpcy5wb3M7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucG9zID49IHRoaXMuaHRtbC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9ICF0aGlzLmxhc3RDaHVua1dyaXR0ZW47XG4gICAgICAgICAgICByZXR1cm4gJC5FT0Y7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGNwID0gdGhpcy5odG1sLmNoYXJDb2RlQXQodGhpcy5wb3MpO1xuICAgICAgICAvL05PVEU6IGFsbCBVKzAwMEQgQ0FSUklBR0UgUkVUVVJOIChDUikgY2hhcmFjdGVycyBtdXN0IGJlIGNvbnZlcnRlZCB0byBVKzAwMEEgTElORSBGRUVEIChMRikgY2hhcmFjdGVyc1xuICAgICAgICBpZiAoY3AgPT09ICQuQ0FSUklBR0VfUkVUVVJOKSB7XG4gICAgICAgICAgICB0aGlzLmlzRW9sID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiAkLkxJTkVfRkVFRDtcbiAgICAgICAgfVxuICAgICAgICAvL05PVEU6IGFueSBVKzAwMEEgTElORSBGRUVEIChMRikgY2hhcmFjdGVycyB0aGF0IGltbWVkaWF0ZWx5IGZvbGxvdyBhIFUrMDAwRCBDQVJSSUFHRSBSRVRVUk4gKENSKSBjaGFyYWN0ZXJcbiAgICAgICAgLy9tdXN0IGJlIGlnbm9yZWQuXG4gICAgICAgIGlmIChjcCA9PT0gJC5MSU5FX0ZFRUQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNFb2wgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKHRoaXMuc2tpcE5leHROZXdMaW5lKSB7XG4gICAgICAgICAgICAgICAgLy8gYGxpbmVgIHdpbGwgYmUgYnVtcGVkIGFnYWluIGluIHRoZSByZWN1cnNpdmUgY2FsbC5cbiAgICAgICAgICAgICAgICB0aGlzLmxpbmUtLTtcbiAgICAgICAgICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkZEdhcCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFkdmFuY2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICBpZiAoaXNTdXJyb2dhdGUoY3ApKSB7XG4gICAgICAgICAgICBjcCA9IHRoaXMuX3Byb2Nlc3NTdXJyb2dhdGUoY3ApO1xuICAgICAgICB9XG4gICAgICAgIC8vT1BUSU1JWkFUSU9OOiBmaXJzdCBjaGVjayBpZiBjb2RlIHBvaW50IGlzIGluIHRoZSBjb21tb24gYWxsb3dlZFxuICAgICAgICAvL3JhbmdlIChBU0NJSSBhbHBoYW51bWVyaWMsIHdoaXRlc3BhY2VzLCBiaWcgY2h1bmsgb2YgQk1QKVxuICAgICAgICAvL2JlZm9yZSBnb2luZyBpbnRvIGRldGFpbGVkIHBlcmZvcm1hbmNlIGNvc3QgdmFsaWRhdGlvbi5cbiAgICAgICAgY29uc3QgaXNDb21tb25WYWxpZFJhbmdlID0gdGhpcy5oYW5kbGVyLm9uUGFyc2VFcnJvciA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgKGNwID4gMHgxZiAmJiBjcCA8IDB4N2YpIHx8XG4gICAgICAgICAgICBjcCA9PT0gJC5MSU5FX0ZFRUQgfHxcbiAgICAgICAgICAgIGNwID09PSAkLkNBUlJJQUdFX1JFVFVSTiB8fFxuICAgICAgICAgICAgKGNwID4gMHg5ZiAmJiBjcCA8IDY0OTc2KTtcbiAgICAgICAgaWYgKCFpc0NvbW1vblZhbGlkUmFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX2NoZWNrRm9yUHJvYmxlbWF0aWNDaGFyYWN0ZXJzKGNwKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3A7XG4gICAgfVxuICAgIF9jaGVja0ZvclByb2JsZW1hdGljQ2hhcmFjdGVycyhjcCkge1xuICAgICAgICBpZiAoaXNDb250cm9sQ29kZVBvaW50KGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5jb250cm9sQ2hhcmFjdGVySW5JbnB1dFN0cmVhbSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNVbmRlZmluZWRDb2RlUG9pbnQoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm5vbmNoYXJhY3RlckluSW5wdXRTdHJlYW0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHJlYXQoY291bnQpIHtcbiAgICAgICAgdGhpcy5wb3MgLT0gY291bnQ7XG4gICAgICAgIHdoaWxlICh0aGlzLnBvcyA8IHRoaXMubGFzdEdhcFBvcykge1xuICAgICAgICAgICAgdGhpcy5sYXN0R2FwUG9zID0gdGhpcy5nYXBTdGFjay5wb3AoKTtcbiAgICAgICAgICAgIHRoaXMucG9zLS07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc0VvbCA9IGZhbHNlO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXByZXByb2Nlc3Nvci5qcy5tYXAiLCAiZXhwb3J0IHZhciBUb2tlblR5cGU7XG4oZnVuY3Rpb24gKFRva2VuVHlwZSkge1xuICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJDSEFSQUNURVJcIl0gPSAwXSA9IFwiQ0hBUkFDVEVSXCI7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIk5VTExfQ0hBUkFDVEVSXCJdID0gMV0gPSBcIk5VTExfQ0hBUkFDVEVSXCI7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIldISVRFU1BBQ0VfQ0hBUkFDVEVSXCJdID0gMl0gPSBcIldISVRFU1BBQ0VfQ0hBUkFDVEVSXCI7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIlNUQVJUX1RBR1wiXSA9IDNdID0gXCJTVEFSVF9UQUdcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiRU5EX1RBR1wiXSA9IDRdID0gXCJFTkRfVEFHXCI7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkNPTU1FTlRcIl0gPSA1XSA9IFwiQ09NTUVOVFwiO1xuICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJET0NUWVBFXCJdID0gNl0gPSBcIkRPQ1RZUEVcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiRU9GXCJdID0gN10gPSBcIkVPRlwiO1xuICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJISUJFUk5BVElPTlwiXSA9IDhdID0gXCJISUJFUk5BVElPTlwiO1xufSkoVG9rZW5UeXBlID0gVG9rZW5UeXBlIHx8IChUb2tlblR5cGUgPSB7fSkpO1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRva2VuQXR0cih0b2tlbiwgYXR0ck5hbWUpIHtcbiAgICBmb3IgKGxldCBpID0gdG9rZW4uYXR0cnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgaWYgKHRva2VuLmF0dHJzW2ldLm5hbWUgPT09IGF0dHJOYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gdG9rZW4uYXR0cnNbaV0udmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD10b2tlbi5qcy5tYXAiLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCAiLyoqIEFsbCB2YWxpZCBuYW1lc3BhY2VzIGluIEhUTUwuICovXG5leHBvcnQgdmFyIE5TO1xuKGZ1bmN0aW9uIChOUykge1xuICAgIE5TW1wiSFRNTFwiXSA9IFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiO1xuICAgIE5TW1wiTUFUSE1MXCJdID0gXCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MXCI7XG4gICAgTlNbXCJTVkdcIl0gPSBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI7XG4gICAgTlNbXCJYTElOS1wiXSA9IFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiO1xuICAgIE5TW1wiWE1MXCJdID0gXCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2VcIjtcbiAgICBOU1tcIlhNTE5TXCJdID0gXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zL1wiO1xufSkoTlMgPSBOUyB8fCAoTlMgPSB7fSkpO1xuZXhwb3J0IHZhciBBVFRSUztcbihmdW5jdGlvbiAoQVRUUlMpIHtcbiAgICBBVFRSU1tcIlRZUEVcIl0gPSBcInR5cGVcIjtcbiAgICBBVFRSU1tcIkFDVElPTlwiXSA9IFwiYWN0aW9uXCI7XG4gICAgQVRUUlNbXCJFTkNPRElOR1wiXSA9IFwiZW5jb2RpbmdcIjtcbiAgICBBVFRSU1tcIlBST01QVFwiXSA9IFwicHJvbXB0XCI7XG4gICAgQVRUUlNbXCJOQU1FXCJdID0gXCJuYW1lXCI7XG4gICAgQVRUUlNbXCJDT0xPUlwiXSA9IFwiY29sb3JcIjtcbiAgICBBVFRSU1tcIkZBQ0VcIl0gPSBcImZhY2VcIjtcbiAgICBBVFRSU1tcIlNJWkVcIl0gPSBcInNpemVcIjtcbn0pKEFUVFJTID0gQVRUUlMgfHwgKEFUVFJTID0ge30pKTtcbi8qKlxuICogVGhlIG1vZGUgb2YgdGhlIGRvY3VtZW50LlxuICpcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1kb2N1bWVudC1saW1pdGVkLXF1aXJrc31cbiAqL1xuZXhwb3J0IHZhciBET0NVTUVOVF9NT0RFO1xuKGZ1bmN0aW9uIChET0NVTUVOVF9NT0RFKSB7XG4gICAgRE9DVU1FTlRfTU9ERVtcIk5PX1FVSVJLU1wiXSA9IFwibm8tcXVpcmtzXCI7XG4gICAgRE9DVU1FTlRfTU9ERVtcIlFVSVJLU1wiXSA9IFwicXVpcmtzXCI7XG4gICAgRE9DVU1FTlRfTU9ERVtcIkxJTUlURURfUVVJUktTXCJdID0gXCJsaW1pdGVkLXF1aXJrc1wiO1xufSkoRE9DVU1FTlRfTU9ERSA9IERPQ1VNRU5UX01PREUgfHwgKERPQ1VNRU5UX01PREUgPSB7fSkpO1xuZXhwb3J0IHZhciBUQUdfTkFNRVM7XG4oZnVuY3Rpb24gKFRBR19OQU1FUykge1xuICAgIFRBR19OQU1FU1tcIkFcIl0gPSBcImFcIjtcbiAgICBUQUdfTkFNRVNbXCJBRERSRVNTXCJdID0gXCJhZGRyZXNzXCI7XG4gICAgVEFHX05BTUVTW1wiQU5OT1RBVElPTl9YTUxcIl0gPSBcImFubm90YXRpb24teG1sXCI7XG4gICAgVEFHX05BTUVTW1wiQVBQTEVUXCJdID0gXCJhcHBsZXRcIjtcbiAgICBUQUdfTkFNRVNbXCJBUkVBXCJdID0gXCJhcmVhXCI7XG4gICAgVEFHX05BTUVTW1wiQVJUSUNMRVwiXSA9IFwiYXJ0aWNsZVwiO1xuICAgIFRBR19OQU1FU1tcIkFTSURFXCJdID0gXCJhc2lkZVwiO1xuICAgIFRBR19OQU1FU1tcIkJcIl0gPSBcImJcIjtcbiAgICBUQUdfTkFNRVNbXCJCQVNFXCJdID0gXCJiYXNlXCI7XG4gICAgVEFHX05BTUVTW1wiQkFTRUZPTlRcIl0gPSBcImJhc2Vmb250XCI7XG4gICAgVEFHX05BTUVTW1wiQkdTT1VORFwiXSA9IFwiYmdzb3VuZFwiO1xuICAgIFRBR19OQU1FU1tcIkJJR1wiXSA9IFwiYmlnXCI7XG4gICAgVEFHX05BTUVTW1wiQkxPQ0tRVU9URVwiXSA9IFwiYmxvY2txdW90ZVwiO1xuICAgIFRBR19OQU1FU1tcIkJPRFlcIl0gPSBcImJvZHlcIjtcbiAgICBUQUdfTkFNRVNbXCJCUlwiXSA9IFwiYnJcIjtcbiAgICBUQUdfTkFNRVNbXCJCVVRUT05cIl0gPSBcImJ1dHRvblwiO1xuICAgIFRBR19OQU1FU1tcIkNBUFRJT05cIl0gPSBcImNhcHRpb25cIjtcbiAgICBUQUdfTkFNRVNbXCJDRU5URVJcIl0gPSBcImNlbnRlclwiO1xuICAgIFRBR19OQU1FU1tcIkNPREVcIl0gPSBcImNvZGVcIjtcbiAgICBUQUdfTkFNRVNbXCJDT0xcIl0gPSBcImNvbFwiO1xuICAgIFRBR19OQU1FU1tcIkNPTEdST1VQXCJdID0gXCJjb2xncm91cFwiO1xuICAgIFRBR19OQU1FU1tcIkREXCJdID0gXCJkZFwiO1xuICAgIFRBR19OQU1FU1tcIkRFU0NcIl0gPSBcImRlc2NcIjtcbiAgICBUQUdfTkFNRVNbXCJERVRBSUxTXCJdID0gXCJkZXRhaWxzXCI7XG4gICAgVEFHX05BTUVTW1wiRElBTE9HXCJdID0gXCJkaWFsb2dcIjtcbiAgICBUQUdfTkFNRVNbXCJESVJcIl0gPSBcImRpclwiO1xuICAgIFRBR19OQU1FU1tcIkRJVlwiXSA9IFwiZGl2XCI7XG4gICAgVEFHX05BTUVTW1wiRExcIl0gPSBcImRsXCI7XG4gICAgVEFHX05BTUVTW1wiRFRcIl0gPSBcImR0XCI7XG4gICAgVEFHX05BTUVTW1wiRU1cIl0gPSBcImVtXCI7XG4gICAgVEFHX05BTUVTW1wiRU1CRURcIl0gPSBcImVtYmVkXCI7XG4gICAgVEFHX05BTUVTW1wiRklFTERTRVRcIl0gPSBcImZpZWxkc2V0XCI7XG4gICAgVEFHX05BTUVTW1wiRklHQ0FQVElPTlwiXSA9IFwiZmlnY2FwdGlvblwiO1xuICAgIFRBR19OQU1FU1tcIkZJR1VSRVwiXSA9IFwiZmlndXJlXCI7XG4gICAgVEFHX05BTUVTW1wiRk9OVFwiXSA9IFwiZm9udFwiO1xuICAgIFRBR19OQU1FU1tcIkZPT1RFUlwiXSA9IFwiZm9vdGVyXCI7XG4gICAgVEFHX05BTUVTW1wiRk9SRUlHTl9PQkpFQ1RcIl0gPSBcImZvcmVpZ25PYmplY3RcIjtcbiAgICBUQUdfTkFNRVNbXCJGT1JNXCJdID0gXCJmb3JtXCI7XG4gICAgVEFHX05BTUVTW1wiRlJBTUVcIl0gPSBcImZyYW1lXCI7XG4gICAgVEFHX05BTUVTW1wiRlJBTUVTRVRcIl0gPSBcImZyYW1lc2V0XCI7XG4gICAgVEFHX05BTUVTW1wiSDFcIl0gPSBcImgxXCI7XG4gICAgVEFHX05BTUVTW1wiSDJcIl0gPSBcImgyXCI7XG4gICAgVEFHX05BTUVTW1wiSDNcIl0gPSBcImgzXCI7XG4gICAgVEFHX05BTUVTW1wiSDRcIl0gPSBcImg0XCI7XG4gICAgVEFHX05BTUVTW1wiSDVcIl0gPSBcImg1XCI7XG4gICAgVEFHX05BTUVTW1wiSDZcIl0gPSBcImg2XCI7XG4gICAgVEFHX05BTUVTW1wiSEVBRFwiXSA9IFwiaGVhZFwiO1xuICAgIFRBR19OQU1FU1tcIkhFQURFUlwiXSA9IFwiaGVhZGVyXCI7XG4gICAgVEFHX05BTUVTW1wiSEdST1VQXCJdID0gXCJoZ3JvdXBcIjtcbiAgICBUQUdfTkFNRVNbXCJIUlwiXSA9IFwiaHJcIjtcbiAgICBUQUdfTkFNRVNbXCJIVE1MXCJdID0gXCJodG1sXCI7XG4gICAgVEFHX05BTUVTW1wiSVwiXSA9IFwiaVwiO1xuICAgIFRBR19OQU1FU1tcIklNR1wiXSA9IFwiaW1nXCI7XG4gICAgVEFHX05BTUVTW1wiSU1BR0VcIl0gPSBcImltYWdlXCI7XG4gICAgVEFHX05BTUVTW1wiSU5QVVRcIl0gPSBcImlucHV0XCI7XG4gICAgVEFHX05BTUVTW1wiSUZSQU1FXCJdID0gXCJpZnJhbWVcIjtcbiAgICBUQUdfTkFNRVNbXCJLRVlHRU5cIl0gPSBcImtleWdlblwiO1xuICAgIFRBR19OQU1FU1tcIkxBQkVMXCJdID0gXCJsYWJlbFwiO1xuICAgIFRBR19OQU1FU1tcIkxJXCJdID0gXCJsaVwiO1xuICAgIFRBR19OQU1FU1tcIkxJTktcIl0gPSBcImxpbmtcIjtcbiAgICBUQUdfTkFNRVNbXCJMSVNUSU5HXCJdID0gXCJsaXN0aW5nXCI7XG4gICAgVEFHX05BTUVTW1wiTUFJTlwiXSA9IFwibWFpblwiO1xuICAgIFRBR19OQU1FU1tcIk1BTElHTk1BUktcIl0gPSBcIm1hbGlnbm1hcmtcIjtcbiAgICBUQUdfTkFNRVNbXCJNQVJRVUVFXCJdID0gXCJtYXJxdWVlXCI7XG4gICAgVEFHX05BTUVTW1wiTUFUSFwiXSA9IFwibWF0aFwiO1xuICAgIFRBR19OQU1FU1tcIk1FTlVcIl0gPSBcIm1lbnVcIjtcbiAgICBUQUdfTkFNRVNbXCJNRVRBXCJdID0gXCJtZXRhXCI7XG4gICAgVEFHX05BTUVTW1wiTUdMWVBIXCJdID0gXCJtZ2x5cGhcIjtcbiAgICBUQUdfTkFNRVNbXCJNSVwiXSA9IFwibWlcIjtcbiAgICBUQUdfTkFNRVNbXCJNT1wiXSA9IFwibW9cIjtcbiAgICBUQUdfTkFNRVNbXCJNTlwiXSA9IFwibW5cIjtcbiAgICBUQUdfTkFNRVNbXCJNU1wiXSA9IFwibXNcIjtcbiAgICBUQUdfTkFNRVNbXCJNVEVYVFwiXSA9IFwibXRleHRcIjtcbiAgICBUQUdfTkFNRVNbXCJOQVZcIl0gPSBcIm5hdlwiO1xuICAgIFRBR19OQU1FU1tcIk5PQlJcIl0gPSBcIm5vYnJcIjtcbiAgICBUQUdfTkFNRVNbXCJOT0ZSQU1FU1wiXSA9IFwibm9mcmFtZXNcIjtcbiAgICBUQUdfTkFNRVNbXCJOT0VNQkVEXCJdID0gXCJub2VtYmVkXCI7XG4gICAgVEFHX05BTUVTW1wiTk9TQ1JJUFRcIl0gPSBcIm5vc2NyaXB0XCI7XG4gICAgVEFHX05BTUVTW1wiT0JKRUNUXCJdID0gXCJvYmplY3RcIjtcbiAgICBUQUdfTkFNRVNbXCJPTFwiXSA9IFwib2xcIjtcbiAgICBUQUdfTkFNRVNbXCJPUFRHUk9VUFwiXSA9IFwib3B0Z3JvdXBcIjtcbiAgICBUQUdfTkFNRVNbXCJPUFRJT05cIl0gPSBcIm9wdGlvblwiO1xuICAgIFRBR19OQU1FU1tcIlBcIl0gPSBcInBcIjtcbiAgICBUQUdfTkFNRVNbXCJQQVJBTVwiXSA9IFwicGFyYW1cIjtcbiAgICBUQUdfTkFNRVNbXCJQTEFJTlRFWFRcIl0gPSBcInBsYWludGV4dFwiO1xuICAgIFRBR19OQU1FU1tcIlBSRVwiXSA9IFwicHJlXCI7XG4gICAgVEFHX05BTUVTW1wiUkJcIl0gPSBcInJiXCI7XG4gICAgVEFHX05BTUVTW1wiUlBcIl0gPSBcInJwXCI7XG4gICAgVEFHX05BTUVTW1wiUlRcIl0gPSBcInJ0XCI7XG4gICAgVEFHX05BTUVTW1wiUlRDXCJdID0gXCJydGNcIjtcbiAgICBUQUdfTkFNRVNbXCJSVUJZXCJdID0gXCJydWJ5XCI7XG4gICAgVEFHX05BTUVTW1wiU1wiXSA9IFwic1wiO1xuICAgIFRBR19OQU1FU1tcIlNDUklQVFwiXSA9IFwic2NyaXB0XCI7XG4gICAgVEFHX05BTUVTW1wiU0VDVElPTlwiXSA9IFwic2VjdGlvblwiO1xuICAgIFRBR19OQU1FU1tcIlNFTEVDVFwiXSA9IFwic2VsZWN0XCI7XG4gICAgVEFHX05BTUVTW1wiU09VUkNFXCJdID0gXCJzb3VyY2VcIjtcbiAgICBUQUdfTkFNRVNbXCJTTUFMTFwiXSA9IFwic21hbGxcIjtcbiAgICBUQUdfTkFNRVNbXCJTUEFOXCJdID0gXCJzcGFuXCI7XG4gICAgVEFHX05BTUVTW1wiU1RSSUtFXCJdID0gXCJzdHJpa2VcIjtcbiAgICBUQUdfTkFNRVNbXCJTVFJPTkdcIl0gPSBcInN0cm9uZ1wiO1xuICAgIFRBR19OQU1FU1tcIlNUWUxFXCJdID0gXCJzdHlsZVwiO1xuICAgIFRBR19OQU1FU1tcIlNVQlwiXSA9IFwic3ViXCI7XG4gICAgVEFHX05BTUVTW1wiU1VNTUFSWVwiXSA9IFwic3VtbWFyeVwiO1xuICAgIFRBR19OQU1FU1tcIlNVUFwiXSA9IFwic3VwXCI7XG4gICAgVEFHX05BTUVTW1wiVEFCTEVcIl0gPSBcInRhYmxlXCI7XG4gICAgVEFHX05BTUVTW1wiVEJPRFlcIl0gPSBcInRib2R5XCI7XG4gICAgVEFHX05BTUVTW1wiVEVNUExBVEVcIl0gPSBcInRlbXBsYXRlXCI7XG4gICAgVEFHX05BTUVTW1wiVEVYVEFSRUFcIl0gPSBcInRleHRhcmVhXCI7XG4gICAgVEFHX05BTUVTW1wiVEZPT1RcIl0gPSBcInRmb290XCI7XG4gICAgVEFHX05BTUVTW1wiVERcIl0gPSBcInRkXCI7XG4gICAgVEFHX05BTUVTW1wiVEhcIl0gPSBcInRoXCI7XG4gICAgVEFHX05BTUVTW1wiVEhFQURcIl0gPSBcInRoZWFkXCI7XG4gICAgVEFHX05BTUVTW1wiVElUTEVcIl0gPSBcInRpdGxlXCI7XG4gICAgVEFHX05BTUVTW1wiVFJcIl0gPSBcInRyXCI7XG4gICAgVEFHX05BTUVTW1wiVFJBQ0tcIl0gPSBcInRyYWNrXCI7XG4gICAgVEFHX05BTUVTW1wiVFRcIl0gPSBcInR0XCI7XG4gICAgVEFHX05BTUVTW1wiVVwiXSA9IFwidVwiO1xuICAgIFRBR19OQU1FU1tcIlVMXCJdID0gXCJ1bFwiO1xuICAgIFRBR19OQU1FU1tcIlNWR1wiXSA9IFwic3ZnXCI7XG4gICAgVEFHX05BTUVTW1wiVkFSXCJdID0gXCJ2YXJcIjtcbiAgICBUQUdfTkFNRVNbXCJXQlJcIl0gPSBcIndiclwiO1xuICAgIFRBR19OQU1FU1tcIlhNUFwiXSA9IFwieG1wXCI7XG59KShUQUdfTkFNRVMgPSBUQUdfTkFNRVMgfHwgKFRBR19OQU1FUyA9IHt9KSk7XG4vKipcbiAqIFRhZyBJRHMgYXJlIG51bWVyaWMgSURzIGZvciBrbm93biB0YWcgbmFtZXMuXG4gKlxuICogV2UgdXNlIHRhZyBJRHMgdG8gaW1wcm92ZSB0aGUgcGVyZm9ybWFuY2Ugb2YgdGFnIG5hbWUgY29tcGFyaXNvbnMuXG4gKi9cbmV4cG9ydCB2YXIgVEFHX0lEO1xuKGZ1bmN0aW9uIChUQUdfSUQpIHtcbiAgICBUQUdfSURbVEFHX0lEW1wiVU5LTk9XTlwiXSA9IDBdID0gXCJVTktOT1dOXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkFcIl0gPSAxXSA9IFwiQVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJBRERSRVNTXCJdID0gMl0gPSBcIkFERFJFU1NcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQU5OT1RBVElPTl9YTUxcIl0gPSAzXSA9IFwiQU5OT1RBVElPTl9YTUxcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQVBQTEVUXCJdID0gNF0gPSBcIkFQUExFVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJBUkVBXCJdID0gNV0gPSBcIkFSRUFcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQVJUSUNMRVwiXSA9IDZdID0gXCJBUlRJQ0xFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkFTSURFXCJdID0gN10gPSBcIkFTSURFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkJcIl0gPSA4XSA9IFwiQlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJCQVNFXCJdID0gOV0gPSBcIkJBU0VcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQkFTRUZPTlRcIl0gPSAxMF0gPSBcIkJBU0VGT05UXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkJHU09VTkRcIl0gPSAxMV0gPSBcIkJHU09VTkRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQklHXCJdID0gMTJdID0gXCJCSUdcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQkxPQ0tRVU9URVwiXSA9IDEzXSA9IFwiQkxPQ0tRVU9URVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJCT0RZXCJdID0gMTRdID0gXCJCT0RZXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkJSXCJdID0gMTVdID0gXCJCUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJCVVRUT05cIl0gPSAxNl0gPSBcIkJVVFRPTlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJDQVBUSU9OXCJdID0gMTddID0gXCJDQVBUSU9OXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkNFTlRFUlwiXSA9IDE4XSA9IFwiQ0VOVEVSXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkNPREVcIl0gPSAxOV0gPSBcIkNPREVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQ09MXCJdID0gMjBdID0gXCJDT0xcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQ09MR1JPVVBcIl0gPSAyMV0gPSBcIkNPTEdST1VQXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkREXCJdID0gMjJdID0gXCJERFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJERVNDXCJdID0gMjNdID0gXCJERVNDXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkRFVEFJTFNcIl0gPSAyNF0gPSBcIkRFVEFJTFNcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRElBTE9HXCJdID0gMjVdID0gXCJESUFMT0dcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRElSXCJdID0gMjZdID0gXCJESVJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRElWXCJdID0gMjddID0gXCJESVZcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRExcIl0gPSAyOF0gPSBcIkRMXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkRUXCJdID0gMjldID0gXCJEVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJFTVwiXSA9IDMwXSA9IFwiRU1cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRU1CRURcIl0gPSAzMV0gPSBcIkVNQkVEXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkZJRUxEU0VUXCJdID0gMzJdID0gXCJGSUVMRFNFVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJGSUdDQVBUSU9OXCJdID0gMzNdID0gXCJGSUdDQVBUSU9OXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkZJR1VSRVwiXSA9IDM0XSA9IFwiRklHVVJFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkZPTlRcIl0gPSAzNV0gPSBcIkZPTlRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRk9PVEVSXCJdID0gMzZdID0gXCJGT09URVJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRk9SRUlHTl9PQkpFQ1RcIl0gPSAzN10gPSBcIkZPUkVJR05fT0JKRUNUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkZPUk1cIl0gPSAzOF0gPSBcIkZPUk1cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRlJBTUVcIl0gPSAzOV0gPSBcIkZSQU1FXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkZSQU1FU0VUXCJdID0gNDBdID0gXCJGUkFNRVNFVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJIMVwiXSA9IDQxXSA9IFwiSDFcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSDJcIl0gPSA0Ml0gPSBcIkgyXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkgzXCJdID0gNDNdID0gXCJIM1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJINFwiXSA9IDQ0XSA9IFwiSDRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSDVcIl0gPSA0NV0gPSBcIkg1XCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkg2XCJdID0gNDZdID0gXCJINlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJIRUFEXCJdID0gNDddID0gXCJIRUFEXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkhFQURFUlwiXSA9IDQ4XSA9IFwiSEVBREVSXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkhHUk9VUFwiXSA9IDQ5XSA9IFwiSEdST1VQXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkhSXCJdID0gNTBdID0gXCJIUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJIVE1MXCJdID0gNTFdID0gXCJIVE1MXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIklcIl0gPSA1Ml0gPSBcIklcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSU1HXCJdID0gNTNdID0gXCJJTUdcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSU1BR0VcIl0gPSA1NF0gPSBcIklNQUdFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIklOUFVUXCJdID0gNTVdID0gXCJJTlBVVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJJRlJBTUVcIl0gPSA1Nl0gPSBcIklGUkFNRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJLRVlHRU5cIl0gPSA1N10gPSBcIktFWUdFTlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJMQUJFTFwiXSA9IDU4XSA9IFwiTEFCRUxcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTElcIl0gPSA1OV0gPSBcIkxJXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkxJTktcIl0gPSA2MF0gPSBcIkxJTktcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTElTVElOR1wiXSA9IDYxXSA9IFwiTElTVElOR1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNQUlOXCJdID0gNjJdID0gXCJNQUlOXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1BTElHTk1BUktcIl0gPSA2M10gPSBcIk1BTElHTk1BUktcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTUFSUVVFRVwiXSA9IDY0XSA9IFwiTUFSUVVFRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNQVRIXCJdID0gNjVdID0gXCJNQVRIXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1FTlVcIl0gPSA2Nl0gPSBcIk1FTlVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTUVUQVwiXSA9IDY3XSA9IFwiTUVUQVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNR0xZUEhcIl0gPSA2OF0gPSBcIk1HTFlQSFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNSVwiXSA9IDY5XSA9IFwiTUlcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTU9cIl0gPSA3MF0gPSBcIk1PXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1OXCJdID0gNzFdID0gXCJNTlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNU1wiXSA9IDcyXSA9IFwiTVNcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTVRFWFRcIl0gPSA3M10gPSBcIk1URVhUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk5BVlwiXSA9IDc0XSA9IFwiTkFWXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk5PQlJcIl0gPSA3NV0gPSBcIk5PQlJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTk9GUkFNRVNcIl0gPSA3Nl0gPSBcIk5PRlJBTUVTXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk5PRU1CRURcIl0gPSA3N10gPSBcIk5PRU1CRURcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTk9TQ1JJUFRcIl0gPSA3OF0gPSBcIk5PU0NSSVBUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk9CSkVDVFwiXSA9IDc5XSA9IFwiT0JKRUNUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk9MXCJdID0gODBdID0gXCJPTFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJPUFRHUk9VUFwiXSA9IDgxXSA9IFwiT1BUR1JPVVBcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiT1BUSU9OXCJdID0gODJdID0gXCJPUFRJT05cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiUFwiXSA9IDgzXSA9IFwiUFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJQQVJBTVwiXSA9IDg0XSA9IFwiUEFSQU1cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiUExBSU5URVhUXCJdID0gODVdID0gXCJQTEFJTlRFWFRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiUFJFXCJdID0gODZdID0gXCJQUkVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiUkJcIl0gPSA4N10gPSBcIlJCXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlJQXCJdID0gODhdID0gXCJSUFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJSVFwiXSA9IDg5XSA9IFwiUlRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiUlRDXCJdID0gOTBdID0gXCJSVENcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiUlVCWVwiXSA9IDkxXSA9IFwiUlVCWVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTXCJdID0gOTJdID0gXCJTXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNDUklQVFwiXSA9IDkzXSA9IFwiU0NSSVBUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNFQ1RJT05cIl0gPSA5NF0gPSBcIlNFQ1RJT05cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU0VMRUNUXCJdID0gOTVdID0gXCJTRUxFQ1RcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU09VUkNFXCJdID0gOTZdID0gXCJTT1VSQ0VcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU01BTExcIl0gPSA5N10gPSBcIlNNQUxMXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNQQU5cIl0gPSA5OF0gPSBcIlNQQU5cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1RSSUtFXCJdID0gOTldID0gXCJTVFJJS0VcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1RST05HXCJdID0gMTAwXSA9IFwiU1RST05HXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNUWUxFXCJdID0gMTAxXSA9IFwiU1RZTEVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1VCXCJdID0gMTAyXSA9IFwiU1VCXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNVTU1BUllcIl0gPSAxMDNdID0gXCJTVU1NQVJZXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNVUFwiXSA9IDEwNF0gPSBcIlNVUFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJUQUJMRVwiXSA9IDEwNV0gPSBcIlRBQkxFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRCT0RZXCJdID0gMTA2XSA9IFwiVEJPRFlcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVEVNUExBVEVcIl0gPSAxMDddID0gXCJURU1QTEFURVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJURVhUQVJFQVwiXSA9IDEwOF0gPSBcIlRFWFRBUkVBXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRGT09UXCJdID0gMTA5XSA9IFwiVEZPT1RcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVERcIl0gPSAxMTBdID0gXCJURFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJUSFwiXSA9IDExMV0gPSBcIlRIXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRIRUFEXCJdID0gMTEyXSA9IFwiVEhFQURcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVElUTEVcIl0gPSAxMTNdID0gXCJUSVRMRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJUUlwiXSA9IDExNF0gPSBcIlRSXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRSQUNLXCJdID0gMTE1XSA9IFwiVFJBQ0tcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVFRcIl0gPSAxMTZdID0gXCJUVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJVXCJdID0gMTE3XSA9IFwiVVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJVTFwiXSA9IDExOF0gPSBcIlVMXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNWR1wiXSA9IDExOV0gPSBcIlNWR1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJWQVJcIl0gPSAxMjBdID0gXCJWQVJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiV0JSXCJdID0gMTIxXSA9IFwiV0JSXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlhNUFwiXSA9IDEyMl0gPSBcIlhNUFwiO1xufSkoVEFHX0lEID0gVEFHX0lEIHx8IChUQUdfSUQgPSB7fSkpO1xuY29uc3QgVEFHX05BTUVfVE9fSUQgPSBuZXcgTWFwKFtcbiAgICBbVEFHX05BTUVTLkEsIFRBR19JRC5BXSxcbiAgICBbVEFHX05BTUVTLkFERFJFU1MsIFRBR19JRC5BRERSRVNTXSxcbiAgICBbVEFHX05BTUVTLkFOTk9UQVRJT05fWE1MLCBUQUdfSUQuQU5OT1RBVElPTl9YTUxdLFxuICAgIFtUQUdfTkFNRVMuQVBQTEVULCBUQUdfSUQuQVBQTEVUXSxcbiAgICBbVEFHX05BTUVTLkFSRUEsIFRBR19JRC5BUkVBXSxcbiAgICBbVEFHX05BTUVTLkFSVElDTEUsIFRBR19JRC5BUlRJQ0xFXSxcbiAgICBbVEFHX05BTUVTLkFTSURFLCBUQUdfSUQuQVNJREVdLFxuICAgIFtUQUdfTkFNRVMuQiwgVEFHX0lELkJdLFxuICAgIFtUQUdfTkFNRVMuQkFTRSwgVEFHX0lELkJBU0VdLFxuICAgIFtUQUdfTkFNRVMuQkFTRUZPTlQsIFRBR19JRC5CQVNFRk9OVF0sXG4gICAgW1RBR19OQU1FUy5CR1NPVU5ELCBUQUdfSUQuQkdTT1VORF0sXG4gICAgW1RBR19OQU1FUy5CSUcsIFRBR19JRC5CSUddLFxuICAgIFtUQUdfTkFNRVMuQkxPQ0tRVU9URSwgVEFHX0lELkJMT0NLUVVPVEVdLFxuICAgIFtUQUdfTkFNRVMuQk9EWSwgVEFHX0lELkJPRFldLFxuICAgIFtUQUdfTkFNRVMuQlIsIFRBR19JRC5CUl0sXG4gICAgW1RBR19OQU1FUy5CVVRUT04sIFRBR19JRC5CVVRUT05dLFxuICAgIFtUQUdfTkFNRVMuQ0FQVElPTiwgVEFHX0lELkNBUFRJT05dLFxuICAgIFtUQUdfTkFNRVMuQ0VOVEVSLCBUQUdfSUQuQ0VOVEVSXSxcbiAgICBbVEFHX05BTUVTLkNPREUsIFRBR19JRC5DT0RFXSxcbiAgICBbVEFHX05BTUVTLkNPTCwgVEFHX0lELkNPTF0sXG4gICAgW1RBR19OQU1FUy5DT0xHUk9VUCwgVEFHX0lELkNPTEdST1VQXSxcbiAgICBbVEFHX05BTUVTLkRELCBUQUdfSUQuRERdLFxuICAgIFtUQUdfTkFNRVMuREVTQywgVEFHX0lELkRFU0NdLFxuICAgIFtUQUdfTkFNRVMuREVUQUlMUywgVEFHX0lELkRFVEFJTFNdLFxuICAgIFtUQUdfTkFNRVMuRElBTE9HLCBUQUdfSUQuRElBTE9HXSxcbiAgICBbVEFHX05BTUVTLkRJUiwgVEFHX0lELkRJUl0sXG4gICAgW1RBR19OQU1FUy5ESVYsIFRBR19JRC5ESVZdLFxuICAgIFtUQUdfTkFNRVMuREwsIFRBR19JRC5ETF0sXG4gICAgW1RBR19OQU1FUy5EVCwgVEFHX0lELkRUXSxcbiAgICBbVEFHX05BTUVTLkVNLCBUQUdfSUQuRU1dLFxuICAgIFtUQUdfTkFNRVMuRU1CRUQsIFRBR19JRC5FTUJFRF0sXG4gICAgW1RBR19OQU1FUy5GSUVMRFNFVCwgVEFHX0lELkZJRUxEU0VUXSxcbiAgICBbVEFHX05BTUVTLkZJR0NBUFRJT04sIFRBR19JRC5GSUdDQVBUSU9OXSxcbiAgICBbVEFHX05BTUVTLkZJR1VSRSwgVEFHX0lELkZJR1VSRV0sXG4gICAgW1RBR19OQU1FUy5GT05ULCBUQUdfSUQuRk9OVF0sXG4gICAgW1RBR19OQU1FUy5GT09URVIsIFRBR19JRC5GT09URVJdLFxuICAgIFtUQUdfTkFNRVMuRk9SRUlHTl9PQkpFQ1QsIFRBR19JRC5GT1JFSUdOX09CSkVDVF0sXG4gICAgW1RBR19OQU1FUy5GT1JNLCBUQUdfSUQuRk9STV0sXG4gICAgW1RBR19OQU1FUy5GUkFNRSwgVEFHX0lELkZSQU1FXSxcbiAgICBbVEFHX05BTUVTLkZSQU1FU0VULCBUQUdfSUQuRlJBTUVTRVRdLFxuICAgIFtUQUdfTkFNRVMuSDEsIFRBR19JRC5IMV0sXG4gICAgW1RBR19OQU1FUy5IMiwgVEFHX0lELkgyXSxcbiAgICBbVEFHX05BTUVTLkgzLCBUQUdfSUQuSDNdLFxuICAgIFtUQUdfTkFNRVMuSDQsIFRBR19JRC5INF0sXG4gICAgW1RBR19OQU1FUy5INSwgVEFHX0lELkg1XSxcbiAgICBbVEFHX05BTUVTLkg2LCBUQUdfSUQuSDZdLFxuICAgIFtUQUdfTkFNRVMuSEVBRCwgVEFHX0lELkhFQURdLFxuICAgIFtUQUdfTkFNRVMuSEVBREVSLCBUQUdfSUQuSEVBREVSXSxcbiAgICBbVEFHX05BTUVTLkhHUk9VUCwgVEFHX0lELkhHUk9VUF0sXG4gICAgW1RBR19OQU1FUy5IUiwgVEFHX0lELkhSXSxcbiAgICBbVEFHX05BTUVTLkhUTUwsIFRBR19JRC5IVE1MXSxcbiAgICBbVEFHX05BTUVTLkksIFRBR19JRC5JXSxcbiAgICBbVEFHX05BTUVTLklNRywgVEFHX0lELklNR10sXG4gICAgW1RBR19OQU1FUy5JTUFHRSwgVEFHX0lELklNQUdFXSxcbiAgICBbVEFHX05BTUVTLklOUFVULCBUQUdfSUQuSU5QVVRdLFxuICAgIFtUQUdfTkFNRVMuSUZSQU1FLCBUQUdfSUQuSUZSQU1FXSxcbiAgICBbVEFHX05BTUVTLktFWUdFTiwgVEFHX0lELktFWUdFTl0sXG4gICAgW1RBR19OQU1FUy5MQUJFTCwgVEFHX0lELkxBQkVMXSxcbiAgICBbVEFHX05BTUVTLkxJLCBUQUdfSUQuTEldLFxuICAgIFtUQUdfTkFNRVMuTElOSywgVEFHX0lELkxJTktdLFxuICAgIFtUQUdfTkFNRVMuTElTVElORywgVEFHX0lELkxJU1RJTkddLFxuICAgIFtUQUdfTkFNRVMuTUFJTiwgVEFHX0lELk1BSU5dLFxuICAgIFtUQUdfTkFNRVMuTUFMSUdOTUFSSywgVEFHX0lELk1BTElHTk1BUktdLFxuICAgIFtUQUdfTkFNRVMuTUFSUVVFRSwgVEFHX0lELk1BUlFVRUVdLFxuICAgIFtUQUdfTkFNRVMuTUFUSCwgVEFHX0lELk1BVEhdLFxuICAgIFtUQUdfTkFNRVMuTUVOVSwgVEFHX0lELk1FTlVdLFxuICAgIFtUQUdfTkFNRVMuTUVUQSwgVEFHX0lELk1FVEFdLFxuICAgIFtUQUdfTkFNRVMuTUdMWVBILCBUQUdfSUQuTUdMWVBIXSxcbiAgICBbVEFHX05BTUVTLk1JLCBUQUdfSUQuTUldLFxuICAgIFtUQUdfTkFNRVMuTU8sIFRBR19JRC5NT10sXG4gICAgW1RBR19OQU1FUy5NTiwgVEFHX0lELk1OXSxcbiAgICBbVEFHX05BTUVTLk1TLCBUQUdfSUQuTVNdLFxuICAgIFtUQUdfTkFNRVMuTVRFWFQsIFRBR19JRC5NVEVYVF0sXG4gICAgW1RBR19OQU1FUy5OQVYsIFRBR19JRC5OQVZdLFxuICAgIFtUQUdfTkFNRVMuTk9CUiwgVEFHX0lELk5PQlJdLFxuICAgIFtUQUdfTkFNRVMuTk9GUkFNRVMsIFRBR19JRC5OT0ZSQU1FU10sXG4gICAgW1RBR19OQU1FUy5OT0VNQkVELCBUQUdfSUQuTk9FTUJFRF0sXG4gICAgW1RBR19OQU1FUy5OT1NDUklQVCwgVEFHX0lELk5PU0NSSVBUXSxcbiAgICBbVEFHX05BTUVTLk9CSkVDVCwgVEFHX0lELk9CSkVDVF0sXG4gICAgW1RBR19OQU1FUy5PTCwgVEFHX0lELk9MXSxcbiAgICBbVEFHX05BTUVTLk9QVEdST1VQLCBUQUdfSUQuT1BUR1JPVVBdLFxuICAgIFtUQUdfTkFNRVMuT1BUSU9OLCBUQUdfSUQuT1BUSU9OXSxcbiAgICBbVEFHX05BTUVTLlAsIFRBR19JRC5QXSxcbiAgICBbVEFHX05BTUVTLlBBUkFNLCBUQUdfSUQuUEFSQU1dLFxuICAgIFtUQUdfTkFNRVMuUExBSU5URVhULCBUQUdfSUQuUExBSU5URVhUXSxcbiAgICBbVEFHX05BTUVTLlBSRSwgVEFHX0lELlBSRV0sXG4gICAgW1RBR19OQU1FUy5SQiwgVEFHX0lELlJCXSxcbiAgICBbVEFHX05BTUVTLlJQLCBUQUdfSUQuUlBdLFxuICAgIFtUQUdfTkFNRVMuUlQsIFRBR19JRC5SVF0sXG4gICAgW1RBR19OQU1FUy5SVEMsIFRBR19JRC5SVENdLFxuICAgIFtUQUdfTkFNRVMuUlVCWSwgVEFHX0lELlJVQlldLFxuICAgIFtUQUdfTkFNRVMuUywgVEFHX0lELlNdLFxuICAgIFtUQUdfTkFNRVMuU0NSSVBULCBUQUdfSUQuU0NSSVBUXSxcbiAgICBbVEFHX05BTUVTLlNFQ1RJT04sIFRBR19JRC5TRUNUSU9OXSxcbiAgICBbVEFHX05BTUVTLlNFTEVDVCwgVEFHX0lELlNFTEVDVF0sXG4gICAgW1RBR19OQU1FUy5TT1VSQ0UsIFRBR19JRC5TT1VSQ0VdLFxuICAgIFtUQUdfTkFNRVMuU01BTEwsIFRBR19JRC5TTUFMTF0sXG4gICAgW1RBR19OQU1FUy5TUEFOLCBUQUdfSUQuU1BBTl0sXG4gICAgW1RBR19OQU1FUy5TVFJJS0UsIFRBR19JRC5TVFJJS0VdLFxuICAgIFtUQUdfTkFNRVMuU1RST05HLCBUQUdfSUQuU1RST05HXSxcbiAgICBbVEFHX05BTUVTLlNUWUxFLCBUQUdfSUQuU1RZTEVdLFxuICAgIFtUQUdfTkFNRVMuU1VCLCBUQUdfSUQuU1VCXSxcbiAgICBbVEFHX05BTUVTLlNVTU1BUlksIFRBR19JRC5TVU1NQVJZXSxcbiAgICBbVEFHX05BTUVTLlNVUCwgVEFHX0lELlNVUF0sXG4gICAgW1RBR19OQU1FUy5UQUJMRSwgVEFHX0lELlRBQkxFXSxcbiAgICBbVEFHX05BTUVTLlRCT0RZLCBUQUdfSUQuVEJPRFldLFxuICAgIFtUQUdfTkFNRVMuVEVNUExBVEUsIFRBR19JRC5URU1QTEFURV0sXG4gICAgW1RBR19OQU1FUy5URVhUQVJFQSwgVEFHX0lELlRFWFRBUkVBXSxcbiAgICBbVEFHX05BTUVTLlRGT09ULCBUQUdfSUQuVEZPT1RdLFxuICAgIFtUQUdfTkFNRVMuVEQsIFRBR19JRC5URF0sXG4gICAgW1RBR19OQU1FUy5USCwgVEFHX0lELlRIXSxcbiAgICBbVEFHX05BTUVTLlRIRUFELCBUQUdfSUQuVEhFQURdLFxuICAgIFtUQUdfTkFNRVMuVElUTEUsIFRBR19JRC5USVRMRV0sXG4gICAgW1RBR19OQU1FUy5UUiwgVEFHX0lELlRSXSxcbiAgICBbVEFHX05BTUVTLlRSQUNLLCBUQUdfSUQuVFJBQ0tdLFxuICAgIFtUQUdfTkFNRVMuVFQsIFRBR19JRC5UVF0sXG4gICAgW1RBR19OQU1FUy5VLCBUQUdfSUQuVV0sXG4gICAgW1RBR19OQU1FUy5VTCwgVEFHX0lELlVMXSxcbiAgICBbVEFHX05BTUVTLlNWRywgVEFHX0lELlNWR10sXG4gICAgW1RBR19OQU1FUy5WQVIsIFRBR19JRC5WQVJdLFxuICAgIFtUQUdfTkFNRVMuV0JSLCBUQUdfSUQuV0JSXSxcbiAgICBbVEFHX05BTUVTLlhNUCwgVEFHX0lELlhNUF0sXG5dKTtcbmV4cG9ydCBmdW5jdGlvbiBnZXRUYWdJRCh0YWdOYW1lKSB7XG4gICAgdmFyIF9hO1xuICAgIHJldHVybiAoX2EgPSBUQUdfTkFNRV9UT19JRC5nZXQodGFnTmFtZSkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IFRBR19JRC5VTktOT1dOO1xufVxuY29uc3QgJCA9IFRBR19JRDtcbmV4cG9ydCBjb25zdCBTUEVDSUFMX0VMRU1FTlRTID0ge1xuICAgIFtOUy5IVE1MXTogbmV3IFNldChbXG4gICAgICAgICQuQUREUkVTUyxcbiAgICAgICAgJC5BUFBMRVQsXG4gICAgICAgICQuQVJFQSxcbiAgICAgICAgJC5BUlRJQ0xFLFxuICAgICAgICAkLkFTSURFLFxuICAgICAgICAkLkJBU0UsXG4gICAgICAgICQuQkFTRUZPTlQsXG4gICAgICAgICQuQkdTT1VORCxcbiAgICAgICAgJC5CTE9DS1FVT1RFLFxuICAgICAgICAkLkJPRFksXG4gICAgICAgICQuQlIsXG4gICAgICAgICQuQlVUVE9OLFxuICAgICAgICAkLkNBUFRJT04sXG4gICAgICAgICQuQ0VOVEVSLFxuICAgICAgICAkLkNPTCxcbiAgICAgICAgJC5DT0xHUk9VUCxcbiAgICAgICAgJC5ERCxcbiAgICAgICAgJC5ERVRBSUxTLFxuICAgICAgICAkLkRJUixcbiAgICAgICAgJC5ESVYsXG4gICAgICAgICQuREwsXG4gICAgICAgICQuRFQsXG4gICAgICAgICQuRU1CRUQsXG4gICAgICAgICQuRklFTERTRVQsXG4gICAgICAgICQuRklHQ0FQVElPTixcbiAgICAgICAgJC5GSUdVUkUsXG4gICAgICAgICQuRk9PVEVSLFxuICAgICAgICAkLkZPUk0sXG4gICAgICAgICQuRlJBTUUsXG4gICAgICAgICQuRlJBTUVTRVQsXG4gICAgICAgICQuSDEsXG4gICAgICAgICQuSDIsXG4gICAgICAgICQuSDMsXG4gICAgICAgICQuSDQsXG4gICAgICAgICQuSDUsXG4gICAgICAgICQuSDYsXG4gICAgICAgICQuSEVBRCxcbiAgICAgICAgJC5IRUFERVIsXG4gICAgICAgICQuSEdST1VQLFxuICAgICAgICAkLkhSLFxuICAgICAgICAkLkhUTUwsXG4gICAgICAgICQuSUZSQU1FLFxuICAgICAgICAkLklNRyxcbiAgICAgICAgJC5JTlBVVCxcbiAgICAgICAgJC5MSSxcbiAgICAgICAgJC5MSU5LLFxuICAgICAgICAkLkxJU1RJTkcsXG4gICAgICAgICQuTUFJTixcbiAgICAgICAgJC5NQVJRVUVFLFxuICAgICAgICAkLk1FTlUsXG4gICAgICAgICQuTUVUQSxcbiAgICAgICAgJC5OQVYsXG4gICAgICAgICQuTk9FTUJFRCxcbiAgICAgICAgJC5OT0ZSQU1FUyxcbiAgICAgICAgJC5OT1NDUklQVCxcbiAgICAgICAgJC5PQkpFQ1QsXG4gICAgICAgICQuT0wsXG4gICAgICAgICQuUCxcbiAgICAgICAgJC5QQVJBTSxcbiAgICAgICAgJC5QTEFJTlRFWFQsXG4gICAgICAgICQuUFJFLFxuICAgICAgICAkLlNDUklQVCxcbiAgICAgICAgJC5TRUNUSU9OLFxuICAgICAgICAkLlNFTEVDVCxcbiAgICAgICAgJC5TT1VSQ0UsXG4gICAgICAgICQuU1RZTEUsXG4gICAgICAgICQuU1VNTUFSWSxcbiAgICAgICAgJC5UQUJMRSxcbiAgICAgICAgJC5UQk9EWSxcbiAgICAgICAgJC5URCxcbiAgICAgICAgJC5URU1QTEFURSxcbiAgICAgICAgJC5URVhUQVJFQSxcbiAgICAgICAgJC5URk9PVCxcbiAgICAgICAgJC5USCxcbiAgICAgICAgJC5USEVBRCxcbiAgICAgICAgJC5USVRMRSxcbiAgICAgICAgJC5UUixcbiAgICAgICAgJC5UUkFDSyxcbiAgICAgICAgJC5VTCxcbiAgICAgICAgJC5XQlIsXG4gICAgICAgICQuWE1QLFxuICAgIF0pLFxuICAgIFtOUy5NQVRITUxdOiBuZXcgU2V0KFskLk1JLCAkLk1PLCAkLk1OLCAkLk1TLCAkLk1URVhULCAkLkFOTk9UQVRJT05fWE1MXSksXG4gICAgW05TLlNWR106IG5ldyBTZXQoWyQuVElUTEUsICQuRk9SRUlHTl9PQkpFQ1QsICQuREVTQ10pLFxuICAgIFtOUy5YTElOS106IG5ldyBTZXQoKSxcbiAgICBbTlMuWE1MXTogbmV3IFNldCgpLFxuICAgIFtOUy5YTUxOU106IG5ldyBTZXQoKSxcbn07XG5leHBvcnQgZnVuY3Rpb24gaXNOdW1iZXJlZEhlYWRlcih0bikge1xuICAgIHJldHVybiB0biA9PT0gJC5IMSB8fCB0biA9PT0gJC5IMiB8fCB0biA9PT0gJC5IMyB8fCB0biA9PT0gJC5INCB8fCB0biA9PT0gJC5INSB8fCB0biA9PT0gJC5INjtcbn1cbmNvbnN0IFVORVNDQVBFRF9URVhUID0gbmV3IFNldChbXG4gICAgVEFHX05BTUVTLlNUWUxFLFxuICAgIFRBR19OQU1FUy5TQ1JJUFQsXG4gICAgVEFHX05BTUVTLlhNUCxcbiAgICBUQUdfTkFNRVMuSUZSQU1FLFxuICAgIFRBR19OQU1FUy5OT0VNQkVELFxuICAgIFRBR19OQU1FUy5OT0ZSQU1FUyxcbiAgICBUQUdfTkFNRVMuUExBSU5URVhULFxuXSk7XG5leHBvcnQgZnVuY3Rpb24gaGFzVW5lc2NhcGVkVGV4dCh0biwgc2NyaXB0aW5nRW5hYmxlZCkge1xuICAgIHJldHVybiBVTkVTQ0FQRURfVEVYVC5oYXModG4pIHx8IChzY3JpcHRpbmdFbmFibGVkICYmIHRuID09PSBUQUdfTkFNRVMuTk9TQ1JJUFQpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aHRtbC5qcy5tYXAiLCAiaW1wb3J0IHsgUHJlcHJvY2Vzc29yIH0gZnJvbSAnLi9wcmVwcm9jZXNzb3IuanMnO1xuaW1wb3J0IHsgQ09ERV9QT0lOVFMgYXMgJCwgU0VRVUVOQ0VTIGFzICQkLCBSRVBMQUNFTUVOVF9DSEFSQUNURVIsIGlzU3Vycm9nYXRlLCBpc1VuZGVmaW5lZENvZGVQb2ludCwgaXNDb250cm9sQ29kZVBvaW50LCB9IGZyb20gJy4uL2NvbW1vbi91bmljb2RlLmpzJztcbmltcG9ydCB7IFRva2VuVHlwZSwgZ2V0VG9rZW5BdHRyLCB9IGZyb20gJy4uL2NvbW1vbi90b2tlbi5qcyc7XG5pbXBvcnQgeyBodG1sRGVjb2RlVHJlZSwgQmluVHJpZUZsYWdzLCBkZXRlcm1pbmVCcmFuY2ggfSBmcm9tICdlbnRpdGllcy9saWIvZGVjb2RlLmpzJztcbmltcG9ydCB7IEVSUiB9IGZyb20gJy4uL2NvbW1vbi9lcnJvci1jb2Rlcy5qcyc7XG5pbXBvcnQgeyBUQUdfSUQsIGdldFRhZ0lEIH0gZnJvbSAnLi4vY29tbW9uL2h0bWwuanMnO1xuLy9DMSBVbmljb2RlIGNvbnRyb2wgY2hhcmFjdGVyIHJlZmVyZW5jZSByZXBsYWNlbWVudHNcbmNvbnN0IEMxX0NPTlRST0xTX1JFRkVSRU5DRV9SRVBMQUNFTUVOVFMgPSBuZXcgTWFwKFtcbiAgICBbMHg4MCwgODM2NF0sXG4gICAgWzB4ODIsIDgyMThdLFxuICAgIFsweDgzLCA0MDJdLFxuICAgIFsweDg0LCA4MjIyXSxcbiAgICBbMHg4NSwgODIzMF0sXG4gICAgWzB4ODYsIDgyMjRdLFxuICAgIFsweDg3LCA4MjI1XSxcbiAgICBbMHg4OCwgNzEwXSxcbiAgICBbMHg4OSwgODI0MF0sXG4gICAgWzB4OGEsIDM1Ml0sXG4gICAgWzB4OGIsIDgyNDldLFxuICAgIFsweDhjLCAzMzhdLFxuICAgIFsweDhlLCAzODFdLFxuICAgIFsweDkxLCA4MjE2XSxcbiAgICBbMHg5MiwgODIxN10sXG4gICAgWzB4OTMsIDgyMjBdLFxuICAgIFsweDk0LCA4MjIxXSxcbiAgICBbMHg5NSwgODIyNl0sXG4gICAgWzB4OTYsIDgyMTFdLFxuICAgIFsweDk3LCA4MjEyXSxcbiAgICBbMHg5OCwgNzMyXSxcbiAgICBbMHg5OSwgODQ4Ml0sXG4gICAgWzB4OWEsIDM1M10sXG4gICAgWzB4OWIsIDgyNTBdLFxuICAgIFsweDljLCAzMzldLFxuICAgIFsweDllLCAzODJdLFxuICAgIFsweDlmLCAzNzZdLFxuXSk7XG4vL1N0YXRlc1xudmFyIFN0YXRlO1xuKGZ1bmN0aW9uIChTdGF0ZSkge1xuICAgIFN0YXRlW1N0YXRlW1wiREFUQVwiXSA9IDBdID0gXCJEQVRBXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJSQ0RBVEFcIl0gPSAxXSA9IFwiUkNEQVRBXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJSQVdURVhUXCJdID0gMl0gPSBcIlJBV1RFWFRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBXCJdID0gM10gPSBcIlNDUklQVF9EQVRBXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJQTEFJTlRFWFRcIl0gPSA0XSA9IFwiUExBSU5URVhUXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJUQUdfT1BFTlwiXSA9IDVdID0gXCJUQUdfT1BFTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiRU5EX1RBR19PUEVOXCJdID0gNl0gPSBcIkVORF9UQUdfT1BFTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiVEFHX05BTUVcIl0gPSA3XSA9IFwiVEFHX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlJDREFUQV9MRVNTX1RIQU5fU0lHTlwiXSA9IDhdID0gXCJSQ0RBVEFfTEVTU19USEFOX1NJR05cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlJDREFUQV9FTkRfVEFHX09QRU5cIl0gPSA5XSA9IFwiUkNEQVRBX0VORF9UQUdfT1BFTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiUkNEQVRBX0VORF9UQUdfTkFNRVwiXSA9IDEwXSA9IFwiUkNEQVRBX0VORF9UQUdfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiUkFXVEVYVF9MRVNTX1RIQU5fU0lHTlwiXSA9IDExXSA9IFwiUkFXVEVYVF9MRVNTX1RIQU5fU0lHTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiUkFXVEVYVF9FTkRfVEFHX09QRU5cIl0gPSAxMl0gPSBcIlJBV1RFWFRfRU5EX1RBR19PUEVOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJSQVdURVhUX0VORF9UQUdfTkFNRVwiXSA9IDEzXSA9IFwiUkFXVEVYVF9FTkRfVEFHX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0xFU1NfVEhBTl9TSUdOXCJdID0gMTRdID0gXCJTQ1JJUFRfREFUQV9MRVNTX1RIQU5fU0lHTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRU5EX1RBR19PUEVOXCJdID0gMTVdID0gXCJTQ1JJUFRfREFUQV9FTkRfVEFHX09QRU5cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VORF9UQUdfTkFNRVwiXSA9IDE2XSA9IFwiU0NSSVBUX0RBVEFfRU5EX1RBR19OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRcIl0gPSAxN10gPSBcIlNDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUX0RBU0hcIl0gPSAxOF0gPSBcIlNDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVF9EQVNIXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9FU0NBUEVEXCJdID0gMTldID0gXCJTQ1JJUFRfREFUQV9FU0NBUEVEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hcIl0gPSAyMF0gPSBcIlNDUklQVF9EQVRBX0VTQ0FQRURfREFTSFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIX0RBU0hcIl0gPSAyMV0gPSBcIlNDUklQVF9EQVRBX0VTQ0FQRURfREFTSF9EQVNIXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOXCJdID0gMjJdID0gXCJTQ1JJUFRfREFUQV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfT1BFTlwiXSA9IDIzXSA9IFwiU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX09QRU5cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19OQU1FXCJdID0gMjRdID0gXCJTQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9TVEFSVFwiXSA9IDI1XSA9IFwiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9TVEFSVFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURcIl0gPSAyNl0gPSBcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIXCJdID0gMjddID0gXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIX0RBU0hcIl0gPSAyOF0gPSBcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hfREFTSFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfTEVTU19USEFOX1NJR05cIl0gPSAyOV0gPSBcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX0VORFwiXSA9IDMwXSA9IFwiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9FTkRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkJFRk9SRV9BVFRSSUJVVEVfTkFNRVwiXSA9IDMxXSA9IFwiQkVGT1JFX0FUVFJJQlVURV9OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBVFRSSUJVVEVfTkFNRVwiXSA9IDMyXSA9IFwiQVRUUklCVVRFX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFGVEVSX0FUVFJJQlVURV9OQU1FXCJdID0gMzNdID0gXCJBRlRFUl9BVFRSSUJVVEVfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQkVGT1JFX0FUVFJJQlVURV9WQUxVRVwiXSA9IDM0XSA9IFwiQkVGT1JFX0FUVFJJQlVURV9WQUxVRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQVRUUklCVVRFX1ZBTFVFX0RPVUJMRV9RVU9URURcIl0gPSAzNV0gPSBcIkFUVFJJQlVURV9WQUxVRV9ET1VCTEVfUVVPVEVEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBVFRSSUJVVEVfVkFMVUVfU0lOR0xFX1FVT1RFRFwiXSA9IDM2XSA9IFwiQVRUUklCVVRFX1ZBTFVFX1NJTkdMRV9RVU9URURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFUVFJJQlVURV9WQUxVRV9VTlFVT1RFRFwiXSA9IDM3XSA9IFwiQVRUUklCVVRFX1ZBTFVFX1VOUVVPVEVEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBRlRFUl9BVFRSSUJVVEVfVkFMVUVfUVVPVEVEXCJdID0gMzhdID0gXCJBRlRFUl9BVFRSSUJVVEVfVkFMVUVfUVVPVEVEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTRUxGX0NMT1NJTkdfU1RBUlRfVEFHXCJdID0gMzldID0gXCJTRUxGX0NMT1NJTkdfU1RBUlRfVEFHXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJCT0dVU19DT01NRU5UXCJdID0gNDBdID0gXCJCT0dVU19DT01NRU5UXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJNQVJLVVBfREVDTEFSQVRJT05fT1BFTlwiXSA9IDQxXSA9IFwiTUFSS1VQX0RFQ0xBUkFUSU9OX09QRU5cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRfU1RBUlRcIl0gPSA0Ml0gPSBcIkNPTU1FTlRfU1RBUlRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRfU1RBUlRfREFTSFwiXSA9IDQzXSA9IFwiQ09NTUVOVF9TVEFSVF9EQVNIXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDT01NRU5UXCJdID0gNDRdID0gXCJDT01NRU5UXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDT01NRU5UX0xFU1NfVEhBTl9TSUdOXCJdID0gNDVdID0gXCJDT01NRU5UX0xFU1NfVEhBTl9TSUdOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkdcIl0gPSA0Nl0gPSBcIkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFOR1wiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HX0RBU0hcIl0gPSA0N10gPSBcIkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFOR19EQVNIXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkdfREFTSF9EQVNIXCJdID0gNDhdID0gXCJDT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkdfREFTSF9EQVNIXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDT01NRU5UX0VORF9EQVNIXCJdID0gNDldID0gXCJDT01NRU5UX0VORF9EQVNIXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDT01NRU5UX0VORFwiXSA9IDUwXSA9IFwiQ09NTUVOVF9FTkRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRfRU5EX0JBTkdcIl0gPSA1MV0gPSBcIkNPTU1FTlRfRU5EX0JBTkdcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkRPQ1RZUEVcIl0gPSA1Ml0gPSBcIkRPQ1RZUEVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkJFRk9SRV9ET0NUWVBFX05BTUVcIl0gPSA1M10gPSBcIkJFRk9SRV9ET0NUWVBFX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkRPQ1RZUEVfTkFNRVwiXSA9IDU0XSA9IFwiRE9DVFlQRV9OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBRlRFUl9ET0NUWVBFX05BTUVcIl0gPSA1NV0gPSBcIkFGVEVSX0RPQ1RZUEVfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQUZURVJfRE9DVFlQRV9QVUJMSUNfS0VZV09SRFwiXSA9IDU2XSA9IFwiQUZURVJfRE9DVFlQRV9QVUJMSUNfS0VZV09SRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQkVGT1JFX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJcIl0gPSA1N10gPSBcIkJFRk9SRV9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX0RPVUJMRV9RVU9URURcIl0gPSA1OF0gPSBcIkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEXCJdID0gNTldID0gXCJET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NJTkdMRV9RVU9URURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFGVEVSX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJcIl0gPSA2MF0gPSBcIkFGVEVSX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkJFVFdFRU5fRE9DVFlQRV9QVUJMSUNfQU5EX1NZU1RFTV9JREVOVElGSUVSU1wiXSA9IDYxXSA9IFwiQkVUV0VFTl9ET0NUWVBFX1BVQkxJQ19BTkRfU1lTVEVNX0lERU5USUZJRVJTXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBRlRFUl9ET0NUWVBFX1NZU1RFTV9LRVlXT1JEXCJdID0gNjJdID0gXCJBRlRFUl9ET0NUWVBFX1NZU1RFTV9LRVlXT1JEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJCRUZPUkVfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUlwiXSA9IDYzXSA9IFwiQkVGT1JFX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRFwiXSA9IDY0XSA9IFwiRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NJTkdMRV9RVU9URURcIl0gPSA2NV0gPSBcIkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQUZURVJfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUlwiXSA9IDY2XSA9IFwiQUZURVJfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQk9HVVNfRE9DVFlQRVwiXSA9IDY3XSA9IFwiQk9HVVNfRE9DVFlQRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ0RBVEFfU0VDVElPTlwiXSA9IDY4XSA9IFwiQ0RBVEFfU0VDVElPTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ0RBVEFfU0VDVElPTl9CUkFDS0VUXCJdID0gNjldID0gXCJDREFUQV9TRUNUSU9OX0JSQUNLRVRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNEQVRBX1NFQ1RJT05fRU5EXCJdID0gNzBdID0gXCJDREFUQV9TRUNUSU9OX0VORFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ0hBUkFDVEVSX1JFRkVSRU5DRVwiXSA9IDcxXSA9IFwiQ0hBUkFDVEVSX1JFRkVSRU5DRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiTkFNRURfQ0hBUkFDVEVSX1JFRkVSRU5DRVwiXSA9IDcyXSA9IFwiTkFNRURfQ0hBUkFDVEVSX1JFRkVSRU5DRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQU1CSUdVT1VTX0FNUEVSU0FORFwiXSA9IDczXSA9IFwiQU1CSUdVT1VTX0FNUEVSU0FORFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiTlVNRVJJQ19DSEFSQUNURVJfUkVGRVJFTkNFXCJdID0gNzRdID0gXCJOVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0VcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkhFWEFERU1JQ0FMX0NIQVJBQ1RFUl9SRUZFUkVOQ0VfU1RBUlRcIl0gPSA3NV0gPSBcIkhFWEFERU1JQ0FMX0NIQVJBQ1RFUl9SRUZFUkVOQ0VfU1RBUlRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkhFWEFERU1JQ0FMX0NIQVJBQ1RFUl9SRUZFUkVOQ0VcIl0gPSA3Nl0gPSBcIkhFWEFERU1JQ0FMX0NIQVJBQ1RFUl9SRUZFUkVOQ0VcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkRFQ0lNQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRVwiXSA9IDc3XSA9IFwiREVDSU1BTF9DSEFSQUNURVJfUkVGRVJFTkNFXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJOVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0VfRU5EXCJdID0gNzhdID0gXCJOVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0VfRU5EXCI7XG59KShTdGF0ZSB8fCAoU3RhdGUgPSB7fSkpO1xuLy9Ub2tlbml6ZXIgaW5pdGlhbCBzdGF0ZXMgZm9yIGRpZmZlcmVudCBtb2Rlc1xuZXhwb3J0IGNvbnN0IFRva2VuaXplck1vZGUgPSB7XG4gICAgREFUQTogU3RhdGUuREFUQSxcbiAgICBSQ0RBVEE6IFN0YXRlLlJDREFUQSxcbiAgICBSQVdURVhUOiBTdGF0ZS5SQVdURVhULFxuICAgIFNDUklQVF9EQVRBOiBTdGF0ZS5TQ1JJUFRfREFUQSxcbiAgICBQTEFJTlRFWFQ6IFN0YXRlLlBMQUlOVEVYVCxcbiAgICBDREFUQV9TRUNUSU9OOiBTdGF0ZS5DREFUQV9TRUNUSU9OLFxufTtcbi8vVXRpbHNcbi8vT1BUSU1JWkFUSU9OOiB0aGVzZSB1dGlsaXR5IGZ1bmN0aW9ucyBzaG91bGQgbm90IGJlIG1vdmVkIG91dCBvZiB0aGlzIG1vZHVsZS4gVjggQ3JhbmtzaGFmdCB3aWxsIG5vdCBpbmxpbmVcbi8vdGhpcyBmdW5jdGlvbnMgaWYgdGhleSB3aWxsIGJlIHNpdHVhdGVkIGluIGFub3RoZXIgbW9kdWxlIGR1ZSB0byBjb250ZXh0IHN3aXRjaC5cbi8vQWx3YXlzIHBlcmZvcm0gaW5saW5pbmcgY2hlY2sgYmVmb3JlIG1vZGlmeWluZyB0aGlzIGZ1bmN0aW9ucyAoJ25vZGUgLS10cmFjZS1pbmxpbmluZycpLlxuZnVuY3Rpb24gaXNBc2NpaURpZ2l0KGNwKSB7XG4gICAgcmV0dXJuIGNwID49ICQuRElHSVRfMCAmJiBjcCA8PSAkLkRJR0lUXzk7XG59XG5mdW5jdGlvbiBpc0FzY2lpVXBwZXIoY3ApIHtcbiAgICByZXR1cm4gY3AgPj0gJC5MQVRJTl9DQVBJVEFMX0EgJiYgY3AgPD0gJC5MQVRJTl9DQVBJVEFMX1o7XG59XG5mdW5jdGlvbiBpc0FzY2lpTG93ZXIoY3ApIHtcbiAgICByZXR1cm4gY3AgPj0gJC5MQVRJTl9TTUFMTF9BICYmIGNwIDw9ICQuTEFUSU5fU01BTExfWjtcbn1cbmZ1bmN0aW9uIGlzQXNjaWlMZXR0ZXIoY3ApIHtcbiAgICByZXR1cm4gaXNBc2NpaUxvd2VyKGNwKSB8fCBpc0FzY2lpVXBwZXIoY3ApO1xufVxuZnVuY3Rpb24gaXNBc2NpaUFscGhhTnVtZXJpYyhjcCkge1xuICAgIHJldHVybiBpc0FzY2lpTGV0dGVyKGNwKSB8fCBpc0FzY2lpRGlnaXQoY3ApO1xufVxuZnVuY3Rpb24gaXNBc2NpaVVwcGVySGV4RGlnaXQoY3ApIHtcbiAgICByZXR1cm4gY3AgPj0gJC5MQVRJTl9DQVBJVEFMX0EgJiYgY3AgPD0gJC5MQVRJTl9DQVBJVEFMX0Y7XG59XG5mdW5jdGlvbiBpc0FzY2lpTG93ZXJIZXhEaWdpdChjcCkge1xuICAgIHJldHVybiBjcCA+PSAkLkxBVElOX1NNQUxMX0EgJiYgY3AgPD0gJC5MQVRJTl9TTUFMTF9GO1xufVxuZnVuY3Rpb24gaXNBc2NpaUhleERpZ2l0KGNwKSB7XG4gICAgcmV0dXJuIGlzQXNjaWlEaWdpdChjcCkgfHwgaXNBc2NpaVVwcGVySGV4RGlnaXQoY3ApIHx8IGlzQXNjaWlMb3dlckhleERpZ2l0KGNwKTtcbn1cbmZ1bmN0aW9uIHRvQXNjaWlMb3dlcihjcCkge1xuICAgIHJldHVybiBjcCArIDMyO1xufVxuZnVuY3Rpb24gaXNXaGl0ZXNwYWNlKGNwKSB7XG4gICAgcmV0dXJuIGNwID09PSAkLlNQQUNFIHx8IGNwID09PSAkLkxJTkVfRkVFRCB8fCBjcCA9PT0gJC5UQUJVTEFUSU9OIHx8IGNwID09PSAkLkZPUk1fRkVFRDtcbn1cbmZ1bmN0aW9uIGlzRW50aXR5SW5BdHRyaWJ1dGVJbnZhbGlkRW5kKG5leHRDcCkge1xuICAgIHJldHVybiBuZXh0Q3AgPT09ICQuRVFVQUxTX1NJR04gfHwgaXNBc2NpaUFscGhhTnVtZXJpYyhuZXh0Q3ApO1xufVxuZnVuY3Rpb24gaXNTY3JpcHREYXRhRG91YmxlRXNjYXBlU2VxdWVuY2VFbmQoY3ApIHtcbiAgICByZXR1cm4gaXNXaGl0ZXNwYWNlKGNwKSB8fCBjcCA9PT0gJC5TT0xJRFVTIHx8IGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOO1xufVxuLy9Ub2tlbml6ZXJcbmV4cG9ydCBjbGFzcyBUb2tlbml6ZXIge1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMsIGhhbmRsZXIpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgdGhpcy5oYW5kbGVyID0gaGFuZGxlcjtcbiAgICAgICAgdGhpcy5wYXVzZWQgPSBmYWxzZTtcbiAgICAgICAgLyoqIEVuc3VyZXMgdGhhdCB0aGUgcGFyc2luZyBsb29wIGlzbid0IHJ1biBtdWx0aXBsZSB0aW1lcyBhdCBvbmNlLiAqL1xuICAgICAgICB0aGlzLmluTG9vcCA9IGZhbHNlO1xuICAgICAgICAvKipcbiAgICAgICAgICogSW5kaWNhdGVzIHRoYXQgdGhlIGN1cnJlbnQgYWRqdXN0ZWQgbm9kZSBleGlzdHMsIGlzIG5vdCBhbiBlbGVtZW50IGluIHRoZSBIVE1MIG5hbWVzcGFjZSxcbiAgICAgICAgICogYW5kIHRoYXQgaXQgaXMgbm90IGFuIGludGVncmF0aW9uIHBvaW50IGZvciBlaXRoZXIgTWF0aE1MIG9yIEhUTUwuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBzZWUge0BsaW5rIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3BhcnNpbmcuaHRtbCN0cmVlLWNvbnN0cnVjdGlvbn1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuaW5Gb3JlaWduTm9kZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxhc3RTdGFydFRhZ05hbWUgPSAnJztcbiAgICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgIHRoaXMucmV0dXJuU3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICB0aGlzLmNoYXJSZWZDb2RlID0gLTE7XG4gICAgICAgIHRoaXMuY29uc3VtZWRBZnRlclNuYXBzaG90ID0gLTE7XG4gICAgICAgIHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuID0gbnVsbDtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4gPSBudWxsO1xuICAgICAgICB0aGlzLmN1cnJlbnRBdHRyID0geyBuYW1lOiAnJywgdmFsdWU6ICcnIH07XG4gICAgICAgIHRoaXMucHJlcHJvY2Vzc29yID0gbmV3IFByZXByb2Nlc3NvcihoYW5kbGVyKTtcbiAgICAgICAgdGhpcy5jdXJyZW50TG9jYXRpb24gPSB0aGlzLmdldEN1cnJlbnRMb2NhdGlvbigtMSk7XG4gICAgfVxuICAgIC8vRXJyb3JzXG4gICAgX2Vycihjb2RlKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIChfYiA9IChfYSA9IHRoaXMuaGFuZGxlcikub25QYXJzZUVycm9yKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSwgdGhpcy5wcmVwcm9jZXNzb3IuZ2V0RXJyb3IoY29kZSkpO1xuICAgIH1cbiAgICAvLyBOT1RFOiBgb2Zmc2V0YCBtYXkgbmV2ZXIgcnVuIGFjcm9zcyBsaW5lIGJvdW5kYXJpZXMuXG4gICAgZ2V0Q3VycmVudExvY2F0aW9uKG9mZnNldCkge1xuICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3RhcnRMaW5lOiB0aGlzLnByZXByb2Nlc3Nvci5saW5lLFxuICAgICAgICAgICAgc3RhcnRDb2w6IHRoaXMucHJlcHJvY2Vzc29yLmNvbCAtIG9mZnNldCxcbiAgICAgICAgICAgIHN0YXJ0T2Zmc2V0OiB0aGlzLnByZXByb2Nlc3Nvci5vZmZzZXQgLSBvZmZzZXQsXG4gICAgICAgICAgICBlbmRMaW5lOiAtMSxcbiAgICAgICAgICAgIGVuZENvbDogLTEsXG4gICAgICAgICAgICBlbmRPZmZzZXQ6IC0xLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBfcnVuUGFyc2luZ0xvb3AoKSB7XG4gICAgICAgIGlmICh0aGlzLmluTG9vcClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdGhpcy5pbkxvb3AgPSB0cnVlO1xuICAgICAgICB3aGlsZSAodGhpcy5hY3RpdmUgJiYgIXRoaXMucGF1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnN1bWVkQWZ0ZXJTbmFwc2hvdCA9IDA7XG4gICAgICAgICAgICBjb25zdCBjcCA9IHRoaXMuX2NvbnN1bWUoKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NhbGxTdGF0ZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbkxvb3AgPSBmYWxzZTtcbiAgICB9XG4gICAgLy9BUElcbiAgICBwYXVzZSgpIHtcbiAgICAgICAgdGhpcy5wYXVzZWQgPSB0cnVlO1xuICAgIH1cbiAgICByZXN1bWUod3JpdGVDYWxsYmFjaykge1xuICAgICAgICBpZiAoIXRoaXMucGF1c2VkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BhcnNlciB3YXMgYWxyZWFkeSByZXN1bWVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wYXVzZWQgPSBmYWxzZTtcbiAgICAgICAgLy8gTmVjZXNzYXJ5IGZvciBzeW5jaHJvbm91cyByZXN1bWUuXG4gICAgICAgIGlmICh0aGlzLmluTG9vcClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdGhpcy5fcnVuUGFyc2luZ0xvb3AoKTtcbiAgICAgICAgaWYgKCF0aGlzLnBhdXNlZCkge1xuICAgICAgICAgICAgd3JpdGVDYWxsYmFjayA9PT0gbnVsbCB8fCB3cml0ZUNhbGxiYWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiB3cml0ZUNhbGxiYWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgd3JpdGUoY2h1bmssIGlzTGFzdENodW5rLCB3cml0ZUNhbGxiYWNrKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3Iud3JpdGUoY2h1bmssIGlzTGFzdENodW5rKTtcbiAgICAgICAgdGhpcy5fcnVuUGFyc2luZ0xvb3AoKTtcbiAgICAgICAgaWYgKCF0aGlzLnBhdXNlZCkge1xuICAgICAgICAgICAgd3JpdGVDYWxsYmFjayA9PT0gbnVsbCB8fCB3cml0ZUNhbGxiYWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiB3cml0ZUNhbGxiYWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaW5zZXJ0SHRtbEF0Q3VycmVudFBvcyhjaHVuaykge1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgIHRoaXMucHJlcHJvY2Vzc29yLmluc2VydEh0bWxBdEN1cnJlbnRQb3MoY2h1bmspO1xuICAgICAgICB0aGlzLl9ydW5QYXJzaW5nTG9vcCgpO1xuICAgIH1cbiAgICAvL0hpYmVybmF0aW9uXG4gICAgX2Vuc3VyZUhpYmVybmF0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5wcmVwcm9jZXNzb3IuZW5kT2ZDaHVua0hpdCkge1xuICAgICAgICAgICAgdGhpcy5fdW5jb25zdW1lKHRoaXMuY29uc3VtZWRBZnRlclNuYXBzaG90KTtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vQ29uc3VtcHRpb25cbiAgICBfY29uc3VtZSgpIHtcbiAgICAgICAgdGhpcy5jb25zdW1lZEFmdGVyU25hcHNob3QrKztcbiAgICAgICAgcmV0dXJuIHRoaXMucHJlcHJvY2Vzc29yLmFkdmFuY2UoKTtcbiAgICB9XG4gICAgX3VuY29uc3VtZShjb3VudCkge1xuICAgICAgICB0aGlzLmNvbnN1bWVkQWZ0ZXJTbmFwc2hvdCAtPSBjb3VudDtcbiAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3IucmV0cmVhdChjb3VudCk7XG4gICAgfVxuICAgIF9yZWNvbnN1bWVJblN0YXRlKHN0YXRlLCBjcCkge1xuICAgICAgICB0aGlzLnN0YXRlID0gc3RhdGU7XG4gICAgICAgIHRoaXMuX2NhbGxTdGF0ZShjcCk7XG4gICAgfVxuICAgIF9hZHZhbmNlQnkoY291bnQpIHtcbiAgICAgICAgdGhpcy5jb25zdW1lZEFmdGVyU25hcHNob3QgKz0gY291bnQ7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3IuYWR2YW5jZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9jb25zdW1lU2VxdWVuY2VJZk1hdGNoKHBhdHRlcm4sIGNhc2VTZW5zaXRpdmUpIHtcbiAgICAgICAgaWYgKHRoaXMucHJlcHJvY2Vzc29yLnN0YXJ0c1dpdGgocGF0dGVybiwgY2FzZVNlbnNpdGl2ZSkpIHtcbiAgICAgICAgICAgIC8vIFdlIHdpbGwgYWxyZWFkeSBoYXZlIGNvbnN1bWVkIG9uZSBjaGFyYWN0ZXIgYmVmb3JlIGNhbGxpbmcgdGhpcyBtZXRob2QuXG4gICAgICAgICAgICB0aGlzLl9hZHZhbmNlQnkocGF0dGVybi5sZW5ndGggLSAxKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgLy9Ub2tlbiBjcmVhdGlvblxuICAgIF9jcmVhdGVTdGFydFRhZ1Rva2VuKCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IHtcbiAgICAgICAgICAgIHR5cGU6IFRva2VuVHlwZS5TVEFSVF9UQUcsXG4gICAgICAgICAgICB0YWdOYW1lOiAnJyxcbiAgICAgICAgICAgIHRhZ0lEOiBUQUdfSUQuVU5LTk9XTixcbiAgICAgICAgICAgIHNlbGZDbG9zaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGFja1NlbGZDbG9zaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGF0dHJzOiBbXSxcbiAgICAgICAgICAgIGxvY2F0aW9uOiB0aGlzLmdldEN1cnJlbnRMb2NhdGlvbigxKSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgX2NyZWF0ZUVuZFRhZ1Rva2VuKCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IHtcbiAgICAgICAgICAgIHR5cGU6IFRva2VuVHlwZS5FTkRfVEFHLFxuICAgICAgICAgICAgdGFnTmFtZTogJycsXG4gICAgICAgICAgICB0YWdJRDogVEFHX0lELlVOS05PV04sXG4gICAgICAgICAgICBzZWxmQ2xvc2luZzogZmFsc2UsXG4gICAgICAgICAgICBhY2tTZWxmQ2xvc2luZzogZmFsc2UsXG4gICAgICAgICAgICBhdHRyczogW10sXG4gICAgICAgICAgICBsb2NhdGlvbjogdGhpcy5nZXRDdXJyZW50TG9jYXRpb24oMiksXG4gICAgICAgIH07XG4gICAgfVxuICAgIF9jcmVhdGVDb21tZW50VG9rZW4ob2Zmc2V0KSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuID0ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW5UeXBlLkNPTU1FTlQsXG4gICAgICAgICAgICBkYXRhOiAnJyxcbiAgICAgICAgICAgIGxvY2F0aW9uOiB0aGlzLmdldEN1cnJlbnRMb2NhdGlvbihvZmZzZXQpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBfY3JlYXRlRG9jdHlwZVRva2VuKGluaXRpYWxOYW1lKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuID0ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW5UeXBlLkRPQ1RZUEUsXG4gICAgICAgICAgICBuYW1lOiBpbml0aWFsTmFtZSxcbiAgICAgICAgICAgIGZvcmNlUXVpcmtzOiBmYWxzZSxcbiAgICAgICAgICAgIHB1YmxpY0lkOiBudWxsLFxuICAgICAgICAgICAgc3lzdGVtSWQ6IG51bGwsXG4gICAgICAgICAgICBsb2NhdGlvbjogdGhpcy5jdXJyZW50TG9jYXRpb24sXG4gICAgICAgIH07XG4gICAgfVxuICAgIF9jcmVhdGVDaGFyYWN0ZXJUb2tlbih0eXBlLCBjaGFycykge1xuICAgICAgICB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbiA9IHtcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICBjaGFycyxcbiAgICAgICAgICAgIGxvY2F0aW9uOiB0aGlzLmN1cnJlbnRMb2NhdGlvbixcbiAgICAgICAgfTtcbiAgICB9XG4gICAgLy9UYWcgYXR0cmlidXRlc1xuICAgIF9jcmVhdGVBdHRyKGF0dHJOYW1lRmlyc3RDaCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRBdHRyID0ge1xuICAgICAgICAgICAgbmFtZTogYXR0ck5hbWVGaXJzdENoLFxuICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmN1cnJlbnRMb2NhdGlvbiA9IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKDApO1xuICAgIH1cbiAgICBfbGVhdmVBdHRyTmFtZSgpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICB2YXIgX2I7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIGlmIChnZXRUb2tlbkF0dHIodG9rZW4sIHRoaXMuY3VycmVudEF0dHIubmFtZSkgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRva2VuLmF0dHJzLnB1c2godGhpcy5jdXJyZW50QXR0cik7XG4gICAgICAgICAgICBpZiAodG9rZW4ubG9jYXRpb24gJiYgdGhpcy5jdXJyZW50TG9jYXRpb24pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhdHRyTG9jYXRpb25zID0gKChfYSA9IChfYiA9IHRva2VuLmxvY2F0aW9uKS5hdHRycykgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogKF9iLmF0dHJzID0gT2JqZWN0LmNyZWF0ZShudWxsKSkpO1xuICAgICAgICAgICAgICAgIGF0dHJMb2NhdGlvbnNbdGhpcy5jdXJyZW50QXR0ci5uYW1lXSA9IHRoaXMuY3VycmVudExvY2F0aW9uO1xuICAgICAgICAgICAgICAgIC8vIFNldCBlbmQgbG9jYXRpb25cbiAgICAgICAgICAgICAgICB0aGlzLl9sZWF2ZUF0dHJWYWx1ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5kdXBsaWNhdGVBdHRyaWJ1dGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9sZWF2ZUF0dHJWYWx1ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudExvY2F0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMb2NhdGlvbi5lbmRMaW5lID0gdGhpcy5wcmVwcm9jZXNzb3IubGluZTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uLmVuZENvbCA9IHRoaXMucHJlcHJvY2Vzc29yLmNvbDtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uLmVuZE9mZnNldCA9IHRoaXMucHJlcHJvY2Vzc29yLm9mZnNldDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvL1Rva2VuIGVtaXNzaW9uXG4gICAgcHJlcGFyZVRva2VuKGN0KSB7XG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50Q2hhcmFjdGVyVG9rZW4oY3QubG9jYXRpb24pO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IG51bGw7XG4gICAgICAgIGlmIChjdC5sb2NhdGlvbikge1xuICAgICAgICAgICAgY3QubG9jYXRpb24uZW5kTGluZSA9IHRoaXMucHJlcHJvY2Vzc29yLmxpbmU7XG4gICAgICAgICAgICBjdC5sb2NhdGlvbi5lbmRDb2wgPSB0aGlzLnByZXByb2Nlc3Nvci5jb2wgKyAxO1xuICAgICAgICAgICAgY3QubG9jYXRpb24uZW5kT2Zmc2V0ID0gdGhpcy5wcmVwcm9jZXNzb3Iub2Zmc2V0ICsgMTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1cnJlbnRMb2NhdGlvbiA9IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKC0xKTtcbiAgICB9XG4gICAgZW1pdEN1cnJlbnRUYWdUb2tlbigpIHtcbiAgICAgICAgY29uc3QgY3QgPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgdGhpcy5wcmVwYXJlVG9rZW4oY3QpO1xuICAgICAgICBjdC50YWdJRCA9IGdldFRhZ0lEKGN0LnRhZ05hbWUpO1xuICAgICAgICBpZiAoY3QudHlwZSA9PT0gVG9rZW5UeXBlLlNUQVJUX1RBRykge1xuICAgICAgICAgICAgdGhpcy5sYXN0U3RhcnRUYWdOYW1lID0gY3QudGFnTmFtZTtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlci5vblN0YXJ0VGFnKGN0KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChjdC5hdHRycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lbmRUYWdXaXRoQXR0cmlidXRlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY3Quc2VsZkNsb3NpbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVuZFRhZ1dpdGhUcmFpbGluZ1NvbGlkdXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5oYW5kbGVyLm9uRW5kVGFnKGN0KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci5kcm9wUGFyc2VkQ2h1bmsoKTtcbiAgICB9XG4gICAgZW1pdEN1cnJlbnRDb21tZW50KGN0KSB7XG4gICAgICAgIHRoaXMucHJlcGFyZVRva2VuKGN0KTtcbiAgICAgICAgdGhpcy5oYW5kbGVyLm9uQ29tbWVudChjdCk7XG4gICAgICAgIHRoaXMucHJlcHJvY2Vzc29yLmRyb3BQYXJzZWRDaHVuaygpO1xuICAgIH1cbiAgICBlbWl0Q3VycmVudERvY3R5cGUoY3QpIHtcbiAgICAgICAgdGhpcy5wcmVwYXJlVG9rZW4oY3QpO1xuICAgICAgICB0aGlzLmhhbmRsZXIub25Eb2N0eXBlKGN0KTtcbiAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3IuZHJvcFBhcnNlZENodW5rKCk7XG4gICAgfVxuICAgIF9lbWl0Q3VycmVudENoYXJhY3RlclRva2VuKG5leHRMb2NhdGlvbikge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4pIHtcbiAgICAgICAgICAgIC8vTk9URTogaWYgd2UgaGF2ZSBhIHBlbmRpbmcgY2hhcmFjdGVyIHRva2VuLCBtYWtlIGl0J3MgZW5kIGxvY2F0aW9uIGVxdWFsIHRvIHRoZVxuICAgICAgICAgICAgLy9jdXJyZW50IHRva2VuJ3Mgc3RhcnQgbG9jYXRpb24uXG4gICAgICAgICAgICBpZiAobmV4dExvY2F0aW9uICYmIHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuLmxvY2F0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4ubG9jYXRpb24uZW5kTGluZSA9IG5leHRMb2NhdGlvbi5zdGFydExpbmU7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4ubG9jYXRpb24uZW5kQ29sID0gbmV4dExvY2F0aW9uLnN0YXJ0Q29sO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuLmxvY2F0aW9uLmVuZE9mZnNldCA9IG5leHRMb2NhdGlvbi5zdGFydE9mZnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4udHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLkNIQVJBQ1RFUjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZXIub25DaGFyYWN0ZXIodGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuTlVMTF9DSEFSQUNURVI6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVyLm9uTnVsbENoYXJhY3Rlcih0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5XSElURVNQQUNFX0NIQVJBQ1RFUjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZXIub25XaGl0ZXNwYWNlQ2hhcmFjdGVyKHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4gPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9lbWl0RU9GVG9rZW4oKSB7XG4gICAgICAgIGNvbnN0IGxvY2F0aW9uID0gdGhpcy5nZXRDdXJyZW50TG9jYXRpb24oMCk7XG4gICAgICAgIGlmIChsb2NhdGlvbikge1xuICAgICAgICAgICAgbG9jYXRpb24uZW5kTGluZSA9IGxvY2F0aW9uLnN0YXJ0TGluZTtcbiAgICAgICAgICAgIGxvY2F0aW9uLmVuZENvbCA9IGxvY2F0aW9uLnN0YXJ0Q29sO1xuICAgICAgICAgICAgbG9jYXRpb24uZW5kT2Zmc2V0ID0gbG9jYXRpb24uc3RhcnRPZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRDaGFyYWN0ZXJUb2tlbihsb2NhdGlvbik7XG4gICAgICAgIHRoaXMuaGFuZGxlci5vbkVvZih7IHR5cGU6IFRva2VuVHlwZS5FT0YsIGxvY2F0aW9uIH0pO1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgIH1cbiAgICAvL0NoYXJhY3RlcnMgZW1pc3Npb25cbiAgICAvL09QVElNSVpBVElPTjogc3BlY2lmaWNhdGlvbiB1c2VzIG9ubHkgb25lIHR5cGUgb2YgY2hhcmFjdGVyIHRva2VucyAob25lIHRva2VuIHBlciBjaGFyYWN0ZXIpLlxuICAgIC8vVGhpcyBjYXVzZXMgYSBodWdlIG1lbW9yeSBvdmVyaGVhZCBhbmQgYSBsb3Qgb2YgdW5uZWNlc3NhcnkgcGFyc2VyIGxvb3BzLiBwYXJzZTUgdXNlcyAzIGdyb3VwcyBvZiBjaGFyYWN0ZXJzLlxuICAgIC8vSWYgd2UgaGF2ZSBhIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMgdGhhdCBiZWxvbmcgdG8gdGhlIHNhbWUgZ3JvdXAsIHRoZSBwYXJzZXIgY2FuIHByb2Nlc3MgaXRcbiAgICAvL2FzIGEgc2luZ2xlIHNvbGlkIGNoYXJhY3RlciB0b2tlbi5cbiAgICAvL1NvLCB0aGVyZSBhcmUgMyB0eXBlcyBvZiBjaGFyYWN0ZXIgdG9rZW5zIGluIHBhcnNlNTpcbiAgICAvLzEpVG9rZW5UeXBlLk5VTExfQ0hBUkFDVEVSIC0gXFx1MDAwMC1jaGFyYWN0ZXIgc2VxdWVuY2VzIChlLmcuICdcXHUwMDAwXFx1MDAwMFxcdTAwMDAnKVxuICAgIC8vMilUb2tlblR5cGUuV0hJVEVTUEFDRV9DSEFSQUNURVIgLSBhbnkgd2hpdGVzcGFjZS9uZXctbGluZSBjaGFyYWN0ZXIgc2VxdWVuY2VzIChlLmcuICdcXG4gIFxcclxcdCAgIFxcZicpXG4gICAgLy8zKVRva2VuVHlwZS5DSEFSQUNURVIgLSBhbnkgY2hhcmFjdGVyIHNlcXVlbmNlIHdoaWNoIGRvbid0IGJlbG9uZyB0byBncm91cHMgMSBhbmQgMiAoZS5nLiAnYWJjZGVmMTIzNEBAIyQlXicpXG4gICAgX2FwcGVuZENoYXJUb0N1cnJlbnRDaGFyYWN0ZXJUb2tlbih0eXBlLCBjaCkge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbi50eXBlICE9PSB0eXBlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50TG9jYXRpb24gPSB0aGlzLmdldEN1cnJlbnRMb2NhdGlvbigwKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q3VycmVudENoYXJhY3RlclRva2VuKHRoaXMuY3VycmVudExvY2F0aW9uKTtcbiAgICAgICAgICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci5kcm9wUGFyc2VkQ2h1bmsoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuLmNoYXJzICs9IGNoO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jcmVhdGVDaGFyYWN0ZXJUb2tlbih0eXBlLCBjaCk7XG4gICAgfVxuICAgIF9lbWl0Q29kZVBvaW50KGNwKSB7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBpc1doaXRlc3BhY2UoY3ApXG4gICAgICAgICAgICA/IFRva2VuVHlwZS5XSElURVNQQUNFX0NIQVJBQ1RFUlxuICAgICAgICAgICAgOiBjcCA9PT0gJC5OVUxMXG4gICAgICAgICAgICAgICAgPyBUb2tlblR5cGUuTlVMTF9DSEFSQUNURVJcbiAgICAgICAgICAgICAgICA6IFRva2VuVHlwZS5DSEFSQUNURVI7XG4gICAgICAgIHRoaXMuX2FwcGVuZENoYXJUb0N1cnJlbnRDaGFyYWN0ZXJUb2tlbih0eXBlLCBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCkpO1xuICAgIH1cbiAgICAvL05PVEU6IHVzZWQgd2hlbiB3ZSBlbWl0IGNoYXJhY3RlcnMgZXhwbGljaXRseS5cbiAgICAvL1RoaXMgaXMgYWx3YXlzIGZvciBub24td2hpdGVzcGFjZSBhbmQgbm9uLW51bGwgY2hhcmFjdGVycywgd2hpY2ggYWxsb3dzIHVzIHRvIGF2b2lkIGFkZGl0aW9uYWwgY2hlY2tzLlxuICAgIF9lbWl0Q2hhcnMoY2gpIHtcbiAgICAgICAgdGhpcy5fYXBwZW5kQ2hhclRvQ3VycmVudENoYXJhY3RlclRva2VuKFRva2VuVHlwZS5DSEFSQUNURVIsIGNoKTtcbiAgICB9XG4gICAgLy8gQ2hhcmFjdGVyIHJlZmVyZW5jZSBoZWxwZXJzXG4gICAgX21hdGNoTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IG51bGw7XG4gICAgICAgIGxldCBleGNlc3MgPSAwO1xuICAgICAgICBsZXQgd2l0aG91dFNlbWljb2xvbiA9IGZhbHNlO1xuICAgICAgICBmb3IgKGxldCBpID0gMCwgY3VycmVudCA9IGh0bWxEZWNvZGVUcmVlWzBdOyBpID49IDA7IGNwID0gdGhpcy5fY29uc3VtZSgpKSB7XG4gICAgICAgICAgICBpID0gZGV0ZXJtaW5lQnJhbmNoKGh0bWxEZWNvZGVUcmVlLCBjdXJyZW50LCBpICsgMSwgY3ApO1xuICAgICAgICAgICAgaWYgKGkgPCAwKVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZXhjZXNzICs9IDE7XG4gICAgICAgICAgICBjdXJyZW50ID0gaHRtbERlY29kZVRyZWVbaV07XG4gICAgICAgICAgICBjb25zdCBtYXNrZWQgPSBjdXJyZW50ICYgQmluVHJpZUZsYWdzLlZBTFVFX0xFTkdUSDtcbiAgICAgICAgICAgIC8vIElmIHRoZSBicmFuY2ggaXMgYSB2YWx1ZSwgc3RvcmUgaXQgYW5kIGNvbnRpbnVlXG4gICAgICAgICAgICBpZiAobWFza2VkKSB7XG4gICAgICAgICAgICAgICAgLy8gVGhlIG1hc2sgaXMgdGhlIG51bWJlciBvZiBieXRlcyBvZiB0aGUgdmFsdWUsIGluY2x1ZGluZyB0aGUgY3VycmVudCBieXRlLlxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlTGVuZ3RoID0gKG1hc2tlZCA+PiAxNCkgLSAxO1xuICAgICAgICAgICAgICAgIC8vIEF0dHJpYnV0ZSB2YWx1ZXMgdGhhdCBhcmVuJ3QgdGVybWluYXRlZCBwcm9wZXJseSBhcmVuJ3QgcGFyc2VkLCBhbmQgc2hvdWxkbid0IGxlYWQgdG8gYSBwYXJzZXIgZXJyb3IuXG4gICAgICAgICAgICAgICAgLy8gU2VlIHRoZSBleGFtcGxlIGluIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3BhcnNpbmcuaHRtbCNuYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNlLXN0YXRlXG4gICAgICAgICAgICAgICAgaWYgKGNwICE9PSAkLlNFTUlDT0xPTiAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pc0NoYXJhY3RlclJlZmVyZW5jZUluQXR0cmlidXRlKCkgJiZcbiAgICAgICAgICAgICAgICAgICAgaXNFbnRpdHlJbkF0dHJpYnV0ZUludmFsaWRFbmQodGhpcy5wcmVwcm9jZXNzb3IucGVlaygxKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgLy9OT1RFOiB3ZSBkb24ndCBmbHVzaCBhbGwgY29uc3VtZWQgY29kZSBwb2ludHMgaGVyZSwgYW5kIGluc3RlYWQgc3dpdGNoIGJhY2sgdG8gdGhlIG9yaWdpbmFsIHN0YXRlIGFmdGVyXG4gICAgICAgICAgICAgICAgICAgIC8vZW1pdHRpbmcgYW4gYW1wZXJzYW5kLiBUaGlzIGlzIGZpbmUsIGFzIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIHdvbid0IGJlIHBhcnNlZCBkaWZmZXJlbnRseSBpbiBhdHRyaWJ1dGVzLlxuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBbJC5BTVBFUlNBTkRdO1xuICAgICAgICAgICAgICAgICAgICAvLyBTa2lwIG92ZXIgdGhlIHZhbHVlLlxuICAgICAgICAgICAgICAgICAgICBpICs9IHZhbHVlTGVuZ3RoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBhIHN1cnJvZ2F0ZSBwYWlyLCBjb25zdW1lIHRoZSBuZXh0IHR3byBieXRlcy5cbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlTGVuZ3RoID09PSAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBbaHRtbERlY29kZVRyZWVbaV0gJiB+QmluVHJpZUZsYWdzLlZBTFVFX0xFTkdUSF1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHZhbHVlTGVuZ3RoID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gW2h0bWxEZWNvZGVUcmVlWysraV1dXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogW2h0bWxEZWNvZGVUcmVlWysraV0sIGh0bWxEZWNvZGVUcmVlWysraV1dO1xuICAgICAgICAgICAgICAgICAgICBleGNlc3MgPSAwO1xuICAgICAgICAgICAgICAgICAgICB3aXRob3V0U2VtaWNvbG9uID0gY3AgIT09ICQuU0VNSUNPTE9OO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodmFsdWVMZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZhbHVlIGlzIHplcm8tbGVuZ3RoLCB3ZSdyZSBkb25lLlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25zdW1lKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLl91bmNvbnN1bWUoZXhjZXNzKTtcbiAgICAgICAgaWYgKHdpdGhvdXRTZW1pY29sb24gJiYgIXRoaXMucHJlcHJvY2Vzc29yLmVuZE9mQ2h1bmtIaXQpIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1NlbWljb2xvbkFmdGVyQ2hhcmFjdGVyUmVmZXJlbmNlKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBXZSB3YW50IHRvIGVtaXQgdGhlIGVycm9yIGFib3ZlIG9uIHRoZSBjb2RlIHBvaW50IGFmdGVyIHRoZSBlbnRpdHkuXG4gICAgICAgIC8vIFdlIGFsd2F5cyBjb25zdW1lIG9uZSBjb2RlIHBvaW50IHRvbyBtYW55IGluIHRoZSBsb29wLCBhbmQgd2Ugd2FpdCB0b1xuICAgICAgICAvLyB1bmNvbnN1bWUgaXQgdW50aWwgYWZ0ZXIgdGhlIGVycm9yIGlzIGVtaXR0ZWQuXG4gICAgICAgIHRoaXMuX3VuY29uc3VtZSgxKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgX2lzQ2hhcmFjdGVyUmVmZXJlbmNlSW5BdHRyaWJ1dGUoKSB7XG4gICAgICAgIHJldHVybiAodGhpcy5yZXR1cm5TdGF0ZSA9PT0gU3RhdGUuQVRUUklCVVRFX1ZBTFVFX0RPVUJMRV9RVU9URUQgfHxcbiAgICAgICAgICAgIHRoaXMucmV0dXJuU3RhdGUgPT09IFN0YXRlLkFUVFJJQlVURV9WQUxVRV9TSU5HTEVfUVVPVEVEIHx8XG4gICAgICAgICAgICB0aGlzLnJldHVyblN0YXRlID09PSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfVU5RVU9URUQpO1xuICAgIH1cbiAgICBfZmx1c2hDb2RlUG9pbnRDb25zdW1lZEFzQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKSB7XG4gICAgICAgIGlmICh0aGlzLl9pc0NoYXJhY3RlclJlZmVyZW5jZUluQXR0cmlidXRlKCkpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ2FsbGluZyBzdGF0ZXMgdGhpcyB3YXkgdHVybnMgb3V0IHRvIGJlIG11Y2ggZmFzdGVyIHRoYW4gYW55IG90aGVyIGFwcHJvYWNoLlxuICAgIF9jYWxsU3RhdGUoY3ApIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLnN0YXRlKSB7XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkRBVEE6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURhdGEoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5SQ0RBVEE6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVJjZGF0YShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlJBV1RFWFQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVJhd3RleHQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlBMQUlOVEVYVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlUGxhaW50ZXh0KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuVEFHX09QRU46IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVRhZ09wZW4oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5FTkRfVEFHX09QRU46IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUVuZFRhZ09wZW4oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5UQUdfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlVGFnTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlJDREFUQV9MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlUmNkYXRhTGVzc1RoYW5TaWduKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuUkNEQVRBX0VORF9UQUdfT1BFTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlUmNkYXRhRW5kVGFnT3BlbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlJDREFUQV9FTkRfVEFHX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVJjZGF0YUVuZFRhZ05hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5SQVdURVhUX0xFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVSYXd0ZXh0TGVzc1RoYW5TaWduKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuUkFXVEVYVF9FTkRfVEFHX09QRU46IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVJhd3RleHRFbmRUYWdPcGVuKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuUkFXVEVYVF9FTkRfVEFHX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVJhd3RleHRFbmRUYWdOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFMZXNzVGhhblNpZ24oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9FTkRfVEFHX09QRU46IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFbmRUYWdPcGVuKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRU5EX1RBR19OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRW5kVGFnTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZVN0YXJ0KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUX0RBU0g6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVTdGFydERhc2goY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfREFTSDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWREYXNoKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIX0RBU0g6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkRGFzaERhc2goY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZExlc3NUaGFuU2lnbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19PUEVOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZEVuZFRhZ09wZW4oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWRFbmRUYWdOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9TVEFSVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZVN0YXJ0KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWREYXNoKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSF9EQVNIOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlZERhc2hEYXNoKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkTGVzc1RoYW5TaWduKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9FTkQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVFbmQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5CRUZPUkVfQVRUUklCVVRFX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJlZm9yZUF0dHJpYnV0ZU5hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BVFRSSUJVVEVfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQXR0cmlidXRlTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkFGVEVSX0FUVFJJQlVURV9OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBZnRlckF0dHJpYnV0ZU5hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5CRUZPUkVfQVRUUklCVVRFX1ZBTFVFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZWZvcmVBdHRyaWJ1dGVWYWx1ZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkFUVFJJQlVURV9WQUxVRV9ET1VCTEVfUVVPVEVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBdHRyaWJ1dGVWYWx1ZURvdWJsZVF1b3RlZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkFUVFJJQlVURV9WQUxVRV9TSU5HTEVfUVVPVEVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBdHRyaWJ1dGVWYWx1ZVNpbmdsZVF1b3RlZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkFUVFJJQlVURV9WQUxVRV9VTlFVT1RFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQXR0cmlidXRlVmFsdWVVbnF1b3RlZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkFGVEVSX0FUVFJJQlVURV9WQUxVRV9RVU9URUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUFmdGVyQXR0cmlidXRlVmFsdWVRdW90ZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TRUxGX0NMT1NJTkdfU1RBUlRfVEFHOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTZWxmQ2xvc2luZ1N0YXJ0VGFnKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQk9HVVNfQ09NTUVOVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNDb21tZW50KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuTUFSS1VQX0RFQ0xBUkFUSU9OX09QRU46IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZU1hcmt1cERlY2xhcmF0aW9uT3BlbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNPTU1FTlRfU1RBUlQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRTdGFydChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNPTU1FTlRfU1RBUlRfREFTSDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudFN0YXJ0RGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNPTU1FTlQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DT01NRU5UX0xFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50TGVzc1RoYW5TaWduKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50TGVzc1RoYW5TaWduQmFuZyhjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFOR19EQVNIOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50TGVzc1RoYW5TaWduQmFuZ0Rhc2goY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkdfREFTSF9EQVNIOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50TGVzc1RoYW5TaWduQmFuZ0Rhc2hEYXNoKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVF9FTkRfREFTSDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudEVuZERhc2goY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DT01NRU5UX0VORDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudEVuZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNPTU1FTlRfRU5EX0JBTkc6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRFbmRCYW5nKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuRE9DVFlQRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlRG9jdHlwZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkJFRk9SRV9ET0NUWVBFX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJlZm9yZURvY3R5cGVOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuRE9DVFlQRV9OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVEb2N0eXBlTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkFGVEVSX0RPQ1RZUEVfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQWZ0ZXJEb2N0eXBlTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkFGVEVSX0RPQ1RZUEVfUFVCTElDX0tFWVdPUkQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUFmdGVyRG9jdHlwZVB1YmxpY0tleXdvcmQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5CRUZPUkVfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmVmb3JlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXIoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX0RPVUJMRV9RVU9URUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURvY3R5cGVQdWJsaWNJZGVudGlmaWVyRG91YmxlUXVvdGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVEb2N0eXBlUHVibGljSWRlbnRpZmllclNpbmdsZVF1b3RlZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkFGVEVSX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVI6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUFmdGVyRG9jdHlwZVB1YmxpY0lkZW50aWZpZXIoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5CRVRXRUVOX0RPQ1RZUEVfUFVCTElDX0FORF9TWVNURU1fSURFTlRJRklFUlM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJldHdlZW5Eb2N0eXBlUHVibGljQW5kU3lzdGVtSWRlbnRpZmllcnMoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1NZU1RFTV9LRVlXT1JEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBZnRlckRvY3R5cGVTeXN0ZW1LZXl3b3JkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQkVGT1JFX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVI6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVEb2N0eXBlU3lzdGVtSWRlbnRpZmllckRvdWJsZVF1b3RlZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXJTaW5nbGVRdW90ZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBZnRlckRvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQk9HVVNfRE9DVFlQRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNEb2N0eXBlKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ0RBVEFfU0VDVElPTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ2RhdGFTZWN0aW9uKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ0RBVEFfU0VDVElPTl9CUkFDS0VUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDZGF0YVNlY3Rpb25CcmFja2V0KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ0RBVEFfU0VDVElPTl9FTkQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNkYXRhU2VjdGlvbkVuZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNIQVJBQ1RFUl9SRUZFUkVOQ0U6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNoYXJhY3RlclJlZmVyZW5jZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLk5BTUVEX0NIQVJBQ1RFUl9SRUZFUkVOQ0U6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZU5hbWVkQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQU1CSUdVT1VTX0FNUEVSU0FORDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQW1iaWd1b3VzQW1wZXJzYW5kKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuTlVNRVJJQ19DSEFSQUNURVJfUkVGRVJFTkNFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVOdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuSEVYQURFTUlDQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRV9TVEFSVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlSGV4YWRlbWljYWxDaGFyYWN0ZXJSZWZlcmVuY2VTdGFydChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkhFWEFERU1JQ0FMX0NIQVJBQ1RFUl9SRUZFUkVOQ0U6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUhleGFkZW1pY2FsQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuREVDSU1BTF9DSEFSQUNURVJfUkVGRVJFTkNFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVEZWNpbWFsQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuTlVNRVJJQ19DSEFSQUNURVJfUkVGRVJFTkNFX0VORDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlTnVtZXJpY0NoYXJhY3RlclJlZmVyZW5jZUVuZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIHN0YXRlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU3RhdGUgbWFjaGluZVxuICAgIC8vIERhdGEgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZURhdGEoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlRBR19PUEVOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkFNUEVSU0FORDoge1xuICAgICAgICAgICAgICAgIHRoaXMucmV0dXJuU3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DSEFSQUNURVJfUkVGRVJFTkNFO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyAgUkNEQVRBIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVSY2RhdGEoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkFNUEVSU0FORDoge1xuICAgICAgICAgICAgICAgIHRoaXMucmV0dXJuU3RhdGUgPSBTdGF0ZS5SQ0RBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNIQVJBQ1RFUl9SRUZFUkVOQ0U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkNEQVRBX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBSQVdURVhUIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVSYXd0ZXh0KGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQVdURVhUX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YShjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfTEVTU19USEFOX1NJR047XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFBMQUlOVEVYVCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlUGxhaW50ZXh0KGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gVGFnIG9wZW4gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVRhZ09wZW4oY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlMZXR0ZXIoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9jcmVhdGVTdGFydFRhZ1Rva2VuKCk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuVEFHX05BTUU7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVRhZ05hbWUoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgICAgICBjYXNlICQuRVhDTEFNQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuTUFSS1VQX0RFQ0xBUkFUSU9OX09QRU47XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuU09MSURVUzoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRU5EX1RBR19PUEVOO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLlFVRVNUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkUXVlc3Rpb25NYXJrSW5zdGVhZE9mVGFnTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUNvbW1lbnRUb2tlbigxKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0NPTU1FTlQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNDb21tZW50KGNwKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZCZWZvcmVUYWdOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8Jyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmludmFsaWRGaXJzdENoYXJhY3Rlck9mVGFnTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCcpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVEYXRhKGNwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgfVxuICAgIC8vIEVuZCB0YWcgb3BlbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRW5kVGFnT3BlbihjcCkge1xuICAgICAgICBpZiAoaXNBc2NpaUxldHRlcihjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUVuZFRhZ1Rva2VuKCk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuVEFHX05BTUU7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVRhZ05hbWUoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nRW5kVGFnTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkJlZm9yZVRhZ05hbWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmludmFsaWRGaXJzdENoYXJhY3Rlck9mVGFnTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUNvbW1lbnRUb2tlbigyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0NPTU1FTlQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNDb21tZW50KGNwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgfVxuICAgIC8vIFRhZyBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVUYWdOYW1lKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlNPTElEVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0VMRl9DTE9TSU5HX1NUQVJUX1RBRztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRUYWdUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi50YWdOYW1lICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluVGFnKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi50YWdOYW1lICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGlzQXNjaWlVcHBlcihjcCkgPyB0b0FzY2lpTG93ZXIoY3ApIDogY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFJDREFUQSBsZXNzLXRoYW4gc2lnbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlUmNkYXRhTGVzc1RoYW5TaWduKGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5TT0xJRFVTKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkNEQVRBX0VORF9UQUdfT1BFTjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCcpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJDREFUQTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlUmNkYXRhKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBSQ0RBVEEgZW5kIHRhZyBvcGVuIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVSY2RhdGFFbmRUYWdPcGVuKGNwKSB7XG4gICAgICAgIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJDREFUQV9FTkRfVEFHX05BTUU7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVJjZGF0YUVuZFRhZ05hbWUoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8LycpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJDREFUQTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlUmNkYXRhKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBoYW5kbGVTcGVjaWFsRW5kVGFnKF9jcCkge1xuICAgICAgICBpZiAoIXRoaXMucHJlcHJvY2Vzc29yLnN0YXJ0c1dpdGgodGhpcy5sYXN0U3RhcnRUYWdOYW1lLCBmYWxzZSkpIHtcbiAgICAgICAgICAgIHJldHVybiAhdGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jcmVhdGVFbmRUYWdUb2tlbigpO1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICB0b2tlbi50YWdOYW1lID0gdGhpcy5sYXN0U3RhcnRUYWdOYW1lO1xuICAgICAgICBjb25zdCBjcCA9IHRoaXMucHJlcHJvY2Vzc29yLnBlZWsodGhpcy5sYXN0U3RhcnRUYWdOYW1lLmxlbmd0aCk7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hZHZhbmNlQnkodGhpcy5sYXN0U3RhcnRUYWdOYW1lLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuU09MSURVUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkdmFuY2VCeSh0aGlzLmxhc3RTdGFydFRhZ05hbWUubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0VMRl9DTE9TSU5HX1NUQVJUX1RBRztcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hZHZhbmNlQnkodGhpcy5sYXN0U3RhcnRUYWdOYW1lLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudFRhZ1Rva2VuKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHJldHVybiAhdGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBSQ0RBVEEgZW5kIHRhZyBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVSY2RhdGFFbmRUYWdOYW1lKGNwKSB7XG4gICAgICAgIGlmICh0aGlzLmhhbmRsZVNwZWNpYWxFbmRUYWcoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkNEQVRBO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVSY2RhdGEoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFJBV1RFWFQgbGVzcy10aGFuIHNpZ24gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVJhd3RleHRMZXNzVGhhblNpZ24oY3ApIHtcbiAgICAgICAgaWYgKGNwID09PSAkLlNPTElEVVMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQVdURVhUX0VORF9UQUdfT1BFTjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCcpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJBV1RFWFQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVJhd3RleHQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFJBV1RFWFQgZW5kIHRhZyBvcGVuIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVSYXd0ZXh0RW5kVGFnT3BlbihjcCkge1xuICAgICAgICBpZiAoaXNBc2NpaUxldHRlcihjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQVdURVhUX0VORF9UQUdfTkFNRTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlUmF3dGV4dEVuZFRhZ05hbWUoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8LycpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJBV1RFWFQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVJhd3RleHQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFJBV1RFWFQgZW5kIHRhZyBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVSYXd0ZXh0RW5kVGFnTmFtZShjcCkge1xuICAgICAgICBpZiAodGhpcy5oYW5kbGVTcGVjaWFsRW5kVGFnKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8LycpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJBV1RFWFQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVJhd3RleHQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGxlc3MtdGhhbiBzaWduIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhTGVzc1RoYW5TaWduKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TT0xJRFVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VORF9UQUdfT1BFTjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FWENMQU1BVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwhJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8Jyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZW5kIHRhZyBvcGVuIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRW5kVGFnT3BlbihjcCkge1xuICAgICAgICBpZiAoaXNBc2NpaUxldHRlcihjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FTkRfVEFHX05BTUU7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFbmRUYWdOYW1lKGNwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPC8nKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YShjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZW5kIHRhZyBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRW5kVGFnTmFtZShjcCkge1xuICAgICAgICBpZiAodGhpcy5oYW5kbGVTcGVjaWFsRW5kVGFnKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8LycpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlc2NhcGUgc3RhcnQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFFc2NhcGVTdGFydChjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUX0RBU0g7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy0nKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YShjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZXNjYXBlIHN0YXJ0IGRhc2ggc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFFc2NhcGVTdGFydERhc2goY3ApIHtcbiAgICAgICAgaWYgKGNwID09PSAkLkhZUEhFTl9NSU5VUykge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfREFTSF9EQVNIO1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCctJyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEE7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGEoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVzY2FwZWQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnLScpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfTEVTU19USEFOX1NJR047XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5TY3JpcHRIdG1sQ29tbWVudExpa2VUZXh0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlc2NhcGVkIGRhc2ggc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkRGFzaChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfREFTSF9EQVNIO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnLScpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfTEVTU19USEFOX1NJR047XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5TY3JpcHRIdG1sQ29tbWVudExpa2VUZXh0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlc2NhcGVkIGRhc2ggZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWREYXNoRGFzaChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCctJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJz4nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblNjcmlwdEh0bWxDb21tZW50TGlrZVRleHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVzY2FwZWQgbGVzcy10aGFuIHNpZ24gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkTGVzc1RoYW5TaWduKGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5TT0xJRFVTKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX09QRU47XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNBc2NpaUxldHRlcihjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCcpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfU1RBUlQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVTdGFydChjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZXNjYXBlZCBlbmQgdGFnIG9wZW4gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkRW5kVGFnT3BlbihjcCkge1xuICAgICAgICBpZiAoaXNBc2NpaUxldHRlcihjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfTkFNRTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWRFbmRUYWdOYW1lKGNwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPC8nKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZXNjYXBlZCBlbmQgdGFnIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkRW5kVGFnTmFtZShjcCkge1xuICAgICAgICBpZiAodGhpcy5oYW5kbGVTcGVjaWFsRW5kVGFnKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8LycpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlIHN0YXJ0IHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlU3RhcnQoY3ApIHtcbiAgICAgICAgaWYgKHRoaXMucHJlcHJvY2Vzc29yLnN0YXJ0c1dpdGgoJCQuU0NSSVBULCBmYWxzZSkgJiZcbiAgICAgICAgICAgIGlzU2NyaXB0RGF0YURvdWJsZUVzY2FwZVNlcXVlbmNlRW5kKHRoaXMucHJlcHJvY2Vzc29yLnBlZWsoJCQuU0NSSVBULmxlbmd0aCkpKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgJCQuU0NSSVBULmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludCh0aGlzLl9jb25zdW1lKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCF0aGlzLl9lbnN1cmVIaWJlcm5hdGlvbigpKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGVkIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlZChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0g7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCctJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfTEVTU19USEFOX1NJR047XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8Jyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5TY3JpcHRIdG1sQ29tbWVudExpa2VUZXh0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBkYXNoIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlZERhc2goY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIX0RBU0g7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCctJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfTEVTU19USEFOX1NJR047XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8Jyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluU2NyaXB0SHRtbENvbW1lbnRMaWtlVGV4dCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGVkIGRhc2ggZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWREYXNoRGFzaChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCctJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfTEVTU19USEFOX1NJR047XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8Jyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc+Jyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluU2NyaXB0SHRtbENvbW1lbnRMaWtlVGV4dCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGVkIGxlc3MtdGhhbiBzaWduIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlZExlc3NUaGFuU2lnbihjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuU09MSURVUykge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfRU5EO1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCcvJyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRUQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlIGVuZCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZUVuZChjcCkge1xuICAgICAgICBpZiAodGhpcy5wcmVwcm9jZXNzb3Iuc3RhcnRzV2l0aCgkJC5TQ1JJUFQsIGZhbHNlKSAmJlxuICAgICAgICAgICAgaXNTY3JpcHREYXRhRG91YmxlRXNjYXBlU2VxdWVuY2VFbmQodGhpcy5wcmVwcm9jZXNzb3IucGVlaygkJC5TQ1JJUFQubGVuZ3RoKSkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAkJC5TQ1JJUFQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KHRoaXMuX2NvbnN1bWUoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICghdGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKSkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlZChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQmVmb3JlIGF0dHJpYnV0ZSBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVCZWZvcmVBdHRyaWJ1dGVOYW1lKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgd2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlNPTElEVVM6XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0FUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQWZ0ZXJBdHRyaWJ1dGVOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FUVVBTFNfU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZEVxdWFsc1NpZ25CZWZvcmVBdHRyaWJ1dGVOYW1lKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVBdHRyKCc9Jyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUF0dHIoJycpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUF0dHJpYnV0ZU5hbWUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEF0dHJpYnV0ZSBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBdHRyaWJ1dGVOYW1lKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuU09MSURVUzpcbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjpcbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sZWF2ZUF0dHJOYW1lKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0FUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQWZ0ZXJBdHRyaWJ1dGVOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FUVVBTFNfU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xlYXZlQXR0ck5hbWUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9WQUxVRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzpcbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOlxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkQ2hhcmFjdGVySW5BdHRyaWJ1dGVOYW1lKTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLm5hbWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLm5hbWUgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIubmFtZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChpc0FzY2lpVXBwZXIoY3ApID8gdG9Bc2NpaUxvd2VyKGNwKSA6IGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBZnRlciBhdHRyaWJ1dGUgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQWZ0ZXJBdHRyaWJ1dGVOYW1lKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgd2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlNPTElEVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0VMRl9DTE9TSU5HX1NUQVJUX1RBRztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FUVVBTFNfU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfQVRUUklCVVRFX1ZBTFVFO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudFRhZ1Rva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblRhZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlQXR0cignJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQXR0cmlidXRlTmFtZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQmVmb3JlIGF0dHJpYnV0ZSB2YWx1ZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQmVmb3JlQXR0cmlidXRlVmFsdWUoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIC8vIElnbm9yZSB3aGl0ZXNwYWNlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQVRUUklCVVRFX1ZBTFVFX0RPVUJMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfU0lOR0xFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ0F0dHJpYnV0ZVZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50VGFnVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQVRUUklCVVRFX1ZBTFVFX1VOUVVPVEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQXR0cmlidXRlVmFsdWVVbnF1b3RlZChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQXR0cmlidXRlIHZhbHVlIChkb3VibGUtcXVvdGVkKSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQXR0cmlidXRlVmFsdWVEb3VibGVRdW90ZWQoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0FUVFJJQlVURV9WQUxVRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQU1QRVJTQU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9IFN0YXRlLkFUVFJJQlVURV9WQUxVRV9ET1VCTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DSEFSQUNURVJfUkVGRVJFTkNFO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluVGFnKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBdHRyaWJ1dGUgdmFsdWUgKHNpbmdsZS1xdW90ZWQpIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBdHRyaWJ1dGVWYWx1ZVNpbmdsZVF1b3RlZChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9BVFRSSUJVVEVfVkFMVUVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkFNUEVSU0FORDoge1xuICAgICAgICAgICAgICAgIHRoaXMucmV0dXJuU3RhdGUgPSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfU0lOR0xFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ0hBUkFDVEVSX1JFRkVSRU5DRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblRhZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQXR0cmlidXRlIHZhbHVlICh1bnF1b3RlZCkgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUF0dHJpYnV0ZVZhbHVlVW5xdW90ZWQoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xlYXZlQXR0clZhbHVlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BTVBFUlNBTkQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJldHVyblN0YXRlID0gU3RhdGUuQVRUUklCVVRFX1ZBTFVFX1VOUVVPVEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DSEFSQUNURVJfUkVGRVJFTkNFO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGVhdmVBdHRyVmFsdWUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50VGFnVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRTpcbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjpcbiAgICAgICAgICAgIGNhc2UgJC5FUVVBTFNfU0lHTjpcbiAgICAgICAgICAgIGNhc2UgJC5HUkFWRV9BQ0NFTlQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWRDaGFyYWN0ZXJJblVucXVvdGVkQXR0cmlidXRlVmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5UYWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEFmdGVyIGF0dHJpYnV0ZSB2YWx1ZSAocXVvdGVkKSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQWZ0ZXJBdHRyaWJ1dGVWYWx1ZVF1b3RlZChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGVhdmVBdHRyVmFsdWUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlNPTElEVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sZWF2ZUF0dHJWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TRUxGX0NMT1NJTkdfU1RBUlRfVEFHO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGVhdmVBdHRyVmFsdWUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50VGFnVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluVGFnKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdXaGl0ZXNwYWNlQmV0d2VlbkF0dHJpYnV0ZXMpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZWZvcmVBdHRyaWJ1dGVOYW1lKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTZWxmLWNsb3Npbmcgc3RhcnQgdGFnIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTZWxmQ2xvc2luZ1N0YXJ0VGFnKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgICAgICAgICAgdG9rZW4uc2VsZkNsb3NpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRUYWdUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5UYWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZFNvbGlkdXNJblRhZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJlZm9yZUF0dHJpYnV0ZU5hbWUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEJvZ3VzIGNvbW1lbnQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUJvZ3VzQ29tbWVudChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBNYXJrdXAgZGVjbGFyYXRpb24gb3BlbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlTWFya3VwRGVjbGFyYXRpb25PcGVuKGNwKSB7XG4gICAgICAgIGlmICh0aGlzLl9jb25zdW1lU2VxdWVuY2VJZk1hdGNoKCQkLkRBU0hfREFTSCwgdHJ1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUNvbW1lbnRUb2tlbigkJC5EQVNIX0RBU0gubGVuZ3RoICsgMSk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9TVEFSVDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLl9jb25zdW1lU2VxdWVuY2VJZk1hdGNoKCQkLkRPQ1RZUEUsIGZhbHNlKSkge1xuICAgICAgICAgICAgLy8gTk9URTogRG9jdHlwZXMgdG9rZW5zIGFyZSBjcmVhdGVkIHdpdGhvdXQgZml4ZWQgb2Zmc2V0cy4gV2Uga2VlcCB0cmFjayBvZiB0aGUgbW9tZW50IGEgZG9jdHlwZSAqbWlnaHQqIHN0YXJ0IGhlcmUuXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMb2NhdGlvbiA9IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKCQkLkRPQ1RZUEUubGVuZ3RoICsgMSk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLl9jb25zdW1lU2VxdWVuY2VJZk1hdGNoKCQkLkNEQVRBX1NUQVJULCB0cnVlKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaW5Gb3JlaWduTm9kZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DREFUQV9TRUNUSU9OO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5jZGF0YUluSHRtbENvbnRlbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUNvbW1lbnRUb2tlbigkJC5DREFUQV9TVEFSVC5sZW5ndGggKyAxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhID0gJ1tDREFUQVsnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19DT01NRU5UO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vTk9URTogU2VxdWVuY2UgbG9va3VwcyBjYW4gYmUgYWJydXB0ZWQgYnkgaGliZXJuYXRpb24uIEluIHRoYXQgY2FzZSwgbG9va3VwXG4gICAgICAgIC8vcmVzdWx0cyBhcmUgbm8gbG9uZ2VyIHZhbGlkIGFuZCB3ZSB3aWxsIG5lZWQgdG8gc3RhcnQgb3Zlci5cbiAgICAgICAgZWxzZSBpZiAoIXRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIuaW5jb3JyZWN0bHlPcGVuZWRDb21tZW50KTtcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUNvbW1lbnRUb2tlbigyKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19DT01NRU5UO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0NvbW1lbnQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENvbW1lbnQgc3RhcnQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNvbW1lbnRTdGFydChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfU1RBUlRfREFTSDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuYWJydXB0Q2xvc2luZ09mRW1wdHlDb21tZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRDb21tZW50KHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVDtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENvbW1lbnQgc3RhcnQgZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudFN0YXJ0RGFzaChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfRU5EO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5hYnJ1cHRDbG9zaW5nT2ZFbXB0eUNvbW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRDb21tZW50KHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluQ29tbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJy0nO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfRU5EX0RBU0g7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9ICc8JztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkNvbW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRDb21tZW50KHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDb21tZW50IGxlc3MtdGhhbiBzaWduIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDb21tZW50TGVzc1RoYW5TaWduKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5FWENMQU1BVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSAnISc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFORztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJzwnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBsZXNzLXRoYW4gc2lnbiBiYW5nIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDb21tZW50TGVzc1RoYW5TaWduQmFuZyhjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HX0RBU0g7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBsZXNzLXRoYW4gc2lnbiBiYW5nIGRhc2ggc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNvbW1lbnRMZXNzVGhhblNpZ25CYW5nRGFzaChjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HX0RBU0hfREFTSDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0VORF9EQVNIO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50RW5kRGFzaChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBsZXNzLXRoYW4gc2lnbiBiYW5nIGRhc2ggZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudExlc3NUaGFuU2lnbkJhbmdEYXNoRGFzaChjcCkge1xuICAgICAgICBpZiAoY3AgIT09ICQuR1JFQVRFUl9USEFOX1NJR04gJiYgY3AgIT09ICQuRU9GKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm5lc3RlZENvbW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0VORDtcbiAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50RW5kKGNwKTtcbiAgICB9XG4gICAgLy8gQ29tbWVudCBlbmQgZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudEVuZERhc2goY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0VORDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluQ29tbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJy0nO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBlbmQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNvbW1lbnRFbmQoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVYQ0xBTUFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9FTkRfQkFORztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9ICctJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluQ29tbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJy0tJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVDtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENvbW1lbnQgZW5kIGJhbmcgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNvbW1lbnRFbmRCYW5nKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9ICctLSEnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0VORF9EQVNIO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5pbmNvcnJlY3RseUNsb3NlZENvbW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRDb21tZW50KHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluQ29tbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJy0tISc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBET0NUWVBFIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVEb2N0eXBlKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0RPQ1RZUEVfTkFNRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfRE9DVFlQRV9OQU1FO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmVmb3JlRG9jdHlwZU5hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVEb2N0eXBlVG9rZW4obnVsbCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VCZWZvcmVEb2N0eXBlTmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9ET0NUWVBFX05BTUU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZWZvcmVEb2N0eXBlTmFtZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQmVmb3JlIERPQ1RZUEUgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQmVmb3JlRG9jdHlwZU5hbWUoY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlVcHBlcihjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbihTdHJpbmcuZnJvbUNoYXJDb2RlKHRvQXNjaWlMb3dlcihjcCkpKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX05BTUU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVEb2N0eXBlVG9rZW4oUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfTkFNRTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdEb2N0eXBlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbihudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbihudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVEb2N0eXBlVG9rZW4oU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfTkFNRTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgfVxuICAgIC8vIERPQ1RZUEUgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRG9jdHlwZU5hbWUoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9ET0NUWVBFX05BTUU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLm5hbWUgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLm5hbWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoaXNBc2NpaVVwcGVyKGNwKSA/IHRvQXNjaWlMb3dlcihjcCkgOiBjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQWZ0ZXIgRE9DVFlQRSBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBZnRlckRvY3R5cGVOYW1lKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgd2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9jb25zdW1lU2VxdWVuY2VJZk1hdGNoKCQkLlBVQkxJQywgZmFsc2UpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1BVQkxJQ19LRVlXT1JEO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLl9jb25zdW1lU2VxdWVuY2VJZk1hdGNoKCQkLlNZU1RFTSwgZmFsc2UpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1NZU1RFTV9LRVlXT1JEO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvL05PVEU6IHNlcXVlbmNlIGxvb2t1cCBjYW4gYmUgYWJydXB0ZWQgYnkgaGliZXJuYXRpb24uIEluIHRoYXQgY2FzZSBsb29rdXBcbiAgICAgICAgICAgICAgICAvL3Jlc3VsdHMgYXJlIG5vIGxvbmdlciB2YWxpZCBhbmQgd2Ugd2lsbCBuZWVkIHRvIHN0YXJ0IG92ZXIuXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoIXRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5pbnZhbGlkQ2hhcmFjdGVyU2VxdWVuY2VBZnRlckRvY3R5cGVOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfRE9DVFlQRTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBZnRlciBET0NUWVBFIHB1YmxpYyBrZXl3b3JkIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBZnRlckRvY3R5cGVQdWJsaWNLZXl3b3JkKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdXaGl0ZXNwYWNlQWZ0ZXJEb2N0eXBlUHVibGljS2V5d29yZCk7XG4gICAgICAgICAgICAgICAgdG9rZW4ucHVibGljSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkFQT1NUUk9QSEU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdXaGl0ZXNwYWNlQWZ0ZXJEb2N0eXBlUHVibGljS2V5d29yZCk7XG4gICAgICAgICAgICAgICAgdG9rZW4ucHVibGljSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nRG9jdHlwZVB1YmxpY0lkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nUXVvdGVCZWZvcmVEb2N0eXBlUHVibGljSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19ET0NUWVBFO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNEb2N0eXBlKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBCZWZvcmUgRE9DVFlQRSBwdWJsaWMgaWRlbnRpZmllciBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQmVmb3JlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXIoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIC8vIElnbm9yZSB3aGl0ZXNwYWNlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5wdWJsaWNJZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX0RPVUJMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRva2VuLnB1YmxpY0lkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ0RvY3R5cGVQdWJsaWNJZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1F1b3RlQmVmb3JlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfRE9DVFlQRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzRG9jdHlwZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gRE9DVFlQRSBwdWJsaWMgaWRlbnRpZmllciAoZG91YmxlLXF1b3RlZCkgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZURvY3R5cGVQdWJsaWNJZGVudGlmaWVyRG91YmxlUXVvdGVkKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5wdWJsaWNJZCArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmFicnVwdERvY3R5cGVQdWJsaWNJZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLnB1YmxpY0lkICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIChzaW5nbGUtcXVvdGVkKSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXJTaW5nbGVRdW90ZWQoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkFQT1NUUk9QSEU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQUZURVJfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdG9rZW4ucHVibGljSWQgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5hYnJ1cHREb2N0eXBlUHVibGljSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5wdWJsaWNJZCArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQWZ0ZXIgRE9DVFlQRSBwdWJsaWMgaWRlbnRpZmllciBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQWZ0ZXJEb2N0eXBlUHVibGljSWRlbnRpZmllcihjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFVFdFRU5fRE9DVFlQRV9QVUJMSUNfQU5EX1NZU1RFTV9JREVOVElGSUVSUztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VCZXR3ZWVuRG9jdHlwZVB1YmxpY0FuZFN5c3RlbUlkZW50aWZpZXJzKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VCZXR3ZWVuRG9jdHlwZVB1YmxpY0FuZFN5c3RlbUlkZW50aWZpZXJzKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NJTkdMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nUXVvdGVCZWZvcmVEb2N0eXBlU3lzdGVtSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19ET0NUWVBFO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNEb2N0eXBlKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBCZXR3ZWVuIERPQ1RZUEUgcHVibGljIGFuZCBzeXN0ZW0gaWRlbnRpZmllcnMgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUJldHdlZW5Eb2N0eXBlUHVibGljQW5kU3lzdGVtSWRlbnRpZmllcnMoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIC8vIElnbm9yZSB3aGl0ZXNwYWNlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0RPQ1RZUEU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEFmdGVyIERPQ1RZUEUgc3lzdGVtIGtleXdvcmQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUFmdGVyRG9jdHlwZVN5c3RlbUtleXdvcmQoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVTeXN0ZW1LZXl3b3JkKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVTeXN0ZW1LZXl3b3JkKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NJTkdMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdEb2N0eXBlU3lzdGVtSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0RPQ1RZUEU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEJlZm9yZSBET0NUWVBFIHN5c3RlbSBpZGVudGlmaWVyIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVCZWZvcmVEb2N0eXBlU3lzdGVtSWRlbnRpZmllcihjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nUXVvdGVCZWZvcmVEb2N0eXBlU3lzdGVtSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19ET0NUWVBFO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNEb2N0eXBlKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBET0NUWVBFIHN5c3RlbSBpZGVudGlmaWVyIChkb3VibGUtcXVvdGVkKSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXJEb3VibGVRdW90ZWQoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuYWJydXB0RG9jdHlwZVN5c3RlbUlkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIERPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgKHNpbmdsZS1xdW90ZWQpIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVEb2N0eXBlU3lzdGVtSWRlbnRpZmllclNpbmdsZVF1b3RlZChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmFicnVwdERvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBZnRlciBET0NUWVBFIHN5c3RlbSBpZGVudGlmaWVyIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBZnRlckRvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgd2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZENoYXJhY3RlckFmdGVyRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19ET0NUWVBFO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNEb2N0eXBlKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBCb2d1cyBET0NUWVBFIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVCb2d1c0RvY3R5cGUoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENEQVRBIHNlY3Rpb24gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNkYXRhU2VjdGlvbihjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuUklHSFRfU1FVQVJFX0JSQUNLRVQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ0RBVEFfU0VDVElPTl9CUkFDS0VUO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5DZGF0YSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ0RBVEEgc2VjdGlvbiBicmFja2V0IHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDZGF0YVNlY3Rpb25CcmFja2V0KGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5SSUdIVF9TUVVBUkVfQlJBQ0tFVCkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNEQVRBX1NFQ1RJT05fRU5EO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCddJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ0RBVEFfU0VDVElPTjtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlQ2RhdGFTZWN0aW9uKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDREFUQSBzZWN0aW9uIGVuZCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ2RhdGFTZWN0aW9uRW5kKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlJJR0hUX1NRVUFSRV9CUkFDS0VUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCddJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCddXScpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DREFUQV9TRUNUSU9OO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ2RhdGFTZWN0aW9uKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDaGFyYWN0ZXIgcmVmZXJlbmNlIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApIHtcbiAgICAgICAgaWYgKGNwID09PSAkLk5VTUJFUl9TSUdOKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuTlVNRVJJQ19DSEFSQUNURVJfUkVGRVJFTkNFO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzQXNjaWlBbHBoYU51bWVyaWMoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuTkFNRURfQ0hBUkFDVEVSX1JFRkVSRU5DRTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZmx1c2hDb2RlUG9pbnRDb25zdW1lZEFzQ2hhcmFjdGVyUmVmZXJlbmNlKCQuQU1QRVJTQU5EKTtcbiAgICAgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUodGhpcy5yZXR1cm5TdGF0ZSwgY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIE5hbWVkIGNoYXJhY3RlciByZWZlcmVuY2Ugc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZU5hbWVkQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKSB7XG4gICAgICAgIGNvbnN0IG1hdGNoUmVzdWx0ID0gdGhpcy5fbWF0Y2hOYW1lZENoYXJhY3RlclJlZmVyZW5jZShjcCk7XG4gICAgICAgIC8vTk9URTogTWF0Y2hpbmcgY2FuIGJlIGFicnVwdGVkIGJ5IGhpYmVybmF0aW9uLiBJbiB0aGF0IGNhc2UsIG1hdGNoXG4gICAgICAgIC8vcmVzdWx0cyBhcmUgbm8gbG9uZ2VyIHZhbGlkIGFuZCB3ZSB3aWxsIG5lZWQgdG8gc3RhcnQgb3Zlci5cbiAgICAgICAgaWYgKHRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCkpIHtcbiAgICAgICAgICAgIC8vIFN0YXkgaW4gdGhlIHN0YXRlLCB0cnkgYWdhaW4uXG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobWF0Y2hSZXN1bHQpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWF0Y2hSZXN1bHQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9mbHVzaENvZGVQb2ludENvbnN1bWVkQXNDaGFyYWN0ZXJSZWZlcmVuY2UobWF0Y2hSZXN1bHRbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IHRoaXMucmV0dXJuU3RhdGU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9mbHVzaENvZGVQb2ludENvbnN1bWVkQXNDaGFyYWN0ZXJSZWZlcmVuY2UoJC5BTVBFUlNBTkQpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFNQklHVU9VU19BTVBFUlNBTkQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQW1iaWd1b3MgYW1wZXJzYW5kIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBbWJpZ3VvdXNBbXBlcnNhbmQoY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlBbHBoYU51bWVyaWMoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9mbHVzaENvZGVQb2ludENvbnN1bWVkQXNDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGNwID09PSAkLlNFTUlDT0xPTikge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5rbm93bk5hbWVkQ2hhcmFjdGVyUmVmZXJlbmNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUodGhpcy5yZXR1cm5TdGF0ZSwgY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIE51bWVyaWMgY2hhcmFjdGVyIHJlZmVyZW5jZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlTnVtZXJpY0NoYXJhY3RlclJlZmVyZW5jZShjcCkge1xuICAgICAgICB0aGlzLmNoYXJSZWZDb2RlID0gMDtcbiAgICAgICAgaWYgKGNwID09PSAkLkxBVElOX1NNQUxMX1ggfHwgY3AgPT09ICQuTEFUSU5fQ0FQSVRBTF9YKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuSEVYQURFTUlDQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRV9TVEFSVDtcbiAgICAgICAgfVxuICAgICAgICAvLyBJbmxpbmVkIGRlY2ltYWwgY2hhcmFjdGVyIHJlZmVyZW5jZSBzdGFydCBzdGF0ZVxuICAgICAgICBlbHNlIGlmIChpc0FzY2lpRGlnaXQoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREVDSU1BTF9DSEFSQUNURVJfUkVGRVJFTkNFO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVEZWNpbWFsQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIuYWJzZW5jZU9mRGlnaXRzSW5OdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlKTtcbiAgICAgICAgICAgIHRoaXMuX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZSgkLkFNUEVSU0FORCk7XG4gICAgICAgICAgICB0aGlzLl9mbHVzaENvZGVQb2ludENvbnN1bWVkQXNDaGFyYWN0ZXJSZWZlcmVuY2UoJC5OVU1CRVJfU0lHTik7XG4gICAgICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKHRoaXMucmV0dXJuU3RhdGUsIGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBIZXhhZGVtaWNhbCBjaGFyYWN0ZXIgcmVmZXJlbmNlIHN0YXJ0IHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVIZXhhZGVtaWNhbENoYXJhY3RlclJlZmVyZW5jZVN0YXJ0KGNwKSB7XG4gICAgICAgIGlmIChpc0FzY2lpSGV4RGlnaXQoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuSEVYQURFTUlDQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlSGV4YWRlbWljYWxDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5hYnNlbmNlT2ZEaWdpdHNJbk51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICAgICAgdGhpcy5fZmx1c2hDb2RlUG9pbnRDb25zdW1lZEFzQ2hhcmFjdGVyUmVmZXJlbmNlKCQuQU1QRVJTQU5EKTtcbiAgICAgICAgICAgIHRoaXMuX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZSgkLk5VTUJFUl9TSUdOKTtcbiAgICAgICAgICAgIHRoaXMuX3VuY29uc3VtZSgyKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSB0aGlzLnJldHVyblN0YXRlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEhleGFkZW1pY2FsIGNoYXJhY3RlciByZWZlcmVuY2Ugc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUhleGFkZW1pY2FsQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKSB7XG4gICAgICAgIGlmIChpc0FzY2lpVXBwZXJIZXhEaWdpdChjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSB0aGlzLmNoYXJSZWZDb2RlICogMTYgKyBjcCAtIDB4Mzc7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNBc2NpaUxvd2VySGV4RGlnaXQoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLmNoYXJSZWZDb2RlID0gdGhpcy5jaGFyUmVmQ29kZSAqIDE2ICsgY3AgLSAweDU3O1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzQXNjaWlEaWdpdChjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSB0aGlzLmNoYXJSZWZDb2RlICogMTYgKyBjcCAtIDB4MzA7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoY3AgPT09ICQuU0VNSUNPTE9OKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuTlVNRVJJQ19DSEFSQUNURVJfUkVGRVJFTkNFX0VORDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1NlbWljb2xvbkFmdGVyQ2hhcmFjdGVyUmVmZXJlbmNlKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5OVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0VfRU5EO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVOdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlRW5kKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBEZWNpbWFsIGNoYXJhY3RlciByZWZlcmVuY2Ugc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZURlY2ltYWxDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlEaWdpdChjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSB0aGlzLmNoYXJSZWZDb2RlICogMTAgKyBjcCAtIDB4MzA7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoY3AgPT09ICQuU0VNSUNPTE9OKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuTlVNRVJJQ19DSEFSQUNURVJfUkVGRVJFTkNFX0VORDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1NlbWljb2xvbkFmdGVyQ2hhcmFjdGVyUmVmZXJlbmNlKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5OVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0VfRU5EO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVOdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlRW5kKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBOdW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2UgZW5kIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVOdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlRW5kKGNwKSB7XG4gICAgICAgIGlmICh0aGlzLmNoYXJSZWZDb2RlID09PSAkLk5VTEwpIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIubnVsbENoYXJhY3RlclJlZmVyZW5jZSk7XG4gICAgICAgICAgICB0aGlzLmNoYXJSZWZDb2RlID0gJC5SRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGhpcy5jaGFyUmVmQ29kZSA+IDExMTQxMTEpIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIuY2hhcmFjdGVyUmVmZXJlbmNlT3V0c2lkZVVuaWNvZGVSYW5nZSk7XG4gICAgICAgICAgICB0aGlzLmNoYXJSZWZDb2RlID0gJC5SRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNTdXJyb2dhdGUodGhpcy5jaGFyUmVmQ29kZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIuc3Vycm9nYXRlQ2hhcmFjdGVyUmVmZXJlbmNlKTtcbiAgICAgICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSAkLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc1VuZGVmaW5lZENvZGVQb2ludCh0aGlzLmNoYXJSZWZDb2RlKSkge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5ub25jaGFyYWN0ZXJDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzQ29udHJvbENvZGVQb2ludCh0aGlzLmNoYXJSZWZDb2RlKSB8fCB0aGlzLmNoYXJSZWZDb2RlID09PSAkLkNBUlJJQUdFX1JFVFVSTikge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5jb250cm9sQ2hhcmFjdGVyUmVmZXJlbmNlKTtcbiAgICAgICAgICAgIGNvbnN0IHJlcGxhY2VtZW50ID0gQzFfQ09OVFJPTFNfUkVGRVJFTkNFX1JFUExBQ0VNRU5UUy5nZXQodGhpcy5jaGFyUmVmQ29kZSk7XG4gICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSByZXBsYWNlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9mbHVzaENvZGVQb2ludENvbnN1bWVkQXNDaGFyYWN0ZXJSZWZlcmVuY2UodGhpcy5jaGFyUmVmQ29kZSk7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUodGhpcy5yZXR1cm5TdGF0ZSwgY3ApO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCIsICJpbXBvcnQgeyBUQUdfSUQgYXMgJCwgTlMsIGlzTnVtYmVyZWRIZWFkZXIgfSBmcm9tICcuLi9jb21tb24vaHRtbC5qcyc7XG4vL0VsZW1lbnQgdXRpbHNcbmNvbnN0IElNUExJQ0lUX0VORF9UQUdfUkVRVUlSRUQgPSBuZXcgU2V0KFskLkRELCAkLkRULCAkLkxJLCAkLk9QVEdST1VQLCAkLk9QVElPTiwgJC5QLCAkLlJCLCAkLlJQLCAkLlJULCAkLlJUQ10pO1xuY29uc3QgSU1QTElDSVRfRU5EX1RBR19SRVFVSVJFRF9USE9ST1VHSExZID0gbmV3IFNldChbXG4gICAgLi4uSU1QTElDSVRfRU5EX1RBR19SRVFVSVJFRCxcbiAgICAkLkNBUFRJT04sXG4gICAgJC5DT0xHUk9VUCxcbiAgICAkLlRCT0RZLFxuICAgICQuVEQsXG4gICAgJC5URk9PVCxcbiAgICAkLlRILFxuICAgICQuVEhFQUQsXG4gICAgJC5UUixcbl0pO1xuY29uc3QgU0NPUElOR19FTEVNRU5UX05TID0gbmV3IE1hcChbXG4gICAgWyQuQVBQTEVULCBOUy5IVE1MXSxcbiAgICBbJC5DQVBUSU9OLCBOUy5IVE1MXSxcbiAgICBbJC5IVE1MLCBOUy5IVE1MXSxcbiAgICBbJC5NQVJRVUVFLCBOUy5IVE1MXSxcbiAgICBbJC5PQkpFQ1QsIE5TLkhUTUxdLFxuICAgIFskLlRBQkxFLCBOUy5IVE1MXSxcbiAgICBbJC5URCwgTlMuSFRNTF0sXG4gICAgWyQuVEVNUExBVEUsIE5TLkhUTUxdLFxuICAgIFskLlRILCBOUy5IVE1MXSxcbiAgICBbJC5BTk5PVEFUSU9OX1hNTCwgTlMuTUFUSE1MXSxcbiAgICBbJC5NSSwgTlMuTUFUSE1MXSxcbiAgICBbJC5NTiwgTlMuTUFUSE1MXSxcbiAgICBbJC5NTywgTlMuTUFUSE1MXSxcbiAgICBbJC5NUywgTlMuTUFUSE1MXSxcbiAgICBbJC5NVEVYVCwgTlMuTUFUSE1MXSxcbiAgICBbJC5ERVNDLCBOUy5TVkddLFxuICAgIFskLkZPUkVJR05fT0JKRUNULCBOUy5TVkddLFxuICAgIFskLlRJVExFLCBOUy5TVkddLFxuXSk7XG5jb25zdCBOQU1FRF9IRUFERVJTID0gWyQuSDEsICQuSDIsICQuSDMsICQuSDQsICQuSDUsICQuSDZdO1xuY29uc3QgVEFCTEVfUk9XX0NPTlRFWFQgPSBbJC5UUiwgJC5URU1QTEFURSwgJC5IVE1MXTtcbmNvbnN0IFRBQkxFX0JPRFlfQ09OVEVYVCA9IFskLlRCT0RZLCAkLlRGT09ULCAkLlRIRUFELCAkLlRFTVBMQVRFLCAkLkhUTUxdO1xuY29uc3QgVEFCTEVfQ09OVEVYVCA9IFskLlRBQkxFLCAkLlRFTVBMQVRFLCAkLkhUTUxdO1xuY29uc3QgVEFCTEVfQ0VMTFMgPSBbJC5URCwgJC5USF07XG4vL1N0YWNrIG9mIG9wZW4gZWxlbWVudHNcbmV4cG9ydCBjbGFzcyBPcGVuRWxlbWVudFN0YWNrIHtcbiAgICBnZXQgY3VycmVudFRtcGxDb250ZW50T3JOb2RlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNJblRlbXBsYXRlKCkgPyB0aGlzLnRyZWVBZGFwdGVyLmdldFRlbXBsYXRlQ29udGVudCh0aGlzLmN1cnJlbnQpIDogdGhpcy5jdXJyZW50O1xuICAgIH1cbiAgICBjb25zdHJ1Y3Rvcihkb2N1bWVudCwgdHJlZUFkYXB0ZXIsIGhhbmRsZXIpIHtcbiAgICAgICAgdGhpcy50cmVlQWRhcHRlciA9IHRyZWVBZGFwdGVyO1xuICAgICAgICB0aGlzLmhhbmRsZXIgPSBoYW5kbGVyO1xuICAgICAgICB0aGlzLml0ZW1zID0gW107XG4gICAgICAgIHRoaXMudGFnSURzID0gW107XG4gICAgICAgIHRoaXMuc3RhY2tUb3AgPSAtMTtcbiAgICAgICAgdGhpcy50bXBsQ291bnQgPSAwO1xuICAgICAgICB0aGlzLmN1cnJlbnRUYWdJZCA9ICQuVU5LTk9XTjtcbiAgICAgICAgdGhpcy5jdXJyZW50ID0gZG9jdW1lbnQ7XG4gICAgfVxuICAgIC8vSW5kZXggb2YgZWxlbWVudFxuICAgIF9pbmRleE9mKGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXMubGFzdEluZGV4T2YoZWxlbWVudCwgdGhpcy5zdGFja1RvcCk7XG4gICAgfVxuICAgIC8vVXBkYXRlIGN1cnJlbnQgZWxlbWVudFxuICAgIF9pc0luVGVtcGxhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRUYWdJZCA9PT0gJC5URU1QTEFURSAmJiB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLmN1cnJlbnQpID09PSBOUy5IVE1MO1xuICAgIH1cbiAgICBfdXBkYXRlQ3VycmVudEVsZW1lbnQoKSB7XG4gICAgICAgIHRoaXMuY3VycmVudCA9IHRoaXMuaXRlbXNbdGhpcy5zdGFja1RvcF07XG4gICAgICAgIHRoaXMuY3VycmVudFRhZ0lkID0gdGhpcy50YWdJRHNbdGhpcy5zdGFja1RvcF07XG4gICAgfVxuICAgIC8vTXV0YXRpb25zXG4gICAgcHVzaChlbGVtZW50LCB0YWdJRCkge1xuICAgICAgICB0aGlzLnN0YWNrVG9wKys7XG4gICAgICAgIHRoaXMuaXRlbXNbdGhpcy5zdGFja1RvcF0gPSBlbGVtZW50O1xuICAgICAgICB0aGlzLmN1cnJlbnQgPSBlbGVtZW50O1xuICAgICAgICB0aGlzLnRhZ0lEc1t0aGlzLnN0YWNrVG9wXSA9IHRhZ0lEO1xuICAgICAgICB0aGlzLmN1cnJlbnRUYWdJZCA9IHRhZ0lEO1xuICAgICAgICBpZiAodGhpcy5faXNJblRlbXBsYXRlKCkpIHtcbiAgICAgICAgICAgIHRoaXMudG1wbENvdW50Kys7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oYW5kbGVyLm9uSXRlbVB1c2goZWxlbWVudCwgdGFnSUQsIHRydWUpO1xuICAgIH1cbiAgICBwb3AoKSB7XG4gICAgICAgIGNvbnN0IHBvcHBlZCA9IHRoaXMuY3VycmVudDtcbiAgICAgICAgaWYgKHRoaXMudG1wbENvdW50ID4gMCAmJiB0aGlzLl9pc0luVGVtcGxhdGUoKSkge1xuICAgICAgICAgICAgdGhpcy50bXBsQ291bnQtLTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0YWNrVG9wLS07XG4gICAgICAgIHRoaXMuX3VwZGF0ZUN1cnJlbnRFbGVtZW50KCk7XG4gICAgICAgIHRoaXMuaGFuZGxlci5vbkl0ZW1Qb3AocG9wcGVkLCB0cnVlKTtcbiAgICB9XG4gICAgcmVwbGFjZShvbGRFbGVtZW50LCBuZXdFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuX2luZGV4T2Yob2xkRWxlbWVudCk7XG4gICAgICAgIHRoaXMuaXRlbXNbaWR4XSA9IG5ld0VsZW1lbnQ7XG4gICAgICAgIGlmIChpZHggPT09IHRoaXMuc3RhY2tUb3ApIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudCA9IG5ld0VsZW1lbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaW5zZXJ0QWZ0ZXIocmVmZXJlbmNlRWxlbWVudCwgbmV3RWxlbWVudCwgbmV3RWxlbWVudElEKSB7XG4gICAgICAgIGNvbnN0IGluc2VydGlvbklkeCA9IHRoaXMuX2luZGV4T2YocmVmZXJlbmNlRWxlbWVudCkgKyAxO1xuICAgICAgICB0aGlzLml0ZW1zLnNwbGljZShpbnNlcnRpb25JZHgsIDAsIG5ld0VsZW1lbnQpO1xuICAgICAgICB0aGlzLnRhZ0lEcy5zcGxpY2UoaW5zZXJ0aW9uSWR4LCAwLCBuZXdFbGVtZW50SUQpO1xuICAgICAgICB0aGlzLnN0YWNrVG9wKys7XG4gICAgICAgIGlmIChpbnNlcnRpb25JZHggPT09IHRoaXMuc3RhY2tUb3ApIHtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUN1cnJlbnRFbGVtZW50KCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oYW5kbGVyLm9uSXRlbVB1c2godGhpcy5jdXJyZW50LCB0aGlzLmN1cnJlbnRUYWdJZCwgaW5zZXJ0aW9uSWR4ID09PSB0aGlzLnN0YWNrVG9wKTtcbiAgICB9XG4gICAgcG9wVW50aWxUYWdOYW1lUG9wcGVkKHRhZ05hbWUpIHtcbiAgICAgICAgbGV0IHRhcmdldElkeCA9IHRoaXMuc3RhY2tUb3AgKyAxO1xuICAgICAgICBkbyB7XG4gICAgICAgICAgICB0YXJnZXRJZHggPSB0aGlzLnRhZ0lEcy5sYXN0SW5kZXhPZih0YWdOYW1lLCB0YXJnZXRJZHggLSAxKTtcbiAgICAgICAgfSB3aGlsZSAodGFyZ2V0SWR4ID4gMCAmJiB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW3RhcmdldElkeF0pICE9PSBOUy5IVE1MKTtcbiAgICAgICAgdGhpcy5zaG9ydGVuVG9MZW5ndGgodGFyZ2V0SWR4IDwgMCA/IDAgOiB0YXJnZXRJZHgpO1xuICAgIH1cbiAgICBzaG9ydGVuVG9MZW5ndGgoaWR4KSB7XG4gICAgICAgIHdoaWxlICh0aGlzLnN0YWNrVG9wID49IGlkeCkge1xuICAgICAgICAgICAgY29uc3QgcG9wcGVkID0gdGhpcy5jdXJyZW50O1xuICAgICAgICAgICAgaWYgKHRoaXMudG1wbENvdW50ID4gMCAmJiB0aGlzLl9pc0luVGVtcGxhdGUoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMudG1wbENvdW50IC09IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN0YWNrVG9wLS07XG4gICAgICAgICAgICB0aGlzLl91cGRhdGVDdXJyZW50RWxlbWVudCgpO1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVyLm9uSXRlbVBvcChwb3BwZWQsIHRoaXMuc3RhY2tUb3AgPCBpZHgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHBvcFVudGlsRWxlbWVudFBvcHBlZChlbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuX2luZGV4T2YoZWxlbWVudCk7XG4gICAgICAgIHRoaXMuc2hvcnRlblRvTGVuZ3RoKGlkeCA8IDAgPyAwIDogaWR4KTtcbiAgICB9XG4gICAgcG9wVW50aWxQb3BwZWQodGFnTmFtZXMsIHRhcmdldE5TKSB7XG4gICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuX2luZGV4T2ZUYWdOYW1lcyh0YWdOYW1lcywgdGFyZ2V0TlMpO1xuICAgICAgICB0aGlzLnNob3J0ZW5Ub0xlbmd0aChpZHggPCAwID8gMCA6IGlkeCk7XG4gICAgfVxuICAgIHBvcFVudGlsTnVtYmVyZWRIZWFkZXJQb3BwZWQoKSB7XG4gICAgICAgIHRoaXMucG9wVW50aWxQb3BwZWQoTkFNRURfSEVBREVSUywgTlMuSFRNTCk7XG4gICAgfVxuICAgIHBvcFVudGlsVGFibGVDZWxsUG9wcGVkKCkge1xuICAgICAgICB0aGlzLnBvcFVudGlsUG9wcGVkKFRBQkxFX0NFTExTLCBOUy5IVE1MKTtcbiAgICB9XG4gICAgcG9wQWxsVXBUb0h0bWxFbGVtZW50KCkge1xuICAgICAgICAvL05PVEU6IGhlcmUgd2UgYXNzdW1lIHRoYXQgdGhlIHJvb3QgPGh0bWw+IGVsZW1lbnQgaXMgYWx3YXlzIGZpcnN0IGluIHRoZSBvcGVuIGVsZW1lbnQgc3RhY2ssIHNvXG4gICAgICAgIC8vd2UgcGVyZm9ybSB0aGlzIGZhc3Qgc3RhY2sgY2xlYW4gdXAuXG4gICAgICAgIHRoaXMudG1wbENvdW50ID0gMDtcbiAgICAgICAgdGhpcy5zaG9ydGVuVG9MZW5ndGgoMSk7XG4gICAgfVxuICAgIF9pbmRleE9mVGFnTmFtZXModGFnTmFtZXMsIG5hbWVzcGFjZSkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGlmICh0YWdOYW1lcy5pbmNsdWRlcyh0aGlzLnRhZ0lEc1tpXSkgJiYgdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5pdGVtc1tpXSkgPT09IG5hbWVzcGFjZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gICAgY2xlYXJCYWNrVG8odGFnTmFtZXMsIHRhcmdldE5TKSB7XG4gICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuX2luZGV4T2ZUYWdOYW1lcyh0YWdOYW1lcywgdGFyZ2V0TlMpO1xuICAgICAgICB0aGlzLnNob3J0ZW5Ub0xlbmd0aChpZHggKyAxKTtcbiAgICB9XG4gICAgY2xlYXJCYWNrVG9UYWJsZUNvbnRleHQoKSB7XG4gICAgICAgIHRoaXMuY2xlYXJCYWNrVG8oVEFCTEVfQ09OVEVYVCwgTlMuSFRNTCk7XG4gICAgfVxuICAgIGNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpIHtcbiAgICAgICAgdGhpcy5jbGVhckJhY2tUbyhUQUJMRV9CT0RZX0NPTlRFWFQsIE5TLkhUTUwpO1xuICAgIH1cbiAgICBjbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCgpIHtcbiAgICAgICAgdGhpcy5jbGVhckJhY2tUbyhUQUJMRV9ST1dfQ09OVEVYVCwgTlMuSFRNTCk7XG4gICAgfVxuICAgIHJlbW92ZShlbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuX2luZGV4T2YoZWxlbWVudCk7XG4gICAgICAgIGlmIChpZHggPj0gMCkge1xuICAgICAgICAgICAgaWYgKGlkeCA9PT0gdGhpcy5zdGFja1RvcCkge1xuICAgICAgICAgICAgICAgIHRoaXMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLnNwbGljZShpZHgsIDEpO1xuICAgICAgICAgICAgICAgIHRoaXMudGFnSURzLnNwbGljZShpZHgsIDEpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhY2tUb3AtLTtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVDdXJyZW50RWxlbWVudCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlci5vbkl0ZW1Qb3AoZWxlbWVudCwgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vU2VhcmNoXG4gICAgdHJ5UGVla1Byb3Blcmx5TmVzdGVkQm9keUVsZW1lbnQoKSB7XG4gICAgICAgIC8vUHJvcGVybHkgbmVzdGVkIDxib2R5PiBlbGVtZW50IChzaG91bGQgYmUgc2Vjb25kIGVsZW1lbnQgaW4gc3RhY2spLlxuICAgICAgICByZXR1cm4gdGhpcy5zdGFja1RvcCA+PSAxICYmIHRoaXMudGFnSURzWzFdID09PSAkLkJPRFkgPyB0aGlzLml0ZW1zWzFdIDogbnVsbDtcbiAgICB9XG4gICAgY29udGFpbnMoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5kZXhPZihlbGVtZW50KSA+IC0xO1xuICAgIH1cbiAgICBnZXRDb21tb25BbmNlc3RvcihlbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRJZHggPSB0aGlzLl9pbmRleE9mKGVsZW1lbnQpIC0gMTtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnRJZHggPj0gMCA/IHRoaXMuaXRlbXNbZWxlbWVudElkeF0gOiBudWxsO1xuICAgIH1cbiAgICBpc1Jvb3RIdG1sRWxlbWVudEN1cnJlbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YWNrVG9wID09PSAwICYmIHRoaXMudGFnSURzWzBdID09PSAkLkhUTUw7XG4gICAgfVxuICAgIC8vRWxlbWVudCBpbiBzY29wZVxuICAgIGhhc0luU2NvcGUodGFnTmFtZSkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IHRuID0gdGhpcy50YWdJRHNbaV07XG4gICAgICAgICAgICBjb25zdCBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pO1xuICAgICAgICAgICAgaWYgKHRuID09PSB0YWdOYW1lICYmIG5zID09PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoU0NPUElOR19FTEVNRU5UX05TLmdldCh0bikgPT09IG5zKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBoYXNOdW1iZXJlZEhlYWRlckluU2NvcGUoKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgY29uc3QgdG4gPSB0aGlzLnRhZ0lEc1tpXTtcbiAgICAgICAgICAgIGNvbnN0IG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5pdGVtc1tpXSk7XG4gICAgICAgICAgICBpZiAoaXNOdW1iZXJlZEhlYWRlcih0bikgJiYgbnMgPT09IE5TLkhUTUwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChTQ09QSU5HX0VMRU1FTlRfTlMuZ2V0KHRuKSA9PT0gbnMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGhhc0luTGlzdEl0ZW1TY29wZSh0YWdOYW1lKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgY29uc3QgdG4gPSB0aGlzLnRhZ0lEc1tpXTtcbiAgICAgICAgICAgIGNvbnN0IG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5pdGVtc1tpXSk7XG4gICAgICAgICAgICBpZiAodG4gPT09IHRhZ05hbWUgJiYgbnMgPT09IE5TLkhUTUwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgoKHRuID09PSAkLlVMIHx8IHRuID09PSAkLk9MKSAmJiBucyA9PT0gTlMuSFRNTCkgfHwgU0NPUElOR19FTEVNRU5UX05TLmdldCh0bikgPT09IG5zKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBoYXNJbkJ1dHRvblNjb3BlKHRhZ05hbWUpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCB0biA9IHRoaXMudGFnSURzW2ldO1xuICAgICAgICAgICAgY29uc3QgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTtcbiAgICAgICAgICAgIGlmICh0biA9PT0gdGFnTmFtZSAmJiBucyA9PT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCh0biA9PT0gJC5CVVRUT04gJiYgbnMgPT09IE5TLkhUTUwpIHx8IFNDT1BJTkdfRUxFTUVOVF9OUy5nZXQodG4pID09PSBucykge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaGFzSW5UYWJsZVNjb3BlKHRhZ05hbWUpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCB0biA9IHRoaXMudGFnSURzW2ldO1xuICAgICAgICAgICAgY29uc3QgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTtcbiAgICAgICAgICAgIGlmIChucyAhPT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRuID09PSB0YWdOYW1lKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodG4gPT09ICQuVEFCTEUgfHwgdG4gPT09ICQuVEVNUExBVEUgfHwgdG4gPT09ICQuSFRNTCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaGFzVGFibGVCb2R5Q29udGV4dEluVGFibGVTY29wZSgpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCB0biA9IHRoaXMudGFnSURzW2ldO1xuICAgICAgICAgICAgY29uc3QgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTtcbiAgICAgICAgICAgIGlmIChucyAhPT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRuID09PSAkLlRCT0RZIHx8IHRuID09PSAkLlRIRUFEIHx8IHRuID09PSAkLlRGT09UKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodG4gPT09ICQuVEFCTEUgfHwgdG4gPT09ICQuSFRNTCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaGFzSW5TZWxlY3RTY29wZSh0YWdOYW1lKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgY29uc3QgdG4gPSB0aGlzLnRhZ0lEc1tpXTtcbiAgICAgICAgICAgIGNvbnN0IG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5pdGVtc1tpXSk7XG4gICAgICAgICAgICBpZiAobnMgIT09IE5TLkhUTUwpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0biA9PT0gdGFnTmFtZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRuICE9PSAkLk9QVElPTiAmJiB0biAhPT0gJC5PUFRHUk9VUCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLy9JbXBsaWVkIGVuZCB0YWdzXG4gICAgZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpIHtcbiAgICAgICAgd2hpbGUgKElNUExJQ0lUX0VORF9UQUdfUkVRVUlSRUQuaGFzKHRoaXMuY3VycmVudFRhZ0lkKSkge1xuICAgICAgICAgICAgdGhpcy5wb3AoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZW5lcmF0ZUltcGxpZWRFbmRUYWdzVGhvcm91Z2hseSgpIHtcbiAgICAgICAgd2hpbGUgKElNUExJQ0lUX0VORF9UQUdfUkVRVUlSRURfVEhPUk9VR0hMWS5oYXModGhpcy5jdXJyZW50VGFnSWQpKSB7XG4gICAgICAgICAgICB0aGlzLnBvcCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdlbmVyYXRlSW1wbGllZEVuZFRhZ3NXaXRoRXhjbHVzaW9uKGV4Y2x1c2lvbklkKSB7XG4gICAgICAgIHdoaWxlICh0aGlzLmN1cnJlbnRUYWdJZCAhPT0gZXhjbHVzaW9uSWQgJiYgSU1QTElDSVRfRU5EX1RBR19SRVFVSVJFRF9USE9ST1VHSExZLmhhcyh0aGlzLmN1cnJlbnRUYWdJZCkpIHtcbiAgICAgICAgICAgIHRoaXMucG9wKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1vcGVuLWVsZW1lbnQtc3RhY2suanMubWFwIiwgIi8vQ29uc3RcbmNvbnN0IE5PQUhfQVJLX0NBUEFDSVRZID0gMztcbmV4cG9ydCB2YXIgRW50cnlUeXBlO1xuKGZ1bmN0aW9uIChFbnRyeVR5cGUpIHtcbiAgICBFbnRyeVR5cGVbRW50cnlUeXBlW1wiTWFya2VyXCJdID0gMF0gPSBcIk1hcmtlclwiO1xuICAgIEVudHJ5VHlwZVtFbnRyeVR5cGVbXCJFbGVtZW50XCJdID0gMV0gPSBcIkVsZW1lbnRcIjtcbn0pKEVudHJ5VHlwZSA9IEVudHJ5VHlwZSB8fCAoRW50cnlUeXBlID0ge30pKTtcbmNvbnN0IE1BUktFUiA9IHsgdHlwZTogRW50cnlUeXBlLk1hcmtlciB9O1xuLy9MaXN0IG9mIGZvcm1hdHRpbmcgZWxlbWVudHNcbmV4cG9ydCBjbGFzcyBGb3JtYXR0aW5nRWxlbWVudExpc3Qge1xuICAgIGNvbnN0cnVjdG9yKHRyZWVBZGFwdGVyKSB7XG4gICAgICAgIHRoaXMudHJlZUFkYXB0ZXIgPSB0cmVlQWRhcHRlcjtcbiAgICAgICAgdGhpcy5lbnRyaWVzID0gW107XG4gICAgICAgIHRoaXMuYm9va21hcmsgPSBudWxsO1xuICAgIH1cbiAgICAvL05vYWggQXJrJ3MgY29uZGl0aW9uXG4gICAgLy9PUFRJTUlaQVRJT046IGF0IGZpcnN0IHdlIHRyeSB0byBmaW5kIHBvc3NpYmxlIGNhbmRpZGF0ZXMgZm9yIGV4Y2x1c2lvbiB1c2luZ1xuICAgIC8vbGlnaHR3ZWlnaHQgaGV1cmlzdGljcyB3aXRob3V0IHRob3JvdWdoIGF0dHJpYnV0ZXMgY2hlY2suXG4gICAgX2dldE5vYWhBcmtDb25kaXRpb25DYW5kaWRhdGVzKG5ld0VsZW1lbnQsIG5lQXR0cnMpIHtcbiAgICAgICAgY29uc3QgY2FuZGlkYXRlcyA9IFtdO1xuICAgICAgICBjb25zdCBuZUF0dHJzTGVuZ3RoID0gbmVBdHRycy5sZW5ndGg7XG4gICAgICAgIGNvbnN0IG5lVGFnTmFtZSA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShuZXdFbGVtZW50KTtcbiAgICAgICAgY29uc3QgbmVOYW1lc3BhY2VVUkkgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShuZXdFbGVtZW50KTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmVudHJpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0gdGhpcy5lbnRyaWVzW2ldO1xuICAgICAgICAgICAgaWYgKGVudHJ5LnR5cGUgPT09IEVudHJ5VHlwZS5NYXJrZXIpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHsgZWxlbWVudCB9ID0gZW50cnk7XG4gICAgICAgICAgICBpZiAodGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVsZW1lbnQpID09PSBuZVRhZ05hbWUgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShlbGVtZW50KSA9PT0gbmVOYW1lc3BhY2VVUkkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50QXR0cnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEF0dHJMaXN0KGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50QXR0cnMubGVuZ3RoID09PSBuZUF0dHJzTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhbmRpZGF0ZXMucHVzaCh7IGlkeDogaSwgYXR0cnM6IGVsZW1lbnRBdHRycyB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNhbmRpZGF0ZXM7XG4gICAgfVxuICAgIF9lbnN1cmVOb2FoQXJrQ29uZGl0aW9uKG5ld0VsZW1lbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZW50cmllcy5sZW5ndGggPCBOT0FIX0FSS19DQVBBQ0lUWSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgbmVBdHRycyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0QXR0ckxpc3QobmV3RWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGNhbmRpZGF0ZXMgPSB0aGlzLl9nZXROb2FoQXJrQ29uZGl0aW9uQ2FuZGlkYXRlcyhuZXdFbGVtZW50LCBuZUF0dHJzKTtcbiAgICAgICAgaWYgKGNhbmRpZGF0ZXMubGVuZ3RoIDwgTk9BSF9BUktfQ0FQQUNJVFkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIC8vTk9URTogYnVpbGQgYXR0cnMgbWFwIGZvciB0aGUgbmV3IGVsZW1lbnQsIHNvIHdlIGNhbiBwZXJmb3JtIGZhc3QgbG9va3Vwc1xuICAgICAgICBjb25zdCBuZUF0dHJzTWFwID0gbmV3IE1hcChuZUF0dHJzLm1hcCgobmVBdHRyKSA9PiBbbmVBdHRyLm5hbWUsIG5lQXR0ci52YWx1ZV0pKTtcbiAgICAgICAgbGV0IHZhbGlkQ2FuZGlkYXRlcyA9IDA7XG4gICAgICAgIC8vTk9URTogcmVtb3ZlIGJvdHRvbW1vc3QgY2FuZGlkYXRlcywgdW50aWwgTm9haCdzIEFyayBjb25kaXRpb24gd2lsbCBub3QgYmUgbWV0XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2FuZGlkYXRlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgY2FuZGlkYXRlID0gY2FuZGlkYXRlc1tpXTtcbiAgICAgICAgICAgIC8vIFdlIGtub3cgdGhhdCBgY2FuZGlkYXRlLmF0dHJzLmxlbmd0aCA9PT0gbmVBdHRycy5sZW5ndGhgXG4gICAgICAgICAgICBpZiAoY2FuZGlkYXRlLmF0dHJzLmV2ZXJ5KChjQXR0cikgPT4gbmVBdHRyc01hcC5nZXQoY0F0dHIubmFtZSkgPT09IGNBdHRyLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHZhbGlkQ2FuZGlkYXRlcyArPSAxO1xuICAgICAgICAgICAgICAgIGlmICh2YWxpZENhbmRpZGF0ZXMgPj0gTk9BSF9BUktfQ0FQQUNJVFkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbnRyaWVzLnNwbGljZShjYW5kaWRhdGUuaWR4LCAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9NdXRhdGlvbnNcbiAgICBpbnNlcnRNYXJrZXIoKSB7XG4gICAgICAgIHRoaXMuZW50cmllcy51bnNoaWZ0KE1BUktFUik7XG4gICAgfVxuICAgIHB1c2hFbGVtZW50KGVsZW1lbnQsIHRva2VuKSB7XG4gICAgICAgIHRoaXMuX2Vuc3VyZU5vYWhBcmtDb25kaXRpb24oZWxlbWVudCk7XG4gICAgICAgIHRoaXMuZW50cmllcy51bnNoaWZ0KHtcbiAgICAgICAgICAgIHR5cGU6IEVudHJ5VHlwZS5FbGVtZW50LFxuICAgICAgICAgICAgZWxlbWVudCxcbiAgICAgICAgICAgIHRva2VuLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgaW5zZXJ0RWxlbWVudEFmdGVyQm9va21hcmsoZWxlbWVudCwgdG9rZW4pIHtcbiAgICAgICAgY29uc3QgYm9va21hcmtJZHggPSB0aGlzLmVudHJpZXMuaW5kZXhPZih0aGlzLmJvb2ttYXJrKTtcbiAgICAgICAgdGhpcy5lbnRyaWVzLnNwbGljZShib29rbWFya0lkeCwgMCwge1xuICAgICAgICAgICAgdHlwZTogRW50cnlUeXBlLkVsZW1lbnQsXG4gICAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZW1vdmVFbnRyeShlbnRyeSkge1xuICAgICAgICBjb25zdCBlbnRyeUluZGV4ID0gdGhpcy5lbnRyaWVzLmluZGV4T2YoZW50cnkpO1xuICAgICAgICBpZiAoZW50cnlJbmRleCA+PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmVudHJpZXMuc3BsaWNlKGVudHJ5SW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENsZWFycyB0aGUgbGlzdCBvZiBmb3JtYXR0aW5nIGVsZW1lbnRzIHVwIHRvIHRoZSBsYXN0IG1hcmtlci5cbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvcGFyc2luZy5odG1sI2NsZWFyLXRoZS1saXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzLXVwLXRvLXRoZS1sYXN0LW1hcmtlclxuICAgICAqL1xuICAgIGNsZWFyVG9MYXN0TWFya2VyKCkge1xuICAgICAgICBjb25zdCBtYXJrZXJJZHggPSB0aGlzLmVudHJpZXMuaW5kZXhPZihNQVJLRVIpO1xuICAgICAgICBpZiAobWFya2VySWR4ID49IDApIHtcbiAgICAgICAgICAgIHRoaXMuZW50cmllcy5zcGxpY2UoMCwgbWFya2VySWR4ICsgMSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVudHJpZXMubGVuZ3RoID0gMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvL1NlYXJjaFxuICAgIGdldEVsZW1lbnRFbnRyeUluU2NvcGVXaXRoVGFnTmFtZSh0YWdOYW1lKSB7XG4gICAgICAgIGNvbnN0IGVudHJ5ID0gdGhpcy5lbnRyaWVzLmZpbmQoKGVudHJ5KSA9PiBlbnRyeS50eXBlID09PSBFbnRyeVR5cGUuTWFya2VyIHx8IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbnRyeS5lbGVtZW50KSA9PT0gdGFnTmFtZSk7XG4gICAgICAgIHJldHVybiBlbnRyeSAmJiBlbnRyeS50eXBlID09PSBFbnRyeVR5cGUuRWxlbWVudCA/IGVudHJ5IDogbnVsbDtcbiAgICB9XG4gICAgZ2V0RWxlbWVudEVudHJ5KGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW50cmllcy5maW5kKChlbnRyeSkgPT4gZW50cnkudHlwZSA9PT0gRW50cnlUeXBlLkVsZW1lbnQgJiYgZW50cnkuZWxlbWVudCA9PT0gZWxlbWVudCk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Zm9ybWF0dGluZy1lbGVtZW50LWxpc3QuanMubWFwIiwgImltcG9ydCB7IERPQ1VNRU5UX01PREUgfSBmcm9tICcuLi9jb21tb24vaHRtbC5qcyc7XG5mdW5jdGlvbiBjcmVhdGVUZXh0Tm9kZSh2YWx1ZSkge1xuICAgIHJldHVybiB7XG4gICAgICAgIG5vZGVOYW1lOiAnI3RleHQnLFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgcGFyZW50Tm9kZTogbnVsbCxcbiAgICB9O1xufVxuZXhwb3J0IGNvbnN0IGRlZmF1bHRUcmVlQWRhcHRlciA9IHtcbiAgICAvL05vZGUgY29uc3RydWN0aW9uXG4gICAgY3JlYXRlRG9jdW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBub2RlTmFtZTogJyNkb2N1bWVudCcsXG4gICAgICAgICAgICBtb2RlOiBET0NVTUVOVF9NT0RFLk5PX1FVSVJLUyxcbiAgICAgICAgICAgIGNoaWxkTm9kZXM6IFtdLFxuICAgICAgICB9O1xuICAgIH0sXG4gICAgY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5vZGVOYW1lOiAnI2RvY3VtZW50LWZyYWdtZW50JyxcbiAgICAgICAgICAgIGNoaWxkTm9kZXM6IFtdLFxuICAgICAgICB9O1xuICAgIH0sXG4gICAgY3JlYXRlRWxlbWVudCh0YWdOYW1lLCBuYW1lc3BhY2VVUkksIGF0dHJzKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBub2RlTmFtZTogdGFnTmFtZSxcbiAgICAgICAgICAgIHRhZ05hbWUsXG4gICAgICAgICAgICBhdHRycyxcbiAgICAgICAgICAgIG5hbWVzcGFjZVVSSSxcbiAgICAgICAgICAgIGNoaWxkTm9kZXM6IFtdLFxuICAgICAgICAgICAgcGFyZW50Tm9kZTogbnVsbCxcbiAgICAgICAgfTtcbiAgICB9LFxuICAgIGNyZWF0ZUNvbW1lbnROb2RlKGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5vZGVOYW1lOiAnI2NvbW1lbnQnLFxuICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgIHBhcmVudE5vZGU6IG51bGwsXG4gICAgICAgIH07XG4gICAgfSxcbiAgICAvL1RyZWUgbXV0YXRpb25cbiAgICBhcHBlbmRDaGlsZChwYXJlbnROb2RlLCBuZXdOb2RlKSB7XG4gICAgICAgIHBhcmVudE5vZGUuY2hpbGROb2Rlcy5wdXNoKG5ld05vZGUpO1xuICAgICAgICBuZXdOb2RlLnBhcmVudE5vZGUgPSBwYXJlbnROb2RlO1xuICAgIH0sXG4gICAgaW5zZXJ0QmVmb3JlKHBhcmVudE5vZGUsIG5ld05vZGUsIHJlZmVyZW5jZU5vZGUpIHtcbiAgICAgICAgY29uc3QgaW5zZXJ0aW9uSWR4ID0gcGFyZW50Tm9kZS5jaGlsZE5vZGVzLmluZGV4T2YocmVmZXJlbmNlTm9kZSk7XG4gICAgICAgIHBhcmVudE5vZGUuY2hpbGROb2Rlcy5zcGxpY2UoaW5zZXJ0aW9uSWR4LCAwLCBuZXdOb2RlKTtcbiAgICAgICAgbmV3Tm9kZS5wYXJlbnROb2RlID0gcGFyZW50Tm9kZTtcbiAgICB9LFxuICAgIHNldFRlbXBsYXRlQ29udGVudCh0ZW1wbGF0ZUVsZW1lbnQsIGNvbnRlbnRFbGVtZW50KSB7XG4gICAgICAgIHRlbXBsYXRlRWxlbWVudC5jb250ZW50ID0gY29udGVudEVsZW1lbnQ7XG4gICAgfSxcbiAgICBnZXRUZW1wbGF0ZUNvbnRlbnQodGVtcGxhdGVFbGVtZW50KSB7XG4gICAgICAgIHJldHVybiB0ZW1wbGF0ZUVsZW1lbnQuY29udGVudDtcbiAgICB9LFxuICAgIHNldERvY3VtZW50VHlwZShkb2N1bWVudCwgbmFtZSwgcHVibGljSWQsIHN5c3RlbUlkKSB7XG4gICAgICAgIGNvbnN0IGRvY3R5cGVOb2RlID0gZG9jdW1lbnQuY2hpbGROb2Rlcy5maW5kKChub2RlKSA9PiBub2RlLm5vZGVOYW1lID09PSAnI2RvY3VtZW50VHlwZScpO1xuICAgICAgICBpZiAoZG9jdHlwZU5vZGUpIHtcbiAgICAgICAgICAgIGRvY3R5cGVOb2RlLm5hbWUgPSBuYW1lO1xuICAgICAgICAgICAgZG9jdHlwZU5vZGUucHVibGljSWQgPSBwdWJsaWNJZDtcbiAgICAgICAgICAgIGRvY3R5cGVOb2RlLnN5c3RlbUlkID0gc3lzdGVtSWQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0ge1xuICAgICAgICAgICAgICAgIG5vZGVOYW1lOiAnI2RvY3VtZW50VHlwZScsXG4gICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICBwdWJsaWNJZCxcbiAgICAgICAgICAgICAgICBzeXN0ZW1JZCxcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiBudWxsLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGRlZmF1bHRUcmVlQWRhcHRlci5hcHBlbmRDaGlsZChkb2N1bWVudCwgbm9kZSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHNldERvY3VtZW50TW9kZShkb2N1bWVudCwgbW9kZSkge1xuICAgICAgICBkb2N1bWVudC5tb2RlID0gbW9kZTtcbiAgICB9LFxuICAgIGdldERvY3VtZW50TW9kZShkb2N1bWVudCkge1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQubW9kZTtcbiAgICB9LFxuICAgIGRldGFjaE5vZGUobm9kZSkge1xuICAgICAgICBpZiAobm9kZS5wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICBjb25zdCBpZHggPSBub2RlLnBhcmVudE5vZGUuY2hpbGROb2Rlcy5pbmRleE9mKG5vZGUpO1xuICAgICAgICAgICAgbm9kZS5wYXJlbnROb2RlLmNoaWxkTm9kZXMuc3BsaWNlKGlkeCwgMSk7XG4gICAgICAgICAgICBub2RlLnBhcmVudE5vZGUgPSBudWxsO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBpbnNlcnRUZXh0KHBhcmVudE5vZGUsIHRleHQpIHtcbiAgICAgICAgaWYgKHBhcmVudE5vZGUuY2hpbGROb2Rlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBwcmV2Tm9kZSA9IHBhcmVudE5vZGUuY2hpbGROb2Rlc1twYXJlbnROb2RlLmNoaWxkTm9kZXMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICBpZiAoZGVmYXVsdFRyZWVBZGFwdGVyLmlzVGV4dE5vZGUocHJldk5vZGUpKSB7XG4gICAgICAgICAgICAgICAgcHJldk5vZGUudmFsdWUgKz0gdGV4dDtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdFRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKHBhcmVudE5vZGUsIGNyZWF0ZVRleHROb2RlKHRleHQpKTtcbiAgICB9LFxuICAgIGluc2VydFRleHRCZWZvcmUocGFyZW50Tm9kZSwgdGV4dCwgcmVmZXJlbmNlTm9kZSkge1xuICAgICAgICBjb25zdCBwcmV2Tm9kZSA9IHBhcmVudE5vZGUuY2hpbGROb2Rlc1twYXJlbnROb2RlLmNoaWxkTm9kZXMuaW5kZXhPZihyZWZlcmVuY2VOb2RlKSAtIDFdO1xuICAgICAgICBpZiAocHJldk5vZGUgJiYgZGVmYXVsdFRyZWVBZGFwdGVyLmlzVGV4dE5vZGUocHJldk5vZGUpKSB7XG4gICAgICAgICAgICBwcmV2Tm9kZS52YWx1ZSArPSB0ZXh0O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZGVmYXVsdFRyZWVBZGFwdGVyLmluc2VydEJlZm9yZShwYXJlbnROb2RlLCBjcmVhdGVUZXh0Tm9kZSh0ZXh0KSwgcmVmZXJlbmNlTm9kZSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGFkb3B0QXR0cmlidXRlcyhyZWNpcGllbnQsIGF0dHJzKSB7XG4gICAgICAgIGNvbnN0IHJlY2lwaWVudEF0dHJzTWFwID0gbmV3IFNldChyZWNpcGllbnQuYXR0cnMubWFwKChhdHRyKSA9PiBhdHRyLm5hbWUpKTtcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBhdHRycy5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgaWYgKCFyZWNpcGllbnRBdHRyc01hcC5oYXMoYXR0cnNbal0ubmFtZSkpIHtcbiAgICAgICAgICAgICAgICByZWNpcGllbnQuYXR0cnMucHVzaChhdHRyc1tqXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIC8vVHJlZSB0cmF2ZXJzaW5nXG4gICAgZ2V0Rmlyc3RDaGlsZChub2RlKSB7XG4gICAgICAgIHJldHVybiBub2RlLmNoaWxkTm9kZXNbMF07XG4gICAgfSxcbiAgICBnZXRDaGlsZE5vZGVzKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUuY2hpbGROb2RlcztcbiAgICB9LFxuICAgIGdldFBhcmVudE5vZGUobm9kZSkge1xuICAgICAgICByZXR1cm4gbm9kZS5wYXJlbnROb2RlO1xuICAgIH0sXG4gICAgZ2V0QXR0ckxpc3QoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gZWxlbWVudC5hdHRycztcbiAgICB9LFxuICAgIC8vTm9kZSBkYXRhXG4gICAgZ2V0VGFnTmFtZShlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50LnRhZ05hbWU7XG4gICAgfSxcbiAgICBnZXROYW1lc3BhY2VVUkkoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gZWxlbWVudC5uYW1lc3BhY2VVUkk7XG4gICAgfSxcbiAgICBnZXRUZXh0Tm9kZUNvbnRlbnQodGV4dE5vZGUpIHtcbiAgICAgICAgcmV0dXJuIHRleHROb2RlLnZhbHVlO1xuICAgIH0sXG4gICAgZ2V0Q29tbWVudE5vZGVDb250ZW50KGNvbW1lbnROb2RlKSB7XG4gICAgICAgIHJldHVybiBjb21tZW50Tm9kZS5kYXRhO1xuICAgIH0sXG4gICAgZ2V0RG9jdW1lbnRUeXBlTm9kZU5hbWUoZG9jdHlwZU5vZGUpIHtcbiAgICAgICAgcmV0dXJuIGRvY3R5cGVOb2RlLm5hbWU7XG4gICAgfSxcbiAgICBnZXREb2N1bWVudFR5cGVOb2RlUHVibGljSWQoZG9jdHlwZU5vZGUpIHtcbiAgICAgICAgcmV0dXJuIGRvY3R5cGVOb2RlLnB1YmxpY0lkO1xuICAgIH0sXG4gICAgZ2V0RG9jdW1lbnRUeXBlTm9kZVN5c3RlbUlkKGRvY3R5cGVOb2RlKSB7XG4gICAgICAgIHJldHVybiBkb2N0eXBlTm9kZS5zeXN0ZW1JZDtcbiAgICB9LFxuICAgIC8vTm9kZSB0eXBlc1xuICAgIGlzVGV4dE5vZGUobm9kZSkge1xuICAgICAgICByZXR1cm4gbm9kZS5ub2RlTmFtZSA9PT0gJyN0ZXh0JztcbiAgICB9LFxuICAgIGlzQ29tbWVudE5vZGUobm9kZSkge1xuICAgICAgICByZXR1cm4gbm9kZS5ub2RlTmFtZSA9PT0gJyNjb21tZW50JztcbiAgICB9LFxuICAgIGlzRG9jdW1lbnRUeXBlTm9kZShub2RlKSB7XG4gICAgICAgIHJldHVybiBub2RlLm5vZGVOYW1lID09PSAnI2RvY3VtZW50VHlwZSc7XG4gICAgfSxcbiAgICBpc0VsZW1lbnROb2RlKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChub2RlLCAndGFnTmFtZScpO1xuICAgIH0sXG4gICAgLy8gU291cmNlIGNvZGUgbG9jYXRpb25cbiAgICBzZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKG5vZGUsIGxvY2F0aW9uKSB7XG4gICAgICAgIG5vZGUuc291cmNlQ29kZUxvY2F0aW9uID0gbG9jYXRpb247XG4gICAgfSxcbiAgICBnZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUuc291cmNlQ29kZUxvY2F0aW9uO1xuICAgIH0sXG4gICAgdXBkYXRlTm9kZVNvdXJjZUNvZGVMb2NhdGlvbihub2RlLCBlbmRMb2NhdGlvbikge1xuICAgICAgICBub2RlLnNvdXJjZUNvZGVMb2NhdGlvbiA9IHsgLi4ubm9kZS5zb3VyY2VDb2RlTG9jYXRpb24sIC4uLmVuZExvY2F0aW9uIH07XG4gICAgfSxcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZWZhdWx0LmpzLm1hcCIsICJpbXBvcnQgeyBET0NVTUVOVF9NT0RFIH0gZnJvbSAnLi9odG1sLmpzJztcbi8vQ29uc3RcbmNvbnN0IFZBTElEX0RPQ1RZUEVfTkFNRSA9ICdodG1sJztcbmNvbnN0IFZBTElEX1NZU1RFTV9JRCA9ICdhYm91dDpsZWdhY3ktY29tcGF0JztcbmNvbnN0IFFVSVJLU19NT0RFX1NZU1RFTV9JRCA9ICdodHRwOi8vd3d3LmlibS5jb20vZGF0YS9kdGQvdjExL2libXhodG1sMS10cmFuc2l0aW9uYWwuZHRkJztcbmNvbnN0IFFVSVJLU19NT0RFX1BVQkxJQ19JRF9QUkVGSVhFUyA9IFtcbiAgICAnKy8vc2lsbWFyaWwvL2R0ZCBodG1sIHBybyB2MHIxMSAxOTk3MDEwMS8vJyxcbiAgICAnLS8vYXMvL2R0ZCBodG1sIDMuMCBhc3dlZGl0ICsgZXh0ZW5zaW9ucy8vJyxcbiAgICAnLS8vYWR2YXNvZnQgbHRkLy9kdGQgaHRtbCAzLjAgYXN3ZWRpdCArIGV4dGVuc2lvbnMvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDIuMCBsZXZlbCAxLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAyLjAgbGV2ZWwgMi8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMi4wIHN0cmljdCBsZXZlbCAxLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAyLjAgc3RyaWN0IGxldmVsIDIvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDIuMCBzdHJpY3QvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDIuMC8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMi4xZS8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMy4wLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAzLjIgZmluYWwvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDMuMi8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMy8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgbGV2ZWwgMC8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgbGV2ZWwgMS8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgbGV2ZWwgMi8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgbGV2ZWwgMy8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0IGxldmVsIDAvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIHN0cmljdCBsZXZlbCAxLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QgbGV2ZWwgMi8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0IGxldmVsIDMvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIHN0cmljdC8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwvLycsXG4gICAgJy0vL21ldHJpdXMvL2R0ZCBtZXRyaXVzIHByZXNlbnRhdGlvbmFsLy8nLFxuICAgICctLy9taWNyb3NvZnQvL2R0ZCBpbnRlcm5ldCBleHBsb3JlciAyLjAgaHRtbCBzdHJpY3QvLycsXG4gICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDIuMCBodG1sLy8nLFxuICAgICctLy9taWNyb3NvZnQvL2R0ZCBpbnRlcm5ldCBleHBsb3JlciAyLjAgdGFibGVzLy8nLFxuICAgICctLy9taWNyb3NvZnQvL2R0ZCBpbnRlcm5ldCBleHBsb3JlciAzLjAgaHRtbCBzdHJpY3QvLycsXG4gICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDMuMCBodG1sLy8nLFxuICAgICctLy9taWNyb3NvZnQvL2R0ZCBpbnRlcm5ldCBleHBsb3JlciAzLjAgdGFibGVzLy8nLFxuICAgICctLy9uZXRzY2FwZSBjb21tLiBjb3JwLi8vZHRkIGh0bWwvLycsXG4gICAgJy0vL25ldHNjYXBlIGNvbW0uIGNvcnAuLy9kdGQgc3RyaWN0IGh0bWwvLycsXG4gICAgXCItLy9vJ3JlaWxseSBhbmQgYXNzb2NpYXRlcy8vZHRkIGh0bWwgMi4wLy9cIixcbiAgICBcIi0vL28ncmVpbGx5IGFuZCBhc3NvY2lhdGVzLy9kdGQgaHRtbCBleHRlbmRlZCAxLjAvL1wiLFxuICAgIFwiLS8vbydyZWlsbHkgYW5kIGFzc29jaWF0ZXMvL2R0ZCBodG1sIGV4dGVuZGVkIHJlbGF4ZWQgMS4wLy9cIixcbiAgICAnLS8vc3EvL2R0ZCBodG1sIDIuMCBob3RtZXRhbCArIGV4dGVuc2lvbnMvLycsXG4gICAgJy0vL3NvZnRxdWFkIHNvZnR3YXJlLy9kdGQgaG90bWV0YWwgcHJvIDYuMDo6MTk5OTA2MDE6OmV4dGVuc2lvbnMgdG8gaHRtbCA0LjAvLycsXG4gICAgJy0vL3NvZnRxdWFkLy9kdGQgaG90bWV0YWwgcHJvIDQuMDo6MTk5NzEwMTA6OmV4dGVuc2lvbnMgdG8gaHRtbCA0LjAvLycsXG4gICAgJy0vL3NweWdsYXNzLy9kdGQgaHRtbCAyLjAgZXh0ZW5kZWQvLycsXG4gICAgJy0vL3N1biBtaWNyb3N5c3RlbXMgY29ycC4vL2R0ZCBob3RqYXZhIGh0bWwvLycsXG4gICAgJy0vL3N1biBtaWNyb3N5c3RlbXMgY29ycC4vL2R0ZCBob3RqYXZhIHN0cmljdCBodG1sLy8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDMgMTk5NS0wMy0yNC8vJyxcbiAgICAnLS8vdzNjLy9kdGQgaHRtbCAzLjIgZHJhZnQvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgMy4yIGZpbmFsLy8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDMuMi8vJyxcbiAgICAnLS8vdzNjLy9kdGQgaHRtbCAzLjJzIGRyYWZ0Ly8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDQuMCBmcmFtZXNldC8vJyxcbiAgICAnLS8vdzNjLy9kdGQgaHRtbCA0LjAgdHJhbnNpdGlvbmFsLy8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIGV4cGVyaW1lbnRhbCAxOTk2MDcxMi8vJyxcbiAgICAnLS8vdzNjLy9kdGQgaHRtbCBleHBlcmltZW50YWwgOTcwNDIxLy8nLFxuICAgICctLy93M2MvL2R0ZCB3MyBodG1sLy8nLFxuICAgICctLy93M28vL2R0ZCB3MyBodG1sIDMuMC8vJyxcbiAgICAnLS8vd2VidGVjaHMvL2R0ZCBtb3ppbGxhIGh0bWwgMi4wLy8nLFxuICAgICctLy93ZWJ0ZWNocy8vZHRkIG1vemlsbGEgaHRtbC8vJyxcbl07XG5jb25zdCBRVUlSS1NfTU9ERV9OT19TWVNURU1fSURfUFVCTElDX0lEX1BSRUZJWEVTID0gW1xuICAgIC4uLlFVSVJLU19NT0RFX1BVQkxJQ19JRF9QUkVGSVhFUyxcbiAgICAnLS8vdzNjLy9kdGQgaHRtbCA0LjAxIGZyYW1lc2V0Ly8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDQuMDEgdHJhbnNpdGlvbmFsLy8nLFxuXTtcbmNvbnN0IFFVSVJLU19NT0RFX1BVQkxJQ19JRFMgPSBuZXcgU2V0KFtcbiAgICAnLS8vdzNvLy9kdGQgdzMgaHRtbCBzdHJpY3QgMy4wLy9lbi8vJyxcbiAgICAnLS93M2MvZHRkIGh0bWwgNC4wIHRyYW5zaXRpb25hbC9lbicsXG4gICAgJ2h0bWwnLFxuXSk7XG5jb25zdCBMSU1JVEVEX1FVSVJLU19QVUJMSUNfSURfUFJFRklYRVMgPSBbJy0vL3czYy8vZHRkIHhodG1sIDEuMCBmcmFtZXNldC8vJywgJy0vL3czYy8vZHRkIHhodG1sIDEuMCB0cmFuc2l0aW9uYWwvLyddO1xuY29uc3QgTElNSVRFRF9RVUlSS1NfV0lUSF9TWVNURU1fSURfUFVCTElDX0lEX1BSRUZJWEVTID0gW1xuICAgIC4uLkxJTUlURURfUVVJUktTX1BVQkxJQ19JRF9QUkVGSVhFUyxcbiAgICAnLS8vdzNjLy9kdGQgaHRtbCA0LjAxIGZyYW1lc2V0Ly8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDQuMDEgdHJhbnNpdGlvbmFsLy8nLFxuXTtcbi8vVXRpbHNcbmZ1bmN0aW9uIGhhc1ByZWZpeChwdWJsaWNJZCwgcHJlZml4ZXMpIHtcbiAgICByZXR1cm4gcHJlZml4ZXMuc29tZSgocHJlZml4KSA9PiBwdWJsaWNJZC5zdGFydHNXaXRoKHByZWZpeCkpO1xufVxuLy9BUElcbmV4cG9ydCBmdW5jdGlvbiBpc0NvbmZvcm1pbmcodG9rZW4pIHtcbiAgICByZXR1cm4gKHRva2VuLm5hbWUgPT09IFZBTElEX0RPQ1RZUEVfTkFNRSAmJlxuICAgICAgICB0b2tlbi5wdWJsaWNJZCA9PT0gbnVsbCAmJlxuICAgICAgICAodG9rZW4uc3lzdGVtSWQgPT09IG51bGwgfHwgdG9rZW4uc3lzdGVtSWQgPT09IFZBTElEX1NZU1RFTV9JRCkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldERvY3VtZW50TW9kZSh0b2tlbikge1xuICAgIGlmICh0b2tlbi5uYW1lICE9PSBWQUxJRF9ET0NUWVBFX05BTUUpIHtcbiAgICAgICAgcmV0dXJuIERPQ1VNRU5UX01PREUuUVVJUktTO1xuICAgIH1cbiAgICBjb25zdCB7IHN5c3RlbUlkIH0gPSB0b2tlbjtcbiAgICBpZiAoc3lzdGVtSWQgJiYgc3lzdGVtSWQudG9Mb3dlckNhc2UoKSA9PT0gUVVJUktTX01PREVfU1lTVEVNX0lEKSB7XG4gICAgICAgIHJldHVybiBET0NVTUVOVF9NT0RFLlFVSVJLUztcbiAgICB9XG4gICAgbGV0IHsgcHVibGljSWQgfSA9IHRva2VuO1xuICAgIGlmIChwdWJsaWNJZCAhPT0gbnVsbCkge1xuICAgICAgICBwdWJsaWNJZCA9IHB1YmxpY0lkLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmIChRVUlSS1NfTU9ERV9QVUJMSUNfSURTLmhhcyhwdWJsaWNJZCkpIHtcbiAgICAgICAgICAgIHJldHVybiBET0NVTUVOVF9NT0RFLlFVSVJLUztcbiAgICAgICAgfVxuICAgICAgICBsZXQgcHJlZml4ZXMgPSBzeXN0ZW1JZCA9PT0gbnVsbCA/IFFVSVJLU19NT0RFX05PX1NZU1RFTV9JRF9QVUJMSUNfSURfUFJFRklYRVMgOiBRVUlSS1NfTU9ERV9QVUJMSUNfSURfUFJFRklYRVM7XG4gICAgICAgIGlmIChoYXNQcmVmaXgocHVibGljSWQsIHByZWZpeGVzKSkge1xuICAgICAgICAgICAgcmV0dXJuIERPQ1VNRU5UX01PREUuUVVJUktTO1xuICAgICAgICB9XG4gICAgICAgIHByZWZpeGVzID1cbiAgICAgICAgICAgIHN5c3RlbUlkID09PSBudWxsID8gTElNSVRFRF9RVUlSS1NfUFVCTElDX0lEX1BSRUZJWEVTIDogTElNSVRFRF9RVUlSS1NfV0lUSF9TWVNURU1fSURfUFVCTElDX0lEX1BSRUZJWEVTO1xuICAgICAgICBpZiAoaGFzUHJlZml4KHB1YmxpY0lkLCBwcmVmaXhlcykpIHtcbiAgICAgICAgICAgIHJldHVybiBET0NVTUVOVF9NT0RFLkxJTUlURURfUVVJUktTO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBET0NVTUVOVF9NT0RFLk5PX1FVSVJLUztcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRvY3R5cGUuanMubWFwIiwgImltcG9ydCB7IFRBR19JRCBhcyAkLCBOUywgQVRUUlMsIGdldFRhZ0lEIH0gZnJvbSAnLi9odG1sLmpzJztcbi8vTUlNRSB0eXBlc1xuY29uc3QgTUlNRV9UWVBFUyA9IHtcbiAgICBURVhUX0hUTUw6ICd0ZXh0L2h0bWwnLFxuICAgIEFQUExJQ0FUSU9OX1hNTDogJ2FwcGxpY2F0aW9uL3hodG1sK3htbCcsXG59O1xuLy9BdHRyaWJ1dGVzXG5jb25zdCBERUZJTklUSU9OX1VSTF9BVFRSID0gJ2RlZmluaXRpb251cmwnO1xuY29uc3QgQURKVVNURURfREVGSU5JVElPTl9VUkxfQVRUUiA9ICdkZWZpbml0aW9uVVJMJztcbmNvbnN0IFNWR19BVFRSU19BREpVU1RNRU5UX01BUCA9IG5ldyBNYXAoW1xuICAgICdhdHRyaWJ1dGVOYW1lJyxcbiAgICAnYXR0cmlidXRlVHlwZScsXG4gICAgJ2Jhc2VGcmVxdWVuY3knLFxuICAgICdiYXNlUHJvZmlsZScsXG4gICAgJ2NhbGNNb2RlJyxcbiAgICAnY2xpcFBhdGhVbml0cycsXG4gICAgJ2RpZmZ1c2VDb25zdGFudCcsXG4gICAgJ2VkZ2VNb2RlJyxcbiAgICAnZmlsdGVyVW5pdHMnLFxuICAgICdnbHlwaFJlZicsXG4gICAgJ2dyYWRpZW50VHJhbnNmb3JtJyxcbiAgICAnZ3JhZGllbnRVbml0cycsXG4gICAgJ2tlcm5lbE1hdHJpeCcsXG4gICAgJ2tlcm5lbFVuaXRMZW5ndGgnLFxuICAgICdrZXlQb2ludHMnLFxuICAgICdrZXlTcGxpbmVzJyxcbiAgICAna2V5VGltZXMnLFxuICAgICdsZW5ndGhBZGp1c3QnLFxuICAgICdsaW1pdGluZ0NvbmVBbmdsZScsXG4gICAgJ21hcmtlckhlaWdodCcsXG4gICAgJ21hcmtlclVuaXRzJyxcbiAgICAnbWFya2VyV2lkdGgnLFxuICAgICdtYXNrQ29udGVudFVuaXRzJyxcbiAgICAnbWFza1VuaXRzJyxcbiAgICAnbnVtT2N0YXZlcycsXG4gICAgJ3BhdGhMZW5ndGgnLFxuICAgICdwYXR0ZXJuQ29udGVudFVuaXRzJyxcbiAgICAncGF0dGVyblRyYW5zZm9ybScsXG4gICAgJ3BhdHRlcm5Vbml0cycsXG4gICAgJ3BvaW50c0F0WCcsXG4gICAgJ3BvaW50c0F0WScsXG4gICAgJ3BvaW50c0F0WicsXG4gICAgJ3ByZXNlcnZlQWxwaGEnLFxuICAgICdwcmVzZXJ2ZUFzcGVjdFJhdGlvJyxcbiAgICAncHJpbWl0aXZlVW5pdHMnLFxuICAgICdyZWZYJyxcbiAgICAncmVmWScsXG4gICAgJ3JlcGVhdENvdW50JyxcbiAgICAncmVwZWF0RHVyJyxcbiAgICAncmVxdWlyZWRFeHRlbnNpb25zJyxcbiAgICAncmVxdWlyZWRGZWF0dXJlcycsXG4gICAgJ3NwZWN1bGFyQ29uc3RhbnQnLFxuICAgICdzcGVjdWxhckV4cG9uZW50JyxcbiAgICAnc3ByZWFkTWV0aG9kJyxcbiAgICAnc3RhcnRPZmZzZXQnLFxuICAgICdzdGREZXZpYXRpb24nLFxuICAgICdzdGl0Y2hUaWxlcycsXG4gICAgJ3N1cmZhY2VTY2FsZScsXG4gICAgJ3N5c3RlbUxhbmd1YWdlJyxcbiAgICAndGFibGVWYWx1ZXMnLFxuICAgICd0YXJnZXRYJyxcbiAgICAndGFyZ2V0WScsXG4gICAgJ3RleHRMZW5ndGgnLFxuICAgICd2aWV3Qm94JyxcbiAgICAndmlld1RhcmdldCcsXG4gICAgJ3hDaGFubmVsU2VsZWN0b3InLFxuICAgICd5Q2hhbm5lbFNlbGVjdG9yJyxcbiAgICAnem9vbUFuZFBhbicsXG5dLm1hcCgoYXR0cikgPT4gW2F0dHIudG9Mb3dlckNhc2UoKSwgYXR0cl0pKTtcbmNvbnN0IFhNTF9BVFRSU19BREpVU1RNRU5UX01BUCA9IG5ldyBNYXAoW1xuICAgIFsneGxpbms6YWN0dWF0ZScsIHsgcHJlZml4OiAneGxpbmsnLCBuYW1lOiAnYWN0dWF0ZScsIG5hbWVzcGFjZTogTlMuWExJTksgfV0sXG4gICAgWyd4bGluazphcmNyb2xlJywgeyBwcmVmaXg6ICd4bGluaycsIG5hbWU6ICdhcmNyb2xlJywgbmFtZXNwYWNlOiBOUy5YTElOSyB9XSxcbiAgICBbJ3hsaW5rOmhyZWYnLCB7IHByZWZpeDogJ3hsaW5rJywgbmFtZTogJ2hyZWYnLCBuYW1lc3BhY2U6IE5TLlhMSU5LIH1dLFxuICAgIFsneGxpbms6cm9sZScsIHsgcHJlZml4OiAneGxpbmsnLCBuYW1lOiAncm9sZScsIG5hbWVzcGFjZTogTlMuWExJTksgfV0sXG4gICAgWyd4bGluazpzaG93JywgeyBwcmVmaXg6ICd4bGluaycsIG5hbWU6ICdzaG93JywgbmFtZXNwYWNlOiBOUy5YTElOSyB9XSxcbiAgICBbJ3hsaW5rOnRpdGxlJywgeyBwcmVmaXg6ICd4bGluaycsIG5hbWU6ICd0aXRsZScsIG5hbWVzcGFjZTogTlMuWExJTksgfV0sXG4gICAgWyd4bGluazp0eXBlJywgeyBwcmVmaXg6ICd4bGluaycsIG5hbWU6ICd0eXBlJywgbmFtZXNwYWNlOiBOUy5YTElOSyB9XSxcbiAgICBbJ3htbDpiYXNlJywgeyBwcmVmaXg6ICd4bWwnLCBuYW1lOiAnYmFzZScsIG5hbWVzcGFjZTogTlMuWE1MIH1dLFxuICAgIFsneG1sOmxhbmcnLCB7IHByZWZpeDogJ3htbCcsIG5hbWU6ICdsYW5nJywgbmFtZXNwYWNlOiBOUy5YTUwgfV0sXG4gICAgWyd4bWw6c3BhY2UnLCB7IHByZWZpeDogJ3htbCcsIG5hbWU6ICdzcGFjZScsIG5hbWVzcGFjZTogTlMuWE1MIH1dLFxuICAgIFsneG1sbnMnLCB7IHByZWZpeDogJycsIG5hbWU6ICd4bWxucycsIG5hbWVzcGFjZTogTlMuWE1MTlMgfV0sXG4gICAgWyd4bWxuczp4bGluaycsIHsgcHJlZml4OiAneG1sbnMnLCBuYW1lOiAneGxpbmsnLCBuYW1lc3BhY2U6IE5TLlhNTE5TIH1dLFxuXSk7XG4vL1NWRyB0YWcgbmFtZXMgYWRqdXN0bWVudCBtYXBcbmV4cG9ydCBjb25zdCBTVkdfVEFHX05BTUVTX0FESlVTVE1FTlRfTUFQID0gbmV3IE1hcChbXG4gICAgJ2FsdEdseXBoJyxcbiAgICAnYWx0R2x5cGhEZWYnLFxuICAgICdhbHRHbHlwaEl0ZW0nLFxuICAgICdhbmltYXRlQ29sb3InLFxuICAgICdhbmltYXRlTW90aW9uJyxcbiAgICAnYW5pbWF0ZVRyYW5zZm9ybScsXG4gICAgJ2NsaXBQYXRoJyxcbiAgICAnZmVCbGVuZCcsXG4gICAgJ2ZlQ29sb3JNYXRyaXgnLFxuICAgICdmZUNvbXBvbmVudFRyYW5zZmVyJyxcbiAgICAnZmVDb21wb3NpdGUnLFxuICAgICdmZUNvbnZvbHZlTWF0cml4JyxcbiAgICAnZmVEaWZmdXNlTGlnaHRpbmcnLFxuICAgICdmZURpc3BsYWNlbWVudE1hcCcsXG4gICAgJ2ZlRGlzdGFudExpZ2h0JyxcbiAgICAnZmVGbG9vZCcsXG4gICAgJ2ZlRnVuY0EnLFxuICAgICdmZUZ1bmNCJyxcbiAgICAnZmVGdW5jRycsXG4gICAgJ2ZlRnVuY1InLFxuICAgICdmZUdhdXNzaWFuQmx1cicsXG4gICAgJ2ZlSW1hZ2UnLFxuICAgICdmZU1lcmdlJyxcbiAgICAnZmVNZXJnZU5vZGUnLFxuICAgICdmZU1vcnBob2xvZ3knLFxuICAgICdmZU9mZnNldCcsXG4gICAgJ2ZlUG9pbnRMaWdodCcsXG4gICAgJ2ZlU3BlY3VsYXJMaWdodGluZycsXG4gICAgJ2ZlU3BvdExpZ2h0JyxcbiAgICAnZmVUaWxlJyxcbiAgICAnZmVUdXJidWxlbmNlJyxcbiAgICAnZm9yZWlnbk9iamVjdCcsXG4gICAgJ2dseXBoUmVmJyxcbiAgICAnbGluZWFyR3JhZGllbnQnLFxuICAgICdyYWRpYWxHcmFkaWVudCcsXG4gICAgJ3RleHRQYXRoJyxcbl0ubWFwKCh0bikgPT4gW3RuLnRvTG93ZXJDYXNlKCksIHRuXSkpO1xuLy9UYWdzIHRoYXQgY2F1c2VzIGV4aXQgZnJvbSBmb3JlaWduIGNvbnRlbnRcbmNvbnN0IEVYSVRTX0ZPUkVJR05fQ09OVEVOVCA9IG5ldyBTZXQoW1xuICAgICQuQixcbiAgICAkLkJJRyxcbiAgICAkLkJMT0NLUVVPVEUsXG4gICAgJC5CT0RZLFxuICAgICQuQlIsXG4gICAgJC5DRU5URVIsXG4gICAgJC5DT0RFLFxuICAgICQuREQsXG4gICAgJC5ESVYsXG4gICAgJC5ETCxcbiAgICAkLkRULFxuICAgICQuRU0sXG4gICAgJC5FTUJFRCxcbiAgICAkLkgxLFxuICAgICQuSDIsXG4gICAgJC5IMyxcbiAgICAkLkg0LFxuICAgICQuSDUsXG4gICAgJC5INixcbiAgICAkLkhFQUQsXG4gICAgJC5IUixcbiAgICAkLkksXG4gICAgJC5JTUcsXG4gICAgJC5MSSxcbiAgICAkLkxJU1RJTkcsXG4gICAgJC5NRU5VLFxuICAgICQuTUVUQSxcbiAgICAkLk5PQlIsXG4gICAgJC5PTCxcbiAgICAkLlAsXG4gICAgJC5QUkUsXG4gICAgJC5SVUJZLFxuICAgICQuUyxcbiAgICAkLlNNQUxMLFxuICAgICQuU1BBTixcbiAgICAkLlNUUk9ORyxcbiAgICAkLlNUUklLRSxcbiAgICAkLlNVQixcbiAgICAkLlNVUCxcbiAgICAkLlRBQkxFLFxuICAgICQuVFQsXG4gICAgJC5VLFxuICAgICQuVUwsXG4gICAgJC5WQVIsXG5dKTtcbi8vQ2hlY2sgZXhpdCBmcm9tIGZvcmVpZ24gY29udGVudFxuZXhwb3J0IGZ1bmN0aW9uIGNhdXNlc0V4aXQoc3RhcnRUYWdUb2tlbikge1xuICAgIGNvbnN0IHRuID0gc3RhcnRUYWdUb2tlbi50YWdJRDtcbiAgICBjb25zdCBpc0ZvbnRXaXRoQXR0cnMgPSB0biA9PT0gJC5GT05UICYmXG4gICAgICAgIHN0YXJ0VGFnVG9rZW4uYXR0cnMuc29tZSgoeyBuYW1lIH0pID0+IG5hbWUgPT09IEFUVFJTLkNPTE9SIHx8IG5hbWUgPT09IEFUVFJTLlNJWkUgfHwgbmFtZSA9PT0gQVRUUlMuRkFDRSk7XG4gICAgcmV0dXJuIGlzRm9udFdpdGhBdHRycyB8fCBFWElUU19GT1JFSUdOX0NPTlRFTlQuaGFzKHRuKTtcbn1cbi8vVG9rZW4gYWRqdXN0bWVudHNcbmV4cG9ydCBmdW5jdGlvbiBhZGp1c3RUb2tlbk1hdGhNTEF0dHJzKHRva2VuKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0b2tlbi5hdHRycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAodG9rZW4uYXR0cnNbaV0ubmFtZSA9PT0gREVGSU5JVElPTl9VUkxfQVRUUikge1xuICAgICAgICAgICAgdG9rZW4uYXR0cnNbaV0ubmFtZSA9IEFESlVTVEVEX0RFRklOSVRJT05fVVJMX0FUVFI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBhZGp1c3RUb2tlblNWR0F0dHJzKHRva2VuKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0b2tlbi5hdHRycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBhZGp1c3RlZEF0dHJOYW1lID0gU1ZHX0FUVFJTX0FESlVTVE1FTlRfTUFQLmdldCh0b2tlbi5hdHRyc1tpXS5uYW1lKTtcbiAgICAgICAgaWYgKGFkanVzdGVkQXR0ck5hbWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgdG9rZW4uYXR0cnNbaV0ubmFtZSA9IGFkanVzdGVkQXR0ck5hbWU7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gYWRqdXN0VG9rZW5YTUxBdHRycyh0b2tlbikge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW4uYXR0cnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgYWRqdXN0ZWRBdHRyRW50cnkgPSBYTUxfQVRUUlNfQURKVVNUTUVOVF9NQVAuZ2V0KHRva2VuLmF0dHJzW2ldLm5hbWUpO1xuICAgICAgICBpZiAoYWRqdXN0ZWRBdHRyRW50cnkpIHtcbiAgICAgICAgICAgIHRva2VuLmF0dHJzW2ldLnByZWZpeCA9IGFkanVzdGVkQXR0ckVudHJ5LnByZWZpeDtcbiAgICAgICAgICAgIHRva2VuLmF0dHJzW2ldLm5hbWUgPSBhZGp1c3RlZEF0dHJFbnRyeS5uYW1lO1xuICAgICAgICAgICAgdG9rZW4uYXR0cnNbaV0ubmFtZXNwYWNlID0gYWRqdXN0ZWRBdHRyRW50cnkubmFtZXNwYWNlO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIGFkanVzdFRva2VuU1ZHVGFnTmFtZSh0b2tlbikge1xuICAgIGNvbnN0IGFkanVzdGVkVGFnTmFtZSA9IFNWR19UQUdfTkFNRVNfQURKVVNUTUVOVF9NQVAuZ2V0KHRva2VuLnRhZ05hbWUpO1xuICAgIGlmIChhZGp1c3RlZFRhZ05hbWUgIT0gbnVsbCkge1xuICAgICAgICB0b2tlbi50YWdOYW1lID0gYWRqdXN0ZWRUYWdOYW1lO1xuICAgICAgICB0b2tlbi50YWdJRCA9IGdldFRhZ0lEKHRva2VuLnRhZ05hbWUpO1xuICAgIH1cbn1cbi8vSW50ZWdyYXRpb24gcG9pbnRzXG5mdW5jdGlvbiBpc01hdGhNTFRleHRJbnRlZ3JhdGlvblBvaW50KHRuLCBucykge1xuICAgIHJldHVybiBucyA9PT0gTlMuTUFUSE1MICYmICh0biA9PT0gJC5NSSB8fCB0biA9PT0gJC5NTyB8fCB0biA9PT0gJC5NTiB8fCB0biA9PT0gJC5NUyB8fCB0biA9PT0gJC5NVEVYVCk7XG59XG5mdW5jdGlvbiBpc0h0bWxJbnRlZ3JhdGlvblBvaW50KHRuLCBucywgYXR0cnMpIHtcbiAgICBpZiAobnMgPT09IE5TLk1BVEhNTCAmJiB0biA9PT0gJC5BTk5PVEFUSU9OX1hNTCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGF0dHJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoYXR0cnNbaV0ubmFtZSA9PT0gQVRUUlMuRU5DT0RJTkcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGF0dHJzW2ldLnZhbHVlLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlID09PSBNSU1FX1RZUEVTLlRFWFRfSFRNTCB8fCB2YWx1ZSA9PT0gTUlNRV9UWVBFUy5BUFBMSUNBVElPTl9YTUw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5zID09PSBOUy5TVkcgJiYgKHRuID09PSAkLkZPUkVJR05fT0JKRUNUIHx8IHRuID09PSAkLkRFU0MgfHwgdG4gPT09ICQuVElUTEUpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzSW50ZWdyYXRpb25Qb2ludCh0biwgbnMsIGF0dHJzLCBmb3JlaWduTlMpIHtcbiAgICByZXR1cm4gKCgoIWZvcmVpZ25OUyB8fCBmb3JlaWduTlMgPT09IE5TLkhUTUwpICYmIGlzSHRtbEludGVncmF0aW9uUG9pbnQodG4sIG5zLCBhdHRycykpIHx8XG4gICAgICAgICgoIWZvcmVpZ25OUyB8fCBmb3JlaWduTlMgPT09IE5TLk1BVEhNTCkgJiYgaXNNYXRoTUxUZXh0SW50ZWdyYXRpb25Qb2ludCh0biwgbnMpKSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1mb3JlaWduLWNvbnRlbnQuanMubWFwIiwgImltcG9ydCB7IFRva2VuaXplciwgVG9rZW5pemVyTW9kZSB9IGZyb20gJy4uL3Rva2VuaXplci9pbmRleC5qcyc7XG5pbXBvcnQgeyBPcGVuRWxlbWVudFN0YWNrIH0gZnJvbSAnLi9vcGVuLWVsZW1lbnQtc3RhY2suanMnO1xuaW1wb3J0IHsgRm9ybWF0dGluZ0VsZW1lbnRMaXN0LCBFbnRyeVR5cGUgfSBmcm9tICcuL2Zvcm1hdHRpbmctZWxlbWVudC1saXN0LmpzJztcbmltcG9ydCB7IGRlZmF1bHRUcmVlQWRhcHRlciB9IGZyb20gJy4uL3RyZWUtYWRhcHRlcnMvZGVmYXVsdC5qcyc7XG5pbXBvcnQgKiBhcyBkb2N0eXBlIGZyb20gJy4uL2NvbW1vbi9kb2N0eXBlLmpzJztcbmltcG9ydCAqIGFzIGZvcmVpZ25Db250ZW50IGZyb20gJy4uL2NvbW1vbi9mb3JlaWduLWNvbnRlbnQuanMnO1xuaW1wb3J0IHsgRVJSIH0gZnJvbSAnLi4vY29tbW9uL2Vycm9yLWNvZGVzLmpzJztcbmltcG9ydCAqIGFzIHVuaWNvZGUgZnJvbSAnLi4vY29tbW9uL3VuaWNvZGUuanMnO1xuaW1wb3J0IHsgVEFHX0lEIGFzICQsIFRBR19OQU1FUyBhcyBUTiwgTlMsIEFUVFJTLCBTUEVDSUFMX0VMRU1FTlRTLCBET0NVTUVOVF9NT0RFLCBpc051bWJlcmVkSGVhZGVyLCBnZXRUYWdJRCwgfSBmcm9tICcuLi9jb21tb24vaHRtbC5qcyc7XG5pbXBvcnQgeyBUb2tlblR5cGUsIGdldFRva2VuQXR0ciwgfSBmcm9tICcuLi9jb21tb24vdG9rZW4uanMnO1xuLy9NaXNjIGNvbnN0YW50c1xuY29uc3QgSElEREVOX0lOUFVUX1RZUEUgPSAnaGlkZGVuJztcbi8vQWRvcHRpb24gYWdlbmN5IGxvb3BzIGl0ZXJhdGlvbiBjb3VudFxuY29uc3QgQUFfT1VURVJfTE9PUF9JVEVSID0gODtcbmNvbnN0IEFBX0lOTkVSX0xPT1BfSVRFUiA9IDM7XG4vL0luc2VydGlvbiBtb2Rlc1xudmFyIEluc2VydGlvbk1vZGU7XG4oZnVuY3Rpb24gKEluc2VydGlvbk1vZGUpIHtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTklUSUFMXCJdID0gMF0gPSBcIklOSVRJQUxcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJCRUZPUkVfSFRNTFwiXSA9IDFdID0gXCJCRUZPUkVfSFRNTFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIkJFRk9SRV9IRUFEXCJdID0gMl0gPSBcIkJFRk9SRV9IRUFEXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fSEVBRFwiXSA9IDNdID0gXCJJTl9IRUFEXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fSEVBRF9OT19TQ1JJUFRcIl0gPSA0XSA9IFwiSU5fSEVBRF9OT19TQ1JJUFRcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJBRlRFUl9IRUFEXCJdID0gNV0gPSBcIkFGVEVSX0hFQURcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9CT0RZXCJdID0gNl0gPSBcIklOX0JPRFlcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJURVhUXCJdID0gN10gPSBcIlRFWFRcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9UQUJMRVwiXSA9IDhdID0gXCJJTl9UQUJMRVwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX1RBQkxFX1RFWFRcIl0gPSA5XSA9IFwiSU5fVEFCTEVfVEVYVFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX0NBUFRJT05cIl0gPSAxMF0gPSBcIklOX0NBUFRJT05cIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9DT0xVTU5fR1JPVVBcIl0gPSAxMV0gPSBcIklOX0NPTFVNTl9HUk9VUFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX1RBQkxFX0JPRFlcIl0gPSAxMl0gPSBcIklOX1RBQkxFX0JPRFlcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9ST1dcIl0gPSAxM10gPSBcIklOX1JPV1wiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX0NFTExcIl0gPSAxNF0gPSBcIklOX0NFTExcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9TRUxFQ1RcIl0gPSAxNV0gPSBcIklOX1NFTEVDVFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX1NFTEVDVF9JTl9UQUJMRVwiXSA9IDE2XSA9IFwiSU5fU0VMRUNUX0lOX1RBQkxFXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fVEVNUExBVEVcIl0gPSAxN10gPSBcIklOX1RFTVBMQVRFXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiQUZURVJfQk9EWVwiXSA9IDE4XSA9IFwiQUZURVJfQk9EWVwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX0ZSQU1FU0VUXCJdID0gMTldID0gXCJJTl9GUkFNRVNFVFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIkFGVEVSX0ZSQU1FU0VUXCJdID0gMjBdID0gXCJBRlRFUl9GUkFNRVNFVFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIkFGVEVSX0FGVEVSX0JPRFlcIl0gPSAyMV0gPSBcIkFGVEVSX0FGVEVSX0JPRFlcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJBRlRFUl9BRlRFUl9GUkFNRVNFVFwiXSA9IDIyXSA9IFwiQUZURVJfQUZURVJfRlJBTUVTRVRcIjtcbn0pKEluc2VydGlvbk1vZGUgfHwgKEluc2VydGlvbk1vZGUgPSB7fSkpO1xuY29uc3QgQkFTRV9MT0MgPSB7XG4gICAgc3RhcnRMaW5lOiAtMSxcbiAgICBzdGFydENvbDogLTEsXG4gICAgc3RhcnRPZmZzZXQ6IC0xLFxuICAgIGVuZExpbmU6IC0xLFxuICAgIGVuZENvbDogLTEsXG4gICAgZW5kT2Zmc2V0OiAtMSxcbn07XG5jb25zdCBUQUJMRV9TVFJVQ1RVUkVfVEFHUyA9IG5ldyBTZXQoWyQuVEFCTEUsICQuVEJPRFksICQuVEZPT1QsICQuVEhFQUQsICQuVFJdKTtcbmNvbnN0IGRlZmF1bHRQYXJzZXJPcHRpb25zID0ge1xuICAgIHNjcmlwdGluZ0VuYWJsZWQ6IHRydWUsXG4gICAgc291cmNlQ29kZUxvY2F0aW9uSW5mbzogZmFsc2UsXG4gICAgdHJlZUFkYXB0ZXI6IGRlZmF1bHRUcmVlQWRhcHRlcixcbiAgICBvblBhcnNlRXJyb3I6IG51bGwsXG59O1xuLy9QYXJzZXJcbmV4cG9ydCBjbGFzcyBQYXJzZXIge1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMsIGRvY3VtZW50LCBmcmFnbWVudENvbnRleHQgPSBudWxsLCBzY3JpcHRIYW5kbGVyID0gbnVsbCkge1xuICAgICAgICB0aGlzLmZyYWdtZW50Q29udGV4dCA9IGZyYWdtZW50Q29udGV4dDtcbiAgICAgICAgdGhpcy5zY3JpcHRIYW5kbGVyID0gc2NyaXB0SGFuZGxlcjtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4gPSBudWxsO1xuICAgICAgICB0aGlzLnN0b3BwZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTklUSUFMO1xuICAgICAgICB0aGlzLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5JVElBTDtcbiAgICAgICAgdGhpcy5oZWFkRWxlbWVudCA9IG51bGw7XG4gICAgICAgIHRoaXMuZm9ybUVsZW1lbnQgPSBudWxsO1xuICAgICAgICAvKiogSW5kaWNhdGVzIHRoYXQgdGhlIGN1cnJlbnQgbm9kZSBpcyBub3QgYW4gZWxlbWVudCBpbiB0aGUgSFRNTCBuYW1lc3BhY2UgKi9cbiAgICAgICAgdGhpcy5jdXJyZW50Tm90SW5IVE1MID0gZmFsc2U7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgdGVtcGxhdGUgaW5zZXJ0aW9uIG1vZGUgc3RhY2sgaXMgbWFpbnRhaW5lZCBmcm9tIHRoZSBsZWZ0LlxuICAgICAgICAgKiBJZS4gdGhlIHRvcG1vc3QgZWxlbWVudCB3aWxsIGFsd2F5cyBoYXZlIGluZGV4IDAuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2sgPSBbXTtcbiAgICAgICAgdGhpcy5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zID0gW107XG4gICAgICAgIHRoaXMuaGFzTm9uV2hpdGVzcGFjZVBlbmRpbmdDaGFyYWN0ZXJUb2tlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLmZyYW1lc2V0T2sgPSB0cnVlO1xuICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmZvc3RlclBhcmVudGluZ0VuYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgICAgICAgLi4uZGVmYXVsdFBhcnNlck9wdGlvbnMsXG4gICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnRyZWVBZGFwdGVyID0gdGhpcy5vcHRpb25zLnRyZWVBZGFwdGVyO1xuICAgICAgICB0aGlzLm9uUGFyc2VFcnJvciA9IHRoaXMub3B0aW9ucy5vblBhcnNlRXJyb3I7XG4gICAgICAgIC8vIEFsd2F5cyBlbmFibGUgbG9jYXRpb24gaW5mbyBpZiB3ZSByZXBvcnQgcGFyc2UgZXJyb3JzLlxuICAgICAgICBpZiAodGhpcy5vblBhcnNlRXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQgIT09IG51bGwgJiYgZG9jdW1lbnQgIT09IHZvaWQgMCA/IGRvY3VtZW50IDogdGhpcy50cmVlQWRhcHRlci5jcmVhdGVEb2N1bWVudCgpO1xuICAgICAgICB0aGlzLnRva2VuaXplciA9IG5ldyBUb2tlbml6ZXIodGhpcy5vcHRpb25zLCB0aGlzKTtcbiAgICAgICAgdGhpcy5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMgPSBuZXcgRm9ybWF0dGluZ0VsZW1lbnRMaXN0KHRoaXMudHJlZUFkYXB0ZXIpO1xuICAgICAgICB0aGlzLmZyYWdtZW50Q29udGV4dElEID0gZnJhZ21lbnRDb250ZXh0ID8gZ2V0VGFnSUQodGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGZyYWdtZW50Q29udGV4dCkpIDogJC5VTktOT1dOO1xuICAgICAgICB0aGlzLl9zZXRDb250ZXh0TW9kZXMoZnJhZ21lbnRDb250ZXh0ICE9PSBudWxsICYmIGZyYWdtZW50Q29udGV4dCAhPT0gdm9pZCAwID8gZnJhZ21lbnRDb250ZXh0IDogdGhpcy5kb2N1bWVudCwgdGhpcy5mcmFnbWVudENvbnRleHRJRCk7XG4gICAgICAgIHRoaXMub3BlbkVsZW1lbnRzID0gbmV3IE9wZW5FbGVtZW50U3RhY2sodGhpcy5kb2N1bWVudCwgdGhpcy50cmVlQWRhcHRlciwgdGhpcyk7XG4gICAgfVxuICAgIC8vIEFQSVxuICAgIHN0YXRpYyBwYXJzZShodG1sLCBvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHBhcnNlciA9IG5ldyB0aGlzKG9wdGlvbnMpO1xuICAgICAgICBwYXJzZXIudG9rZW5pemVyLndyaXRlKGh0bWwsIHRydWUpO1xuICAgICAgICByZXR1cm4gcGFyc2VyLmRvY3VtZW50O1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0RnJhZ21lbnRQYXJzZXIoZnJhZ21lbnRDb250ZXh0LCBvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IG9wdHMgPSB7XG4gICAgICAgICAgICAuLi5kZWZhdWx0UGFyc2VyT3B0aW9ucyxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIH07XG4gICAgICAgIC8vTk9URTogdXNlIGEgPHRlbXBsYXRlPiBlbGVtZW50IGFzIHRoZSBmcmFnbWVudCBjb250ZXh0IGlmIG5vIGNvbnRleHQgZWxlbWVudCB3YXMgcHJvdmlkZWQsXG4gICAgICAgIC8vc28gd2Ugd2lsbCBwYXJzZSBpbiBhIFwiZm9yZ2l2aW5nXCIgbWFubmVyXG4gICAgICAgIGZyYWdtZW50Q29udGV4dCAhPT0gbnVsbCAmJiBmcmFnbWVudENvbnRleHQgIT09IHZvaWQgMCA/IGZyYWdtZW50Q29udGV4dCA6IChmcmFnbWVudENvbnRleHQgPSBvcHRzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoVE4uVEVNUExBVEUsIE5TLkhUTUwsIFtdKSk7XG4gICAgICAgIC8vTk9URTogY3JlYXRlIGEgZmFrZSBlbGVtZW50IHdoaWNoIHdpbGwgYmUgdXNlZCBhcyB0aGUgYGRvY3VtZW50YCBmb3IgZnJhZ21lbnQgcGFyc2luZy5cbiAgICAgICAgLy9UaGlzIGlzIGltcG9ydGFudCBmb3IganNkb20sIHdoZXJlIGEgbmV3IGBkb2N1bWVudGAgY2Fubm90IGJlIGNyZWF0ZWQuIFRoaXMgbGVkIHRvXG4gICAgICAgIC8vZnJhZ21lbnQgcGFyc2luZyBtZXNzaW5nIHdpdGggdGhlIG1haW4gYGRvY3VtZW50YC5cbiAgICAgICAgY29uc3QgZG9jdW1lbnRNb2NrID0gb3B0cy50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCdkb2N1bWVudG1vY2snLCBOUy5IVE1MLCBbXSk7XG4gICAgICAgIGNvbnN0IHBhcnNlciA9IG5ldyB0aGlzKG9wdHMsIGRvY3VtZW50TW9jaywgZnJhZ21lbnRDb250ZXh0KTtcbiAgICAgICAgaWYgKHBhcnNlci5mcmFnbWVudENvbnRleHRJRCA9PT0gJC5URU1QTEFURSkge1xuICAgICAgICAgICAgcGFyc2VyLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2sudW5zaGlmdChJbnNlcnRpb25Nb2RlLklOX1RFTVBMQVRFKTtcbiAgICAgICAgfVxuICAgICAgICBwYXJzZXIuX2luaXRUb2tlbml6ZXJGb3JGcmFnbWVudFBhcnNpbmcoKTtcbiAgICAgICAgcGFyc2VyLl9pbnNlcnRGYWtlUm9vdEVsZW1lbnQoKTtcbiAgICAgICAgcGFyc2VyLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgcGFyc2VyLl9maW5kRm9ybUluRnJhZ21lbnRDb250ZXh0KCk7XG4gICAgICAgIHJldHVybiBwYXJzZXI7XG4gICAgfVxuICAgIGdldEZyYWdtZW50KCkge1xuICAgICAgICBjb25zdCByb290RWxlbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0Rmlyc3RDaGlsZCh0aGlzLmRvY3VtZW50KTtcbiAgICAgICAgY29uc3QgZnJhZ21lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcbiAgICAgICAgdGhpcy5fYWRvcHROb2Rlcyhyb290RWxlbWVudCwgZnJhZ21lbnQpO1xuICAgICAgICByZXR1cm4gZnJhZ21lbnQ7XG4gICAgfVxuICAgIC8vRXJyb3JzXG4gICAgX2Vycih0b2tlbiwgY29kZSwgYmVmb3JlVG9rZW4pIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIXRoaXMub25QYXJzZUVycm9yKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBsb2MgPSAoX2EgPSB0b2tlbi5sb2NhdGlvbikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogQkFTRV9MT0M7XG4gICAgICAgIGNvbnN0IGVyciA9IHtcbiAgICAgICAgICAgIGNvZGUsXG4gICAgICAgICAgICBzdGFydExpbmU6IGxvYy5zdGFydExpbmUsXG4gICAgICAgICAgICBzdGFydENvbDogbG9jLnN0YXJ0Q29sLFxuICAgICAgICAgICAgc3RhcnRPZmZzZXQ6IGxvYy5zdGFydE9mZnNldCxcbiAgICAgICAgICAgIGVuZExpbmU6IGJlZm9yZVRva2VuID8gbG9jLnN0YXJ0TGluZSA6IGxvYy5lbmRMaW5lLFxuICAgICAgICAgICAgZW5kQ29sOiBiZWZvcmVUb2tlbiA/IGxvYy5zdGFydENvbCA6IGxvYy5lbmRDb2wsXG4gICAgICAgICAgICBlbmRPZmZzZXQ6IGJlZm9yZVRva2VuID8gbG9jLnN0YXJ0T2Zmc2V0IDogbG9jLmVuZE9mZnNldCxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5vblBhcnNlRXJyb3IoZXJyKTtcbiAgICB9XG4gICAgLy9TdGFjayBldmVudHNcbiAgICBvbkl0ZW1QdXNoKG5vZGUsIHRpZCwgaXNUb3ApIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgKF9iID0gKF9hID0gdGhpcy50cmVlQWRhcHRlcikub25JdGVtUHVzaCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EsIG5vZGUpO1xuICAgICAgICBpZiAoaXNUb3AgJiYgdGhpcy5vcGVuRWxlbWVudHMuc3RhY2tUb3AgPiAwKVxuICAgICAgICAgICAgdGhpcy5fc2V0Q29udGV4dE1vZGVzKG5vZGUsIHRpZCk7XG4gICAgfVxuICAgIG9uSXRlbVBvcChub2RlLCBpc1RvcCkge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8pIHtcbiAgICAgICAgICAgIHRoaXMuX3NldEVuZExvY2F0aW9uKG5vZGUsIHRoaXMuY3VycmVudFRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICAoX2IgPSAoX2EgPSB0aGlzLnRyZWVBZGFwdGVyKS5vbkl0ZW1Qb3ApID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hLCBub2RlLCB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50KTtcbiAgICAgICAgaWYgKGlzVG9wKSB7XG4gICAgICAgICAgICBsZXQgY3VycmVudDtcbiAgICAgICAgICAgIGxldCBjdXJyZW50VGFnSWQ7XG4gICAgICAgICAgICBpZiAodGhpcy5vcGVuRWxlbWVudHMuc3RhY2tUb3AgPT09IDAgJiYgdGhpcy5mcmFnbWVudENvbnRleHQpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50ID0gdGhpcy5mcmFnbWVudENvbnRleHQ7XG4gICAgICAgICAgICAgICAgY3VycmVudFRhZ0lkID0gdGhpcy5mcmFnbWVudENvbnRleHRJRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICh7IGN1cnJlbnQsIGN1cnJlbnRUYWdJZCB9ID0gdGhpcy5vcGVuRWxlbWVudHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fc2V0Q29udGV4dE1vZGVzKGN1cnJlbnQsIGN1cnJlbnRUYWdJZCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX3NldENvbnRleHRNb2RlcyhjdXJyZW50LCB0aWQpIHtcbiAgICAgICAgY29uc3QgaXNIVE1MID0gY3VycmVudCA9PT0gdGhpcy5kb2N1bWVudCB8fCB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShjdXJyZW50KSA9PT0gTlMuSFRNTDtcbiAgICAgICAgdGhpcy5jdXJyZW50Tm90SW5IVE1MID0gIWlzSFRNTDtcbiAgICAgICAgdGhpcy50b2tlbml6ZXIuaW5Gb3JlaWduTm9kZSA9ICFpc0hUTUwgJiYgIXRoaXMuX2lzSW50ZWdyYXRpb25Qb2ludCh0aWQsIGN1cnJlbnQpO1xuICAgIH1cbiAgICBfc3dpdGNoVG9UZXh0UGFyc2luZyhjdXJyZW50VG9rZW4sIG5leHRUb2tlbml6ZXJTdGF0ZSkge1xuICAgICAgICB0aGlzLl9pbnNlcnRFbGVtZW50KGN1cnJlbnRUb2tlbiwgTlMuSFRNTCk7XG4gICAgICAgIHRoaXMudG9rZW5pemVyLnN0YXRlID0gbmV4dFRva2VuaXplclN0YXRlO1xuICAgICAgICB0aGlzLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZSA9IHRoaXMuaW5zZXJ0aW9uTW9kZTtcbiAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5URVhUO1xuICAgIH1cbiAgICBzd2l0Y2hUb1BsYWludGV4dFBhcnNpbmcoKSB7XG4gICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuVEVYVDtcbiAgICAgICAgdGhpcy5vcmlnaW5hbEluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0JPRFk7XG4gICAgICAgIHRoaXMudG9rZW5pemVyLnN0YXRlID0gVG9rZW5pemVyTW9kZS5QTEFJTlRFWFQ7XG4gICAgfVxuICAgIC8vRnJhZ21lbnQgcGFyc2luZ1xuICAgIF9nZXRBZGp1c3RlZEN1cnJlbnRFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcGVuRWxlbWVudHMuc3RhY2tUb3AgPT09IDAgJiYgdGhpcy5mcmFnbWVudENvbnRleHRcbiAgICAgICAgICAgID8gdGhpcy5mcmFnbWVudENvbnRleHRcbiAgICAgICAgICAgIDogdGhpcy5vcGVuRWxlbWVudHMuY3VycmVudDtcbiAgICB9XG4gICAgX2ZpbmRGb3JtSW5GcmFnbWVudENvbnRleHQoKSB7XG4gICAgICAgIGxldCBub2RlID0gdGhpcy5mcmFnbWVudENvbnRleHQ7XG4gICAgICAgIHdoaWxlIChub2RlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKG5vZGUpID09PSBUTi5GT1JNKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtRWxlbWVudCA9IG5vZGU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBub2RlID0gdGhpcy50cmVlQWRhcHRlci5nZXRQYXJlbnROb2RlKG5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9pbml0VG9rZW5pemVyRm9yRnJhZ21lbnRQYXJzaW5nKCkge1xuICAgICAgICBpZiAoIXRoaXMuZnJhZ21lbnRDb250ZXh0IHx8IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuZnJhZ21lbnRDb250ZXh0KSAhPT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAodGhpcy5mcmFnbWVudENvbnRleHRJRCkge1xuICAgICAgICAgICAgY2FzZSAkLlRJVExFOlxuICAgICAgICAgICAgY2FzZSAkLlRFWFRBUkVBOiB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXJNb2RlLlJDREFUQTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5TVFlMRTpcbiAgICAgICAgICAgIGNhc2UgJC5YTVA6XG4gICAgICAgICAgICBjYXNlICQuSUZSQU1FOlxuICAgICAgICAgICAgY2FzZSAkLk5PRU1CRUQ6XG4gICAgICAgICAgICBjYXNlICQuTk9GUkFNRVM6XG4gICAgICAgICAgICBjYXNlICQuTk9TQ1JJUFQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplck1vZGUuUkFXVEVYVDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5TQ1JJUFQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplck1vZGUuU0NSSVBUX0RBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUExBSU5URVhUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXJNb2RlLlBMQUlOVEVYVDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9UcmVlIG11dGF0aW9uXG4gICAgX3NldERvY3VtZW50VHlwZSh0b2tlbikge1xuICAgICAgICBjb25zdCBuYW1lID0gdG9rZW4ubmFtZSB8fCAnJztcbiAgICAgICAgY29uc3QgcHVibGljSWQgPSB0b2tlbi5wdWJsaWNJZCB8fCAnJztcbiAgICAgICAgY29uc3Qgc3lzdGVtSWQgPSB0b2tlbi5zeXN0ZW1JZCB8fCAnJztcbiAgICAgICAgdGhpcy50cmVlQWRhcHRlci5zZXREb2N1bWVudFR5cGUodGhpcy5kb2N1bWVudCwgbmFtZSwgcHVibGljSWQsIHN5c3RlbUlkKTtcbiAgICAgICAgaWYgKHRva2VuLmxvY2F0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBkb2N1bWVudENoaWxkcmVuID0gdGhpcy50cmVlQWRhcHRlci5nZXRDaGlsZE5vZGVzKHRoaXMuZG9jdW1lbnQpO1xuICAgICAgICAgICAgY29uc3QgZG9jVHlwZU5vZGUgPSBkb2N1bWVudENoaWxkcmVuLmZpbmQoKG5vZGUpID0+IHRoaXMudHJlZUFkYXB0ZXIuaXNEb2N1bWVudFR5cGVOb2RlKG5vZGUpKTtcbiAgICAgICAgICAgIGlmIChkb2NUeXBlTm9kZSkge1xuICAgICAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuc2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihkb2NUeXBlTm9kZSwgdG9rZW4ubG9jYXRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIF9hdHRhY2hFbGVtZW50VG9UcmVlKGVsZW1lbnQsIGxvY2F0aW9uKSB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc291cmNlQ29kZUxvY2F0aW9uSW5mbykge1xuICAgICAgICAgICAgY29uc3QgbG9jID0gbG9jYXRpb24gJiYge1xuICAgICAgICAgICAgICAgIC4uLmxvY2F0aW9uLFxuICAgICAgICAgICAgICAgIHN0YXJ0VGFnOiBsb2NhdGlvbixcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLnNldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24oZWxlbWVudCwgbG9jKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fc2hvdWxkRm9zdGVyUGFyZW50T25JbnNlcnRpb24oKSkge1xuICAgICAgICAgICAgdGhpcy5fZm9zdGVyUGFyZW50RWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnRUbXBsQ29udGVudE9yTm9kZTtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQocGFyZW50LCBlbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfYXBwZW5kRWxlbWVudCh0b2tlbiwgbmFtZXNwYWNlVVJJKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQodG9rZW4udGFnTmFtZSwgbmFtZXNwYWNlVVJJLCB0b2tlbi5hdHRycyk7XG4gICAgICAgIHRoaXMuX2F0dGFjaEVsZW1lbnRUb1RyZWUoZWxlbWVudCwgdG9rZW4ubG9jYXRpb24pO1xuICAgIH1cbiAgICBfaW5zZXJ0RWxlbWVudCh0b2tlbiwgbmFtZXNwYWNlVVJJKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQodG9rZW4udGFnTmFtZSwgbmFtZXNwYWNlVVJJLCB0b2tlbi5hdHRycyk7XG4gICAgICAgIHRoaXMuX2F0dGFjaEVsZW1lbnRUb1RyZWUoZWxlbWVudCwgdG9rZW4ubG9jYXRpb24pO1xuICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5wdXNoKGVsZW1lbnQsIHRva2VuLnRhZ0lEKTtcbiAgICB9XG4gICAgX2luc2VydEZha2VFbGVtZW50KHRhZ05hbWUsIHRhZ0lEKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQodGFnTmFtZSwgTlMuSFRNTCwgW10pO1xuICAgICAgICB0aGlzLl9hdHRhY2hFbGVtZW50VG9UcmVlKGVsZW1lbnQsIG51bGwpO1xuICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5wdXNoKGVsZW1lbnQsIHRhZ0lEKTtcbiAgICB9XG4gICAgX2luc2VydFRlbXBsYXRlKHRva2VuKSB7XG4gICAgICAgIGNvbnN0IHRtcGwgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQodG9rZW4udGFnTmFtZSwgTlMuSFRNTCwgdG9rZW4uYXR0cnMpO1xuICAgICAgICBjb25zdCBjb250ZW50ID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7XG4gICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuc2V0VGVtcGxhdGVDb250ZW50KHRtcGwsIGNvbnRlbnQpO1xuICAgICAgICB0aGlzLl9hdHRhY2hFbGVtZW50VG9UcmVlKHRtcGwsIHRva2VuLmxvY2F0aW9uKTtcbiAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMucHVzaCh0bXBsLCB0b2tlbi50YWdJRCk7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc291cmNlQ29kZUxvY2F0aW9uSW5mbylcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuc2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihjb250ZW50LCBudWxsKTtcbiAgICB9XG4gICAgX2luc2VydEZha2VSb290RWxlbWVudCgpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudChUTi5IVE1MLCBOUy5IVE1MLCBbXSk7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc291cmNlQ29kZUxvY2F0aW9uSW5mbylcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuc2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihlbGVtZW50LCBudWxsKTtcbiAgICAgICAgdGhpcy50cmVlQWRhcHRlci5hcHBlbmRDaGlsZCh0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50LCBlbGVtZW50KTtcbiAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMucHVzaChlbGVtZW50LCAkLkhUTUwpO1xuICAgIH1cbiAgICBfYXBwZW5kQ29tbWVudE5vZGUodG9rZW4sIHBhcmVudCkge1xuICAgICAgICBjb25zdCBjb21tZW50Tm9kZSA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlQ29tbWVudE5vZGUodG9rZW4uZGF0YSk7XG4gICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQocGFyZW50LCBjb21tZW50Tm9kZSk7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc291cmNlQ29kZUxvY2F0aW9uSW5mbykge1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5zZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKGNvbW1lbnROb2RlLCB0b2tlbi5sb2NhdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2luc2VydENoYXJhY3RlcnModG9rZW4pIHtcbiAgICAgICAgbGV0IHBhcmVudDtcbiAgICAgICAgbGV0IGJlZm9yZUVsZW1lbnQ7XG4gICAgICAgIGlmICh0aGlzLl9zaG91bGRGb3N0ZXJQYXJlbnRPbkluc2VydGlvbigpKSB7XG4gICAgICAgICAgICAoeyBwYXJlbnQsIGJlZm9yZUVsZW1lbnQgfSA9IHRoaXMuX2ZpbmRGb3N0ZXJQYXJlbnRpbmdMb2NhdGlvbigpKTtcbiAgICAgICAgICAgIGlmIChiZWZvcmVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5pbnNlcnRUZXh0QmVmb3JlKHBhcmVudCwgdG9rZW4uY2hhcnMsIGJlZm9yZUVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5pbnNlcnRUZXh0KHBhcmVudCwgdG9rZW4uY2hhcnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcGFyZW50ID0gdGhpcy5vcGVuRWxlbWVudHMuY3VycmVudFRtcGxDb250ZW50T3JOb2RlO1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5pbnNlcnRUZXh0KHBhcmVudCwgdG9rZW4uY2hhcnMpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdG9rZW4ubG9jYXRpb24pXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHNpYmxpbmdzID0gdGhpcy50cmVlQWRhcHRlci5nZXRDaGlsZE5vZGVzKHBhcmVudCk7XG4gICAgICAgIGNvbnN0IHRleHROb2RlSWR4ID0gYmVmb3JlRWxlbWVudCA/IHNpYmxpbmdzLmxhc3RJbmRleE9mKGJlZm9yZUVsZW1lbnQpIDogc2libGluZ3MubGVuZ3RoO1xuICAgICAgICBjb25zdCB0ZXh0Tm9kZSA9IHNpYmxpbmdzW3RleHROb2RlSWR4IC0gMV07XG4gICAgICAgIC8vTk9URTogaWYgd2UgaGF2ZSBhIGxvY2F0aW9uIGFzc2lnbmVkIGJ5IGFub3RoZXIgdG9rZW4sIHRoZW4ganVzdCB1cGRhdGUgdGhlIGVuZCBwb3NpdGlvblxuICAgICAgICBjb25zdCB0bkxvYyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbih0ZXh0Tm9kZSk7XG4gICAgICAgIGlmICh0bkxvYykge1xuICAgICAgICAgICAgY29uc3QgeyBlbmRMaW5lLCBlbmRDb2wsIGVuZE9mZnNldCB9ID0gdG9rZW4ubG9jYXRpb247XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLnVwZGF0ZU5vZGVTb3VyY2VDb2RlTG9jYXRpb24odGV4dE5vZGUsIHsgZW5kTGluZSwgZW5kQ29sLCBlbmRPZmZzZXQgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGhpcy5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8pIHtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuc2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbih0ZXh0Tm9kZSwgdG9rZW4ubG9jYXRpb24pO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9hZG9wdE5vZGVzKGRvbm9yLCByZWNpcGllbnQpIHtcbiAgICAgICAgZm9yIChsZXQgY2hpbGQgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEZpcnN0Q2hpbGQoZG9ub3IpOyBjaGlsZDsgY2hpbGQgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEZpcnN0Q2hpbGQoZG9ub3IpKSB7XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmRldGFjaE5vZGUoY2hpbGQpO1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChyZWNpcGllbnQsIGNoaWxkKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfc2V0RW5kTG9jYXRpb24oZWxlbWVudCwgY2xvc2luZ1Rva2VuKSB7XG4gICAgICAgIGlmICh0aGlzLnRyZWVBZGFwdGVyLmdldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24oZWxlbWVudCkgJiYgY2xvc2luZ1Rva2VuLmxvY2F0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBjdExvYyA9IGNsb3NpbmdUb2tlbi5sb2NhdGlvbjtcbiAgICAgICAgICAgIGNvbnN0IHRuID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVsZW1lbnQpO1xuICAgICAgICAgICAgY29uc3QgZW5kTG9jID0gXG4gICAgICAgICAgICAvLyBOT1RFOiBGb3IgY2FzZXMgbGlrZSA8cD4gPHA+IDwvcD4gLSBGaXJzdCAncCcgY2xvc2VzIHdpdGhvdXQgYSBjbG9zaW5nXG4gICAgICAgICAgICAvLyB0YWcgYW5kIGZvciBjYXNlcyBsaWtlIDx0ZD4gPHA+IDwvdGQ+IC0gJ3AnIGNsb3NlcyB3aXRob3V0IGEgY2xvc2luZyB0YWcuXG4gICAgICAgICAgICBjbG9zaW5nVG9rZW4udHlwZSA9PT0gVG9rZW5UeXBlLkVORF9UQUcgJiYgdG4gPT09IGNsb3NpbmdUb2tlbi50YWdOYW1lXG4gICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgIGVuZFRhZzogeyAuLi5jdExvYyB9LFxuICAgICAgICAgICAgICAgICAgICBlbmRMaW5lOiBjdExvYy5lbmRMaW5lLFxuICAgICAgICAgICAgICAgICAgICBlbmRDb2w6IGN0TG9jLmVuZENvbCxcbiAgICAgICAgICAgICAgICAgICAgZW5kT2Zmc2V0OiBjdExvYy5lbmRPZmZzZXQsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgICBlbmRMaW5lOiBjdExvYy5zdGFydExpbmUsXG4gICAgICAgICAgICAgICAgICAgIGVuZENvbDogY3RMb2Muc3RhcnRDb2wsXG4gICAgICAgICAgICAgICAgICAgIGVuZE9mZnNldDogY3RMb2Muc3RhcnRPZmZzZXQsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIudXBkYXRlTm9kZVNvdXJjZUNvZGVMb2NhdGlvbihlbGVtZW50LCBlbmRMb2MpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vVG9rZW4gcHJvY2Vzc2luZ1xuICAgIHNob3VsZFByb2Nlc3NTdGFydFRhZ1Rva2VuSW5Gb3JlaWduQ29udGVudCh0b2tlbikge1xuICAgICAgICAvLyBDaGVjayB0aGF0IG5laXRoZXIgY3VycmVudCA9PT0gZG9jdW1lbnQsIG9yIG5zID09PSBOUy5IVE1MXG4gICAgICAgIGlmICghdGhpcy5jdXJyZW50Tm90SW5IVE1MKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBsZXQgY3VycmVudDtcbiAgICAgICAgbGV0IGN1cnJlbnRUYWdJZDtcbiAgICAgICAgaWYgKHRoaXMub3BlbkVsZW1lbnRzLnN0YWNrVG9wID09PSAwICYmIHRoaXMuZnJhZ21lbnRDb250ZXh0KSB7XG4gICAgICAgICAgICBjdXJyZW50ID0gdGhpcy5mcmFnbWVudENvbnRleHQ7XG4gICAgICAgICAgICBjdXJyZW50VGFnSWQgPSB0aGlzLmZyYWdtZW50Q29udGV4dElEO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgKHsgY3VycmVudCwgY3VycmVudFRhZ0lkIH0gPSB0aGlzLm9wZW5FbGVtZW50cyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRva2VuLnRhZ0lEID09PSAkLlNWRyAmJlxuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGN1cnJlbnQpID09PSBUTi5BTk5PVEFUSU9OX1hNTCAmJlxuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoY3VycmVudCkgPT09IE5TLk1BVEhNTCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgIC8vIENoZWNrIHRoYXQgYGN1cnJlbnRgIGlzIG5vdCBhbiBpbnRlZ3JhdGlvbiBwb2ludCBmb3IgSFRNTCBvciBNYXRoTUwgZWxlbWVudHMuXG4gICAgICAgIHRoaXMudG9rZW5pemVyLmluRm9yZWlnbk5vZGUgfHxcbiAgICAgICAgICAgIC8vIElmIGl0IF9pc18gYW4gaW50ZWdyYXRpb24gcG9pbnQsIHRoZW4gd2UgbWlnaHQgaGF2ZSB0byBjaGVjayB0aGF0IGl0IGlzIG5vdCBhbiBIVE1MXG4gICAgICAgICAgICAvLyBpbnRlZ3JhdGlvbiBwb2ludC5cbiAgICAgICAgICAgICgodG9rZW4udGFnSUQgPT09ICQuTUdMWVBIIHx8IHRva2VuLnRhZ0lEID09PSAkLk1BTElHTk1BUkspICYmXG4gICAgICAgICAgICAgICAgIXRoaXMuX2lzSW50ZWdyYXRpb25Qb2ludChjdXJyZW50VGFnSWQsIGN1cnJlbnQsIE5TLkhUTUwpKSk7XG4gICAgfVxuICAgIF9wcm9jZXNzVG9rZW4odG9rZW4pIHtcbiAgICAgICAgc3dpdGNoICh0b2tlbi50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5DSEFSQUNURVI6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhcmFjdGVyKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLk5VTExfQ0hBUkFDVEVSOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbk51bGxDaGFyYWN0ZXIodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuQ09NTUVOVDoge1xuICAgICAgICAgICAgICAgIHRoaXMub25Db21tZW50KHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLkRPQ1RZUEU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uRG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5TVEFSVF9UQUc6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9wcm9jZXNzU3RhcnRUYWcodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuRU5EX1RBRzoge1xuICAgICAgICAgICAgICAgIHRoaXMub25FbmRUYWcodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkVvZih0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5XSElURVNQQUNFX0NIQVJBQ1RFUjoge1xuICAgICAgICAgICAgICAgIHRoaXMub25XaGl0ZXNwYWNlQ2hhcmFjdGVyKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvL0ludGVncmF0aW9uIHBvaW50c1xuICAgIF9pc0ludGVncmF0aW9uUG9pbnQodGlkLCBlbGVtZW50LCBmb3JlaWduTlMpIHtcbiAgICAgICAgY29uc3QgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShlbGVtZW50KTtcbiAgICAgICAgY29uc3QgYXR0cnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEF0dHJMaXN0KGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gZm9yZWlnbkNvbnRlbnQuaXNJbnRlZ3JhdGlvblBvaW50KHRpZCwgbnMsIGF0dHJzLCBmb3JlaWduTlMpO1xuICAgIH1cbiAgICAvL0FjdGl2ZSBmb3JtYXR0aW5nIGVsZW1lbnRzIHJlY29uc3RydWN0aW9uXG4gICAgX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCkge1xuICAgICAgICBjb25zdCBsaXN0TGVuZ3RoID0gdGhpcy5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuZW50cmllcy5sZW5ndGg7XG4gICAgICAgIGlmIChsaXN0TGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBlbmRJbmRleCA9IHRoaXMuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmVudHJpZXMuZmluZEluZGV4KChlbnRyeSkgPT4gZW50cnkudHlwZSA9PT0gRW50cnlUeXBlLk1hcmtlciB8fCB0aGlzLm9wZW5FbGVtZW50cy5jb250YWlucyhlbnRyeS5lbGVtZW50KSk7XG4gICAgICAgICAgICBjb25zdCB1bm9wZW5JZHggPSBlbmRJbmRleCA8IDAgPyBsaXN0TGVuZ3RoIC0gMSA6IGVuZEluZGV4IC0gMTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSB1bm9wZW5JZHg7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZW50cnkgPSB0aGlzLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5lbnRyaWVzW2ldO1xuICAgICAgICAgICAgICAgIHRoaXMuX2luc2VydEVsZW1lbnQoZW50cnkudG9rZW4sIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVudHJ5LmVsZW1lbnQpKTtcbiAgICAgICAgICAgICAgICBlbnRyeS5lbGVtZW50ID0gdGhpcy5vcGVuRWxlbWVudHMuY3VycmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvL0Nsb3NlIGVsZW1lbnRzXG4gICAgX2Nsb3NlVGFibGVDZWxsKCkge1xuICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7XG4gICAgICAgIHRoaXMub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFibGVDZWxsUG9wcGVkKCk7XG4gICAgICAgIHRoaXMuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmNsZWFyVG9MYXN0TWFya2VyKCk7XG4gICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fUk9XO1xuICAgIH1cbiAgICBfY2xvc2VQRWxlbWVudCgpIHtcbiAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24oJC5QKTtcbiAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuUCk7XG4gICAgfVxuICAgIC8vSW5zZXJ0aW9uIG1vZGVzXG4gICAgX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgLy9JbnNlcnRpb24gbW9kZSByZXNldCBtYXBcbiAgICAgICAgICAgIHN3aXRjaCAoaSA9PT0gMCAmJiB0aGlzLmZyYWdtZW50Q29udGV4dCA/IHRoaXMuZnJhZ21lbnRDb250ZXh0SUQgOiB0aGlzLm9wZW5FbGVtZW50cy50YWdJRHNbaV0pIHtcbiAgICAgICAgICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9ST1c7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICAgICAgICAgIGNhc2UgJC5USEVBRDpcbiAgICAgICAgICAgICAgICBjYXNlICQuVEZPT1Q6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5DQVBUSU9OOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQ0FQVElPTjtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuQ09MR1JPVVA6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRBQkxFOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkJPRFk6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9CT0RZO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0ZSQU1FU0VUO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5TRUxFQ1Q6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVzZXRJbnNlcnRpb25Nb2RlRm9yU2VsZWN0KGkpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSB0aGlzLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2tbMF07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gdGhpcy5oZWFkRWxlbWVudCA/IEluc2VydGlvbk1vZGUuQUZURVJfSEVBRCA6IEluc2VydGlvbk1vZGUuQkVGT1JFX0hFQUQ7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLlREOlxuICAgICAgICAgICAgICAgIGNhc2UgJC5USDoge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQ0VMTDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkhFQUQ6IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGkgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQk9EWTtcbiAgICB9XG4gICAgX3Jlc2V0SW5zZXJ0aW9uTW9kZUZvclNlbGVjdChzZWxlY3RJZHgpIHtcbiAgICAgICAgaWYgKHNlbGVjdElkeCA+IDApIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSBzZWxlY3RJZHggLSAxOyBpID4gMDsgaS0tKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdG4gPSB0aGlzLm9wZW5FbGVtZW50cy50YWdJRHNbaV07XG4gICAgICAgICAgICAgICAgaWYgKHRuID09PSAkLlRFTVBMQVRFKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5UQUJMRSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVDtcbiAgICB9XG4gICAgLy9Gb3N0ZXIgcGFyZW50aW5nXG4gICAgX2lzRWxlbWVudENhdXNlc0Zvc3RlclBhcmVudGluZyh0bikge1xuICAgICAgICByZXR1cm4gVEFCTEVfU1RSVUNUVVJFX1RBR1MuaGFzKHRuKTtcbiAgICB9XG4gICAgX3Nob3VsZEZvc3RlclBhcmVudE9uSW5zZXJ0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3N0ZXJQYXJlbnRpbmdFbmFibGVkICYmIHRoaXMuX2lzRWxlbWVudENhdXNlc0Zvc3RlclBhcmVudGluZyh0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQpO1xuICAgIH1cbiAgICBfZmluZEZvc3RlclBhcmVudGluZ0xvY2F0aW9uKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5vcGVuRWxlbWVudHMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCBvcGVuRWxlbWVudCA9IHRoaXMub3BlbkVsZW1lbnRzLml0ZW1zW2ldO1xuICAgICAgICAgICAgc3dpdGNoICh0aGlzLm9wZW5FbGVtZW50cy50YWdJRHNbaV0pIHtcbiAgICAgICAgICAgICAgICBjYXNlICQuVEVNUExBVEU6IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKG9wZW5FbGVtZW50KSA9PT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgcGFyZW50OiB0aGlzLnRyZWVBZGFwdGVyLmdldFRlbXBsYXRlQ29udGVudChvcGVuRWxlbWVudCksIGJlZm9yZUVsZW1lbnQ6IG51bGwgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRBQkxFOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0UGFyZW50Tm9kZShvcGVuRWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IHBhcmVudCwgYmVmb3JlRWxlbWVudDogb3BlbkVsZW1lbnQgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBwYXJlbnQ6IHRoaXMub3BlbkVsZW1lbnRzLml0ZW1zW2kgLSAxXSwgYmVmb3JlRWxlbWVudDogbnVsbCB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBwYXJlbnQ6IHRoaXMub3BlbkVsZW1lbnRzLml0ZW1zWzBdLCBiZWZvcmVFbGVtZW50OiBudWxsIH07XG4gICAgfVxuICAgIF9mb3N0ZXJQYXJlbnRFbGVtZW50KGVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgbG9jYXRpb24gPSB0aGlzLl9maW5kRm9zdGVyUGFyZW50aW5nTG9jYXRpb24oKTtcbiAgICAgICAgaWYgKGxvY2F0aW9uLmJlZm9yZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuaW5zZXJ0QmVmb3JlKGxvY2F0aW9uLnBhcmVudCwgZWxlbWVudCwgbG9jYXRpb24uYmVmb3JlRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKGxvY2F0aW9uLnBhcmVudCwgZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9TcGVjaWFsIGVsZW1lbnRzXG4gICAgX2lzU3BlY2lhbEVsZW1lbnQoZWxlbWVudCwgaWQpIHtcbiAgICAgICAgY29uc3QgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShlbGVtZW50KTtcbiAgICAgICAgcmV0dXJuIFNQRUNJQUxfRUxFTUVOVFNbbnNdLmhhcyhpZCk7XG4gICAgfVxuICAgIG9uQ2hhcmFjdGVyKHRva2VuKSB7XG4gICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLnRva2VuaXplci5pbkZvcmVpZ25Ob2RlKSB7XG4gICAgICAgICAgICBjaGFyYWN0ZXJJbkZvcmVpZ25Db250ZW50KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKHRoaXMuaW5zZXJ0aW9uTW9kZSkge1xuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOSVRJQUw6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluSW5pdGlhbE1vZGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IVE1MOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5CZWZvcmVIdG1sKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuQmVmb3JlSGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5IZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEX05PX1NDUklQVDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5IZWFkTm9TY3JpcHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkFmdGVySGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DQVBUSU9OOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NFTEw6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEVNUExBVEU6IHtcbiAgICAgICAgICAgICAgICBjaGFyYWN0ZXJJbkJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLlRFWFQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX2luc2VydENoYXJhY3RlcnModG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fUk9XOiB7XG4gICAgICAgICAgICAgICAgY2hhcmFjdGVySW5UYWJsZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfVEVYVDoge1xuICAgICAgICAgICAgICAgIGNoYXJhY3RlckluVGFibGVUZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluQ29sdW1uR3JvdXAodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkFmdGVyQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfQk9EWToge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJBZnRlckJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbk51bGxDaGFyYWN0ZXIodG9rZW4pIHtcbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMudG9rZW5pemVyLmluRm9yZWlnbk5vZGUpIHtcbiAgICAgICAgICAgIG51bGxDaGFyYWN0ZXJJbkZvcmVpZ25Db250ZW50KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKHRoaXMuaW5zZXJ0aW9uTW9kZSkge1xuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOSVRJQUw6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluSW5pdGlhbE1vZGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IVE1MOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5CZWZvcmVIdG1sKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuQmVmb3JlSGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5IZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEX05PX1NDUklQVDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5IZWFkTm9TY3JpcHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkFmdGVySGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuVEVYVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2luc2VydENoYXJhY3RlcnModG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fUk9XOiB7XG4gICAgICAgICAgICAgICAgY2hhcmFjdGVySW5UYWJsZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkNvbHVtbkdyb3VwKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5BZnRlckJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0JPRFk6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkFmdGVyQWZ0ZXJCb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgIH1cbiAgICB9XG4gICAgb25Db21tZW50KHRva2VuKSB7XG4gICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnROb3RJbkhUTUwpIHtcbiAgICAgICAgICAgIGFwcGVuZENvbW1lbnQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnNlcnRpb25Nb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5JVElBTDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSFRNTDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DQVBUSU9OOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1JPVzpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DRUxMOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1RfSU5fVEFCTEU6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEVNUExBVEU6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fRlJBTUVTRVQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgICAgICBhcHBlbmRDb21tZW50KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9URVhUOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JblRhYmxlVGV4dCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQk9EWToge1xuICAgICAgICAgICAgICAgIGFwcGVuZENvbW1lbnRUb1Jvb3RIdG1sRWxlbWVudCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIGFwcGVuZENvbW1lbnRUb0RvY3VtZW50KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgIH1cbiAgICB9XG4gICAgb25Eb2N0eXBlKHRva2VuKSB7XG4gICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnNlcnRpb25Nb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5JVElBTDoge1xuICAgICAgICAgICAgICAgIGRvY3R5cGVJbkluaXRpYWxNb2RlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIodG9rZW4sIEVSUi5taXNwbGFjZWREb2N0eXBlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9URVhUOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JblRhYmxlVGV4dCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uU3RhcnRUYWcodG9rZW4pIHtcbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4gPSB0b2tlbjtcbiAgICAgICAgdGhpcy5fcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTtcbiAgICAgICAgaWYgKHRva2VuLnNlbGZDbG9zaW5nICYmICF0b2tlbi5hY2tTZWxmQ2xvc2luZykge1xuICAgICAgICAgICAgdGhpcy5fZXJyKHRva2VuLCBFUlIubm9uVm9pZEh0bWxFbGVtZW50U3RhcnRUYWdXaXRoVHJhaWxpbmdTb2xpZHVzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBQcm9jZXNzZXMgYSBnaXZlbiBzdGFydCB0YWcuXG4gICAgICpcbiAgICAgKiBgb25TdGFydFRhZ2AgY2hlY2tzIGlmIGEgc2VsZi1jbG9zaW5nIHRhZyB3YXMgcmVjb2duaXplZC4gV2hlbiBhIHRva2VuXG4gICAgICogaXMgbW92ZWQgaW5iZXR3ZWVuIG11bHRpcGxlIGluc2VydGlvbiBtb2RlcywgdGhpcyBjaGVjayBmb3Igc2VsZi1jbG9zaW5nXG4gICAgICogY291bGQgbGVhZCB0byBmYWxzZSBwb3NpdGl2ZXMuIFRvIGF2b2lkIHRoaXMsIGBfcHJvY2Vzc1N0YXJ0VGFnYCBpcyB1c2VkXG4gICAgICogZm9yIG5lc3RlZCBjYWxscy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0b2tlbiBUaGUgdG9rZW4gdG8gcHJvY2Vzcy5cbiAgICAgKi9cbiAgICBfcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKSB7XG4gICAgICAgIGlmICh0aGlzLnNob3VsZFByb2Nlc3NTdGFydFRhZ1Rva2VuSW5Gb3JlaWduQ29udGVudCh0b2tlbikpIHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Gb3JlaWduQ29udGVudCh0aGlzLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9zdGFydFRhZ091dHNpZGVGb3JlaWduQ29udGVudCh0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX3N0YXJ0VGFnT3V0c2lkZUZvcmVpZ25Db250ZW50KHRva2VuKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnNlcnRpb25Nb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5JVElBTDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5Jbml0aWFsTW9kZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hUTUw6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0JlZm9yZUh0bWwodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdCZWZvcmVIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWROb1NjcmlwdCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnQWZ0ZXJIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJblRhYmxlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9URVhUOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JblRhYmxlVGV4dCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ0FQVElPTjoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5DYXB0aW9uKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luQ29sdW1uR3JvdXAodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luVGFibGVCb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9ST1c6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luUm93KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DRUxMOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJbkNlbGwodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5TZWxlY3QodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRToge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5TZWxlY3RJblRhYmxlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9URU1QTEFURToge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5UZW1wbGF0ZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQk9EWToge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnQWZ0ZXJCb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5GcmFtZXNldCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0FmdGVyRnJhbWVzZXQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0JPRFk6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0FmdGVyQWZ0ZXJCb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnQWZ0ZXJBZnRlckZyYW1lc2V0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgIH1cbiAgICB9XG4gICAgb25FbmRUYWcodG9rZW4pIHtcbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4gPSB0b2tlbjtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudE5vdEluSFRNTCkge1xuICAgICAgICAgICAgZW5kVGFnSW5Gb3JlaWduQ29udGVudCh0aGlzLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbmRUYWdPdXRzaWRlRm9yZWlnbkNvbnRlbnQodG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9lbmRUYWdPdXRzaWRlRm9yZWlnbkNvbnRlbnQodG9rZW4pIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmluc2VydGlvbk1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTklUSUFMOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkluaXRpYWxNb2RlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSFRNTDoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0JlZm9yZUh0bWwodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnQmVmb3JlSGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRDoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luSGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRF9OT19TQ1JJUFQ6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJbkhlYWROb1NjcmlwdCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0FmdGVySGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQk9EWToge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuVEVYVDoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luVGV4dCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEU6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJblRhYmxlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9URVhUOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JblRhYmxlVGV4dCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ0FQVElPTjoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luQ2FwdGlvbih0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5Db2x1bW5Hcm91cCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWToge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luVGFibGVCb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9ST1c6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJblJvdyh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ0VMTDoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luQ2VsbCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5TZWxlY3QodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRToge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luU2VsZWN0SW5UYWJsZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEVNUExBVEU6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJblRlbXBsYXRlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnQWZ0ZXJCb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luRnJhbWVzZXQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnQWZ0ZXJGcmFtZXNldCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfQk9EWToge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJBZnRlckJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbkVvZih0b2tlbikge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuaW5zZXJ0aW9uTW9kZSkge1xuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOSVRJQUw6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluSW5pdGlhbE1vZGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IVE1MOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5CZWZvcmVIdG1sKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuQmVmb3JlSGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5IZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEX05PX1NDUklQVDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5IZWFkTm9TY3JpcHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkFmdGVySGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DQVBUSU9OOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1JPVzpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DRUxMOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1RfSU5fVEFCTEU6IHtcbiAgICAgICAgICAgICAgICBlb2ZJbkJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLlRFWFQ6IHtcbiAgICAgICAgICAgICAgICBlb2ZJblRleHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX1RFWFQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluVGFibGVUZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9URU1QTEFURToge1xuICAgICAgICAgICAgICAgIGVvZkluVGVtcGxhdGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fRlJBTUVTRVQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfRlJBTUVTRVQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIHN0b3BQYXJzaW5nKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgIH1cbiAgICB9XG4gICAgb25XaGl0ZXNwYWNlQ2hhcmFjdGVyKHRva2VuKSB7XG4gICAgICAgIGlmICh0aGlzLnNraXBOZXh0TmV3TGluZSkge1xuICAgICAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmICh0b2tlbi5jaGFycy5jaGFyQ29kZUF0KDApID09PSB1bmljb2RlLkNPREVfUE9JTlRTLkxJTkVfRkVFRCkge1xuICAgICAgICAgICAgICAgIGlmICh0b2tlbi5jaGFycy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0b2tlbi5jaGFycyA9IHRva2VuLmNoYXJzLnN1YnN0cigxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy50b2tlbml6ZXIuaW5Gb3JlaWduTm9kZSkge1xuICAgICAgICAgICAgdGhpcy5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoICh0aGlzLmluc2VydGlvbk1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuVEVYVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9GUkFNRVNFVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2luc2VydENoYXJhY3RlcnModG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ0FQVElPTjpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DRUxMOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RFTVBMQVRFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIHdoaXRlc3BhY2VDaGFyYWN0ZXJJbkJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fUk9XOiB7XG4gICAgICAgICAgICAgICAgY2hhcmFjdGVySW5UYWJsZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfVEVYVDoge1xuICAgICAgICAgICAgICAgIHdoaXRlc3BhY2VDaGFyYWN0ZXJJblRhYmxlVGV4dCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9XG4gICAgfVxufVxuLy9BZG9wdGlvbiBhZ2VuY3kgYWxnb3JpdGhtXG4vLyhzZWU6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3RyZWUtY29uc3RydWN0aW9uLmh0bWwjYWRvcHRpb25BZ2VuY3kpXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy9TdGVwcyA1LTggb2YgdGhlIGFsZ29yaXRobVxuZnVuY3Rpb24gYWFPYnRhaW5Gb3JtYXR0aW5nRWxlbWVudEVudHJ5KHAsIHRva2VuKSB7XG4gICAgbGV0IGZvcm1hdHRpbmdFbGVtZW50RW50cnkgPSBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5nZXRFbGVtZW50RW50cnlJblNjb3BlV2l0aFRhZ05hbWUodG9rZW4udGFnTmFtZSk7XG4gICAgaWYgKGZvcm1hdHRpbmdFbGVtZW50RW50cnkpIHtcbiAgICAgICAgaWYgKCFwLm9wZW5FbGVtZW50cy5jb250YWlucyhmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpKSB7XG4gICAgICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5yZW1vdmVFbnRyeShmb3JtYXR0aW5nRWxlbWVudEVudHJ5KTtcbiAgICAgICAgICAgIGZvcm1hdHRpbmdFbGVtZW50RW50cnkgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCFwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKHRva2VuLnRhZ0lEKSkge1xuICAgICAgICAgICAgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGdlbmVyaWNFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgIH1cbiAgICByZXR1cm4gZm9ybWF0dGluZ0VsZW1lbnRFbnRyeTtcbn1cbi8vU3RlcHMgOSBhbmQgMTAgb2YgdGhlIGFsZ29yaXRobVxuZnVuY3Rpb24gYWFPYnRhaW5GdXJ0aGVzdEJsb2NrKHAsIGZvcm1hdHRpbmdFbGVtZW50RW50cnkpIHtcbiAgICBsZXQgZnVydGhlc3RCbG9jayA9IG51bGw7XG4gICAgbGV0IGlkeCA9IHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wO1xuICAgIGZvciAoOyBpZHggPj0gMDsgaWR4LS0pIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLml0ZW1zW2lkeF07XG4gICAgICAgIGlmIChlbGVtZW50ID09PSBmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwLl9pc1NwZWNpYWxFbGVtZW50KGVsZW1lbnQsIHAub3BlbkVsZW1lbnRzLnRhZ0lEc1tpZHhdKSkge1xuICAgICAgICAgICAgZnVydGhlc3RCbG9jayA9IGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFmdXJ0aGVzdEJsb2NrKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnNob3J0ZW5Ub0xlbmd0aChpZHggPCAwID8gMCA6IGlkeCk7XG4gICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnJlbW92ZUVudHJ5KGZvcm1hdHRpbmdFbGVtZW50RW50cnkpO1xuICAgIH1cbiAgICByZXR1cm4gZnVydGhlc3RCbG9jaztcbn1cbi8vU3RlcCAxMyBvZiB0aGUgYWxnb3JpdGhtXG5mdW5jdGlvbiBhYUlubmVyTG9vcChwLCBmdXJ0aGVzdEJsb2NrLCBmb3JtYXR0aW5nRWxlbWVudCkge1xuICAgIGxldCBsYXN0RWxlbWVudCA9IGZ1cnRoZXN0QmxvY2s7XG4gICAgbGV0IG5leHRFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuZ2V0Q29tbW9uQW5jZXN0b3IoZnVydGhlc3RCbG9jayk7XG4gICAgZm9yIChsZXQgaSA9IDAsIGVsZW1lbnQgPSBuZXh0RWxlbWVudDsgZWxlbWVudCAhPT0gZm9ybWF0dGluZ0VsZW1lbnQ7IGkrKywgZWxlbWVudCA9IG5leHRFbGVtZW50KSB7XG4gICAgICAgIC8vTk9URTogc3RvcmUgdGhlIG5leHQgZWxlbWVudCBmb3IgdGhlIG5leHQgbG9vcCBpdGVyYXRpb24gKGl0IG1heSBiZSBkZWxldGVkIGZyb20gdGhlIHN0YWNrIGJ5IHN0ZXAgOS41KVxuICAgICAgICBuZXh0RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLmdldENvbW1vbkFuY2VzdG9yKGVsZW1lbnQpO1xuICAgICAgICBjb25zdCBlbGVtZW50RW50cnkgPSBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5nZXRFbGVtZW50RW50cnkoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGNvdW50ZXJPdmVyZmxvdyA9IGVsZW1lbnRFbnRyeSAmJiBpID49IEFBX0lOTkVSX0xPT1BfSVRFUjtcbiAgICAgICAgY29uc3Qgc2hvdWxkUmVtb3ZlRnJvbU9wZW5FbGVtZW50cyA9ICFlbGVtZW50RW50cnkgfHwgY291bnRlck92ZXJmbG93O1xuICAgICAgICBpZiAoc2hvdWxkUmVtb3ZlRnJvbU9wZW5FbGVtZW50cykge1xuICAgICAgICAgICAgaWYgKGNvdW50ZXJPdmVyZmxvdykge1xuICAgICAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnJlbW92ZUVudHJ5KGVsZW1lbnRFbnRyeSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5yZW1vdmUoZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBlbGVtZW50ID0gYWFSZWNyZWF0ZUVsZW1lbnRGcm9tRW50cnkocCwgZWxlbWVudEVudHJ5KTtcbiAgICAgICAgICAgIGlmIChsYXN0RWxlbWVudCA9PT0gZnVydGhlc3RCbG9jaykge1xuICAgICAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmJvb2ttYXJrID0gZWxlbWVudEVudHJ5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcC50cmVlQWRhcHRlci5kZXRhY2hOb2RlKGxhc3RFbGVtZW50KTtcbiAgICAgICAgICAgIHAudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQoZWxlbWVudCwgbGFzdEVsZW1lbnQpO1xuICAgICAgICAgICAgbGFzdEVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBsYXN0RWxlbWVudDtcbn1cbi8vU3RlcCAxMy43IG9mIHRoZSBhbGdvcml0aG1cbmZ1bmN0aW9uIGFhUmVjcmVhdGVFbGVtZW50RnJvbUVudHJ5KHAsIGVsZW1lbnRFbnRyeSkge1xuICAgIGNvbnN0IG5zID0gcC50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoZWxlbWVudEVudHJ5LmVsZW1lbnQpO1xuICAgIGNvbnN0IG5ld0VsZW1lbnQgPSBwLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoZWxlbWVudEVudHJ5LnRva2VuLnRhZ05hbWUsIG5zLCBlbGVtZW50RW50cnkudG9rZW4uYXR0cnMpO1xuICAgIHAub3BlbkVsZW1lbnRzLnJlcGxhY2UoZWxlbWVudEVudHJ5LmVsZW1lbnQsIG5ld0VsZW1lbnQpO1xuICAgIGVsZW1lbnRFbnRyeS5lbGVtZW50ID0gbmV3RWxlbWVudDtcbiAgICByZXR1cm4gbmV3RWxlbWVudDtcbn1cbi8vU3RlcCAxNCBvZiB0aGUgYWxnb3JpdGhtXG5mdW5jdGlvbiBhYUluc2VydExhc3ROb2RlSW5Db21tb25BbmNlc3RvcihwLCBjb21tb25BbmNlc3RvciwgbGFzdEVsZW1lbnQpIHtcbiAgICBjb25zdCB0biA9IHAudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShjb21tb25BbmNlc3Rvcik7XG4gICAgY29uc3QgdGlkID0gZ2V0VGFnSUQodG4pO1xuICAgIGlmIChwLl9pc0VsZW1lbnRDYXVzZXNGb3N0ZXJQYXJlbnRpbmcodGlkKSkge1xuICAgICAgICBwLl9mb3N0ZXJQYXJlbnRFbGVtZW50KGxhc3RFbGVtZW50KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IG5zID0gcC50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoY29tbW9uQW5jZXN0b3IpO1xuICAgICAgICBpZiAodGlkID09PSAkLlRFTVBMQVRFICYmIG5zID09PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICBjb21tb25BbmNlc3RvciA9IHAudHJlZUFkYXB0ZXIuZ2V0VGVtcGxhdGVDb250ZW50KGNvbW1vbkFuY2VzdG9yKTtcbiAgICAgICAgfVxuICAgICAgICBwLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKGNvbW1vbkFuY2VzdG9yLCBsYXN0RWxlbWVudCk7XG4gICAgfVxufVxuLy9TdGVwcyAxNS0xOSBvZiB0aGUgYWxnb3JpdGhtXG5mdW5jdGlvbiBhYVJlcGxhY2VGb3JtYXR0aW5nRWxlbWVudChwLCBmdXJ0aGVzdEJsb2NrLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5KSB7XG4gICAgY29uc3QgbnMgPSBwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpO1xuICAgIGNvbnN0IHsgdG9rZW4gfSA9IGZvcm1hdHRpbmdFbGVtZW50RW50cnk7XG4gICAgY29uc3QgbmV3RWxlbWVudCA9IHAudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCh0b2tlbi50YWdOYW1lLCBucywgdG9rZW4uYXR0cnMpO1xuICAgIHAuX2Fkb3B0Tm9kZXMoZnVydGhlc3RCbG9jaywgbmV3RWxlbWVudCk7XG4gICAgcC50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChmdXJ0aGVzdEJsb2NrLCBuZXdFbGVtZW50KTtcbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pbnNlcnRFbGVtZW50QWZ0ZXJCb29rbWFyayhuZXdFbGVtZW50LCB0b2tlbik7XG4gICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucmVtb3ZlRW50cnkoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSk7XG4gICAgcC5vcGVuRWxlbWVudHMucmVtb3ZlKGZvcm1hdHRpbmdFbGVtZW50RW50cnkuZWxlbWVudCk7XG4gICAgcC5vcGVuRWxlbWVudHMuaW5zZXJ0QWZ0ZXIoZnVydGhlc3RCbG9jaywgbmV3RWxlbWVudCwgdG9rZW4udGFnSUQpO1xufVxuLy9BbGdvcml0aG0gZW50cnkgcG9pbnRcbmZ1bmN0aW9uIGNhbGxBZG9wdGlvbkFnZW5jeShwLCB0b2tlbikge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgQUFfT1VURVJfTE9PUF9JVEVSOyBpKyspIHtcbiAgICAgICAgY29uc3QgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSA9IGFhT2J0YWluRm9ybWF0dGluZ0VsZW1lbnRFbnRyeShwLCB0b2tlbik7XG4gICAgICAgIGlmICghZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZnVydGhlc3RCbG9jayA9IGFhT2J0YWluRnVydGhlc3RCbG9jayhwLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5KTtcbiAgICAgICAgaWYgKCFmdXJ0aGVzdEJsb2NrKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5ib29rbWFyayA9IGZvcm1hdHRpbmdFbGVtZW50RW50cnk7XG4gICAgICAgIGNvbnN0IGxhc3RFbGVtZW50ID0gYWFJbm5lckxvb3AocCwgZnVydGhlc3RCbG9jaywgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeS5lbGVtZW50KTtcbiAgICAgICAgY29uc3QgY29tbW9uQW5jZXN0b3IgPSBwLm9wZW5FbGVtZW50cy5nZXRDb21tb25BbmNlc3Rvcihmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpO1xuICAgICAgICBwLnRyZWVBZGFwdGVyLmRldGFjaE5vZGUobGFzdEVsZW1lbnQpO1xuICAgICAgICBpZiAoY29tbW9uQW5jZXN0b3IpXG4gICAgICAgICAgICBhYUluc2VydExhc3ROb2RlSW5Db21tb25BbmNlc3RvcihwLCBjb21tb25BbmNlc3RvciwgbGFzdEVsZW1lbnQpO1xuICAgICAgICBhYVJlcGxhY2VGb3JtYXR0aW5nRWxlbWVudChwLCBmdXJ0aGVzdEJsb2NrLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5KTtcbiAgICB9XG59XG4vL0dlbmVyaWMgdG9rZW4gaGFuZGxlcnNcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBhcHBlbmRDb21tZW50KHAsIHRva2VuKSB7XG4gICAgcC5fYXBwZW5kQ29tbWVudE5vZGUodG9rZW4sIHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUbXBsQ29udGVudE9yTm9kZSk7XG59XG5mdW5jdGlvbiBhcHBlbmRDb21tZW50VG9Sb290SHRtbEVsZW1lbnQocCwgdG9rZW4pIHtcbiAgICBwLl9hcHBlbmRDb21tZW50Tm9kZSh0b2tlbiwgcC5vcGVuRWxlbWVudHMuaXRlbXNbMF0pO1xufVxuZnVuY3Rpb24gYXBwZW5kQ29tbWVudFRvRG9jdW1lbnQocCwgdG9rZW4pIHtcbiAgICBwLl9hcHBlbmRDb21tZW50Tm9kZSh0b2tlbiwgcC5kb2N1bWVudCk7XG59XG5mdW5jdGlvbiBzdG9wUGFyc2luZyhwLCB0b2tlbikge1xuICAgIHAuc3RvcHBlZCA9IHRydWU7XG4gICAgLy8gTk9URTogU2V0IGVuZCBsb2NhdGlvbnMgZm9yIGVsZW1lbnRzIHRoYXQgcmVtYWluIG9uIHRoZSBvcGVuIGVsZW1lbnQgc3RhY2suXG4gICAgaWYgKHRva2VuLmxvY2F0aW9uKSB7XG4gICAgICAgIC8vIE5PVEU6IElmIHdlIGFyZSBub3QgaW4gYSBmcmFnbWVudCwgYGh0bWxgIGFuZCBgYm9keWAgd2lsbCBzdGF5IG9uIHRoZSBzdGFjay5cbiAgICAgICAgLy8gVGhpcyBpcyBhIHByb2JsZW0sIGFzIHdlIG1pZ2h0IG92ZXJ3cml0ZSB0aGVpciBlbmQgcG9zaXRpb24gaGVyZS5cbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gcC5mcmFnbWVudENvbnRleHQgPyAwIDogMjtcbiAgICAgICAgZm9yIChsZXQgaSA9IHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID49IHRhcmdldDsgaS0tKSB7XG4gICAgICAgICAgICBwLl9zZXRFbmRMb2NhdGlvbihwLm9wZW5FbGVtZW50cy5pdGVtc1tpXSwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIC8vIEhhbmRsZSBgaHRtbGAgYW5kIGBib2R5YFxuICAgICAgICBpZiAoIXAuZnJhZ21lbnRDb250ZXh0ICYmIHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wID49IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGh0bWxFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuaXRlbXNbMF07XG4gICAgICAgICAgICBjb25zdCBodG1sTG9jYXRpb24gPSBwLnRyZWVBZGFwdGVyLmdldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24oaHRtbEVsZW1lbnQpO1xuICAgICAgICAgICAgaWYgKGh0bWxMb2NhdGlvbiAmJiAhaHRtbExvY2F0aW9uLmVuZFRhZykge1xuICAgICAgICAgICAgICAgIHAuX3NldEVuZExvY2F0aW9uKGh0bWxFbGVtZW50LCB0b2tlbik7XG4gICAgICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wID49IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9keUVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5pdGVtc1sxXTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9keUxvY2F0aW9uID0gcC50cmVlQWRhcHRlci5nZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKGJvZHlFbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGJvZHlMb2NhdGlvbiAmJiAhYm9keUxvY2F0aW9uLmVuZFRhZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcC5fc2V0RW5kTG9jYXRpb24oYm9keUVsZW1lbnQsIHRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIFRoZSBcImluaXRpYWxcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIGRvY3R5cGVJbkluaXRpYWxNb2RlKHAsIHRva2VuKSB7XG4gICAgcC5fc2V0RG9jdW1lbnRUeXBlKHRva2VuKTtcbiAgICBjb25zdCBtb2RlID0gdG9rZW4uZm9yY2VRdWlya3MgPyBET0NVTUVOVF9NT0RFLlFVSVJLUyA6IGRvY3R5cGUuZ2V0RG9jdW1lbnRNb2RlKHRva2VuKTtcbiAgICBpZiAoIWRvY3R5cGUuaXNDb25mb3JtaW5nKHRva2VuKSkge1xuICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5ub25Db25mb3JtaW5nRG9jdHlwZSk7XG4gICAgfVxuICAgIHAudHJlZUFkYXB0ZXIuc2V0RG9jdW1lbnRNb2RlKHAuZG9jdW1lbnQsIG1vZGUpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuQkVGT1JFX0hUTUw7XG59XG5mdW5jdGlvbiB0b2tlbkluSW5pdGlhbE1vZGUocCwgdG9rZW4pIHtcbiAgICBwLl9lcnIodG9rZW4sIEVSUi5taXNzaW5nRG9jdHlwZSwgdHJ1ZSk7XG4gICAgcC50cmVlQWRhcHRlci5zZXREb2N1bWVudE1vZGUocC5kb2N1bWVudCwgRE9DVU1FTlRfTU9ERS5RVUlSS1MpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuQkVGT1JFX0hUTUw7XG4gICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbn1cbi8vIFRoZSBcImJlZm9yZSBodG1sXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0JlZm9yZUh0bWwocCwgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuSFRNTCkge1xuICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRva2VuQmVmb3JlSHRtbChwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnQmVmb3JlSHRtbChwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKHRuID09PSAkLkhUTUwgfHwgdG4gPT09ICQuSEVBRCB8fCB0biA9PT0gJC5CT0RZIHx8IHRuID09PSAkLkJSKSB7XG4gICAgICAgIHRva2VuQmVmb3JlSHRtbChwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5CZWZvcmVIdG1sKHAsIHRva2VuKSB7XG4gICAgcC5faW5zZXJ0RmFrZVJvb3RFbGVtZW50KCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDtcbiAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xufVxuLy8gVGhlIFwiYmVmb3JlIGhlYWRcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnQmVmb3JlSGVhZChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5IRUFEOiB7XG4gICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIHAuaGVhZEVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5jdXJyZW50O1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9IRUFEO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgdG9rZW5CZWZvcmVIZWFkKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0JlZm9yZUhlYWQocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIGlmICh0biA9PT0gJC5IRUFEIHx8IHRuID09PSAkLkJPRFkgfHwgdG4gPT09ICQuSFRNTCB8fCB0biA9PT0gJC5CUikge1xuICAgICAgICB0b2tlbkJlZm9yZUhlYWQocCwgdG9rZW4pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcC5fZXJyKHRva2VuLCBFUlIuZW5kVGFnV2l0aG91dE1hdGNoaW5nT3BlbkVsZW1lbnQpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHRva2VuQmVmb3JlSGVhZChwLCB0b2tlbikge1xuICAgIHAuX2luc2VydEZha2VFbGVtZW50KFROLkhFQUQsICQuSEVBRCk7XG4gICAgcC5oZWFkRWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLmN1cnJlbnQ7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9IRUFEO1xuICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG59XG4vLyBUaGUgXCJpbiBoZWFkXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luSGVhZChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CQVNFOlxuICAgICAgICBjYXNlICQuQkFTRUZPTlQ6XG4gICAgICAgIGNhc2UgJC5CR1NPVU5EOlxuICAgICAgICBjYXNlICQuTElOSzpcbiAgICAgICAgY2FzZSAkLk1FVEE6IHtcbiAgICAgICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRJVExFOiB7XG4gICAgICAgICAgICBwLl9zd2l0Y2hUb1RleHRQYXJzaW5nKHRva2VuLCBUb2tlbml6ZXJNb2RlLlJDREFUQSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTk9TQ1JJUFQ6IHtcbiAgICAgICAgICAgIGlmIChwLm9wdGlvbnMuc2NyaXB0aW5nRW5hYmxlZCkge1xuICAgICAgICAgICAgICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplck1vZGUuUkFXVEVYVCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk5PRlJBTUVTOlxuICAgICAgICBjYXNlICQuU1RZTEU6IHtcbiAgICAgICAgICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplck1vZGUuUkFXVEVYVCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuU0NSSVBUOiB7XG4gICAgICAgICAgICBwLl9zd2l0Y2hUb1RleHRQYXJzaW5nKHRva2VuLCBUb2tlbml6ZXJNb2RlLlNDUklQVF9EQVRBKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgcC5faW5zZXJ0VGVtcGxhdGUodG9rZW4pO1xuICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuaW5zZXJ0TWFya2VyKCk7XG4gICAgICAgICAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEVNUExBVEU7XG4gICAgICAgICAgICBwLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2sudW5zaGlmdChJbnNlcnRpb25Nb2RlLklOX1RFTVBMQVRFKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5IRUFEOiB7XG4gICAgICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5taXNwbGFjZWRTdGFydFRhZ0ZvckhlYWRFbGVtZW50KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHRva2VuSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luSGVhZChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhFQUQ6IHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJPRFk6XG4gICAgICAgIGNhc2UgJC5CUjpcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHRva2VuSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgcC5fZXJyKHRva2VuLCBFUlIuZW5kVGFnV2l0aG91dE1hdGNoaW5nT3BlbkVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMudG1wbENvdW50ID4gMCkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzVGhvcm91Z2hseSgpO1xuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkICE9PSAkLlRFTVBMQVRFKSB7XG4gICAgICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5jbG9zaW5nT2ZFbGVtZW50V2l0aE9wZW5DaGlsZEVsZW1lbnRzKTtcbiAgICAgICAgfVxuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5URU1QTEFURSk7XG4gICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmNsZWFyVG9MYXN0TWFya2VyKCk7XG4gICAgICAgIHAudG1wbEluc2VydGlvbk1vZGVTdGFjay5zaGlmdCgpO1xuICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLmVuZFRhZ1dpdGhvdXRNYXRjaGluZ09wZW5FbGVtZW50KTtcbiAgICB9XG59XG5mdW5jdGlvbiB0b2tlbkluSGVhZChwLCB0b2tlbikge1xuICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDtcbiAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xufVxuLy8gVGhlIFwiaW4gaGVhZCBubyBzY3JpcHRcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5IZWFkTm9TY3JpcHQocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQkFTRUZPTlQ6XG4gICAgICAgIGNhc2UgJC5CR1NPVU5EOlxuICAgICAgICBjYXNlICQuSEVBRDpcbiAgICAgICAgY2FzZSAkLkxJTks6XG4gICAgICAgIGNhc2UgJC5NRVRBOlxuICAgICAgICBjYXNlICQuTk9GUkFNRVM6XG4gICAgICAgIGNhc2UgJC5TVFlMRToge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk5PU0NSSVBUOiB7XG4gICAgICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5uZXN0ZWROb3NjcmlwdEluSGVhZCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkluSGVhZE5vU2NyaXB0KHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luSGVhZE5vU2NyaXB0KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuTk9TQ1JJUFQ6IHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9IRUFEO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJSOiB7XG4gICAgICAgICAgICB0b2tlbkluSGVhZE5vU2NyaXB0KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLmVuZFRhZ1dpdGhvdXRNYXRjaGluZ09wZW5FbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIHRva2VuSW5IZWFkTm9TY3JpcHQocCwgdG9rZW4pIHtcbiAgICBjb25zdCBlcnJDb2RlID0gdG9rZW4udHlwZSA9PT0gVG9rZW5UeXBlLkVPRiA/IEVSUi5vcGVuRWxlbWVudHNMZWZ0QWZ0ZXJFb2YgOiBFUlIuZGlzYWxsb3dlZENvbnRlbnRJbk5vc2NyaXB0SW5IZWFkO1xuICAgIHAuX2Vycih0b2tlbiwgZXJyQ29kZSk7XG4gICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9IRUFEO1xuICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG59XG4vLyBUaGUgXCJhZnRlciBoZWFkXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0FmdGVySGVhZChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CT0RZOiB7XG4gICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9CT0RZO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkZSQU1FU0VUOiB7XG4gICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fRlJBTUVTRVQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQkFTRTpcbiAgICAgICAgY2FzZSAkLkJBU0VGT05UOlxuICAgICAgICBjYXNlICQuQkdTT1VORDpcbiAgICAgICAgY2FzZSAkLkxJTks6XG4gICAgICAgIGNhc2UgJC5NRVRBOlxuICAgICAgICBjYXNlICQuTk9GUkFNRVM6XG4gICAgICAgIGNhc2UgJC5TQ1JJUFQ6XG4gICAgICAgIGNhc2UgJC5TVFlMRTpcbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOlxuICAgICAgICBjYXNlICQuVElUTEU6IHtcbiAgICAgICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLmFiYW5kb25lZEhlYWRFbGVtZW50Q2hpbGQpO1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucHVzaChwLmhlYWRFbGVtZW50LCAkLkhFQUQpO1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucmVtb3ZlKHAuaGVhZEVsZW1lbnQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkhFQUQ6IHtcbiAgICAgICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLm1pc3BsYWNlZFN0YXJ0VGFnRm9ySGVhZEVsZW1lbnQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgdG9rZW5BZnRlckhlYWQocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnQWZ0ZXJIZWFkKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuQk9EWTpcbiAgICAgICAgY2FzZSAkLkhUTUw6XG4gICAgICAgIGNhc2UgJC5CUjoge1xuICAgICAgICAgICAgdG9rZW5BZnRlckhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICB0ZW1wbGF0ZUVuZFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5lbmRUYWdXaXRob3V0TWF0Y2hpbmdPcGVuRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiB0b2tlbkFmdGVySGVhZChwLCB0b2tlbikge1xuICAgIHAuX2luc2VydEZha2VFbGVtZW50KFROLkJPRFksICQuQk9EWSk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9CT0RZO1xuICAgIG1vZGVJbkJvZHkocCwgdG9rZW4pO1xufVxuLy8gVGhlIFwiaW4gYm9keVwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gbW9kZUluQm9keShwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udHlwZSkge1xuICAgICAgICBjYXNlIFRva2VuVHlwZS5DSEFSQUNURVI6IHtcbiAgICAgICAgICAgIGNoYXJhY3RlckluQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRva2VuVHlwZS5XSElURVNQQUNFX0NIQVJBQ1RFUjoge1xuICAgICAgICAgICAgd2hpdGVzcGFjZUNoYXJhY3RlckluQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRva2VuVHlwZS5DT01NRU5UOiB7XG4gICAgICAgICAgICBhcHBlbmRDb21tZW50KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVG9rZW5UeXBlLlNUQVJUX1RBRzoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBUb2tlblR5cGUuRU5EX1RBRzoge1xuICAgICAgICAgICAgZW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVG9rZW5UeXBlLkVPRjoge1xuICAgICAgICAgICAgZW9mSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICB9XG59XG5mdW5jdGlvbiB3aGl0ZXNwYWNlQ2hhcmFjdGVySW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTtcbn1cbmZ1bmN0aW9uIGNoYXJhY3RlckluQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG59XG5mdW5jdGlvbiBodG1sU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMudG1wbENvdW50ID09PSAwKSB7XG4gICAgICAgIHAudHJlZUFkYXB0ZXIuYWRvcHRBdHRyaWJ1dGVzKHAub3BlbkVsZW1lbnRzLml0ZW1zWzBdLCB0b2tlbi5hdHRycyk7XG4gICAgfVxufVxuZnVuY3Rpb24gYm9keVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgYm9keUVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy50cnlQZWVrUHJvcGVybHlOZXN0ZWRCb2R5RWxlbWVudCgpO1xuICAgIGlmIChib2R5RWxlbWVudCAmJiBwLm9wZW5FbGVtZW50cy50bXBsQ291bnQgPT09IDApIHtcbiAgICAgICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgICAgIHAudHJlZUFkYXB0ZXIuYWRvcHRBdHRyaWJ1dGVzKGJvZHlFbGVtZW50LCB0b2tlbi5hdHRycyk7XG4gICAgfVxufVxuZnVuY3Rpb24gZnJhbWVzZXRTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGNvbnN0IGJvZHlFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMudHJ5UGVla1Byb3Blcmx5TmVzdGVkQm9keUVsZW1lbnQoKTtcbiAgICBpZiAocC5mcmFtZXNldE9rICYmIGJvZHlFbGVtZW50KSB7XG4gICAgICAgIHAudHJlZUFkYXB0ZXIuZGV0YWNoTm9kZShib2R5RWxlbWVudCk7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcEFsbFVwVG9IdG1sRWxlbWVudCgpO1xuICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9GUkFNRVNFVDtcbiAgICB9XG59XG5mdW5jdGlvbiBhZGRyZXNzU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKSB7XG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcbiAgICB9XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG59XG5mdW5jdGlvbiBudW1iZXJlZEhlYWRlclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkge1xuICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG4gICAgfVxuICAgIGlmIChpc051bWJlcmVkSGVhZGVyKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgfVxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xufVxuZnVuY3Rpb24gcHJlU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKSB7XG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcbiAgICB9XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgLy9OT1RFOiBJZiB0aGUgbmV4dCB0b2tlbiBpcyBhIFUrMDAwQSBMSU5FIEZFRUQgKExGKSBjaGFyYWN0ZXIgdG9rZW4sIHRoZW4gaWdub3JlIHRoYXQgdG9rZW4gYW5kIG1vdmVcbiAgICAvL29uIHRvIHRoZSBuZXh0IG9uZS4gKE5ld2xpbmVzIGF0IHRoZSBzdGFydCBvZiBwcmUgYmxvY2tzIGFyZSBpZ25vcmVkIGFzIGFuIGF1dGhvcmluZyBjb252ZW5pZW5jZS4pXG4gICAgcC5za2lwTmV4dE5ld0xpbmUgPSB0cnVlO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xufVxuZnVuY3Rpb24gZm9ybVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgaW5UZW1wbGF0ZSA9IHAub3BlbkVsZW1lbnRzLnRtcGxDb3VudCA+IDA7XG4gICAgaWYgKCFwLmZvcm1FbGVtZW50IHx8IGluVGVtcGxhdGUpIHtcbiAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkge1xuICAgICAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuICAgICAgICB9XG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICBpZiAoIWluVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHAuZm9ybUVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5jdXJyZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gbGlzdEl0ZW1TdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgZm9yIChsZXQgaSA9IHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICBjb25zdCBlbGVtZW50SWQgPSBwLm9wZW5FbGVtZW50cy50YWdJRHNbaV07XG4gICAgICAgIGlmICgodG4gPT09ICQuTEkgJiYgZWxlbWVudElkID09PSAkLkxJKSB8fFxuICAgICAgICAgICAgKCh0biA9PT0gJC5ERCB8fCB0biA9PT0gJC5EVCkgJiYgKGVsZW1lbnRJZCA9PT0gJC5ERCB8fCBlbGVtZW50SWQgPT09ICQuRFQpKSkge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24oZWxlbWVudElkKTtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZChlbGVtZW50SWQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVsZW1lbnRJZCAhPT0gJC5BRERSRVNTICYmXG4gICAgICAgICAgICBlbGVtZW50SWQgIT09ICQuRElWICYmXG4gICAgICAgICAgICBlbGVtZW50SWQgIT09ICQuUCAmJlxuICAgICAgICAgICAgcC5faXNTcGVjaWFsRWxlbWVudChwLm9wZW5FbGVtZW50cy5pdGVtc1tpXSwgZWxlbWVudElkKSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkge1xuICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG4gICAgfVxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xufVxuZnVuY3Rpb24gcGxhaW50ZXh0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKSB7XG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcbiAgICB9XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXJNb2RlLlBMQUlOVEVYVDtcbn1cbmZ1bmN0aW9uIGJ1dHRvblN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUoJC5CVVRUT04pKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuQlVUVE9OKTtcbiAgICB9XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbn1cbmZ1bmN0aW9uIGFTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnRFbnRyeSA9IHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmdldEVsZW1lbnRFbnRyeUluU2NvcGVXaXRoVGFnTmFtZShUTi5BKTtcbiAgICBpZiAoYWN0aXZlRWxlbWVudEVudHJ5KSB7XG4gICAgICAgIGNhbGxBZG9wdGlvbkFnZW5jeShwLCB0b2tlbik7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnJlbW92ZShhY3RpdmVFbGVtZW50RW50cnkuZWxlbWVudCk7XG4gICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnJlbW92ZUVudHJ5KGFjdGl2ZUVsZW1lbnRFbnRyeSk7XG4gICAgfVxuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucHVzaEVsZW1lbnQocC5vcGVuRWxlbWVudHMuY3VycmVudCwgdG9rZW4pO1xufVxuZnVuY3Rpb24gYlN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5wdXNoRWxlbWVudChwLm9wZW5FbGVtZW50cy5jdXJyZW50LCB0b2tlbik7XG59XG5mdW5jdGlvbiBub2JyU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuTk9CUikpIHtcbiAgICAgICAgY2FsbEFkb3B0aW9uQWdlbmN5KHAsIHRva2VuKTtcbiAgICAgICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICB9XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucHVzaEVsZW1lbnQocC5vcGVuRWxlbWVudHMuY3VycmVudCwgdG9rZW4pO1xufVxuZnVuY3Rpb24gYXBwbGV0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmluc2VydE1hcmtlcigpO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xufVxuZnVuY3Rpb24gdGFibGVTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLnRyZWVBZGFwdGVyLmdldERvY3VtZW50TW9kZShwLmRvY3VtZW50KSAhPT0gRE9DVU1FTlRfTU9ERS5RVUlSS1MgJiYgcC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKSB7XG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcbiAgICB9XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbn1cbmZ1bmN0aW9uIGFyZWFTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xufVxuZnVuY3Rpb24gaXNIaWRkZW5JbnB1dCh0b2tlbikge1xuICAgIGNvbnN0IGlucHV0VHlwZSA9IGdldFRva2VuQXR0cih0b2tlbiwgQVRUUlMuVFlQRSk7XG4gICAgcmV0dXJuIGlucHV0VHlwZSAhPSBudWxsICYmIGlucHV0VHlwZS50b0xvd2VyQ2FzZSgpID09PSBISURERU5fSU5QVVRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlucHV0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIGlmICghaXNIaWRkZW5JbnB1dCh0b2tlbikpIHtcbiAgICAgICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgfVxuICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIHBhcmFtU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICB0b2tlbi5hY2tTZWxmQ2xvc2luZyA9IHRydWU7XG59XG5mdW5jdGlvbiBoclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkge1xuICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG4gICAgfVxuICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGltYWdlU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICB0b2tlbi50YWdOYW1lID0gVE4uSU1HO1xuICAgIHRva2VuLnRhZ0lEID0gJC5JTUc7XG4gICAgYXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbn1cbmZ1bmN0aW9uIHRleHRhcmVhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAvL05PVEU6IElmIHRoZSBuZXh0IHRva2VuIGlzIGEgVSswMDBBIExJTkUgRkVFRCAoTEYpIGNoYXJhY3RlciB0b2tlbiwgdGhlbiBpZ25vcmUgdGhhdCB0b2tlbiBhbmQgbW92ZVxuICAgIC8vb24gdG8gdGhlIG5leHQgb25lLiAoTmV3bGluZXMgYXQgdGhlIHN0YXJ0IG9mIHRleHRhcmVhIGVsZW1lbnRzIGFyZSBpZ25vcmVkIGFzIGFuIGF1dGhvcmluZyBjb252ZW5pZW5jZS4pXG4gICAgcC5za2lwTmV4dE5ld0xpbmUgPSB0cnVlO1xuICAgIHAudG9rZW5pemVyLnN0YXRlID0gVG9rZW5pemVyTW9kZS5SQ0RBVEE7XG4gICAgcC5vcmlnaW5hbEluc2VydGlvbk1vZGUgPSBwLmluc2VydGlvbk1vZGU7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5URVhUO1xufVxuZnVuY3Rpb24geG1wU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKSB7XG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcbiAgICB9XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICBwLl9zd2l0Y2hUb1RleHRQYXJzaW5nKHRva2VuLCBUb2tlbml6ZXJNb2RlLlJBV1RFWFQpO1xufVxuZnVuY3Rpb24gaWZyYW1lU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICBwLl9zd2l0Y2hUb1RleHRQYXJzaW5nKHRva2VuLCBUb2tlbml6ZXJNb2RlLlJBV1RFWFQpO1xufVxuLy9OT1RFOiBoZXJlIHdlIGFzc3VtZSB0aGF0IHdlIGFsd2F5cyBhY3QgYXMgYW4gdXNlciBhZ2VudCB3aXRoIGVuYWJsZWQgcGx1Z2lucywgc28gd2UgcGFyc2Vcbi8vPG5vZW1iZWQ+IGFzIHJhd3RleHQuXG5mdW5jdGlvbiBub2VtYmVkU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9zd2l0Y2hUb1RleHRQYXJzaW5nKHRva2VuLCBUb2tlbml6ZXJNb2RlLlJBV1RFWFQpO1xufVxuZnVuY3Rpb24gc2VsZWN0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9XG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9PT0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRSB8fFxuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID09PSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT04gfHxcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9PT0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZIHx8XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPT09IEluc2VydGlvbk1vZGUuSU5fUk9XIHx8XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPT09IEluc2VydGlvbk1vZGUuSU5fQ0VMTFxuICAgICAgICAgICAgPyBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRVxuICAgICAgICAgICAgOiBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVDtcbn1cbmZ1bmN0aW9uIG9wdGdyb3VwU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVElPTikge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICB9XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbn1cbmZ1bmN0aW9uIHJiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSgkLlJVQlkpKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICB9XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG59XG5mdW5jdGlvbiBydFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUoJC5SVUJZKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbigkLlJUQyk7XG4gICAgfVxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xufVxuZnVuY3Rpb24gbWF0aFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlbk1hdGhNTEF0dHJzKHRva2VuKTtcbiAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlblhNTEF0dHJzKHRva2VuKTtcbiAgICBpZiAodG9rZW4uc2VsZkNsb3NpbmcpIHtcbiAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuTUFUSE1MKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLk1BVEhNTCk7XG4gICAgfVxuICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIHN2Z1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlblNWR0F0dHJzKHRva2VuKTtcbiAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlblhNTEF0dHJzKHRva2VuKTtcbiAgICBpZiAodG9rZW4uc2VsZkNsb3NpbmcpIHtcbiAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuU1ZHKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLlNWRyk7XG4gICAgfVxuICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGdlbmVyaWNTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG59XG5mdW5jdGlvbiBzdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkk6XG4gICAgICAgIGNhc2UgJC5TOlxuICAgICAgICBjYXNlICQuQjpcbiAgICAgICAgY2FzZSAkLlU6XG4gICAgICAgIGNhc2UgJC5FTTpcbiAgICAgICAgY2FzZSAkLlRUOlxuICAgICAgICBjYXNlICQuQklHOlxuICAgICAgICBjYXNlICQuQ09ERTpcbiAgICAgICAgY2FzZSAkLkZPTlQ6XG4gICAgICAgIGNhc2UgJC5TTUFMTDpcbiAgICAgICAgY2FzZSAkLlNUUklLRTpcbiAgICAgICAgY2FzZSAkLlNUUk9ORzoge1xuICAgICAgICAgICAgYlN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5BOiB7XG4gICAgICAgICAgICBhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkgxOlxuICAgICAgICBjYXNlICQuSDI6XG4gICAgICAgIGNhc2UgJC5IMzpcbiAgICAgICAgY2FzZSAkLkg0OlxuICAgICAgICBjYXNlICQuSDU6XG4gICAgICAgIGNhc2UgJC5INjoge1xuICAgICAgICAgICAgbnVtYmVyZWRIZWFkZXJTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuUDpcbiAgICAgICAgY2FzZSAkLkRMOlxuICAgICAgICBjYXNlICQuT0w6XG4gICAgICAgIGNhc2UgJC5VTDpcbiAgICAgICAgY2FzZSAkLkRJVjpcbiAgICAgICAgY2FzZSAkLkRJUjpcbiAgICAgICAgY2FzZSAkLk5BVjpcbiAgICAgICAgY2FzZSAkLk1BSU46XG4gICAgICAgIGNhc2UgJC5NRU5VOlxuICAgICAgICBjYXNlICQuQVNJREU6XG4gICAgICAgIGNhc2UgJC5DRU5URVI6XG4gICAgICAgIGNhc2UgJC5GSUdVUkU6XG4gICAgICAgIGNhc2UgJC5GT09URVI6XG4gICAgICAgIGNhc2UgJC5IRUFERVI6XG4gICAgICAgIGNhc2UgJC5IR1JPVVA6XG4gICAgICAgIGNhc2UgJC5ESUFMT0c6XG4gICAgICAgIGNhc2UgJC5ERVRBSUxTOlxuICAgICAgICBjYXNlICQuQUREUkVTUzpcbiAgICAgICAgY2FzZSAkLkFSVElDTEU6XG4gICAgICAgIGNhc2UgJC5TRUNUSU9OOlxuICAgICAgICBjYXNlICQuU1VNTUFSWTpcbiAgICAgICAgY2FzZSAkLkZJRUxEU0VUOlxuICAgICAgICBjYXNlICQuQkxPQ0tRVU9URTpcbiAgICAgICAgY2FzZSAkLkZJR0NBUFRJT046IHtcbiAgICAgICAgICAgIGFkZHJlc3NTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTEk6XG4gICAgICAgIGNhc2UgJC5ERDpcbiAgICAgICAgY2FzZSAkLkRUOiB7XG4gICAgICAgICAgICBsaXN0SXRlbVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CUjpcbiAgICAgICAgY2FzZSAkLklNRzpcbiAgICAgICAgY2FzZSAkLldCUjpcbiAgICAgICAgY2FzZSAkLkFSRUE6XG4gICAgICAgIGNhc2UgJC5FTUJFRDpcbiAgICAgICAgY2FzZSAkLktFWUdFTjoge1xuICAgICAgICAgICAgYXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5IUjoge1xuICAgICAgICAgICAgaHJTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuUkI6XG4gICAgICAgIGNhc2UgJC5SVEM6IHtcbiAgICAgICAgICAgIHJiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlJUOlxuICAgICAgICBjYXNlICQuUlA6IHtcbiAgICAgICAgICAgIHJ0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlBSRTpcbiAgICAgICAgY2FzZSAkLkxJU1RJTkc6IHtcbiAgICAgICAgICAgIHByZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5YTVA6IHtcbiAgICAgICAgICAgIHhtcFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5TVkc6IHtcbiAgICAgICAgICAgIHN2Z1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBodG1sU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJBU0U6XG4gICAgICAgIGNhc2UgJC5MSU5LOlxuICAgICAgICBjYXNlICQuTUVUQTpcbiAgICAgICAgY2FzZSAkLlNUWUxFOlxuICAgICAgICBjYXNlICQuVElUTEU6XG4gICAgICAgIGNhc2UgJC5TQ1JJUFQ6XG4gICAgICAgIGNhc2UgJC5CR1NPVU5EOlxuICAgICAgICBjYXNlICQuQkFTRUZPTlQ6XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJPRFk6IHtcbiAgICAgICAgICAgIGJvZHlTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuRk9STToge1xuICAgICAgICAgICAgZm9ybVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5OT0JSOiB7XG4gICAgICAgICAgICBub2JyU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk1BVEg6IHtcbiAgICAgICAgICAgIG1hdGhTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgIHRhYmxlU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLklOUFVUOiB7XG4gICAgICAgICAgICBpbnB1dFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5QQVJBTTpcbiAgICAgICAgY2FzZSAkLlRSQUNLOlxuICAgICAgICBjYXNlICQuU09VUkNFOiB7XG4gICAgICAgICAgICBwYXJhbVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5JTUFHRToge1xuICAgICAgICAgICAgaW1hZ2VTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQlVUVE9OOiB7XG4gICAgICAgICAgICBidXR0b25TdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQVBQTEVUOlxuICAgICAgICBjYXNlICQuT0JKRUNUOlxuICAgICAgICBjYXNlICQuTUFSUVVFRToge1xuICAgICAgICAgICAgYXBwbGV0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLklGUkFNRToge1xuICAgICAgICAgICAgaWZyYW1lU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlNFTEVDVDoge1xuICAgICAgICAgICAgc2VsZWN0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk9QVElPTjpcbiAgICAgICAgY2FzZSAkLk9QVEdST1VQOiB7XG4gICAgICAgICAgICBvcHRncm91cFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5OT0VNQkVEOiB7XG4gICAgICAgICAgICBub2VtYmVkU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkZSQU1FU0VUOiB7XG4gICAgICAgICAgICBmcmFtZXNldFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URVhUQVJFQToge1xuICAgICAgICAgICAgdGV4dGFyZWFTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTk9TQ1JJUFQ6IHtcbiAgICAgICAgICAgIGlmIChwLm9wdGlvbnMuc2NyaXB0aW5nRW5hYmxlZCkge1xuICAgICAgICAgICAgICAgIG5vZW1iZWRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBnZW5lcmljU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlBMQUlOVEVYVDoge1xuICAgICAgICAgICAgcGxhaW50ZXh0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkNPTDpcbiAgICAgICAgY2FzZSAkLlRIOlxuICAgICAgICBjYXNlICQuVEQ6XG4gICAgICAgIGNhc2UgJC5UUjpcbiAgICAgICAgY2FzZSAkLkhFQUQ6XG4gICAgICAgIGNhc2UgJC5GUkFNRTpcbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEZPT1Q6XG4gICAgICAgIGNhc2UgJC5USEVBRDpcbiAgICAgICAgY2FzZSAkLkNBUFRJT046XG4gICAgICAgIGNhc2UgJC5DT0xHUk9VUDoge1xuICAgICAgICAgICAgLy8gSWdub3JlIHRva2VuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBnZW5lcmljU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gYm9keUVuZFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuQk9EWSkpIHtcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5BRlRFUl9CT0RZO1xuICAgICAgICAvL05PVEU6IDxib2R5PiBpcyBuZXZlciBwb3BwZWQgZnJvbSB0aGUgc3RhY2ssIHNvIHdlIG5lZWQgdG8gdXBkYXRlZFxuICAgICAgICAvL3RoZSBlbmQgbG9jYXRpb24gZXhwbGljaXRseS5cbiAgICAgICAgaWYgKHAub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvKSB7XG4gICAgICAgICAgICBjb25zdCBib2R5RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLnRyeVBlZWtQcm9wZXJseU5lc3RlZEJvZHlFbGVtZW50KCk7XG4gICAgICAgICAgICBpZiAoYm9keUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBwLl9zZXRFbmRMb2NhdGlvbihib2R5RWxlbWVudCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gaHRtbEVuZFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuQk9EWSkpIHtcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5BRlRFUl9CT0RZO1xuICAgICAgICBlbmRUYWdBZnRlckJvZHkocCwgdG9rZW4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGFkZHJlc3NFbmRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKHRuKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCh0bik7XG4gICAgfVxufVxuZnVuY3Rpb24gZm9ybUVuZFRhZ0luQm9keShwKSB7XG4gICAgY29uc3QgaW5UZW1wbGF0ZSA9IHAub3BlbkVsZW1lbnRzLnRtcGxDb3VudCA+IDA7XG4gICAgY29uc3QgeyBmb3JtRWxlbWVudCB9ID0gcDtcbiAgICBpZiAoIWluVGVtcGxhdGUpIHtcbiAgICAgICAgcC5mb3JtRWxlbWVudCA9IG51bGw7XG4gICAgfVxuICAgIGlmICgoZm9ybUVsZW1lbnQgfHwgaW5UZW1wbGF0ZSkgJiYgcC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSgkLkZPUk0pKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgaWYgKGluVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLkZPUk0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGZvcm1FbGVtZW50KSB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5yZW1vdmUoZm9ybUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gcEVuZFRhZ0luQm9keShwKSB7XG4gICAgaWYgKCFwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgcC5faW5zZXJ0RmFrZUVsZW1lbnQoVE4uUCwgJC5QKTtcbiAgICB9XG4gICAgcC5fY2xvc2VQRWxlbWVudCgpO1xufVxuZnVuY3Rpb24gbGlFbmRUYWdJbkJvZHkocCkge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkxpc3RJdGVtU2NvcGUoJC5MSSkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24oJC5MSSk7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLkxJKTtcbiAgICB9XG59XG5mdW5jdGlvbiBkZEVuZFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUodG4pKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3NXaXRoRXhjbHVzaW9uKHRuKTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKHRuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBudW1iZXJlZEhlYWRlckVuZFRhZ0luQm9keShwKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc051bWJlcmVkSGVhZGVySW5TY29wZSgpKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxOdW1iZXJlZEhlYWRlclBvcHBlZCgpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGFwcGxldEVuZFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUodG4pKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKHRuKTtcbiAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICB9XG59XG5mdW5jdGlvbiBickVuZFRhZ0luQm9keShwKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRGYWtlRWxlbWVudChUTi5CUiwgJC5CUik7XG4gICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG59XG5mdW5jdGlvbiBnZW5lcmljRW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdOYW1lO1xuICAgIGNvbnN0IHRpZCA9IHRva2VuLnRhZ0lEO1xuICAgIGZvciAobGV0IGkgPSBwLm9wZW5FbGVtZW50cy5zdGFja1RvcDsgaSA+IDA7IGktLSkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuaXRlbXNbaV07XG4gICAgICAgIGNvbnN0IGVsZW1lbnRJZCA9IHAub3BlbkVsZW1lbnRzLnRhZ0lEc1tpXTtcbiAgICAgICAgLy8gQ29tcGFyZSB0aGUgdGFnIG5hbWUgaGVyZSwgYXMgdGhlIHRhZyBtaWdodCBub3QgYmUgYSBrbm93biB0YWcgd2l0aCBhbiBJRC5cbiAgICAgICAgaWYgKHRpZCA9PT0gZWxlbWVudElkICYmICh0aWQgIT09ICQuVU5LTk9XTiB8fCBwLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCkgPT09IHRuKSkge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24odGlkKTtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5zdGFja1RvcCA+PSBpKVxuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnNob3J0ZW5Ub0xlbmd0aChpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwLl9pc1NwZWNpYWxFbGVtZW50KGVsZW1lbnQsIGVsZW1lbnRJZCkpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuQTpcbiAgICAgICAgY2FzZSAkLkI6XG4gICAgICAgIGNhc2UgJC5JOlxuICAgICAgICBjYXNlICQuUzpcbiAgICAgICAgY2FzZSAkLlU6XG4gICAgICAgIGNhc2UgJC5FTTpcbiAgICAgICAgY2FzZSAkLlRUOlxuICAgICAgICBjYXNlICQuQklHOlxuICAgICAgICBjYXNlICQuQ09ERTpcbiAgICAgICAgY2FzZSAkLkZPTlQ6XG4gICAgICAgIGNhc2UgJC5OT0JSOlxuICAgICAgICBjYXNlICQuU01BTEw6XG4gICAgICAgIGNhc2UgJC5TVFJJS0U6XG4gICAgICAgIGNhc2UgJC5TVFJPTkc6IHtcbiAgICAgICAgICAgIGNhbGxBZG9wdGlvbkFnZW5jeShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuUDoge1xuICAgICAgICAgICAgcEVuZFRhZ0luQm9keShwKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5ETDpcbiAgICAgICAgY2FzZSAkLlVMOlxuICAgICAgICBjYXNlICQuT0w6XG4gICAgICAgIGNhc2UgJC5ESVI6XG4gICAgICAgIGNhc2UgJC5ESVY6XG4gICAgICAgIGNhc2UgJC5OQVY6XG4gICAgICAgIGNhc2UgJC5QUkU6XG4gICAgICAgIGNhc2UgJC5NQUlOOlxuICAgICAgICBjYXNlICQuTUVOVTpcbiAgICAgICAgY2FzZSAkLkFTSURFOlxuICAgICAgICBjYXNlICQuQlVUVE9OOlxuICAgICAgICBjYXNlICQuQ0VOVEVSOlxuICAgICAgICBjYXNlICQuRklHVVJFOlxuICAgICAgICBjYXNlICQuRk9PVEVSOlxuICAgICAgICBjYXNlICQuSEVBREVSOlxuICAgICAgICBjYXNlICQuSEdST1VQOlxuICAgICAgICBjYXNlICQuRElBTE9HOlxuICAgICAgICBjYXNlICQuQUREUkVTUzpcbiAgICAgICAgY2FzZSAkLkFSVElDTEU6XG4gICAgICAgIGNhc2UgJC5ERVRBSUxTOlxuICAgICAgICBjYXNlICQuU0VDVElPTjpcbiAgICAgICAgY2FzZSAkLlNVTU1BUlk6XG4gICAgICAgIGNhc2UgJC5MSVNUSU5HOlxuICAgICAgICBjYXNlICQuRklFTERTRVQ6XG4gICAgICAgIGNhc2UgJC5CTE9DS1FVT1RFOlxuICAgICAgICBjYXNlICQuRklHQ0FQVElPTjoge1xuICAgICAgICAgICAgYWRkcmVzc0VuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTEk6IHtcbiAgICAgICAgICAgIGxpRW5kVGFnSW5Cb2R5KHApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkREOlxuICAgICAgICBjYXNlICQuRFQ6IHtcbiAgICAgICAgICAgIGRkRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5IMTpcbiAgICAgICAgY2FzZSAkLkgyOlxuICAgICAgICBjYXNlICQuSDM6XG4gICAgICAgIGNhc2UgJC5INDpcbiAgICAgICAgY2FzZSAkLkg1OlxuICAgICAgICBjYXNlICQuSDY6IHtcbiAgICAgICAgICAgIG51bWJlcmVkSGVhZGVyRW5kVGFnSW5Cb2R5KHApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJSOiB7XG4gICAgICAgICAgICBickVuZFRhZ0luQm9keShwKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CT0RZOiB7XG4gICAgICAgICAgICBib2R5RW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBodG1sRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5GT1JNOiB7XG4gICAgICAgICAgICBmb3JtRW5kVGFnSW5Cb2R5KHApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkFQUExFVDpcbiAgICAgICAgY2FzZSAkLk9CSkVDVDpcbiAgICAgICAgY2FzZSAkLk1BUlFVRUU6IHtcbiAgICAgICAgICAgIGFwcGxldEVuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEVNUExBVEU6IHtcbiAgICAgICAgICAgIHRlbXBsYXRlRW5kVGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGdlbmVyaWNFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW9mSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAudG1wbEluc2VydGlvbk1vZGVTdGFjay5sZW5ndGggPiAwKSB7XG4gICAgICAgIGVvZkluVGVtcGxhdGUocCwgdG9rZW4pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgc3RvcFBhcnNpbmcocCwgdG9rZW4pO1xuICAgIH1cbn1cbi8vIFRoZSBcInRleHRcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIGVuZFRhZ0luVGV4dChwLCB0b2tlbikge1xuICAgIHZhciBfYTtcbiAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuU0NSSVBUKSB7XG4gICAgICAgIChfYSA9IHAuc2NyaXB0SGFuZGxlcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwocCwgcC5vcGVuRWxlbWVudHMuY3VycmVudCk7XG4gICAgfVxuICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IHAub3JpZ2luYWxJbnNlcnRpb25Nb2RlO1xufVxuZnVuY3Rpb24gZW9mSW5UZXh0KHAsIHRva2VuKSB7XG4gICAgcC5fZXJyKHRva2VuLCBFUlIuZW9mSW5FbGVtZW50VGhhdENhbkNvbnRhaW5Pbmx5VGV4dCk7XG4gICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gcC5vcmlnaW5hbEluc2VydGlvbk1vZGU7XG4gICAgcC5vbkVvZih0b2tlbik7XG59XG4vLyBUaGUgXCJpbiB0YWJsZVwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gY2hhcmFjdGVySW5UYWJsZShwLCB0b2tlbikge1xuICAgIGlmIChUQUJMRV9TVFJVQ1RVUkVfVEFHUy5oYXMocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkKSkge1xuICAgICAgICBwLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnMubGVuZ3RoID0gMDtcbiAgICAgICAgcC5oYXNOb25XaGl0ZXNwYWNlUGVuZGluZ0NoYXJhY3RlclRva2VuID0gZmFsc2U7XG4gICAgICAgIHAub3JpZ2luYWxJbnNlcnRpb25Nb2RlID0gcC5pbnNlcnRpb25Nb2RlO1xuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX1RFWFQ7XG4gICAgICAgIHN3aXRjaCAodG9rZW4udHlwZSkge1xuICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuQ0hBUkFDVEVSOiB7XG4gICAgICAgICAgICAgICAgY2hhcmFjdGVySW5UYWJsZVRleHQocCwgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuV0hJVEVTUEFDRV9DSEFSQUNURVI6IHtcbiAgICAgICAgICAgICAgICB3aGl0ZXNwYWNlQ2hhcmFjdGVySW5UYWJsZVRleHQocCwgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gSWdub3JlIG51bGxcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdG9rZW5JblRhYmxlKHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBjYXB0aW9uU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUNvbnRleHQoKTtcbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pbnNlcnRNYXJrZXIoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT047XG59XG5mdW5jdGlvbiBjb2xncm91cFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVDb250ZXh0KCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA7XG59XG5mdW5jdGlvbiBjb2xTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpO1xuICAgIHAuX2luc2VydEZha2VFbGVtZW50KFROLkNPTEdST1VQLCAkLkNPTEdST1VQKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDtcbiAgICBzdGFydFRhZ0luQ29sdW1uR3JvdXAocCwgdG9rZW4pO1xufVxuZnVuY3Rpb24gdGJvZHlTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTtcbn1cbmZ1bmN0aW9uIHRkU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUNvbnRleHQoKTtcbiAgICBwLl9pbnNlcnRGYWtlRWxlbWVudChUTi5UQk9EWSwgJC5UQk9EWSk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xuICAgIHN0YXJ0VGFnSW5UYWJsZUJvZHkocCwgdG9rZW4pO1xufVxuZnVuY3Rpb24gdGFibGVTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuVEFCTEUpKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlRBQkxFKTtcbiAgICAgICAgcC5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7XG4gICAgICAgIHAuX3Byb2Nlc3NTdGFydFRhZyh0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gaW5wdXRTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBpZiAoaXNIaWRkZW5JbnB1dCh0b2tlbikpIHtcbiAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0b2tlbkluVGFibGUocCwgdG9rZW4pO1xuICAgIH1cbiAgICB0b2tlbi5hY2tTZWxmQ2xvc2luZyA9IHRydWU7XG59XG5mdW5jdGlvbiBmb3JtU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgaWYgKCFwLmZvcm1FbGVtZW50ICYmIHAub3BlbkVsZW1lbnRzLnRtcGxDb3VudCA9PT0gMCkge1xuICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgcC5mb3JtRWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLmN1cnJlbnQ7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLlREOlxuICAgICAgICBjYXNlICQuVEg6XG4gICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgdGRTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlNUWUxFOlxuICAgICAgICBjYXNlICQuU0NSSVBUOlxuICAgICAgICBjYXNlICQuVEVNUExBVEU6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5DT0w6IHtcbiAgICAgICAgICAgIGNvbFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuRk9STToge1xuICAgICAgICAgICAgZm9ybVN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgIHRhYmxlU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEhFQUQ6IHtcbiAgICAgICAgICAgIHRib2R5U3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5JTlBVVDoge1xuICAgICAgICAgICAgaW5wdXRTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkNBUFRJT046IHtcbiAgICAgICAgICAgIGNhcHRpb25TdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOiB7XG4gICAgICAgICAgICBjb2xncm91cFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkluVGFibGUocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLlRBQkxFOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuVEFCTEUpKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuVEFCTEUpO1xuICAgICAgICAgICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICB0ZW1wbGF0ZUVuZFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQk9EWTpcbiAgICAgICAgY2FzZSAkLkNBUFRJT046XG4gICAgICAgIGNhc2UgJC5DT0w6XG4gICAgICAgIGNhc2UgJC5DT0xHUk9VUDpcbiAgICAgICAgY2FzZSAkLkhUTUw6XG4gICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgY2FzZSAkLlREOlxuICAgICAgICBjYXNlICQuVEZPT1Q6XG4gICAgICAgIGNhc2UgJC5USDpcbiAgICAgICAgY2FzZSAkLlRIRUFEOlxuICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgIC8vIElnbm9yZSB0b2tlblxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgdG9rZW5JblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIHRva2VuSW5UYWJsZShwLCB0b2tlbikge1xuICAgIGNvbnN0IHNhdmVkRm9zdGVyUGFyZW50aW5nU3RhdGUgPSBwLmZvc3RlclBhcmVudGluZ0VuYWJsZWQ7XG4gICAgcC5mb3N0ZXJQYXJlbnRpbmdFbmFibGVkID0gdHJ1ZTtcbiAgICAvLyBQcm9jZXNzIHRva2VuIGluIGBJbiBCb2R5YCBtb2RlXG4gICAgbW9kZUluQm9keShwLCB0b2tlbik7XG4gICAgcC5mb3N0ZXJQYXJlbnRpbmdFbmFibGVkID0gc2F2ZWRGb3N0ZXJQYXJlbnRpbmdTdGF0ZTtcbn1cbi8vIFRoZSBcImluIHRhYmxlIHRleHRcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHdoaXRlc3BhY2VDaGFyYWN0ZXJJblRhYmxlVGV4dChwLCB0b2tlbikge1xuICAgIHAucGVuZGluZ0NoYXJhY3RlclRva2Vucy5wdXNoKHRva2VuKTtcbn1cbmZ1bmN0aW9uIGNoYXJhY3RlckluVGFibGVUZXh0KHAsIHRva2VuKSB7XG4gICAgcC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zLnB1c2godG9rZW4pO1xuICAgIHAuaGFzTm9uV2hpdGVzcGFjZVBlbmRpbmdDaGFyYWN0ZXJUb2tlbiA9IHRydWU7XG59XG5mdW5jdGlvbiB0b2tlbkluVGFibGVUZXh0KHAsIHRva2VuKSB7XG4gICAgbGV0IGkgPSAwO1xuICAgIGlmIChwLmhhc05vbldoaXRlc3BhY2VQZW5kaW5nQ2hhcmFjdGVyVG9rZW4pIHtcbiAgICAgICAgZm9yICg7IGkgPCBwLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRva2VuSW5UYWJsZShwLCBwLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnNbaV0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBmb3IgKDsgaSA8IHAucGVuZGluZ0NoYXJhY3RlclRva2Vucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgcC5faW5zZXJ0Q2hhcmFjdGVycyhwLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnNbaV0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IHAub3JpZ2luYWxJbnNlcnRpb25Nb2RlO1xuICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG59XG4vLyBUaGUgXCJpbiBjYXB0aW9uXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5jb25zdCBUQUJMRV9WT0lEX0VMRU1FTlRTID0gbmV3IFNldChbJC5DQVBUSU9OLCAkLkNPTCwgJC5DT0xHUk9VUCwgJC5UQk9EWSwgJC5URCwgJC5URk9PVCwgJC5USCwgJC5USEVBRCwgJC5UUl0pO1xuZnVuY3Rpb24gc3RhcnRUYWdJbkNhcHRpb24ocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIGlmIChUQUJMRV9WT0lEX0VMRU1FTlRTLmhhcyh0bikpIHtcbiAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLkNBUFRJT04pKSB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5DQVBUSU9OKTtcbiAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmNsZWFyVG9MYXN0TWFya2VyKCk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFO1xuICAgICAgICAgICAgc3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luQ2FwdGlvbihwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgc3dpdGNoICh0bikge1xuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLlRBQkxFOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuQ0FQVElPTikpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuQ0FQVElPTik7XG4gICAgICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICAgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFO1xuICAgICAgICAgICAgICAgIGlmICh0biA9PT0gJC5UQUJMRSkge1xuICAgICAgICAgICAgICAgICAgICBlbmRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQk9EWTpcbiAgICAgICAgY2FzZSAkLkNPTDpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOlxuICAgICAgICBjYXNlICQuSFRNTDpcbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEQ6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIOlxuICAgICAgICBjYXNlICQuVEhFQUQ6XG4gICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgLy8gSWdub3JlIHRva2VuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBlbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuLy8gVGhlIFwiaW4gY29sdW1uIGdyb3VwXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luQ29sdW1uR3JvdXAocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ09MOiB7XG4gICAgICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgdG9rZW5JbkNvbHVtbkdyb3VwKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luQ29sdW1uR3JvdXAocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5DT0xHUk9VUDoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCA9PT0gJC5DT0xHUk9VUCkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEVNUExBVEU6IHtcbiAgICAgICAgICAgIHRlbXBsYXRlRW5kVGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5DT0w6IHtcbiAgICAgICAgICAgIC8vIElnbm9yZSB0b2tlblxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgdG9rZW5JbkNvbHVtbkdyb3VwKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIHRva2VuSW5Db2x1bW5Hcm91cChwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgPT09ICQuQ09MR1JPVVApIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG4gICAgfVxufVxuLy8gVGhlIFwiaW4gdGFibGUgYm9keVwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdJblRhYmxlQm9keShwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLlRSOiB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQm9keUNvbnRleHQoKTtcbiAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9ST1c7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEg6XG4gICAgICAgIGNhc2UgJC5URDoge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUJvZHlDb250ZXh0KCk7XG4gICAgICAgICAgICBwLl9pbnNlcnRGYWtlRWxlbWVudChUTi5UUiwgJC5UUik7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1JPVztcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Sb3cocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkNBUFRJT046XG4gICAgICAgIGNhc2UgJC5DT0w6XG4gICAgICAgIGNhc2UgJC5DT0xHUk9VUDpcbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEZPT1Q6XG4gICAgICAgIGNhc2UgJC5USEVBRDoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc1RhYmxlQm9keUNvbnRleHRJblRhYmxlU2NvcGUoKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpO1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJblRhYmxlQm9keShwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIRUFEOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKHRuKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpO1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNUYWJsZUJvZHlDb250ZXh0SW5UYWJsZVNjb3BlKCkpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQm9keUNvbnRleHQoKTtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFO1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJPRFk6XG4gICAgICAgIGNhc2UgJC5DQVBUSU9OOlxuICAgICAgICBjYXNlICQuQ09MOlxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6XG4gICAgICAgIGNhc2UgJC5IVE1MOlxuICAgICAgICBjYXNlICQuVEQ6XG4gICAgICAgIGNhc2UgJC5USDpcbiAgICAgICAgY2FzZSAkLlRSOiB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgdG9rZW5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGVuZFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuLy8gVGhlIFwiaW4gcm93XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luUm93KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuVEg6XG4gICAgICAgIGNhc2UgJC5URDoge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZVJvd0NvbnRleHQoKTtcbiAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9DRUxMO1xuICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuaW5zZXJ0TWFya2VyKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTDpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOlxuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIRUFEOlxuICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UUikpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCgpO1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJblJvdyhwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLlRSOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuVFIpKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZVJvd0NvbnRleHQoKTtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UUikpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCgpO1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTtcbiAgICAgICAgICAgICAgICBlbmRUYWdJblRhYmxlQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIRUFEOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKHRva2VuLnRhZ0lEKSB8fCBwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UUikpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCgpO1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTtcbiAgICAgICAgICAgICAgICBlbmRUYWdJblRhYmxlQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQk9EWTpcbiAgICAgICAgY2FzZSAkLkNBUFRJT046XG4gICAgICAgIGNhc2UgJC5DT0w6XG4gICAgICAgIGNhc2UgJC5DT0xHUk9VUDpcbiAgICAgICAgY2FzZSAkLkhUTUw6XG4gICAgICAgIGNhc2UgJC5URDpcbiAgICAgICAgY2FzZSAkLlRIOiB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgZW5kIHRhZ1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgZW5kVGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBUaGUgXCJpbiBjZWxsXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luQ2VsbChwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKFRBQkxFX1ZPSURfRUxFTUVOVFMuaGFzKHRuKSkge1xuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuVEQpIHx8IHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRIKSkge1xuICAgICAgICAgICAgcC5fY2xvc2VUYWJsZUNlbGwoKTtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Sb3cocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5DZWxsKHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBzd2l0Y2ggKHRuKSB7XG4gICAgICAgIGNhc2UgJC5URDpcbiAgICAgICAgY2FzZSAkLlRIOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKHRuKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQodG4pO1xuICAgICAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmNsZWFyVG9MYXN0TWFya2VyKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9ST1c7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEFCTEU6XG4gICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEhFQUQ6XG4gICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSh0bikpIHtcbiAgICAgICAgICAgICAgICBwLl9jbG9zZVRhYmxlQ2VsbCgpO1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luUm93KHAsIHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CT0RZOlxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTDpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOlxuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgLy8gSWdub3JlIHRva2VuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBlbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuLy8gVGhlIFwiaW4gc2VsZWN0XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luU2VsZWN0KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk9QVElPTjoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCA9PT0gJC5PUFRJT04pIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk9QVEdST1VQOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVElPTikge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCA9PT0gJC5PUFRHUk9VUCkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuSU5QVVQ6XG4gICAgICAgIGNhc2UgJC5LRVlHRU46XG4gICAgICAgIGNhc2UgJC5URVhUQVJFQTpcbiAgICAgICAgY2FzZSAkLlNFTEVDVDoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2VsZWN0U2NvcGUoJC5TRUxFQ1QpKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuU0VMRUNUKTtcbiAgICAgICAgICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgICAgICAgICBpZiAodG9rZW4udGFnSUQgIT09ICQuU0VMRUNUKSB7XG4gICAgICAgICAgICAgICAgICAgIHAuX3Byb2Nlc3NTdGFydFRhZyh0b2tlbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlNDUklQVDpcbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5TZWxlY3QocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5PUFRHUk9VUDoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wID4gMCAmJlxuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCA9PT0gJC5PUFRJT04gJiZcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy50YWdJRHNbcC5vcGVuRWxlbWVudHMuc3RhY2tUb3AgLSAxXSA9PT0gJC5PUFRHUk9VUCkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCA9PT0gJC5PUFRHUk9VUCkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk9QVElPTjoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCA9PT0gJC5PUFRJT04pIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5TRUxFQ1Q6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNlbGVjdFNjb3BlKCQuU0VMRUNUKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlNFTEVDVCk7XG4gICAgICAgICAgICAgICAgcC5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEVNUExBVEU6IHtcbiAgICAgICAgICAgIHRlbXBsYXRlRW5kVGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICB9XG59XG4vLyBUaGUgXCJpbiBzZWxlY3QgaW4gdGFibGVcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5TZWxlY3RJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAodG4gPT09ICQuQ0FQVElPTiB8fFxuICAgICAgICB0biA9PT0gJC5UQUJMRSB8fFxuICAgICAgICB0biA9PT0gJC5UQk9EWSB8fFxuICAgICAgICB0biA9PT0gJC5URk9PVCB8fFxuICAgICAgICB0biA9PT0gJC5USEVBRCB8fFxuICAgICAgICB0biA9PT0gJC5UUiB8fFxuICAgICAgICB0biA9PT0gJC5URCB8fFxuICAgICAgICB0biA9PT0gJC5USCkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5TRUxFQ1QpO1xuICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgcC5fcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHN0YXJ0VGFnSW5TZWxlY3QocCwgdG9rZW4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luU2VsZWN0SW5UYWJsZShwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKHRuID09PSAkLkNBUFRJT04gfHxcbiAgICAgICAgdG4gPT09ICQuVEFCTEUgfHxcbiAgICAgICAgdG4gPT09ICQuVEJPRFkgfHxcbiAgICAgICAgdG4gPT09ICQuVEZPT1QgfHxcbiAgICAgICAgdG4gPT09ICQuVEhFQUQgfHxcbiAgICAgICAgdG4gPT09ICQuVFIgfHxcbiAgICAgICAgdG4gPT09ICQuVEQgfHxcbiAgICAgICAgdG4gPT09ICQuVEgpIHtcbiAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSh0bikpIHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlNFTEVDVCk7XG4gICAgICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgICAgIHAub25FbmRUYWcodG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBlbmRUYWdJblNlbGVjdChwLCB0b2tlbik7XG4gICAgfVxufVxuLy8gVGhlIFwiaW4gdGVtcGxhdGVcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5UZW1wbGF0ZShwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgLy8gRmlyc3QsIGhhbmRsZSB0YWdzIHRoYXQgY2FuIHN0YXJ0IHdpdGhvdXQgYSBtb2RlIGNoYW5nZVxuICAgICAgICBjYXNlICQuQkFTRTpcbiAgICAgICAgY2FzZSAkLkJBU0VGT05UOlxuICAgICAgICBjYXNlICQuQkdTT1VORDpcbiAgICAgICAgY2FzZSAkLkxJTks6XG4gICAgICAgIGNhc2UgJC5NRVRBOlxuICAgICAgICBjYXNlICQuTk9GUkFNRVM6XG4gICAgICAgIGNhc2UgJC5TQ1JJUFQ6XG4gICAgICAgIGNhc2UgJC5TVFlMRTpcbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOlxuICAgICAgICBjYXNlICQuVElUTEU6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIC8vIFJlLXByb2Nlc3MgdGhlIHRva2VuIGluIHRoZSBhcHByb3ByaWF0ZSBtb2RlXG4gICAgICAgIGNhc2UgJC5DQVBUSU9OOlxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6XG4gICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEhFQUQ6IHtcbiAgICAgICAgICAgIHAudG1wbEluc2VydGlvbk1vZGVTdGFja1swXSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFO1xuICAgICAgICAgICAgc3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5DT0w6IHtcbiAgICAgICAgICAgIHAudG1wbEluc2VydGlvbk1vZGVTdGFja1swXSA9IEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA7XG4gICAgICAgICAgICBzdGFydFRhZ0luQ29sdW1uR3JvdXAocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRSOiB7XG4gICAgICAgICAgICBwLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2tbMF0gPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk7XG4gICAgICAgICAgICBzdGFydFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URDpcbiAgICAgICAgY2FzZSAkLlRIOiB7XG4gICAgICAgICAgICBwLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2tbMF0gPSBJbnNlcnRpb25Nb2RlLklOX1JPVztcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fUk9XO1xuICAgICAgICAgICAgc3RhcnRUYWdJblJvdyhwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBwLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2tbMF0gPSBJbnNlcnRpb25Nb2RlLklOX0JPRFk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0JPRFk7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJblRlbXBsYXRlKHAsIHRva2VuKSB7XG4gICAgaWYgKHRva2VuLnRhZ0lEID09PSAkLlRFTVBMQVRFKSB7XG4gICAgICAgIHRlbXBsYXRlRW5kVGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBlb2ZJblRlbXBsYXRlKHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLnRtcGxDb3VudCA+IDApIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuVEVNUExBVEUpO1xuICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5jbGVhclRvTGFzdE1hcmtlcigpO1xuICAgICAgICBwLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2suc2hpZnQoKTtcbiAgICAgICAgcC5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7XG4gICAgICAgIHAub25Fb2YodG9rZW4pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgc3RvcFBhcnNpbmcocCwgdG9rZW4pO1xuICAgIH1cbn1cbi8vIFRoZSBcImFmdGVyIGJvZHlcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnQWZ0ZXJCb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHRva2VuLnRhZ0lEID09PSAkLkhUTUwpIHtcbiAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdG9rZW5BZnRlckJvZHkocCwgdG9rZW4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0FmdGVyQm9keShwLCB0b2tlbikge1xuICAgIHZhciBfYTtcbiAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuSFRNTCkge1xuICAgICAgICBpZiAoIXAuZnJhZ21lbnRDb250ZXh0KSB7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0JPRFk7XG4gICAgICAgIH1cbiAgICAgICAgLy9OT1RFOiA8aHRtbD4gaXMgbmV2ZXIgcG9wcGVkIGZyb20gdGhlIHN0YWNrLCBzbyB3ZSBuZWVkIHRvIHVwZGF0ZWRcbiAgICAgICAgLy90aGUgZW5kIGxvY2F0aW9uIGV4cGxpY2l0bHkuXG4gICAgICAgIGlmIChwLm9wdGlvbnMuc291cmNlQ29kZUxvY2F0aW9uSW5mbyAmJiBwLm9wZW5FbGVtZW50cy50YWdJRHNbMF0gPT09ICQuSFRNTCkge1xuICAgICAgICAgICAgcC5fc2V0RW5kTG9jYXRpb24ocC5vcGVuRWxlbWVudHMuaXRlbXNbMF0sIHRva2VuKTtcbiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgYm9keSBlbGVtZW50LCBpZiBpdCBkb2Vzbid0IGhhdmUgYW4gZW5kIHRhZ1xuICAgICAgICAgICAgY29uc3QgYm9keUVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5pdGVtc1sxXTtcbiAgICAgICAgICAgIGlmIChib2R5RWxlbWVudCAmJiAhKChfYSA9IHAudHJlZUFkYXB0ZXIuZ2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihib2R5RWxlbWVudCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5lbmRUYWcpKSB7XG4gICAgICAgICAgICAgICAgcC5fc2V0RW5kTG9jYXRpb24oYm9keUVsZW1lbnQsIHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdG9rZW5BZnRlckJvZHkocCwgdG9rZW4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHRva2VuQWZ0ZXJCb2R5KHAsIHRva2VuKSB7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9CT0RZO1xuICAgIG1vZGVJbkJvZHkocCwgdG9rZW4pO1xufVxuLy8gVGhlIFwiaW4gZnJhbWVzZXRcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5GcmFtZXNldChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5GUkFNRVNFVDoge1xuICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuRlJBTUU6IHtcbiAgICAgICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk5PRlJBTUVTOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5GcmFtZXNldChwLCB0b2tlbikge1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5GUkFNRVNFVCAmJiAhcC5vcGVuRWxlbWVudHMuaXNSb290SHRtbEVsZW1lbnRDdXJyZW50KCkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgIGlmICghcC5mcmFnbWVudENvbnRleHQgJiYgcC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkICE9PSAkLkZSQU1FU0VUKSB7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkFGVEVSX0ZSQU1FU0VUO1xuICAgICAgICB9XG4gICAgfVxufVxuLy8gVGhlIFwiYWZ0ZXIgZnJhbWVzZXRcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnQWZ0ZXJGcmFtZXNldChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5OT0ZSQU1FUzoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0FmdGVyRnJhbWVzZXQocCwgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuSFRNTCkge1xuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0ZSQU1FU0VUO1xuICAgIH1cbn1cbi8vIFRoZSBcImFmdGVyIGFmdGVyIGJvZHlcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnQWZ0ZXJBZnRlckJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuSFRNTCkge1xuICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0b2tlbkFmdGVyQWZ0ZXJCb2R5KHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiB0b2tlbkFmdGVyQWZ0ZXJCb2R5KHAsIHRva2VuKSB7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9CT0RZO1xuICAgIG1vZGVJbkJvZHkocCwgdG9rZW4pO1xufVxuLy8gVGhlIFwiYWZ0ZXIgYWZ0ZXIgZnJhbWVzZXRcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnQWZ0ZXJBZnRlckZyYW1lc2V0KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk5PRlJBTUVTOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgfVxufVxuLy8gVGhlIHJ1bGVzIGZvciBwYXJzaW5nIHRva2VucyBpbiBmb3JlaWduIGNvbnRlbnRcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBudWxsQ2hhcmFjdGVySW5Gb3JlaWduQ29udGVudChwLCB0b2tlbikge1xuICAgIHRva2VuLmNoYXJzID0gdW5pY29kZS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgcC5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7XG59XG5mdW5jdGlvbiBjaGFyYWN0ZXJJbkZvcmVpZ25Db250ZW50KHAsIHRva2VuKSB7XG4gICAgcC5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG59XG5mdW5jdGlvbiBwb3BVbnRpbEh0bWxPckludGVncmF0aW9uUG9pbnQocCkge1xuICAgIHdoaWxlIChwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShwLm9wZW5FbGVtZW50cy5jdXJyZW50KSAhPT0gTlMuSFRNTCAmJlxuICAgICAgICAhcC5faXNJbnRlZ3JhdGlvblBvaW50KHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCwgcC5vcGVuRWxlbWVudHMuY3VycmVudCkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgfVxufVxuZnVuY3Rpb24gc3RhcnRUYWdJbkZvcmVpZ25Db250ZW50KHAsIHRva2VuKSB7XG4gICAgaWYgKGZvcmVpZ25Db250ZW50LmNhdXNlc0V4aXQodG9rZW4pKSB7XG4gICAgICAgIHBvcFVudGlsSHRtbE9ySW50ZWdyYXRpb25Qb2ludChwKTtcbiAgICAgICAgcC5fc3RhcnRUYWdPdXRzaWRlRm9yZWlnbkNvbnRlbnQodG9rZW4pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3QgY3VycmVudCA9IHAuX2dldEFkanVzdGVkQ3VycmVudEVsZW1lbnQoKTtcbiAgICAgICAgY29uc3QgY3VycmVudE5zID0gcC50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoY3VycmVudCk7XG4gICAgICAgIGlmIChjdXJyZW50TnMgPT09IE5TLk1BVEhNTCkge1xuICAgICAgICAgICAgZm9yZWlnbkNvbnRlbnQuYWRqdXN0VG9rZW5NYXRoTUxBdHRycyh0b2tlbik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoY3VycmVudE5zID09PSBOUy5TVkcpIHtcbiAgICAgICAgICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuU1ZHVGFnTmFtZSh0b2tlbik7XG4gICAgICAgICAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlblNWR0F0dHJzKHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlblhNTEF0dHJzKHRva2VuKTtcbiAgICAgICAgaWYgKHRva2VuLnNlbGZDbG9zaW5nKSB7XG4gICAgICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBjdXJyZW50TnMpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgY3VycmVudE5zKTtcbiAgICAgICAgfVxuICAgICAgICB0b2tlbi5hY2tTZWxmQ2xvc2luZyA9IHRydWU7XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5Gb3JlaWduQ29udGVudChwLCB0b2tlbikge1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5QIHx8IHRva2VuLnRhZ0lEID09PSAkLkJSKSB7XG4gICAgICAgIHBvcFVudGlsSHRtbE9ySW50ZWdyYXRpb25Qb2ludChwKTtcbiAgICAgICAgcC5fZW5kVGFnT3V0c2lkZUZvcmVpZ25Db250ZW50KHRva2VuKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gcC5vcGVuRWxlbWVudHMuc3RhY2tUb3A7IGkgPiAwOyBpLS0pIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLml0ZW1zW2ldO1xuICAgICAgICBpZiAocC50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoZWxlbWVudCkgPT09IE5TLkhUTUwpIHtcbiAgICAgICAgICAgIHAuX2VuZFRhZ091dHNpZGVGb3JlaWduQ29udGVudCh0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0YWdOYW1lID0gcC50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVsZW1lbnQpO1xuICAgICAgICBpZiAodGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSB0b2tlbi50YWdOYW1lKSB7XG4gICAgICAgICAgICAvL05PVEU6IHVwZGF0ZSB0aGUgdG9rZW4gdGFnIG5hbWUgZm9yIGBfc2V0RW5kTG9jYXRpb25gLlxuICAgICAgICAgICAgdG9rZW4udGFnTmFtZSA9IHRhZ05hbWU7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5zaG9ydGVuVG9MZW5ndGgoaSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCIsIG51bGwsICJpbXBvcnQgeyBUQUdfTkFNRVMgYXMgJCwgTlMsIGhhc1VuZXNjYXBlZFRleHQgfSBmcm9tICcuLi9jb21tb24vaHRtbC5qcyc7XG5pbXBvcnQgeyBlc2NhcGVUZXh0LCBlc2NhcGVBdHRyaWJ1dGUgfSBmcm9tICdlbnRpdGllcy9saWIvZXNjYXBlLmpzJztcbmltcG9ydCB7IGRlZmF1bHRUcmVlQWRhcHRlciB9IGZyb20gJy4uL3RyZWUtYWRhcHRlcnMvZGVmYXVsdC5qcyc7XG4vLyBTZXRzXG5jb25zdCBWT0lEX0VMRU1FTlRTID0gbmV3IFNldChbXG4gICAgJC5BUkVBLFxuICAgICQuQkFTRSxcbiAgICAkLkJBU0VGT05ULFxuICAgICQuQkdTT1VORCxcbiAgICAkLkJSLFxuICAgICQuQ09MLFxuICAgICQuRU1CRUQsXG4gICAgJC5GUkFNRSxcbiAgICAkLkhSLFxuICAgICQuSU1HLFxuICAgICQuSU5QVVQsXG4gICAgJC5LRVlHRU4sXG4gICAgJC5MSU5LLFxuICAgICQuTUVUQSxcbiAgICAkLlBBUkFNLFxuICAgICQuU09VUkNFLFxuICAgICQuVFJBQ0ssXG4gICAgJC5XQlIsXG5dKTtcbmZ1bmN0aW9uIGlzVm9pZEVsZW1lbnQobm9kZSwgb3B0aW9ucykge1xuICAgIHJldHVybiAob3B0aW9ucy50cmVlQWRhcHRlci5pc0VsZW1lbnROb2RlKG5vZGUpICYmXG4gICAgICAgIG9wdGlvbnMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKG5vZGUpID09PSBOUy5IVE1MICYmXG4gICAgICAgIFZPSURfRUxFTUVOVFMuaGFzKG9wdGlvbnMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShub2RlKSkpO1xufVxuY29uc3QgZGVmYXVsdE9wdHMgPSB7IHRyZWVBZGFwdGVyOiBkZWZhdWx0VHJlZUFkYXB0ZXIsIHNjcmlwdGluZ0VuYWJsZWQ6IHRydWUgfTtcbi8qKlxuICogU2VyaWFsaXplcyBhbiBBU1Qgbm9kZSB0byBhbiBIVE1MIHN0cmluZy5cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiBjb25zdCBwYXJzZTUgPSByZXF1aXJlKCdwYXJzZTUnKTtcbiAqXG4gKiBjb25zdCBkb2N1bWVudCA9IHBhcnNlNS5wYXJzZSgnPCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PkhpIHRoZXJlITwvYm9keT48L2h0bWw+Jyk7XG4gKlxuICogLy8gU2VyaWFsaXplcyBhIGRvY3VtZW50LlxuICogY29uc3QgaHRtbCA9IHBhcnNlNS5zZXJpYWxpemUoZG9jdW1lbnQpO1xuICpcbiAqIC8vIFNlcmlhbGl6ZXMgdGhlIDxodG1sPiBlbGVtZW50IGNvbnRlbnQuXG4gKiBjb25zdCBzdHIgPSBwYXJzZTUuc2VyaWFsaXplKGRvY3VtZW50LmNoaWxkTm9kZXNbMV0pO1xuICpcbiAqIGNvbnNvbGUubG9nKHN0cik7IC8vPiAnPGhlYWQ+PC9oZWFkPjxib2R5PkhpIHRoZXJlITwvYm9keT4nXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gbm9kZSBOb2RlIHRvIHNlcmlhbGl6ZS5cbiAqIEBwYXJhbSBvcHRpb25zIFNlcmlhbGl6YXRpb24gb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZShub2RlLCBvcHRpb25zKSB7XG4gICAgY29uc3Qgb3B0cyA9IHsgLi4uZGVmYXVsdE9wdHMsIC4uLm9wdGlvbnMgfTtcbiAgICBpZiAoaXNWb2lkRWxlbWVudChub2RlLCBvcHRzKSkge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiBzZXJpYWxpemVDaGlsZE5vZGVzKG5vZGUsIG9wdHMpO1xufVxuLyoqXG4gKiBTZXJpYWxpemVzIGFuIEFTVCBlbGVtZW50IG5vZGUgdG8gYW4gSFRNTCBzdHJpbmcsIGluY2x1ZGluZyB0aGUgZWxlbWVudCBub2RlLlxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqIGNvbnN0IHBhcnNlNSA9IHJlcXVpcmUoJ3BhcnNlNScpO1xuICpcbiAqIGNvbnN0IGRvY3VtZW50ID0gcGFyc2U1LnBhcnNlRnJhZ21lbnQoJzxkaXY+SGVsbG8sIDxiPndvcmxkPC9iPiE8L2Rpdj4nKTtcbiAqXG4gKiAvLyBTZXJpYWxpemVzIHRoZSA8ZGl2PiBlbGVtZW50LlxuICogY29uc3QgaHRtbCA9IHBhcnNlNS5zZXJpYWxpemVPdXRlcihkb2N1bWVudC5jaGlsZE5vZGVzWzBdKTtcbiAqXG4gKiBjb25zb2xlLmxvZyhzdHIpOyAvLz4gJzxkaXY+SGVsbG8sIDxiPndvcmxkPC9iPiE8L2Rpdj4nXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gbm9kZSBOb2RlIHRvIHNlcmlhbGl6ZS5cbiAqIEBwYXJhbSBvcHRpb25zIFNlcmlhbGl6YXRpb24gb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZU91dGVyKG5vZGUsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBvcHRzID0geyAuLi5kZWZhdWx0T3B0cywgLi4ub3B0aW9ucyB9O1xuICAgIHJldHVybiBzZXJpYWxpemVOb2RlKG5vZGUsIG9wdHMpO1xufVxuZnVuY3Rpb24gc2VyaWFsaXplQ2hpbGROb2RlcyhwYXJlbnROb2RlLCBvcHRpb25zKSB7XG4gICAgbGV0IGh0bWwgPSAnJztcbiAgICAvLyBHZXQgY29udGFpbmVyIG9mIHRoZSBjaGlsZCBub2Rlc1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IG9wdGlvbnMudHJlZUFkYXB0ZXIuaXNFbGVtZW50Tm9kZShwYXJlbnROb2RlKSAmJlxuICAgICAgICBvcHRpb25zLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUocGFyZW50Tm9kZSkgPT09ICQuVEVNUExBVEUgJiZcbiAgICAgICAgb3B0aW9ucy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkocGFyZW50Tm9kZSkgPT09IE5TLkhUTUxcbiAgICAgICAgPyBvcHRpb25zLnRyZWVBZGFwdGVyLmdldFRlbXBsYXRlQ29udGVudChwYXJlbnROb2RlKVxuICAgICAgICA6IHBhcmVudE5vZGU7XG4gICAgY29uc3QgY2hpbGROb2RlcyA9IG9wdGlvbnMudHJlZUFkYXB0ZXIuZ2V0Q2hpbGROb2Rlcyhjb250YWluZXIpO1xuICAgIGlmIChjaGlsZE5vZGVzKSB7XG4gICAgICAgIGZvciAoY29uc3QgY3VycmVudE5vZGUgb2YgY2hpbGROb2Rlcykge1xuICAgICAgICAgICAgaHRtbCArPSBzZXJpYWxpemVOb2RlKGN1cnJlbnROb2RlLCBvcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaHRtbDtcbn1cbmZ1bmN0aW9uIHNlcmlhbGl6ZU5vZGUobm9kZSwgb3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zLnRyZWVBZGFwdGVyLmlzRWxlbWVudE5vZGUobm9kZSkpIHtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZUVsZW1lbnQobm9kZSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnRyZWVBZGFwdGVyLmlzVGV4dE5vZGUobm9kZSkpIHtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVRleHROb2RlKG5vZGUsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy50cmVlQWRhcHRlci5pc0NvbW1lbnROb2RlKG5vZGUpKSB7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVDb21tZW50Tm9kZShub2RlLCBvcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMudHJlZUFkYXB0ZXIuaXNEb2N1bWVudFR5cGVOb2RlKG5vZGUpKSB7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVEb2N1bWVudFR5cGVOb2RlKG5vZGUsIG9wdGlvbnMpO1xuICAgIH1cbiAgICAvLyBSZXR1cm4gYW4gZW1wdHkgc3RyaW5nIGZvciB1bmtub3duIG5vZGVzXG4gICAgcmV0dXJuICcnO1xufVxuZnVuY3Rpb24gc2VyaWFsaXplRWxlbWVudChub2RlLCBvcHRpb25zKSB7XG4gICAgY29uc3QgdG4gPSBvcHRpb25zLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUobm9kZSk7XG4gICAgcmV0dXJuIGA8JHt0bn0ke3NlcmlhbGl6ZUF0dHJpYnV0ZXMobm9kZSwgb3B0aW9ucyl9PiR7aXNWb2lkRWxlbWVudChub2RlLCBvcHRpb25zKSA/ICcnIDogYCR7c2VyaWFsaXplQ2hpbGROb2Rlcyhub2RlLCBvcHRpb25zKX08LyR7dG59PmB9YDtcbn1cbmZ1bmN0aW9uIHNlcmlhbGl6ZUF0dHJpYnV0ZXMobm9kZSwgeyB0cmVlQWRhcHRlciB9KSB7XG4gICAgbGV0IGh0bWwgPSAnJztcbiAgICBmb3IgKGNvbnN0IGF0dHIgb2YgdHJlZUFkYXB0ZXIuZ2V0QXR0ckxpc3Qobm9kZSkpIHtcbiAgICAgICAgaHRtbCArPSAnICc7XG4gICAgICAgIGlmICghYXR0ci5uYW1lc3BhY2UpIHtcbiAgICAgICAgICAgIGh0bWwgKz0gYXR0ci5uYW1lO1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHN3aXRjaCAoYXR0ci5uYW1lc3BhY2UpIHtcbiAgICAgICAgICAgICAgICBjYXNlIE5TLlhNTDoge1xuICAgICAgICAgICAgICAgICAgICBodG1sICs9IGB4bWw6JHthdHRyLm5hbWV9YDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgTlMuWE1MTlM6IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGF0dHIubmFtZSAhPT0gJ3htbG5zJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaHRtbCArPSAneG1sbnM6JztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBodG1sICs9IGF0dHIubmFtZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgTlMuWExJTks6IHtcbiAgICAgICAgICAgICAgICAgICAgaHRtbCArPSBgeGxpbms6JHthdHRyLm5hbWV9YDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgaHRtbCArPSBgJHthdHRyLnByZWZpeH06JHthdHRyLm5hbWV9YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIGh0bWwgKz0gYD1cIiR7ZXNjYXBlQXR0cmlidXRlKGF0dHIudmFsdWUpfVwiYDtcbiAgICB9XG4gICAgcmV0dXJuIGh0bWw7XG59XG5mdW5jdGlvbiBzZXJpYWxpemVUZXh0Tm9kZShub2RlLCBvcHRpb25zKSB7XG4gICAgY29uc3QgeyB0cmVlQWRhcHRlciB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBjb250ZW50ID0gdHJlZUFkYXB0ZXIuZ2V0VGV4dE5vZGVDb250ZW50KG5vZGUpO1xuICAgIGNvbnN0IHBhcmVudCA9IHRyZWVBZGFwdGVyLmdldFBhcmVudE5vZGUobm9kZSk7XG4gICAgY29uc3QgcGFyZW50VG4gPSBwYXJlbnQgJiYgdHJlZUFkYXB0ZXIuaXNFbGVtZW50Tm9kZShwYXJlbnQpICYmIHRyZWVBZGFwdGVyLmdldFRhZ05hbWUocGFyZW50KTtcbiAgICByZXR1cm4gcGFyZW50VG4gJiZcbiAgICAgICAgdHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHBhcmVudCkgPT09IE5TLkhUTUwgJiZcbiAgICAgICAgaGFzVW5lc2NhcGVkVGV4dChwYXJlbnRUbiwgb3B0aW9ucy5zY3JpcHRpbmdFbmFibGVkKVxuICAgICAgICA/IGNvbnRlbnRcbiAgICAgICAgOiBlc2NhcGVUZXh0KGNvbnRlbnQpO1xufVxuZnVuY3Rpb24gc2VyaWFsaXplQ29tbWVudE5vZGUobm9kZSwgeyB0cmVlQWRhcHRlciB9KSB7XG4gICAgcmV0dXJuIGA8IS0tJHt0cmVlQWRhcHRlci5nZXRDb21tZW50Tm9kZUNvbnRlbnQobm9kZSl9LS0+YDtcbn1cbmZ1bmN0aW9uIHNlcmlhbGl6ZURvY3VtZW50VHlwZU5vZGUobm9kZSwgeyB0cmVlQWRhcHRlciB9KSB7XG4gICAgcmV0dXJuIGA8IURPQ1RZUEUgJHt0cmVlQWRhcHRlci5nZXREb2N1bWVudFR5cGVOb2RlTmFtZShub2RlKX0+YDtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCIsICJpbXBvcnQgeyBQYXJzZXIgfSBmcm9tICcuL3BhcnNlci9pbmRleC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0VHJlZUFkYXB0ZXIgfSBmcm9tICcuL3RyZWUtYWRhcHRlcnMvZGVmYXVsdC5qcyc7XG5leHBvcnQgeyAvKiogQGludGVybmFsICovIFBhcnNlciB9IGZyb20gJy4vcGFyc2VyL2luZGV4LmpzJztcbmV4cG9ydCB7IHNlcmlhbGl6ZSwgc2VyaWFsaXplT3V0ZXIgfSBmcm9tICcuL3NlcmlhbGl6ZXIvaW5kZXguanMnO1xuZXhwb3J0IHsgRVJSIGFzIEVycm9yQ29kZXMgfSBmcm9tICcuL2NvbW1vbi9lcnJvci1jb2Rlcy5qcyc7XG4vKiogQGludGVybmFsICovXG5leHBvcnQgKiBhcyBmb3JlaWduQ29udGVudCBmcm9tICcuL2NvbW1vbi9mb3JlaWduLWNvbnRlbnQuanMnO1xuLyoqIEBpbnRlcm5hbCAqL1xuZXhwb3J0ICogYXMgaHRtbCBmcm9tICcuL2NvbW1vbi9odG1sLmpzJztcbi8qKiBAaW50ZXJuYWwgKi9cbmV4cG9ydCAqIGFzIFRva2VuIGZyb20gJy4vY29tbW9uL3Rva2VuLmpzJztcbi8qKiBAaW50ZXJuYWwgKi9cbmV4cG9ydCB7IFRva2VuaXplciwgVG9rZW5pemVyTW9kZSB9IGZyb20gJy4vdG9rZW5pemVyL2luZGV4LmpzJztcbi8vIFNob3J0aGFuZHNcbi8qKlxuICogUGFyc2VzIGFuIEhUTUwgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSBodG1sIElucHV0IEhUTUwgc3RyaW5nLlxuICogQHBhcmFtIG9wdGlvbnMgUGFyc2luZyBvcHRpb25zLlxuICogQHJldHVybnMgRG9jdW1lbnRcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiBjb25zdCBwYXJzZTUgPSByZXF1aXJlKCdwYXJzZTUnKTtcbiAqXG4gKiBjb25zdCBkb2N1bWVudCA9IHBhcnNlNS5wYXJzZSgnPCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PkhpIHRoZXJlITwvYm9keT48L2h0bWw+Jyk7XG4gKlxuICogY29uc29sZS5sb2coZG9jdW1lbnQuY2hpbGROb2Rlc1sxXS50YWdOYW1lKTsgLy8+ICdodG1sJ1xuICpgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlKGh0bWwsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gUGFyc2VyLnBhcnNlKGh0bWwsIG9wdGlvbnMpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRnJhZ21lbnQoZnJhZ21lbnRDb250ZXh0LCBodG1sLCBvcHRpb25zKSB7XG4gICAgaWYgKHR5cGVvZiBmcmFnbWVudENvbnRleHQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIG9wdGlvbnMgPSBodG1sO1xuICAgICAgICBodG1sID0gZnJhZ21lbnRDb250ZXh0O1xuICAgICAgICBmcmFnbWVudENvbnRleHQgPSBudWxsO1xuICAgIH1cbiAgICBjb25zdCBwYXJzZXIgPSBQYXJzZXIuZ2V0RnJhZ21lbnRQYXJzZXIoZnJhZ21lbnRDb250ZXh0LCBvcHRpb25zKTtcbiAgICBwYXJzZXIudG9rZW5pemVyLndyaXRlKGh0bWwsIHRydWUpO1xuICAgIHJldHVybiBwYXJzZXIuZ2V0RnJhZ21lbnQoKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuTm9kZX0gTm9kZVxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb2ludH0gUG9pbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUG9zaXRpb259IFBvc2l0aW9uXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiBOb2RlTGlrZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IHR5cGVcbiAqIEBwcm9wZXJ0eSB7UG9zaXRpb25MaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3Bvc2l0aW9uXVxuICpcbiAqIEB0eXBlZGVmIFBvaW50TGlrZVxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbbGluZV1cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2NvbHVtbl1cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29mZnNldF1cbiAqXG4gKiBAdHlwZWRlZiBQb3NpdGlvbkxpa2VcbiAqIEBwcm9wZXJ0eSB7UG9pbnRMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3N0YXJ0XVxuICogQHByb3BlcnR5IHtQb2ludExpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbZW5kXVxuICovXG5cbi8qKlxuICogU2VyaWFsaXplIHRoZSBwb3NpdGlvbmFsIGluZm8gb2YgYSBwb2ludCwgcG9zaXRpb24gKHN0YXJ0IGFuZCBlbmQgcG9pbnRzKSxcbiAqIG9yIG5vZGUuXG4gKlxuICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBQb2ludCB8IFBvaW50TGlrZSB8IFBvc2l0aW9uIHwgUG9zaXRpb25MaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3ZhbHVlXVxuICogICBOb2RlLCBwb3NpdGlvbiwgb3IgcG9pbnQuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBQcmV0dHkgcHJpbnRlZCBwb3NpdGlvbmFsIGluZm8gb2YgYSBub2RlIChgc3RyaW5nYCkuXG4gKlxuICogICBJbiB0aGUgZm9ybWF0IG9mIGEgcmFuZ2UgYGxzOmNzLWxlOmNlYCAod2hlbiBnaXZlbiBgbm9kZWAgb3IgYHBvc2l0aW9uYClcbiAqICAgb3IgYSBwb2ludCBgbDpjYCAod2hlbiBnaXZlbiBgcG9pbnRgKSwgd2hlcmUgYGxgIHN0YW5kcyBmb3IgbGluZSwgYGNgIGZvclxuICogICBjb2x1bW4sIGBzYCBmb3IgYHN0YXJ0YCwgYW5kIGBlYCBmb3IgZW5kLlxuICogICBBbiBlbXB0eSBzdHJpbmcgKGAnJ2ApIGlzIHJldHVybmVkIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyBuZWl0aGVyIGBub2RlYCxcbiAqICAgYHBvc2l0aW9uYCwgbm9yIGBwb2ludGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnlQb3NpdGlvbih2YWx1ZSkge1xuICAvLyBOb3RoaW5nLlxuICBpZiAoIXZhbHVlIHx8IHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIC8vIE5vZGUuXG4gIGlmICgncG9zaXRpb24nIGluIHZhbHVlIHx8ICd0eXBlJyBpbiB2YWx1ZSkge1xuICAgIHJldHVybiBwb3NpdGlvbih2YWx1ZS5wb3NpdGlvbilcbiAgfVxuXG4gIC8vIFBvc2l0aW9uLlxuICBpZiAoJ3N0YXJ0JyBpbiB2YWx1ZSB8fCAnZW5kJyBpbiB2YWx1ZSkge1xuICAgIHJldHVybiBwb3NpdGlvbih2YWx1ZSlcbiAgfVxuXG4gIC8vIFBvaW50LlxuICBpZiAoJ2xpbmUnIGluIHZhbHVlIHx8ICdjb2x1bW4nIGluIHZhbHVlKSB7XG4gICAgcmV0dXJuIHBvaW50KHZhbHVlKVxuICB9XG5cbiAgLy8gP1xuICByZXR1cm4gJydcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1BvaW50IHwgUG9pbnRMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gcG9pbnRcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIHBvaW50KHBvaW50KSB7XG4gIHJldHVybiBpbmRleChwb2ludCAmJiBwb2ludC5saW5lKSArICc6JyArIGluZGV4KHBvaW50ICYmIHBvaW50LmNvbHVtbilcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1Bvc2l0aW9uIHwgUG9zaXRpb25MaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gcG9zXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBwb3NpdGlvbihwb3MpIHtcbiAgcmV0dXJuIHBvaW50KHBvcyAmJiBwb3Muc3RhcnQpICsgJy0nICsgcG9pbnQocG9zICYmIHBvcy5lbmQpXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSB2YWx1ZVxuICogQHJldHVybnMge251bWJlcn1cbiAqL1xuZnVuY3Rpb24gaW5kZXgodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgPyB2YWx1ZSA6IDFcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuTm9kZX0gTm9kZVxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb2ludH0gUG9pbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUG9zaXRpb259IFBvc2l0aW9uXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0ICYge3R5cGU6IHN0cmluZywgcG9zaXRpb24/OiBQb3NpdGlvbiB8IHVuZGVmaW5lZH19IE5vZGVMaWtlXG4gKlxuICogQHR5cGVkZWYgT3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uLlxuICogQHByb3BlcnR5IHtBcnJheTxOb2RlPiB8IG51bGwgfCB1bmRlZmluZWR9IFthbmNlc3RvcnNdXG4gKiAgIFN0YWNrIG9mIChpbmNsdXNpdmUpIGFuY2VzdG9yIG5vZGVzIHN1cnJvdW5kaW5nIHRoZSBtZXNzYWdlIChvcHRpb25hbCkuXG4gKiBAcHJvcGVydHkge0Vycm9yIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2NhdXNlXVxuICogICBPcmlnaW5hbCBlcnJvciBjYXVzZSBvZiB0aGUgbWVzc2FnZSAob3B0aW9uYWwpLlxuICogQHByb3BlcnR5IHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3BsYWNlXVxuICogICBQbGFjZSBvZiBtZXNzYWdlIChvcHRpb25hbCkuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtydWxlSWRdXG4gKiAgIENhdGVnb3J5IG9mIG1lc3NhZ2UgKG9wdGlvbmFsLCBleGFtcGxlOiBgJ215LXJ1bGUnYCkuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtzb3VyY2VdXG4gKiAgIE5hbWVzcGFjZSBvZiB3aG8gc2VudCB0aGUgbWVzc2FnZSAob3B0aW9uYWwsIGV4YW1wbGU6IGAnbXktcGFja2FnZSdgKS5cbiAqL1xuXG5pbXBvcnQge3N0cmluZ2lmeVBvc2l0aW9ufSBmcm9tICd1bmlzdC11dGlsLXN0cmluZ2lmeS1wb3NpdGlvbidcblxuLyoqXG4gKiBNZXNzYWdlLlxuICovXG5leHBvcnQgY2xhc3MgVkZpbGVNZXNzYWdlIGV4dGVuZHMgRXJyb3Ige1xuICAvKipcbiAgICogQ3JlYXRlIGEgbWVzc2FnZSBmb3IgYHJlYXNvbmAuXG4gICAqXG4gICAqID4gXHVEODNFXHVERUE2ICoqTm90ZSoqOiBhbHNvIGhhcyBvYnNvbGV0ZSBzaWduYXR1cmVzLlxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge09wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAgICogQHJldHVybnNcbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge1BvaW50IHwgUG9zaXRpb24gfCBudWxsIHwgdW5kZWZpbmVkfSBwbGFjZVxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnNcbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7Tm9kZSB8IE5vZGVMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGFyZW50XG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnNcbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnNcbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnNcbiAgICpcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZSB8IHN0cmluZ30gY2F1c2VPclJlYXNvblxuICAgKiAgIFJlYXNvbiBmb3IgbWVzc2FnZSwgc2hvdWxkIHVzZSBtYXJrZG93bi5cbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBPcHRpb25zIHwgUG9pbnQgfCBQb3NpdGlvbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zT3JQYXJlbnRPclBsYWNlXVxuICAgKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiAgIFBsYWNlIGluIGNvZGUgd2hlcmUgdGhlIG1lc3NhZ2Ugb3JpZ2luYXRlcyAoZXhhbXBsZTpcbiAgICogICBgJ215LXBhY2thZ2U6bXktcnVsZSdgIG9yIGAnbXktcnVsZSdgKS5cbiAgICogQHJldHVybnNcbiAgICogICBJbnN0YW5jZSBvZiBgVkZpbGVNZXNzYWdlYC5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5XG4gIGNvbnN0cnVjdG9yKGNhdXNlT3JSZWFzb24sIG9wdGlvbnNPclBhcmVudE9yUGxhY2UsIG9yaWdpbikge1xuICAgIHN1cGVyKClcblxuICAgIGlmICh0eXBlb2Ygb3B0aW9uc09yUGFyZW50T3JQbGFjZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIG9yaWdpbiA9IG9wdGlvbnNPclBhcmVudE9yUGxhY2VcbiAgICAgIG9wdGlvbnNPclBhcmVudE9yUGxhY2UgPSB1bmRlZmluZWRcbiAgICB9XG5cbiAgICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgICBsZXQgcmVhc29uID0gJydcbiAgICAvKiogQHR5cGUge09wdGlvbnN9ICovXG4gICAgbGV0IG9wdGlvbnMgPSB7fVxuICAgIGxldCBsZWdhY3lDYXVzZSA9IGZhbHNlXG5cbiAgICBpZiAob3B0aW9uc09yUGFyZW50T3JQbGFjZSkge1xuICAgICAgLy8gUG9pbnQuXG4gICAgICBpZiAoXG4gICAgICAgICdsaW5lJyBpbiBvcHRpb25zT3JQYXJlbnRPclBsYWNlICYmXG4gICAgICAgICdjb2x1bW4nIGluIG9wdGlvbnNPclBhcmVudE9yUGxhY2VcbiAgICAgICkge1xuICAgICAgICBvcHRpb25zID0ge3BsYWNlOiBvcHRpb25zT3JQYXJlbnRPclBsYWNlfVxuICAgICAgfVxuICAgICAgLy8gUG9zaXRpb24uXG4gICAgICBlbHNlIGlmIChcbiAgICAgICAgJ3N0YXJ0JyBpbiBvcHRpb25zT3JQYXJlbnRPclBsYWNlICYmXG4gICAgICAgICdlbmQnIGluIG9wdGlvbnNPclBhcmVudE9yUGxhY2VcbiAgICAgICkge1xuICAgICAgICBvcHRpb25zID0ge3BsYWNlOiBvcHRpb25zT3JQYXJlbnRPclBsYWNlfVxuICAgICAgfVxuICAgICAgLy8gTm9kZS5cbiAgICAgIGVsc2UgaWYgKCd0eXBlJyBpbiBvcHRpb25zT3JQYXJlbnRPclBsYWNlKSB7XG4gICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgYW5jZXN0b3JzOiBbb3B0aW9uc09yUGFyZW50T3JQbGFjZV0sXG4gICAgICAgICAgcGxhY2U6IG9wdGlvbnNPclBhcmVudE9yUGxhY2UucG9zaXRpb25cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gT3B0aW9ucy5cbiAgICAgIGVsc2Uge1xuICAgICAgICBvcHRpb25zID0gey4uLm9wdGlvbnNPclBhcmVudE9yUGxhY2V9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBjYXVzZU9yUmVhc29uID09PSAnc3RyaW5nJykge1xuICAgICAgcmVhc29uID0gY2F1c2VPclJlYXNvblxuICAgIH1cbiAgICAvLyBFcnJvci5cbiAgICBlbHNlIGlmICghb3B0aW9ucy5jYXVzZSAmJiBjYXVzZU9yUmVhc29uKSB7XG4gICAgICBsZWdhY3lDYXVzZSA9IHRydWVcbiAgICAgIHJlYXNvbiA9IGNhdXNlT3JSZWFzb24ubWVzc2FnZVxuICAgICAgb3B0aW9ucy5jYXVzZSA9IGNhdXNlT3JSZWFzb25cbiAgICB9XG5cbiAgICBpZiAoIW9wdGlvbnMucnVsZUlkICYmICFvcHRpb25zLnNvdXJjZSAmJiB0eXBlb2Ygb3JpZ2luID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgaW5kZXggPSBvcmlnaW4uaW5kZXhPZignOicpXG5cbiAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgb3B0aW9ucy5ydWxlSWQgPSBvcmlnaW5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9wdGlvbnMuc291cmNlID0gb3JpZ2luLnNsaWNlKDAsIGluZGV4KVxuICAgICAgICBvcHRpb25zLnJ1bGVJZCA9IG9yaWdpbi5zbGljZShpbmRleCArIDEpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFvcHRpb25zLnBsYWNlICYmIG9wdGlvbnMuYW5jZXN0b3JzICYmIG9wdGlvbnMuYW5jZXN0b3JzKSB7XG4gICAgICBjb25zdCBwYXJlbnQgPSBvcHRpb25zLmFuY2VzdG9yc1tvcHRpb25zLmFuY2VzdG9ycy5sZW5ndGggLSAxXVxuXG4gICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgIG9wdGlvbnMucGxhY2UgPSBwYXJlbnQucG9zaXRpb25cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzdGFydCA9XG4gICAgICBvcHRpb25zLnBsYWNlICYmICdzdGFydCcgaW4gb3B0aW9ucy5wbGFjZVxuICAgICAgICA/IG9wdGlvbnMucGxhY2Uuc3RhcnRcbiAgICAgICAgOiBvcHRpb25zLnBsYWNlXG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtZXhwcmVzc2lvbnMgKi9cbiAgICAvKipcbiAgICAgKiBTdGFjayBvZiBhbmNlc3RvciBub2RlcyBzdXJyb3VuZGluZyB0aGUgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtBcnJheTxOb2RlPiB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmFuY2VzdG9ycyA9IG9wdGlvbnMuYW5jZXN0b3JzIHx8IHVuZGVmaW5lZFxuXG4gICAgLyoqXG4gICAgICogT3JpZ2luYWwgZXJyb3IgY2F1c2Ugb2YgdGhlIG1lc3NhZ2UuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7RXJyb3IgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5jYXVzZSA9IG9wdGlvbnMuY2F1c2UgfHwgdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBTdGFydGluZyBjb2x1bW4gb2YgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtudW1iZXIgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5jb2x1bW4gPSBzdGFydCA/IHN0YXJ0LmNvbHVtbiA6IHVuZGVmaW5lZFxuXG4gICAgLyoqXG4gICAgICogU3RhdGUgb2YgcHJvYmxlbS5cbiAgICAgKlxuICAgICAqICogYHRydWVgIFx1MjAxNCBlcnJvciwgZmlsZSBub3QgdXNhYmxlXG4gICAgICogKiBgZmFsc2VgIFx1MjAxNCB3YXJuaW5nLCBjaGFuZ2UgbWF5IGJlIG5lZWRlZFxuICAgICAqICogYHVuZGVmaW5lZGAgXHUyMDE0IGNoYW5nZSBsaWtlbHkgbm90IG5lZWRlZFxuICAgICAqXG4gICAgICogQHR5cGUge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMuZmF0YWwgPSB1bmRlZmluZWRcblxuICAgIC8qKlxuICAgICAqIFBhdGggb2YgYSBmaWxlICh1c2VkIHRocm91Z2hvdXQgdGhlIGBWRmlsZWAgZWNvc3lzdGVtKS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5maWxlXG5cbiAgICAvLyBGaWVsZCBmcm9tIGBFcnJvcmAuXG4gICAgLyoqXG4gICAgICogUmVhc29uIGZvciBtZXNzYWdlLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLm1lc3NhZ2UgPSByZWFzb25cblxuICAgIC8qKlxuICAgICAqIFN0YXJ0aW5nIGxpbmUgb2YgZXJyb3IuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7bnVtYmVyIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMubGluZSA9IHN0YXJ0ID8gc3RhcnQubGluZSA6IHVuZGVmaW5lZFxuXG4gICAgLy8gRmllbGQgZnJvbSBgRXJyb3JgLlxuICAgIC8qKlxuICAgICAqIFNlcmlhbGl6ZWQgcG9zaXRpb25hbCBpbmZvIG9mIG1lc3NhZ2UuXG4gICAgICpcbiAgICAgKiBPbiBub3JtYWwgZXJyb3JzLCB0aGlzIHdvdWxkIGJlIHNvbWV0aGluZyBsaWtlIGBQYXJzZUVycm9yYCwgYnVpdCBpblxuICAgICAqIGBWRmlsZWAgbWVzc2FnZXMgd2UgdXNlIHRoaXMgc3BhY2UgdG8gc2hvdyB3aGVyZSBhbiBlcnJvciBoYXBwZW5lZC5cbiAgICAgKi9cbiAgICB0aGlzLm5hbWUgPSBzdHJpbmdpZnlQb3NpdGlvbihvcHRpb25zLnBsYWNlKSB8fCAnMToxJ1xuXG4gICAgLyoqXG4gICAgICogUGxhY2Ugb2YgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtQb2ludCB8IFBvc2l0aW9uIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMucGxhY2UgPSBvcHRpb25zLnBsYWNlIHx8IHVuZGVmaW5lZFxuXG4gICAgLyoqXG4gICAgICogUmVhc29uIGZvciBtZXNzYWdlLCBzaG91bGQgdXNlIG1hcmtkb3duLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLnJlYXNvbiA9IHRoaXMubWVzc2FnZVxuXG4gICAgLyoqXG4gICAgICogQ2F0ZWdvcnkgb2YgbWVzc2FnZSAoZXhhbXBsZTogYCdteS1ydWxlJ2ApLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLnJ1bGVJZCA9IG9wdGlvbnMucnVsZUlkIHx8IHVuZGVmaW5lZFxuXG4gICAgLyoqXG4gICAgICogTmFtZXNwYWNlIG9mIG1lc3NhZ2UgKGV4YW1wbGU6IGAnbXktcGFja2FnZSdgKS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5zb3VyY2UgPSBvcHRpb25zLnNvdXJjZSB8fCB1bmRlZmluZWRcblxuICAgIC8vIEZpZWxkIGZyb20gYEVycm9yYC5cbiAgICAvKipcbiAgICAgKiBTdGFjayBvZiBtZXNzYWdlLlxuICAgICAqXG4gICAgICogVGhpcyBpcyB1c2VkIGJ5IG5vcm1hbCBlcnJvcnMgdG8gc2hvdyB3aGVyZSBzb21ldGhpbmcgaGFwcGVuZWQgaW5cbiAgICAgKiBwcm9ncmFtbWluZyBjb2RlLCBpcnJlbGV2YW50IGZvciBgVkZpbGVgIG1lc3NhZ2VzLFxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLnN0YWNrID1cbiAgICAgIGxlZ2FjeUNhdXNlICYmIG9wdGlvbnMuY2F1c2UgJiYgdHlwZW9mIG9wdGlvbnMuY2F1c2Uuc3RhY2sgPT09ICdzdHJpbmcnXG4gICAgICAgID8gb3B0aW9ucy5jYXVzZS5zdGFja1xuICAgICAgICA6ICcnXG5cbiAgICAvLyBUaGUgZm9sbG93aW5nIGZpZWxkcyBhcmUgXHUyMDFDd2VsbCBrbm93blx1MjAxRC5cbiAgICAvLyBOb3Qgc3RhbmRhcmQuXG4gICAgLy8gRmVlbCBmcmVlIHRvIGFkZCBvdGhlciBub24tc3RhbmRhcmQgZmllbGRzIHRvIHlvdXIgbWVzc2FnZXMuXG5cbiAgICAvKipcbiAgICAgKiBTcGVjaWZ5IHRoZSBzb3VyY2UgdmFsdWUgdGhhdFx1MjAxOXMgYmVpbmcgcmVwb3J0ZWQsIHdoaWNoIGlzIGRlZW1lZFxuICAgICAqIGluY29ycmVjdC5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5hY3R1YWxcblxuICAgIC8qKlxuICAgICAqIFN1Z2dlc3QgYWNjZXB0YWJsZSB2YWx1ZXMgdGhhdCBjYW4gYmUgdXNlZCBpbnN0ZWFkIG9mIGBhY3R1YWxgLlxuICAgICAqXG4gICAgICogQHR5cGUge0FycmF5PHN0cmluZz4gfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5leHBlY3RlZFxuXG4gICAgLyoqXG4gICAgICogTG9uZyBmb3JtIGRlc2NyaXB0aW9uIG9mIHRoZSBtZXNzYWdlICh5b3Ugc2hvdWxkIHVzZSBtYXJrZG93bikuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMubm90ZVxuXG4gICAgLyoqXG4gICAgICogTGluayB0byBkb2NzIGZvciB0aGUgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiB0aGlzIG11c3QgYmUgYW4gYWJzb2x1dGUgVVJMIHRoYXQgY2FuIGJlIHBhc3NlZCBhcyBgeGBcbiAgICAgKiA+IHRvIGBuZXcgVVJMKHgpYC5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy51cmxcbiAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLXVudXNlZC1leHByZXNzaW9ucyAqL1xuICB9XG59XG5cblZGaWxlTWVzc2FnZS5wcm90b3R5cGUuZmlsZSA9ICcnXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLm5hbWUgPSAnJ1xuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5yZWFzb24gPSAnJ1xuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5tZXNzYWdlID0gJydcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUuc3RhY2sgPSAnJ1xuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5jb2x1bW4gPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUubGluZSA9IHVuZGVmaW5lZFxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5hbmNlc3RvcnMgPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUuY2F1c2UgPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUuZmF0YWwgPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUucGxhY2UgPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUucnVsZUlkID0gdW5kZWZpbmVkXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLnNvdXJjZSA9IHVuZGVmaW5lZFxuIiwgIi8vIEEgZGVyaXZhdGl2ZSB3b3JrIGJhc2VkIG9uOlxuLy8gPGh0dHBzOi8vZ2l0aHViLmNvbS9icm93c2VyaWZ5L3BhdGgtYnJvd3NlcmlmeT4uXG4vLyBXaGljaCBpcyBsaWNlbnNlZDpcbi8vXG4vLyBNSVQgTGljZW5zZVxuLy9cbi8vIENvcHlyaWdodCAoYykgMjAxMyBKYW1lcyBIYWxsaWRheVxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2Zcbi8vIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW5cbi8vIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG9cbi8vIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mXG4vLyB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sXG4vLyBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbi8vIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1Ncbi8vIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUlxuLy8gQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSXG4vLyBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTlxuLy8gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cbi8vIEEgZGVyaXZhdGl2ZSB3b3JrIGJhc2VkIG9uOlxuLy9cbi8vIFBhcnRzIG9mIHRoYXQgYXJlIGV4dHJhY3RlZCBmcm9tIE5vZGVcdTIwMTlzIGludGVybmFsIGBwYXRoYCBtb2R1bGU6XG4vLyA8aHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2Jsb2IvbWFzdGVyL2xpYi9wYXRoLmpzPi5cbi8vIFdoaWNoIGlzIGxpY2Vuc2VkOlxuLy9cbi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG5leHBvcnQgY29uc3QgcGF0aCA9IHtiYXNlbmFtZSwgZGlybmFtZSwgZXh0bmFtZSwgam9pbiwgc2VwOiAnLyd9XG5cbi8qIGVzbGludC1kaXNhYmxlIG1heC1kZXB0aCwgY29tcGxleGl0eSAqL1xuXG4vKipcbiAqIEdldCB0aGUgYmFzZW5hbWUgZnJvbSBhIHBhdGguXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqICAgRmlsZSBwYXRoLlxuICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbZXh0XVxuICogICBFeHRlbnNpb24gdG8gc3RyaXAuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTdGVtIG9yIGJhc2VuYW1lLlxuICovXG5mdW5jdGlvbiBiYXNlbmFtZShwYXRoLCBleHQpIHtcbiAgaWYgKGV4dCAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBleHQgIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignXCJleHRcIiBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nJylcbiAgfVxuXG4gIGFzc2VydFBhdGgocGF0aClcbiAgbGV0IHN0YXJ0ID0gMFxuICBsZXQgZW5kID0gLTFcbiAgbGV0IGluZGV4ID0gcGF0aC5sZW5ndGhcbiAgLyoqIEB0eXBlIHtib29sZWFuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgc2Vlbk5vblNsYXNoXG5cbiAgaWYgKGV4dCA9PT0gdW5kZWZpbmVkIHx8IGV4dC5sZW5ndGggPT09IDAgfHwgZXh0Lmxlbmd0aCA+IHBhdGgubGVuZ3RoKSB7XG4gICAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICAgIGlmIChwYXRoLmNvZGVQb2ludEF0KGluZGV4KSA9PT0gNDcgLyogYC9gICovKSB7XG4gICAgICAgIC8vIElmIHdlIHJlYWNoZWQgYSBwYXRoIHNlcGFyYXRvciB0aGF0IHdhcyBub3QgcGFydCBvZiBhIHNldCBvZiBwYXRoXG4gICAgICAgIC8vIHNlcGFyYXRvcnMgYXQgdGhlIGVuZCBvZiB0aGUgc3RyaW5nLCBzdG9wIG5vdy5cbiAgICAgICAgaWYgKHNlZW5Ob25TbGFzaCkge1xuICAgICAgICAgIHN0YXJ0ID0gaW5kZXggKyAxXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChlbmQgPCAwKSB7XG4gICAgICAgIC8vIFdlIHNhdyB0aGUgZmlyc3Qgbm9uLXBhdGggc2VwYXJhdG9yLCBtYXJrIHRoaXMgYXMgdGhlIGVuZCBvZiBvdXJcbiAgICAgICAgLy8gcGF0aCBjb21wb25lbnQuXG4gICAgICAgIHNlZW5Ob25TbGFzaCA9IHRydWVcbiAgICAgICAgZW5kID0gaW5kZXggKyAxXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGVuZCA8IDAgPyAnJyA6IHBhdGguc2xpY2Uoc3RhcnQsIGVuZClcbiAgfVxuXG4gIGlmIChleHQgPT09IHBhdGgpIHtcbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIGxldCBmaXJzdE5vblNsYXNoRW5kID0gLTFcbiAgbGV0IGV4dEluZGV4ID0gZXh0Lmxlbmd0aCAtIDFcblxuICB3aGlsZSAoaW5kZXgtLSkge1xuICAgIGlmIChwYXRoLmNvZGVQb2ludEF0KGluZGV4KSA9PT0gNDcgLyogYC9gICovKSB7XG4gICAgICAvLyBJZiB3ZSByZWFjaGVkIGEgcGF0aCBzZXBhcmF0b3IgdGhhdCB3YXMgbm90IHBhcnQgb2YgYSBzZXQgb2YgcGF0aFxuICAgICAgLy8gc2VwYXJhdG9ycyBhdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcsIHN0b3Agbm93LlxuICAgICAgaWYgKHNlZW5Ob25TbGFzaCkge1xuICAgICAgICBzdGFydCA9IGluZGV4ICsgMVxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZmlyc3ROb25TbGFzaEVuZCA8IDApIHtcbiAgICAgICAgLy8gV2Ugc2F3IHRoZSBmaXJzdCBub24tcGF0aCBzZXBhcmF0b3IsIHJlbWVtYmVyIHRoaXMgaW5kZXggaW4gY2FzZVxuICAgICAgICAvLyB3ZSBuZWVkIGl0IGlmIHRoZSBleHRlbnNpb24gZW5kcyB1cCBub3QgbWF0Y2hpbmcuXG4gICAgICAgIHNlZW5Ob25TbGFzaCA9IHRydWVcbiAgICAgICAgZmlyc3ROb25TbGFzaEVuZCA9IGluZGV4ICsgMVxuICAgICAgfVxuXG4gICAgICBpZiAoZXh0SW5kZXggPiAtMSkge1xuICAgICAgICAvLyBUcnkgdG8gbWF0Y2ggdGhlIGV4cGxpY2l0IGV4dGVuc2lvbi5cbiAgICAgICAgaWYgKHBhdGguY29kZVBvaW50QXQoaW5kZXgpID09PSBleHQuY29kZVBvaW50QXQoZXh0SW5kZXgtLSkpIHtcbiAgICAgICAgICBpZiAoZXh0SW5kZXggPCAwKSB7XG4gICAgICAgICAgICAvLyBXZSBtYXRjaGVkIHRoZSBleHRlbnNpb24sIHNvIG1hcmsgdGhpcyBhcyB0aGUgZW5kIG9mIG91ciBwYXRoXG4gICAgICAgICAgICAvLyBjb21wb25lbnRcbiAgICAgICAgICAgIGVuZCA9IGluZGV4XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEV4dGVuc2lvbiBkb2VzIG5vdCBtYXRjaCwgc28gb3VyIHJlc3VsdCBpcyB0aGUgZW50aXJlIHBhdGhcbiAgICAgICAgICAvLyBjb21wb25lbnRcbiAgICAgICAgICBleHRJbmRleCA9IC0xXG4gICAgICAgICAgZW5kID0gZmlyc3ROb25TbGFzaEVuZFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHN0YXJ0ID09PSBlbmQpIHtcbiAgICBlbmQgPSBmaXJzdE5vblNsYXNoRW5kXG4gIH0gZWxzZSBpZiAoZW5kIDwgMCkge1xuICAgIGVuZCA9IHBhdGgubGVuZ3RoXG4gIH1cblxuICByZXR1cm4gcGF0aC5zbGljZShzdGFydCwgZW5kKVxufVxuXG4vKipcbiAqIEdldCB0aGUgZGlybmFtZSBmcm9tIGEgcGF0aC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICogICBGaWxlIHBhdGguXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBGaWxlIHBhdGguXG4gKi9cbmZ1bmN0aW9uIGRpcm5hbWUocGF0aCkge1xuICBhc3NlcnRQYXRoKHBhdGgpXG5cbiAgaWYgKHBhdGgubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuICcuJ1xuICB9XG5cbiAgbGV0IGVuZCA9IC0xXG4gIGxldCBpbmRleCA9IHBhdGgubGVuZ3RoXG4gIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IHVubWF0Y2hlZFNsYXNoXG5cbiAgLy8gUHJlZml4IGAtLWAgaXMgaW1wb3J0YW50IHRvIG5vdCBydW4gb24gYDBgLlxuICB3aGlsZSAoLS1pbmRleCkge1xuICAgIGlmIChwYXRoLmNvZGVQb2ludEF0KGluZGV4KSA9PT0gNDcgLyogYC9gICovKSB7XG4gICAgICBpZiAodW5tYXRjaGVkU2xhc2gpIHtcbiAgICAgICAgZW5kID0gaW5kZXhcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKCF1bm1hdGNoZWRTbGFzaCkge1xuICAgICAgLy8gV2Ugc2F3IHRoZSBmaXJzdCBub24tcGF0aCBzZXBhcmF0b3JcbiAgICAgIHVubWF0Y2hlZFNsYXNoID0gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlbmQgPCAwXG4gICAgPyBwYXRoLmNvZGVQb2ludEF0KDApID09PSA0NyAvKiBgL2AgKi9cbiAgICAgID8gJy8nXG4gICAgICA6ICcuJ1xuICAgIDogZW5kID09PSAxICYmIHBhdGguY29kZVBvaW50QXQoMCkgPT09IDQ3IC8qIGAvYCAqL1xuICAgID8gJy8vJ1xuICAgIDogcGF0aC5zbGljZSgwLCBlbmQpXG59XG5cbi8qKlxuICogR2V0IGFuIGV4dG5hbWUgZnJvbSBhIHBhdGguXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqICAgRmlsZSBwYXRoLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRXh0bmFtZS5cbiAqL1xuZnVuY3Rpb24gZXh0bmFtZShwYXRoKSB7XG4gIGFzc2VydFBhdGgocGF0aClcblxuICBsZXQgaW5kZXggPSBwYXRoLmxlbmd0aFxuXG4gIGxldCBlbmQgPSAtMVxuICBsZXQgc3RhcnRQYXJ0ID0gMFxuICBsZXQgc3RhcnREb3QgPSAtMVxuICAvLyBUcmFjayB0aGUgc3RhdGUgb2YgY2hhcmFjdGVycyAoaWYgYW55KSB3ZSBzZWUgYmVmb3JlIG91ciBmaXJzdCBkb3QgYW5kXG4gIC8vIGFmdGVyIGFueSBwYXRoIHNlcGFyYXRvciB3ZSBmaW5kLlxuICBsZXQgcHJlRG90U3RhdGUgPSAwXG4gIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IHVubWF0Y2hlZFNsYXNoXG5cbiAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICBjb25zdCBjb2RlID0gcGF0aC5jb2RlUG9pbnRBdChpbmRleClcblxuICAgIGlmIChjb2RlID09PSA0NyAvKiBgL2AgKi8pIHtcbiAgICAgIC8vIElmIHdlIHJlYWNoZWQgYSBwYXRoIHNlcGFyYXRvciB0aGF0IHdhcyBub3QgcGFydCBvZiBhIHNldCBvZiBwYXRoXG4gICAgICAvLyBzZXBhcmF0b3JzIGF0IHRoZSBlbmQgb2YgdGhlIHN0cmluZywgc3RvcCBub3cuXG4gICAgICBpZiAodW5tYXRjaGVkU2xhc2gpIHtcbiAgICAgICAgc3RhcnRQYXJ0ID0gaW5kZXggKyAxXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgaWYgKGVuZCA8IDApIHtcbiAgICAgIC8vIFdlIHNhdyB0aGUgZmlyc3Qgbm9uLXBhdGggc2VwYXJhdG9yLCBtYXJrIHRoaXMgYXMgdGhlIGVuZCBvZiBvdXJcbiAgICAgIC8vIGV4dGVuc2lvbi5cbiAgICAgIHVubWF0Y2hlZFNsYXNoID0gdHJ1ZVxuICAgICAgZW5kID0gaW5kZXggKyAxXG4gICAgfVxuXG4gICAgaWYgKGNvZGUgPT09IDQ2IC8qIGAuYCAqLykge1xuICAgICAgLy8gSWYgdGhpcyBpcyBvdXIgZmlyc3QgZG90LCBtYXJrIGl0IGFzIHRoZSBzdGFydCBvZiBvdXIgZXh0ZW5zaW9uLlxuICAgICAgaWYgKHN0YXJ0RG90IDwgMCkge1xuICAgICAgICBzdGFydERvdCA9IGluZGV4XG4gICAgICB9IGVsc2UgaWYgKHByZURvdFN0YXRlICE9PSAxKSB7XG4gICAgICAgIHByZURvdFN0YXRlID0gMVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoc3RhcnREb3QgPiAtMSkge1xuICAgICAgLy8gV2Ugc2F3IGEgbm9uLWRvdCBhbmQgbm9uLXBhdGggc2VwYXJhdG9yIGJlZm9yZSBvdXIgZG90LCBzbyB3ZSBzaG91bGRcbiAgICAgIC8vIGhhdmUgYSBnb29kIGNoYW5jZSBhdCBoYXZpbmcgYSBub24tZW1wdHkgZXh0ZW5zaW9uLlxuICAgICAgcHJlRG90U3RhdGUgPSAtMVxuICAgIH1cbiAgfVxuXG4gIGlmIChcbiAgICBzdGFydERvdCA8IDAgfHxcbiAgICBlbmQgPCAwIHx8XG4gICAgLy8gV2Ugc2F3IGEgbm9uLWRvdCBjaGFyYWN0ZXIgaW1tZWRpYXRlbHkgYmVmb3JlIHRoZSBkb3QuXG4gICAgcHJlRG90U3RhdGUgPT09IDAgfHxcbiAgICAvLyBUaGUgKHJpZ2h0LW1vc3QpIHRyaW1tZWQgcGF0aCBjb21wb25lbnQgaXMgZXhhY3RseSBgLi5gLlxuICAgIChwcmVEb3RTdGF0ZSA9PT0gMSAmJiBzdGFydERvdCA9PT0gZW5kIC0gMSAmJiBzdGFydERvdCA9PT0gc3RhcnRQYXJ0ICsgMSlcbiAgKSB7XG4gICAgcmV0dXJuICcnXG4gIH1cblxuICByZXR1cm4gcGF0aC5zbGljZShzdGFydERvdCwgZW5kKVxufVxuXG4vKipcbiAqIEpvaW4gc2VnbWVudHMgZnJvbSBhIHBhdGguXG4gKlxuICogQHBhcmFtIHtBcnJheTxzdHJpbmc+fSBzZWdtZW50c1xuICogICBQYXRoIHNlZ21lbnRzLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRmlsZSBwYXRoLlxuICovXG5mdW5jdGlvbiBqb2luKC4uLnNlZ21lbnRzKSB7XG4gIGxldCBpbmRleCA9IC0xXG4gIC8qKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgam9pbmVkXG5cbiAgd2hpbGUgKCsraW5kZXggPCBzZWdtZW50cy5sZW5ndGgpIHtcbiAgICBhc3NlcnRQYXRoKHNlZ21lbnRzW2luZGV4XSlcblxuICAgIGlmIChzZWdtZW50c1tpbmRleF0pIHtcbiAgICAgIGpvaW5lZCA9XG4gICAgICAgIGpvaW5lZCA9PT0gdW5kZWZpbmVkID8gc2VnbWVudHNbaW5kZXhdIDogam9pbmVkICsgJy8nICsgc2VnbWVudHNbaW5kZXhdXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGpvaW5lZCA9PT0gdW5kZWZpbmVkID8gJy4nIDogbm9ybWFsaXplKGpvaW5lZClcbn1cblxuLyoqXG4gKiBOb3JtYWxpemUgYSBiYXNpYyBmaWxlIHBhdGguXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqICAgRmlsZSBwYXRoLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRmlsZSBwYXRoLlxuICovXG4vLyBOb3RlOiBgbm9ybWFsaXplYCBpcyBub3QgZXhwb3NlZCBhcyBgcGF0aC5ub3JtYWxpemVgLCBzbyBzb21lIGNvZGUgaXNcbi8vIG1hbnVhbGx5IHJlbW92ZWQgZnJvbSBpdC5cbmZ1bmN0aW9uIG5vcm1hbGl6ZShwYXRoKSB7XG4gIGFzc2VydFBhdGgocGF0aClcblxuICBjb25zdCBhYnNvbHV0ZSA9IHBhdGguY29kZVBvaW50QXQoMCkgPT09IDQ3IC8qIGAvYCAqL1xuXG4gIC8vIE5vcm1hbGl6ZSB0aGUgcGF0aCBhY2NvcmRpbmcgdG8gUE9TSVggcnVsZXMuXG4gIGxldCB2YWx1ZSA9IG5vcm1hbGl6ZVN0cmluZyhwYXRoLCAhYWJzb2x1dGUpXG5cbiAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMCAmJiAhYWJzb2x1dGUpIHtcbiAgICB2YWx1ZSA9ICcuJ1xuICB9XG5cbiAgaWYgKHZhbHVlLmxlbmd0aCA+IDAgJiYgcGF0aC5jb2RlUG9pbnRBdChwYXRoLmxlbmd0aCAtIDEpID09PSA0NyAvKiAvICovKSB7XG4gICAgdmFsdWUgKz0gJy8nXG4gIH1cblxuICByZXR1cm4gYWJzb2x1dGUgPyAnLycgKyB2YWx1ZSA6IHZhbHVlXG59XG5cbi8qKlxuICogUmVzb2x2ZSBgLmAgYW5kIGAuLmAgZWxlbWVudHMgaW4gYSBwYXRoIHdpdGggZGlyZWN0b3J5IG5hbWVzLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoXG4gKiAgIEZpbGUgcGF0aC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gYWxsb3dBYm92ZVJvb3RcbiAqICAgV2hldGhlciBgLi5gIGNhbiBtb3ZlIGFib3ZlIHJvb3QuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBGaWxlIHBhdGguXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZVN0cmluZyhwYXRoLCBhbGxvd0Fib3ZlUm9vdCkge1xuICBsZXQgcmVzdWx0ID0gJydcbiAgbGV0IGxhc3RTZWdtZW50TGVuZ3RoID0gMFxuICBsZXQgbGFzdFNsYXNoID0gLTFcbiAgbGV0IGRvdHMgPSAwXG4gIGxldCBpbmRleCA9IC0xXG4gIC8qKiBAdHlwZSB7bnVtYmVyIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgY29kZVxuICAvKiogQHR5cGUge251bWJlcn0gKi9cbiAgbGV0IGxhc3RTbGFzaEluZGV4XG5cbiAgd2hpbGUgKCsraW5kZXggPD0gcGF0aC5sZW5ndGgpIHtcbiAgICBpZiAoaW5kZXggPCBwYXRoLmxlbmd0aCkge1xuICAgICAgY29kZSA9IHBhdGguY29kZVBvaW50QXQoaW5kZXgpXG4gICAgfSBlbHNlIGlmIChjb2RlID09PSA0NyAvKiBgL2AgKi8pIHtcbiAgICAgIGJyZWFrXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvZGUgPSA0NyAvKiBgL2AgKi9cbiAgICB9XG5cbiAgICBpZiAoY29kZSA9PT0gNDcgLyogYC9gICovKSB7XG4gICAgICBpZiAobGFzdFNsYXNoID09PSBpbmRleCAtIDEgfHwgZG90cyA9PT0gMSkge1xuICAgICAgICAvLyBFbXB0eS5cbiAgICAgIH0gZWxzZSBpZiAobGFzdFNsYXNoICE9PSBpbmRleCAtIDEgJiYgZG90cyA9PT0gMikge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgcmVzdWx0Lmxlbmd0aCA8IDIgfHxcbiAgICAgICAgICBsYXN0U2VnbWVudExlbmd0aCAhPT0gMiB8fFxuICAgICAgICAgIHJlc3VsdC5jb2RlUG9pbnRBdChyZXN1bHQubGVuZ3RoIC0gMSkgIT09IDQ2IC8qIGAuYCAqLyB8fFxuICAgICAgICAgIHJlc3VsdC5jb2RlUG9pbnRBdChyZXN1bHQubGVuZ3RoIC0gMikgIT09IDQ2IC8qIGAuYCAqL1xuICAgICAgICApIHtcbiAgICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDIpIHtcbiAgICAgICAgICAgIGxhc3RTbGFzaEluZGV4ID0gcmVzdWx0Lmxhc3RJbmRleE9mKCcvJylcblxuICAgICAgICAgICAgaWYgKGxhc3RTbGFzaEluZGV4ICE9PSByZXN1bHQubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICBpZiAobGFzdFNsYXNoSW5kZXggPCAwKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gJydcbiAgICAgICAgICAgICAgICBsYXN0U2VnbWVudExlbmd0aCA9IDBcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuc2xpY2UoMCwgbGFzdFNsYXNoSW5kZXgpXG4gICAgICAgICAgICAgICAgbGFzdFNlZ21lbnRMZW5ndGggPSByZXN1bHQubGVuZ3RoIC0gMSAtIHJlc3VsdC5sYXN0SW5kZXhPZignLycpXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBsYXN0U2xhc2ggPSBpbmRleFxuICAgICAgICAgICAgICBkb3RzID0gMFxuICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJlc3VsdCA9ICcnXG4gICAgICAgICAgICBsYXN0U2VnbWVudExlbmd0aCA9IDBcbiAgICAgICAgICAgIGxhc3RTbGFzaCA9IGluZGV4XG4gICAgICAgICAgICBkb3RzID0gMFxuICAgICAgICAgICAgY29udGludWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYWxsb3dBYm92ZVJvb3QpIHtcbiAgICAgICAgICByZXN1bHQgPSByZXN1bHQubGVuZ3RoID4gMCA/IHJlc3VsdCArICcvLi4nIDogJy4uJ1xuICAgICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoID0gMlxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICByZXN1bHQgKz0gJy8nICsgcGF0aC5zbGljZShsYXN0U2xhc2ggKyAxLCBpbmRleClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN1bHQgPSBwYXRoLnNsaWNlKGxhc3RTbGFzaCArIDEsIGluZGV4KVxuICAgICAgICB9XG5cbiAgICAgICAgbGFzdFNlZ21lbnRMZW5ndGggPSBpbmRleCAtIGxhc3RTbGFzaCAtIDFcbiAgICAgIH1cblxuICAgICAgbGFzdFNsYXNoID0gaW5kZXhcbiAgICAgIGRvdHMgPSAwXG4gICAgfSBlbHNlIGlmIChjb2RlID09PSA0NiAvKiBgLmAgKi8gJiYgZG90cyA+IC0xKSB7XG4gICAgICBkb3RzKytcbiAgICB9IGVsc2Uge1xuICAgICAgZG90cyA9IC0xXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG4vKipcbiAqIE1ha2Ugc3VyZSBgcGF0aGAgaXMgYSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqICAgRmlsZSBwYXRoLlxuICogQHJldHVybnMge2Fzc2VydHMgcGF0aCBpcyBzdHJpbmd9XG4gKiAgIE5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIGFzc2VydFBhdGgocGF0aCkge1xuICBpZiAodHlwZW9mIHBhdGggIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICdQYXRoIG11c3QgYmUgYSBzdHJpbmcuIFJlY2VpdmVkICcgKyBKU09OLnN0cmluZ2lmeShwYXRoKVxuICAgIClcbiAgfVxufVxuXG4vKiBlc2xpbnQtZW5hYmxlIG1heC1kZXB0aCwgY29tcGxleGl0eSAqL1xuIiwgIi8vIFNvbWV3aGF0IGJhc2VkIG9uOlxuLy8gPGh0dHBzOi8vZ2l0aHViLmNvbS9kZWZ1bmN0em9tYmllL25vZGUtcHJvY2Vzcy9ibG9iL21hc3Rlci9icm93c2VyLmpzPi5cbi8vIEJ1dCBJIGRvblx1MjAxOXQgdGhpbmsgb25lIHRpbnkgbGluZSBvZiBjb2RlIGNhbiBiZSBjb3B5cmlnaHRlZC4gXHVEODNEXHVERTA1XG5leHBvcnQgY29uc3QgcHJvYyA9IHtjd2R9XG5cbmZ1bmN0aW9uIGN3ZCgpIHtcbiAgcmV0dXJuICcvJ1xufVxuIiwgIi8qKlxuICogQ2hlY2tzIGlmIGEgdmFsdWUgaGFzIHRoZSBzaGFwZSBvZiBhIFdIQVRXRyBVUkwgb2JqZWN0LlxuICpcbiAqIFVzaW5nIGEgc3ltYm9sIG9yIGluc3RhbmNlb2Ygd291bGQgbm90IGJlIGFibGUgdG8gcmVjb2duaXplIFVSTCBvYmplY3RzXG4gKiBjb21pbmcgZnJvbSBvdGhlciBpbXBsZW1lbnRhdGlvbnMgKGUuZy4gaW4gRWxlY3Ryb24pLCBzbyBpbnN0ZWFkIHdlIGFyZVxuICogY2hlY2tpbmcgc29tZSB3ZWxsIGtub3duIHByb3BlcnRpZXMgZm9yIGEgbGFjayBvZiBhIGJldHRlciB0ZXN0LlxuICpcbiAqIFdlIHVzZSBgaHJlZmAgYW5kIGBwcm90b2NvbGAgYXMgdGhleSBhcmUgdGhlIG9ubHkgcHJvcGVydGllcyB0aGF0IGFyZVxuICogZWFzeSB0byByZXRyaWV2ZSBhbmQgY2FsY3VsYXRlIGR1ZSB0byB0aGUgbGF6eSBuYXR1cmUgb2YgdGhlIGdldHRlcnMuXG4gKlxuICogV2UgY2hlY2sgZm9yIGF1dGggYXR0cmlidXRlIHRvIGRpc3Rpbmd1aXNoIGxlZ2FjeSB1cmwgaW5zdGFuY2Ugd2l0aFxuICogV0hBVFdHIFVSTCBpbnN0YW5jZS5cbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IGZpbGVVcmxPclBhdGhcbiAqICAgRmlsZSBwYXRoIG9yIFVSTC5cbiAqIEByZXR1cm5zIHtmaWxlVXJsT3JQYXRoIGlzIFVSTH1cbiAqICAgV2hldGhlciBpdFx1MjAxOXMgYSBVUkwuXG4gKi9cbi8vIEZyb206IDxodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUvYmxvYi82YTM0MDNjL2xpYi9pbnRlcm5hbC91cmwuanMjTDcyMD5cbmV4cG9ydCBmdW5jdGlvbiBpc1VybChmaWxlVXJsT3JQYXRoKSB7XG4gIHJldHVybiBCb29sZWFuKFxuICAgIGZpbGVVcmxPclBhdGggIT09IG51bGwgJiZcbiAgICAgIHR5cGVvZiBmaWxlVXJsT3JQYXRoID09PSAnb2JqZWN0JyAmJlxuICAgICAgJ2hyZWYnIGluIGZpbGVVcmxPclBhdGggJiZcbiAgICAgIGZpbGVVcmxPclBhdGguaHJlZiAmJlxuICAgICAgJ3Byb3RvY29sJyBpbiBmaWxlVXJsT3JQYXRoICYmXG4gICAgICBmaWxlVXJsT3JQYXRoLnByb3RvY29sICYmXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBpbmRleGluZyBpcyBmaW5lLlxuICAgICAgZmlsZVVybE9yUGF0aC5hdXRoID09PSB1bmRlZmluZWRcbiAgKVxufVxuIiwgImltcG9ydCB7aXNVcmx9IGZyb20gJy4vbWludXJsLnNoYXJlZC5qcydcblxuZXhwb3J0IHtpc1VybH0gZnJvbSAnLi9taW51cmwuc2hhcmVkLmpzJ1xuXG4vLyBTZWU6IDxodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUvYmxvYi82YTM0MDNjL2xpYi9pbnRlcm5hbC91cmwuanM+XG5cbi8qKlxuICogQHBhcmFtIHtVUkwgfCBzdHJpbmd9IHBhdGhcbiAqICAgRmlsZSBVUkwuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBGaWxlIFVSTC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVybFRvUGF0aChwYXRoKSB7XG4gIGlmICh0eXBlb2YgcGF0aCA9PT0gJ3N0cmluZycpIHtcbiAgICBwYXRoID0gbmV3IFVSTChwYXRoKVxuICB9IGVsc2UgaWYgKCFpc1VybChwYXRoKSkge1xuICAgIC8qKiBAdHlwZSB7Tm9kZUpTLkVycm5vRXhjZXB0aW9ufSAqL1xuICAgIGNvbnN0IGVycm9yID0gbmV3IFR5cGVFcnJvcihcbiAgICAgICdUaGUgXCJwYXRoXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIHN0cmluZyBvciBhbiBpbnN0YW5jZSBvZiBVUkwuIFJlY2VpdmVkIGAnICtcbiAgICAgICAgcGF0aCArXG4gICAgICAgICdgJ1xuICAgIClcbiAgICBlcnJvci5jb2RlID0gJ0VSUl9JTlZBTElEX0FSR19UWVBFJ1xuICAgIHRocm93IGVycm9yXG4gIH1cblxuICBpZiAocGF0aC5wcm90b2NvbCAhPT0gJ2ZpbGU6Jykge1xuICAgIC8qKiBAdHlwZSB7Tm9kZUpTLkVycm5vRXhjZXB0aW9ufSAqL1xuICAgIGNvbnN0IGVycm9yID0gbmV3IFR5cGVFcnJvcignVGhlIFVSTCBtdXN0IGJlIG9mIHNjaGVtZSBmaWxlJylcbiAgICBlcnJvci5jb2RlID0gJ0VSUl9JTlZBTElEX1VSTF9TQ0hFTUUnXG4gICAgdGhyb3cgZXJyb3JcbiAgfVxuXG4gIHJldHVybiBnZXRQYXRoRnJvbVVSTFBvc2l4KHBhdGgpXG59XG5cbi8qKlxuICogR2V0IGEgcGF0aCBmcm9tIGEgUE9TSVggVVJMLlxuICpcbiAqIEBwYXJhbSB7VVJMfSB1cmxcbiAqICAgVVJMLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRmlsZSBwYXRoLlxuICovXG5mdW5jdGlvbiBnZXRQYXRoRnJvbVVSTFBvc2l4KHVybCkge1xuICBpZiAodXJsLmhvc3RuYW1lICE9PSAnJykge1xuICAgIC8qKiBAdHlwZSB7Tm9kZUpTLkVycm5vRXhjZXB0aW9ufSAqL1xuICAgIGNvbnN0IGVycm9yID0gbmV3IFR5cGVFcnJvcihcbiAgICAgICdGaWxlIFVSTCBob3N0IG11c3QgYmUgXCJsb2NhbGhvc3RcIiBvciBlbXB0eSBvbiBkYXJ3aW4nXG4gICAgKVxuICAgIGVycm9yLmNvZGUgPSAnRVJSX0lOVkFMSURfRklMRV9VUkxfSE9TVCdcbiAgICB0aHJvdyBlcnJvclxuICB9XG5cbiAgY29uc3QgcGF0aG5hbWUgPSB1cmwucGF0aG5hbWVcbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IHBhdGhuYW1lLmxlbmd0aCkge1xuICAgIGlmIChcbiAgICAgIHBhdGhuYW1lLmNvZGVQb2ludEF0KGluZGV4KSA9PT0gMzcgLyogYCVgICovICYmXG4gICAgICBwYXRobmFtZS5jb2RlUG9pbnRBdChpbmRleCArIDEpID09PSA1MCAvKiBgMmAgKi9cbiAgICApIHtcbiAgICAgIGNvbnN0IHRoaXJkID0gcGF0aG5hbWUuY29kZVBvaW50QXQoaW5kZXggKyAyKVxuICAgICAgaWYgKHRoaXJkID09PSA3MCAvKiBgRmAgKi8gfHwgdGhpcmQgPT09IDEwMiAvKiBgZmAgKi8pIHtcbiAgICAgICAgLyoqIEB0eXBlIHtOb2RlSlMuRXJybm9FeGNlcHRpb259ICovXG4gICAgICAgIGNvbnN0IGVycm9yID0gbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICAnRmlsZSBVUkwgcGF0aCBtdXN0IG5vdCBpbmNsdWRlIGVuY29kZWQgLyBjaGFyYWN0ZXJzJ1xuICAgICAgICApXG4gICAgICAgIGVycm9yLmNvZGUgPSAnRVJSX0lOVkFMSURfRklMRV9VUkxfUEFUSCdcbiAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHBhdGhuYW1lKVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Ob2RlfSBOb2RlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBvaW50fSBQb2ludFxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb3NpdGlvbn0gUG9zaXRpb25cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3ZmaWxlLW1lc3NhZ2UnKS5PcHRpb25zfSBNZXNzYWdlT3B0aW9uc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vaW5kZXguanMnKS5EYXRhfSBEYXRhXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9pbmRleC5qcycpLlZhbHVlfSBWYWx1ZVxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge29iamVjdCAmIHt0eXBlOiBzdHJpbmcsIHBvc2l0aW9uPzogUG9zaXRpb24gfCB1bmRlZmluZWR9fSBOb2RlTGlrZVxuICpcbiAqIEB0eXBlZGVmIHtPcHRpb25zIHwgVVJMIHwgVkZpbGUgfCBWYWx1ZX0gQ29tcGF0aWJsZVxuICogICBUaGluZ3MgdGhhdCBjYW4gYmUgcGFzc2VkIHRvIHRoZSBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAdHlwZWRlZiBWRmlsZUNvcmVPcHRpb25zXG4gKiAgIFNldCBtdWx0aXBsZSB2YWx1ZXMuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtiYXNlbmFtZV1cbiAqICAgU2V0IGBiYXNlbmFtZWAgKG5hbWUpLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbY3dkXVxuICogICBTZXQgYGN3ZGAgKHdvcmtpbmcgZGlyZWN0b3J5KS5cbiAqIEBwcm9wZXJ0eSB7RGF0YSB8IG51bGwgfCB1bmRlZmluZWR9IFtkYXRhXVxuICogICBTZXQgYGRhdGFgIChhc3NvY2lhdGVkIGluZm8pLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbZGlybmFtZV1cbiAqICAgU2V0IGBkaXJuYW1lYCAocGF0aCB3L28gYmFzZW5hbWUpLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbZXh0bmFtZV1cbiAqICAgU2V0IGBleHRuYW1lYCAoZXh0ZW5zaW9uIHdpdGggZG90KS5cbiAqIEBwcm9wZXJ0eSB7QXJyYXk8c3RyaW5nPiB8IG51bGwgfCB1bmRlZmluZWR9IFtoaXN0b3J5XVxuICogICBTZXQgYGhpc3RvcnlgIChwYXRocyB0aGUgZmlsZSBtb3ZlZCBiZXR3ZWVuKS5cbiAqIEBwcm9wZXJ0eSB7VVJMIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3BhdGhdXG4gKiAgIFNldCBgcGF0aGAgKGN1cnJlbnQgcGF0aCkuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtzdGVtXVxuICogICBTZXQgYHN0ZW1gIChuYW1lIHdpdGhvdXQgZXh0ZW5zaW9uKS5cbiAqIEBwcm9wZXJ0eSB7VmFsdWUgfCBudWxsIHwgdW5kZWZpbmVkfSBbdmFsdWVdXG4gKiAgIFNldCBgdmFsdWVgICh0aGUgY29udGVudHMgb2YgdGhlIGZpbGUpLlxuICpcbiAqIEB0eXBlZGVmIE1hcFxuICogICBSYXcgc291cmNlIG1hcC5cbiAqXG4gKiAgIFNlZTpcbiAqICAgPGh0dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxhL3NvdXJjZS1tYXAvYmxvYi82MGFkY2IwL3NvdXJjZS1tYXAuZC50cyNMMTUtTDIzPi5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB2ZXJzaW9uXG4gKiAgIFdoaWNoIHZlcnNpb24gb2YgdGhlIHNvdXJjZSBtYXAgc3BlYyB0aGlzIG1hcCBpcyBmb2xsb3dpbmcuXG4gKiBAcHJvcGVydHkge0FycmF5PHN0cmluZz59IHNvdXJjZXNcbiAqICAgQW4gYXJyYXkgb2YgVVJMcyB0byB0aGUgb3JpZ2luYWwgc291cmNlIGZpbGVzLlxuICogQHByb3BlcnR5IHtBcnJheTxzdHJpbmc+fSBuYW1lc1xuICogICBBbiBhcnJheSBvZiBpZGVudGlmaWVycyB3aGljaCBjYW4gYmUgcmVmZXJlbmNlZCBieSBpbmRpdmlkdWFsIG1hcHBpbmdzLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCB1bmRlZmluZWR9IFtzb3VyY2VSb290XVxuICogICBUaGUgVVJMIHJvb3QgZnJvbSB3aGljaCBhbGwgc291cmNlcyBhcmUgcmVsYXRpdmUuXG4gKiBAcHJvcGVydHkge0FycmF5PHN0cmluZz4gfCB1bmRlZmluZWR9IFtzb3VyY2VzQ29udGVudF1cbiAqICAgQW4gYXJyYXkgb2YgY29udGVudHMgb2YgdGhlIG9yaWdpbmFsIHNvdXJjZSBmaWxlcy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBtYXBwaW5nc1xuICogICBBIHN0cmluZyBvZiBiYXNlNjQgVkxRcyB3aGljaCBjb250YWluIHRoZSBhY3R1YWwgbWFwcGluZ3MuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gZmlsZVxuICogICBUaGUgZ2VuZXJhdGVkIGZpbGUgdGhpcyBzb3VyY2UgbWFwIGlzIGFzc29jaWF0ZWQgd2l0aC5cbiAqXG4gKiBAdHlwZWRlZiB7UmVjb3JkPHN0cmluZywgdW5rbm93bj4gJiBWRmlsZUNvcmVPcHRpb25zfSBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKlxuICogICBBIGJ1bmNoIG9mIGtleXMgdGhhdCB3aWxsIGJlIHNoYWxsb3cgY29waWVkIG92ZXIgdG8gdGhlIG5ldyBmaWxlLlxuICpcbiAqIEB0eXBlZGVmIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn0gUmVwb3J0ZXJTZXR0aW5nc1xuICogICBDb25maWd1cmF0aW9uIGZvciByZXBvcnRlcnMuXG4gKi9cblxuLyoqXG4gKiBAdGVtcGxhdGUgW1NldHRpbmdzPVJlcG9ydGVyU2V0dGluZ3NdXG4gKiAgIE9wdGlvbnMgdHlwZS5cbiAqIEBjYWxsYmFjayBSZXBvcnRlclxuICogICBUeXBlIGZvciBhIHJlcG9ydGVyLlxuICogQHBhcmFtIHtBcnJheTxWRmlsZT59IGZpbGVzXG4gKiAgIEZpbGVzIHRvIHJlcG9ydC5cbiAqIEBwYXJhbSB7U2V0dGluZ3N9IG9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFJlcG9ydC5cbiAqL1xuXG5pbXBvcnQge1ZGaWxlTWVzc2FnZX0gZnJvbSAndmZpbGUtbWVzc2FnZSdcbmltcG9ydCB7cGF0aH0gZnJvbSAndmZpbGUvZG8tbm90LXVzZS1jb25kaXRpb25hbC1taW5wYXRoJ1xuaW1wb3J0IHtwcm9jfSBmcm9tICd2ZmlsZS9kby1ub3QtdXNlLWNvbmRpdGlvbmFsLW1pbnByb2MnXG5pbXBvcnQge3VybFRvUGF0aCwgaXNVcmx9IGZyb20gJ3ZmaWxlL2RvLW5vdC11c2UtY29uZGl0aW9uYWwtbWludXJsJ1xuXG4vKipcbiAqIE9yZGVyIG9mIHNldHRpbmcgKGxlYXN0IHNwZWNpZmljIHRvIG1vc3QpLCB3ZSBuZWVkIHRoaXMgYmVjYXVzZSBvdGhlcndpc2VcbiAqIGB7c3RlbTogJ2EnLCBwYXRoOiAnfi9iLmpzJ31gIHdvdWxkIHRocm93LCBhcyBhIHBhdGggaXMgbmVlZGVkIGJlZm9yZSBhXG4gKiBzdGVtIGNhbiBiZSBzZXQuXG4gKi9cbmNvbnN0IG9yZGVyID0gLyoqIEB0eXBlIHtjb25zdH0gKi8gKFtcbiAgJ2hpc3RvcnknLFxuICAncGF0aCcsXG4gICdiYXNlbmFtZScsXG4gICdzdGVtJyxcbiAgJ2V4dG5hbWUnLFxuICAnZGlybmFtZSdcbl0pXG5cbmV4cG9ydCBjbGFzcyBWRmlsZSB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgdmlydHVhbCBmaWxlLlxuICAgKlxuICAgKiBgb3B0aW9uc2AgaXMgdHJlYXRlZCBhczpcbiAgICpcbiAgICogKiAgIGBzdHJpbmdgIG9yIGBVaW50OEFycmF5YCBcdTIwMTQgYHt2YWx1ZTogb3B0aW9uc31gXG4gICAqICogICBgVVJMYCBcdTIwMTQgYHtwYXRoOiBvcHRpb25zfWBcbiAgICogKiAgIGBWRmlsZWAgXHUyMDE0IHNoYWxsb3cgY29waWVzIGl0cyBkYXRhIG92ZXIgdG8gdGhlIG5ldyBmaWxlXG4gICAqICogICBgb2JqZWN0YCBcdTIwMTQgYWxsIGZpZWxkcyBhcmUgc2hhbGxvdyBjb3BpZWQgb3ZlciB0byB0aGUgbmV3IGZpbGVcbiAgICpcbiAgICogUGF0aCByZWxhdGVkIGZpZWxkcyBhcmUgc2V0IGluIHRoZSBmb2xsb3dpbmcgb3JkZXIgKGxlYXN0IHNwZWNpZmljIHRvXG4gICAqIG1vc3Qgc3BlY2lmaWMpOiBgaGlzdG9yeWAsIGBwYXRoYCwgYGJhc2VuYW1lYCwgYHN0ZW1gLCBgZXh0bmFtZWAsXG4gICAqIGBkaXJuYW1lYC5cbiAgICpcbiAgICogWW91IGNhbm5vdCBzZXQgYGRpcm5hbWVgIG9yIGBleHRuYW1lYCB3aXRob3V0IHNldHRpbmcgZWl0aGVyIGBoaXN0b3J5YCxcbiAgICogYHBhdGhgLCBgYmFzZW5hbWVgLCBvciBgc3RlbWAgdG9vLlxuICAgKlxuICAgKiBAcGFyYW0ge0NvbXBhdGlibGUgfCBudWxsIHwgdW5kZWZpbmVkfSBbdmFsdWVdXG4gICAqICAgRmlsZSB2YWx1ZS5cbiAgICogQHJldHVybnNcbiAgICogICBOZXcgaW5zdGFuY2UuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih2YWx1ZSkge1xuICAgIC8qKiBAdHlwZSB7T3B0aW9ucyB8IFZGaWxlfSAqL1xuICAgIGxldCBvcHRpb25zXG5cbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICBvcHRpb25zID0ge31cbiAgICB9IGVsc2UgaWYgKGlzVXJsKHZhbHVlKSkge1xuICAgICAgb3B0aW9ucyA9IHtwYXRoOiB2YWx1ZX1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgaXNVaW50OEFycmF5KHZhbHVlKSkge1xuICAgICAgb3B0aW9ucyA9IHt2YWx1ZX1cbiAgICB9IGVsc2Uge1xuICAgICAgb3B0aW9ucyA9IHZhbHVlXG4gICAgfVxuXG4gICAgLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLWV4cHJlc3Npb25zICovXG5cbiAgICAvKipcbiAgICAgKiBCYXNlIG9mIGBwYXRoYCAoZGVmYXVsdDogYHByb2Nlc3MuY3dkKClgIG9yIGAnLydgIGluIGJyb3dzZXJzKS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgdGhpcy5jd2QgPSBwcm9jLmN3ZCgpXG5cbiAgICAvKipcbiAgICAgKiBQbGFjZSB0byBzdG9yZSBjdXN0b20gaW5mbyAoZGVmYXVsdDogYHt9YCkuXG4gICAgICpcbiAgICAgKiBJdFx1MjAxOXMgT0sgdG8gc3RvcmUgY3VzdG9tIGRhdGEgZGlyZWN0bHkgb24gdGhlIGZpbGUgYnV0IG1vdmluZyBpdCB0b1xuICAgICAqIGBkYXRhYCBpcyByZWNvbW1lbmRlZC5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtEYXRhfVxuICAgICAqL1xuICAgIHRoaXMuZGF0YSA9IHt9XG5cbiAgICAvKipcbiAgICAgKiBMaXN0IG9mIGZpbGUgcGF0aHMgdGhlIGZpbGUgbW92ZWQgYmV0d2Vlbi5cbiAgICAgKlxuICAgICAqIFRoZSBmaXJzdCBpcyB0aGUgb3JpZ2luYWwgcGF0aCBhbmQgdGhlIGxhc3QgaXMgdGhlIGN1cnJlbnQgcGF0aC5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtBcnJheTxzdHJpbmc+fVxuICAgICAqL1xuICAgIHRoaXMuaGlzdG9yeSA9IFtdXG5cbiAgICAvKipcbiAgICAgKiBMaXN0IG9mIG1lc3NhZ2VzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmlsZS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtBcnJheTxWRmlsZU1lc3NhZ2U+fVxuICAgICAqL1xuICAgIHRoaXMubWVzc2FnZXMgPSBbXVxuXG4gICAgLyoqXG4gICAgICogUmF3IHZhbHVlLlxuICAgICAqXG4gICAgICogQHR5cGUge1ZhbHVlfVxuICAgICAqL1xuICAgIHRoaXMudmFsdWVcblxuICAgIC8vIFRoZSBiZWxvdyBhcmUgbm9uLXN0YW5kYXJkLCB0aGV5IGFyZSBcdTIwMUN3ZWxsLWtub3duXHUyMDFELlxuICAgIC8vIEFzIGluLCB1c2VkIGluIHNldmVyYWwgdG9vbHMuXG4gICAgLyoqXG4gICAgICogU291cmNlIG1hcC5cbiAgICAgKlxuICAgICAqIFRoaXMgdHlwZSBpcyBlcXVpdmFsZW50IHRvIHRoZSBgUmF3U291cmNlTWFwYCB0eXBlIGZyb20gdGhlIGBzb3VyY2UtbWFwYFxuICAgICAqIG1vZHVsZS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtNYXAgfCBudWxsIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMubWFwXG5cbiAgICAvKipcbiAgICAgKiBDdXN0b20sIG5vbi1zdHJpbmcsIGNvbXBpbGVkLCByZXByZXNlbnRhdGlvbi5cbiAgICAgKlxuICAgICAqIFRoaXMgaXMgdXNlZCBieSB1bmlmaWVkIHRvIHN0b3JlIG5vbi1zdHJpbmcgcmVzdWx0cy5cbiAgICAgKiBPbmUgZXhhbXBsZSBpcyB3aGVuIHR1cm5pbmcgbWFya2Rvd24gaW50byBSZWFjdCBub2Rlcy5cbiAgICAgKlxuICAgICAqIEB0eXBlIHt1bmtub3dufVxuICAgICAqL1xuICAgIHRoaXMucmVzdWx0XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIGEgZmlsZSB3YXMgc2F2ZWQgdG8gZGlzay5cbiAgICAgKlxuICAgICAqIFRoaXMgaXMgdXNlZCBieSB2ZmlsZSByZXBvcnRlcnMuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICB0aGlzLnN0b3JlZFxuICAgIC8qIGVzbGludC1lbmFibGUgbm8tdW51c2VkLWV4cHJlc3Npb25zICovXG5cbiAgICAvLyBTZXQgcGF0aCByZWxhdGVkIHByb3BlcnRpZXMgaW4gdGhlIGNvcnJlY3Qgb3JkZXIuXG4gICAgbGV0IGluZGV4ID0gLTFcblxuICAgIHdoaWxlICgrK2luZGV4IDwgb3JkZXIubGVuZ3RoKSB7XG4gICAgICBjb25zdCBwcm9wID0gb3JkZXJbaW5kZXhdXG5cbiAgICAgIC8vIE5vdGU6IHdlIHNwZWNpZmljYWxseSB1c2UgYGluYCBpbnN0ZWFkIG9mIGBoYXNPd25Qcm9wZXJ0eWAgdG8gYWNjZXB0XG4gICAgICAvLyBgdmZpbGVgcyB0b28uXG4gICAgICBpZiAoXG4gICAgICAgIHByb3AgaW4gb3B0aW9ucyAmJlxuICAgICAgICBvcHRpb25zW3Byb3BdICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgb3B0aW9uc1twcm9wXSAhPT0gbnVsbFxuICAgICAgKSB7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IFRTIGRvZXNuXHUyMDE5dCB1bmRlcnN0YW5kIGJhc2ljIHJlYWxpdHkuXG4gICAgICAgIHRoaXNbcHJvcF0gPSBwcm9wID09PSAnaGlzdG9yeScgPyBbLi4ub3B0aW9uc1twcm9wXV0gOiBvcHRpb25zW3Byb3BdXG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gICAgbGV0IHByb3BcblxuICAgIC8vIFNldCBub24tcGF0aCByZWxhdGVkIHByb3BlcnRpZXMuXG4gICAgZm9yIChwcm9wIGluIG9wdGlvbnMpIHtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IGZpbmUgdG8gc2V0IG90aGVyIHRoaW5ncy5cbiAgICAgIGlmICghb3JkZXIuaW5jbHVkZXMocHJvcCkpIHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogZmluZSB0byBzZXQgb3RoZXIgdGhpbmdzLlxuICAgICAgICB0aGlzW3Byb3BdID0gb3B0aW9uc1twcm9wXVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGJhc2VuYW1lIChpbmNsdWRpbmcgZXh0bmFtZSkgKGV4YW1wbGU6IGAnaW5kZXgubWluLmpzJ2ApLlxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKiAgIEJhc2VuYW1lLlxuICAgKi9cbiAgZ2V0IGJhc2VuYW1lKCkge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5wYXRoID09PSAnc3RyaW5nJyA/IHBhdGguYmFzZW5hbWUodGhpcy5wYXRoKSA6IHVuZGVmaW5lZFxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBiYXNlbmFtZSAoaW5jbHVkaW5nIGV4dG5hbWUpIChgJ2luZGV4Lm1pbi5qcydgKS5cbiAgICpcbiAgICogQ2Fubm90IGNvbnRhaW4gcGF0aCBzZXBhcmF0b3JzIChgJy8nYCBvbiB1bml4LCBtYWNPUywgYW5kIGJyb3dzZXJzLCBgJ1xcJ2BcbiAgICogb24gd2luZG93cykuXG4gICAqIENhbm5vdCBiZSBudWxsaWZpZWQgKHVzZSBgZmlsZS5wYXRoID0gZmlsZS5kaXJuYW1lYCBpbnN0ZWFkKS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGJhc2VuYW1lXG4gICAqICAgQmFzZW5hbWUuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqICAgTm90aGluZy5cbiAgICovXG4gIHNldCBiYXNlbmFtZShiYXNlbmFtZSkge1xuICAgIGFzc2VydE5vbkVtcHR5KGJhc2VuYW1lLCAnYmFzZW5hbWUnKVxuICAgIGFzc2VydFBhcnQoYmFzZW5hbWUsICdiYXNlbmFtZScpXG4gICAgdGhpcy5wYXRoID0gcGF0aC5qb2luKHRoaXMuZGlybmFtZSB8fCAnJywgYmFzZW5hbWUpXG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBwYXJlbnQgcGF0aCAoZXhhbXBsZTogYCd+J2ApLlxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKiAgIERpcm5hbWUuXG4gICAqL1xuICBnZXQgZGlybmFtZSgpIHtcbiAgICByZXR1cm4gdHlwZW9mIHRoaXMucGF0aCA9PT0gJ3N0cmluZycgPyBwYXRoLmRpcm5hbWUodGhpcy5wYXRoKSA6IHVuZGVmaW5lZFxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgcGFyZW50IHBhdGggKGV4YW1wbGU6IGAnfidgKS5cbiAgICpcbiAgICogQ2Fubm90IGJlIHNldCBpZiB0aGVyZVx1MjAxOXMgbm8gYHBhdGhgIHlldC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IGRpcm5hbWVcbiAgICogICBEaXJuYW1lLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKiAgIE5vdGhpbmcuXG4gICAqL1xuICBzZXQgZGlybmFtZShkaXJuYW1lKSB7XG4gICAgYXNzZXJ0UGF0aCh0aGlzLmJhc2VuYW1lLCAnZGlybmFtZScpXG4gICAgdGhpcy5wYXRoID0gcGF0aC5qb2luKGRpcm5hbWUgfHwgJycsIHRoaXMuYmFzZW5hbWUpXG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBleHRuYW1lIChpbmNsdWRpbmcgZG90KSAoZXhhbXBsZTogYCcuanMnYCkuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqICAgRXh0bmFtZS5cbiAgICovXG4gIGdldCBleHRuYW1lKCkge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5wYXRoID09PSAnc3RyaW5nJyA/IHBhdGguZXh0bmFtZSh0aGlzLnBhdGgpIDogdW5kZWZpbmVkXG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBleHRuYW1lIChpbmNsdWRpbmcgZG90KSAoZXhhbXBsZTogYCcuanMnYCkuXG4gICAqXG4gICAqIENhbm5vdCBjb250YWluIHBhdGggc2VwYXJhdG9ycyAoYCcvJ2Agb24gdW5peCwgbWFjT1MsIGFuZCBicm93c2VycywgYCdcXCdgXG4gICAqIG9uIHdpbmRvd3MpLlxuICAgKiBDYW5ub3QgYmUgc2V0IGlmIHRoZXJlXHUyMDE5cyBubyBgcGF0aGAgeWV0LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0gZXh0bmFtZVxuICAgKiAgIEV4dG5hbWUuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqICAgTm90aGluZy5cbiAgICovXG4gIHNldCBleHRuYW1lKGV4dG5hbWUpIHtcbiAgICBhc3NlcnRQYXJ0KGV4dG5hbWUsICdleHRuYW1lJylcbiAgICBhc3NlcnRQYXRoKHRoaXMuZGlybmFtZSwgJ2V4dG5hbWUnKVxuXG4gICAgaWYgKGV4dG5hbWUpIHtcbiAgICAgIGlmIChleHRuYW1lLmNvZGVQb2ludEF0KDApICE9PSA0NiAvKiBgLmAgKi8pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdgZXh0bmFtZWAgbXVzdCBzdGFydCB3aXRoIGAuYCcpXG4gICAgICB9XG5cbiAgICAgIGlmIChleHRuYW1lLmluY2x1ZGVzKCcuJywgMSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdgZXh0bmFtZWAgY2Fubm90IGNvbnRhaW4gbXVsdGlwbGUgZG90cycpXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5wYXRoID0gcGF0aC5qb2luKHRoaXMuZGlybmFtZSwgdGhpcy5zdGVtICsgKGV4dG5hbWUgfHwgJycpKVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZnVsbCBwYXRoIChleGFtcGxlOiBgJ34vaW5kZXgubWluLmpzJ2ApLlxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKiAgIFBhdGguXG4gICAqL1xuICBnZXQgcGF0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5oaXN0b3J5W3RoaXMuaGlzdG9yeS5sZW5ndGggLSAxXVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZnVsbCBwYXRoIChleGFtcGxlOiBgJ34vaW5kZXgubWluLmpzJ2ApLlxuICAgKlxuICAgKiBDYW5ub3QgYmUgbnVsbGlmaWVkLlxuICAgKiBZb3UgY2FuIHNldCBhIGZpbGUgVVJMIChhIGBVUkxgIG9iamVjdCB3aXRoIGEgYGZpbGU6YCBwcm90b2NvbCkgd2hpY2ggd2lsbFxuICAgKiBiZSB0dXJuZWQgaW50byBhIHBhdGggd2l0aCBgdXJsLmZpbGVVUkxUb1BhdGhgLlxuICAgKlxuICAgKiBAcGFyYW0ge1VSTCB8IHN0cmluZ30gcGF0aFxuICAgKiAgIFBhdGguXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqICAgTm90aGluZy5cbiAgICovXG4gIHNldCBwYXRoKHBhdGgpIHtcbiAgICBpZiAoaXNVcmwocGF0aCkpIHtcbiAgICAgIHBhdGggPSB1cmxUb1BhdGgocGF0aClcbiAgICB9XG5cbiAgICBhc3NlcnROb25FbXB0eShwYXRoLCAncGF0aCcpXG5cbiAgICBpZiAodGhpcy5wYXRoICE9PSBwYXRoKSB7XG4gICAgICB0aGlzLmhpc3RvcnkucHVzaChwYXRoKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHN0ZW0gKGJhc2VuYW1lIHcvbyBleHRuYW1lKSAoZXhhbXBsZTogYCdpbmRleC5taW4nYCkuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqICAgU3RlbS5cbiAgICovXG4gIGdldCBzdGVtKCkge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5wYXRoID09PSAnc3RyaW5nJ1xuICAgICAgPyBwYXRoLmJhc2VuYW1lKHRoaXMucGF0aCwgdGhpcy5leHRuYW1lKVxuICAgICAgOiB1bmRlZmluZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHN0ZW0gKGJhc2VuYW1lIHcvbyBleHRuYW1lKSAoZXhhbXBsZTogYCdpbmRleC5taW4nYCkuXG4gICAqXG4gICAqIENhbm5vdCBjb250YWluIHBhdGggc2VwYXJhdG9ycyAoYCcvJ2Agb24gdW5peCwgbWFjT1MsIGFuZCBicm93c2VycywgYCdcXCdgXG4gICAqIG9uIHdpbmRvd3MpLlxuICAgKiBDYW5ub3QgYmUgbnVsbGlmaWVkICh1c2UgYGZpbGUucGF0aCA9IGZpbGUuZGlybmFtZWAgaW5zdGVhZCkuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdGVtXG4gICAqICAgU3RlbS5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgc2V0IHN0ZW0oc3RlbSkge1xuICAgIGFzc2VydE5vbkVtcHR5KHN0ZW0sICdzdGVtJylcbiAgICBhc3NlcnRQYXJ0KHN0ZW0sICdzdGVtJylcbiAgICB0aGlzLnBhdGggPSBwYXRoLmpvaW4odGhpcy5kaXJuYW1lIHx8ICcnLCBzdGVtICsgKHRoaXMuZXh0bmFtZSB8fCAnJykpXG4gIH1cblxuICAvLyBOb3JtYWwgcHJvdG90eXBhbCBtZXRob2RzLlxuICAvKipcbiAgICogQ3JlYXRlIGEgZmF0YWwgbWVzc2FnZSBmb3IgYHJlYXNvbmAgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWxlLlxuICAgKlxuICAgKiBUaGUgYGZhdGFsYCBmaWVsZCBvZiB0aGUgbWVzc2FnZSBpcyBzZXQgdG8gYHRydWVgIChlcnJvcjsgZmlsZSBub3QgdXNhYmxlKVxuICAgKiBhbmQgdGhlIGBmaWxlYCBmaWVsZCBpcyBzZXQgdG8gdGhlIGN1cnJlbnQgZmlsZSBwYXRoLlxuICAgKiBUaGUgbWVzc2FnZSBpcyBhZGRlZCB0byB0aGUgYG1lc3NhZ2VzYCBmaWVsZCBvbiBgZmlsZWAuXG4gICAqXG4gICAqID4gXHVEODNFXHVERUE2ICoqTm90ZSoqOiBhbHNvIGhhcyBvYnNvbGV0ZSBzaWduYXR1cmVzLlxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge01lc3NhZ2VPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gICAqIEByZXR1cm5zIHtuZXZlcn1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7bmV2ZXJ9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtuZXZlcn1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7Tm9kZSB8IE5vZGVMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGFyZW50XG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGxhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7bmV2ZXJ9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlfSBjYXVzZVxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtuZXZlcn1cbiAgICpcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZSB8IHN0cmluZ30gY2F1c2VPclJlYXNvblxuICAgKiAgIFJlYXNvbiBmb3IgbWVzc2FnZSwgc2hvdWxkIHVzZSBtYXJrZG93bi5cbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBNZXNzYWdlT3B0aW9ucyB8IFBvaW50IHwgUG9zaXRpb24gfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc09yUGFyZW50T3JQbGFjZV1cbiAgICogICBDb25maWd1cmF0aW9uIChvcHRpb25hbCkuXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogICBQbGFjZSBpbiBjb2RlIHdoZXJlIHRoZSBtZXNzYWdlIG9yaWdpbmF0ZXMgKGV4YW1wbGU6XG4gICAqICAgYCdteS1wYWNrYWdlOm15LXJ1bGUnYCBvciBgJ215LXJ1bGUnYCkuXG4gICAqIEByZXR1cm5zIHtuZXZlcn1cbiAgICogICBOZXZlci5cbiAgICogQHRocm93cyB7VkZpbGVNZXNzYWdlfVxuICAgKiAgIE1lc3NhZ2UuXG4gICAqL1xuICBmYWlsKGNhdXNlT3JSZWFzb24sIG9wdGlvbnNPclBhcmVudE9yUGxhY2UsIG9yaWdpbikge1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IHRoZSBvdmVybG9hZHMgYXJlIGZpbmUuXG4gICAgY29uc3QgbWVzc2FnZSA9IHRoaXMubWVzc2FnZShjYXVzZU9yUmVhc29uLCBvcHRpb25zT3JQYXJlbnRPclBsYWNlLCBvcmlnaW4pXG5cbiAgICBtZXNzYWdlLmZhdGFsID0gdHJ1ZVxuXG4gICAgdGhyb3cgbWVzc2FnZVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBpbmZvIG1lc3NhZ2UgZm9yIGByZWFzb25gIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmlsZS5cbiAgICpcbiAgICogVGhlIGBmYXRhbGAgZmllbGQgb2YgdGhlIG1lc3NhZ2UgaXMgc2V0IHRvIGB1bmRlZmluZWRgIChpbmZvOyBjaGFuZ2VcbiAgICogbGlrZWx5IG5vdCBuZWVkZWQpIGFuZCB0aGUgYGZpbGVgIGZpZWxkIGlzIHNldCB0byB0aGUgY3VycmVudCBmaWxlIHBhdGguXG4gICAqIFRoZSBtZXNzYWdlIGlzIGFkZGVkIHRvIHRoZSBgbWVzc2FnZXNgIGZpZWxkIG9uIGBmaWxlYC5cbiAgICpcbiAgICogPiBcdUQ4M0VcdURFQTYgKipOb3RlKio6IGFsc28gaGFzIG9ic29sZXRlIHNpZ25hdHVyZXMuXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7TWVzc2FnZU9wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge1BvaW50IHwgUG9zaXRpb24gfCBudWxsIHwgdW5kZWZpbmVkfSBwbGFjZVxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7Tm9kZSB8IE5vZGVMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGFyZW50XG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZSB8IHN0cmluZ30gY2F1c2VPclJlYXNvblxuICAgKiAgIFJlYXNvbiBmb3IgbWVzc2FnZSwgc2hvdWxkIHVzZSBtYXJrZG93bi5cbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBNZXNzYWdlT3B0aW9ucyB8IFBvaW50IHwgUG9zaXRpb24gfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc09yUGFyZW50T3JQbGFjZV1cbiAgICogICBDb25maWd1cmF0aW9uIChvcHRpb25hbCkuXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogICBQbGFjZSBpbiBjb2RlIHdoZXJlIHRoZSBtZXNzYWdlIG9yaWdpbmF0ZXMgKGV4YW1wbGU6XG4gICAqICAgYCdteS1wYWNrYWdlOm15LXJ1bGUnYCBvciBgJ215LXJ1bGUnYCkuXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqICAgTWVzc2FnZS5cbiAgICovXG4gIGluZm8oY2F1c2VPclJlYXNvbiwgb3B0aW9uc09yUGFyZW50T3JQbGFjZSwgb3JpZ2luKSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogdGhlIG92ZXJsb2FkcyBhcmUgZmluZS5cbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5tZXNzYWdlKGNhdXNlT3JSZWFzb24sIG9wdGlvbnNPclBhcmVudE9yUGxhY2UsIG9yaWdpbilcblxuICAgIG1lc3NhZ2UuZmF0YWwgPSB1bmRlZmluZWRcblxuICAgIHJldHVybiBtZXNzYWdlXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbWVzc2FnZSBmb3IgYHJlYXNvbmAgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWxlLlxuICAgKlxuICAgKiBUaGUgYGZhdGFsYCBmaWVsZCBvZiB0aGUgbWVzc2FnZSBpcyBzZXQgdG8gYGZhbHNlYCAod2FybmluZzsgY2hhbmdlIG1heSBiZVxuICAgKiBuZWVkZWQpIGFuZCB0aGUgYGZpbGVgIGZpZWxkIGlzIHNldCB0byB0aGUgY3VycmVudCBmaWxlIHBhdGguXG4gICAqIFRoZSBtZXNzYWdlIGlzIGFkZGVkIHRvIHRoZSBgbWVzc2FnZXNgIGZpZWxkIG9uIGBmaWxlYC5cbiAgICpcbiAgICogPiBcdUQ4M0VcdURFQTYgKipOb3RlKio6IGFsc28gaGFzIG9ic29sZXRlIHNpZ25hdHVyZXMuXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7TWVzc2FnZU9wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge1BvaW50IHwgUG9zaXRpb24gfCBudWxsIHwgdW5kZWZpbmVkfSBwbGFjZVxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7Tm9kZSB8IE5vZGVMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGFyZW50XG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZSB8IHN0cmluZ30gY2F1c2VPclJlYXNvblxuICAgKiAgIFJlYXNvbiBmb3IgbWVzc2FnZSwgc2hvdWxkIHVzZSBtYXJrZG93bi5cbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBNZXNzYWdlT3B0aW9ucyB8IFBvaW50IHwgUG9zaXRpb24gfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc09yUGFyZW50T3JQbGFjZV1cbiAgICogICBDb25maWd1cmF0aW9uIChvcHRpb25hbCkuXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogICBQbGFjZSBpbiBjb2RlIHdoZXJlIHRoZSBtZXNzYWdlIG9yaWdpbmF0ZXMgKGV4YW1wbGU6XG4gICAqICAgYCdteS1wYWNrYWdlOm15LXJ1bGUnYCBvciBgJ215LXJ1bGUnYCkuXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqICAgTWVzc2FnZS5cbiAgICovXG4gIG1lc3NhZ2UoY2F1c2VPclJlYXNvbiwgb3B0aW9uc09yUGFyZW50T3JQbGFjZSwgb3JpZ2luKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IG5ldyBWRmlsZU1lc3NhZ2UoXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiB0aGUgb3ZlcmxvYWRzIGFyZSBmaW5lLlxuICAgICAgY2F1c2VPclJlYXNvbixcbiAgICAgIG9wdGlvbnNPclBhcmVudE9yUGxhY2UsXG4gICAgICBvcmlnaW5cbiAgICApXG5cbiAgICBpZiAodGhpcy5wYXRoKSB7XG4gICAgICBtZXNzYWdlLm5hbWUgPSB0aGlzLnBhdGggKyAnOicgKyBtZXNzYWdlLm5hbWVcbiAgICAgIG1lc3NhZ2UuZmlsZSA9IHRoaXMucGF0aFxuICAgIH1cblxuICAgIG1lc3NhZ2UuZmF0YWwgPSBmYWxzZVxuXG4gICAgdGhpcy5tZXNzYWdlcy5wdXNoKG1lc3NhZ2UpXG5cbiAgICByZXR1cm4gbWVzc2FnZVxuICB9XG5cbiAgLyoqXG4gICAqIFNlcmlhbGl6ZSB0aGUgZmlsZS5cbiAgICpcbiAgICogPiAqKk5vdGUqKjogd2hpY2ggZW5jb2RpbmdzIGFyZSBzdXBwb3J0ZWQgZGVwZW5kcyBvbiB0aGUgZW5naW5lLlxuICAgKiA+IEZvciBpbmZvIG9uIE5vZGUuanMsIHNlZTpcbiAgICogPiA8aHR0cHM6Ly9ub2RlanMub3JnL2FwaS91dGlsLmh0bWwjd2hhdHdnLXN1cHBvcnRlZC1lbmNvZGluZ3M+LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtlbmNvZGluZz0ndXRmOCddXG4gICAqICAgQ2hhcmFjdGVyIGVuY29kaW5nIHRvIHVuZGVyc3RhbmQgYHZhbHVlYCBhcyB3aGVuIGl0XHUyMDE5cyBhIGBVaW50OEFycmF5YFxuICAgKiAgIChkZWZhdWx0OiBgJ3V0Zi04J2ApLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKiAgIFNlcmlhbGl6ZWQgZmlsZS5cbiAgICovXG4gIHRvU3RyaW5nKGVuY29kaW5nKSB7XG4gICAgaWYgKHRoaXMudmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuICcnXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB0aGlzLnZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIHRoaXMudmFsdWVcbiAgICB9XG5cbiAgICBjb25zdCBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKGVuY29kaW5nIHx8IHVuZGVmaW5lZClcbiAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGUodGhpcy52YWx1ZSlcbiAgfVxufVxuXG4vKipcbiAqIEFzc2VydCB0aGF0IGBwYXJ0YCBpcyBub3QgYSBwYXRoIChhcyBpbiwgZG9lcyBub3QgY29udGFpbiBgcGF0aC5zZXBgKS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IHBhcnRcbiAqICAgRmlsZSBwYXRoIHBhcnQuXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogICBQYXJ0IG5hbWUuXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICogICBOb3RoaW5nLlxuICovXG5mdW5jdGlvbiBhc3NlcnRQYXJ0KHBhcnQsIG5hbWUpIHtcbiAgaWYgKHBhcnQgJiYgcGFydC5pbmNsdWRlcyhwYXRoLnNlcCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnYCcgKyBuYW1lICsgJ2AgY2Fubm90IGJlIGEgcGF0aDogZGlkIG5vdCBleHBlY3QgYCcgKyBwYXRoLnNlcCArICdgJ1xuICAgIClcbiAgfVxufVxuXG4vKipcbiAqIEFzc2VydCB0aGF0IGBwYXJ0YCBpcyBub3QgZW1wdHkuXG4gKlxuICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IHBhcnRcbiAqICAgVGhpbmcuXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogICBQYXJ0IG5hbWUuXG4gKiBAcmV0dXJucyB7YXNzZXJ0cyBwYXJ0IGlzIHN0cmluZ31cbiAqICAgTm90aGluZy5cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0Tm9uRW1wdHkocGFydCwgbmFtZSkge1xuICBpZiAoIXBhcnQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2AnICsgbmFtZSArICdgIGNhbm5vdCBiZSBlbXB0eScpXG4gIH1cbn1cblxuLyoqXG4gKiBBc3NlcnQgYHBhdGhgIGV4aXN0cy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0gcGF0aFxuICogICBQYXRoLlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAqICAgRGVwZW5kZW5jeSBuYW1lLlxuICogQHJldHVybnMge2Fzc2VydHMgcGF0aCBpcyBzdHJpbmd9XG4gKiAgIE5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIGFzc2VydFBhdGgocGF0aCwgbmFtZSkge1xuICBpZiAoIXBhdGgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1NldHRpbmcgYCcgKyBuYW1lICsgJ2AgcmVxdWlyZXMgYHBhdGhgIHRvIGJlIHNldCB0b28nKVxuICB9XG59XG5cbi8qKlxuICogQXNzZXJ0IGB2YWx1ZWAgaXMgYW4gYFVpbnQ4QXJyYXlgLlxuICpcbiAqIEBwYXJhbSB7dW5rbm93bn0gdmFsdWVcbiAqICAgdGhpbmcuXG4gKiBAcmV0dXJucyB7dmFsdWUgaXMgVWludDhBcnJheX1cbiAqICAgV2hldGhlciBgdmFsdWVgIGlzIGFuIGBVaW50OEFycmF5YC5cbiAqL1xuZnVuY3Rpb24gaXNVaW50OEFycmF5KHZhbHVlKSB7XG4gIHJldHVybiBCb29sZWFuKFxuICAgIHZhbHVlICYmXG4gICAgICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmXG4gICAgICAnYnl0ZUxlbmd0aCcgaW4gdmFsdWUgJiZcbiAgICAgICdieXRlT2Zmc2V0JyBpbiB2YWx1ZVxuICApXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiBFcnJvckluZm9cbiAqICAgSW5mbyBvbiBhIGBwYXJzZTVgIGVycm9yLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHJlYXNvblxuICogICBSZWFzb24gb2YgZXJyb3IuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gZGVzY3JpcHRpb25cbiAqICAgTW9yZSBpbmZvIG9uIGVycm9yLlxuICogQHByb3BlcnR5IHtmYWxzZX0gW3VybF1cbiAqICAgVHVybiBvZmYgaWYgdGhpcyBpcyBub3QgZG9jdW1lbnRlZCBpbiB0aGUgaHRtbDUgc3BlYyAob3B0aW9uYWwpLlxuICovXG5cbmV4cG9ydCBjb25zdCBlcnJvcnMgPSB7XG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBhYmFuZG9uZWRIZWFkRWxlbWVudENoaWxkOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBtZXRhZGF0YSBlbGVtZW50IGFmdGVyIGhlYWQnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgZWxlbWVudCBhZnRlciBoZWFkLiBFeHBlY3RlZCB0aGUgZWxlbWVudCBiZWZvcmUgYDwvaGVhZD5gJyxcbiAgICB1cmw6IGZhbHNlXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBhYnJ1cHRDbG9zaW5nT2ZFbXB0eUNvbW1lbnQ6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGFicnVwdGx5IGNsb3NlZCBlbXB0eSBjb21tZW50JyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYD5gIG9yIGAtPmAuIEV4cGVjdGVkIGAtLT5gIHRvIGNsb3NlIGNvbW1lbnRzJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgYWJydXB0RG9jdHlwZVB1YmxpY0lkZW50aWZpZXI6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGFicnVwdGx5IGNsb3NlZCBwdWJsaWMgaWRlbnRpZmllcicsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBgPmAuIEV4cGVjdGVkIGEgY2xvc2luZyBgXCJgIG9yIGBcXCdgIGFmdGVyIHRoZSBwdWJsaWMgaWRlbnRpZmllcidcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGFicnVwdERvY3R5cGVTeXN0ZW1JZGVudGlmaWVyOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBhYnJ1cHRseSBjbG9zZWQgc3lzdGVtIGlkZW50aWZpZXInLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgYD5gLiBFeHBlY3RlZCBhIGNsb3NpbmcgYFwiYCBvciBgXFwnYCBhZnRlciB0aGUgaWRlbnRpZmllciBpZGVudGlmaWVyJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgYWJzZW5jZU9mRGlnaXRzSW5OdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBub24tZGlnaXQgYXQgc3RhcnQgb2YgbnVtZXJpYyBjaGFyYWN0ZXIgcmVmZXJlbmNlJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIGBbMC05XWAgZm9yIGRlY2ltYWwgcmVmZXJlbmNlcyBvciBgWzAtOWEtZkEtRl1gIGZvciBoZXhhZGVjaW1hbCByZWZlcmVuY2VzJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgY2RhdGFJbkh0bWxDb250ZW50OiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBDREFUQSBzZWN0aW9uIGluIEhUTUwnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgYDwhW0NEQVRBW2AgaW4gSFRNTC4gUmVtb3ZlIGl0LCB1c2UgYSBjb21tZW50LCBvciBlbmNvZGUgc3BlY2lhbCBjaGFyYWN0ZXJzIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBjaGFyYWN0ZXJSZWZlcmVuY2VPdXRzaWRlVW5pY29kZVJhbmdlOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCB0b28gYmlnIG51bWVyaWMgY2hhcmFjdGVyIHJlZmVyZW5jZScsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZGx5IGhpZ2ggY2hhcmFjdGVyIHJlZmVyZW5jZS4gRXhwZWN0ZWQgY2hhcmFjdGVyIHJlZmVyZW5jZXMgdG8gYmUgYXQgbW9zdCBoZXhhZGVjaW1hbCAxMGZmZmYgKG9yIGRlY2ltYWwgMTExNDExMSknXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBjbG9zaW5nT2ZFbGVtZW50V2l0aE9wZW5DaGlsZEVsZW1lbnRzOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBjbG9zaW5nIHRhZyB3aXRoIG9wZW4gY2hpbGQgZWxlbWVudHMnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWRseSBjbG9zaW5nIHRhZy4gRXhwZWN0ZWQgb3RoZXIgdGFncyB0byBiZSBjbG9zZWQgZmlyc3QnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGNvbnRyb2xDaGFyYWN0ZXJJbklucHV0U3RyZWFtOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBjb250cm9sIGNoYXJhY3RlcicsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBjb250cm9sIGNoYXJhY3RlciBgJXhgLiBFeHBlY3RlZCBhIG5vbi1jb250cm9sIGNvZGUgcG9pbnQsIDB4MDAsIG9yIEFTQ0lJIHdoaXRlc3BhY2UnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBjb250cm9sQ2hhcmFjdGVyUmVmZXJlbmNlOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBjb250cm9sIGNoYXJhY3RlciByZWZlcmVuY2UnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWRseSBjb250cm9sIGNoYXJhY3RlciBpbiByZWZlcmVuY2UuIEV4cGVjdGVkIGEgbm9uLWNvbnRyb2wgY29kZSBwb2ludCwgMHgwMCwgb3IgQVNDSUkgd2hpdGVzcGFjZSdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGRpc2FsbG93ZWRDb250ZW50SW5Ob3NjcmlwdEluSGVhZDoge1xuICAgIHJlYXNvbjogJ0Rpc2FsbG93ZWQgY29udGVudCBpbnNpZGUgYDxub3NjcmlwdD5gIGluIGA8aGVhZD5gJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIHRleHQgY2hhcmFjdGVyIGAlY2AuIE9ubHkgdXNlIHRleHQgaW4gYDxub3NjcmlwdD5gcyBpbiBgPGJvZHk+YCcsXG4gICAgdXJsOiBmYWxzZVxuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZHVwbGljYXRlQXR0cmlidXRlOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBkdXBsaWNhdGUgYXR0cmlidXRlJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkbHkgZG91YmxlIGF0dHJpYnV0ZS4gRXhwZWN0ZWQgYXR0cmlidXRlcyB0byBvY2N1ciBvbmx5IG9uY2UnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlbmRUYWdXaXRoQXR0cmlidXRlczoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgYXR0cmlidXRlIG9uIGNsb3NpbmcgdGFnJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYXR0cmlidXRlLiBFeHBlY3RlZCBgPmAgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGVuZFRhZ1dpdGhUcmFpbGluZ1NvbGlkdXM6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIHNsYXNoIGF0IGVuZCBvZiBjbG9zaW5nIHRhZycsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlYy0xYC4gRXhwZWN0ZWQgYD5gIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlbmRUYWdXaXRob3V0TWF0Y2hpbmdPcGVuRWxlbWVudDoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgdW5vcGVuZWQgZW5kIHRhZycsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGVuZCB0YWcuIEV4cGVjdGVkIG5vIGVuZCB0YWcgb3IgYW5vdGhlciBlbmQgdGFnJyxcbiAgICB1cmw6IGZhbHNlXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlb2ZCZWZvcmVUYWdOYW1lOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCB0YWcgbmFtZSBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZW9mSW5DZGF0YToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgaW4gQ0RBVEEnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgYF1dPmAgdG8gY2xvc2UgdGhlIENEQVRBJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZW9mSW5Db21tZW50OiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZSBpbiBjb21tZW50JyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGAtLT5gIHRvIGNsb3NlIHRoZSBjb21tZW50J1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZW9mSW5Eb2N0eXBlOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZSBpbiBkb2N0eXBlJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBhIHZhbGlkIGRvY3R5cGUgKHN1Y2ggYXMgYDwhZG9jdHlwZSBodG1sPmApJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZW9mSW5FbGVtZW50VGhhdENhbkNvbnRhaW5Pbmx5VGV4dDoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgaW4gZWxlbWVudCB0aGF0IGNhbiBvbmx5IGNvbnRhaW4gdGV4dCcsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCB0ZXh0IG9yIGEgY2xvc2luZyB0YWcnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGVvZkluU2NyaXB0SHRtbENvbW1lbnRMaWtlVGV4dDoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgaW4gY29tbWVudCBpbnNpZGUgc2NyaXB0JyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGAtLT5gIHRvIGNsb3NlIHRoZSBjb21tZW50J1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZW9mSW5UYWc6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlIGluIHRhZycsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBgPmAgdG8gY2xvc2UgdGhlIHRhZydcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGluY29ycmVjdGx5Q2xvc2VkQ29tbWVudDoge1xuICAgIHJlYXNvbjogJ0luY29ycmVjdGx5IGNsb3NlZCBjb21tZW50JyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjLTFgLiBFeHBlY3RlZCBgLS0+YCB0byBjbG9zZSB0aGUgY29tbWVudCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGluY29ycmVjdGx5T3BlbmVkQ29tbWVudDoge1xuICAgIHJlYXNvbjogJ0luY29ycmVjdGx5IG9wZW5lZCBjb21tZW50JyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgYDwhLS1gIHRvIG9wZW4gdGhlIGNvbW1lbnQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBpbnZhbGlkQ2hhcmFjdGVyU2VxdWVuY2VBZnRlckRvY3R5cGVOYW1lOiB7XG4gICAgcmVhc29uOiAnSW52YWxpZCBzZXF1ZW5jZSBhZnRlciBkb2N0eXBlIG5hbWUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBzZXF1ZW5jZSBhdCBgJWNgLiBFeHBlY3RlZCBgcHVibGljYCBvciBgc3lzdGVtYCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGludmFsaWRGaXJzdENoYXJhY3Rlck9mVGFnTmFtZToge1xuICAgIHJlYXNvbjogJ0ludmFsaWQgZmlyc3QgY2hhcmFjdGVyIGluIHRhZyBuYW1lJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgYW4gQVNDSUkgbGV0dGVyIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNwbGFjZWREb2N0eXBlOiB7XG4gICAgcmVhc29uOiAnTWlzcGxhY2VkIGRvY3R5cGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBkb2N0eXBlLiBFeHBlY3RlZCBkb2N0eXBlIGJlZm9yZSBoZWFkJyxcbiAgICB1cmw6IGZhbHNlXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNwbGFjZWRTdGFydFRhZ0ZvckhlYWRFbGVtZW50OiB7XG4gICAgcmVhc29uOiAnTWlzcGxhY2VkIGA8aGVhZD5gIHN0YXJ0IHRhZycsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBzdGFydCB0YWcgYDxoZWFkPmAuIEV4cGVjdGVkIGA8aGVhZD5gIGRpcmVjdGx5IGFmdGVyIGRvY3R5cGUnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdBdHRyaWJ1dGVWYWx1ZToge1xuICAgIHJlYXNvbjogJ01pc3NpbmcgYXR0cmlidXRlIHZhbHVlJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGAlYy0xYC4gRXhwZWN0ZWQgYW4gYXR0cmlidXRlIHZhbHVlIG9yIG5vIGAlYy0xYCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ0RvY3R5cGU6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIGRvY3R5cGUgYmVmb3JlIG90aGVyIGNvbnRlbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnRXhwZWN0ZWQgYSBgPCFkb2N0eXBlIGh0bWw+YCBiZWZvcmUgYW55dGhpbmcgZWxzZScsXG4gICAgdXJsOiBmYWxzZVxuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ0RvY3R5cGVOYW1lOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyBkb2N0eXBlIG5hbWUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBkb2N0eXBlIGVuZCBhdCBgJWNgLiBFeHBlY3RlZCBgaHRtbGAgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdEb2N0eXBlUHVibGljSWRlbnRpZmllcjoge1xuICAgIHJlYXNvbjogJ01pc3NpbmcgcHVibGljIGlkZW50aWZpZXIgaW4gZG9jdHlwZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIGlkZW50aWZpZXIgZm9yIGBwdWJsaWNgIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNzaW5nRG9jdHlwZVN5c3RlbUlkZW50aWZpZXI6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHN5c3RlbSBpZGVudGlmaWVyIGluIGRvY3R5cGUnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgaWRlbnRpZmllciBmb3IgYHN5c3RlbWAgaW5zdGVhZCAoc3VnZ2VzdGVkOiBgXCJhYm91dDpsZWdhY3ktY29tcGF0XCJgKSdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdFbmRUYWdOYW1lOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyBuYW1lIGluIGVuZCB0YWcnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBhbiBBU0NJSSBsZXR0ZXIgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVQdWJsaWNJZGVudGlmaWVyOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyBxdW90ZSBiZWZvcmUgcHVibGljIGlkZW50aWZpZXIgaW4gZG9jdHlwZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIGBcImAgb3IgYFxcJ2AgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyBxdW90ZSBiZWZvcmUgc3lzdGVtIGlkZW50aWZpZXIgaW4gZG9jdHlwZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIGBcImAgb3IgYFxcJ2AgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdTZW1pY29sb25BZnRlckNoYXJhY3RlclJlZmVyZW5jZToge1xuICAgIHJlYXNvbjogJ01pc3Npbmcgc2VtaWNvbG9uIGFmdGVyIGNoYXJhY3RlciByZWZlcmVuY2UnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBgO2AgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdXaGl0ZXNwYWNlQWZ0ZXJEb2N0eXBlUHVibGljS2V5d29yZDoge1xuICAgIHJlYXNvbjogJ01pc3Npbmcgd2hpdGVzcGFjZSBhZnRlciBwdWJsaWMgaWRlbnRpZmllciBpbiBkb2N0eXBlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgQVNDSUkgd2hpdGVzcGFjZSBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVTeXN0ZW1LZXl3b3JkOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyB3aGl0ZXNwYWNlIGFmdGVyIHN5c3RlbSBpZGVudGlmaWVyIGluIGRvY3R5cGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBBU0NJSSB3aGl0ZXNwYWNlIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNzaW5nV2hpdGVzcGFjZUJlZm9yZURvY3R5cGVOYW1lOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyB3aGl0ZXNwYWNlIGJlZm9yZSBkb2N0eXBlIG5hbWUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBBU0NJSSB3aGl0ZXNwYWNlIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNzaW5nV2hpdGVzcGFjZUJldHdlZW5BdHRyaWJ1dGVzOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyB3aGl0ZXNwYWNlIGJldHdlZW4gYXR0cmlidXRlcycsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIEFTQ0lJIHdoaXRlc3BhY2UgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdXaGl0ZXNwYWNlQmV0d2VlbkRvY3R5cGVQdWJsaWNBbmRTeXN0ZW1JZGVudGlmaWVyczoge1xuICAgIHJlYXNvbjpcbiAgICAgICdNaXNzaW5nIHdoaXRlc3BhY2UgYmV0d2VlbiBwdWJsaWMgYW5kIHN5c3RlbSBpZGVudGlmaWVycyBpbiBkb2N0eXBlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgQVNDSUkgd2hpdGVzcGFjZSBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbmVzdGVkQ29tbWVudDoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgbmVzdGVkIGNvbW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgPCEtLWAuIEV4cGVjdGVkIGAtLT5gJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbmVzdGVkTm9zY3JpcHRJbkhlYWQ6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIG5lc3RlZCBgPG5vc2NyaXB0PmAgaW4gYDxoZWFkPmAnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgYDxub3NjcmlwdD5gLiBFeHBlY3RlZCBhIGNsb3NpbmcgdGFnIG9yIGEgbWV0YSBlbGVtZW50JyxcbiAgICB1cmw6IGZhbHNlXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBub25Db25mb3JtaW5nRG9jdHlwZToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgbm9uLWNvbmZvcm1pbmcgZG9jdHlwZSBkZWNsYXJhdGlvbicsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnRXhwZWN0ZWQgYDwhZG9jdHlwZSBodG1sPmAgb3IgYDwhZG9jdHlwZSBodG1sIHN5c3RlbSBcImFib3V0OmxlZ2FjeS1jb21wYXRcIj5gJyxcbiAgICB1cmw6IGZhbHNlXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBub25Wb2lkSHRtbEVsZW1lbnRTdGFydFRhZ1dpdGhUcmFpbGluZ1NvbGlkdXM6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIHRyYWlsaW5nIHNsYXNoIG9uIHN0YXJ0IHRhZyBvZiBub24tdm9pZCBlbGVtZW50JyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYC9gLiBFeHBlY3RlZCBgPmAgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG5vbmNoYXJhY3RlckNoYXJhY3RlclJlZmVyZW5jZToge1xuICAgIHJlYXNvbjpcbiAgICAgICdVbmV4cGVjdGVkIG5vbmNoYXJhY3RlciBjb2RlIHBvaW50IHJlZmVyZW5jZWQgYnkgY2hhcmFjdGVyIHJlZmVyZW5jZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGNvZGUgcG9pbnQuIERvIG5vdCB1c2Ugbm9uY2hhcmFjdGVycyBpbiBIVE1MJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbm9uY2hhcmFjdGVySW5JbnB1dFN0cmVhbToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgbm9uY2hhcmFjdGVyIGNoYXJhY3RlcicsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGNvZGUgcG9pbnQgYCV4YC4gRG8gbm90IHVzZSBub25jaGFyYWN0ZXJzIGluIEhUTUwnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBudWxsQ2hhcmFjdGVyUmVmZXJlbmNlOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBOVUxMIGNoYXJhY3RlciByZWZlcmVuY2VkIGJ5IGNoYXJhY3RlciByZWZlcmVuY2UnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBjb2RlIHBvaW50LiBEbyBub3QgdXNlIE5VTEwgY2hhcmFjdGVycyBpbiBIVE1MJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgb3BlbkVsZW1lbnRzTGVmdEFmdGVyRW9mOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBjbG9zaW5nIHRhZyBpbnN0ZWFkJyxcbiAgICB1cmw6IGZhbHNlXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBzdXJyb2dhdGVDaGFyYWN0ZXJSZWZlcmVuY2U6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgcmVmZXJlbmNlZCBieSBjaGFyYWN0ZXIgcmVmZXJlbmNlJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGNvZGUgcG9pbnQuIERvIG5vdCB1c2UgbG9uZSBzdXJyb2dhdGUgY2hhcmFjdGVycyBpbiBIVE1MJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgc3Vycm9nYXRlSW5JbnB1dFN0cmVhbToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgc3Vycm9nYXRlIGNoYXJhY3RlcicsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBjb2RlIHBvaW50IGAleGAuIERvIG5vdCB1c2UgbG9uZSBzdXJyb2dhdGUgY2hhcmFjdGVycyBpbiBIVE1MJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgdW5leHBlY3RlZENoYXJhY3RlckFmdGVyRG9jdHlwZVN5c3RlbUlkZW50aWZpZXI6IHtcbiAgICByZWFzb246ICdJbnZhbGlkIGNoYXJhY3RlciBhZnRlciBzeXN0ZW0gaWRlbnRpZmllciBpbiBkb2N0eXBlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgY2hhcmFjdGVyIGF0IGAlY2AuIEV4cGVjdGVkIGA+YCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIHVuZXhwZWN0ZWRDaGFyYWN0ZXJJbkF0dHJpYnV0ZU5hbWU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGNoYXJhY3RlciBpbiBhdHRyaWJ1dGUgbmFtZScsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCB3aGl0ZXNwYWNlLCBgL2AsIGA+YCwgYD1gLCBvciBwcm9iYWJseSBhbiBBU0NJSSBsZXR0ZXInXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICB1bmV4cGVjdGVkQ2hhcmFjdGVySW5VbnF1b3RlZEF0dHJpYnV0ZVZhbHVlOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBjaGFyYWN0ZXIgaW4gdW5xdW90ZWQgYXR0cmlidXRlIHZhbHVlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gUXVvdGUgdGhlIGF0dHJpYnV0ZSB2YWx1ZSB0byBpbmNsdWRlIGl0J1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgdW5leHBlY3RlZEVxdWFsc1NpZ25CZWZvcmVBdHRyaWJ1dGVOYW1lOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBlcXVhbHMgc2lnbiBiZWZvcmUgYXR0cmlidXRlIG5hbWUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBBZGQgYW4gYXR0cmlidXRlIG5hbWUgYmVmb3JlIGl0J1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgdW5leHBlY3RlZE51bGxDaGFyYWN0ZXI6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIE5VTEwgY2hhcmFjdGVyJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGNvZGUgcG9pbnQgYCV4YC4gRG8gbm90IHVzZSBOVUxMIGNoYXJhY3RlcnMgaW4gSFRNTCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIHVuZXhwZWN0ZWRRdWVzdGlvbk1hcmtJbnN0ZWFkT2ZUYWdOYW1lOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBxdWVzdGlvbiBtYXJrIGluc3RlYWQgb2YgdGFnIG5hbWUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBhbiBBU0NJSSBsZXR0ZXIgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIHVuZXhwZWN0ZWRTb2xpZHVzSW5UYWc6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIHNsYXNoIGluIHRhZycsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBgJWMtMWAuIEV4cGVjdGVkIGl0IGZvbGxvd2VkIGJ5IGA+YCBvciBpbiBhIHF1b3RlZCBhdHRyaWJ1dGUgdmFsdWUnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICB1bmtub3duTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2U6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIHVua25vd24gbmFtZWQgY2hhcmFjdGVyIHJlZmVyZW5jZScsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBjaGFyYWN0ZXIgcmVmZXJlbmNlLiBFeHBlY3RlZCBrbm93biBuYW1lZCBjaGFyYWN0ZXIgcmVmZXJlbmNlcydcbiAgfVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlJvb3R9IFJvb3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3BhcnNlNScpLlBhcnNlckVycm9yfSBQYXJzZXJFcnJvclxuICogQHR5cGVkZWYge2ltcG9ydCgndmZpbGUnKS5WYWx1ZX0gVmFsdWVcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtrZXlvZiBlcnJvcnN9IEVycm9yQ29kZVxuICogICBLbm93biBuYW1lcyBvZiBwYXJzZSBlcnJvcnMuXG4gKlxuICogQHR5cGVkZWYge1BhcnRpYWw8UmVjb3JkPEVycm9yQ29kZSwgRXJyb3JTZXZlcml0eSB8IG51bGwgfCB1bmRlZmluZWQ+Pn0gRXJyb3JPcHRpb25zXG4gKiAgIE9wdGlvbnMgdGhhdCBkZWZpbmUgdGhlIHNldmVyaXR5IG9mIGVycm9ycy5cbiAqXG4gKiBAdHlwZWRlZiB7Ym9vbGVhbiB8IDAgfCAxIHwgMn0gRXJyb3JTZXZlcml0eVxuICogICBFcnJvciBzZXZlcml0eTpcbiAqXG4gKiAgICogYDBgIG9yIGBmYWxzZWBcbiAqICAgICBcdTIwMTQgdHVybiB0aGUgcGFyc2UgZXJyb3Igb2ZmXG4gKiAgICogYDFgIG9yIGB0cnVlYFxuICogICAgIFx1MjAxNCB0dXJuIHRoZSBwYXJzZSBlcnJvciBpbnRvIGEgd2FybmluZ1xuICogICAqIGAyYFxuICogICAgIFx1MjAxNCB0dXJuIHRoZSBwYXJzZSBlcnJvciBpbnRvIGFuIGFjdHVhbCBlcnJvcjogcHJvY2Vzc2luZyBzdG9wcy5cbiAqXG4gKiBAdHlwZWRlZiBFeHRyYU9wdGlvbnNcbiAqICAgT3B0aW9ucyB0aGF0IGRlZmluZSBob3cgdG8gcGFyc2UgSFRNTC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtmcmFnbWVudD1mYWxzZV1cbiAqICAgU3BlY2lmeSB3aGV0aGVyIHRvIHBhcnNlIGEgZnJhZ21lbnQsIGluc3RlYWQgb2YgYSBjb21wbGV0ZSBkb2N1bWVudFxuICogICAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICBJbiBkb2N1bWVudCBtb2RlLCB1bm9wZW5lZCBgaHRtbGAsIGBoZWFkYCwgYW5kIGBib2R5YCBlbGVtZW50cyBhcmUgb3BlbmVkXG4gKiAgIGluIGp1c3QgdGhlIHJpZ2h0IHBsYWNlcy5cbiAqIEBwcm9wZXJ0eSB7T25FcnJvciB8IG51bGwgfCB1bmRlZmluZWR9IFtvbmVycm9yXVxuICogICBDYWxsIGBvbmVycm9yYCB3aXRoIHBhcnNlIGVycm9ycyB3aGlsZSBwYXJzaW5nIChvcHRpb25hbCkuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogcGFyc2UgZXJyb3JzIGFyZSBjdXJyZW50bHkgYmVpbmcgYWRkZWQgdG8gSFRNTC5cbiAqICAgPiBOb3QgYWxsIGVycm9ycyBlbWl0dGVkIGJ5IHBhcnNlNSAob3IgdXMpIGFyZSBzcGVjY2VkIHlldC5cbiAqICAgPiBTb21lIGRvY3VtZW50YXRpb24gbWF5IHN0aWxsIGJlIG1pc3NpbmcuXG4gKlxuICogICBTcGVjaWZpYyBydWxlcyBjYW4gYmUgdHVybmVkIG9mZiBieSBzZXR0aW5nIHRoZW0gdG8gYGZhbHNlYCAob3IgYDBgKS5cbiAqICAgVGhlIGRlZmF1bHQsIHdoZW4gYGVtaXRQYXJzZUVycm9yczogdHJ1ZWAsIGlzIGB0cnVlYCAob3IgYDFgKSwgYW5kIG1lYW5zXG4gKiAgIHRoYXQgcnVsZXMgZW1pdCBhcyB3YXJuaW5ncy5cbiAqICAgUnVsZXMgY2FuIGFsc28gYmUgY29uZmlndXJlZCB3aXRoIGAyYCwgdG8gdHVybiB0aGVtIGludG8gZmF0YWwgZXJyb3JzLlxuICpcbiAqIEB0eXBlZGVmIHtPbWl0PGltcG9ydCgnaGFzdC11dGlsLWZyb20tcGFyc2U1JykuT3B0aW9ucywgJ2ZpbGUnPn0gRnJvbVBhcnNlNU9wdGlvbnNcbiAqICAgT3B0aW9ucyB0aGF0IGNhbiBiZSBwYXNzZWQgdGhyb3VnaCB0byBgaGFzdC11dGlsLWZyb20tcGFyc2U1YC5cbiAqXG4gKiBAY2FsbGJhY2sgT25FcnJvclxuICogICBIYW5kbGUgcGFyc2UgZXJyb3JzLlxuICogQHBhcmFtIHtWRmlsZU1lc3NhZ2V9IGVycm9yXG4gKiAgIE1lc3NhZ2UuXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkIHwgdm9pZH1cbiAqICAgTm90aGluZy5cbiAqXG4gKiAgIE5vdGU6IGB2b2lkYCBpbmNsdWRlZCB1bnRpbCBUUyBpbmZlcnMgYHVuZGVmaW5lZGAgbmljZWx5LlxuICpcbiAqIEB0eXBlZGVmIHtGcm9tUGFyc2U1T3B0aW9ucyAmIEVycm9yT3B0aW9ucyAmIEV4dHJhT3B0aW9uc30gT3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uLlxuICovXG5cbmltcG9ydCB7b2sgYXMgYXNzZXJ0fSBmcm9tICdkZXZsb3AnXG5pbXBvcnQge2Zyb21QYXJzZTV9IGZyb20gJ2hhc3QtdXRpbC1mcm9tLXBhcnNlNSdcbmltcG9ydCB7cGFyc2UsIHBhcnNlRnJhZ21lbnR9IGZyb20gJ3BhcnNlNSdcbmltcG9ydCB7VkZpbGV9IGZyb20gJ3ZmaWxlJ1xuaW1wb3J0IHtWRmlsZU1lc3NhZ2V9IGZyb20gJ3ZmaWxlLW1lc3NhZ2UnXG5pbXBvcnQge2Vycm9yc30gZnJvbSAnLi9lcnJvcnMuanMnXG5cbmNvbnN0IGJhc2UgPSAnaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvcGFyc2luZy5odG1sI3BhcnNlLWVycm9yLSdcblxuY29uc3QgZGFzaFRvQ2FtZWxSZSA9IC8tW2Etel0vZ1xuY29uc3QgZm9ybWF0Q1JlID0gLyVjKD86KFstK10pKFxcZCspKT8vZ1xuY29uc3QgZm9ybWF0WFJlID0gLyV4L2dcblxuY29uc3QgZmF0YWxpdGllcyA9IHsyOiB0cnVlLCAxOiBmYWxzZSwgMDogbnVsbH1cblxuLyoqIEB0eXBlIHtSZWFkb25seTxPcHRpb25zPn0gKi9cbmNvbnN0IGVtcHR5T3B0aW9ucyA9IHt9XG5cbi8qKlxuICogVHVybiBzZXJpYWxpemVkIEhUTUwgaW50byBhIGhhc3QgdHJlZS5cbiAqXG4gKiBAcGFyYW0ge1ZGaWxlIHwgVmFsdWV9IHZhbHVlXG4gKiAgIFNlcmlhbGl6ZWQgSFRNTCB0byBwYXJzZS5cbiAqIEBwYXJhbSB7UmVhZG9ubHk8T3B0aW9ucz4gfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICogQHJldHVybnMge1Jvb3R9XG4gKiAgIFRyZWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmcm9tSHRtbCh2YWx1ZSwgb3B0aW9ucykge1xuICBjb25zdCBzZXR0aW5ncyA9IG9wdGlvbnMgfHwgZW1wdHlPcHRpb25zXG4gIGNvbnN0IG9uZXJyb3IgPSBzZXR0aW5ncy5vbmVycm9yXG4gIGNvbnN0IGZpbGUgPSB2YWx1ZSBpbnN0YW5jZW9mIFZGaWxlID8gdmFsdWUgOiBuZXcgVkZpbGUodmFsdWUpXG4gIGNvbnN0IGZuID0gc2V0dGluZ3MuZnJhZ21lbnQgPyBwYXJzZUZyYWdtZW50IDogcGFyc2VcbiAgY29uc3QgZG9jID0gU3RyaW5nKGZpbGUpXG4gIGNvbnN0IHA1ZG9jID0gZm4oZG9jLCB7XG4gICAgc291cmNlQ29kZUxvY2F0aW9uSW5mbzogdHJ1ZSxcbiAgICAvLyBOb3RlIGBwYXJzZTVgIHR5cGVzIGN1cnJlbnRseSBkbyBub3QgYWxsb3cgYHVuZGVmaW5lZGAuXG4gICAgb25QYXJzZUVycm9yOiBzZXR0aW5ncy5vbmVycm9yID8gaW50ZXJuYWxPbmVycm9yIDogbnVsbCxcbiAgICBzY3JpcHRpbmdFbmFibGVkOiBmYWxzZVxuICB9KVxuXG4gIC8vIGBwYXJzZTVgIHJldHVybnMgZG9jdW1lbnQgd2hpY2ggYXJlIGFsd2F5cyBtYXBwZWQgdG8gcm9vdHMuXG4gIHJldHVybiAvKiogQHR5cGUge1Jvb3R9ICovIChcbiAgICBmcm9tUGFyc2U1KHA1ZG9jLCB7XG4gICAgICBmaWxlLFxuICAgICAgc3BhY2U6IHNldHRpbmdzLnNwYWNlLFxuICAgICAgdmVyYm9zZTogc2V0dGluZ3MudmVyYm9zZVxuICAgIH0pXG4gIClcblxuICAvKipcbiAgICogSGFuZGxlIGEgcGFyc2UgZXJyb3IuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFyc2VyRXJyb3J9IGVycm9yXG4gICAqICAgUGFyc2U1IGVycm9yLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKiAgIE5vdGhpbmcuXG4gICAqL1xuICBmdW5jdGlvbiBpbnRlcm5hbE9uZXJyb3IoZXJyb3IpIHtcbiAgICBjb25zdCBjb2RlID0gZXJyb3IuY29kZVxuICAgIGNvbnN0IG5hbWUgPSBjYW1lbGNhc2UoY29kZSlcbiAgICBjb25zdCBzZXR0aW5nID0gc2V0dGluZ3NbbmFtZV1cbiAgICBjb25zdCBjb25maWcgPSBzZXR0aW5nID09PSBudWxsIHx8IHNldHRpbmcgPT09IHVuZGVmaW5lZCA/IHRydWUgOiBzZXR0aW5nXG4gICAgY29uc3QgbGV2ZWwgPSB0eXBlb2YgY29uZmlnID09PSAnbnVtYmVyJyA/IGNvbmZpZyA6IGNvbmZpZyA/IDEgOiAwXG5cbiAgICBpZiAobGV2ZWwpIHtcbiAgICAgIGNvbnN0IGluZm8gPSBlcnJvcnNbbmFtZV1cbiAgICAgIGFzc2VydChpbmZvLCAnZXhwZWN0ZWQga25vd24gZXJyb3IgZnJvbSBgcGFyc2U1YCcpXG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgVkZpbGVNZXNzYWdlKGZvcm1hdChpbmZvLnJlYXNvbiksIHtcbiAgICAgICAgcGxhY2U6IHtcbiAgICAgICAgICBzdGFydDoge1xuICAgICAgICAgICAgbGluZTogZXJyb3Iuc3RhcnRMaW5lLFxuICAgICAgICAgICAgY29sdW1uOiBlcnJvci5zdGFydENvbCxcbiAgICAgICAgICAgIG9mZnNldDogZXJyb3Iuc3RhcnRPZmZzZXRcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVuZDoge1xuICAgICAgICAgICAgbGluZTogZXJyb3IuZW5kTGluZSxcbiAgICAgICAgICAgIGNvbHVtbjogZXJyb3IuZW5kQ29sLFxuICAgICAgICAgICAgb2Zmc2V0OiBlcnJvci5lbmRPZmZzZXRcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHJ1bGVJZDogY29kZSxcbiAgICAgICAgc291cmNlOiAnaGFzdC11dGlsLWZyb20taHRtbCdcbiAgICAgIH0pXG5cbiAgICAgIGlmIChmaWxlLnBhdGgpIHtcbiAgICAgICAgbWVzc2FnZS5maWxlID0gZmlsZS5wYXRoXG4gICAgICAgIG1lc3NhZ2UubmFtZSA9IGZpbGUucGF0aCArICc6JyArIG1lc3NhZ2UubmFtZVxuICAgICAgfVxuXG4gICAgICBtZXNzYWdlLmZhdGFsID0gZmF0YWxpdGllc1tsZXZlbF1cbiAgICAgIG1lc3NhZ2Uubm90ZSA9IGZvcm1hdChpbmZvLmRlc2NyaXB0aW9uKVxuICAgICAgbWVzc2FnZS51cmwgPSBpbmZvLnVybCA9PT0gZmFsc2UgPyB1bmRlZmluZWQgOiBiYXNlICsgY29kZVxuXG4gICAgICBhc3NlcnQob25lcnJvciwgJ2BpbnRlcm5hbE9uZXJyb3JgIGlzIG5vdCBwYXNzZWQgaWYgYG9uZXJyb3JgIGlzIG5vdCBzZXQnKVxuICAgICAgb25lcnJvcihtZXNzYWdlKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZvcm1hdCBhIGh1bWFuIHJlYWRhYmxlIHN0cmluZyBhYm91dCBhbiBlcnJvci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICAgICAqICAgVmFsdWUgdG8gZm9ybWF0LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAgICogICBGb3JtYXR0ZWQuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZm9ybWF0KHZhbHVlKSB7XG4gICAgICByZXR1cm4gdmFsdWUucmVwbGFjZShmb3JtYXRDUmUsIGZvcm1hdEMpLnJlcGxhY2UoZm9ybWF0WFJlLCBmb3JtYXRYKVxuXG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdCB0aGUgY2hhcmFjdGVyLlxuICAgICAgICpcbiAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSBfXG4gICAgICAgKiAgIE1hdGNoLlxuICAgICAgICogQHBhcmFtIHtzdHJpbmd9ICQxXG4gICAgICAgKiAgIFNpZ24gKGAtYCBvciBgK2AsIG9wdGlvbmFsKS5cbiAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSAkMlxuICAgICAgICogICBPZmZzZXQuXG4gICAgICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgICAgICogICBGb3JtYXR0ZWQuXG4gICAgICAgKi9cbiAgICAgIGZ1bmN0aW9uIGZvcm1hdEMoXywgJDEsICQyKSB7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9XG4gICAgICAgICAgKCQyID8gTnVtYmVyLnBhcnNlSW50KCQyLCAxMCkgOiAwKSAqICgkMSA9PT0gJy0nID8gLTEgOiAxKVxuICAgICAgICBjb25zdCBjaGFyID0gZG9jLmNoYXJBdChlcnJvci5zdGFydE9mZnNldCArIG9mZnNldClcbiAgICAgICAgcmV0dXJuIHZpc3VhbGl6ZUNoYXJhY3RlcihjaGFyKVxuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdCB0aGUgY2hhcmFjdGVyIGNvZGUuXG4gICAgICAgKlxuICAgICAgICogQHJldHVybnMge3N0cmluZ31cbiAgICAgICAqICAgRm9ybWF0dGVkLlxuICAgICAgICovXG4gICAgICBmdW5jdGlvbiBmb3JtYXRYKCkge1xuICAgICAgICByZXR1cm4gdmlzdWFsaXplQ2hhcmFjdGVyQ29kZShkb2MuY2hhckNvZGVBdChlcnJvci5zdGFydE9mZnNldCkpXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiAgIEVycm9yIGNvZGUgaW4gZGFzaCBjYXNlLlxuICogQHJldHVybnMge0Vycm9yQ29kZX1cbiAqICAgRXJyb3IgY29kZSBpbiBjYW1lbGNhc2UuXG4gKi9cbmZ1bmN0aW9uIGNhbWVsY2FzZSh2YWx1ZSkge1xuICAvLyBUaGlzIHNob3VsZCBtYXRjaCBhbiBlcnJvciBjb2RlLlxuICByZXR1cm4gLyoqIEB0eXBlIHtFcnJvckNvZGV9ICovICh2YWx1ZS5yZXBsYWNlKGRhc2hUb0NhbWVsUmUsIGRhc2hUb0NhbWVsKSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gJDBcbiAqICAgTWF0Y2guXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBDYW1lbGNhc2VkLlxuICovXG5mdW5jdGlvbiBkYXNoVG9DYW1lbCgkMCkge1xuICByZXR1cm4gJDAuY2hhckF0KDEpLnRvVXBwZXJDYXNlKClcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gY2hhclxuICogICBDaGFyYWN0ZXIuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBGb3JtYXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIHZpc3VhbGl6ZUNoYXJhY3RlcihjaGFyKSB7XG4gIHJldHVybiBjaGFyID09PSAnYCcgPyAnYCBgIGAnIDogY2hhclxufVxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSBjaGFyQ29kZVxuICogICBDaGFyYWN0ZXIgY29kZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEZvcm1hdHRlZC5cbiAqL1xuZnVuY3Rpb24gdmlzdWFsaXplQ2hhcmFjdGVyQ29kZShjaGFyQ29kZSkge1xuICByZXR1cm4gJzB4JyArIGNoYXJDb2RlLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpXG59XG4iLCAiLyoqXG4gKiBMaXN0IG9mIEhUTUwgdm9pZCB0YWcgbmFtZXMuXG4gKlxuICogQHR5cGUge0FycmF5PHN0cmluZz59XG4gKi9cbmV4cG9ydCBjb25zdCBodG1sVm9pZEVsZW1lbnRzID0gW1xuICAnYXJlYScsXG4gICdiYXNlJyxcbiAgJ2Jhc2Vmb250JyxcbiAgJ2Jnc291bmQnLFxuICAnYnInLFxuICAnY29sJyxcbiAgJ2NvbW1hbmQnLFxuICAnZW1iZWQnLFxuICAnZnJhbWUnLFxuICAnaHInLFxuICAnaW1hZ2UnLFxuICAnaW1nJyxcbiAgJ2lucHV0JyxcbiAgJ2tleWdlbicsXG4gICdsaW5rJyxcbiAgJ21ldGEnLFxuICAncGFyYW0nLFxuICAnc291cmNlJyxcbiAgJ3RyYWNrJyxcbiAgJ3dicidcbl1cbiIsICIvKipcbiAqIEBjYWxsYmFjayBIYW5kbGVyXG4gKiAgIEhhbmRsZSBhIHZhbHVlLCB3aXRoIGEgY2VydGFpbiBJRCBmaWVsZCBzZXQgdG8gYSBjZXJ0YWluIHZhbHVlLlxuICogICBUaGUgSUQgZmllbGQgaXMgcGFzc2VkIHRvIGB6d2l0Y2hgLCBhbmQgaXRcdTIwMTlzIHZhbHVlIGlzIHRoaXMgZnVuY3Rpb25cdTIwMTlzXG4gKiAgIHBsYWNlIG9uIHRoZSBgaGFuZGxlcnNgIHJlY29yZC5cbiAqIEBwYXJhbSB7Li4uYW55fSBwYXJhbWV0ZXJzXG4gKiAgIEFyYml0cmFyeSBwYXJhbWV0ZXJzIHBhc3NlZCB0byB0aGUgendpdGNoLlxuICogICBUaGUgZmlyc3Qgd2lsbCBiZSBhbiBvYmplY3Qgd2l0aCBhIGNlcnRhaW4gSUQgZmllbGQgc2V0IHRvIGEgY2VydGFpbiB2YWx1ZS5cbiAqIEByZXR1cm5zIHthbnl9XG4gKiAgIEFueXRoaW5nIVxuICovXG5cbi8qKlxuICogQGNhbGxiYWNrIFVua25vd25IYW5kbGVyXG4gKiAgIEhhbmRsZSB2YWx1ZXMgdGhhdCBkbyBoYXZlIGEgY2VydGFpbiBJRCBmaWVsZCwgYnV0IGl0XHUyMDE5cyBzZXQgdG8gYSB2YWx1ZVxuICogICB0aGF0IGlzIG5vdCBsaXN0ZWQgaW4gdGhlIGBoYW5kbGVyc2AgcmVjb3JkLlxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZVxuICogICBBbiBvYmplY3Qgd2l0aCBhIGNlcnRhaW4gSUQgZmllbGQgc2V0IHRvIGFuIHVua25vd24gdmFsdWUuXG4gKiBAcGFyYW0gey4uLmFueX0gcmVzdFxuICogICBBcmJpdHJhcnkgcGFyYW1ldGVycyBwYXNzZWQgdG8gdGhlIHp3aXRjaC5cbiAqIEByZXR1cm5zIHthbnl9XG4gKiAgIEFueXRoaW5nIVxuICovXG5cbi8qKlxuICogQGNhbGxiYWNrIEludmFsaWRIYW5kbGVyXG4gKiAgIEhhbmRsZSB2YWx1ZXMgdGhhdCBkbyBub3QgaGF2ZSBhIGNlcnRhaW4gSUQgZmllbGQuXG4gKiBAcGFyYW0ge3Vua25vd259IHZhbHVlXG4gKiAgIEFueSB1bmtub3duIHZhbHVlLlxuICogQHBhcmFtIHsuLi5hbnl9IHJlc3RcbiAqICAgQXJiaXRyYXJ5IHBhcmFtZXRlcnMgcGFzc2VkIHRvIHRoZSB6d2l0Y2guXG4gKiBAcmV0dXJucyB7dm9pZHxudWxsfHVuZGVmaW5lZHxuZXZlcn1cbiAqICAgVGhpcyBzaG91bGQgY3Jhc2ggb3IgcmV0dXJuIG5vdGhpbmcuXG4gKi9cblxuLyoqXG4gKiBAdGVtcGxhdGUge0ludmFsaWRIYW5kbGVyfSBbSW52YWxpZD1JbnZhbGlkSGFuZGxlcl1cbiAqIEB0ZW1wbGF0ZSB7VW5rbm93bkhhbmRsZXJ9IFtVbmtub3duPVVua25vd25IYW5kbGVyXVxuICogQHRlbXBsYXRlIHtSZWNvcmQ8c3RyaW5nLCBIYW5kbGVyPn0gW0hhbmRsZXJzPVJlY29yZDxzdHJpbmcsIEhhbmRsZXI+XVxuICogQHR5cGVkZWYgT3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uIChyZXF1aXJlZCkuXG4gKiBAcHJvcGVydHkge0ludmFsaWR9IFtpbnZhbGlkXVxuICogICBIYW5kbGVyIHRvIHVzZSBmb3IgaW52YWxpZCB2YWx1ZXMuXG4gKiBAcHJvcGVydHkge1Vua25vd259IFt1bmtub3duXVxuICogICBIYW5kbGVyIHRvIHVzZSBmb3IgdW5rbm93biB2YWx1ZXMuXG4gKiBAcHJvcGVydHkge0hhbmRsZXJzfSBbaGFuZGxlcnNdXG4gKiAgIEhhbmRsZXJzIHRvIHVzZS5cbiAqL1xuXG5jb25zdCBvd24gPSB7fS5oYXNPd25Qcm9wZXJ0eVxuXG4vKipcbiAqIEhhbmRsZSB2YWx1ZXMgYmFzZWQgb24gYSBmaWVsZC5cbiAqXG4gKiBAdGVtcGxhdGUge0ludmFsaWRIYW5kbGVyfSBbSW52YWxpZD1JbnZhbGlkSGFuZGxlcl1cbiAqIEB0ZW1wbGF0ZSB7VW5rbm93bkhhbmRsZXJ9IFtVbmtub3duPVVua25vd25IYW5kbGVyXVxuICogQHRlbXBsYXRlIHtSZWNvcmQ8c3RyaW5nLCBIYW5kbGVyPn0gW0hhbmRsZXJzPVJlY29yZDxzdHJpbmcsIEhhbmRsZXI+XVxuICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICogICBGaWVsZCB0byBzd2l0Y2ggb24uXG4gKiBAcGFyYW0ge09wdGlvbnM8SW52YWxpZCwgVW5rbm93biwgSGFuZGxlcnM+fSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbiAocmVxdWlyZWQpLlxuICogQHJldHVybnMge3t1bmtub3duOiBVbmtub3duLCBpbnZhbGlkOiBJbnZhbGlkLCBoYW5kbGVyczogSGFuZGxlcnMsICguLi5wYXJhbWV0ZXJzOiBQYXJhbWV0ZXJzPEhhbmRsZXJzW2tleW9mIEhhbmRsZXJzXT4pOiBSZXR1cm5UeXBlPEhhbmRsZXJzW2tleW9mIEhhbmRsZXJzXT4sICguLi5wYXJhbWV0ZXJzOiBQYXJhbWV0ZXJzPFVua25vd24+KTogUmV0dXJuVHlwZTxVbmtub3duPn19XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB6d2l0Y2goa2V5LCBvcHRpb25zKSB7XG4gIGNvbnN0IHNldHRpbmdzID0gb3B0aW9ucyB8fCB7fVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgb25lIHZhbHVlLlxuICAgKlxuICAgKiBCYXNlZCBvbiB0aGUgYm91bmQgYGtleWAsIGEgcmVzcGVjdGl2ZSBoYW5kbGVyIHdpbGwgYmUgY2FsbGVkLlxuICAgKiBJZiBgdmFsdWVgIGlzIG5vdCBhbiBvYmplY3QsIG9yIGRvZXNuXHUyMDE5dCBoYXZlIGEgYGtleWAgcHJvcGVydHksIHRoZSBzcGVjaWFsXG4gICAqIFx1MjAxQ2ludmFsaWRcdTIwMUQgaGFuZGxlciB3aWxsIGJlIGNhbGxlZC5cbiAgICogSWYgYHZhbHVlYCBoYXMgYW4gdW5rbm93biBga2V5YCwgdGhlIHNwZWNpYWwgXHUyMDFDdW5rbm93blx1MjAxRCBoYW5kbGVyIHdpbGwgYmVcbiAgICogY2FsbGVkLlxuICAgKlxuICAgKiBBbGwgYXJndW1lbnRzLCBhbmQgdGhlIGNvbnRleHQgb2JqZWN0LCBhcmUgcGFzc2VkIHRocm91Z2ggdG8gdGhlIGhhbmRsZXIsXG4gICAqIGFuZCBpdFx1MjAxOXMgcmVzdWx0IGlzIHJldHVybmVkLlxuICAgKlxuICAgKiBAdGhpcyB7dW5rbm93bn1cbiAgICogICBBbnkgY29udGV4dCBvYmplY3QuXG4gICAqIEBwYXJhbSB7dW5rbm93bn0gW3ZhbHVlXVxuICAgKiAgIEFueSB2YWx1ZS5cbiAgICogQHBhcmFtIHsuLi51bmtub3dufSBwYXJhbWV0ZXJzXG4gICAqICAgQXJiaXRyYXJ5IHBhcmFtZXRlcnMgcGFzc2VkIHRvIHRoZSB6d2l0Y2guXG4gICAqIEBwcm9wZXJ0eSB7SGFuZGxlcn0gaW52YWxpZFxuICAgKiAgIEhhbmRsZSBmb3IgdmFsdWVzIHRoYXQgZG8gbm90IGhhdmUgYSBjZXJ0YWluIElEIGZpZWxkLlxuICAgKiBAcHJvcGVydHkge0hhbmRsZXJ9IHVua25vd25cbiAgICogICBIYW5kbGUgdmFsdWVzIHRoYXQgZG8gaGF2ZSBhIGNlcnRhaW4gSUQgZmllbGQsIGJ1dCBpdFx1MjAxOXMgc2V0IHRvIGEgdmFsdWVcbiAgICogICB0aGF0IGlzIG5vdCBsaXN0ZWQgaW4gdGhlIGBoYW5kbGVyc2AgcmVjb3JkLlxuICAgKiBAcHJvcGVydHkge0hhbmRsZXJzfSBoYW5kbGVyc1xuICAgKiAgIFJlY29yZCBvZiBoYW5kbGVycy5cbiAgICogQHJldHVybnMge3Vua25vd259XG4gICAqICAgQW55dGhpbmcuXG4gICAqL1xuICBmdW5jdGlvbiBvbmUodmFsdWUsIC4uLnBhcmFtZXRlcnMpIHtcbiAgICAvKiogQHR5cGUge0hhbmRsZXJ8dW5kZWZpbmVkfSAqL1xuICAgIGxldCBmbiA9IG9uZS5pbnZhbGlkXG4gICAgY29uc3QgaGFuZGxlcnMgPSBvbmUuaGFuZGxlcnNcblxuICAgIGlmICh2YWx1ZSAmJiBvd24uY2FsbCh2YWx1ZSwga2V5KSkge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBJbmRleGFibGUuXG4gICAgICBjb25zdCBpZCA9IFN0cmluZyh2YWx1ZVtrZXldKVxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBJbmRleGFibGUuXG4gICAgICBmbiA9IG93bi5jYWxsKGhhbmRsZXJzLCBpZCkgPyBoYW5kbGVyc1tpZF0gOiBvbmUudW5rbm93blxuICAgIH1cblxuICAgIGlmIChmbikge1xuICAgICAgcmV0dXJuIGZuLmNhbGwodGhpcywgdmFsdWUsIC4uLnBhcmFtZXRlcnMpXG4gICAgfVxuICB9XG5cbiAgb25lLmhhbmRsZXJzID0gc2V0dGluZ3MuaGFuZGxlcnMgfHwge31cbiAgb25lLmludmFsaWQgPSBzZXR0aW5ncy5pbnZhbGlkXG4gIG9uZS51bmtub3duID0gc2V0dGluZ3MudW5rbm93blxuXG4gIC8vIEB0cy1leHBlY3QtZXJyb3I6IG1hdGNoZXMhXG4gIHJldHVybiBvbmVcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIENvcmVPcHRpb25zXG4gKiBAcHJvcGVydHkge0FycmF5PHN0cmluZz59IFtzdWJzZXQ9W11dXG4gKiAgIFdoZXRoZXIgdG8gb25seSBlc2NhcGUgdGhlIGdpdmVuIHN1YnNldCBvZiBjaGFyYWN0ZXJzLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbZXNjYXBlT25seT1mYWxzZV1cbiAqICAgV2hldGhlciB0byBvbmx5IGVzY2FwZSBwb3NzaWJseSBkYW5nZXJvdXMgY2hhcmFjdGVycy5cbiAqICAgVGhvc2UgY2hhcmFjdGVycyBhcmUgYFwiYCwgYCZgLCBgJ2AsIGA8YCwgYD5gLCBhbmQgYGAgYCBgYC5cbiAqXG4gKiBAdHlwZWRlZiBGb3JtYXRPcHRpb25zXG4gKiBAcHJvcGVydHkgeyhjb2RlOiBudW1iZXIsIG5leHQ6IG51bWJlciwgb3B0aW9uczogQ29yZVdpdGhGb3JtYXRPcHRpb25zKSA9PiBzdHJpbmd9IGZvcm1hdFxuICogICBGb3JtYXQgc3RyYXRlZ3kuXG4gKlxuICogQHR5cGVkZWYge0NvcmVPcHRpb25zICYgRm9ybWF0T3B0aW9ucyAmIGltcG9ydCgnLi91dGlsL2Zvcm1hdC1zbWFydC5qcycpLkZvcm1hdFNtYXJ0T3B0aW9uc30gQ29yZVdpdGhGb3JtYXRPcHRpb25zXG4gKi9cblxuLyoqXG4gKiBFbmNvZGUgY2VydGFpbiBjaGFyYWN0ZXJzIGluIGB2YWx1ZWAuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcGFyYW0ge0NvcmVXaXRoRm9ybWF0T3B0aW9uc30gb3B0aW9uc1xuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvcmUodmFsdWUsIG9wdGlvbnMpIHtcbiAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKFxuICAgIG9wdGlvbnMuc3Vic2V0ID8gY2hhcmFjdGVyc1RvRXhwcmVzc2lvbihvcHRpb25zLnN1YnNldCkgOiAvW1wiJic8PmBdL2csXG4gICAgYmFzaWNcbiAgKVxuXG4gIGlmIChvcHRpb25zLnN1YnNldCB8fCBvcHRpb25zLmVzY2FwZU9ubHkpIHtcbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgdmFsdWVcbiAgICAgIC8vIFN1cnJvZ2F0ZSBwYWlycy5cbiAgICAgIC5yZXBsYWNlKC9bXFx1RDgwMC1cXHVEQkZGXVtcXHVEQzAwLVxcdURGRkZdL2csIHN1cnJvZ2F0ZSlcbiAgICAgIC8vIEJNUCBjb250cm9sIGNoYXJhY3RlcnMgKEMwIGV4Y2VwdCBmb3IgTEYsIENSLCBTUDsgREVMOyBhbmQgc29tZSBtb3JlXG4gICAgICAvLyBub24tQVNDSUkgb25lcykuXG4gICAgICAucmVwbGFjZShcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnRyb2wtcmVnZXgsIHVuaWNvcm4vbm8taGV4LWVzY2FwZVxuICAgICAgICAvW1xceDAxLVxcdFxcdlxcZlxceDBFLVxceDFGXFx4N0ZcXHg4MVxceDhEXFx4OEZcXHg5MFxceDlEXFx4QTAtXFx1RkZGRl0vZyxcbiAgICAgICAgYmFzaWNcbiAgICAgIClcbiAgKVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFpclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFsbFxuICAgKi9cbiAgZnVuY3Rpb24gc3Vycm9nYXRlKHBhaXIsIGluZGV4LCBhbGwpIHtcbiAgICByZXR1cm4gb3B0aW9ucy5mb3JtYXQoXG4gICAgICAocGFpci5jaGFyQ29kZUF0KDApIC0gMHhkODAwKSAqIDB4NDAwICtcbiAgICAgICAgcGFpci5jaGFyQ29kZUF0KDEpIC1cbiAgICAgICAgMHhkYzAwICtcbiAgICAgICAgMHgxMDAwMCxcbiAgICAgIGFsbC5jaGFyQ29kZUF0KGluZGV4ICsgMiksXG4gICAgICBvcHRpb25zXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjaGFyYWN0ZXJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhbGxcbiAgICovXG4gIGZ1bmN0aW9uIGJhc2ljKGNoYXJhY3RlciwgaW5kZXgsIGFsbCkge1xuICAgIHJldHVybiBvcHRpb25zLmZvcm1hdChcbiAgICAgIGNoYXJhY3Rlci5jaGFyQ29kZUF0KDApLFxuICAgICAgYWxsLmNoYXJDb2RlQXQoaW5kZXggKyAxKSxcbiAgICAgIG9wdGlvbnNcbiAgICApXG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge0FycmF5PHN0cmluZz59IHN1YnNldFxuICogQHJldHVybnMge1JlZ0V4cH1cbiAqL1xuZnVuY3Rpb24gY2hhcmFjdGVyc1RvRXhwcmVzc2lvbihzdWJzZXQpIHtcbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICBjb25zdCBncm91cHMgPSBbXVxuICBsZXQgaW5kZXggPSAtMVxuXG4gIHdoaWxlICgrK2luZGV4IDwgc3Vic2V0Lmxlbmd0aCkge1xuICAgIGdyb3Vwcy5wdXNoKHN1YnNldFtpbmRleF0ucmVwbGFjZSgvW3xcXFxce30oKVtcXF1eJCsqPy5dL2csICdcXFxcJCYnKSlcbiAgfVxuXG4gIHJldHVybiBuZXcgUmVnRXhwKCcoPzonICsgZ3JvdXBzLmpvaW4oJ3wnKSArICcpJywgJ2cnKVxufVxuIiwgIi8qKlxuICogQ29uZmlndXJhYmxlIHdheXMgdG8gZW5jb2RlIGNoYXJhY3RlcnMgYXMgaGV4YWRlY2ltYWwgcmVmZXJlbmNlcy5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gY29kZVxuICogQHBhcmFtIHtudW1iZXJ9IG5leHRcbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IG9taXRcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0hleGFkZWNpbWFsKGNvZGUsIG5leHQsIG9taXQpIHtcbiAgY29uc3QgdmFsdWUgPSAnJiN4JyArIGNvZGUudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKClcbiAgcmV0dXJuIG9taXQgJiYgbmV4dCAmJiAhL1tcXGRBLUZhLWZdLy50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUobmV4dCkpXG4gICAgPyB2YWx1ZVxuICAgIDogdmFsdWUgKyAnOydcbn1cbiIsICIvKipcbiAqIENvbmZpZ3VyYWJsZSB3YXlzIHRvIGVuY29kZSBjaGFyYWN0ZXJzIGFzIGRlY2ltYWwgcmVmZXJlbmNlcy5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gY29kZVxuICogQHBhcmFtIHtudW1iZXJ9IG5leHRcbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IG9taXRcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0RlY2ltYWwoY29kZSwgbmV4dCwgb21pdCkge1xuICBjb25zdCB2YWx1ZSA9ICcmIycgKyBTdHJpbmcoY29kZSlcbiAgcmV0dXJuIG9taXQgJiYgbmV4dCAmJiAhL1xcZC8udGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKG5leHQpKVxuICAgID8gdmFsdWVcbiAgICA6IHZhbHVlICsgJzsnXG59XG4iLCAiLyoqXG4gKiBMaXN0IG9mIGxlZ2FjeSBIVE1MIG5hbWVkIGNoYXJhY3RlciByZWZlcmVuY2VzIHRoYXQgZG9uXHUyMDE5dCBuZWVkIGEgdHJhaWxpbmcgc2VtaWNvbG9uLlxuICpcbiAqIEB0eXBlIHtBcnJheTxzdHJpbmc+fVxuICovXG5leHBvcnQgY29uc3QgY2hhcmFjdGVyRW50aXRpZXNMZWdhY3kgPSBbXG4gICdBRWxpZycsXG4gICdBTVAnLFxuICAnQWFjdXRlJyxcbiAgJ0FjaXJjJyxcbiAgJ0FncmF2ZScsXG4gICdBcmluZycsXG4gICdBdGlsZGUnLFxuICAnQXVtbCcsXG4gICdDT1BZJyxcbiAgJ0NjZWRpbCcsXG4gICdFVEgnLFxuICAnRWFjdXRlJyxcbiAgJ0VjaXJjJyxcbiAgJ0VncmF2ZScsXG4gICdFdW1sJyxcbiAgJ0dUJyxcbiAgJ0lhY3V0ZScsXG4gICdJY2lyYycsXG4gICdJZ3JhdmUnLFxuICAnSXVtbCcsXG4gICdMVCcsXG4gICdOdGlsZGUnLFxuICAnT2FjdXRlJyxcbiAgJ09jaXJjJyxcbiAgJ09ncmF2ZScsXG4gICdPc2xhc2gnLFxuICAnT3RpbGRlJyxcbiAgJ091bWwnLFxuICAnUVVPVCcsXG4gICdSRUcnLFxuICAnVEhPUk4nLFxuICAnVWFjdXRlJyxcbiAgJ1VjaXJjJyxcbiAgJ1VncmF2ZScsXG4gICdVdW1sJyxcbiAgJ1lhY3V0ZScsXG4gICdhYWN1dGUnLFxuICAnYWNpcmMnLFxuICAnYWN1dGUnLFxuICAnYWVsaWcnLFxuICAnYWdyYXZlJyxcbiAgJ2FtcCcsXG4gICdhcmluZycsXG4gICdhdGlsZGUnLFxuICAnYXVtbCcsXG4gICdicnZiYXInLFxuICAnY2NlZGlsJyxcbiAgJ2NlZGlsJyxcbiAgJ2NlbnQnLFxuICAnY29weScsXG4gICdjdXJyZW4nLFxuICAnZGVnJyxcbiAgJ2RpdmlkZScsXG4gICdlYWN1dGUnLFxuICAnZWNpcmMnLFxuICAnZWdyYXZlJyxcbiAgJ2V0aCcsXG4gICdldW1sJyxcbiAgJ2ZyYWMxMicsXG4gICdmcmFjMTQnLFxuICAnZnJhYzM0JyxcbiAgJ2d0JyxcbiAgJ2lhY3V0ZScsXG4gICdpY2lyYycsXG4gICdpZXhjbCcsXG4gICdpZ3JhdmUnLFxuICAnaXF1ZXN0JyxcbiAgJ2l1bWwnLFxuICAnbGFxdW8nLFxuICAnbHQnLFxuICAnbWFjcicsXG4gICdtaWNybycsXG4gICdtaWRkb3QnLFxuICAnbmJzcCcsXG4gICdub3QnLFxuICAnbnRpbGRlJyxcbiAgJ29hY3V0ZScsXG4gICdvY2lyYycsXG4gICdvZ3JhdmUnLFxuICAnb3JkZicsXG4gICdvcmRtJyxcbiAgJ29zbGFzaCcsXG4gICdvdGlsZGUnLFxuICAnb3VtbCcsXG4gICdwYXJhJyxcbiAgJ3BsdXNtbicsXG4gICdwb3VuZCcsXG4gICdxdW90JyxcbiAgJ3JhcXVvJyxcbiAgJ3JlZycsXG4gICdzZWN0JyxcbiAgJ3NoeScsXG4gICdzdXAxJyxcbiAgJ3N1cDInLFxuICAnc3VwMycsXG4gICdzemxpZycsXG4gICd0aG9ybicsXG4gICd0aW1lcycsXG4gICd1YWN1dGUnLFxuICAndWNpcmMnLFxuICAndWdyYXZlJyxcbiAgJ3VtbCcsXG4gICd1dW1sJyxcbiAgJ3lhY3V0ZScsXG4gICd5ZW4nLFxuICAneXVtbCdcbl1cbiIsICIvKipcbiAqIE1hcCBvZiBuYW1lZCBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBmcm9tIEhUTUwgNC5cbiAqXG4gKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn1cbiAqL1xuZXhwb3J0IGNvbnN0IGNoYXJhY3RlckVudGl0aWVzSHRtbDQgPSB7XG4gIG5ic3A6ICdcdTAwQTAnLFxuICBpZXhjbDogJ1x1MDBBMScsXG4gIGNlbnQ6ICdcdTAwQTInLFxuICBwb3VuZDogJ1x1MDBBMycsXG4gIGN1cnJlbjogJ1x1MDBBNCcsXG4gIHllbjogJ1x1MDBBNScsXG4gIGJydmJhcjogJ1x1MDBBNicsXG4gIHNlY3Q6ICdcdTAwQTcnLFxuICB1bWw6ICdcdTAwQTgnLFxuICBjb3B5OiAnXHUwMEE5JyxcbiAgb3JkZjogJ1x1MDBBQScsXG4gIGxhcXVvOiAnXHUwMEFCJyxcbiAgbm90OiAnXHUwMEFDJyxcbiAgc2h5OiAnXHUwMEFEJyxcbiAgcmVnOiAnXHUwMEFFJyxcbiAgbWFjcjogJ1x1MDBBRicsXG4gIGRlZzogJ1x1MDBCMCcsXG4gIHBsdXNtbjogJ1x1MDBCMScsXG4gIHN1cDI6ICdcdTAwQjInLFxuICBzdXAzOiAnXHUwMEIzJyxcbiAgYWN1dGU6ICdcdTAwQjQnLFxuICBtaWNybzogJ1x1MDBCNScsXG4gIHBhcmE6ICdcdTAwQjYnLFxuICBtaWRkb3Q6ICdcdTAwQjcnLFxuICBjZWRpbDogJ1x1MDBCOCcsXG4gIHN1cDE6ICdcdTAwQjknLFxuICBvcmRtOiAnXHUwMEJBJyxcbiAgcmFxdW86ICdcdTAwQkInLFxuICBmcmFjMTQ6ICdcdTAwQkMnLFxuICBmcmFjMTI6ICdcdTAwQkQnLFxuICBmcmFjMzQ6ICdcdTAwQkUnLFxuICBpcXVlc3Q6ICdcdTAwQkYnLFxuICBBZ3JhdmU6ICdcdTAwQzAnLFxuICBBYWN1dGU6ICdcdTAwQzEnLFxuICBBY2lyYzogJ1x1MDBDMicsXG4gIEF0aWxkZTogJ1x1MDBDMycsXG4gIEF1bWw6ICdcdTAwQzQnLFxuICBBcmluZzogJ1x1MDBDNScsXG4gIEFFbGlnOiAnXHUwMEM2JyxcbiAgQ2NlZGlsOiAnXHUwMEM3JyxcbiAgRWdyYXZlOiAnXHUwMEM4JyxcbiAgRWFjdXRlOiAnXHUwMEM5JyxcbiAgRWNpcmM6ICdcdTAwQ0EnLFxuICBFdW1sOiAnXHUwMENCJyxcbiAgSWdyYXZlOiAnXHUwMENDJyxcbiAgSWFjdXRlOiAnXHUwMENEJyxcbiAgSWNpcmM6ICdcdTAwQ0UnLFxuICBJdW1sOiAnXHUwMENGJyxcbiAgRVRIOiAnXHUwMEQwJyxcbiAgTnRpbGRlOiAnXHUwMEQxJyxcbiAgT2dyYXZlOiAnXHUwMEQyJyxcbiAgT2FjdXRlOiAnXHUwMEQzJyxcbiAgT2NpcmM6ICdcdTAwRDQnLFxuICBPdGlsZGU6ICdcdTAwRDUnLFxuICBPdW1sOiAnXHUwMEQ2JyxcbiAgdGltZXM6ICdcdTAwRDcnLFxuICBPc2xhc2g6ICdcdTAwRDgnLFxuICBVZ3JhdmU6ICdcdTAwRDknLFxuICBVYWN1dGU6ICdcdTAwREEnLFxuICBVY2lyYzogJ1x1MDBEQicsXG4gIFV1bWw6ICdcdTAwREMnLFxuICBZYWN1dGU6ICdcdTAwREQnLFxuICBUSE9STjogJ1x1MDBERScsXG4gIHN6bGlnOiAnXHUwMERGJyxcbiAgYWdyYXZlOiAnXHUwMEUwJyxcbiAgYWFjdXRlOiAnXHUwMEUxJyxcbiAgYWNpcmM6ICdcdTAwRTInLFxuICBhdGlsZGU6ICdcdTAwRTMnLFxuICBhdW1sOiAnXHUwMEU0JyxcbiAgYXJpbmc6ICdcdTAwRTUnLFxuICBhZWxpZzogJ1x1MDBFNicsXG4gIGNjZWRpbDogJ1x1MDBFNycsXG4gIGVncmF2ZTogJ1x1MDBFOCcsXG4gIGVhY3V0ZTogJ1x1MDBFOScsXG4gIGVjaXJjOiAnXHUwMEVBJyxcbiAgZXVtbDogJ1x1MDBFQicsXG4gIGlncmF2ZTogJ1x1MDBFQycsXG4gIGlhY3V0ZTogJ1x1MDBFRCcsXG4gIGljaXJjOiAnXHUwMEVFJyxcbiAgaXVtbDogJ1x1MDBFRicsXG4gIGV0aDogJ1x1MDBGMCcsXG4gIG50aWxkZTogJ1x1MDBGMScsXG4gIG9ncmF2ZTogJ1x1MDBGMicsXG4gIG9hY3V0ZTogJ1x1MDBGMycsXG4gIG9jaXJjOiAnXHUwMEY0JyxcbiAgb3RpbGRlOiAnXHUwMEY1JyxcbiAgb3VtbDogJ1x1MDBGNicsXG4gIGRpdmlkZTogJ1x1MDBGNycsXG4gIG9zbGFzaDogJ1x1MDBGOCcsXG4gIHVncmF2ZTogJ1x1MDBGOScsXG4gIHVhY3V0ZTogJ1x1MDBGQScsXG4gIHVjaXJjOiAnXHUwMEZCJyxcbiAgdXVtbDogJ1x1MDBGQycsXG4gIHlhY3V0ZTogJ1x1MDBGRCcsXG4gIHRob3JuOiAnXHUwMEZFJyxcbiAgeXVtbDogJ1x1MDBGRicsXG4gIGZub2Y6ICdcdTAxOTInLFxuICBBbHBoYTogJ1x1MDM5MScsXG4gIEJldGE6ICdcdTAzOTInLFxuICBHYW1tYTogJ1x1MDM5MycsXG4gIERlbHRhOiAnXHUwMzk0JyxcbiAgRXBzaWxvbjogJ1x1MDM5NScsXG4gIFpldGE6ICdcdTAzOTYnLFxuICBFdGE6ICdcdTAzOTcnLFxuICBUaGV0YTogJ1x1MDM5OCcsXG4gIElvdGE6ICdcdTAzOTknLFxuICBLYXBwYTogJ1x1MDM5QScsXG4gIExhbWJkYTogJ1x1MDM5QicsXG4gIE11OiAnXHUwMzlDJyxcbiAgTnU6ICdcdTAzOUQnLFxuICBYaTogJ1x1MDM5RScsXG4gIE9taWNyb246ICdcdTAzOUYnLFxuICBQaTogJ1x1MDNBMCcsXG4gIFJobzogJ1x1MDNBMScsXG4gIFNpZ21hOiAnXHUwM0EzJyxcbiAgVGF1OiAnXHUwM0E0JyxcbiAgVXBzaWxvbjogJ1x1MDNBNScsXG4gIFBoaTogJ1x1MDNBNicsXG4gIENoaTogJ1x1MDNBNycsXG4gIFBzaTogJ1x1MDNBOCcsXG4gIE9tZWdhOiAnXHUwM0E5JyxcbiAgYWxwaGE6ICdcdTAzQjEnLFxuICBiZXRhOiAnXHUwM0IyJyxcbiAgZ2FtbWE6ICdcdTAzQjMnLFxuICBkZWx0YTogJ1x1MDNCNCcsXG4gIGVwc2lsb246ICdcdTAzQjUnLFxuICB6ZXRhOiAnXHUwM0I2JyxcbiAgZXRhOiAnXHUwM0I3JyxcbiAgdGhldGE6ICdcdTAzQjgnLFxuICBpb3RhOiAnXHUwM0I5JyxcbiAga2FwcGE6ICdcdTAzQkEnLFxuICBsYW1iZGE6ICdcdTAzQkInLFxuICBtdTogJ1x1MDNCQycsXG4gIG51OiAnXHUwM0JEJyxcbiAgeGk6ICdcdTAzQkUnLFxuICBvbWljcm9uOiAnXHUwM0JGJyxcbiAgcGk6ICdcdTAzQzAnLFxuICByaG86ICdcdTAzQzEnLFxuICBzaWdtYWY6ICdcdTAzQzInLFxuICBzaWdtYTogJ1x1MDNDMycsXG4gIHRhdTogJ1x1MDNDNCcsXG4gIHVwc2lsb246ICdcdTAzQzUnLFxuICBwaGk6ICdcdTAzQzYnLFxuICBjaGk6ICdcdTAzQzcnLFxuICBwc2k6ICdcdTAzQzgnLFxuICBvbWVnYTogJ1x1MDNDOScsXG4gIHRoZXRhc3ltOiAnXHUwM0QxJyxcbiAgdXBzaWg6ICdcdTAzRDInLFxuICBwaXY6ICdcdTAzRDYnLFxuICBidWxsOiAnXHUyMDIyJyxcbiAgaGVsbGlwOiAnXHUyMDI2JyxcbiAgcHJpbWU6ICdcdTIwMzInLFxuICBQcmltZTogJ1x1MjAzMycsXG4gIG9saW5lOiAnXHUyMDNFJyxcbiAgZnJhc2w6ICdcdTIwNDQnLFxuICB3ZWllcnA6ICdcdTIxMTgnLFxuICBpbWFnZTogJ1x1MjExMScsXG4gIHJlYWw6ICdcdTIxMUMnLFxuICB0cmFkZTogJ1x1MjEyMicsXG4gIGFsZWZzeW06ICdcdTIxMzUnLFxuICBsYXJyOiAnXHUyMTkwJyxcbiAgdWFycjogJ1x1MjE5MScsXG4gIHJhcnI6ICdcdTIxOTInLFxuICBkYXJyOiAnXHUyMTkzJyxcbiAgaGFycjogJ1x1MjE5NCcsXG4gIGNyYXJyOiAnXHUyMUI1JyxcbiAgbEFycjogJ1x1MjFEMCcsXG4gIHVBcnI6ICdcdTIxRDEnLFxuICByQXJyOiAnXHUyMUQyJyxcbiAgZEFycjogJ1x1MjFEMycsXG4gIGhBcnI6ICdcdTIxRDQnLFxuICBmb3JhbGw6ICdcdTIyMDAnLFxuICBwYXJ0OiAnXHUyMjAyJyxcbiAgZXhpc3Q6ICdcdTIyMDMnLFxuICBlbXB0eTogJ1x1MjIwNScsXG4gIG5hYmxhOiAnXHUyMjA3JyxcbiAgaXNpbjogJ1x1MjIwOCcsXG4gIG5vdGluOiAnXHUyMjA5JyxcbiAgbmk6ICdcdTIyMEInLFxuICBwcm9kOiAnXHUyMjBGJyxcbiAgc3VtOiAnXHUyMjExJyxcbiAgbWludXM6ICdcdTIyMTInLFxuICBsb3dhc3Q6ICdcdTIyMTcnLFxuICByYWRpYzogJ1x1MjIxQScsXG4gIHByb3A6ICdcdTIyMUQnLFxuICBpbmZpbjogJ1x1MjIxRScsXG4gIGFuZzogJ1x1MjIyMCcsXG4gIGFuZDogJ1x1MjIyNycsXG4gIG9yOiAnXHUyMjI4JyxcbiAgY2FwOiAnXHUyMjI5JyxcbiAgY3VwOiAnXHUyMjJBJyxcbiAgaW50OiAnXHUyMjJCJyxcbiAgdGhlcmU0OiAnXHUyMjM0JyxcbiAgc2ltOiAnXHUyMjNDJyxcbiAgY29uZzogJ1x1MjI0NScsXG4gIGFzeW1wOiAnXHUyMjQ4JyxcbiAgbmU6ICdcdTIyNjAnLFxuICBlcXVpdjogJ1x1MjI2MScsXG4gIGxlOiAnXHUyMjY0JyxcbiAgZ2U6ICdcdTIyNjUnLFxuICBzdWI6ICdcdTIyODInLFxuICBzdXA6ICdcdTIyODMnLFxuICBuc3ViOiAnXHUyMjg0JyxcbiAgc3ViZTogJ1x1MjI4NicsXG4gIHN1cGU6ICdcdTIyODcnLFxuICBvcGx1czogJ1x1MjI5NScsXG4gIG90aW1lczogJ1x1MjI5NycsXG4gIHBlcnA6ICdcdTIyQTUnLFxuICBzZG90OiAnXHUyMkM1JyxcbiAgbGNlaWw6ICdcdTIzMDgnLFxuICByY2VpbDogJ1x1MjMwOScsXG4gIGxmbG9vcjogJ1x1MjMwQScsXG4gIHJmbG9vcjogJ1x1MjMwQicsXG4gIGxhbmc6ICdcdTIzMjknLFxuICByYW5nOiAnXHUyMzJBJyxcbiAgbG96OiAnXHUyNUNBJyxcbiAgc3BhZGVzOiAnXHUyNjYwJyxcbiAgY2x1YnM6ICdcdTI2NjMnLFxuICBoZWFydHM6ICdcdTI2NjUnLFxuICBkaWFtczogJ1x1MjY2NicsXG4gIHF1b3Q6ICdcIicsXG4gIGFtcDogJyYnLFxuICBsdDogJzwnLFxuICBndDogJz4nLFxuICBPRWxpZzogJ1x1MDE1MicsXG4gIG9lbGlnOiAnXHUwMTUzJyxcbiAgU2Nhcm9uOiAnXHUwMTYwJyxcbiAgc2Nhcm9uOiAnXHUwMTYxJyxcbiAgWXVtbDogJ1x1MDE3OCcsXG4gIGNpcmM6ICdcdTAyQzYnLFxuICB0aWxkZTogJ1x1MDJEQycsXG4gIGVuc3A6ICdcdTIwMDInLFxuICBlbXNwOiAnXHUyMDAzJyxcbiAgdGhpbnNwOiAnXHUyMDA5JyxcbiAgenduajogJ1x1MjAwQycsXG4gIHp3ajogJ1x1MjAwRCcsXG4gIGxybTogJ1x1MjAwRScsXG4gIHJsbTogJ1x1MjAwRicsXG4gIG5kYXNoOiAnXHUyMDEzJyxcbiAgbWRhc2g6ICdcdTIwMTQnLFxuICBsc3F1bzogJ1x1MjAxOCcsXG4gIHJzcXVvOiAnXHUyMDE5JyxcbiAgc2JxdW86ICdcdTIwMUEnLFxuICBsZHF1bzogJ1x1MjAxQycsXG4gIHJkcXVvOiAnXHUyMDFEJyxcbiAgYmRxdW86ICdcdTIwMUUnLFxuICBkYWdnZXI6ICdcdTIwMjAnLFxuICBEYWdnZXI6ICdcdTIwMjEnLFxuICBwZXJtaWw6ICdcdTIwMzAnLFxuICBsc2FxdW86ICdcdTIwMzknLFxuICByc2FxdW86ICdcdTIwM0EnLFxuICBldXJvOiAnXHUyMEFDJ1xufVxuIiwgIi8qKlxuICogTGlzdCBvZiBsZWdhY3kgKHRoYXQgZG9uXHUyMDE5dCBuZWVkIGEgdHJhaWxpbmcgYDtgKSBuYW1lZCByZWZlcmVuY2VzIHdoaWNoIGNvdWxkLFxuICogZGVwZW5kaW5nIG9uIHdoYXQgZm9sbG93cyB0aGVtLCB0dXJuIGludG8gYSBkaWZmZXJlbnQgbWVhbmluZ1xuICpcbiAqIEB0eXBlIHtBcnJheTxzdHJpbmc+fVxuICovXG5leHBvcnQgY29uc3QgZGFuZ2Vyb3VzID0gW1xuICAnY2VudCcsXG4gICdjb3B5JyxcbiAgJ2RpdmlkZScsXG4gICdndCcsXG4gICdsdCcsXG4gICdub3QnLFxuICAncGFyYScsXG4gICd0aW1lcydcbl1cbiIsICJpbXBvcnQge2NoYXJhY3RlckVudGl0aWVzTGVnYWN5fSBmcm9tICdjaGFyYWN0ZXItZW50aXRpZXMtbGVnYWN5J1xuaW1wb3J0IHtjaGFyYWN0ZXJFbnRpdGllc0h0bWw0fSBmcm9tICdjaGFyYWN0ZXItZW50aXRpZXMtaHRtbDQnXG5pbXBvcnQge2Rhbmdlcm91c30gZnJvbSAnLi4vY29uc3RhbnQvZGFuZ2Vyb3VzLmpzJ1xuXG5jb25zdCBvd24gPSB7fS5oYXNPd25Qcm9wZXJ0eVxuXG4vKipcbiAqIGBjaGFyYWN0ZXJFbnRpdGllc0h0bWw0YCBidXQgaW52ZXJ0ZWQuXG4gKlxuICogQHR5cGUge1JlY29yZDxzdHJpbmcsIHN0cmluZz59XG4gKi9cbmNvbnN0IGNoYXJhY3RlcnMgPSB7fVxuXG4vKiogQHR5cGUge3N0cmluZ30gKi9cbmxldCBrZXlcblxuZm9yIChrZXkgaW4gY2hhcmFjdGVyRW50aXRpZXNIdG1sNCkge1xuICBpZiAob3duLmNhbGwoY2hhcmFjdGVyRW50aXRpZXNIdG1sNCwga2V5KSkge1xuICAgIGNoYXJhY3RlcnNbY2hhcmFjdGVyRW50aXRpZXNIdG1sNFtrZXldXSA9IGtleVxuICB9XG59XG5cbi8qKlxuICogQ29uZmlndXJhYmxlIHdheXMgdG8gZW5jb2RlIGNoYXJhY3RlcnMgYXMgbmFtZWQgcmVmZXJlbmNlcy5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gY29kZVxuICogQHBhcmFtIHtudW1iZXJ9IG5leHRcbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IG9taXRcbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IGF0dHJpYnV0ZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvTmFtZWQoY29kZSwgbmV4dCwgb21pdCwgYXR0cmlidXRlKSB7XG4gIGNvbnN0IGNoYXJhY3RlciA9IFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSlcblxuICBpZiAob3duLmNhbGwoY2hhcmFjdGVycywgY2hhcmFjdGVyKSkge1xuICAgIGNvbnN0IG5hbWUgPSBjaGFyYWN0ZXJzW2NoYXJhY3Rlcl1cbiAgICBjb25zdCB2YWx1ZSA9ICcmJyArIG5hbWVcblxuICAgIGlmIChcbiAgICAgIG9taXQgJiZcbiAgICAgIGNoYXJhY3RlckVudGl0aWVzTGVnYWN5LmluY2x1ZGVzKG5hbWUpICYmXG4gICAgICAhZGFuZ2Vyb3VzLmluY2x1ZGVzKG5hbWUpICYmXG4gICAgICAoIWF0dHJpYnV0ZSB8fFxuICAgICAgICAobmV4dCAmJlxuICAgICAgICAgIG5leHQgIT09IDYxIC8qIGA9YCAqLyAmJlxuICAgICAgICAgIC9bXlxcZGEtel0vaS50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUobmV4dCkpKSlcbiAgICApIHtcbiAgICAgIHJldHVybiB2YWx1ZVxuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZSArICc7J1xuICB9XG5cbiAgcmV0dXJuICcnXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiBGb3JtYXRTbWFydE9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW3VzZU5hbWVkUmVmZXJlbmNlcz1mYWxzZV1cbiAqICAgUHJlZmVyIG5hbWVkIGNoYXJhY3RlciByZWZlcmVuY2VzIChgJmFtcDtgKSB3aGVyZSBwb3NzaWJsZS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW3VzZVNob3J0ZXN0UmVmZXJlbmNlcz1mYWxzZV1cbiAqICAgUHJlZmVyIHRoZSBzaG9ydGVzdCBwb3NzaWJsZSByZWZlcmVuY2UsIGlmIHRoYXQgcmVzdWx0cyBpbiBsZXNzIGJ5dGVzLlxuICogICAqKk5vdGUqKjogYHVzZU5hbWVkUmVmZXJlbmNlc2AgY2FuIGJlIG9taXR0ZWQgd2hlbiB1c2luZyBgdXNlU2hvcnRlc3RSZWZlcmVuY2VzYC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW29taXRPcHRpb25hbFNlbWljb2xvbnM9ZmFsc2VdXG4gKiAgIFdoZXRoZXIgdG8gb21pdCBzZW1pY29sb25zIHdoZW4gcG9zc2libGUuXG4gKiAgICoqTm90ZSoqOiBUaGlzIGNyZWF0ZXMgd2hhdCBIVE1MIGNhbGxzIFx1MjAxQ3BhcnNlIGVycm9yc1x1MjAxRCBidXQgaXMgb3RoZXJ3aXNlIHN0aWxsIHZhbGlkIEhUTUwgXHUyMDE0IGRvblx1MjAxOXQgdXNlIHRoaXMgZXhjZXB0IHdoZW4gYnVpbGRpbmcgYSBtaW5pZmllci5cbiAqICAgT21pdHRpbmcgc2VtaWNvbG9ucyBpcyBwb3NzaWJsZSBmb3IgY2VydGFpbiBuYW1lZCBhbmQgbnVtZXJpYyByZWZlcmVuY2VzIGluIHNvbWUgY2FzZXMuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFthdHRyaWJ1dGU9ZmFsc2VdXG4gKiAgIENyZWF0ZSBjaGFyYWN0ZXIgcmVmZXJlbmNlcyB3aGljaCBkb25cdTIwMTl0IGZhaWwgaW4gYXR0cmlidXRlcy5cbiAqICAgKipOb3RlKio6IGBhdHRyaWJ1dGVgIG9ubHkgYXBwbGllcyB3aGVuIG9wZXJhdGluZyBkYW5nZXJvdXNseSB3aXRoXG4gKiAgIGBvbWl0T3B0aW9uYWxTZW1pY29sb25zOiB0cnVlYC5cbiAqL1xuXG5pbXBvcnQge3RvSGV4YWRlY2ltYWx9IGZyb20gJy4vdG8taGV4YWRlY2ltYWwuanMnXG5pbXBvcnQge3RvRGVjaW1hbH0gZnJvbSAnLi90by1kZWNpbWFsLmpzJ1xuaW1wb3J0IHt0b05hbWVkfSBmcm9tICcuL3RvLW5hbWVkLmpzJ1xuXG4vKipcbiAqIENvbmZpZ3VyYWJsZSB3YXlzIHRvIGVuY29kZSBhIGNoYXJhY3RlciB5aWVsZGluZyBwcmV0dHkgb3Igc21hbGwgcmVzdWx0cy5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gY29kZVxuICogQHBhcmFtIHtudW1iZXJ9IG5leHRcbiAqIEBwYXJhbSB7Rm9ybWF0U21hcnRPcHRpb25zfSBvcHRpb25zXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0U21hcnQoY29kZSwgbmV4dCwgb3B0aW9ucykge1xuICBsZXQgbnVtZXJpYyA9IHRvSGV4YWRlY2ltYWwoY29kZSwgbmV4dCwgb3B0aW9ucy5vbWl0T3B0aW9uYWxTZW1pY29sb25zKVxuICAvKiogQHR5cGUge3N0cmluZ3x1bmRlZmluZWR9ICovXG4gIGxldCBuYW1lZFxuXG4gIGlmIChvcHRpb25zLnVzZU5hbWVkUmVmZXJlbmNlcyB8fCBvcHRpb25zLnVzZVNob3J0ZXN0UmVmZXJlbmNlcykge1xuICAgIG5hbWVkID0gdG9OYW1lZChcbiAgICAgIGNvZGUsXG4gICAgICBuZXh0LFxuICAgICAgb3B0aW9ucy5vbWl0T3B0aW9uYWxTZW1pY29sb25zLFxuICAgICAgb3B0aW9ucy5hdHRyaWJ1dGVcbiAgICApXG4gIH1cblxuICAvLyBVc2UgdGhlIHNob3J0ZXN0IG51bWVyaWMgcmVmZXJlbmNlIHdoZW4gcmVxdWVzdGVkLlxuICAvLyBBIHNpbXBsZSBhbGdvcml0aG0gd291bGQgdXNlIGRlY2ltYWwgZm9yIGFsbCBjb2RlIHBvaW50cyB1bmRlciAxMDAsIGFzXG4gIC8vIHRob3NlIGFyZSBzaG9ydGVyIHRoYW4gaGV4YWRlY2ltYWw6XG4gIC8vXG4gIC8vICogYCYjOTk7YCB2cyBgJiN4NjM7YCAoZGVjaW1hbCBzaG9ydGVyKVxuICAvLyAqIGAmIzEwMDtgIHZzIGAmI3g2NDtgIChlcXVhbClcbiAgLy9cbiAgLy8gSG93ZXZlciwgYmVjYXVzZSB3ZSB0YWtlIGBuZXh0YCBpbnRvIGNvbnNpZGVyYXRpb24gd2hlbiBgb21pdGAgaXMgdXNlZCxcbiAgLy8gQW5kIGl0IHdvdWxkIGJlIHBvc3NpYmxlIHRoYXQgZGVjaW1hbHMgYXJlIHNob3J0ZXIgb24gYmlnZ2VyIHZhbHVlcyBhc1xuICAvLyB3ZWxsIGlmIGBuZXh0YCBpcyBoZXhhZGVjaW1hbCBidXQgbm90IGRlY2ltYWwsIHdlIGluc3RlYWQgY29tcGFyZSBib3RoLlxuICBpZiAoXG4gICAgKG9wdGlvbnMudXNlU2hvcnRlc3RSZWZlcmVuY2VzIHx8ICFuYW1lZCkgJiZcbiAgICBvcHRpb25zLnVzZVNob3J0ZXN0UmVmZXJlbmNlc1xuICApIHtcbiAgICBjb25zdCBkZWNpbWFsID0gdG9EZWNpbWFsKGNvZGUsIG5leHQsIG9wdGlvbnMub21pdE9wdGlvbmFsU2VtaWNvbG9ucylcblxuICAgIGlmIChkZWNpbWFsLmxlbmd0aCA8IG51bWVyaWMubGVuZ3RoKSB7XG4gICAgICBudW1lcmljID0gZGVjaW1hbFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuYW1lZCAmJlxuICAgICghb3B0aW9ucy51c2VTaG9ydGVzdFJlZmVyZW5jZXMgfHwgbmFtZWQubGVuZ3RoIDwgbnVtZXJpYy5sZW5ndGgpXG4gICAgPyBuYW1lZFxuICAgIDogbnVtZXJpY1xufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9jb3JlLmpzJykuQ29yZU9wdGlvbnMgJiBpbXBvcnQoJy4vdXRpbC9mb3JtYXQtc21hcnQuanMnKS5Gb3JtYXRTbWFydE9wdGlvbnN9IE9wdGlvbnNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vY29yZS5qcycpLkNvcmVPcHRpb25zfSBMaWdodE9wdGlvbnNcbiAqL1xuXG5pbXBvcnQge2NvcmV9IGZyb20gJy4vY29yZS5qcydcbmltcG9ydCB7Zm9ybWF0U21hcnR9IGZyb20gJy4vdXRpbC9mb3JtYXQtc21hcnQuanMnXG5pbXBvcnQge2Zvcm1hdEJhc2ljfSBmcm9tICcuL3V0aWwvZm9ybWF0LWJhc2ljLmpzJ1xuXG4vKipcbiAqIEVuY29kZSBzcGVjaWFsIGNoYXJhY3RlcnMgaW4gYHZhbHVlYC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqICAgVmFsdWUgdG8gZW5jb2RlLlxuICogQHBhcmFtIHtPcHRpb25zfSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEVuY29kZWQgdmFsdWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnlFbnRpdGllcyh2YWx1ZSwgb3B0aW9ucykge1xuICByZXR1cm4gY29yZSh2YWx1ZSwgT2JqZWN0LmFzc2lnbih7Zm9ybWF0OiBmb3JtYXRTbWFydH0sIG9wdGlvbnMpKVxufVxuXG4vKipcbiAqIEVuY29kZSBzcGVjaWFsIGNoYXJhY3RlcnMgaW4gYHZhbHVlYCBhcyBoZXhhZGVjaW1hbHMuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiAgIFZhbHVlIHRvIGVuY29kZS5cbiAqIEBwYXJhbSB7TGlnaHRPcHRpb25zfSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEVuY29kZWQgdmFsdWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnlFbnRpdGllc0xpZ2h0KHZhbHVlLCBvcHRpb25zKSB7XG4gIHJldHVybiBjb3JlKHZhbHVlLCBPYmplY3QuYXNzaWduKHtmb3JtYXQ6IGZvcm1hdEJhc2ljfSwgb3B0aW9ucykpXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuQ29tbWVudH0gQ29tbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9pbmRleC5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbmltcG9ydCB7c3RyaW5naWZ5RW50aXRpZXN9IGZyb20gJ3N0cmluZ2lmeS1lbnRpdGllcydcblxuLyoqXG4gKiBTZXJpYWxpemUgYSBjb21tZW50LlxuICpcbiAqIEBwYXJhbSB7Q29tbWVudH0gbm9kZVxuICogICBOb2RlIHRvIGhhbmRsZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBfMVxuICogICBJbmRleCBvZiBgbm9kZWAgaW4gYHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gXzJcbiAqICAgUGFyZW50IG9mIGBub2RlYC5cbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFNlcmlhbGl6ZWQgbm9kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbW1lbnQobm9kZSwgXzEsIF8yLCBzdGF0ZSkge1xuICAvLyBTZWU6IDxodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNjb21tZW50cz5cbiAgcmV0dXJuIHN0YXRlLnNldHRpbmdzLmJvZ3VzQ29tbWVudHNcbiAgICA/ICc8PycgK1xuICAgICAgICBzdHJpbmdpZnlFbnRpdGllcyhcbiAgICAgICAgICBub2RlLnZhbHVlLFxuICAgICAgICAgIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMsIHtzdWJzZXQ6IFsnPiddfSlcbiAgICAgICAgKSArXG4gICAgICAgICc+J1xuICAgIDogJzwhLS0nICsgbm9kZS52YWx1ZS5yZXBsYWNlKC9ePnxeLT58PCEtLXwtLT58LS0hPnw8IS0kL2csIGVuY29kZSkgKyAnLS0+J1xuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gJDBcbiAgICovXG4gIGZ1bmN0aW9uIGVuY29kZSgkMCkge1xuICAgIHJldHVybiBzdHJpbmdpZnlFbnRpdGllcyhcbiAgICAgICQwLFxuICAgICAgT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcywge1xuICAgICAgICBzdWJzZXQ6IFsnPCcsICc+J11cbiAgICAgIH0pXG4gICAgKVxuICB9XG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRG9jdHlwZX0gRG9jdHlwZVxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9pbmRleC5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbi8vIE1ha2UgVlMgY29kZSBzZWUgcmVmZXJlbmNlcyB0byB0aGUgYWJvdmUgdHlwZXMuXG4nJ1xuXG4vKipcbiAqIFNlcmlhbGl6ZSBhIGRvY3R5cGUuXG4gKlxuICogQHBhcmFtIHtEb2N0eXBlfSBfMVxuICogICBOb2RlIHRvIGhhbmRsZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBfMlxuICogICBJbmRleCBvZiBgbm9kZWAgaW4gYHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gXzNcbiAqICAgUGFyZW50IG9mIGBub2RlYC5cbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFNlcmlhbGl6ZWQgbm9kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRvY3R5cGUoXzEsIF8yLCBfMywgc3RhdGUpIHtcbiAgcmV0dXJuIChcbiAgICAnPCEnICtcbiAgICAoc3RhdGUuc2V0dGluZ3MudXBwZXJEb2N0eXBlID8gJ0RPQ1RZUEUnIDogJ2RvY3R5cGUnKSArXG4gICAgKHN0YXRlLnNldHRpbmdzLnRpZ2h0RG9jdHlwZSA/ICcnIDogJyAnKSArXG4gICAgJ2h0bWw+J1xuICApXG59XG4iLCAiLyoqXG4gKiBDb3VudCBob3cgb2Z0ZW4gYSBjaGFyYWN0ZXIgKG9yIHN1YnN0cmluZykgaXMgdXNlZCBpbiBhIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqICAgVmFsdWUgdG8gc2VhcmNoIGluLlxuICogQHBhcmFtIHtzdHJpbmd9IGNoYXJhY3RlclxuICogICBDaGFyYWN0ZXIgKG9yIHN1YnN0cmluZykgdG8gbG9vayBmb3IuXG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKiAgIE51bWJlciBvZiB0aW1lcyBgY2hhcmFjdGVyYCBvY2N1cnJlZCBpbiBgdmFsdWVgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2NvdW50KHZhbHVlLCBjaGFyYWN0ZXIpIHtcbiAgY29uc3Qgc291cmNlID0gU3RyaW5nKHZhbHVlKVxuXG4gIGlmICh0eXBlb2YgY2hhcmFjdGVyICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIGNoYXJhY3RlcicpXG4gIH1cblxuICBsZXQgY291bnQgPSAwXG4gIGxldCBpbmRleCA9IHNvdXJjZS5pbmRleE9mKGNoYXJhY3RlcilcblxuICB3aGlsZSAoaW5kZXggIT09IC0xKSB7XG4gICAgY291bnQrK1xuICAgIGluZGV4ID0gc291cmNlLmluZGV4T2YoY2hhcmFjdGVyLCBpbmRleCArIGNoYXJhY3Rlci5sZW5ndGgpXG4gIH1cblxuICByZXR1cm4gY291bnRcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Ob2Rlc30gTm9kZXNcbiAqL1xuXG4vLyBIVE1MIHdoaXRlc3BhY2UgZXhwcmVzc2lvbi5cbi8vIFNlZSA8aHR0cHM6Ly9pbmZyYS5zcGVjLndoYXR3Zy5vcmcvI2FzY2lpLXdoaXRlc3BhY2U+LlxuY29uc3QgcmUgPSAvWyBcXHRcXG5cXGZcXHJdL2dcblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgKmludGVyLWVsZW1lbnQgd2hpdGVzcGFjZSouXG4gKlxuICogQHBhcmFtIHtOb2RlcyB8IHN0cmluZ30gdGhpbmdcbiAqICAgVGhpbmcgdG8gY2hlY2sgKGBOb2RlYCBvciBgc3RyaW5nYCkuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgYHZhbHVlYCBpcyBpbnRlci1lbGVtZW50IHdoaXRlc3BhY2UgKGBib29sZWFuYCk6IGNvbnNpc3Rpbmcgb2ZcbiAqICAgemVybyBvciBtb3JlIG9mIHNwYWNlLCB0YWIgKGBcXHRgKSwgbGluZSBmZWVkIChgXFxuYCksIGNhcnJpYWdlIHJldHVyblxuICogICAoYFxccmApLCBvciBmb3JtIGZlZWQgKGBcXGZgKTsgaWYgYSBub2RlIGlzIHBhc3NlZCBpdCBtdXN0IGJlIGEgYFRleHRgIG5vZGUsXG4gKiAgIHdob3NlIGB2YWx1ZWAgZmllbGQgaXMgY2hlY2tlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdoaXRlc3BhY2UodGhpbmcpIHtcbiAgcmV0dXJuIHR5cGVvZiB0aGluZyA9PT0gJ29iamVjdCdcbiAgICA/IHRoaW5nLnR5cGUgPT09ICd0ZXh0J1xuICAgICAgPyBlbXB0eSh0aGluZy52YWx1ZSlcbiAgICAgIDogZmFsc2VcbiAgICA6IGVtcHR5KHRoaW5nKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGVtcHR5KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZS5yZXBsYWNlKHJlLCAnJykgPT09ICcnXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlJvb3RDb250ZW50fSBSb290Q29udGVudFxuICovXG5cbmltcG9ydCB7d2hpdGVzcGFjZX0gZnJvbSAnaGFzdC11dGlsLXdoaXRlc3BhY2UnXG5cbmV4cG9ydCBjb25zdCBzaWJsaW5nQWZ0ZXIgPSBzaWJsaW5ncygxKVxuZXhwb3J0IGNvbnN0IHNpYmxpbmdCZWZvcmUgPSBzaWJsaW5ncygtMSlcblxuLyoqIEB0eXBlIHtBcnJheTxSb290Q29udGVudD59ICovXG5jb25zdCBlbXB0eUNoaWxkcmVuID0gW11cblxuLyoqXG4gKiBGYWN0b3J5IHRvIGNoZWNrIHNpYmxpbmdzIGluIGEgZGlyZWN0aW9uLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmNyZW1lbnRcbiAqL1xuZnVuY3Rpb24gc2libGluZ3MoaW5jcmVtZW50KSB7XG4gIHJldHVybiBzaWJsaW5nXG5cbiAgLyoqXG4gICAqIEZpbmQgYXBwbGljYWJsZSBzaWJsaW5ncyBpbiBhIGRpcmVjdGlvbi5cbiAgICpcbiAgICogQHRlbXBsYXRlIHtQYXJlbnRzfSBQYXJlbnRcbiAgICogICBQYXJlbnQgdHlwZS5cbiAgICogQHBhcmFtIHtQYXJlbnQgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiAgIFBhcmVudC5cbiAgICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gICAqICAgSW5kZXggb2YgY2hpbGQgaW4gYHBhcmVudGAuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gW2luY2x1ZGVXaGl0ZXNwYWNlPWZhbHNlXVxuICAgKiAgIFdoZXRoZXIgdG8gaW5jbHVkZSB3aGl0ZXNwYWNlIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAgICogQHJldHVybnMge1BhcmVudCBleHRlbmRzIHtjaGlsZHJlbjogQXJyYXk8aW5mZXIgQ2hpbGQ+fSA/IENoaWxkIHwgdW5kZWZpbmVkIDogbmV2ZXJ9XG4gICAqICAgQ2hpbGQgb2YgcGFyZW50LlxuICAgKi9cbiAgZnVuY3Rpb24gc2libGluZyhwYXJlbnQsIGluZGV4LCBpbmNsdWRlV2hpdGVzcGFjZSkge1xuICAgIGNvbnN0IHNpYmxpbmdzID0gcGFyZW50ID8gcGFyZW50LmNoaWxkcmVuIDogZW1wdHlDaGlsZHJlblxuICAgIGxldCBvZmZzZXQgPSAoaW5kZXggfHwgMCkgKyBpbmNyZW1lbnRcbiAgICBsZXQgbmV4dCA9IHNpYmxpbmdzW29mZnNldF1cblxuICAgIGlmICghaW5jbHVkZVdoaXRlc3BhY2UpIHtcbiAgICAgIHdoaWxlIChuZXh0ICYmIHdoaXRlc3BhY2UobmV4dCkpIHtcbiAgICAgICAgb2Zmc2V0ICs9IGluY3JlbWVudFxuICAgICAgICBuZXh0ID0gc2libGluZ3Nbb2Zmc2V0XVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IGl0XHUyMDE5cyBhIGNvcnJlY3QgY2hpbGQuXG4gICAgcmV0dXJuIG5leHRcbiAgfVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkVsZW1lbnR9IEVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKi9cblxuLyoqXG4gKiBAY2FsbGJhY2sgT21pdEhhbmRsZVxuICogICBDaGVjayBpZiBhIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqIEBwYXJhbSB7RWxlbWVudH0gZWxlbWVudFxuICogICBFbGVtZW50IHRvIGNoZWNrLlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0byBvbWl0IGEgdGFnLlxuICpcbiAqL1xuXG5jb25zdCBvd24gPSB7fS5oYXNPd25Qcm9wZXJ0eVxuXG4vKipcbiAqIEZhY3RvcnkgdG8gY2hlY2sgaWYgYSBnaXZlbiBub2RlIGNhbiBoYXZlIGEgdGFnIG9taXR0ZWQuXG4gKlxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBPbWl0SGFuZGxlPn0gaGFuZGxlcnNcbiAqICAgT21pc3Npb24gaGFuZGxlcnMsIHdoZXJlIGVhY2gga2V5IGlzIGEgdGFnIG5hbWUsIGFuZCBlYWNoIHZhbHVlIGlzIHRoZVxuICogICBjb3JyZXNwb25kaW5nIGhhbmRsZXIuXG4gKiBAcmV0dXJucyB7T21pdEhhbmRsZX1cbiAqICAgV2hldGhlciB0byBvbWl0IGEgdGFnIG9mIGFuIGVsZW1lbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvbWlzc2lvbihoYW5kbGVycykge1xuICByZXR1cm4gb21pdFxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhIGdpdmVuIG5vZGUgY2FuIGhhdmUgYSB0YWcgb21pdHRlZC5cbiAgICpcbiAgICogQHR5cGUge09taXRIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbWl0KG5vZGUsIGluZGV4LCBwYXJlbnQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgb3duLmNhbGwoaGFuZGxlcnMsIG5vZGUudGFnTmFtZSkgJiZcbiAgICAgIGhhbmRsZXJzW25vZGUudGFnTmFtZV0obm9kZSwgaW5kZXgsIHBhcmVudClcbiAgICApXG4gIH1cbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50fSBFbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICovXG5cbmltcG9ydCB7d2hpdGVzcGFjZX0gZnJvbSAnaGFzdC11dGlsLXdoaXRlc3BhY2UnXG5pbXBvcnQge3NpYmxpbmdBZnRlcn0gZnJvbSAnLi91dGlsL3NpYmxpbmdzLmpzJ1xuaW1wb3J0IHtvbWlzc2lvbn0gZnJvbSAnLi9vbWlzc2lvbi5qcydcblxuZXhwb3J0IGNvbnN0IGNsb3NpbmcgPSBvbWlzc2lvbih7XG4gIGJvZHksXG4gIGNhcHRpb246IGhlYWRPckNvbGdyb3VwT3JDYXB0aW9uLFxuICBjb2xncm91cDogaGVhZE9yQ29sZ3JvdXBPckNhcHRpb24sXG4gIGRkLFxuICBkdCxcbiAgaGVhZDogaGVhZE9yQ29sZ3JvdXBPckNhcHRpb24sXG4gIGh0bWwsXG4gIGxpLFxuICBvcHRncm91cCxcbiAgb3B0aW9uLFxuICBwLFxuICBycDogcnVieUVsZW1lbnQsXG4gIHJ0OiBydWJ5RWxlbWVudCxcbiAgdGJvZHksXG4gIHRkOiBjZWxscyxcbiAgdGZvb3QsXG4gIHRoOiBjZWxscyxcbiAgdGhlYWQsXG4gIHRyXG59KVxuXG4vKipcbiAqIE1hY3JvIGZvciBgPC9oZWFkPmAsIGA8L2NvbGdyb3VwPmAsIGFuZCBgPC9jYXB0aW9uPmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gaGVhZE9yQ29sZ3JvdXBPckNhcHRpb24oXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgsIHRydWUpXG4gIHJldHVybiAoXG4gICAgIW5leHQgfHxcbiAgICAobmV4dC50eXBlICE9PSAnY29tbWVudCcgJiZcbiAgICAgICEobmV4dC50eXBlID09PSAndGV4dCcgJiYgd2hpdGVzcGFjZShuZXh0LnZhbHVlLmNoYXJBdCgwKSkpKVxuICApXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L2h0bWw+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBodG1sKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gIW5leHQgfHwgbmV4dC50eXBlICE9PSAnY29tbWVudCdcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvYm9keT5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGJvZHkoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiAhbmV4dCB8fCBuZXh0LnR5cGUgIT09ICdjb21tZW50J1xufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC9wPmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gcChfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuIG5leHRcbiAgICA/IG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAgIChuZXh0LnRhZ05hbWUgPT09ICdhZGRyZXNzJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2FydGljbGUnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnYXNpZGUnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnYmxvY2txdW90ZScgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdkZXRhaWxzJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2RpdicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdkbCcgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdmaWVsZHNldCcgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdmaWdjYXB0aW9uJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2ZpZ3VyZScgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdmb290ZXInIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnZm9ybScgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdoMScgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdoMicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdoMycgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdoNCcgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdoNScgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdoNicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdoZWFkZXInIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnaGdyb3VwJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2hyJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ21haW4nIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnbWVudScgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICduYXYnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnb2wnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAncCcgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdwcmUnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnc2VjdGlvbicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICd0YWJsZScgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICd1bCcpXG4gICAgOiAhcGFyZW50IHx8XG4gICAgICAgIC8vIENvbmZ1c2luZyBwYXJlbnQuXG4gICAgICAgICEoXG4gICAgICAgICAgcGFyZW50LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgICAgIChwYXJlbnQudGFnTmFtZSA9PT0gJ2EnIHx8XG4gICAgICAgICAgICBwYXJlbnQudGFnTmFtZSA9PT0gJ2F1ZGlvJyB8fFxuICAgICAgICAgICAgcGFyZW50LnRhZ05hbWUgPT09ICdkZWwnIHx8XG4gICAgICAgICAgICBwYXJlbnQudGFnTmFtZSA9PT0gJ2lucycgfHxcbiAgICAgICAgICAgIHBhcmVudC50YWdOYW1lID09PSAnbWFwJyB8fFxuICAgICAgICAgICAgcGFyZW50LnRhZ05hbWUgPT09ICdub3NjcmlwdCcgfHxcbiAgICAgICAgICAgIHBhcmVudC50YWdOYW1lID09PSAndmlkZW8nKVxuICAgICAgICApXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L2xpPmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gbGkoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiAhbmV4dCB8fCAobmV4dC50eXBlID09PSAnZWxlbWVudCcgJiYgbmV4dC50YWdOYW1lID09PSAnbGknKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC9kdD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGR0KF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gQm9vbGVhbihcbiAgICBuZXh0ICYmXG4gICAgICBuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgKG5leHQudGFnTmFtZSA9PT0gJ2R0JyB8fCBuZXh0LnRhZ05hbWUgPT09ICdkZCcpXG4gIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvZGQ+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBkZChfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuIChcbiAgICAhbmV4dCB8fFxuICAgIChuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgKG5leHQudGFnTmFtZSA9PT0gJ2R0JyB8fCBuZXh0LnRhZ05hbWUgPT09ICdkZCcpKVxuICApXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L3J0PmAgb3IgYDwvcnA+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBydWJ5RWxlbWVudChfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuIChcbiAgICAhbmV4dCB8fFxuICAgIChuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgKG5leHQudGFnTmFtZSA9PT0gJ3JwJyB8fCBuZXh0LnRhZ05hbWUgPT09ICdydCcpKVxuICApXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L29wdGdyb3VwPmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gb3B0Z3JvdXAoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiAhbmV4dCB8fCAobmV4dC50eXBlID09PSAnZWxlbWVudCcgJiYgbmV4dC50YWdOYW1lID09PSAnb3B0Z3JvdXAnKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC9vcHRpb24+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBvcHRpb24oXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiAoXG4gICAgIW5leHQgfHxcbiAgICAobmV4dC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgIChuZXh0LnRhZ05hbWUgPT09ICdvcHRpb24nIHx8IG5leHQudGFnTmFtZSA9PT0gJ29wdGdyb3VwJykpXG4gIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvdGhlYWQ+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiB0aGVhZChfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuIEJvb2xlYW4oXG4gICAgbmV4dCAmJlxuICAgICAgbmV4dC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgIChuZXh0LnRhZ05hbWUgPT09ICd0Ym9keScgfHwgbmV4dC50YWdOYW1lID09PSAndGZvb3QnKVxuICApXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L3Rib2R5PmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gdGJvZHkoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiAoXG4gICAgIW5leHQgfHxcbiAgICAobmV4dC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgIChuZXh0LnRhZ05hbWUgPT09ICd0Ym9keScgfHwgbmV4dC50YWdOYW1lID09PSAndGZvb3QnKSlcbiAgKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC90Zm9vdD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIHRmb290KF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgcmV0dXJuICFzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvdHI+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiB0cihfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuICFuZXh0IHx8IChuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJiBuZXh0LnRhZ05hbWUgPT09ICd0cicpXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L3RkPmAgb3IgYDwvdGg+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBjZWxscyhfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuIChcbiAgICAhbmV4dCB8fFxuICAgIChuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgKG5leHQudGFnTmFtZSA9PT0gJ3RkJyB8fCBuZXh0LnRhZ05hbWUgPT09ICd0aCcpKVxuICApXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudH0gRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqL1xuXG5pbXBvcnQge3doaXRlc3BhY2V9IGZyb20gJ2hhc3QtdXRpbC13aGl0ZXNwYWNlJ1xuaW1wb3J0IHtzaWJsaW5nQWZ0ZXIsIHNpYmxpbmdCZWZvcmV9IGZyb20gJy4vdXRpbC9zaWJsaW5ncy5qcydcbmltcG9ydCB7Y2xvc2luZ30gZnJvbSAnLi9jbG9zaW5nLmpzJ1xuaW1wb3J0IHtvbWlzc2lvbn0gZnJvbSAnLi9vbWlzc2lvbi5qcydcblxuZXhwb3J0IGNvbnN0IG9wZW5pbmcgPSBvbWlzc2lvbih7XG4gIGJvZHksXG4gIGNvbGdyb3VwLFxuICBoZWFkLFxuICBodG1sLFxuICB0Ym9keVxufSlcblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDxodG1sPmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBub2RlXG4gKiAgIEVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgb3BlbmluZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGh0bWwobm9kZSkge1xuICBjb25zdCBoZWFkID0gc2libGluZ0FmdGVyKG5vZGUsIC0xKVxuICByZXR1cm4gIWhlYWQgfHwgaGVhZC50eXBlICE9PSAnY29tbWVudCdcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDxoZWFkPmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBub2RlXG4gKiAgIEVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgb3BlbmluZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGhlYWQobm9kZSkge1xuICBjb25zdCBjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW5cbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICBjb25zdCBzZWVuID0gW11cbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IGNoaWxkcmVuLmxlbmd0aCkge1xuICAgIGNvbnN0IGNoaWxkID0gY2hpbGRyZW5baW5kZXhdXG4gICAgaWYgKFxuICAgICAgY2hpbGQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAoY2hpbGQudGFnTmFtZSA9PT0gJ3RpdGxlJyB8fCBjaGlsZC50YWdOYW1lID09PSAnYmFzZScpXG4gICAgKSB7XG4gICAgICBpZiAoc2Vlbi5pbmNsdWRlcyhjaGlsZC50YWdOYW1lKSkgcmV0dXJuIGZhbHNlXG4gICAgICBzZWVuLnB1c2goY2hpbGQudGFnTmFtZSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY2hpbGRyZW4ubGVuZ3RoID4gMFxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPGJvZHk+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IG5vZGVcbiAqICAgRWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBvcGVuaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gYm9keShub2RlKSB7XG4gIGNvbnN0IGhlYWQgPSBzaWJsaW5nQWZ0ZXIobm9kZSwgLTEsIHRydWUpXG5cbiAgcmV0dXJuIChcbiAgICAhaGVhZCB8fFxuICAgIChoZWFkLnR5cGUgIT09ICdjb21tZW50JyAmJlxuICAgICAgIShoZWFkLnR5cGUgPT09ICd0ZXh0JyAmJiB3aGl0ZXNwYWNlKGhlYWQudmFsdWUuY2hhckF0KDApKSkgJiZcbiAgICAgICEoXG4gICAgICAgIGhlYWQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAgIChoZWFkLnRhZ05hbWUgPT09ICdtZXRhJyB8fFxuICAgICAgICAgIGhlYWQudGFnTmFtZSA9PT0gJ2xpbmsnIHx8XG4gICAgICAgICAgaGVhZC50YWdOYW1lID09PSAnc2NyaXB0JyB8fFxuICAgICAgICAgIGhlYWQudGFnTmFtZSA9PT0gJ3N0eWxlJyB8fFxuICAgICAgICAgIGhlYWQudGFnTmFtZSA9PT0gJ3RlbXBsYXRlJylcbiAgICAgICkpXG4gIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDxjb2xncm91cD5gLlxuICogVGhlIHNwZWMgZGVzY3JpYmVzIHNvbWUgbG9naWMgZm9yIHRoZSBvcGVuaW5nIHRhZywgYnV0IGl0XHUyMDE5cyBlYXNpZXIgdG9cbiAqIGltcGxlbWVudCBpbiB0aGUgY2xvc2luZyB0YWcsIHRvIHRoZSBzYW1lIGVmZmVjdCwgc28gd2UgaGFuZGxlIGl0IHRoZXJlXG4gKiBpbnN0ZWFkLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gbm9kZVxuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgb3BlbmluZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGNvbGdyb3VwKG5vZGUsIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgcHJldmlvdXMgPSBzaWJsaW5nQmVmb3JlKHBhcmVudCwgaW5kZXgpXG4gIGNvbnN0IGhlYWQgPSBzaWJsaW5nQWZ0ZXIobm9kZSwgLTEsIHRydWUpXG5cbiAgLy8gUHJldmlvdXMgY29sZ3JvdXAgd2FzIGFscmVhZHkgb21pdHRlZC5cbiAgaWYgKFxuICAgIHBhcmVudCAmJlxuICAgIHByZXZpb3VzICYmXG4gICAgcHJldmlvdXMudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgcHJldmlvdXMudGFnTmFtZSA9PT0gJ2NvbGdyb3VwJyAmJlxuICAgIGNsb3NpbmcocHJldmlvdXMsIHBhcmVudC5jaGlsZHJlbi5pbmRleE9mKHByZXZpb3VzKSwgcGFyZW50KVxuICApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiBCb29sZWFuKGhlYWQgJiYgaGVhZC50eXBlID09PSAnZWxlbWVudCcgJiYgaGVhZC50YWdOYW1lID09PSAnY29sJylcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDx0Ym9keT5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gbm9kZVxuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgb3BlbmluZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIHRib2R5KG5vZGUsIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgcHJldmlvdXMgPSBzaWJsaW5nQmVmb3JlKHBhcmVudCwgaW5kZXgpXG4gIGNvbnN0IGhlYWQgPSBzaWJsaW5nQWZ0ZXIobm9kZSwgLTEpXG5cbiAgLy8gUHJldmlvdXMgdGFibGUgc2VjdGlvbiB3YXMgYWxyZWFkeSBvbWl0dGVkLlxuICBpZiAoXG4gICAgcGFyZW50ICYmXG4gICAgcHJldmlvdXMgJiZcbiAgICBwcmV2aW91cy50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAocHJldmlvdXMudGFnTmFtZSA9PT0gJ3RoZWFkJyB8fCBwcmV2aW91cy50YWdOYW1lID09PSAndGJvZHknKSAmJlxuICAgIGNsb3NpbmcocHJldmlvdXMsIHBhcmVudC5jaGlsZHJlbi5pbmRleE9mKHByZXZpb3VzKSwgcGFyZW50KVxuICApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiBCb29sZWFuKGhlYWQgJiYgaGVhZC50eXBlID09PSAnZWxlbWVudCcgJiYgaGVhZC50YWdOYW1lID09PSAndHInKVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkVsZW1lbnR9IEVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUHJvcGVydGllc30gUHJvcGVydGllc1xuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuaW1wb3J0IHtjY291bnR9IGZyb20gJ2Njb3VudCdcbmltcG9ydCB7c3RyaW5naWZ5IGFzIGNvbW1hc30gZnJvbSAnY29tbWEtc2VwYXJhdGVkLXRva2VucydcbmltcG9ydCB7ZmluZCwgc3ZnfSBmcm9tICdwcm9wZXJ0eS1pbmZvcm1hdGlvbidcbmltcG9ydCB7c3RyaW5naWZ5IGFzIHNwYWNlc30gZnJvbSAnc3BhY2Utc2VwYXJhdGVkLXRva2VucydcbmltcG9ydCB7c3RyaW5naWZ5RW50aXRpZXN9IGZyb20gJ3N0cmluZ2lmeS1lbnRpdGllcydcbmltcG9ydCB7Y2xvc2luZ30gZnJvbSAnLi4vb21pc3Npb24vY2xvc2luZy5qcydcbmltcG9ydCB7b3BlbmluZ30gZnJvbSAnLi4vb21pc3Npb24vb3BlbmluZy5qcydcblxuLyoqXG4gKiBNYXBzIG9mIHN1YnNldHMuXG4gKlxuICogRWFjaCB2YWx1ZSBpcyBhIG1hdHJpeCBvZiB0dXBsZXMuXG4gKiBUaGUgdmFsdWUgYXQgYDBgIGNhdXNlcyBwYXJzZSBlcnJvcnMsIHRoZSB2YWx1ZSBhdCBgMWAgaXMgdmFsaWQuXG4gKiBPZiBib3RoLCB0aGUgdmFsdWUgYXQgYDBgIGlzIHVuc2FmZSwgYW5kIHRoZSB2YWx1ZSBhdCBgMWAgaXMgc2FmZS5cbiAqXG4gKiBAdHlwZSB7UmVjb3JkPCdkb3VibGUnIHwgJ25hbWUnIHwgJ3NpbmdsZScgfCAndW5xdW90ZWQnLCBBcnJheTxbQXJyYXk8c3RyaW5nPiwgQXJyYXk8c3RyaW5nPl0+Pn1cbiAqL1xuY29uc3QgY29uc3RhbnRzID0ge1xuICAvLyBTZWU6IDxodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNhdHRyaWJ1dGUtbmFtZS1zdGF0ZT4uXG4gIG5hbWU6IFtcbiAgICBbJ1xcdFxcblxcZlxcciAmLz0+Jy5zcGxpdCgnJyksICdcXHRcXG5cXGZcXHIgXCImXFwnLz0+YCcuc3BsaXQoJycpXSxcbiAgICBbJ1xcMFxcdFxcblxcZlxcciBcIiZcXCcvPD0+Jy5zcGxpdCgnJyksICdcXDBcXHRcXG5cXGZcXHIgXCImXFwnLzw9PmAnLnNwbGl0KCcnKV1cbiAgXSxcbiAgLy8gU2VlOiA8aHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jYXR0cmlidXRlLXZhbHVlLSh1bnF1b3RlZCktc3RhdGU+LlxuICB1bnF1b3RlZDogW1xuICAgIFsnXFx0XFxuXFxmXFxyICY+Jy5zcGxpdCgnJyksICdcXDBcXHRcXG5cXGZcXHIgXCImXFwnPD0+YCcuc3BsaXQoJycpXSxcbiAgICBbJ1xcMFxcdFxcblxcZlxcciBcIiZcXCc8PT5gJy5zcGxpdCgnJyksICdcXDBcXHRcXG5cXGZcXHIgXCImXFwnPD0+YCcuc3BsaXQoJycpXVxuICBdLFxuICAvLyBTZWU6IDxodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNhdHRyaWJ1dGUtdmFsdWUtKHNpbmdsZS1xdW90ZWQpLXN0YXRlPi5cbiAgc2luZ2xlOiBbXG4gICAgW1wiJidcIi5zcGxpdCgnJyksICdcIiZcXCdgJy5zcGxpdCgnJyldLFxuICAgIFtcIlxcMCYnXCIuc3BsaXQoJycpLCAnXFwwXCImXFwnYCcuc3BsaXQoJycpXVxuICBdLFxuICAvLyBTZWU6IDxodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNhdHRyaWJ1dGUtdmFsdWUtKGRvdWJsZS1xdW90ZWQpLXN0YXRlPi5cbiAgZG91YmxlOiBbXG4gICAgWydcIiYnLnNwbGl0KCcnKSwgJ1wiJlxcJ2AnLnNwbGl0KCcnKV0sXG4gICAgWydcXDBcIiYnLnNwbGl0KCcnKSwgJ1xcMFwiJlxcJ2AnLnNwbGl0KCcnKV1cbiAgXVxufVxuXG4vKipcbiAqIFNlcmlhbGl6ZSBhbiBlbGVtZW50IG5vZGUuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBub2RlXG4gKiAgIE5vZGUgdG8gaGFuZGxlLlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGBub2RlYCBpbiBgcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGBub2RlYC5cbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFNlcmlhbGl6ZWQgbm9kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVsZW1lbnQobm9kZSwgaW5kZXgsIHBhcmVudCwgc3RhdGUpIHtcbiAgY29uc3Qgc2NoZW1hID0gc3RhdGUuc2NoZW1hXG4gIGNvbnN0IG9taXQgPSBzY2hlbWEuc3BhY2UgPT09ICdzdmcnID8gZmFsc2UgOiBzdGF0ZS5zZXR0aW5ncy5vbWl0T3B0aW9uYWxUYWdzXG4gIGxldCBzZWxmQ2xvc2luZyA9XG4gICAgc2NoZW1hLnNwYWNlID09PSAnc3ZnJ1xuICAgICAgPyBzdGF0ZS5zZXR0aW5ncy5jbG9zZUVtcHR5RWxlbWVudHNcbiAgICAgIDogc3RhdGUuc2V0dGluZ3Mudm9pZHMuaW5jbHVkZXMobm9kZS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpXG4gIC8qKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn0gKi9cbiAgY29uc3QgcGFydHMgPSBbXVxuICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgbGV0IGxhc3RcblxuICBpZiAoc2NoZW1hLnNwYWNlID09PSAnaHRtbCcgJiYgbm9kZS50YWdOYW1lID09PSAnc3ZnJykge1xuICAgIHN0YXRlLnNjaGVtYSA9IHN2Z1xuICB9XG5cbiAgY29uc3QgYXR0cnMgPSBzZXJpYWxpemVBdHRyaWJ1dGVzKHN0YXRlLCBub2RlLnByb3BlcnRpZXMpXG5cbiAgY29uc3QgY29udGVudCA9IHN0YXRlLmFsbChcbiAgICBzY2hlbWEuc3BhY2UgPT09ICdodG1sJyAmJiBub2RlLnRhZ05hbWUgPT09ICd0ZW1wbGF0ZScgPyBub2RlLmNvbnRlbnQgOiBub2RlXG4gIClcblxuICBzdGF0ZS5zY2hlbWEgPSBzY2hlbWFcblxuICAvLyBJZiB0aGUgbm9kZSBpcyBjYXRlZ29yaXNlZCBhcyB2b2lkLCBidXQgaXQgaGFzIGNoaWxkcmVuLCByZW1vdmUgdGhlXG4gIC8vIGNhdGVnb3Jpc2F0aW9uLlxuICAvLyBUaGlzIGVuYWJsZXMgZm9yIGV4YW1wbGUgYG1lbnVpdGVtYHMsIHdoaWNoIGFyZSB2b2lkIGluIFczQyBIVE1MIGJ1dCBub3RcbiAgLy8gdm9pZCBpbiBXSEFUV0cgSFRNTCwgdG8gYmUgc3RyaW5naWZpZWQgcHJvcGVybHkuXG4gIC8vIE5vdGU6IGBtZW51aXRlbWAgaGFzIHNpbmNlIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBIVE1MIHNwZWMsIGFuZCBzbyBpcyBub1xuICAvLyBsb25nZXIgdm9pZC5cbiAgaWYgKGNvbnRlbnQpIHNlbGZDbG9zaW5nID0gZmFsc2VcblxuICBpZiAoYXR0cnMgfHwgIW9taXQgfHwgIW9wZW5pbmcobm9kZSwgaW5kZXgsIHBhcmVudCkpIHtcbiAgICBwYXJ0cy5wdXNoKCc8Jywgbm9kZS50YWdOYW1lLCBhdHRycyA/ICcgJyArIGF0dHJzIDogJycpXG5cbiAgICBpZiAoXG4gICAgICBzZWxmQ2xvc2luZyAmJlxuICAgICAgKHNjaGVtYS5zcGFjZSA9PT0gJ3N2ZycgfHwgc3RhdGUuc2V0dGluZ3MuY2xvc2VTZWxmQ2xvc2luZylcbiAgICApIHtcbiAgICAgIGxhc3QgPSBhdHRycy5jaGFyQXQoYXR0cnMubGVuZ3RoIC0gMSlcbiAgICAgIGlmIChcbiAgICAgICAgIXN0YXRlLnNldHRpbmdzLnRpZ2h0U2VsZkNsb3NpbmcgfHxcbiAgICAgICAgbGFzdCA9PT0gJy8nIHx8XG4gICAgICAgIChsYXN0ICYmIGxhc3QgIT09ICdcIicgJiYgbGFzdCAhPT0gXCInXCIpXG4gICAgICApIHtcbiAgICAgICAgcGFydHMucHVzaCgnICcpXG4gICAgICB9XG5cbiAgICAgIHBhcnRzLnB1c2goJy8nKVxuICAgIH1cblxuICAgIHBhcnRzLnB1c2goJz4nKVxuICB9XG5cbiAgcGFydHMucHVzaChjb250ZW50KVxuXG4gIGlmICghc2VsZkNsb3NpbmcgJiYgKCFvbWl0IHx8ICFjbG9zaW5nKG5vZGUsIGluZGV4LCBwYXJlbnQpKSkge1xuICAgIHBhcnRzLnB1c2goJzwvJyArIG5vZGUudGFnTmFtZSArICc+JylcbiAgfVxuXG4gIHJldHVybiBwYXJ0cy5qb2luKCcnKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiBAcGFyYW0ge1Byb3BlcnRpZXMgfCBudWxsIHwgdW5kZWZpbmVkfSBwcm9wc1xuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gc2VyaWFsaXplQXR0cmlidXRlcyhzdGF0ZSwgcHJvcHMpIHtcbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICBjb25zdCB2YWx1ZXMgPSBbXVxuICBsZXQgaW5kZXggPSAtMVxuICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgbGV0IGtleVxuXG4gIGlmIChwcm9wcykge1xuICAgIGZvciAoa2V5IGluIHByb3BzKSB7XG4gICAgICBpZiAocHJvcHNba2V5XSAhPT0gbnVsbCAmJiBwcm9wc1trZXldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBzZXJpYWxpemVBdHRyaWJ1dGUoc3RhdGUsIGtleSwgcHJvcHNba2V5XSlcbiAgICAgICAgaWYgKHZhbHVlKSB2YWx1ZXMucHVzaCh2YWx1ZSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB3aGlsZSAoKytpbmRleCA8IHZhbHVlcy5sZW5ndGgpIHtcbiAgICBjb25zdCBsYXN0ID0gc3RhdGUuc2V0dGluZ3MudGlnaHRBdHRyaWJ1dGVzXG4gICAgICA/IHZhbHVlc1tpbmRleF0uY2hhckF0KHZhbHVlc1tpbmRleF0ubGVuZ3RoIC0gMSlcbiAgICAgIDogdW5kZWZpbmVkXG5cbiAgICAvLyBJbiB0aWdodCBtb2RlLCBkb25cdTIwMTl0IGFkZCBhIHNwYWNlIGFmdGVyIHF1b3RlZCBhdHRyaWJ1dGVzLlxuICAgIGlmIChpbmRleCAhPT0gdmFsdWVzLmxlbmd0aCAtIDEgJiYgbGFzdCAhPT0gJ1wiJyAmJiBsYXN0ICE9PSBcIidcIikge1xuICAgICAgdmFsdWVzW2luZGV4XSArPSAnICdcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmFsdWVzLmpvaW4oJycpXG59XG5cbi8qKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAqIEBwYXJhbSB7UHJvcGVydGllc1trZXlvZiBQcm9wZXJ0aWVzXX0gdmFsdWVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIHNlcmlhbGl6ZUF0dHJpYnV0ZShzdGF0ZSwga2V5LCB2YWx1ZSkge1xuICBjb25zdCBpbmZvID0gZmluZChzdGF0ZS5zY2hlbWEsIGtleSlcbiAgY29uc3QgeCA9XG4gICAgc3RhdGUuc2V0dGluZ3MuYWxsb3dQYXJzZUVycm9ycyAmJiBzdGF0ZS5zY2hlbWEuc3BhY2UgPT09ICdodG1sJyA/IDAgOiAxXG4gIGNvbnN0IHkgPSBzdGF0ZS5zZXR0aW5ncy5hbGxvd0Rhbmdlcm91c0NoYXJhY3RlcnMgPyAwIDogMVxuICBsZXQgcXVvdGUgPSBzdGF0ZS5xdW90ZVxuICAvKiogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IHJlc3VsdFxuXG4gIGlmIChpbmZvLm92ZXJsb2FkZWRCb29sZWFuICYmICh2YWx1ZSA9PT0gaW5mby5hdHRyaWJ1dGUgfHwgdmFsdWUgPT09ICcnKSkge1xuICAgIHZhbHVlID0gdHJ1ZVxuICB9IGVsc2UgaWYgKFxuICAgIGluZm8uYm9vbGVhbiB8fFxuICAgIChpbmZvLm92ZXJsb2FkZWRCb29sZWFuICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpXG4gICkge1xuICAgIHZhbHVlID0gQm9vbGVhbih2YWx1ZSlcbiAgfVxuXG4gIGlmIChcbiAgICB2YWx1ZSA9PT0gbnVsbCB8fFxuICAgIHZhbHVlID09PSB1bmRlZmluZWQgfHxcbiAgICB2YWx1ZSA9PT0gZmFsc2UgfHxcbiAgICAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiBOdW1iZXIuaXNOYU4odmFsdWUpKVxuICApIHtcbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIGNvbnN0IG5hbWUgPSBzdHJpbmdpZnlFbnRpdGllcyhcbiAgICBpbmZvLmF0dHJpYnV0ZSxcbiAgICBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLCB7XG4gICAgICAvLyBBbHdheXMgZW5jb2RlIHdpdGhvdXQgcGFyc2UgZXJyb3JzIGluIG5vbi1IVE1MLlxuICAgICAgc3Vic2V0OiBjb25zdGFudHMubmFtZVt4XVt5XVxuICAgIH0pXG4gIClcblxuICAvLyBObyB2YWx1ZS5cbiAgLy8gVGhlcmUgaXMgY3VycmVudGx5IG9ubHkgb25lIGJvb2xlYW4gcHJvcGVydHkgaW4gU1ZHOiBgW2Rvd25sb2FkXWAgb25cbiAgLy8gYDxhPmAuXG4gIC8vIFRoaXMgcHJvcGVydHkgZG9lcyBub3Qgc2VlbSB0byB3b3JrIGluIGJyb3dzZXJzIChGaXJlZm94LCBTYWZhcmksIENocm9tZSksXG4gIC8vIHNvIEkgY2FuXHUyMDE5dCB0ZXN0IGlmIGRyb3BwaW5nIHRoZSB2YWx1ZSB3b3Jrcy5cbiAgLy8gQnV0IEkgYXNzdW1lIHRoYXQgaXQgc2hvdWxkOlxuICAvL1xuICAvLyBgYGBodG1sXG4gIC8vIDwhZG9jdHlwZSBodG1sPlxuICAvLyA8c3ZnIHZpZXdCb3g9XCIwIDAgMTAwIDEwMFwiPlxuICAvLyAgIDxhIGhyZWY9aHR0cHM6Ly9leGFtcGxlLmNvbSBkb3dubG9hZD5cbiAgLy8gICAgIDxjaXJjbGUgY3g9NTAgY3k9NDAgcj0zNSAvPlxuICAvLyAgIDwvYT5cbiAgLy8gPC9zdmc+XG4gIC8vIGBgYFxuICAvL1xuICAvLyBTZWU6IDxodHRwczovL2dpdGh1Yi5jb20vd29vb3JtL3Byb3BlcnR5LWluZm9ybWF0aW9uL2Jsb2IvbWFpbi9saWIvc3ZnLmpzPlxuICBpZiAodmFsdWUgPT09IHRydWUpIHJldHVybiBuYW1lXG5cbiAgLy8gYHNwYWNlc2AgZG9lc25cdTIwMTl0IGFjY2VwdCBhIHNlY29uZCBhcmd1bWVudCwgYnV0IGl0XHUyMDE5cyBnaXZlbiBoZXJlIGp1c3QgdG9cbiAgLy8ga2VlcCB0aGUgY29kZSBjbGVhbmVyLlxuICB2YWx1ZSA9IEFycmF5LmlzQXJyYXkodmFsdWUpXG4gICAgPyAoaW5mby5jb21tYVNlcGFyYXRlZCA/IGNvbW1hcyA6IHNwYWNlcykodmFsdWUsIHtcbiAgICAgICAgcGFkTGVmdDogIXN0YXRlLnNldHRpbmdzLnRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0c1xuICAgICAgfSlcbiAgICA6IFN0cmluZyh2YWx1ZSlcblxuICBpZiAoc3RhdGUuc2V0dGluZ3MuY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXMgJiYgIXZhbHVlKSByZXR1cm4gbmFtZVxuXG4gIC8vIENoZWNrIHVucXVvdGVkIHZhbHVlLlxuICBpZiAoc3RhdGUuc2V0dGluZ3MucHJlZmVyVW5xdW90ZWQpIHtcbiAgICByZXN1bHQgPSBzdHJpbmdpZnlFbnRpdGllcyhcbiAgICAgIHZhbHVlLFxuICAgICAgT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcywge1xuICAgICAgICBhdHRyaWJ1dGU6IHRydWUsXG4gICAgICAgIHN1YnNldDogY29uc3RhbnRzLnVucXVvdGVkW3hdW3ldXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIC8vIElmIHdlIGRvblx1MjAxOXQgd2FudCB1bnF1b3RlZCwgb3IgaWYgYHZhbHVlYCBjb250YWlucyBjaGFyYWN0ZXIgcmVmZXJlbmNlcyB3aGVuXG4gIC8vIHVucXVvdGVkXHUyMDI2XG4gIGlmIChyZXN1bHQgIT09IHZhbHVlKSB7XG4gICAgLy8gSWYgdGhlIGFsdGVybmF0aXZlIGlzIGxlc3MgY29tbW9uIHRoYW4gYHF1b3RlYCwgc3dpdGNoLlxuICAgIGlmIChcbiAgICAgIHN0YXRlLnNldHRpbmdzLnF1b3RlU21hcnQgJiZcbiAgICAgIGNjb3VudCh2YWx1ZSwgcXVvdGUpID4gY2NvdW50KHZhbHVlLCBzdGF0ZS5hbHRlcm5hdGl2ZSlcbiAgICApIHtcbiAgICAgIHF1b3RlID0gc3RhdGUuYWx0ZXJuYXRpdmVcbiAgICB9XG5cbiAgICByZXN1bHQgPVxuICAgICAgcXVvdGUgK1xuICAgICAgc3RyaW5naWZ5RW50aXRpZXMoXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLCB7XG4gICAgICAgICAgLy8gQWx3YXlzIGVuY29kZSB3aXRob3V0IHBhcnNlIGVycm9ycyBpbiBub24tSFRNTC5cbiAgICAgICAgICBzdWJzZXQ6IChxdW90ZSA9PT0gXCInXCIgPyBjb25zdGFudHMuc2luZ2xlIDogY29uc3RhbnRzLmRvdWJsZSlbeF1beV0sXG4gICAgICAgICAgYXR0cmlidXRlOiB0cnVlXG4gICAgICAgIH0pXG4gICAgICApICtcbiAgICAgIHF1b3RlXG4gIH1cblxuICAvLyBEb25cdTIwMTl0IGFkZCBhIGA9YCBmb3IgdW5xdW90ZWQgZW1wdGllcy5cbiAgcmV0dXJuIG5hbWUgKyAocmVzdWx0ID8gJz0nICsgcmVzdWx0IDogcmVzdWx0KVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5UZXh0fSBUZXh0XG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC10by1oYXN0JykuUmF3fSBSYXdcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9pbmRleC5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbmltcG9ydCB7c3RyaW5naWZ5RW50aXRpZXN9IGZyb20gJ3N0cmluZ2lmeS1lbnRpdGllcydcblxuLyoqXG4gKiBTZXJpYWxpemUgYSB0ZXh0IG5vZGUuXG4gKlxuICogQHBhcmFtIHtSYXcgfCBUZXh0fSBub2RlXG4gKiAgIE5vZGUgdG8gaGFuZGxlLlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IF9cbiAqICAgSW5kZXggb2YgYG5vZGVgIGluIGBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgYG5vZGVgLlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGV4dChub2RlLCBfLCBwYXJlbnQsIHN0YXRlKSB7XG4gIC8vIENoZWNrIGlmIGNvbnRlbnQgb2YgYG5vZGVgIHNob3VsZCBiZSBlc2NhcGVkLlxuICByZXR1cm4gcGFyZW50ICYmXG4gICAgcGFyZW50LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgIChwYXJlbnQudGFnTmFtZSA9PT0gJ3NjcmlwdCcgfHwgcGFyZW50LnRhZ05hbWUgPT09ICdzdHlsZScpXG4gICAgPyBub2RlLnZhbHVlXG4gICAgOiBzdHJpbmdpZnlFbnRpdGllcyhcbiAgICAgICAgbm9kZS52YWx1ZSxcbiAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcywge1xuICAgICAgICAgIHN1YnNldDogWyc8JywgJyYnXVxuICAgICAgICB9KVxuICAgICAgKVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdC11dGlsLXRvLWhhc3QnKS5SYXd9IFJhd1xuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuaW1wb3J0IHt0ZXh0fSBmcm9tICcuL3RleHQuanMnXG5cbi8qKlxuICogU2VyaWFsaXplIGEgcmF3IG5vZGUuXG4gKlxuICogQHBhcmFtIHtSYXd9IG5vZGVcbiAqICAgTm9kZSB0byBoYW5kbGUuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgYG5vZGVgIGluIGBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgYG5vZGVgLlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmF3KG5vZGUsIGluZGV4LCBwYXJlbnQsIHN0YXRlKSB7XG4gIHJldHVybiBzdGF0ZS5zZXR0aW5ncy5hbGxvd0Rhbmdlcm91c0h0bWxcbiAgICA/IG5vZGUudmFsdWVcbiAgICA6IHRleHQobm9kZSwgaW5kZXgsIHBhcmVudCwgc3RhdGUpXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlJvb3R9IFJvb3RcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9pbmRleC5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbi8vIE1ha2UgVlMgY29kZSBzZWUgcmVmZXJlbmNlcyB0byB0aGUgYWJvdmUgdHlwZXMuXG4nJ1xuXG4vKipcbiAqIFNlcmlhbGl6ZSBhIHJvb3QuXG4gKlxuICogQHBhcmFtIHtSb290fSBub2RlXG4gKiAgIE5vZGUgdG8gaGFuZGxlLlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IF8xXG4gKiAgIEluZGV4IG9mIGBub2RlYCBpbiBgcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBfMlxuICogICBQYXJlbnQgb2YgYG5vZGVgLlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcm9vdChub2RlLCBfMSwgXzIsIHN0YXRlKSB7XG4gIHJldHVybiBzdGF0ZS5hbGwobm9kZSlcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Ob2Rlc30gTm9kZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vaW5kZXguanMnKS5TdGF0ZX0gU3RhdGVcbiAqL1xuXG5pbXBvcnQge3p3aXRjaH0gZnJvbSAnendpdGNoJ1xuaW1wb3J0IHtjb21tZW50fSBmcm9tICcuL2NvbW1lbnQuanMnXG5pbXBvcnQge2RvY3R5cGV9IGZyb20gJy4vZG9jdHlwZS5qcydcbmltcG9ydCB7ZWxlbWVudH0gZnJvbSAnLi9lbGVtZW50LmpzJ1xuaW1wb3J0IHtyYXd9IGZyb20gJy4vcmF3LmpzJ1xuaW1wb3J0IHtyb290fSBmcm9tICcuL3Jvb3QuanMnXG5pbXBvcnQge3RleHR9IGZyb20gJy4vdGV4dC5qcydcblxuLyoqXG4gKiBAdHlwZSB7KG5vZGU6IE5vZGVzLCBpbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkLCBwYXJlbnQ6IFBhcmVudHMgfCB1bmRlZmluZWQsIHN0YXRlOiBTdGF0ZSkgPT4gc3RyaW5nfVxuICovXG5leHBvcnQgY29uc3QgaGFuZGxlID0gendpdGNoKCd0eXBlJywge1xuICBpbnZhbGlkLFxuICB1bmtub3duLFxuICBoYW5kbGVyczoge2NvbW1lbnQsIGRvY3R5cGUsIGVsZW1lbnQsIHJhdywgcm9vdCwgdGV4dH1cbn0pXG5cbi8qKlxuICogRmFpbCB3aGVuIGEgbm9uLW5vZGUgaXMgZm91bmQgaW4gdGhlIHRyZWUuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSBub2RlXG4gKiAgIFVua25vd24gdmFsdWUuXG4gKiBAcmV0dXJucyB7bmV2ZXJ9XG4gKiAgIE5ldmVyLlxuICovXG5mdW5jdGlvbiBpbnZhbGlkKG5vZGUpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBub2RlLCBub3QgYCcgKyBub2RlICsgJ2AnKVxufVxuXG4vKipcbiAqIEZhaWwgd2hlbiBhIG5vZGUgd2l0aCBhbiB1bmtub3duIHR5cGUgaXMgZm91bmQgaW4gdGhlIHRyZWUuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSBub2RlX1xuICogIFVua25vd24gbm9kZS5cbiAqIEByZXR1cm5zIHtuZXZlcn1cbiAqICAgTmV2ZXIuXG4gKi9cbmZ1bmN0aW9uIHVua25vd24obm9kZV8pIHtcbiAgLy8gYHR5cGVgIGlzIGd1YXJhbnRlZWQgYnkgcnVudGltZSBKUy5cbiAgY29uc3Qgbm9kZSA9IC8qKiBAdHlwZSB7Tm9kZXN9ICovIChub2RlXylcbiAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgY29tcGlsZSB1bmtub3duIG5vZGUgYCcgKyBub2RlLnR5cGUgKyAnYCcpXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuTm9kZXN9IE5vZGVzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlJvb3RDb250ZW50fSBSb290Q29udGVudFxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3Byb3BlcnR5LWluZm9ybWF0aW9uJykuU2NoZW1hfSBTY2hlbWFcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdzdHJpbmdpZnktZW50aXRpZXMnKS5PcHRpb25zfSBTdHJpbmdpZnlFbnRpdGllc09wdGlvbnNcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPbWl0PFN0cmluZ2lmeUVudGl0aWVzT3B0aW9ucywgJ2F0dHJpYnV0ZScgfCAnZXNjYXBlT25seScgfCAnc3Vic2V0Jz59IENoYXJhY3RlclJlZmVyZW5jZXNcbiAqXG4gKiBAdHlwZWRlZiBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzPWZhbHNlXVxuICogICBEbyBub3QgZW5jb2RlIHNvbWUgY2hhcmFjdGVycyB3aGljaCBjYXVzZSBYU1MgdnVsbmVyYWJpbGl0aWVzIGluIG9sZGVyXG4gKiAgIGJyb3dzZXJzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgID4gXHUyNkEwXHVGRTBGICoqRGFuZ2VyKio6IG9ubHkgc2V0IHRoaXMgaWYgeW91IGNvbXBsZXRlbHkgdHJ1c3QgdGhlIGNvbnRlbnQuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbYWxsb3dEYW5nZXJvdXNIdG1sPWZhbHNlXVxuICogICBBbGxvdyBgcmF3YCBub2RlcyBhbmQgaW5zZXJ0IHRoZW0gYXMgcmF3IEhUTUwgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgV2hlbiBgZmFsc2VgLCBgUmF3YCBub2RlcyBhcmUgZW5jb2RlZC5cbiAqXG4gKiAgID4gXHUyNkEwXHVGRTBGICoqRGFuZ2VyKio6IG9ubHkgc2V0IHRoaXMgaWYgeW91IGNvbXBsZXRlbHkgdHJ1c3QgdGhlIGNvbnRlbnQuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbYWxsb3dQYXJzZUVycm9ycz1mYWxzZV1cbiAqICAgRG8gbm90IGVuY29kZSBjaGFyYWN0ZXJzIHdoaWNoIGNhdXNlIHBhcnNlIGVycm9ycyAoZXZlbiB0aG91Z2ggdGhleSB3b3JrKSxcbiAqICAgdG8gc2F2ZSBieXRlcyAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICBOb3QgdXNlZCBpbiB0aGUgU1ZHIHNwYWNlLlxuICpcbiAqICAgPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IGludGVudGlvbmFsbHkgY3JlYXRlcyBwYXJzZSBlcnJvcnMgaW4gbWFya3VwIChob3cgcGFyc2VcbiAqICAgPiBlcnJvcnMgYXJlIGhhbmRsZWQgaXMgd2VsbCBkZWZpbmVkLCBzbyB0aGlzIHdvcmtzIGJ1dCBpc25cdTIwMTl0IHByZXR0eSkuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbYm9ndXNDb21tZW50cz1mYWxzZV1cbiAqICAgVXNlIFx1MjAxQ2JvZ3VzIGNvbW1lbnRzXHUyMDFEIGluc3RlYWQgb2YgY29tbWVudHMgdG8gc2F2ZSBieWVzOiBgPD9jaGFybGllPmBcbiAqICAgaW5zdGVhZCBvZiBgPCEtLWNoYXJsaWUtLT5gIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBpbnRlbnRpb25hbGx5IGNyZWF0ZXMgcGFyc2UgZXJyb3JzIGluIG1hcmt1cCAoaG93IHBhcnNlXG4gKiAgID4gZXJyb3JzIGFyZSBoYW5kbGVkIGlzIHdlbGwgZGVmaW5lZCwgc28gdGhpcyB3b3JrcyBidXQgaXNuXHUyMDE5dCBwcmV0dHkpLlxuICogQHByb3BlcnR5IHtDaGFyYWN0ZXJSZWZlcmVuY2VzIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2NoYXJhY3RlclJlZmVyZW5jZXNdXG4gKiAgIENvbmZpZ3VyZSBob3cgdG8gc2VyaWFsaXplIGNoYXJhY3RlciByZWZlcmVuY2VzIChvcHRpb25hbCkuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbY2xvc2VFbXB0eUVsZW1lbnRzPWZhbHNlXVxuICogICBDbG9zZSBTVkcgZWxlbWVudHMgd2l0aG91dCBhbnkgY29udGVudCB3aXRoIHNsYXNoIChgL2ApIG9uIHRoZSBvcGVuaW5nIHRhZ1xuICogICBpbnN0ZWFkIG9mIGFuIGVuZCB0YWc6IGA8Y2lyY2xlIC8+YCBpbnN0ZWFkIG9mIGA8Y2lyY2xlPjwvY2lyY2xlPmBcbiAqICAgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgU2VlIGB0aWdodFNlbGZDbG9zaW5nYCB0byBjb250cm9sIHdoZXRoZXIgYSBzcGFjZSBpcyB1c2VkIGJlZm9yZSB0aGVcbiAqICAgc2xhc2guXG4gKlxuICogICBOb3QgdXNlZCBpbiB0aGUgSFRNTCBzcGFjZS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtjbG9zZVNlbGZDbG9zaW5nPWZhbHNlXVxuICogICBDbG9zZSBzZWxmLWNsb3Npbmcgbm9kZXMgd2l0aCBhbiBleHRyYSBzbGFzaCAoYC9gKTogYDxpbWcgLz5gIGluc3RlYWQgb2ZcbiAqICAgYDxpbWc+YCAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICBTZWUgYHRpZ2h0U2VsZkNsb3NpbmdgIHRvIGNvbnRyb2wgd2hldGhlciBhIHNwYWNlIGlzIHVzZWQgYmVmb3JlIHRoZVxuICogICBzbGFzaC5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBTVkcgc3BhY2UuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXM9ZmFsc2VdXG4gKiAgIENvbGxhcHNlIGVtcHR5IGF0dHJpYnV0ZXM6IGdldCBgY2xhc3NgIGluc3RlYWQgb2YgYGNsYXNzPVwiXCJgIChkZWZhdWx0OlxuICogICBgZmFsc2VgKS5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBTVkcgc3BhY2UuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogYm9vbGVhbiBhdHRyaWJ1dGVzIChzdWNoIGFzIGBoaWRkZW5gKSBhcmUgYWx3YXlzIGNvbGxhcHNlZC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtvbWl0T3B0aW9uYWxUYWdzPWZhbHNlXVxuICogICBPbWl0IG9wdGlvbmFsIG9wZW5pbmcgYW5kIGNsb3NpbmcgdGFncyAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICBGb3IgZXhhbXBsZSwgaW4gYDxvbD48bGk+b25lPC9saT48bGk+dHdvPC9saT48L29sPmAsIGJvdGggYDwvbGk+YCBjbG9zaW5nXG4gKiAgIHRhZ3MgY2FuIGJlIG9taXR0ZWQuXG4gKiAgIFRoZSBmaXJzdCBiZWNhdXNlIGl0XHUyMDE5cyBmb2xsb3dlZCBieSBhbm90aGVyIGBsaWAsIHRoZSBsYXN0IGJlY2F1c2UgaXRcdTIwMTlzXG4gKiAgIGZvbGxvd2VkIGJ5IG5vdGhpbmcuXG4gKlxuICogICBOb3QgdXNlZCBpbiB0aGUgU1ZHIHNwYWNlLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3ByZWZlclVucXVvdGVkPWZhbHNlXVxuICogICBMZWF2ZSBhdHRyaWJ1dGVzIHVucXVvdGVkIGlmIHRoYXQgcmVzdWx0cyBpbiBsZXNzIGJ5dGVzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBTVkcgc3BhY2UuXG4gKiBAcHJvcGVydHkge1F1b3RlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3F1b3RlPSdcIiddXG4gKiAgIFByZWZlcnJlZCBxdW90ZSB0byB1c2UgKGRlZmF1bHQ6IGAnXCInYCkuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbcXVvdGVTbWFydD1mYWxzZV1cbiAqICAgVXNlIHRoZSBvdGhlciBxdW90ZSBpZiB0aGF0IHJlc3VsdHMgaW4gbGVzcyBieXRlcyAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKiBAcHJvcGVydHkge1NwYWNlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3NwYWNlPSdodG1sJ11cbiAqICAgV2hlbiBhbiBgPHN2Zz5gIGVsZW1lbnQgaXMgZm91bmQgaW4gdGhlIEhUTUwgc3BhY2UsIHRoaXMgcGFja2FnZSBhbHJlYWR5XG4gKiAgIGF1dG9tYXRpY2FsbHkgc3dpdGNoZXMgdG8gYW5kIGZyb20gdGhlIFNWRyBzcGFjZSB3aGVuIGVudGVyaW5nIGFuZCBleGl0aW5nXG4gKiAgIGl0IChkZWZhdWx0OiBgJ2h0bWwnYCkuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogaGFzdCBpcyBub3QgWE1MLlxuICogICA+IEl0IHN1cHBvcnRzIFNWRyBhcyBlbWJlZGRlZCBpbiBIVE1MLlxuICogICA+IEl0IGRvZXMgbm90IHN1cHBvcnQgdGhlIGZlYXR1cmVzIGF2YWlsYWJsZSBpbiBYTUwuXG4gKiAgID4gUGFzc2luZyBTVkcgbWlnaHQgYnJlYWsgYnV0IGZyYWdtZW50cyBvZiBtb2Rlcm4gU1ZHIHNob3VsZCBiZSBmaW5lLlxuICogICA+IFVzZSBbYHhhc3RgXVt4YXN0XSBpZiB5b3UgbmVlZCB0byBzdXBwb3J0IFNWRyBhcyBYTUwuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbdGlnaHRBdHRyaWJ1dGVzPWZhbHNlXVxuICogICBKb2luIGF0dHJpYnV0ZXMgdG9nZXRoZXIsIHdpdGhvdXQgd2hpdGVzcGFjZSwgaWYgcG9zc2libGU6IGdldFxuICogICBgY2xhc3M9XCJhIGJcInRpdGxlPVwiYyBkXCJgIGluc3RlYWQgb2YgYGNsYXNzPVwiYSBiXCIgdGl0bGU9XCJjIGRcImAgdG8gc2F2ZVxuICogICBieXRlcyAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICBOb3QgdXNlZCBpbiB0aGUgU1ZHIHNwYWNlLlxuICpcbiAqICAgPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IGludGVudGlvbmFsbHkgY3JlYXRlcyBwYXJzZSBlcnJvcnMgaW4gbWFya3VwIChob3cgcGFyc2VcbiAqICAgPiBlcnJvcnMgYXJlIGhhbmRsZWQgaXMgd2VsbCBkZWZpbmVkLCBzbyB0aGlzIHdvcmtzIGJ1dCBpc25cdTIwMTl0IHByZXR0eSkuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbdGlnaHRDb21tYVNlcGFyYXRlZExpc3RzPWZhbHNlXVxuICogICBKb2luIGtub3duIGNvbW1hLXNlcGFyYXRlZCBhdHRyaWJ1dGUgdmFsdWVzIHdpdGgganVzdCBhIGNvbW1hIChgLGApLFxuICogICBpbnN0ZWFkIG9mIHBhZGRpbmcgdGhlbSBvbiB0aGUgcmlnaHQgYXMgd2VsbCAoYCxcdTI0MjBgLCB3aGVyZSBgXHUyNDIwYCByZXByZXNlbnRzIGFcbiAqICAgc3BhY2UpIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt0aWdodERvY3R5cGU9ZmFsc2VdXG4gKiAgIERyb3AgdW5uZWVkZWQgc3BhY2VzIGluIGRvY3R5cGVzOiBgPCFkb2N0eXBlaHRtbD5gIGluc3RlYWQgb2ZcbiAqICAgYDwhZG9jdHlwZSBodG1sPmAgdG8gc2F2ZSBieXRlcyAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogaW50ZW50aW9uYWxseSBjcmVhdGVzIHBhcnNlIGVycm9ycyBpbiBtYXJrdXAgKGhvdyBwYXJzZVxuICogICA+IGVycm9ycyBhcmUgaGFuZGxlZCBpcyB3ZWxsIGRlZmluZWQsIHNvIHRoaXMgd29ya3MgYnV0IGlzblx1MjAxOXQgcHJldHR5KS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt0aWdodFNlbGZDbG9zaW5nPWZhbHNlXVxuICogICBEbyBub3QgdXNlIGFuIGV4dHJhIHNwYWNlIHdoZW4gY2xvc2luZyBzZWxmLWNsb3NpbmcgZWxlbWVudHM6IGA8aW1nLz5gXG4gKiAgIGluc3RlYWQgb2YgYDxpbWcgLz5gIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBvbmx5IHVzZWQgaWYgYGNsb3NlU2VsZkNsb3Npbmc6IHRydWVgIG9yXG4gKiAgID4gYGNsb3NlRW1wdHlFbGVtZW50czogdHJ1ZWAuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbdXBwZXJEb2N0eXBlPWZhbHNlXVxuICogICBVc2UgYSBgPCFET0NUWVBFXHUyMDI2YCBpbnN0ZWFkIG9mIGA8IWRvY3R5cGVcdTIwMjZgIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIFVzZWxlc3MgZXhjZXB0IGZvciBYSFRNTC5cbiAqIEBwcm9wZXJ0eSB7UmVhZG9ubHlBcnJheTxzdHJpbmc+IHwgbnVsbCB8IHVuZGVmaW5lZH0gW3ZvaWRzXVxuICogICBUYWcgbmFtZXMgb2YgZWxlbWVudHMgdG8gc2VyaWFsaXplIHdpdGhvdXQgY2xvc2luZyB0YWcgKGRlZmF1bHQ6IGBodG1sLXZvaWQtZWxlbWVudHNgKS5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBTVkcgc3BhY2UuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogSXRcdTIwMTlzIGhpZ2hseSB1bmxpa2VseSB0aGF0IHlvdSB3YW50IHRvIHBhc3MgdGhpcywgYmVjYXVzZVxuICogICA+IGhhc3QgaXMgbm90IGZvciBYTUwsIGFuZCBIVE1MIHdpbGwgbm90IGFkZCBtb3JlIHZvaWQgZWxlbWVudHMuXG4gKlxuICogQHR5cGVkZWYgeydcIicgfCBcIidcIn0gUXVvdGVcbiAqICAgSFRNTCBxdW90ZXMgZm9yIGF0dHJpYnV0ZSB2YWx1ZXMuXG4gKlxuICogQHR5cGVkZWYge09taXQ8UmVxdWlyZWQ8e1trZXkgaW4ga2V5b2YgT3B0aW9uc106IEV4Y2x1ZGU8T3B0aW9uc1trZXldLCBudWxsIHwgdW5kZWZpbmVkPn0+LCAnc3BhY2UnIHwgJ3F1b3RlJz59IFNldHRpbmdzXG4gKlxuICogQHR5cGVkZWYgeydodG1sJyB8ICdzdmcnfSBTcGFjZVxuICogICBOYW1lc3BhY2UuXG4gKlxuICogQHR5cGVkZWYgU3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHByb3BlcnR5IHsobm9kZTogTm9kZXMsIGluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQsIHBhcmVudDogUGFyZW50cyB8IHVuZGVmaW5lZCkgPT4gc3RyaW5nfSBvbmVcbiAqICAgU2VyaWFsaXplIG9uZSBub2RlLlxuICogQHByb3BlcnR5IHsobm9kZTogUGFyZW50cyB8IHVuZGVmaW5lZCkgPT4gc3RyaW5nfSBhbGxcbiAqICAgU2VyaWFsaXplIHRoZSBjaGlsZHJlbiBvZiBhIHBhcmVudCBub2RlLlxuICogQHByb3BlcnR5IHtTZXR0aW5nc30gc2V0dGluZ3NcbiAqICAgVXNlciBjb25maWd1cmF0aW9uLlxuICogQHByb3BlcnR5IHtTY2hlbWF9IHNjaGVtYVxuICogICBDdXJyZW50IHNjaGVtYS5cbiAqIEBwcm9wZXJ0eSB7UXVvdGV9IHF1b3RlXG4gKiAgIFByZWZlcnJlZCBxdW90ZS5cbiAqIEBwcm9wZXJ0eSB7UXVvdGV9IGFsdGVybmF0aXZlXG4gKiAgIEFsdGVybmF0aXZlIHF1b3RlLlxuICovXG5cbmltcG9ydCB7aHRtbFZvaWRFbGVtZW50c30gZnJvbSAnaHRtbC12b2lkLWVsZW1lbnRzJ1xuaW1wb3J0IHtodG1sLCBzdmd9IGZyb20gJ3Byb3BlcnR5LWluZm9ybWF0aW9uJ1xuaW1wb3J0IHtoYW5kbGV9IGZyb20gJy4vaGFuZGxlL2luZGV4LmpzJ1xuXG4vKiogQHR5cGUge09wdGlvbnN9ICovXG5jb25zdCBlbXB0eU9wdGlvbnMgPSB7fVxuXG4vKiogQHR5cGUge0NoYXJhY3RlclJlZmVyZW5jZXN9ICovXG5jb25zdCBlbXB0eUNoYXJhY3RlclJlZmVyZW5jZXMgPSB7fVxuXG4vKiogQHR5cGUge0FycmF5PG5ldmVyPn0gKi9cbmNvbnN0IGVtcHR5Q2hpbGRyZW4gPSBbXVxuXG4vKipcbiAqIFNlcmlhbGl6ZSBoYXN0IGFzIEhUTUwuXG4gKlxuICogQHBhcmFtIHtBcnJheTxSb290Q29udGVudD4gfCBOb2Rlc30gdHJlZVxuICogICBUcmVlIHRvIHNlcmlhbGl6ZS5cbiAqIEBwYXJhbSB7T3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uIChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIEhUTUwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0h0bWwodHJlZSwgb3B0aW9ucykge1xuICBjb25zdCBvcHRpb25zXyA9IG9wdGlvbnMgfHwgZW1wdHlPcHRpb25zXG4gIGNvbnN0IHF1b3RlID0gb3B0aW9uc18ucXVvdGUgfHwgJ1wiJ1xuICBjb25zdCBhbHRlcm5hdGl2ZSA9IHF1b3RlID09PSAnXCInID8gXCInXCIgOiAnXCInXG5cbiAgaWYgKHF1b3RlICE9PSAnXCInICYmIHF1b3RlICE9PSBcIidcIikge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBxdW90ZSBgJyArIHF1b3RlICsgJ2AsIGV4cGVjdGVkIGBcXCdgIG9yIGBcImAnKVxuICB9XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgY29uc3Qgc3RhdGUgPSB7XG4gICAgb25lLFxuICAgIGFsbCxcbiAgICBzZXR0aW5nczoge1xuICAgICAgb21pdE9wdGlvbmFsVGFnczogb3B0aW9uc18ub21pdE9wdGlvbmFsVGFncyB8fCBmYWxzZSxcbiAgICAgIGFsbG93UGFyc2VFcnJvcnM6IG9wdGlvbnNfLmFsbG93UGFyc2VFcnJvcnMgfHwgZmFsc2UsXG4gICAgICBhbGxvd0Rhbmdlcm91c0NoYXJhY3RlcnM6IG9wdGlvbnNfLmFsbG93RGFuZ2Vyb3VzQ2hhcmFjdGVycyB8fCBmYWxzZSxcbiAgICAgIHF1b3RlU21hcnQ6IG9wdGlvbnNfLnF1b3RlU21hcnQgfHwgZmFsc2UsXG4gICAgICBwcmVmZXJVbnF1b3RlZDogb3B0aW9uc18ucHJlZmVyVW5xdW90ZWQgfHwgZmFsc2UsXG4gICAgICB0aWdodEF0dHJpYnV0ZXM6IG9wdGlvbnNfLnRpZ2h0QXR0cmlidXRlcyB8fCBmYWxzZSxcbiAgICAgIHVwcGVyRG9jdHlwZTogb3B0aW9uc18udXBwZXJEb2N0eXBlIHx8IGZhbHNlLFxuICAgICAgdGlnaHREb2N0eXBlOiBvcHRpb25zXy50aWdodERvY3R5cGUgfHwgZmFsc2UsXG4gICAgICBib2d1c0NvbW1lbnRzOiBvcHRpb25zXy5ib2d1c0NvbW1lbnRzIHx8IGZhbHNlLFxuICAgICAgdGlnaHRDb21tYVNlcGFyYXRlZExpc3RzOiBvcHRpb25zXy50aWdodENvbW1hU2VwYXJhdGVkTGlzdHMgfHwgZmFsc2UsXG4gICAgICB0aWdodFNlbGZDbG9zaW5nOiBvcHRpb25zXy50aWdodFNlbGZDbG9zaW5nIHx8IGZhbHNlLFxuICAgICAgY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXM6IG9wdGlvbnNfLmNvbGxhcHNlRW1wdHlBdHRyaWJ1dGVzIHx8IGZhbHNlLFxuICAgICAgYWxsb3dEYW5nZXJvdXNIdG1sOiBvcHRpb25zXy5hbGxvd0Rhbmdlcm91c0h0bWwgfHwgZmFsc2UsXG4gICAgICB2b2lkczogb3B0aW9uc18udm9pZHMgfHwgaHRtbFZvaWRFbGVtZW50cyxcbiAgICAgIGNoYXJhY3RlclJlZmVyZW5jZXM6XG4gICAgICAgIG9wdGlvbnNfLmNoYXJhY3RlclJlZmVyZW5jZXMgfHwgZW1wdHlDaGFyYWN0ZXJSZWZlcmVuY2VzLFxuICAgICAgY2xvc2VTZWxmQ2xvc2luZzogb3B0aW9uc18uY2xvc2VTZWxmQ2xvc2luZyB8fCBmYWxzZSxcbiAgICAgIGNsb3NlRW1wdHlFbGVtZW50czogb3B0aW9uc18uY2xvc2VFbXB0eUVsZW1lbnRzIHx8IGZhbHNlXG4gICAgfSxcbiAgICBzY2hlbWE6IG9wdGlvbnNfLnNwYWNlID09PSAnc3ZnJyA/IHN2ZyA6IGh0bWwsXG4gICAgcXVvdGUsXG4gICAgYWx0ZXJuYXRpdmVcbiAgfVxuXG4gIHJldHVybiBzdGF0ZS5vbmUoXG4gICAgQXJyYXkuaXNBcnJheSh0cmVlKSA/IHt0eXBlOiAncm9vdCcsIGNoaWxkcmVuOiB0cmVlfSA6IHRyZWUsXG4gICAgdW5kZWZpbmVkLFxuICAgIHVuZGVmaW5lZFxuICApXG59XG5cbi8qKlxuICogU2VyaWFsaXplIGEgbm9kZS5cbiAqXG4gKiBAdGhpcyB7U3RhdGV9XG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEBwYXJhbSB7Tm9kZXN9IG5vZGVcbiAqICAgTm9kZSB0byBoYW5kbGUuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgYG5vZGVgIGluIGBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgYG5vZGVgLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBub2RlLlxuICovXG5mdW5jdGlvbiBvbmUobm9kZSwgaW5kZXgsIHBhcmVudCkge1xuICByZXR1cm4gaGFuZGxlKG5vZGUsIGluZGV4LCBwYXJlbnQsIHRoaXMpXG59XG5cbi8qKlxuICogU2VyaWFsaXplIGFsbCBjaGlsZHJlbiBvZiBgcGFyZW50YC5cbiAqXG4gKiBAdGhpcyB7U3RhdGV9XG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCB3aG9zZSBjaGlsZHJlbiB0byBzZXJpYWxpemUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gYWxsKHBhcmVudCkge1xuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IHJlc3VsdHMgPSBbXVxuICBjb25zdCBjaGlsZHJlbiA9IChwYXJlbnQgJiYgcGFyZW50LmNoaWxkcmVuKSB8fCBlbXB0eUNoaWxkcmVuXG4gIGxldCBpbmRleCA9IC0xXG5cbiAgd2hpbGUgKCsraW5kZXggPCBjaGlsZHJlbi5sZW5ndGgpIHtcbiAgICByZXN1bHRzW2luZGV4XSA9IHRoaXMub25lKGNoaWxkcmVuW2luZGV4XSwgaW5kZXgsIHBhcmVudClcbiAgfVxuXG4gIHJldHVybiByZXN1bHRzLmpvaW4oJycpXG59XG4iLCAiXG5leHBvcnQgaW50ZXJmYWNlIElubGluZUNvZGVQYXJhbWV0ZXJzIHtcblx0bGFuZ3VhZ2U6IHN0cmluZztcblx0dGl0bGU6IHN0cmluZztcblx0aWNvbjogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSW5saW5lQ29kZShjb2RlVGV4dDogc3RyaW5nKToge3BhcmFtZXRlcnM6IElubGluZUNvZGVQYXJhbWV0ZXJzIHwgbnVsbCwgdGV4dDogc3RyaW5nfSB7XG5cdGNvbnN0IG1hdGNoID0gL157KCg/OlteXCIne31cXFxcXXxcXFxcLnxcIig/OlteXCJcXFxcXXxcXFxcLikqXCJ8Jyg/OlteJ1xcXFxdfFxcXFwuKSonKSopfSAqPyhbXiBdLiopJC8uZXhlYyhjb2RlVGV4dCk7XG5cblx0aWYgKHR5cGVvZiBtYXRjaD8uWzFdICE9PSBcInVuZGVmaW5lZFwiICYmIHR5cGVvZiBtYXRjaD8uWzJdICE9PSBcInVuZGVmaW5lZFwiKSB7XG5cdFx0aWYgKG1hdGNoWzFdID09PSBcIlwiKVxuXHRcdFx0cmV0dXJuIHtwYXJhbWV0ZXJzOiBudWxsLCB0ZXh0OiBtYXRjaFsyXX07XG5cdFx0ZWxzZVxuXHRcdFx0cmV0dXJuIHtwYXJhbWV0ZXJzOiBwYXJzZUlubGluZUNvZGVQYXJhbWV0ZXJzKG1hdGNoWzFdKSwgdGV4dDogbWF0Y2hbMl19O1xuXHR9IGVsc2Vcblx0XHRyZXR1cm4ge3BhcmFtZXRlcnM6IG51bGwsIHRleHQ6IGNvZGVUZXh0fTtcbn1cbmZ1bmN0aW9uIHBhcnNlSW5saW5lQ29kZVBhcmFtZXRlcnMocGFyYW1ldGVyTGluZTogc3RyaW5nKTogSW5saW5lQ29kZVBhcmFtZXRlcnMge1xuXHRjb25zdCBpbmxpbmVDb2RlUGFyYW1ldGVyczogSW5saW5lQ29kZVBhcmFtZXRlcnMgPSB7XG5cdFx0bGFuZ3VhZ2U6IFwiXCIsXG5cdFx0dGl0bGU6IFwiXCIsXG5cdFx0aWNvbjogZmFsc2UsXG5cdH07XG5cdGNvbnN0IGxhbmd1YWdlQnJlYWsgPSBwYXJhbWV0ZXJMaW5lLmluZGV4T2YoXCIgXCIpO1xuXHRpbmxpbmVDb2RlUGFyYW1ldGVycy5sYW5ndWFnZSA9IHBhcmFtZXRlckxpbmUuc2xpY2UoMCxsYW5ndWFnZUJyZWFrICE9PSAtMT9sYW5ndWFnZUJyZWFrOnBhcmFtZXRlckxpbmUubGVuZ3RoKS50b0xvd2VyQ2FzZSgpO1xuXHRpZiAobGFuZ3VhZ2VCcmVhayA9PT0gLTEpXG5cdFx0cmV0dXJuIGlubGluZUNvZGVQYXJhbWV0ZXJzO1xuXHRjb25zdCBwYXJhbWV0ZXJTdHJpbmdzID0gcGFyYW1ldGVyTGluZS5zbGljZShsYW5ndWFnZUJyZWFrKzEpLm1hdGNoKC8oPzpbXlxcc1wiJ10rfFwiW15cIl0qXCJ8J1teJ10qJykrL2cpO1xuXHRpZiAoIXBhcmFtZXRlclN0cmluZ3MpXG5cdFx0cmV0dXJuIGlubGluZUNvZGVQYXJhbWV0ZXJzO1xuXHRwYXJhbWV0ZXJTdHJpbmdzLmZvckVhY2goKHBhcmFtZXRlclN0cmluZykgPT4gcGFyc2VJbmxpbmVDb2RlUGFyYW1ldGVyU3RyaW5nKHBhcmFtZXRlclN0cmluZyxpbmxpbmVDb2RlUGFyYW1ldGVycykpO1xuXHRyZXR1cm4gaW5saW5lQ29kZVBhcmFtZXRlcnM7XG59XG5mdW5jdGlvbiBwYXJzZUlubGluZUNvZGVQYXJhbWV0ZXJTdHJpbmcocGFyYW1ldGVyU3RyaW5nOiBzdHJpbmcsIGlubGluZUNvZGVQYXJhbWV0ZXJzOiBJbmxpbmVDb2RlUGFyYW1ldGVycyk6IHZvaWQge1xuXHRpZiAocGFyYW1ldGVyU3RyaW5nLnN0YXJ0c1dpdGgoXCJ0aXRsZTpcIikgfHwgcGFyYW1ldGVyU3RyaW5nLnN0YXJ0c1dpdGgoXCJ0aXRsZT1cIikpIHtcblx0XHRjb25zdCB0aXRsZU1hdGNoID0gLyhbXCInXT8pKFteXFwxXSspXFwxLy5leGVjKHBhcmFtZXRlclN0cmluZy5zbGljZShcInRpdGxlOlwiLmxlbmd0aCkpO1xuXHRcdGlmICh0aXRsZU1hdGNoKVxuXHRcdFx0aW5saW5lQ29kZVBhcmFtZXRlcnMudGl0bGUgPSB0aXRsZU1hdGNoWzJdLnRyaW0oKS5yZXBsYWNlKC9cXFxcey9nLCBcIntcIik7XG5cdH0gZWxzZSBpZiAocGFyYW1ldGVyU3RyaW5nID09PSBcImljb25cIiB8fCAocGFyYW1ldGVyU3RyaW5nLnN0YXJ0c1dpdGgoXCJpY29uOlwiKSAmJiBwYXJhbWV0ZXJTdHJpbmcudG9Mb3dlckNhc2UoKSA9PT0gXCJpY29uOnRydWVcIikpXG5cdFx0aW5saW5lQ29kZVBhcmFtZXRlcnMuaWNvbiA9IHRydWU7XG59XG4iLCAiaW1wb3J0IHsgTEFOR1VBR0VfTkFNRVMsIENvZGVTdHlsZXJUaGVtZVNldHRpbmdzLCBGT0xEX1BMQUNFSE9MREVSLCBHSVRfSUNPTlMsIFNUQU1QX0lDT04sIFNJVEVfSUNPTlMsIFVQREFURV9JQ09OIH0gZnJvbSBcIi4vU2V0dGluZ3NcIjtcbmltcG9ydCB7IENvZGVibG9ja1BhcmFtZXRlcnMsIEhpZ2hsaWdodHMgfSBmcm9tIFwiLi9QYXJzaW5nL0NvZGVibG9ja1BhcnNpbmdcIjtcbmltcG9ydCB7IElubGluZUNvZGVQYXJhbWV0ZXJzIH0gZnJvbSBcIi4vUGFyc2luZy9JbmxpbmVDb2RlUGFyc2luZ1wiO1xuaW1wb3J0IHsgTWFya2Rvd25SZW5kZXJlciwgTWFya2Rvd25WaWV3IH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQgQ29kZVN0eWxlclBsdWdpbiBmcm9tIFwiLi9tYWluXCI7XG5pbXBvcnQgeyB1cGRhdGVFeHRlcm5hbFJlZmVyZW5jZSB9IGZyb20gXCIuL1JlZmVyZW5jaW5nXCI7XG5pbXBvcnQgeyBSZWZlcmVuY2UgfSBmcm9tIFwiLi9QYXJzaW5nL1JlZmVyZW5jZVBhcnNpbmdcIjtcbmltcG9ydCB7IHJlcmVuZGVyIH0gZnJvbSBcIi4vRWRpdGluZ1ZpZXdcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUhlYWRlcihjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCB0aGVtZVNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncywgc291cmNlUGF0aDogc3RyaW5nLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pOiBIVE1MRWxlbWVudCB7XG5cdGNvbnN0IGhlYWRlckNvbnRhaW5lciA9IGNyZWF0ZURpdigpO1xuXHRjb25zdCBpY29uVVJMID0gY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZT9nZXRMYW5ndWFnZUljb24oY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSxwbHVnaW4ubGFuZ3VhZ2VJY29ucyk6dW5kZWZpbmVkO1xuXHRpZiAoIWlzSGVhZGVySGlkZGVuKGNvZGVibG9ja1BhcmFtZXRlcnMsdGhlbWVTZXR0aW5ncyxpY29uVVJMKSkge1xuXHRcdGhlYWRlckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lclwiKTtcblx0XHRpZiAoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSAhPT0gXCJcIikge1xuXHRcdFx0aWYgKGlzTGFuZ3VhZ2VJY29uU2hvd24oY29kZWJsb2NrUGFyYW1ldGVycyx0aGVtZVNldHRpbmdzLGljb25VUkwpKVxuXHRcdFx0XHRoZWFkZXJDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlSW1hZ2VXcmFwcGVyKGljb25VUkwgYXMgc3RyaW5nLGNyZWF0ZURpdigpKSk7XG5cdFx0XHRpZiAoaXNMYW5ndWFnZVRhZ1Nob3duKGNvZGVibG9ja1BhcmFtZXRlcnMsdGhlbWVTZXR0aW5ncykpXG5cdFx0XHRcdGhlYWRlckNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVEaXYoe2NsczogXCJjb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnXCIsIHRleHQ6IGdldExhbmd1YWdlVGFnKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpfSkpO1xuXHRcdH1cblx0XHRoZWFkZXJDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlVGl0bGVDb250YWluZXIoY29kZWJsb2NrUGFyYW1ldGVycywgdGhlbWVTZXR0aW5ncywgc291cmNlUGF0aCwgcGx1Z2luKSk7XG5cdFx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnM/LmV4dGVybmFsUmVmZXJlbmNlKVxuXHRcdFx0aGVhZGVyQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZUV4dGVybmFsUmVmZXJlbmNlQ29udGFpbmVyKGNvZGVibG9ja1BhcmFtZXRlcnMsIHNvdXJjZVBhdGgsIHBsdWdpbikpO1xuXHRcdGlmIChmYWxzZSkgLy9UT0RPIChAbWF5dXJhbmt2KSBBZGQgc2V0dGluZ3MgdG9nZ2xlIG9uY2UgZXhlY3V0ZSBjb2RlIGNvbXBhdGliaWxpdHkgaW1wcm92ZWRcblx0XHRcdGhlYWRlckNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVFeGVjdXRlQ29kZUNvbnRhaW5lcihjb2RlYmxvY2tQYXJhbWV0ZXJzLCBwbHVnaW4pKTtcblx0fSBlbHNlXG5cdFx0aGVhZGVyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLWhpZGRlblwiKTtcblx0cmV0dXJuIGhlYWRlckNvbnRhaW5lcjtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVRpdGxlQ29udGFpbmVyKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzLCBzb3VyY2VQYXRoOiBzdHJpbmcsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbik6IEhUTUxFbGVtZW50IHtcblx0Y29uc3QgdGl0bGVDb250YWluZXIgPSBjcmVhdGVEaXYoe2NsczogXCJjb2RlLXN0eWxlci1oZWFkZXItdGV4dFwifSk7XG5cdGNvbnN0IHRpdGxlID0gY29kZWJsb2NrUGFyYW1ldGVycy50aXRsZSB8fCAoY29kZWJsb2NrUGFyYW1ldGVycy5mb2xkLmVuYWJsZWQ/KGNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5wbGFjZWhvbGRlciB8fCB0aGVtZVNldHRpbmdzLmhlYWRlci5mb2xkUGxhY2Vob2xkZXIgfHwgRk9MRF9QTEFDRUhPTERFUik6XCJcIik7XG5cdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLnJlZmVyZW5jZSA9PT0gXCJcIilcblx0XHR0aXRsZUNvbnRhaW5lci5pbm5lclRleHQgPSB0aXRsZTtcblx0ZWxzZSBpZiAoL14oPzpodHRwcz98ZmlsZSk6XFwvXFwvLy50ZXN0KGNvZGVibG9ja1BhcmFtZXRlcnMucmVmZXJlbmNlKSlcblx0XHRNYXJrZG93blJlbmRlcmVyLnJlbmRlcihwbHVnaW4uYXBwLGBbJHt0aXRsZX1dKCR7Y29kZWJsb2NrUGFyYW1ldGVycy5yZWZlcmVuY2V9KWAsdGl0bGVDb250YWluZXIsc291cmNlUGF0aCxwbHVnaW4pO1xuXHRlbHNlXG5cdFx0TWFya2Rvd25SZW5kZXJlci5yZW5kZXIocGx1Z2luLmFwcCxgW1ske2NvZGVibG9ja1BhcmFtZXRlcnMucmVmZXJlbmNlfXwke3RpdGxlfV1dYCx0aXRsZUNvbnRhaW5lcixzb3VyY2VQYXRoLHBsdWdpbik7IC8vVE9ETyAoQG1heXVyYW5rdikgQWRkIGxpbmtzIHRvIG1ldGFkYXRhIGNhY2hlIHByb3Blcmx5XG5cdHJldHVybiB0aXRsZUNvbnRhaW5lcjtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUV4dGVybmFsUmVmZXJlbmNlQ29udGFpbmVyKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHNvdXJjZVBhdGg6IHN0cmluZywgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKTogSFRNTEVsZW1lbnQge1xuXHQvL1RPRE8gKEBtYXl1cmFua3YpIEFkZCB0aGVtZSBzZXR0aW5ncyB0byBjb25kaXRpb25hbGx5IHNldCBzZWN0aW9uc1xuXHRjb25zdCBleHRlcm5hbFJlZmVyZW5jZUNvbnRhaW5lciA9IGNyZWF0ZURpdih7IGNsczogXCJjb2RlLXN0eWxlci1oZWFkZXItZXh0ZXJuYWwtcmVmZXJlbmNlXCIgfSk7XG5cdGlmIChwbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5leHRlcm5hbFJlZmVyZW5jZS5kaXNwbGF5UmVwb3NpdG9yeSkge1xuXHRcdGNvbnN0IHNpdGVJY29uID0gY3JlYXRlRGl2KHsgY2xzOiBcImV4dGVybmFsLXJlZmVyZW5jZS1yZXBvLWljb25cIiB9KTtcblx0XHRzaXRlSWNvbi5pbm5lckhUTUwgPSBTSVRFX0lDT05TPy5bY29kZWJsb2NrUGFyYW1ldGVycz8uZXh0ZXJuYWxSZWZlcmVuY2U/LmV4dGVybmFsPy5pbmZvPy5zaXRlIGFzIHN0cmluZ10gPz8gU0lURV9JQ09OU1tcImdlbmVyaWNcIl07XG5cdFx0ZXh0ZXJuYWxSZWZlcmVuY2VDb250YWluZXIuYXBwZW5kQ2hpbGQoc2l0ZUljb24pO1xuXHRcdGV4dGVybmFsUmVmZXJlbmNlQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZURpdih7IGNsczogXCJleHRlcm5hbC1yZWZlcmVuY2UtcmVwb1wiLCB0ZXh0OiBjb2RlYmxvY2tQYXJhbWV0ZXJzPy5leHRlcm5hbFJlZmVyZW5jZT8uZXh0ZXJuYWw/LmluZm8/LmF1dGhvciArIFwiL1wiICsgY29kZWJsb2NrUGFyYW1ldGVycz8uZXh0ZXJuYWxSZWZlcmVuY2U/LmV4dGVybmFsPy5pbmZvPy5yZXBvc2l0b3J5IH0pKTtcblx0fVxuXHRpZiAocGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIuZXh0ZXJuYWxSZWZlcmVuY2UuZGlzcGxheVZlcnNpb24pIHtcblx0XHRjb25zdCByZWZJY29uID0gY3JlYXRlRGl2KHsgY2xzOiBcImV4dGVybmFsLXJlZmVyZW5jZS1yZWYtaWNvblwiIH0pO1xuXHRcdHJlZkljb24uaW5uZXJIVE1MID0gR0lUX0lDT05TPy5bY29kZWJsb2NrUGFyYW1ldGVycz8uZXh0ZXJuYWxSZWZlcmVuY2U/LmV4dGVybmFsPy5pbmZvPy5yZWZJbmZvPy50eXBlIGFzIHN0cmluZ10gPz8gR0lUX0lDT05TW1wiYnJhbmNoXCJdO1xuXHRcdGV4dGVybmFsUmVmZXJlbmNlQ29udGFpbmVyLmFwcGVuZENoaWxkKHJlZkljb24pO1xuXHRcdGV4dGVybmFsUmVmZXJlbmNlQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZURpdih7Y2xzOiBcImV4dGVybmFsLXJlZmVyZW5jZS1yZWZcIiwgdGV4dDogY29kZWJsb2NrUGFyYW1ldGVycz8uZXh0ZXJuYWxSZWZlcmVuY2U/LmV4dGVybmFsPy5pbmZvPy5yZWZJbmZvPy5yZWYgYXMgc3RyaW5nfSkpO1xuXHR9XG5cdGlmIChwbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5leHRlcm5hbFJlZmVyZW5jZS5kaXNwbGF5VGltZXN0YW1wKSB7XG5cdFx0Y29uc3Qgc3RhbXBJY29uID0gY3JlYXRlRGl2KHsgY2xzOiBcImV4dGVybmFsLXJlZmVyZW5jZS10aW1lc3RhbXAtaWNvblwiIH0pO1xuXHRcdHN0YW1wSWNvbi5pbm5lckhUTUwgPSBTVEFNUF9JQ09OO1xuXHRcdGV4dGVybmFsUmVmZXJlbmNlQ29udGFpbmVyLmFwcGVuZENoaWxkKHN0YW1wSWNvbik7XG5cdFx0ZXh0ZXJuYWxSZWZlcmVuY2VDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlRGl2KHsgY2xzOiBcImV4dGVybmFsLXJlZmVyZW5jZS10aW1lc3RhbXBcIiwgdGV4dDogY29kZWJsb2NrUGFyYW1ldGVycz8uZXh0ZXJuYWxSZWZlcmVuY2U/LmV4dGVybmFsPy5pbmZvPy5kYXRldGltZSBhcyBzdHJpbmcgfSkpO1xuXHR9XG5cdGNvbnN0IHVwZGF0ZUljb24gPSBjcmVhdGVFbChcImJ1dHRvblwiLCB7IGNsczogXCJleHRlcm5hbC1yZWZlcmVuY2UtdXBkYXRlLWljb25cIn0pO1xuXHR1cGRhdGVJY29uLmlubmVySFRNTCA9IFVQREFURV9JQ09OO1xuXHR1cGRhdGVJY29uLnRpdGxlID0gXCJVcGRhdGUgUmVmZXJlbmNlXCI7XG5cdHVwZGF0ZUljb24uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGFzeW5jIChldmVudCkgPT4ge1xuXHRcdGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuXHRcdGF3YWl0IHVwZGF0ZUV4dGVybmFsUmVmZXJlbmNlKGNvZGVibG9ja1BhcmFtZXRlcnM/LmV4dGVybmFsUmVmZXJlbmNlIGFzIFJlZmVyZW5jZSwgcGx1Z2luKTtcblx0XHRjb25zdCBjb2RlYmxvY2tFbGVtZW50ID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkucGFyZW50RWxlbWVudD8ucGFyZW50RWxlbWVudD8ucGFyZW50RWxlbWVudD8ucXVlcnlTZWxlY3RvcihcImNvZGVcIik7XG5cdFx0aWYgKCFjb2RlYmxvY2tFbGVtZW50KVxuXHRcdFx0cmV0dXJuO1xuXHRcdGNvbnN0IHZpZXcgPSBwbHVnaW4uYXBwLndvcmtzcGFjZS5nZXRBY3RpdmVWaWV3T2ZUeXBlKE1hcmtkb3duVmlldyk7XG5cdFx0aWYgKCF2aWV3KVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0aWYgKHZpZXc/LmdldE1vZGUoKSA9PT0gXCJwcmV2aWV3XCIpIHtcblx0XHRcdGNvZGVibG9ja0VsZW1lbnQuYWRkQ2xhc3MoXCJSRVJFTkRFUi1DT0RFLVNUWUxFUlwiKTtcblx0XHRcdC8vQHRzLWV4cGVjdC1lcnJvciBVbmRvY3VtZW50ZWQgT2JzaWRpYW4gQVBJXG5cdFx0XHRmb3IgKGNvbnN0IHNlY3Rpb24gb2Ygdmlldy5wcmV2aWV3TW9kZS5yZW5kZXJlci5zZWN0aW9ucy5maWx0ZXIocyA9PiAocy5lbCBhcyBIVE1MRWxlbWVudCkucXVlcnlTZWxlY3RvcihcIlJFUkVOREVSLUNPREUtU1RZTEVSXCIpKSkge1xuXHRcdFx0XHRzZWN0aW9uLnJlbmRlcmVkID0gZmFsc2U7XG5cdFx0XHRcdHNlY3Rpb24uaHRtbCA9IFwiXCI7XG5cdFx0XHR9XG5cdFx0XHR2aWV3Py5wcmV2aWV3TW9kZS5yZXJlbmRlcih0cnVlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0XHRcdGNvbnN0IGNtVmlldyA9IHZpZXc/LnNvdXJjZU1vZGUuY21FZGl0b3IuY207XG5cdFx0XHRjb25zdCBwb3MgPSBjbVZpZXcucG9zQXRET00oZXZlbnQudGFyZ2V0KTtcblx0XHRcdGNvbnN0IGN1cnJlbnQ6IG51bWJlciA9IGNtVmlldy5zdGF0ZS5zZWxlY3Rpb24ubWFpbi5oZWFkO1xuXHRcdFx0Y21WaWV3LmRpc3BhdGNoKHsgc2VsZWN0aW9uOiB7IGFuY2hvcjogcG9zLCBoZWFkOiBwb3MgfSwgZWZmZWN0czogcmVyZW5kZXIub2Yoe3BvczogY3VycmVudH0pIH0pO1xuXHRcdFx0Y21WaWV3LmZvY3VzKCk7XG5cdFx0XHRzZXRUaW1lb3V0KCgpPT5jbVZpZXcuZGlzcGF0Y2goeyBzZWxlY3Rpb246IHsgYW5jaG9yOiBjdXJyZW50LCBoZWFkOiBjdXJyZW50IH19KSwxMCk7XG5cdFx0fVxuXHR9KTtcblx0ZXh0ZXJuYWxSZWZlcmVuY2VDb250YWluZXIuYXBwZW5kQ2hpbGQodXBkYXRlSWNvbik7XG5cdHJldHVybiBleHRlcm5hbFJlZmVyZW5jZUNvbnRhaW5lcjtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUV4ZWN1dGVDb2RlQ29udGFpbmVyKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbik6IEhUTUxFbGVtZW50IHtcblx0Y29uc3QgZXhlY3V0ZUNvZGVDb250YWluZXIgPSBjcmVhdGVEaXYoeyBjbHM6IFwiY29kZS1zdHlsZXItaGVhZGVyLWV4ZWN1dGUtY29kZVwiIH0pO1xuXHRjb25zb2xlLmxvZyhcIkRldmVsb3BlciBFcnJvcjogU2VjdGlvbiBub3QgZmluaXNoZWRcIiwgY29kZWJsb2NrUGFyYW1ldGVycywgcGx1Z2luKTtcblx0Ly9UT0RPIChAbWF5dXJhbmt2KSBGaW5pc2hcblx0cmV0dXJuIGV4ZWN1dGVDb2RlQ29udGFpbmVyO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUlubGluZU9wZW5lcihpbmxpbmVDb2RlUGFyYW1ldGVyczogSW5saW5lQ29kZVBhcmFtZXRlcnMsIGxhbmd1YWdlSWNvbnM6IFJlY29yZDxzdHJpbmcsc3RyaW5nPiwgY29udGFpbmVyQ2xhc3NlczogQXJyYXk8c3RyaW5nPiA9IFtcImNvZGUtc3R5bGVyLWlubGluZS1vcGVuZXJcIl0pOiBIVE1MRWxlbWVudCB7XG5cdGNvbnN0IG9wZW5lckNvbnRhaW5lciA9IGNyZWF0ZVNwYW4oe2NsczogY29udGFpbmVyQ2xhc3Nlcy5qb2luKFwiIFwiKX0pO1xuXHRpZiAoaW5saW5lQ29kZVBhcmFtZXRlcnMuaWNvbikge1xuXHRcdGNvbnN0IGljb25VUkwgPSBnZXRMYW5ndWFnZUljb24oaW5saW5lQ29kZVBhcmFtZXRlcnMubGFuZ3VhZ2UsbGFuZ3VhZ2VJY29ucyk7XG5cdFx0aWYgKHR5cGVvZiBpY29uVVJMICE9PSBcInVuZGVmaW5lZFwiKVxuXHRcdFx0b3BlbmVyQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZUltYWdlV3JhcHBlcihpY29uVVJMLGNyZWF0ZVNwYW4oKSxcImNvZGUtc3R5bGVyLWlubGluZS1pY29uXCIpKTtcblx0fVxuXHRpZiAoaW5saW5lQ29kZVBhcmFtZXRlcnMudGl0bGUpXG5cdFx0b3BlbmVyQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW4oe2NsczogXCJjb2RlLXN0eWxlci1pbmxpbmUtdGl0bGVcIiwgdGV4dDogaW5saW5lQ29kZVBhcmFtZXRlcnMudGl0bGV9KSk7XG5cdHJldHVybiBvcGVuZXJDb250YWluZXI7XG59XG5mdW5jdGlvbiBjcmVhdGVJbWFnZVdyYXBwZXIoaWNvblVSTDogc3RyaW5nLCBpbWFnZVdyYXBwZXI6IEhUTUxFbGVtZW50LCBpbWdDbGFzcyA9IFwiY29kZS1zdHlsZXItaWNvblwiKTogSFRNTEVsZW1lbnQge1xuXHRjb25zdCBpbWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaW1nXCIpO1xuXHRpbWcuY2xhc3NMaXN0LmFkZChpbWdDbGFzcyk7XG5cdGltZy5zcmMgPSBpY29uVVJMO1xuXHRpbWFnZVdyYXBwZXIuYXBwZW5kQ2hpbGQoaW1nKTtcblx0cmV0dXJuIGltYWdlV3JhcHBlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExhbmd1YWdlSWNvbihsYW5ndWFnZTogc3RyaW5nLCBsYW5ndWFnZUljb25zOiBSZWNvcmQ8c3RyaW5nLHN0cmluZz4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRyZXR1cm4gbGFuZ3VhZ2VJY29ucz8uW2dldExhbmd1YWdlVGFnKGxhbmd1YWdlKV07XG59XG5mdW5jdGlvbiBnZXRMYW5ndWFnZVRhZyhsYW5ndWFnZTogc3RyaW5nKSB7XG5cdHJldHVybiBMQU5HVUFHRV9OQU1FUz8uW2xhbmd1YWdlXSA/PyAobGFuZ3VhZ2UuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBsYW5ndWFnZS5zbGljZSgxKSB8fCBcIlwiKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0hlYWRlckhpZGRlbihjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCB0aGVtZVNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncywgaWNvblVSTDogc3RyaW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG5cdHJldHVybiAhaXNIZWFkZXJSZXF1aXJlZChjb2RlYmxvY2tQYXJhbWV0ZXJzKSAmJiAoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSA9PT0gXCJcIiB8fCAodGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheSAhPT0gXCJhbHdheXNcIiAmJiAodGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXkgIT09IFwiYWx3YXlzXCIgfHwgKHR5cGVvZiBpY29uVVJMID09IFwidW5kZWZpbmVkXCIpKSkpO1xufVxuZnVuY3Rpb24gaXNMYW5ndWFnZUljb25TaG93bihjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCB0aGVtZVNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncywgaWNvblVSTDogc3RyaW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG5cdHJldHVybiAodHlwZW9mIGljb25VUkwgIT09IFwidW5kZWZpbmVkXCIpICYmICh0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheSA9PT0gXCJhbHdheXNcIiB8fCAoaXNIZWFkZXJSZXF1aXJlZChjb2RlYmxvY2tQYXJhbWV0ZXJzKSAmJiB0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheSA9PT0gXCJpZl9oZWFkZXJfc2hvd25cIikpO1xufVxuZnVuY3Rpb24gaXNMYW5ndWFnZVRhZ1Nob3duKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzKTogYm9vbGVhbiB7XG5cdHJldHVybiB0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy5kaXNwbGF5ID09PSBcImFsd2F5c1wiIHx8IChpc0hlYWRlclJlcXVpcmVkKGNvZGVibG9ja1BhcmFtZXRlcnMpICYmIHRoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLmRpc3BsYXkgPT09IFwiaWZfaGVhZGVyX3Nob3duXCIpO1xufVxuZnVuY3Rpb24gaXNIZWFkZXJSZXF1aXJlZChjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzKTogYm9vbGVhbiB7XG5cdHJldHVybiBjb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQuZW5hYmxlZCB8fCBjb2RlYmxvY2tQYXJhbWV0ZXJzLnRpdGxlICE9PSBcIlwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGluZUNsYXNzKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIGxpbmVOdW1iZXI6IG51bWJlciwgbGluZTogc3RyaW5nKTogQXJyYXk8c3RyaW5nPiB7XG5cdGxldCBjbGFzc0xpc3Q6IEFycmF5PHN0cmluZz4gPSBbXTtcblx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMuaGlnaGxpZ2h0cy5kZWZhdWx0LmxpbmVOdW1iZXJzLmluY2x1ZGVzKGxpbmVOdW1iZXIrY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5vZmZzZXQpIHx8IGNvZGVibG9ja1BhcmFtZXRlcnMuaGlnaGxpZ2h0cy5kZWZhdWx0LnBsYWluVGV4dC5zb21lKHRleHQgPT4gbGluZS5pbmRleE9mKHRleHQpID4gLTEpIHx8IGNvZGVibG9ja1BhcmFtZXRlcnMuaGlnaGxpZ2h0cy5kZWZhdWx0LnJlZ3VsYXJFeHByZXNzaW9ucy5zb21lKHJlZ0V4cCA9PiByZWdFeHAudGVzdChsaW5lKSkpXG5cdFx0Y2xhc3NMaXN0LnB1c2goXCJjb2RlLXN0eWxlci1saW5lLWhpZ2hsaWdodGVkXCIpO1xuXHRPYmplY3QuZW50cmllcyhjb2RlYmxvY2tQYXJhbWV0ZXJzLmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmUpLmZvckVhY2goKFthbHRlcm5hdGl2ZUhpZ2hsaWdodCxoaWdobGlnaHRlZExpbmVzXTogW3N0cmluZyxIaWdobGlnaHRzXSkgPT4ge1xuXHRcdGlmIChoaWdobGlnaHRlZExpbmVzLmxpbmVOdW1iZXJzLmluY2x1ZGVzKGxpbmVOdW1iZXIrY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5vZmZzZXQpIHx8IGhpZ2hsaWdodGVkTGluZXMucGxhaW5UZXh0LnNvbWUodGV4dCA9PiBsaW5lLmluZGV4T2YodGV4dCkgPiAtMSkgfHwgaGlnaGxpZ2h0ZWRMaW5lcy5yZWd1bGFyRXhwcmVzc2lvbnMuc29tZShyZWdFeHAgPT4gcmVnRXhwLnRlc3QobGluZSkpKVxuXHRcdFx0Y2xhc3NMaXN0LnB1c2goYGNvZGUtc3R5bGVyLWxpbmUtaGlnaGxpZ2h0ZWQtJHthbHRlcm5hdGl2ZUhpZ2hsaWdodC5yZXBsYWNlKC9cXHMrL2csIFwiLVwiKS50b0xvd2VyQ2FzZSgpfWApO1xuXHR9KTtcblx0aWYgKGNsYXNzTGlzdC5sZW5ndGggPT09IDApXG5cdFx0Y2xhc3NMaXN0ID0gW1wiY29kZS1zdHlsZXItbGluZVwiXTtcblx0cmV0dXJuIGNsYXNzTGlzdDtcbn1cbiIsICJjb25zdCBNT0RFUyA9IFtcblx0XCJyZWZlcmVuY2VcIixcblx0XCJ5YW1sLWZyb250bWF0dGVyXCIsXG5dO1xuXG5leHBvcnQgZnVuY3Rpb24gYWRkTW9kZXMoKSB7XG5cdE1PREVTLmZvckVhY2gobW9kZSA9PiBhZGRNb2RlKG1vZGUpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVNb2RlcygpIHtcblx0TU9ERVMuZm9yRWFjaChtb2RlID0+IHJlbW92ZU1vZGUobW9kZSkpO1xufVxuZnVuY3Rpb24gYWRkTW9kZShtb2RlTmFtZTogc3RyaW5nKSB7XG5cdC8vQHRzLWV4cGVjdC1lcnJvciBVbmRvY3VtZW50ZWQgT2JzaWRpYW4gQVBJXG5cdHdpbmRvdy5Db2RlTWlycm9yLm1vZGVJbmZvLnB1c2goe1xuXHRcdG5hbWU6IG1vZGVOYW1lLFxuXHRcdG1pbWU6IFwidGV4dC9cIittb2RlTmFtZSxcblx0XHRtb2RlOiBtb2RlTmFtZSxcblx0XHRleHQ6IFttb2RlTmFtZV1cblx0fSk7XG59XG5mdW5jdGlvbiByZW1vdmVNb2RlKG1vZGVOYW1lOiBzdHJpbmcpIHtcblx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0Y29uc3QgbW9kZUluZGV4ID0gd2luZG93LkNvZGVNaXJyb3IubW9kZUluZm8uZmluZEluZGV4KChtb2RlKSA9PiBtb2RlLm1vZGUgPT09IG1vZGVOYW1lKTtcblx0aWYgKG1vZGVJbmRleCAhPT0gLTEpXG5cdFx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0XHR3aW5kb3cuQ29kZU1pcnJvci5tb2RlSW5mby5zcGxpY2UobW9kZUluZGV4LCAxKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZFJlZmVyZW5jZVN5bnRheEhpZ2hsaWdodChDb2RlTWlycm9yOiB0eXBlb2Ygd2luZG93LkNvZGVNaXJyb3IpIHtcblx0Q29kZU1pcnJvci5kZWZpbmVNb2RlKFwicmVmZXJlbmNlXCIsIGZ1bmN0aW9uKGNvbmZpZywgX3BhcnNlckNvbmZpZykge1xuXHRcdGNvbnN0IGtleVBhdHRlcm4gPSAvXihbYS16QS1aMC05Xy1dKylcXHMqKD89OikvO1xuXHRcdGNvbnN0IHZhbHVlUGF0dGVybiA9IC9eKDo/KFxccyooPzpcIig/OlxcXFwufFteXCJdKSpcInxcXFMrKSk/KS87XG5cdFx0cmV0dXJuIHtcblx0XHRcdHN0YXJ0U3RhdGU6ICgpID0+IHsgcmV0dXJuIHsgaW5CbG9jazogZmFsc2UsIGluZGVudDogMCB9OyB9LFxuXHRcdFx0aW5kZW50OiAoc3RhdGUsIHRleHRBZnRlcikgPT4ge1xuXHRcdFx0XHRjb25zdCBpbmRlbnRVbml0ID0gY29uZmlnLmluZGVudFVuaXQ7XG5cdFx0XHRcdGNvbnN0IGluZGVudCA9IHN0YXRlLmluZGVudCB8fCAwO1xuXHRcdFx0XHRpZiAodGV4dEFmdGVyICYmIHRleHRBZnRlci5zdGFydHNXaXRoKFwiLVwiKSkgcmV0dXJuIGluZGVudCArIGluZGVudFVuaXQ7XG5cdFx0XHRcdGVsc2UgcmV0dXJuIGluZGVudDtcblx0XHRcdH0sXG5cdFx0XHR0b2tlbjogKHN0cmVhbSwgc3RhdGUpID0+IHtcblx0XHRcdFx0aWYgKHN0cmVhbS5lYXRTcGFjZSgpKSByZXR1cm4gbnVsbDtcblx0XHRcdFx0aWYgKHN0cmVhbS5tYXRjaCgvXiMuKi8pKSByZXR1cm4gXCJjb21tZW50XCI7XG5cdFx0XHRcdGlmIChzdHJlYW0ubWF0Y2goL15odHRwcz86XFwvXFwvLiovKSkgcmV0dXJuIFwidmFyaWFibGVcIjtcblx0XHRcdFx0aWYgKHN0cmVhbS5tYXRjaCgvXlxcdytcXC9cXHcrXFwvXFx3K1xcL1xcdyskLykpIHJldHVybiBcInZhcmlhYmxlXCI7XG5cdFx0XHRcdGlmIChzdHJlYW0ubWF0Y2goL15cXHcrXFwvXFx3K1xcL1xcdyskLykpIHJldHVybiBcInZhcmlhYmxlXCI7XG5cdFx0XHRcdGlmIChzdHJlYW0ubWF0Y2goL15cXHcrXFwvXFx3KyQvKSkgcmV0dXJuIFwidmFyaWFibGVcIjtcblx0XHRcdFx0aWYgKHN0cmVhbS5tYXRjaCgvXFxbXFxbLitcXF1cXF0vKSkgcmV0dXJuIFwidmFyaWFibGVcIjtcblx0XHRcdFx0aWYgKHN0cmVhbS5tYXRjaChrZXlQYXR0ZXJuKSkgcmV0dXJuIFwic3RyaW5nXCI7XG5cdFx0XHRcdGlmIChzdHJlYW0ubWF0Y2goLzovKSkgcmV0dXJuIFwibWV0YVwiO1xuXHRcdFx0XHRjb25zdCB2YWx1ZU1hdGNoID0gc3RyZWFtLm1hdGNoKHZhbHVlUGF0dGVybik7XG5cdFx0XHRcdGlmICh2YWx1ZU1hdGNoKSB7XG5cdFx0XHRcdFx0aWYgKC8oXCI/KVxcLy4qXFwvXFwxLy5leGVjKHZhbHVlTWF0Y2hbMl0pKSByZXR1cm4gXCJvcGVyYXRvclwiO1xuXHRcdFx0XHRcdGlmICh2YWx1ZU1hdGNoWzJdLnN0YXJ0c1dpdGgoXCJcXFwiXCIpKSB7XG5cdFx0XHRcdFx0XHRzdHJlYW0uc2tpcFRvRW5kKCk7IC8vIENvbnN1bWUgdGhlIHJlc3Qgb2YgdGhlIHN0cmluZ1xuXHRcdFx0XHRcdFx0cmV0dXJuIFwicHJvcGVydHlcIjtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKC9eXFxkKyhcXC5cXGQrKT9cXGIvLnRlc3QodmFsdWVNYXRjaFsyXSkpIHJldHVybiBcIm51bWJlclwiO1xuXHRcdFx0XHRcdGVsc2UgaWYgKC9eKHRydWV8ZmFsc2V8bnVsbClcXGIvLnRlc3QodmFsdWVNYXRjaFsyXSkpIHJldHVybiBcImF0b21cIjtcblx0XHRcdFx0XHRlbHNlIHJldHVybiBudWxsO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKHN0cmVhbS5zb2woKSkge1xuXHRcdFx0XHRcdGNvbnN0IGluZGVudCA9IHN0cmVhbS5pbmRlbnRhdGlvbigpO1xuXHRcdFx0XHRcdGlmIChpbmRlbnQgPiBzdGF0ZS5pbmRlbnQpIHtcblx0XHRcdFx0XHRcdHN0YXRlLmluZGVudCA9IGluZGVudDtcblx0XHRcdFx0XHRcdHJldHVybiBcImluZGVudFwiO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoaW5kZW50IDwgc3RhdGUuaW5kZW50KSB7XG5cdFx0XHRcdFx0XHRzdGF0ZS5pbmRlbnQgPSBpbmRlbnQ7XG5cdFx0XHRcdFx0XHRyZXR1cm4gXCJkZWRlbnRcIjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRzdHJlYW0ubmV4dCgpO1xuXHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdH1cblx0XHR9O1xuXHR9KTtcblx0Q29kZU1pcnJvci5kZWZpbmVNSU1FKFwidGV4dC9yZWZlcmVuY2VcIiwgXCJyZWZlcmVuY2VcIik7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQUFBLFNBQTJDQSxJQUFNQyxJQUFBQTtBQUMxQixrQkFBQSxPQUFaQyxXQUEwQyxZQUFBLE9BQVhDLFVBQ3hDQSxRQUFPRCxVQUFVRCxHQUFBQSxJQUNRLGNBQUEsT0FBWEcsVUFBeUJBLE9BQU9DLE1BQzlDRCxPQUFPLENBQUEsR0FBSUgsRUFBQUEsSUFDZSxZQUFBLE9BQVpDLFVBQ2RB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QUFXO0FBQUEsRUFDWCxPQUFPO0FBQUEsRUFDUCxZQUFZO0FBQUEsRUFDWixRQUFRO0FBQUEsRUFDUixVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxZQUFZO0FBQUEsRUFDWixjQUFjO0FBQUEsRUFDZCxVQUFVO0FBQUEsRUFDVixZQUFZO0FBQUEsRUFDWixPQUFPO0FBQUEsRUFDUCxZQUFZO0FBQUEsRUFDWixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixTQUFTO0FBQUEsRUFDVCxVQUFVO0FBQUEsRUFDVixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxXQUFXO0FBQUEsRUFDWCxVQUFVO0FBQUEsRUFDVixNQUFNO0FBQUEsRUFDTixVQUFVO0FBQUEsRUFDVixPQUFPO0FBQUEsRUFDUCxZQUFZO0FBQUEsRUFDWixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxZQUFZO0FBQUEsRUFDWixRQUFRO0FBQUEsRUFDUixTQUFTO0FBQUEsRUFDVCxTQUFTO0FBQUEsRUFDVCxVQUFVO0FBQUEsRUFDVixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxjQUFjO0FBQUEsRUFDZCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxhQUFhO0FBQUEsRUFDYixPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixVQUFVO0FBQUEsRUFDVixpQkFBaUI7QUFBQSxFQUNqQixZQUFZO0FBQUEsRUFDWixjQUFjO0FBQUEsRUFDZCxPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixRQUFRO0FBQUEsRUFDUixnQkFBZ0I7QUFBQSxFQUNoQixPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxpQkFBaUI7QUFBQSxFQUNqQixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDViw0QkFBNEI7QUFBQSxFQUM1QixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxxQkFBcUI7QUFBQSxFQUNyQixPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxZQUFZO0FBQUEsRUFDWixVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxNQUFNO0FBQUEsRUFDTixRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxpQkFBaUI7QUFBQSxFQUNqQixNQUFNO0FBQUEsRUFDTixhQUFhO0FBQUEsRUFDYixVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixhQUFhO0FBQUEsRUFDYixzQkFBc0I7QUFBQSxFQUN0QixPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixhQUFhO0FBQUEsRUFDYixZQUFZO0FBQUEsRUFDWixhQUFhO0FBQUEsRUFDYixXQUFXO0FBQUEsRUFDWCxXQUFXO0FBQUEsRUFDWCxlQUFlO0FBQUEsRUFDZixrQkFBa0I7QUFBQSxFQUNsQixNQUFNO0FBQUEsRUFDTixTQUFTO0FBQUEsRUFDVCxhQUFhO0FBQUEsRUFDYixRQUFRO0FBQUEsRUFDUixlQUFlO0FBQUEsRUFDZixTQUFTO0FBQUEsRUFDVCxTQUFTO0FBQUEsRUFDVCxnQkFBZ0I7QUFBQSxFQUNoQixnQkFBZ0I7QUFBQSxFQUNoQixjQUFjO0FBQUEsRUFDZCxPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxXQUFXO0FBQUEsRUFDWCxZQUFZO0FBQUEsRUFDWixNQUFNO0FBQUEsRUFDTixTQUFTO0FBQUEsRUFDVCxTQUFTO0FBQUEsRUFDVCxjQUFjO0FBQUEsRUFDZCxRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxXQUFXO0FBQUEsRUFDWCxTQUFTO0FBQUEsRUFDVCxNQUFNO0FBQUEsRUFDTixxQkFBcUI7QUFBQSxFQUNyQixVQUFVO0FBQUEsRUFDVixhQUFhO0FBQUEsRUFDYixPQUFPO0FBQUEsRUFDUCxZQUFZO0FBQUEsRUFDWixXQUFXO0FBQUEsRUFDWCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixTQUFTO0FBQUEsRUFDVCxtQkFBbUI7QUFBQSxFQUNuQixjQUFjO0FBQUEsRUFDZCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixTQUFTO0FBQUEsRUFDVCxRQUFRO0FBQUEsRUFDUixjQUFjO0FBQUEsRUFDZCxRQUFRO0FBQUEsRUFDUixTQUFTO0FBQUEsRUFDVCxVQUFVO0FBQUEsRUFDVixZQUFZO0FBQUEsRUFDWixRQUFRO0FBQUEsRUFDUixVQUFVO0FBQUEsRUFDVixnQkFBZ0I7QUFBQSxFQUNoQixPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixNQUFNO0FBQUEsRUFDTixjQUFjO0FBQUEsRUFDZCxTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixjQUFjO0FBQUEsRUFDZCxhQUFhO0FBQUEsRUFDYixZQUFZO0FBQUEsRUFDWixTQUFTO0FBQUEsRUFDVCxjQUFjO0FBQUEsRUFDZCxNQUFNO0FBQUEsRUFDTixXQUFXO0FBQUEsRUFDWCxjQUFjO0FBQUEsRUFDZCxVQUFVO0FBQUEsRUFDVixjQUFjO0FBQUEsRUFDZCxZQUFZO0FBQUEsRUFDWixhQUFhO0FBQUEsRUFDYixVQUFVO0FBQUEsRUFDVixRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixVQUFVO0FBQUEsRUFDVixNQUFNO0FBQUEsRUFDTixLQUFLO0FBQUEsRUFDTCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixrQkFBa0I7QUFBQSxFQUNsQixTQUFTO0FBQUEsRUFDVCxNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixpQkFBaUI7QUFBQSxFQUNqQixjQUFjO0FBQUEsRUFDZCxnQkFBZ0I7QUFBQSxFQUNoQixPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxZQUFZO0FBQUEsRUFDWixPQUFPO0FBQUEsRUFDUCxpQkFBaUI7QUFBQSxFQUNqQixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixNQUFNO0FBQUEsRUFDTixjQUFjO0FBQUEsRUFDZCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxTQUFTO0FBQUEsRUFDVCxpQkFBaUI7QUFBQSxFQUNqQixVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxpQkFBaUI7QUFBQSxFQUNqQixTQUFTO0FBQUEsRUFDVCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixXQUFXO0FBQUEsRUFDWCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixZQUFZO0FBQUEsRUFDWixXQUFXO0FBQUEsRUFDWCxNQUFNO0FBQUEsRUFDTixXQUFXO0FBQUEsRUFDWCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQUEsRUFDVCxRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxnQkFBZ0I7QUFBQSxFQUNoQixPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixRQUFRO0FBQUEsRUFDUixXQUFXO0FBQUEsRUFDWCxVQUFVO0FBQUEsRUFDVixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixXQUFXO0FBQUEsRUFDWCxNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixhQUFhO0FBQUEsRUFDYixXQUFXO0FBQUEsRUFDWCxRQUFRO0FBQUEsRUFDUixVQUFVO0FBQUEsRUFDVixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQ1Q7QUFDQSxJQUFNLHlCQUFrRDtBQUFBO0FBQUEsRUFDdkQsT0FBTTtBQUFBLEVBQ04sU0FBUTtBQUFBLEVBQ1IsY0FBYTtBQUFBLEVBQ2IsTUFBSztBQUFBLEVBQ0wsUUFBTztBQUFBLEVBQ1AsUUFBTztBQUFBLEVBQ1AsZ0JBQWU7QUFBQSxFQUNmLE9BQU07QUFBQSxFQUNOLFFBQU87QUFBQSxFQUNQLE1BQUs7QUFBQSxFQUNMLFVBQVM7QUFBQSxFQUNULE1BQUs7QUFBQSxFQUNMLGNBQWE7QUFBQSxFQUNiLFFBQU87QUFBQSxFQUNQLE9BQU07QUFBQSxFQUNOLGVBQWM7QUFBQSxFQUNkLE9BQU07QUFBQSxFQUNOLFdBQVU7QUFBQSxFQUNWLE9BQU07QUFBQSxFQUNOLFFBQU87QUFBQSxFQUNQLFVBQVM7QUFBQSxFQUNULFdBQVU7QUFBQSxFQUNWLFVBQVM7QUFBQSxFQUNULE9BQU07QUFBQSxFQUNOLFlBQVc7QUFBQSxFQUNYLFFBQU87QUFBQSxFQUNQLFVBQVM7QUFBQSxFQUNULFdBQVU7QUFBQSxFQUNWLFlBQVc7QUFBQSxFQUNYLGNBQWE7QUFBQSxFQUNiLFVBQVM7QUFBQSxFQUNULFlBQVc7QUFBQSxFQUNYLE9BQU07QUFBQSxFQUNOLFlBQVc7QUFBQSxFQUNYLFFBQU87QUFBQSxFQUNQLE9BQU07QUFBQSxFQUNOLFFBQU87QUFBQSxFQUNQLFFBQU87QUFBQSxFQUNQLE1BQUs7QUFBQSxFQUNMLFNBQVE7QUFBQSxFQUNSLFNBQVE7QUFBQSxFQUNSLFNBQVE7QUFBQSxFQUNSLFVBQVM7QUFBQSxFQUNULGFBQVk7QUFBQSxFQUNaLE9BQU07QUFBQSxFQUNOLFFBQU87QUFBQSxFQUNQLFNBQVE7QUFBQSxFQUNSLE9BQU07QUFBQSxFQUNOLFFBQU87QUFBQSxFQUNQLE9BQU07QUFBQSxFQUNOLGFBQVk7QUFBQSxFQUNaLGdCQUFlO0FBQUEsRUFDZixPQUFNO0FBQUEsRUFDTixPQUFNO0FBQUEsRUFDTixXQUFVO0FBQUEsRUFDVixLQUFJO0FBQUEsRUFDSixVQUFTO0FBQUEsRUFDVCxNQUFLO0FBQUEsRUFDTCxVQUFTO0FBQUEsRUFDVCxPQUFNO0FBQUEsRUFDTixZQUFXO0FBQUEsRUFDWCxPQUFNO0FBQUEsRUFDTixjQUFhO0FBQUEsRUFDYixPQUFNO0FBQUEsRUFDTixTQUFRO0FBQUEsRUFDUixVQUFTO0FBQUEsRUFDVCxXQUFVO0FBQUEsRUFDVixZQUFXO0FBQUEsRUFDWCxRQUFPO0FBQUEsRUFDUCxXQUFVO0FBQUEsRUFDVixTQUFRO0FBQUEsRUFDUixTQUFRO0FBQUEsRUFDUixnQkFBZTtBQUFBLEVBQ2YsVUFBUztBQUFBLEVBQ1QsYUFBWTtBQUFBLEVBQ1osUUFBTztBQUFBLEVBQ1AsT0FBTTtBQUFBLEVBQ04sWUFBVztBQUFBLEVBQ1gsT0FBTTtBQUFBLEVBQ04sV0FBVTtBQUFBLEVBQ1YsY0FBYTtBQUFBLEVBQ2IsT0FBTTtBQUFBLEVBQ04sT0FBTTtBQUFBLEVBQ04sVUFBUztBQUFBLEVBQ1QsS0FBSTtBQUFBLEVBQ0osUUFBTztBQUFBLEVBQ1AsYUFBWTtBQUFBLEVBQ1osT0FBTTtBQUFBLEVBQ04sU0FBUTtBQUFBLEVBQ1IsUUFBTztBQUFBLEVBQ1AsVUFBUztBQUFBLEVBQ1QsVUFBUztBQUFBLEVBQ1QsaUJBQWdCO0FBQUEsRUFDaEIsWUFBVztBQUFBLEVBQ1gsVUFBUztBQUFBLEVBQ1QsY0FBYTtBQUFBLEVBQ2IsT0FBTTtBQUFBLEVBQ04sTUFBSztBQUFBLEVBQ0wsUUFBTztBQUFBLEVBQ1AsZ0JBQWU7QUFBQSxFQUNmLFVBQVM7QUFBQSxFQUNULE9BQU07QUFBQSxFQUNOLE9BQU07QUFBQSxFQUNOLFVBQVM7QUFBQSxFQUNULE9BQU07QUFBQSxFQUNOLFNBQVE7QUFBQSxFQUNSLE9BQU07QUFBQSxFQUNOLFVBQVM7QUFBQSxFQUNULGlCQUFnQjtBQUFBLEVBQ2hCLFFBQU87QUFBQSxFQUNQLE9BQU07QUFBQSxFQUNOLFVBQVM7QUFBQSxFQUNULFVBQVM7QUFBQSxFQUNULFNBQVE7QUFBQSxFQUNSLDRCQUEyQjtBQUFBLEVBQzNCLFFBQU87QUFBQSxFQUNQLFdBQVU7QUFBQSxFQUNWLE9BQU07QUFBQSxFQUNOLE9BQU07QUFBQSxFQUNOLHFCQUFvQjtBQUFBLEVBQ3BCLE9BQU07QUFBQSxFQUNOLFNBQVE7QUFBQSxFQUNSLFlBQVc7QUFBQSxFQUNYLFVBQVM7QUFBQSxFQUNULFdBQVU7QUFBQSxFQUNWLE1BQUs7QUFBQSxFQUNMLFdBQVU7QUFBQSxFQUNWLE9BQU07QUFBQSxFQUNOLFFBQU87QUFBQSxFQUNQLE1BQUs7QUFBQSxFQUNMLE9BQU07QUFBQSxFQUNOLGlCQUFnQjtBQUFBLEVBQ2hCLE1BQUs7QUFBQSxFQUNMLE1BQUs7QUFBQSxFQUNMLGFBQVk7QUFBQSxFQUNaLFVBQVM7QUFBQSxFQUNULFVBQVM7QUFBQSxFQUNULFdBQVU7QUFBQSxFQUNWLFVBQVM7QUFBQSxFQUNULFFBQU87QUFBQSxFQUNQLGNBQWE7QUFBQSxFQUNiLE9BQU07QUFBQSxFQUNOLFlBQVc7QUFBQSxFQUNYLFdBQVU7QUFBQSxFQUNWLE1BQUs7QUFBQSxFQUNMLFFBQU87QUFBQSxFQUNQLE9BQU07QUFBQSxFQUNOLFFBQU87QUFBQSxFQUNQLFFBQU87QUFBQSxFQUNQLFFBQU87QUFBQSxFQUNQLFFBQU87QUFBQSxFQUNQLFFBQU87QUFBQSxFQUNQLGFBQVk7QUFBQSxFQUNaLFFBQU87QUFBQSxFQUNQLHNCQUFxQjtBQUFBLEVBQ3JCLFNBQVE7QUFBQSxFQUNSLE9BQU07QUFBQSxFQUNOLFdBQVU7QUFBQSxFQUNWLE9BQU07QUFBQSxFQUNOLE1BQUs7QUFBQSxFQUNMLEtBQUk7QUFBQSxFQUNKLFFBQU87QUFBQSxFQUNQLFdBQVU7QUFBQSxFQUNWLGVBQWM7QUFBQSxFQUNkLGtCQUFpQjtBQUFBLEVBQ2pCLFFBQU87QUFBQSxFQUNQLFNBQVE7QUFBQSxFQUNSLE1BQUs7QUFBQSxFQUNMLFNBQVE7QUFBQSxFQUNSLGFBQVk7QUFBQSxFQUNaLFFBQU87QUFBQSxFQUNQLGVBQWM7QUFBQSxFQUNkLFNBQVE7QUFBQSxFQUNSLFNBQVE7QUFBQSxFQUNSLGdCQUFlO0FBQUEsRUFDZixnQkFBZTtBQUFBLEVBQ2YsU0FBUTtBQUFBLEVBQ1IsY0FBYTtBQUFBLEVBQ2IsVUFBUztBQUFBLEVBQ1QsVUFBUztBQUFBLEVBQ1QsTUFBSztBQUFBLEVBQ0wsT0FBTTtBQUFBLEVBQ04sU0FBUTtBQUFBLEVBQ1IsT0FBTTtBQUFBLEVBQ04sU0FBUTtBQUFBLEVBQ1IsU0FBUTtBQUFBLEVBQ1IsT0FBTTtBQUFBLEVBQ04sV0FBVTtBQUFBLEVBQ1YsU0FBUTtBQUFBLEVBQ1IsUUFBTztBQUFBLEVBQ1AsWUFBVztBQUFBLEVBQ1gsTUFBSztBQUFBLEVBQ0wsVUFBUztBQUFBLEVBQ1QsUUFBTztBQUFBLEVBQ1AsU0FBUTtBQUFBLEVBQ1IsU0FBUTtBQUFBLEVBQ1IsY0FBYTtBQUFBLEVBQ2IsY0FBYTtBQUFBLEVBQ2IsUUFBTztBQUFBLEVBQ1AsT0FBTTtBQUFBLEVBQ04sV0FBVTtBQUFBLEVBQ1YsT0FBTTtBQUFBLEVBQ04sU0FBUTtBQUFBLEVBQ1IsWUFBVztBQUFBLEVBQ1gsWUFBVztBQUFBLEVBQ1gsTUFBSztBQUFBLEVBQ0wscUJBQW9CO0FBQUEsRUFDcEIsUUFBTztBQUFBLEVBQ1AsVUFBUztBQUFBLEVBQ1QsYUFBWTtBQUFBLEVBQ1osT0FBTTtBQUFBLEVBQ04sV0FBVTtBQUFBLEVBQ1YsWUFBVztBQUFBLEVBQ1gsU0FBUTtBQUFBLEVBQ1IsV0FBVTtBQUFBLEVBQ1YsVUFBUztBQUFBLEVBQ1QsY0FBYTtBQUFBLEVBQ2IsUUFBTztBQUFBLEVBQ1AsUUFBTztBQUFBLEVBQ1AsUUFBTztBQUFBLEVBQ1AsU0FBUTtBQUFBLEVBQ1IsbUJBQWtCO0FBQUEsRUFDbEIsY0FBYTtBQUFBLEVBQ2IsUUFBTztBQUFBLEVBQ1AsUUFBTztBQUFBLEVBQ1AsUUFBTztBQUFBLEVBQ1AsU0FBUTtBQUFBLEVBQ1IsU0FBUTtBQUFBLEVBQ1IsT0FBTTtBQUFBLEVBQ04sT0FBTTtBQUFBLEVBQ04sUUFBTztBQUFBLEVBQ1AsY0FBYTtBQUFBLEVBQ2IsUUFBTztBQUFBLEVBQ1AsU0FBUTtBQUFBLEVBQ1IsUUFBTztBQUFBLEVBQ1AsVUFBUztBQUFBLEVBQ1QsWUFBVztBQUFBLEVBQ1gsUUFBTztBQUFBLEVBQ1AsTUFBSztBQUFBLEVBQ0wsVUFBUztBQUFBLEVBQ1QsVUFBUztBQUFBLEVBQ1QsVUFBUztBQUFBLEVBQ1QsYUFBWTtBQUFBLEVBQ1osT0FBTTtBQUFBLEVBQ04sVUFBUztBQUFBLEVBQ1QsTUFBSztBQUFBLEVBQ0wsY0FBYTtBQUFBLEVBQ2IsU0FBUTtBQUFBLEVBQ1IsUUFBTztBQUFBLEVBQ1AsT0FBTTtBQUFBLEVBQ04sVUFBUztBQUFBLEVBQ1QsY0FBYTtBQUFBLEVBQ2IsYUFBWTtBQUFBLEVBQ1osWUFBVztBQUFBLEVBQ1gsU0FBUTtBQUFBLEVBQ1IsY0FBYTtBQUFBLEVBQ2IsTUFBSztBQUFBLEVBQ0wsV0FBVTtBQUFBLEVBQ1YsY0FBYTtBQUFBLEVBQ2IsY0FBYTtBQUFBLEVBQ2IsVUFBUztBQUFBLEVBQ1QsVUFBUztBQUFBLEVBQ1QsY0FBYTtBQUFBLEVBQ2IsWUFBVztBQUFBLEVBQ1gsT0FBTTtBQUFBLEVBQ04sVUFBUztBQUFBLEVBQ1QsUUFBTztBQUFBLEVBQ1AsYUFBWTtBQUFBLEVBQ1osVUFBUztBQUFBLEVBQ1QsY0FBYTtBQUFBLEVBQ2IsUUFBTztBQUFBLEVBQ1AsVUFBUztBQUFBLEVBQ1QsTUFBSztBQUFBLEVBQ0wsVUFBUztBQUFBLEVBQ1QsTUFBSztBQUFBLEVBQ0wsS0FBSTtBQUFBLEVBQ0osT0FBTTtBQUFBLEVBQ04sUUFBTztBQUFBLEVBQ1AsS0FBSTtBQUFBLEVBQ0osVUFBUztBQUFBLEVBQ1QsT0FBTTtBQUFBLEVBQ04sVUFBUztBQUFBLEVBQ1QsT0FBTTtBQUFBLEVBQ04s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QUFBQSxFQUNQO0FBQUEsRUFDQSxnQkFBZ0I7QUFBQSxJQUNmLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxZQUFZO0FBQUEsSUFDWCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsZ0JBQWdCO0FBQUEsSUFDZixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsY0FBYztBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFVBQVU7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxZQUFZO0FBQUEsSUFDWCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ04sUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFNBQVM7QUFBQSxJQUNSLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxNQUFNO0FBQUEsSUFDTCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsS0FBSztBQUFBLElBQ0osUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ04sUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsV0FBVztBQUFBLElBQ1YsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFNBQVM7QUFBQSxJQUNSLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsZ0JBQWdCO0FBQUEsSUFDZixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsV0FBVztBQUFBLElBQ1YsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxPQUFPO0FBQUEsSUFDTixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsS0FBSztBQUFBLElBQ0osUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFNBQVM7QUFBQSxJQUNSLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsaUJBQWlCO0FBQUEsSUFDaEIsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFVBQVU7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxrQkFBa0I7QUFBQSxJQUNqQixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsZ0JBQWdCO0FBQUEsSUFDZixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ04sUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFVBQVU7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxPQUFPO0FBQUEsSUFDTixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ04sUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFVBQVU7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxNQUFNO0FBQUEsSUFDTCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsNEJBQTRCO0FBQUEsSUFDM0IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxXQUFXO0FBQUEsSUFDVixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsZ0NBQWdDO0FBQUEsSUFDL0IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLHNCQUFzQjtBQUFBLElBQ3JCLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxVQUFVO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsWUFBWTtBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsYUFBYTtBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE1BQU07QUFBQSxJQUNMLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxVQUFVO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsV0FBVztBQUFBLElBQ1YsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFVBQVU7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsY0FBYztBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFdBQVc7QUFBQSxJQUNWLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxNQUFNO0FBQUEsSUFDTCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsY0FBYztBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFNBQVM7QUFBQSxJQUNSLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFNBQVM7QUFBQSxJQUNSLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsSUFDTixlQUFlO0FBQUEsTUFDZDtBQUFBLElBQ0Q7QUFBQSxFQUNEO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxjQUFjO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsWUFBWTtBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFdBQVc7QUFBQSxJQUNWLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxPQUFPO0FBQUEsSUFDTixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsSUFDTixlQUFlO0FBQUEsTUFDZDtBQUFBLElBQ0Q7QUFBQSxFQUNEO0FBQUEsRUFDQSxZQUFZO0FBQUEsSUFDWCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsYUFBYTtBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxXQUFXO0FBQUEsSUFDVixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxJQUNOLGVBQWU7QUFBQSxNQUNkO0FBQUEsSUFDRDtBQUFBLEVBQ0Q7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsaUJBQWlCO0FBQUEsSUFDaEIsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLGVBQWU7QUFBQSxJQUNkLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFVBQVU7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxVQUFVO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ04sUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sZUFBZTtBQUFBLE1BQ2Q7QUFBQSxNQUNBO0FBQUEsSUFDRDtBQUFBLEVBQ0Q7QUFBQSxFQUNBLFVBQVU7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxjQUFjO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsWUFBWTtBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLGNBQWM7QUFBQSxJQUNiLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxjQUFjO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsSUFDTixlQUFlO0FBQUEsTUFDZDtBQUFBLElBQ0Q7QUFBQSxFQUNEO0FBQUEsRUFDQSxjQUFjO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLG9CQUFvQjtBQUFBLElBQ25CLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxPQUFPO0FBQUEsSUFDTixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLGNBQWM7QUFBQSxJQUNiLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxVQUFVO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsSUFDTixlQUFlO0FBQUEsTUFDZDtBQUFBLElBQ0Q7QUFBQSxFQUNEO0FBQUEsRUFDQSxxQkFBcUI7QUFBQSxJQUNwQixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsTUFBTTtBQUFBLElBQ0wsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxLQUFLO0FBQUEsSUFDSixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsSUFDTixlQUFlO0FBQUEsTUFDZDtBQUFBLElBQ0Q7QUFBQSxFQUNEO0FBQUEsRUFDQSxVQUFVO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsWUFBWTtBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLGFBQWE7QUFBQSxJQUNaLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxhQUFhO0FBQUEsSUFDWixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxZQUFZO0FBQUEsSUFDWCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsMkJBQTJCO0FBQUEsSUFDMUIsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLG1CQUFtQjtBQUFBLElBQ2xCLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsSUFDTixlQUFlO0FBQUEsTUFDZDtBQUFBLElBQ0Q7QUFBQSxFQUNEO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ04sUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLGVBQWU7QUFBQSxJQUNkLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxlQUFlO0FBQUEsSUFDZCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsRUFDUDtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1IsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLEVBQ1A7QUFBQSxFQUNBLGlCQUFpQjtBQUFBLElBQ2hCLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxFQUNQO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUixRQUFR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QUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxjQUFZLFdBQVVBLEdBQUUsaUJBQWUsV0FBVUEsR0FBRSxhQUFXLFdBQVVBLEdBQUUsYUFBVyxXQUFVQSxHQUFFLFVBQVEsV0FBVUEsR0FBRSxhQUFXLFdBQVVBLEdBQUUsZUFBYSxXQUFVQSxHQUFFLGdCQUFjLFdBQVVBLEdBQUUsZ0JBQWMsV0FBVUEsR0FBRSxnQkFBYyxXQUFVQSxHQUFFLGdCQUFjLFdBQVVBLEdBQUUsYUFBVyxXQUFVQSxHQUFFLFdBQVMsV0FBVUEsR0FBRSxjQUFZLFdBQVVBLEdBQUUsVUFBUSxXQUFVQSxHQUFFLFVBQVEsV0FBVUEsR0FBRSxhQUFXLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLGNBQVksV0FBVUEsR0FBRSxjQUFZLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLGFBQVcsV0FBVUEsR0FBRSxPQUFLLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLGNBQVksV0FBVUEsR0FBRSxPQUFLLFdBQVVBLEdBQUUsV0FBUyxXQUFVQSxHQUFFLFVBQVEsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsU0FBTyxXQUFVQSxHQUFFLFFBQU0sV0FBVUEsR0FBRSxRQUFNLFdBQVVBLEdBQUUsV0FBUyxXQUFVQSxHQUFFLGdCQUFjLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLGVBQWEsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsYUFBVyxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSx1QkFBcUIsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsYUFBVyxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsY0FBWSxXQUFVQSxHQUFFLGdCQUFjLFdBQVVBLEdBQUUsZUFBYSxXQUFVQSxHQUFFLGlCQUFlLFdBQVVBLEdBQUUsaUJBQWUsV0FBVUEsR0FBRSxpQkFBZSxXQUFVQSxHQUFFLGNBQVksV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsUUFBTSxXQUFVQSxHQUFFLFVBQVEsV0FBVUEsR0FB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QUFBTSxRQUFBRixLQUFFLEVBQUUsTUFBSUUsRUFBQztBQUFFO0FBQUEsTUFBTSxLQUFLLEVBQUU7QUFBUyxRQUFBRixLQUFFLEVBQUUsTUFBR0UsRUFBQztBQUFFO0FBQUEsTUFBTSxLQUFLLEVBQUU7QUFBQSxNQUFRO0FBQVEsUUFBQUYsS0FBRUU7QUFBQSxJQUFDO0FBQUEsRUFBQztBQUFDLFVBQU9GLEtBQUUsT0FBS0EsS0FBRSxPQUFLQSxNQUFHLE1BQUksS0FBSyxNQUFNQSxLQUFFLEdBQUcsSUFBR0E7QUFBQztBQUF6cEMsSUFBMnBDLElBQUUsU0FBU0EsSUFBRUMsSUFBRTtBQUFDLE1BQUlDO0FBQUUsVUFBT0QsSUFBRTtBQUFBLElBQUMsS0FBSyxFQUFFO0FBQVEsTUFBQUMsS0FBRSxFQUFFLFNBQVNGLElBQUU7QUFBQyxlQUFPQSxLQUFFLEtBQUssS0FBRztBQUFBLE1BQUcsRUFBRUEsRUFBQyxDQUFDO0FBQUU7QUFBQSxJQUFNLEtBQUssRUFBRTtBQUFNLE1BQUFFLEtBQUUsRUFBRUYsS0FBRSxHQUFHO0FBQUU7QUFBQSxJQUFNLEtBQUssRUFBRTtBQUFTLE1BQUFFLEtBQUUsRUFBRSxLQUFHLElBQUVGLEVBQUM7QUFBRTtBQUFBLElBQU0sS0FBSyxFQUFFO0FBQUEsSUFBUSxLQUFLLEVBQUU7QUFBQSxJQUFLO0FBQVEsTUFBQUUsS0FBRUY7QUFBQSxFQUFDO0FBQUMsU0FBT0U7QUFBQztBQUF6MkMsSUFBMjJDLElBQUUsU0FBU0YsSUFBRTtBQUFDLFdBQVFDLEtBQUUsQ0FBQyxHQUFFQyxLQUFFLEdBQUVBLEtBQUUsVUFBVSxRQUFPQTtBQUFJLElBQUFELEdBQUVDLEtBQUUsQ0FBQyxJQUFFLFVBQVVBLEVBQUM7QUFBRSxXQUFRQyxLQUFFLENBQUMsR0FBRUMsS0FBRSxDQUFDLEdBQUVDLEtBQUUsQ0FBQyxHQUFFQyxLQUFFLENBQUMsR0FBRUMsS0FBRSxDQUFDLEdBQUVDLEtBQUUsT0FBTyxPQUFPLENBQUMsR0FBRUMsS0FBRSxPQUFPLE9BQU8sQ0FBQyxHQUFFQyxLQUFFLE9BQU8s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LElBQUVDLEVBQUM7QUFBRSxTQUFPLEVBQUVDLElBQUUsR0FBRyxLQUFHLE9BQU9BLEdBQUUsR0FBRUE7QUFBQyxHQUFFLEVBQUUsT0FBSyxTQUFTRixJQUFFQyxJQUFFO0FBQUMsTUFBSUMsS0FBRSxHQUFHLElBQUlGLElBQUVDLEVBQUM7QUFBRSxTQUFPQyxHQUFFLElBQUUsRUFBRUYsSUFBRSxHQUFHLElBQUUsRUFBRUEsR0FBRSxDQUFDLElBQUUsR0FBRUU7QUFBQyxHQUFFLEVBQUUsRUFBRSxHQUFHLElBQUUsU0FBU0YsSUFBRUMsSUFBRTtBQUFDLE1BQUlDLEtBQUUsRUFBRUYsR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsQ0FBQztBQUFFLFNBQU8sT0FBT0UsR0FBRSxHQUFFLEdBQUdBLElBQUVELEVBQUM7QUFBQyxHQUFFLEVBQUUsT0FBSyxTQUFTRCxJQUFFQyxJQUFFO0FBQUMsTUFBSUMsS0FBRSxHQUFHLElBQUlGLElBQUVDLEVBQUM7QUFBRSxTQUFPQyxHQUFFLElBQUUsRUFBRUYsSUFBRSxHQUFHLElBQUUsRUFBRUEsR0FBRSxHQUFFQyxFQUFDLElBQUUsR0FBRUM7QUFBQyxHQUFFLEVBQUUsRUFBRSxJQUFJLElBQUUsU0FBU0YsSUFBRUMsSUFBRTtBQUFDLFNBQU8sR0FBRyxFQUFFRCxHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxDQUFDLEdBQUVDLEVBQUM7QUFBQyxHQUFFLEVBQUUsUUFBTSxTQUFTRCxJQUFFQyxJQUFFO0FBQUMsTUFBSUMsS0FBRSxHQUFHLEtBQUtGLElBQUVDLEVBQUM7QUFBRSxTQUFPQyxHQUFFLElBQUUsRUFBRUYsSUFBRSxHQUFHLElBQUUsRUFBRUEsR0FBRSxHQUFFQyxFQUFDLElBQUUsR0FBRUM7QUFBQyxHQUFFO0FBQTV2UixJQUErdlIsS0FBRyxTQUFTRCxJQUFFRSxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsTUFBSXVCLEtBQUUsR0FBRzNCLEVBQUMsR0FBRUssS0FBRSxZQUFVLE9BQU9MLElBQUVNLEtBQUUsR0FBR04sSUFBRTJCLEVBQUMsR0FB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RUssRUFBQztBQUFBLElBQUUsS0FBSyxFQUFFO0FBQUksYUFBT0QsS0FBRSxLQUFLLEtBQUtELElBQUVMLElBQUVFLElBQUVLLElBQUVKLEVBQUMsSUFBRSxLQUFLLElBQUlFLElBQUVMLElBQUVFLElBQUVLLElBQUVKLEVBQUM7QUFBQSxJQUFFLEtBQUssRUFBRTtBQUFJLGFBQU9HLEtBQUUsS0FBSyxLQUFLRCxJQUFFTCxJQUFFRSxJQUFFSyxJQUFFSixFQUFDLElBQUUsS0FBSyxJQUFJRSxJQUFFTCxJQUFFRSxJQUFFSyxJQUFFSixFQUFDO0FBQUEsRUFBQztBQUFDLEVBQUMsR0FBRyxFQUFFLEdBQUcsSUFBRSxTQUFTSixJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsU0FBT0YsR0FBRUQsSUFBRUUsRUFBQyxFQUFFLElBQUssU0FBU0YsSUFBRTtBQUFDLFdBQU9HLEtBQUUsRUFBRSxJQUFJLEVBQUVILEdBQUUsR0FBRUEsR0FBRSxHQUFFQSxHQUFFLENBQUMsQ0FBQyxJQUFFLEdBQUcsSUFBSSxFQUFFQSxHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxDQUFDLENBQUM7QUFBQSxFQUFDLENBQUU7QUFBQyxHQUFFLEVBQUUsT0FBSyxTQUFTQyxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsU0FBT0YsR0FBRUQsSUFBRUUsRUFBQyxFQUFFLElBQUssU0FBU0YsSUFBRTtBQUFDLFdBQU9HLEtBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUUsRUFBRUgsR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsQ0FBQyxDQUFDLEdBQUUsRUFBQyxHQUFFLE1BQUksR0FBR0EsR0FBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUUsRUFBRUEsR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsQ0FBQyxDQUFDLEdBQUUsRUFBQyxHQUFFLEdBQUdBLEdBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQztBQUFBLEVBQUMsQ0FBRTtBQUFDLEdBQUUsRUFBRSxFQUFFLEdBQUcsSUFBRSxTQUFTRCxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsU0FBT0gsR0FBRUQsSUFBRUUsRUFBQyxFQUFFLElBQUssU0FBU0YsSUFBRTtBQUFDLFdBQU9HLEtBQUUsRUFBRSxJQUFJLEVBQUVILEdBQUUsR0FBRUEsR0FBRSxHQUFFQSxHQUFFLENBQUMsR0FBRUksRUFBQyxJQUFFLEdBQUcsSUFBSSxFQUFFSixHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxDQUFDLEdBQUVJLEdBQUUsUUFBUTtBQUFBLEVBQUMsQ0FBRTtBQUFDLEdBQUUsRUFBRSxPQUFLLFNBQVNILElBQUVDLElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxTQUFPSCxHQUFFRCxJQUFFRSxFQUFDLEVBQUUsSUFBSyxTQUFTRixJQUFFO0FBQUMsV0FBT0csS0FBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRSxFQUFFSCxHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxDQUFDLENBQUMsR0FBRSxFQUFDLEdBQUUsR0FBR0EsR0FBRSxDQUFDLEVBQUMsQ0FBQyxHQUFFSSxFQUFDLElBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUUsRUFBRUosR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsQ0FBQyxDQUFDLEdBQUUsRUFBQyxHQUFFLEdBQUdBLEdBQUUsQ0FBQyxFQUFDLENBQUMsR0FBRUksR0FBRSxRQUFRO0FBQUEsRUFBQyxDQUFFO0FBQUMsR0FBRSxFQUFFLEVBQUUsR0FBRyxJQUFFLFNBQVNMLElBQUVDLElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxTQUFPSCxHQUFFRCxJQUFFRSxFQUFDLEVBQUUsSUFBSyxTQUFTRixJQUFFO0FBQUMsV0FBT0csS0FBRSxFQUFFLElBQUksRUFBQyxHQUFFSCxHQUFFLEdBQUUsR0FBRUEsR0FBRSxHQUFFLEdBQUVBLEdBQUUsRUFBQyxHQUFFSSxFQUFDLElBQUUsR0FBRyxJQUFJLEVBQUVKLEdBQUUsR0FBRUEsR0FBRSxHQUFF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SUFBRSxHQUFFMEIsS0FBRXZCLEtBQUVILEdBQUMsR0FBRyxJQUFFSyxHQUFFO0FBQUEsRUFBQztBQUFDLFNBQU0sRUFBQyxHQUFFLEVBQUVWLEdBQUUsQ0FBQyxHQUFFLEdBQUUsRUFBRUEsR0FBRSxDQUFDLEdBQUUsR0FBRSxFQUFFQSxHQUFFLENBQUMsR0FBRSxHQUFFLEVBQUVBLEdBQUUsR0FBRSxHQUFFLENBQUMsRUFBQztBQUFDLEVBQUMsR0FBRyxFQUFFLEdBQUcsSUFBRSxTQUFTSCxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsTUFBSUMsS0FBRSxLQUFLLElBQUlILElBQUVDLEVBQUM7QUFBRSxTQUFPLE9BQU9FLEdBQUUsR0FBRUQsS0FBRSxFQUFFLElBQUlDLEVBQUMsSUFBRSxHQUFHLElBQUlBLEVBQUM7QUFBQyxHQUFFLEVBQUUsT0FBSyxTQUFTSCxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsTUFBSUMsS0FBRSxLQUFLLElBQUlILElBQUVDLEVBQUM7QUFBRSxTQUFPRSxHQUFFLElBQUVELEtBQUUsTUFBSSxHQUFHQyxHQUFFLENBQUMsSUFBRSxHQUFHQSxHQUFFLENBQUMsR0FBRUQsS0FBRSxFQUFFLElBQUlDLEVBQUMsSUFBRSxHQUFHLEtBQUtBLEVBQUM7QUFBQyxHQUFFLEVBQUUsRUFBRSxHQUFHLElBQUUsU0FBU0gsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLE1BQUlDLEtBQUUsS0FBSyxJQUFJSixJQUFFQyxFQUFDO0FBQUUsU0FBTyxPQUFPRyxHQUFFLEdBQUVGLEtBQUUsRUFBRSxJQUFJRSxJQUFFRCxFQUFDLElBQUUsR0FBRyxJQUFJQyxJQUFFRCxHQUFFLFFBQVE7QUFBQyxHQUFFLEVBQUUsT0FBSyxTQUFTSCxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsTUFBSUMsS0FBRSxLQUFLLElBQUlKLElBQUVDLEVBQUM7QUFBRSxTQUFPQyxLQUFFLEVBQUUsSUFBSUUsSUFBRUQsRUFBQyxJQUFFLEdBQUcsS0FBS0MsSUFBRUQsR0FBRSxRQUFRO0FBQUMsR0FBRSxFQUFFLEVB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QUFBQSxFQUFDLEdBQUVBLEdBQUUsVUFBVSxtQkFBaUIsV0FBVTtBQUFDLFdBQU8sS0FBSyxVQUFVLEdBQUUsS0FBSyxXQUFXLEdBQUU7QUFBQSxFQUFJLEdBQUVBLEdBQUUsVUFBVSxtQkFBaUIsV0FBVTtBQUFDLFdBQU8sS0FBSyxVQUFVLEdBQUUsS0FBSyxXQUFXLEdBQUU7QUFBQSxFQUFJLEdBQUVBLEdBQUUsVUFBVSxrQkFBZ0IsV0FBVTtBQUFDLFdBQU8sS0FBSyxrQkFBa0IsR0FBRSxLQUFLLFVBQVUsR0FBRTtBQUFBLEVBQUksR0FBRUEsR0FBRSxVQUFVLGFBQVcsU0FBU0QsSUFBRTtBQUFDLFdBQU8sV0FBU0EsT0FBSUEsS0FBRSxDQUFDLElBQUcsS0FBSyxXQUFTLEVBQUUsRUFBRSxDQUFDLEdBQUUsS0FBSyxRQUFRLEdBQUVBLEVBQUMsR0FBRTtBQUFBLEVBQUksR0FBRUMsR0FBRSxVQUFVLE9BQUssU0FBU0YsSUFBRTtBQUFDLFdBQU8sS0FBSyxJQUFJLElBQUUsRUFBRUEsRUFBQyxHQUFFLEtBQUssaUJBQWlCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssaUJBQWlCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssaUJBQWlCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssaUJBQWlCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssaUJBQWlCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssaUJBQWlCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsQ0FBQyxHQUFFO0FBQUEsRUFBSSxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLEtBQUssSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssZ0JBQWdCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLEtBQUssSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssZ0JBQWdCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLEtBQUssSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssZ0JBQWdCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLEtBQUssSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssZ0JBQWdCO0FBQUEsRUFBQyxHQUFFLE9BQU8sZUFBZUUsR0FBRSxXQUFVLFdBQVUsRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEtBQUs7QUFBQSxFQUFRLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsS0FBSSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxLQUFJLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssSUFBSSxHQUFFLEtBQUssUUFBUSxRQUFRO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLEtBQUksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsS0FBSyxJQUFJLEdBQUUsS0FBSyxRQUFRLFFBQVE7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsS0FBSSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxLQUFJLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssSUFBSSxHQUFFLEtBQUssUUFBUSxRQUFRO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLEtBQUksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsS0FBSyxJQUFJLEdBQUUsS0FBSyxRQUFRLFFBQVE7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsS0FBSSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxLQUFJLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssS0FBSyxHQUFFLEtBQUssUUFBUSxRQUFRO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLEtBQUksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsS0FBSyxLQUFLLEdBQUUsS0FBSyxRQUFRLFFBQVE7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsS0FBSSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxLQUFLLEtBQUssR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxLQUFJLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssS0FBSyxHQUFFLEtBQUssUUFBUSxRQUFRO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLGFBQVksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEdBQUcsSUFBSSxLQUFLLEdBQUc7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsY0FBYSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sR0FBRyxLQUFLLEtBQUssR0FBRztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxhQUFZLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTSxFQUFDLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxFQUFDO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLGNBQWEsRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUUsS0FBSyxTQUFTLEdBQUUsRUFBQyxHQUFFLEtBQUssRUFBQyxDQUFDO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLGFBQVksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFNLEVBQUMsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEVBQUM7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsY0FBYSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxFQUFFLENBQUMsR0FBRSxLQUFLLFNBQVMsR0FBRSxFQUFDLEdBQUUsS0FBSyxFQUFDLENBQUM7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsY0FBYSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU0sRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxlQUFjLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFFLEtBQUssVUFBVSxHQUFFLEVBQUMsR0FBRSxLQUFLLEVBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxPQUFNLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLElBQUksRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxDQUFDO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLFFBQU8sRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsSUFBSSxFQUFDLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsTUFBSSxLQUFLLEVBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxPQUFNLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLElBQUksRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxRQUFPLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLElBQUksRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxPQUFNLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLElBQUksRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxRQUFPLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLElBQUksRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxRQUFPLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxTQUFRLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRUEsR0FBRSxjQUFZLFNBQVNGLElBQUU7QUFBQyxRQUFJQyxLQUFFLEdBQUdELEVBQUM7QUFBRSxXQUFPLEdBQUdBLElBQUVDLElBQUUsR0FBRSxHQUFHLEdBQUc7QUFBQSxFQUFDLEdBQUVDLEdBQUUsUUFBTSxTQUFTRixJQUFFO0FBQUMsV0FBTyxFQUFFLElBQUlFLEdBQUUsWUFBWUYsRUFBQyxDQUFDO0FBQUEsRUFBQyxHQUFFRSxHQUFFLGVBQWEsU0FBU0YsSUFBRTtBQUFDLFFBQUlDLEtBQUUsR0FBR0QsRUFBQztBQUFFLFdBQU8sR0FBR0EsSUFBRUMsSUFBRSxHQUFFLEdBQUcsSUFBSTtBQUFBLEVBQUMsR0FBRUMsR0FBRSxTQUFPLFNBQVNGLElBQUU7QUFBQyxXQUFPLEVBQUUsSUFBSUUsR0FBRSxhQUFhRixFQUFDLENBQUM7QUFBQSxFQUFDLEdBQUVFLEdBQUUsY0FBWSxTQUFTRixJQUFFQyxJQUFFO0FBQUMsZUFBU0EsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxHQUFHRixFQUFDO0FBQUUsV0FBTyxHQUFHQSxJQUFFRSxJQUFFRCxHQUFFLFVBQVMsR0FBRyxHQUFHO0FBQUEsRUFBQyxHQUFFQyxHQUFFLFFBQU0sU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQyxHQUFFRyxLQUFFLEVBQUVGLElBQUVELEVBQUMsR0FBRUksS0FBRSxHQUFHSixJQUFFRSxJQUFFLEdBQUUsR0FBRyxHQUFHO0FBQUUsV0FBTyxFQUFFLElBQUlFLElBQUVELEVBQUM7QUFBQSxFQUFDLEdBQUVELEdBQUUsZUFBYSxTQUFTRixJQUFFQyxJQUFFO0FBQUMsZUFBU0EsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxHQUFHRixFQUFDO0FBQUUsV0FBTyxHQUFHQSxJQUFFRSxJQUFFRCxHQUFFLFVBQVMsR0FBRyxJQUFJO0FBQUEsRUFBQyxHQUFFQyxHQUFFLFNBQU8sU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQyxHQUFFRyxLQUFFLEVBQUVGLElBQUVELEVBQUMsR0FBRUksS0FBRSxHQUFHSixJQUFFRSxJQUFFLEdBQUUsR0FBRyxJQUFJO0FBQUUsV0FBTyxFQUFFLElBQUlFLElBQUVELEVBQUM7QUFBQSxFQUFDLEdBQUVELEdBQUUsY0FBWSxTQUFTRixJQUFFQyxJQUFFO0FBQUMsZUFBU0EsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxHQUFHRixFQUFDO0FBQUUsV0FBTyxHQUFHQSxJQUFFRSxJQUFFRCxHQUFFLFVBQVMsR0FBRyxHQUFHO0FBQUEsRUFBQyxHQUFFQyxHQUFFLFFBQU0sU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQyxHQUFFRyxLQUFFLEVBQUVGLElBQUVELEVBQUMsR0FBRUksS0FBRSxHQUFHSixJQUFFRSxJQUFFLEdBQUUsR0FBRyxHQUFHO0FBQUUsV0FBTyxFQUFFLElBQUlFLElBQUVELEVBQUM7QUFBQSxFQUFDLEdBQUVELEdBQUUsZUFBYSxTQUFTRixJQUFFQyxJQUFFO0FBQUMsZUFBU0EsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxHQUFHRixFQUFDO0FBQUUsV0FBTyxHQUFHQSxJQUFFRSxJQUFFRCxHQUFFLFVBQVMsR0FBRyxJQUFJO0FBQUEsRUFBQyxHQUFFQyxHQUFFLFNBQU8sU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQyxHQUFFRyxLQUFFLEVBQUVGLElBQUVELEVBQUMsR0FBRUksS0FBRSxHQUFHSixJQUFFRSxJQUFFLEdBQUUsR0FBRyxJQUFJO0FBQUUsV0FBTyxFQUFFLElBQUlFLElBQUVELEVBQUM7QUFBQSxFQUFDLEdBQUVELEdBQUUsZUFBYSxTQUFTRixJQUFFQyxJQUFFO0FBQUMsZUFBU0EsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxHQUFHRixFQUFDO0FBQUUsV0FBTyxHQUFHQSxJQUFFRSxJQUFFRCxHQUFFLFVBQVMsR0FBRyxJQUFJO0FBQUEsRUFBQyxHQUFFQyxHQUFFLFNBQU8sU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQyxHQUFFRyxLQUFFLEVBQUVGLElBQUVELEVBQUMsR0FBRUksS0FBRSxHQUFHSixJQUFFRSxJQUFFLEdBQUUsR0FBRyxJQUFJO0FBQUUsV0FBTyxFQUFFLEtBQUtFLElBQUVELEVBQUM7QUFBQSxFQUFDLEdBQUVELEdBQUUsZ0JBQWMsU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQztBQUFFLFdBQU8sR0FBR0EsSUFBRUUsSUFBRUQsR0FBRSxVQUFTLEdBQUcsS0FBSztBQUFBLEVBQUMsR0FBRUMsR0FBRSxVQUFRLFNBQVNGLElBQUVDLElBQUU7QUFBQyxlQUFTQSxPQUFJQSxLQUFFLENBQUM7QUFBRyxRQUFJQyxLQUFFLEdBQUdGLEVBQUMsR0FBRUcsS0FBRSxFQUFFRixJQUFFRCxFQUFDLEdBQUVJLEtBQUUsR0FBR0osSUFBRUUsSUFBRSxHQUFFLEdBQUcsS0FBSztBQUFFLFdBQU8sRUFBRSxLQUFLRSxJQUFFRCxFQUFDO0FBQUEsRUFBQyxHQUFFRCxHQUFFLG9CQUFrQixTQUFTRixJQUFFQyxJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTQSxPQUFJQSxLQUFFLElBQUcsR0FBR0YsSUFBRUMsSUFBRUMsSUFBRSxHQUFFLEdBQUcsR0FBRztBQUFBLEVBQUMsR0FBRUEsR0FBRSxjQUFZLFNBQVNGLElBQUVDLElBQUVFLElBQUU7QUFBQyxXQUFPLFdBQVNBLE9BQUlBLEtBQUUsSUFBR0QsR0FBRSxrQkFBa0JGLElBQUVDLElBQUVFLEVBQUMsRUFBRSxJQUFLLFNBQVNILElBQUU7QUFBQyxhQUFPLEVBQUUsSUFBSUEsRUFBQztBQUFBLElBQUMsQ0FBRTtBQUFBLEVBQUMsR0FBRUUsR0FBRSxxQkFBbUIsU0FBU0YsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFdBQU8sV0FBU0EsT0FBSUEsS0FBRSxJQUFHLEdBQUdGLElBQUVDLElBQUVDLElBQUUsR0FBRSxHQUFHLElBQUk7QUFBQSxFQUFDLEdBQUVBLEdBQUUsZUFBYSxTQUFTRixJQUFFQyxJQUFFRSxJQUFFO0FBQUMsV0FBTyxXQUFTQSxPQUFJQSxLQUFFLElBQUdELEdBQUUsbUJBQW1CRixJQUFFQyxJQUFFRSxFQUFDLEVBQUUsSUFBSyxTQUFTSCxJQUFFO0FBQUMsYUFBTyxFQUFFLElBQUlBLEVBQUM7QUFBQSxJQUFDLENBQUU7QUFBQSxFQUFDLEdBQUVFLEdBQUUsb0JBQWtCLFNBQVNGLElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsSUFBRyxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHSCxJQUFFQyxJQUFFQyxJQUFFQyxHQUFFLFVBQVMsR0FBRyxHQUFHO0FBQUEsRUFBQyxHQUFFRCxHQUFFLGNBQVksU0FBU0YsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFdBQU8sV0FBU0QsT0FBSUEsS0FBRSxJQUFHLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUdILElBQUVDLElBQUVDLElBQUUsR0FBRSxHQUFHLEdBQUcsRUFBRSxJQUFLLFNBQVNBLElBQUU7QUFBQyxhQUFPLEVBQUUsSUFBSUEsSUFBRSxFQUFFQyxJQUFFSCxJQUFFQyxFQUFDLENBQUM7QUFBQSxJQUFDLENBQUU7QUFBQSxFQUFDLEdBQUVDLEdBQUUscUJBQW1CLFNBQVNGLElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsSUFBRyxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHSCxJQUFFQyxJQUFFQyxJQUFFQyxHQUFFLFVBQVMsR0FBRyxJQUFJO0FBQUEsRUFBQyxHQUFFRCxHQUFFLGVBQWEsU0FBU0YsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFdBQU8sV0FBU0QsT0FBSUEsS0FBRSxJQUFHLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUdILElBQUVDLElBQUVDLElBQUUsR0FBRSxHQUFHLElBQUksRUFBRSxJQUFLLFNBQVNBLElBQUU7QUFBQyxhQUFPLEVBQUUsSUFBSUEsSUFBRSxFQUFFQyxJQUFFSCxJQUFFQyxFQUFDLENBQUM7QUFBQSxJQUFDLENBQUU7QUFBQSxFQUFDLEdBQUVDLEdBQUUsb0JBQWtCLFNBQVNGLElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsSUFBRyxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHSCxJQUFFQyxJQUFFQyxJQUFFQyxHQUFFLFVBQVMsR0FBRyxHQUFHO0FBQUEsRUFBQyxHQUFFRCxHQUFFLGNBQVksU0FBU0YsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLGVBQVNELE9BQUlBLEtBQUUsSUFBRyxXQUFTQyxPQUFJQSxLQUFFLENBQUM7QUFBRyxRQUFJQyxLQUFFLEVBQUVELElBQUVILElBQUVDLEVBQUM7QUFBRSxXQUFPLEdBQUdELElBQUVDLElBQUVDLElBQUUsR0FBRSxHQUFHLEdBQUcsRUFBRSxJQUFLLFNBQVNGLElBQUU7QUFBQyxhQUFPLEVBQUUsSUFBSUEsSUFBRUksRUFBQztBQUFBLElBQUMsQ0FBRTtBQUFBLEVBQUMsR0FBRUYsR0FBRSxxQkFBbUIsU0FBU0YsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFdBQU8sV0FBU0QsT0FBSUEsS0FBRSxJQUFHLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUdILElBQUVDLElBQUVDLElBQUVDLEdBQUUsVUFBUyxHQUFHLElBQUk7QUFBQSxFQUFDLEdBQUVELEdBQUUsZUFBYSxTQUFTRixJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsZUFBU0QsT0FBSUEsS0FBRSxJQUFHLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsRUFBRUQsSUFBRUgsSUFBRUMsRUFBQztBQUFFLFdBQU8sR0FBR0QsSUFBRUMsSUFBRUMsSUFBRSxHQUFFLEdBQUcsSUFBSSxFQUFFLElBQUssU0FBU0YsSUFBRTtBQUFDLGFBQU8sRUFBRSxJQUFJQSxJQUFFSSxFQUFDO0FBQUEsSUFBQyxDQUFFO0FBQUEsRUFBQyxHQUFFRixHQUFFLGtCQUFnQixTQUFTRixJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTQSxPQUFJQSxLQUFFLEVBQUUsV0FBVSxHQUFHLElBQUlELElBQUVDLElBQUUsS0FBRTtBQUFBLEVBQUMsR0FBRUMsR0FBRSxZQUFVLFNBQVNGLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNBLE9BQUlBLEtBQUUsRUFBRSxXQUFVLEdBQUcsSUFBSUQsSUFBRUMsSUFBRSxJQUFFO0FBQUEsRUFBQyxHQUFFQyxHQUFFLG1CQUFpQixTQUFTRixJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTQSxPQUFJQSxLQUFFLEVBQUUsV0FBVSxHQUFHLEtBQUtELElBQUVDLElBQUUsS0FBRTtBQUFBLEVBQUMsR0FBRUMsR0FBRSxhQUFXLFNBQVNGLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNBLE9BQUlBLEtBQUUsRUFBRSxXQUFVLEdBQUcsS0FBS0QsSUFBRUMsSUFBRSxJQUFFO0FBQUEsRUFBQyxHQUFFQyxHQUFFLGtCQUFnQixTQUFTRixJQUFFRSxJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTRCxPQUFJQSxLQUFFLEVBQUUsV0FBVSxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHLElBQUlILElBQUVFLElBQUUsT0FBRyxFQUFFLE1BQU0sUUFBTyxFQUFFLENBQUNDLEVBQUMsR0FBRUgsSUFBRSxLQUFFLENBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRUUsR0FBRSxZQUFVLFNBQVNGLElBQUVFLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsRUFBRSxXQUFVLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUcsSUFBSUgsSUFBRUUsSUFBRSxNQUFHLEVBQUUsTUFBTSxRQUFPLEVBQUUsQ0FBQ0MsRUFBQyxHQUFFSCxJQUFFLEtBQUUsQ0FBQyxDQUFDO0FBQUEsRUFBQyxHQUFFRSxHQUFFLG1CQUFpQixTQUFTRixJQUFFRSxJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTRCxPQUFJQSxLQUFFLEVBQUUsV0FBVSxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHLEtBQUtILElBQUVFLElBQUUsT0FBRyxFQUFFLE1BQU0sUUFBTyxFQUFFLENBQUNDLEVBQUMsR0FBRUgsSUFBRSxLQUFFLENBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRUUsR0FBRSxhQUFXLFNBQVNGLElBQUVFLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsRUFBRSxXQUFVLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUcsS0FBS0gsSUFBRUUsSUFBRSxNQUFHLEVBQUUsTUFBTSxRQUFPLEVBQUUsQ0FBQ0MsRUFBQyxHQUFFSCxJQUFFLEtBQUUsQ0FBQyxDQUFDO0FBQUEsRUFBQyxHQUFFRSxHQUFFLGtCQUFnQixTQUFTRixJQUFFRSxJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTRCxPQUFJQSxLQUFFLEVBQUUsV0FBVSxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHLElBQUlILElBQUVFLElBQUUsT0FBRyxFQUFF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QUFNO0FBQUEsSUFDTixTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxpQkFBaUI7QUFBQSxJQUNqQixVQUFVO0FBQUEsSUFDVixjQUFjO0FBQUEsSUFDZCxRQUFRLFNBQVM7QUFBQSxJQUNqQixhQUFhO0FBQUEsSUFDYixNQUFNO0FBQUEsSUFDTixVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixTQUFTO0FBQUEsSUFDVCxPQUFPO0FBQUEsSUFDUCxLQUFLO0FBQUEsSUFDTCxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixXQUFXO0FBQUEsSUFDWCxTQUFTO0FBQUEsSUFDVCxjQUFjO0FBQUEsSUFDZCxlQUFlO0FBQUEsSUFDZixNQUFNO0FBQUEsSUFDTixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixnQkFBZ0I7QUFBQSxJQUNoQixZQUFZO0FBQUEsSUFDWixTQUFTO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsSUFDTixNQUFNO0FBQUEsSUFDTixVQUFVO0FBQUEsSUFDVixTQUFTO0FBQUEsSUFDVCxXQUFXO0FBQUEsSUFDWCxJQUFJO0FBQUEsSUFDSixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixPQUFPO0FBQUEsSUFDUCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxJQUFJO0FBQUEsSUFDSixPQUFPO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixVQUFVO0FBQUEsSUFDVixTQUFTO0FBQUEsSUFDVCxXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixNQUFNO0FBQUEsSUFDTixPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUEsSUFDTixVQUFVO0FBQUEsSUFDVixNQUFNO0FBQUEsSUFDTixTQUFTO0FBQUEsSUFDVCxNQUFNO0FBQUEsSUFDTixLQUFLO0FBQUEsSUFDTCxVQUFVO0FBQUEsSUFDVixLQUFLO0FBQUEsSUFDTCxXQUFXO0FBQUEsSUFDWCxPQUFPO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixLQUFLO0FBQUEsSUFDTCxXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUEsSUFDTixPQUFPO0FBQUEsSUFDUCxVQUFVO0FBQUEsSUFDVixZQUFZO0FBQUEsSUFDWixTQUFTO0FBQUEsSUFDVCxjQUFjO0FBQUEsSUFDZCxZQUFZO0FBQUEsSUFDWixlQUFlO0FBQUEsSUFDZixlQUFlO0FBQUEsSUFDZixnQkFBZ0I7QUFBQSxJQUNoQixnQkFBZ0I7QUFBQSxJQUNoQixRQUFRO0FBQUEsSUFDUixVQUFVO0FBQUEsSUFDVixXQUFXO0FBQUEsSUFDWCxrQkFBa0I7QUFBQSxJQUNsQixVQUFVO0FBQUEsSUFDVixTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxlQUFlO0FBQUEsSUFDZixlQUFlO0FBQUEsSUFDZixtQkFBbUI7QUFBQSxJQUNuQixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsSUFDYixPQUFPO0FBQUEsSUFDUCxZQUFZO0FBQUEsSUFDWixRQUFRO0FBQUEsSUFDUixXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixrQkFBa0I7QUFBQSxJQUNsQixXQUFXO0FBQUEsSUFDWCxTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxZQUFZO0FBQUEsSUFDWixjQUFjO0FBQUEsSUFDZCxTQUFTO0FBQUEsSUFDVCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxZQUFZO0FBQUEsSUFDWixTQUFTO0FBQUEsSUFDVCxrQkFBa0I7QUFBQSxJQUNsQixRQUFRO0FBQUEsSUFDUixjQUFjO0FBQUEsSUFDZCxrQkFBa0I7QUFBQSxJQUNsQixXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYixXQUFXO0FBQUEsSUFDWCxnQkFBZ0I7QUFBQSxJQUNoQixhQUFhO0FBQUEsSUFDYixjQUFjO0FBQUEsSUFDZCxjQUFjO0FBQUEsSUFDZCxhQUFhO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixZQUFZO0FBQUEsSUFDWixZQUFZO0FBQUEsSUFDWixTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixXQUFXO0FBQUEsSUFDWCxZQUFZO0FBQUEsSUFDWixZQUFZO0FBQUEsSUFDWixjQUFjO0FBQUEsSUFDZCxvQkFBb0I7QUFBQSxJQUNwQixTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixhQUFhO0FBQUEsSUFDYiwyQkFBMkI7QUFBQSxJQUMzQixVQUFVO0FBQUEsSUFDVixXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixjQUFjO0FBQUEsSUFDZCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixXQUFXO0FBQUEsSUFDWCxjQUFjO0FBQUEsSUFDZCxVQUFVO0FBQUEsSUFDVixzQkFBc0I7QUFBQSxJQUN0QixVQUFVO0FBQUEsSUFDVixnQkFBZ0I7QUFBQSxJQUNoQixXQUFXO0FBQUEsSUFDWCxTQUFTO0FBQUEsSUFDVCxNQUFNO0FBQUEsSUFDTixTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxNQUFNO0FBQUEsSUFDTixhQUFhO0FBQUEsSUFDYixhQUFhO0FBQUEsSUFDYixTQUFTO0FBQUEsSUFDVCxlQUFlO0FBQUEsSUFDZixxQkFBcUI7QUFBQSxJQUNyQixRQUFRO0FBQUEsSUFDUixTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsSUFDVixnQkFBZ0I7QUFBQSxJQUNoQixLQUFLO0FBQUEsSUFDTCxVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixNQUFNO0FBQUEsSUFDTixTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxPQUFPO0FB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LElBQ2YsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsVUFBVTtBQUFBLElBQ1Ysb0JBQW9CO0FBQUEsSUFDcEIsMkJBQTJCO0FBQUEsSUFDM0IsY0FBYztBQUFBLElBQ2QsZ0JBQWdCO0FBQUEsSUFDaEIsYUFBYTtBQUFBLElBQ2IsVUFBVTtBQUFBLElBQ1Ysa0JBQWtCO0FBQUEsSUFDbEIsa0JBQWtCO0FBQUEsSUFDbEIsYUFBYTtBQUFBLElBQ2IsVUFBVTtBQUFBLElBQ1YsWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLElBQ2QsWUFBWTtBQUFBLElBQ1osVUFBVTtBQUFBLElBQ1YsZ0JBQWdCO0FBQUEsSUFDaEIsYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osV0FBVztBQUFBLElBQ1gsNEJBQTRCO0FBQUEsSUFDNUIsMEJBQTBCO0FBQUEsSUFDMUIsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsY0FBYztBQUFBLElBQ2QsZ0JBQWdCO0FBQUEsSUFDaEIsZUFBZTtBQUFBLElBQ2YsZUFBZTtBQUFBLElBQ2YsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsU0FBUztBQUFBLElBQ1QsYUFBYTtBQUFBLElBQ2IsY0FBYztBQUFBLElBQ2QsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLElBQ1YsT0FBTztBQUFBLElBQ1AsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osU0FBUztBQUFBLElBQ1QsWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLElBQ2QsZUFBZTtBQUFBLElBQ2YsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsa0JBQWtCO0FBQUEsSUFDbEIsVUFBVTtBQUFBLElBQ1YsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLElBQ2IsT0FBTztBQUFBLElBQ1AsWUFBWTtBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osYUFBYTtBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1Isa0JBQWtCO0FBQUEsSUFDbEIsV0FBVztBQUFBLElBQ1gsT0FBTztBQUFBLElBQ1AsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLElBQ2QsU0FBUztBQUFBLElBQ1QsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsY0FBYztBQUFBLElBQ2Qsa0JBQWtCO0FBQUEsSUFDbEIsYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsY0FBYztBQUFBLElBQ2QsY0FBYztBQUFBLElBQ2QsYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsWUFBWTtBQUFBLElBQ1osWUFBWTtBQUFBLElBQ1osU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLElBQ2QsVUFBVTtBQUFBLElBQ1YsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLElBQ1YsVUFBVTtBQUFBLElBQ1YsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsVUFB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QU07QUFBQSxJQUNOLGNBQWM7QUFBQSxJQUNkLGVBQWU7QUFBQSxJQUNmLGVBQWU7QUFBQSxJQUNmLG1CQUFtQjtBQUFBLElBQ25CLE9BQU87QUFBQSxJQUNQLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLGNBQWM7QUFBQSxJQUNkLGFBQWE7QUFBQSxJQUNiLGFBQWE7QUFBQSxJQUNiLE1BQU07QUFBQSxJQUNOLGtCQUFrQjtBQUFBLElBQ2xCLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLEtBQUs7QUFBQSxJQUNMLE9BQU87QUFBQSxJQUNQLHdCQUF3QjtBQUFBLElBQ3hCLHVCQUF1QjtBQUFBLElBQ3ZCLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFFBQVE7QUFBQSxJQUNSLEtBQUs7QUFBQSxJQUNMLE1BQU07QUFBQSxJQUNOLE1BQU07QUFBQSxJQUNOLFNBQVM7QUFBQSxJQUNULGFBQWE7QUFBQSxJQUNiLGNBQWM7QUFBQSxJQUNkLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxJQUNQLFdBQVc7QUFBQSxJQUNYLFlBQVk7QUFBQSxJQUNaLFlBQVk7QUFBQSxJQUNaLFVBQVU7QUFBQSxJQUNWLFFBQVE7QUFBQSxJQUNSLFNBQVM7QUFBQSxJQUNULFlBQVk7QUFBQSxJQUNaLGNBQWM7QUFBQSxJQUNkLGVBQWU7QUFBQSxJQUNmLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxJQUNWLFdBQVc7QUFBQSxJQUNYLGtCQUFrQjtBQUFBLElBQ2xCLFVBQVU7QUFBQSxJQUNWLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxJQUNiLE9BQU87QUFBQSxJQUNQLFlBQVk7QUFBQSxJQUNaLFFBQVE7QUFBQSxJQUNSLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLFlBQVk7QUFBQSxJQUNaLGFBQWE7QUFBQSxJQUNiLFlBQVk7QUFBQSxJQUNaLGFBQWE7QUFBQSxJQUNiLFFBQVE7QUFBQSxJQUNSLGtCQUFrQjtBQUFBLElBQ2xCLFdBQVc7QUFBQSxJQUNYLE9BQU87QUFBQSxJQUNQLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFdBQVc7QUFBQSxJQUNYLFlBQVk7QUFBQSxJQUNaLGNBQWM7QUFBQSxJQUNkLFNBQVM7QUFBQSxJQUNULFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFlBQVk7QUFBQSxJQUNaLFNBQVM7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLGNBQWM7QUFBQSxJQUNkLGtCQUFrQjtBQUFBLElBQ2xCLGFBQWE7QUFBQSxJQUNiLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLGNBQWM7QUFBQSxJQUNkLGNBQWM7QUFBQSxJQUNkLGFBQWE7QUFBQSxJQUNiLFlBQVk7QUFBQSxJQUNaLGFBQWE7QUFBQSxJQUNiLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLFdBQVc7QUFBQSxJQUNYLFVBQVU7QUFBQSxJQUNWLFlBQVk7QUFBQSxJQUNaLFlBQVk7QUFBQSxJQUNaLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLFdBQVc7QUFBQSxJQUNYLFlBQVk7QUFBQSxJQUNaLFlBQVk7QUFBQSxJQUNaLGNBQWM7QUFBQSxJQUNkLFVBQVU7QUFBQSxJQUNWLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxJQUNWLFVBQVU7QUFBQSxJQUNWLFVBQVU7QUFBQSxJQUNWLFdBQVc7QUFBQSxJQUNYLFVBQVU7QUFBQSxJQUNWLFFBQVE7QUFBQSxJQUNSLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFVBQVU7QUFBQSxJQUNWLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLFVBQVU7QUFBQSxJQUNWLFVBQVU7QUFBQSxJQUNWLGdCQUFnQjtBQUFBLElBQ2hCLFdBQVc7QUFBQSxJQUNYLFFBQVE7QUFBQSxJQUNSLFNBQVM7QUFB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QUFBLFdBQVUsZ0JBQWdCLElBQUk7QUFDOUIsRUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsRUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsRUFBQUEsV0FBVSxTQUFTLElBQUk7QUFDdkIsRUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsRUFBQUEsV0FBVSxHQUFHLElBQUk7QUFDakIsRUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsRUFBQUEsV0FBVSxVQUFVLElBQUk7QUFDeEIsRUFBQUEsV0FBVSxTQUFTLElBQUk7QUFDdkIsRUFBQUEsV0FBVSxLQUFLLElBQUk7QUFDbkIsRUFBQUEsV0FBVSxZQUFZLElBQUk7QUFDMUIsRUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsRUFBQUEsV0FBVSxTQUFTLElBQUk7QUFDdkIsRUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsRUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsRUFBQUEsV0FBVSxLQUFLLElBQUk7QUFDbkIsRUFBQUEsV0FBVSxVQUFVLElBQUk7QUFDeEIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsRUFBQUEsV0FBVSxTQUFTLElBQUk7QUFDdkIsRUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsRUFBQUEsV0FBVSxLQUFLLElBQUk7QUFDbkIsRUFBQUEsV0FBVSxLQUFLLElBQUk7QUFDbkIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsRUFBQUEsV0FBVSxVQUFVLElBQUk7QUFDeEIsRUFBQUEsV0FBVSxZQUFZLElBQUk7QUFDMUIsRUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsRUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsRUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsRUFBQUEsV0FBVSxnQkFBZ0IsSUFBSTtBQUM5QixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLEdBQUcsSUFBSTtBQUNqQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFNBQVMsSUFBSTtBQUN2QixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFlBQVksSUFBSTtBQUMxQixFQUFBQSxXQUFVLFNBQVMsSUFBSTtBQUN2QixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLFNBQVMsSUFBSTtBQUN2QixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLEdBQUcsSUFBSTtBQUNqQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLFdBQVcsSUFBSTtBQUN6QixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLEdBQUcsSUFBSTtBQUNqQixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLFNBQVMsSUFBSTtBQUN2QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLFNBQVMsSUFBSTtBQUN2QixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLEdBQUcsSUFBSTtBQUNqQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUN2QixHQUFHLFlBQVksY0FBYyxZQUFZLENBQUMsRUFBRTtBQU1yQyxJQUFJO0FBQUEsQ0FDVixTQUFVQyxTQUFRO0FBQ2YsRUFBQUEsUUFBT0EsUUFBTyxTQUFTLElBQUksQ0FBQyxJQUFJO0FBQ2hDLEVBQUFBLFFBQU9BLFFBQU8sR0FBRyxJQUFJLENBQUMsSUFBSTtBQUMxQixFQUFBQSxRQUFPQSxRQUFPLFNBQVMsSUFBSSxDQUFDLElBQUk7QUFDaEMsRUFBQUEsUUFBT0EsUUFBTyxnQkFBZ0IsSUFBSSxDQUFDLElBQUk7QUFDdkMsRUFBQUEsUUFBT0EsUUFBTyxRQUFRLElBQUksQ0FBQyxJQUFJO0FBQy9CLEVBQUFBLFFBQU9BLFFBQU8sTUFBTSxJQUFJLENBQUMsSUFBSTtBQUM3QixFQUFBQSxRQUFPQSxRQUFPLFNBQVMsSUFBSSxDQUFDLElBQUk7QUFDaEMsRUFBQUEsUUFBT0EsUUFBTyxPQUFPLElBQUksQ0FBQyxJQUFJO0FBQzlCLEVBQUFBLFFBQU9BLFFBQU8sR0FBRyxJQUFJLENBQUMsSUFBSTtBQUMxQixFQUFBQSxRQUFPQSxRQUFPLE1BQU0sSUFBSSxDQUFDLElBQUk7QUFDN0IsRUFBQUEsUUFBT0EsUUFBTyxVQUFVLElBQUksRUFBRSxJQUFJO0FBQ2xDLEVBQUFBLFFBQU9BLFFBQU8sU0FBUyxJQUFJLEVBQUUsSUFBSTtBQUNqQyxFQUFBQSxRQUFPQSxRQUFPLEtBQUssSUFBSSxFQUFFLElBQUk7QUFDN0IsRUFBQUEsUUFBT0EsUUFBTyxZQUFZLElBQUksRUFBRSxJQUFJO0FBQ3BDLEVBQUFBLFFBQU9BLFFBQU8sTUFBTSxJQUFJLEVBQUUsSUFBSTtBQUM5QixFQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsRUFBQUEsUUFBT0EsUUFBTyxRQUFRLElBQUksRUFBRSxJQUFJO0FBQ2hDLEVBQUFBLFFBQU9BLFFBQU8sU0FBUyxJQUFJLEVBQUUsSUFBSTtBQUNqQyxFQUFBQSxRQUFPQSxRQUFPLFFBQVEsSUFBSSxFQUFFLElBQUk7QUFDaEMsRUFBQUEsUUFBT0EsUUFBTyxNQUFNLElBQUksRUFBRSxJQUFJO0FBQzlCLEVBQUFBLFFBQU9BLFFBQU8sS0FBSyxJQUFJLEVBQUUsSUFBSTtBQUM3QixFQUFBQSxRQUFPQSxRQUFPLFVBQVUsSUFBSSxFQUFFLElBQUk7QUFDbEMsRUFBQUEsUUFBT0EsUUFBTyxJQUFJLElBQUksRUFBRSxJQUFJO0FBQzVCLEVBQUFBLFFBQU9BLFFBQU8sTUFBTSxJQUFJLEVBQUUsSUFBSTtBQUM5QixFQUFBQSxRQUFPQSxRQUFPLFNBQVMsSUFBSSxFQUFFLElBQUk7QUFDakMsRUFBQUEsUUFBT0EsUUFBTyxRQUFRLElBQUksRUFBRSxJQUFJO0FBQ2hDLEVBQUFBLFFBQU9BLFFBQU8sS0FBSyxJQUFJLEVBQUUsSUFBSTtBQUM3QixFQUFBQSxRQUFPQSxRQUFPLEtBQUssSUFBSSxF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QUMsVUFBVSxVQUFVLE9BQU8sUUFBUTtBQUFBLEVBQ3BDLENBQUMsVUFBVSxTQUFTLE9BQU8sT0FBTztBQUFBLEVBQ2xDLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLEVBQzFCLENBQUMsVUFBVSxZQUFZLE9BQU8sVUFBVTtBQUFBLEVBQ3hDLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLEVBQzVCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxTQUFTLE9BQU8sT0FBTztBQUFBLEVBQ2xDLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLEVBQzVCLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLEVBQzFCLENBQUMsVUFBVSxVQUFVLE9BQU8sUUFBUTtBQUFBLEVBQ3BDLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLEVBQzVCLENBQUMsVUFBVSxTQUFTLE9BQU8sT0FBTztBQUFBLEVBQ2xDLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLEVBQzFCLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLEVBQzFCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLEVBQzlCLENBQUMsVUFBVSxVQUFVLE9BQU8sUUFBUTtBQUFBLEVBQ3BDLENBQUMsVUFBVSxZQUFZLE9BQU8sVUFBVTtBQUFBLEVBQ3hDLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLEVBQzVCLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxnQkFBZ0IsT0FBTyxjQUFjO0FBQUEsRUFDaEQsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLFVBQVUsT0FBTyxRQUFRO0FBQUEsRUFDcEMsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDO0FBQUEsRUFDdEIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFNBQVMsT0FBTyxPQUFPO0FBQUEsRUFDbEMsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFlBQVksT0FBTyxVQUFVO0FBQUEsRUFDeEMsQ0FBQyxVQUFVLFNBQVMsT0FBTyxPQUFPO0FBQUEsRUFDbEMsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFVBQVUsT0FBTyxRQUFRO0FBQUEsRUFDcEMsQ0FBQyxVQUFVLFNBQVMsT0FBTyxPQUFPO0FBQUEsRUFDbEMsQ0FBQyxVQUFVLFVBQVUsT0FBTyxRQUFRO0FBQUEsRUFDcEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLFVBQVUsT0FBTyxRQUFRO0FBQUEsRUFDcEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDO0FBQUEsRUFDdEIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLFdBQVcsT0FBTyxTQUFTO0FBQUEsRUFDdEMsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDO0FBQUEsRUFDdEIsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLFNBQVMsT0FBTyxPQUFPO0FBQUEsRUFDbEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLFNBQVMsT0FBTyxPQUFPO0FBQUEsRUFDbEMsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLFVBQVUsT0FBTyxRQUFRO0FBQUEsRUFDcEMsQ0FBQyxVQUFVLFVBQVUsT0FBTyxRQUFRO0FBQUEsRUFDcEMsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDO0FBQUEsRUFDdEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQzlCLENBQUM7QUFDTSxTQUFTLFNBQVMsU0FBUztBQUM5QixNQUFJQztBQUNKLFVBQVFBLE1BQUssZUFBZSxJQUFJLE9BQU8sT0FBTyxRQUFRQSxRQUFPLFNBQVNBLE1BQUssT0FBTztBQUN0RjtBQUNBLElBQU1DLEtBQUk7QUFDSCxJQUFNLG1CQUFtQjtBQUFBLEVBQzVCLENBQUMsR0FBRyxJQUFJLEdBQUcsb0JBQUksSUFBSTtBQUFBLElBQ2ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLEVBQ04sQ0FBQztBQUFBLEVBQ0QsQ0FBQyxHQUFHLE1BQU0sR0FBRyxvQkFBSSxJQUFJLENBQUNBLEdBQUUsSUFBSUEsR0FBRSxJQUFJQSxHQUFFLElBQUlBLEdBQUUsSUFBSUEsR0FBRSxPQUFPQSxHQUFFLGNBQWMsQ0FBQztBQUFBLEVBQ3hFLENBQUMsR0FBRyxHQUFHLEdBQUcsb0JBQUksSUFBSSxDQUFDQSxHQUFFLE9BQU9BLEdBQUUsZ0JBQWdCQSxHQUFFLElBQUksQ0FBQztBQUFBLEVBQ3JELENBQUMsR0FBRyxLQUFLLEdBQUcsb0JBQUksSUFBSTtBQUFBLEVBQ3BCLENBQUMsR0FBRyxHQUFHLEdBQUcsb0JBQUksSUFBSTtBQUFBLEVBQ2xCLENBQUMsR0FBRyxLQUFLLEdBQUcsb0JBQUksSUFBSTtBQUN4QjtBQUNPLFNBQVMsaUJBQWlCLElBQUk7QUFDakMsU0FBTyxPQUFPQSxHQUFFLE1BQU0sT0FBT0EsR0FBRSxNQUFNLE9BQU9BLEdBQUUsTUFBTSxPQUFPQSxHQUFFLE1BQU0sT0FBT0EsR0FBRSxNQUFNLE9BQU9BLEdBQUU7QUFDL0Y7QUFDQSxJQUFNLGlCQUFpQixvQkFBSSxJQUFJO0FBQUEsRUFDM0IsVUFBVTtBQUFBLEVBQ1YsVUFBVTtBQUFBLEVBQ1YsVUFBVTtBQUFBLEVBQ1YsVUFBVTtBQUFBLEVBQ1YsVUFBVTtBQUFBLEVBQ1YsVUFBVTtBQUFBLEVBQ1YsVUFBVTtBQUNkLENBQUM7QUFDTSxTQUFTLGlCQUFpQixJQUFJLGtCQUFrQjtBQUNuRCxTQUFPLGVBQWUsSUFBSSxFQUFFLEtBQU0sb0JBQW9CLE9BQU8sVUFBVTtBQUMzRTs7O0FDbGdCQSxJQUFNLHFDQUFxQyxvQkFBSSxJQUFJO0FBQUEsRUFDL0MsQ0FBQyxLQUFNLElBQUk7QUFBQSxFQUNYLENBQUMsS0FBTSxJQUFJO0FBQUEsRUFDWCxDQUFDLEtBQU0sR0FBRztBQUFBLEVBQ1YsQ0FBQyxLQUFNLElBQUk7QUFBQSxFQUNYLENBQUMsS0FBTSxJQUFJO0FBQUEsRUFDWCxDQUFDLEtBQU0sSUFBSTtBQUFBLEVBQ1gsQ0FBQyxLQUFNLElBQUk7QUFBQSxFQUNYLENBQUMsS0FBTSxHQUFHO0FBQUEsRUFDVixDQUFDLEtBQU0sSUFBSTtBQUFBLEVBQ1gsQ0FBQyxLQUFNLEdBQUc7QUFBQSxFQUNWLENBQUMsS0FBTSxJQUFJO0FBQUEsRUFDWCxDQUFDLEtBQU0sR0FBRztBQUFBLEVBQ1YsQ0FBQyxLQUFNLEdBQUc7QUFBQSxFQUNWLENBQUMsS0FBTSxJQUFJO0FBQUEsRUFDWCxDQUFDLEtBQU0sSUFBSTtBQUFBLEVBQ1gsQ0FBQyxLQUFNLElBQUk7QUFBQSxFQUNYLENBQUMsS0FBTSxJQUFJO0FBQUEsRUFDWCxDQUFDLEtBQU0sSUFBSTtBQUFBLEVBQ1gsQ0FBQyxLQUFNLElBQUk7QUFBQSxFQUNYLENBQUMsS0FBTSxJQUFJO0FBQUEsRUFDWCxDQUFDLEtBQU0sR0FBRztBQUFBLEVBQ1YsQ0FBQyxLQUFNLElBQUk7QUFBQSxFQUNYLENBQUMsS0FBTSxHQUFHO0FBQUEsRUFDVixDQUFDLEtBQU0sSUFBSTtBQUFBLEVBQ1gsQ0FBQyxLQUFNLEdBQUc7QUFBQSxFQUNWLENBQUMsS0FBTSxHQUFHO0FBQUEsRUFDVixDQUFDLEtBQU0sR0FBRztBQUNkLENBQUM7QUFFRCxJQUFJO0FBQUEsQ0FDSCxTQUFVQyxRQUFPO0FBQ2QsRUFBQUEsT0FBTUEsT0FBTSxNQUFNLElBQUksQ0FBQyxJQUFJO0FBQzNCLEVBQUFBLE9BQU1BLE9BQU0sUUFBUSxJQUFJLENBQUMsSUFBSTtBQUM3QixFQUFBQSxPQUFNQSxPQUFNLFNBQVMsSUFBSSxDQUFDLElBQUk7QUFDOUIsRUFBQUEsT0FBTUEsT0FBTSxhQUFhLElBQUksQ0FBQyxJQUFJO0FBQ2xDLEVBQUFBLE9BQU1BLE9BQU0sV0FBVyxJQUFJ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QUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBK0RBLEtBQUssZUFBZSx3QkFBd0IsUUFBUTtBQUVsRCxVQUFNLFVBQVUsS0FBSyxRQUFRLGVBQWUsd0JBQXdCLE1BQU07QUFFMUUsWUFBUSxRQUFRO0FBRWhCLFVBQU07QUFBQSxFQUNSO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQTREQSxLQUFLLGVBQWUsd0JBQXdCLFFBQVE7QUFFbEQsVUFBTSxVQUFVLEtBQUssUUFBUSxlQUFlLHdCQUF3QixNQUFNO0FBRTFFLFlBQVEsUUFBUTtBQUVoQixXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7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LElBQ1IsYUFDRTtBQUFBLElBQ0YsS0FBSztBQUFBLEVBQ1A7QUFBQTtBQUFBLEVBRUEsb0JBQW9CO0FBQUEsSUFDbEIsUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLEVBQ0o7QUFBQTtBQUFBLEVBRUEsc0JBQXNCO0FBQUEsSUFDcEIsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsMkJBQTJCO0FBQUEsSUFDekIsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsa0NBQWtDO0FBQUEsSUFDaEMsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLElBQ2IsS0FBSztBQUFBLEVBQ1A7QUFBQTtBQUFBLEVBRUEsa0JBQWtCO0FBQUEsSUFDaEIsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsWUFBWTtBQUFBLElBQ1YsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsY0FBYztBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsY0FBYztBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLEVBQ0o7QUFBQTtBQUFBLEVBRUEsb0NBQW9DO0FBQUEsSUFDbEMsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLElBQ2IsS0FBSztBQUFBLEVBQ1A7QUFBQTtBQUFBLEVBRUEsZ0NBQWdDO0FBQUEsSUFDOUIsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsVUFBVTtBQUFBLElBQ1IsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsMEJBQTBCO0FBQUEsSUFDeEIsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsMEJBQTBCO0FBQUEsSUFDeEIsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsMENBQTBDO0FBQUEs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RUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0Y7OztBQzNHTyxJQUFNLHlCQUF5QjtBQUFBLEVBQ3BDLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLEtBQUs7QUFBQSxFQUNMLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFNBQVM7QUFBQSxFQUNULE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLFNBQVM7QUFBQSxFQUNULElBQUk7QUFBQSxFQUNKLEtBQUs7QUFBQSxFQUNMLE9BQU87QUFBQSxFQUNQLEtBQUs7QUFBQSxFQUNMLFNBQVM7QUFBQSxFQUNULEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFNBQVM7QUFBQSxFQUNULE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLFNBQVM7QUFBQSxFQUNULElBQUk7QUFBQSxFQUNKLEtBQUs7QUFBQSxFQUNMLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLEtBQUs7QUFBQSxFQUNMLFNBQVM7QUFBQSxFQUNULEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLE9BQU87QUFBQSxFQUNQLFVBQVU7QUFBQSxFQUNWLE9BQU87QUFBQSxFQUNQLEtBQUs7QUFBQSxFQUNMLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFNBQVM7QUFBQSxFQUNULE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLElBQUk7QUFBQSxFQUNKLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLElBQUk7QUFBQSxFQUNKLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLFFBQVE7QUFBQSxFQUNSLEtBQUs7QUFBQSxFQUNMLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLElBQUk7QUFBQSxFQUNKLE9BQU87QUFBQSxFQUNQLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQ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QUFLLGdCQUFnQixpQ0FBZ0IsS0FBSyxLQUFLLFFBQVEsTUFBTTtBQUNoRSxhQUFLLEtBQUssWUFBWSxTQUFTLElBQUk7QUFBQSxJQUNyQyxDQUFDO0FBQUEsRUFDRjtBQUNEOyIsCiAgIm5hbWVzIjogWyJyb290IiwgImZhY3RvcnkiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZGVmaW5lIiwgImFtZCIsICJzZWxmIiwgIl9fd2VicGFja19yZXF1aXJlX18iLCAiZGVmaW5pdGlvbiIsICJrZXkiLCAibyIsICJPYmplY3QiLCAiZGVmaW5lUHJvcGVydHkiLCAiZW51bWVyYWJsZSIsICJnZXQiLCAib2JqIiwgInByb3AiLCAicHJvdG90eXBlIiwgImhhc093blByb3BlcnR5IiwgImNhbGwiLCAiU3ltYm9sIiwgInRvU3RyaW5nVGFnIiwgInZhbHVlIiwgImUiLCAidCIsICJFIiwgImV2ZW50TGlzdGVuZXIiLCAibWV0aG9kIiwgImVsZW1lbnRzIiwgImV2ZW50cyIsICJmbiIsICJvcHRpb25zIiwgIkhUTUxDb2xsZWN0aW9uIiwgIk5vZGVMaXN0IiwgIkFycmF5IiwgImZyb20iLCAiaXNBcnJheSIsICJlbCIsICJldiIsICJjYXB0dXJlIiwgInNsaWNlIiwgImFyZ3VtZW50cyIsICJwIiwgInIiLCAiYSIsICJsIiwgInMiLCAiaSIsICJjIiwgIm9uIiwgImJpbmQiLCAib2ZmIiwgImNyZWF0ZUVsZW1lbnRGcm9tU3RyaW5nIiwgImh0bWwiLCAiZGl2IiwgImRvY3VtZW50IiwgImNyZWF0ZUVsZW1lbnQiLCAiaW5uZXJIVE1MIiwgInRyaW0iLCAiZmlyc3RFbGVtZW50Q2hpbGQiLCAiY3JlYXRlRnJvbVRlbXBsYXRlIiwgInN0ciIsICJyZW1vdmVBdHRyaWJ1dGUiLCAibmFtZSIsICJnZXRBdHRyaWJ1dGUiLCAicmVzb2x2ZSIsICJlbGVtZW50IiwgImJhc2UiLCAiY29uIiwgInN1YnRyZWUiLCAiY2hpbGQiLCAiY2hpbGRyZW4iLCAiYXJyIiwgInN1YiIsICJwdXNoIiwgImtleXMiLCAibGVuZ3RoIiwgImV2ZW50UGF0aCIsICJldnQiLCAicGF0aCIsICJjb21wb3NlZFBhdGgiLCAidGFyZ2V0IiwgInBhcmVudEVsZW1lbnQiLCAid2luZG93IiwgInJlc29sdmVFbGVtZW50IiwgInZhbCIsICJFbGVtZW50IiwgInNwbGl0IiwgInJlZHVjZSIsICJwdiIsICJjdiIsICJjaSIsICJxdWVyeVNlbGVjdG9yIiwgInNoYWRvd1Jvb3QiLCAiYWRqdXN0YWJsZUlucHV0TnVtYmVycyIsICJtYXBwZXIiLCAidiIsICJoYW5kbGVTY3JvbGwiLCAiaW5jIiwgIk51bWJlciIsICJzaGlmdEtleSIsICJjdHJsS2V5IiwgImRlbHRhWSIsICJpbmRleCIsICJzZWxlY3Rpb25TdGFydCIsICJyZXBsYWNlIiwgImZvY3VzIiwgInNldFNlbGVjdGlvblJhbmdlIiwgInByZXZlbnREZWZhdWx0IiwgImRpc3BhdGNoRXZlbnQiLCAiRXZlbnQiLCAicGFzc2l2ZSIsICJtaW4iLCAibWF4IiwgImZsb29yIiwgInJvdW5kIiwgIk1hdGgiLCAiaHN2VG9SZ2IiLCAiaCIsICJmIiwgInEiLCAibW9kIiwgImhzdlRvSHNsIiwgInJnYlRvSHN2IiwgImciLCAiYiIsICJtaW5WYWwiLCAibWF4VmFsIiwgImRlbHRhIiwgImRyIiwgImRnIiwgImRiIiwgImNteWtUb0hzdiIsICJtIiwgInkiLCAiayIsICJoc2xUb0hzdiIsICJucyIsICJpc05hTiIsICJoZXhUb0hzdiIsICJoZXgiLCAibWF0Y2giLCAibWFwIiwgInBhcnNlSW50IiwgInBhcnNlVG9IU1ZBIiwgInRvTG93ZXJDYXNlIiwgImN0eCIsICJnZXRDb250ZXh0IiwgImZpbGxTdHlsZSIsICJyZWdleCIsICJjbXlrIiwgInJnYmEiLCAiaHNsYSIsICJoc3ZhIiwgImhleGEiLCAibnVtYXJpemUiLCAiYXJyYXkiLCAidGVzdCIsICJ1bmRlZmluZWQiLCAiaW52YWxpZCIsICJ0eXBlIiwgImV4ZWMiLCAidmFsdWVzIiwgImpvaW4iLCAicmF3IiwgInN1YnN0cmluZyIsICJIU1ZhQ29sb3IiLCAib3JpZ2luYWwiLCAibmV4dCIsICJwcmVjaXNpb24iLCAidG9GaXhlZCIsICJ0aGF0IiwgInRvSFNWQSIsICJ0b1N0cmluZyIsICJ0b0hTTEEiLCAidG9SR0JBIiwgInRvQ01ZSyIsICJyZ2IiLCAidG9IRVhBIiwgInBhZFN0YXJ0IiwgImFscGhhIiwgInRvVXBwZXJDYXNlIiwgImNsb25lIiwgImNsYW1wIiwgIk1vdmVhYmxlIiwgIm9wdCIsICJhc3NpZ24iLCAibG9jayIsICJvbmNoYW5nZSIsICJvbnN0b3AiLCAiX2tleWJvYXJkIiwgImFjdGl2ZUVsZW1lbnQiLCAid3JhcHBlciIsICJ1cCIsICJyaWdodCIsICJkb3duIiwgImxlZnQiLCAieG0iLCAieW0iLCAidXBkYXRlIiwgImNhY2hlIiwgIngiLCAic3RhcnRzV2l0aCIsICJfdGFwc3RhcnQiLCAiXyIsICJfdGFwc3RvcCIsICJfdGFwbW92ZSIsICJjYW5jZWxhYmxlIiwgImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsICJ0b3VjaCIsICJ0b3VjaGVzIiwgImNsaWVudFgiLCAiY2xpZW50WSIsICJ3aWR0aCIsICJ0b3AiLCAiaGVpZ2h0IiwgInN0eWxlIiwgIm9mZnNldFdpZHRoIiwgIm9mZnNldEhlaWdodCIsICJjeCIsICJjeSIsICJ0cmlnZ2VyIiwgImRlc3Ryb3kiLCAiU2VsZWN0YWJsZSIsICJjbGFzc05hbWUiLCAib25UYXAiLCAiZm9yRWFjaCIsICJjbGFzc0xpc3QiLCAic3RvcFByb3BhZ2F0aW9uIiwgInZhcmlhbnRGbGlwT3JkZXIiLCAic3RhcnQiLCAibWlkZGxlIiwgImVuZCIsICJwb3NpdGlvbkZsaXBPcmRlciIsICJib3R0b20iLCAicG9zaXRpb24iLCAibWFyZ2luIiwgInBhZGRpbmciLCAiRCIsICJIVE1MRWxlbWVudCIsICJyZWZlcmVuY2UiLCAicG9wcGVyIiwgIkVycm9yIiwgImNvbnRhaW5lciIsICJhcnJvdyIsICJCIiwgIk0iLCAiQyIsICJkb2N1bWVudEVsZW1lbnQiLCAiRiIsICJLIiwgIlMiLCAiViIsICJ2cyIsICJ2bSIsICJ2ZSIsICJocyIsICJobSIsICJoZSIsICIkIiwgIlIiLCAiaiIsICJ1IiwgIm4iLCAiZCIsICJ3IiwgInoiLCAiTCIsICJQIiwgIlQiLCAiTyIsICJIIiwgIlBpY2tyIiwgImNvbnN0cnVjdG9yIiwgIl9pbml0aWFsaXppbmdBY3RpdmUiLCAiX3JlY2FsYyIsICJfbmFub3BvcCIsICJfcm9vdCIsICJfY29sb3IiLCAiX2xhc3RDb2xvciIsICJfc3dhdGNoQ29sb3JzIiwgIl9zZXR1cEFuaW1hdGlvbkZyYW1lIiwgIl9ldmVudExpc3RlbmVyIiwgImluaXQiLCAic2F2ZSIsICJoaWRlIiwgInNob3ciLCAiY2xlYXIiLCAiY2hhbmdlIiwgImNoYW5nZXN0b3AiLCAiY2FuY2VsIiwgInN3YXRjaHNlbGVjdCIsICJ0aGlzIiwgIkRFRkFVTFRfT1BUSU9OUyIsICJzd2F0Y2hlcyIsICJjb21wb25lbnRzIiwgInRoZW1lIiwgInNsaWRlcnMiLCAibG9ja09wYWNpdHkiLCAiaW5jbHVkZXMiLCAiaW50ZXJhY3Rpb24iLCAicHJldmlldyIsICJvcGFjaXR5IiwgImh1ZSIsICJwYWxldHRlIiwgIl9wcmVCdWlsZCIsICJfYnVpbGRDb21wb25lbnRzIiwgIl9iaW5kRXZlbnRzIiwgIl9maW5hbEJ1aWxkIiwgImNvbG9yIiwgImFkZFN3YXRjaCIsICJidXR0b24iLCAiYXBwIiwgImNyZWF0ZVBvcHBlciIsICJzZXRBdHRyaWJ1dGUiLCAiX3QiLCAicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwgImNiIiwgInNldENvbG9yIiwgImRlZmF1bHQiLCAiX3JlUG9zaXRpb25pbmdQaWNrZXIiLCAiZGVmYXVsdFJlcHJlc2VudGF0aW9uIiwgIl9yZXByZXNlbnRhdGlvbiIsICJzZXRDb2xvclJlcHJlc2VudGF0aW9uIiwgInNob3dBbHdheXMiLCAiX2VtaXQiLCAiaW5zdGFuY2UiLCAidXNlQXNCdXR0b24iLCAiaW5saW5lIiwgImFwcENsYXNzIiwgImhpZGRlbiIsICJpbnB1dCIsICJpbnQiLCAiZmluZCIsICJhZGQiLCAiY29udGFpbnMiLCAiYXBwZW5kQ2hpbGQiLCAicmVtb3ZlQ2hpbGQiLCAicGFyZW50IiwgIm5leHRTaWJsaW5nIiwgImluc2VydEJlZm9yZSIsICJyZW1vdmUiLCAicGFyZW50Tm9kZSIsICJyZXBsYWNlQ2hpbGQiLCAiZGlzYWJsZWQiLCAiZGlzYWJsZSIsICJjb21wYXJpc29uIiwgInRyYW5zaXRpb24iLCAibGFzdENvbG9yIiwgImluc3QiLCAiY3MiLCAicmVwZWF0IiwgInNvIiwgInNoIiwgImdldENvbG9yIiwgInBpY2tlciIsICJjdXJyZW50Q29sb3IiLCAiX3VwZGF0ZU91dHB1dCIsICJjc3NSR0JhU3RyaW5nIiwgImJhY2tncm91bmQiLCAic2V0UHJvcGVydHkiLCAic2xpZGVyIiwgImJhY2tncm91bmRDb2xvciIsICJzZWxlY3RhYmxlIiwgIl9jb21wb25lbnRzIiwgImV2ZW50QmluZGluZ3MiLCAiX2NsZWFyQ29sb3IiLCAic2V0SFNWQSIsICJhcHBseUNvbG9yIiwgInJlc3VsdCIsICJzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24iLCAiY2siLCAiY2xvc2VXaXRoS2V5IiwgImlzT3BlbiIsICJjb2RlIiwgInNvbWUiLCAiYWRqdXN0YWJsZU51bWJlcnMiLCAicmFuZ2VzIiwgInN0ZXAiLCAicmFuZ2UiLCAiZ2V0Q29sb3JSZXByZXNlbnRhdGlvbiIsICJudiIsICJ0b1ByZWNpc2lvbiIsICJhdXRvUmVwb3NpdGlvbiIsICJ0aW1lb3V0IiwgImNsb3NlT25TY3JvbGwiLCAic2V0VGltZW91dCIsICJycyIsICJjbGVhclRpbWVvdXQiLCAiX2V2ZW50QmluZGluZ3MiLCAiYm9keSIsICJlYiIsICJpbm5lckhlaWdodCIsICJpbm5lcldpZHRoIiwgImV2ZW50U291cmNlIiwgIm91dHB1dFByZWNpc2lvbiIsICJzaWxlbnQiLCAiX3BhcnNlTG9jYWxDb2xvciIsICJhbHBoYU1ha2VzQUNoYW5nZSIsICJpMThuIiwgIkkxOE5fREVGQVVMVFMiLCAiZXZlbnQiLCAiYXJncyIsICJjYWxsQmFja3MiLCAiaW5kZXhPZiIsICJzcGxpY2UiLCAicmVtb3ZlU3dhdGNoIiwgInN3YXRjaENvbG9yIiwgImNhbmNlbEFuaW1hdGlvbkZyYW1lIiwgImRlc3Ryb3lBbmRSZW1vdmUiLCAicmVjYWxjIiwgInN0cmluZyIsICJ1dHlwZSIsICJjbGljayIsICJnZXRTZWxlY3RlZENvbG9yIiwgImdldFJvb3QiLCAiZW5hYmxlIiwgInN0YXRpYyIsICJWRVJTSU9OIiwgIm1vZHVsZSIsICJjb3JlIiwgIml0IiwgImUiLCAiZG9jdW1lbnQiLCAiaXMiLCAiUyIsICJmIiwgIk8iLCAiUCIsICJrZXkiLCAiYSIsICJiIiwgImMiLCAic291cmNlIiwgImV4cG9ydHMiLCAib3duIiwgInBvcyIsICJzIiwgImkiLCAibCIsICJjb2RlUG9pbnRBdCIsICJpbmRleCIsICJmcm9tQ29kZVBvaW50IiwgIngiLCAicm9vdCIsICJwYXJzZSIsICJ0ZXh0IiwgInRva2VuIiwgImNvbW1lbnQiLCAidSIsICJwIiwgImJ1ZmZlciIsICJzdHJpbmdpZnkiLCAic3RhY2siLCAidiIsICJ2YWx1ZSIsICJsaXN0IiwgIkpTT041IiwgImltcG9ydF9vYnNpZGlhbiIsICJzZXR0aW5ncyIsICJfYSIsICJpbmRleCIsICJ0IiwgImUiLCAibiIsICJyIiwgImkiLCAibyIsICJjIiwgInUiLCAicyIsICJkIiwgImIiLCAiQSIsICJGIiwgInYiLCAiSCIsICJCIiwgIkMiLCAiayIsICJTIiwgIlIiLCAiTSIsICJPIiwgIkwiLCAiRyIsICJqIiwgIlgiLCAiSSIsICJZIiwgImEiLCAibCIsICJmIiwgImgiLCAicCIsICJnIiwgIm0iLCAieSIsICJFIiwgInRleHQiLCAidmFsdWUiLCAiZSIsICJfYSIsICJyZXJlbmRlciIsICJQaWNrciIsICJpIiwgImJvZHkiLCAiX2EiLCAiaW1wb3J0X29ic2lkaWFuIiwgImltcG9ydF9vYnNpZGlhbiIsICJpbXBvcnRfb2JzaWRpYW4iLCAiaSIsICJpbXBvcnRfb2JzaWRpYW4iLCAiaW1wb3J0X29ic2lkaWFuIiwgIl9hIiwgImUiLCAiaW1wb3J0X29ic2lkaWFuIiwgImNoZWNrcyIsICJpbmRleCIsICJhbGwiLCAia2V5IiwgImQiLCAiaXMiLCAiaW5kZXgiLCAib2siLCAiaW5kZXgiLCAiaW5kZXgiLCAia2V5IiwgIl8iLCAiXyIsICJfIiwgImh0bWwiLCAic3ZnIiwgInBhcnNlIiwgImluZGV4IiwgInBhcnNlIiwgInN0cmluZ2lmeSIsICJvd24iLCAiaCIsICJpbmRleCIsICJrZXkiLCAicGFyc2UiLCAidmFsdWUiLCAiaCIsICJodG1sIiwgInMiLCAic3ZnIiwgInNlYXJjaCIsICJpbmRleCIsICJwb2ludCIsICJvd24iLCAic3ZnIiwgImh0bWwiLCAib2siLCAiaW5kZXgiLCAicyIsICJoIiwgInBvc2l0aW9uIiwgImxvY2F0aW9uIiwgImtleSIsICJvcGVuaW5nIiwgImNsb3NpbmciLCAicG9pbnQiLCAiQ09ERV9QT0lOVFMiLCAiRVJSIiwgImkiLCAiVG9rZW5UeXBlIiwgImkiLCAiYyIsICJjIiwgIl9hIiwgIkNoYXJDb2RlcyIsICJCaW5UcmllRmxhZ3MiLCAiRW50aXR5RGVjb2RlclN0YXRlIiwgIkRlY29kaW5nTW9kZSIsICJlcnJvcnMiLCAiYmFzZSIsICJfYSIsICJOUyIsICJBVFRSUyIsICJET0NVTUVOVF9NT0RFIiwgIlRBR19OQU1FUyIsICJUQUdfSUQiLCAiX2EiLCAiJCIsICJTdGF0ZSIsICJpc0FzY2lpQWxwaGFOdW1lcmljIiwgImlzRW50aXR5SW5BdHRyaWJ1dGVJbnZhbGlkRW5kIiwgIl9hIiwgImkiLCAiY3QiLCAibG9jYXRpb24iLCAiZG9jdW1lbnQiLCAiZWxlbWVudCIsICJpIiwgIkVudHJ5VHlwZSIsICJpIiwgImVsZW1lbnQiLCAiZW50cnkiLCAiZG9jdW1lbnQiLCAidGV4dCIsICJqIiwgImVsZW1lbnQiLCAibG9jYXRpb24iLCAiaSIsICJJbnNlcnRpb25Nb2RlIiwgImRvY3VtZW50IiwgImh0bWwiLCAiX2EiLCAiZWxlbWVudCIsICJsb2NhdGlvbiIsICJzaWJsaW5ncyIsICJpIiwgInAiLCAiaW5kZXgiLCAiYyIsICJwYXJzZSIsICJodG1sIiwgInBvc2l0aW9uIiwgInBvaW50IiwgImluZGV4IiwgInBhdGgiLCAiaW5kZXgiLCAibm9ybWFsaXplIiwgInBhdGgiLCAiaW5kZXgiLCAiaW5kZXgiLCAicHJvcCIsICJiYXNlbmFtZSIsICJkaXJuYW1lIiwgImFzc2VydFBhdGgiLCAiZXh0bmFtZSIsICJwYXRoIiwgInBhcnNlIiwgImNhbWVsY2FzZSIsICJvayIsICJ2YWx1ZSIsICJfIiwgIiQyIiwgIm93biIsICJrZXkiLCAib25lIiwgImluZGV4IiwgImFsbCIsICJvd24iLCAiaW5kZXgiLCAiZW1wdHkiLCAiaW5jcmVtZW50IiwgImluZGV4IiwgInNpYmxpbmdzIiwgIm93biIsICJpbmRleCIsICJkdCIsICJodG1sIiwgInAiLCAiXyIsICJpbmRleCIsICJib2R5IiwgImh0bWwiLCAidGJvZHkiLCAiaGVhZCIsICJpbmRleCIsICJlbGVtZW50IiwgImluZGV4IiwgInN2ZyIsICJrZXkiLCAieCIsICJ5IiwgInN0cmluZ2lmeSIsICJfIiwgImluZGV4IiwgImVsZW1lbnQiLCAiZW1wdHlPcHRpb25zIiwgImVtcHR5Q2hpbGRyZW4iLCAib25lIiwgImFsbCIsICJzdmciLCAiaHRtbCIsICJpbmRleCIsICJpbXBvcnRfb2JzaWRpYW4iLCAiX2EiLCAiX2IiLCAiX2MiLCAicyIsICJfYSIsICJ0ZXh0IiwgImVsZW1lbnQiLCAiX2EiLCAiXyIsICJrZXkiLCAidGV4dCIsICJmb2xkIiwgImluZGV4IiwgInJlc3VsdCIsICJfYSIsICJjb2RlU2VjdGlvbiIsICJfYSIsICJfIiwgImUiLCAiX2EiLCAicG9zaXRpb24iLCAicmVtb3ZlRm9sZExhbmd1YWdlcyIsICJsYW5nIiwgImVtcHR5IiwgInBsdWdpbiIsICJmb2xkU3RhcnQiLCAiZm9sZEVuZCIsICJpIiwgImNvbnZlcnRDb21tZW50TGlua3MiLCAidGV4dCIsICJzdHlsZSIsICJlbGVtZW50IiwgImtleSIsICJfYSJdCn0K diff --git a/src/ApplyStyling.ts b/src/ApplyStyling.ts index e17af8f..8b51928 100644 --- a/src/ApplyStyling.ts +++ b/src/ApplyStyling.ts @@ -79,6 +79,9 @@ function getThemeColours (themeModeColours: CodeStylerThemeModeColours): string "header-language-tag-background-colour": themeModeColours.header.languageTag.backgroundColour, "header-language-tag-text-colour": themeModeColours.header.languageTag.textColour, "header-separator-colour": themeModeColours.header.lineColour, + "header-external-reference-repository": themeModeColours.header.externalReference.displayRepositoryColour, + "header-external-reference-version": themeModeColours.header.externalReference.displayVersionColour, + "header-external-reference-timestamp": themeModeColours.header.externalReference.displayTimestampColour, "active-codeblock-line-colour": themeModeColours.highlights.activeCodeblockLineColour, "active-editor-line-colour": themeModeColours.highlights.activeEditorLineColour, "default-highlight-colour": themeModeColours.highlights.defaultColour, diff --git a/src/CodeblockDecorating.ts b/src/CodeblockDecorating.ts index a4c2860..d7c1f99 100644 --- a/src/CodeblockDecorating.ts +++ b/src/CodeblockDecorating.ts @@ -19,10 +19,10 @@ export function createHeader(codeblockParameters: CodeblockParameters, themeSett headerContainer.appendChild(createDiv({cls: "code-styler-header-language-tag", text: getLanguageTag(codeblockParameters.language)})); } headerContainer.appendChild(createTitleContainer(codeblockParameters, themeSettings, sourcePath, plugin)); - if (true && codeblockParameters?.externalReference) //TODO (@mayurankv) Add settings toggle + if (codeblockParameters?.externalReference) headerContainer.appendChild(createExternalReferenceContainer(codeblockParameters, sourcePath, plugin)); - if (false) //TODO (@mayurankv) Add settings toggle - headerContainer.appendChild(createExecuteCodeContainer(codeblockParameters, themeSettings, plugin)); + if (false) //TODO (@mayurankv) Add settings toggle once execute code compatibility improved + headerContainer.appendChild(createExecuteCodeContainer(codeblockParameters, plugin)); } else headerContainer.classList.add("code-styler-header-container-hidden"); return headerContainer; @@ -41,18 +41,24 @@ function createTitleContainer(codeblockParameters: CodeblockParameters, themeSet function createExternalReferenceContainer(codeblockParameters: CodeblockParameters, sourcePath: string, plugin: CodeStylerPlugin): HTMLElement { //TODO (@mayurankv) Add theme settings to conditionally set sections const externalReferenceContainer = createDiv({ cls: "code-styler-header-external-reference" }); - const siteIcon = createDiv({ cls: "external-reference-repo-icon" }); - siteIcon.innerHTML = SITE_ICONS?.[codeblockParameters?.externalReference?.external?.info?.site as string] ?? SITE_ICONS["generic"]; - externalReferenceContainer.appendChild(siteIcon); - externalReferenceContainer.appendChild(createDiv({ cls: "external-reference-repo", text: codeblockParameters?.externalReference?.external?.info?.author + "/" + codeblockParameters?.externalReference?.external?.info?.repository })); - const refIcon = createDiv({ cls: "external-reference-ref-icon" }); - refIcon.innerHTML = GIT_ICONS?.[codeblockParameters?.externalReference?.external?.info?.refInfo?.type as string] ?? GIT_ICONS["branch"]; - externalReferenceContainer.appendChild(refIcon); - externalReferenceContainer.appendChild(createDiv({cls: "external-reference-ref", text: codeblockParameters?.externalReference?.external?.info?.refInfo?.ref as string})); - const stampIcon = createDiv({ cls: "external-reference-timestamp-icon" }); - stampIcon.innerHTML = STAMP_ICON; - externalReferenceContainer.appendChild(stampIcon); - externalReferenceContainer.appendChild(createDiv({ cls: "external-reference-timestamp", text: codeblockParameters?.externalReference?.external?.info?.datetime as string })); + if (plugin.settings.currentTheme.settings.header.externalReference.displayRepository) { + const siteIcon = createDiv({ cls: "external-reference-repo-icon" }); + siteIcon.innerHTML = SITE_ICONS?.[codeblockParameters?.externalReference?.external?.info?.site as string] ?? SITE_ICONS["generic"]; + externalReferenceContainer.appendChild(siteIcon); + externalReferenceContainer.appendChild(createDiv({ cls: "external-reference-repo", text: codeblockParameters?.externalReference?.external?.info?.author + "/" + codeblockParameters?.externalReference?.external?.info?.repository })); + } + if (plugin.settings.currentTheme.settings.header.externalReference.displayVersion) { + const refIcon = createDiv({ cls: "external-reference-ref-icon" }); + refIcon.innerHTML = GIT_ICONS?.[codeblockParameters?.externalReference?.external?.info?.refInfo?.type as string] ?? GIT_ICONS["branch"]; + externalReferenceContainer.appendChild(refIcon); + externalReferenceContainer.appendChild(createDiv({cls: "external-reference-ref", text: codeblockParameters?.externalReference?.external?.info?.refInfo?.ref as string})); + } + if (plugin.settings.currentTheme.settings.header.externalReference.displayTimestamp) { + const stampIcon = createDiv({ cls: "external-reference-timestamp-icon" }); + stampIcon.innerHTML = STAMP_ICON; + externalReferenceContainer.appendChild(stampIcon); + externalReferenceContainer.appendChild(createDiv({ cls: "external-reference-timestamp", text: codeblockParameters?.externalReference?.external?.info?.datetime as string })); + } const updateIcon = createEl("button", { cls: "external-reference-update-icon"}); updateIcon.innerHTML = UPDATE_ICON; updateIcon.title = "Update Reference"; @@ -67,13 +73,13 @@ function createExternalReferenceContainer(codeblockParameters: CodeblockParamete return; if (view?.getMode() === "preview") { - view?.previewMode.rerender(true); codeblockElement.addClass("RERENDER-CODE-STYLER"); //@ts-expect-error Undocumented Obsidian API for (const section of view.previewMode.renderer.sections.filter(s => (s.el as HTMLElement).querySelector("RERENDER-CODE-STYLER"))) { section.rendered = false; section.html = ""; } + view?.previewMode.rerender(true); } else { //@ts-expect-error Undocumented Obsidian API const cmView = view?.sourceMode.cmEditor.cm; @@ -87,8 +93,9 @@ function createExternalReferenceContainer(codeblockParameters: CodeblockParamete externalReferenceContainer.appendChild(updateIcon); return externalReferenceContainer; } -function createExecuteCodeContainer(codeblockParameters: CodeblockParameters, themeSettings: CodeStylerThemeSettings, plugin: CodeStylerPlugin): HTMLElement { - const executeCodeContainer = createDiv({cls: "code-styler-header-execute-code"}); +function createExecuteCodeContainer(codeblockParameters: CodeblockParameters, plugin: CodeStylerPlugin): HTMLElement { + const executeCodeContainer = createDiv({ cls: "code-styler-header-execute-code" }); + console.log("Developer Error: Section not finished", codeblockParameters, plugin); //TODO (@mayurankv) Finish return executeCodeContainer; } diff --git a/src/Settings.ts b/src/Settings.ts index b52cee2..db8178a 100644 --- a/src/Settings.ts +++ b/src/Settings.ts @@ -25,6 +25,11 @@ export interface CodeStylerThemeModeColours { backgroundColour: Colour; textColour: Colour; }, + externalReference: { + displayRepositoryColour: Colour; + displayVersionColour: Colour; + displayTimestampColour: Colour; + } lineColour: Colour; }, highlights: { @@ -71,6 +76,11 @@ export interface CodeStylerThemeSettings { display: Display; displayColour: boolean; }, + externalReference: { + displayRepository: boolean; + displayVersion: boolean; + displayTimestamp: boolean; + } fontSize: number; foldPlaceholder: string; }, @@ -115,6 +125,7 @@ export interface CodeStylerSettings { exampleInlineCode: string; decoratePrint: boolean; excludedLanguages: string; + externalReferenceUpdateOnLoad: boolean; processedCodeblocksWhitelist: string; redirectLanguages: Record; version: string; @@ -160,6 +171,11 @@ const THEME_DEFAULT_SETTINGS: CodeStylerThemeSettings = { display: "none", displayColour: true, }, + externalReference: { + displayRepository: true, + displayVersion: true, + displayTimestamp: true, + }, fontSize: 14, foldPlaceholder: "", }, @@ -204,6 +220,11 @@ export const THEME_FALLBACK_COLOURS: CodeStylerThemeModeColours = { backgroundColour: "--code-background", textColour: "--code-comment", }, + externalReference: { + displayRepositoryColour: "#00FFFF", + displayVersionColour: "#FF00FF", + displayTimestampColour: "#808080", + }, lineColour: "--color-base-30", }, highlights: { @@ -426,6 +447,11 @@ const SOLARIZED_THEME: CodeStylerTheme = { backgroundColour: "#B8B5AA", textColour: "#C25F30", }, + externalReference: { + displayRepositoryColour: "#941100", + displayVersionColour: "#ff9300", + displayTimestampColour: "#808080", + }, lineColour: "#EDD489", }, highlights: { @@ -464,6 +490,11 @@ const SOLARIZED_THEME: CodeStylerTheme = { backgroundColour: "#008080", textColour: "#000000", }, + externalReference: { + displayRepositoryColour: "#00FFFF", + displayVersionColour: "#9437ff", + displayTimestampColour: "#808080", + }, lineColour: "#46cced", }, highlights: { @@ -600,6 +631,7 @@ export const DEFAULT_SETTINGS: CodeStylerSettings = { exampleInlineCode: EXAMPLE_INLINE_CODE, decoratePrint: true, excludedLanguages: EXCLUDED_LANGUAGES, + externalReferenceUpdateOnLoad: false, processedCodeblocksWhitelist: WHITELIST_CODEBLOCKS, redirectLanguages: {}, version: "1.1.4", @@ -661,6 +693,15 @@ const settingsUpdaters: RecordCodeStyler "1.1.2": settingsPreserve, "1.1.3": settingsPreserve, "1.1.4": settingsPreserve, + "1.1.5": (settings) => settingsVersionUpdate(settings,(theme)=>{ + theme.settings.header.externalReference = structuredClone(THEME_DEFAULT_SETTINGS.header.externalReference); + theme.colours.light.header.externalReference = structuredClone(THEME_FALLBACK_COLOURS.header.externalReference); + theme.colours.dark.header.externalReference = structuredClone(THEME_FALLBACK_COLOURS.header.externalReference); + return theme; + }, (settings) => { + settings.externalReferenceUpdateOnLoad = false; + return settings; + }), }; // Constants diff --git a/src/SettingsTab.ts b/src/SettingsTab.ts index 967ac3d..a3d45c0 100644 --- a/src/SettingsTab.ts +++ b/src/SettingsTab.ts @@ -40,6 +40,7 @@ export class SettingsTab extends PluginSettingTab { lineNumbersContainer: HTMLElement; headerTagsContainer: HTMLElement; headerIconsContainer: HTMLElement; + headerExternalReferenceContainer: HTMLElement; inlineCodeStylesContainer: HTMLElement; disableableComponents: Record>; @@ -68,18 +69,6 @@ export class SettingsTab extends PluginSettingTab { } // Create Settings Pages - emptySettings(containerEl: HTMLElement) { - containerEl.empty(); - containerEl.createEl("h1", {text: "Settings for the Code Styler Plugin."}); - } - generateSettings(containerEl: HTMLElement) { - if (this.page === "main") - this.displayMainSettings(containerEl); - else if (this.page === "codeblock") - this.displayCodeblockSettings(containerEl); - else if (this.page === "inline") - this.displayInlineCodeSettings(containerEl); - } displayMainSettings(containerEl: HTMLElement) { this.emptySettings(containerEl); this.generateThemeSettings(containerEl); @@ -114,6 +103,18 @@ export class SettingsTab extends PluginSettingTab { } // Create Settings Groups + emptySettings(containerEl: HTMLElement) { + containerEl.empty(); + containerEl.createEl("h1", {text: "Settings for the Code Styler Plugin."}); + } + generateSettings(containerEl: HTMLElement) { + if (this.page === "main") + this.displayMainSettings(containerEl); + else if (this.page === "codeblock") + this.displayCodeblockSettings(containerEl); + else if (this.page === "inline") + this.displayInlineCodeSettings(containerEl); + } generateSettingsSwitcher(containerEl: HTMLElement) { new Setting(containerEl) .setName("Choose Settings Page") @@ -534,11 +535,13 @@ export class SettingsTab extends PluginSettingTab { .setValue(this.plugin.settings.currentTheme.settings.header.languageIcon.display) .onChange((value: Display) => { this.plugin.settings.currentTheme.settings.header.languageIcon.display = value; - this.generateHeaderIconSettings(); + this.generateHeaderLanguageIconSettings(); this.saveSettings(true); })); this.headerIconsContainer = containerEl.createDiv(); - this.generateHeaderIconSettings(); + this.generateHeaderLanguageIconSettings(); + this.headerExternalReferenceContainer = containerEl.createDiv(); + this.generateHeaderExternalReferenceSettings(); } generateHeaderTagSettings() { this.headerTagsContainer.empty(); @@ -586,7 +589,7 @@ export class SettingsTab extends PluginSettingTab { (relevantThemeColours: CodeStylerThemeColours, saveColour: Colour) => {relevantThemeColours[getCurrentMode()].header.languageTag.textColour = saveColour;}, );}); } - generateHeaderIconSettings() { + generateHeaderLanguageIconSettings() { this.headerIconsContainer.empty(); if (this.plugin.settings.currentTheme.settings.header.languageIcon.display === "none") return; @@ -626,6 +629,61 @@ export class SettingsTab extends PluginSettingTab { })); }); } + generateHeaderExternalReferenceSettings() { + this.headerExternalReferenceContainer.empty(); + this.headerExternalReferenceContainer.createEl("h5", { text: "External Reference Indicators Appearance" }); + new Setting(this.headerExternalReferenceContainer) + .setName("Display Repository") + .setDesc("Display repository in codeblock header for external references.") + .addToggle(toggle => toggle + .setTooltip("Display Repository") + .setValue(this.plugin.settings.currentTheme.settings.header.externalReference.displayRepository) + .onChange((value) => { + this.plugin.settings.currentTheme.settings.header.externalReference.displayRepository = value; + this.saveSettings(); + })) + .then((setting) => {this.createPickr( + this.plugin,this.headerExternalReferenceContainer,setting, + "codeblock_header_display_repository", + (relevantThemeColours: CodeStylerThemeColours) => relevantThemeColours[getCurrentMode()].header.externalReference.displayRepositoryColour, + (relevantThemeColours: CodeStylerThemeColours, saveColour: Colour) => {relevantThemeColours[getCurrentMode()].header.externalReference.displayRepositoryColour = saveColour;}, + () => !this.plugin.settings.currentTheme.settings.header.externalReference.displayRepository, + );}); + new Setting(this.headerExternalReferenceContainer) + .setName("Display Repository Name") + .setDesc("Display repository version in codeblock header for external references.") + .addToggle(toggle => toggle + .setTooltip("Display Repository Version") + .setValue(this.plugin.settings.currentTheme.settings.header.externalReference.displayVersion) + .onChange((value) => { + this.plugin.settings.currentTheme.settings.header.externalReference.displayVersion = value; + this.saveSettings(); + })) + .then((setting) => {this.createPickr( + this.plugin,this.headerExternalReferenceContainer,setting, + "codeblock_header_display_version", + (relevantThemeColours: CodeStylerThemeColours) => relevantThemeColours[getCurrentMode()].header.externalReference.displayVersionColour, + (relevantThemeColours: CodeStylerThemeColours, saveColour: Colour) => {relevantThemeColours[getCurrentMode()].header.externalReference.displayVersionColour = saveColour;}, + () => !this.plugin.settings.currentTheme.settings.header.externalReference.displayVersion, + );}); + new Setting(this.headerExternalReferenceContainer) + .setName("Display Reference Timestamp") + .setDesc("Display the timestamp at which the reference was last updated.") + .addToggle(toggle => toggle + .setTooltip("Display Timestamp") + .setValue(this.plugin.settings.currentTheme.settings.header.externalReference.displayTimestamp) + .onChange((value) => { + this.plugin.settings.currentTheme.settings.header.externalReference.displayTimestamp = value; + this.saveSettings(); + })) + .then((setting) => {this.createPickr( + this.plugin,this.headerExternalReferenceContainer,setting, + "codeblock_header_display_timestamp", + (relevantThemeColours: CodeStylerThemeColours) => relevantThemeColours[getCurrentMode()].header.externalReference.displayTimestampColour, + (relevantThemeColours: CodeStylerThemeColours, saveColour: Colour) => {relevantThemeColours[getCurrentMode()].header.externalReference.displayTimestampColour = saveColour;}, + () => !this.plugin.settings.currentTheme.settings.header.externalReference.displayTimestamp, + );}); + } generateCodeblockHighlightSettings(containerEl: HTMLElement) { containerEl.createEl("h3", {text: "Highlighting Appearance"}); new Setting(containerEl) @@ -1020,7 +1078,18 @@ export class SettingsTab extends PluginSettingTab { (relevantThemeColours: CodeStylerThemeColours) => relevantThemeColours[getCurrentMode()].highlights.activeEditorLineColour, (relevantThemeColours: CodeStylerThemeColours, saveColour: Colour) => {relevantThemeColours[getCurrentMode()].highlights.activeEditorLineColour = saveColour;}, () => !this.plugin.settings.currentTheme.settings.highlights.activeEditorLine, - );}); + ); + }); + new Setting(this.advancedSettingsContainer) + .setName("External References Automatic Update on Load") + .setDesc("If enabled, external references will be updated automatically on load when possible.") + .addToggle(toggle => toggle + .setTooltip("Toggle auto-update external references") + .setValue(this.plugin.settings.externalReferenceUpdateOnLoad) + .onChange((value) => { + this.plugin.settings.externalReferenceUpdateOnLoad = value; + this.saveSettings(); + })); this.disableableComponents["editorActiveLineHighlight"].push(this.pickrs["editor_active_line_highlight"].resetButton); new Setting(this.advancedSettingsContainer) .setName("Reset inbuilt themes") diff --git a/src/css/codeblocks.css b/src/css/codeblocks.css index f44a66e..7be438a 100644 --- a/src/css/codeblocks.css +++ b/src/css/codeblocks.css @@ -264,15 +264,15 @@ pre.code-styler-pre .code-styler-header-external-reference > button { } div.external-reference-repo, div.external-reference-repo-icon { - color: var(--code-styler-external-reference-repo-colour, cyan); + color: var(--code-styler-header-external-reference-repository, cyan); } div.external-reference-ref, div.external-reference-ref-icon { - color: var(--code-styler-external-reference-ref-colour, pink); + color: var(--code-styler-header-external-reference-version, pink); } div.external-reference-timestamp, div.external-reference-timestamp-icon { - color: var(--code-styler-external-reference-timestamp-colour, grey); + color: var(--code-styler-header-external-reference-timestamp, grey); } div:has(> img.code-styler-icon) { display: inline-flex; diff --git a/src/main.ts b/src/main.ts index bf6d7b0..064b31a 100644 --- a/src/main.ts +++ b/src/main.ts @@ -138,7 +138,7 @@ export default class CodeStylerPlugin extends Plugin { await this.app.vault.adapter.mkdir(this.app.vault.configDir + EXTERNAL_REFERENCE_PATH); await this.app.vault.adapter.write(this.app.vault.configDir + EXTERNAL_REFERENCE_CACHE, JSON.stringify({})); } - if (true) //TODO (@mayurankv) Change to be based on update on load setting + if (this.settings.externalReferenceUpdateOnLoad) await updateExternalReferencedFiles(this); else { await cleanExternalReferencedFiles(this); diff --git a/styles.css b/styles.css index 8e676f1..c897863 100644 --- a/styles.css +++ b/styles.css @@ -256,15 +256,15 @@ pre.code-styler-pre .code-styler-header-external-reference > button { } div.external-reference-repo, div.external-reference-repo-icon { - color: var(--code-styler-external-reference-repo-colour, cyan); + color: var(--code-styler-header-external-reference-repository, cyan); } div.external-reference-ref, div.external-reference-ref-icon { - color: var(--code-styler-external-reference-ref-colour, pink); + color: var(--code-styler-header-external-reference-version, pink); } div.external-reference-timestamp, div.external-reference-timestamp-icon { - color: var(--code-styler-external-reference-timestamp-colour, grey); + color: var(--code-styler-header-external-reference-timestamp, grey); } div:has(> img.code-styler-icon) { display: inline-flex; @@ -1346,4 +1346,4 @@ div.block-language-include pre.code-styler-pre button.copy-code-button:hover { /* src/styles.css */ /*! Complicated */ -/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL2Nzcy9jb2RlYmxvY2tzLmNzcyIsICJzcmMvY3NzL2lubGluZUNvZGUuY3NzIiwgInNyYy9jc3MvZnJvbnRtYXR0ZXIuY3NzIiwgInNyYy9jc3MvcGRmRXhwb3J0LmNzcyIsICJzcmMvY3NzL3BpY2tyLmNzcyIsICJzcmMvY3NzL3NldHRpbmdzLmNzcyIsICJzcmMvY3NzL3BsdWdpbkNvbXBhdGliaWxpdHkuY3NzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiogRGVmaW5lIENTUyBWYXJpYWJsZXMgKi9cbmJvZHkge1xuXHQvKiBDb2RlYmxvY2sgQm9keSAqL1xuXHQtLWJvcmRlci1yYWRpdXM6IDEwcHg7XG5cdC0tZ3JhZGllbnQtYmFja2dyb3VuZC1jb2xvdXI6IHRyYW5zcGFyZW50O1xuXHQtLWNvZGUtcGFkZGluZzogOHB4O1xuXHQtLWNvbnRhaW5lci1oZWlnaHQ6IGNhbGModmFyKC0tbGFuZ3VhZ2UtaWNvbi1zaXplKSArIDIgKiB2YXIoLS1oZWFkZXItaW5uZXItdmVydGljYWwtcGFkZGluZykgKiB2YXIoLS1oZWFkZXItZm9udC1zaXplKSk7XG5cdC0tY29udGFpbmVyLW1pbi1oZWlnaHQ6IGNhbGMoKHZhcigtLWhlYWRlci1mb250LXNpemUpICsgMiAqIHZhcigtLWhlYWRlci1pbm5lci12ZXJ0aWNhbC1wYWRkaW5nKSAqIHZhcigtLWhlYWRlci1mb250LXNpemUpKSAqIHZhcigtLWxpbmUtaGVpZ2h0LW5vcm1hbCkpO1xuXHQtLWxhbmd1YWdlLWJvcmRlci1jb2xvdXI6IHZhcigtLWNvZGUtc3R5bGVyLWNvZGVibG9jay1iYWNrZ3JvdW5kLWNvbG91cik7XG5cdC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoOiAwcHg7XG5cblx0LyogSGVhZGVyICovXG5cdC0taGVhZGVyLWZvbnQtc2l6ZTogdmFyKC0tY29kZS1zaXplKTtcblx0LS1oZWFkZXItcGFkZGluZzogMHB4O1xuXHQtLWhlYWRlci1pbm5lci12ZXJ0aWNhbC1wYWRkaW5nOiAwLjM7XG5cdC0taGVhZGVyLXNwYWNpbmc6IDE1cHg7XG5cdC0taGVhZGVyLWJ1dHRvbi1zcGFjaW5nOiAxNHB4O1xuXHQtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGg6IDJweDtcblx0LS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoLXBhZGRpbmc6IHZhcigtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGgpO1xuXHQtLWNvZGUtc3R5bGVyLWhlYWRlci1ib3JkZXI6IG5vbmU7XG5cdC0tZm9sZGVkLWJvdHRvbS1ib3JkZXI6IDAgc29saWQgdHJhbnNwYXJlbnQ7XG5cdC0tbGFuZ3VhZ2UtaWNvbi1zaXplOiAyOHB4O1xuXHQtLWxhbmd1YWdlLWljb24tZmlsdGVyOiBub25lO1xuXG5cdC8qIExpbmVzICovXG5cdC0tZ3JhZGllbnQtaGlnaGxpZ2h0cy1jb2xvdXItc3RvcDogMTAwJTtcblxuXHQvKiBMaW5lIE51bWJlcnMgKi9cblx0LS1saW5lLW51bWJlci1oZWlnaHQtY29ycmVjdGlvbjogMnB4O1xuXHQtLWxpbmUtbnVtYmVyLWd1dHRlci1wYWRkaW5nOiAxNnB4O1xuXHQtLWxpbmUtbnVtYmVyLWd1dHRlci1taW4td2lkdGg6IDMyLjY3cHg7XG5cblx0LyogTGluZSBUZXh0ICovXG5cdC0tbGluZS13cmFwcGluZzogcHJlLXdyYXA7XG5cdC0tbGluZS1hY3RpdmUtd3JhcHBpbmc6IHZhcigtLWxpbmUtd3JhcHBpbmcpO1xuXG5cdC8qIEJ1dHRvbnMgKi9cblx0LS1jb2RlLXN0eWxlci1idXR0b24tY29sb3VyOiB2YXIoLS10ZXh0LW11dGVkKTtcblx0LS1jb2RlLXN0eWxlci1idXR0b24tYWN0aXZlLWNvbG91cjogd2hpdGU7XG5cdC0tZHVyYXRpb24tYnV0dG9uOiAyNDBtcztcblx0LS1kZW50LWRpZmZlcmVuY2U6IDMwcHg7XG5cdC0tcG9seWdvbi1pbjogcG9seWdvbigwIDAsIDE2cHggMCwgMTZweCAzNnB4LCAwIDM2cHgpO1xuXHQtLXBvbHlnb24tb3V0OiBwb2x5Z29uKDAgMCwgMTAwJSAwLCAxMDAlIDEwMCUsIDAgMTAwJSk7XG5cdC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW46IGNhbGMoMyAqIHZhcigtLWhlYWRlci1idXR0b24tc3BhY2luZykpO1xufVxuXG5AZm9udC1mYWNlIHtcblx0Zm9udC1mYW1pbHk6IGNvZGUtc3R5bGVyLW5lcmRmb250O1xuXHRzcmM6IHVybCgnaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3JvbWthdHYvcG93ZXJsZXZlbDEway1tZWRpYS9tYXN0ZXIvTWVzbG9MR1MlMjBORiUyMFJlZ3VsYXIudHRmJykgZm9ybWF0KCd0cnVldHlwZScpO1xufVxuXG4vKiogUHJlIGVsZW1lbnRzICovXG4uY29kZS1zdHlsZXItcHJlLXBhcmVudHtcblx0bWFyZ2luLWJvdHRvbTogMTZweDtcbn1cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5jb2RlLXN0eWxlci1wcmUtcGFyZW50e1xuXHRtYXJnaW4tYm90dG9tOiAwcHg7XG59XG4uY29kZS1zdHlsZXIgcHJlLmNvZGUtc3R5bGVyLXByZSB7XG5cdG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcblx0bWluLWhlaWdodDogdW5zZXQ7XG5cdHBhZGRpbmc6IDBweCAhaW1wb3J0YW50O1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50O1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgcHJlLmNvZGUtc3R5bGVyLXByZVtjbGFzcyo9J2xhbmd1YWdlLSddIHtcblx0cGFkZGluZy1sZWZ0OiB2YXIoLS1sYW5ndWFnZS1ib3JkZXItd2lkdGgpICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLWNvbG91ciksIHZhcigtLWxhbmd1YWdlLWJvcmRlci1jb2xvdXIpIHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCksIHZhcigtLWNvZGUtc3R5bGVyLWNvZGVibG9jay1iYWNrZ3JvdW5kLWNvbG91cikgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoKSwgdmFyKC0tY29kZS1zdHlsZXItY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3VyKSAxMDAlKSwgdmFyKC0tY29kZS1zdHlsZXItY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyIHByZSA+IGNvZGUge1xuXHRwYWRkaW5nLXRvcDogdmFyKC0tY29kZS1wYWRkaW5nKSAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLWJvdHRvbTogdmFyKC0tY29kZS1wYWRkaW5nKSAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyIHByZS5jb2RlLXN0eWxlci1wcmUgPiBjb2RlIHtcblx0ZGlzcGxheTogZ3JpZDtcblx0bWF4LWhlaWdodDogdW5zZXQ7XG5cdHBhZGRpbmctdG9wOiB2YXIoLS1jb2RlLXBhZGRpbmcpICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctcmlnaHQ6IDBweCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLWJvdHRvbTogdmFyKC0tY29kZS1wYWRkaW5nKSAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xuXHRib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcblx0YmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuXHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbi1jb250ZW50IGF1dG87XG5cdGdyaWQtdGVtcGxhdGUtcm93czogYXV0bztcblx0b3ZlcmZsb3cteDogb3ZlcmxheTtcblx0dHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tZHVyYXRpb24tYnV0dG9uKTtcblx0dHJhbnNpdGlvbi1wcm9wZXJ0eTogbWF4LWhlaWdodCwgcGFkZGluZy10b3AsIHBhZGRpbmctYm90dG9tLCBib3JkZXItdG9wO1xuXHR0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG5cdHdoaXRlLXNwYWNlOiB2YXIoLS1saW5lLXdyYXBwaW5nKSAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyIHByZS5jb2RlLXN0eWxlci1wcmUud3JhcHBlZCA+IGNvZGUge1xuXHQtLWxpbmUtd3JhcHBpbmc6IHByZS13cmFwO1xuXHQtLWxpbmUtYWN0aXZlLXdyYXBwaW5nOiBwcmUtd3JhcDtcbn1cbi5jb2RlLXN0eWxlciBwcmUuY29kZS1zdHlsZXItcHJlLnVud3JhcHBlZCA+IGNvZGUge1xuXHQtLWxpbmUtd3JhcHBpbmc6IHByZTtcblx0LS1saW5lLWFjdGl2ZS13cmFwcGluZzogcHJlO1xufVxuLmNvZGUtc3R5bGVyIHByZS5jb2RlLXN0eWxlci1wcmUudW53cmFwcGVkLWluYWN0aXZlID4gY29kZSB7XG5cdC0tbGluZS13cmFwcGluZzogcHJlO1xuXHQtLWxpbmUtYWN0aXZlLXdyYXBwaW5nOiBwcmUtd3JhcDtcbn1cbi5jb2RlLXN0eWxlciBwcmUuY29kZS1zdHlsZXItcHJlIGNvZGU6bm90KDpoYXMoID4gaW5wdXRbc3R5bGUqPVwiZGlzcGxheTogaW5saW5lO1wiXSkpOmFjdGl2ZSB7XG5cdC0tbGluZS13cmFwcGluZzogdmFyKC0tbGluZS1hY3RpdmUtd3JhcHBpbmcpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgcHJlLmNvZGUtc3R5bGVyLXByZS5jb2RlLXN0eWxlci1mb2xkZWQgPiBjb2RlIHtcblx0bWF4LWhlaWdodDogMCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyIHByZS5jb2RlLXN0eWxlci1wcmU6OmJlZm9yZSxcbi5jb2RlLXN0eWxlciBwcmUuY29kZS1zdHlsZXItcHJlOjphZnRlciB7XG5cdGNvbnRlbnQ6IG5vbmUgIWltcG9ydGFudDtcbn1cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5jbS1lbWJlZC1ibG9jayBwcmUuY29kZS1zdHlsZXItcHJlIHtcblx0bWFyZ2luOiAwZW0gMHB4O1xuXHQvKiBtYXJnaW46IDFlbSAwcHg7ICovXG59XG5cbi8qKiBFZGl0aW5nIE1vZGUgQm9keSAqL1xuYm9keS5jb2RlLXN0eWxlciAubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyICsgW2NsYXNzKj1cImNvZGUtc3R5bGVyLWxpbmVcIl0uSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4ge1xuXHRib3JkZXItdG9wOiBub25lICFpbXBvcnRhbnQ7XG5cdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuXHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXNvdXJjZS12aWV3IFtjbGFzcyo9XCJjb2RlLXN0eWxlci1saW5lXCJdLkh5cGVyTUQtY29kZWJsb2NrLWVuZCB7XG5cdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuXHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG59XG5ib2R5LmNvZGUtc3R5bGVyIC5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXItaGlkZGVuICsgW2NsYXNzKj1cImNvZGUtc3R5bGVyLWxpbmVcIl0uSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4ge1xuXHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50O1xuXHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudFxufVxuYm9keS5jb2RlLXN0eWxlciAubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLWhpZGRlbiArIFtjbGFzcyo9XCJjb2RlLXN0eWxlci1saW5lXCJdLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luIC5jb2RlLXN0eWxlci1saW5lLW51bWJlciB7XG5cdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9ja1tjbGFzcyo9J2NvZGUtc3R5bGVyLWxpbmUnXSB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcblx0cGFkZGluZy1sZWZ0OiB2YXIoLS1zaXplLTQtNCkgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1ncmFkaWVudC1iYWNrZ3JvdW5kLWNvbG91cikgdmFyKC0tZ3JhZGllbnQtaGlnaGxpZ2h0cy1jb2xvdXItc3RvcCksIHRyYW5zcGFyZW50IDEwMCUpLCB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9ja1tjbGFzcyo9J2NvZGUtc3R5bGVyLWxpbmUnXVtjbGFzcyo9J2xhbmd1YWdlLSddIHtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1sYW5ndWFnZS1ib3JkZXItY29sb3VyKSwgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLWNvbG91cikgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoKSwgdmFyKC0tZ3JhZGllbnQtYmFja2dyb3VuZC1jb2xvdXIpIHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCkgdmFyKC0tZ3JhZGllbnQtaGlnaGxpZ2h0cy1jb2xvdXItc3RvcCksIHRyYW5zcGFyZW50IDEwMCUpLCB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9ja1tjbGFzcyo9J2NvZGUtc3R5bGVyLWxpbmUnXVtjbGFzcyo9J2xhbmd1YWdlLSddIC5jb2RlLXN0eWxlci1saW5lLW51bWJlciB7XG5cdG1hcmdpbi1sZWZ0OiB2YXIoLS1sYW5ndWFnZS1ib3JkZXItd2lkdGgpO1xufVxuXG4vKiogSGVhZGVyIHN0eWxpbmcgKi9cbmJvZHkgLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXItaGlkZGVuIHtcblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIge1xuXHRkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xuXHRoZWlnaHQ6IHZhcigtLWNvbnRhaW5lci1oZWlnaHQpO1xuXHRtaW4taGVpZ2h0OiB2YXIoLS1jb250YWluZXItbWluLWhlaWdodCk7XG5cdGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuXHRwYWRkaW5nLXRvcDogdmFyKC0taGVhZGVyLXBhZGRpbmcpO1xuXHRtYXJnaW4tdG9wOiAwcHggIWltcG9ydGFudDtcblx0Zm9udC1zaXplOiB2YXIoLS1oZWFkZXItZm9udC1zaXplKTtcblx0dHJhbnNpdGlvbjogYm9yZGVyLWJvdHRvbSBlYXNlLWluLW91dCB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcbn1cbi5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIge1xuXHRwYWRkaW5nLWJvdHRvbTogdmFyKC0taGVhZGVyLXNlcGFyYXRvci13aWR0aCk7XG5cdHBhZGRpbmctbGVmdDogdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoKTtcblx0Ym9yZGVyLXRvcDogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWJvcmRlcik7XG5cdGJvcmRlci1yaWdodDogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWJvcmRlcik7XG5cdGJvcmRlci1sZWZ0OiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItYm9yZGVyKTtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1iYWNrZ3JvdW5kLWNvbG91cikgMCUsdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWJhY2tncm91bmQtY29sb3VyKSBjYWxjKDEwMCUgLSB2YXIoLS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoKSksIHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1zZXBhcmF0b3ItY29sb3VyKSBjYWxjKDEwMCUgLSB2YXIoLS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoKSksIHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1zZXBhcmF0b3ItY29sb3VyKSAxMDAlKSB2YXIoLS1sYW5ndWFnZS1ib3JkZXItd2lkdGgpIGJvdHRvbS8xMDAlIGJvcmRlci1ib3ggbm8tcmVwZWF0LHZhcigtLWxhbmd1YWdlLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG5cdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuXHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyIHtcblx0Ym9yZGVyLWJvdHRvbTogdmFyKC0taGVhZGVyLXNlcGFyYXRvci13aWR0aCkgc29saWQgdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLXNlcGFyYXRvci1jb2xvdXIpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItYmFja2dyb3VuZC1jb2xvdXIpO1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3IDpub3QocHJlLmNvZGUtc3R5bGVyLXByZSkgPiAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lci5jb2RlLXN0eWxlci1oZWFkZXItZm9sZGVkIHtcblx0cGFkZGluZy1ib3R0b206IHZhcigtLWhlYWRlci1wYWRkaW5nKTtcblx0Ym9yZGVyLWJvdHRvbTogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWJvcmRlcik7XG5cdGJvcmRlci1ib3R0b206IHZhcigtLWZvbGRlZC1ib3R0b20tYm9yZGVyKTtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1iYWNrZ3JvdW5kLWNvbG91cikgMCUsdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWJhY2tncm91bmQtY29sb3VyKSAxMDAlKSB2YXIoLS1sYW5ndWFnZS1ib3JkZXItd2lkdGgpIGJvdHRvbS8xMDAlIGJvcmRlci1ib3ggbm8tcmVwZWF0LHZhcigtLWxhbmd1YWdlLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuXHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlLmNvZGUtc3R5bGVyLWZvbGRlZCAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciB7XG5cdGJvcmRlci1ib3R0b206IHZhcigtLWZvbGRlZC1ib3R0b20tYm9yZGVyKTtcbn1cbi5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyIC5jb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnIHtcblx0ZGlzcGxheTogZmxleDtcblx0aGVpZ2h0OiAxMDAlO1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRhbGlnbi1jb250ZW50OiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRwYWRkaW5nLXRvcDogY2FsYygxZW0gKiB2YXIoLS1oZWFkZXItaW5uZXItdmVydGljYWwtcGFkZGluZykpO1xuXHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1oZWFkZXItc3BhY2luZyk7XG5cdHBhZGRpbmctYm90dG9tOiBjYWxjKDFlbSAqIHZhcigtLWhlYWRlci1pbm5lci12ZXJ0aWNhbC1wYWRkaW5nKSk7XG5cdHBhZGRpbmctbGVmdDogdmFyKC0taGVhZGVyLXNwYWNpbmcpO1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKSB2YXIoLS1ib3JkZXItcmFkaXVzKSAwcHggMHB4O1xuXHRtYXJnaW4tcmlnaHQ6IHZhcigtLWhlYWRlci1zcGFjaW5nKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZy1iYWNrZ3JvdW5kLWNvbG91cik7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnLXRleHQtY29sb3VyKTtcblx0Zm9udC1zaXplOiBpbmhlcml0O1xuXHRmb250LXN0eWxlOiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnLXRleHQtaXRhbGljLCBub3JtYWwpO1xuXHRmb250LXdlaWdodDogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZy10ZXh0LWJvbGQsIG5vcm1hbCk7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0dHJhbnNpdGlvbjogYm9yZGVyLXJhZGl1cyBlYXNlLWluLW91dCB2YXIoLS1kdXJhdGlvbi1idXR0b24pLCBwYWRkaW5nIGVhc2UtaW4tb3V0IHZhcigtLWR1cmF0aW9uLWJ1dHRvbik7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLmNvZGUtc3R5bGVyLWhlYWRlci1mb2xkZWQgLmNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWcsXG5wcmUuY29kZS1zdHlsZXItcHJlLmNvZGUtc3R5bGVyLWZvbGRlZCAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciAuY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZyB7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xufVxuLmNvZGUtc3R5bGVyLWhlYWRlci10ZXh0LFxuLmNvZGUtc3R5bGVyLWhlYWRlci1leHRlcm5hbC1yZWZlcmVuY2UgPiBkaXYsXG5wcmUuY29kZS1zdHlsZXItcHJlIC5jb2RlLXN0eWxlci1oZWFkZXItZXh0ZXJuYWwtcmVmZXJlbmNlID4gYnV0dG9uIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0YWxpZ24tY29udGVudDogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0cGFkZGluZy10b3A6IGNhbGMoMWVtICogdmFyKC0taGVhZGVyLWlubmVyLXZlcnRpY2FsLXBhZGRpbmcpKTtcblx0cGFkZGluZy1ib3R0b206IGNhbGMoMWVtICogdmFyKC0taGVhZGVyLWlubmVyLXZlcnRpY2FsLXBhZGRpbmcpKTtcblx0cGFkZGluZy1sZWZ0OiAwcHg7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItdGV4dC1jb2xvdXIpO1xuXHRmb250LXNpemU6IGluaGVyaXQ7XG5cdGZvbnQtc3R5bGU6IHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci10aXRsZS10ZXh0LWl0YWxpYywgbm9ybWFsKTtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci10aXRsZS10ZXh0LWJvbGQsIG5vcm1hbCk7XG5cdHRyYW5zaXRpb246IHBhZGRpbmcgZWFzZS1pbi1vdXQgdmFyKC0tZHVyYXRpb24tYnV0dG9uKTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgLmNvZGUtc3R5bGVyLWhlYWRlci1leHRlcm5hbC1yZWZlcmVuY2UgPiBidXR0b24ge1xuXHRkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG87XG5cdHBhZGRpbmctdG9wOiBjYWxjKDFlbSAqIHZhcigtLWhlYWRlci1pbm5lci12ZXJ0aWNhbC1wYWRkaW5nKSkgIWltcG9ydGFudDtcblx0cGFkZGluZy1ib3R0b206IGNhbGMoMWVtICogdmFyKC0taGVhZGVyLWlubmVyLXZlcnRpY2FsLXBhZGRpbmcpKSAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLWxlZnQ6IDZweCAhaW1wb3J0YW50O1xuXHR0cmFuc2l0aW9uOiAgcGFkZGluZyBlYXNlLWluLW91dCB2YXIoLS1kdXJhdGlvbi1idXR0b24pLCBzY2FsZSBlYXNlLWluLW91dCB2YXIoLS1kdXJhdGlvbi1idXR0b24pLCB2aXNpYmlsaXR5IHZhcigtLWR1cmF0aW9uLWJ1dHRvbiksIG9wYWNpdHkgdmFyKC0tZHVyYXRpb24tYnV0dG9uKSAhaW1wb3J0YW50O1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSAuY29kZS1zdHlsZXItaGVhZGVyLWV4dGVybmFsLXJlZmVyZW5jZSA+IGJ1dHRvbjpob3ZlciB7XG5cdHNjYWxlOiAxLjQ7XG59XG5ib2R5IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyOm5vdCg6aGFzKCBkaXYgPiBpbWcuY29kZS1zdHlsZXItaWNvbikpIC5jb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnIHtcblx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMCAhaW1wb3J0YW50O1xuXHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG59XG5ib2R5IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyOm5vdCg6aGFzKCAuY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZykpIC5jb2RlLXN0eWxlci1oZWFkZXItdGV4dCB7XG5cdHBhZGRpbmctbGVmdDogdmFyKC0taGVhZGVyLXNwYWNpbmcpO1xufVxuLmNvZGUtc3R5bGVyLWhlYWRlci1leHRlcm5hbC1yZWZlcmVuY2Uge1xuXHRkaXNwbGF5OiBjb250ZW50cztcblx0bWFyZ2luLWxlZnQ6IHZhcigtLWhlYWRlci1zcGFjaW5nKTtcbn1cbi5jb2RlLXN0eWxlci1oZWFkZXItZXh0ZXJuYWwtcmVmZXJlbmNlID4gZGl2OmZpcnN0LWNoaWxkIHtcblx0cGFkZGluZy1sZWZ0OiB2YXIoLS1oZWFkZXItc3BhY2luZykgIWltcG9ydGFudDtcbn1cbi5jb2RlLXN0eWxlci1oZWFkZXItZXh0ZXJuYWwtcmVmZXJlbmNlID4gZGl2LFxucHJlLmNvZGUtc3R5bGVyLXByZSAuY29kZS1zdHlsZXItaGVhZGVyLWV4dGVybmFsLXJlZmVyZW5jZSA+IGJ1dHRvbiB7XG5cdHBhZGRpbmctbGVmdDogNnB4O1xuXHRmb250LWZhbWlseTogY29kZS1zdHlsZXItbmVyZGZvbnQsIG1lbmxvLCB2YXIoLS1mb250LW1vbm9zcGFjZSk7XG5cdGZvbnQtc2l6ZTogdmFyKC0tY29kZS1zdHlsZXItZXh0ZXJuYWwtcmVmZXJlbmNlLXRleHQtc2l6ZSx4eC1zbWFsbCk7XG59XG4uY29kZS1zdHlsZXItaGVhZGVyLWV4dGVybmFsLXJlZmVyZW5jZSA+IGRpdltjbGFzcyQ9aWNvbl0ge1xuXHRmb250LXNpemU6IHZhcigtLWNvZGUtc3R5bGVyLWV4dGVybmFsLXJlZmVyZW5jZS1pY29uLXNpemUseC1zbWFsbCk7XG59XG5kaXYuZXh0ZXJuYWwtcmVmZXJlbmNlLXJlcG8sXG5kaXYuZXh0ZXJuYWwtcmVmZXJlbmNlLXJlcG8taWNvbiB7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1leHRlcm5hbC1yZWZlcmVuY2UtcmVwby1jb2xvdXIsIGN5YW4pO1xufVxuZGl2LmV4dGVybmFsLXJlZmVyZW5jZS1yZWYsXG5kaXYuZXh0ZXJuYWwtcmVmZXJlbmNlLXJlZi1pY29uIHtcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWV4dGVybmFsLXJlZmVyZW5jZS1yZWYtY29sb3VyLCBwaW5rKTtcbn1cbmRpdi5leHRlcm5hbC1yZWZlcmVuY2UtdGltZXN0YW1wLFxuZGl2LmV4dGVybmFsLXJlZmVyZW5jZS10aW1lc3RhbXAtaWNvbiB7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1leHRlcm5hbC1yZWZlcmVuY2UtdGltZXN0YW1wLWNvbG91ciwgZ3JleSk7XG59XG5kaXY6aGFzKD4gaW1nLmNvZGUtc3R5bGVyLWljb24pIHtcblx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdHBhZGRpbmctdG9wOiBjYWxjKDFlbSAqIHZhcigtLWhlYWRlci1pbm5lci12ZXJ0aWNhbC1wYWRkaW5nKSk7XG5cdHBhZGRpbmctcmlnaHQ6IHZhcigtLWhlYWRlci1zcGFjaW5nKTtcblx0cGFkZGluZy1ib3R0b206IGNhbGMoMWVtICogdmFyKC0taGVhZGVyLWlubmVyLXZlcnRpY2FsLXBhZGRpbmcpKTtcblx0cGFkZGluZy1sZWZ0OiB2YXIoLS1oZWFkZXItc3BhY2luZyk7XG5cdHRyYW5zaXRpb246IHBhZGRpbmcgZWFzZS1pbi1vdXQgdmFyKC0tZHVyYXRpb24tYnV0dG9uKTtcbn1cbi5jb2RlLXN0eWxlci1pY29uIHtcblx0d2lkdGg6IHZhcigtLWxhbmd1YWdlLWljb24tc2l6ZSk7XG5cdGhlaWdodDogdmFyKC0tbGFuZ3VhZ2UtaWNvbi1zaXplKTtcblx0Ym9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG5cdG1hcmdpbjogMCAhaW1wb3J0YW50O1xuXHRmaWx0ZXI6IHZhcigtLWxhbmd1YWdlLWljb24tZmlsdGVyKTtcbn1cblxuLyoqIExpbmVzICovXG5wcmUuY29kZS1zdHlsZXItcHJlIFtjbGFzc149J2NvZGUtc3R5bGVyLWxpbmUtaGlnaGxpZ2h0ZWQnXSA+IC5jb2RlLXN0eWxlci1saW5lLXRleHQge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLWdyYWRpZW50LWJhY2tncm91bmQtY29sb3VyKSAwJSB2YXIoLS1ncmFkaWVudC1oaWdobGlnaHRzLWNvbG91ci1zdG9wKSwgdmFyKC0tY29kZS1zdHlsZXItY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3VyKSAxMDAlKTtcbn1cbi5jb2RlLXN0eWxlci1saW5lLWhpZ2hsaWdodGVkIHtcblx0LS1ncmFkaWVudC1iYWNrZ3JvdW5kLWNvbG91cjogdmFyKC0tY29kZS1zdHlsZXItZGVmYXVsdC1oaWdobGlnaHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuLyohIENvbXBsaWNhdGVkICovXG4uY29kZS1zdHlsZXItYWN0aXZlLWxpbmUtaGlnaGxpZ2h0IC5jbS1hY3RpdmUsXG4uY29kZS1zdHlsZXItYWN0aXZlLWxpbmUtaGlnaGxpZ2h0LWVkaXRvciAuY20tYWN0aXZlIHtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB2YXIoLS1jb2RlLXN0eWxlci1hY3RpdmUtZWRpdG9yLWxpbmUtY29sb3VyKSwgdmFyKC0tZ3JhZGllbnQtaGlnaGxpZ2h0cy1jb2xvdXItc3RvcCksIHRyYW5zcGFyZW50KSAhaW1wb3J0YW50O1xufVxuLyohIENvbXBsaWNhdGVkICovXG4uY29kZS1zdHlsZXItYWN0aXZlLWxpbmUtaGlnaGxpZ2h0IC5tYXJrZG93bi1zb3VyY2UtdmlldyAuSHlwZXJNRC1jb2RlYmxvY2suY20tYWN0aXZlLFxuLmNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodC1jb2RlYmxvY2sgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9jay5jbS1hY3RpdmUge1xuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHZhcigtLWNvZGUtc3R5bGVyLWFjdGl2ZS1jb2RlYmxvY2stbGluZS1jb2xvdXIpLCB2YXIoLS1ncmFkaWVudC1oaWdobGlnaHRzLWNvbG91ci1zdG9wKSwgdmFyKC0tY29kZS1zdHlsZXItY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3VyKSkgIWltcG9ydGFudDtcbn1cblxuLyoqIExpbmUgbnVtYmVycyAqL1xuLm1hcmtkb3duLXNvdXJjZS12aWV3IDpub3QoZGl2KTpub3QoW2NsYXNzKj1cIkh5cGVyTUQtY29kZWJsb2NrXCJdKSA+IC5jb2RlLXN0eWxlci1saW5lLW51bWJlciB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG4uY29kZS1zdHlsZXIgY29kZSA+IGRpdjpmaXJzdC1jaGlsZCA+IC5jb2RlLXN0eWxlci1saW5lLW51bWJlciB7IC8qPyBNYWludGFpbiBndXR0ZXIgY29sb3VyIHdoZW4gcGFkZGVkICovXG5cdGJveC1zaGFkb3c6IDBweCBjYWxjKC0xICogdmFyKC0tY29kZS1wYWRkaW5nKSkgdmFyKC0tY29kZS1zdHlsZXItZ3V0dGVyLWJhY2tncm91bmQtY29sb3VyKTtcblx0dHJhbnNpdGlvbjogYm94LXNoYWRvdyBlYXNlLWluLW91dCB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xufVxuLmNvZGUtc3R5bGVyIC5jb2RlLXN0eWxlci1mb2xkZWQgPiBjb2RlID4gZGl2OmZpcnN0LWNoaWxkID4gLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyIHsgLyo/IE1haW50YWluIGd1dHRlciBjb2xvdXIgd2hlbiBwYWRkZWQgKi9cblx0Ym94LXNoYWRvdzogMHB4IDBweCB2YXIoLS1jb2RlLXN0eWxlci1ndXR0ZXItYmFja2dyb3VuZC1jb2xvdXIpO1xufVxuLmNvZGUtc3R5bGVyIGNvZGUgPiBkaXY6bGFzdC1jaGlsZCA+IC5jb2RlLXN0eWxlci1saW5lLW51bWJlciB7IC8qPyBNYWludGFpbiBndXR0ZXIgY29sb3VyIHdoZW4gcGFkZGVkICovXG5cdGJveC1zaGFkb3c6IDBweCB2YXIoLS1jb2RlLXBhZGRpbmcpIHZhcigtLWNvZGUtc3R5bGVyLWd1dHRlci1iYWNrZ3JvdW5kLWNvbG91cik7XG59XG4uY29kZS1zdHlsZXIgY29kZSA+IGRpdjpvbmx5LWNoaWxkID4gLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyIHsgLyo/IE1haW50YWluIGd1dHRlciBjb2xvdXIgd2hlbiBwYWRkZWQgKi9cblx0Ym94LXNoYWRvdzogMHB4IGNhbGMoLTEgKiB2YXIoLS1jb2RlLXBhZGRpbmcpKSB2YXIoLS1jb2RlLXN0eWxlci1ndXR0ZXItYmFja2dyb3VuZC1jb2xvdXIpLDBweCB2YXIoLS1jb2RlLXBhZGRpbmcpIHZhcigtLWNvZGUtc3R5bGVyLWd1dHRlci1iYWNrZ3JvdW5kLWNvbG91cik7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGRpdiA+IFtjbGFzcyo9J2NvZGUtc3R5bGVyLWxpbmUtbnVtYmVyJ10sXG4ubWFya2Rvd24tc291cmNlLXZpZXcgZGl2W2NsYXNzKj1cIkh5cGVyTUQtY29kZWJsb2NrXCJdID4gW2NsYXNzKj0nY29kZS1zdHlsZXItbGluZS1udW1iZXInXSB7XG5cdHdpZHRoOiB2YXIoLS1saW5lLW51bWJlci1ndXR0ZXItd2lkdGgpO1xuXHRtaW4td2lkdGg6IHZhcigtLWxpbmUtbnVtYmVyLWd1dHRlci1taW4td2lkdGgpO1xuXHRwYWRkaW5nLXJpZ2h0OiA4cHg7XG5cdHBhZGRpbmctbGVmdDogY2FsYyg0cHggKyB2YXIoLS1sYW5ndWFnZS1ib3JkZXItd2lkdGgpKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZS1zdHlsZXItZ3V0dGVyLWJhY2tncm91bmQtY29sb3VyKTtcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWd1dHRlci10ZXh0LWNvbG91cik7XG5cdGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm9zcGFjZSk7XG5cdGZvbnQtc2l6ZTogdmFyKC0tY29kZS1zaXplKTtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdHVzZXItc2VsZWN0OiBub25lO1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3IFtjbGFzcyo9XCJIeXBlck1ELWNvZGVibG9ja1wiXSA+IC5jb2RlLXN0eWxlci1saW5lLW51bWJlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRtaW4td2lkdGg6IGNhbGModmFyKC0tbGluZS1udW1iZXItZ3V0dGVyLW1pbi13aWR0aCkgLSAxMnB4KTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRib3gtc2l6aW5nOiBjb250ZW50LWJveDtcblx0cGFkZGluZy10b3A6IHZhcigtLWxpbmUtbnVtYmVyLWhlaWdodC1jb3JyZWN0aW9uKTtcblx0ZGlyZWN0aW9uOiBydGw7XG5cdG92ZXJmbG93LXg6IGF1dG87XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcgLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luIC5jb2RlLXN0eWxlci1saW5lLW51bWJlcixcbi5tYXJrZG93bi1zb3VyY2UtdmlldyAuSHlwZXJNRC1jb2RlYmxvY2stZW5kIC5jb2RlLXN0eWxlci1saW5lLW51bWJlciB7XG5cdHdpZHRoOiB2YXIoLS1saW5lLW51bWJlci1ndXR0ZXItd2lkdGgpO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSAuY29kZS1zdHlsZXItbGluZS1udW1iZXIge1xuXHRwb3NpdGlvbjogc3RpY2t5O1xuXHR0b3A6IC0xcHg7XG5cdGxlZnQ6IDA7XG5cdGJvcmRlci10b3A6IHZhcigtLWxpbmUtbnVtYmVyLWhlaWdodC1jb3JyZWN0aW9uKSBzb2xpZCB0cmFuc3BhcmVudDtcblx0Z3JpZC1jb2x1bW46IDE7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGRpdjpsYXN0LWNoaWxkID4gLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyIHtcblx0d2lkdGg6IHVuc2V0O1xufVxuLmNvZGUtc3R5bGVyLWd1dHRlci1oaWdobGlnaHQgcHJlLmNvZGUtc3R5bGVyLXByZSBbY2xhc3MqPVwiY29kZS1zdHlsZXItbGluZS1oaWdobGlnaHRlZFwiXSAuY29kZS1zdHlsZXItbGluZS1udW1iZXIge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmFkaWVudC1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbn1cbi5jb2RlLXN0eWxlci1hY3RpdmUtbGluZS1oaWdobGlnaHQuY29kZS1zdHlsZXItZ3V0dGVyLWhpZ2hsaWdodCAubWFya2Rvd24tc291cmNlLXZpZXcgLkh5cGVyTUQtY29kZWJsb2NrW2NsYXNzKj1cImNvZGUtc3R5bGVyLWxpbmVcIl0uY20tYWN0aXZlIC5jb2RlLXN0eWxlci1saW5lLW51bWJlcixcbi5jb2RlLXN0eWxlci1hY3RpdmUtbGluZS1oaWdobGlnaHQtY29kZWJsb2NrLmNvZGUtc3R5bGVyLWd1dHRlci1oaWdobGlnaHQgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9ja1tjbGFzcyo9XCJjb2RlLXN0eWxlci1saW5lXCJdLmNtLWFjdGl2ZSAuY29kZS1zdHlsZXItbGluZS1udW1iZXIsXG4uY29kZS1zdHlsZXItZ3V0dGVyLWhpZ2hsaWdodCBbY2xhc3MqPVwiY29kZS1zdHlsZXItbGluZS1oaWdobGlnaHRlZFwiXSAuY29kZS1zdHlsZXItbGluZS1udW1iZXIge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDApICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXItZ3V0dGVyLWFjdGl2ZS1saW5lIC5jbS1hY3RpdmUgLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVye1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItZ3V0dGVyLWFjdGl2ZS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cbi5jb2RlLXN0eWxlciAubWFya2Rvd24tc291cmNlLXZpZXcgLkh5cGVyTUQtY29kZWJsb2NrOmhhcyguY29kZS1zdHlsZXItbGluZS1udW1iZXIpIHtcblx0cGFkZGluZy1sZWZ0OiBjYWxjKDEycHggKyB2YXIoLS1sYW5ndWFnZS1ib3JkZXItd2lkdGgpICsgdmFyKC0tbGluZS1udW1iZXItZ3V0dGVyLXdpZHRoKSArIHZhcigtLWxpbmUtbnVtYmVyLWd1dHRlci1wYWRkaW5nKSkgIWltcG9ydGFudDtcbn1cbi5jb2RlLXN0eWxlciAubWFya2Rvd24tc291cmNlLXZpZXcgLkh5cGVyTUQtY29kZWJsb2NrW2NsYXNzKj0nY29kZS1zdHlsZXItbGluZSddOjpiZWZvcmUge1xuXHRjb250ZW50OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qKiBMaW5lIHRleHQgKi9cbnByZS5jb2RlLXN0eWxlci1wcmUgPiBjb2RlID4gZGl2W2NsYXNzKj0nY29kZS1zdHlsZXItbGluZSddIHtcblx0ZGlzcGxheTogY29udGVudHMgIWltcG9ydGFudDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgLmNvZGUtc3R5bGVyLWxpbmUtdGV4dCB7XG5cdGZsZXgtYmFzaXM6IDEwMCU7XG5cdHBhZGRpbmctbGVmdDogdmFyKC0tbGluZS1udW1iZXItZ3V0dGVyLXBhZGRpbmcpO1xuXHRncmlkLWNvbHVtbjogMjtcbn1cbi5IeXBlck1ELWNvZGVibG9jazpoYXMoPiAuY20td2lkZ2V0QnVmZmVyKSB7IC8qPyBQcmV2ZW50IExpbmUgV3JhcHMgKi9cblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5IeXBlck1ELWNvZGVibG9jazpoYXMoPiAuY20td2lkZ2V0QnVmZmVyKSA+IC5jbS1obWQtY29kZWJsb2NrIHsgLyo/IFByZXZlbnQgTGluZSBXcmFwcyAqL1xuXHR3aGl0ZS1zcGFjZTogYnJlYWstc3BhY2VzO1xufVxuXG4vKiogU2Nyb2xsIEJhciAqL1xucHJlLmNvZGUtc3R5bGVyLXByZS5jb2RlLXN0eWxlci1mb2xkZWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLFxucHJlLmNvZGUtc3R5bGVyLXByZS5jb2RlLXN0eWxlci1mb2xkZWQgY29kZTo6LXdlYmtpdC1zY3JvbGxiYXIsXG5wcmUuY29kZS1zdHlsZXItcHJlLmhpZGUtc2Nyb2xsOjotd2Via2l0LXNjcm9sbGJhcixcbnByZS5jb2RlLXN0eWxlci1wcmUuaGlkZS1zY3JvbGwgY29kZTo6LXdlYmtpdC1zY3JvbGxiYXIge1xuXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qKiBCdXR0b25zICovXG5Aa2V5ZnJhbWVzIG91dGRlbnQge1xuXHRmcm9tIHtcblx0XHRtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pIC0gdmFyKC0tZGVudC1kaWZmZXJlbmNlKSk7XG5cdFx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLWluKTtcblx0fVxuXHR0byB7XG5cdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbik7XG5cdFx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLW91dCk7XG5cdH1cbn1cbkBrZXlmcmFtZXMgaW5kZW50IHtcblx0ZnJvbSB7XG5cdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbik7XG5cdFx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLW91dCk7XG5cdH1cblx0dG8ge1xuXHRcdG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbikgLSB2YXIoLS1kZW50LWRpZmZlcmVuY2UpKTtcblx0XHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24taW4pO1xuXHR9XG59XG5Aa2V5ZnJhbWVzIHJldmVyc2Utb3V0ZGVudCB7XG5cdGZyb20ge1xuXHRcdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1pbik7XG5cdH1cblx0dG8ge1xuXHRcdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1vdXQpO1xuXHR9XG59XG5Aa2V5ZnJhbWVzIHJldmVyc2UtaW5kZW50IHtcblx0ZnJvbSB7XG5cdFx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLW91dCk7XG5cdH1cblx0dG8ge1xuXHRcdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1pbik7XG5cdH1cbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uIHtcblx0ZGlzcGxheTogdW5zZXQgIWltcG9ydGFudDtcblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xuXHRib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcblx0bWFyZ2luOiAwO1xuXHRtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0Ym94LXNoYWRvdzogbm9uZTtcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG5cdGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWludGVyZmFjZSk7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC11aS1zbWFsbGVyKTtcblx0b3BhY2l0eTogMTtcblx0dHJhbnNpdGlvbjogdmlzaWJpbGl0eSB2YXIoLS1kdXJhdGlvbi1idXR0b24pLCBvcGFjaXR5IHZhcigtLWR1cmF0aW9uLWJ1dHRvbik7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlLmNvZGUtc3R5bGVyLWZvbGRlZCBidXR0b24sXG5wcmUuY29kZS1zdHlsZXItcHJlOm5vdCguY29kZS1zdHlsZXItZm9sZGVkKTpub3QoOmhvdmVyKSBidXR0b24sXG5wcmUuY29kZS1zdHlsZXItcHJlOm5vdCguY29kZS1zdHlsZXItZm9sZGVkKTpub3QoOmhvdmVyKSAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lcjo6YWZ0ZXIge1xuXHRvcGFjaXR5OiAwO1xuXHR2aXNpYmlsaXR5OiBoaWRkZW5cbn1cbi5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyOjphZnRlciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dG9wOiAwO1xuXHRyaWdodDogMDtcblx0Ym90dG9tOiAwO1xuXHRsZWZ0OiAwO1xuXHR3aWR0aDogMjBweDtcblx0aGVpZ2h0OiAyMHB4O1xuXHRtYXJnaW46IGF1dG87XG5cdG1hcmdpbi1yaWdodDogdmFyKC0taGVhZGVyLWJ1dHRvbi1zcGFjaW5nKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZS1zdHlsZXItYnV0dG9uLWNvbG91cik7XG5cdGNvbnRlbnQ6IFwiXFwyMDBiXCI7XG5cdC13ZWJraXQtbWFzay1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAzMiAzMicgeG1sOnNwYWNlPSdwcmVzZXJ2ZSclM0UlM0NwYXRoIGQ9J00xNiAyMiA2IDEybDEuNC0xLjQgOC42IDguNiA4LjYtOC42TDI2IDEyeicvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBkPSdNMCAwaDMydjMySDB6Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuXHRtYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDMyIDMyJyBmaWxsPSdub25lJyBzdHJva2U9J2N1cnJlbnRDb2xvcicgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnICUzRSUzQ3BvbHlsaW5lIHBvaW50cz0nNiA5IDEyIDE1IDE4IDknLyUzRSUzQy9zdmclM0VcIik7XG5cdC13ZWJraXQtbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0bWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0b3BhY2l0eTogMTtcblx0c2NhbGU6IDAuODtcblx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLWR1cmF0aW9uLWJ1dHRvbikgZWFzZS1vdXQsIHZpc2liaWxpdHkgdmFyKC0tZHVyYXRpb24tYnV0dG9uKSwgb3BhY2l0eSB2YXIoLS1kdXJhdGlvbi1idXR0b24pLCBzY2FsZSB2YXIoLS1kdXJhdGlvbi1idXR0b24pIGN1YmljLWJlemllcigwLjQsIDAuMTQsIDAuMywgMSk7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlLmNvZGUtc3R5bGVyLWZvbGRlZCAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lcjo6YWZ0ZXIsXG4ubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyOm5vdCg6aGFzKCsgLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luKSk6OmFmdGVyIHtcblx0dHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbn1cbi5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyOmhvdmVyOjphZnRlciB7XG5cdHNjYWxlOiAxO1xufVxuYm9keSBwcmUuY29kZS1zdHlsZXItcHJlOmhhcyguY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lci1oaWRkZW4pIGJ1dHRvbi5jb3B5LWNvZGUtYnV0dG9uLFxuYm9keSAubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLWhpZGRlbiArIC5IeXBlck1ELWNvZGVibG9jay1iZWdpbiBzcGFuLmNvZGUtYmxvY2stZmxhaXIge1xuXHR0b3A6IGNhbGMoMC41ICogdmFyKC0tZm9udC10ZXh0LXNpemUpICogMC44NzUgKiB2YXIoLS1saW5lLWhlaWdodC1ub3JtYWwpKSAhaW1wb3J0YW50O1xuXHQtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luOiAxMnB4O1xufVxuYm9keSAubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLmhpZGRlbiArIC5IeXBlck1ELWNvZGVibG9jay1iZWdpbiB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jb3B5LWNvZGUtYnV0dG9uIHtcblx0dG9wOiBtYXgoY2FsYygwLjUgKiB2YXIoLS1jb250YWluZXItaGVpZ2h0KSAqIDEpLGNhbGMoMC41ICogdmFyKC0tY29udGFpbmVyLW1pbi1oZWlnaHQpICogMSkpICFpbXBvcnRhbnQ7XG5cdGJvdHRvbTogdW5zZXQgIWltcG9ydGFudDtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY29weS1jb2RlLWJ1dHRvbixcbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLnJ1bi1jb2RlLWJ1dHRvbiwgLyo/IEV4ZWN1dGUgQ29kZSBQbHVnaW4gQ29tcGF0aWJpbGl0eSAqL1xuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLkh5cGVyTUQtY29kZWJsb2NrLmNvZGUtc3R5bGVyLWxpbmUgc3Bhbi5jb2RlLWJsb2NrLWZsYWlyIHtcblx0bWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luKSAtIHZhcigtLWRlbnQtZGlmZmVyZW5jZSkpO1xuXHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24taW4pO1xuXHR3aWxsLWNoYW5nZTogbWFyZ2luLXJpZ2h0LCBjbGlwLXBhdGg7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jb3B5LWNvZGUtYnV0dG9uOm5vdCg6YWN0aXZlKSxcbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLnJ1bi1jb2RlLWJ1dHRvbjpub3QoOmFjdGl2ZSksIC8qPyBFeGVjdXRlIENvZGUgUGx1Z2luIENvbXBhdGliaWxpdHkgKi9cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5IeXBlck1ELWNvZGVibG9jay5jb2RlLXN0eWxlci1saW5lIHNwYW4uY29kZS1ibG9jay1mbGFpcjpub3QoOmFjdGl2ZSkge1xuXHRhbmltYXRpb246IGluZGVudCB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY29weS1jb2RlLWJ1dHRvbjpob3ZlcixcbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLnJ1bi1jb2RlLWJ1dHRvbjpob3ZlciwgLyo/IEV4ZWN1dGUgQ29kZSBQbHVnaW4gQ29tcGF0aWJpbGl0eSAqL1xuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLkh5cGVyTUQtY29kZWJsb2NrLmNvZGUtc3R5bGVyLWxpbmUgc3Bhbi5jb2RlLWJsb2NrLWZsYWlyOmhvdmVye1xuXHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luKTtcblx0YW5pbWF0aW9uOiBvdXRkZW50IHZhcigtLWR1cmF0aW9uLWJ1dHRvbik7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24tb3V0KTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNvcHktY29kZS1idXR0b246YWN0aXZlLFxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24ucnVuLWNvZGUtYnV0dG9uOmFjdGl2ZSwgLyo/IEV4ZWN1dGUgQ29kZSBQbHVnaW4gQ29tcGF0aWJpbGl0eSAqL1xuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLkh5cGVyTUQtY29kZWJsb2NrLmNvZGUtc3R5bGVyLWxpbmUgc3Bhbi5jb2RlLWJsb2NrLWZsYWlyOmFjdGl2ZSB7XG5cdHNjYWxlOiAwLjk1O1xuXHR0cmFuc2l0aW9uOiBzY2FsZSB2YXIoLS1kdXJhdGlvbi1idXR0b24pIGN1YmljLWJlemllcigwLjQsIDAuMTQsIDAuMywgMSk7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jb3B5LWNvZGUtYnV0dG9uOjpiZWZvcmUsXG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuSHlwZXJNRC1jb2RlYmxvY2suY29kZS1zdHlsZXItbGluZSBzcGFuLmNvZGUtYmxvY2stZmxhaXI6OmJlZm9yZSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0d2lkdGg6IDE0cHg7XG5cdGhlaWdodDogMTRweDtcblx0cGFkZGluZy1yaWdodDogNHB4O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1idXR0b24tY29sb3VyKTtcblx0Y29udGVudDogXCJcXDIwMGJcIjtcblx0LXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDMyIDMyJyUzRSUzQ3BhdGggZD0nTTI4IDEwdjE4SDEwVjEwaDE4bTAtMkgxMGEyIDIgMCAwIDAtMiAydjE4YTIgMiAwIDAgMCAyIDJoMThhMiAyIDAgMCAwIDItMlYxMGEyIDIgMCAwIDAtMi0yWicvJTNFJTNDcGF0aCBkPSdNNCAxOEgyVjRhMiAyIDAgMCAxIDItMmgxNHYySDRaJy8lM0UlM0NwYXRoIGZpbGw9J25vbmUnIGQ9J00wIDBoMzJ2MzJIMHonIGRhdGEtbmFtZT0nJmx0O1RyYW5zcGFyZW50IFJlY3RhbmdsZSZndDsnLyUzRSUzQy9zdmclM0VcIik7XG5cdG1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMzIgMzInJTNFJTNDcGF0aCBkPSdNMjggMTB2MThIMTBWMTBoMThtMC0ySDEwYTIgMiAwIDAgMC0yIDJ2MThhMiAyIDAgMCAwIDIgMmgxOGEyIDIgMCAwIDAgMi0yVjEwYTIgMiAwIDAgMC0yLTJaJy8lM0UlM0NwYXRoIGQ9J000IDE4SDJWNGEyIDIgMCAwIDEgMi0yaDE0djJINFonLyUzRSUzQ3BhdGggZmlsbD0nbm9uZScgZD0nTTAgMGgzMnYzMkgweicgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycvJTNFJTNDL3N2ZyUzRVwiKTtcblx0LXdlYmtpdC1tYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuXHR2ZXJ0aWNhbC1hbGlnbjogMXB4O1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLkh5cGVyTUQtY29kZWJsb2NrLmNvZGUtc3R5bGVyLWxpbmUgc3Bhbi5jb2RlLWJsb2NrLWZsYWlyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IG1pbihjYWxjKC0wLjUgKiB2YXIoLS1jb250YWluZXItaGVpZ2h0KSAqIDEuMSAtIHZhcigtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGgpKSxjYWxjKC0wLjUgKiB2YXIoLS1jb250YWluZXItbWluLWhlaWdodCkgKiAxLjEgLSB2YXIoLS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoKSkpICFpbXBvcnRhbnQ7XG5cdHJpZ2h0OiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcblx0Zm9udC1zaXplOiAwO1xuXHRsaW5lLWhlaWdodDogaW5pdGlhbCAhaW1wb3J0YW50O1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5IeXBlck1ELWNvZGVibG9jay5jb2RlLXN0eWxlci1saW5lIHNwYW4uY29kZS1ibG9jay1mbGFpciA+ICoge1xuXHR3aWR0aDogMHB4O1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLkh5cGVyTUQtY29kZWJsb2NrLmNvZGUtc3R5bGVyLWxpbmUgc3Bhbi5jb2RlLWJsb2NrLWZsYWlyOjpiZWZvcmUge1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtdWktc21hbGxlcik7XG5cdG9wYWNpdHk6IDE7XG5cdHZlcnRpY2FsLWFsaWduOiAtMXB4O1xuXHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLkh5cGVyTUQtY29kZWJsb2NrLmNvZGUtc3R5bGVyLWxpbmUgc3Bhbi5jb2RlLWJsb2NrLWZsYWlyOjphZnRlciB7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1idXR0b24tY29sb3VyKTtcblx0Y29udGVudDogJ0NvcHknO1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtdWktc21hbGxlcik7XG5cdG9wYWNpdHk6IDE7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4uY29kZS1zdHlsZXItbGluZSB7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKiogTGlua3MgKi9cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5IeXBlck1ELWNvZGVibG9jay5jb2RlLXN0eWxlci1saW5lIC5jb2RlLXN0eWxlci1jb21tZW50LWxpbmsge1xuXHRkaXNwbGF5OiBpbmxpbmU7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuSHlwZXJNRC1jb2RlYmxvY2suY29kZS1zdHlsZXItbGluZSAuY29kZS1zdHlsZXItY29tbWVudC1saW5rID4gcCB7XG5cdGRpc3BsYXk6IGlubGluZTtcbn1cbiIsICIvKiogRGVmaW5lIENTUyBWYXJpYWJsZXMgKi9cbmJvZHkge1xuXHQtLWNvZGUtc3R5bGVyLWlubGluZS1mb250LXdlaWdodDogNDAwO1xuXHQtLWNvZGUtc3R5bGVyLWlubGluZS1ib3JkZXItcmFkaXVzOiA2cHg7XG5cdC0tY29kZS1zdHlsZXItaW5saW5lLXBhZGRpbmctdmVydGljYWw6IDVweDtcblx0LS1jb2RlLXN0eWxlci1pbmxpbmUtcGFkZGluZy1ob3Jpem9udGFsOiA1cHg7XG5cdC0tY29kZS1zdHlsZXItaW5saW5lLW1hcmdpbi1ob3Jpem9udGFsOiAwcHg7XG5cdC0tY29kZS1zdHlsZXItaW5saW5lLWNvbG91cjogdmFyKC0tY29kZS1ub3JtYWwpO1xuXHQtLWNvZGUtc3R5bGVyLWlubGluZS1jb2xvdXItYWN0aXZlOiB2YXIoLS1jb2RlLW5vcm1hbCk7XG5cdC0tY29kZS1zdHlsZXItaW5saW5lLWJhY2tncm91bmQtY29sb3VyOiB2YXIoLS1jb2RlLWJhY2tncm91bmQpO1xufVxuXG4uY29kZS1zdHlsZXIuY29kZS1zdHlsZXItc3R5bGUtaW5saW5lIC5jbS1zLW9ic2lkaWFuIHNwYW4uY20taW5saW5lLWNvZGUsXG4uY29kZS1zdHlsZXIuY29kZS1zdHlsZXItc3R5bGUtaW5saW5lIC5tYXJrZG93bi1yZW5kZXJlZCA6bm90KHByZSkgPiBjb2RlOm5vdChbY2xhc3MqPVwiYmx1clwiXSksXG4uY29kZS1zdHlsZXIuY29kZS1zdHlsZXItc3R5bGUtaW5saW5lIC5yZXZlYWwgOm5vdChwcmUpID4gY29kZTpub3QoW2NsYXNzKj1cImJsdXJcIl0pLFxuLmNvZGUtc3R5bGVyLmNvZGUtc3R5bGVyLXN0eWxlLWlubGluZSBjb2RlLmNvZGUtc3R5bGVyLXNldHRpbmdzLWlubGluZS1jb2RlIHtcblx0cGFkZGluZzogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLXBhZGRpbmctdmVydGljYWwpIHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1wYWRkaW5nLWhvcml6b250YWwpICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50O1xuXHRtYXJnaW46IDBweCB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtbWFyZ2luLWhvcml6b250YWwpICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1jb2xvdXIpO1xuXHRmb250LXdlaWdodDogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLWZvbnQtd2VpZ2h0KTtcbn1cbi5jb2RlLXN0eWxlci5jb2RlLXN0eWxlci1zdHlsZS1pbmxpbmUgLmNtLXMtb2JzaWRpYW4gc3Bhbi5jbS1mb3JtYXR0aW5nLWNvZGUgeyAvKj8gU3RhbmRhbG9uZSBiYWNrdGlja3MgKi9cblx0ZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtY29sb3VyLWFjdGl2ZSk7XG59XG4uY29kZS1zdHlsZXIuY29kZS1zdHlsZXItc3R5bGUtaW5saW5lIC5jbS1zLW9ic2lkaWFuIHNwYW4uY29kZS1zdHlsZXItaW5saW5lLW9wZW5lciB+IHNwYW4uY20taW5saW5lLWNvZGU6bm90KC5jbS1mb3JtYXR0aW5nLWNvZGUpIHtcblx0cGFkZGluZy1sZWZ0OiAwcHggIWltcG9ydGFudDtcblx0Ym9yZGVyLXJhZGl1czogMHB4IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1ib3JkZXItcmFkaXVzKSB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtYm9yZGVyLXJhZGl1cykgMHB4ICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAwcHggIWltcG9ydGFudDtcbn1cbi5jb2RlLXN0eWxlci5jb2RlLXN0eWxlci1zdHlsZS1pbmxpbmUgLmNtLXMtb2JzaWRpYW4gc3Bhbi5jb2RlLXN0eWxlci1pbmxpbmUtb3BlbmVyLFxuLmNvZGUtc3R5bGVyLmNvZGUtc3R5bGVyLXN0eWxlLWlubGluZSAuY20tcy1vYnNpZGlhbiBzcGFuLmNtLWZvcm1hdHRpbmctY29kZTpoYXMoKyBzcGFuLmNtLWlubGluZS1jb2RlOm5vdCguY20tZm9ybWF0dGluZy1jb2RlKSkgey8qPyBGaXJzdCBiYWNrdGljayAqL1xuXHRwYWRkaW5nLXJpZ2h0OiAwcHggIWltcG9ydGFudDtcblx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtcGFkZGluZy1ob3Jpem9udGFsKSAhaW1wb3J0YW50O1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtYm9yZGVyLXJhZGl1cykgMHB4IDBweCB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudDtcblx0bWFyZ2luLXJpZ2h0OiAwcHggIWltcG9ydGFudDtcblx0bWFyZ2luLWxlZnQ6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1tYXJnaW4taG9yaXpvbnRhbCkgIWltcG9ydGFudDtcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1jb2xvdXItYWN0aXZlKTtcbn1cbi5jb2RlLXN0eWxlci5jb2RlLXN0eWxlci1zdHlsZS1pbmxpbmUgLmNtLXMtb2JzaWRpYW4gc3Bhbi5jbS1mb3JtYXR0aW5nLWNvZGUgKyBzcGFuLmNtLWlubGluZS1jb2RlOm5vdCguY20tZm9ybWF0dGluZy1jb2RlKSB7IC8qPyBJbm5lciBjb2RlIHdpdGggYmFja3RpY2tzICovXG5cdHBhZGRpbmctcmlnaHQ6IDBweCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xuXHRib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcblx0bWFyZ2luOiAwcHggMHB4ICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtY29sb3VyLWFjdGl2ZSk7XG59XG4uY29kZS1zdHlsZXIuY29kZS1zdHlsZXItc3R5bGUtaW5saW5lIC5jbS1zLW9ic2lkaWFuIHNwYW4uY20taW5saW5lLWNvZGU6bm90KC5jbS1mb3JtYXR0aW5nLWNvZGUpICsgc3Bhbi5jbS1mb3JtYXR0aW5nLWNvZGUgey8qPyBMYXN0IGJhY2t0aWNrICovXG5cdHBhZGRpbmctcmlnaHQ6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1wYWRkaW5nLWhvcml6b250YWwpICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1yYWRpdXM6IDBweCB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtYm9yZGVyLXJhZGl1cykgdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLWJvcmRlci1yYWRpdXMpIDBweCAhaW1wb3J0YW50O1xuXHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1tYXJnaW4taG9yaXpvbnRhbCkgIWltcG9ydGFudDtcblx0bWFyZ2luLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLWNvbG91ci1hY3RpdmUpO1xufVxuYm9keS5jb2RlLXN0eWxlciBzcGFuLmNvZGUtc3R5bGVyLWlubGluZS1vcGVuZXIgPiBzcGFuID4gaW1nLmNvZGUtc3R5bGVyLWlubGluZS1pY29uOm5vdChbY2xhc3MqPVwiZW1vamlcIl0pIHtcblx0ZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG5cdGhlaWdodDogY2FsYyh2YXIoLS1jb2RlLXNpemUpICogMS4yKTtcblx0bWFyZ2luLWJvdHRvbTogMnB4ICFpbXBvcnRhbnQ7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uY29kZS1zdHlsZXIgc3Bhbi5jb2RlLXN0eWxlci1pbmxpbmUtb3BlbmVyIC5jb2RlLXN0eWxlci1pbmxpbmUtdGl0bGUge1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLXRpdGxlLWNvbG91cik7XG5cdGZvbnQtd2VpZ2h0OiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtdGl0bGUtZm9udC13ZWlnaHQpO1xufVxuLmNvZGUtc3R5bGVyIHNwYW4uY29kZS1zdHlsZXItaW5saW5lLW9wZW5lciAuY29kZS1zdHlsZXItaW5saW5lLXRpdGxlOjphZnRlciB7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtdGl0bGUtY29sb3IpO1xuXHRjb250ZW50OiAnXFxGRjVDJztcbn1cbi5jb2RlLXN0eWxlciBzcGFuLmNvZGUtc3R5bGVyLWlubGluZS1vcGVuZXIgc3BhbjpoYXMoID4gaW1nLmNvZGUtc3R5bGVyLWlubGluZS1pY29uKSB7XG5cdHBhZGRpbmctcmlnaHQ6IDhweDtcbn1cbi5jb2RlLXN0eWxlciAuY20tcy1vYnNpZGlhbiBzcGFuLmNtLWlubGluZS1jb2RlIC5jb2RlLXN0eWxlci1pbmxpbmUtcGFyYW1ldGVycyB7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLWNvbW1lbnQpO1xufVxuXG4ucmV2ZWFsIGltZy5jb2RlLXN0eWxlci1pbmxpbmUtaWNvbiB7XG5cdG1hcmdpbjogaW5oZXJpdDtcbn1cbiIsICIuY20taG1kLWZyb250bWF0dGVyLmNtLWlubGluZS1jb2RlLFxuLmNtLWhtZC1mcm9udG1hdHRlci5jbS1tYXRoIHtcblx0Y29sb3I6IHZhcigtLWNvZGUtbm9ybWFsKTtcbn1cbi5jbS1obWQtZnJvbnRtYXR0ZXIuY20taG1kLWZyb250bWF0dGVyLmNtLWRlZi5jbS1kZWYsXG4uY20taG1kLWZyb250bWF0dGVyLmNtLWNvbW1lbnQsXG4uY20taG1kLWZyb250bWF0dGVyLmNtLW1ldGEge1xuXHRjb2xvcjogdmFyKC0tY29kZS1jb21tZW50KTtcbn1cbi5jbS1obWQtZnJvbnRtYXR0ZXIuY20tdGFnIHtcblx0Y29sb3I6IHZhcigtLWNvZGUtdGFnKTtcbn1cbi5jbS1obWQtZnJvbnRtYXR0ZXIuY20tcHVuY3R1YXRpb24sXG4uY20taG1kLWZyb250bWF0dGVyLmNtLWJyYWNrZXQsXG4uY20taG1kLWZyb250bWF0dGVyLmNtLWhyIHtcblx0Y29sb3I6IHZhcigtLWNvZGUtcHVuY3R1YXRpb24pO1xufVxuLmNtLWhtZC1mcm9udG1hdHRlci5jbS1udW1iZXIge1xuXHRjb2xvcjogdmFyKC0tY29kZS12YWx1ZSk7XG59XG4uY20taG1kLWZyb250bWF0dGVyLmNtLXF1YWxpZmllcixcbi5jbS1obWQtZnJvbnRtYXR0ZXIuY20tc3RyaW5nLFxuLmNtLWhtZC1mcm9udG1hdHRlci5jbS1zdHJpbmctMiB7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0cmluZyk7XG59XG4uY20taG1kLWZyb250bWF0dGVyLmNtLW9wZXJhdG9yIHtcblx0Y29sb3I6IHZhcigtLWNvZGUtb3BlcmF0b3IpO1xufVxuLmNtLWhtZC1mcm9udG1hdHRlci5jbS1saW5rLFxuLmNtLWhtZC1mcm9udG1hdHRlci5jbS12YXJpYWJsZSxcbi5jbS1obWQtZnJvbnRtYXR0ZXIuY20tdmFyaWFibGUtMixcbi5jbS1obWQtZnJvbnRtYXR0ZXIuY20tdmFyaWFibGUtMyB7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXByb3BlcnR5KTtcbn1cbi5jbS1obWQtZnJvbnRtYXR0ZXIsXG4uY20taG1kLWZyb250bWF0dGVyLmNtLWJ1aWx0aW4sXG4uY20taG1kLWZyb250bWF0dGVyLmNtLXByb3BlcnR5LFxuLmNtLWhtZC1mcm9udG1hdHRlci5jbS1hdHRyaWJ1dGUsXG4uY20taG1kLWZyb250bWF0dGVyLmNtLXR5cGUge1xuXHRjb2xvcjogdmFyKC0tY29kZS1mdW5jdGlvbik7XG59XG4uY20taG1kLWZyb250bWF0dGVyLmNtLWtleXdvcmQge1xuXHRjb2xvcjogdmFyKC0tY29kZS1rZXl3b3JkKTtcbn1cbi5jbS1obWQtZnJvbnRtYXR0ZXIuY20tYXRvbSB7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLWltcG9ydGFudClcbn1cbiIsICJkaXYucHJpbnQge1xuXHQtLWxpbmUtd3JhcHBpbmc6IHByZS13cmFwICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgZGl2LnByaW50IHByZS5jb2RlLXN0eWxlci1wcmUgY29kZSB7XG5cdG1heC1oZWlnaHQ6IHVuc2V0ICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgZGl2LnByaW50IHByZS5jb2RlLXN0eWxlci1wcmUuY29kZS1zdHlsZXItZm9sZGVkIGNvZGUge1xuXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4iLCAiLyoqIFBpY2tyIDEuOC4yIE1JVCB8IGh0dHBzOi8vZ2l0aHViLmNvbS9TaW1vbndlcC9waWNrciAqL1xuLnBpY2tyIHtwb3NpdGlvbjogcmVsYXRpdmU7b3ZlcmZsb3c6IHZpc2libGU7dHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApfSAgLnBpY2tyICoge2JveC1zaXppbmc6IGJvcmRlci1ib3g7Ym9yZGVyOiBub25lOy13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTthcHBlYXJhbmNlOiBub25lO291dGxpbmU6IG5vbmV9ICAucGlja3IgLnBjci1idXR0b24ge3Bvc2l0aW9uOiByZWxhdGl2ZTt3aWR0aDogMmVtO2hlaWdodDogMmVtO3BhZGRpbmc6IDAuNWVtO2JvcmRlci1yYWRpdXM6IC4xNWVtO2JhY2tncm91bmQ6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTAgNTBcIiBzdHJva2U9XCIlMjM0MjQ0NUFcIiBzdHJva2Utd2lkdGg9XCI1cHhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PHBhdGggZD1cIk00NSw0NUw1LDVcIj48L3BhdGg+PHBhdGggZD1cIk00NSw1TDUsNDVcIj48L3BhdGg+PC9zdmc+Jykgbm8tcmVwZWF0IGNlbnRlcjtiYWNrZ3JvdW5kLXNpemU6IDA7Y3Vyc29yOiBwb2ludGVyO2ZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBBcmlhbCwgc2Fucy1zZXJpZjt0cmFuc2l0aW9uOiBhbGwgMC4zc30gIC5waWNrciAucGNyLWJ1dHRvbjo6YmVmb3JlIHtwb3NpdGlvbjogYWJzb2x1dGU7ei1pbmRleDogLTE7dG9wOiAwO2xlZnQ6IDA7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO2JvcmRlci1yYWRpdXM6IC4xNWVtO2JhY2tncm91bmQ6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMiAyXCI+PHBhdGggZmlsbD1cIndoaXRlXCIgZD1cIk0xLDBIMlYxSDFWMFpNMCwxSDFWMkgwVjFaXCIvPjxwYXRoIGZpbGw9XCJncmF5XCIgZD1cIk0wLDBIMVYxSDBWMFpNMSwxSDJWMkgxVjFaXCIvPjwvc3ZnPicpO2JhY2tncm91bmQtc2l6ZTogLjVlbTtjb250ZW50OiAnJ30gIC5waWNrciAucGNyLWJ1dHRvbjo6YmVmb3JlIHt6LWluZGV4OiBpbml0aWFsfSAgLnBpY2tyIC5wY3ItYnV0dG9uOjphZnRlciB7cG9zaXRpb246IGFic29sdXRlO3RvcDogMDtsZWZ0OiAwO3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtib3JkZXItcmFkaXVzOiAuMTVlbTtiYWNrZ3JvdW5kOiB2YXIoLS1wY3ItY29sb3IpO2NvbnRlbnQ6ICcnO3RyYW5zaXRpb246IGJhY2tncm91bmQgMC4zc30gIC5waWNrciAucGNyLWJ1dHRvbi5jbGVhciB7YmFja2dyb3VuZC1zaXplOiA3MCV9ICAucGlja3IgLnBjci1idXR0b24uY2xlYXI6OmJlZm9yZSB7b3BhY2l0eTogMH0gIC5waWNrciAucGNyLWJ1dHRvbi5jbGVhcjpmb2N1cyB7Ym94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSksIDAgMCAwIDNweCB2YXIoLS1wY3ItY29sb3IpfSAgLnBpY2tyIC5wY3ItYnV0dG9uLmRpc2FibGVkIHtjdXJzb3I6IG5vdC1hbGxvd2VkfSAgLnBpY2tyICosIC5wY3ItYXBwICoge2JveC1zaXppbmc6IGJvcmRlci1ib3g7Ym9yZGVyOiBub25lOy13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTthcHBlYXJhbmNlOiBub25lO291dGxpbmU6IG5vbmV9ICAucGlja3IgaW5wdXQ6Zm9jdXMsIC5waWNrciBpbnB1dC5wY3ItYWN0aXZlLCAucGlja3IgYnV0dG9uOmZvY3VzLCAucGlja3IgYnV0dG9uLnBjci1hY3RpdmUsIC5wY3ItYXBwIGlucHV0OmZvY3VzLCAucGNyLWFwcCBpbnB1dC5wY3ItYWN0aXZlLCAucGNyLWFwcCBidXR0b246Zm9jdXMsIC5wY3ItYXBwIGJ1dHRvbi5wY3ItYWN0aXZlIHtib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg1KSwgMCAwIDAgM3B4IHZhcigtLXBjci1jb2xvcil9ICAucGlja3IgLnBjci1wYWxldHRlLCAucGlja3IgLnBjci1zbGlkZXIsIC5wY3ItYXBwIC5wY3ItcGFsZXR0ZSwgLnBjci1hcHAgLnBjci1zbGlkZXIge3RyYW5zaXRpb246IGJveC1zaGFkb3cgMC4zc30gIC5waWNrciAucGNyLXBhbGV0dGU6Zm9jdXMsIC5waWNrciAucGNyLXNsaWRlcjpmb2N1cywgLnBjci1hcHAgLnBjci1wYWxldHRlOmZvY3VzLCAucGNyLWFwcCAucGNyLXNsaWRlcjpmb2N1cyB7Ym94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSksIDAgMCAwIDNweCByZ2JhKDAsIDAsIDAsIDAuMjUpfSAgLnBjci1hcHAge3Bvc2l0aW9uOiBmaXhlZDt6LWluZGV4OiAxMDAwMDt0b3A6IDA7bGVmdDogMDtkaXNwbGF5OiBmbGV4O2ZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Ym9yZGVyLXJhZGl1czogMC4xZW07YmFja2dyb3VuZDogI2ZmZjtib3gtc2hhZG93OiAwIDAuMTVlbSAxLjVlbSAwIHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAwIDFlbSAwIHJnYmEoMCwgMCwgMCwgMC4wMyk7Zm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBcIlJvYm90b1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIEFyaWFsLCBzYW5zLXNlcmlmO29wYWNpdHk6IDA7dHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzLCB2aXNpYmlsaXR5IDBzIDAuM3M7dmlzaWJpbGl0eTogaGlkZGVufSAgLnBjci1hcHAudmlzaWJsZSB7b3BhY2l0eTogMTt0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7dmlzaWJpbGl0eTogdmlzaWJsZX0gIC5wY3ItYXBwIC5wY3Itc3dhdGNoZXMge2Rpc3BsYXk6IGZsZXg7ZmxleC13cmFwOiB3cmFwO21hcmdpbi10b3A6IDAuNzVlbX0gIC5wY3ItYXBwIC5wY3Itc3dhdGNoZXMucGNyLWxhc3Qge21hcmdpbjogMH0gIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkgeyAgLnBjci1hcHAgLnBjci1zd2F0Y2hlcyB7ZGlzcGxheTogZ3JpZDthbGlnbi1pdGVtczogY2VudGVyO2dyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCAxLjc1ZW0pfSAgfSAgLnBjci1hcHAgLnBjci1zd2F0Y2hlcyA+IGJ1dHRvbiB7cG9zaXRpb246IHJlbGF0aXZlO3otaW5kZXg6IDE7b3ZlcmZsb3c6IGhpZGRlbjt3aWR0aDogY2FsYygxLjc1ZW0gLSAxMHB4KTtoZWlnaHQ6IGNhbGMoMS43NWVtIC0gMTBweCk7ZmxleC1zaHJpbms6IDA7Ym9yZGVyLXJhZGl1czogMC4xNWVtO21hcmdpbjogMi41cHg7YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7Y3Vyc29yOiBwb2ludGVyO2ZvbnQtc2l6ZTogMWVtO2p1c3RpZnktc2VsZjogY2VudGVyO3RyYW5zaXRpb246IGFsbCAwLjE1c30gIC5wY3ItYXBwIC5wY3Itc3dhdGNoZXMgPiBidXR0b246OmJlZm9yZSB7cG9zaXRpb246IGFic29sdXRlO3otaW5kZXg6IC0xO3RvcDogMDtsZWZ0OiAwO3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtib3JkZXItcmFkaXVzOiAuMTVlbTtiYWNrZ3JvdW5kOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIgMlwiPjxwYXRoIGZpbGw9XCJ3aGl0ZVwiIGQ9XCJNMSwwSDJWMUgxVjBaTTAsMUgxVjJIMFYxWlwiLz48cGF0aCBmaWxsPVwiZ3JheVwiIGQ9XCJNMCwwSDFWMUgwVjBaTTEsMUgyVjJIMVYxWlwiLz48L3N2Zz4nKTtiYWNrZ3JvdW5kLXNpemU6IDZweDtjb250ZW50OiAnJ30gIC5wY3ItYXBwIC5wY3Itc3dhdGNoZXMgPiBidXR0b246OmFmdGVyIHtwb3NpdGlvbjogYWJzb2x1dGU7dG9wOiAwO2xlZnQ6IDA7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO2JveC1zaXppbmc6IGJvcmRlci1ib3g7Ym9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA1KTtib3JkZXItcmFkaXVzOiAwLjE1ZW07YmFja2dyb3VuZDogdmFyKC0tcGNyLWNvbG9yKTtjb250ZW50OiAnJ30gIC5wY3ItYXBwIC5wY3Itc3dhdGNoZXMgPiBidXR0b246aG92ZXIge2ZpbHRlcjogYnJpZ2h0bmVzcygxLjA1KX0gIC5wY3ItYXBwIC5wY3Itc3dhdGNoZXMgPiBidXR0b246bm90KC5wY3ItYWN0aXZlKSB7Ym94LXNoYWRvdzogbm9uZX0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24ge2Rpc3BsYXk6IGZsZXg7ZmxleC13cmFwOiB3cmFwO2FsaWduLWl0ZW1zOiBjZW50ZXI7bWFyZ2luOiAwIC0wLjJlbSAwIC0wLjJlbX0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gPiAqIHttYXJnaW46IDAgMC4yZW19ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIGlucHV0IHtwYWRkaW5nOiAwLjQ1ZW0gMC41ZW07Ym9yZGVyLXJhZGl1czogLjE1ZW07bWFyZ2luLXRvcDogMC43NWVtO2JhY2tncm91bmQ6ICNmMWYzZjQ7Y29sb3I6ICM3NTc5N2U7Y3Vyc29yOiBwb2ludGVyO2ZvbnQtc2l6ZTogMC43NWVtO2xldHRlci1zcGFjaW5nOiAwLjA3ZW07dGV4dC1hbGlnbjogY2VudGVyO3RyYW5zaXRpb246IGFsbCAwLjE1c30gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gaW5wdXQ6aG92ZXIge2ZpbHRlcjogYnJpZ2h0bmVzcygwLjk3NSl9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIGlucHV0OmZvY3VzIHtib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg1KSwgMCAwIDAgM3B4IHJnYmEoNjYsIDEzMywgMjQ0LCAwLjc1KX0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1yZXN1bHQge21pbi13aWR0aDogOGVtO2ZsZXg6IDEgMSA4ZW07Ym9yZGVyLXJhZGl1czogLjE1ZW07YmFja2dyb3VuZDogI2YxZjNmNDtjb2xvcjogIzc1Nzk3ZTtjdXJzb3I6IHRleHQ7dGV4dC1hbGlnbjogbGVmdDt0cmFuc2l0aW9uOiBhbGwgMC4yc30gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1yZXN1bHQ6Oi1tb3otc2VsZWN0aW9uIHtiYWNrZ3JvdW5kOiAjNDI4NWY0O2NvbG9yOiAjZmZmfSAgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLXJlc3VsdDo6c2VsZWN0aW9uIHtiYWNrZ3JvdW5kOiAjNDI4NWY0O2NvbG9yOiAjZmZmfSAgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLXR5cGUuYWN0aXZlIHtiYWNrZ3JvdW5kOiAjNDI4NWY0O2NvbG9yOiAjZmZmfSAgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLXNhdmUsIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jYW5jZWwsIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jbGVhciB7d2lkdGg6IGF1dG87Y29sb3I6ICNmZmZ9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3Itc2F2ZSwgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLWNhbmNlbCwgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLWNsZWFyIHtjb2xvcjogI2ZmZn0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1zYXZlOmhvdmVyLCAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2FuY2VsOmhvdmVyLCAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2xlYXI6aG92ZXIge2ZpbHRlcjogYnJpZ2h0bmVzcygwLjkyNSl9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3Itc2F2ZSB7YmFja2dyb3VuZDogIzQyODVmNH0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jbGVhciwgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLWNhbmNlbCB7YmFja2dyb3VuZDogI2Y0NDI1MH0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jbGVhcjpmb2N1cywgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLWNhbmNlbDpmb2N1cyB7Ym94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSksIDAgMCAwIDNweCByZ2JhKDI0NCwgNjYsIDgwLCAwLjc1KX0gIC5wY3ItYXBwIC5wY3Itc2VsZWN0aW9uIC5wY3ItcGlja2VyIHtwb3NpdGlvbjogYWJzb2x1dGU7d2lkdGg6IDE4cHg7aGVpZ2h0OiAxOHB4O2JvcmRlcjogMnB4IHNvbGlkICNmZmY7Ym9yZGVyLXJhZGl1czogMTAwJTstd2Via2l0LXVzZXItc2VsZWN0OiBub25lOy1tb3otdXNlci1zZWxlY3Q6IG5vbmU7LW1zLXVzZXItc2VsZWN0OiBub25lO3VzZXItc2VsZWN0OiBub25lfSAgLnBjci1hcHAgLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wYWxldHRlLCAucGNyLWFwcCAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLWNob29zZXIsIC5wY3ItYXBwIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3Itb3BhY2l0eSB7cG9zaXRpb246IHJlbGF0aXZlO2Rpc3BsYXk6IGZsZXg7ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtjdXJzb3I6IGdyYWI7Y3Vyc29yOiAtd2Via2l0LWdyYWI7LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTstbW96LXVzZXItc2VsZWN0OiBub25lOy1tcy11c2VyLXNlbGVjdDogbm9uZTt1c2VyLXNlbGVjdDogbm9uZX0gIC5wY3ItYXBwIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItcGFsZXR0ZTphY3RpdmUsIC5wY3ItYXBwIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItY2hvb3NlcjphY3RpdmUsIC5wY3ItYXBwIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3Itb3BhY2l0eTphY3RpdmUge2N1cnNvcjogZ3JhYmJpbmc7Y3Vyc29yOiAtd2Via2l0LWdyYWJiaW5nfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIHt3aWR0aDogMTQuMjVlbTttYXgtd2lkdGg6IDk1dnd9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zd2F0Y2hlcyB7cGFkZGluZzogMCAuNmVtO21hcmdpbi10b3A6IC42ZW19ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1pbnRlcmFjdGlvbiB7cGFkZGluZzogMCAuNmVtIC42ZW0gLjZlbX0gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiB7ZGlzcGxheTogZ3JpZDt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwLjVlbTthbGlnbi1pdGVtczogY2VudGVyO2FsaWduLXNlbGY6IGZsZXgtc3RhcnQ7Z3JpZC1nYXA6IC42ZW07Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgNGZyO2dyaWQtdGVtcGxhdGUtcm93czogNWZyIGF1dG8gYXV0b30gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLXByZXZpZXcge2Rpc3BsYXk6IGZsZXg7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO2ZsZXgtZGlyZWN0aW9uOiByb3c7anVzdGlmeS1jb250ZW50OiBjZW50ZXI7bWFyZ2luLWxlZnQ6IC42ZW07Z3JpZC1hcmVhOiAyIC8gMSAvIDQgLyAxfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItcHJldmlldyAucGNyLWxhc3QtY29sb3Ige2Rpc3BsYXk6IG5vbmV9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wcmV2aWV3IC5wY3ItY3VycmVudC1jb2xvciB7cG9zaXRpb246IHJlbGF0aXZlO292ZXJmbG93OiBoaWRkZW47d2lkdGg6IDJlbTtoZWlnaHQ6IDJlbTtib3JkZXItcmFkaXVzOiA1MGVtO2JhY2tncm91bmQ6IHZhcigtLXBjci1jb2xvcil9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wcmV2aWV3IC5wY3ItY3VycmVudC1jb2xvcjo6YmVmb3JlIHtwb3NpdGlvbjogYWJzb2x1dGU7ei1pbmRleDogLTE7dG9wOiAwO2xlZnQ6IDA7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO2JvcmRlci1yYWRpdXM6IC4xNWVtO2JhY2tncm91bmQ6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMiAyXCI+PHBhdGggZmlsbD1cIndoaXRlXCIgZD1cIk0xLDBIMlYxSDFWMFpNMCwxSDFWMkgwVjFaXCIvPjxwYXRoIGZpbGw9XCJncmF5XCIgZD1cIk0wLDBIMVYxSDBWMFpNMSwxSDJWMkgxVjFaXCIvPjwvc3ZnPicpO2JhY2tncm91bmQtc2l6ZTogLjVlbTtjb250ZW50OiAnJ30gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLXBhbGV0dGUge3otaW5kZXg6IDE7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO2dyaWQtYXJlYTogMSAvIDEgLyAyIC8gM30gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLXBhbGV0dGUgLnBjci1wYWxldHRlIHt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7Ym9yZGVyLXJhZGl1czogLjE1ZW19ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wYWxldHRlIC5wY3ItcGFsZXR0ZTo6YmVmb3JlIHtwb3NpdGlvbjogYWJzb2x1dGU7ei1pbmRleDogLTE7dG9wOiAwO2xlZnQ6IDA7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO2JvcmRlci1yYWRpdXM6IC4xNWVtO2JhY2tncm91bmQ6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMiAyXCI+PHBhdGggZmlsbD1cIndoaXRlXCIgZD1cIk0xLDBIMlYxSDFWMFpNMCwxSDFWMkgwVjFaXCIvPjxwYXRoIGZpbGw9XCJncmF5XCIgZD1cIk0wLDBIMVYxSDBWMFpNMSwxSDJWMkgxVjFaXCIvPjwvc3ZnPicpO2JhY2tncm91bmQtc2l6ZTogLjVlbTtjb250ZW50OiAnJ30gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLWNob29zZXIge2dyaWQtYXJlYTogMiAvIDIgLyAyIC8gMn0gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLW9wYWNpdHkge2dyaWQtYXJlYTogMyAvIDIgLyAzIC8gMn0gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLWNob29zZXIsIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLW9wYWNpdHkge2hlaWdodDogMC41ZW07bWFyZ2luOiAwIC42ZW19ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1jaG9vc2VyIC5wY3ItcGlja2VyLCAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1vcGFjaXR5IC5wY3ItcGlja2VyIHt0b3A6IDUwJTt0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSl9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1jaG9vc2VyIC5wY3Itc2xpZGVyLCAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1vcGFjaXR5IC5wY3Itc2xpZGVyIHtmbGV4LWdyb3c6IDE7Ym9yZGVyLXJhZGl1czogNTBlbX0gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLWNob29zZXIgLnBjci1zbGlkZXIge2JhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmVkLCAjZmYwLCBsaW1lLCBjeWFuLCBibHVlLCAjZjBmLCByZWQpfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3Itb3BhY2l0eSAucGNyLXNsaWRlciB7YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB0cmFuc3BhcmVudCwgYmxhY2spLCB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIgMlwiPjxwYXRoIGZpbGw9XCJ3aGl0ZVwiIGQ9XCJNMSwwSDJWMUgxVjBaTTAsMUgxVjJIMFYxWlwiLz48cGF0aCBmaWxsPVwiZ3JheVwiIGQ9XCJNMCwwSDFWMUgwVjBaTTEsMUgyVjJIMVYxWlwiLz48L3N2Zz4nKTtiYWNrZ3JvdW5kLXNpemU6IDEwMCUsIDAuMjVlbX1cbi5wY3ItYXBwIC5wY3Itc3dhdGNoZXMgPiBidXR0b24ge1xuXHRwYWRkaW5nOiAwO1xufVxuIiwgIi5zZXR0aW5nLWl0ZW0uY29kZS1zdHlsZXItc3BhY2VkIC5jaGVja2JveC1jb250YWluZXIgKyAucGlja3Ige1xuXHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG4uY29kZS1zdHlsZXItZG9uYXRpb24ge1xuXHR3aWR0aDogNzAlO1xuXHRtYXJnaW46IDAgYXV0bztcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmNvZGUtc3R5bGVyLXNldHRpbmctdGV4dC1hcmVhIHRleHRhcmVhIHtcblx0d2lkdGg6IDQwMHB4O1xuXHRoZWlnaHQ6IDIyMHB4O1xufVxuLmNvZGUtc3R5bGVyLXNldHRpbmctdGV4dC13aWRlIHtcblx0d2lkdGg6IDEwMCU7XG59XG5idXR0b24uY29kZS1zdHlsZXItc2V0dGluZ3MtYnV0dG9uLmNvcHktY29kZS1idXR0b24ge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHJpZ2h0OiAwO1xuXHRoZWlnaHQ6IGF1dG87XG59XG5jb2RlLmNvZGUtc3R5bGVyLXNldHRpbmdzLWlubGluZS1jb2RlIHtcblx0cGFkZGluZzogMC4xZW0gMC4yNWVtO1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS1jb2RlLXJhZGl1cyk7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvZGUtYmFja2dyb3VuZCk7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLW5vcm1hbCk7XG5cdGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm9zcGFjZSk7XG5cdGZvbnQtc2l6ZTogdmFyKC0tY29kZS1zaXplKTtcbn1cbnA6aGFzKD4gY29kZS5jb2RlLXN0eWxlci1zZXR0aW5ncy1pbmxpbmUtY29kZSkge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYWR2YW5jZWQtc2V0dGluZ3MtaGVhZGVyOjphZnRlciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR3aWR0aDogMjBweDtcblx0aGVpZ2h0OiAyMHB4O1xuXHRtYXJnaW46IGF1dG87XG5cdG1hcmdpbi1sZWZ0OiA0cHg7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWJ1dHRvbi1jb2xvdXIpO1xuXHRjb250ZW50OiBcIlxcMjAwYlwiO1xuXHQtd2Via2l0LW1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMzIgMzInIHhtbDpzcGFjZT0ncHJlc2VydmUnJTNFJTNDcGF0aCBkPSdNMTYgMjIgNiAxMmwxLjQtMS40IDguNiA4LjYgOC42LTguNkwyNiAxMnonLyUzRSUzQ3BhdGggZmlsbD0nbm9uZScgZD0nTTAgMGgzMnYzMkgweicvJTNFJTNDL3N2ZyUzRVwiKTtcblx0bWFzay1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAzMiAzMicgZmlsbD0nbm9uZScgc3Ryb2tlPSdjdXJyZW50Q29sb3InIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyAlM0UlM0Nwb2x5bGluZSBwb2ludHM9JzYgOSAxMiAxNSAxOCA5Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuXHQtd2Via2l0LW1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG5cdG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG5cdG9wYWNpdHk6IDE7XG5cdHNjYWxlOiAwLjk7XG5cdHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS1kdXJhdGlvbi1idXR0b24pIGVhc2Utb3V0LCB2aXNpYmlsaXR5IHZhcigtLWR1cmF0aW9uLWJ1dHRvbiksIG9wYWNpdHkgdmFyKC0tZHVyYXRpb24tYnV0dG9uKSwgc2NhbGUgdmFyKC0tZHVyYXRpb24tYnV0dG9uKSBjdWJpYy1iZXppZXIoMC40LCAwLjE0LCAwLjMsIDEpO1xuXHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuLmFkdmFuY2VkLXNldHRpbmdzLWhlYWRlci5oZWFkZXItZm9sZGVkOjphZnRlciB7XG5cdHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG59XG4iLCAiLyoqIEV4ZWN1dGUgQ29kZSBQbHVnaW4gKi9cbnByZS5jb2RlLXN0eWxlci1wcmUgY29kZSB+IGNvZGUubGFuZ3VhZ2Utb3V0cHV0IHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBhZGRpbmctYm90dG9tOiBjYWxjKDIuNSAqIHZhcigtLWNvZGUtcGFkZGluZykpICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1saW5lLW51bWJlci1ndXR0ZXItcGFkZGluZykpICFpbXBvcnRhbnQ7XG5cdGJvcmRlci10b3A6IHZhcigtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGgpIHNvbGlkIHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1zZXBhcmF0b3ItY29sb3VyKTtcblx0bWFyZ2luLWJvdHRvbTogMDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUuY29kZS1zdHlsZXItZm9sZGVkIGNvZGUgfiBjb2RlLmxhbmd1YWdlLW91dHB1dCB7XG5cdGJvcmRlci10b3Atd2lkdGg6IDA7XG5cdGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xufVxucHJlLmNvZGUtc3R5bGVyLXByZTpob3ZlciBjb2RlIH4gY29kZS5sYW5ndWFnZS1vdXRwdXQge1xuXHRtYXJnaW4tYm90dG9tOiAwO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBjb2RlIH4gY29kZS5sYW5ndWFnZS1vdXRwdXQgaW5wdXQuaW50ZXJhY3RpdmUtc3RkaW4ge1xuXHRwYWRkaW5nOiAycHggOHB4O1xuXHRib3JkZXItd2lkdGg6IDFweDtcblx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jb2RlLWNvbW1lbnQpO1xuXHRib3JkZXItcmFkaXVzOiA1cHg7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWNvZGVibG9jay1iYWNrZ3JvdW5kLWNvbG91cik7XG5cdGNvbG9yOiB2YXIoLS10ZXh0LW5vcm1hbCk7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGNvZGUgfiBjb2RlLmxhbmd1YWdlLW91dHB1dCBociB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5ydW4tY29kZS1idXR0b24ge1xuXHQtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luOiAxMnB4O1xuXHQtLWRlbnQtZGlmZmVyZW5jZTogMjRweDtcblx0aGVpZ2h0OiAxNHB4O1xuXHRtYXJnaW4tYm90dG9tOiA2cHggIWltcG9ydGFudDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUuY29kZS1zdHlsZXItZm9sZGVkIGJ1dHRvbi5ydW4tY29kZS1idXR0b24ge1xuXHR0b3A6IDUwMHB4O1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24ucnVuLWNvZGUtYnV0dG9uOjpiZWZvcmUge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHdpZHRoOiAxNHB4O1xuXHRoZWlnaHQ6IDE0cHg7XG5cdHBhZGRpbmctcmlnaHQ6IDRweDtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZS1zdHlsZXItYnV0dG9uLWNvbG91cik7XG5cdGNvbnRlbnQ6IFwiXFwyMDBiXCI7XG5cdC13ZWJraXQtbWFzay1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAzMiAzMiclM0UlM0NwYXRoIGQ9J003IDI4YTEgMSAwIDAgMS0xLTFWNWExIDEgMCAwIDEgMS40ODItLjg3NmwyMCAxMWExIDEgMCAwIDEgMCAxLjc1MmwtMjAgMTFBMSAxIDAgMCAxIDcgMjhaJy8lM0UlM0NwYXRoIGZpbGw9J25vbmUnIGQ9J00wIDBoMzJ2MzJIMHonIGRhdGEtbmFtZT0nJmx0O1RyYW5zcGFyZW50IFJlY3RhbmdsZSZndDsnLyUzRSUzQy9zdmclM0VcIik7XG5cdG1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMzIgMzInJTNFJTNDcGF0aCBkPSdNNyAyOGExIDEgMCAwIDEtMS0xVjVhMSAxIDAgMCAxIDEuNDgyLS44NzZsMjAgMTFhMSAxIDAgMCAxIDAgMS43NTJsLTIwIDExQTEgMSAwIDAgMSA3IDI4WicvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBkPSdNMCAwaDMydjMySDB6JyBkYXRhLW5hbWU9JyZsdDtUcmFuc3BhcmVudCBSZWN0YW5nbGUmZ3Q7Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuXHQtd2Via2l0LW1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG5cdG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG5cdHZlcnRpY2FsLWFsaWduOiAwcHg7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jbGVhci1idXR0b24tZGlzYWJsZWQsXG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5ydW4tYnV0dG9uLWRpc2FibGVkIHtcblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY2xlYXItYnV0dG9uIHtcblx0aGVpZ2h0OiAxNHB4O1xuXHRtYXJnaW4tYm90dG9tOiA2cHggIWltcG9ydGFudDtcblx0bWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoKSArIDEycHgpO1xuXHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24taW4pO1xuXHR3aWxsLWNoYW5nZTogbWFyZ2luLXJpZ2h0LCBjbGlwLXBhdGg7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jbGVhci1idXR0b246OmJlZm9yZSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0d2lkdGg6IDE0cHg7XG5cdGhlaWdodDogMTRweDtcblx0cGFkZGluZy1yaWdodDogNHB4O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1idXR0b24tY29sb3VyKTtcblx0Y29udGVudDogXCJcXDIwMGJcIjtcblx0LXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDMyIDMyJyUzRSUzQ3BhdGggZD0nTTE2IDQgNiAxNGwxLjQxIDEuNDFMMTUgNy44M1YyOGgyVjcuODNsNy41OSA3LjU4TDI2IDE0IDE2IDR6Jy8lM0UlM0NwYXRoIGZpbGw9J25vbmUnIGQ9J00wIDBoMzJ2MzJIMHonIGRhdGEtbmFtZT0nJmx0O1RyYW5zcGFyZW50IFJlY3RhbmdsZSZndDsnLyUzRSUzQy9zdmclM0VcIik7XG5cdG1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMzIgMzInJTNFJTNDcGF0aCBkPSdNMTYgNCA2IDE0bDEuNDEgMS40MUwxNSA3LjgzVjI4aDJWNy44M2w3LjU5IDcuNThMMjYgMTQgMTYgNHonLyUzRSUzQ3BhdGggZmlsbD0nbm9uZScgZD0nTTAgMGgzMnYzMkgweicgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycvJTNFJTNDL3N2ZyUzRVwiKTtcblx0LXdlYmtpdC1tYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuXHR2ZXJ0aWNhbC1hbGlnbjogMHB4O1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY2xlYXItYnV0dG9uOm5vdCg6YWN0aXZlKSB7XG5cdGFuaW1hdGlvbjogcmV2ZXJzZS1pbmRlbnQgdmFyKC0tZHVyYXRpb24tYnV0dG9uKTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNsZWFyLWJ1dHRvbjpob3Zlcntcblx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbik7XG5cdGFuaW1hdGlvbjogcmV2ZXJzZS1vdXRkZW50IHZhcigtLWR1cmF0aW9uLWJ1dHRvbik7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24tb3V0KTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNsZWFyLWJ1dHRvbjphY3RpdmUge1xuXHRzY2FsZTogMC45NTtcblx0dHJhbnNpdGlvbjogc2NhbGUgdmFyKC0tZHVyYXRpb24tYnV0dG9uKSBjdWJpYy1iZXppZXIoMC40LCAwLjE0LCAwLjMsIDEpO1xufVxuLmNvZGUtc3R5bGVyLXByZS1wYXJlbnQuaGFzLXJ1bi1jb2RlLWJ1dHRvbiAubG9hZC1zdGF0ZS1pbmRpY2F0b3Ige1xuXHR6LWluZGV4OiAxMDtcblx0YmFja2dyb3VuZDogbm9uZTtcblx0Y29sb3I6IG5vbmU7XG59XG4uY29kZS1zdHlsZXItcHJlLXBhcmVudC5oYXMtcnVuLWNvZGUtYnV0dG9uIC5sb2FkLXN0YXRlLWluZGljYXRvcjo6YmVmb3JlIHtcblx0Ym94LXNoYWRvdzogbm9uZTtcbn1cbi5jb2RlLXN0eWxlci1wcmUtcGFyZW50Lmhhcy1ydW4tY29kZS1idXR0b24gLmxvYWQtc3RhdGUtaW5kaWNhdG9yIHN2ZyB7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1idXR0b24tY29sb3VyKTtcbn1cbi5jb2RlLXN0eWxlci1wcmUtcGFyZW50Lmhhcy1ydW4tY29kZS1idXR0b24gLmxvYWQtc3RhdGUtaW5kaWNhdG9yIHN2Zzpob3ZlciB7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1idXR0b24tYWN0aXZlLWNvbG91cik7XG59XG4uY29kZS1zdHlsZXItcHJlLXBhcmVudC5oYXMtcnVuLWNvZGUtYnV0dG9uIC5sb2FkLXN0YXRlLWluZGljYXRvci52aXNpYmxlIHtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xufVxuXG4vKiogRW1iZWQgQ29kZSBQbHVnaW4gKi9cbi5ibG9jay1sYW5ndWFnZS1wcmV2aWV3IHByZS5jb2RlLXN0eWxlci1wcmUgY29kZSB7XG5cdHdoaXRlLXNwYWNlOiB1bnNldDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgc3Bhbi5jb2RlLWJsb2NrLWxpbmVfbnVtLXdyYXAsXG5wcmUuY29kZS1zdHlsZXItcHJlIGRpdi5jb2RlLWJsb2NrLWhpZ2hsaWdodC13cmFwIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5jbS1lbWJlZC1ibG9jayAuY29kZS1zdHlsZXItcHJlLXBhcmVudCArIC5lZGl0LWJsb2NrLWJ1dHRvbjo6YWZ0ZXIge1xuXHRwYWRkaW5nLWxlZnQ6IDRweDtcblx0Y29udGVudDogJ0VkaXQgQmxvY2snO1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtdWktc21hbGxlcik7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuY20tZW1iZWQtYmxvY2s6bm90KDpob3ZlcikgLmNvZGUtc3R5bGVyLXByZS1wYXJlbnQgKyAuZWRpdC1ibG9jay1idXR0b24ge1xuXHRvcGFjaXR5OiAwO1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuY20tZW1iZWQtYmxvY2s+LmNvZGUtc3R5bGVyLXByZS1wYXJlbnQgKyAuZWRpdC1ibG9jay1idXR0b24ge1xuXHQtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luOiBjYWxjKDIuMiAqIHZhcigtLWhlYWRlci1idXR0b24tc3BhY2luZykpO1xuXHQtLWRlbnQtZGlmZmVyZW5jZTogMHB4O1xuXHQtLXBvbHlnb24taW46IHBvbHlnb24oMCAwLCAxOHB4IDAsIDE4cHggMzZweCwgMCAzNnB4KTtcblx0ei1pbmRleDogMTA7XG5cdHRvcDogbWF4KGNhbGMoMC41ICogdmFyKC0tY29udGFpbmVyLWhlaWdodCkgKiAxKSxjYWxjKDAuNSAqIHZhcigtLWNvbnRhaW5lci1taW4taGVpZ2h0KSAqIDEpKTtcblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xuXHRtYXJnaW46IDA7XG5cdG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbikgLSB2YXIoLS1kZW50LWRpZmZlcmVuY2UpKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLWluKTtcblx0b3BhY2l0eTogMTtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHR0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IHZhcigtLWR1cmF0aW9uLWJ1dHRvbiksIG9wYWNpdHkgdmFyKC0tZHVyYXRpb24tYnV0dG9uKSAhaW1wb3J0YW50O1xuXHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXHR3aWxsLWNoYW5nZTogbWFyZ2luLXJpZ2h0LCBjbGlwLXBhdGg7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNi5pcy1saXZlLXByZXZpZXcuaXMtcmVhZGFibGUtbGluZS13aWR0aCAuY20tZW1iZWQtYmxvY2s+LmNvZGUtc3R5bGVyLXByZS1wYXJlbnQrLmVkaXQtYmxvY2stYnV0dG9uIHtcblx0d2lkdGg6IHVuc2V0ICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xufVxuYm9keSAuY20tZW1iZWQtYmxvY2sgLmNvZGUtc3R5bGVyLXByZS1wYXJlbnQ6aGFzKCBwcmUuY29kZS1zdHlsZXItcHJlIC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLWhpZGRlbikgKyAuZWRpdC1ibG9jay1idXR0b24ge1xuXHQtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luOiA0cHg7XG5cdHRvcDogY2FsYygwLjUgKiB2YXIoLS1mb250LXRleHQtc2l6ZSkgKiAwLjg3NSAqIHZhcigtLWxpbmUtaGVpZ2h0LW5vcm1hbCkpO1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLmNtLWVtYmVkLWJsb2NrOmhvdmVyIC5jb2RlLXN0eWxlci1wcmUtcGFyZW50ICsgLmVkaXQtYmxvY2stYnV0dG9uOmhvdmVyIHtcblx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbik7XG5cdGFuaW1hdGlvbjogcmV2ZXJzZS1vdXRkZW50IHZhcigtLWR1cmF0aW9uLWJ1dHRvbik7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24tb3V0KTtcbn1cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5jbS1lbWJlZC1ibG9jazpob3ZlciAuY29kZS1zdHlsZXItcHJlLXBhcmVudCArIC5lZGl0LWJsb2NrLWJ1dHRvbjphY3RpdmUge1xuXHRzY2FsZTogMC45NTtcblx0dHJhbnNpdGlvbjogc2NhbGUgdmFyKC0tZHVyYXRpb24tYnV0dG9uKSBjdWJpYy1iZXppZXIoMC40LCAwLjE0LCAwLjMsIDEpICFpbXBvcnRhbnQ7XG59XG5cbi8qKiBGaWxlIEluY2x1ZGUgUGx1Z2luICovXG5kaXYuYmxvY2stbGFuZ3VhZ2UtaW5jbHVkZSBwcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jb3B5LWNvZGUtYnV0dG9uIHtcblx0bWFyZ2luOiAwO1xuXHRtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pIC0gdmFyKC0tZGVudC1kaWZmZXJlbmNlKSk7XG59XG5kaXYuYmxvY2stbGFuZ3VhZ2UtaW5jbHVkZSBwcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jb3B5LWNvZGUtYnV0dG9uOmhvdmVyIHtcblx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbik7XG59XG5cbi8qKiBDb3JlIFNsaWRlcyBQbHVnaW4gKi9cbi5zbGlkZXMgYnV0dG9uLmNvcHktY29kZS1idXR0b24ge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0cmlnaHQ6IDA7XG5cdGhlaWdodDogYXV0bztcblx0cGFkZGluZzogNnB4IDhweDtcblx0bWFyZ2luOiA2cHg7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRib3gtc2hhZG93OiBub25lO1xuXHRjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7XG5cdGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWludGVyZmFjZSk7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC11aS1zbWFsbGVyKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7QUFDQTtBQUVDLG1CQUFpQjtBQUNqQixnQ0FBOEI7QUFDOUIsa0JBQWdCO0FBQ2hCLHNCQUFvQixLQUFLLElBQUksc0JBQXNCLEVBQUUsRUFBRSxFQUFFLElBQUksaUNBQWlDLEVBQUUsSUFBSTtBQUNwRywwQkFBd0IsS0FBSyxDQUFDLElBQUksb0JBQW9CLEVBQUUsRUFBRSxFQUFFLElBQUksaUNBQWlDLEVBQUUsSUFBSSxxQkFBcUIsRUFBRSxJQUFJO0FBQ2xJLDRCQUEwQixJQUFJO0FBQzlCLDJCQUF5QjtBQUd6QixzQkFBb0IsSUFBSTtBQUN4QixvQkFBa0I7QUFDbEIsbUNBQWlDO0FBQ2pDLG9CQUFrQjtBQUNsQiwyQkFBeUI7QUFDekIsNEJBQTBCO0FBQzFCLG9DQUFrQyxJQUFJO0FBQ3RDLCtCQUE2QjtBQUM3QiwwQkFBd0IsRUFBRSxNQUFNO0FBQ2hDLHdCQUFzQjtBQUN0QiwwQkFBd0I7QUFHeEIscUNBQW1DO0FBR25DLG1DQUFpQztBQUNqQyxnQ0FBOEI7QUFDOUIsa0NBQWdDO0FBR2hDLG1CQUFpQjtBQUNqQiwwQkFBd0IsSUFBSTtBQUc1QiwrQkFBNkIsSUFBSTtBQUNqQyxzQ0FBb0M7QUFDcEMscUJBQW1CO0FBQ25CLHFCQUFtQjtBQUNuQixnQkFBYyxRQUFRLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUU7QUFDaEQsaUJBQWUsUUFBUSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFO0FBQ2pELG1DQUFpQyxLQUFLLEVBQUUsRUFBRSxJQUFJO0FBQy9DO0FBRUE7QUFDQyxlQUFhO0FBQ2IsT0FBSyxzR0FBd0csT0FBTztBQUNySDtBQUdBLENBQUM7QUFDQSxpQkFBZTtBQUNoQjtBQUNB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 */ +/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL2Nzcy9jb2RlYmxvY2tzLmNzcyIsICJzcmMvY3NzL2lubGluZUNvZGUuY3NzIiwgInNyYy9jc3MvZnJvbnRtYXR0ZXIuY3NzIiwgInNyYy9jc3MvcGRmRXhwb3J0LmNzcyIsICJzcmMvY3NzL3BpY2tyLmNzcyIsICJzcmMvY3NzL3NldHRpbmdzLmNzcyIsICJzcmMvY3NzL3BsdWdpbkNvbXBhdGliaWxpdHkuY3NzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiogRGVmaW5lIENTUyBWYXJpYWJsZXMgKi9cbmJvZHkge1xuXHQvKiBDb2RlYmxvY2sgQm9keSAqL1xuXHQtLWJvcmRlci1yYWRpdXM6IDEwcHg7XG5cdC0tZ3JhZGllbnQtYmFja2dyb3VuZC1jb2xvdXI6IHRyYW5zcGFyZW50O1xuXHQtLWNvZGUtcGFkZGluZzogOHB4O1xuXHQtLWNvbnRhaW5lci1oZWlnaHQ6IGNhbGModmFyKC0tbGFuZ3VhZ2UtaWNvbi1zaXplKSArIDIgKiB2YXIoLS1oZWFkZXItaW5uZXItdmVydGljYWwtcGFkZGluZykgKiB2YXIoLS1oZWFkZXItZm9udC1zaXplKSk7XG5cdC0tY29udGFpbmVyLW1pbi1oZWlnaHQ6IGNhbGMoKHZhcigtLWhlYWRlci1mb250LXNpemUpICsgMiAqIHZhcigtLWhlYWRlci1pbm5lci12ZXJ0aWNhbC1wYWRkaW5nKSAqIHZhcigtLWhlYWRlci1mb250LXNpemUpKSAqIHZhcigtLWxpbmUtaGVpZ2h0LW5vcm1hbCkpO1xuXHQtLWxhbmd1YWdlLWJvcmRlci1jb2xvdXI6IHZhcigtLWNvZGUtc3R5bGVyLWNvZGVibG9jay1iYWNrZ3JvdW5kLWNvbG91cik7XG5cdC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoOiAwcHg7XG5cblx0LyogSGVhZGVyICovXG5cdC0taGVhZGVyLWZvbnQtc2l6ZTogdmFyKC0tY29kZS1zaXplKTtcblx0LS1oZWFkZXItcGFkZGluZzogMHB4O1xuXHQtLWhlYWRlci1pbm5lci12ZXJ0aWNhbC1wYWRkaW5nOiAwLjM7XG5cdC0taGVhZGVyLXNwYWNpbmc6IDE1cHg7XG5cdC0taGVhZGVyLWJ1dHRvbi1zcGFjaW5nOiAxNHB4O1xuXHQtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGg6IDJweDtcblx0LS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoLXBhZGRpbmc6IHZhcigtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGgpO1xuXHQtLWNvZGUtc3R5bGVyLWhlYWRlci1ib3JkZXI6IG5vbmU7XG5cdC0tZm9sZGVkLWJvdHRvbS1ib3JkZXI6IDAgc29saWQgdHJhbnNwYXJlbnQ7XG5cdC0tbGFuZ3VhZ2UtaWNvbi1zaXplOiAyOHB4O1xuXHQtLWxhbmd1YWdlLWljb24tZmlsdGVyOiBub25lO1xuXG5cdC8qIExpbmVzICovXG5cdC0tZ3JhZGllbnQtaGlnaGxpZ2h0cy1jb2xvdXItc3RvcDogMTAwJTtcblxuXHQvKiBMaW5lIE51bWJlcnMgKi9cblx0LS1saW5lLW51bWJlci1oZWlnaHQtY29ycmVjdGlvbjogMnB4O1xuXHQtLWxpbmUtbnVtYmVyLWd1dHRlci1wYWRkaW5nOiAxNnB4O1xuXHQtLWxpbmUtbnVtYmVyLWd1dHRlci1taW4td2lkdGg6IDMyLjY3cHg7XG5cblx0LyogTGluZSBUZXh0ICovXG5cdC0tbGluZS13cmFwcGluZzogcHJlLXdyYXA7XG5cdC0tbGluZS1hY3RpdmUtd3JhcHBpbmc6IHZhcigtLWxpbmUtd3JhcHBpbmcpO1xuXG5cdC8qIEJ1dHRvbnMgKi9cblx0LS1jb2RlLXN0eWxlci1idXR0b24tY29sb3VyOiB2YXIoLS10ZXh0LW11dGVkKTtcblx0LS1jb2RlLXN0eWxlci1idXR0b24tYWN0aXZlLWNvbG91cjogd2hpdGU7XG5cdC0tZHVyYXRpb24tYnV0dG9uOiAyNDBtcztcblx0LS1kZW50LWRpZmZlcmVuY2U6IDMwcHg7XG5cdC0tcG9seWdvbi1pbjogcG9seWdvbigwIDAsIDE2cHggMCwgMTZweCAzNnB4LCAwIDM2cHgpO1xuXHQtLXBvbHlnb24tb3V0OiBwb2x5Z29uKDAgMCwgMTAwJSAwLCAxMDAlIDEwMCUsIDAgMTAwJSk7XG5cdC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW46IGNhbGMoMyAqIHZhcigtLWhlYWRlci1idXR0b24tc3BhY2luZykpO1xufVxuXG5AZm9udC1mYWNlIHtcblx0Zm9udC1mYW1pbHk6IGNvZGUtc3R5bGVyLW5lcmRmb250O1xuXHRzcmM6IHVybCgnaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3JvbWthdHYvcG93ZXJsZXZlbDEway1tZWRpYS9tYXN0ZXIvTWVzbG9MR1MlMjBORiUyMFJlZ3VsYXIudHRmJykgZm9ybWF0KCd0cnVldHlwZScpO1xufVxuXG4vKiogUHJlIGVsZW1lbnRzICovXG4uY29kZS1zdHlsZXItcHJlLXBhcmVudHtcblx0bWFyZ2luLWJvdHRvbTogMTZweDtcbn1cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5jb2RlLXN0eWxlci1wcmUtcGFyZW50e1xuXHRtYXJnaW4tYm90dG9tOiAwcHg7XG59XG4uY29kZS1zdHlsZXIgcHJlLmNvZGUtc3R5bGVyLXByZSB7XG5cdG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcblx0bWluLWhlaWdodDogdW5zZXQ7XG5cdHBhZGRpbmc6IDBweCAhaW1wb3J0YW50O1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50O1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgcHJlLmNvZGUtc3R5bGVyLXByZVtjbGFzcyo9J2xhbmd1YWdlLSddIHtcblx0cGFkZGluZy1sZWZ0OiB2YXIoLS1sYW5ndWFnZS1ib3JkZXItd2lkdGgpICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLWNvbG91ciksIHZhcigtLWxhbmd1YWdlLWJvcmRlci1jb2xvdXIpIHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCksIHZhcigtLWNvZGUtc3R5bGVyLWNvZGVibG9jay1iYWNrZ3JvdW5kLWNvbG91cikgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoKSwgdmFyKC0tY29kZS1zdHlsZXItY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3VyKSAxMDAlKSwgdmFyKC0tY29kZS1zdHlsZXItY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyIHByZSA+IGNvZGUge1xuXHRwYWRkaW5nLXRvcDogdmFyKC0tY29kZS1wYWRkaW5nKSAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLWJvdHRvbTogdmFyKC0tY29kZS1wYWRkaW5nKSAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyIHByZS5jb2RlLXN0eWxlci1wcmUgPiBjb2RlIHtcblx0ZGlzcGxheTogZ3JpZDtcblx0bWF4LWhlaWdodDogdW5zZXQ7XG5cdHBhZGRpbmctdG9wOiB2YXIoLS1jb2RlLXBhZGRpbmcpICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctcmlnaHQ6IDBweCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLWJvdHRvbTogdmFyKC0tY29kZS1wYWRkaW5nKSAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xuXHRib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcblx0YmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuXHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbi1jb250ZW50IGF1dG87XG5cdGdyaWQtdGVtcGxhdGUtcm93czogYXV0bztcblx0b3ZlcmZsb3cteDogb3ZlcmxheTtcblx0dHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tZHVyYXRpb24tYnV0dG9uKTtcblx0dHJhbnNpdGlvbi1wcm9wZXJ0eTogbWF4LWhlaWdodCwgcGFkZGluZy10b3AsIHBhZGRpbmctYm90dG9tLCBib3JkZXItdG9wO1xuXHR0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG5cdHdoaXRlLXNwYWNlOiB2YXIoLS1saW5lLXdyYXBwaW5nKSAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyIHByZS5jb2RlLXN0eWxlci1wcmUud3JhcHBlZCA+IGNvZGUge1xuXHQtLWxpbmUtd3JhcHBpbmc6IHByZS13cmFwO1xuXHQtLWxpbmUtYWN0aXZlLXdyYXBwaW5nOiBwcmUtd3JhcDtcbn1cbi5jb2RlLXN0eWxlciBwcmUuY29kZS1zdHlsZXItcHJlLnVud3JhcHBlZCA+IGNvZGUge1xuXHQtLWxpbmUtd3JhcHBpbmc6IHByZTtcblx0LS1saW5lLWFjdGl2ZS13cmFwcGluZzogcHJlO1xufVxuLmNvZGUtc3R5bGVyIHByZS5jb2RlLXN0eWxlci1wcmUudW53cmFwcGVkLWluYWN0aXZlID4gY29kZSB7XG5cdC0tbGluZS13cmFwcGluZzogcHJlO1xuXHQtLWxpbmUtYWN0aXZlLXdyYXBwaW5nOiBwcmUtd3JhcDtcbn1cbi5jb2RlLXN0eWxlciBwcmUuY29kZS1zdHlsZXItcHJlIGNvZGU6bm90KDpoYXMoID4gaW5wdXRbc3R5bGUqPVwiZGlzcGxheTogaW5saW5lO1wiXSkpOmFjdGl2ZSB7XG5cdC0tbGluZS13cmFwcGluZzogdmFyKC0tbGluZS1hY3RpdmUtd3JhcHBpbmcpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgcHJlLmNvZGUtc3R5bGVyLXByZS5jb2RlLXN0eWxlci1mb2xkZWQgPiBjb2RlIHtcblx0bWF4LWhlaWdodDogMCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyIHByZS5jb2RlLXN0eWxlci1wcmU6OmJlZm9yZSxcbi5jb2RlLXN0eWxlciBwcmUuY29kZS1zdHlsZXItcHJlOjphZnRlciB7XG5cdGNvbnRlbnQ6IG5vbmUgIWltcG9ydGFudDtcbn1cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5jbS1lbWJlZC1ibG9jayBwcmUuY29kZS1zdHlsZXItcHJlIHtcblx0bWFyZ2luOiAwZW0gMHB4O1xuXHQvKiBtYXJnaW46IDFlbSAwcHg7ICovXG59XG5cbi8qKiBFZGl0aW5nIE1vZGUgQm9keSAqL1xuYm9keS5jb2RlLXN0eWxlciAubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyICsgW2NsYXNzKj1cImNvZGUtc3R5bGVyLWxpbmVcIl0uSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4ge1xuXHRib3JkZXItdG9wOiBub25lICFpbXBvcnRhbnQ7XG5cdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuXHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXNvdXJjZS12aWV3IFtjbGFzcyo9XCJjb2RlLXN0eWxlci1saW5lXCJdLkh5cGVyTUQtY29kZWJsb2NrLWVuZCB7XG5cdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuXHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG59XG5ib2R5LmNvZGUtc3R5bGVyIC5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXItaGlkZGVuICsgW2NsYXNzKj1cImNvZGUtc3R5bGVyLWxpbmVcIl0uSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4ge1xuXHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50O1xuXHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudFxufVxuYm9keS5jb2RlLXN0eWxlciAubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLWhpZGRlbiArIFtjbGFzcyo9XCJjb2RlLXN0eWxlci1saW5lXCJdLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luIC5jb2RlLXN0eWxlci1saW5lLW51bWJlciB7XG5cdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9ja1tjbGFzcyo9J2NvZGUtc3R5bGVyLWxpbmUnXSB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcblx0cGFkZGluZy1sZWZ0OiB2YXIoLS1zaXplLTQtNCkgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1ncmFkaWVudC1iYWNrZ3JvdW5kLWNvbG91cikgdmFyKC0tZ3JhZGllbnQtaGlnaGxpZ2h0cy1jb2xvdXItc3RvcCksIHRyYW5zcGFyZW50IDEwMCUpLCB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9ja1tjbGFzcyo9J2NvZGUtc3R5bGVyLWxpbmUnXVtjbGFzcyo9J2xhbmd1YWdlLSddIHtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1sYW5ndWFnZS1ib3JkZXItY29sb3VyKSwgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLWNvbG91cikgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoKSwgdmFyKC0tZ3JhZGllbnQtYmFja2dyb3VuZC1jb2xvdXIpIHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCkgdmFyKC0tZ3JhZGllbnQtaGlnaGxpZ2h0cy1jb2xvdXItc3RvcCksIHRyYW5zcGFyZW50IDEwMCUpLCB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9ja1tjbGFzcyo9J2NvZGUtc3R5bGVyLWxpbmUnXVtjbGFzcyo9J2xhbmd1YWdlLSddIC5jb2RlLXN0eWxlci1saW5lLW51bWJlciB7XG5cdG1hcmdpbi1sZWZ0OiB2YXIoLS1sYW5ndWFnZS1ib3JkZXItd2lkdGgpO1xufVxuXG4vKiogSGVhZGVyIHN0eWxpbmcgKi9cbmJvZHkgLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXItaGlkZGVuIHtcblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIge1xuXHRkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xuXHRoZWlnaHQ6IHZhcigtLWNvbnRhaW5lci1oZWlnaHQpO1xuXHRtaW4taGVpZ2h0OiB2YXIoLS1jb250YWluZXItbWluLWhlaWdodCk7XG5cdGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuXHRwYWRkaW5nLXRvcDogdmFyKC0taGVhZGVyLXBhZGRpbmcpO1xuXHRtYXJnaW4tdG9wOiAwcHggIWltcG9ydGFudDtcblx0Zm9udC1zaXplOiB2YXIoLS1oZWFkZXItZm9udC1zaXplKTtcblx0dHJhbnNpdGlvbjogYm9yZGVyLWJvdHRvbSBlYXNlLWluLW91dCB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcbn1cbi5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIge1xuXHRwYWRkaW5nLWJvdHRvbTogdmFyKC0taGVhZGVyLXNlcGFyYXRvci13aWR0aCk7XG5cdHBhZGRpbmctbGVmdDogdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoKTtcblx0Ym9yZGVyLXRvcDogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWJvcmRlcik7XG5cdGJvcmRlci1yaWdodDogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWJvcmRlcik7XG5cdGJvcmRlci1sZWZ0OiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItYm9yZGVyKTtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1iYWNrZ3JvdW5kLWNvbG91cikgMCUsdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWJhY2tncm91bmQtY29sb3VyKSBjYWxjKDEwMCUgLSB2YXIoLS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoKSksIHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1zZXBhcmF0b3ItY29sb3VyKSBjYWxjKDEwMCUgLSB2YXIoLS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoKSksIHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1zZXBhcmF0b3ItY29sb3VyKSAxMDAlKSB2YXIoLS1sYW5ndWFnZS1ib3JkZXItd2lkdGgpIGJvdHRvbS8xMDAlIGJvcmRlci1ib3ggbm8tcmVwZWF0LHZhcigtLWxhbmd1YWdlLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG5cdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuXHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyIHtcblx0Ym9yZGVyLWJvdHRvbTogdmFyKC0taGVhZGVyLXNlcGFyYXRvci13aWR0aCkgc29saWQgdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLXNlcGFyYXRvci1jb2xvdXIpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItYmFja2dyb3VuZC1jb2xvdXIpO1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3IDpub3QocHJlLmNvZGUtc3R5bGVyLXByZSkgPiAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lci5jb2RlLXN0eWxlci1oZWFkZXItZm9sZGVkIHtcblx0cGFkZGluZy1ib3R0b206IHZhcigtLWhlYWRlci1wYWRkaW5nKTtcblx0Ym9yZGVyLWJvdHRvbTogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWJvcmRlcik7XG5cdGJvcmRlci1ib3R0b206IHZhcigtLWZvbGRlZC1ib3R0b20tYm9yZGVyKTtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1iYWNrZ3JvdW5kLWNvbG91cikgMCUsdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWJhY2tncm91bmQtY29sb3VyKSAxMDAlKSB2YXIoLS1sYW5ndWFnZS1ib3JkZXItd2lkdGgpIGJvdHRvbS8xMDAlIGJvcmRlci1ib3ggbm8tcmVwZWF0LHZhcigtLWxhbmd1YWdlLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuXHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlLmNvZGUtc3R5bGVyLWZvbGRlZCAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciB7XG5cdGJvcmRlci1ib3R0b206IHZhcigtLWZvbGRlZC1ib3R0b20tYm9yZGVyKTtcbn1cbi5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyIC5jb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnIHtcblx0ZGlzcGxheTogZmxleDtcblx0aGVpZ2h0OiAxMDAlO1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRhbGlnbi1jb250ZW50OiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRwYWRkaW5nLXRvcDogY2FsYygxZW0gKiB2YXIoLS1oZWFkZXItaW5uZXItdmVydGljYWwtcGFkZGluZykpO1xuXHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1oZWFkZXItc3BhY2luZyk7XG5cdHBhZGRpbmctYm90dG9tOiBjYWxjKDFlbSAqIHZhcigtLWhlYWRlci1pbm5lci12ZXJ0aWNhbC1wYWRkaW5nKSk7XG5cdHBhZGRpbmctbGVmdDogdmFyKC0taGVhZGVyLXNwYWNpbmcpO1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKSB2YXIoLS1ib3JkZXItcmFkaXVzKSAwcHggMHB4O1xuXHRtYXJnaW4tcmlnaHQ6IHZhcigtLWhlYWRlci1zcGFjaW5nKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZy1iYWNrZ3JvdW5kLWNvbG91cik7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnLXRleHQtY29sb3VyKTtcblx0Zm9udC1zaXplOiBpbmhlcml0O1xuXHRmb250LXN0eWxlOiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnLXRleHQtaXRhbGljLCBub3JtYWwpO1xuXHRmb250LXdlaWdodDogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZy10ZXh0LWJvbGQsIG5vcm1hbCk7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0dHJhbnNpdGlvbjogYm9yZGVyLXJhZGl1cyBlYXNlLWluLW91dCB2YXIoLS1kdXJhdGlvbi1idXR0b24pLCBwYWRkaW5nIGVhc2UtaW4tb3V0IHZhcigtLWR1cmF0aW9uLWJ1dHRvbik7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLmNvZGUtc3R5bGVyLWhlYWRlci1mb2xkZWQgLmNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWcsXG5wcmUuY29kZS1zdHlsZXItcHJlLmNvZGUtc3R5bGVyLWZvbGRlZCAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciAuY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZyB7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xufVxuLmNvZGUtc3R5bGVyLWhlYWRlci10ZXh0LFxuLmNvZGUtc3R5bGVyLWhlYWRlci1leHRlcm5hbC1yZWZlcmVuY2UgPiBkaXYsXG5wcmUuY29kZS1zdHlsZXItcHJlIC5jb2RlLXN0eWxlci1oZWFkZXItZXh0ZXJuYWwtcmVmZXJlbmNlID4gYnV0dG9uIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0YWxpZ24tY29udGVudDogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0cGFkZGluZy10b3A6IGNhbGMoMWVtICogdmFyKC0taGVhZGVyLWlubmVyLXZlcnRpY2FsLXBhZGRpbmcpKTtcblx0cGFkZGluZy1ib3R0b206IGNhbGMoMWVtICogdmFyKC0taGVhZGVyLWlubmVyLXZlcnRpY2FsLXBhZGRpbmcpKTtcblx0cGFkZGluZy1sZWZ0OiAwcHg7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItdGV4dC1jb2xvdXIpO1xuXHRmb250LXNpemU6IGluaGVyaXQ7XG5cdGZvbnQtc3R5bGU6IHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci10aXRsZS10ZXh0LWl0YWxpYywgbm9ybWFsKTtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci10aXRsZS10ZXh0LWJvbGQsIG5vcm1hbCk7XG5cdHRyYW5zaXRpb246IHBhZGRpbmcgZWFzZS1pbi1vdXQgdmFyKC0tZHVyYXRpb24tYnV0dG9uKTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgLmNvZGUtc3R5bGVyLWhlYWRlci1leHRlcm5hbC1yZWZlcmVuY2UgPiBidXR0b24ge1xuXHRkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG87XG5cdHBhZGRpbmctdG9wOiBjYWxjKDFlbSAqIHZhcigtLWhlYWRlci1pbm5lci12ZXJ0aWNhbC1wYWRkaW5nKSkgIWltcG9ydGFudDtcblx0cGFkZGluZy1ib3R0b206IGNhbGMoMWVtICogdmFyKC0taGVhZGVyLWlubmVyLXZlcnRpY2FsLXBhZGRpbmcpKSAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLWxlZnQ6IDZweCAhaW1wb3J0YW50O1xuXHR0cmFuc2l0aW9uOiAgcGFkZGluZyBlYXNlLWluLW91dCB2YXIoLS1kdXJhdGlvbi1idXR0b24pLCBzY2FsZSBlYXNlLWluLW91dCB2YXIoLS1kdXJhdGlvbi1idXR0b24pLCB2aXNpYmlsaXR5IHZhcigtLWR1cmF0aW9uLWJ1dHRvbiksIG9wYWNpdHkgdmFyKC0tZHVyYXRpb24tYnV0dG9uKSAhaW1wb3J0YW50O1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSAuY29kZS1zdHlsZXItaGVhZGVyLWV4dGVybmFsLXJlZmVyZW5jZSA+IGJ1dHRvbjpob3ZlciB7XG5cdHNjYWxlOiAxLjQ7XG59XG5ib2R5IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyOm5vdCg6aGFzKCBkaXYgPiBpbWcuY29kZS1zdHlsZXItaWNvbikpIC5jb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnIHtcblx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMCAhaW1wb3J0YW50O1xuXHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG59XG5ib2R5IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyOm5vdCg6aGFzKCAuY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZykpIC5jb2RlLXN0eWxlci1oZWFkZXItdGV4dCB7XG5cdHBhZGRpbmctbGVmdDogdmFyKC0taGVhZGVyLXNwYWNpbmcpO1xufVxuLmNvZGUtc3R5bGVyLWhlYWRlci1leHRlcm5hbC1yZWZlcmVuY2Uge1xuXHRkaXNwbGF5OiBjb250ZW50cztcblx0bWFyZ2luLWxlZnQ6IHZhcigtLWhlYWRlci1zcGFjaW5nKTtcbn1cbi5jb2RlLXN0eWxlci1oZWFkZXItZXh0ZXJuYWwtcmVmZXJlbmNlID4gZGl2OmZpcnN0LWNoaWxkIHtcblx0cGFkZGluZy1sZWZ0OiB2YXIoLS1oZWFkZXItc3BhY2luZykgIWltcG9ydGFudDtcbn1cbi5jb2RlLXN0eWxlci1oZWFkZXItZXh0ZXJuYWwtcmVmZXJlbmNlID4gZGl2LFxucHJlLmNvZGUtc3R5bGVyLXByZSAuY29kZS1zdHlsZXItaGVhZGVyLWV4dGVybmFsLXJlZmVyZW5jZSA+IGJ1dHRvbiB7XG5cdHBhZGRpbmctbGVmdDogNnB4O1xuXHRmb250LWZhbWlseTogY29kZS1zdHlsZXItbmVyZGZvbnQsIG1lbmxvLCB2YXIoLS1mb250LW1vbm9zcGFjZSk7XG5cdGZvbnQtc2l6ZTogdmFyKC0tY29kZS1zdHlsZXItZXh0ZXJuYWwtcmVmZXJlbmNlLXRleHQtc2l6ZSx4eC1zbWFsbCk7XG59XG4uY29kZS1zdHlsZXItaGVhZGVyLWV4dGVybmFsLXJlZmVyZW5jZSA+IGRpdltjbGFzcyQ9aWNvbl0ge1xuXHRmb250LXNpemU6IHZhcigtLWNvZGUtc3R5bGVyLWV4dGVybmFsLXJlZmVyZW5jZS1pY29uLXNpemUseC1zbWFsbCk7XG59XG5kaXYuZXh0ZXJuYWwtcmVmZXJlbmNlLXJlcG8sXG5kaXYuZXh0ZXJuYWwtcmVmZXJlbmNlLXJlcG8taWNvbiB7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItZXh0ZXJuYWwtcmVmZXJlbmNlLXJlcG9zaXRvcnksIGN5YW4pO1xufVxuZGl2LmV4dGVybmFsLXJlZmVyZW5jZS1yZWYsXG5kaXYuZXh0ZXJuYWwtcmVmZXJlbmNlLXJlZi1pY29uIHtcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1leHRlcm5hbC1yZWZlcmVuY2UtdmVyc2lvbiwgcGluayk7XG59XG5kaXYuZXh0ZXJuYWwtcmVmZXJlbmNlLXRpbWVzdGFtcCxcbmRpdi5leHRlcm5hbC1yZWZlcmVuY2UtdGltZXN0YW1wLWljb24ge1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWV4dGVybmFsLXJlZmVyZW5jZS10aW1lc3RhbXAsIGdyZXkpO1xufVxuZGl2Omhhcyg+IGltZy5jb2RlLXN0eWxlci1pY29uKSB7XG5cdGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRhbGlnbi1jb250ZW50OiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRwYWRkaW5nLXRvcDogY2FsYygxZW0gKiB2YXIoLS1oZWFkZXItaW5uZXItdmVydGljYWwtcGFkZGluZykpO1xuXHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1oZWFkZXItc3BhY2luZyk7XG5cdHBhZGRpbmctYm90dG9tOiBjYWxjKDFlbSAqIHZhcigtLWhlYWRlci1pbm5lci12ZXJ0aWNhbC1wYWRkaW5nKSk7XG5cdHBhZGRpbmctbGVmdDogdmFyKC0taGVhZGVyLXNwYWNpbmcpO1xuXHR0cmFuc2l0aW9uOiBwYWRkaW5nIGVhc2UtaW4tb3V0IHZhcigtLWR1cmF0aW9uLWJ1dHRvbik7XG59XG4uY29kZS1zdHlsZXItaWNvbiB7XG5cdHdpZHRoOiB2YXIoLS1sYW5ndWFnZS1pY29uLXNpemUpO1xuXHRoZWlnaHQ6IHZhcigtLWxhbmd1YWdlLWljb24tc2l6ZSk7XG5cdGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuXHRtYXJnaW46IDAgIWltcG9ydGFudDtcblx0ZmlsdGVyOiB2YXIoLS1sYW5ndWFnZS1pY29uLWZpbHRlcik7XG59XG5cbi8qKiBMaW5lcyAqL1xucHJlLmNvZGUtc3R5bGVyLXByZSBbY2xhc3NePSdjb2RlLXN0eWxlci1saW5lLWhpZ2hsaWdodGVkJ10gPiAuY29kZS1zdHlsZXItbGluZS10ZXh0IHtcblx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1ncmFkaWVudC1iYWNrZ3JvdW5kLWNvbG91cikgMCUgdmFyKC0tZ3JhZGllbnQtaGlnaGxpZ2h0cy1jb2xvdXItc3RvcCksIHZhcigtLWNvZGUtc3R5bGVyLWNvZGVibG9jay1iYWNrZ3JvdW5kLWNvbG91cikgMTAwJSk7XG59XG4uY29kZS1zdHlsZXItbGluZS1oaWdobGlnaHRlZCB7XG5cdC0tZ3JhZGllbnQtYmFja2dyb3VuZC1jb2xvdXI6IHZhcigtLWNvZGUtc3R5bGVyLWRlZmF1bHQtaGlnaGxpZ2h0LWNvbG91cikgIWltcG9ydGFudDtcbn1cbi8qISBDb21wbGljYXRlZCAqL1xuLmNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodCAuY20tYWN0aXZlLFxuLmNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodC1lZGl0b3IgLmNtLWFjdGl2ZSB7XG5cdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdmFyKC0tY29kZS1zdHlsZXItYWN0aXZlLWVkaXRvci1saW5lLWNvbG91ciksIHZhcigtLWdyYWRpZW50LWhpZ2hsaWdodHMtY29sb3VyLXN0b3ApLCB0cmFuc3BhcmVudCkgIWltcG9ydGFudDtcbn1cbi8qISBDb21wbGljYXRlZCAqL1xuLmNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodCAubWFya2Rvd24tc291cmNlLXZpZXcgLkh5cGVyTUQtY29kZWJsb2NrLmNtLWFjdGl2ZSxcbi5jb2RlLXN0eWxlci1hY3RpdmUtbGluZS1oaWdobGlnaHQtY29kZWJsb2NrIC5tYXJrZG93bi1zb3VyY2UtdmlldyAuSHlwZXJNRC1jb2RlYmxvY2suY20tYWN0aXZlIHtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB2YXIoLS1jb2RlLXN0eWxlci1hY3RpdmUtY29kZWJsb2NrLWxpbmUtY29sb3VyKSwgdmFyKC0tZ3JhZGllbnQtaGlnaGxpZ2h0cy1jb2xvdXItc3RvcCksIHZhcigtLWNvZGUtc3R5bGVyLWNvZGVibG9jay1iYWNrZ3JvdW5kLWNvbG91cikpICFpbXBvcnRhbnQ7XG59XG5cbi8qKiBMaW5lIG51bWJlcnMgKi9cbi5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KGRpdik6bm90KFtjbGFzcyo9XCJIeXBlck1ELWNvZGVibG9ja1wiXSkgPiAuY29kZS1zdHlsZXItbGluZS1udW1iZXIge1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmNvZGUtc3R5bGVyIGNvZGUgPiBkaXY6Zmlyc3QtY2hpbGQgPiAuY29kZS1zdHlsZXItbGluZS1udW1iZXIgeyAvKj8gTWFpbnRhaW4gZ3V0dGVyIGNvbG91ciB3aGVuIHBhZGRlZCAqL1xuXHRib3gtc2hhZG93OiAwcHggY2FsYygtMSAqIHZhcigtLWNvZGUtcGFkZGluZykpIHZhcigtLWNvZGUtc3R5bGVyLWd1dHRlci1iYWNrZ3JvdW5kLWNvbG91cik7XG5cdHRyYW5zaXRpb246IGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgdmFyKC0tZHVyYXRpb24tYnV0dG9uKTtcbn1cbi5jb2RlLXN0eWxlciAuY29kZS1zdHlsZXItZm9sZGVkID4gY29kZSA+IGRpdjpmaXJzdC1jaGlsZCA+IC5jb2RlLXN0eWxlci1saW5lLW51bWJlciB7IC8qPyBNYWludGFpbiBndXR0ZXIgY29sb3VyIHdoZW4gcGFkZGVkICovXG5cdGJveC1zaGFkb3c6IDBweCAwcHggdmFyKC0tY29kZS1zdHlsZXItZ3V0dGVyLWJhY2tncm91bmQtY29sb3VyKTtcbn1cbi5jb2RlLXN0eWxlciBjb2RlID4gZGl2Omxhc3QtY2hpbGQgPiAuY29kZS1zdHlsZXItbGluZS1udW1iZXIgeyAvKj8gTWFpbnRhaW4gZ3V0dGVyIGNvbG91ciB3aGVuIHBhZGRlZCAqL1xuXHRib3gtc2hhZG93OiAwcHggdmFyKC0tY29kZS1wYWRkaW5nKSB2YXIoLS1jb2RlLXN0eWxlci1ndXR0ZXItYmFja2dyb3VuZC1jb2xvdXIpO1xufVxuLmNvZGUtc3R5bGVyIGNvZGUgPiBkaXY6b25seS1jaGlsZCA+IC5jb2RlLXN0eWxlci1saW5lLW51bWJlciB7IC8qPyBNYWludGFpbiBndXR0ZXIgY29sb3VyIHdoZW4gcGFkZGVkICovXG5cdGJveC1zaGFkb3c6IDBweCBjYWxjKC0xICogdmFyKC0tY29kZS1wYWRkaW5nKSkgdmFyKC0tY29kZS1zdHlsZXItZ3V0dGVyLWJhY2tncm91bmQtY29sb3VyKSwwcHggdmFyKC0tY29kZS1wYWRkaW5nKSB2YXIoLS1jb2RlLXN0eWxlci1ndXR0ZXItYmFja2dyb3VuZC1jb2xvdXIpO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBkaXYgPiBbY2xhc3MqPSdjb2RlLXN0eWxlci1saW5lLW51bWJlciddLFxuLm1hcmtkb3duLXNvdXJjZS12aWV3IGRpdltjbGFzcyo9XCJIeXBlck1ELWNvZGVibG9ja1wiXSA+IFtjbGFzcyo9J2NvZGUtc3R5bGVyLWxpbmUtbnVtYmVyJ10ge1xuXHR3aWR0aDogdmFyKC0tbGluZS1udW1iZXItZ3V0dGVyLXdpZHRoKTtcblx0bWluLXdpZHRoOiB2YXIoLS1saW5lLW51bWJlci1ndXR0ZXItbWluLXdpZHRoKTtcblx0cGFkZGluZy1yaWdodDogOHB4O1xuXHRwYWRkaW5nLWxlZnQ6IGNhbGMoNHB4ICsgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoKSk7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWd1dHRlci1iYWNrZ3JvdW5kLWNvbG91cik7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1ndXR0ZXItdGV4dC1jb2xvdXIpO1xuXHRmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vc3BhY2UpO1xuXHRmb250LXNpemU6IHZhcigtLWNvZGUtc2l6ZSk7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcbn1cbi5tYXJrZG93bi1zb3VyY2UtdmlldyBbY2xhc3MqPVwiSHlwZXJNRC1jb2RlYmxvY2tcIl0gPiAuY29kZS1zdHlsZXItbGluZS1udW1iZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IDA7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0bWluLXdpZHRoOiBjYWxjKHZhcigtLWxpbmUtbnVtYmVyLWd1dHRlci1taW4td2lkdGgpIC0gMTJweCk7XG5cdGhlaWdodDogMTAwJTtcblx0Ym94LXNpemluZzogY29udGVudC1ib3g7XG5cdHBhZGRpbmctdG9wOiB2YXIoLS1saW5lLW51bWJlci1oZWlnaHQtY29ycmVjdGlvbik7XG5cdGRpcmVjdGlvbjogcnRsO1xuXHRvdmVyZmxvdy14OiBhdXRvO1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9jay1iZWdpbiAuY29kZS1zdHlsZXItbGluZS1udW1iZXIsXG4ubWFya2Rvd24tc291cmNlLXZpZXcgLkh5cGVyTUQtY29kZWJsb2NrLWVuZCAuY29kZS1zdHlsZXItbGluZS1udW1iZXIge1xuXHR3aWR0aDogdmFyKC0tbGluZS1udW1iZXItZ3V0dGVyLXdpZHRoKTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyIHtcblx0cG9zaXRpb246IHN0aWNreTtcblx0dG9wOiAtMXB4O1xuXHRsZWZ0OiAwO1xuXHRib3JkZXItdG9wOiB2YXIoLS1saW5lLW51bWJlci1oZWlnaHQtY29ycmVjdGlvbikgc29saWQgdHJhbnNwYXJlbnQ7XG5cdGdyaWQtY29sdW1uOiAxO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBkaXY6bGFzdC1jaGlsZCA+IC5jb2RlLXN0eWxlci1saW5lLW51bWJlciB7XG5cdHdpZHRoOiB1bnNldDtcbn1cbi5jb2RlLXN0eWxlci1ndXR0ZXItaGlnaGxpZ2h0IHByZS5jb2RlLXN0eWxlci1wcmUgW2NsYXNzKj1cImNvZGUtc3R5bGVyLWxpbmUtaGlnaGxpZ2h0ZWRcIl0gLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JhZGllbnQtYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXItYWN0aXZlLWxpbmUtaGlnaGxpZ2h0LmNvZGUtc3R5bGVyLWd1dHRlci1oaWdobGlnaHQgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9ja1tjbGFzcyo9XCJjb2RlLXN0eWxlci1saW5lXCJdLmNtLWFjdGl2ZSAuY29kZS1zdHlsZXItbGluZS1udW1iZXIsXG4uY29kZS1zdHlsZXItYWN0aXZlLWxpbmUtaGlnaGxpZ2h0LWNvZGVibG9jay5jb2RlLXN0eWxlci1ndXR0ZXItaGlnaGxpZ2h0IC5tYXJrZG93bi1zb3VyY2UtdmlldyAuSHlwZXJNRC1jb2RlYmxvY2tbY2xhc3MqPVwiY29kZS1zdHlsZXItbGluZVwiXS5jbS1hY3RpdmUgLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyLFxuLmNvZGUtc3R5bGVyLWd1dHRlci1oaWdobGlnaHQgW2NsYXNzKj1cImNvZGUtc3R5bGVyLWxpbmUtaGlnaGxpZ2h0ZWRcIl0gLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwKSAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyLWd1dHRlci1hY3RpdmUtbGluZSAuY20tYWN0aXZlIC5jb2RlLXN0eWxlci1saW5lLW51bWJlcntcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWd1dHRlci1hY3RpdmUtdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9jazpoYXMoLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyKSB7XG5cdHBhZGRpbmctbGVmdDogY2FsYygxMnB4ICsgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoKSArIHZhcigtLWxpbmUtbnVtYmVyLWd1dHRlci13aWR0aCkgKyB2YXIoLS1saW5lLW51bWJlci1ndXR0ZXItcGFkZGluZykpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9ja1tjbGFzcyo9J2NvZGUtc3R5bGVyLWxpbmUnXTo6YmVmb3JlIHtcblx0Y29udGVudDogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiogTGluZSB0ZXh0ICovXG5wcmUuY29kZS1zdHlsZXItcHJlID4gY29kZSA+IGRpdltjbGFzcyo9J2NvZGUtc3R5bGVyLWxpbmUnXSB7XG5cdGRpc3BsYXk6IGNvbnRlbnRzICFpbXBvcnRhbnQ7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIC5jb2RlLXN0eWxlci1saW5lLXRleHQge1xuXHRmbGV4LWJhc2lzOiAxMDAlO1xuXHRwYWRkaW5nLWxlZnQ6IHZhcigtLWxpbmUtbnVtYmVyLWd1dHRlci1wYWRkaW5nKTtcblx0Z3JpZC1jb2x1bW46IDI7XG59XG4uSHlwZXJNRC1jb2RlYmxvY2s6aGFzKD4gLmNtLXdpZGdldEJ1ZmZlcikgeyAvKj8gUHJldmVudCBMaW5lIFdyYXBzICovXG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uSHlwZXJNRC1jb2RlYmxvY2s6aGFzKD4gLmNtLXdpZGdldEJ1ZmZlcikgPiAuY20taG1kLWNvZGVibG9jayB7IC8qPyBQcmV2ZW50IExpbmUgV3JhcHMgKi9cblx0d2hpdGUtc3BhY2U6IGJyZWFrLXNwYWNlcztcbn1cblxuLyoqIFNjcm9sbCBCYXIgKi9cbnByZS5jb2RlLXN0eWxlci1wcmUuY29kZS1zdHlsZXItZm9sZGVkOjotd2Via2l0LXNjcm9sbGJhcixcbnByZS5jb2RlLXN0eWxlci1wcmUuY29kZS1zdHlsZXItZm9sZGVkIGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFyLFxucHJlLmNvZGUtc3R5bGVyLXByZS5oaWRlLXNjcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXIsXG5wcmUuY29kZS1zdHlsZXItcHJlLmhpZGUtc2Nyb2xsIGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiogQnV0dG9ucyAqL1xuQGtleWZyYW1lcyBvdXRkZW50IHtcblx0ZnJvbSB7XG5cdFx0bWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luKSAtIHZhcigtLWRlbnQtZGlmZmVyZW5jZSkpO1xuXHRcdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1pbik7XG5cdH1cblx0dG8ge1xuXHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pO1xuXHRcdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1vdXQpO1xuXHR9XG59XG5Aa2V5ZnJhbWVzIGluZGVudCB7XG5cdGZyb20ge1xuXHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pO1xuXHRcdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1vdXQpO1xuXHR9XG5cdHRvIHtcblx0XHRtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pIC0gdmFyKC0tZGVudC1kaWZmZXJlbmNlKSk7XG5cdFx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLWluKTtcblx0fVxufVxuQGtleWZyYW1lcyByZXZlcnNlLW91dGRlbnQge1xuXHRmcm9tIHtcblx0XHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24taW4pO1xuXHR9XG5cdHRvIHtcblx0XHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24tb3V0KTtcblx0fVxufVxuQGtleWZyYW1lcyByZXZlcnNlLWluZGVudCB7XG5cdGZyb20ge1xuXHRcdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1vdXQpO1xuXHR9XG5cdHRvIHtcblx0XHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24taW4pO1xuXHR9XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbiB7XG5cdGRpc3BsYXk6IHVuc2V0ICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcblx0Ym9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG5cdG1hcmdpbjogMDtcblx0bWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuXHRtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG5cdGJveC1zaGFkb3c6IG5vbmU7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1idXR0b24tY29sb3VyKSAhaW1wb3J0YW50O1xuXHRmb250LWZhbWlseTogdmFyKC0tZm9udC1pbnRlcmZhY2UpO1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtdWktc21hbGxlcik7XG5cdG9wYWNpdHk6IDE7XG5cdHRyYW5zaXRpb246IHZpc2liaWxpdHkgdmFyKC0tZHVyYXRpb24tYnV0dG9uKSwgb3BhY2l0eSB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xuXHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZS5jb2RlLXN0eWxlci1mb2xkZWQgYnV0dG9uLFxucHJlLmNvZGUtc3R5bGVyLXByZTpub3QoLmNvZGUtc3R5bGVyLWZvbGRlZCk6bm90KDpob3ZlcikgYnV0dG9uLFxucHJlLmNvZGUtc3R5bGVyLXByZTpub3QoLmNvZGUtc3R5bGVyLWZvbGRlZCk6bm90KDpob3ZlcikgLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXI6OmFmdGVyIHtcblx0b3BhY2l0eTogMDtcblx0dmlzaWJpbGl0eTogaGlkZGVuXG59XG4uY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lcjo6YWZ0ZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHRvcDogMDtcblx0cmlnaHQ6IDA7XG5cdGJvdHRvbTogMDtcblx0bGVmdDogMDtcblx0d2lkdGg6IDIwcHg7XG5cdGhlaWdodDogMjBweDtcblx0bWFyZ2luOiBhdXRvO1xuXHRtYXJnaW4tcmlnaHQ6IHZhcigtLWhlYWRlci1idXR0b24tc3BhY2luZyk7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWJ1dHRvbi1jb2xvdXIpO1xuXHRjb250ZW50OiBcIlxcMjAwYlwiO1xuXHQtd2Via2l0LW1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMzIgMzInIHhtbDpzcGFjZT0ncHJlc2VydmUnJTNFJTNDcGF0aCBkPSdNMTYgMjIgNiAxMmwxLjQtMS40IDguNiA4LjYgOC42LTguNkwyNiAxMnonLyUzRSUzQ3BhdGggZmlsbD0nbm9uZScgZD0nTTAgMGgzMnYzMkgweicvJTNFJTNDL3N2ZyUzRVwiKTtcblx0bWFzay1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAzMiAzMicgZmlsbD0nbm9uZScgc3Ryb2tlPSdjdXJyZW50Q29sb3InIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyAlM0UlM0Nwb2x5bGluZSBwb2ludHM9JzYgOSAxMiAxNSAxOCA5Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuXHQtd2Via2l0LW1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG5cdG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG5cdG9wYWNpdHk6IDE7XG5cdHNjYWxlOiAwLjg7XG5cdHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS1kdXJhdGlvbi1idXR0b24pIGVhc2Utb3V0LCB2aXNpYmlsaXR5IHZhcigtLWR1cmF0aW9uLWJ1dHRvbiksIG9wYWNpdHkgdmFyKC0tZHVyYXRpb24tYnV0dG9uKSwgc2NhbGUgdmFyKC0tZHVyYXRpb24tYnV0dG9uKSBjdWJpYy1iZXppZXIoMC40LCAwLjE0LCAwLjMsIDEpO1xuXHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZS5jb2RlLXN0eWxlci1mb2xkZWQgLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXI6OmFmdGVyLFxuLm1hcmtkb3duLXNvdXJjZS12aWV3IDpub3QocHJlLmNvZGUtc3R5bGVyLXByZSkgPiAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lcjpub3QoOmhhcygrIC5IeXBlck1ELWNvZGVibG9jay1iZWdpbikpOjphZnRlciB7XG5cdHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG59XG4uY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lcjpob3Zlcjo6YWZ0ZXIge1xuXHRzY2FsZTogMTtcbn1cbmJvZHkgcHJlLmNvZGUtc3R5bGVyLXByZTpoYXMoLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXItaGlkZGVuKSBidXR0b24uY29weS1jb2RlLWJ1dHRvbixcbmJvZHkgLm1hcmtkb3duLXNvdXJjZS12aWV3IDpub3QocHJlLmNvZGUtc3R5bGVyLXByZSkgPiAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lci1oaWRkZW4gKyAuSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4gc3Bhbi5jb2RlLWJsb2NrLWZsYWlyIHtcblx0dG9wOiBjYWxjKDAuNSAqIHZhcigtLWZvbnQtdGV4dC1zaXplKSAqIDAuODc1ICogdmFyKC0tbGluZS1oZWlnaHQtbm9ybWFsKSkgIWltcG9ydGFudDtcblx0LS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbjogMTJweDtcbn1cbmJvZHkgLm1hcmtkb3duLXNvdXJjZS12aWV3IDpub3QocHJlLmNvZGUtc3R5bGVyLXByZSkgPiAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lci5oaWRkZW4gKyAuSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4ge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY29weS1jb2RlLWJ1dHRvbiB7XG5cdHRvcDogbWF4KGNhbGMoMC41ICogdmFyKC0tY29udGFpbmVyLWhlaWdodCkgKiAxKSxjYWxjKDAuNSAqIHZhcigtLWNvbnRhaW5lci1taW4taGVpZ2h0KSAqIDEpKSAhaW1wb3J0YW50O1xuXHRib3R0b206IHVuc2V0ICFpbXBvcnRhbnQ7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNvcHktY29kZS1idXR0b24sXG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5ydW4tY29kZS1idXR0b24sIC8qPyBFeGVjdXRlIENvZGUgUGx1Z2luIENvbXBhdGliaWxpdHkgKi9cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5IeXBlck1ELWNvZGVibG9jay5jb2RlLXN0eWxlci1saW5lIHNwYW4uY29kZS1ibG9jay1mbGFpciB7XG5cdG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbikgLSB2YXIoLS1kZW50LWRpZmZlcmVuY2UpKTtcblx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLWluKTtcblx0d2lsbC1jaGFuZ2U6IG1hcmdpbi1yaWdodCwgY2xpcC1wYXRoO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY29weS1jb2RlLWJ1dHRvbjpub3QoOmFjdGl2ZSksXG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5ydW4tY29kZS1idXR0b246bm90KDphY3RpdmUpLCAvKj8gRXhlY3V0ZSBDb2RlIFBsdWdpbiBDb21wYXRpYmlsaXR5ICovXG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuSHlwZXJNRC1jb2RlYmxvY2suY29kZS1zdHlsZXItbGluZSBzcGFuLmNvZGUtYmxvY2stZmxhaXI6bm90KDphY3RpdmUpIHtcblx0YW5pbWF0aW9uOiBpbmRlbnQgdmFyKC0tZHVyYXRpb24tYnV0dG9uKTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNvcHktY29kZS1idXR0b246aG92ZXIsXG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5ydW4tY29kZS1idXR0b246aG92ZXIsIC8qPyBFeGVjdXRlIENvZGUgUGx1Z2luIENvbXBhdGliaWxpdHkgKi9cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5IeXBlck1ELWNvZGVibG9jay5jb2RlLXN0eWxlci1saW5lIHNwYW4uY29kZS1ibG9jay1mbGFpcjpob3Zlcntcblx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbik7XG5cdGFuaW1hdGlvbjogb3V0ZGVudCB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLW91dCk7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jb3B5LWNvZGUtYnV0dG9uOmFjdGl2ZSxcbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLnJ1bi1jb2RlLWJ1dHRvbjphY3RpdmUsIC8qPyBFeGVjdXRlIENvZGUgUGx1Z2luIENvbXBhdGliaWxpdHkgKi9cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5IeXBlck1ELWNvZGVibG9jay5jb2RlLXN0eWxlci1saW5lIHNwYW4uY29kZS1ibG9jay1mbGFpcjphY3RpdmUge1xuXHRzY2FsZTogMC45NTtcblx0dHJhbnNpdGlvbjogc2NhbGUgdmFyKC0tZHVyYXRpb24tYnV0dG9uKSBjdWJpYy1iZXppZXIoMC40LCAwLjE0LCAwLjMsIDEpO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY29weS1jb2RlLWJ1dHRvbjo6YmVmb3JlLFxuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLkh5cGVyTUQtY29kZWJsb2NrLmNvZGUtc3R5bGVyLWxpbmUgc3Bhbi5jb2RlLWJsb2NrLWZsYWlyOjpiZWZvcmUge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHdpZHRoOiAxNHB4O1xuXHRoZWlnaHQ6IDE0cHg7XG5cdHBhZGRpbmctcmlnaHQ6IDRweDtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZS1zdHlsZXItYnV0dG9uLWNvbG91cik7XG5cdGNvbnRlbnQ6IFwiXFwyMDBiXCI7XG5cdC13ZWJraXQtbWFzay1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAzMiAzMiclM0UlM0NwYXRoIGQ9J00yOCAxMHYxOEgxMFYxMGgxOG0wLTJIMTBhMiAyIDAgMCAwLTIgMnYxOGEyIDIgMCAwIDAgMiAyaDE4YTIgMiAwIDAgMCAyLTJWMTBhMiAyIDAgMCAwLTItMlonLyUzRSUzQ3BhdGggZD0nTTQgMThIMlY0YTIgMiAwIDAgMSAyLTJoMTR2Mkg0WicvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBkPSdNMCAwaDMydjMySDB6JyBkYXRhLW5hbWU9JyZsdDtUcmFuc3BhcmVudCBSZWN0YW5nbGUmZ3Q7Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuXHRtYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDMyIDMyJyUzRSUzQ3BhdGggZD0nTTI4IDEwdjE4SDEwVjEwaDE4bTAtMkgxMGEyIDIgMCAwIDAtMiAydjE4YTIgMiAwIDAgMCAyIDJoMThhMiAyIDAgMCAwIDItMlYxMGEyIDIgMCAwIDAtMi0yWicvJTNFJTNDcGF0aCBkPSdNNCAxOEgyVjRhMiAyIDAgMCAxIDItMmgxNHYySDRaJy8lM0UlM0NwYXRoIGZpbGw9J25vbmUnIGQ9J00wIDBoMzJ2MzJIMHonIGRhdGEtbmFtZT0nJmx0O1RyYW5zcGFyZW50IFJlY3RhbmdsZSZndDsnLyUzRSUzQy9zdmclM0VcIik7XG5cdC13ZWJraXQtbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0bWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0dmVydGljYWwtYWxpZ246IDFweDtcbn1cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5IeXBlck1ELWNvZGVibG9jay5jb2RlLXN0eWxlci1saW5lIHNwYW4uY29kZS1ibG9jay1mbGFpciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiBtaW4oY2FsYygtMC41ICogdmFyKC0tY29udGFpbmVyLWhlaWdodCkgKiAxLjEgLSB2YXIoLS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoKSksY2FsYygtMC41ICogdmFyKC0tY29udGFpbmVyLW1pbi1oZWlnaHQpICogMS4xIC0gdmFyKC0taGVhZGVyLXNlcGFyYXRvci13aWR0aCkpKSAhaW1wb3J0YW50O1xuXHRyaWdodDogMDtcblx0cGFkZGluZzogMDtcblx0bWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuXHRtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG5cdGZvbnQtc2l6ZTogMDtcblx0bGluZS1oZWlnaHQ6IGluaXRpYWwgIWltcG9ydGFudDtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuSHlwZXJNRC1jb2RlYmxvY2suY29kZS1zdHlsZXItbGluZSBzcGFuLmNvZGUtYmxvY2stZmxhaXIgPiAqIHtcblx0d2lkdGg6IDBweDtcbn1cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5IeXBlck1ELWNvZGVibG9jay5jb2RlLXN0eWxlci1saW5lIHNwYW4uY29kZS1ibG9jay1mbGFpcjo6YmVmb3JlIHtcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXVpLXNtYWxsZXIpO1xuXHRvcGFjaXR5OiAxO1xuXHR2ZXJ0aWNhbC1hbGlnbjogLTFweDtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5IeXBlck1ELWNvZGVibG9jay5jb2RlLXN0eWxlci1saW5lIHNwYW4uY29kZS1ibG9jay1mbGFpcjo6YWZ0ZXIge1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItYnV0dG9uLWNvbG91cik7XG5cdGNvbnRlbnQ6ICdDb3B5Jztcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXVpLXNtYWxsZXIpO1xuXHRvcGFjaXR5OiAxO1xuXHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luLmNvZGUtc3R5bGVyLWxpbmUge1xuXHRvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqIExpbmtzICovXG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuSHlwZXJNRC1jb2RlYmxvY2suY29kZS1zdHlsZXItbGluZSAuY29kZS1zdHlsZXItY29tbWVudC1saW5rIHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLkh5cGVyTUQtY29kZWJsb2NrLmNvZGUtc3R5bGVyLWxpbmUgLmNvZGUtc3R5bGVyLWNvbW1lbnQtbGluayA+IHAge1xuXHRkaXNwbGF5OiBpbmxpbmU7XG59XG4iLCAiLyoqIERlZmluZSBDU1MgVmFyaWFibGVzICovXG5ib2R5IHtcblx0LS1jb2RlLXN0eWxlci1pbmxpbmUtZm9udC13ZWlnaHQ6IDQwMDtcblx0LS1jb2RlLXN0eWxlci1pbmxpbmUtYm9yZGVyLXJhZGl1czogNnB4O1xuXHQtLWNvZGUtc3R5bGVyLWlubGluZS1wYWRkaW5nLXZlcnRpY2FsOiA1cHg7XG5cdC0tY29kZS1zdHlsZXItaW5saW5lLXBhZGRpbmctaG9yaXpvbnRhbDogNXB4O1xuXHQtLWNvZGUtc3R5bGVyLWlubGluZS1tYXJnaW4taG9yaXpvbnRhbDogMHB4O1xuXHQtLWNvZGUtc3R5bGVyLWlubGluZS1jb2xvdXI6IHZhcigtLWNvZGUtbm9ybWFsKTtcblx0LS1jb2RlLXN0eWxlci1pbmxpbmUtY29sb3VyLWFjdGl2ZTogdmFyKC0tY29kZS1ub3JtYWwpO1xuXHQtLWNvZGUtc3R5bGVyLWlubGluZS1iYWNrZ3JvdW5kLWNvbG91cjogdmFyKC0tY29kZS1iYWNrZ3JvdW5kKTtcbn1cblxuLmNvZGUtc3R5bGVyLmNvZGUtc3R5bGVyLXN0eWxlLWlubGluZSAuY20tcy1vYnNpZGlhbiBzcGFuLmNtLWlubGluZS1jb2RlLFxuLmNvZGUtc3R5bGVyLmNvZGUtc3R5bGVyLXN0eWxlLWlubGluZSAubWFya2Rvd24tcmVuZGVyZWQgOm5vdChwcmUpID4gY29kZTpub3QoW2NsYXNzKj1cImJsdXJcIl0pLFxuLmNvZGUtc3R5bGVyLmNvZGUtc3R5bGVyLXN0eWxlLWlubGluZSAucmV2ZWFsIDpub3QocHJlKSA+IGNvZGU6bm90KFtjbGFzcyo9XCJibHVyXCJdKSxcbi5jb2RlLXN0eWxlci5jb2RlLXN0eWxlci1zdHlsZS1pbmxpbmUgY29kZS5jb2RlLXN0eWxlci1zZXR0aW5ncy1pbmxpbmUtY29kZSB7XG5cdHBhZGRpbmc6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1wYWRkaW5nLXZlcnRpY2FsKSB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtcGFkZGluZy1ob3Jpem9udGFsKSAhaW1wb3J0YW50O1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudDtcblx0bWFyZ2luOiAwcHggdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLW1hcmdpbi1ob3Jpem9udGFsKSAhaW1wb3J0YW50O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtY29sb3VyKTtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1mb250LXdlaWdodCk7XG59XG4uY29kZS1zdHlsZXIuY29kZS1zdHlsZXItc3R5bGUtaW5saW5lIC5jbS1zLW9ic2lkaWFuIHNwYW4uY20tZm9ybWF0dGluZy1jb2RlIHsgLyo/IFN0YW5kYWxvbmUgYmFja3RpY2tzICovXG5cdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLWNvbG91ci1hY3RpdmUpO1xufVxuLmNvZGUtc3R5bGVyLmNvZGUtc3R5bGVyLXN0eWxlLWlubGluZSAuY20tcy1vYnNpZGlhbiBzcGFuLmNvZGUtc3R5bGVyLWlubGluZS1vcGVuZXIgfiBzcGFuLmNtLWlubGluZS1jb2RlOm5vdCguY20tZm9ybWF0dGluZy1jb2RlKSB7XG5cdHBhZGRpbmctbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1yYWRpdXM6IDBweCB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtYm9yZGVyLXJhZGl1cykgdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLWJvcmRlci1yYWRpdXMpIDBweCAhaW1wb3J0YW50O1xuXHRtYXJnaW4tbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIuY29kZS1zdHlsZXItc3R5bGUtaW5saW5lIC5jbS1zLW9ic2lkaWFuIHNwYW4uY29kZS1zdHlsZXItaW5saW5lLW9wZW5lcixcbi5jb2RlLXN0eWxlci5jb2RlLXN0eWxlci1zdHlsZS1pbmxpbmUgLmNtLXMtb2JzaWRpYW4gc3Bhbi5jbS1mb3JtYXR0aW5nLWNvZGU6aGFzKCsgc3Bhbi5jbS1pbmxpbmUtY29kZTpub3QoLmNtLWZvcm1hdHRpbmctY29kZSkpIHsvKj8gRmlyc3QgYmFja3RpY2sgKi9cblx0cGFkZGluZy1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctbGVmdDogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLXBhZGRpbmctaG9yaXpvbnRhbCkgIWltcG9ydGFudDtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLWJvcmRlci1yYWRpdXMpIDBweCAwcHggdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLWJvcmRlci1yYWRpdXMpICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtbWFyZ2luLWhvcml6b250YWwpICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtY29sb3VyLWFjdGl2ZSk7XG59XG4uY29kZS1zdHlsZXIuY29kZS1zdHlsZXItc3R5bGUtaW5saW5lIC5jbS1zLW9ic2lkaWFuIHNwYW4uY20tZm9ybWF0dGluZy1jb2RlICsgc3Bhbi5jbS1pbmxpbmUtY29kZTpub3QoLmNtLWZvcm1hdHRpbmctY29kZSkgeyAvKj8gSW5uZXIgY29kZSB3aXRoIGJhY2t0aWNrcyAqL1xuXHRwYWRkaW5nLXJpZ2h0OiAwcHggIWltcG9ydGFudDtcblx0cGFkZGluZy1sZWZ0OiAwcHggIWltcG9ydGFudDtcblx0Ym9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG5cdG1hcmdpbjogMHB4IDBweCAhaW1wb3J0YW50O1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLWNvbG91ci1hY3RpdmUpO1xufVxuLmNvZGUtc3R5bGVyLmNvZGUtc3R5bGVyLXN0eWxlLWlubGluZSAuY20tcy1vYnNpZGlhbiBzcGFuLmNtLWlubGluZS1jb2RlOm5vdCguY20tZm9ybWF0dGluZy1jb2RlKSArIHNwYW4uY20tZm9ybWF0dGluZy1jb2RlIHsvKj8gTGFzdCBiYWNrdGljayAqL1xuXHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtcGFkZGluZy1ob3Jpem9udGFsKSAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xuXHRib3JkZXItcmFkaXVzOiAwcHggdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLWJvcmRlci1yYWRpdXMpIHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1ib3JkZXItcmFkaXVzKSAwcHggIWltcG9ydGFudDtcblx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtbWFyZ2luLWhvcml6b250YWwpICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAwcHggIWltcG9ydGFudDtcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1jb2xvdXItYWN0aXZlKTtcbn1cbmJvZHkuY29kZS1zdHlsZXIgc3Bhbi5jb2RlLXN0eWxlci1pbmxpbmUtb3BlbmVyID4gc3BhbiA+IGltZy5jb2RlLXN0eWxlci1pbmxpbmUtaWNvbjpub3QoW2NsYXNzKj1cImVtb2ppXCJdKSB7XG5cdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGNhbGModmFyKC0tY29kZS1zaXplKSAqIDEuMik7XG5cdG1hcmdpbi1ib3R0b206IDJweCAhaW1wb3J0YW50O1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmNvZGUtc3R5bGVyIHNwYW4uY29kZS1zdHlsZXItaW5saW5lLW9wZW5lciAuY29kZS1zdHlsZXItaW5saW5lLXRpdGxlIHtcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS10aXRsZS1jb2xvdXIpO1xuXHRmb250LXdlaWdodDogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLXRpdGxlLWZvbnQtd2VpZ2h0KTtcbn1cbi5jb2RlLXN0eWxlciBzcGFuLmNvZGUtc3R5bGVyLWlubGluZS1vcGVuZXIgLmNvZGUtc3R5bGVyLWlubGluZS10aXRsZTo6YWZ0ZXIge1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLXRpdGxlLWNvbG9yKTtcblx0Y29udGVudDogJ1xcRkY1Qyc7XG59XG4uY29kZS1zdHlsZXIgc3Bhbi5jb2RlLXN0eWxlci1pbmxpbmUtb3BlbmVyIHNwYW46aGFzKCA+IGltZy5jb2RlLXN0eWxlci1pbmxpbmUtaWNvbikge1xuXHRwYWRkaW5nLXJpZ2h0OiA4cHg7XG59XG4uY29kZS1zdHlsZXIgLmNtLXMtb2JzaWRpYW4gc3Bhbi5jbS1pbmxpbmUtY29kZSAuY29kZS1zdHlsZXItaW5saW5lLXBhcmFtZXRlcnMge1xuXHRjb2xvcjogdmFyKC0tY29kZS1jb21tZW50KTtcbn1cblxuLnJldmVhbCBpbWcuY29kZS1zdHlsZXItaW5saW5lLWljb24ge1xuXHRtYXJnaW46IGluaGVyaXQ7XG59XG4iLCAiLmNtLWhtZC1mcm9udG1hdHRlci5jbS1pbmxpbmUtY29kZSxcbi5jbS1obWQtZnJvbnRtYXR0ZXIuY20tbWF0aCB7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLW5vcm1hbCk7XG59XG4uY20taG1kLWZyb250bWF0dGVyLmNtLWhtZC1mcm9udG1hdHRlci5jbS1kZWYuY20tZGVmLFxuLmNtLWhtZC1mcm9udG1hdHRlci5jbS1jb21tZW50LFxuLmNtLWhtZC1mcm9udG1hdHRlci5jbS1tZXRhIHtcblx0Y29sb3I6IHZhcigtLWNvZGUtY29tbWVudCk7XG59XG4uY20taG1kLWZyb250bWF0dGVyLmNtLXRhZyB7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXRhZyk7XG59XG4uY20taG1kLWZyb250bWF0dGVyLmNtLXB1bmN0dWF0aW9uLFxuLmNtLWhtZC1mcm9udG1hdHRlci5jbS1icmFja2V0LFxuLmNtLWhtZC1mcm9udG1hdHRlci5jbS1ociB7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXB1bmN0dWF0aW9uKTtcbn1cbi5jbS1obWQtZnJvbnRtYXR0ZXIuY20tbnVtYmVyIHtcblx0Y29sb3I6IHZhcigtLWNvZGUtdmFsdWUpO1xufVxuLmNtLWhtZC1mcm9udG1hdHRlci5jbS1xdWFsaWZpZXIsXG4uY20taG1kLWZyb250bWF0dGVyLmNtLXN0cmluZyxcbi5jbS1obWQtZnJvbnRtYXR0ZXIuY20tc3RyaW5nLTIge1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHJpbmcpO1xufVxuLmNtLWhtZC1mcm9udG1hdHRlci5jbS1vcGVyYXRvciB7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLW9wZXJhdG9yKTtcbn1cbi5jbS1obWQtZnJvbnRtYXR0ZXIuY20tbGluayxcbi5jbS1obWQtZnJvbnRtYXR0ZXIuY20tdmFyaWFibGUsXG4uY20taG1kLWZyb250bWF0dGVyLmNtLXZhcmlhYmxlLTIsXG4uY20taG1kLWZyb250bWF0dGVyLmNtLXZhcmlhYmxlLTMge1xuXHRjb2xvcjogdmFyKC0tY29kZS1wcm9wZXJ0eSk7XG59XG4uY20taG1kLWZyb250bWF0dGVyLFxuLmNtLWhtZC1mcm9udG1hdHRlci5jbS1idWlsdGluLFxuLmNtLWhtZC1mcm9udG1hdHRlci5jbS1wcm9wZXJ0eSxcbi5jbS1obWQtZnJvbnRtYXR0ZXIuY20tYXR0cmlidXRlLFxuLmNtLWhtZC1mcm9udG1hdHRlci5jbS10eXBlIHtcblx0Y29sb3I6IHZhcigtLWNvZGUtZnVuY3Rpb24pO1xufVxuLmNtLWhtZC1mcm9udG1hdHRlci5jbS1rZXl3b3JkIHtcblx0Y29sb3I6IHZhcigtLWNvZGUta2V5d29yZCk7XG59XG4uY20taG1kLWZyb250bWF0dGVyLmNtLWF0b20ge1xuXHRjb2xvcjogdmFyKC0tY29kZS1pbXBvcnRhbnQpXG59XG4iLCAiZGl2LnByaW50IHtcblx0LS1saW5lLXdyYXBwaW5nOiBwcmUtd3JhcCAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyIGRpdi5wcmludCBwcmUuY29kZS1zdHlsZXItcHJlIGNvZGUge1xuXHRtYXgtaGVpZ2h0OiB1bnNldCAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyIGRpdi5wcmludCBwcmUuY29kZS1zdHlsZXItcHJlLmNvZGUtc3R5bGVyLWZvbGRlZCBjb2RlIHtcblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuIiwgIi8qKiBQaWNrciAxLjguMiBNSVQgfCBodHRwczovL2dpdGh1Yi5jb20vU2ltb253ZXAvcGlja3IgKi9cbi5waWNrciB7cG9zaXRpb246IHJlbGF0aXZlO292ZXJmbG93OiB2aXNpYmxlO3RyYW5zZm9ybTogdHJhbnNsYXRlWSgwKX0gIC5waWNrciAqIHtib3gtc2l6aW5nOiBib3JkZXItYm94O2JvcmRlcjogbm9uZTstd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7YXBwZWFyYW5jZTogbm9uZTtvdXRsaW5lOiBub25lfSAgLnBpY2tyIC5wY3ItYnV0dG9uIHtwb3NpdGlvbjogcmVsYXRpdmU7d2lkdGg6IDJlbTtoZWlnaHQ6IDJlbTtwYWRkaW5nOiAwLjVlbTtib3JkZXItcmFkaXVzOiAuMTVlbTtiYWNrZ3JvdW5kOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUwIDUwXCIgc3Ryb2tlPVwiJTIzNDI0NDVBXCIgc3Ryb2tlLXdpZHRoPVwiNXB4XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjxwYXRoIGQ9XCJNNDUsNDVMNSw1XCI+PC9wYXRoPjxwYXRoIGQ9XCJNNDUsNUw1LDQ1XCI+PC9wYXRoPjwvc3ZnPicpIG5vLXJlcGVhdCBjZW50ZXI7YmFja2dyb3VuZC1zaXplOiAwO2N1cnNvcjogcG9pbnRlcjtmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgQXJpYWwsIHNhbnMtc2VyaWY7dHJhbnNpdGlvbjogYWxsIDAuM3N9ICAucGlja3IgLnBjci1idXR0b246OmJlZm9yZSB7cG9zaXRpb246IGFic29sdXRlO3otaW5kZXg6IC0xO3RvcDogMDtsZWZ0OiAwO3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtib3JkZXItcmFkaXVzOiAuMTVlbTtiYWNrZ3JvdW5kOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIgMlwiPjxwYXRoIGZpbGw9XCJ3aGl0ZVwiIGQ9XCJNMSwwSDJWMUgxVjBaTTAsMUgxVjJIMFYxWlwiLz48cGF0aCBmaWxsPVwiZ3JheVwiIGQ9XCJNMCwwSDFWMUgwVjBaTTEsMUgyVjJIMVYxWlwiLz48L3N2Zz4nKTtiYWNrZ3JvdW5kLXNpemU6IC41ZW07Y29udGVudDogJyd9ICAucGlja3IgLnBjci1idXR0b246OmJlZm9yZSB7ei1pbmRleDogaW5pdGlhbH0gIC5waWNrciAucGNyLWJ1dHRvbjo6YWZ0ZXIge3Bvc2l0aW9uOiBhYnNvbHV0ZTt0b3A6IDA7bGVmdDogMDt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7Ym9yZGVyLXJhZGl1czogLjE1ZW07YmFja2dyb3VuZDogdmFyKC0tcGNyLWNvbG9yKTtjb250ZW50OiAnJzt0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuM3N9ICAucGlja3IgLnBjci1idXR0b24uY2xlYXIge2JhY2tncm91bmQtc2l6ZTogNzAlfSAgLnBpY2tyIC5wY3ItYnV0dG9uLmNsZWFyOjpiZWZvcmUge29wYWNpdHk6IDB9ICAucGlja3IgLnBjci1idXR0b24uY2xlYXI6Zm9jdXMge2JveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODUpLCAwIDAgMCAzcHggdmFyKC0tcGNyLWNvbG9yKX0gIC5waWNrciAucGNyLWJ1dHRvbi5kaXNhYmxlZCB7Y3Vyc29yOiBub3QtYWxsb3dlZH0gIC5waWNrciAqLCAucGNyLWFwcCAqIHtib3gtc2l6aW5nOiBib3JkZXItYm94O2JvcmRlcjogbm9uZTstd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7YXBwZWFyYW5jZTogbm9uZTtvdXRsaW5lOiBub25lfSAgLnBpY2tyIGlucHV0OmZvY3VzLCAucGlja3IgaW5wdXQucGNyLWFjdGl2ZSwgLnBpY2tyIGJ1dHRvbjpmb2N1cywgLnBpY2tyIGJ1dHRvbi5wY3ItYWN0aXZlLCAucGNyLWFwcCBpbnB1dDpmb2N1cywgLnBjci1hcHAgaW5wdXQucGNyLWFjdGl2ZSwgLnBjci1hcHAgYnV0dG9uOmZvY3VzLCAucGNyLWFwcCBidXR0b24ucGNyLWFjdGl2ZSB7Ym94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSksIDAgMCAwIDNweCB2YXIoLS1wY3ItY29sb3IpfSAgLnBpY2tyIC5wY3ItcGFsZXR0ZSwgLnBpY2tyIC5wY3Itc2xpZGVyLCAucGNyLWFwcCAucGNyLXBhbGV0dGUsIC5wY3ItYXBwIC5wY3Itc2xpZGVyIHt0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuM3N9ICAucGlja3IgLnBjci1wYWxldHRlOmZvY3VzLCAucGlja3IgLnBjci1zbGlkZXI6Zm9jdXMsIC5wY3ItYXBwIC5wY3ItcGFsZXR0ZTpmb2N1cywgLnBjci1hcHAgLnBjci1zbGlkZXI6Zm9jdXMge2JveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODUpLCAwIDAgMCAzcHggcmdiYSgwLCAwLCAwLCAwLjI1KX0gIC5wY3ItYXBwIHtwb3NpdGlvbjogZml4ZWQ7ei1pbmRleDogMTAwMDA7dG9wOiAwO2xlZnQ6IDA7ZGlzcGxheTogZmxleDtmbGV4LWRpcmVjdGlvbjogY29sdW1uO2JvcmRlci1yYWRpdXM6IDAuMWVtO2JhY2tncm91bmQ6ICNmZmY7Ym94LXNoYWRvdzogMCAwLjE1ZW0gMS41ZW0gMCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMCAxZW0gMCByZ2JhKDAsIDAsIDAsIDAuMDMpO2ZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBBcmlhbCwgc2Fucy1zZXJpZjtvcGFjaXR5OiAwO3RyYW5zaXRpb246IG9wYWNpdHkgMC4zcywgdmlzaWJpbGl0eSAwcyAwLjNzO3Zpc2liaWxpdHk6IGhpZGRlbn0gIC5wY3ItYXBwLnZpc2libGUge29wYWNpdHk6IDE7dHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO3Zpc2liaWxpdHk6IHZpc2libGV9ICAucGNyLWFwcCAucGNyLXN3YXRjaGVzIHtkaXNwbGF5OiBmbGV4O2ZsZXgtd3JhcDogd3JhcDttYXJnaW4tdG9wOiAwLjc1ZW19ICAucGNyLWFwcCAucGNyLXN3YXRjaGVzLnBjci1sYXN0IHttYXJnaW46IDB9ICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHsgIC5wY3ItYXBwIC5wY3Itc3dhdGNoZXMge2Rpc3BsYXk6IGdyaWQ7YWxpZ24taXRlbXM6IGNlbnRlcjtncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgMS43NWVtKX0gIH0gIC5wY3ItYXBwIC5wY3Itc3dhdGNoZXMgPiBidXR0b24ge3Bvc2l0aW9uOiByZWxhdGl2ZTt6LWluZGV4OiAxO292ZXJmbG93OiBoaWRkZW47d2lkdGg6IGNhbGMoMS43NWVtIC0gMTBweCk7aGVpZ2h0OiBjYWxjKDEuNzVlbSAtIDEwcHgpO2ZsZXgtc2hyaW5rOiAwO2JvcmRlci1yYWRpdXM6IDAuMTVlbTttYXJnaW46IDIuNXB4O2JhY2tncm91bmQ6IHRyYW5zcGFyZW50O2N1cnNvcjogcG9pbnRlcjtmb250LXNpemU6IDFlbTtqdXN0aWZ5LXNlbGY6IGNlbnRlcjt0cmFuc2l0aW9uOiBhbGwgMC4xNXN9ICAucGNyLWFwcCAucGNyLXN3YXRjaGVzID4gYnV0dG9uOjpiZWZvcmUge3Bvc2l0aW9uOiBhYnNvbHV0ZTt6LWluZGV4OiAtMTt0b3A6IDA7bGVmdDogMDt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7Ym9yZGVyLXJhZGl1czogLjE1ZW07YmFja2dyb3VuZDogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCwgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyIDJcIj48cGF0aCBmaWxsPVwid2hpdGVcIiBkPVwiTTEsMEgyVjFIMVYwWk0wLDFIMVYySDBWMVpcIi8+PHBhdGggZmlsbD1cImdyYXlcIiBkPVwiTTAsMEgxVjFIMFYwWk0xLDFIMlYySDFWMVpcIi8+PC9zdmc+Jyk7YmFja2dyb3VuZC1zaXplOiA2cHg7Y29udGVudDogJyd9ICAucGNyLWFwcCAucGNyLXN3YXRjaGVzID4gYnV0dG9uOjphZnRlciB7cG9zaXRpb246IGFic29sdXRlO3RvcDogMDtsZWZ0OiAwO3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtib3gtc2l6aW5nOiBib3JkZXItYm94O2JvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4wNSk7Ym9yZGVyLXJhZGl1czogMC4xNWVtO2JhY2tncm91bmQ6IHZhcigtLXBjci1jb2xvcik7Y29udGVudDogJyd9ICAucGNyLWFwcCAucGNyLXN3YXRjaGVzID4gYnV0dG9uOmhvdmVyIHtmaWx0ZXI6IGJyaWdodG5lc3MoMS4wNSl9ICAucGNyLWFwcCAucGNyLXN3YXRjaGVzID4gYnV0dG9uOm5vdCgucGNyLWFjdGl2ZSkge2JveC1zaGFkb3c6IG5vbmV9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIHtkaXNwbGF5OiBmbGV4O2ZsZXgtd3JhcDogd3JhcDthbGlnbi1pdGVtczogY2VudGVyO21hcmdpbjogMCAtMC4yZW0gMCAtMC4yZW19ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uID4gKiB7bWFyZ2luOiAwIDAuMmVtfSAgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiBpbnB1dCB7cGFkZGluZzogMC40NWVtIDAuNWVtO2JvcmRlci1yYWRpdXM6IC4xNWVtO21hcmdpbi10b3A6IDAuNzVlbTtiYWNrZ3JvdW5kOiAjZjFmM2Y0O2NvbG9yOiAjNzU3OTdlO2N1cnNvcjogcG9pbnRlcjtmb250LXNpemU6IDAuNzVlbTtsZXR0ZXItc3BhY2luZzogMC4wN2VtO3RleHQtYWxpZ246IGNlbnRlcjt0cmFuc2l0aW9uOiBhbGwgMC4xNXN9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIGlucHV0OmhvdmVyIHtmaWx0ZXI6IGJyaWdodG5lc3MoMC45NzUpfSAgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiBpbnB1dDpmb2N1cyB7Ym94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSksIDAgMCAwIDNweCByZ2JhKDY2LCAxMzMsIDI0NCwgMC43NSl9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItcmVzdWx0IHttaW4td2lkdGg6IDhlbTtmbGV4OiAxIDEgOGVtO2JvcmRlci1yYWRpdXM6IC4xNWVtO2JhY2tncm91bmQ6ICNmMWYzZjQ7Y29sb3I6ICM3NTc5N2U7Y3Vyc29yOiB0ZXh0O3RleHQtYWxpZ246IGxlZnQ7dHJhbnNpdGlvbjogYWxsIDAuMnN9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItcmVzdWx0OjotbW96LXNlbGVjdGlvbiB7YmFja2dyb3VuZDogIzQyODVmNDtjb2xvcjogI2ZmZn0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1yZXN1bHQ6OnNlbGVjdGlvbiB7YmFja2dyb3VuZDogIzQyODVmNDtjb2xvcjogI2ZmZn0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci10eXBlLmFjdGl2ZSB7YmFja2dyb3VuZDogIzQyODVmNDtjb2xvcjogI2ZmZn0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1zYXZlLCAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2FuY2VsLCAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2xlYXIge3dpZHRoOiBhdXRvO2NvbG9yOiAjZmZmfSAgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLXNhdmUsIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jYW5jZWwsIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jbGVhciB7Y29sb3I6ICNmZmZ9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3Itc2F2ZTpob3ZlciwgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLWNhbmNlbDpob3ZlciwgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLWNsZWFyOmhvdmVyIHtmaWx0ZXI6IGJyaWdodG5lc3MoMC45MjUpfSAgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLXNhdmUge2JhY2tncm91bmQ6ICM0Mjg1ZjR9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2xlYXIsIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jYW5jZWwge2JhY2tncm91bmQ6ICNmNDQyNTB9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2xlYXI6Zm9jdXMsIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jYW5jZWw6Zm9jdXMge2JveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODUpLCAwIDAgMCAzcHggcmdiYSgyNDQsIDY2LCA4MCwgMC43NSl9ICAucGNyLWFwcCAucGNyLXNlbGVjdGlvbiAucGNyLXBpY2tlciB7cG9zaXRpb246IGFic29sdXRlO3dpZHRoOiAxOHB4O2hlaWdodDogMThweDtib3JkZXI6IDJweCBzb2xpZCAjZmZmO2JvcmRlci1yYWRpdXM6IDEwMCU7LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTstbW96LXVzZXItc2VsZWN0OiBub25lOy1tcy11c2VyLXNlbGVjdDogbm9uZTt1c2VyLXNlbGVjdDogbm9uZX0gIC5wY3ItYXBwIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItcGFsZXR0ZSwgLnBjci1hcHAgLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1jaG9vc2VyLCAucGNyLWFwcCAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLW9wYWNpdHkge3Bvc2l0aW9uOiByZWxhdGl2ZTtkaXNwbGF5OiBmbGV4O2ZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Y3Vyc29yOiBncmFiO2N1cnNvcjogLXdlYmtpdC1ncmFiOy13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7LW1vei11c2VyLXNlbGVjdDogbm9uZTstbXMtdXNlci1zZWxlY3Q6IG5vbmU7dXNlci1zZWxlY3Q6IG5vbmV9ICAucGNyLWFwcCAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLXBhbGV0dGU6YWN0aXZlLCAucGNyLWFwcCAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLWNob29zZXI6YWN0aXZlLCAucGNyLWFwcCAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLW9wYWNpdHk6YWN0aXZlIHtjdXJzb3I6IGdyYWJiaW5nO2N1cnNvcjogLXdlYmtpdC1ncmFiYmluZ30gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSB7d2lkdGg6IDE0LjI1ZW07bWF4LXdpZHRoOiA5NXZ3fSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc3dhdGNoZXMge3BhZGRpbmc6IDAgLjZlbTttYXJnaW4tdG9wOiAuNmVtfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3ItaW50ZXJhY3Rpb24ge3BhZGRpbmc6IDAgLjZlbSAuNmVtIC42ZW19ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24ge2Rpc3BsYXk6IGdyaWQ7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMC41ZW07YWxpZ24taXRlbXM6IGNlbnRlcjthbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O2dyaWQtZ2FwOiAuNmVtO2dyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDRmcjtncmlkLXRlbXBsYXRlLXJvd3M6IDVmciBhdXRvIGF1dG99ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wcmV2aWV3IHtkaXNwbGF5OiBmbGV4O3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtmbGV4LWRpcmVjdGlvbjogcm93O2p1c3RpZnktY29udGVudDogY2VudGVyO21hcmdpbi1sZWZ0OiAuNmVtO2dyaWQtYXJlYTogMiAvIDEgLyA0IC8gMX0gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLXByZXZpZXcgLnBjci1sYXN0LWNvbG9yIHtkaXNwbGF5OiBub25lfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItcHJldmlldyAucGNyLWN1cnJlbnQtY29sb3Ige3Bvc2l0aW9uOiByZWxhdGl2ZTtvdmVyZmxvdzogaGlkZGVuO3dpZHRoOiAyZW07aGVpZ2h0OiAyZW07Ym9yZGVyLXJhZGl1czogNTBlbTtiYWNrZ3JvdW5kOiB2YXIoLS1wY3ItY29sb3IpfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItcHJldmlldyAucGNyLWN1cnJlbnQtY29sb3I6OmJlZm9yZSB7cG9zaXRpb246IGFic29sdXRlO3otaW5kZXg6IC0xO3RvcDogMDtsZWZ0OiAwO3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtib3JkZXItcmFkaXVzOiAuMTVlbTtiYWNrZ3JvdW5kOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIgMlwiPjxwYXRoIGZpbGw9XCJ3aGl0ZVwiIGQ9XCJNMSwwSDJWMUgxVjBaTTAsMUgxVjJIMFYxWlwiLz48cGF0aCBmaWxsPVwiZ3JheVwiIGQ9XCJNMCwwSDFWMUgwVjBaTTEsMUgyVjJIMVYxWlwiLz48L3N2Zz4nKTtiYWNrZ3JvdW5kLXNpemU6IC41ZW07Y29udGVudDogJyd9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wYWxldHRlIHt6LWluZGV4OiAxO3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtncmlkLWFyZWE6IDEgLyAxIC8gMiAvIDN9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wYWxldHRlIC5wY3ItcGFsZXR0ZSB7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO2JvcmRlci1yYWRpdXM6IC4xNWVtfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItcGFsZXR0ZSAucGNyLXBhbGV0dGU6OmJlZm9yZSB7cG9zaXRpb246IGFic29sdXRlO3otaW5kZXg6IC0xO3RvcDogMDtsZWZ0OiAwO3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtib3JkZXItcmFkaXVzOiAuMTVlbTtiYWNrZ3JvdW5kOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIgMlwiPjxwYXRoIGZpbGw9XCJ3aGl0ZVwiIGQ9XCJNMSwwSDJWMUgxVjBaTTAsMUgxVjJIMFYxWlwiLz48cGF0aCBmaWxsPVwiZ3JheVwiIGQ9XCJNMCwwSDFWMUgwVjBaTTEsMUgyVjJIMVYxWlwiLz48L3N2Zz4nKTtiYWNrZ3JvdW5kLXNpemU6IC41ZW07Y29udGVudDogJyd9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1jaG9vc2VyIHtncmlkLWFyZWE6IDIgLyAyIC8gMiAvIDJ9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1vcGFjaXR5IHtncmlkLWFyZWE6IDMgLyAyIC8gMyAvIDJ9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1jaG9vc2VyLCAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1vcGFjaXR5IHtoZWlnaHQ6IDAuNWVtO21hcmdpbjogMCAuNmVtfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItY2hvb3NlciAucGNyLXBpY2tlciwgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3Itb3BhY2l0eSAucGNyLXBpY2tlciB7dG9wOiA1MCU7dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItY2hvb3NlciAucGNyLXNsaWRlciwgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3Itb3BhY2l0eSAucGNyLXNsaWRlciB7ZmxleC1ncm93OiAxO2JvcmRlci1yYWRpdXM6IDUwZW19ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1jaG9vc2VyIC5wY3Itc2xpZGVyIHtiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJlZCwgI2ZmMCwgbGltZSwgY3lhbiwgYmx1ZSwgI2YwZiwgcmVkKX0gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLW9wYWNpdHkgLnBjci1zbGlkZXIge2JhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdHJhbnNwYXJlbnQsIGJsYWNrKSwgdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCwgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyIDJcIj48cGF0aCBmaWxsPVwid2hpdGVcIiBkPVwiTTEsMEgyVjFIMVYwWk0wLDFIMVYySDBWMVpcIi8+PHBhdGggZmlsbD1cImdyYXlcIiBkPVwiTTAsMEgxVjFIMFYwWk0xLDFIMlYySDFWMVpcIi8+PC9zdmc+Jyk7YmFja2dyb3VuZC1zaXplOiAxMDAlLCAwLjI1ZW19XG4ucGNyLWFwcCAucGNyLXN3YXRjaGVzID4gYnV0dG9uIHtcblx0cGFkZGluZzogMDtcbn1cbiIsICIuc2V0dGluZy1pdGVtLmNvZGUtc3R5bGVyLXNwYWNlZCAuY2hlY2tib3gtY29udGFpbmVyICsgLnBpY2tyIHtcblx0cGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuLmNvZGUtc3R5bGVyLWRvbmF0aW9uIHtcblx0d2lkdGg6IDcwJTtcblx0bWFyZ2luOiAwIGF1dG87XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5jb2RlLXN0eWxlci1zZXR0aW5nLXRleHQtYXJlYSB0ZXh0YXJlYSB7XG5cdHdpZHRoOiA0MDBweDtcblx0aGVpZ2h0OiAyMjBweDtcbn1cbi5jb2RlLXN0eWxlci1zZXR0aW5nLXRleHQtd2lkZSB7XG5cdHdpZHRoOiAxMDAlO1xufVxuYnV0dG9uLmNvZGUtc3R5bGVyLXNldHRpbmdzLWJ1dHRvbi5jb3B5LWNvZGUtYnV0dG9uIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRyaWdodDogMDtcblx0aGVpZ2h0OiBhdXRvO1xufVxuY29kZS5jb2RlLXN0eWxlci1zZXR0aW5ncy1pbmxpbmUtY29kZSB7XG5cdHBhZGRpbmc6IDAuMWVtIDAuMjVlbTtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY29kZS1yYWRpdXMpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLWJhY2tncm91bmQpO1xuXHRjb2xvcjogdmFyKC0tY29kZS1ub3JtYWwpO1xuXHRmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vc3BhY2UpO1xuXHRmb250LXNpemU6IHZhcigtLWNvZGUtc2l6ZSk7XG59XG5wOmhhcyg+IGNvZGUuY29kZS1zdHlsZXItc2V0dGluZ3MtaW5saW5lLWNvZGUpIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFkdmFuY2VkLXNldHRpbmdzLWhlYWRlcjo6YWZ0ZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0d2lkdGg6IDIwcHg7XG5cdGhlaWdodDogMjBweDtcblx0bWFyZ2luOiBhdXRvO1xuXHRtYXJnaW4tbGVmdDogNHB4O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1idXR0b24tY29sb3VyKTtcblx0Y29udGVudDogXCJcXDIwMGJcIjtcblx0LXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDMyIDMyJyB4bWw6c3BhY2U9J3ByZXNlcnZlJyUzRSUzQ3BhdGggZD0nTTE2IDIyIDYgMTJsMS40LTEuNCA4LjYgOC42IDguNi04LjZMMjYgMTJ6Jy8lM0UlM0NwYXRoIGZpbGw9J25vbmUnIGQ9J00wIDBoMzJ2MzJIMHonLyUzRSUzQy9zdmclM0VcIik7XG5cdG1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMzIgMzInIGZpbGw9J25vbmUnIHN0cm9rZT0nY3VycmVudENvbG9yJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgJTNFJTNDcG9seWxpbmUgcG9pbnRzPSc2IDkgMTIgMTUgMTggOScvJTNFJTNDL3N2ZyUzRVwiKTtcblx0LXdlYmtpdC1tYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRvcGFjaXR5OiAxO1xuXHRzY2FsZTogMC45O1xuXHR0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tZHVyYXRpb24tYnV0dG9uKSBlYXNlLW91dCwgdmlzaWJpbGl0eSB2YXIoLS1kdXJhdGlvbi1idXR0b24pLCBvcGFjaXR5IHZhcigtLWR1cmF0aW9uLWJ1dHRvbiksIHNjYWxlIHZhcigtLWR1cmF0aW9uLWJ1dHRvbikgY3ViaWMtYmV6aWVyKDAuNCwgMC4xNCwgMC4zLCAxKTtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbi5hZHZhbmNlZC1zZXR0aW5ncy1oZWFkZXIuaGVhZGVyLWZvbGRlZDo6YWZ0ZXIge1xuXHR0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xufVxuIiwgIi8qKiBFeGVjdXRlIENvZGUgUGx1Z2luICovXG5wcmUuY29kZS1zdHlsZXItcHJlIGNvZGUgfiBjb2RlLmxhbmd1YWdlLW91dHB1dCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwYWRkaW5nLWJvdHRvbTogY2FsYygyLjUgKiB2YXIoLS1jb2RlLXBhZGRpbmcpKSAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tbGluZS1udW1iZXItZ3V0dGVyLXBhZGRpbmcpKSAhaW1wb3J0YW50O1xuXHRib3JkZXItdG9wOiB2YXIoLS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoKSBzb2xpZCB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItc2VwYXJhdG9yLWNvbG91cik7XG5cdG1hcmdpbi1ib3R0b206IDA7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlLmNvZGUtc3R5bGVyLWZvbGRlZCBjb2RlIH4gY29kZS5sYW5ndWFnZS1vdXRwdXQge1xuXHRib3JkZXItdG9wLXdpZHRoOiAwO1xuXHRib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmU6aG92ZXIgY29kZSB+IGNvZGUubGFuZ3VhZ2Utb3V0cHV0IHtcblx0bWFyZ2luLWJvdHRvbTogMDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgY29kZSB+IGNvZGUubGFuZ3VhZ2Utb3V0cHV0IGlucHV0LmludGVyYWN0aXZlLXN0ZGluIHtcblx0cGFkZGluZzogMnB4IDhweDtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci1jb2xvcjogdmFyKC0tY29kZS1jb21tZW50KTtcblx0Ym9yZGVyLXJhZGl1czogNXB4O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpO1xuXHRjb2xvcjogdmFyKC0tdGV4dC1ub3JtYWwpO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBjb2RlIH4gY29kZS5sYW5ndWFnZS1vdXRwdXQgaHIge1xuXHRkaXNwbGF5OiBub25lO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24ucnVuLWNvZGUtYnV0dG9uIHtcblx0LS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbjogMTJweDtcblx0LS1kZW50LWRpZmZlcmVuY2U6IDI0cHg7XG5cdGhlaWdodDogMTRweDtcblx0bWFyZ2luLWJvdHRvbTogNnB4ICFpbXBvcnRhbnQ7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlLmNvZGUtc3R5bGVyLWZvbGRlZCBidXR0b24ucnVuLWNvZGUtYnV0dG9uIHtcblx0dG9wOiA1MDBweDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLnJ1bi1jb2RlLWJ1dHRvbjo6YmVmb3JlIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR3aWR0aDogMTRweDtcblx0aGVpZ2h0OiAxNHB4O1xuXHRwYWRkaW5nLXJpZ2h0OiA0cHg7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWJ1dHRvbi1jb2xvdXIpO1xuXHRjb250ZW50OiBcIlxcMjAwYlwiO1xuXHQtd2Via2l0LW1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMzIgMzInJTNFJTNDcGF0aCBkPSdNNyAyOGExIDEgMCAwIDEtMS0xVjVhMSAxIDAgMCAxIDEuNDgyLS44NzZsMjAgMTFhMSAxIDAgMCAxIDAgMS43NTJsLTIwIDExQTEgMSAwIDAgMSA3IDI4WicvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBkPSdNMCAwaDMydjMySDB6JyBkYXRhLW5hbWU9JyZsdDtUcmFuc3BhcmVudCBSZWN0YW5nbGUmZ3Q7Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuXHRtYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDMyIDMyJyUzRSUzQ3BhdGggZD0nTTcgMjhhMSAxIDAgMCAxLTEtMVY1YTEgMSAwIDAgMSAxLjQ4Mi0uODc2bDIwIDExYTEgMSAwIDAgMSAwIDEuNzUybC0yMCAxMUExIDEgMCAwIDEgNyAyOFonLyUzRSUzQ3BhdGggZmlsbD0nbm9uZScgZD0nTTAgMGgzMnYzMkgweicgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycvJTNFJTNDL3N2ZyUzRVwiKTtcblx0LXdlYmtpdC1tYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuXHR2ZXJ0aWNhbC1hbGlnbjogMHB4O1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY2xlYXItYnV0dG9uLWRpc2FibGVkLFxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24ucnVuLWJ1dHRvbi1kaXNhYmxlZCB7XG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNsZWFyLWJ1dHRvbiB7XG5cdGhlaWdodDogMTRweDtcblx0bWFyZ2luLWJvdHRvbTogNnB4ICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCkgKyAxMnB4KTtcblx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLWluKTtcblx0d2lsbC1jaGFuZ2U6IG1hcmdpbi1yaWdodCwgY2xpcC1wYXRoO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY2xlYXItYnV0dG9uOjpiZWZvcmUge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHdpZHRoOiAxNHB4O1xuXHRoZWlnaHQ6IDE0cHg7XG5cdHBhZGRpbmctcmlnaHQ6IDRweDtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZS1zdHlsZXItYnV0dG9uLWNvbG91cik7XG5cdGNvbnRlbnQ6IFwiXFwyMDBiXCI7XG5cdC13ZWJraXQtbWFzay1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAzMiAzMiclM0UlM0NwYXRoIGQ9J00xNiA0IDYgMTRsMS40MSAxLjQxTDE1IDcuODNWMjhoMlY3LjgzbDcuNTkgNy41OEwyNiAxNCAxNiA0eicvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBkPSdNMCAwaDMydjMySDB6JyBkYXRhLW5hbWU9JyZsdDtUcmFuc3BhcmVudCBSZWN0YW5nbGUmZ3Q7Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuXHRtYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDMyIDMyJyUzRSUzQ3BhdGggZD0nTTE2IDQgNiAxNGwxLjQxIDEuNDFMMTUgNy44M1YyOGgyVjcuODNsNy41OSA3LjU4TDI2IDE0IDE2IDR6Jy8lM0UlM0NwYXRoIGZpbGw9J25vbmUnIGQ9J00wIDBoMzJ2MzJIMHonIGRhdGEtbmFtZT0nJmx0O1RyYW5zcGFyZW50IFJlY3RhbmdsZSZndDsnLyUzRSUzQy9zdmclM0VcIik7XG5cdC13ZWJraXQtbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0bWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0dmVydGljYWwtYWxpZ246IDBweDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNsZWFyLWJ1dHRvbjpub3QoOmFjdGl2ZSkge1xuXHRhbmltYXRpb246IHJldmVyc2UtaW5kZW50IHZhcigtLWR1cmF0aW9uLWJ1dHRvbik7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jbGVhci1idXR0b246aG92ZXJ7XG5cdG1hcmdpbi1yaWdodDogdmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pO1xuXHRhbmltYXRpb246IHJldmVyc2Utb3V0ZGVudCB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLW91dCk7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jbGVhci1idXR0b246YWN0aXZlIHtcblx0c2NhbGU6IDAuOTU7XG5cdHRyYW5zaXRpb246IHNjYWxlIHZhcigtLWR1cmF0aW9uLWJ1dHRvbikgY3ViaWMtYmV6aWVyKDAuNCwgMC4xNCwgMC4zLCAxKTtcbn1cbi5jb2RlLXN0eWxlci1wcmUtcGFyZW50Lmhhcy1ydW4tY29kZS1idXR0b24gLmxvYWQtc3RhdGUtaW5kaWNhdG9yIHtcblx0ei1pbmRleDogMTA7XG5cdGJhY2tncm91bmQ6IG5vbmU7XG5cdGNvbG9yOiBub25lO1xufVxuLmNvZGUtc3R5bGVyLXByZS1wYXJlbnQuaGFzLXJ1bi1jb2RlLWJ1dHRvbiAubG9hZC1zdGF0ZS1pbmRpY2F0b3I6OmJlZm9yZSB7XG5cdGJveC1zaGFkb3c6IG5vbmU7XG59XG4uY29kZS1zdHlsZXItcHJlLXBhcmVudC5oYXMtcnVuLWNvZGUtYnV0dG9uIC5sb2FkLXN0YXRlLWluZGljYXRvciBzdmcge1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItYnV0dG9uLWNvbG91cik7XG59XG4uY29kZS1zdHlsZXItcHJlLXBhcmVudC5oYXMtcnVuLWNvZGUtYnV0dG9uIC5sb2FkLXN0YXRlLWluZGljYXRvciBzdmc6aG92ZXIge1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItYnV0dG9uLWFjdGl2ZS1jb2xvdXIpO1xufVxuLmNvZGUtc3R5bGVyLXByZS1wYXJlbnQuaGFzLXJ1bi1jb2RlLWJ1dHRvbiAubG9hZC1zdGF0ZS1pbmRpY2F0b3IudmlzaWJsZSB7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbn1cblxuLyoqIEVtYmVkIENvZGUgUGx1Z2luICovXG4uYmxvY2stbGFuZ3VhZ2UtcHJldmlldyBwcmUuY29kZS1zdHlsZXItcHJlIGNvZGUge1xuXHR3aGl0ZS1zcGFjZTogdW5zZXQ7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIHNwYW4uY29kZS1ibG9jay1saW5lX251bS13cmFwLFxucHJlLmNvZGUtc3R5bGVyLXByZSBkaXYuY29kZS1ibG9jay1oaWdobGlnaHQtd3JhcCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuY20tZW1iZWQtYmxvY2sgLmNvZGUtc3R5bGVyLXByZS1wYXJlbnQgKyAuZWRpdC1ibG9jay1idXR0b246OmFmdGVyIHtcblx0cGFkZGluZy1sZWZ0OiA0cHg7XG5cdGNvbnRlbnQ6ICdFZGl0IEJsb2NrJztcblx0Zm9udC1zaXplOiB2YXIoLS1mb250LXVpLXNtYWxsZXIpO1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLmNtLWVtYmVkLWJsb2NrOm5vdCg6aG92ZXIpIC5jb2RlLXN0eWxlci1wcmUtcGFyZW50ICsgLmVkaXQtYmxvY2stYnV0dG9uIHtcblx0b3BhY2l0eTogMDtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLmNtLWVtYmVkLWJsb2NrPi5jb2RlLXN0eWxlci1wcmUtcGFyZW50ICsgLmVkaXQtYmxvY2stYnV0dG9uIHtcblx0LS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbjogY2FsYygyLjIgKiB2YXIoLS1oZWFkZXItYnV0dG9uLXNwYWNpbmcpKTtcblx0LS1kZW50LWRpZmZlcmVuY2U6IDBweDtcblx0LS1wb2x5Z29uLWluOiBwb2x5Z29uKDAgMCwgMThweCAwLCAxOHB4IDM2cHgsIDAgMzZweCk7XG5cdHotaW5kZXg6IDEwO1xuXHR0b3A6IG1heChjYWxjKDAuNSAqIHZhcigtLWNvbnRhaW5lci1oZWlnaHQpICogMSksY2FsYygwLjUgKiB2YXIoLS1jb250YWluZXItbWluLWhlaWdodCkgKiAxKSk7XG5cdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcblx0bWFyZ2luOiAwO1xuXHRtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pIC0gdmFyKC0tZGVudC1kaWZmZXJlbmNlKSk7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG5cdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1pbik7XG5cdG9wYWNpdHk6IDE7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblx0dHJhbnNpdGlvbjogdmlzaWJpbGl0eSB2YXIoLS1kdXJhdGlvbi1idXR0b24pLCBvcGFjaXR5IHZhcigtLWR1cmF0aW9uLWJ1dHRvbikgIWltcG9ydGFudDtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTtcblx0d2lsbC1jaGFuZ2U6IG1hcmdpbi1yaWdodCwgY2xpcC1wYXRoO1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYuaXMtbGl2ZS1wcmV2aWV3LmlzLXJlYWRhYmxlLWxpbmUtd2lkdGggLmNtLWVtYmVkLWJsb2NrPi5jb2RlLXN0eWxlci1wcmUtcGFyZW50Ky5lZGl0LWJsb2NrLWJ1dHRvbiB7XG5cdHdpZHRoOiB1bnNldCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbn1cbmJvZHkgLmNtLWVtYmVkLWJsb2NrIC5jb2RlLXN0eWxlci1wcmUtcGFyZW50OmhhcyggcHJlLmNvZGUtc3R5bGVyLXByZSAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lci1oaWRkZW4pICsgLmVkaXQtYmxvY2stYnV0dG9uIHtcblx0LS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbjogNHB4O1xuXHR0b3A6IGNhbGMoMC41ICogdmFyKC0tZm9udC10ZXh0LXNpemUpICogMC44NzUgKiB2YXIoLS1saW5lLWhlaWdodC1ub3JtYWwpKTtcbn1cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5jbS1lbWJlZC1ibG9jazpob3ZlciAuY29kZS1zdHlsZXItcHJlLXBhcmVudCArIC5lZGl0LWJsb2NrLWJ1dHRvbjpob3ZlciB7XG5cdG1hcmdpbi1yaWdodDogdmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pO1xuXHRhbmltYXRpb246IHJldmVyc2Utb3V0ZGVudCB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLW91dCk7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuY20tZW1iZWQtYmxvY2s6aG92ZXIgLmNvZGUtc3R5bGVyLXByZS1wYXJlbnQgKyAuZWRpdC1ibG9jay1idXR0b246YWN0aXZlIHtcblx0c2NhbGU6IDAuOTU7XG5cdHRyYW5zaXRpb246IHNjYWxlIHZhcigtLWR1cmF0aW9uLWJ1dHRvbikgY3ViaWMtYmV6aWVyKDAuNCwgMC4xNCwgMC4zLCAxKSAhaW1wb3J0YW50O1xufVxuXG4vKiogRmlsZSBJbmNsdWRlIFBsdWdpbiAqL1xuZGl2LmJsb2NrLWxhbmd1YWdlLWluY2x1ZGUgcHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY29weS1jb2RlLWJ1dHRvbiB7XG5cdG1hcmdpbjogMDtcblx0bWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luKSAtIHZhcigtLWRlbnQtZGlmZmVyZW5jZSkpO1xufVxuZGl2LmJsb2NrLWxhbmd1YWdlLWluY2x1ZGUgcHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY29weS1jb2RlLWJ1dHRvbjpob3ZlciB7XG5cdG1hcmdpbi1yaWdodDogdmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pO1xufVxuXG4vKiogQ29yZSBTbGlkZXMgUGx1Z2luICovXG4uc2xpZGVzIGJ1dHRvbi5jb3B5LWNvZGUtYnV0dG9uIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdHJpZ2h0OiAwO1xuXHRoZWlnaHQ6IGF1dG87XG5cdHBhZGRpbmc6IDZweCA4cHg7XG5cdG1hcmdpbjogNnB4O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0Ym94LXNoYWRvdzogbm9uZTtcblx0Y29sb3I6IHZhcigtLXRleHQtbXV0ZWQpO1xuXHRmb250LWZhbWlseTogdmFyKC0tZm9udC1pbnRlcmZhY2UpO1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtdWktc21hbGxlcik7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQ0E7QUFFQyxtQkFBaUI7QUFDakIsZ0NBQThCO0FBQzlCLGtCQUFnQjtBQUNoQixzQkFBb0IsS0FBSyxJQUFJLHNCQUFzQixFQUFFLEVBQUUsRUFBRSxJQUFJLGlDQUFpQyxFQUFFLElBQUk7QUFDcEcsMEJBQXdCLEtBQUssQ0FBQyxJQUFJLG9CQUFvQixFQUFFLEVBQUUsRUFBRSxJQUFJLGlDQUFpQyxFQUFFLElBQUkscUJBQXFCLEVBQUUsSUFBSTtBQUNsSSw0QkFBMEIsSUFBSTtBQUM5QiwyQkFBeUI7QUFHekIsc0JBQW9CLElBQUk7QUFDeEIsb0JBQWtCO0FBQ2xCLG1DQUFpQztBQUNqQyxvQkFBa0I7QUFDbEIsMkJBQXlCO0FBQ3pCLDRCQUEwQjtBQUMxQixvQ0FBa0MsSUFBSTtBQUN0QywrQkFBNkI7QUFDN0IsMEJBQXdCLEVBQUUsTUFBTTtBQUNoQyx3QkFBc0I7QUFDdEIsMEJBQXdCO0FBR3hCLHFDQUFtQztBQUduQyxtQ0FBaUM7QUFDakMsZ0NBQThCO0FBQzlCLGtDQUFnQztBQUdoQyxtQkFBaUI7QUFDakIsMEJBQXdCLElBQUk7QUFHNUIsK0JBQTZCLElBQUk7QUFDakMsc0NBQW9DO0FBQ3BDLHFCQUFtQjtBQUNuQixxQkFBbUI7QUFDbkIsZ0JBQWMsUUFBUSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFO0FBQ2hELGlCQUFlLFFBQVEsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRTtBQUNqRCxtQ0FBaUMsS0FBSyxFQUFFLEVBQUUsSUFBSTtBQUMvQztBQUVBO0FBQ0MsZUFBYTtBQUNiLE9BQUssc0dBQXdHLE9BQU87QUFDckg7QUFHQSxDQUFDO0FBQ0EsaUJBQWU7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 */