Files
aroginhealthcare/public/backend/theme/assets/vendor/js/template-customizer.js
2025-08-17 16:23:14 +05:45

274 lines
271 KiB
JavaScript

/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define([], factory);
else {
var a = factory();
for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
}
})(self, function() {
return /******/ (function() { // webpackBootstrap
/******/ "use strict";
/******/ var __webpack_modules__ = ({
/***/ "./js/template-customizer.js":
/*!***********************************!*\
!*** ./js/template-customizer.js ***!
\***********************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"TemplateCustomizer\": function() { return /* binding */ TemplateCustomizer; }\n/* harmony export */ });\n/* harmony import */ var _template_customizer_template_customizer_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_template-customizer/_template-customizer.scss */ \"./js/_template-customizer/_template-customizer.scss\");\n/* harmony import */ var _template_customizer_template_customizer_html__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_template-customizer/_template-customizer.html */ \"./js/_template-customizer/_template-customizer.html\");\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n\n\nvar CSS_FILENAME_PATTERN = '%name%.css';\nvar CONTROLS = ['rtl', 'style', 'layoutType', 'layoutMenuFlipped', 'showDropdownOnHover', 'layoutNavbarFixed', 'layoutFooterFixed', 'themes'];\nvar STYLES = ['light', 'dark'];\nvar cl = document.documentElement.classList;\nvar DISPLAY_CUSTOMIZER = true;\nvar DEFAULT_THEME = document.getElementsByTagName('HTML')[0].getAttribute('data-theme') || 0;\nvar DEFAULT_STYLE = cl.contains('dark-style') ? 'dark' : 'light';\nvar DEFAULT_TEXT_DIR = document.documentElement.getAttribute('dir') === 'rtl';\nvar DEFAULT_MENU_COLLAPSED = !!cl.contains('layout-menu-collapsed');\nvar DEFAULT_MENU_FLIPPED = !!cl.contains('layout-menu-flipped');\nvar DEFAULT_SHOW_DROPDOWN_ON_HOVER = undefined;\nvar DEFAULT_NAVBAR_FIXED = !!cl.contains('layout-navbar-fixed');\nvar DEFAULT_FOOTER_FIXED = !!cl.contains('layout-footer-fixed');\nvar layoutType;\nif (cl.contains('layout-menu-offcanvas')) {\n layoutType = 'static-offcanvas';\n} else if (cl.contains('layout-menu-fixed')) {\n layoutType = 'fixed';\n} else if (cl.contains('layout-menu-fixed-offcanvas')) {\n layoutType = 'fixed-offcanvas';\n} else {\n layoutType = 'static';\n}\nvar DEFAULT_LAYOUT_TYPE = layoutType;\nvar TemplateCustomizer = /*#__PURE__*/function () {\n function TemplateCustomizer(_ref) {\n var cssPath = _ref.cssPath,\n themesPath = _ref.themesPath,\n cssFilenamePattern = _ref.cssFilenamePattern,\n displayCustomizer = _ref.displayCustomizer,\n controls = _ref.controls,\n defaultTextDir = _ref.defaultTextDir,\n defaultLayoutType = _ref.defaultLayoutType,\n defaultMenuCollapsed = _ref.defaultMenuCollapsed,\n defaultMenuFlipped = _ref.defaultMenuFlipped,\n defaultShowDropdownOnHover = _ref.defaultShowDropdownOnHover,\n defaultNavbarFixed = _ref.defaultNavbarFixed,\n defaultFooterFixed = _ref.defaultFooterFixed,\n styles = _ref.styles,\n defaultStyle = _ref.defaultStyle,\n availableThemes = _ref.availableThemes,\n defaultTheme = _ref.defaultTheme,\n pathResolver = _ref.pathResolver,\n onSettingsChange = _ref.onSettingsChange,\n lang = _ref.lang;\n _classCallCheck(this, TemplateCustomizer);\n if (this._ssr) return;\n if (!window.Helpers) throw new Error('window.Helpers required.');\n this.settings = {};\n this.settings.cssPath = cssPath;\n this.settings.themesPath = themesPath;\n this.settings.cssFilenamePattern = cssFilenamePattern || CSS_FILENAME_PATTERN;\n this.settings.displayCustomizer = typeof displayCustomizer !== 'undefined' ? displayCustomizer : DISPLAY_CUSTOMIZER;\n this.settings.controls = controls || CONTROLS;\n this.settings.defaultTextDir = defaultTextDir === 'rtl' ? true : false || DEFAULT_TEXT_DIR;\n this.settings.defaultLayoutType = defaultLayoutType || DEFAULT_LAYOUT_TYPE;\n this.settings.defaultMenuCollapsed = typeof defaultMenuCollapsed !== 'undefined' ? defaultMenuCollapsed : DEFAULT_MENU_COLLAPSED;\n this.settings.defaultMenuFlipped = typeof defaultMenuFlipped !== 'undefined' ? defaultMenuFlipped : DEFAULT_MENU_FLIPPED;\n this.settings.defaultShowDropdownOnHover = typeof defaultShowDropdownOnHover !== 'undefined' ? defaultShowDropdownOnHover : DEFAULT_SHOW_DROPDOWN_ON_HOVER;\n this.settings.defaultNavbarFixed = typeof defaultNavbarFixed !== 'undefined' ? defaultNavbarFixed : DEFAULT_NAVBAR_FIXED;\n this.settings.defaultFooterFixed = typeof defaultFooterFixed !== 'undefined' ? defaultFooterFixed : DEFAULT_FOOTER_FIXED;\n this.settings.availableThemes = availableThemes || TemplateCustomizer.THEMES;\n this.settings.defaultTheme = this._getDefaultTheme(typeof defaultTheme !== 'undefined' ? defaultTheme : DEFAULT_THEME);\n this.settings.styles = styles || STYLES;\n this.settings.defaultStyle = defaultStyle || DEFAULT_STYLE;\n this.settings.lang = lang || 'en';\n this.pathResolver = pathResolver || function (p) {\n return p;\n };\n if (this.settings.styles.length < 2) {\n var i = this.settings.controls.indexOf('style');\n if (i !== -1) {\n this.settings.controls = this.settings.controls.slice(0, i).concat(this.settings.controls.slice(i + 1));\n }\n }\n this.settings.onSettingsChange = typeof onSettingsChange === 'function' ? onSettingsChange : function () {};\n this._loadSettings();\n this._listeners = [];\n this._controls = {};\n this._initDirection();\n this._initStyle();\n this._initTheme();\n this.setLayoutType(this.settings.layoutType, false);\n this.setLayoutMenuFlipped(this.settings.layoutMenuFlipped, false);\n this.setDropdownOnHover(this.settings.showDropdownOnHover, false);\n this.setLayoutNavbarFixed(this.settings.layoutNavbarFixed, false);\n this.setLayoutFooterFixed(this.settings.layoutFooterFixed, false);\n this._setup();\n }\n _createClass(TemplateCustomizer, [{\n key: \"setRtl\",\n value: function setRtl(rtl) {\n if (!this._hasControls('rtl')) return;\n this._setSetting('Rtl', String(rtl));\n window.location.reload();\n }\n }, {\n key: \"setStyle\",\n value: function setStyle(style) {\n if (!this._hasControls('style')) return;\n this._setSetting('Style', ['dark'].indexOf(style) === -1 ? 'light' : style);\n window.location.reload();\n }\n }, {\n key: \"setTheme\",\n value: function setTheme(themeName) {\n var updateStorage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var cb = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!this._hasControls('themes')) return;\n var theme = this._getThemeByName(themeName);\n if (!theme) return;\n this.settings.theme = theme;\n if (updateStorage) this._setSetting('Theme', themeName);\n var themeUrl = this.pathResolver(this.settings.themesPath + this.settings.cssFilenamePattern.replace('%name%', themeName + (this.settings.style !== 'light' ? \"-\".concat(this.settings.style) : '')));\n this._loadStylesheets(_defineProperty({}, themeUrl, document.querySelector('.template-customizer-theme-css')), cb || function () {});\n if (updateStorage) this.settings.onSettingsChange.call(this, this.settings);\n }\n }, {\n key: \"setLayoutType\",\n value: function setLayoutType(pos) {\n var updateStorage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (!this._hasControls('layoutType')) return;\n if (pos !== 'static' && pos !== 'static-offcanvas' && pos !== 'fixed' && pos !== 'fixed-offcanvas') return;\n this.settings.layoutType = pos;\n if (updateStorage) this._setSetting('LayoutType', pos);\n window.Helpers.setPosition(pos === 'fixed' || pos === 'fixed-offcanvas', pos === 'static-offcanvas' || pos === 'fixed-offcanvas');\n if (updateStorage) this.settings.onSettingsChange.call(this, this.settings);\n\n // Perfectscrollbar change on Layout change\n var menuScroll = window.Helpers.menuPsScroll;\n var PerfectScrollbarLib = window.PerfectScrollbar;\n if (this.settings.layoutType === 'fixed' || this.settings.layoutType === 'fixed-offcanvas') {\n // Set perfectscrollbar wheelPropagation false for fixed layout\n if (PerfectScrollbarLib && menuScroll) {\n window.Helpers.menuPsScroll.destroy();\n menuScroll = new PerfectScrollbarLib(document.querySelector('.menu-inner'), {\n suppressScrollX: true,\n wheelPropagation: false\n });\n window.Helpers.menuPsScroll = menuScroll;\n }\n } else if (menuScroll) {\n // Destroy perfectscrollbar for static layout\n window.Helpers.menuPsScroll.destroy();\n }\n }\n }, {\n key: \"setLayoutMenuFlipped\",\n value: function setLayoutMenuFlipped(flipped) {\n var updateStorage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (!this._hasControls('layoutMenuFlipped')) return;\n this.settings.layoutMenuFlipped = flipped;\n if (updateStorage) this._setSetting('MenuFlipped', flipped);\n window.Helpers.setFlipped(flipped);\n if (updateStorage) this.settings.onSettingsChange.call(this, this.settings);\n }\n }, {\n key: \"setDropdownOnHover\",\n value: function setDropdownOnHover(open) {\n var updateStorage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (!this._hasControls('showDropdownOnHover')) return;\n this.settings.showDropdownOnHover = open;\n if (updateStorage) this._setSetting('ShowDropdownOnHover', open);\n if (window.Helpers.mainMenu) {\n window.Helpers.mainMenu.destroy();\n config.showDropdownOnHover = open;\n var _window = window,\n Menu = _window.Menu;\n window.Helpers.mainMenu = new Menu(document.getElementById('layout-menu'), {\n orientation: 'horizontal',\n closeChildren: true,\n showDropdownOnHover: config.showDropdownOnHover\n });\n }\n if (updateStorage) this.settings.onSettingsChange.call(this, this.settings);\n }\n }, {\n key: \"setLayoutNavbarFixed\",\n value: function setLayoutNavbarFixed(fixed) {\n var updateStorage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (!this._hasControls('layoutNavbarFixed')) return;\n this.settings.layoutNavbarFixed = fixed;\n if (updateStorage) this._setSetting('FixedNavbar', fixed);\n window.Helpers.setNavbarFixed(fixed);\n if (updateStorage) this.settings.onSettingsChange.call(this, this.settings);\n }\n }, {\n key: \"setLayoutFooterFixed\",\n value: function setLayoutFooterFixed(fixed) {\n var updateStorage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (!this._hasControls('layoutFooterFixed')) return;\n this.settings.layoutFooterFixed = fixed;\n if (updateStorage) this._setSetting('FixedFooter', fixed);\n window.Helpers.setFooterFixed(fixed);\n if (updateStorage) this.settings.onSettingsChange.call(this, this.settings);\n }\n }, {\n key: \"setLang\",\n value: function setLang(lang) {\n var _this = this;\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (lang === this.settings.lang && !force) return;\n if (!TemplateCustomizer.LANGUAGES[lang]) throw new Error(\"Language \\\"\".concat(lang, \"\\\" not found!\"));\n var t = TemplateCustomizer.LANGUAGES[lang];\n ['panel_header', 'panel_sub_header', 'theming_header', 'theme_header', 'style_label', 'style_switch_light', 'style_switch_dark', 'layout_header', 'layout_label', 'layout_static', 'layout_offcanvas', 'layout_fixed', 'layout_fixed_offcanvas', 'layout_flipped_label', 'layout_dd_open_label', 'layout_navbar_label', 'layout_footer_label', 'misc_header', 'theme_label', 'rtl_label'].forEach(function (key) {\n var el = _this.container.querySelector(\".template-customizer-t-\".concat(key));\n // eslint-disable-next-line no-unused-expressions\n el && (el.textContent = t[key]);\n });\n var tt = t.themes || {};\n var themes = this.container.querySelectorAll('.template-customizer-theme-item') || [];\n for (var i = 0, l = themes.length; i < l; i++) {\n var themeName = themes[i].querySelector('input[type=\"radio\"]').value;\n themes[i].querySelector('.template-customizer-theme-name').textContent = tt[themeName] || this._getThemeByName(themeName).title;\n }\n this.settings.lang = lang;\n }\n\n // Update theme settings control\n }, {\n key: \"update\",\n value: function update() {\n if (this._ssr) return;\n var hasNavbar = !!document.querySelector('.layout-navbar');\n var hasMenu = !!document.querySelector('.layout-menu');\n var hasHorizontalMenu = !!document.querySelector('.layout-menu-horizontal.menu, .layout-menu-horizontal .menu');\n var isLayout1 = !!document.querySelector('.layout-wrapper.layout-navbar-full');\n var hasFooter = !!document.querySelector('.content-footer');\n if (this._controls.layoutMenuFlipped) {\n if (!hasMenu) {\n this._controls.layoutMenuFlipped.setAttribute('disabled', 'disabled');\n this._controls.layoutMenuFlipped.classList.add('disabled');\n } else {\n this._controls.layoutMenuFlipped.removeAttribute('disabled');\n this._controls.layoutMenuFlipped.classList.remove('disabled');\n }\n }\n if (this._controls.showDropdownOnHover) {\n if (hasMenu) {\n this._controls.showDropdownOnHover.setAttribute('disabled', 'disabled');\n this._controls.showDropdownOnHover.classList.add('disabled');\n } else {\n this._controls.showDropdownOnHover.removeAttribute('disabled');\n this._controls.showDropdownOnHover.classList.remove('disabled');\n }\n }\n if (this._controls.layoutNavbarFixed) {\n if (!hasNavbar) {\n this._controls.layoutNavbarFixed.setAttribute('disabled', 'disabled');\n this._controls.layoutNavbarFixedW.classList.add('disabled');\n } else {\n this._controls.layoutNavbarFixed.removeAttribute('disabled');\n this._controls.layoutNavbarFixedW.classList.remove('disabled');\n }\n\n // Horizontal menu fixed layout - disabled fixed navbar switch\n if (hasHorizontalMenu && hasNavbar && this.settings.layoutType == 'fixed') {\n this._controls.layoutNavbarFixed.setAttribute('disabled', 'disabled');\n this._controls.layoutNavbarFixedW.classList.add('disabled');\n }\n }\n if (this._controls.layoutFooterFixed) {\n if (!hasFooter) {\n this._controls.layoutFooterFixed.setAttribute('disabled', 'disabled');\n this._controls.layoutFooterFixedW.classList.add('disabled');\n } else {\n this._controls.layoutFooterFixed.removeAttribute('disabled');\n this._controls.layoutFooterFixedW.classList.remove('disabled');\n }\n }\n if (this._controls.layoutType) {\n // ? Uncomment If using offcanvas layout\n /*\r\n if (!hasMenu) {\r\n this._controls.layoutType.querySelector('[value=\"static-offcanvas\"]').setAttribute('disabled', 'disabled')\r\n this._controls.layoutType.querySelector('[value=\"fixed-offcanvas\"]').setAttribute('disabled', 'disabled')\r\n } else {\r\n this._controls.layoutType.querySelector('[value=\"static-offcanvas\"]').removeAttribute('disabled')\r\n this._controls.layoutType.querySelector('[value=\"fixed-offcanvas\"]').removeAttribute('disabled')\r\n }\r\n */\n\n // Disable menu layouts options if menu (vertical or horizontal) is not there\n // if ((!hasNavbar && !hasMenu) || (!hasMenu && !isLayout1)) {\n if (hasMenu || hasHorizontalMenu) {\n // (Updated condition)\n this._controls.layoutType.removeAttribute('disabled');\n } else {\n this._controls.layoutType.setAttribute('disabled', 'disabled');\n }\n }\n }\n\n // Clear local storage\n }, {\n key: \"clearLocalStorage\",\n value: function clearLocalStorage() {\n if (this._ssr) return;\n this._setSetting('Theme', '');\n this._setSetting('Rtl', '');\n this._setSetting('Style', '');\n this._setSetting('MenuFlipped', '');\n this._setSetting('FixedNavbar', '');\n this._setSetting('FixedFooter', '');\n this._setSetting('LayoutType', '');\n }\n\n // Clear local storage\n }, {\n key: \"destroy\",\n value: function destroy() {\n if (this._ssr) return;\n this._cleanup();\n this.settings = null;\n this.container.parentNode.removeChild(this.container);\n this.container = null;\n }\n }, {\n key: \"_loadSettings\",\n value: function _loadSettings() {\n // Get settings\n\n // const cl = document.documentElement.classList;\n var rtl = this._getSetting('Rtl');\n var style = this._getSetting('Style');\n var collapsedMenu = this._getSetting('LayoutCollapsed'); // Value will be set from main.js\n var flippedMenu = this._getSetting('LayoutMenuFlipped');\n var dropdownOnHover = this._getSetting('ShowDropdownOnHover'); // Value will be set from main.js\n var fixedNavbar = this._getSetting('FixedNavbar');\n var fixedFooter = this._getSetting('FixedFooter');\n var lType = this._getSetting('LayoutType');\n var type;\n if (lType !== '' && ['static', 'static-offcanvas', 'fixed', 'fixed-offcanvas'].indexOf(lType) !== -1) {\n type = lType;\n } else {\n type = this.settings.defaultLayoutType;\n }\n this.settings.layoutType = type;\n\n // ! Set settings by following priority: Local Storage, Theme Config, HTML Classes\n this.settings.rtl = rtl !== '' ? rtl === 'true' : this.settings.defaultTextDir;\n this.settings.style = this.settings.styles.indexOf(style) !== -1 ? style : this.settings.defaultStyle;\n if (this.settings.styles.indexOf(this.settings.style) === -1) {\n // eslint-disable-next-line prefer-destructuring\n this.settings.style = this.settings.styles[0];\n }\n this.settings.layoutMenu = collapsedMenu !== '' ? collapsedMenu === 'true' : this.settings.defaultMenuCollapsed;\n this.settings.layoutMenuFlipped = flippedMenu !== '' ? flippedMenu === 'true' : this.settings.defaultMenuFlipped;\n this.settings.showDropdownOnHover = dropdownOnHover !== '' ? dropdownOnHover === 'true' : this.settings.defaultShowDropdownOnHover;\n this.settings.layoutNavbarFixed = fixedNavbar !== '' ? fixedNavbar === 'true' : this.settings.defaultNavbarFixed;\n this.settings.layoutFooterFixed = fixedFooter !== '' ? fixedFooter === 'true' : this.settings.defaultFooterFixed;\n this.settings.theme = this._getThemeByName(this._getSetting('Theme'), true);\n\n // Filter options depending on available controls\n if (!this._hasControls('rtl')) this.settings.rtl = document.documentElement.getAttribute('dir') === 'rtl';\n if (!this._hasControls('style')) this.settings.style = cl.contains('dark-style') ? 'dark' : 'light';\n if (!this._hasControls('layoutType')) this.settings.layoutType = null;\n if (!this._hasControls('layoutMenuFlipped')) this.settings.layoutMenuFlipped = null;\n if (!this._hasControls('showDropdownOnHover')) this.settings.showDropdownOnHover = null;\n if (!this._hasControls('layoutNavbarFixed')) this.settings.layoutNavbarFixed = null;\n if (!this._hasControls('layoutFooterFixed')) this.settings.layoutFooterFixed = null;\n if (!this._hasControls('themes')) this.settings.theme = null;\n }\n\n // Setup theme settings controls and events\n }, {\n key: \"_setup\",\n value: function _setup() {\n var _this2 = this;\n var _container = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n this._cleanup();\n this.container = this._getElementFromString(_template_customizer_template_customizer_html__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n\n // Customizer visibility condition\n //\n var customizerW = this.container;\n if (this.settings.displayCustomizer) customizerW.setAttribute('style', 'visibility: visible');else customizerW.setAttribute('style', 'visibility: hidden');\n\n // Open btn\n //\n var openBtn = this.container.querySelector('.template-customizer-open-btn');\n var openBtnCb = function openBtnCb() {\n _this2.container.classList.add('template-customizer-open');\n _this2.update();\n if (_this2._updateInterval) clearInterval(_this2._updateInterval);\n _this2._updateInterval = setInterval(function () {\n _this2.update();\n }, 500);\n };\n openBtn.addEventListener('click', openBtnCb);\n this._listeners.push([openBtn, 'click', openBtnCb]);\n\n // Close btn\n //\n\n var closeBtn = this.container.querySelector('.template-customizer-close-btn');\n var closeBtnCb = function closeBtnCb() {\n _this2.container.classList.remove('template-customizer-open');\n if (_this2._updateInterval) {\n clearInterval(_this2._updateInterval);\n _this2._updateInterval = null;\n }\n };\n closeBtn.addEventListener('click', closeBtnCb);\n this._listeners.push([closeBtn, 'click', closeBtnCb]);\n\n // RTL\n //\n\n var rtlW = this.container.querySelector('.template-customizer-misc');\n // ? Hide RTL control in following 2 case\n if (!this._hasControls('rtl') || !rtlSupport) {\n rtlW.parentNode.removeChild(rtlW);\n } else {\n var rtl = rtlW.querySelector('input');\n if (this.settings.rtl) rtl.setAttribute('checked', 'checked');\n var rtlCb = function rtlCb(e) {\n _this2._loadingState(true);\n _this2.setRtl(e.target.checked);\n };\n rtl.addEventListener('change', rtlCb);\n this._listeners.push([rtl, 'change', rtlCb]);\n }\n\n // Style\n\n //\n\n var styleW = this.container.querySelector('.template-customizer-style');\n if (!this._hasControls('style')) {\n styleW.parentNode.removeChild(styleW);\n } else {\n var style = styleW.querySelector('input');\n if (this.settings.style === 'dark') style.setAttribute('checked', 'checked');\n var styleCb = function styleCb(e) {\n _this2._loadingState(true);\n if (e.target.checked) {\n _this2.setStyle('dark');\n } else {\n _this2.setStyle('light');\n }\n };\n style.addEventListener('change', styleCb);\n this._listeners.push([style, 'change', styleCb]);\n }\n\n // Theme\n\n var themesW = this.container.querySelector('.template-customizer-themes');\n if (!this._hasControls('themes')) {\n themesW.parentNode.removeChild(themesW);\n } else {\n var themesWInner = themesW.querySelector('.template-customizer-themes-options');\n this.settings.availableThemes.forEach(function (theme) {\n var themeEl = _this2._getElementFromString(\"<div class=\\\"col-12\\\"><div class=\\\"form-check\\\"><input class=\\\"form-check-input\\\" type=\\\"radio\\\" name=\\\"themeRadios\\\" id=\\\"themeRadios\".concat(theme.name, \"\\\" value=\\\"\").concat(theme.name, \"\\\"><label class=\\\"form-check-label\\\" for=\\\"themeRadios\").concat(theme.name, \"\\\">\").concat(theme.title, \"</label></div></div>\"));\n themesWInner.appendChild(themeEl);\n });\n themesWInner.querySelector(\"input[value=\\\"\".concat(this.settings.theme.name, \"\\\"]\")).setAttribute('checked', 'checked');\n var themeCb = function themeCb(e) {\n if (_this2._loading) return;\n _this2._loading = true;\n _this2._loadingState(true, true);\n _this2.setTheme(e.target.value, true, function () {\n _this2._loading = false;\n _this2._loadingState(false, true);\n });\n };\n themesWInner.addEventListener('change', themeCb);\n this._listeners.push([themesWInner, 'change', themeCb]);\n }\n var themingW = this.container.querySelector('.template-customizer-theming');\n if (!this._hasControls('style') && !this._hasControls('themes')) {\n themingW.parentNode.removeChild(themingW);\n }\n\n // Layout wrapper\n //\n\n var layoutW = this.container.querySelector('.template-customizer-layout');\n if (!this._hasControls('layoutType layoutNavbarFixed layoutFooterFixed layoutMenuFlipped showDropdownOnHover', true)) {\n layoutW.parentNode.removeChild(layoutW);\n } else {\n // Position\n //\n\n var layoutTypeW = this.container.querySelector('.template-customizer-layoutType');\n if (!this._hasControls('layoutType')) {\n layoutTypeW.parentNode.removeChild(layoutTypeW);\n } else {\n this._controls.layoutType = layoutTypeW.querySelector('.template-customizer-layouts-options');\n\n // this._controls.layoutType.value = this.settings.layoutType\n this._controls.layoutType.querySelector(\"input[value=\\\"\".concat(this.settings.layoutType, \"\\\"]\")).setAttribute('checked', 'checked');\n var layoutTypeCb = function layoutTypeCb(e) {\n return _this2.setLayoutType(e.target.value);\n };\n this._controls.layoutType.addEventListener('change', layoutTypeCb);\n this._listeners.push([this._controls.layoutType, 'change', layoutTypeCb]);\n }\n\n // Menu flipped\n // ? Uncomment If needed\n\n /* this._controls.layoutMenuFlipped = this.container.querySelector('.template-customizer-layoutMenuFlipped')\r\n if (!this._hasControls('layoutMenuFlipped')) {\r\n this._controls.layoutMenuFlipped.parentNode.removeChild(this._controls.layoutMenuFlipped)\r\n } else {\r\n this._controls.layoutMenuFlipped = this._controls.layoutMenuFlipped.querySelector('input')\r\n if (this.settings.layoutMenuFlipped) this._controls.layoutMenuFlipped.setAttribute('checked', 'checked')\r\n const layoutMenuFlipped = e => this.setLayoutMenuFlipped(e.target.checked)\r\n this._controls.layoutMenuFlipped.addEventListener('change', layoutMenuFlipped)\r\n this._listeners.push([this._controls.layoutMenuFlipped, 'change', layoutMenuFlipped])\r\n } */\n\n // Menu open\n //\n\n this._controls.showDropdownOnHover = this.container.querySelector('.template-customizer-showDropdownOnHover');\n if (!this._hasControls('showDropdownOnHover')) {\n this._controls.showDropdownOnHover.parentNode.removeChild(this._controls.showDropdownOnHover);\n } else {\n this._controls.showDropdownOnHover = this._controls.showDropdownOnHover.querySelector('input');\n if (this.settings.showDropdownOnHover) this._controls.showDropdownOnHover.setAttribute('checked', 'checked');\n var showDropdownOnHover = function showDropdownOnHover(e) {\n return _this2.setDropdownOnHover(e.target.checked);\n };\n this._controls.showDropdownOnHover.addEventListener('change', showDropdownOnHover);\n this._listeners.push([this._controls.showDropdownOnHover, 'change', showDropdownOnHover]);\n }\n\n // Navbar\n //\n\n this._controls.layoutNavbarFixedW = this.container.querySelector('.template-customizer-layoutNavbarFixed');\n if (!this._hasControls('layoutNavbarFixed')) {\n this._controls.layoutNavbarFixedW.parentNode.removeChild(this._controls.layoutNavbarFixedW);\n } else {\n this._controls.layoutNavbarFixed = this._controls.layoutNavbarFixedW.querySelector('input');\n if (this.settings.layoutNavbarFixed) this._controls.layoutNavbarFixed.setAttribute('checked', 'checked');\n var layoutNavbarFixedCb = function layoutNavbarFixedCb(e) {\n return _this2.setLayoutNavbarFixed(e.target.checked);\n };\n this._controls.layoutNavbarFixed.addEventListener('change', layoutNavbarFixedCb);\n this._listeners.push([this._controls.layoutNavbarFixed, 'change', layoutNavbarFixedCb]);\n }\n\n // Footer\n //\n\n this._controls.layoutFooterFixedW = this.container.querySelector('.template-customizer-layoutFooterFixed');\n if (!this._hasControls('layoutFooterFixed')) {\n this._controls.layoutFooterFixedW.parentNode.removeChild(this._controls.layoutFooterFixedW);\n } else {\n this._controls.layoutFooterFixed = this._controls.layoutFooterFixedW.querySelector('input');\n if (this.settings.layoutFooterFixed) this._controls.layoutFooterFixed.setAttribute('checked', 'checked');\n var layoutFooterFixedCb = function layoutFooterFixedCb(e) {\n return _this2.setLayoutFooterFixed(e.target.checked);\n };\n this._controls.layoutFooterFixed.addEventListener('change', layoutFooterFixedCb);\n this._listeners.push([this._controls.layoutFooterFixed, 'change', layoutFooterFixedCb]);\n }\n }\n\n // Set language\n this.setLang(this.settings.lang, true);\n\n // Append container\n if (_container === document) {\n if (_container.body) {\n _container.body.appendChild(this.container);\n } else {\n window.addEventListener('DOMContentLoaded', function () {\n return _container.body.appendChild(_this2.container);\n });\n }\n } else {\n _container.appendChild(this.container);\n }\n }\n }, {\n key: \"_initDirection\",\n value: function _initDirection() {\n if (this._hasControls('rtl')) document.documentElement.setAttribute('dir', this.settings.rtl ? 'rtl' : 'ltr');\n }\n\n // Init template styles\n }, {\n key: \"_initStyle\",\n value: function _initStyle() {\n if (!this._hasControls('style')) return;\n var style = this.settings.style;\n this._insertStylesheet('template-customizer-core-css', this.pathResolver(this.settings.cssPath + this.settings.cssFilenamePattern.replace('%name%', \"core\".concat(style !== 'light' ? \"-\".concat(style) : ''))));\n // ? Uncomment if needed\n /*\r\n this._insertStylesheet(\r\n 'template-customizer-bootstrap-css',\r\n this.pathResolver(\r\n this.settings.cssPath +\r\n this.settings.cssFilenamePattern.replace('%name%', `bootstrap${style !== 'light' ? `-${style}` : ''}`)\r\n )\r\n )\r\n this._insertStylesheet(\r\n 'template-customizer-bsextended-css',\r\n this.pathResolver(\r\n this.settings.cssPath +\r\n this.settings.cssFilenamePattern.replace(\r\n '%name%',\r\n `bootstrap-extended${style !== 'light' ? `-${style}` : ''}`\r\n )\r\n )\r\n )\r\n this._insertStylesheet(\r\n 'template-customizer-components-css',\r\n this.pathResolver(\r\n this.settings.cssPath +\r\n this.settings.cssFilenamePattern.replace('%name%', `components${style !== 'light' ? `-${style}` : ''}`)\r\n )\r\n )\r\n this._insertStylesheet(\r\n 'template-customizer-colors-css',\r\n this.pathResolver(\r\n this.settings.cssPath +\r\n this.settings.cssFilenamePattern.replace('%name%', `colors${style !== 'light' ? `-${style}` : ''}`)\r\n )\r\n )\r\n */\n\n var classesToRemove = style === 'light' ? ['dark-style'] : ['light-style'];\n classesToRemove.forEach(function (cls) {\n document.documentElement.classList.remove(cls);\n });\n document.documentElement.classList.add(\"\".concat(style, \"-style\"));\n }\n\n // Init theme style\n }, {\n key: \"_initTheme\",\n value: function _initTheme() {\n if (this._hasControls('themes')) {\n this._insertStylesheet('template-customizer-theme-css', this.pathResolver(this.settings.themesPath + this.settings.cssFilenamePattern.replace('%name%', this.settings.theme.name + (this.settings.style !== 'light' ? \"-\".concat(this.settings.style) : ''))));\n } else {\n // If theme control is not enabled, get the current theme from localstorage else display default theme\n var theme = this._getSetting('Theme');\n this._insertStylesheet('template-customizer-theme-css', this.pathResolver(this.settings.themesPath + this.settings.cssFilenamePattern.replace('%name%', theme ? theme : 'theme-default' + (this.settings.style !== 'light' ? \"-\".concat(this.settings.style) : ''))));\n }\n }\n }, {\n key: \"_insertStylesheet\",\n value: function _insertStylesheet(className, href) {\n var curLink = document.querySelector(\".\".concat(className));\n if (typeof document.documentMode === 'number' && document.documentMode < 11) {\n if (!curLink) return;\n if (href === curLink.getAttribute('href')) return;\n var link = document.createElement('link');\n link.setAttribute('rel', 'stylesheet');\n link.setAttribute('type', 'text/css');\n link.className = className;\n link.setAttribute('href', href);\n curLink.parentNode.insertBefore(link, curLink.nextSibling);\n } else {\n document.write(\"<link rel=\\\"stylesheet\\\" type=\\\"text/css\\\" href=\\\"\".concat(href, \"\\\" class=\\\"\").concat(className, \"\\\">\"));\n }\n curLink.parentNode.removeChild(curLink);\n }\n }, {\n key: \"_loadStylesheets\",\n value: function _loadStylesheets(stylesheets, cb) {\n var paths = Object.keys(stylesheets);\n var count = paths.length;\n var loaded = 0;\n function loadStylesheet(path, curLink, _cb) {\n var link = document.createElement('link');\n link.setAttribute('href', path);\n link.setAttribute('rel', 'stylesheet');\n link.setAttribute('type', 'text/css');\n link.className = curLink.className;\n var sheet = 'sheet' in link ? 'sheet' : 'styleSheet';\n var cssRules = 'sheet' in link ? 'cssRules' : 'rules';\n var intervalId;\n var timeoutId = setTimeout(function () {\n clearInterval(intervalId);\n clearTimeout(timeoutId);\n curLink.parentNode.removeChild(link);\n _cb(false, path);\n }, 15000);\n intervalId = setInterval(function () {\n try {\n if (link[sheet] && link[sheet][cssRules].length) {\n clearInterval(intervalId);\n clearTimeout(timeoutId);\n curLink.parentNode.removeChild(curLink);\n _cb(true);\n }\n } catch (e) {\n // Catch error\n }\n }, 10);\n curLink.parentNode.insertBefore(link, curLink.nextSibling);\n }\n function stylesheetCallBack() {\n if ((loaded += 1) >= count) {\n cb();\n }\n }\n for (var i = 0; i < paths.length; i++) {\n loadStylesheet(paths[i], stylesheets[paths[i]], stylesheetCallBack());\n }\n }\n }, {\n key: \"_loadingState\",\n value: function _loadingState(enable, themes) {\n this.container.classList[enable ? 'add' : 'remove'](\"template-customizer-loading\".concat(themes ? '-theme' : ''));\n }\n }, {\n key: \"_getElementFromString\",\n value: function _getElementFromString(str) {\n var wrapper = document.createElement('div');\n wrapper.innerHTML = str;\n return wrapper.firstChild;\n }\n\n // Set settings in LocalStorage with layout & key\n }, {\n key: \"_getSetting\",\n value: function _getSetting(key) {\n var result = null;\n var layoutName = this._getLayoutName();\n try {\n result = localStorage.getItem(\"templateCustomizer-\".concat(layoutName, \"--\").concat(key));\n } catch (e) {\n // Catch error\n }\n return String(result || '');\n }\n\n // Set settings in LocalStorage with layout & key\n }, {\n key: \"_setSetting\",\n value: function _setSetting(key, val) {\n var layoutName = this._getLayoutName();\n try {\n localStorage.setItem(\"templateCustomizer-\".concat(layoutName, \"--\").concat(key), String(val));\n } catch (e) {\n // Catch Error\n }\n }\n\n // Get layout name to set unique\n }, {\n key: \"_getLayoutName\",\n value: function _getLayoutName() {\n return document.getElementsByTagName('HTML')[0].getAttribute('data-template');\n }\n }, {\n key: \"_removeListeners\",\n value: function _removeListeners() {\n for (var i = 0, l = this._listeners.length; i < l; i++) {\n this._listeners[i][0].removeEventListener(this._listeners[i][1], this._listeners[i][2]);\n }\n }\n }, {\n key: \"_cleanup\",\n value: function _cleanup() {\n this._removeListeners();\n this._listeners = [];\n this._controls = {};\n if (this._updateInterval) {\n clearInterval(this._updateInterval);\n this._updateInterval = null;\n }\n }\n }, {\n key: \"_ssr\",\n get: function get() {\n return typeof window === 'undefined';\n }\n\n // Check controls availability\n }, {\n key: \"_hasControls\",\n value: function _hasControls(controls) {\n var _this3 = this;\n var oneOf = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return controls.split(' ').reduce(function (result, control) {\n if (_this3.settings.controls.indexOf(control) !== -1) {\n if (oneOf || result !== false) result = true;\n } else if (!oneOf || result !== true) result = false;\n return result;\n }, null);\n }\n\n // Get the default theme\n }, {\n key: \"_getDefaultTheme\",\n value: function _getDefaultTheme(themeId) {\n var theme;\n //! Fix: If horizontal layout and selected layout is semi-dark then set layout default\n if (document.querySelector('[data-template=\"horizontal-menu-template\"]')) {\n if (themeId === 1) {\n themeId = 0;\n }\n }\n if (typeof themeId === 'string') {\n theme = this._getThemeByName(themeId, false);\n } else {\n theme = this.settings.availableThemes[themeId];\n }\n if (!theme) {\n throw new Error(\"Theme ID \\\"\".concat(themeId, \"\\\" not found!\"));\n }\n return theme;\n }\n\n // Get theme by themeId/themeName\n }, {\n key: \"_getThemeByName\",\n value: function _getThemeByName(themeName) {\n var returnDefault = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var themes = this.settings.availableThemes;\n for (var i = 0, l = themes.length; i < l; i++) {\n if (themes[i].name === themeName) return themes[i];\n }\n return returnDefault ? this.settings.defaultTheme : null;\n }\n }]);\n return TemplateCustomizer;\n}(); // Themes\nTemplateCustomizer.THEMES = [{\n name: 'theme-default',\n title: 'Default'\n}, {\n name: 'theme-semi-dark',\n title: 'Semi Dark'\n}, {\n name: 'theme-bordered',\n title: 'Bordered'\n}];\n\n// Theme setting language\nTemplateCustomizer.LANGUAGES = {\n en: {\n panel_header: 'TEMPLATE CUSTOMIZER',\n panel_sub_header: 'Customize and preview in real time',\n theming_header: 'THEMING',\n theme_header: 'THEME',\n theme_label: 'Themes',\n style_label: 'Style (Mode)',\n style_switch_light: 'Light',\n style_switch_dark: 'Dark',\n layout_header: 'LAYOUT',\n layout_label: 'Layout (Menu)',\n layout_static: 'Static',\n layout_offcanvas: 'Offcanvas',\n layout_fixed: 'Fixed',\n layout_fixed_offcanvas: 'Fixed offcanvas',\n layout_flipped_label: 'Menu flipped',\n layout_dd_open_label: 'Dropdown on hover',\n layout_navbar_label: 'Fixed navbar',\n layout_footer_label: 'Fixed footer',\n misc_header: 'MISC',\n rtl_label: 'RTL direction'\n },\n fr: {\n panel_header: 'MODÈLE DE PERSONNALISATION',\n panel_sub_header: 'Personnalisez et prévisualisez en temps réel',\n theming_header: 'THÉMATISATION',\n theme_header: 'THÈME',\n theme_label: 'Thèmes',\n style_label: 'Style (Mode)',\n style_switch_light: 'Léger',\n style_switch_dark: 'Sombre',\n layout_header: 'DISPOSITION',\n layout_label: 'Mise en page (Menu)',\n layout_static: 'Statique',\n layout_offcanvas: 'Hors toile',\n layout_fixed: 'Fixé',\n layout_fixed_offcanvas: 'Fixe hors toile',\n layout_flipped_label: 'Menu inversé',\n layout_dd_open_label: 'Liste déroulante au survol',\n layout_navbar_label: 'Barre de navigation fixe',\n layout_footer_label: 'Pied de page fixe',\n misc_header: 'DIVERS',\n rtl_label: 'Sens RTL'\n },\n de: {\n panel_header: 'VORLAGEN-ANPASSER',\n panel_sub_header: 'Anpassen und Vorschau in Echtzeit',\n theming_header: 'THEMEN',\n theme_header: 'THEMA',\n theme_label: 'Themen',\n style_label: 'Stil (Modus)',\n style_switch_light: 'Hell',\n style_switch_dark: 'Dunkel',\n layout_header: 'LAYOUT',\n layout_label: 'Layout (Speisekarte)',\n layout_static: 'Statisch',\n layout_offcanvas: 'Leinwand',\n layout_fixed: 'Fest',\n layout_fixed_offcanvas: 'Außerhalb der Leinwand behoben',\n layout_flipped_label: 'Menü umgedreht',\n layout_dd_open_label: 'Dropdown beim Hover',\n layout_navbar_label: 'Navigationsleiste behoben',\n layout_footer_label: 'Feste Fußzeile',\n misc_header: 'VERSCHIEDENES',\n rtl_label: 'RTL-Regie'\n },\n pt: {\n panel_header: 'PERSONALIZADOR DE MODELO',\n panel_sub_header: 'Personalize e visualize em tempo real',\n theming_header: 'TEMAS',\n theme_header: 'TEMA',\n theme_label: 'Temas',\n style_label: 'Estilo (Modo)',\n style_switch_light: 'Luz',\n style_switch_dark: 'Escuro',\n layout_header: 'ESQUEMA',\n layout_label: 'Esquema (Cardápio)',\n layout_static: 'Estático',\n layout_offcanvas: 'Offcanvas',\n layout_fixed: 'Fixo',\n layout_fixed_offcanvas: 'Offscreen fixo',\n layout_flipped_label: 'Menu invertido',\n layout_dd_open_label: 'Suspensão ao passar o mouse',\n layout_navbar_label: 'Barra de navegação fixa',\n layout_footer_label: 'Rodapé fixo',\n misc_header: 'DIVERSOS',\n rtl_label: 'Direção RTL'\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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WSxFQUFFLE1BQU07SUFDcEJDLFdBQVcsRUFBRSxPQUFPO0lBQ3BCQyxXQUFXLEVBQUUsZUFBZTtJQUM1QkMsa0JBQWtCLEVBQUUsS0FBSztJQUN6QkMsaUJBQWlCLEVBQUUsUUFBUTtJQUMzQkMsYUFBYSxFQUFFLFNBQVM7SUFDeEJDLFlBQVksRUFBRSxvQkFBb0I7SUFDbENDLGFBQWEsRUFBRSxVQUFVO0lBQ3pCQyxnQkFBZ0IsRUFBRSxXQUFXO0lBQzdCQyxZQUFZLEVBQUUsTUFBTTtJQUNwQkMsc0JBQXNCLEVBQUUsZ0JBQWdCO0lBQ3hDQyxvQkFBb0IsRUFBRSxnQkFBZ0I7SUFDdENDLG9CQUFvQixFQUFFLDZCQUE2QjtJQUNuREMsbUJBQW1CLEVBQUUseUJBQXlCO0lBQzlDQyxtQkFBbUIsRUFBRSxhQUFhO0lBQ2xDQyxXQUFXLEVBQUUsVUFBVTtJQUN2QkMsU0FBUyxFQUFFO0VBQ2I7QUFDRixDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZnJlc3QvLi9qcy90ZW1wbGF0ZS1jdXN0b21pemVyLmpzP2E5NDYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGN1c3RvbWl6ZXJTdHlsZSBmcm9tICcuL190ZW1wbGF0ZS1jdXN0b21pemVyL190ZW1wbGF0ZS1jdXN0b21pemVyLnNjc3MnXHJcbmltcG9ydCBjdXN0b21pemVyTWFya3VwIGZyb20gJy4vX3RlbXBsYXRlLWN1c3RvbWl6ZXIvX3RlbXBsYXRlLWN1c3RvbWl6ZXIuaHRtbCdcclxuXHJcbmNvbnN0IENTU19GSUxFTkFNRV9QQVRURVJOID0gJyVuYW1lJS5jc3MnXHJcbmNvbnN0IENPTlRST0xTID0gW1xyXG4gICdydGwnLFxyXG4gICdzdHlsZScsXHJcbiAgJ2xheW91dFR5cGUnLFxyXG4gICdsYXlvdXRNZW51RmxpcHBlZCcsXHJcbiAgJ3Nob3dEcm9wZG93bk9uSG92ZXInLFxyXG4gICdsYXlvdXROYXZiYXJGaXhlZCcsXHJcbiAgJ2xheW91dEZvb3RlckZpeGVkJyxcclxuICAndGhlbWVzJ1xyXG5dXHJcbmNvbnN0IFNUWUxFUyA9IFsnbGlnaHQnLCAnZGFyayddXHJcblxyXG5jb25zdCBjbCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3RcclxuXHJcbmNvbnN0IERJU1BMQVlfQ1VTVE9NSVpFUiA9IHRydWVcclxuY29uc3QgREVGQVVMVF9USEVNRSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdIVE1MJylbMF0uZ2V0QXR0cmlidXRlKCdkYXRhLXRoZW1lJykgfHwgMFxyXG5jb25zdCBERUZBVUxUX1NUWUxFID0gY2wuY29udGFpbnMoJ2Rhcmstc3R5bGUnKSA/ICdkYXJrJyA6ICdsaWdodCdcclxuY29uc3QgREVGQVVMVF9URVhUX0RJUiA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RpcicpID09PSAncnRsJ1xyXG5jb25zdCBERUZBVUxUX01FTlVfQ09MTEFQU0VEID0gISFjbC5jb250YWlucygnbGF5b3V0LW1lbnUtY29sbGFwc2VkJylcclxuY29uc3QgREVGQVVMVF9NRU5VX0ZMSVBQRUQgPSAhIWNsLmNvbnRhaW5zKCdsYXlvdXQtbWVudS1mbGlwcGVkJylcclxuY29uc3QgREVGQVVMVF9TSE9XX0RST1BET1dOX09OX0hPVkVSID0gdW5kZWZpbmVkXHJcbmNvbnN0IERFRkFVTFRfTkFWQkFSX0ZJWEVEID0gISFjbC5jb250YWlucygnbGF5b3V0LW5hdmJhci1maXhlZCcpXHJcbmNvbnN0IERFRkFVTFRfRk9PVEVSX0ZJWEVEID0gISFjbC5jb250YWlucygnbGF5b3V0LWZvb3Rlci1maXhlZCcpXHJcblxyXG5sZXQgbGF5b3V0VHlwZVxyXG5pZiAoY2wuY29udGFpbnMoJ2xheW91dC1tZW51LW9mZmNhbnZhcycpKSB7XHJcbiAgbGF5b3V0VHlwZSA9ICdzdGF0aWMtb2ZmY2FudmFzJ1xyXG59IGVsc2UgaWYgKGNsLmNvbnRhaW5zKCdsYXlvdXQtbWVudS1maXhlZCcpKSB7XHJcbiAgbGF5b3V0VHlwZSA9ICdmaXhlZCdcclxufSBlbHNlIGlmIChjbC5jb250YWlucygnbGF5b3V0LW1lbnUtZml4ZWQtb2ZmY2FudmFzJykpIHtcclxuICBsYXlvdXRUeXBlID0gJ2ZpeGVkLW9mZmNhbnZhcydcclxufSBlbHNlIHtcclxuICBsYXlvdXRUeXBlID0gJ3N0YXRpYydcclxufVxyXG5jb25zdCBERUZBVUxUX0xBWU9VVF9UWVBFID0gbGF5b3V0VHlwZVxyXG5cclxuY2xhc3MgVGVtcGxhdGVDdXN0b21pemVyIHtcclxuICBjb25zdHJ1Y3Rvcih7XHJcbiAgICBjc3NQYXRoLFxyXG4gICAgdGhlbWVzUGF0aCxcclxuICAgIGNzc0ZpbGVuYW1lUGF0dGVybixcclxuICAgIGRpc3BsYXlDdXN0b21pemVyLFxyXG4gICAgY29udHJvbHMsXHJcbiAgICBkZWZhdWx0VGV4dERpcixcclxuICAgIGRlZmF1bHRMYXlvdXRUeXBlLFxyXG4gICAgZGVmYXVsdE1lbnVDb2xsYXBzZWQsXHJcbiAgICBkZWZhdWx0TWVudUZsaXBwZWQsXHJcbiAgICBkZWZhdWx0U2hvd0Ryb3Bkb3duT25Ib3ZlcixcclxuICAgIGRlZmF1bHROYXZiYXJGaXhlZCxcclxuICAgIGRlZmF1bHRGb290ZXJGaXhlZCxcclxuICAgIHN0eWxlcyxcclxuICAgIGRlZmF1bHRTdHlsZSxcclxuICAgIGF2YWlsYWJsZVRoZW1lcyxcclxuICAgIGRlZmF1bHRUaGVtZSxcclxuICAgIHBhdGhSZXNvbHZlcixcclxuICAgIG9uU2V0dGluZ3NDaGFuZ2UsXHJcbiAgICBsYW5nXHJcbiAgfSkge1xyXG4gICAgaWYgKHRoaXMuX3NzcikgcmV0dXJuXHJcbiAgICBpZiAoIXdpbmRvdy5IZWxwZXJzKSB0aHJvdyBuZXcgRXJyb3IoJ3dpbmRvdy5IZWxwZXJzIHJlcXVpcmVkLicpXHJcblxyXG4gICAgdGhpcy5zZXR0aW5ncyA9IHt9XHJcbiAgICB0aGlzLnNldHRpbmdzLmNzc1BhdGggPSBjc3NQYXRoXHJcbiAgICB0aGlzLnNldHRpbmdzLnRoZW1lc1BhdGggPSB0aGVtZXNQYXRoXHJcbiAgICB0aGlzLnNldHRpbmdzLmNzc0ZpbGVuYW1lUGF0dGVybiA9IGNzc0ZpbGVuYW1lUGF0dGVybiB8fCBDU1NfRklMRU5BTUVfUEFUVEVSTlxyXG4gICAgdGhpcy5zZXR0aW5ncy5kaXNwbGF5Q3VzdG9taXplciA9IHR5cGVvZiBkaXNwbGF5Q3VzdG9taXplciAhPT0gJ3VuZGVmaW5lZCcgPyBkaXNwbGF5Q3VzdG9taXplciA6IERJU1BMQVlfQ1VTVE9NSVpFUlxyXG5cclxuICAgIHRoaXMuc2V0dGluZ3MuY29udHJvbHMgPSBjb250cm9scyB8fCBDT05UUk9MU1xyXG4gICAgdGhpcy5zZXR0aW5ncy5kZWZhdWx0VGV4dERpciA9IGRlZmF1bHRUZXh0RGlyID09PSAncnRsJyA/IHRydWUgOiBmYWxzZSB8fCBERUZBVUxUX1RFWFRfRElSXHJcbiAgICB0aGlzLnNldHRpbmdzLmRlZmF1bHRMYXlvdXRUeXBlID0gZGVmYXVsdExheW91dFR5cGUgfHwgREVGQVVMVF9MQVlPVVRfVFlQRVxyXG4gICAgdGhpcy5zZXR0aW5ncy5kZWZhdWx0TWVudUNvbGxhcHNlZCA9XHJcbiAgICAgIHR5cGVvZiBkZWZhdWx0TWVudUNvbGxhcHNlZCAhPT0gJ3VuZGVmaW5lZCcgPyBkZWZhdWx0TWVudUNvbGxhcHNlZCA6IERFRkFVTFRfTUVOVV9DT0xMQVBTRURcclxuICAgIHRoaXMuc2V0dGluZ3MuZGVmYXVsdE1lbnVGbGlwcGVkID1cclxuICAgICAgdHlwZW9mIGRlZmF1bHRNZW51RmxpcHBlZCAhPT0gJ3VuZGVmaW5lZCcgPyBkZWZhdWx0TWVudUZsaXBwZWQgOiBERUZBVUxUX01FTlVfRkxJUFBFRFxyXG4gICAgdGhpcy5zZXR0aW5ncy5kZWZhdWx0U2hvd0Ryb3Bkb3duT25Ib3ZlciA9XHJcbiAgICAgIHR5cGVvZiBkZWZhdWx0U2hvd0Ryb3Bkb3duT25Ib3ZlciAhPT0gJ3VuZGVmaW5lZCcgPyBkZWZhdWx0U2hvd0Ryb3Bkb3duT25Ib3ZlciA6IERFRkFVTFRfU0hPV19EUk9QRE9XTl9PTl9IT1ZFUlxyXG4gICAgdGhpcy5zZXR0aW5ncy5kZWZhdWx0TmF2YmFyRml4ZWQgPVxyXG4gICAgICB0eXBlb2YgZGVmYXVsdE5hdmJhckZpeGVkICE9PSAndW5kZWZpbmVkJyA/IGRlZmF1bHROYXZiYXJGaXhlZCA6IERFRkFVTFRfTkFWQkFSX0ZJWEVEXHJcbiAgICB0aGlzLnNldHRpbmdzLmRlZmF1bHRGb290ZXJGaXhlZCA9XHJcbiAgICAgIHR5cGVvZiBkZWZhdWx0Rm9vdGVyRml4ZWQgIT09ICd1bmRlZmluZWQnID8gZGVmYXVsdEZvb3RlckZpeGVkIDogREVGQVVMVF9GT09URVJfRklYRURcclxuXHJcbiAgICB0aGlzLnNldHRpbmdzLmF2YWlsYWJsZVRoZW1lcyA9IGF2YWlsYWJsZVRoZW1lcyB8fCBUZW1wbGF0ZUN1c3RvbWl6ZXIuVEhFTUVTXHJcbiAgICB0aGlzLnNldHRpbmdzLmRlZmF1bHRUaGVtZSA9IHRoaXMuX2dldERlZmF1bHRUaGVtZShcclxuICAgICAgdHlwZW9mIGRlZmF1bHRUaGVtZSAhPT0gJ3VuZGVmaW5lZCcgPyBkZWZhdWx0VGhlbWUgOiBERUZBVUxUX1RIRU1FXHJcbiAgICApXHJcblxyXG4gICAgdGhpcy5zZXR0aW5ncy5zdHlsZXMgPSBzdHlsZXMgfHwgU1RZTEVTXHJcbiAgICB0aGlzLnNldHRpbmdzLmRlZmF1bHRTdHlsZSA9IGRlZmF1bHRTdHlsZSB8fCBERUZBVUxUX1NUWUxFXHJcbiAgICB0aGlzLnNldHRpbmdzLmxhbmcgPSBsYW5nIHx8ICdlbidcclxuICAgIHRoaXMucGF0aFJlc29sdmVyID0gcGF0aFJlc29sdmVyIHx8IChwID0+IHApXHJcblxyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3Muc3R5bGVzLmxlbmd0aCA8IDIpIHtcclxuICAgICAgY29uc3QgaSA9IHRoaXMuc2V0dGluZ3MuY29udHJvbHMuaW5kZXhPZignc3R5bGUnKVxyXG4gICAgICBpZiAoaSAhPT0gLTEpIHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmNvbnRyb2xzID0gdGhpcy5zZXR0aW5ncy5jb250cm9scy5zbGljZSgwLCBpKS5jb25jYXQodGhpcy5zZXR0aW5ncy5jb250cm9scy5zbGljZShpICsgMSkpXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNldHRpbmdzLm9uU2V0dGluZ3NDaGFuZ2UgPSB0eXBlb2Ygb25TZXR0aW5nc0NoYW5nZSA9PT0gJ2Z1bmN0aW9uJyA/IG9uU2V0dGluZ3NDaGFuZ2UgOiAoKSA9PiB7fVxyXG5cclxuICAgIHRoaXMuX2xvYWRTZXR0aW5ncygpXHJcblxyXG4gICAgdGhpcy5fbGlzdGVuZXJzID0gW11cclxuICAgIHRoaXMuX2NvbnRyb2xzID0ge31cclxuXHJcbiAgICB0aGlzLl9pbml0RGlyZWN0aW9uKClcclxuICAgIHRoaXMuX2luaXRTdHlsZSgpXHJcbiAgICB0aGlzLl9pbml0VGhlbWUoKVxyXG4gICAgdGhpcy5zZXRMYXlvdXRUeXBlKHRoaXMuc2V0dGluZ3MubGF5b3V0VHlwZSwgZmFsc2UpXHJcbiAgICB0aGlzLnNldExheW91dE1lbnVGbGlwcGVkKHRoaXMuc2V0dGluZ3MubGF5b3V0TWVudUZsaXBwZWQsIGZhbHNlKVxyXG4gICAgdGhpcy5zZXREcm9wZG93bk9uSG92ZXIodGhpcy5zZXR0aW5ncy5zaG93RHJvcGRvd25PbkhvdmVyLCBmYWxzZSlcclxuICAgIHRoaXMuc2V0TGF5b3V0TmF2YmFyRml4ZWQodGhpcy5zZXR0aW5ncy5sYXlvdXROYXZiYXJGaXhlZCwgZmFsc2UpXHJcbiAgICB0aGlzLnNldExheW91dEZvb3RlckZpeGVkKHRoaXMuc2V0dGluZ3MubGF5b3V0Rm9vdGVyRml4ZWQsIGZhbHNlKVxyXG4gICAgdGhpcy5fc2V0dXAoKVxyXG4gIH1cclxuXHJcbiAgc2V0UnRsKHJ0bCkge1xyXG4gICAgaWYgKCF0aGlzLl9oYXNDb250cm9scygncnRsJykpIHJldHVyblxyXG4gICAgdGhpcy5fc2V0U2V0dGluZygnUnRsJywgU3RyaW5nKHJ0bCkpXHJcbiAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKClcclxuICB9XHJcblxyXG4gIHNldFN0eWxlKHN0eWxlKSB7XHJcbiAgICBpZiAoIXRoaXMuX2hhc0NvbnRyb2xzKCdzdHlsZScpKSByZXR1cm5cclxuICAgIHRoaXMuX3NldFNldHRpbmcoJ1N0eWxlJywgWydkYXJrJ10uaW5kZXhPZihzdHlsZSkgPT09IC0xID8gJ2xpZ2h0JyA6IHN0eWxlKVxyXG5cclxuICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKVxyXG4gIH1cclxuXHJcbiAgc2V0VGhlbWUodGhlbWVOYW1lLCB1cGRhdGVTdG9yYWdlID0gdHJ1ZSwgY2IgPSBudWxsKSB7XHJcbiAgICBpZiAoIXRoaXMuX2hhc0NvbnRyb2xzKCd0aGVtZXMnKSkgcmV0dXJuXHJcblxyXG4gICAgY29uc3QgdGhlbWUgPSB0aGlzLl9nZXRUaGVtZUJ5TmFtZSh0aGVtZU5hbWUpXHJcblxyXG4gICAgaWYgKCF0aGVtZSkgcmV0dXJuXHJcblxyXG4gICAgdGhpcy5zZXR0aW5ncy50aGVtZSA9IHRoZW1lXHJcbiAgICBpZiAodXBkYXRlU3RvcmFnZSkgdGhpcy5fc2V0U2V0dGluZygnVGhlbWUnLCB0aGVtZU5hbWUpXHJcblxyXG4gICAgY29uc3QgdGhlbWVVcmwgPSB0aGlzLnBhdGhSZXNvbHZlcihcclxuICAgICAgdGhpcy5zZXR0aW5ncy50aGVtZXNQYXRoICtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmNzc0ZpbGVuYW1lUGF0dGVybi5yZXBsYWNlKFxyXG4gICAgICAgICAgJyVuYW1lJScsXHJcbiAgICAgICAgICB0aGVtZU5hbWUgKyAodGhpcy5zZXR0aW5ncy5zdHlsZSAhPT0gJ2xpZ2h0JyA/IGAtJHt0aGlzLnNldHRpbmdzLnN0eWxlfWAgOiAnJylcclxuICAgICAgICApXHJcbiAgICApXHJcblxyXG4gICAgdGhpcy5fbG9hZFN0eWxlc2hlZXRzKHsgW3RoZW1lVXJsXTogZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnRlbXBsYXRlLWN1c3RvbWl6ZXItdGhlbWUtY3NzJykgfSwgY2IgfHwgKCgpID0+IHt9KSlcclxuXHJcbiAgICBpZiAodXBkYXRlU3RvcmFnZSkgdGhpcy5zZXR0aW5ncy5vblNldHRpbmdzQ2hhbmdlLmNhbGwodGhpcywgdGhpcy5zZXR0aW5ncylcclxuICB9XHJcblxyXG4gIHNldExheW91dFR5cGUocG9zLCB1cGRhdGVTdG9yYWdlID0gdHJ1ZSkge1xyXG4gICAgaWYgKCF0aGlzLl9oYXNDb250cm9scygnbGF5b3V0VHlwZScpKSByZXR1cm5cclxuICAgIGlmIChwb3MgIT09ICdzdGF0aWMnICYmIHBvcyAhPT0gJ3N0YXRpYy1vZmZjYW52YXMnICYmIHBvcyAhPT0gJ2ZpeGVkJyAmJiBwb3MgIT09ICdmaXhlZC1vZmZjYW52YXMnKSByZXR1cm5cclxuXHJcbiAgICB0aGlzLnNldHRpbmdzLmxheW91dFR5cGUgPSBwb3NcclxuICAgIGlmICh1cGRhdGVTdG9yYWdlKSB0aGlzLl9zZXRTZXR0aW5nKCdMYXlvdXRUeXBlJywgcG9zKVxyXG5cclxuICAgIHdpbmRvdy5IZWxwZXJzLnNldFBvc2l0aW9uKFxyXG4gICAgICBwb3MgPT09ICdmaXhlZCcgfHwgcG9zID09PSAnZml4ZWQtb2ZmY2FudmFzJyxcclxuICAgICAgcG9zID09PSAnc3RhdGljLW9mZmNhbnZhcycgfHwgcG9zID09PSAnZml4ZWQtb2ZmY2FudmFzJ1xyXG4gICAgKVxyXG5cclxuICAgIGlmICh1cGRhdGVTdG9yYWdlKSB0aGlzLnNldHRpbmdzLm9uU2V0dGluZ3NDaGFuZ2UuY2FsbCh0aGlzLCB0aGlzLnNldHRpbmdzKVxyXG5cclxuICAgIC8vIFBlcmZlY3RzY3JvbGxiYXIgY2hhbmdlIG9uIExheW91dCBjaGFuZ2VcclxuICAgIGxldCBtZW51U2Nyb2xsID0gd2luZG93LkhlbHBlcnMubWVudVBzU2Nyb2xsXHJcbiAgICBjb25zdCBQZXJmZWN0U2Nyb2xsYmFyTGliID0gd2luZG93LlBlcmZlY3RTY3JvbGxiYXJcclxuXHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5sYXlvdXRUeXBlID09PSAnZml4ZWQnIHx8IHRoaXMuc2V0dGluZ3MubGF5b3V0VHlwZSA9PT0gJ2ZpeGVkLW9mZmNhbnZhcycpIHtcclxuICAgICAgLy8gU2V0IHBlcmZlY3RzY3JvbGxiYXIgd2hlZWxQcm9wYWdhdGlvbiBmYWxzZSBmb3IgZml4ZWQgbGF5b3V0XHJcbiAgICAgIGlmIChQZXJmZWN0U2Nyb2xsYmFyTGliICYmIG1lbnVTY3JvbGwpIHtcclxuICAgICAgICB3aW5kb3cuSGVscGVycy5tZW51UHNTY3JvbGwuZGVzdHJveSgpXHJcbiAgICAgICAgbWVudVNjcm9sbCA9IG5ldyBQZXJmZWN0U2Nyb2xsYmFyTGliKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5tZW51LWlubmVyJyksIHtcclxuICAgICAgICAgIHN1cHByZXNzU2Nyb2xsWDogdHJ1ZSxcclxuICAgICAgICAgIHdoZWVsUHJvcGFnYXRpb246IGZhbHNlXHJcbiAgICAgICAgfSlcclxuICAgICAgICB3aW5kb3cuSGVscGVycy5tZW51UHNTY3JvbGwgPSBtZW51U2Nyb2xsXHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAobWVudVNjcm9sbCkge1xyXG4gICAgICAvLyBEZXN0cm95IHBlcmZlY3RzY3JvbGxiYXIgZm9yIHN0YXRpYyBsYXlvdXRcclxuICAgICAgd2luZG93LkhlbHBlcnMubWVudVBzU2Nyb2xsLmRlc3Ryb3koKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0TGF5b3V0TWVudUZsaXBwZWQoZmxpcHBlZCwgdXBkYXRlU3RvcmFnZSA9IHRydWUpIHtcclxuICAgIGlmICghdGhpcy5faGFzQ29udHJvbHMoJ2xheW91dE1lbnVGbGlwcGVkJykpIHJldHVyblxyXG4gICAgdGhpcy5zZXR0aW5ncy5sYXlvdXRNZW51RmxpcHBlZCA9IGZsaXBwZWRcclxuICAgIGlmICh1cGRhdGVTdG9yYWdlKSB0aGlzLl9zZXRTZXR0aW5nKCdNZW51RmxpcHBlZCcsIGZsaXBwZWQpXHJcblxyXG4gICAgd2luZG93LkhlbHBlcnMuc2V0RmxpcHBlZChmbGlwcGVkKVxyXG5cclxuICAgIGlmICh1cGRhdGVTdG9yYWdlKSB0aGlzLnNldHRpbmdzLm9uU2V0dGluZ3NDaGFuZ2UuY2FsbCh0aGlzLCB0aGlzLnNldHRpbmdzKVxyXG4gIH1cclxuXHJcbiAgc2V0RHJvcGRvd25PbkhvdmVyKG9wZW4sIHVwZGF0ZVN0b3JhZ2UgPSB0cnVlKSB7XHJcbiAgICBpZiAoIXRoaXMuX2hhc0NvbnRyb2xzKCdzaG93RHJvcGRvd25PbkhvdmVyJykpIHJldHVyblxyXG4gICAgdGhpcy5zZXR0aW5ncy5zaG93RHJvcGRvd25PbkhvdmVyID0gb3BlblxyXG4gICAgaWYgKHVwZGF0ZVN0b3JhZ2UpIHRoaXMuX3NldFNldHRpbmcoJ1Nob3dEcm9wZG93bk9uSG92ZXInLCBvcGVuKVxyXG5cclxuICAgIGlmICh3aW5kb3cuSGVscGVycy5tYWluTWVudSkge1xyXG4gICAgICB3aW5kb3cuSGVscGVycy5tYWluTWVudS5kZXN0cm95KClcclxuICAgICAgY29uZmlnLnNob3dEcm9wZG93bk9uSG92ZXIgPSBvcGVuXHJcblxyXG4gICAgICBjb25zdCB7IE1lbnUgfSA9IHdpbmRvd1xyXG5cclxuICAgICAgd2luZG93LkhlbHBlcnMubWFpbk1lbnUgPSBuZXcgTWVudShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5b3V0LW1lbnUnKSwge1xyXG4gICAgICAgIG9yaWVudGF0aW9uOiAnaG9yaXpvbnRhbCcsXHJcbiAgICAgICAgY2xvc2VDaGlsZHJlbjogdHJ1ZSxcclxuICAgICAgICBzaG93RHJvcGRvd25PbkhvdmVyOiBjb25maWcuc2hvd0Ryb3Bkb3duT25Ib3ZlclxyXG4gICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh1cGRhdGVTdG9yYWdlKSB0aGlzLnNldHRpbmdzLm9uU2V0dGluZ3NDaGFuZ2UuY2FsbCh0aGlzLCB0aGlzLnNldHRpbmdzKVxyXG4gIH1cclxuXHJcbiAgc2V0TGF5b3V0TmF2YmFyRml4ZWQoZml4ZWQsIHVwZGF0ZVN0b3JhZ2UgPSB0cnVlKSB7XHJcbiAgICBpZiAoIXRoaXMuX2hhc0NvbnRyb2xzKCdsYXlvdXROYXZiYXJGaXhlZCcpKSByZXR1cm5cclxuICAgIHRoaXMuc2V0dGluZ3MubGF5b3V0TmF2YmFyRml4ZWQgPSBmaXhlZFxyXG4gICAgaWYgKHVwZGF0ZVN0b3JhZ2UpIHRoaXMuX3NldFNldHRpbmcoJ0ZpeGVkTmF2YmFyJywgZml4ZWQpXHJcblxyXG4gICAgd2luZG93LkhlbHBlcnMuc2V0TmF2YmFyRml4ZWQoZml4ZWQpXHJcblxyXG4gICAgaWYgKHVwZGF0ZVN0b3JhZ2UpIHRoaXMuc2V0dGluZ3Mub25TZXR0aW5nc0NoYW5nZS5jYWxsKHRoaXMsIHRoaXMuc2V0dGluZ3MpXHJcbiAgfVxyXG5cclxuICBzZXRMYXlvdXRGb290ZXJGaXhlZChmaXhlZCwgdXBkYXRlU3RvcmFnZSA9IHRydWUpIHtcclxuICAgIGlmICghdGhpcy5faGFzQ29udHJvbHMoJ2xheW91dEZvb3RlckZpeGVkJykpIHJldHVyblxyXG4gICAgdGhpcy5zZXR0aW5ncy5sYXlvdXRGb290ZXJGaXhlZCA9IGZpeGVkXHJcbiAgICBpZiAodXBkYXRlU3RvcmFnZSkgdGhpcy5fc2V0U2V0dGluZygnRml4ZWRGb290ZXInLCBmaXhlZClcclxuXHJcbiAgICB3aW5kb3cuSGVscGVycy5zZXRGb290ZXJGaXhlZChmaXhlZClcclxuXHJcbiAgICBpZiAodXBkYXRlU3RvcmFnZSkgdGhpcy5zZXR0aW5ncy5vblNldHRpbmdzQ2hhbmdlLmNhbGwodGhpcywgdGhpcy5zZXR0aW5ncylcclxuICB9XHJcblxyXG4gIHNldExhbmcobGFuZywgZm9yY2UgPSBmYWxzZSkge1xyXG4gICAgaWYgKGxhbmcgPT09IHRoaXMuc2V0dGluZ3MubGFuZyAmJiAhZm9yY2UpIHJldHVyblxyXG4gICAgaWYgKCFUZW1wbGF0ZUN1c3RvbWl6ZXIuTEFOR1VBR0VTW2xhbmddKSB0aHJvdyBuZXcgRXJyb3IoYExhbmd1YWdlIFwiJHtsYW5nfVwiIG5vdCBmb3VuZCFgKVxyXG5cclxuICAgIGNvbnN0IHQgPSBUZW1wbGF0ZUN1c3RvbWl6ZXIuTEFOR1VBR0VTW2xhbmddXHJcblxyXG4gICAgO1tcclxuICAgICAgJ3BhbmVsX2hlYWRlcicsXHJcbiAgICAgICdwYW5lbF9zdWJfaGVhZGVyJyxcclxuICAgICAgJ3RoZW1pbmdfaGVhZGVyJyxcclxuICAgICAgJ3RoZW1lX2hlYWRlcicsXHJcbiAgICAgICdzdHlsZV9sYWJlbCcsXHJcbiAgICAgICdzdHlsZV9zd2l0Y2hfbGlnaHQnLFxyXG4gICAgICAnc3R5bGVfc3dpdGNoX2RhcmsnLFxyXG4gICAgICAnbGF5b3V0X2hlYWRlcicsXHJcbiAgICAgICdsYXlvdXRfbGFiZWwnLFxyXG4gICAgICAnbGF5b3V0X3N0YXRpYycsXHJcbiAgICAgICdsYXlvdXRfb2ZmY2FudmFzJyxcclxuICAgICAgJ2xheW91dF9maXhlZCcsXHJcbiAgICAgICdsYXlvdXRfZml4ZWRfb2ZmY2FudmFzJyxcclxuICAgICAgJ2xheW91dF9mbGlwcGVkX2xhYmVsJyxcclxuICAgICAgJ2xheW91dF9kZF9vcGVuX2xhYmVsJyxcclxuICAgICAgJ2xheW91dF9uYXZiYXJfbGFiZWwnLFxyXG4gICAgICAnbGF5b3V0X2Zvb3Rlcl9sYWJlbCcsXHJcbiAgICAgICdtaXNjX2hlYWRlcicsXHJcbiAgICAgICd0aGVtZV9sYWJlbCcsXHJcbiAgICAgICdydGxfbGFiZWwnXHJcbiAgICBdLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgY29uc3QgZWwgPSB0aGlzLmNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKGAudGVtcGxhdGUtY3VzdG9taXplci10LSR7a2V5fWApXHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtZXhwcmVzc2lvbnNcclxuICAgICAgZWwgJiYgKGVsLnRleHRDb250ZW50ID0gdFtrZXldKVxyXG4gICAgfSlcclxuXHJcbiAgICBjb25zdCB0dCA9IHQudGhlbWVzIHx8IHt9XHJcbiAgICBjb25zdCB0aGVtZXMgPSB0aGlzLmNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKCcudGVtcGxhdGUtY3VzdG9taXplci10aGVtZS1pdGVtJykgfHwgW11cclxuXHJcbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IHRoZW1lcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcclxuICAgICAgY29uc3QgdGhlbWVOYW1lID0gdGhlbWVzW2ldLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9XCJyYWRpb1wiXScpLnZhbHVlXHJcbiAgICAgIHRoZW1lc1tpXS5xdWVyeVNlbGVjdG9yKCcudGVtcGxhdGUtY3VzdG9taXplci10aGVtZS1uYW1lJykudGV4dENvbnRlbnQgPVxyXG4gICAgICAgIHR0W3RoZW1lTmFtZV0gfHwgdGhpcy5fZ2V0VGhlbWVCeU5hbWUodGhlbWVOYW1lKS50aXRsZVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2V0dGluZ3MubGFuZyA9IGxhbmdcclxuICB9XHJcblxyXG4gIC8vIFVwZGF0ZSB0aGVtZSBzZXR0aW5ncyBjb250cm9sXHJcbiAgdXBkYXRlKCkge1xyXG4gICAgaWYgKHRoaXMuX3NzcikgcmV0dXJuXHJcblxyXG4gICAgY29uc3QgaGFzTmF2YmFyID0gISFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubGF5b3V0LW5hdmJhcicpXHJcbiAgICBjb25zdCBoYXNNZW51ID0gISFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubGF5b3V0LW1lbnUnKVxyXG4gICAgY29uc3QgaGFzSG9yaXpvbnRhbE1lbnUgPSAhIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5sYXlvdXQtbWVudS1ob3Jpem9udGFsLm1lbnUsIC5sYXlvdXQtbWVudS1ob3Jpem9udGFsIC5tZW51JylcclxuICAgIGNvbnN0IGlzTGF5b3V0MSA9ICEhZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmxheW91dC13cmFwcGVyLmxheW91dC1uYXZiYXItZnVsbCcpXHJcbiAgICBjb25zdCBoYXNGb290ZXIgPSAhIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jb250ZW50LWZvb3RlcicpXHJcblxyXG4gICAgaWYgKHRoaXMuX2NvbnRyb2xzLmxheW91dE1lbnVGbGlwcGVkKSB7XHJcbiAgICAgIGlmICghaGFzTWVudSkge1xyXG4gICAgICAgIHRoaXMuX2NvbnRyb2xzLmxheW91dE1lbnVGbGlwcGVkLnNldEF0dHJpYnV0ZSgnZGlzYWJsZWQnLCAnZGlzYWJsZWQnKVxyXG4gICAgICAgIHRoaXMuX2NvbnRyb2xzLmxheW91dE1lbnVGbGlwcGVkLmNsYXNzTGlzdC5hZGQoJ2Rpc2FibGVkJylcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLl9jb250cm9scy5sYXlvdXRNZW51RmxpcHBlZC5yZW1vdmVBdHRyaWJ1dGUoJ2Rpc2FibGVkJylcclxuICAgICAgICB0aGlzLl9jb250cm9scy5sYXlvdXRNZW51RmxpcHBlZC5jbGFzc0xpc3QucmVtb3ZlKCdkaXNhYmxlZCcpXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5fY29udHJvbHMuc2hvd0Ryb3Bkb3duT25Ib3Zlcikge1xyXG4gICAgICBpZiAoaGFzTWVudSkge1xyXG4gICAgICAgIHRoaXMuX2NvbnRyb2xzLnNob3dEcm9wZG93bk9uSG92ZXIuc2V0QXR0cmlidXRlKCdkaXNhYmxlZCcsICdkaXNhYmxlZCcpXHJcbiAgICAgICAgdGhpcy5fY29udHJvbHMuc2hvd0Ryb3Bkb3duT25Ib3Zlci5jbGFzc0xpc3QuYWRkKCdkaXNhYmxlZCcpXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fY29udHJvbHMuc2hvd0Ryb3Bkb3duT25Ib3Zlci5yZW1vdmVBdHRyaWJ1dGUoJ2Rpc2FibGVkJylcclxuICAgICAgICB0aGlzLl9jb250cm9scy5zaG93RHJvcGRvd25PbkhvdmVyLmNsYXNzTGlzdC5yZW1vdmUoJ2Rpc2FibGVkJylcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLl9jb250cm9scy5sYXlvdXROYXZiYXJGaXhlZCkge1xyXG4gICAgICBpZiAoIWhhc05hdmJhcikge1xyXG4gICAgICAgIHRoaXMuX2NvbnRyb2xzLmxheW91dE5hdmJhckZpeGVkLnNldEF0dHJpYnV0ZSgnZGlzYWJsZWQnLCAnZGlzYWJsZWQnKVxyXG4gICAgICAgIHRoaXMuX2NvbnRyb2xzLmxheW91dE5hdmJhckZpeGVkVy5jbGFzc0xpc3QuYWRkKCdkaXNhYmxlZCcpXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fY29udHJvbHMubGF5b3V0TmF2YmFyRml4ZWQucmVtb3ZlQXR0cmlidXRlKCdkaXNhYmxlZCcpXHJcbiAgICAgICAgdGhpcy5fY29udHJvbHMubGF5b3V0TmF2YmFyRml4ZWRXLmNsYXNzTGlzdC5yZW1vdmUoJ2Rpc2FibGVkJylcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gIEhvcml6b250YWwgbWVudSBmaXhlZCBsYXlvdXQgLSBkaXNhYmxlZCBmaXhlZCBuYXZiYXIgc3dpdGNoXHJcbiAgICAgIGlmIChoYXNIb3Jpem9udGFsTWVudSAmJiBoYXNOYXZiYXIgJiYgdGhpcy5zZXR0aW5ncy5sYXlvdXRUeXBlID09ICdmaXhlZCcpIHtcclxuICAgICAgICB0aGlzLl9jb250cm9scy5sYXlvdXROYXZiYXJGaXhlZC5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJylcclxuICAgICAgICB0aGlzLl9jb250cm9scy5sYXlvdXROYXZiYXJGaXhlZFcuY2xhc3NMaXN0LmFkZCgnZGlzYWJsZWQnKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuX2NvbnRyb2xzLmxheW91dEZvb3RlckZpeGVkKSB7XHJcbiAgICAgIGlmICghaGFzRm9vdGVyKSB7XHJcbiAgICAgICAgdGhpcy5fY29udHJvbHMubGF5b3V0Rm9vdGVyRml4ZWQuc2V0QXR0cmlidXRlKCdkaXNhYmxlZCcsICdkaXNhYmxlZCcpXHJcbiAgICAgICAgdGhpcy5fY29udHJvbHMubGF5b3V0Rm9vdGVyRml4ZWRXLmNsYXNzTGlzdC5hZGQoJ2Rpc2FibGVkJylcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLl9jb250cm9scy5sYXlvdXRGb290ZXJGaXhlZC5yZW1vdmVBdHRyaWJ1dGUoJ2Rpc2FibGVkJylcclxuICAgICAgICB0aGlzLl9jb250cm9scy5sYXlvdXRGb290ZXJGaXhlZFcuY2xhc3NMaXN0LnJlbW92ZSgnZGlzYWJsZWQnKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuX2NvbnRyb2xzLmxheW91dFR5cGUpIHtcclxuICAgICAgLy8gPyBVbmNvbW1lbnQgSWYgdXNpbmcgb2ZmY2FudmFzIGxheW91dFxyXG4gICAgICAvKlxyXG4gICAgICBpZiAoIWhhc01lbnUpIHtcclxuICAgICAgICB0aGlzLl9jb250cm9scy5sYXlvdXRUeXBlLnF1ZXJ5U2VsZWN0b3IoJ1t2YWx1ZT1cInN0YXRpYy1vZmZjYW52YXNcIl0nKS5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJylcclxuICAgICAgICB0aGlzLl9jb250cm9scy5sYXlvdXRUeXBlLnF1ZXJ5U2VsZWN0b3IoJ1t2YWx1ZT1cImZpeGVkLW9mZmNhbnZhc1wiXScpLnNldEF0dHJpYnV0ZSgnZGlzYWJsZWQnLCAnZGlzYWJsZWQnKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuX2NvbnRyb2xzLmxheW91dFR5cGUucXVlcnlTZWxlY3RvcignW3ZhbHVlPVwic3RhdGljLW9mZmNhbnZhc1wiXScpLnJlbW92ZUF0dHJpYnV0ZSgnZGlzYWJsZWQnKVxyXG4gICAgICAgIHRoaXMuX2NvbnRyb2xzLmxheW91dFR5cGUucXVlcnlTZWxlY3RvcignW3ZhbHVlPVwiZml4ZWQtb2ZmY2FudmFzXCJdJykucmVtb3ZlQXR0cmlidXRlKCdkaXNhYmxlZCcpXHJcbiAgICAgIH1cclxuICAgICAgKi9cclxuXHJcbiAgICAgIC8vIERpc2FibGUgbWVudSBsYXlvdXRzIG9wdGlvbnMgaWYgbWVudSAodmVydGljYWwgb3IgaG9yaXpvbnRhbCkgaXMgbm90IHRoZXJlXHJcbiAgICAgIC8vIGlmICgoIWhhc05hdmJhciAmJiAhaGFzTWVudSkgfHwgKCFoYXNNZW51ICYmICFpc0xheW91dDEpKSB7XHJcbiAgICAgIGlmIChoYXNNZW51IHx8IGhhc0hvcml6b250YWxNZW51KSB7XHJcbiAgICAgICAgLy8gKFVwZGF0ZWQgY29uZGl0aW9uKVxyXG4gICAgICAgIHRoaXMuX2NvbnRyb2xzLmxheW91dFR5cGUucmVtb3ZlQXR0cmlidXRlKCdkaXNhYmxlZCcpXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fY29udHJvbHMubGF5b3V0VHlwZS5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJylcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gQ2xlYXIgbG9jYWwgc3RvcmFnZVxyXG4gIGNsZWFyTG9jYWxTdG9yYWdlKCkge1xyXG4gICAgaWYgKHRoaXMuX3NzcikgcmV0dXJuXHJcblxyXG4gICAgdGhpcy5fc2V0U2V0dGluZygnVGhlbWUnLCAnJylcclxuICAgIHRoaXMuX3NldFNldHRpbmcoJ1J0bCcsICcnKVxyXG4gICAgdGhpcy5fc2V0U2V0dGluZygnU3R5bGUnLCAnJylcclxuICAgIHRoaXMuX3NldFNldHRpbmcoJ01lbnVGbGlwcGVkJywgJycpXHJcbiAgICB0aGlzLl9zZXRTZXR0aW5nKCdGaXhlZE5hdmJhcicsICcnKVxyXG4gICAgdGhpcy5fc2V0U2V0dGluZygnRml4ZWRGb290ZXInLCAnJylcclxuICAgIHRoaXMuX3NldFNldHRpbmcoJ0xheW91dFR5cGUnLCAnJylcclxuICB9XHJcblxyXG4gIC8vIENsZWFyIGxvY2FsIHN0b3JhZ2VcclxuICBkZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMuX3NzcikgcmV0dXJuXHJcblxyXG4gICAgdGhpcy5fY2xlYW51cCgpXHJcblxyXG4gICAgdGhpcy5zZXR0aW5ncyA9IG51bGxcclxuICAgIHRoaXMuY29udGFpbmVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5jb250YWluZXIpXHJcbiAgICB0aGlzLmNvbnRhaW5lciA9IG51bGxcclxuICB9XHJcblxyXG4gIF9sb2FkU2V0dGluZ3MoKSB7XHJcbiAgICAvLyBHZXQgc2V0dGluZ3NcclxuXHJcbiAgICAvLyBjb25zdCBjbCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3Q7XHJcbiAgICBjb25zdCBydGwgPSB0aGlzLl9nZXRTZXR0aW5nKCdSdGwnKVxyXG4gICAgY29uc3Qgc3R5bGUgPSB0aGlzLl9nZXRTZXR0aW5nKCdTdHlsZScpXHJcbiAgICBjb25zdCBjb2xsYXBzZWRNZW51ID0gdGhpcy5fZ2V0U2V0dGluZygnTGF5b3V0Q29sbGFwc2VkJykgLy8gVmFsdWUgd2lsbCBiZSBzZXQgZnJvbSBtYWluLmpzXHJcbiAgICBjb25zdCBmbGlwcGVkTWVudSA9IHRoaXMuX2dldFNldHRpbmcoJ0xheW91dE1lbnVGbGlwcGVkJylcclxuICAgIGNvbnN0IGRyb3Bkb3duT25Ib3ZlciA9IHRoaXMuX2dldFNldHRpbmcoJ1Nob3dEcm9wZG93bk9uSG92ZXInKSAvLyBWYWx1ZSB3aWxsIGJlIHNldCBmcm9tIG1haW4uanNcclxuICAgIGNvbnN0IGZpeGVkTmF2YmFyID0gdGhpcy5fZ2V0U2V0dGluZygnRml4ZWROYXZiYXInKVxyXG4gICAgY29uc3QgZml4ZWRGb290ZXIgPSB0aGlzLl9nZXRTZXR0aW5nKCdGaXhlZEZvb3RlcicpXHJcbiAgICBjb25zdCBsVHlwZSA9IHRoaXMuX2dldFNldHRpbmcoJ0xheW91dFR5cGUnKVxyXG4gICAgbGV0IHR5cGVcclxuXHJcbiAgICBpZiAobFR5cGUgIT09ICcnICYmIFsnc3RhdGljJywgJ3N0YXRpYy1vZmZjYW52YXMnLCAnZml4ZWQnLCAnZml4ZWQtb2ZmY2FudmFzJ10uaW5kZXhPZihsVHlwZSkgIT09IC0xKSB7XHJcbiAgICAgIHR5cGUgPSBsVHlwZVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdHlwZSA9IHRoaXMuc2V0dGluZ3MuZGVmYXVsdExheW91dFR5cGVcclxuICAgIH1cclxuICAgIHRoaXMuc2V0dGluZ3MubGF5b3V0VHlwZSA9IHR5cGVcclxuXHJcbiAgICAvLyAhIFNldCBzZXR0aW5ncyBieSBmb2xsb3dpbmcgcHJpb3JpdHk6IExvY2FsIFN0b3JhZ2UsIFRoZW1lIENvbmZpZywgSFRNTCBDbGFzc2VzXHJcbiAgICB0aGlzLnNldHRpbmdzLnJ0bCA9IHJ0bCAhPT0gJycgPyBydGwgPT09ICd0cnVlJyA6IHRoaXMuc2V0dGluZ3MuZGVmYXVsdFRleHREaXJcclxuXHJcbiAgICB0aGlzLnNldHRpbmdzLnN0eWxlID0gdGhpcy5zZXR0aW5ncy5zdHlsZXMuaW5kZXhPZihzdHlsZSkgIT09IC0xID8gc3R5bGUgOiB0aGlzLnNldHRpbmdzLmRlZmF1bHRTdHlsZVxyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3Muc3R5bGVzLmluZGV4T2YodGhpcy5zZXR0aW5ncy5zdHlsZSkgPT09IC0xKSB7XHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItZGVzdHJ1Y3R1cmluZ1xyXG4gICAgICB0aGlzLnNldHRpbmdzLnN0eWxlID0gdGhpcy5zZXR0aW5ncy5zdHlsZXNbMF1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNldHRpbmdzLmxheW91dE1lbnUgPSBjb2xsYXBzZWRNZW51ICE9PSAnJyA/IGNvbGxhcHNlZE1lbnUgPT09ICd0cnVlJyA6IHRoaXMuc2V0dGluZ3MuZGVmYXVsdE1lbnVDb2xsYXBzZWRcclxuICAgIHRoaXMuc2V0dGluZ3MubGF5b3V0TWVudUZsaXBwZWQgPSBmbGlwcGVkTWVudSAhPT0gJycgPyBmbGlwcGVkTWVudSA9PT0gJ3RydWUnIDogdGhpcy5zZXR0aW5ncy5kZWZhdWx0TWVudUZsaXBwZWRcclxuICAgIHRoaXMuc2V0dGluZ3Muc2hvd0Ryb3Bkb3duT25Ib3ZlciA9XHJcbiAgICAgIGRyb3Bkb3duT25Ib3ZlciAhPT0gJycgPyBkcm9wZG93bk9uSG92ZXIgPT09ICd0cnVlJyA6IHRoaXMuc2V0dGluZ3MuZGVmYXVsdFNob3dEcm9wZG93bk9uSG92ZXJcclxuICAgIHRoaXMuc2V0dGluZ3MubGF5b3V0TmF2YmFyRml4ZWQgPSBmaXhlZE5hdmJhciAhPT0gJycgPyBmaXhlZE5hdmJhciA9PT0gJ3RydWUnIDogdGhpcy5zZXR0aW5ncy5kZWZhdWx0TmF2YmFyRml4ZWRcclxuICAgIHRoaXMuc2V0dGluZ3MubGF5b3V0Rm9vdGVyRml4ZWQgPSBmaXhlZEZvb3RlciAhPT0gJycgPyBmaXhlZEZvb3RlciA9PT0gJ3RydWUnIDogdGhpcy5zZXR0aW5ncy5kZWZhdWx0Rm9vdGVyRml4ZWRcclxuXHJcbiAgICB0aGlzLnNldHRpbmdzLnRoZW1lID0gdGhpcy5fZ2V0VGhlbWVCeU5hbWUodGhpcy5fZ2V0U2V0dGluZygnVGhlbWUnKSwgdHJ1ZSlcclxuXHJcbiAgICAvLyBGaWx0ZXIgb3B0aW9ucyBkZXBlbmRpbmcgb24gYXZhaWxhYmxlIGNvbnRyb2xzXHJcbiAgICBpZiAoIXRoaXMuX2hhc0NvbnRyb2xzKCdydGwnKSkgdGhpcy5zZXR0aW5ncy5ydGwgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkaXInKSA9PT0gJ3J0bCdcclxuICAgIGlmICghdGhpcy5faGFzQ29udHJvbHMoJ3N0eWxlJykpIHRoaXMuc2V0dGluZ3Muc3R5bGUgPSBjbC5jb250YWlucygnZGFyay1zdHlsZScpID8gJ2RhcmsnIDogJ2xpZ2h0J1xyXG4gICAgaWYgKCF0aGlzLl9oYXNDb250cm9scygnbGF5b3V0VHlwZScpKSB0aGlzLnNldHRpbmdzLmxheW91dFR5cGUgPSBudWxsXHJcbiAgICBpZiAoIXRoaXMuX2hhc0NvbnRyb2xzKCdsYXlvdXRNZW51RmxpcHBlZCcpKSB0aGlzLnNldHRpbmdzLmxheW91dE1lbnVGbGlwcGVkID0gbnVsbFxyXG4gICAgaWYgKCF0aGlzLl9oYXNDb250cm9scygnc2hvd0Ryb3Bkb3duT25Ib3ZlcicpKSB0aGlzLnNldHRpbmdzLnNob3dEcm9wZG93bk9uSG92ZXIgPSBudWxsXHJcbiAgICBpZiAoIXRoaXMuX2hhc0NvbnRyb2xzKCdsYXlvdXROYXZiYXJGaXhlZCcpKSB0aGlzLnNldHRpbmdzLmxheW91dE5hdmJhckZpeGVkID0gbnVsbFxyXG4gICAgaWYgKCF0aGlzLl9oYXNDb250cm9scygnbGF5b3V0Rm9vdGVyRml4ZWQnKSkgdGhpcy5zZXR0aW5ncy5sYXlvdXRGb290ZXJGaXhlZCA9IG51bGxcclxuICAgIGlmICghdGhpcy5faGFzQ29udHJvbHMoJ3RoZW1lcycpKSB0aGlzLnNldHRpbmdzLnRoZW1lID0gbnVsbFxyXG4gIH1cclxuXHJcbiAgLy8gU2V0dXAgdGhlbWUgc2V0dGluZ3MgY29udHJvbHMgYW5kIGV2ZW50c1xyXG4gIF9zZXR1cChfY29udGFpbmVyID0gZG9jdW1lbnQpIHtcclxuICAgIHRoaXMuX2NsZWFudXAoKVxyXG4gICAgdGhpcy5jb250YWluZXIgPSB0aGlzLl9nZXRFbGVtZW50RnJvbVN0cmluZyhjdXN0b21pemVyTWFya3VwKVxyXG5cclxuICAgIC8vIEN1c3RvbWl6ZXIgdmlzaWJpbGl0eSBjb25kaXRpb25cclxuICAgIC8vXHJcbiAgICBjb25zdCBjdXN0b21pemVyVyA9IHRoaXMuY29udGFpbmVyXHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5kaXNwbGF5Q3VzdG9taXplcikgY3VzdG9taXplclcuc2V0QXR0cmlidXRlKCdzdHlsZScsICd2aXNpYmlsaXR5OiB2aXNpYmxlJylcclxuICAgIGVsc2UgY3VzdG9taXplclcuc2V0QXR0cmlidXRlKCdzdHlsZScsICd2aXNpYmlsaXR5OiBoaWRkZW4nKVxyXG5cclxuICAgIC8vIE9wZW4gYnRuXHJcbiAgICAvL1xyXG4gICAgY29uc3Qgb3BlbkJ0biA9IHRoaXMuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJy50ZW1wbGF0ZS1jdXN0b21pemVyLW9wZW4tYnRuJylcclxuICAgIGNvbnN0IG9wZW5CdG5DYiA9ICgpID0+IHtcclxuICAgICAgdGhpcy5jb250YWluZXIuY2xhc3NMaXN0LmFkZCgndGVtcGxhdGUtY3VzdG9taXplci1vcGVuJylcclxuICAgICAgdGhpcy51cGRhdGUoKVxyXG5cclxuICAgICAgaWYgKHRoaXMuX3VwZGF0ZUludGVydmFsKSBjbGVhckludGVydmFsKHRoaXMuX3VwZGF0ZUludGVydmFsKVxyXG4gICAgICB0aGlzLl91cGRhdGVJbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICB0aGlzLnVwZGF0ZSgpXHJcbiAgICAgIH0sIDUwMClcclxuICAgIH1cclxuICAgIG9wZW5CdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBvcGVuQnRuQ2IpXHJcbiAgICB0aGlzLl9saXN0ZW5lcnMucHVzaChbb3BlbkJ0biwgJ2NsaWNrJywgb3BlbkJ0bkNiXSlcclxuXHJcbiAgICAvLyBDbG9zZSBidG5cclxuICAgIC8vXHJcblxyXG4gICAgY29uc3QgY2xvc2VCdG4gPSB0aGlzLmNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcudGVtcGxhdGUtY3VzdG9taXplci1jbG9zZS1idG4nKVxyXG4gICAgY29uc3QgY2xvc2VCdG5DYiA9ICgpID0+IHtcclxuICAgICAgdGhpcy5jb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSgndGVtcGxhdGUtY3VzdG9taXplci1vcGVuJylcclxuXHJcbiAgICAgIGlmICh0aGlzLl91cGRhdGVJbnRlcnZhbCkge1xyXG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5fdXBkYXRlSW50ZXJ2YWwpXHJcbiAgICAgICAgdGhpcy5fdXBkYXRlSW50ZXJ2YWwgPSBudWxsXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNsb3NlQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY2xvc2VCdG5DYilcclxuICAgIHRoaXMuX2xpc3RlbmVycy5wdXNoKFtjbG9zZUJ0biwgJ2NsaWNrJywgY2xvc2VCdG5DYl0pXHJcblxyXG4gICAgLy8gUlRMXHJcbiAgICAvL1xyXG5cclxuICAgIGNvbnN0IHJ0bFcgPSB0aGlzLmNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcudGVtcGxhdGUtY3VzdG9taXplci1taXNjJylcclxuICAgIC8vID8gSGlkZSBSVEwgY29udHJvbCBpbiBmb2xsb3dpbmcgMiBjYXNlXHJcbiAgICBpZiAoIXRoaXMuX2hhc0NvbnRyb2xzKCdydGwnKSB8fCAhcnRsU3VwcG9ydCkge1xyXG4gICAgICBydGxXLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQocnRsVylcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHJ0bCA9IHJ0bFcucXVlcnlTZWxlY3RvcignaW5wdXQnKVxyXG5cclxuICAgICAgaWYgKHRoaXMuc2V0dGluZ3MucnRsKSBydGwuc2V0QXR0cmlidXRlKCdjaGVja2VkJywgJ2NoZWNrZWQnKVxyXG5cclxuICAgICAgY29uc3QgcnRsQ2IgPSBlID0+IHtcclxuICAgICAgICB0aGlzLl9sb2FkaW5nU3RhdGUodHJ1ZSlcclxuICAgICAgICB0aGlzLnNldFJ0bChlLnRhcmdldC5jaGVja2VkKVxyXG4gICAgICB9XHJcblxyXG4gICAgICBydGwuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgcnRsQ2IpXHJcbiAgICAgIHRoaXMuX2xpc3RlbmVycy5wdXNoKFtydGwsICdjaGFuZ2UnLCBydGxDYl0pXHJcbiAgICB9XHJcblxyXG4gICAgLy8gU3R5bGVcclxuXHJcbiAgICAvL1xyXG5cclxuICAgIGNvbnN0IHN0eWxlVyA9IHRoaXMuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJy50ZW1wbGF0ZS1jdXN0b21pemVyLXN0eWxlJylcclxuXHJcbiAgICBpZiAoIXRoaXMuX2hhc0NvbnRyb2xzKCdzdHlsZScpKSB7XHJcbiAgICAgIHN0eWxlVy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHN0eWxlVylcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHN0eWxlID0gc3R5bGVXLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JylcclxuXHJcbiAgICAgIGlmICh0aGlzLnNldHRpbmdzLnN0eWxlID09PSAnZGFyaycpIHN0eWxlLnNldEF0dHJpYnV0ZSgnY2hlY2tlZCcsICdjaGVja2VkJylcclxuXHJcbiAgICAgIGNvbnN0IHN0eWxlQ2IgPSBlID0+IHtcclxuICAgICAgICB0aGlzLl9sb2FkaW5nU3RhdGUodHJ1ZSlcclxuICAgICAgICBpZiAoZS50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICAgICAgdGhpcy5zZXRTdHlsZSgnZGFyaycpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc2V0U3R5bGUoJ2xpZ2h0JylcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHN0eWxlLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHN0eWxlQ2IpXHJcbiAgICAgIHRoaXMuX2xpc3RlbmVycy5wdXNoKFtzdHlsZSwgJ2NoYW5nZScsIHN0eWxlQ2JdKVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFRoZW1lXHJcblxyXG4gICAgY29uc3QgdGhlbWVzVyA9IHRoaXMuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJy50ZW1wbGF0ZS1jdXN0b21pemVyLXRoZW1lcycpXHJcblxyXG4gICAgaWYgKCF0aGlzLl9oYXNDb250cm9scygndGhlbWVzJykpIHtcclxuICAgICAgdGhlbWVzVy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoZW1lc1cpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCB0aGVtZXNXSW5uZXIgPSB0aGVtZXNXLnF1ZXJ5U2VsZWN0b3IoJy50ZW1wbGF0ZS1jdXN0b21pemVyLXRoZW1lcy1vcHRpb25zJylcclxuICAgICAgdGhpcy5zZXR0aW5ncy5hdmFpbGFibGVUaGVtZXMuZm9yRWFjaCh0aGVtZSA9PiB7XHJcbiAgICAgICAgY29uc3QgdGhlbWVFbCA9IHRoaXMuX2dldEVsZW1lbnRGcm9tU3RyaW5nKFxyXG4gICAgICAgICAgYDxkaXYgY2xhc3M9XCJjb2wtMTJcIj48ZGl2IGNsYXNzPVwiZm9ybS1jaGVja1wiPjxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwicmFkaW9cIiBuYW1lPVwidGhlbWVSYWRpb3NcIiBpZD1cInRoZW1lUmFkaW9zJHt0aGVtZS5uYW1lfVwiIHZhbHVlPVwiJHt0aGVtZS5uYW1lfVwiPjxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJ0aGVtZVJhZGlvcyR7dGhlbWUubmFtZX1cIj4ke3RoZW1lLnRpdGxlfTwvbGFiZWw+PC9kaXY+PC9kaXY+YFxyXG4gICAgICAgIClcclxuICAgICAgICB0aGVtZXNXSW5uZXIuYXBwZW5kQ2hpbGQodGhlbWVFbClcclxuICAgICAgfSlcclxuXHJcbiAgICAgIHRoZW1lc1dJbm5lci5xdWVyeVNlbGVjdG9yKGBpbnB1dFt2YWx1ZT1cIiR7dGhpcy5zZXR0aW5ncy50aGVtZS5uYW1lfVwiXWApLnNldEF0dHJpYnV0ZSgnY2hlY2tlZCcsICdjaGVja2VkJylcclxuXHJcbiAgICAgIGNvbnN0IHRoZW1lQ2IgPSBlID0+IHtcclxuICAgICAgICBpZiAodGhpcy5fbG9hZGluZykgcmV0dXJuXHJcblxyXG4gICAgICAgIHRoaXMuX2xvYWRpbmcgPSB0cnVlXHJcbiAgICAgICAgdGhpcy5fbG9hZGluZ1N0YXRlKHRydWUsIHRydWUpXHJcblxyXG4gICAgICAgIHRoaXMuc2V0VGhlbWUoZS50YXJnZXQudmFsdWUsIHRydWUsICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuX2xvYWRpbmcgPSBmYWxzZVxyXG4gICAgICAgICAgdGhpcy5fbG9hZGluZ1N0YXRlKGZhbHNlLCB0cnVlKVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoZW1lc1dJbm5lci5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGVtZUNiKVxyXG4gICAgICB0aGlzLl9saXN0ZW5lcnMucHVzaChbdGhlbWVzV0lubmVyLCAnY2hhbmdlJywgdGhlbWVDYl0pXHJcbiAgICB9XHJcbiAgICBjb25zdCB0aGVtaW5nVyA9IHRoaXMuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJy50ZW1wbGF0ZS1jdXN0b21pemVyLXRoZW1pbmcnKVxyXG5cclxuICAgIGlmICghdGhpcy5faGFzQ29udHJvbHMoJ3N0eWxlJykgJiYgIXRoaXMuX2hhc0NvbnRyb2xzKCd0aGVtZXMnKSkge1xyXG4gICAgICB0aGVtaW5nVy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoZW1pbmdXKVxyXG4gICAgfVxyXG5cclxuICAgIC8vIExheW91dCB3cmFwcGVyXHJcbiAgICAvL1xyXG5cclxuICAgIGNvbnN0IGxheW91dFcgPSB0aGlzLmNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcudGVtcGxhdGUtY3VzdG9taXplci1sYXlvdXQnKVxyXG5cclxuICAgIGlmIChcclxuICAgICAgIXRoaXMuX2hhc0NvbnRyb2xzKCdsYXlvdXRUeXBlIGxheW91dE5hdmJhckZpeGVkIGxheW91dEZvb3RlckZpeGVkIGxheW91dE1lbnVGbGlwcGVkIHNob3dEcm9wZG93bk9uSG92ZXInLCB0cnVlKVxyXG4gICAgKSB7XHJcbiAgICAgIGxheW91dFcucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChsYXlvdXRXKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gUG9zaXRpb25cclxuICAgICAgLy9cclxuXHJcbiAgICAgIGNvbnN0IGxheW91dFR5cGVXID0gdGhpcy5jb250YWluZXIucXVlcnlTZWxlY3RvcignLnRlbXBsYXRlLWN1c3RvbWl6ZXItbGF5b3V0VHlwZScpXHJcblxyXG4gICAgICBpZiAoIXRoaXMuX2hhc0NvbnRyb2xzKCdsYXlvdXRUeXBlJykpIHtcclxuICAgICAgICBsYXlvdXRUeXBlVy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGxheW91dFR5cGVXKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuX2NvbnRyb2xzLmxheW91dFR5cGUgPSBsYXlvdXRUeXBlVy5xdWVyeVNlbGVjdG9yKCcudGVtcGxhdGUtY3VzdG9taXplci1sYXlvdXRzLW9wdGlvbnMnKVxyXG5cclxuICAgICAgICAvLyB0aGlzLl9jb250cm9scy5sYXlvdXRUeXBlLnZhbHVlID0gdGhpcy5zZXR0aW5ncy5sYXlvdXRUeXBlXHJcbiAgICAgICAgdGhpcy5fY29udHJvbHMubGF5b3V0VHlwZVxyXG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoYGlucHV0W3ZhbHVlPVwiJHt0aGlzLnNldHRpbmdzLmxheW91dFR5cGV9XCJdYClcclxuICAgICAgICAgIC5zZXRBdHRyaWJ1dGUoJ2NoZWNrZWQnLCAnY2hlY2tlZCcpXHJcblxyXG4gICAgICAgIGNvbnN0IGxheW91dFR5cGVDYiA9IGUgPT4gdGhpcy5zZXRMYXlvdXRUeXBlKGUudGFyZ2V0LnZhbHVlKVxyXG4gICAgICAgIHRoaXMuX2NvbnRyb2xzLmxheW91dFR5cGUuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgbGF5b3V0VHlwZUNiKVxyXG4gICAgICAgIHRoaXMuX2xpc3RlbmVycy5wdXNoKFt0aGlzLl9jb250cm9scy5sYXlvdXRUeXBlLCAnY2hhbmdlJywgbGF5b3V0VHlwZUNiXSlcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gTWVudSBmbGlwcGVkXHJcbiAgICAgIC8vID8gVW5jb21tZW50IElmIG5lZWRlZFxyXG5cclxuICAgICAgLyogdGhpcy5fY29udHJvbHMubGF5b3V0TWVudUZsaXBwZWQgPSB0aGlzLmNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcudGVtcGxhdGUtY3VzdG9taXplci1sYXlvdXRNZW51RmxpcHBlZCcpXHJcblxyXG4gICAgICBpZiAoIXRoaXMuX2hhc0NvbnRyb2xzKCdsYXlvdXRNZW51RmxpcHBlZCcpKSB7XHJcbiAgICAgICAgdGhpcy5fY29udHJvbHMubGF5b3V0TWVudUZsaXBwZWQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLl9jb250cm9scy5sYXlvdXRNZW51RmxpcHBlZClcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLl9jb250cm9scy5sYXlvdXRNZW51RmxpcHBlZCA9IHRoaXMuX2NvbnRyb2xzLmxheW91dE1lbnVGbGlwcGVkLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JylcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MubGF5b3V0TWVudUZsaXBwZWQpIHRoaXMuX2NvbnRyb2xzLmxheW91dE1lbnVGbGlwcGVkLnNldEF0dHJpYnV0ZSgnY2hlY2tlZCcsICdjaGVja2VkJylcclxuXHJcbiAgICAgICAgY29uc3QgbGF5b3V0TWVudUZsaXBwZWQgPSBlID0+IHRoaXMuc2V0TGF5b3V0TWVudUZsaXBwZWQoZS50YXJnZXQuY2hlY2tlZClcclxuICAgICAgICB0aGlzLl9jb250cm9scy5sYXlvdXRNZW51RmxpcHBlZC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBsYXlvdXRNZW51RmxpcHBlZClcclxuICAgICAgICB0aGlzLl9saXN0ZW5lcnMucHVzaChbdGhpcy5fY29udHJvbHMubGF5b3V0TWVudUZsaXBwZWQsICdjaGFuZ2UnLCBsYXlvdXRNZW51RmxpcHBlZF0pXHJcbiAgICAgIH0gKi9cclxuXHJcbiAgICAgIC8vIE1lbnUgb3BlblxyXG4gICAgICAvL1xyXG5cclxuICAgICAgdGhpcy5fY29udHJvbHMuc2hvd0Ryb3Bkb3duT25Ib3ZlciA9IHRoaXMuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJy50ZW1wbGF0ZS1jdXN0b21pemVyLXNob3dEcm9wZG93bk9uSG92ZXInKVxyXG5cclxuICAgICAgaWYgKCF0aGlzLl9oYXNDb250cm9scygnc2hvd0Ryb3Bkb3duT25Ib3ZlcicpKSB7XHJcbiAgICAgICAgdGhpcy5fY29udHJvbHMuc2hvd0Ryb3Bkb3duT25Ib3Zlci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuX2NvbnRyb2xzLnNob3dEcm9wZG93bk9uSG92ZXIpXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fY29udHJvbHMuc2hvd0Ryb3Bkb3duT25Ib3ZlciA9IHRoaXMuX2NvbnRyb2xzLnNob3dEcm9wZG93bk9uSG92ZXIucXVlcnlTZWxlY3RvcignaW5wdXQnKVxyXG5cclxuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5zaG93RHJvcGRvd25PbkhvdmVyKSB0aGlzLl9jb250cm9scy5zaG93RHJvcGRvd25PbkhvdmVyLnNldEF0dHJpYnV0ZSgnY2hlY2tlZCcsICdjaGVja2VkJylcclxuXHJcbiAgICAgICAgY29uc3Qgc2hvd0Ryb3Bkb3duT25Ib3ZlciA9IGUgPT4gdGhpcy5zZXREcm9wZG93bk9uSG92ZXIoZS50YXJnZXQuY2hlY2tlZClcclxuICAgICAgICB0aGlzLl9jb250cm9scy5zaG93RHJvcGRvd25PbkhvdmVyLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHNob3dEcm9wZG93bk9uSG92ZXIpXHJcbiAgICAgICAgdGhpcy5fbGlzdGVuZXJzLnB1c2goW3RoaXMuX2NvbnRyb2xzLnNob3dEcm9wZG93bk9uSG92ZXIsICdjaGFuZ2UnLCBzaG93RHJvcGRvd25PbkhvdmVyXSlcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gTmF2YmFyXHJcbiAgICAgIC8vXHJcblxyXG4gICAgICB0aGlzLl9jb250cm9scy5sYXlvdXROYXZiYXJGaXhlZFcgPSB0aGlzLmNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcudGVtcGxhdGUtY3VzdG9taXplci1sYXlvdXROYXZiYXJGaXhlZCcpXHJcblxyXG4gICAgICBpZiAoIXRoaXMuX2hhc0NvbnRyb2xzKCdsYXlvdXROYXZiYXJGaXhlZCcpKSB7XHJcbiAgICAgICAgdGhpcy5fY29udHJvbHMubGF5b3V0TmF2YmFyRml4ZWRXLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5fY29udHJvbHMubGF5b3V0TmF2YmFyRml4ZWRXKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuX2NvbnRyb2xzLmxheW91dE5hdmJhckZpeGVkID0gdGhpcy5fY29udHJvbHMubGF5b3V0TmF2YmFyRml4ZWRXLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JylcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MubGF5b3V0TmF2YmFyRml4ZWQpIHRoaXMuX2NvbnRyb2xzLmxheW91dE5hdmJhckZpeGVkLnNldEF0dHJpYnV0ZSgnY2hlY2tlZCcsICdjaGVja2VkJylcclxuXHJcbiAgICAgICAgY29uc3QgbGF5b3V0TmF2YmFyRml4ZWRDYiA9IGUgPT4gdGhpcy5zZXRMYXlvdXROYXZiYXJGaXhlZChlLnRhcmdldC5jaGVja2VkKVxyXG4gICAgICAgIHRoaXMuX2NvbnRyb2xzLmxheW91dE5hdmJhckZpeGVkLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGxheW91dE5hdmJhckZpeGVkQ2IpXHJcbiAgICAgICAgdGhpcy5fbGlzdGVuZXJzLnB1c2goW3RoaXMuX2NvbnRyb2xzLmxheW91dE5hdmJhckZpeGVkLCAnY2hhbmdlJywgbGF5b3V0TmF2YmFyRml4ZWRDYl0pXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIEZvb3RlclxyXG4gICAgICAvL1xyXG5cclxuICAgICAgdGhpcy5fY29udHJvbHMubGF5b3V0Rm9vdGVyRml4ZWRXID0gdGhpcy5jb250YWluZXIucXVlcnlTZWxlY3RvcignLnRlbXBsYXRlLWN1c3RvbWl6ZXItbGF5b3V0Rm9vdGVyRml4ZWQnKVxyXG5cclxuICAgICAgaWYgKCF0aGlzLl9oYXNDb250cm9scygnbGF5b3V0Rm9vdGVyRml4ZWQnKSkge1xyXG4gICAgICAgIHRoaXMuX2NvbnRyb2xzLmxheW91dEZvb3RlckZpeGVkVy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuX2NvbnRyb2xzLmxheW91dEZvb3RlckZpeGVkVylcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLl9jb250cm9scy5sYXlvdXRGb290ZXJGaXhlZCA9IHRoaXMuX2NvbnRyb2xzLmxheW91dEZvb3RlckZpeGVkVy5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpXHJcblxyXG4gICAgICAgIGlmICh0aGlzLnNldHRpbmdzLmxheW91dEZvb3RlckZpeGVkKSB0aGlzLl9jb250cm9scy5sYXlvdXRGb290ZXJGaXhlZC5zZXRBdHRyaWJ1dGUoJ2NoZWNrZWQnLCAnY2hlY2tlZCcpXHJcblxyXG4gICAgICAgIGNvbnN0IGxheW91dEZvb3RlckZpeGVkQ2IgPSBlID0+IHRoaXMuc2V0TGF5b3V0Rm9vdGVyRml4ZWQoZS50YXJnZXQuY2hlY2tlZClcclxuICAgICAgICB0aGlzLl9jb250cm9scy5sYXlvdXRGb290ZXJGaXhlZC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBsYXlvdXRGb290ZXJGaXhlZENiKVxyXG4gICAgICAgIHRoaXMuX2xpc3RlbmVycy5wdXNoKFt0aGlzLl9jb250cm9scy5sYXlvdXRGb290ZXJGaXhlZCwgJ2NoYW5nZScsIGxheW91dEZvb3RlckZpeGVkQ2JdKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gU2V0IGxhbmd1YWdlXHJcbiAgICB0aGlzLnNldExhbmcodGhpcy5zZXR0aW5ncy5sYW5nLCB0cnVlKVxyXG5cclxuICAgIC8vIEFwcGVuZCBjb250YWluZXJcclxuICAgIGlmIChfY29udGFpbmVyID09PSBkb2N1bWVudCkge1xyXG4gICAgICBpZiAoX2NvbnRhaW5lci5ib2R5KSB7XHJcbiAgICAgICAgX2NvbnRhaW5lci5ib2R5LmFwcGVuZENoaWxkKHRoaXMuY29udGFpbmVyKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgKCkgPT4gX2NvbnRhaW5lci5ib2R5LmFwcGVuZENoaWxkKHRoaXMuY29udGFpbmVyKSlcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgX2NvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLmNvbnRhaW5lcilcclxuICAgIH1cclxuICB9XHJcblxyXG4gIF9pbml0RGlyZWN0aW9uKCkge1xyXG4gICAgaWYgKHRoaXMuX2hhc0NvbnRyb2xzKCdydGwnKSkgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNldEF0dHJpYnV0ZSgnZGlyJywgdGhpcy5zZXR0aW5ncy5ydGwgPyAncnRsJyA6ICdsdHInKVxyXG4gIH1cclxuXHJcbiAgLy8gSW5pdCB0ZW1wbGF0ZSBzdHlsZXNcclxuICBfaW5pdFN0eWxlKCkge1xyXG4gICAgaWYgKCF0aGlzLl9oYXNDb250cm9scygnc3R5bGUnKSkgcmV0dXJuXHJcblxyXG4gICAgY29uc3QgeyBzdHlsZSB9ID0gdGhpcy5zZXR0aW5nc1xyXG5cclxuICAgIHRoaXMuX2luc2VydFN0eWxlc2hlZXQoXHJcbiAgICAgICd0ZW1wbGF0ZS1jdXN0b21pemVyLWNvcmUtY3NzJyxcclxuICAgICAgdGhpcy5wYXRoUmVzb2x2ZXIoXHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5jc3NQYXRoICtcclxuICAgICAgICAgIHRoaXMuc2V0dGluZ3MuY3NzRmlsZW5hbWVQYXR0ZXJuLnJlcGxhY2UoJyVuYW1lJScsIGBjb3JlJHtzdHlsZSAhPT0gJ2xpZ2h0JyA/IGAtJHtzdHlsZX1gIDogJyd9YClcclxuICAgICAgKVxyXG4gICAgKVxyXG4gICAgLy8gPyBVbmNvbW1lbnQgaWYgbmVlZGVkXHJcbiAgICAvKlxyXG4gICAgdGhpcy5faW5zZXJ0U3R5bGVzaGVldChcclxuICAgICAgJ3RlbXBsYXRlLWN1c3RvbWl6ZXItYm9vdHN0cmFwLWNzcycsXHJcbiAgICAgIHRoaXMucGF0aFJlc29sdmVyKFxyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuY3NzUGF0aCArXHJcbiAgICAgICAgICB0aGlzLnNldHRpbmdzLmNzc0ZpbGVuYW1lUGF0dGVybi5yZXBsYWNlKCclbmFtZSUnLCBgYm9vdHN0cmFwJHtzdHlsZSAhPT0gJ2xpZ2h0JyA/IGAtJHtzdHlsZX1gIDogJyd9YClcclxuICAgICAgKVxyXG4gICAgKVxyXG4gICAgdGhpcy5faW5zZXJ0U3R5bGVzaGVldChcclxuICAgICAgJ3RlbXBsYXRlLWN1c3RvbWl6ZXItYnNleHRlbmRlZC1jc3MnLFxyXG4gICAgICB0aGlzLnBhdGhSZXNvbHZlcihcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmNzc1BhdGggK1xyXG4gICAgICAgICAgdGhpcy5zZXR0aW5ncy5jc3NGaWxlbmFtZVBhdHRlcm4ucmVwbGFjZShcclxuICAgICAgICAgICAgJyVuYW1lJScsXHJcbiAgICAgICAgICAgIGBib290c3RyYXAtZXh0ZW5kZWQke3N0eWxlICE9PSAnbGlnaHQnID8gYC0ke3N0eWxlfWAgOiAnJ31gXHJcbiAgICAgICAgICApXHJcbiAgICAgIClcclxuICAgIClcclxuICAgIHRoaXMuX2luc2VydFN0eWxlc2hlZXQoXHJcbiAgICAgICd0ZW1wbGF0ZS1jdXN0b21pemVyLWNvbXBvbmVudHMtY3NzJyxcclxuICAgICAgdGhpcy5wYXRoUmVzb2x2ZXIoXHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5jc3NQYXRoICtcclxuICAgICAgICAgIHRoaXMuc2V0dGluZ3MuY3NzRmlsZW5hbWVQYXR0ZXJuLnJlcGxhY2UoJyVuYW1lJScsIGBjb21wb25lbnRzJHtzdHlsZSAhPT0gJ2xpZ2h0JyA/IGAtJHtzdHlsZX1gIDogJyd9YClcclxuICAgICAgKVxyXG4gICAgKVxyXG4gICAgdGhpcy5faW5zZXJ0U3R5bGVzaGVldChcclxuICAgICAgJ3RlbXBsYXRlLWN1c3RvbWl6ZXItY29sb3JzLWNzcycsXHJcbiAgICAgIHRoaXMucGF0aFJlc29sdmVyKFxyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuY3NzUGF0aCArXHJcbiAgICAgICAgICB0aGlzLnNldHRpbmdzLmNzc0ZpbGVuYW1lUGF0dGVybi5yZXBsYWNlKCclbmFtZSUnLCBgY29sb3JzJHtzdHlsZSAhPT0gJ2xpZ2h0JyA/IGAtJHtzdHlsZX1gIDogJyd9YClcclxuICAgICAgKVxyXG4gICAgKVxyXG4gICAgKi9cclxuXHJcbiAgICBjb25zdCBjbGFzc2VzVG9SZW1vdmUgPSBzdHlsZSA9PT0gJ2xpZ2h0JyA/IFsnZGFyay1zdHlsZSddIDogWydsaWdodC1zdHlsZSddXHJcbiAgICBjbGFzc2VzVG9SZW1vdmUuZm9yRWFjaChjbHMgPT4ge1xyXG4gICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShjbHMpXHJcbiAgICB9KVxyXG5cclxuICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKGAke3N0eWxlfS1zdHlsZWApXHJcbiAgfVxyXG5cclxuICAvLyBJbml0IHRoZW1lIHN0eWxlXHJcbiAgX2luaXRUaGVtZSgpIHtcclxuICAgIGlmICh0aGlzLl9oYXNDb250cm9scygndGhlbWVzJykpIHtcclxuICAgICAgdGhpcy5faW5zZXJ0U3R5bGVzaGVldChcclxuICAgICAgICAndGVtcGxhdGUtY3VzdG9taXplci10aGVtZS1jc3MnLFxyXG4gICAgICAgIHRoaXMucGF0aFJlc29sdmVyKFxyXG4gICAgICAgICAgdGhpcy5zZXR0aW5ncy50aGVtZXNQYXRoICtcclxuICAgICAgICAgICAgdGhpcy5zZXR0aW5ncy5jc3NGaWxlbmFtZVBhdHRlcm4ucmVwbGFjZShcclxuICAgICAgICAgICAgICAnJW5hbWUlJyxcclxuICAgICAgICAgICAgICB0aGlzLnNldHRpbmdzLnRoZW1lLm5hbWUgKyAodGhpcy5zZXR0aW5ncy5zdHlsZSAhPT0gJ2xpZ2h0JyA/IGAtJHt0aGlzLnNldHRpbmdzLnN0eWxlfWAgOiAnJylcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgIClcclxuICAgICAgKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gSWYgdGhlbWUgY29udHJvbCBpcyBub3QgZW5hYmxlZCwgZ2V0IHRoZSBjdXJyZW50IHRoZW1lIGZyb20gbG9jYWxzdG9yYWdlIGVsc2UgZGlzcGxheSBkZWZhdWx0IHRoZW1lXHJcbiAgICAgIGNvbnN0IHRoZW1lID0gdGhpcy5fZ2V0U2V0dGluZygnVGhlbWUnKVxyXG4gICAgICB0aGlzLl9pbnNlcnRTdHlsZXNoZWV0KFxyXG4gICAgICAgICd0ZW1wbGF0ZS1jdXN0b21pemVyLXRoZW1lLWNzcycsXHJcbiAgICAgICAgdGhpcy5wYXRoUmVzb2x2ZXIoXHJcbiAgICAgICAgICB0aGlzLnNldHRpbmdzLnRoZW1lc1BhdGggK1xyXG4gICAgICAgICAgICB0aGlzLnNldHRpbmdzLmNzc0ZpbGVuYW1lUGF0dGVybi5yZXBsYWNlKFxyXG4gICAgICAgICAgICAgICclbmFtZSUnLFxyXG4gICAgICAgICAgICAgIHRoZW1lID8gdGhlbWUgOiAndGhlbWUtZGVmYXVsdCcgKyAodGhpcy5zZXR0aW5ncy5zdHlsZSAhPT0gJ2xpZ2h0JyA/IGAtJHt0aGlzLnNldHRpbmdzLnN0eWxlfWAgOiAnJylcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgIClcclxuICAgICAgKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgX2luc2VydFN0eWxlc2hlZXQoY2xhc3NOYW1lLCBocmVmKSB7XHJcbiAgICBjb25zdCBjdXJMaW5rID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLiR7Y2xhc3NOYW1lfWApXHJcblxyXG4gICAgaWYgKHR5cGVvZiBkb2N1bWVudC5kb2N1bWVudE1vZGUgPT09ICdudW1iZXInICYmIGRvY3VtZW50LmRvY3VtZW50TW9kZSA8IDExKSB7XHJcbiAgICAgIGlmICghY3VyTGluaykgcmV0dXJuXHJcbiAgICAgIGlmIChocmVmID09PSBjdXJMaW5rLmdldEF0dHJpYnV0ZSgnaHJlZicpKSByZXR1cm5cclxuXHJcbiAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJylcclxuXHJcbiAgICAgIGxpbmsuc2V0QXR0cmlidXRlKCdyZWwnLCAnc3R5bGVzaGVldCcpXHJcbiAgICAgIGxpbmsuc2V0QXR0cmlidXRlKCd0eXBlJywgJ3RleHQvY3NzJylcclxuICAgICAgbGluay5jbGFzc05hbWUgPSBjbGFzc05hbWVcclxuICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCBocmVmKVxyXG5cclxuICAgICAgY3VyTGluay5wYXJlbnROb2RlLmluc2VydEJlZm9yZShsaW5rLCBjdXJMaW5rLm5leHRTaWJsaW5nKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZG9jdW1lbnQud3JpdGUoYDxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIiB0eXBlPVwidGV4dC9jc3NcIiBocmVmPVwiJHtocmVmfVwiIGNsYXNzPVwiJHtjbGFzc05hbWV9XCI+YClcclxuICAgIH1cclxuXHJcbiAgICBjdXJMaW5rLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoY3VyTGluaylcclxuICB9XHJcblxyXG4gIF9sb2FkU3R5bGVzaGVldHMoc3R5bGVzaGVldHMsIGNiKSB7XHJcbiAgICBjb25zdCBwYXRocyA9IE9iamVjdC5rZXlzKHN0eWxlc2hlZXRzKVxyXG4gICAgY29uc3QgY291bnQgPSBwYXRocy5sZW5ndGhcclxuICAgIGxldCBsb2FkZWQgPSAwXHJcblxyXG4gICAgZnVuY3Rpb24gbG9hZFN0eWxlc2hlZXQocGF0aCwgY3VyTGluaywgX2NiKSB7XHJcbiAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJylcclxuXHJcbiAgICAgIGxpbmsuc2V0QXR0cmlidXRlKCdocmVmJywgcGF0aClcclxuICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ3JlbCcsICdzdHlsZXNoZWV0JylcclxuICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dC9jc3MnKVxyXG4gICAgICBsaW5rLmNsYXNzTmFtZSA9IGN1ckxpbmsuY2xhc3NOYW1lXHJcblxyXG4gICAgICBjb25zdCBzaGVldCA9ICdzaGVldCcgaW4gbGluayA/ICdzaGVldCcgOiAnc3R5bGVTaGVldCdcclxuICAgICAgY29uc3QgY3NzUnVsZXMgPSAnc2hlZXQnIGluIGxpbmsgPyAnY3NzUnVsZXMnIDogJ3J1bGVzJ1xyXG5cclxuICAgICAgbGV0IGludGVydmFsSWRcclxuXHJcbiAgICAgIGNvbnN0IHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJZClcclxuICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKVxyXG4gICAgICAgIGN1ckxpbmsucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChsaW5rKVxyXG4gICAgICAgIF9jYihmYWxzZSwgcGF0aClcclxuICAgICAgfSwgMTUwMDApXHJcblxyXG4gICAgICBpbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICBpZiAobGlua1tzaGVldF0gJiYgbGlua1tzaGVldF1bY3NzUnVsZXNdLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsSWQpXHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpXHJcbiAgICAgICAgICAgIGN1ckxpbmsucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjdXJMaW5rKVxyXG4gICAgICAgICAgICBfY2IodHJ1ZSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAvLyBDYXRjaCBlcnJvclxyXG4gICAgICAgIH1cclxuICAgICAgfSwgMTApXHJcblxyXG4gICAgICBjdXJMaW5rLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGxpbmssIGN1ckxpbmsubmV4dFNpYmxpbmcpXHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gc3R5bGVzaGVldENhbGxCYWNrKCkge1xyXG4gICAgICBpZiAoKGxvYWRlZCArPSAxKSA+PSBjb3VudCkge1xyXG4gICAgICAgIGNiKClcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXRocy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsb2FkU3R5bGVzaGVldChwYXRoc1tpXSwgc3R5bGVzaGVldHNbcGF0aHNbaV1dLCBzdHlsZXNoZWV0Q2FsbEJhY2soKSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIF9sb2FkaW5nU3RhdGUoZW5hYmxlLCB0aGVtZXMpIHtcclxuICAgIHRoaXMuY29udGFpbmVyLmNsYXNzTGlzdFtlbmFibGUgPyAnYWRkJyA6ICdyZW1vdmUnXShgdGVtcGxhdGUtY3VzdG9taXplci1sb2FkaW5nJHt0aGVtZXMgPyAnLXRoZW1lJyA6ICcnfWApXHJcbiAgfVxyXG5cclxuICBfZ2V0RWxlbWVudEZyb21TdHJpbmcoc3RyKSB7XHJcbiAgICBjb25zdCB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcclxuICAgIHdyYXBwZXIuaW5uZXJIVE1MID0gc3RyXHJcbiAgICByZXR1cm4gd3JhcHBlci5maXJzdENoaWxkXHJcbiAgfVxyXG5cclxuICAvLyBTZXQgc2V0dGluZ3MgaW4gTG9jYWxTdG9yYWdlIHdpdGggbGF5b3V0ICYga2V5XHJcbiAgX2dldFNldHRpbmcoa2V5KSB7XHJcbiAgICBsZXQgcmVzdWx0ID0gbnVsbFxyXG4gICAgY29uc3QgbGF5b3V0TmFtZSA9IHRoaXMuX2dldExheW91dE5hbWUoKVxyXG4gICAgdHJ5IHtcclxuICAgICAgcmVzdWx0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oYHRlbXBsYXRlQ3VzdG9taXplci0ke2xheW91dE5hbWV9LS0ke2tleX1gKVxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAvLyBDYXRjaCBlcnJvclxyXG4gICAgfVxyXG4gICAgcmV0dXJuIFN0cmluZyhyZXN1bHQgfHwgJycpXHJcbiAgfVxyXG5cclxuICAvLyBTZXQgc2V0dGluZ3MgaW4gTG9jYWxTdG9yYWdlIHdpdGggbGF5b3V0ICYga2V5XHJcbiAgX3NldFNldHRpbmcoa2V5LCB2YWwpIHtcclxuICAgIGNvbnN0IGxheW91dE5hbWUgPSB0aGlzLl9nZXRMYXlvdXROYW1lKClcclxuICAgIHRyeSB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGB0ZW1wbGF0ZUN1c3RvbWl6ZXItJHtsYXlvdXROYW1lfS0tJHtrZXl9YCwgU3RyaW5nKHZhbCkpXHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIC8vIENhdGNoIEVycm9yXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBHZXQgbGF5b3V0IG5hbWUgdG8gc2V0IHVuaXF1ZVxyXG4gIF9nZXRMYXlvdXROYW1lKCkge1xyXG4gICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdIVE1MJylbMF0uZ2V0QXR0cmlidXRlKCdkYXRhLXRlbXBsYXRlJylcclxuICB9XHJcblxyXG4gIF9yZW1vdmVMaXN0ZW5lcnMoKSB7XHJcbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IHRoaXMuX2xpc3RlbmVycy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcclxuICAgICAgdGhpcy5fbGlzdGVuZXJzW2ldWzBdLnJlbW92ZUV2ZW50TGlzdGVuZXIodGhpcy5fbGlzdGVuZXJzW2ldWzFdLCB0aGlzLl9saXN0ZW5lcnNbaV1bMl0pXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBfY2xlYW51cCgpIHtcclxuICAgIHRoaXMuX3JlbW92ZUxpc3RlbmVycygpXHJcbiAgICB0aGlzLl9saXN0ZW5lcnMgPSBbXVxyXG4gICAgdGhpcy5fY29udHJvbHMgPSB7fVxyXG5cclxuICAgIGlmICh0aGlzLl91cGRhdGVJbnRlcnZhbCkge1xyXG4gICAgICBjbGVhckludGVydmFsKHRoaXMuX3VwZGF0ZUludGVydmFsKVxyXG4gICAgICB0aGlzLl91cGRhdGVJbnRlcnZhbCA9IG51bGxcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBfc3NyKCkge1xyXG4gICAgcmV0dXJuIHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnXHJcbiAgfVxyXG5cclxuICAvLyBDaGVjayBjb250cm9scyBhdmFpbGFiaWxpdHlcclxuICBfaGFzQ29udHJvbHMoY29udHJvbHMsIG9uZU9mID0gZmFsc2UpIHtcclxuICAgIHJldHVybiBjb250cm9scy5zcGxpdCgnICcpLnJlZHVjZSgocmVzdWx0LCBjb250cm9sKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLnNldHRpbmdzLmNvbnRyb2xzLmluZGV4T2YoY29udHJvbCkgIT09IC0xKSB7XHJcbiAgICAgICAgaWYgKG9uZU9mIHx8IHJlc3VsdCAhPT0gZmFsc2UpIHJlc3VsdCA9IHRydWVcclxuICAgICAgfSBlbHNlIGlmICghb25lT2YgfHwgcmVzdWx0ICE9PSB0cnVlKSByZXN1bHQgPSBmYWxzZVxyXG4gICAgICByZXR1cm4gcmVzdWx0XHJcbiAgICB9LCBudWxsKVxyXG4gIH1cclxuXHJcbiAgLy8gR2V0IHRoZSBkZWZhdWx0IHRoZW1lXHJcbiAgX2dldERlZmF1bHRUaGVtZSh0aGVtZUlkKSB7XHJcbiAgICBsZXQgdGhlbWVcclxuICAgIC8vISBGaXg6IElmIGhvcml6b250YWwgbGF5b3V0IGFuZCBzZWxlY3RlZCBsYXlvdXQgaXMgc2VtaS1kYXJrIHRoZW4gc2V0IGxheW91dCBkZWZhdWx0XHJcbiAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2RhdGEtdGVtcGxhdGU9XCJob3Jpem9udGFsLW1lbnUtdGVtcGxhdGVcIl0nKSkge1xyXG4gICAgICBpZiAodGhlbWVJZCA9PT0gMSkge1xyXG4gICAgICAgIHRoZW1lSWQgPSAwXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0eXBlb2YgdGhlbWVJZCA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgdGhlbWUgPSB0aGlzLl9nZXRUaGVtZUJ5TmFtZSh0aGVtZUlkLCBmYWxzZSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoZW1lID0gdGhpcy5zZXR0aW5ncy5hdmFpbGFibGVUaGVtZXNbdGhlbWVJZF1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoZW1lKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlbWUgSUQgXCIke3RoZW1lSWR9XCIgbm90IGZvdW5kIWApXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoZW1lXHJcbiAgfVxyXG5cclxuICAvLyBHZXQgdGhlbWUgYnkgdGhlbWVJZC90aGVtZU5hbWVcclxuICBfZ2V0VGhlbWVCeU5hbWUodGhlbWVOYW1lLCByZXR1cm5EZWZhdWx0ID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IHRoZW1lcyA9IHRoaXMuc2V0dGluZ3MuYXZhaWxhYmxlVGhlbWVzXHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSB0aGVtZXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XHJcbiAgICAgIGlmICh0aGVtZXNbaV0ubmFtZSA9PT0gdGhlbWVOYW1lKSByZXR1cm4gdGhlbWVzW2ldXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJldHVybkRlZmF1bHQgPyB0aGlzLnNldHRpbmdzLmRlZmF1bHRUaGVtZSA6IG51bGxcclxuICB9XHJcbn1cclxuXHJcbi8vIFRoZW1lc1xyXG5UZW1wbGF0ZUN1c3RvbWl6ZXIuVEhFTUVTID0gW1xyXG4gIHtcclxuICAgIG5hbWU6ICd0aGVtZS1kZWZhdWx0JyxcclxuICAgIHRpdGxlOiAnRGVmYXVsdCdcclxuICB9LFxyXG4gIHtcclxuICAgIG5hbWU6ICd0aGVtZS1zZW1pLWRhcmsnLFxyXG4gICAgdGl0bGU6ICdTZW1pIERhcmsnXHJcbiAgfSxcclxuICB7XHJcbiAgICBuYW1lOiAndGhlbWUtYm9yZGVyZWQnLFxyXG4gICAgdGl0bGU6ICdCb3JkZXJlZCdcclxuICB9XHJcbl1cclxuXHJcbi8vIFRoZW1lIHNldHRpbmcgbGFuZ3VhZ2VcclxuVGVtcGxhdGVDdXN0b21pemVyLkxBTkdVQUdFUyA9IHtcclxuICBlbjoge1xyXG4gICAgcGFuZWxfaGVhZGVyOiAnVEVNUExBVEUgQ1VTVE9NSVpFUicsXHJcbiAgICBwYW5lbF9zdWJfaGVhZGVyOiAnQ3VzdG9taXplIGFuZCBwcmV2aWV3IGluIHJlYWwgdGltZScsXHJcbiAgICB0aGVtaW5nX2hlYWRlcjogJ1RIRU1JTkcnLFxyXG4gICAgdGhlbWVfaGVhZGVyOiAnVEhFTUUnLFxyXG4gICAgdGhlbWVfbGFiZWw6ICdUaGVtZXMnLFxyXG4gICAgc3R5bGVfbGFiZWw6ICdTdHlsZSAoTW9kZSknLFxyXG4gICAgc3R5bGVfc3dpdGNoX2xpZ2h0OiAnTGlnaHQnLFxyXG4gICAgc3R5bGVfc3dpdGNoX2Rhcms6ICdEYXJrJyxcclxuICAgIGxheW91dF9oZWFkZXI6ICdMQVlPVVQnLFxyXG4gICAgbGF5b3V0X2xhYmVsOiAnTGF5b3V0IChNZW51KScsXHJcbiAgICBsYXlvdXRfc3RhdGljOiAnU3RhdGljJyxcclxuICAgIGxheW91dF9vZmZjYW52YXM6ICdPZmZjYW52YXMnLFxyXG4gICAgbGF5b3V0X2ZpeGVkOiAnRml4ZWQnLFxyXG4gICAgbGF5b3V0X2ZpeGVkX29mZmNhbnZhczogJ0ZpeGVkIG9mZmNhbnZhcycsXHJcbiAgICBsYXlvdXRfZmxpcHBlZF9sYWJlbDogJ01lbnUgZmxpcHBlZCcsXHJcbiAgICBsYXlvdXRfZGRfb3Blbl9sYWJlbDogJ0Ryb3Bkb3duIG9uIGhvdmVyJyxcclxuICAgIGxheW91dF9uYXZiYXJfbGFiZWw6ICdGaXhlZCBuYXZiYXInLFxyXG4gICAgbGF5b3V0X2Zvb3Rlcl9sYWJlbDogJ0ZpeGVkIGZvb3RlcicsXHJcbiAgICBtaXNjX2hlYWRlcjogJ01JU0MnLFxyXG4gICAgcnRsX2xhYmVsOiAnUlRMIGRpcmVjdGlvbidcclxuICB9LFxyXG4gIGZyOiB7XHJcbiAgICBwYW5lbF9oZWFkZXI6ICdNT0TDiExFIERFIFBFUlNPTk5BTElTQVRJT04nLFxyXG4gICAgcGFuZWxfc3ViX2hlYWRlcjogJ1BlcnNvbm5hbGlzZXogZXQgcHLDqXZpc3VhbGlzZXogZW4gdGVtcHMgcsOpZWwnLFxyXG4gICAgdGhlbWluZ19oZWFkZXI6ICdUSMOJTUFUSVNBVElPTicsXHJcbiAgICB0aGVtZV9oZWFkZXI6ICdUSMOITUUnLFxyXG4gICAgdGhlbWVfbGFiZWw6ICdUaMOobWVzJyxcclxuICAgIHN0eWxlX2xhYmVsOiAnU3R5bGUgKE1vZGUpJyxcclxuICAgIHN0eWxlX3N3aXRjaF9saWdodDogJ0zDqWdlcicsXHJcbiAgICBzdHlsZV9zd2l0Y2hfZGFyazogJ1NvbWJyZScsXHJcbiAgICBsYXlvdXRfaGVhZGVyOiAnRElTUE9TSVRJT04nLFxyXG4gICAgbGF5b3V0X2xhYmVsOiAnTWlzZSBlbiBwYWdlIChNZW51KScsXHJcbiAgICBsYXlvdXRfc3RhdGljOiAnU3RhdGlxdWUnLFxyXG4gICAgbGF5b3V0X29mZmNhbnZhczogJ0hvcnMgdG9pbGUnLFxyXG4gICAgbGF5b3V0X2ZpeGVkOiAnRml4w6knLFxyXG4gICAgbGF5b3V0X2ZpeGVkX29mZmNhbnZhczogJ0ZpeGUgaG9ycyB0b2lsZScsXHJcbiAgICBsYXlvdXRfZmxpcHBlZF9sYWJlbDogJ01lbnUgaW52ZXJzw6knLFxyXG4gICAgbGF5b3V0X2RkX29wZW5fbGFiZWw6ICdMaXN0ZSBkw6lyb3VsYW50ZSBhdSBzdXJ2b2wnLFxyXG4gICAgbGF5b3V0X25hdmJhcl9sYWJlbDogJ0JhcnJlIGRlIG5hdmlnYXRpb24gZml4ZScsXHJcbiAgICBsYXlvdXRfZm9vdGVyX2xhYmVsOiAnUGllZCBkZSBwYWdlIGZpeGUnLFxyXG4gICAgbWlzY19oZWFkZXI6ICdESVZFUlMnLFxyXG4gICAgcnRsX2xhYmVsOiAnU2VucyBSVEwnXHJcbiAgfSxcclxuICBkZToge1xyXG4gICAgcGFuZWxfaGVhZGVyOiAnVk9STEFHRU4tQU5QQVNTRVInLFxyXG4gICAgcGFuZWxfc3ViX2hlYWRlcjogJ0FucGFzc2VuIHVuZCBWb3JzY2hhdSBpbiBFY2h0emVpdCcsXHJcbiAgICB0aGVtaW5nX2hlYWRlcjogJ1RIRU1FTicsXHJcbiAgICB0aGVtZV9oZWFkZXI6ICdUSEVNQScsXHJcbiAgICB0aGVtZV9sYWJlbDogJ1RoZW1lbicsXHJcbiAgICBzdHlsZV9sYWJlbDogJ1N0aWwgKE1vZHVzKScsXHJcbiAgICBzdHlsZV9zd2l0Y2hfbGlnaHQ6ICdIZWxsJyxcclxuICAgIHN0eWxlX3N3aXRjaF9kYXJrOiAnRHVua2VsJyxcclxuICAgIGxheW91dF9oZWFkZXI6ICdMQVlPVVQnLFxyXG4gICAgbGF5b3V0X2xhYmVsOiAnTGF5b3V0IChTcGVpc2VrYXJ0ZSknLFxyXG4gICAgbGF5b3V0X3N0YXRpYzogJ1N0YXRpc2NoJyxcclxuICAgIGxheW91dF9vZmZjYW52YXM6ICdMZWlud2FuZCcsXHJcbiAgICBsYXlvdXRfZml4ZWQ6ICdGZXN0JyxcclxuICAgIGxheW91dF9maXhlZF9vZmZjYW52YXM6ICdBdcOfZXJoYWxiIGRlciBMZWlud2FuZCBiZWhvYmVuJyxcclxuICAgIGxheW91dF9mbGlwcGVkX2xhYmVsOiAnTWVuw7wgdW1nZWRyZWh0JyxcclxuICAgIGxheW91dF9kZF9vcGVuX2xhYmVsOiAnRHJvcGRvd24gYmVpbSBIb3ZlcicsXHJcbiAgICBsYXlvdXRfbmF2YmFyX2xhYmVsOiAnTmF2aWdhdGlvbnNsZWlzdGUgYmVob2JlbicsXHJcbiAgICBsYXlvdXRfZm9vdGVyX2xhYmVsOiAnRmVzdGUgRnXDn3plaWxlJyxcclxuICAgIG1pc2NfaGVhZGVyOiAnVkVSU0NISUVERU5FUycsXHJcbiAgICBydGxfbGFiZWw6ICdSVEwtUmVnaWUnXHJcbiAgfSxcclxuICBwdDoge1xyXG4gICAgcGFuZWxfaGVhZGVyOiAnUEVSU09OQUxJWkFET1IgREUgTU9ERUxPJyxcclxuICAgIHBhbmVsX3N1Yl9oZWFkZXI6ICdQZXJzb25hbGl6ZSBlIHZpc3VhbGl6ZSBlbSB0ZW1wbyByZWFsJyxcclxuICAgIHRoZW1pbmdfaGVhZGVyOiAnVEVNQVMnLFxyXG4gICAgdGhlbWVfaGVhZGVyOiAnVEVNQScsXHJcbiAgICB0aGVtZV9sYWJlbDogJ1RlbWFzJyxcclxuICAgIHN0eWxlX2xhYmVsOiAnRXN0aWxvIChNb2RvKScsXHJcbiAgICBzdHlsZV9zd2l0Y2hfbGlnaHQ6ICdMdXonLFxyXG4gICAgc3R5bGVfc3dpdGNoX2Rhcms6ICdFc2N1cm8nLFxyXG4gICAgbGF5b3V0X2hlYWRlcjogJ0VTUVVFTUEnLFxyXG4gICAgbGF5b3V0X2xhYmVsOiAnRXNxdWVtYSAoQ2FyZMOhcGlvKScsXHJcbiAgICBsYXlvdXRfc3RhdGljOiAnRXN0w6F0aWNvJyxcclxuICAgIGxheW91dF9vZmZjYW52YXM6ICdPZmZjYW52YXMnLFxyXG4gICAgbGF5b3V0X2ZpeGVkOiAnRml4bycsXHJcbiAgICBsYXlvdXRfZml4ZWRfb2ZmY2FudmFzOiAnT2Zmc2NyZWVuIGZpeG8nLFxyXG4gICAgbGF5b3V0X2ZsaXBwZWRfbGFiZWw6ICdNZW51IGludmVydGlkbycsXHJcbiAgICBsYXlvdXRfZGRfb3Blbl9sYWJlbDogJ1N1c3BlbnPDo28gYW8gcGFzc2FyIG8gbW91c2UnLFxyXG4gICAgbGF5b3V0X25hdmJhcl9sYWJlbDogJ0JhcnJhIGRlIG5hdmVnYcOnw6NvIGZpeGEnLFxyXG4gICAgbGF5b3V0X2Zvb3Rlcl9sYWJlbDogJ1JvZGFww6kgZml4bycsXHJcbiAgICBtaXNjX2hlYWRlcjogJ0RJVkVSU09TJyxcclxuICAgIHJ0bF9sYWJlbDogJ0RpcmXDp8OjbyBSVEwnXHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgeyBUZW1wbGF0ZUN1c3RvbWl6ZXIgfVxyXG4iXSwibmFtZXMiOlsiY3VzdG9taXplclN0eWxlIiwiY3VzdG9taXplck1hcmt1cCIsIkNTU19GSUxFTkFNRV9QQVRURVJOIiwiQ09OVFJPTFMiLCJTVFlMRVMiLCJjbCIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwiY2xhc3NMaXN0IiwiRElTUExBWV9DVVNUT01JWkVSIiwiREVGQVVMVF9USEVNRSIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwiZ2V0QXR0cmlidXRlIiwiREVGQVVMVF9TVFlMRSIsImNvbnRhaW5zIiwiREVGQVVMVF9URVhUX0RJUiIsIkRFRkFVTFRfTUVOVV9DT0xMQVBTRUQiLCJERUZBVUxUX01FTlVfRkxJUFBFRCIsIkRFRkFVTFRfU0hPV19EUk9QRE9XTl9PTl9IT1ZFUiIsInVuZGVmaW5lZCIsIkRFRkFVTFRfTkFWQkFSX0ZJWEVEIiwiREVGQVVMVF9GT09URVJfRklYRUQiLCJsYXlvdXRUeXBlIiwiREVGQVVMVF9MQVlPVVRfVFlQRSIsIlRlbXBsYXRlQ3VzdG9taXplciIsImNzc1BhdGgiLCJ0aGVtZXNQYXRoIiwiY3NzRmlsZW5hbWVQYXR0ZXJuIiwiZGlzcGxheUN1c3RvbWl6ZXIiLCJjb250cm9scyIsImRlZmF1bHRUZXh0RGlyIiwiZGVmYXVsdExheW91dFR5cGUiLCJkZWZhdWx0TWVudUNvbGxhcHNlZCIsImRlZmF1bHRNZW51RmxpcHBlZCIsImRlZmF1bHRTaG93RHJvcGRvd25PbkhvdmVyIiwiZGVmYXVsdE5hdmJhckZpeGVkIiwiZGVmYXVsdEZvb3RlckZpeGVkIiwic3R5bGVzIiwiZGVmYXVsdFN0eWxlIiwiYXZhaWxhYmxlVGhlbWVzIiwiZGVmYXVsdFRoZW1lIiwicGF0aFJlc29sdmVyIiwib25TZXR0aW5nc0NoYW5nZSIsImxhbmciLCJfc3NyIiwid2luZG93IiwiSGVscGVycyIsIkVycm9yIiwic2V0dGluZ3MiLCJUSEVNRVMiLCJfZ2V0RGVmYXVsdFRoZW1lIiwicCIsImxlbmd0aCIsImkiLCJpbmRleE9mIiwic2xpY2UiLCJjb25jYXQiLCJfbG9hZFNldHRpbmdzIiwiX2xpc3RlbmVycyIsIl9jb250cm9scyIsIl9pbml0RGlyZWN0aW9uIiwiX2luaXRTdHlsZSIsIl9pbml0VGhlbWUiLCJzZXRMYXlvdXRUeXBlIiwic2V0TGF5b3V0TWVudUZsaXBwZWQiLCJsYXlvdXRNZW51RmxpcHBlZCIsInNldERyb3Bkb3duT25Ib3ZlciIsInNob3dEcm9wZG93bk9uSG92ZXIiLCJzZXRMYXlvdXROYXZiYXJGaXhlZCIsImxheW91dE5hdmJhckZpeGVkIiwic2V0TGF5b3V0Rm9vdGVyRml4ZWQiLCJsYXlvdXRGb290ZXJGaXhlZCIsIl9zZXR1cCIsInJ0bCIsIl9oYXNDb250cm9scyIsIl9zZXRTZXR0aW5nIiwiU3RyaW5nIiwibG9jYXRpb24iLCJyZWxvYWQiLCJzdHlsZSIsInRoZW1lTmFtZSIsInVwZGF0ZVN0b3JhZ2UiLCJjYiIsInRoZW1lIiwiX2dldFRoZW1lQnlOYW1lIiwidGhlbWVVcmwiLCJyZXBsYWNlIiwiX2xvYWRTdHlsZXNoZWV0cyIsInF1ZXJ5U2VsZWN0b3IiLCJjYWxsIiwicG9zIiwic2V0UG9zaXRpb24iLCJtZW51U2Nyb2xsIiwibWVudVBzU2Nyb2xsIiwiUGVyZmVjdFNjcm9sbGJhckxpYiIsIlBlcmZlY3RTY3JvbGxiYXIiLCJkZXN0cm95Iiwic3VwcHJlc3NTY3JvbGxYIiwid2hlZWxQcm9wYWdhdGlvbiIsImZsaXBwZWQiLCJzZXRGbGlwcGVkIiwib3BlbiIsIm1haW5NZW51IiwiY29uZmlnIiwiTWVudSIsImdldEVsZW1lbnRCeUlkIiwib3JpZW50YXRpb24iLCJjbG9zZUNoaWxkcmVuIiwiZml4ZWQiLCJzZXROYXZiYXJGaXhlZCIsInNldEZvb3RlckZpeGVkIiwiZm9yY2UiLCJMQU5HVUFHRVMiLCJ0IiwiZm9yRWFjaCIsImtleSIsImVsIiwiY29udGFpbmVyIiwidGV4dENvbnRlbnQiLCJ0dCIsInRoZW1lcyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJsIiwidmFsdWUiLCJ0aXRsZSIsImhhc05hdmJhciIsImhhc01lbnUiLCJoYXNIb3Jpem9udGFsTWVudSIsImlzTGF5b3V0MSIsImhhc0Zvb3RlciIsInNldEF0dHJpYnV0ZSIsImFkZCIsInJlbW92ZUF0dHJpYnV0ZSIsInJlbW92ZSIsImxheW91dE5hdmJhckZpeGVkVyIsImxheW91dEZvb3RlckZpeGVkVyIsIl9jbGVhbnVwIiwicGFyZW50Tm9kZSIsInJlbW92ZUNoaWxkIiwiX2dldFNldHRpbmciLCJjb2xsYXBzZWRNZW51IiwiZmxpcHBlZE1lbnUiLCJkcm9wZG93bk9uSG92ZXIiLCJmaXhlZE5hdmJhciIsImZpeGVkRm9vdGVyIiwibFR5cGUiLCJ0eXBlIiwibGF5b3V0TWVudSIsIl9jb250YWluZXIiLCJfZ2V0RWxlbWVudEZyb21TdHJpbmciLCJjdXN0b21pemVyVyIsIm9wZW5CdG4iLCJvcGVuQnRuQ2IiLCJ1cGRhdGUiLCJfdXBkYXRlSW50ZXJ2YWwiLCJjbGVhckludGVydmFsIiwic2V0SW50ZXJ2YWwiLCJhZGRFdmVudExpc3RlbmVyIiwicHVzaCIsImNsb3NlQnRuIiwiY2xvc2VCdG5DYiIsInJ0bFciLCJydGxTdXBwb3J0IiwicnRsQ2IiLCJlIiwiX2xvYWRpbmdTdGF0ZSIsInNldFJ0bCIsInRhcmdldCIsImNoZWNrZWQiLCJzdHlsZVciLCJzdHlsZUNiIiwic2V0U3R5bGUiLCJ0aGVtZXNXIiwidGhlbWVzV0lubmVyIiwidGhlbWVFbCIsIm5hbWUiLCJhcHBlbmRDaGlsZCIsInRoZW1lQ2IiLCJfbG9hZGluZyIsInNldFRoZW1lIiwidGhlbWluZ1ciLCJsYXlvdXRXIiwibGF5b3V0VHlwZVciLCJsYXlvdXRUeXBlQ2IiLCJsYXlvdXROYXZiYXJGaXhlZENiIiwibGF5b3V0Rm9vdGVyRml4ZWRDYiIsInNldExhbmciLCJib2R5IiwiX2luc2VydFN0eWxlc2hlZXQiLCJjbGFzc2VzVG9SZW1vdmUiLCJjbHMiLCJjbGFzc05hbWUiLCJocmVmIiwiY3VyTGluayIsImRvY3VtZW50TW9kZSIsImxpbmsiLCJjcmVhdGVFbGVtZW50IiwiaW5zZXJ0QmVmb3JlIiwibmV4dFNpYmxpbmciLCJ3cml0ZSIsInN0eWxlc2hlZXRzIiwicGF0aHMiLCJPYmplY3QiLCJrZXlzIiwiY291bnQiLCJsb2FkZWQiLCJsb2FkU3R5bGVzaGVldCIsInBhdGgiLCJfY2IiLCJzaGVldCIsImNzc1J1bGVzIiwiaW50ZXJ2YWxJZCIsInRpbWVvdXRJZCIsInNldFRpbWVvdXQiLCJjbGVhclRpbWVvdXQiLCJzdHlsZXNoZWV0Q2FsbEJhY2siLCJlbmFibGUiLCJzdHIiLCJ3cmFwcGVyIiwiaW5uZXJIVE1MIiwiZmlyc3RDaGlsZCIsInJlc3VsdCIsImxheW91dE5hbWUiLCJfZ2V0TGF5b3V0TmFtZSIsImxvY2FsU3RvcmFnZSIsImdldEl0ZW0iLCJ2YWwiLCJzZXRJdGVtIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIl9yZW1vdmVMaXN0ZW5lcnMiLCJvbmVPZiIsInNwbGl0IiwicmVkdWNlIiwiY29udHJvbCIsInRoZW1lSWQiLCJyZXR1cm5EZWZhdWx0IiwiZW4iLCJwYW5lbF9oZWFkZXIiLCJwYW5lbF9zdWJfaGVhZGVyIiwidGhlbWluZ19oZWFkZXIiLCJ0aGVtZV9oZWFkZXIiLCJ0aGVtZV9sYWJlbCIsInN0eWxlX2xhYmVsIiwic3R5bGVfc3dpdGNoX2xpZ2h0Iiwic3R5bGVfc3dpdGNoX2RhcmsiLCJsYXlvdXRfaGVhZGVyIiwibGF5b3V0X2xhYmVsIiwibGF5b3V0X3N0YXRpYyIsImxheW91dF9vZmZjYW52YXMiLCJsYXlvdXRfZml4ZWQiLCJsYXlvdXRfZml4ZWRfb2ZmY2FudmFzIiwibGF5b3V0X2ZsaXBwZWRfbGFiZWwiLCJsYXlvdXRfZGRfb3Blbl9sYWJlbCIsImxheW91dF9uYXZiYXJfbGFiZWwiLCJsYXlvdXRfZm9vdGVyX2xhYmVsIiwibWlzY19oZWFkZXIiLCJydGxfbGFiZWwiLCJmciIsImRlIiwicHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./js/template-customizer.js\n");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./js/_template-customizer/_template-customizer.scss":
/*!****************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./js/_template-customizer/_template-customizer.scss ***!
\****************************************************************************************************************************************/
/***/ (function(module, __webpack_exports__, __webpack_require__) {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/sourceMaps.js */ \"./node_modules/css-loader/dist/runtime/sourceMaps.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/getUrl.js */ \"./node_modules/css-loader/dist/runtime/getUrl.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__);\n// Imports\n\n\n\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(/* asset import */ __webpack_require__(/*! data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABClJREFUaEPtmY1RFEEQhbsjUCIQIhAiUCNQIxAiECIQIxAiECIAIpAMhAiECIQI2vquZqnZvp6fhb3SK5mqq6Ju92b69bzXf6is+dI1t1+eAfztG5z1BsxsU0S+ici2iPB3vm5E5EpEDlSVv2dZswFIxv8UkZcNy+5EZGcuEHMCOBeR951uvVDVD53vVl+bE8DvDu8Pxtyo6ta/BsByg1R15Bwzqz5/LJgn34CZwfnPInI4BUB6/1hV0cSjVxcAM4PbcBZjL0XklIPN7Is3fLCkdQPpPYw/VNXj5IhPIvJWRIhSl6p60ULWBGBm30Vk123EwRxCuIzWkkjNrCZywith10ewE1Xdq4GoAjCz/RTXW44Ynt+LyBEfT43kYfbj86J3w5Q32DNcRQDpwF+dkQXDMey8xem0L3TEqB4g3PZWad8agBMRgZPeu96D1/C2Zbh3X0p80Op1xxloztN48bMQQNoc7+eLEuAoPSPiIDY4Ooo+E6ixeNXM+D3GERz2U3CIqMstLJUgJQDe+7eq6mub0NYEkLAKwEHkiBQDCZtddZCZ8d6r7JDwFkoARklHRPZUFVDVZWbwGuNrC4EfdOzFrRABh3Wnqhv+d70AEBLGFROPmeHlnM81G69UdSd6IUuM0GgUVn1uqWmg5EmMfBeEyB7Pe3txBkY+rGT8j0J+WXq/BgDkUCaqLgEAnwcRog0veMIqFAAwCy2wnw+bI2GaGboBgF9k5N0o0rUSGUb4eO0BeO9j/GYhkSHMHMTIqwGARX6p6a+nlPBl8kZuXMD9j6pKfF9aZuaFOdJCEL5D4eYb9wCYVCanrBmGyii/tIq+SLj/HQBCaM5bLzwfPqdQ6FpVHyra4IbuVbXaY7dETC2ESPNNWiIOi69CcdgSMXsh4tNSUiklMgwmC0aNd08Y5WAES6HHehM4gu97wyhBgWpgqXsrASglprDy7CwhehMZOSbK6JMSma+Fio1KltCmlBIj7gfZOGx8ppQSXrhzFnOhJ/31BDkjFHRvOd09x0mRBA9SFgxUgHpQg0q0t5ymPMlL+EnldFTfDA0NAmf+OTQ0X0sRouf7NNkYGhrOYNrxtIaGg83MNzVDSe3LXLhP7O/yrCsCz1zlWTpjWkuZAOBpX3yVnLqI1yLCOKU6qMrmP7SSrUEw54XF4WBIK5FxCMOr3lVsfGqNSmPzBXUnJTIX1jyVBq9wO6UObOpgC5GjO98vFKnTdQMZXxEsWZlDiCZMIxAbNxQOqlpVZtobejBaZNoBnRDzMFpkxvTQOD36BlrcySZuI6p1ACB6LU3wWuf5581+oHfD1vi89bz3nFUC8Nm7ZlP3nKkFbM4bWPt/MSFwklprYItwt6cmvpWJ2IVcQBCz6bLysSCv3SaANCiTsnaNRrNRqMXVVT1/BrAqz/buu/Y38Ad3KC5PARej0QAAAABJRU5ErkJggg== */ \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABClJREFUaEPtmY1RFEEQhbsjUCIQIhAiUCNQIxAiECIQIxAiECIAIpAMhAiECIQI2vquZqnZvp6fhb3SK5mqq6Ju92b69bzXf6is+dI1t1+eAfztG5z1BsxsU0S+ici2iPB3vm5E5EpEDlSVv2dZswFIxv8UkZcNy+5EZGcuEHMCOBeR951uvVDVD53vVl+bE8DvDu8Pxtyo6ta/BsByg1R15Bwzqz5/LJgn34CZwfnPInI4BUB6/1hV0cSjVxcAM4PbcBZjL0XklIPN7Is3fLCkdQPpPYw/VNXj5IhPIvJWRIhSl6p60ULWBGBm30Vk123EwRxCuIzWkkjNrCZywith10ewE1Xdq4GoAjCz/RTXW44Ynt+LyBEfT43kYfbj86J3w5Q32DNcRQDpwF+dkQXDMey8xem0L3TEqB4g3PZWad8agBMRgZPeu96D1/C2Zbh3X0p80Op1xxloztN48bMQQNoc7+eLEuAoPSPiIDY4Ooo+E6ixeNXM+D3GERz2U3CIqMstLJUgJQDe+7eq6mub0NYEkLAKwEHkiBQDCZtddZCZ8d6r7JDwFkoARklHRPZUFVDVZWbwGuNrC4EfdOzFrRABh3Wnqhv+d70AEBLGFROPmeHlnM81G69UdSd6IUuM0GgUVn1uqWmg5EmMfBeEyB7Pe3txBkY+rGT8j0J+WXq/BgDkUCaqLgEAnwcRog0veMIqFAAwCy2wnw+bI2GaGboBgF9k5N0o0rUSGUb4eO0BeO9j/GYhkSHMHMTIqwGARX6p6a+nlPBl8kZuXMD9j6pKfF9aZuaFOdJCEL5D4eYb9wCYVCanrBmGyii/tIq+SLj/HQBCaM5bLzwfPqdQ6FpVHyra4IbuVbXaY7dETC2ESPNNWiIOi69CcdgSMXsh4tNSUiklMgwmC0aNd08Y5WAES6HHehM4gu97wyhBgWpgqXsrASglprDy7CwhehMZOSbK6JMSma+Fio1KltCmlBIj7gfZOGx8ppQSXrhzFnOhJ/31BDkjFHRvOd09x0mRBA9SFgxUgHpQg0q0t5ymPMlL+EnldFTfDA0NAmf+OTQ0X0sRouf7NNkYGhrOYNrxtIaGg83MNzVDSe3LXLhP7O/yrCsCz1zlWTpjWkuZAOBpX3yVnLqI1yLCOKU6qMrmP7SSrUEw54XF4WBIK5FxCMOr3lVsfGqNSmPzBXUnJTIX1jyVBq9wO6UObOpgC5GjO98vFKnTdQMZXxEsWZlDiCZMIxAbNxQOqlpVZtobejBaZNoBnRDzMFpkxvTQOD36BlrcySZuI6p1ACB6LU3wWuf5581+oHfD1vi89bz3nFUC8Nm7ZlP3nKkFbM4bWPt/MSFwklprYItwt6cmvpWJ2IVcQBCz6bLysSCv3SaANCiTsnaNRrNRqMXVVT1/BrAqz/buu/Y38Ad3KC5PARej0QAAAABJRU5ErkJggg==\"), __webpack_require__.b);\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*\\n* Template Customizer Style\\n**/\\n#template-customizer {\\n font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, \\\"Helvetica Neue\\\", Arial, sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\" !important;\\n font-size: inherit !important;\\n position: fixed;\\n top: 0;\\n right: 0;\\n height: 100%;\\n z-index: 99999999;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n width: 360px;\\n background: #fff;\\n -webkit-box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2);\\n box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2);\\n -webkit-transition: all 0.2s ease-in;\\n -o-transition: all 0.2s ease-in;\\n transition: all 0.2s ease-in;\\n -webkit-transform: translateX(380px);\\n -ms-transform: translateX(380px);\\n transform: translateX(380px);\\n}\\n#template-customizer h5 {\\n position: relative;\\n font-size: 11px;\\n font-weight: 600;\\n}\\n#template-customizer > h5 {\\n flex: 0 0 auto;\\n}\\n#template-customizer .disabled {\\n color: #d1d2d3 !important;\\n}\\n#template-customizer.template-customizer-open {\\n -webkit-transition-delay: 0.1s;\\n -o-transition-delay: 0.1s;\\n transition-delay: 0.1s;\\n -webkit-transform: none !important;\\n -ms-transform: none !important;\\n transform: none !important;\\n}\\n#template-customizer .template-customizer-open-btn {\\n position: absolute;\\n top: 180px;\\n left: 0;\\n z-index: -1;\\n display: block;\\n width: 42px;\\n height: 42px;\\n border-top-left-radius: 15%;\\n border-bottom-left-radius: 15%;\\n background: #333;\\n color: #fff !important;\\n text-align: center;\\n font-size: 18px !important;\\n line-height: 42px;\\n opacity: 1;\\n -webkit-transition: all 0.1s linear 0.2s;\\n -o-transition: all 0.1s linear 0.2s;\\n transition: all 0.1s linear 0.2s;\\n -webkit-transform: translateX(-62px);\\n -ms-transform: translateX(-62px);\\n transform: translateX(-62px);\\n}\\n@media (max-width: 991.98px) {\\n #template-customizer .template-customizer-open-btn {\\n top: 145px;\\n }\\n}\\n.dark-style #template-customizer .template-customizer-open-btn {\\n background: #555;\\n}\\n#template-customizer .template-customizer-open-btn::before {\\n content: \\\"\\\";\\n width: 22px;\\n height: 22px;\\n display: block;\\n background-size: 100% 100%;\\n position: absolute;\\n background-image: url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");\\n margin: 10px;\\n}\\n.customizer-hide #template-customizer .template-customizer-open-btn {\\n display: none;\\n}\\n[dir=rtl] #template-customizer .template-customizer-open-btn {\\n border-radius: 0;\\n border-top-right-radius: 15%;\\n border-bottom-right-radius: 15%;\\n}\\n[dir=rtl] #template-customizer .template-customizer-open-btn::before {\\n margin-left: -2px;\\n}\\n#template-customizer.template-customizer-open .template-customizer-open-btn {\\n opacity: 0;\\n -webkit-transition-delay: 0s;\\n -o-transition-delay: 0s;\\n transition-delay: 0s;\\n -webkit-transform: none !important;\\n -ms-transform: none !important;\\n transform: none !important;\\n}\\n#template-customizer .template-customizer-close-btn {\\n position: absolute;\\n top: 32px;\\n right: 0;\\n display: block;\\n font-size: 20px;\\n -webkit-transform: translateY(-50%);\\n -ms-transform: translateY(-50%);\\n transform: translateY(-50%);\\n}\\n#template-customizer .template-customizer-inner {\\n position: relative;\\n overflow: auto;\\n -webkit-box-flex: 0;\\n -ms-flex: 0 1 auto;\\n flex: 0 1 auto;\\n opacity: 1;\\n -webkit-transition: opacity 0.2s;\\n -o-transition: opacity 0.2s;\\n transition: opacity 0.2s;\\n}\\n#template-customizer .template-customizer-inner > div:first-child > hr:first-of-type {\\n display: none !important;\\n}\\n#template-customizer .template-customizer-inner > div:first-child > h5:first-of-type {\\n padding-top: 0 !important;\\n}\\n#template-customizer .template-customizer-themes-inner {\\n position: relative;\\n opacity: 1;\\n -webkit-transition: opacity 0.2s;\\n -o-transition: opacity 0.2s;\\n transition: opacity 0.2s;\\n}\\n#template-customizer .template-customizer-theme-item {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n align-items: center;\\n -ms-flex-align: center;\\n -webkit-box-flex: 1;\\n -ms-flex: 1 1 100%;\\n flex: 1 1 100%;\\n -webkit-box-pack: justify;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n margin-bottom: 10px;\\n padding: 0 24px;\\n width: 100%;\\n cursor: pointer;\\n}\\n#template-customizer .template-customizer-theme-item input {\\n position: absolute;\\n z-index: -1;\\n opacity: 0;\\n}\\n#template-customizer .template-customizer-theme-item input ~ span {\\n opacity: 0.25;\\n -webkit-transition: all 0.2s;\\n -o-transition: all 0.2s;\\n transition: all 0.2s;\\n}\\n#template-customizer .template-customizer-theme-item .template-customizer-theme-checkmark {\\n display: inline-block;\\n width: 6px;\\n height: 12px;\\n border-right: 1px solid;\\n border-bottom: 1px solid;\\n opacity: 0;\\n -webkit-transition: all 0.2s;\\n -o-transition: all 0.2s;\\n transition: all 0.2s;\\n -webkit-transform: rotate(45deg);\\n -ms-transform: rotate(45deg);\\n transform: rotate(45deg);\\n}\\n[dir=rtl] #template-customizer .template-customizer-theme-item .template-customizer-theme-checkmark {\\n border-right: none;\\n border-left: 1px solid;\\n -webkit-transform: rotate(-45deg);\\n -ms-transform: rotate(-45deg);\\n transform: rotate(-45deg);\\n}\\n#template-customizer .template-customizer-theme-item input:checked:not([disabled]) ~ span, #template-customizer .template-customizer-theme-item:hover input:not([disabled]) ~ span {\\n opacity: 1;\\n}\\n#template-customizer .template-customizer-theme-item input:checked:not([disabled]) ~ span .template-customizer-theme-checkmark {\\n opacity: 1;\\n}\\n#template-customizer .template-customizer-theme-colors span {\\n display: block;\\n margin: 0 1px;\\n width: 10px;\\n height: 10px;\\n border-radius: 50%;\\n -webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1) inset;\\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1) inset;\\n}\\n#template-customizer.template-customizer-loading .template-customizer-inner, #template-customizer.template-customizer-loading-theme .template-customizer-themes-inner {\\n opacity: 0.2;\\n}\\n#template-customizer.template-customizer-loading .template-customizer-inner::after, #template-customizer.template-customizer-loading-theme .template-customizer-themes-inner::after {\\n content: \\\"\\\";\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: 999;\\n display: block;\\n}\\n\\n.layout-menu-100vh #template-customizer {\\n height: 100vh;\\n}\\n\\n[dir=rtl] #template-customizer {\\n right: auto;\\n left: 0;\\n -webkit-transform: translateX(-380px);\\n -ms-transform: translateX(-380px);\\n transform: translateX(-380px);\\n}\\n[dir=rtl] #template-customizer .template-customizer-open-btn {\\n right: 0;\\n left: auto;\\n -webkit-transform: translateX(62px);\\n -ms-transform: translateX(62px);\\n transform: translateX(62px);\\n}\\n[dir=rtl] #template-customizer .template-customizer-close-btn {\\n right: auto;\\n left: 0;\\n}\\n\\n#template-customizer .template-customizer-layouts-options[disabled] {\\n opacity: 0.5;\\n pointer-events: none;\\n}\\n\\n[dir=rtl] .template-customizer-t-style_switch_light {\\n padding-right: 0 !important;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./js/_template-customizer/_template-customizer.scss\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"/*\\r\\n* Template Customizer Style\\r\\n**/\\r\\n\\r\\n$customizer-width: 360px;\\r\\n$customizer-spacer: 20px;\\r\\n$customizer-font-size: inherit;\\r\\n\\r\\n$open-btn-size: 42px;\\r\\n$open-btn-spacer: 0;\\r\\n$open-btn-font-size: 18px;\\r\\n$open-btn-top: 180px;\\r\\n$open-btn-top-md: 145px;\\r\\n\\r\\n$open-btn-bg: #333;\\r\\n$open-btn-bg-dark: #555;\\r\\n$open-btn-color: #fff;\\r\\n$open-btn-border-radius: 15%;\\r\\n\\r\\n#template-customizer {\\r\\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif,\\r\\n 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol' !important;\\r\\n font-size: $customizer-font-size !important;\\r\\n position: fixed;\\r\\n top: 0;\\r\\n right: 0;\\r\\n height: 100%;\\r\\n z-index: 99999999;\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-orient: vertical;\\r\\n -webkit-box-direction: normal;\\r\\n -ms-flex-direction: column;\\r\\n flex-direction: column;\\r\\n width: $customizer-width;\\r\\n background: #fff;\\r\\n -webkit-box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2);\\r\\n box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2);\\r\\n -webkit-transition: all 0.2s ease-in;\\r\\n -o-transition: all 0.2s ease-in;\\r\\n transition: all 0.2s ease-in;\\r\\n -webkit-transform: translateX($customizer-width + $customizer-spacer);\\r\\n -ms-transform: translateX($customizer-width + $customizer-spacer);\\r\\n transform: translateX($customizer-width + $customizer-spacer);\\r\\n\\r\\n h5 {\\r\\n position: relative;\\r\\n font-size: 11px;\\r\\n font-weight: 600;\\r\\n }\\r\\n\\r\\n > h5 {\\r\\n flex: 0 0 auto;\\r\\n }\\r\\n\\r\\n .disabled {\\r\\n color: #d1d2d3 !important;\\r\\n }\\r\\n\\r\\n &.template-customizer-open {\\r\\n -webkit-transition-delay: 0.1s;\\r\\n -o-transition-delay: 0.1s;\\r\\n transition-delay: 0.1s;\\r\\n -webkit-transform: none !important;\\r\\n -ms-transform: none !important;\\r\\n transform: none !important;\\r\\n }\\r\\n\\r\\n // Customizer button\\r\\n\\r\\n .template-customizer-open-btn {\\r\\n position: absolute;\\r\\n top: $open-btn-top;\\r\\n\\r\\n @media (max-width: 991.98px) {\\r\\n top: $open-btn-top-md;\\r\\n }\\r\\n left: 0;\\r\\n z-index: -1;\\r\\n display: block;\\r\\n width: $open-btn-size;\\r\\n height: $open-btn-size;\\r\\n border-top-left-radius: $open-btn-border-radius;\\r\\n border-bottom-left-radius: $open-btn-border-radius;\\r\\n background: $open-btn-bg;\\r\\n color: $open-btn-color !important;\\r\\n text-align: center;\\r\\n font-size: $open-btn-font-size !important;\\r\\n line-height: $open-btn-size;\\r\\n opacity: 1;\\r\\n -webkit-transition: all 0.1s linear 0.2s;\\r\\n -o-transition: all 0.1s linear 0.2s;\\r\\n transition: all 0.1s linear 0.2s;\\r\\n -webkit-transform: translateX(-($open-btn-size + $customizer-spacer + $open-btn-spacer));\\r\\n -ms-transform: translateX(-($open-btn-size + $customizer-spacer + $open-btn-spacer));\\r\\n transform: translateX(-($open-btn-size + $customizer-spacer + $open-btn-spacer));\\r\\n\\r\\n .dark-style & {\\r\\n background: $open-btn-bg-dark;\\r\\n }\\r\\n &::before {\\r\\n content: '';\\r\\n width: 22px;\\r\\n height: 22px;\\r\\n display: block;\\r\\n background-size: 100% 100%;\\r\\n position: absolute;\\r\\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABClJREFUaEPtmY1RFEEQhbsjUCIQIhAiUCNQIxAiECIQIxAiECIAIpAMhAiECIQI2vquZqnZvp6fhb3SK5mqq6Ju92b69bzXf6is+dI1t1+eAfztG5z1BsxsU0S+ici2iPB3vm5E5EpEDlSVv2dZswFIxv8UkZcNy+5EZGcuEHMCOBeR951uvVDVD53vVl+bE8DvDu8Pxtyo6ta/BsByg1R15Bwzqz5/LJgn34CZwfnPInI4BUB6/1hV0cSjVxcAM4PbcBZjL0XklIPN7Is3fLCkdQPpPYw/VNXj5IhPIvJWRIhSl6p60ULWBGBm30Vk123EwRxCuIzWkkjNrCZywith10ewE1Xdq4GoAjCz/RTXW44Ynt+LyBEfT43kYfbj86J3w5Q32DNcRQDpwF+dkQXDMey8xem0L3TEqB4g3PZWad8agBMRgZPeu96D1/C2Zbh3X0p80Op1xxloztN48bMQQNoc7+eLEuAoPSPiIDY4Ooo+E6ixeNXM+D3GERz2U3CIqMstLJUgJQDe+7eq6mub0NYEkLAKwEHkiBQDCZtddZCZ8d6r7JDwFkoARklHRPZUFVDVZWbwGuNrC4EfdOzFrRABh3Wnqhv+d70AEBLGFROPmeHlnM81G69UdSd6IUuM0GgUVn1uqWmg5EmMfBeEyB7Pe3txBkY+rGT8j0J+WXq/BgDkUCaqLgEAnwcRog0veMIqFAAwCy2wnw+bI2GaGboBgF9k5N0o0rUSGUb4eO0BeO9j/GYhkSHMHMTIqwGARX6p6a+nlPBl8kZuXMD9j6pKfF9aZuaFOdJCEL5D4eYb9wCYVCanrBmGyii/tIq+SLj/HQBCaM5bLzwfPqdQ6FpVHyra4IbuVbXaY7dETC2ESPNNWiIOi69CcdgSMXsh4tNSUiklMgwmC0aNd08Y5WAES6HHehM4gu97wyhBgWpgqXsrASglprDy7CwhehMZOSbK6JMSma+Fio1KltCmlBIj7gfZOGx8ppQSXrhzFnOhJ/31BDkjFHRvOd09x0mRBA9SFgxUgHpQg0q0t5ymPMlL+EnldFTfDA0NAmf+OTQ0X0sRouf7NNkYGhrOYNrxtIaGg83MNzVDSe3LXLhP7O/yrCsCz1zlWTpjWkuZAOBpX3yVnLqI1yLCOKU6qMrmP7SSrUEw54XF4WBIK5FxCMOr3lVsfGqNSmPzBXUnJTIX1jyVBq9wO6UObOpgC5GjO98vFKnTdQMZXxEsWZlDiCZMIxAbNxQOqlpVZtobejBaZNoBnRDzMFpkxvTQOD36BlrcySZuI6p1ACB6LU3wWuf5581+oHfD1vi89bz3nFUC8Nm7ZlP3nKkFbM4bWPt/MSFwklprYItwt6cmvpWJ2IVcQBCz6bLysSCv3SaANCiTsnaNRrNRqMXVVT1/BrAqz/buu/Y38Ad3KC5PARej0QAAAABJRU5ErkJggg==');\\r\\n margin: 10px;\\r\\n }\\r\\n\\r\\n // Customizer Hidden\\r\\n .customizer-hide & {\\r\\n display: none;\\r\\n }\\r\\n\\r\\n [dir='rtl'] & {\\r\\n border-radius: 0;\\r\\n border-top-right-radius: $open-btn-border-radius;\\r\\n border-bottom-right-radius: $open-btn-border-radius;\\r\\n\\r\\n &::before {\\r\\n margin-left: -2px;\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n &.template-customizer-open .template-customizer-open-btn {\\r\\n opacity: 0;\\r\\n -webkit-transition-delay: 0s;\\r\\n -o-transition-delay: 0s;\\r\\n transition-delay: 0s;\\r\\n -webkit-transform: none !important;\\r\\n -ms-transform: none !important;\\r\\n transform: none !important;\\r\\n }\\r\\n\\r\\n .template-customizer-close-btn {\\r\\n position: absolute;\\r\\n top: 32px;\\r\\n right: 0;\\r\\n display: block;\\r\\n font-size: 20px;\\r\\n -webkit-transform: translateY(-50%);\\r\\n -ms-transform: translateY(-50%);\\r\\n transform: translateY(-50%);\\r\\n }\\r\\n\\r\\n // Customizer inner\\r\\n .template-customizer-inner {\\r\\n position: relative;\\r\\n overflow: auto;\\r\\n -webkit-box-flex: 0;\\r\\n -ms-flex: 0 1 auto;\\r\\n flex: 0 1 auto;\\r\\n opacity: 1;\\r\\n -webkit-transition: opacity 0.2s;\\r\\n -o-transition: opacity 0.2s;\\r\\n transition: opacity 0.2s;\\r\\n\\r\\n > div:first-child {\\r\\n > hr:first-of-type {\\r\\n display: none !important;\\r\\n }\\r\\n > h5:first-of-type {\\r\\n padding-top: 0 !important;\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n // Theme\\r\\n .template-customizer-themes-inner {\\r\\n position: relative;\\r\\n opacity: 1;\\r\\n -webkit-transition: opacity 0.2s;\\r\\n -o-transition: opacity 0.2s;\\r\\n transition: opacity 0.2s;\\r\\n }\\r\\n\\r\\n .template-customizer-theme-item {\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-align: center;\\r\\n align-items: center;\\r\\n -ms-flex-align: center;\\r\\n -webkit-box-flex: 1;\\r\\n -ms-flex: 1 1 100%;\\r\\n flex: 1 1 100%;\\r\\n -webkit-box-pack: justify;\\r\\n -ms-flex-pack: justify;\\r\\n justify-content: space-between;\\r\\n margin-bottom: 10px;\\r\\n padding: 0 24px;\\r\\n width: 100%;\\r\\n cursor: pointer;\\r\\n\\r\\n input {\\r\\n position: absolute;\\r\\n z-index: -1; // Put the input behind the label so it doesn't overlay text\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n input ~ span {\\r\\n opacity: 0.25;\\r\\n -webkit-transition: all 0.2s;\\r\\n -o-transition: all 0.2s;\\r\\n transition: all 0.2s;\\r\\n }\\r\\n\\r\\n .template-customizer-theme-checkmark {\\r\\n display: inline-block;\\r\\n width: 6px;\\r\\n height: 12px;\\r\\n border-right: 1px solid;\\r\\n border-bottom: 1px solid;\\r\\n opacity: 0;\\r\\n -webkit-transition: all 0.2s;\\r\\n -o-transition: all 0.2s;\\r\\n transition: all 0.2s;\\r\\n -webkit-transform: rotate(45deg);\\r\\n -ms-transform: rotate(45deg);\\r\\n transform: rotate(45deg);\\r\\n\\r\\n [dir='rtl'] & {\\r\\n border-right: none;\\r\\n border-left: 1px solid;\\r\\n -webkit-transform: rotate(-45deg);\\r\\n -ms-transform: rotate(-45deg);\\r\\n transform: rotate(-45deg);\\r\\n }\\r\\n }\\r\\n\\r\\n input:checked:not([disabled]) ~ span,\\r\\n &:hover input:not([disabled]) ~ span {\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n input:checked:not([disabled]) ~ span .template-customizer-theme-checkmark {\\r\\n opacity: 1;\\r\\n }\\r\\n }\\r\\n\\r\\n .template-customizer-theme-colors {\\r\\n span {\\r\\n display: block;\\r\\n margin: 0 1px;\\r\\n width: 10px;\\r\\n height: 10px;\\r\\n border-radius: 50%;\\r\\n -webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1) inset;\\r\\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1) inset;\\r\\n }\\r\\n }\\r\\n\\r\\n &.template-customizer-loading .template-customizer-inner,\\r\\n &.template-customizer-loading-theme .template-customizer-themes-inner {\\r\\n opacity: 0.2;\\r\\n\\r\\n &::after {\\r\\n content: '';\\r\\n position: absolute;\\r\\n top: 0;\\r\\n right: 0;\\r\\n bottom: 0;\\r\\n left: 0;\\r\\n z-index: 999;\\r\\n display: block;\\r\\n }\\r\\n }\\r\\n}\\r\\n\\r\\n.layout-menu-100vh #template-customizer {\\r\\n height: 100vh;\\r\\n}\\r\\n\\r\\n// RTL\\r\\n//\\r\\n\\r\\n[dir='rtl'] {\\r\\n #template-customizer {\\r\\n right: auto;\\r\\n left: 0;\\r\\n -webkit-transform: translateX(-($customizer-width + $customizer-spacer));\\r\\n -ms-transform: translateX(-($customizer-width + $customizer-spacer));\\r\\n transform: translateX(-($customizer-width + $customizer-spacer));\\r\\n }\\r\\n\\r\\n #template-customizer .template-customizer-open-btn {\\r\\n right: 0;\\r\\n left: auto;\\r\\n -webkit-transform: translateX($open-btn-size + $customizer-spacer + $open-btn-spacer);\\r\\n -ms-transform: translateX($open-btn-size + $customizer-spacer + $open-btn-spacer);\\r\\n transform: translateX($open-btn-size + $customizer-spacer + $open-btn-spacer);\\r\\n }\\r\\n\\r\\n #template-customizer .template-customizer-close-btn {\\r\\n right: auto;\\r\\n left: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n#template-customizer .template-customizer-layouts-options[disabled] {\\r\\n opacity: 0.5;\\r\\n pointer-events: none;\\r\\n}\\r\\n\\r\\n// ! FIX: mode switch position in RTL\\r\\n[dir='rtl'] {\\r\\n .template-customizer-t-style_switch_light {\\r\\n padding-right: 0 !important;\\r\\n }\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2pzL190ZW1wbGF0ZS1jdXN0b21pemVyL190ZW1wbGF0ZS1jdXN0b21pemVyLnNjc3MuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQzZHO0FBQ2pCO0FBQ087QUFDbkcsNENBQTRDLDZrR0FBcWhEO0FBQ2prRCw4QkFBOEIsbUZBQTJCLENBQUMsNEZBQXFDO0FBQy9GLHlDQUF5QyxzRkFBK0I7QUFDeEU7QUFDQSxzR0FBc0csMkxBQTJMLGtDQUFrQyxvQkFBb0IsV0FBVyxhQUFhLGlCQUFpQixzQkFBc0IseUJBQXlCLHlCQUF5QixrQkFBa0IsaUNBQWlDLGtDQUFrQywrQkFBK0IsMkJBQTJCLGlCQUFpQixxQkFBcUIsc0RBQXNELDhDQUE4Qyx5Q0FBeUMsb0NBQW9DLGlDQUFpQyx5Q0FBeUMscUNBQXFDLGlDQUFpQyxHQUFHLDJCQUEyQix1QkFBdUIsb0JBQW9CLHFCQUFxQixHQUFHLDZCQUE2QixtQkFBbUIsR0FBRyxrQ0FBa0MsOEJBQThCLEdBQUcsaURBQWlELG1DQUFtQyw4QkFBOEIsMkJBQTJCLHVDQUF1QyxtQ0FBbUMsK0JBQStCLEdBQUcsc0RBQXNELHVCQUF1QixlQUFlLFlBQVksZ0JBQWdCLG1CQUFtQixnQkFBZ0IsaUJBQWlCLGdDQUFnQyxtQ0FBbUMscUJBQXFCLDJCQUEyQix1QkFBdUIsK0JBQStCLHNCQUFzQixlQUFlLDZDQUE2Qyx3Q0FBd0MscUNBQXFDLHlDQUF5QyxxQ0FBcUMsaUNBQWlDLEdBQUcsZ0NBQWdDLHdEQUF3RCxpQkFBaUIsS0FBSyxHQUFHLGtFQUFrRSxxQkFBcUIsR0FBRyw4REFBOEQsa0JBQWtCLGdCQUFnQixpQkFBaUIsbUJBQW1CLCtCQUErQix1QkFBdUIsc0VBQXNFLGlCQUFpQixHQUFHLHVFQUF1RSxrQkFBa0IsR0FBRyxnRUFBZ0UscUJBQXFCLGlDQUFpQyxvQ0FBb0MsR0FBRyx3RUFBd0Usc0JBQXNCLEdBQUcsK0VBQStFLGVBQWUsaUNBQWlDLDRCQUE0Qix5QkFBeUIsdUNBQXVDLG1DQUFtQywrQkFBK0IsR0FBRyx1REFBdUQsdUJBQXVCLGNBQWMsYUFBYSxtQkFBbUIsb0JBQW9CLHdDQUF3QyxvQ0FBb0MsZ0NBQWdDLEdBQUcsbURBQW1ELHVCQUF1QixtQkFBbUIsd0JBQXdCLHVCQUF1QixtQkFBbUIsZUFBZSxxQ0FBcUMsZ0NBQWdDLDZCQUE2QixHQUFHLHdGQUF3Riw2QkFBNkIsR0FBRyx3RkFBd0YsOEJBQThCLEdBQUcsMERBQTBELHVCQUF1QixlQUFlLHFDQUFxQyxnQ0FBZ0MsNkJBQTZCLEdBQUcsd0RBQXdELHlCQUF5Qix5QkFBeUIsa0JBQWtCLDhCQUE4Qix3QkFBd0IsMkJBQTJCLHdCQUF3Qix1QkFBdUIsbUJBQW1CLDhCQUE4QiwyQkFBMkIsbUNBQW1DLHdCQUF3QixvQkFBb0IsZ0JBQWdCLG9CQUFvQixHQUFHLDhEQUE4RCx1QkFBdUIsZ0JBQWdCLGVBQWUsR0FBRyxxRUFBcUUsa0JBQWtCLGlDQUFpQyw0QkFBNEIseUJBQXlCLEdBQUcsNkZBQTZGLDBCQUEwQixlQUFlLGlCQUFpQiw0QkFBNEIsNkJBQTZCLGVBQWUsaUNBQWlDLDRCQUE0Qix5QkFBeUIscUNBQXFDLGlDQUFpQyw2QkFBNkIsR0FBRyx1R0FBdUcsdUJBQXVCLDJCQUEyQixzQ0FBc0Msa0NBQWtDLDhCQUE4QixHQUFHLHNMQUFzTCxlQUFlLEdBQUcsa0lBQWtJLGVBQWUsR0FBRywrREFBK0QsbUJBQW1CLGtCQUFrQixnQkFBZ0IsaUJBQWlCLHVCQUF1QiwyREFBMkQsbURBQW1ELEdBQUcseUtBQXlLLGlCQUFpQixHQUFHLHVMQUF1TCxrQkFBa0IsdUJBQXVCLFdBQVcsYUFBYSxjQUFjLFlBQVksaUJBQWlCLG1CQUFtQixHQUFHLDZDQUE2QyxrQkFBa0IsR0FBRyxvQ0FBb0MsZ0JBQWdCLFlBQVksMENBQTBDLHNDQUFzQyxrQ0FBa0MsR0FBRyxnRUFBZ0UsYUFBYSxlQUFlLHdDQUF3QyxvQ0FBb0MsZ0NBQWdDLEdBQUcsaUVBQWlFLGdCQUFnQixZQUFZLEdBQUcseUVBQXlFLGlCQUFpQix5QkFBeUIsR0FBRyx5REFBeUQsZ0NBQWdDLEdBQUcsT0FBTyxxSEFBcUgsS0FBSyxNQUFNLFdBQVcsV0FBVyxVQUFVLFVBQVUsVUFBVSxVQUFVLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsV0FBVyxZQUFZLGFBQWEsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLE1BQU0sTUFBTSxXQUFXLFVBQVUsV0FBVyxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sV0FBVyxNQUFNLE1BQU0sV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsTUFBTSxNQUFNLFdBQVcsV0FBVyxXQUFXLFVBQVUsVUFBVSxXQUFXLFlBQVksY0FBYyxlQUFlLGNBQWMsWUFBWSxXQUFXLFdBQVcsWUFBWSxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLE1BQU0sS0FBSyxLQUFLLFdBQVcsT0FBTyxLQUFLLE1BQU0sWUFBWSxPQUFPLE1BQU0sVUFBVSxVQUFVLFVBQVUsVUFBVSxXQUFXLFdBQVcsV0FBVyxVQUFVLE1BQU0sTUFBTSxVQUFVLE1BQU0sTUFBTSxXQUFXLGFBQWEsZUFBZSxPQUFPLE1BQU0sV0FBVyxNQUFNLE1BQU0sVUFBVSxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxNQUFNLE1BQU0sV0FBVyxVQUFVLFVBQVUsVUFBVSxVQUFVLFdBQVcsV0FBVyxXQUFXLE1BQU0sTUFBTSxXQUFXLFVBQVUsV0FBVyxXQUFXLFVBQVUsVUFBVSxXQUFXLFdBQVcsV0FBVyxNQUFNLE1BQU0sV0FBVyxNQUFNLE1BQU0sV0FBVyxNQUFNLE1BQU0sV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLE1BQU0sTUFBTSxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxXQUFXLFVBQVUsVUFBVSxVQUFVLE1BQU0sTUFBTSxX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QixTQUFTLHVGQUF1RixxQkFBcUIsU0FBUyxPQUFPLDZDQUE2QyxjQUFjLHlCQUF5Qix3QkFBd0Isc0JBQXNCLHVCQUF1Qiw2QkFBNkIsaUVBQWlFLHlEQUF5RCxTQUFTLE9BQU8sZ0pBQWdKLHFCQUFxQixzQkFBc0Isc0JBQXNCLDZCQUE2QixpQkFBaUIsbUJBQW1CLG9CQUFvQixrQkFBa0IsdUJBQXVCLHlCQUF5QixTQUFTLE9BQU8sS0FBSyxpREFBaUQsb0JBQW9CLEtBQUsseUNBQXlDLDRCQUE0QixvQkFBb0IsZ0JBQWdCLGlGQUFpRiw2RUFBNkUseUVBQXlFLE9BQU8sOERBQThELGlCQUFpQixtQkFBbUIsOEZBQThGLDBGQUEwRixzRkFBc0YsT0FBTywrREFBK0Qsb0JBQW9CLGdCQUFnQixPQUFPLEtBQUssNkVBQTZFLG1CQUFtQiwyQkFBMkIsS0FBSyw4REFBOEQsaURBQWlELG9DQUFvQyxPQUFPLEtBQUssdUJBQXVCO0FBQ3ZsbkI7QUFDQSwrREFBZSx1QkFBdUIsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL2ZyZXN0Ly4vanMvX3RlbXBsYXRlLWN1c3RvbWl6ZXIvX3RlbXBsYXRlLWN1c3RvbWl6ZXIuc2Nzcz9iMjQ1Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfR0VUX1VSTF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9nZXRVcmwuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMF9fXyA9IG5ldyBVUkwoXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURBQUFBQXdDQVlBQUFCWEF2bUhBQUFBQVhOU1IwSUFyczRjNlFBQUJDbEpSRUZVYUVQdG1ZMVJGRUVRaGJzalVDSVFJaEFpVUNOUUl4QWlFQ0lRSXhBaUVDSUFJcEFNaEFpRUNJUUkydnF1WnFuWnZwNmZoYjNTSzVtcXE2SnU5MmI2OWJ6WGY2aXMrZEkxdDErZUFmenRHNXoxQnN4c1UwUytpY2kyaVBCM3ZtNUU1RXBFRGxTVnYyZFpzd0ZJeHY4VWtaY055KzVFWkdjdUVITUNPQmVSOTUxdXZWRFZENTN2VmwrYkU4RHZEdThQeHR5bzZ0YS9Cc0J5ZzFSMTVCd3pxejUvTEpnbjM0Q1p3Zm5QSW5JNEJVQjYvMWhWMGNTalZ4Y0FNNFBiY0JaakwwWGtsSVBON0lzM2ZMQ2tkUVBwUFl3L1ZOWGo1SWhQSXZKV1JJaFNsNnA2MFVMV0JHQm0zMFZrMTIzRXdSeEN1SXpXa2tqTnJDWnl3aXRoMTBld0UxWGRxNEdvQWpDei9SVFhXNDRZbnQrTHlCRWZUNDNrWWZiajg2SjN3NVEzMkROY1JRRHB3Ritka1FYRE1leTh4ZW0wTDNURXFCNGczUFpXYWQ4YWdCTVJnWlBldTk2RDEvQzJaYmgzWDBwODBPcDF4eGxvenRONDhiTVFRTm9jNytlTEV1QW9QU1BpSURZNE9vbytFNml4ZU5YTStEM0dFUnoyVTNDSXFNc3RMSlVnSlFEZSs3ZXE2bXViME5ZRWtMQUt3RUhraUJRRENadGRkWkNaOGQ2cjdKRHdGa29BUmtsSFJQWlVGVkRWWldid0d1TnJDNEVmZE96RnJSQUJoM1ducWh2K2Q3MEFFQkxHRlJPUG1lSGxuTTgxRzY5VWRTZDZJVXVNMEdnVVZuMXVxV21nNUVtTWZCZUV5QjdQZTN0eEJrWStyR1Q4ajBKK1dYcS9CZ0RrVUNhcUxnRUFud2NSb2cwdmVNSXFGQUF3Q3kyd253K2JJMkdhR2JvQmdGOWs1TjBvMHJVU0dVYjRlTzBCZU85ai9HWWhrU0hNSE1USXF3R0FSWDZwNmErbmxQQmw4a1p1WE1EOWo2cEtmRjlhWnVhRk9kSkNFTDVENGVZYjl3Q1lWQ2FuckJtR3lpaS90SXErU0xqL0hRQkNhTTViTHp3ZlBxZFE2RnBWSHlyYTRJYnVWYlhhWTdkRVRDMkVTUE5OV2lJT2k2OUNjZGdTTVhzaDR0TlNVaWtsTWd3bUMwYU5kMDhZNVdBRVM2SEhlaE00Z3U5N3d5aEJnV3BncVhzckFTZ2xwckR5N0N3aGVoTVpPU2JLNkpNU21hK0ZpbzFLbHRDbWxCSWo3Z2ZaT0d4OHBwUVNYcmh6Rm5PaEovMzFCRGtqRkhSdk9kMDl4MG1SQkE5U0ZneFVnSHBRZzBxMHQ1eW1QTWxMK0VubGRGVGZEQTBOQW1mK09UUTBYMHNSb3VmN05Oa1lHaHJPWU5yeHRJYUdnODNNTnpWRFNlM0xYTGhQN08veXJDc0N6MXpsV1RwaldrdVpBT0JwWDN5Vm5McUkxeUxDT0tVNnFNcm1QN1NTclVFdzU0WEY0V0JJSzVGeENNT3IzbFZzZkdxTlNtUHpCWFVuSlRJWDFqeVZCcTl3TzZVT2JPcGdDNUdqTzk4dkZLblRkUU1aWHhFc1dabERpQ1pNSXhBYk54UU9xbHBWWnRvYmVqQmFaTm9CblJEek1GcGt4dlRRT0QzNkJscmN5U1p1STZwMUFDQjZMVTN3V3VmNTU4MStvSGZEMXZpODliejNuRlVDOE5tN1psUDNuS2tGYk00YldQdC9NU0Z3a2xwcllJdHd0NmNtdnBXSjJJVmNRQkN6NmJMeXNTQ3YzU2FBTkNpVHNuYU5Sck5ScU1YVlZUMS9CckFxei9idXUvWTM4QWQzS0M1UEFSZWowUUFBQUFCSlJVNUVya0pnZ2c9PVwiLCBpbXBvcnQubWV0YS51cmwpO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzBfX18gPSBfX19DU1NfTE9BREVSX0dFVF9VUkxfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8wX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi8qXFxuKiBUZW1wbGF0ZSBDdXN0b21pemVyIFN0eWxlXFxuKiovXFxuI3RlbXBsYXRlLWN1c3RvbWl6ZXIge1xcbiAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXFxcIlNlZ29lIFVJXFxcIiwgUm9ib3RvLCBcXFwiSGVsdmV0aWNhIE5ldWVcXFwiLCBBcmlhbCwgc2Fucy1zZXJpZiwgXFxcIkFwcGxlIENvbG9yIEVtb2ppXFxcIiwgXFxcIlNlZ29lIFVJIEVtb2ppXFxcIiwgXFxcIlNlZ29lIFVJIFN5bWJvbFxcXCIgIWltcG9ydGFudDtcXG4gIGZvbnQtc2l6ZTogaW5oZXJpdCAhaW1wb3J0YW50O1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICB6LWluZGV4OiA5OTk5OTk5OTtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgd2lkdGg6IDM2MHB4O1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDIwcHggMCByZ2JhKDAsIDAsIDAsIDAuMik7XFxuICBib3gtc2hhZG93OiAwIDAgMjBweCAwIHJnYmEoMCwgMCwgMCwgMC4yKTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbjtcXG4gIC1vLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW47XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzgwcHgpO1xcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgzODBweCk7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzgwcHgpO1xcbn1cXG4jdGVtcGxhdGUtY3VzdG9taXplciBoNSB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBmb250LXNpemU6IDExcHg7XFxuICBmb250LXdlaWdodDogNjAwO1xcbn1cXG4jdGVtcGxhdGUtY3VzdG9taXplciA+IGg1IHtcXG4gIGZsZXg6IDAgMCBhdXRvO1xcbn1cXG4jdGVtcGxhdGUtY3VzdG9taXplciAuZGlzYWJsZWQge1xcbiAgY29sb3I6ICNkMWQyZDMgIWltcG9ydGFudDtcXG59XFxuI3RlbXBsYXRlLWN1c3RvbWl6ZXIudGVtcGxhdGUtY3VzdG9taXplci1vcGVuIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTogMC4xcztcXG4gIC1vLXRyYW5zaXRpb24tZGVsYXk6IDAuMXM7XFxuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjFzO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcXG4gIC1tcy10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcXG4gIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG4jdGVtcGxhdGUtY3VzdG9taXplciAudGVtcGxhdGUtY3VzdG9taXplci1vcGVuLWJ0biB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDE4MHB4O1xcbiAgbGVmdDogMDtcXG4gIHotaW5kZXg6IC0xO1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICB3aWR0aDogNDJweDtcXG4gIGhlaWdodDogNDJweDtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDE1JTtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDE1JTtcXG4gIGJhY2tncm91bmQ6ICMzMzM7XFxuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgZm9udC1zaXplOiAxOHB4ICFpbXBvcnRhbnQ7XFxuICBsaW5lLWhlaWdodDogNDJweDtcXG4gIG9wYWNpdHk6IDE7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjFzIGxpbmVhciAwLjJzO1xcbiAgLW8tdHJhbnNpdGlvbjogYWxsIDAuMXMgbGluZWFyIDAuMnM7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4xcyBsaW5lYXIgMC4ycztcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC02MnB4KTtcXG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTYycHgpO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC02MnB4KTtcXG59XFxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XFxuICAjdGVtcGxhdGUtY3VzdG9taXplciAudGVtcGxhdGUtY3VzdG9taXplci1vcGVuLWJ0biB7XFxuICAgIHRvcDogMTQ1cHg7XFxuICB9XFxufVxcbi5kYXJrLXN0eWxlICN0ZW1wbGF0ZS1jdXN0b21pemVyIC50ZW1wbGF0ZS1jdXN0b21pemVyLW9wZW4tYnRuIHtcXG4gIGJhY2tncm91bmQ6ICM1NTU7XFxufVxcbiN0ZW1wbGF0ZS1jdXN0b21pemVyIC50ZW1wbGF0ZS1jdXN0b21pemVyLW9wZW4tYnRuOjpiZWZvcmUge1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICB3aWR0aDogMjJweDtcXG4gIGhlaWdodDogMjJweDtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIgKyBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8wX19fICsgXCIpO1xcbiAgbWFyZ2luOiAxMHB4O1xcbn1cXG4uY3VzdG9taXplci1oaWRlICN0ZW1wbGF0ZS1jdXN0b21pemVyIC50ZW1wbGF0ZS1jdXN0b21pemVyLW9wZW4tYnRuIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbltkaXI9cnRsXSAjdGVtcGxhdGUtY3VzdG9taXplciAudGVtcGxhdGUtY3VzdG9taXplci1vcGVuLWJ0biB7XFxuICBib3JkZXItcmFkaXVzOiAwO1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDE1JTtcXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxNSU7XFxufVxcbltkaXI9cnRsXSAjdGVtcGxhdGUtY3VzdG9taXplciAudGVtcGxhdGUtY3VzdG9taXplci1vcGVuLWJ0bjo6YmVmb3JlIHtcXG4gIG1hcmdpbi1sZWZ0OiAtMnB4O1xcbn1cXG4jdGVtcGxhdGUtY3VzdG9taXplci50ZW1wbGF0ZS1jdXN0b21pemVyLW9wZW4gLnRlbXBsYXRlLWN1c3RvbWl6ZXItb3Blbi1idG4ge1xcbiAgb3BhY2l0eTogMDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTogMHM7XFxuICAtby10cmFuc2l0aW9uLWRlbGF5OiAwcztcXG4gIHRyYW5zaXRpb24tZGVsYXk6IDBzO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcXG4gIC1tcy10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcXG4gIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG4jdGVtcGxhdGUtY3VzdG9taXplciAudGVtcGxhdGUtY3VzdG9taXplci1jbG9zZS1idG4ge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAzMnB4O1xcbiAgcmlnaHQ6IDA7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIGZvbnQtc2l6ZTogMjBweDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG59XFxuI3RlbXBsYXRlLWN1c3RvbWl6ZXIgLnRlbXBsYXRlLWN1c3RvbWl6ZXItaW5uZXIge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxuICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgLW1zLWZsZXg6IDAgMSBhdXRvO1xcbiAgZmxleDogMCAxIGF1dG87XFxuICBvcGFjaXR5OiAxO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XFxuICAtby10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XFxufVxcbiN0ZW1wbGF0ZS1jdXN0b21pemVyIC50ZW1wbGF0ZS1jdXN0b21pemVyLWlubmVyID4gZGl2OmZpcnN0LWNoaWxkID4gaHI6Zmlyc3Qtb2YtdHlwZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbiN0ZW1wbGF0ZS1jdXN0b21pemVyIC50ZW1wbGF0ZS1jdXN0b21pemVyLWlubmVyID4gZGl2OmZpcnN0LWNoaWxkID4gaDU6Zmlyc3Qtb2YtdHlwZSB7XFxuICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xcbn1cXG4jdGVtcGxhdGUtY3VzdG9taXplciAudGVtcGxhdGUtY3VzdG9taXplci10aGVtZXMtaW5uZXIge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgb3BhY2l0eTogMTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xcbiAgLW8tdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xcbn1cXG4jdGVtcGxhdGUtY3VzdG9taXplciAudGVtcGxhdGUtY3VzdG9taXplci10aGVtZS1pdGVtIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gIC1tcy1mbGV4OiAxIDEgMTAwJTtcXG4gIGZsZXg6IDEgMSAxMDAlO1xcbiAgLXdlYmtpdC1ib3gtcGFjazoganVzdGlmeTtcXG4gIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xcbiAgcGFkZGluZzogMCAyNHB4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbiN0ZW1wbGF0ZS1jdXN0b21pemVyIC50ZW1wbGF0ZS1jdXN0b21pemVyLXRoZW1lLWl0ZW0gaW5wdXQge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgei1pbmRleDogLTE7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4jdGVtcGxhdGUtY3VzdG9taXplciAudGVtcGxhdGUtY3VzdG9taXplci10aGVtZS1pdGVtIGlucHV0IH4gc3BhbiB7XFxuICBvcGFjaXR5OiAwLjI1O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycztcXG4gIC1vLXRyYW5zaXRpb246IGFsbCAwLjJzO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XFxufVxcbiN0ZW1wbGF0ZS1jdXN0b21pemVyIC50ZW1wbGF0ZS1jdXN0b21pemVyLXRoZW1lLWl0ZW0gLnRlbXBsYXRlLWN1c3RvbWl6ZXItdGhlbWUtY2hlY2ttYXJrIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHdpZHRoOiA2cHg7XFxuICBoZWlnaHQ6IDEycHg7XFxuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZDtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDtcXG4gIG9wYWNpdHk6IDA7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjJzO1xcbiAgLW8tdHJhbnNpdGlvbjogYWxsIDAuMnM7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xcbiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcXG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcXG59XFxuW2Rpcj1ydGxdICN0ZW1wbGF0ZS1jdXN0b21pemVyIC50ZW1wbGF0ZS1jdXN0b21pemVyLXRoZW1lLWl0ZW0gLnRlbXBsYXRlLWN1c3RvbWl6ZXItdGhlbWUtY2hlY2ttYXJrIHtcXG4gIGJvcmRlci1yaWdodDogbm9uZTtcXG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQ7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XFxuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcXG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XFxufVxcbiN0ZW1wbGF0ZS1jdXN0b21pemVyIC50ZW1wbGF0ZS1jdXN0b21pemVyLXRoZW1lLWl0ZW0gaW5wdXQ6Y2hlY2tlZDpub3QoW2Rpc2FibGVkXSkgfiBzcGFuLCAjdGVtcGxhdGUtY3VzdG9taXplciAudGVtcGxhdGUtY3VzdG9taXplci10aGVtZS1pdGVtOmhvdmVyIGlucHV0Om5vdChbZGlzYWJsZWRdKSB+IHNwYW4ge1xcbiAgb3BhY2l0eTogMTtcXG59XFxuI3RlbXBsYXRlLWN1c3RvbWl6ZXIgLnRlbXBsYXRlLWN1c3RvbWl6ZXItdGhlbWUtaXRlbSBpbnB1dDpjaGVja2VkOm5vdChbZGlzYWJsZWRdKSB+IHNwYW4gLnRlbXBsYXRlLWN1c3RvbWl6ZXItdGhlbWUtY2hlY2ttYXJrIHtcXG4gIG9wYWNpdHk6IDE7XFxufVxcbiN0ZW1wbGF0ZS1jdXN0b21pemVyIC50ZW1wbGF0ZS1jdXN0b21pemVyLXRoZW1lLWNvbG9ycyBzcGFuIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgbWFyZ2luOiAwIDFweDtcXG4gIHdpZHRoOiAxMHB4O1xcbiAgaGVpZ2h0OiAxMHB4O1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjEpIGluc2V0O1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC4xKSBpbnNldDtcXG59XFxuI3RlbXBsYXRlLWN1c3RvbWl6ZXIudGVtcGxhdGUtY3VzdG9taXplci1sb2FkaW5nIC50ZW1wbGF0ZS1jdXN0b21pemVyLWlubmVyLCAjdGVtcGxhdGUtY3VzdG9taXplci50ZW1wbGF0ZS1jdXN0b21pemVyLWxvYWRpbmctdGhlbWUgLnRlbXBsYXRlLWN1c3RvbWl6ZXItdGhlbWVzLWlubmVyIHtcXG4gIG9wYWNpdHk6IDAuMjtcXG59XFxuI3RlbXBsYXRlLWN1c3RvbWl6ZXIudGVtcGxhdGUtY3VzdG9taXplci1sb2FkaW5nIC50ZW1wbGF0ZS1jdXN0b21pemVyLWlubmVyOjphZnRlciwgI3RlbXBsYXRlLWN1c3RvbWl6ZXIudGVtcGxhdGUtY3VzdG9taXplci1sb2FkaW5nLXRoZW1lIC50ZW1wbGF0ZS1jdXN0b21pemVyLXRoZW1lcy1pbm5lcjo6YWZ0ZXIge1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICB6LWluZGV4OiA5OTk7XFxuICBkaXNwbGF5OiBibG9jaztcXG59XFxuXFxuLmxheW91dC1tZW51LTEwMHZoICN0ZW1wbGF0ZS1jdXN0b21pemVyIHtcXG4gIGhlaWdodDogMTAwdmg7XFxufVxcblxcbltkaXI9cnRsXSAjdGVtcGxhdGUtY3VzdG9taXplciB7XFxuICByaWdodDogYXV0bztcXG4gIGxlZnQ6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzgwcHgpO1xcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzgwcHgpO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zODBweCk7XFxufVxcbltkaXI9cnRsXSAjdGVtcGxhdGUtY3VzdG9taXplciAudGVtcGxhdGUtY3VzdG9taXplci1vcGVuLWJ0biB7XFxuICByaWdodDogMDtcXG4gIGxlZnQ6IGF1dG87XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCg2MnB4KTtcXG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNjJweCk7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNjJweCk7XFxufVxcbltkaXI9cnRsXSAjdGVtcGxhdGUtY3VzdG9taXplciAudGVtcGxhdGUtY3VzdG9taXplci1jbG9zZS1idG4ge1xcbiAgcmlnaHQ6IGF1dG87XFxuICBsZWZ0OiAwO1xcbn1cXG5cXG4jdGVtcGxhdGUtY3VzdG9taXplciAudGVtcGxhdGUtY3VzdG9taXplci1sYXlvdXRzLW9wdGlvbnNbZGlzYWJsZWRdIHtcXG4gIG9wYWNpdHk6IDAuNTtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG5cXG5bZGlyPXJ0bF0gLnRlbXBsYXRlLWN1c3RvbWl6ZXItdC1zdHlsZV9zd2l0Y2hfbGlnaHQge1xcbiAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xcbn1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9qcy9fdGVtcGxhdGUtY3VzdG9taXplci9fdGVtcGxhdGUtY3VzdG9taXplci5zY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBOztFQUFBO0FBbUJBO0VBQ0UsNEtBQUE7RUFFQSw2QkFBQTtFQUNBLGVBQUE7RUFDQSxNQUFBO0VBQ0EsUUFBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtFQUNBLG9CQUFBO0VBQ0Esb0JBQUE7RUFDQSxhQUFBO0VBQ0EsNEJBQUE7RUFDQSw2QkFBQTtFQUNBLDBCQUFBO0VBQ0Esc0JBQUE7RUFDQSxZQS9CaUI7RUFnQ2pCLGdCQUFBO0VBQ0EsaURBQUE7RUFDQSx5Q0FBQTtFQUNBLG9DQUFBO0VBQ0EsK0JBQUE7RUFDQSw0QkFBQTtFQUNBLG9DQUFBO0VBQ0EsZ0NBQUE7RUFDQSw0QkFBQTtBQWhCRjtBQWtC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aEROOztBQXFEQTtFQUNFLGFBQUE7QUFsREY7O0FBeURFO0VBQ0UsV0FBQTtFQUNBLE9BQUE7RUFDQSxxQ0FBQTtFQUNBLGlDQUFBO0VBQ0EsNkJBQUE7QUF0REo7QUF5REU7RUFDRSxRQUFBO0VBQ0EsVUFBQTtFQUNBLG1DQUFBO0VBQ0EsK0JBQUE7RUFDQSwyQkFBQTtBQXZESjtBQTBERTtFQUNFLFdBQUE7RUFDQSxPQUFBO0FBeERKOztBQTREQTtFQUNFLFlBQUE7RUFDQSxvQkFBQTtBQXpERjs7QUE4REU7RUFDRSwyQkFBQTtBQTNESlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIvKlxcclxcbiogVGVtcGxhdGUgQ3VzdG9taXplciBTdHlsZVxcclxcbioqL1xcclxcblxcclxcbiRjdXN0b21pemVyLXdpZHRoOiAzNjBweDtcXHJcXG4kY3VzdG9taXplci1zcGFjZXI6IDIwcHg7XFxyXFxuJGN1c3RvbWl6ZXItZm9udC1zaXplOiBpbmhlcml0O1xcclxcblxcclxcbiRvcGVuLWJ0bi1zaXplOiA0MnB4O1xcclxcbiRvcGVuLWJ0bi1zcGFjZXI6IDA7XFxyXFxuJG9wZW4tYnRuLWZvbnQtc2l6ZTogMThweDtcXHJcXG4kb3Blbi1idG4tdG9wOiAxODBweDtcXHJcXG4kb3Blbi1idG4tdG9wLW1kOiAxNDVweDtcXHJcXG5cXHJcXG4kb3Blbi1idG4tYmc6ICMzMzM7XFxyXFxuJG9wZW4tYnRuLWJnLWRhcms6ICM1NTU7XFxyXFxuJG9wZW4tYnRuLWNvbG9yOiAjZmZmO1xcclxcbiRvcGVuLWJ0bi1ib3JkZXItcmFkaXVzOiAxNSU7XFxyXFxuXFxyXFxuI3RlbXBsYXRlLWN1c3RvbWl6ZXIge1xcclxcbiAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgc2Fucy1zZXJpZixcXHJcXG4gICAgJ0FwcGxlIENvbG9yIEVtb2ppJywgJ1NlZ29lIFVJIEVtb2ppJywgJ1NlZ29lIFVJIFN5bWJvbCcgIWltcG9ydGFudDtcXHJcXG4gIGZvbnQtc2l6ZTogJGN1c3RvbWl6ZXItZm9udC1zaXplICFpbXBvcnRhbnQ7XFxyXFxuICBwb3NpdGlvbjogZml4ZWQ7XFxyXFxuICB0b3A6IDA7XFxyXFxuICByaWdodDogMDtcXHJcXG4gIGhlaWdodDogMTAwJTtcXHJcXG4gIHotaW5kZXg6IDk5OTk5OTk5O1xcclxcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxyXFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXHJcXG4gIGRpc3BsYXk6IGZsZXg7XFxyXFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcclxcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxyXFxuICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXHJcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxyXFxuICB3aWR0aDogJGN1c3RvbWl6ZXItd2lkdGg7XFxyXFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcclxcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMjBweCAwIHJnYmEoMCwgMCwgMCwgMC4yKTtcXHJcXG4gIGJveC1zaGFkb3c6IDAgMCAyMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpO1xcclxcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluO1xcclxcbiAgLW8tdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbjtcXHJcXG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW47XFxyXFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgkY3VzdG9taXplci13aWR0aCArICRjdXN0b21pemVyLXNwYWNlcik7XFxyXFxuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRjdXN0b21pemVyLXdpZHRoICsgJGN1c3RvbWl6ZXItc3BhY2VyKTtcXHJcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkY3VzdG9taXplci13aWR0aCArICRjdXN0b21pemVyLXNwYWNlcik7XFxyXFxuXFxyXFxuICBoNSB7XFxyXFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXHJcXG4gICAgZm9udC1zaXplOiAxMXB4O1xcclxcbiAgICBmb250LXdlaWdodDogNjAwO1xcclxcbiAgfVxcclxcblxcclxcbiAgPiBoNSB7XFxyXFxuICAgIGZsZXg6IDAgMCBhdXRvO1xcclxcbiAgfVxcclxcblxcclxcbiAgLmRpc2FibGVkIHtcXHJcXG4gICAgY29sb3I6ICNkMWQyZDMgIWltcG9ydGFudDtcXHJcXG4gIH1cXHJcXG5cXHJcXG4gICYudGVtcGxhdGUtY3VzdG9taXplci1vcGVuIHtcXHJcXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OiAwLjFzO1xcclxcbiAgICAtby10cmFuc2l0aW9uLWRlbGF5OiAwLjFzO1xcclxcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjFzO1xcclxcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xcclxcbiAgICAtbXMtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XFxyXFxuICAgIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xcclxcbiAgfVxcclxcblxcclxcbiAgLy8gQ3VzdG9taXplciBidXR0b25cXHJcXG5cXHJcXG4gIC50ZW1wbGF0ZS1jdXN0b21pemVyLW9wZW4tYnRuIHtcXHJcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcclxcbiAgICB0b3A6ICRvcGVuLWJ0bi10b3A7XFxyXFxuXFxyXFxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xcclxcbiAgICAgIHRvcDogJG9wZW4tYnRuLXRvcC1tZDtcXHJcXG4gICAgfVxcclxcbiAgICBsZWZ0OiAwO1xcclxcbiAgICB6LWluZGV4OiAtMTtcXHJcXG4gICAgZGlzcGxheTogYmxvY2s7XFxyXFxuICAgIHdpZHRoOiAkb3Blbi1idG4tc2l6ZTtcXHJcXG4gICAgaGVpZ2h0OiAkb3Blbi1idG4tc2l6ZTtcXHJcXG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJG9wZW4tYnRuLWJvcmRlci1yYWRpdXM7XFxyXFxuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRvcGVuLWJ0bi1ib3JkZXItcmFkaXVzO1xcclxcbiAgICBiYWNrZ3JvdW5kOiAkb3Blbi1idG4tYmc7XFxyXFxuICAgIGNvbG9yOiAkb3Blbi1idG4tY29sb3IgIWltcG9ydGFudDtcXHJcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xcclxcbiAgICBmb250LXNpemU6ICRvcGVuLWJ0bi1mb250LXNpemUgIWltcG9ydGFudDtcXHJcXG4gICAgbGluZS1oZWlnaHQ6ICRvcGVuLWJ0bi1zaXplO1xcclxcbiAgICBvcGFjaXR5OiAxO1xcclxcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjFzIGxpbmVhciAwLjJzO1xcclxcbiAgICAtby10cmFuc2l0aW9uOiBhbGwgMC4xcyBsaW5lYXIgMC4ycztcXHJcXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMXMgbGluZWFyIDAuMnM7XFxyXFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0oJG9wZW4tYnRuLXNpemUgKyAkY3VzdG9taXplci1zcGFjZXIgKyAkb3Blbi1idG4tc3BhY2VyKSk7XFxyXFxuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSgkb3Blbi1idG4tc2l6ZSArICRjdXN0b21pemVyLXNwYWNlciArICRvcGVuLWJ0bi1zcGFjZXIpKTtcXHJcXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0oJG9wZW4tYnRuLXNpemUgKyAkY3VzdG9taXplci1zcGFjZXIgKyAkb3Blbi1idG4tc3BhY2VyKSk7XFxyXFxuXFxyXFxuICAgIC5kYXJrLXN0eWxlICYge1xcclxcbiAgICAgIGJhY2tncm91bmQ6ICRvcGVuLWJ0bi1iZy1kYXJrO1xcclxcbiAgICB9XFxyXFxuICAgICY6OmJlZm9yZSB7XFxyXFxuICAgICAgY29udGVudDogJyc7XFxyXFxuICAgICAgd2lkdGg6IDIycHg7XFxyXFxuICAgICAgaGVpZ2h0OiAyMnB4O1xcclxcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xcclxcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xcclxcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXHJcXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBREFBQUFBd0NBWUFBQUJYQXZtSEFBQUFBWE5TUjBJQXJzNGM2UUFBQkNsSlJFRlVhRVB0bVkxUkZFRVFoYnNqVUNJUUloQWlVQ05RSXhBaUVDSVFJeEFpRUNJQUlwQU1oQWlFQ0lRSTJ2cXVacW5adnA2ZmhiM1NLNW1xcTZKdTkyYjY5YnpYZjZpcytkSTF0MStlQWZ6dEc1ejFCc3hzVTBTK2ljaTJpUEIzdm01RTVFcEVEbFNWdjJkWnN3Rkl4djhVa1pjTnkrNUVaR2N1RUhNQ09CZVI5NTF1dlZEVkQ1M3ZWbCtiRThEdkR1OFB4dHlvNnRhL0JzQnlnMVIxNUJ3enF6NS9MSmduMzRDWndmblBJbkk0QlVCNi8xaFYwY1NqVnhjQU00UGJjQlpqTDBYa2xJUE43SXMzZkxDa2RRUHBQWXcvVk5YajVJaFBJdkpXUkloU2w2cDYwVUxXQkdCbTMwVmsxMjNFd1J4Q3VJeldra2pOckNaeXdpdGgxMGV3RTFYZHE0R29BakN6L1JUWFc0NFludCtMeUJFZlQ0M2tZZmJqODZKM3c1UTMyRE5jUlFEcHdGK2RrUVhETWV5OHhlbTBMM1RFcUI0ZzNQWldhZDhhZ0JNUmdaUGV1OTZEMS9DMlpiaDNYMHA4ME9wMXh4bG96dE40OGJNUVFOb2M3K2VMRXVBb1BTUGlJRFk0T29vK0U2aXhlTlhNK0QzR0VSejJVM0NJcU1zdExKVWdKUURlKzdlcTZtdWIwTllFa0xBS3dFSGtpQlFEQ1p0ZGRaQ1o4ZDZyN0pEd0Zrb0FSa2xIUlBaVUZWRFZaV2J3R3VOckM0RWZkT3pGclJBQmgzV25xaHYrZDcwQUVCTEdGUk9QbWVIbG5NODFHNjlVZFNkNklVdU0wR2dVVm4xdXFXbWc1RW1NZkJlRXlCN1BlM3R4QmtZK3JHVDhqMEorV1hxL0JnRGtVQ2FxTGdFQW53Y1JvZzB2ZU1JcUZBQXdDeTJ3bncrYkkyR2FHYm9CZ0Y5azVOMG8wclVTR1ViNGVPMEJlTzlqL0dZaGtTSE1ITVRJcXdHQVJYNnA2YStubFBCbDhrWnVYTUQ5ajZwS2ZGOWFadWFGT2RKQ0VMNUQ0ZVliOXdDWVZDYW5yQm1HeWlpL3RJcStTTGovSFFCQ2FNNWJMendmUHFkUTZGcFZIeXJhNElidVZiWGFZN2RFVEMyRVNQTk5XaUlPaTY5Q2NkZ1NNWHNoNHROU1Vpa2xNZ3dtQzBhTmQwOFk1V0FFUzZISGVoTTRndTk3d3loQmdXcGdxWHNyQVNnbHByRHk3Q3doZWhNWk9TYks2Sk1TbWErRmlvMUtsdENtbEJJajdnZlpPR3g4cHBRU1hyaHpGbk9oSi8zMUJEa2pGSFJ2T2QwOXgwbVJCQTlTRmd4VWdIcFFnMHEwdDV5bVBNbEwrRW5sZEZUZkRBME5BbWYrT1RRMFgwc1JvdWY3Tk5rWUdock9ZTnJ4dElhR2c4M01OelZEU2UzTFhMaFA3Ty95ckNzQ3oxemxXVHBqV2t1WkFPQnBYM3lWbkxxSTF5TENPS1U2cU1ybVA3U1NyVUV3NTRYRjRXQklLNUZ4Q01PcjNsVnNmR3FOU21QekJYVW5KVElYMWp5VkJxOXdPNlVPYk9wZ0M1R2pPOTh2RktuVGRRTVpYeEVzV1psRGlDWk1JeEFiTnhRT3FscFZadG9iZWpCYVpOb0JuUkR6TUZwa3h2VFFPRDM2QmxyY3lTWnVJNnAxQUNCNkxVM3dXdWY1NTgxK29IZkQxdmk4OWJ6M25GVUM4Tm03WmxQM25La0ZiTTRiV1B0L01TRndrbHByWUl0d3Q2Y212cFdKMklWY1FCQ3o2Ykx5c1NDdjNTYUFOQ2lUc25hTlJyTlJxTVhWVlQxL0JyQXF6L2J1dS9ZMzhBZDNLQzVQQVJlajBRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XFxyXFxuICAgICAgbWFyZ2luOiAxMHB4O1xcclxcbiAgICB9XFxyXFxuXFxyXFxuICAgIC8vIEN1c3RvbWl6ZXIgSGlkZGVuXFxyXFxuICAgIC5jdXN0b21pemVyLWhpZGUgJiB7XFxyXFxuICAgICAgZGlzcGxheTogbm9uZTtcXHJcXG4gICAgfVxcclxcblxcclxcbiAgICBbZGlyPSdydGwnXSAmIHtcXHJcXG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xcclxcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkb3Blbi1idG4tYm9yZGVyLXJhZGl1cztcXHJcXG4gICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJG9wZW4tYnRuLWJvcmRlci1yYWRpdXM7XFxyXFxuXFxyXFxuICAgICAgJjo6YmVmb3JlIHtcXHJcXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMnB4O1xcclxcbiAgICAgIH1cXHJcXG4gICAgfVxcclxcbiAgfVxcclxcblxcclxcbiAgJi50ZW1wbGF0ZS1jdXN0b21pemVyLW9wZW4gLnRlbXBsYXRlLWN1c3RvbWl6ZXItb3Blbi1idG4ge1xcclxcbiAgICBvcGFjaXR5OiAwO1xcclxcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IDBzO1xcclxcbiAgICAtby10cmFuc2l0aW9uLWRlbGF5OiAwcztcXHJcXG4gICAgdHJhbnNpdGlvbi1kZWxheTogMHM7XFxyXFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XFxyXFxuICAgIC1tcy10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcXHJcXG4gICAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XFxyXFxuICB9XFxyXFxuXFxyXFxuICAudGVtcGxhdGUtY3VzdG9taXplci1jbG9zZS1idG4ge1xcclxcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxyXFxuICAgIHRvcDogMzJweDtcXHJcXG4gICAgcmlnaHQ6IDA7XFxyXFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcclxcbiAgICBmb250LXNpemU6IDIwcHg7XFxyXFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcclxcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcclxcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XFxyXFxuICB9XFxyXFxuXFxyXFxuICAvLyBDdXN0b21pemVyIGlubmVyXFxyXFxuICAudGVtcGxhdGUtY3VzdG9taXplci1pbm5lciB7XFxyXFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXHJcXG4gICAgb3ZlcmZsb3c6IGF1dG87XFxyXFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxyXFxuICAgIC1tcy1mbGV4OiAwIDEgYXV0bztcXHJcXG4gICAgZmxleDogMCAxIGF1dG87XFxyXFxuICAgIG9wYWNpdHk6IDE7XFxyXFxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xcclxcbiAgICAtby10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XFxyXFxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycztcXHJcXG5cXHJcXG4gICAgPiBkaXY6Zmlyc3QtY2hpbGQge1xcclxcbiAgICAgID4gaHI6Zmlyc3Qtb2YtdHlwZSB7XFxyXFxuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxyXFxuICAgICAgfVxcclxcbiAgICAgID4gaDU6Zmlyc3Qtb2YtdHlwZSB7XFxyXFxuICAgICAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xcclxcbiAgICAgIH1cXHJcXG4gICAgfVxcclxcbiAgfVxcclxcblxcclxcbiAgLy8gVGhlbWVcXHJcXG4gIC50ZW1wbGF0ZS1jdXN0b21pemVyLXRoZW1lcy1pbm5lciB7XFxyXFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXHJcXG4gICAgb3BhY2l0eTogMTtcXHJcXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XFxyXFxuICAgIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMC4ycztcXHJcXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xcclxcbiAgfVxcclxcblxcclxcbiAgLnRlbXBsYXRlLWN1c3RvbWl6ZXItdGhlbWUtaXRlbSB7XFxyXFxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcclxcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXHJcXG4gICAgZGlzcGxheTogZmxleDtcXHJcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXHJcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXHJcXG4gICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXHJcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXHJcXG4gICAgLW1zLWZsZXg6IDEgMSAxMDAlO1xcclxcbiAgICBmbGV4OiAxIDEgMTAwJTtcXHJcXG4gICAgLXdlYmtpdC1ib3gtcGFjazoganVzdGlmeTtcXHJcXG4gICAgLW1zLWZsZXgtcGFjazoganVzdGlmeTtcXHJcXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcclxcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xcclxcbiAgICBwYWRkaW5nOiAwIDI0cHg7XFxyXFxuICAgIHdpZHRoOiAxMDAlO1xcclxcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxyXFxuXFxyXFxuICAgIGlucHV0IHtcXHJcXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxyXFxuICAgICAgei1pbmRleDogLTE7IC8vIFB1dCB0aGUgaW5wdXQgYmVoaW5kIHRoZSBsYWJlbCBzbyBpdCBkb2Vzbid0IG92ZXJsYXkgdGV4dFxcclxcbiAgICAgIG9wYWNpdHk6IDA7XFxyXFxuICAgIH1cXHJcXG5cXHJcXG4gICAgaW5wdXQgfiBzcGFuIHtcXHJcXG4gICAgICBvcGFjaXR5OiAwLjI1O1xcclxcbiAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnM7XFxyXFxuICAgICAgLW8tdHJhbnNpdGlvbjogYWxsIDAuMnM7XFxyXFxuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XFxyXFxuICAgIH1cXHJcXG5cXHJcXG4gICAgLnRlbXBsYXRlLWN1c3RvbWl6ZXItdGhlbWUtY2hlY2ttYXJrIHtcXHJcXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxyXFxuICAgICAgd2lkdGg6IDZweDtcXHJcXG4gICAgICBoZWlnaHQ6IDEycHg7XFxyXFxuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQ7XFxyXFxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xcclxcbiAgICAgIG9wYWNpdHk6IDA7XFxyXFxuICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycztcXHJcXG4gICAgICAtby10cmFuc2l0aW9uOiBhbGwgMC4ycztcXHJcXG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcXHJcXG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcXHJcXG4gICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xcclxcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcXHJcXG5cXHJcXG4gICAgICBbZGlyPSdydGwnXSAmIHtcXHJcXG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcXHJcXG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQ7XFxyXFxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XFxyXFxuICAgICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcXHJcXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XFxyXFxuICAgICAgfVxcclxcbiAgICB9XFxyXFxuXFxyXFxuICAgIGlucHV0OmNoZWNrZWQ6bm90KFtkaXNhYmxlZF0pIH4gc3BhbixcXHJcXG4gICAgJjpob3ZlciBpbnB1dDpub3QoW2Rpc2FibGVkXSkgfiBzcGFuIHtcXHJcXG4gICAgICBvcGFjaXR5OiAxO1xcclxcbiAgICB9XFxyXFxuXFxyXFxuICAgIGlucHV0OmNoZWNrZWQ6bm90KFtkaXNhYmxlZF0pIH4gc3BhbiAudGVtcGxhdGUtY3VzdG9taXplci10aGVtZS1jaGVja21hcmsge1xcclxcbiAgICAgIG9wYWNpdHk6IDE7XFxyXFxuICAgIH1cXHJcXG4gIH1cXHJcXG5cXHJcXG4gIC50ZW1wbGF0ZS1jdXN0b21pemVyLXRoZW1lLWNvbG9ycyB7XFxyXFxuICAgIHNwYW4ge1xcclxcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xcclxcbiAgICAgIG1hcmdpbjogMCAxcHg7XFxyXFxuICAgICAgd2lkdGg6IDEwcHg7XFxyXFxuICAgICAgaGVpZ2h0OiAxMHB4O1xcclxcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcXHJcXG4gICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDAsIDAsIDAsIDAuMSkgaW5zZXQ7XFxyXFxuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC4xKSBpbnNldDtcXHJcXG4gICAgfVxcclxcbiAgfVxcclxcblxcclxcbiAgJi50ZW1wbGF0ZS1jdXN0b21pemVyLWxvYWRpbmcgLnRlbXBsYXRlLWN1c3RvbWl6ZXItaW5uZXIsXFxyXFxuICAmLnRlbXBsYXRlLWN1c3RvbWl6ZXItbG9hZGluZy10aGVtZSAudGVtcGxhdGUtY3VzdG9taXplci10aGVtZXMtaW5uZXIge1xcclxcbiAgICBvcGFjaXR5OiAwLjI7XFxyXFxuXFxyXFxuICAgICY6OmFmdGVyIHtcXHJcXG4gICAgICBjb250ZW50OiAnJztcXHJcXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxyXFxuICAgICAgdG9wOiAwO1xcclxcbiAgICAgIHJpZ2h0OiAwO1xcclxcbiAgICAgIGJvdHRvbTogMDtcXHJcXG4gICAgICBsZWZ0OiAwO1xcclxcbiAgICAgIHotaW5kZXg6IDk5OTtcXHJcXG4gICAgICBkaXNwbGF5OiBibG9jaztcXHJcXG4gICAgfVxcclxcbiAgfVxcclxcbn1cXHJcXG5cXHJcXG4ubGF5b3V0LW1lbnUtMTAwdmggI3RlbXBsYXRlLWN1c3RvbWl6ZXIge1xcclxcbiAgaGVpZ2h0OiAxMDB2aDtcXHJcXG59XFxyXFxuXFxyXFxuLy8gUlRMXFxyXFxuLy9cXHJcXG5cXHJcXG5bZGlyPSdydGwnXSB7XFxyXFxuICAjdGVtcGxhdGUtY3VzdG9taXplciB7XFxyXFxuICAgIHJpZ2h0OiBhdXRvO1xcclxcbiAgICBsZWZ0OiAwO1xcclxcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtKCRjdXN0b21pemVyLXdpZHRoICsgJGN1c3RvbWl6ZXItc3BhY2VyKSk7XFxyXFxuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSgkY3VzdG9taXplci13aWR0aCArICRjdXN0b21pemVyLXNwYWNlcikpO1xcclxcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSgkY3VzdG9taXplci13aWR0aCArICRjdXN0b21pemVyLXNwYWNlcikpO1xcclxcbiAgfVxcclxcblxcclxcbiAgI3RlbXBsYXRlLWN1c3RvbWl6ZXIgLnRlbXBsYXRlLWN1c3RvbWl6ZXItb3Blbi1idG4ge1xcclxcbiAgICByaWdodDogMDtcXHJcXG4gICAgbGVmdDogYXV0bztcXHJcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJG9wZW4tYnRuLXNpemUgKyAkY3VzdG9taXplci1zcGFjZXIgKyAkb3Blbi1idG4tc3BhY2VyKTtcXHJcXG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgkb3Blbi1idG4tc2l6ZSArICRjdXN0b21pemVyLXNwYWNlciArICRvcGVuLWJ0bi1zcGFjZXIpO1xcclxcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJG9wZW4tYnRuLXNpemUgKyAkY3VzdG9taXplci1zcGFjZXIgKyAkb3Blbi1idG4tc3BhY2VyKTtcXHJcXG4gIH1cXHJcXG5cXHJcXG4gICN0ZW1wbGF0ZS1jdXN0b21pemVyIC50ZW1wbGF0ZS1jdXN0b21pemVyLWNsb3NlLWJ0biB7XFxyXFxuICAgIHJpZ2h0OiBhdXRvO1xcclxcbiAgICBsZWZ0OiAwO1xcclxcbiAgfVxcclxcbn1cXHJcXG5cXHJcXG4jdGVtcGxhdGUtY3VzdG9taXplciAudGVtcGxhdGUtY3VzdG9taXplci1sYXlvdXRzLW9wdGlvbnNbZGlzYWJsZWRdIHtcXHJcXG4gIG9wYWNpdHk6IDAuNTtcXHJcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcclxcbn1cXHJcXG5cXHJcXG4vLyAhIEZJWDogbW9kZSBzd2l0Y2ggcG9zaXRpb24gaW4gUlRMXFxyXFxuW2Rpcj0ncnRsJ10ge1xcclxcbiAgLnRlbXBsYXRlLWN1c3RvbWl6ZXItdC1zdHlsZV9zd2l0Y2hfbGlnaHQge1xcclxcbiAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XFxyXFxuICB9XFxyXFxufVxcclxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./js/_template-customizer/_template-customizer.scss\n");
/***/ }),
/***/ "./node_modules/css-loader/dist/runtime/api.js":
/*!*****************************************************!*\
!*** ./node_modules/css-loader/dist/runtime/api.js ***!
\*****************************************************/
/***/ (function(module) {
eval("\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxREFBcUQ7QUFDckQ7QUFDQTtBQUNBLGdEQUFnRDtBQUNoRDtBQUNBO0FBQ0EscUZBQXFGO0FBQ3JGO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixpQkFBaUI7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLHFCQUFxQjtBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVixzRkFBc0YscUJBQXFCO0FBQzNHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVixpREFBaUQscUJBQXFCO0FBQ3RFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVixzREFBc0QscUJBQXFCO0FBQzNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mcmVzdC8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanM/MjRmYiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuLypcbiAgTUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcbiAgQXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcpIHtcbiAgdmFyIGxpc3QgPSBbXTtcblxuICAvLyByZXR1cm4gdGhlIGxpc3Qgb2YgbW9kdWxlcyBhcyBjc3Mgc3RyaW5nXG4gIGxpc3QudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHZhciBjb250ZW50ID0gXCJcIjtcbiAgICAgIHZhciBuZWVkTGF5ZXIgPSB0eXBlb2YgaXRlbVs1XSAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgICAgIGlmIChpdGVtWzRdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChpdGVtWzRdLCBcIikge1wiKTtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAbWVkaWEgXCIuY29uY2F0KGl0ZW1bMl0sIFwiIHtcIik7XG4gICAgICB9XG4gICAgICBpZiAobmVlZExheWVyKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAbGF5ZXJcIi5jb25jYXQoaXRlbVs1XS5sZW5ndGggPiAwID8gXCIgXCIuY29uY2F0KGl0ZW1bNV0pIDogXCJcIiwgXCIge1wiKTtcbiAgICAgIH1cbiAgICAgIGNvbnRlbnQgKz0gY3NzV2l0aE1hcHBpbmdUb1N0cmluZyhpdGVtKTtcbiAgICAgIGlmIChuZWVkTGF5ZXIpIHtcbiAgICAgICAgY29udGVudCArPSBcIn1cIjtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJ9XCI7XG4gICAgICB9XG4gICAgICBpZiAoaXRlbVs0XSkge1xuICAgICAgICBjb250ZW50ICs9IFwifVwiO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfSkuam9pbihcIlwiKTtcbiAgfTtcblxuICAvLyBpbXBvcnQgYSBsaXN0IG9mIG1vZHVsZXMgaW50byB0aGUgbGlzdFxuICBsaXN0LmkgPSBmdW5jdGlvbiBpKG1vZHVsZXMsIG1lZGlhLCBkZWR1cGUsIHN1cHBvcnRzLCBsYXllcikge1xuICAgIGlmICh0eXBlb2YgbW9kdWxlcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgbW9kdWxlcyA9IFtbbnVsbCwgbW9kdWxlcywgdW5kZWZpbmVkXV07XG4gICAgfVxuICAgIHZhciBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzID0ge307XG4gICAgaWYgKGRlZHVwZSkge1xuICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCB0aGlzLmxlbmd0aDsgaysrKSB7XG4gICAgICAgIHZhciBpZCA9IHRoaXNba11bMF07XG4gICAgICAgIGlmIChpZCAhPSBudWxsKSB7XG4gICAgICAgICAgYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpZF0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAodmFyIF9rID0gMDsgX2sgPCBtb2R1bGVzLmxlbmd0aDsgX2srKykge1xuICAgICAgdmFyIGl0ZW0gPSBbXS5jb25jYXQobW9kdWxlc1tfa10pO1xuICAgICAgaWYgKGRlZHVwZSAmJiBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzW2l0ZW1bMF1dKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBsYXllciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICBpZiAodHlwZW9mIGl0ZW1bNV0gPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQGxheWVyXCIuY29uY2F0KGl0ZW1bNV0ubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChpdGVtWzVdKSA6IFwiXCIsIFwiIHtcIikuY29uY2F0KGl0ZW1bMV0sIFwifVwiKTtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChtZWRpYSkge1xuICAgICAgICBpZiAoIWl0ZW1bMl0pIHtcbiAgICAgICAgICBpdGVtWzJdID0gbWVkaWE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQG1lZGlhIFwiLmNvbmNhdChpdGVtWzJdLCBcIiB7XCIpLmNvbmNhdChpdGVtWzFdLCBcIn1cIik7XG4gICAgICAgICAgaXRlbVsyXSA9IG1lZGlhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc3VwcG9ydHMpIHtcbiAgICAgICAgaWYgKCFpdGVtWzRdKSB7XG4gICAgICAgICAgaXRlbVs0XSA9IFwiXCIuY29uY2F0KHN1cHBvcnRzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtWzFdID0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChpdGVtWzRdLCBcIikge1wiKS5jb25jYXQoaXRlbVsxXSwgXCJ9XCIpO1xuICAgICAgICAgIGl0ZW1bNF0gPSBzdXBwb3J0cztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGlzdC5wdXNoKGl0ZW0pO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIGxpc3Q7XG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/runtime/api.js\n");
/***/ }),
/***/ "./node_modules/css-loader/dist/runtime/getUrl.js":
/*!********************************************************!*\
!*** ./node_modules/css-loader/dist/runtime/getUrl.js ***!
\********************************************************/
/***/ (function(module) {
eval("\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvZ2V0VXJsLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mcmVzdC8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9nZXRVcmwuanM/MWRlNSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodXJsLCBvcHRpb25zKSB7XG4gIGlmICghb3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuICBpZiAoIXVybCkge1xuICAgIHJldHVybiB1cmw7XG4gIH1cbiAgdXJsID0gU3RyaW5nKHVybC5fX2VzTW9kdWxlID8gdXJsLmRlZmF1bHQgOiB1cmwpO1xuXG4gIC8vIElmIHVybCBpcyBhbHJlYWR5IHdyYXBwZWQgaW4gcXVvdGVzLCByZW1vdmUgdGhlbVxuICBpZiAoL15bJ1wiXS4qWydcIl0kLy50ZXN0KHVybCkpIHtcbiAgICB1cmwgPSB1cmwuc2xpY2UoMSwgLTEpO1xuICB9XG4gIGlmIChvcHRpb25zLmhhc2gpIHtcbiAgICB1cmwgKz0gb3B0aW9ucy5oYXNoO1xuICB9XG5cbiAgLy8gU2hvdWxkIHVybCBiZSB3cmFwcGVkP1xuICAvLyBTZWUgaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy12YWx1ZXMtMy8jdXJsc1xuICBpZiAoL1tcIicoKSBcXHRcXG5dfCglMjApLy50ZXN0KHVybCkgfHwgb3B0aW9ucy5uZWVkUXVvdGVzKSB7XG4gICAgcmV0dXJuIFwiXFxcIlwiLmNvbmNhdCh1cmwucmVwbGFjZSgvXCIvZywgJ1xcXFxcIicpLnJlcGxhY2UoL1xcbi9nLCBcIlxcXFxuXCIpLCBcIlxcXCJcIik7XG4gIH1cbiAgcmV0dXJuIHVybDtcbn07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/runtime/getUrl.js\n");
/***/ }),
/***/ "./node_modules/css-loader/dist/runtime/sourceMaps.js":
/*!************************************************************!*\
!*** ./node_modules/css-loader/dist/runtime/sourceMaps.js ***!
\************************************************************/
/***/ (function(module) {
eval("\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdURBQXVELGNBQWM7QUFDckU7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL2ZyZXN0Ly4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanM/YWYxMiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXRlbSkge1xuICB2YXIgY29udGVudCA9IGl0ZW1bMV07XG4gIHZhciBjc3NNYXBwaW5nID0gaXRlbVszXTtcbiAgaWYgKCFjc3NNYXBwaW5nKSB7XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cbiAgaWYgKHR5cGVvZiBidG9hID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICB2YXIgYmFzZTY0ID0gYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoY3NzTWFwcGluZykpKSk7XG4gICAgdmFyIGRhdGEgPSBcInNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LFwiLmNvbmNhdChiYXNlNjQpO1xuICAgIHZhciBzb3VyY2VNYXBwaW5nID0gXCIvKiMgXCIuY29uY2F0KGRhdGEsIFwiICovXCIpO1xuICAgIHJldHVybiBbY29udGVudF0uY29uY2F0KFtzb3VyY2VNYXBwaW5nXSkuam9pbihcIlxcblwiKTtcbiAgfVxuICByZXR1cm4gW2NvbnRlbnRdLmpvaW4oXCJcXG5cIik7XG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/runtime/sourceMaps.js\n");
/***/ }),
/***/ "./js/_template-customizer/_template-customizer.html":
/*!***********************************************************!*\
!*** ./js/_template-customizer/_template-customizer.html ***!
\***********************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
eval("__webpack_require__.r(__webpack_exports__);\n// Module\nvar code = \"<div id=\\\"template-customizer\\\" class=\\\"invert-bg-white\\\"> <a href=\\\"javascript:void(0)\\\" class=\\\"template-customizer-open-btn\\\" tabindex=\\\"-1\\\"></a> <div class=\\\"p-4 m-0 lh-1 border-bottom template-customizer-header\\\"> <h4 class=\\\"template-customizer-t-panel_header mb-2\\\"></h4> <p class=\\\"template-customizer-t-panel_sub_header mb-0\\\"></p> <a href=\\\"javascript:void(0)\\\" class=\\\"btn-close template-customizer-close-btn fw-light px-4 py-2 text-body\\\" tabindex=\\\"-1\\\"></a> </div> <div class=\\\"template-customizer-inner pt-4\\\"> <div class=\\\"template-customizer-theming\\\"> <h5 class=\\\"m-0 px-4 py-4 lh-1 text-light d-block\\\"> <span class=\\\"template-customizer-t-theming_header\\\"></span> </h5> <div class=\\\"m-0 px-4 pb-3 template-customizer-themes w-100\\\"> <label for=\\\"customizerTheme\\\" class=\\\"form-label template-customizer-t-theme_label\\\"></label> <div class=\\\"row row-cols-lg-auto g-3 align-items-center template-customizer-themes-options\\\"></div> </div> <div class=\\\"m-0 px-4 pb-3 pt-1 template-customizer-style w-100\\\"> <label for=\\\"customizerStyle\\\" class=\\\"form-label d-block template-customizer-t-style_label\\\"></label> <label class=\\\"switch switch-sm\\\"> <span class=\\\"switch-label template-customizer-t-style_switch_light\\\"></span> <input type=\\\"checkbox\\\" class=\\\"switch-input\\\"/> <span class=\\\"switch-toggle-slider\\\"> <span class=\\\"switch-on\\\"></span> <span class=\\\"switch-off\\\"></span> </span> <span class=\\\"switch-label template-customizer-t-style_switch_dark\\\"></span> </label> </div> </div> <div class=\\\"template-customizer-layout\\\"> <hr class=\\\"m-0\\\"/> <h5 class=\\\"m-0 px-4 py-4 lh-1 text-light d-block\\\"> <span class=\\\"template-customizer-t-layout_header\\\"></span> </h5> <div class=\\\"m-0 px-4 pb-3 d-block template-customizer-layoutType\\\"> <label for=\\\"customizerStyle\\\" class=\\\"form-label d-block template-customizer-t-layout_label\\\"></label> <div class=\\\"row row-cols-lg-auto g-3 align-items-center template-customizer-layouts-options\\\"> <div class=\\\"col-12\\\"> <div class=\\\"form-check\\\"> <input class=\\\"form-check-input\\\" type=\\\"radio\\\" name=\\\"layoutRadios\\\" id=\\\"layoutRadios-static\\\" value=\\\"static\\\"/> <label class=\\\"form-check-label template-customizer-t-layout_static\\\" for=\\\"layoutRadios-static\\\"></label> </div> </div> <div class=\\\"col-12\\\"> <div class=\\\"form-check\\\"> <input class=\\\"form-check-input\\\" type=\\\"radio\\\" name=\\\"layoutRadios\\\" id=\\\"layoutRadios-fixed\\\" value=\\\"fixed\\\"/> <label class=\\\"form-check-label template-customizer-t-layout_fixed\\\" for=\\\"layoutRadios-fixed\\\"></label> </div> </div> </div> </div> <label class=\\\"m-0 px-4 pb-3 d-flex media align-items-middle justify-content-between template-customizer-layoutNavbarFixed\\\"> <span class=\\\"template-customizer-t-layout_navbar_label\\\"></span> <label class=\\\"switch switch-sm pe-4\\\"> <input type=\\\"checkbox\\\" class=\\\"switch-input\\\"/> <span class=\\\"switch-toggle-slider\\\"> <span class=\\\"switch-on\\\"></span> <span class=\\\"switch-off\\\"></span> </span> </label> </label> <label class=\\\"m-0 px-4 pb-3 d-flex media align-items-middle justify-content-between template-customizer-layoutFooterFixed\\\"> <span class=\\\"template-customizer-t-layout_footer_label\\\"></span> <label class=\\\"switch switch-sm pe-4\\\"> <input type=\\\"checkbox\\\" class=\\\"switch-input\\\"/> <span class=\\\"switch-toggle-slider\\\"> <span class=\\\"switch-on\\\"></span> <span class=\\\"switch-off\\\"></span> </span> </label> </label> <label class=\\\"m-0 px-4 pb-3 d-flex media align-items-middle justify-content-between template-customizer-showDropdownOnHover\\\"> <span class=\\\"template-customizer-t-layout_dd_open_label\\\"></span> <label class=\\\"switch switch-sm pe-4\\\"> <input type=\\\"checkbox\\\" class=\\\"switch-input\\\"/> <span class=\\\"switch-toggle-slider\\\"> <span class=\\\"switch-on\\\"></span> <span class=\\\"switch-off\\\"></span> </span> </label> </label> </div> <div class=\\\"template-customizer-misc\\\"> <hr class=\\\"m-0\\\"/> <h5 class=\\\"m-0 px-4 py-4 lh-1 text-light d-block\\\"> <span class=\\\"template-customizer-t-misc_header\\\"></span> </h5> <label class=\\\"m-0 px-4 pb-3 d-flex media align-items-middle justify-content-between template-customizer-rtl\\\"> <span class=\\\"template-customizer-t-rtl_label\\\"></span> <label class=\\\"switch switch-sm pe-4\\\"> <input type=\\\"checkbox\\\" class=\\\"switch-input\\\"/> <span class=\\\"switch-toggle-slider\\\"> <span class=\\\"switch-on\\\"></span> <span class=\\\"switch-off\\\"></span> </span> </label> </label> </div> </div> </div> \";\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (code);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9qcy9fdGVtcGxhdGUtY3VzdG9taXplci9fdGVtcGxhdGUtY3VzdG9taXplci5odG1sLmpzIiwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQSwrREFBZSxJQUFJIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZnJlc3QvLi9qcy9fdGVtcGxhdGUtY3VzdG9taXplci9fdGVtcGxhdGUtY3VzdG9taXplci5odG1sP2VmZDUiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gTW9kdWxlXG52YXIgY29kZSA9IFwiPGRpdiBpZD1cXFwidGVtcGxhdGUtY3VzdG9taXplclxcXCIgY2xhc3M9XFxcImludmVydC1iZy13aGl0ZVxcXCI+IDxhIGhyZWY9XFxcImphdmFzY3JpcHQ6dm9pZCgwKVxcXCIgY2xhc3M9XFxcInRlbXBsYXRlLWN1c3RvbWl6ZXItb3Blbi1idG5cXFwiIHRhYmluZGV4PVxcXCItMVxcXCI+PC9hPiA8ZGl2IGNsYXNzPVxcXCJwLTQgbS0wIGxoLTEgYm9yZGVyLWJvdHRvbSB0ZW1wbGF0ZS1jdXN0b21pemVyLWhlYWRlclxcXCI+IDxoNCBjbGFzcz1cXFwidGVtcGxhdGUtY3VzdG9taXplci10LXBhbmVsX2hlYWRlciBtYi0yXFxcIj48L2g0PiA8cCBjbGFzcz1cXFwidGVtcGxhdGUtY3VzdG9taXplci10LXBhbmVsX3N1Yl9oZWFkZXIgbWItMFxcXCI+PC9wPiA8YSBocmVmPVxcXCJqYXZhc2NyaXB0OnZvaWQoMClcXFwiIGNsYXNzPVxcXCJidG4tY2xvc2UgdGVtcGxhdGUtY3VzdG9taXplci1jbG9zZS1idG4gZnctbGlnaHQgcHgtNCBweS0yIHRleHQtYm9keVxcXCIgdGFiaW5kZXg9XFxcIi0xXFxcIj48L2E+IDwvZGl2PiA8ZGl2IGNsYXNzPVxcXCJ0ZW1wbGF0ZS1jdXN0b21pemVyLWlubmVyIHB0LTRcXFwiPiA8ZGl2IGNsYXNzPVxcXCJ0ZW1wbGF0ZS1jdXN0b21pemVyLXRoZW1pbmdcXFwiPiA8aDUgY2xhc3M9XFxcIm0tMCBweC00IHB5LTQgbGgtMSB0ZXh0LWxpZ2h0IGQtYmxvY2tcXFwiPiA8c3BhbiBjbGFzcz1cXFwidGVtcGxhdGUtY3VzdG9taXplci10LXRoZW1pbmdfaGVhZGVyXFxcIj48L3NwYW4+IDwvaDU+IDxkaXYgY2xhc3M9XFxcIm0tMCBweC00IHBiLTMgdGVtcGxhdGUtY3VzdG9taXplci10aGVtZXMgdy0xMDBcXFwiPiA8bGFiZWwgZm9yPVxcXCJjdXN0b21pemVyVGhlbWVcXFwiIGNsYXNzPVxcXCJmb3JtLWxhYmVsIHRlbXBsYXRlLWN1c3RvbWl6ZXItdC10aGVtZV9sYWJlbFxcXCI+PC9sYWJlbD4gPGRpdiBjbGFzcz1cXFwicm93IHJvdy1jb2xzLWxnLWF1dG8gZy0zIGFsaWduLWl0ZW1zLWNlbnRlciB0ZW1wbGF0ZS1jdXN0b21pemVyLXRoZW1lcy1vcHRpb25zXFxcIj48L2Rpdj4gPC9kaXY+IDxkaXYgY2xhc3M9XFxcIm0tMCBweC00IHBiLTMgcHQtMSB0ZW1wbGF0ZS1jdXN0b21pemVyLXN0eWxlIHctMTAwXFxcIj4gPGxhYmVsIGZvcj1cXFwiY3VzdG9taXplclN0eWxlXFxcIiBjbGFzcz1cXFwiZm9ybS1sYWJlbCBkLWJsb2NrIHRlbXBsYXRlLWN1c3RvbWl6ZXItdC1zdHlsZV9sYWJlbFxcXCI+PC9sYWJlbD4gPGxhYmVsIGNsYXNzPVxcXCJzd2l0Y2ggc3dpdGNoLXNtXFxcIj4gPHNwYW4gY2xhc3M9XFxcInN3aXRjaC1sYWJlbCB0ZW1wbGF0ZS1jdXN0b21pemVyLXQtc3R5bGVfc3dpdGNoX2xpZ2h0XFxcIj48L3NwYW4+IDxpbnB1dCB0eXBlPVxcXCJjaGVja2JveFxcXCIgY2xhc3M9XFxcInN3aXRjaC1pbnB1dFxcXCIvPiA8c3BhbiBjbGFzcz1cXFwic3dpdGNoLXRvZ2dsZS1zbGlkZXJcXFwiPiA8c3BhbiBjbGFzcz1cXFwic3dpdGNoLW9uXFxcIj48L3NwYW4+IDxzcGFuIGNsYXNzPVxcXCJzd2l0Y2gtb2ZmXFxcIj48L3NwYW4+IDwvc3Bhbj4gPHNwYW4gY2xhc3M9XFxcInN3aXRjaC1sYWJlbCB0ZW1wbGF0ZS1jdXN0b21pemVyLXQtc3R5bGVfc3dpdGNoX2RhcmtcXFwiPjwvc3Bhbj4gPC9sYWJlbD4gPC9kaXY+IDwvZGl2PiA8ZGl2IGNsYXNzPVxcXCJ0ZW1wbGF0ZS1jdXN0b21pemVyLWxheW91dFxcXCI+IDxociBjbGFzcz1cXFwibS0wXFxcIi8+IDxoNSBjbGFzcz1cXFwibS0wIHB4LTQgcHktNCBsaC0xIHRleHQtbGlnaHQgZC1ibG9ja1xcXCI+IDxzcGFuIGNsYXNzPVxcXCJ0ZW1wbGF0ZS1jdXN0b21pemVyLXQtbGF5b3V0X2hlYWRlclxcXCI+PC9zcGFuPiA8L2g1PiA8ZGl2IGNsYXNzPVxcXCJtLTAgcHgtNCBwYi0zIGQtYmxvY2sgdGVtcGxhdGUtY3VzdG9taXplci1sYXlvdXRUeXBlXFxcIj4gPGxhYmVsIGZvcj1cXFwiY3VzdG9taXplclN0eWxlXFxcIiBjbGFzcz1cXFwiZm9ybS1sYWJlbCBkLWJsb2NrIHRlbXBsYXRlLWN1c3RvbWl6ZXItdC1sYXlvdXRfbGFiZWxcXFwiPjwvbGFiZWw+IDxkaXYgY2xhc3M9XFxcInJvdyByb3ctY29scy1sZy1hdXRvIGctMyBhbGlnbi1pdGVtcy1jZW50ZXIgdGVtcGxhdGUtY3VzdG9taXplci1sYXlvdXRzLW9wdGlvbnNcXFwiPiA8ZGl2IGNsYXNzPVxcXCJjb2wtMTJcXFwiPiA8ZGl2IGNsYXNzPVxcXCJmb3JtLWNoZWNrXFxcIj4gPGlucHV0IGNsYXNzPVxcXCJmb3JtLWNoZWNrLWlucHV0XFxcIiB0eXBlPVxcXCJyYWRpb1xcXCIgbmFtZT1cXFwibGF5b3V0UmFkaW9zXFxcIiBpZD1cXFwibGF5b3V0UmFkaW9zLXN0YXRpY1xcXCIgdmFsdWU9XFxcInN0YXRpY1xcXCIvPiA8bGFiZWwgY2xhc3M9XFxcImZvcm0tY2hlY2stbGFiZWwgdGVtcGxhdGUtY3VzdG9taXplci10LWxheW91dF9zdGF0aWNcXFwiIGZvcj1cXFwibGF5b3V0UmFkaW9zLXN0YXRpY1xcXCI+PC9sYWJlbD4gPC9kaXY+IDwvZGl2PiA8ZGl2IGNsYXNzPVxcXCJjb2wtMTJcXFwiPiA8ZGl2IGNsYXNzPVxcXCJmb3JtLWNoZWNrXFxcIj4gPGlucHV0IGNsYXNzPVxcXCJmb3JtLWNoZWNrLWlucHV0XFxcIiB0eXBlPVxcXCJyYWRpb1xcXCIgbmFtZT1cXFwibGF5b3V0UmFkaW9zXFxcIiBpZD1cXFwibGF5b3V0UmFkaW9zLWZpeGVkXFxcIiB2YWx1ZT1cXFwiZml4ZWRcXFwiLz4gPGxhYmVsIGNsYXNzPVxcXCJmb3JtLWNoZWNrLWxhYmVsIHRlbXBsYXRlLWN1c3RvbWl6ZXItdC1sYXlvdXRfZml4ZWRcXFwiIGZvcj1cXFwibGF5b3V0UmFkaW9zLWZpeGVkXFxcIj48L2xhYmVsPiA8L2Rpdj4gPC9kaXY+IDwvZGl2PiA8L2Rpdj4gPGxhYmVsIGNsYXNzPVxcXCJtLTAgcHgtNCBwYi0zIGQtZmxleCBtZWRpYSBhbGlnbi1pdGVtcy1taWRkbGUganVzdGlmeS1jb250ZW50LWJldHdlZW4gdGVtcGxhdGUtY3VzdG9taXplci1sYXlvdXROYXZiYXJGaXhlZFxcXCI+IDxzcGFuIGNsYXNzPVxcXCJ0ZW1wbGF0ZS1jdXN0b21pemVyLXQtbGF5b3V0X25hdmJhcl9sYWJlbFxcXCI+PC9zcGFuPiA8bGFiZWwgY2xhc3M9XFxcInN3aXRjaCBzd2l0Y2gtc20gcGUtNFxcXCI+IDxpbnB1dCB0eXBlPVxcXCJjaGVja2JveFxcXCIgY2xhc3M9XFxcInN3aXRjaC1pbnB1dFxcXCIvPiA8c3BhbiBjbGFzcz1cXFwic3dpdGNoLXRvZ2dsZS1zbGlkZXJcXFwiPiA8c3BhbiBjbGFzcz1cXFwic3dpdGNoLW9uXFxcIj48L3NwYW4+IDxzcGFuIGNsYXNzPVxcXCJzd2l0Y2gtb2ZmXFxcIj48L3NwYW4+IDwvc3Bhbj4gPC9sYWJlbD4gPC9sYWJlbD4gPGxhYmVsIGNsYXNzPVxcXCJtLTAgcHgtNCBwYi0zIGQtZmxleCBtZWRpYSBhbGlnbi1pdGVtcy1taWRkbGUganVzdGlmeS1jb250ZW50LWJldHdlZW4gdGVtcGxhdGUtY3VzdG9taXplci1sYXlvdXRGb290ZXJGaXhlZFxcXCI+IDxzcGFuIGNsYXNzPVxcXCJ0ZW1wbGF0ZS1jdXN0b21pemVyLXQtbGF5b3V0X2Zvb3Rlcl9sYWJlbFxcXCI+PC9zcGFuPiA8bGFiZWwgY2xhc3M9XFxcInN3aXRjaCBzd2l0Y2gtc20gcGUtNFxcXCI+IDxpbnB1dCB0eXBlPVxcXCJjaGVja2JveFxcXCIgY2xhc3M9XFxcInN3aXRjaC1pbnB1dFxcXCIvPiA8c3BhbiBjbGFzcz1cXFwic3dpdGNoLXRvZ2dsZS1zbGlkZXJcXFwiPiA8c3BhbiBjbGFzcz1cXFwic3dpdGNoLW9uXFxcIj48L3NwYW4+IDxzcGFuIGNsYXNzPVxcXCJzd2l0Y2gtb2ZmXFxcIj48L3NwYW4+IDwvc3Bhbj4gPC9sYWJlbD4gPC9sYWJlbD4gPGxhYmVsIGNsYXNzPVxcXCJtLTAgcHgtNCBwYi0zIGQtZmxleCBtZWRpYSBhbGlnbi1pdGVtcy1taWRkbGUganVzdGlmeS1jb250ZW50LWJldHdlZW4gdGVtcGxhdGUtY3VzdG9taXplci1zaG93RHJvcGRvd25PbkhvdmVyXFxcIj4gPHNwYW4gY2xhc3M9XFxcInRlbXBsYXRlLWN1c3RvbWl6ZXItdC1sYXlvdXRfZGRfb3Blbl9sYWJlbFxcXCI+PC9zcGFuPiA8bGFiZWwgY2xhc3M9XFxcInN3aXRjaCBzd2l0Y2gtc20gcGUtNFxcXCI+IDxpbnB1dCB0eXBlPVxcXCJjaGVja2JveFxcXCIgY2xhc3M9XFxcInN3aXRjaC1pbnB1dFxcXCIvPiA8c3BhbiBjbGFzcz1cXFwic3dpdGNoLXRvZ2dsZS1zbGlkZXJcXFwiPiA8c3BhbiBjbGFzcz1cXFwic3dpdGNoLW9uXFxcIj48L3NwYW4+IDxzcGFuIGNsYXNzPVxcXCJzd2l0Y2gtb2ZmXFxcIj48L3NwYW4+IDwvc3Bhbj4gPC9sYWJlbD4gPC9sYWJlbD4gPC9kaXY+IDxkaXYgY2xhc3M9XFxcInRlbXBsYXRlLWN1c3RvbWl6ZXItbWlzY1xcXCI+IDxociBjbGFzcz1cXFwibS0wXFxcIi8+IDxoNSBjbGFzcz1cXFwibS0wIHB4LTQgcHktNCBsaC0xIHRleHQtbGlnaHQgZC1ibG9ja1xcXCI+IDxzcGFuIGNsYXNzPVxcXCJ0ZW1wbGF0ZS1jdXN0b21pemVyLXQtbWlzY19oZWFkZXJcXFwiPjwvc3Bhbj4gPC9oNT4gPGxhYmVsIGNsYXNzPVxcXCJtLTAgcHgtNCBwYi0zIGQtZmxleCBtZWRpYSBhbGlnbi1pdGVtcy1taWRkbGUganVzdGlmeS1jb250ZW50LWJldHdlZW4gdGVtcGxhdGUtY3VzdG9taXplci1ydGxcXFwiPiA8c3BhbiBjbGFzcz1cXFwidGVtcGxhdGUtY3VzdG9taXplci10LXJ0bF9sYWJlbFxcXCI+PC9zcGFuPiA8bGFiZWwgY2xhc3M9XFxcInN3aXRjaCBzd2l0Y2gtc20gcGUtNFxcXCI+IDxpbnB1dCB0eXBlPVxcXCJjaGVja2JveFxcXCIgY2xhc3M9XFxcInN3aXRjaC1pbnB1dFxcXCIvPiA8c3BhbiBjbGFzcz1cXFwic3dpdGNoLXRvZ2dsZS1zbGlkZXJcXFwiPiA8c3BhbiBjbGFzcz1cXFwic3dpdGNoLW9uXFxcIj48L3NwYW4+IDxzcGFuIGNsYXNzPVxcXCJzd2l0Y2gtb2ZmXFxcIj48L3NwYW4+IDwvc3Bhbj4gPC9sYWJlbD4gPC9sYWJlbD4gPC9kaXY+IDwvZGl2PiA8L2Rpdj4gXCI7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBjb2RlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./js/_template-customizer/_template-customizer.html\n");
/***/ }),
/***/ "./js/_template-customizer/_template-customizer.scss":
/*!***********************************************************!*\
!*** ./js/_template-customizer/_template-customizer.scss ***!
\***********************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ \"./node_modules/style-loader/dist/runtime/styleDomAPI.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/insertBySelector.js */ \"./node_modules/style-loader/dist/runtime/insertBySelector.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ \"./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ \"./node_modules/style-loader/dist/runtime/insertStyleElement.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ \"./node_modules/style-loader/dist/runtime/styleTagTransform.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_template_customizer_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../node_modules/css-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js!./_template-customizer.scss */ \"./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./js/_template-customizer/_template-customizer.scss\");\n\n \n \n \n \n \n \n \n \n \n\nvar options = {};\n\noptions.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());\noptions.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());\n\n options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, \"head\");\n \noptions.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());\noptions.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());\n\nvar update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_template_customizer_scss__WEBPACK_IMPORTED_MODULE_6__[\"default\"], options);\n\n\n\n\n /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_template_customizer_scss__WEBPACK_IMPORTED_MODULE_6__[\"default\"] && _node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_template_customizer_scss__WEBPACK_IMPORTED_MODULE_6__[\"default\"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_template_customizer_scss__WEBPACK_IMPORTED_MODULE_6__[\"default\"].locals : undefined);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9qcy9fdGVtcGxhdGUtY3VzdG9taXplci9fdGVtcGxhdGUtY3VzdG9taXplci5zY3NzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUNBLE1BQWtHO0FBQ2xHLE1BQXdGO0FBQ3hGLE1BQStGO0FBQy9GLE1BQWtIO0FBQ2xILE1BQTJHO0FBQzNHLE1BQTJHO0FBQzNHLE1BQWlLO0FBQ2pLO0FBQ0E7O0FBRUE7O0FBRUEsNEJBQTRCLHFHQUFtQjtBQUMvQyx3QkFBd0Isa0hBQWE7O0FBRXJDLHVCQUF1Qix1R0FBYTtBQUNwQztBQUNBLGlCQUFpQiwrRkFBTTtBQUN2Qiw2QkFBNkIsc0dBQWtCOztBQUUvQyxhQUFhLDBHQUFHLENBQUMsMElBQU87Ozs7QUFJMkc7QUFDbkksT0FBTywrREFBZSwwSUFBTyxJQUFJLGlKQUFjLEdBQUcsaUpBQWMsWUFBWSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZnJlc3QvLi9qcy9fdGVtcGxhdGUtY3VzdG9taXplci9fdGVtcGxhdGUtY3VzdG9taXplci5zY3NzPzNmYzkiXSwic291cmNlc0NvbnRlbnQiOlsiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi9fdGVtcGxhdGUtY3VzdG9taXplci5zY3NzXCI7XG4gICAgICBcbiAgICAgIFxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtID0gc3R5bGVUYWdUcmFuc2Zvcm1Gbjtcbm9wdGlvbnMuc2V0QXR0cmlidXRlcyA9IHNldEF0dHJpYnV0ZXM7XG5cbiAgICAgIG9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG4gICAgXG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vX3RlbXBsYXRlLWN1c3RvbWl6ZXIuc2Nzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./js/_template-customizer/_template-customizer.scss\n");
/***/ }),
/***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":
/*!****************************************************************************!*\
!*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***!
\****************************************************************************/
/***/ (function(module) {
eval("\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWI7O0FBRUE7QUFDQTs7QUFFQSxrQkFBa0Isd0JBQXdCO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsa0JBQWtCLGlCQUFpQjtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsb0JBQW9CLDRCQUE0QjtBQUNoRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQSxxQkFBcUIsNkJBQTZCO0FBQ2xEOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL2ZyZXN0Ly4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzPzJkYmEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBzdHlsZXNJbkRPTSA9IFtdO1xuXG5mdW5jdGlvbiBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKSB7XG4gIHZhciByZXN1bHQgPSAtMTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlc0luRE9NLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHN0eWxlc0luRE9NW2ldLmlkZW50aWZpZXIgPT09IGlkZW50aWZpZXIpIHtcbiAgICAgIHJlc3VsdCA9IGk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBtb2R1bGVzVG9Eb20obGlzdCwgb3B0aW9ucykge1xuICB2YXIgaWRDb3VudE1hcCA9IHt9O1xuICB2YXIgaWRlbnRpZmllcnMgPSBbXTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaXRlbSA9IGxpc3RbaV07XG4gICAgdmFyIGlkID0gb3B0aW9ucy5iYXNlID8gaXRlbVswXSArIG9wdGlvbnMuYmFzZSA6IGl0ZW1bMF07XG4gICAgdmFyIGNvdW50ID0gaWRDb3VudE1hcFtpZF0gfHwgMDtcbiAgICB2YXIgaWRlbnRpZmllciA9IFwiXCIuY29uY2F0KGlkLCBcIiBcIikuY29uY2F0KGNvdW50KTtcbiAgICBpZENvdW50TWFwW2lkXSA9IGNvdW50ICsgMTtcbiAgICB2YXIgaW5kZXhCeUlkZW50aWZpZXIgPSBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKTtcbiAgICB2YXIgb2JqID0ge1xuICAgICAgY3NzOiBpdGVtWzFdLFxuICAgICAgbWVkaWE6IGl0ZW1bMl0sXG4gICAgICBzb3VyY2VNYXA6IGl0ZW1bM10sXG4gICAgICBzdXBwb3J0czogaXRlbVs0XSxcbiAgICAgIGxheWVyOiBpdGVtWzVdXG4gICAgfTtcblxuICAgIGlmIChpbmRleEJ5SWRlbnRpZmllciAhPT0gLTEpIHtcbiAgICAgIHN0eWxlc0luRE9NW2luZGV4QnlJZGVudGlmaWVyXS5yZWZlcmVuY2VzKys7XG4gICAgICBzdHlsZXNJbkRPTVtpbmRleEJ5SWRlbnRpZmllcl0udXBkYXRlcihvYmopO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgdXBkYXRlciA9IGFkZEVsZW1lbnRTdHlsZShvYmosIG9wdGlvbnMpO1xuICAgICAgb3B0aW9ucy5ieUluZGV4ID0gaTtcbiAgICAgIHN0eWxlc0luRE9NLnNwbGljZShpLCAwLCB7XG4gICAgICAgIGlkZW50aWZpZXI6IGlkZW50aWZpZXIsXG4gICAgICAgIHVwZGF0ZXI6IHVwZGF0ZXIsXG4gICAgICAgIHJlZmVyZW5jZXM6IDFcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlkZW50aWZpZXJzLnB1c2goaWRlbnRpZmllcik7XG4gIH1cblxuICByZXR1cm4gaWRlbnRpZmllcnM7XG59XG5cbmZ1bmN0aW9uIGFkZEVsZW1lbnRTdHlsZShvYmosIG9wdGlvbnMpIHtcbiAgdmFyIGFwaSA9IG9wdGlvbnMuZG9tQVBJKG9wdGlvbnMpO1xuICBhcGkudXBkYXRlKG9iaik7XG5cbiAgdmFyIHVwZGF0ZXIgPSBmdW5jdGlvbiB1cGRhdGVyKG5ld09iaikge1xuICAgIGlmIChuZXdPYmopIHtcbiAgICAgIGlmIChuZXdPYmouY3NzID09PSBvYmouY3NzICYmIG5ld09iai5tZWRpYSA9PT0gb2JqLm1lZGlhICYmIG5ld09iai5zb3VyY2VNYXAgPT09IG9iai5zb3VyY2VNYXAgJiYgbmV3T2JqLnN1cHBvcnRzID09PSBvYmouc3VwcG9ydHMgJiYgbmV3T2JqLmxheWVyID09PSBvYmoubGF5ZXIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBhcGkudXBkYXRlKG9iaiA9IG5ld09iaik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZW1vdmUoKTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIHVwZGF0ZXI7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGxpc3QsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIGxpc3QgPSBsaXN0IHx8IFtdO1xuICB2YXIgbGFzdElkZW50aWZpZXJzID0gbW9kdWxlc1RvRG9tKGxpc3QsIG9wdGlvbnMpO1xuICByZXR1cm4gZnVuY3Rpb24gdXBkYXRlKG5ld0xpc3QpIHtcbiAgICBuZXdMaXN0ID0gbmV3TGlzdCB8fCBbXTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGFzdElkZW50aWZpZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgaWRlbnRpZmllciA9IGxhc3RJZGVudGlmaWVyc1tpXTtcbiAgICAgIHZhciBpbmRleCA9IGdldEluZGV4QnlJZGVudGlmaWVyKGlkZW50aWZpZXIpO1xuICAgICAgc3R5bGVzSW5ET01baW5kZXhdLnJlZmVyZW5jZXMtLTtcbiAgICB9XG5cbiAgICB2YXIgbmV3TGFzdElkZW50aWZpZXJzID0gbW9kdWxlc1RvRG9tKG5ld0xpc3QsIG9wdGlvbnMpO1xuXG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGxhc3RJZGVudGlmaWVycy5sZW5ndGg7IF9pKyspIHtcbiAgICAgIHZhciBfaWRlbnRpZmllciA9IGxhc3RJZGVudGlmaWVyc1tfaV07XG5cbiAgICAgIHZhciBfaW5kZXggPSBnZXRJbmRleEJ5SWRlbnRpZmllcihfaWRlbnRpZmllcik7XG5cbiAgICAgIGlmIChzdHlsZXNJbkRPTVtfaW5kZXhdLnJlZmVyZW5jZXMgPT09IDApIHtcbiAgICAgICAgc3R5bGVzSW5ET01bX2luZGV4XS51cGRhdGVyKCk7XG5cbiAgICAgICAgc3R5bGVzSW5ET00uc3BsaWNlKF9pbmRleCwgMSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGFzdElkZW50aWZpZXJzID0gbmV3TGFzdElkZW50aWZpZXJzO1xuICB9O1xufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\n");
/***/ }),
/***/ "./node_modules/style-loader/dist/runtime/insertBySelector.js":
/*!********************************************************************!*\
!*** ./node_modules/style-loader/dist/runtime/insertBySelector.js ***!
\********************************************************************/
/***/ (function(module) {
eval("\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHNEQUFzRDs7QUFFdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL2ZyZXN0Ly4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qcz9iMjE0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG52YXIgbWVtbyA9IHt9O1xuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5cbmZ1bmN0aW9uIGdldFRhcmdldCh0YXJnZXQpIHtcbiAgaWYgKHR5cGVvZiBtZW1vW3RhcmdldF0gPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICB2YXIgc3R5bGVUYXJnZXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRhcmdldCk7IC8vIFNwZWNpYWwgY2FzZSB0byByZXR1cm4gaGVhZCBvZiBpZnJhbWUgaW5zdGVhZCBvZiBpZnJhbWUgaXRzZWxmXG5cbiAgICBpZiAod2luZG93LkhUTUxJRnJhbWVFbGVtZW50ICYmIHN0eWxlVGFyZ2V0IGluc3RhbmNlb2Ygd2luZG93LkhUTUxJRnJhbWVFbGVtZW50KSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBUaGlzIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIGFjY2VzcyB0byBpZnJhbWUgaXMgYmxvY2tlZFxuICAgICAgICAvLyBkdWUgdG8gY3Jvc3Mtb3JpZ2luIHJlc3RyaWN0aW9uc1xuICAgICAgICBzdHlsZVRhcmdldCA9IHN0eWxlVGFyZ2V0LmNvbnRlbnREb2N1bWVudC5oZWFkO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAgICAgICBzdHlsZVRhcmdldCA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbWVtb1t0YXJnZXRdID0gc3R5bGVUYXJnZXQ7XG4gIH1cblxuICByZXR1cm4gbWVtb1t0YXJnZXRdO1xufVxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5cblxuZnVuY3Rpb24gaW5zZXJ0QnlTZWxlY3RvcihpbnNlcnQsIHN0eWxlKSB7XG4gIHZhciB0YXJnZXQgPSBnZXRUYXJnZXQoaW5zZXJ0KTtcblxuICBpZiAoIXRhcmdldCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkbid0IGZpbmQgYSBzdHlsZSB0YXJnZXQuIFRoaXMgcHJvYmFibHkgbWVhbnMgdGhhdCB0aGUgdmFsdWUgZm9yIHRoZSAnaW5zZXJ0JyBwYXJhbWV0ZXIgaXMgaW52YWxpZC5cIik7XG4gIH1cblxuICB0YXJnZXQuYXBwZW5kQ2hpbGQoc3R5bGUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGluc2VydEJ5U2VsZWN0b3I7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/style-loader/dist/runtime/insertBySelector.js\n");
/***/ }),
/***/ "./node_modules/style-loader/dist/runtime/insertStyleElement.js":
/*!**********************************************************************!*\
!*** ./node_modules/style-loader/dist/runtime/insertStyleElement.js ***!
\**********************************************************************/
/***/ (function(module) {
eval("\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mcmVzdC8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qcz9kZTZjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIGluc2VydFN0eWxlRWxlbWVudChvcHRpb25zKSB7XG4gIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO1xuICBvcHRpb25zLnNldEF0dHJpYnV0ZXMoZWxlbWVudCwgb3B0aW9ucy5hdHRyaWJ1dGVzKTtcbiAgb3B0aW9ucy5pbnNlcnQoZWxlbWVudCwgb3B0aW9ucy5vcHRpb25zKTtcbiAgcmV0dXJuIGVsZW1lbnQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaW5zZXJ0U3R5bGVFbGVtZW50OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/style-loader/dist/runtime/insertStyleElement.js\n");
/***/ }),
/***/ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js":
/*!**********************************************************************************!*\
!*** ./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js ***!
\**********************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
eval("\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = true ? __webpack_require__.nc : 0;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWI7QUFDQTtBQUNBLGNBQWMsS0FBd0MsR0FBRyxzQkFBaUIsR0FBRyxDQUFJOztBQUVqRjtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL2ZyZXN0Ly4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzP2RkY2UiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzKHN0eWxlRWxlbWVudCkge1xuICB2YXIgbm9uY2UgPSB0eXBlb2YgX193ZWJwYWNrX25vbmNlX18gIT09IFwidW5kZWZpbmVkXCIgPyBfX3dlYnBhY2tfbm9uY2VfXyA6IG51bGw7XG5cbiAgaWYgKG5vbmNlKSB7XG4gICAgc3R5bGVFbGVtZW50LnNldEF0dHJpYnV0ZShcIm5vbmNlXCIsIG5vbmNlKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlczsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\n");
/***/ }),
/***/ "./node_modules/style-loader/dist/runtime/styleDomAPI.js":
/*!***************************************************************!*\
!*** ./node_modules/style-loader/dist/runtime/styleDomAPI.js ***!
\***************************************************************/
/***/ (function(module) {
eval("\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYjtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxrREFBa0Q7QUFDbEQ7O0FBRUE7QUFDQSwwQ0FBMEM7QUFDMUM7O0FBRUE7O0FBRUE7QUFDQSxpRkFBaUY7QUFDakY7O0FBRUE7O0FBRUE7QUFDQSxhQUFhO0FBQ2I7O0FBRUE7QUFDQSxhQUFhO0FBQ2I7O0FBRUE7QUFDQSxhQUFhO0FBQ2I7O0FBRUE7O0FBRUE7QUFDQSx5REFBeUQ7QUFDekQsSUFBSTs7QUFFSjs7O0FBR0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZnJlc3QvLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qcz9lNDc5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIGFwcGx5KHN0eWxlRWxlbWVudCwgb3B0aW9ucywgb2JqKSB7XG4gIHZhciBjc3MgPSBcIlwiO1xuXG4gIGlmIChvYmouc3VwcG9ydHMpIHtcbiAgICBjc3MgKz0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChvYmouc3VwcG9ydHMsIFwiKSB7XCIpO1xuICB9XG5cbiAgaWYgKG9iai5tZWRpYSkge1xuICAgIGNzcyArPSBcIkBtZWRpYSBcIi5jb25jYXQob2JqLm1lZGlhLCBcIiB7XCIpO1xuICB9XG5cbiAgdmFyIG5lZWRMYXllciA9IHR5cGVvZiBvYmoubGF5ZXIgIT09IFwidW5kZWZpbmVkXCI7XG5cbiAgaWYgKG5lZWRMYXllcikge1xuICAgIGNzcyArPSBcIkBsYXllclwiLmNvbmNhdChvYmoubGF5ZXIubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChvYmoubGF5ZXIpIDogXCJcIiwgXCIge1wiKTtcbiAgfVxuXG4gIGNzcyArPSBvYmouY3NzO1xuXG4gIGlmIChuZWVkTGF5ZXIpIHtcbiAgICBjc3MgKz0gXCJ9XCI7XG4gIH1cblxuICBpZiAob2JqLm1lZGlhKSB7XG4gICAgY3NzICs9IFwifVwiO1xuICB9XG5cbiAgaWYgKG9iai5zdXBwb3J0cykge1xuICAgIGNzcyArPSBcIn1cIjtcbiAgfVxuXG4gIHZhciBzb3VyY2VNYXAgPSBvYmouc291cmNlTWFwO1xuXG4gIGlmIChzb3VyY2VNYXAgJiYgdHlwZW9mIGJ0b2EgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICBjc3MgKz0gXCJcXG4vKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LFwiLmNvbmNhdChidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShzb3VyY2VNYXApKSkpLCBcIiAqL1wiKTtcbiAgfSAvLyBGb3Igb2xkIElFXG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICAqL1xuXG5cbiAgb3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybShjc3MsIHN0eWxlRWxlbWVudCwgb3B0aW9ucy5vcHRpb25zKTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlU3R5bGVFbGVtZW50KHN0eWxlRWxlbWVudCkge1xuICAvLyBpc3RhbmJ1bCBpZ25vcmUgaWZcbiAgaWYgKHN0eWxlRWxlbWVudC5wYXJlbnROb2RlID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgc3R5bGVFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3R5bGVFbGVtZW50KTtcbn1cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuXG5cbmZ1bmN0aW9uIGRvbUFQSShvcHRpb25zKSB7XG4gIHZhciBzdHlsZUVsZW1lbnQgPSBvcHRpb25zLmluc2VydFN0eWxlRWxlbWVudChvcHRpb25zKTtcbiAgcmV0dXJuIHtcbiAgICB1cGRhdGU6IGZ1bmN0aW9uIHVwZGF0ZShvYmopIHtcbiAgICAgIGFwcGx5KHN0eWxlRWxlbWVudCwgb3B0aW9ucywgb2JqKTtcbiAgICB9LFxuICAgIHJlbW92ZTogZnVuY3Rpb24gcmVtb3ZlKCkge1xuICAgICAgcmVtb3ZlU3R5bGVFbGVtZW50KHN0eWxlRWxlbWVudCk7XG4gICAgfVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGRvbUFQSTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/style-loader/dist/runtime/styleDomAPI.js\n");
/***/ }),
/***/ "./node_modules/style-loader/dist/runtime/styleTagTransform.js":
/*!*********************************************************************!*\
!*** ./node_modules/style-loader/dist/runtime/styleTagTransform.js ***!
\*********************************************************************/
/***/ (function(module) {
eval("\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYjtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZnJlc3QvLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qcz8xZGRlIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIHN0eWxlVGFnVHJhbnNmb3JtKGNzcywgc3R5bGVFbGVtZW50KSB7XG4gIGlmIChzdHlsZUVsZW1lbnQuc3R5bGVTaGVldCkge1xuICAgIHN0eWxlRWxlbWVudC5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XG4gIH0gZWxzZSB7XG4gICAgd2hpbGUgKHN0eWxlRWxlbWVudC5maXJzdENoaWxkKSB7XG4gICAgICBzdHlsZUVsZW1lbnQucmVtb3ZlQ2hpbGQoc3R5bGVFbGVtZW50LmZpcnN0Q2hpbGQpO1xuICAgIH1cblxuICAgIHN0eWxlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjc3MpKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHN0eWxlVGFnVHJhbnNmb3JtOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/style-loader/dist/runtime/styleTagTransform.js\n");
/***/ }),
/***/ "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABClJREFUaEPtmY1RFEEQhbsjUCIQIhAiUCNQIxAiECIQIxAiECIAIpAMhAiECIQI2vquZqnZvp6fhb3SK5mqq6Ju92b69bzXf6is+dI1t1+eAfztG5z1BsxsU0S+ici2iPB3vm5E5EpEDlSVv2dZswFIxv8UkZcNy+5EZGcuEHMCOBeR951uvVDVD53vVl+bE8DvDu8Pxtyo6ta/BsByg1R15Bwzqz5/LJgn34CZwfnPInI4BUB6/1hV0cSjVxcAM4PbcBZjL0XklIPN7Is3fLCkdQPpPYw/VNXj5IhPIvJWRIhSl6p60ULWBGBm30Vk123EwRxCuIzWkkjNrCZywith10ewE1Xdq4GoAjCz/RTXW44Ynt+LyBEfT43kYfbj86J3w5Q32DNcRQDpwF+dkQXDMey8xem0L3TEqB4g3PZWad8agBMRgZPeu96D1/C2Zbh3X0p80Op1xxloztN48bMQQNoc7+eLEuAoPSPiIDY4Ooo+E6ixeNXM+D3GERz2U3CIqMstLJUgJQDe+7eq6mub0NYEkLAKwEHkiBQDCZtddZCZ8d6r7JDwFkoARklHRPZUFVDVZWbwGuNrC4EfdOzFrRABh3Wnqhv+d70AEBLGFROPmeHlnM81G69UdSd6IUuM0GgUVn1uqWmg5EmMfBeEyB7Pe3txBkY+rGT8j0J+WXq/BgDkUCaqLgEAnwcRog0veMIqFAAwCy2wnw+bI2GaGboBgF9k5N0o0rUSGUb4eO0BeO9j/GYhkSHMHMTIqwGARX6p6a+nlPBl8kZuXMD9j6pKfF9aZuaFOdJCEL5D4eYb9wCYVCanrBmGyii/tIq+SLj/HQBCaM5bLzwfPqdQ6FpVHyra4IbuVbXaY7dETC2ESPNNWiIOi69CcdgSMXsh4tNSUiklMgwmC0aNd08Y5WAES6HHehM4gu97wyhBgWpgqXsrASglprDy7CwhehMZOSbK6JMSma+Fio1KltCmlBIj7gfZOGx8ppQSXrhzFnOhJ/31BDkjFHRvOd09x0mRBA9SFgxUgHpQg0q0t5ymPMlL+EnldFTfDA0NAmf+OTQ0X0sRouf7NNkYGhrOYNrxtIaGg83MNzVDSe3LXLhP7O/yrCsCz1zlWTpjWkuZAOBpX3yVnLqI1yLCOKU6qMrmP7SSrUEw54XF4WBIK5FxCMOr3lVsfGqNSmPzBXUnJTIX1jyVBq9wO6UObOpgC5GjO98vFKnTdQMZXxEsWZlDiCZMIxAbNxQOqlpVZtobejBaZNoBnRDzMFpkxvTQOD36BlrcySZuI6p1ACB6LU3wWuf5581+oHfD1vi89bz3nFUC8Nm7ZlP3nKkFbM4bWPt/MSFwklprYItwt6cmvpWJ2IVcQBCz6bLysSCv3SaANCiTsnaNRrNRqMXVVT1/BrAqz/buu/Y38Ad3KC5PARej0QAAAABJRU5ErkJggg==":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABClJREFUaEPtmY1RFEEQhbsjUCIQIhAiUCNQIxAiECIQIxAiECIAIpAMhAiECIQI2vquZqnZvp6fhb3SK5mqq6Ju92b69bzXf6is+dI1t1+eAfztG5z1BsxsU0S+ici2iPB3vm5E5EpEDlSVv2dZswFIxv8UkZcNy+5EZGcuEHMCOBeR951uvVDVD53vVl+bE8DvDu8Pxtyo6ta/BsByg1R15Bwzqz5/LJgn34CZwfnPInI4BUB6/1hV0cSjVxcAM4PbcBZjL0XklIPN7Is3fLCkdQPpPYw/VNXj5IhPIvJWRIhSl6p60ULWBGBm30Vk123EwRxCuIzWkkjNrCZywith10ewE1Xdq4GoAjCz/RTXW44Ynt+LyBEfT43kYfbj86J3w5Q32DNcRQDpwF+dkQXDMey8xem0L3TEqB4g3PZWad8agBMRgZPeu96D1/C2Zbh3X0p80Op1xxloztN48bMQQNoc7+eLEuAoPSPiIDY4Ooo+E6ixeNXM+D3GERz2U3CIqMstLJUgJQDe+7eq6mub0NYEkLAKwEHkiBQDCZtddZCZ8d6r7JDwFkoARklHRPZUFVDVZWbwGuNrC4EfdOzFrRABh3Wnqhv+d70AEBLGFROPmeHlnM81G69UdSd6IUuM0GgUVn1uqWmg5EmMfBeEyB7Pe3txBkY+rGT8j0J+WXq/BgDkUCaqLgEAnwcRog0veMIqFAAwCy2wnw+bI2GaGboBgF9k5N0o0rUSGUb4eO0BeO9j/GYhkSHMHMTIqwGARX6p6a+nlPBl8kZuXMD9j6pKfF9aZuaFOdJCEL5D4eYb9wCYVCanrBmGyii/tIq+SLj/HQBCaM5bLzwfPqdQ6FpVHyra4IbuVbXaY7dETC2ESPNNWiIOi69CcdgSMXsh4tNSUiklMgwmC0aNd08Y5WAES6HHehM4gu97wyhBgWpgqXsrASglprDy7CwhehMZOSbK6JMSma+Fio1KltCmlBIj7gfZOGx8ppQSXrhzFnOhJ/31BDkjFHRvOd09x0mRBA9SFgxUgHpQg0q0t5ymPMlL+EnldFTfDA0NAmf+OTQ0X0sRouf7NNkYGhrOYNrxtIaGg83MNzVDSe3LXLhP7O/yrCsCz1zlWTpjWkuZAOBpX3yVnLqI1yLCOKU6qMrmP7SSrUEw54XF4WBIK5FxCMOr3lVsfGqNSmPzBXUnJTIX1jyVBq9wO6UObOpgC5GjO98vFKnTdQMZXxEsWZlDiCZMIxAbNxQOqlpVZtobejBaZNoBnRDzMFpkxvTQOD36BlrcySZuI6p1ACB6LU3wWuf5581+oHfD1vi89bz3nFUC8Nm7ZlP3nKkFbM4bWPt/MSFwklprYItwt6cmvpWJ2IVcQBCz6bLysSCv3SaANCiTsnaNRrNRqMXVVT1/BrAqz/buu/Y38Ad3KC5PARej0QAAAABJRU5ErkJggg== ***!
\**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ (function(module) {
module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABClJREFUaEPtmY1RFEEQhbsjUCIQIhAiUCNQIxAiECIQIxAiECIAIpAMhAiECIQI2vquZqnZvp6fhb3SK5mqq6Ju92b69bzXf6is+dI1t1+eAfztG5z1BsxsU0S+ici2iPB3vm5E5EpEDlSVv2dZswFIxv8UkZcNy+5EZGcuEHMCOBeR951uvVDVD53vVl+bE8DvDu8Pxtyo6ta/BsByg1R15Bwzqz5/LJgn34CZwfnPInI4BUB6/1hV0cSjVxcAM4PbcBZjL0XklIPN7Is3fLCkdQPpPYw/VNXj5IhPIvJWRIhSl6p60ULWBGBm30Vk123EwRxCuIzWkkjNrCZywith10ewE1Xdq4GoAjCz/RTXW44Ynt+LyBEfT43kYfbj86J3w5Q32DNcRQDpwF+dkQXDMey8xem0L3TEqB4g3PZWad8agBMRgZPeu96D1/C2Zbh3X0p80Op1xxloztN48bMQQNoc7+eLEuAoPSPiIDY4Ooo+E6ixeNXM+D3GERz2U3CIqMstLJUgJQDe+7eq6mub0NYEkLAKwEHkiBQDCZtddZCZ8d6r7JDwFkoARklHRPZUFVDVZWbwGuNrC4EfdOzFrRABh3Wnqhv+d70AEBLGFROPmeHlnM81G69UdSd6IUuM0GgUVn1uqWmg5EmMfBeEyB7Pe3txBkY+rGT8j0J+WXq/BgDkUCaqLgEAnwcRog0veMIqFAAwCy2wnw+bI2GaGboBgF9k5N0o0rUSGUb4eO0BeO9j/GYhkSHMHMTIqwGARX6p6a+nlPBl8kZuXMD9j6pKfF9aZuaFOdJCEL5D4eYb9wCYVCanrBmGyii/tIq+SLj/HQBCaM5bLzwfPqdQ6FpVHyra4IbuVbXaY7dETC2ESPNNWiIOi69CcdgSMXsh4tNSUiklMgwmC0aNd08Y5WAES6HHehM4gu97wyhBgWpgqXsrASglprDy7CwhehMZOSbK6JMSma+Fio1KltCmlBIj7gfZOGx8ppQSXrhzFnOhJ/31BDkjFHRvOd09x0mRBA9SFgxUgHpQg0q0t5ymPMlL+EnldFTfDA0NAmf+OTQ0X0sRouf7NNkYGhrOYNrxtIaGg83MNzVDSe3LXLhP7O/yrCsCz1zlWTpjWkuZAOBpX3yVnLqI1yLCOKU6qMrmP7SSrUEw54XF4WBIK5FxCMOr3lVsfGqNSmPzBXUnJTIX1jyVBq9wO6UObOpgC5GjO98vFKnTdQMZXxEsWZlDiCZMIxAbNxQOqlpVZtobejBaZNoBnRDzMFpkxvTQOD36BlrcySZuI6p1ACB6LU3wWuf5581+oHfD1vi89bz3nFUC8Nm7ZlP3nKkFbM4bWPt/MSFwklprYItwt6cmvpWJ2IVcQBCz6bLysSCv3SaANCiTsnaNRrNRqMXVVT1/BrAqz/buu/Y38Ad3KC5PARej0QAAAABJRU5ErkJggg==";
/***/ })
/******/ });
/************************************************************************/
/******/ // The module cache
/******/ var __webpack_module_cache__ = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ var cachedModule = __webpack_module_cache__[moduleId];
/******/ if (cachedModule !== undefined) {
/******/ return cachedModule.exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = __webpack_module_cache__[moduleId] = {
/******/ id: moduleId,
/******/ // no module.loaded needed
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = __webpack_modules__;
/******/
/************************************************************************/
/******/ /* webpack/runtime/compat get default export */
/******/ !function() {
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function() { return module['default']; } :
/******/ function() { return module; };
/******/ __webpack_require__.d(getter, { a: getter });
/******/ return getter;
/******/ };
/******/ }();
/******/
/******/ /* webpack/runtime/define property getters */
/******/ !function() {
/******/ // define getter functions for harmony exports
/******/ __webpack_require__.d = function(exports, definition) {
/******/ for(var key in definition) {
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ }
/******/ }
/******/ };
/******/ }();
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
/******/ !function() {
/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
/******/ }();
/******/
/******/ /* webpack/runtime/make namespace object */
/******/ !function() {
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/ }();
/******/
/******/ /* webpack/runtime/jsonp chunk loading */
/******/ !function() {
/******/ __webpack_require__.b = document.baseURI || self.location.href;
/******/
/******/ // object to store loaded and loading chunks
/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded
/******/ var installedChunks = {
/******/ "js/template-customizer": 0
/******/ };
/******/
/******/ // no chunk on demand loading
/******/
/******/ // no prefetching
/******/
/******/ // no preloaded
/******/
/******/ // no HMR
/******/
/******/ // no HMR manifest
/******/
/******/ // no on chunks loaded
/******/
/******/ // no jsonp function
/******/ }();
/******/
/******/ /* webpack/runtime/nonce */
/******/ !function() {
/******/ __webpack_require__.nc = undefined;
/******/ }();
/******/
/************************************************************************/
/******/
/******/ // startup
/******/ // Load entry module and return exports
/******/ // This entry module can't be inlined because the eval-source-map devtool is used.
/******/ var __webpack_exports__ = __webpack_require__("./js/template-customizer.js");
/******/
/******/ return __webpack_exports__;
/******/ })()
;
});