"use strict";(globalThis.blocksyJsonP=globalThis.blocksyJsonP||[]).push([[27],{27:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"handleUpdate\": () => (/* binding */ handleUpdate),\n/* harmony export */ \"mountMenuLevel\": () => (/* binding */ mountMenuLevel)\n/* harmony export */ });\n/* harmony import */ var _helpers_is_touch_device__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(488);\n\n\nconst isRtl = () => document.querySelector('html').dir === 'rtl';\n\nconst isEligibleForSubmenu = el => el.classList.contains('animated-submenu') && (!el.parentNode.classList.contains('menu') || el.className.indexOf('ct-mega-menu') === -1 && el.parentNode.classList.contains('menu'));\n\nconst getAllParents = a => {\n var els = [];\n\n while (a) {\n els.unshift(a);\n a = a.parentNode;\n }\n\n return els;\n};\n\nfunction furthest(el, s) {\n var nodes = [];\n\n while (el.parentNode) {\n if (el.parentNode && el.parentNode.matches && el.parentNode.matches(s)) {\n nodes.push(el.parentNode);\n }\n\n el = el.parentNode;\n }\n\n return nodes[nodes.length - 1];\n}\n\nconst isIosDevice = typeof window !== 'undefined' && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || window.navigator.platform === 'MacIntel' && window.navigator.maxTouchPoints > 1);\n\nconst getPreferedPlacementFor = el => {\n const farmost = furthest(el, 'li.menu-item');\n\n if (!farmost) {\n return isRtl() ? 'left' : 'right';\n }\n\n if (!farmost.querySelector('.sub-menu .sub-menu .sub-menu')) {\n return isRtl() ? 'left' : 'right';\n }\n\n return farmost.getBoundingClientRect().left > innerWidth / 2 ? 'left' : 'right';\n};\n\nconst computeItemSubmenuFor = (reference, _ref) => {\n let {\n // left -- 1st level menu items\n // end -- submenus\n startPosition = 'end'\n } = _ref;\n const menu = reference.querySelector('.sub-menu');\n const placement = getPreferedPlacementFor(menu);\n const {\n left,\n width,\n right\n } = menu.getBoundingClientRect();\n let futurePlacement = placement;\n let referenceRect = reference.getBoundingClientRect();\n\n if (placement === 'left') {\n let referencePoint = startPosition === 'end' ? referenceRect.left : referenceRect.right;\n\n if (referencePoint - width < 0) {\n futurePlacement = 'right';\n }\n }\n\n if (placement === 'right') {\n let referencePoint = startPosition === 'end' ? referenceRect.right : referenceRect.left;\n\n if (referencePoint + width > innerWidth) {\n futurePlacement = 'left';\n }\n }\n\n reference.dataset.submenu = futurePlacement;\n reference.addEventListener('click', () => {});\n};\n\nconst openSubmenu = e => {\n const li = e.target.closest('li');\n li.classList.add('ct-active');\n let childIndicator = [...li.children].find(el => el.matches('.ct-toggle-dropdown-desktop-ghost'));\n\n if (!childIndicator) {\n childIndicator = li.firstElementChild;\n }\n\n if (childIndicator) {\n childIndicator.setAttribute('aria-expanded', 'true');\n\n if (childIndicator.tagName.toLowerCase() === 'button') {\n childIndicator.setAttribute('aria-label', ct_localizations.collapse_submenu);\n }\n }\n\n mouseenterHandler({\n target: li\n });\n};\n\nconst closeSubmenu = e => {\n if (!e.target) {\n return;\n }\n\n const li = e.target.closest('li');\n li.classList.remove('ct-active');\n let childIndicator = [...li.children].find(el => el.matches('.ct-toggle-dropdown-desktop-ghost'));\n\n if (!childIndicator) {\n childIndicator = li.firstElementChild;\n }\n\n if (childIndicator) {\n childIndicator.setAttribute('aria-expanded', 'false');\n\n if (childIndicator.tagName.toLowerCase() === 'button') {\n childIndicator.setAttribute('aria-label', ct_localizations.expand_submenu);\n }\n }\n\n setTimeout(() => {\n ;\n [...li.querySelectorAll('[data-submenu]')].map(el => {\n el.removeAttribute('data-submenu');\n });\n [...li.querySelectorAll('.ct-active')].map(el => {\n el.classList.remove('ct-active');\n });\n }, 30);\n};\n\nconst mountMenuLevel = function (menuLevel) {\n let args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n ;\n [...menuLevel.children].filter(el => el.matches('.menu-item-has-children, .page_item_has_children')).map(el => {\n if (el.classList.contains('ct-mega-menu-custom-width')) {\n const menu = el.querySelector('.sub-menu');\n const elRect = el.getBoundingClientRect();\n const menuRect = menu.getBoundingClientRect();\n\n if (elRect.left + elRect.width / 2 + menuRect.width / 2 > innerWidth) {\n el.dataset.submenu = 'left';\n }\n\n if (elRect.left + elRect.width / 2 - menuRect.width / 2 < 0) {\n el.dataset.submenu = 'right';\n }\n }\n\n if (isEligibleForSubmenu(el)) {\n computeItemSubmenuFor(el, args);\n }\n\n let childIndicator = [...el.children].find(el => el.matches('.ct-toggle-dropdown-desktop-ghost'));\n let hasClickInteraction = el.matches('[data-interaction*=\"click\"] *');\n\n if (!hasClickInteraction) {\n el.addEventListener('mouseenter', e => {\n // So that mouseenter event is catched before the open itself\n if (isIosDevice) {\n openSubmenu({\n target: el.firstElementChild\n });\n } else {\n requestAnimationFrame(() => {\n openSubmenu({\n target: el.firstElementChild\n });\n });\n }\n\n e.target.closest('li').addEventListener('focusout', evt => {\n if (!e.target.closest('li').contains(evt.target)) {\n closeSubmenu(e);\n }\n }); // If first level\n\n if (!el.parentNode.classList.contains('.sub-menu')) {\n ;\n [...el.parentNode.children].filter(firstLevelEl => firstLevelEl !== el).map(firstLevelEl => {\n closeSubmenu({\n target: firstLevelEl.firstElementChild\n });\n });\n }\n\n e.target.closest('li').addEventListener('mouseleave', () => {\n closeSubmenu({\n target: el.firstElementChild\n });\n }, {\n once: true\n });\n }); // On Android devices, allow only 2nd click to open the link.\n // First click will ensure the submenu is opened\n //\n // iOS has this behaviour out of the box.\n //\n // Important: only perform this for touch devices so that keyboard\n // users are not affected.\n\n if ((0,_helpers_is_touch_device__WEBPACK_IMPORTED_MODULE_0__/* .isTouchDevice */ .b)()) {\n el.addEventListener('click', e => {\n if (!el.classList.contains('ct-active')) {\n e.preventDefault();\n }\n });\n }\n }\n\n if (hasClickInteraction) {\n let itemTarget = el.matches('[data-interaction*=\"item\"] *') ? el.firstElementChild : el.firstElementChild.querySelector('.ct-toggle-dropdown-desktop');\n\n if (!itemTarget.hasEventListener) {\n itemTarget.hasEventListener = true;\n itemTarget.addEventListener('click', e => {\n e.preventDefault();\n\n if (e.target.closest('li').classList.contains('ct-active')) {\n closeSubmenu(e);\n } else {\n openSubmenu(e);\n\n if (isIosDevice) {\n e.target.closest('li').addEventListener('mouseleave', () => {\n closeSubmenu({\n target: el.firstElementChild\n });\n }, {\n once: true\n });\n }\n\n if (!e.target.hasDocumentListener) {\n e.target.hasDocumentListener = true; // Add the event a bit later\n\n setTimeout(() => {\n document.addEventListener('click', evt => {\n if (!e.target.closest('li').contains(evt.target)) {\n closeSubmenu(e);\n }\n });\n });\n }\n\n e.target.closest('li').addEventListener('focusout', evt => {\n if (!e.target.closest('li').contains(evt.target)) {\n closeSubmenu(e);\n }\n });\n }\n });\n }\n }\n\n if (childIndicator && !childIndicator.hasEventListener) {\n childIndicator.hasEventListener = true;\n childIndicator.addEventListener('click', e => {\n if (e.target.closest('li').classList.contains('ct-active')) {\n closeSubmenu(e);\n } else {\n openSubmenu(e);\n e.target.closest('li').addEventListener('focusout', evt => {\n if (!e.target.closest('li').contains(evt.target)) {\n closeSubmenu(e);\n }\n });\n }\n });\n }\n });\n};\n\nconst mouseenterHandler = _ref2 => {\n let {\n target\n } = _ref2;\n\n if (!target.matches('.menu-item-has-children, .page_item_has_children')) {\n target = target.closest('.menu-item-has-children, .page_item_has_children');\n }\n\n if (target.parentNode.classList.contains('menu') && target.className.indexOf('ct-mega-menu') > -1 && target.className.indexOf('ct-mega-menu-custom-width') === -1 && window.wp && wp && wp.customize && wp.customize('active_theme')) {\n const menu = target.querySelector('.sub-menu');\n menu.style.left = `${Math.round(target.closest('[class*=\"ct-container\"]').firstElementChild.getBoundingClientRect().x) - Math.round(target.closest('nav').getBoundingClientRect().x)}px`;\n }\n\n if (!isEligibleForSubmenu(target)) {\n return;\n }\n\n const menu = target.querySelector('.sub-menu');\n mountMenuLevel(menu);\n\n if (menu.closest('[data-interaction=\"hover\"]')) {\n menu.parentNode.addEventListener('mouseleave', () => {\n ;\n [...menu.children].filter(el => isEligibleForSubmenu(el)).map(el => el.removeAttribute('data-submenu'));\n }, {\n once: true\n });\n }\n};\n\nconst handleUpdate = menu => {\n if (!menu.parentNode) {\n menu = document.querySelector(`[class=\"${menu.className}\"]`);\n }\n\n if (!menu) {\n return;\n }\n\n if (!menu.querySelector('.menu-item-has-children') && !menu.querySelector('.page_item_has_children')) {\n return;\n }\n\n if (menu.closest('[data-interaction=\"hover\"]')) {\n menu.removeEventListener('mouseenter', mouseenterHandler);\n menu.addEventListener('mouseenter', mouseenterHandler);\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjcuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9jdEZyb250ZW5kLy4vc3RhdGljL2pzL2Zyb250ZW5kL2hlYWRlci9tZW51LmpzPzFmNDgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNUb3VjaERldmljZSB9IGZyb20gJy4uL2hlbHBlcnMvaXMtdG91Y2gtZGV2aWNlJztcblxuY29uc3QgaXNSdGwgPSAoKSA9PiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdodG1sJykuZGlyID09PSAncnRsJztcblxuY29uc3QgaXNFbGlnaWJsZUZvclN1Ym1lbnUgPSBlbCA9PiBlbC5jbGFzc0xpc3QuY29udGFpbnMoJ2FuaW1hdGVkLXN1Ym1lbnUnKSAmJiAoIWVsLnBhcmVudE5vZGUuY2xhc3NMaXN0LmNvbnRhaW5zKCdtZW51JykgfHwgZWwuY2xhc3NOYW1lLmluZGV4T2YoJ2N0LW1lZ2EtbWVudScpID09PSAtMSAmJiBlbC5wYXJlbnROb2RlLmNsYXNzTGlzdC5jb250YWlucygnbWVudScpKTtcblxuY29uc3QgZ2V0QWxsUGFyZW50cyA9IGEgPT4ge1xuICB2YXIgZWxzID0gW107XG5cbiAgd2hpbGUgKGEpIHtcbiAgICBlbHMudW5zaGlmdChhKTtcbiAgICBhID0gYS5wYXJlbnROb2RlO1xuICB9XG5cbiAgcmV0dXJuIGVscztcbn07XG5cbmZ1bmN0aW9uIGZ1cnRoZXN0KGVsLCBzKSB7XG4gIHZhciBub2RlcyA9IFtdO1xuXG4gIHdoaWxlIChlbC5wYXJlbnROb2RlKSB7XG4gICAgaWYgKGVsLnBhcmVudE5vZGUgJiYgZWwucGFyZW50Tm9kZS5tYXRjaGVzICYmIGVsLnBhcmVudE5vZGUubWF0Y2hlcyhzKSkge1xuICAgICAgbm9kZXMucHVzaChlbC5wYXJlbnROb2RlKTtcbiAgICB9XG5cbiAgICBlbCA9IGVsLnBhcmVudE5vZGU7XG4gIH1cblxuICByZXR1cm4gbm9kZXNbbm9kZXMubGVuZ3RoIC0gMV07XG59XG5cbmNvbnN0IGlzSW9zRGV2aWNlID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Lm5hdmlnYXRvciAmJiB3aW5kb3cubmF2aWdhdG9yLnBsYXRmb3JtICYmICgvaVAoYWR8aG9uZXxvZCkvLnRlc3Qod2luZG93Lm5hdmlnYXRvci5wbGF0Zm9ybSkgfHwgd2luZG93Lm5hdmlnYXRvci5wbGF0Zm9ybSA9PT0gJ01hY0ludGVsJyAmJiB3aW5kb3cubmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzID4gMSk7XG5cbmNvbnN0IGdldFByZWZlcmVkUGxhY2VtZW50Rm9yID0gZWwgPT4ge1xuICBjb25zdCBmYXJtb3N0ID0gZnVydGhlc3QoZWwsICdsaS5tZW51LWl0ZW0nKTtcblxuICBpZiAoIWZhcm1vc3QpIHtcbiAgICByZXR1cm4gaXNSdGwoKSA/ICdsZWZ0JyA6ICdyaWdodCc7XG4gIH1cblxuICBpZiAoIWZhcm1vc3QucXVlcnlTZWxlY3RvcignLnN1Yi1tZW51IC5zdWItbWVudSAuc3ViLW1lbnUnKSkge1xuICAgIHJldHVybiBpc1J0bCgpID8gJ2xlZnQnIDogJ3JpZ2h0JztcbiAgfVxuXG4gIHJldHVybiBmYXJtb3N0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgPiBpbm5lcldpZHRoIC8gMiA/ICdsZWZ0JyA6ICdyaWdodCc7XG59O1xuXG5jb25zdCBjb21wdXRlSXRlbVN1Ym1lbnVGb3IgPSAocmVmZXJlbmNlLCBfcmVmKSA9PiB7XG4gIGxldCB7XG4gICAgLy8gbGVmdCAtLSAxc3QgbGV2ZWwgbWVudSBpdGVtc1xuICAgIC8vIGVuZCAgLS0gc3VibWVudXNcbiAgICBzdGFydFBvc2l0aW9uID0gJ2VuZCdcbiAgfSA9IF9yZWY7XG4gIGNvbnN0IG1lbnUgPSByZWZlcmVuY2UucXVlcnlTZWxlY3RvcignLnN1Yi1tZW51Jyk7XG4gIGNvbnN0IHBsYWNlbWVudCA9IGdldFByZWZlcmVkUGxhY2VtZW50Rm9yKG1lbnUpO1xuICBjb25zdCB7XG4gICAgbGVmdCxcbiAgICB3aWR0aCxcbiAgICByaWdodFxuICB9ID0gbWVudS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgbGV0IGZ1dHVyZVBsYWNlbWVudCA9IHBsYWNlbWVudDtcbiAgbGV0IHJlZmVyZW5jZVJlY3QgPSByZWZlcmVuY2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgaWYgKHBsYWNlbWVudCA9PT0gJ2xlZnQnKSB7XG4gICAgbGV0IHJlZmVyZW5jZVBvaW50ID0gc3RhcnRQb3NpdGlvbiA9PT0gJ2VuZCcgPyByZWZlcmVuY2VSZWN0LmxlZnQgOiByZWZlcmVuY2VSZWN0LnJpZ2h0O1xuXG4gICAgaWYgKHJlZmVyZW5jZVBvaW50IC0gd2lkdGggPCAwKSB7XG4gICAgICBmdXR1cmVQbGFjZW1lbnQgPSAncmlnaHQnO1xuICAgIH1cbiAgfVxuXG4gIGlmIChwbGFjZW1lbnQgPT09ICdyaWdodCcpIHtcbiAgICBsZXQgcmVmZXJlbmNlUG9pbnQgPSBzdGFydFBvc2l0aW9uID09PSAnZW5kJyA/IHJlZmVyZW5jZVJlY3QucmlnaHQgOiByZWZlcmVuY2VSZWN0LmxlZnQ7XG5cbiAgICBpZiAocmVmZXJlbmNlUG9pbnQgKyB3aWR0aCA+IGlubmVyV2lkdGgpIHtcbiAgICAgIGZ1dHVyZVBsYWNlbWVudCA9ICdsZWZ0JztcbiAgICB9XG4gIH1cblxuICByZWZlcmVuY2UuZGF0YXNldC5zdWJtZW51ID0gZnV0dXJlUGxhY2VtZW50O1xuICByZWZlcmVuY2UuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7fSk7XG59O1xuXG5jb25zdCBvcGVuU3VibWVudSA9IGUgPT4ge1xuICBjb25zdCBsaSA9IGUudGFyZ2V0LmNsb3Nlc3QoJ2xpJyk7XG4gIGxpLmNsYXNzTGlzdC5hZGQoJ2N0LWFjdGl2ZScpO1xuICBsZXQgY2hpbGRJbmRpY2F0b3IgPSBbLi4ubGkuY2hpbGRyZW5dLmZpbmQoZWwgPT4gZWwubWF0Y2hlcygnLmN0LXRvZ2dsZS1kcm9wZG93bi1kZXNrdG9wLWdob3N0JykpO1xuXG4gIGlmICghY2hpbGRJbmRpY2F0b3IpIHtcbiAgICBjaGlsZEluZGljYXRvciA9IGxpLmZpcnN0RWxlbWVudENoaWxkO1xuICB9XG5cbiAgaWYgKGNoaWxkSW5kaWNhdG9yKSB7XG4gICAgY2hpbGRJbmRpY2F0b3Iuc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgJ3RydWUnKTtcblxuICAgIGlmIChjaGlsZEluZGljYXRvci50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdidXR0b24nKSB7XG4gICAgICBjaGlsZEluZGljYXRvci5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCBjdF9sb2NhbGl6YXRpb25zLmNvbGxhcHNlX3N1Ym1lbnUpO1xuICAgIH1cbiAgfVxuXG4gIG1vdXNlZW50ZXJIYW5kbGVyKHtcbiAgICB0YXJnZXQ6IGxpXG4gIH0pO1xufTtcblxuY29uc3QgY2xvc2VTdWJtZW51ID0gZSA9PiB7XG4gIGlmICghZS50YXJnZXQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBsaSA9IGUudGFyZ2V0LmNsb3Nlc3QoJ2xpJyk7XG4gIGxpLmNsYXNzTGlzdC5yZW1vdmUoJ2N0LWFjdGl2ZScpO1xuICBsZXQgY2hpbGRJbmRpY2F0b3IgPSBbLi4ubGkuY2hpbGRyZW5dLmZpbmQoZWwgPT4gZWwubWF0Y2hlcygnLmN0LXRvZ2dsZS1kcm9wZG93bi1kZXNrdG9wLWdob3N0JykpO1xuXG4gIGlmICghY2hpbGRJbmRpY2F0b3IpIHtcbiAgICBjaGlsZEluZGljYXRvciA9IGxpLmZpcnN0RWxlbWVudENoaWxkO1xuICB9XG5cbiAgaWYgKGNoaWxkSW5kaWNhdG9yKSB7XG4gICAgY2hpbGRJbmRpY2F0b3Iuc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG5cbiAgICBpZiAoY2hpbGRJbmRpY2F0b3IudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnYnV0dG9uJykge1xuICAgICAgY2hpbGRJbmRpY2F0b3Iuc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgY3RfbG9jYWxpemF0aW9ucy5leHBhbmRfc3VibWVudSk7XG4gICAgfVxuICB9XG5cbiAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgO1xuICAgIFsuLi5saS5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1zdWJtZW51XScpXS5tYXAoZWwgPT4ge1xuICAgICAgZWwucmVtb3ZlQXR0cmlidXRlKCdkYXRhLXN1Ym1lbnUnKTtcbiAgICB9KTtcbiAgICBbLi4ubGkucXVlcnlTZWxlY3RvckFsbCgnLmN0LWFjdGl2ZScpXS5tYXAoZWwgPT4ge1xuICAgICAgZWwuY2xhc3NMaXN0LnJlbW92ZSgnY3QtYWN0aXZlJyk7XG4gICAgfSk7XG4gIH0sIDMwKTtcbn07XG5cbmV4cG9ydCBjb25zdCBtb3VudE1lbnVMZXZlbCA9IGZ1bmN0aW9uIChtZW51TGV2ZWwpIHtcbiAgbGV0IGFyZ3MgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuICA7XG4gIFsuLi5tZW51TGV2ZWwuY2hpbGRyZW5dLmZpbHRlcihlbCA9PiBlbC5tYXRjaGVzKCcubWVudS1pdGVtLWhhcy1jaGlsZHJlbiwgLnBhZ2VfaXRlbV9oYXNfY2hpbGRyZW4nKSkubWFwKGVsID0+IHtcbiAgICBpZiAoZWwuY2xhc3NMaXN0LmNvbnRhaW5zKCdjdC1tZWdhLW1lbnUtY3VzdG9tLXdpZHRoJykpIHtcbiAgICAgIGNvbnN0IG1lbnUgPSBlbC5xdWVyeVNlbGVjdG9yKCcuc3ViLW1lbnUnKTtcbiAgICAgIGNvbnN0IGVsUmVjdCA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgbWVudVJlY3QgPSBtZW51LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICBpZiAoZWxSZWN0LmxlZnQgKyBlbFJlY3Qud2lkdGggLyAyICsgbWVudVJlY3Qud2lkdGggLyAyID4gaW5uZXJXaWR0aCkge1xuICAgICAgICBlbC5kYXRhc2V0LnN1Ym1lbnUgPSAnbGVmdCc7XG4gICAgICB9XG5cbiAgICAgIGlmIChlbFJlY3QubGVmdCArIGVsUmVjdC53aWR0aCAvIDIgLSBtZW51UmVjdC53aWR0aCAvIDIgPCAwKSB7XG4gICAgICAgIGVsLmRhdGFzZXQuc3VibWVudSA9ICdyaWdodCc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzRWxpZ2libGVGb3JTdWJtZW51KGVsKSkge1xuICAgICAgY29tcHV0ZUl0ZW1TdWJtZW51Rm9yKGVsLCBhcmdzKTtcbiAgICB9XG5cbiAgICBsZXQgY2hpbGRJbmRpY2F0b3IgPSBbLi4uZWwuY2hpbGRyZW5dLmZpbmQoZWwgPT4gZWwubWF0Y2hlcygnLmN0LXRvZ2dsZS1kcm9wZG93bi1kZXNrdG9wLWdob3N0JykpO1xuICAgIGxldCBoYXNDbGlja0ludGVyYWN0aW9uID0gZWwubWF0Y2hlcygnW2RhdGEtaW50ZXJhY3Rpb24qPVwiY2xpY2tcIl0gKicpO1xuXG4gICAgaWYgKCFoYXNDbGlja0ludGVyYWN0aW9uKSB7XG4gICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgZSA9PiB7XG4gICAgICAgIC8vIFNvIHRoYXQgbW91c2VlbnRlciBldmVudCBpcyBjYXRjaGVkIGJlZm9yZSB0aGUgb3BlbiBpdHNlbGZcbiAgICAgICAgaWYgKGlzSW9zRGV2aWNlKSB7XG4gICAgICAgICAgb3BlblN1Ym1lbnUoe1xuICAgICAgICAgICAgdGFyZ2V0OiBlbC5maXJzdEVsZW1lbnRDaGlsZFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICBvcGVuU3VibWVudSh7XG4gICAgICAgICAgICAgIHRhcmdldDogZWwuZmlyc3RFbGVtZW50Q2hpbGRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgZS50YXJnZXQuY2xvc2VzdCgnbGknKS5hZGRFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIGV2dCA9PiB7XG4gICAgICAgICAgaWYgKCFlLnRhcmdldC5jbG9zZXN0KCdsaScpLmNvbnRhaW5zKGV2dC50YXJnZXQpKSB7XG4gICAgICAgICAgICBjbG9zZVN1Ym1lbnUoZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTsgLy8gSWYgZmlyc3QgbGV2ZWxcblxuICAgICAgICBpZiAoIWVsLnBhcmVudE5vZGUuY2xhc3NMaXN0LmNvbnRhaW5zKCcuc3ViLW1lbnUnKSkge1xuICAgICAgICAgIDtcbiAgICAgICAgICBbLi4uZWwucGFyZW50Tm9kZS5jaGlsZHJlbl0uZmlsdGVyKGZpcnN0TGV2ZWxFbCA9PiBmaXJzdExldmVsRWwgIT09IGVsKS5tYXAoZmlyc3RMZXZlbEVsID0+IHtcbiAgICAgICAgICAgIGNsb3NlU3VibWVudSh7XG4gICAgICAgICAgICAgIHRhcmdldDogZmlyc3RMZXZlbEVsLmZpcnN0RWxlbWVudENoaWxkXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGUudGFyZ2V0LmNsb3Nlc3QoJ2xpJykuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsICgpID0+IHtcbiAgICAgICAgICBjbG9zZVN1Ym1lbnUoe1xuICAgICAgICAgICAgdGFyZ2V0OiBlbC5maXJzdEVsZW1lbnRDaGlsZFxuICAgICAgICAgIH0pO1xuICAgICAgICB9LCB7XG4gICAgICAgICAgb25jZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgIH0pOyAvLyBPbiBBbmRyb2lkIGRldmljZXMsIGFsbG93IG9ubHkgMm5kIGNsaWNrIHRvIG9wZW4gdGhlIGxpbmsuXG4gICAgICAvLyBGaXJzdCBjbGljayB3aWxsIGVuc3VyZSB0aGUgc3VibWVudSBpcyBvcGVuZWRcbiAgICAgIC8vXG4gICAgICAvLyBpT1MgaGFzIHRoaXMgYmVoYXZpb3VyIG91dCBvZiB0aGUgYm94LlxuICAgICAgLy9cbiAgICAgIC8vIEltcG9ydGFudDogb25seSBwZXJmb3JtIHRoaXMgZm9yIHRvdWNoIGRldmljZXMgc28gdGhhdCBrZXlib2FyZFxuICAgICAgLy8gdXNlcnMgYXJlIG5vdCBhZmZlY3RlZC5cblxuICAgICAgaWYgKGlzVG91Y2hEZXZpY2UoKSkge1xuICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGUgPT4ge1xuICAgICAgICAgIGlmICghZWwuY2xhc3NMaXN0LmNvbnRhaW5zKCdjdC1hY3RpdmUnKSkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGhhc0NsaWNrSW50ZXJhY3Rpb24pIHtcbiAgICAgIGxldCBpdGVtVGFyZ2V0ID0gZWwubWF0Y2hlcygnW2RhdGEtaW50ZXJhY3Rpb24qPVwiaXRlbVwiXSAqJykgPyBlbC5maXJzdEVsZW1lbnRDaGlsZCA6IGVsLmZpcnN0RWxlbWVudENoaWxkLnF1ZXJ5U2VsZWN0b3IoJy5jdC10b2dnbGUtZHJvcGRvd24tZGVza3RvcCcpO1xuXG4gICAgICBpZiAoIWl0ZW1UYXJnZXQuaGFzRXZlbnRMaXN0ZW5lcikge1xuICAgICAgICBpdGVtVGFyZ2V0Lmhhc0V2ZW50TGlzdGVuZXIgPSB0cnVlO1xuICAgICAgICBpdGVtVGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZSA9PiB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgaWYgKGUudGFyZ2V0LmNsb3Nlc3QoJ2xpJykuY2xhc3NMaXN0LmNvbnRhaW5zKCdjdC1hY3RpdmUnKSkge1xuICAgICAgICAgICAgY2xvc2VTdWJtZW51KGUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvcGVuU3VibWVudShlKTtcblxuICAgICAgICAgICAgaWYgKGlzSW9zRGV2aWNlKSB7XG4gICAgICAgICAgICAgIGUudGFyZ2V0LmNsb3Nlc3QoJ2xpJykuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsICgpID0+IHtcbiAgICAgICAgICAgICAgICBjbG9zZVN1Ym1lbnUoe1xuICAgICAgICAgICAgICAgICAgdGFyZ2V0OiBlbC5maXJzdEVsZW1lbnRDaGlsZFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgb25jZTogdHJ1ZVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFlLnRhcmdldC5oYXNEb2N1bWVudExpc3RlbmVyKSB7XG4gICAgICAgICAgICAgIGUudGFyZ2V0Lmhhc0RvY3VtZW50TGlzdGVuZXIgPSB0cnVlOyAvLyBBZGQgdGhlIGV2ZW50IGEgYml0IGxhdGVyXG5cbiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBldnQgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKCFlLnRhcmdldC5jbG9zZXN0KCdsaScpLmNvbnRhaW5zKGV2dC50YXJnZXQpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsb3NlU3VibWVudShlKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGUudGFyZ2V0LmNsb3Nlc3QoJ2xpJykuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXNvdXQnLCBldnQgPT4ge1xuICAgICAgICAgICAgICBpZiAoIWUudGFyZ2V0LmNsb3Nlc3QoJ2xpJykuY29udGFpbnMoZXZ0LnRhcmdldCkpIHtcbiAgICAgICAgICAgICAgICBjbG9zZVN1Ym1lbnUoZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNoaWxkSW5kaWNhdG9yICYmICFjaGlsZEluZGljYXRvci5oYXNFdmVudExpc3RlbmVyKSB7XG4gICAgICBjaGlsZEluZGljYXRvci5oYXNFdmVudExpc3RlbmVyID0gdHJ1ZTtcbiAgICAgIGNoaWxkSW5kaWNhdG9yLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZSA9PiB7XG4gICAgICAgIGlmIChlLnRhcmdldC5jbG9zZXN0KCdsaScpLmNsYXNzTGlzdC5jb250YWlucygnY3QtYWN0aXZlJykpIHtcbiAgICAgICAgICBjbG9zZVN1Ym1lbnUoZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb3BlblN1Ym1lbnUoZSk7XG4gICAgICAgICAgZS50YXJnZXQuY2xvc2VzdCgnbGknKS5hZGRFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIGV2dCA9PiB7XG4gICAgICAgICAgICBpZiAoIWUudGFyZ2V0LmNsb3Nlc3QoJ2xpJykuY29udGFpbnMoZXZ0LnRhcmdldCkpIHtcbiAgICAgICAgICAgICAgY2xvc2VTdWJtZW51KGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH0pO1xufTtcblxuY29uc3QgbW91c2VlbnRlckhhbmRsZXIgPSBfcmVmMiA9PiB7XG4gIGxldCB7XG4gICAgdGFyZ2V0XG4gIH0gPSBfcmVmMjtcblxuICBpZiAoIXRhcmdldC5tYXRjaGVzKCcubWVudS1pdGVtLWhhcy1jaGlsZHJlbiwgLnBhZ2VfaXRlbV9oYXNfY2hpbGRyZW4nKSkge1xuICAgIHRhcmdldCA9IHRhcmdldC5jbG9zZXN0KCcubWVudS1pdGVtLWhhcy1jaGlsZHJlbiwgLnBhZ2VfaXRlbV9oYXNfY2hpbGRyZW4nKTtcbiAgfVxuXG4gIGlmICh0YXJnZXQucGFyZW50Tm9kZS5jbGFzc0xpc3QuY29udGFpbnMoJ21lbnUnKSAmJiB0YXJnZXQuY2xhc3NOYW1lLmluZGV4T2YoJ2N0LW1lZ2EtbWVudScpID4gLTEgJiYgdGFyZ2V0LmNsYXNzTmFtZS5pbmRleE9mKCdjdC1tZWdhLW1lbnUtY3VzdG9tLXdpZHRoJykgPT09IC0xICYmIHdpbmRvdy53cCAmJiB3cCAmJiB3cC5jdXN0b21pemUgJiYgd3AuY3VzdG9taXplKCdhY3RpdmVfdGhlbWUnKSkge1xuICAgIGNvbnN0IG1lbnUgPSB0YXJnZXQucXVlcnlTZWxlY3RvcignLnN1Yi1tZW51Jyk7XG4gICAgbWVudS5zdHlsZS5sZWZ0ID0gYCR7TWF0aC5yb3VuZCh0YXJnZXQuY2xvc2VzdCgnW2NsYXNzKj1cImN0LWNvbnRhaW5lclwiXScpLmZpcnN0RWxlbWVudENoaWxkLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLngpIC0gTWF0aC5yb3VuZCh0YXJnZXQuY2xvc2VzdCgnbmF2JykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueCl9cHhgO1xuICB9XG5cbiAgaWYgKCFpc0VsaWdpYmxlRm9yU3VibWVudSh0YXJnZXQpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgbWVudSA9IHRhcmdldC5xdWVyeVNlbGVjdG9yKCcuc3ViLW1lbnUnKTtcbiAgbW91bnRNZW51TGV2ZWwobWVudSk7XG5cbiAgaWYgKG1lbnUuY2xvc2VzdCgnW2RhdGEtaW50ZXJhY3Rpb249XCJob3ZlclwiXScpKSB7XG4gICAgbWVudS5wYXJlbnROb2RlLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCAoKSA9PiB7XG4gICAgICA7XG4gICAgICBbLi4ubWVudS5jaGlsZHJlbl0uZmlsdGVyKGVsID0+IGlzRWxpZ2libGVGb3JTdWJtZW51KGVsKSkubWFwKGVsID0+IGVsLnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1zdWJtZW51JykpO1xuICAgIH0sIHtcbiAgICAgIG9uY2U6IHRydWVcbiAgICB9KTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZVVwZGF0ZSA9IG1lbnUgPT4ge1xuICBpZiAoIW1lbnUucGFyZW50Tm9kZSkge1xuICAgIG1lbnUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBbY2xhc3M9XCIke21lbnUuY2xhc3NOYW1lfVwiXWApO1xuICB9XG5cbiAgaWYgKCFtZW51KSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKCFtZW51LnF1ZXJ5U2VsZWN0b3IoJy5tZW51LWl0ZW0taGFzLWNoaWxkcmVuJykgJiYgIW1lbnUucXVlcnlTZWxlY3RvcignLnBhZ2VfaXRlbV9oYXNfY2hpbGRyZW4nKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChtZW51LmNsb3Nlc3QoJ1tkYXRhLWludGVyYWN0aW9uPVwiaG92ZXJcIl0nKSkge1xuICAgIG1lbnUucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIG1vdXNlZW50ZXJIYW5kbGVyKTtcbiAgICBtZW51LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBtb3VzZWVudGVySGFuZGxlcik7XG4gIH1cbn07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///27\n")}}]);