1!function(){try{var n="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},l=(new n.Error).stack;l&&(n._sentryDebugIds=n._sentryDebugIds||{},n._sentryDebugIds[l]="16524278-3cac-4d41-a4d5-2e101bc99dfd",n._sentryDebugIdIdentifier="sentry-dbid-16524278-3cac-4d41-a4d5-2e101bc99dfd")}catch(n){}}(),(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3332],{752:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval(__webpack_require__.ts('// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n __N_SSP: () => (/* binding */ __N_SSP),\n "default": () => (/* binding */ LandingPage)\n});\n\n// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js\nvar jsx_runtime = __webpack_require__(7876);\n// EXTERNAL MODULE: ./node_modules/react/index.js\nvar react = __webpack_require__(4232);\n// EXTERNAL MODULE: ./src/styles/pages/index.module.css\nvar index_module = __webpack_require__(7387);\nvar index_module_default = /*#__PURE__*/__webpack_require__.n(index_module);\n// EXTERNAL MODULE: ./node_modules/next/router.js\nvar next_router = __webpack_require__(9099);\n// EXTERNAL MODULE: ./node_modules/react-redux/dist/react-redux.mjs\nvar react_redux = __webpack_require__(1777);\n// EXTERNAL MODULE: ./src/store/shops/shopsSlice.js\nvar shopsSlice = __webpack_require__(8823);\n// EXTERNAL MODULE: ./src/components/DynamicHead.js + 1 modules\nvar DynamicHead = __webpack_require__(5704);\n// EXTERNAL MODULE: ./node_modules/next/image.js\nvar next_image = __webpack_require__(4587);\nvar image_default = /*#__PURE__*/__webpack_require__.n(next_image);\n// EXTERNAL MODULE: ./src/utils/slug.js\nvar slug = __webpack_require__(2839);\n// EXTERNAL MODULE: ./src/utils/shopLinks.js + 1 modules\nvar shopLinks = __webpack_require__(3271);\n// EXTERNAL MODULE: ./src/utils/shopSeo.js\nvar shopSeo = __webpack_require__(4477);\n// EXTERNAL MODULE: ./src/components/Layout.js + 1 modules\nvar Layout = __webpack_require__(9638);\n// EXTERNAL MODULE: ./src/components/HeroSection.js\nvar HeroSection = __webpack_require__(6578);\n// EXTERNAL MODULE: ./src/components/Intro.js\nvar Intro = __webpack_require__(9579);\n// EXTERNAL MODULE: ./src/styles/components/generalSection.module.css\nvar generalSection_module = __webpack_require__(2102);\nvar generalSection_module_default = /*#__PURE__*/__webpack_require__.n(generalSection_module);\n// EXTERNAL MODULE: ./src/utils/shimmer.js\nvar shimmer = __webpack_require__(2163);\n// EXTERNAL MODULE: ./src/utils/screenSize.js\nvar utils_screenSize = __webpack_require__(3697);\n// EXTERNAL MODULE: ./src/components/animations/WordStagger.js\nvar WordStagger = __webpack_require__(712);\n// EXTERNAL MODULE: ./src/utils/pageUtils.js\nvar pageUtils = __webpack_require__(484);\n;// ./src/components/GeneralSection.js\n\n\n\n\n\n\n\nconst isVideoUrl = (url)=>typeof url === \'string\' && /\\.(mp4|webm|ogg|mov)$/i.test(url);\nconst cx = (block, variant, pageName, sectionName)=>[\n (generalSection_module_default())[block],\n (generalSection_module_default())[`${block}--${variant}`],\n (generalSection_module_default())[`${block}--${pageName}`],\n (generalSection_module_default())[`${block}--${variant}-${pageName}`],\n sectionName && (generalSection_module_default())[`${block}--${sectionName}`]\n ].filter(Boolean).join(\' \');\nconst SectionMedia = ({ section, variant, pageName, sectionName, screenSize, mediaUrl: mediaUrlOverride })=>{\n const mediaUrl = mediaUrlOverride ?? (0,utils_screenSize/* getMediaUrlForSize */.k)(section, screenSize);\n if (!mediaUrl) return null;\n const isSmallScreen = screenSize === \'sm\';\n const block = \'section-general-image\';\n if (isVideoUrl(mediaUrl)) {\n return /*#__PURE__*/ (0,jsx_runtime.jsx)("video", {\n src: mediaUrl,\n className: cx(block, variant, pageName, sectionName),\n autoPlay: true,\n muted: true,\n loop: true,\n playsInl
1ine: true\n });\n }\n return /*#__PURE__*/ (0,jsx_runtime.jsx)((image_default()), {\n src: mediaUrl,\n alt: section?.altImageTxt || section?.title || \'\',\n width: isSmallScreen ? 440 : 1600,\n height: 390,\n quality: 100,\n loading: "lazy",\n sizes: isSmallScreen ? \'100vw\' : \'(max-width: 768px) 1000px, (max-width: 1200px) 100vw, 1600px\',\n className: cx(block, variant, pageName, sectionName),\n placeholder: "blur",\n blurDataURL: (0,shimmer/* shimmer */.i)(isSmallScreen ? 440 : 1600, 600)\n });\n};\nconst BaseSectionLayout = ({ variant, pageName, sectionName, section, screenSize, children, mediaUrl })=>/*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {\n className: cx(\'section-general\', variant, pageName, sectionName),\n "data-page": pageName,\n "data-variant": variant,\n "data-section": sectionName,\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {\n className: cx(\'section-general-media\', variant, pageName, sectionName),\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(SectionMedia, {\n section: section,\n variant: variant,\n pageName: pageName,\n sectionName: sectionName,\n screenSize: screenSize,\n mediaUrl: mediaUrl\n })\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {\n className: cx(\'section-general-contents\', variant, pageName, sectionName),\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(WordStagger/* default */.A, {\n as: "h2",\n className: cx(\'section-general-title\', variant, pageName, sectionName),\n baseDelay: pageUtils/* ANIMATION_SPEEDS */.y7.heading.baseDelay,\n stagger: pageUtils/* ANIMATION_SPEEDS */.y7.heading.stepDelay,\n children: section?.title\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(WordStagger/* default */.A, {\n as: "h3",\n className: cx(\'section-general-subTitle\', variant, pageName, sectionName),\n baseDelay: pageUtils/* ANIMATION_SPEEDS */.y7.heading.baseDelay,\n stagger: pageUtils/* ANIMATION_SPEEDS */.y7.heading.stepDelay,\n children: section?.subTitle\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(WordStagger/* default */.A, {\n as: "p",\n className: cx(\'section-general-description\', variant, pageName, sectionName),\n baseDelay: pageUtils/* ANIMATION_SPEEDS */.y7.paragraph.baseDelay,\n stagger: pageUtils/* ANIMATION_SPEEDS */.y7.paragraph.stepDelay,\n children: section?.description\n }),\n children\n ]\n })\n ]\n });\n// -- Variants --\nconst DefaultSection = (props)=>/*#__PURE__*/ (0,jsx_runtime.jsx)(BaseSectionLayout, {\n ...props,\n variant: "default"\n });\nconst ButtonSection = ({ section, pageName, sectionName, screenSize, onButtonClick })=>/*#__PURE__*/ (0,jsx_runtime.jsx)(BaseSectionLayout, {\n variant: "button",\n section: section,\n pageName: pageName,\n sectionName: sectionName,\n screenSize: screenSize,\n children: section?.button?.label && /*#__PURE__*/ (0,jsx_runtime.jsx)("a", {\n href: section.button.href,\n className: cx(\'section-general-link\', \'button\', pageName, sectionName),\n onClick: onButtonClick ? (e)=>onButtonClick(e, section) : undefined,\n children: section.button.label\n })\n });\nconst IconListSection = ({ section, pageName, sectionName, screenSize })=>/*#__PURE__*/ (0,jsx_runtime.jsx)(BaseSectionLayout, {\n variant: "iconList",\n section: section,\n pageName: pageName,\n sectionName: sectionName,\n screenSize: screenSize,\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)("ul", {\n className: cx(\'section-general-bullets\', \'iconList\', pageName, sectionName),\n children: section?.bullets?.map((bullet, idx)=>/*#__PURE__*/ (0,jsx_runtime.jsxs)("li", {\n className: cx(\'section-general-bullet-item\', \'iconList\', pageName, sectionName),\n children: [\n " ",\n /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {\n className: cx(\'section-general-bullet-icon--wrapper\', \'iconList\', pageName, sectionName),\n children: bullet.icon && /*#__PURE__*/ (0,jsx_runtime.jsx)("img", {\n src: bullet.icon,\n alt: "",\n "aria-hidden": "true",\n className: cx(\'section-general-bullet-icon\', \'iconList\', pageName, sectionName)\n })\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)("span", {\n className: cx(\'section-general-bullet-text\', \'iconList\', pageName, sectionName),\n children: bullet.text\n })\n ]\n }, idx))\n })\n });\nconst SECTION_VARIANTS = {\n button: ButtonSection,\n iconList: IconListSection,\n default: DefaultSection\n};\nfunction GeneralSection({ section, pageSlug, sectionName, mediaUrl, mediaUrl_sm, mediaUrl_md, onButtonClick }) {\n const screenSize = (0,utils_screenSize/* useScreenSize */.l)();\n if (!section) return null;\n const mergedSection = {\n ...section,\n ...mediaUrl ? {\n mediaUrl\n } : {},\n ...mediaUrl_sm ? {\n mediaUrl_sm\n } : {},\n ...mediaUrl_md ? {\n mediaUrl_md\n } : {}\n };\n const SectionVariant = SECTION_VARIANTS[mergedSection?.type] ?? DefaultSection;\n return /*#__PURE__*/ (0,jsx_runtime.jsx)(SectionVariant, {\n section: mergedSection,\n pageSlug: pageSlug,\n sectionName: sectionName,\n screenSize: screenSize,\n onButtonClick: onButtonClick\n });\n}\n\n// EXTERNAL MODULE: ./node_modules/axios/lib/axios.js + 53 modules\nvar axios = __webpack_require__(8028);\n// EXTERNAL MODULE: ./src/utils/env.js\nvar env = __webpack_require__(6807);\n;// ./src/api/PageApi.js\n\n\n\nconst axiosInstance = axios/* default */.A.create({\n headers: {\n \'Content-Type\': \'application/json\'\n }\n});
1\nconst PageApi = {\n getPublicPageData: async (pageType, project = \'blueberry\')=>{\n const url = `${(0,env/* getApiUrl */.e9)(\'globalPages\')}/public/pages/${project}/${pageType}`;\n const response = await axiosInstance.get(url);\n return response.data;\n },\n getPublicHomePage: async ()=>PageApi.getPublicPageData(\'home\'),\n getPublicFaqsPage: async ()=>PageApi.getPublicPageData(\'faqs\'),\n getShopsData: async ()=>{\n const url = `${(0,env/* getApiUrl */.e9)(\'shops\')}/public/shops`;\n const response = await axiosInstance.get(url);\n return response.data;\n },\n getShopById: async (shopId)=>{\n const url = `${(0,env/* getApiUrl */.e9)(\'shops\')}/shops/${shopId}`;\n const response = await axiosInstance.get(url);\n return response.data;\n },\n getPublicMenuPage: async ()=>{\n const url = `${(0,env/* getApiUrl */.e9)(\'menuPage\')}/public/menuPage`;\n const response = await axiosInstance.get(url);\n return response.data;\n },\n getRestaurantMenu: async ()=>{\n const url = `${(0,env/* getApiUrl */.e9)(\'restaurantMenu\')}/public/restaurantMenu/map`;\n const response = await axiosInstance.get(url);\n return response.data;\n },\n getGlobalPageByType: async (pageType)=>{\n const url = `${(0,env/* getApiUrl */.e9)(\'globalPages\')}/public/pages/${pageType}`;\n const response = await axiosInstance.get(url);\n return response.data;\n },\n getAboutPage: async ()=>PageApi.getGlobalPageByType(\'about\'),\n getContactPage: async ()=>PageApi.getGlobalPageByType(\'contact\'),\n getPrivacyPolicyPage: async ()=>PageApi.getGlobalPageByType(\'privacy-policy\'),\n getTermsAndConditionsPage: async ()=>PageApi.getGlobalPageByType(\'terms-and-conditions\'),\n getCancellationPolicyPage: async ()=>PageApi.getGlobalPageByType(\'cancellation-policy\'),\n getBlogPage: async ()=>PageApi.getGlobalPageByType(\'blog\'),\n getInstagramFeed: async ()=>{\n const url = `${(0,env/* getApiUrl */.e9)(\'instagram\')}/public/instagram/feed`;\n const response = await axiosInstance.get(url);\n return response.data;\n },\n subscribeToNewsletter: async (email)=>{\n const url = `${(0,env/* getApiUrl */.e9)(\'newsletter\')}/public/emails`;\n const response = await axiosInstance.post(url, {\n email\n });\n return response.data;\n },\n sendEmailNotification: async (data)=>{\n const url = `${(0,env/* getApiUrl */.e9)(\'email\')}/api/email-notification`;\n const response = await axiosInstance.post(url, data);\n return response.data;\n }\n};\n/* harmony default export */ const api_PageApi = ((/* unused pure expression or super */ null && (PageApi)));\nconst getPublicPageData = PageApi.getPublicPageData;\nconst getPublicHomePageData = ()=>PageApi.getPublicPageData(\'home\');\nconst getPublicFaqsPageData = ()=>PageApi.getPublicPageData(\'faqs\');\n\n// EXTERNAL MODULE: ./node_modules/next/link.js\nvar next_link = __webpack_require__(8230);\nvar link_default = /*#__PURE__*/__webpack_require__.n(next_link);\n// EXTERNAL MODULE: ./src/components/ShopPickerPopup.js\nvar ShopPickerPopup = __webpack_require__(6197);\n// EXTERNAL MODULE: ./node_modules/embla-carousel-react/esm/embla-carousel-react.esm.js + 2 modules\nvar embla_carousel_react_esm = __webpack_require__(4820);\n// EXTERNAL MODULE: ./node_modules/embla-carousel-auto-scroll/esm/embla-carousel-auto-scroll.esm.js\nvar embla_carousel_auto_scroll_esm = __webpack_require__(5942);\n// EXTERNAL MODULE: ./node_modules/next/dynamic.js\nvar dynamic = __webpack_require__(8847);\nvar dynamic_default = /*#__PURE__*/__webpack_require__.n(dynamic);\n;// ./src/pages/index.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// Lazy-load below-fold components for faster initial page load\nconst LocationsSection = dynamic_default()(()=>Promise.all(/* import() */[__webpack_require__.e(252), __webpack_require__.e(1059)]).then(__webpack_require__.bind(__webpack_require__, 3440)), {\n loadableGenerated: {\n webpack: ()=>[\n /*require.resolve*/(3440)\n ]\n },\n ssr: true\n});\nconst MenuCarousel = dynamic_default()(()=>Promise.all(/* import() */[__webpack_require__.e(2765), __webpack_require__.e(9134)]).then(__webpack_require__.bind(__webpack_require__, 9134)), {\n loadableGenerated: {\n webpack: ()=>[\n /*require.resolve*/(9134)\n ]\n },\n ssr: false\n});\nconst splitShortAddress = (s)=>{\n if (!s) return [\n \'\',\n \'\'\n ];\n const i = s.indexOf(\',\');\n if (i === -1) return [\n s.trim(),\n \'\'\n ];\n return [\n s.slice(0, i).trim(),\n s.slice(i + 1).trim()\n ];\n};\nvar __N_SSP = true;\nfunction LandingPage({ shops, homePage, instagramUrls = [] }) {\n const router = (0,next_router.useRouter)();\n const dispatch = (0,react_redux/* useDispatch */.wA)();\n const containerRef = (0,react.useRef)(null);\n const circleRefs = (0,react.useRef)({});\n const prevBodyColorRef = (0,react.useRef)(\'\');\n const transitionEndHandledRef = (0,react.useRef)(false);\n const [playIntro, setPlayIntro] = (0,react.useState)(false);\n const [noGrow, setNoGrow] = (0,react.useState)(false);\n const [landingColorShouldChange, setLandingColorShouldChange] = (0,react.useState)(false);\n const [circleShouldShrink, setCircleShouldShrink] = (0,react.useState)(false);\n const [radii, setRadii] = (0,react.useState)({\n outer: 0,\n inner: 0\n });\n const [selectedShopId, setSelectedShopId] = (0,react.useState)(null);\n // Landing-page generic links (no shop slug) open the shop picker instead of navigating.\n const [pickerTarget, setPickerTarget] = (0,react.useState)(null);\n // "Leave a review" has no shop context here, so pick a location first, then\n // open that shop\'s Google review URL (same model as the footer).\n const [reviewPickerOpen, setReviewPickerOpen] = (0,react.useState)(false);\n // Buttons whose target is "location" pick a shop, then open its Google Maps.\n const [mapsPickerOpen, setMapsPickerOpen] = (0,react.useState)(false);\n const [mountHomePage, setMountHomePage] = (0,react.useState)(false);\n const [hideLanding, setHideLanding] = (0,react.useState)(false);\n const instaGalleryRef = (0,react.useRef)(null);\n const [instaColumnCount, setInstaColumnCount] = (0,react.useState)(5);\n const [transitionState, setTransitionState] = (0,react.useState)({\n active: false,\n go: false,\n rect: null,\n endRect: null,\n image: \'\',\n shop: null,\n navigated: false\n });\n const [moveUpLandingCircleLogo, setMoveUpLandingCircleLogo] = (0,react.useState)(false);\n const timeOfCircle1 = 0.0;\n const timeOfCircle2 = 0.1;\n const timeOfCircle3 = 0.3;\n const timeOfCircle4 = 0.2;\n const timeOfCircle5 = 0.5;\n const timeOfCircle6 = 0.5;\n const timeOfCircle7 = 0.5;\n const timeOfCircle8 = 0.5;\n const timeCircleOpenInSec = 1.1;\n const timeCircleOpenInMs = timeCircleOpenInSec * 2000;
1\n const heroBackgroundByShop = (0,react.useMemo)(()=>{\n const m = {};\n shops?.forEach((shop)=>{\n // console.log(\'shopXXXX= \', shop);\n if (shop?.id && shop.pages?.length > 0) {\n const firstPage = shop.pages[0];\n const sectionHeros = firstPage.sectionHeros;\n if (sectionHeros?.length > 0) {\n const firstSectionHero = sectionHeros[0];\n if (firstSectionHero?.mediaUrl) {\n m[shop.id] = firstSectionHero.mediaUrl;\n }\n }\n }\n });\n return m;\n }, [\n shops\n ]);\n const preloadImage = (0,react.useCallback)((url)=>{\n if (!url) return;\n const img = new window.Image();\n img.decoding = \'async\';\n img.loading = \'eager\';\n img.src = url;\n }, []);\n (0,react.useEffect)(()=>{\n shops.slice(0, 5).forEach((shop)=>{\n const first = shop.shopImage;\n if (first) preloadImage(first);\n });\n // preloadImage is stable (empty deps), so don\'t include it\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n shops\n ]);\n // The homepage has no shop context. Clear any shop left over from a previous\n // shop page / circle click so the waitlist widget shows the shop picker\n // instead of locking onto a stale shop after client-side navigation back here.\n (0,react.useEffect)(()=>{\n dispatch((0,shopsSlice/* setCurrentShop */.qW)(null));\n }, [\n dispatch\n ]);\n (0,react.useEffect)(()=>{\n const t = setTimeout(()=>setNoGrow(true), timeCircleOpenInMs);\n return ()=>clearTimeout(t);\n }, [\n timeCircleOpenInMs\n ]);\n (0,react.useEffect)(()=>{\n const readRadiiFromCSS = ()=>{\n const rs = getComputedStyle(document.documentElement);\n const outer = parseFloat(rs.getPropertyValue(\'--ea-landing-outer-radius\')) || 320;\n const inner = parseFloat(rs.getPropertyValue(\'--ea-landing-inner-radius\')) || 220;\n setRadii((prev)=>{\n if (prev.outer === outer && prev.inner === inner) return prev;\n return {\n outer,\n inner\n };\n });\n };\n readRadiiFromCSS();\n const introId = setTimeout(()=>setPlayIntro(true), 40);\n let rafId = null;\n const onResize = ()=>{\n if (rafId) cancelAnimationFrame(rafId);\n rafId = requestAnimationFrame(readRadiiFromCSS);\n };\n window.addEventListener(\'resize\', onResize);\n window.addEventListener(\'orientationchange\', onResize);\n return ()=>{\n clearTimeout(introId);\n if (rafId) cancelAnimationFrame(rafId);\n window.removeEventListener(\'resize\', onResize);\n window.removeEventListener(\'orientationchange\', onResize);\n };\n }, []);\n (0,react.useEffect)(()=>{\n return ()=>{\n document.body.classList.remove(\'landing-transition\');\n };\n }, []);\n (0,react.useEffect)(()=>{\n const on = transitionState.active && transitionState.go;\n if (on) {\n prevBodyColorRef.current = document.body.style.backgroundColor || \'\';\n } else {\n document.body.style.backgroundColor = prevBodyColorRef.current;\n }\n return ()=>{\n document.body.style.backgroundColor = prevBodyColorRef.current;\n };\n }, [\n transitionState.active,\n transitionState.go\n ]);\n const handleCenteralLogoClick = ()=>{\n window.location.reload();\n };\n // GeneralSection buttons on the landing page have no shop context, so open the\n // shop picker instead of navigating. The target page is derived from the\n // button\'s own href (e.g. "/contact" -> "contact"), defaulting to the menu.\n const handleSectionButtonClick = (e, section)=>{\n e.preventDefault();\n const href = section?.button?.target || \'\';\n const target = href.replace(/^https?:\\/\\/[^/]+/i, \'\').replace(/^\\/+|\\/+$/g, \'\') || \'restaurantMenu\';\n // "location" buttons open the chosen shop\'s Google Maps rather than a page.\n if (target === \'location\') {\n setMapsPickerOpen(true);\n return;\n }\n setPickerTarget(target);\n };\n const handleReviewShopPicked = (shop)=>{\n const url = (0,shopLinks/* reviewUrlForShop */.D)(shop);\n if (url) window.open(url, \'_blank\', \'noopener,noreferrer\');\n };\n const handleMapsShopPicked = (shop)=>{\n const url = (0,shopLinks/* directionsUrlForShop */.t)(shop);\n if (url) window.open(url, \'_blank\', \'noopener,noreferrer\');\n };\n const finishTransition = (0,react.useCallback)((shop)=>{\n if (transitionEndHandledRef.current) return;\n if (!shop?.id) return;\n transitionEndHandledRef.current = true;\n const shopName = (0,slug/* slugify */.Y)(shop.name || shop.id);\n setTransitionState((s)=>({\n ...s,\n navigated: true,\n active: false\n }));\n setHideLanding(true);\n setPlayIntro(false);\n setNoGrow(true);\n router.push(`/${shopName}/`);\n }, [\n router\n ]);\n const handleCircleClick = async (shop)=>{\n dispatch((0,shopsSlice/* setCurrentShop */.qW)(shop));\n setSelectedShopId(shop.id);\n setMountHomePage(true);\n const circleEl = circleRefs.current[shop.id];\n if (!circleEl) return;\n const startRect = circleEl.getBoundingClientRect();
1\n const imageUrl = heroBackgroundByShop[shop.id] || \'/images/landing/img-1.png\';\n const isSmallScreen = window.matchMedia(\'(max-width: 576px)\').matches;\n setCircleShouldShrink(true);\n setMoveUpLandingCircleLogo(true);\n document.body.classList.add(\'landing-transition\');\n setTimeout(()=>setLandingColorShouldChange(true), 80);\n requestAnimationFrame(()=>{\n requestAnimationFrame(()=>{\n const heroEl = document.querySelector(\'[data-hero-target]\');\n const landingEl = document.querySelector(\'[data-landing]\');\n const heroRect = heroEl?.getBoundingClientRect();\n const landingH = landingEl?.offsetHeight || 0;\n const safeEndRect = heroRect ? {\n left: heroRect.left + (isSmallScreen ? 20 : 0),\n top: Math.max(0, heroRect.top - landingH),\n width: heroRect.width - (isSmallScreen ? 40 : 0),\n height: heroRect.height\n } : {\n left: 0,\n top: 0,\n width: window.innerWidth,\n height: window.innerHeight\n };\n setTransitionState({\n active: true,\n go: false,\n rect: startRect,\n endRect: safeEndRect,\n image: imageUrl,\n shop,\n navigated: false\n });\n requestAnimationFrame(()=>{\n setTransitionState((s)=>({\n ...s,\n go: true\n }));\n setTimeout(()=>document.body.classList.remove(\'landing-transition\'), 100);\n // Fallback: complete navigation even if the rect\'s transitionend\n // for `width` never fires (e.g. when startRect.width happens to\n // equal endRect.width, or the event is dropped). Without this,\n // hideLanding stays false and landing-section overlays the hero.\n setTimeout(()=>finishTransition(shop), 750);\n });\n });\n });\n };\n const onTransitionEnd = (e)=>{\n // Inner .transition-content transitions opacity; ignore it so we only\n // react to the rect\'s own size/position transitions.\n if (e.propertyName === \'opacity\') return;\n if (!transitionState.active || !transitionState.go || transitionState.navigated || !transitionState.shop?.id) return;\n finishTransition(transitionState.shop);\n };\n const delays = [\n timeOfCircle1,\n timeOfCircle2,\n timeOfCircle3,\n timeOfCircle4,\n timeOfCircle5,\n timeOfCircle6,\n timeOfCircle7,\n timeOfCircle8\n ];\n const cx = 0;\n const cy = 0;\n const polar = (deg, r, cx0 = 0, cy0 = 0)=>{\n const rad = deg * Math.PI / 180;\n return {\n x: Math.cos(rad) * r + cx0,\n y: Math.sin(rad) * r + cy0\n };\n };\n const curvePath = (dx, dy, bx = 0, by = -120)=>{\n const c1x = dx * 0.25 + bx;\n const c1y = dy * 0.1 + by;\n const c2x = dx * 0.75 + bx;\n const c2y = dy * 0.1 + by;\n return `path("M0,0 C ${c1x},${c1y} ${c2x},${c2y} ${dx},${dy}")`;\n };\n const targets = [\n polar(225, radii.outer, cx, cy),\n polar(150, radii.outer, cx, cy),\n polar(30, radii.outer, cx, cy),\n polar(315, radii.outer, cx, cy),\n polar(90, radii.inner, cx, cy),\n polar(360, radii.inner, cx, cy),\n polar(270, radii.inner, cx, cy),\n polar(180, radii.inner, cx, cy)\n ];\n const bendX = 0.3;\n const bendY = 0.3;\n const bends = [\n {\n bx: -60 * bendX,\n by: -540 * bendY\n },\n {\n bx: -60 * bendX,\n by: -140 * bendY\n },\n {\n bx: -150 * bendX,\n by: 250 * bendY\n },\n {\n bx: 80 * bendX,\n by: 40 * bendY\n },\n {\n bx: -200 * bendX,\n by: 200 * bendY\n },\n {\n bx: -200 * bendX,\n by: 200 * bendY\n },\n {\n bx: -200 * bendX,\n by: 200 * bendY\n },\n {\n bx: -200 * bendX,\n by: 200 * bendY\n }\n ];\n const initScales = [\n 0.2,\n 0.2,\n 0.2,\n 0.2,\n 0.2,\n 0.2,\n 0.2,\n 0.2\n ];\n const midScales = [\n 0.85,\n 0.8,\n 0.88,\n 0.82,\n 0.75,\n 0.75,\n 0.75,\n 0.75\n ];\n const preloadLinks = (0,react.useMemo)(()=>{\n const urls = [];
1\n shops.slice(0, 5).forEach((s)=>{\n const u = s.shopImage;\n if (u) urls.push(u);\n });\n return Array.from(new Set(urls));\n }, [\n shops\n ]);\n const earliestDelay = Math.min(...delays);\n const midBlastDelaySec = earliestDelay + timeCircleOpenInSec * 0.3;\n const overlayStyle = transitionState.active && transitionState.rect ? {\n \'--start-left\': `${transitionState.rect.left}px`,\n \'--start-top\': `${transitionState.rect.top}px`,\n \'--start-width\': `${transitionState.rect.width}px`,\n \'--start-height\': `${transitionState.rect.height}px`,\n ...transitionState.endRect && {\n \'--end-left\': `${transitionState.endRect.left}px`,\n \'--end-top\': `${transitionState.endRect.top}px`,\n \'--end-width\': `${transitionState.endRect.width}px`,\n \'--end-height\': `${transitionState.endRect.height}px`\n },\n \'--bg-url\': `url(${transitionState.image})`\n } : undefined;\n const sectionHeros = homePage?.sectionHeros ?? [];\n const intro = homePage?.intro;\n const heroHasTitle = sectionHeros.some((h)=>h?.title);\n const sections = homePage?.sections ?? [];\n // Data sections 1+2 and 6+7 (indices [0],[1] and [5],[6]) become a single\n // carousel of two slides (two items each), using the same method as the\n // overview page. Sections [3]/[4] keep their standalone GeneralSections.\n const screenSize = (0,utils_screenSize/* useScreenSize */.l)();\n const signatureDishesSlides = (0,react.useMemo)(()=>{\n const carouselSections = sections.filter((s)=>s.type === \'menuCarousel\');\n const toItem = (section, id)=>section ? {\n id,\n img: (0,utils_screenSize/* getMediaUrlForSize */.k)(section, screenSize),\n heading: section.title,\n desc: section.description\n } : null;\n const buildSlide = (id, first, second)=>{\n const items = [\n toItem(first, 1),\n toItem(second, 2)\n ].filter(Boolean);\n if (!items.length) return null;\n return {\n id,\n bg1: \'/images/menu/section-menuCarousel/bg-1.png\',\n bg2: \'/images/menu/section-menuCarousel/bg-2.png\',\n items\n };\n };\n return [\n buildSlide(1, carouselSections[0], carouselSections[1]),\n buildSlide(2, carouselSections[2], carouselSections[3])\n ].filter(Boolean);\n }, [\n sections,\n screenSize\n ]);\n // Connection section: sections [4..6]. Shared by the desktop carousel and the\n // mobile 3-row marquee (one image per row, middle row scrolls in reverse).\n const connectionImages = (0,react.useMemo)(()=>sections.slice(4, 7).map((section)=>({\n id: section?.id,\n src: (0,utils_screenSize/* getMediaUrlForSize */.k)(section, screenSize),\n alt: section?.title || \'Connection\'\n })).filter((it)=>it.src), [\n sections,\n screenSize\n ]);\n // Instagram gallery: a fixed 5 columns, with the URLs split sequentially and\n // evenly across them (first chunk in column 1, next chunk in column 2, etc.).\n // Prefer the live Instagram media URLs (refreshed hourly by cron); fall back\n // to section then connection images.\n const INSTA_TARGET_COLUMN_WIDTH = 349;\n const INSTA_MIN_COLUMNS = 3;\n const INSTA_SECONDS_PER_IMAGE = 3;\n const INSTA_MIN_DURATION = 14;\n (0,react.useEffect)(()=>{\n const el = instaGalleryRef.current;\n if (!el) return;\n const compute = (width)=>{\n const count = Math.max(INSTA_MIN_COLUMNS, Math.floor(width / INSTA_TARGET_COLUMN_WIDTH));\n setInstaColumnCount((prev)=>prev === count ? prev : count);\n };\n compute(el.offsetWidth);\n const observer = new ResizeObserver((entries)=>{\n for (const entry of entries){\n compute(entry.contentRect.width);\n }\n });\n observer.observe(el);\n return ()=>observer.disconnect();\n }, []);\n const instaColumns = (0,react.useMemo)(()=>
1{\n const live = (instagramUrls ?? []).filter(Boolean);\n let source = live;\n if (!source.length) {\n const pool = sections.slice(4).map((section)=>(0,utils_screenSize/* getMediaUrlForSize */.k)(section, screenSize)).filter(Boolean);\n source = pool.length ? pool : connectionImages.map((it)=>it.src).filter(Boolean);\n }\n if (!source.length) return [];\n const perColumn = Math.ceil(source.length / instaColumnCount);\n const columns = [];\n for(let i = 0; i < source.length; i += perColumn){\n columns.push(source.slice(i, i + perColumn));\n }\n return columns;\n }, [\n instagramUrls,\n sections,\n screenSize,\n connectionImages,\n instaColumnCount\n ]);\n // Active reviews across all shops, flattened for the auto-scrolling reviews strip.\n const reviewsList = (0,react.useMemo)(()=>(shops ?? []).flatMap((s)=>(s?.reviews ?? []).filter((r)=>r?.active).map((r)=>({\n ...r,\n shopName: s?.name\n }))), [\n shops\n ]);\n // Connection section carousels: one on desktop, three on mobile. The mobile\n // carousels split the images by stride 3 (col 0 ->
1 0,3,6 / col 1 -> 1,4,7 /\n // col 2 -> 2,5,8) so each row shows a distinct set.\n // NOTE: images are duplicated 4x for testing so there\'s enough to scroll.\n const connectionImagesDup = (0,react.useMemo)(()=>Array.from({\n length: 5\n }).flatMap((_, dup)=>connectionImages.map((it, i)=>({\n ...it,\n id: `${it.id ?? i}-${dup}`\n }))), [\n connectionImages\n ]);\n const connectionColumns = (0,react.useMemo)(()=>[\n 0,\n 1,\n 2\n ].map((col)=>connectionImagesDup.filter((_, i)=>i % 3 === col)), [\n connectionImagesDup\n ]);\n const [emblaRef] = (0,embla_carousel_react_esm/* default */.A)({\n loop: true,\n dragFree: true\n }, [\n (0,embla_carousel_auto_scroll_esm/* default */.A)({\n speed: 1,\n stopOnInteraction: false,\n stopOnMouseEnter: true\n })\n ]);\n const [connMobileRef1] = (0,embla_carousel_react_esm/* default */.A)({\n loop: true,\n dragFree: true\n }, [\n (0,embla_carousel_auto_scroll_esm/* default */.A)({\n speed: 0.5,\n stopOnInteraction: false,\n stopOnMouseEnter: true\n })\n ]);\n const [connMobileRef2] = (0,embla_carousel_react_esm/* default */.A)({\n loop: true,\n dragFree: true\n }, [\n (0,embla_carousel_auto_scroll_esm/* default */.A)({\n speed: 0.5,\n direction: \'backward\',\n stopOnInteraction: false,\n stopOnMouseEnter: true\n })\n ]);\n const [connMobileRef3] = (0,embla_carousel_react_esm/* default */.A)({\n loop: true,\n dragFree: true\n }, [\n (0,embla_carousel_auto_scroll_esm/* default */.A)({\n speed: 0.5,\n stopOnInteraction: false,\n stopOnMouseEnter: true\n })\n ]);\n const connMobileRefs = [\n connMobileRef1,\n connMobileRef2,\n connMobileRef3\n ];\n const [reviewsRef] = (0,embla_carousel_react_esm/* default */.A)({\n loop: true,\n dragFree: true\n }, [\n (0,embla_carousel_auto_scroll_esm/* default */.A)({\n speed: 1,\n stopOnInteraction: false,\n stopOnMouseEnter: true\n })\n ]);\n return /*#__PURE__*/ (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(DynamicHead/* default */.A, {\n pageName: "landing",\n metadata: (0,shopSeo/* pickMetadataSeo */.wY)(homePage?.metadata),\n shops: (0,shopSeo/* pickShopsSeo */.Sf)(shops),\n heroImage: homePage?.sectionHeros[0]?.mediaUrl\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(Layout/* default */.A, {\n shopId: shops?.[0]?.id,\n children: /*#__PURE__*/ (0,jsx_runtime.jsxs)("main", {\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)("section", {\n "data-hero-target": true,\n style: {\n position: \'relative\'\n },\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(HeroSection/* default */.A, {\n pageName: "landing",\n sectionHeros: sectionHeros,\n headingLevel: heroHasTitle ? \'h1\' : \'h2\'\n })\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsxs)("section", {\n className: (index_module_default())["landing-intro"],\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(Intro/* default */.A, {\n intro: intro,\n pageName: "landing",\n titleTag: heroHasTitle ? \'h2\' : \'h1\'\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)((link_default()), {\n href: "/menu",\n className: (index_module_default())["landing-intro-menu-link"],\n children: "Explore the menu"\n })\n ]\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(LocationsSection, {\n shops: shops\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsxs)("section", {\n className: (index_module_default())["landing-about-us"],\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(WordStagger/* default */.A, {\n as: "h1",\n className: (index_module_default())["landing-about-us-title"],\n baseDelay: pageUtils/* ANIMATION_
1SPEEDS */.y7.heading.baseDelay,\n stagger: pageUtils/* ANIMATION_SPEEDS */.y7.heading.stepDelay,\n children: "About Blueberry\'s Grill"\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(WordStagger/* default */.A, {\n as: "p",\n className: (index_module_default())["landing-about-us-description"],\n baseDelay: pageUtils/* ANIMATION_SPEEDS */.y7.paragraph.baseDelay,\n stagger: pageUtils/* ANIMATION_SPEEDS */.y7.paragraph.stepDelay,\n children: "Blueberry\'s Grill is a scratch-made breakfast, brunch, and lunch brand on the Carolina coast. It started with two friends from Little River, South Carolina â a young restaurant operator and a U.S. veteran who\'d spent his career in the restaurant business â who opened the first spot in Myrtle Beach in 2017. The name came from the younger partner\'s mother and her love of flowers and blueberry trees."\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(WordStagger/* default */.A, {\n as: "p",\n className: (index_module_default())["landing-about-us-description"],\n baseDelay: pageUtils/* ANIMATION_SPEEDS */.y7.paragraph.baseDelay,\n stagger: pageUtils/* ANIMATION_SPEEDS */.y7.paragraph.stepDelay,\n children: "Since then it\'s grown to three locations â Myrtle Beach and North Myrtle Beach in South Carolina, and Wilmington, North Carolina â each cooking everything to order, from the Blueberry Hushpuppies to the benedicts. The North Myrtle Beach location made Yelp\'s Top 100 Brunch Spots in the U.S. in both 2023 and 2024."\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(WordStagger/* default */.A, {\n as: "p",\n className: (index_module_default())["landing-about-us-description"],\n baseDelay: pageUtils/* ANIMATION_SPEEDS */.y7.paragraph.baseDelay,\n stagger: pageUtils/* ANIMATION_SPEEDS */.y7.paragraph.stepDelay,\n children: "The rules haven\'t changed since the first morning: fresh ingredients, treat every guest like a regular, and rework the classics with care."\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {\n className: (index_module_default())["landing-about-us-separator"]\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(MenuCarousel, {\n slides: signatureDishesSlides,\n subtitle: "Our Signature Dishes",\n title: "Worth the Wait!",\n variant: "landing",\n separator: true\n })\n ]\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsxs)("section", {\n className: (index_module_default())["landing-connection-section"],\n id: "gallery",\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsxs)(WordStagger/* default */.A, {\n as: "h2",\n className: (index_module_default())["landing-connection-title"],\n baseDelay: pageUtils/* ANIMATION_SPEEDS */.y7.heading.baseDelay,\n stagger: pageUtils/* ANIMATION_
1SPEEDS */.y7.heading.stepDelay,\n children: [\n " Designed ",\n /*#__PURE__*/ (0,jsx_runtime.jsx)("span", {\n children: "around connection"\n })\n ]\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {\n ref: emblaRef,\n className: (index_module_default())["landing-connection-grid"],\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {\n className: (index_module_default())["landing-connection-track"],\n children: connectionImagesDup.map((it, index)=>/*#__PURE__*/ (0,jsx_runtime.jsx)("div", {\n className: (index_module_default())["landing-connection-item"],\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)((image_default()), {\n src: it.src,\n alt: it.alt,\n fill: true,\n sizes: "(max-width: 440px) 100vw, (max-width: 1000px) 50vw, 480px",\n className: (index_module_default())["landing-connection-image"]\n })\n }, it.id ?? index))\n })\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {\n className: (index_module_default())["landing-connection-mobile"],\n children: connectionColumns.map((column, colIndex)=>/*#__PURE__*/ (0,jsx_runtime.jsx)("div", {\n ref: connMobileRefs[colIndex],\n className: (index_module_default())["landing-connection-mobile-viewport"],\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {\n className: (index_module_default())["landing-connection-mobile-container"],\n children: column.map((it, index)=>/*#__PURE__*/ (0,jsx_runtime.jsx)("div", {\n className: (index_module_default())["landing-connection-item"],\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)((image_default()), {\n src: it.src,\n alt: it.alt,\n fill: true,\n sizes: "(max-width: 440px) 60vw, 280px",\n className: (index_module_default())["landing-connection-image"]\n })\n }, it.id ?? index))\n })\n }, colIndex))\n })\n ]\n }),\n sections[7] && /*#__PURE__*/ (0,jsx_runtime.jsxs)("section", {\n className: (index_module_default())["landing-blueberry-different"],\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)((image_default()), {\n quality: 100,\n width: 800,\n height: 100,\n loading: "eager",\n src: "/images/blue_berry.png",\n alt: "Blueberry",\n className: (index_module_default())["landing-blueberry-different--blueberry"]\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(GeneralSection, {\n section: sections[7],\n pageSlug: "landing",\n sectionName: "blueberry-different",\n onButtonClick: handleSectionButtonClick\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)((image_default()), {\n quality: 100,\n width: 800,\n height: 100,\n loading: "eager",\n src: "/images/blue_berry.png",\n alt: "Blueberry",\n className: (index_module_default())["landing-blueberry-different--blueberry-2"]\n })\n ]\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {\n className: (index_module_default())["landing-reviews-and-contact-section"],\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsxs)("section", {\n className: (index_module_default())["landing-reviews-section"],\n id: "reviews",\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)("h2", {\n className: (index_module_default())["landing-reviews-title"],\n children: "loved by our guests"\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {\n ref: reviewsRef,\n className: (index_module_default())["landing-reviews-grid"],\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {\n className: (index_module_default())["landing-reviews-track"],\n children: [\n ...reviewsList,\n ...reviewsList\n ].map((review, i)=>{\n const stars = Math.max(0, Math.min(5, Number(review.rating) || 0));\n return /*#__PURE__*/ (0,jsx_runtime.jsxs)("article", {\n className: (index_module_default())["landing-reviews-item"],\n children: [\n review.customer?.imgUrl && /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {\n className: (index_module_default())["landing-reviews-image-wrap"],\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)((image_default()), {\n src: review.customer.imgUrl,\n alt: review.customer?.name || \'\',\n fill: true,\n sizes: "(max-width: 440px) 100v
1w, (max-width: 1000px) 50vw, 360px",\n className: (index_module_default())["landing-reviews-image"]\n })\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {\n className: (index_module_default())["landing-reviews-stars"],\n "aria-label": `${stars} out of 5`,\n children: [\n \'â
\'.repeat(stars),\n /*#__PURE__*/ (0,jsx_runtime.jsx)("span", {\n className: (index_module_default())["landing-reviews-stars-empty"],\n children: \'â
\'.repeat(5 - stars)\n })\n ]\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)("p", {\n className: (index_module_default())["landing-reviews-description"],\n children: review.description\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsxs)("p", {\n className: (index_module_default())["landing-reviews-footer"],\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)("span", {\n className: (index_module_default())["landing-reviews-author"],\n children: review.customer?.name\n }),\n review.shopName && /*#__PURE__*/ (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)("span", {\n className: (index_module_default())["landing-reviews-sep"],\n children: ","\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)("span", {\n className: (index_module_default())["landing-reviews-location"],\n children: review.shopName\n })\n ]\n })\n ]\n })\n ]\n }, `${review.id}-${i}`);\n })\n })\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)((link_default()), {\n href: "#",\n className: (index_module_default())["landing-reviews-link"],\n onClick: (e)=>{\n e.preventDefault();\n setReviewPickerOpen(true);\n },\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(WordStagger/* default */.A, {\n as: "
1span",\n baseDelay: pageUtils/* ANIMATION_SPEEDS */.y7.paragraph.baseDelay,\n stagger: pageUtils/* ANIMATION_SPEEDS */.y7.paragraph.stepDelay,\n children: "Leave a review"\n })\n })\n ]\n }),\n sections[8] && /*#__PURE__*/ (0,jsx_runtime.jsx)("section", {\n className: (index_module_default())["contact-us-section"],\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(GeneralSection, {\n section: sections[8],\n pageSlug: "landing",\n sectionName: "contact-us",\n onButtonClick: handleSectionButtonClick\n })\n })\n ]\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsxs)("section", {\n className: (index_module_default())["insta-gallery-section"],\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)("h2", {\n className: (index_module_default())["insta-gallery-section-title"],\n children: "Follow The Morning Energy"\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {\n className: (index_module_default())["insta-gallery-marquee"],\n "aria-hidden": "true",\n ref: instaGalleryRef,\n children: instaColumns.map((col, colIndex)=>{\n const duration = Math.max(INSTA_MIN_DURATION, col.length * INSTA_SECONDS_PER_IMAGE);\n return /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {\n className: `${(index_module_default())["insta-gallery-marquee-row"]} ${colIndex % 2 === 1 ? (index_module_default())["insta-gallery-marquee-row--reverse"] : \'\'}`,\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {\n className: (index_module_default())["insta-gallery-marquee-track"],\n style: {\n animationDuration: `${duration}s`\n },\n children: [\n ...col,\n ...col\n ].map((src, i)=>/*#__PURE__*/ (0,jsx_runtime.jsx)("div", {\n className: (index_module_default())["insta-gallery-item"],\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)((image_default()), {\n src: src,\n alt: "Instagram Posts",\n fill: true,\n sizes: "(max-width: 440px) 60vw, 349px",\n className: (index_module_default())["insta-gallery-image"]\n })\n }, i))\n })\n }, colIndex);\n })\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)("a", {\n href: "https://www.instagram.com/blueberrygrill/",\n className: (index_module_default())["insta-gallery-section-link"],\n children: "Follow us on Instagram"\n })\n ]\n }),\n sections[9] && /*#__PURE__*/ (0,jsx_runtime.jsx)("section", {\n className: (index_module_default())["breakfast-section"],\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(GeneralSection, {\n section: sections[9],\n pageSlug: "landing",\n sectionName: "breakfast-section",\n mediaUrl: "/images/blue_berry.png",\n onButtonClick: handleSectionButtonClick\n })\n })\n ]\n })\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ShopPickerPopup/* default */.A, {\n open: pickerTarget !== null,\n onClose: ()=>setPickerTarget(null),\n targetPage: pickerTarget,\n title: "Pick a location to view the menu"\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ShopPickerPopup/* default */.A, {\n open: reviewPickerOpen,\n onClose: ()=>setReviewPickerOpen(false),\n onSelect: handleReviewShopPicked,\n title: "Pick a location to leave a review"\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ShopPickerPopup/* default */.A, {\n open: mapsPickerOpen,\n onClose: ()=>setMapsPickerOpen(false),\n onSelect: handleMapsShopPicked,\n title: "Pick a location to view on the map"\n })\n ]\n });\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzUyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBK0I7QUFDc0M7QUFDekI7QUFDNkI7QUFDVDtBQUNUO0FBRXZELE1BQU1PLGFBQWEsQ0FBQ0MsTUFDaEIsT0FBT0EsUUFBUSxZQUFZLHlCQUF5QkMsSUFBSSxDQUFDRDtBQUU3RCxNQUFNRSxLQUFLLENBQUNDLE9BQU9DLFNBQVNDLFVBQVVDLGNBQ2xDO1FBQ0liLGlDQUFNLENBQUNVLE1BQU07UUFDYlYsaUNBQU0sQ0FBQyxHQUFHVSxNQUFNLEVBQUUsRUFBRUMsU0FBUyxDQUFDO1F
1BQzlCWCxpQ0FBTSxDQUFDLEdBQUdVLE1BQU0sRUFBRSxFQUFFRSxVQUFVLENBQUM7UUFDL0JaLGlDQUFNLENBQUMsR0FBR1UsTUFBTSxFQUFFLEVBQUVDLFFBQVEsQ0FBQyxFQUFFQyxVQUFVLENBQUM7UUFDMUNDLGVBQWViLGlDQUFNLENBQUMsR0FBR1UsTUFBTSxFQUFFLEVBQUVHLGFBQWEsQ0FBQztLQUNwRCxDQUNJQyxNQUFNLENBQUNDLFNBQ1BDLElBQUksQ0FBQztBQUdkLE1BQU1DLGVBQWUsQ0FBQyxFQUFFQyxPQUFPLEVBQUVQLE9BQU8sRUFBRUMsUUFBUSxFQUFFQyxXQUFXLEVBQUVNLFVBQVUsRUFBRUMsVUFBVUMsZ0JBQWdCLEVBQUU7SUFDckcsTUFBTUQsV0FBV0Msb0JBQW9CbEIsOENBQWtCQSxDQUFDZSxTQUFTQztJQUNqRSxJQUFJLENBQUNDLFVBQVUsT0FBTztJQUN0QixNQUFNRSxnQkFBZ0JILGVBQWU7SUFDckMsTUFBTVQsUUFBUTtJQUVkLElBQUlKLFdBQVdjLFdBQVc7UUFDdEIscUJBQ0ksb0JBQUNHO1lBQ0dDLEtBQUtKO1lBQ0xLLFdBQVdoQixHQUFHQyxPQUFPQyxTQUFTQyxVQUFVQztZQUN4Q2EsUUFBUTtZQUNSQyxLQUFLO1lBQ0xDLElBQUk7WUFDSkMsV0FBVzs7SUFHdkI7SUFFQSxxQkFDSSxvQkFBQzlCLGlCQUFLQTtRQUNGeUIsS0FBS0o7UUFDTFUsS0FBS1osU0FBU2EsZUFBZWIsU0FBU2MsU0FBUztRQUMvQ0MsT0FBT1gsZ0JBQWdCLE1BQU07UUFDN0JZLFFBQVE7UUFDUkMsU0FBUztRQUNUQyxTQUFRO1FBQ1JDLE9BQ0lmLGdCQUNNLFVBQ0E7UUFFVkcsV0FBV2hCLEdBQUdDLE9BQU9DLFNBQVNDLFVBQVVDO1FBQ3hDeUIsYUFBWTtRQUNaQyxhQUFhdEMsMEJBQU9BLENBQUNxQixnQkFBZ0IsTUFBTSxNQUFNOztBQUc3RDtBQUdBLE1BQU1rQixvQkFBb0IsQ0FBQyxFQUFFN0IsT0FBTyxFQUFFQyxRQUFRLEVBQUVDLFdBQVcsRUFBRUssT0FBTyxFQUFFQy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kFBZ0I7SUFDdEIsTUFBTUMsZ0JBQWdCO0lBQ3RCLE1BQU1DLGdCQUFnQjtJQUN0QixNQUFNQyxnQkFBZ0I7SUFDdEIsTUFBTUMsZ0JBQWdCO0lBQ3RCLE1BQU1DLGdCQUFnQjtJQUN0QixNQUFNQyxnQkFBZ0I7SUFDdEIsTUFBTUMsZ0JBQWdCO0lBQ3RCLE1BQU1DLHNCQUFzQjtJQUM1QixNQUFNQyxxQkFBcUJ
1ELHNCQUFzQjtJQUNqRCxNQUFNRSx1QkFBdUJ6RixpQkFBT0EsQ0FBQztRQUNuQyxNQUFNMEYsSUFBSSxDQUFDO1FBRVgxRCxPQUFPMkQsUUFBUSxDQUFDaEI7WUFDZCxtQ0FBbUM7WUFDbkMsSUFBSUEsTUFBTWlCLE1BQU1qQixLQUFLa0IsS0FBSyxFQUFFQyxTQUFTLEdBQUc7Z0JBQ3RDLE1BQU1DLFlBQVlwQixLQUFLa0IsS0FBSyxDQUFDLEVBQUU7Z0JBQy9CLE1BQU1HLGVBQWVELFVBQVVDLFlBQVk7Z0JBQzNDLElBQUlBLGNBQWNGLFNBQVMsR0FBRztvQkFDNUIsTUFBTUcsbUJBQW1CRCxZQUFZLENBQUMsRUFBRTtvQkFDeEMsSUFBSUMsa0JBQWtCdk0sVUFBVTt3QkFDOUJnTSxDQUFDLENBQUNmLEtBQUtpQixFQUFFLENBQUMsR0FBR0ssaUJBQWlCdk0sUUFBUTtvQkFDeEM7Z0JBQ0Y7WUFDRjtRQUNGO1FBQ0EsT0FBT2dNO0lBQ1QsR0FBRztRQUFDMUQ7S0FBTTtJQUVWLE1BQU1rRSxlQUFlL0YscUJBQVdBLENBQUMsQ0FBQ3RIO1FBQ2hDLElBQUksQ0FBQ0EsS0FBSztRQUNWLE1BQU1rRSxNQUFNLElBQUlvSixPQUFPOU4sS0FBSztRQUM1QjBFLElBQUlxSixRQUFRLEdBQUc7UUFDZnJKLElBQUlyQyxPQUFPLEdBQUc7UUFDZHFDLElBQUlqRCxHQUFHLEdBQUdqQjtJQUNaLEdBQUcsRUFBRTtJQUNMa0gsbUJBQVNBLENBQUM7UUFDUmlDLE1BQU1GLEtBQUssQ0FBQyxHQUFHLEdBQUc2RCxPQUFPLENBQUMsQ0FBQ2hCO1lBQ3pCLE1BQU0wQixRQUFRMUIsS0FBSzJCLFNBQVM7WUFDNUIsSUFBSUQsT0FBT0gsYUFBYUc7UUFDMUI7SUFDQSwyREFBMkQ7SUFDM0QsdURBQXVEO0lBQ3pELEdBQUc7UUFBQ3JFO0tBQU07SUFDViw2RUFBNkU7SUFDN0Usd0VBQXdFO0lBQ3hFLCtFQUErRTtJQUMvRWpDLG1CQUFTQSxDQUFDO1FBQ1JxQyxTQUFTOUIscUNBQWNBLENBQUM7SUFDMUIsR0FBRztRQU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kIsaURBQStCOzs4Q0FDakQsb0JBQUM4WTtvQ0FBR3JYLFdBQVd6Qix1REFBcUM7OENBQUU7OzhDQUN0RCxvQkFBQzBDO29DQUFJakIsV0FBV3pCLGlEQUErQjtvQ0FBRTBFLGVBQVk7b0NBQU8rVCxLQUFLOU07OENBQ3RFMEssYUFBYWpTLEdBQUcsQ0FBQyxDQUFDK1MsS0FBSzBCO3dDQUN0QixNQUFNWSxXQUFXaEksS0FBS0MsR0FBRyxDQUFDOEQsb0JBQW9CMkIsSUFBSTNKLE1BQU0sR0FBRytIO3dDQUMzRCxxQkFDRSxvQkFBQzdTOzRDQUVDakIsV0FBVyxHQUFHekIscURBQW1DLENBQUMsQ0FBQyxFQUFFNlksV0FBVyxNQUFNLElBQUk3WSw4REFBNEMsR0FBRyxJQUFJO3NEQUU3SCxrQ0FBQzBDO2dEQUNDakIsV0FBV3pCLHVEQUFxQztnREFDaER3UCxPQUFPO29EQUFFa0ssbUJBQW1CLEdBQUdELFNBQVMsQ0FBQyxDQUFDO2dEQUFDOzBEQUUxQzt1REFBSXRDO3VEQUFRQTtpREFBSSxDQUFDL1MsR0FBRyxDQUFDLENBQUM1QyxLQUFLNkgsa0JBQzFCLG9CQUFDM0c7d0RBQVlqQixXQUFXekIsOENBQTRCO2tFQUNsRCxrQ0FBQ0QsaUJBQUtBOzREQUNKeUIsS0FBS0E7NERBQ0xNLEtBQUk7NERBQ0o2VyxJQUFJOzREQUNKdFcsT0FBTTs0REFDTlosV0FBV3pCLCtDQUE2Qjs7dURBTmxDcUo7OzJDQVJUd1A7b0NBcUJYOzs4Q0FFRixvQkFBQ2pWO29DQUFFQyxNQUFLO29DQUE0Q3BDLFdBQVd6QixzREFBb0M7OENBQUU7Ozs7d0JBRXRHeVUsUUFBUSxDQUFDLEVBQUUsa0JBQ1Ysb0JBQUN2VDs0QkFBUU8sV0FBV3pCLDZDQUEyQjtzQ0FDN0Msa0NBQUNnRixjQUFjQTtnQ0FBQzlELFNBQVN1VCxRQUFRLENBQUMsRUFBRTtnQ0FBRXhQLFVBQVM7Z0NBQVVwRSxhQUFZO2dDQUFvQk8sVUFBUztnQ0FBeUJxQyxlQUFlb007Ozs7OzswQkFLbEosb0JBQUNsSCw4QkFBZUE7Z0JBQ2R1SCxNQUFNakYs
1aUJBQWlCO2dCQUN2QjBPLFNBQVMsSUFBTXpPLGdCQUFnQjtnQkFDL0IwTyxZQUFZM087Z0JBQ1pqSixPQUFNOzswQkFFUixvQkFBQzJHLDhCQUFlQTtnQkFDZHVILE1BQU0vRTtnQkFDTndPLFNBQVMsSUFBTXZPLG9CQUFvQjtnQkFDbkN5TyxVQUFVNUo7Z0JBQ1ZqTyxPQUFNOzswQkFFUixvQkFBQzJHLDhCQUFlQTtnQkFDZHVILE1BQU03RTtnQkFDTnNPLFNBQVMsSUFBTXJPLGtCQUFrQjtnQkFDakN1TyxVQUFVMUo7Z0JBQ1ZuTyxPQUFNOzs7O0FBSWQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbXBvbmVudHMvR2VuZXJhbFNlY3Rpb24uanM/ZmEwMiIsIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2FwaS9QYWdlQXBpLmpzP2M3YzgiLCJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9wYWdlcy9pbmRleC5qcz80MDgwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBJbWFnZSBmcm9tICduZXh0L2ltYWdlJztcbmltcG9ydCBzdHlsZXMgZnJvbSAnc3JjL3N0eWxlcy9jb21wb25lbnRzL2dlbmVyYWxTZWN0aW9uLm1vZHVsZS5jc3MnO1xuaW1wb3J0IHsgc2hpbW1lciB9IGZyb20gJ3NyYy91dGlscy9zaGltbWVyJztcbmltcG9ydCB7IHVzZVNjcmVlblNpemUsIGdldE1lZGlhVXJsRm9yU2l6ZSB9IGZyb20gJ3NyYy91dGlscy9zY3JlZW5TaXplJztcbmltcG9ydCBXb3JkU3RhZ2dlciBmcm9tICdzcmMvY29tcG9uZW50cy9hbmltYXRpb25zL1dvcmRTdGFnZ2VyJztcbmltcG9ydCB7IEFOSU1BVElPTl9TUEVFRFMgfSBmcm9tICdzcmMvdXRpbHMvcGFnZVV0aWxzJztcblxuY29uc3QgaXNWaWRlb1VybCA9ICh1cmwpID0+XG4gICAgdHlwZW9mIHVybCA9PT0gJ3N0cmluZycgJiYgL1xcLihtcDR8d2VibXxvZ2d8bW92KSQvaS50ZXN0KHVybCk7XG5cbmNvbnN0IGN4ID0gKGJsb2NrLCB2YXJpYW50LCBwYWdlTmFtZSwgc2VjdGlvbk5hbWUpID0+XG4gICAgW1xuICAgICAgICBzdHlsZXNbYmxvY2tdLFxuICAgICAgICBzdHlsZXNbYCR7YmxvY2t9LS0ke3ZhcmlhbnR9YF0sXG4gICAgICAgIHN0eWxlc1tgJHtibG9ja30tLSR7cGFnZU5hbWV9YF0sXG4gICAgICAgIHN0eWxlc1tgJHtibG9ja30tLSR7dmFyaWFudH0tJHtwYWdlTmFtZX1gXSxcbiAgICAgICAgc2VjdGlvbk5hbWUgJiYgc3R5bGVzW2Ake2Jsb2NrfS0tJHtzZWN0aW9uTmFtZX1gXSxcbiAgICBdXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgLmpvaW4oJyAnKTtcblxuXG5jb25zdCBTZWN0aW9uTWVkaWEgPSAoeyBzZWN0aW9uLCB2YXJpYW50LCBwYWdlTmFtZSwgc2VjdGlvbk5hbWUsIHNjcmVlblNpemUsIG1lZGlhVXJsOiBtZWRpYVVybE92ZXJyaWRlIH0pID0+IHtcbiAgICBjb25zdCBtZWRpYVVybCA9IG1lZGlhVXJsT3ZlcnJpZGUgPz8gZ2V0TWVkaWFVcmxGb3JTaXplKHNlY3Rpb24sIHNjcmVlblNpemUpO1xuICAgIGlmICghbWVkaWFVcmwpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IGlzU21hbGxTY3JlZW4gPSBzY3JlZW5TaXplID09PSAnc20nO1xuICAgIGNvbnN0IGJsb2NrID0gJ3NlY3Rpb24tZ2VuZXJhbC1pbWFnZSc7XG5cbiAgICBpZiAoaXNWaWRlb1VybChtZWRpYVVybCkpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDx2aWRlb1xuICAgICAgICAgICAgICAgIHNyYz17bWVkaWFVcmx9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChibG9jaywgdmFyaWFudCwgcGFnZU5hbWUsIHNlY3Rpb25OYW1lKX1cbiAgICAgICAgICAgICAgICBhdXRvUGxheVxuICAgICAgICAgICAgICAgIG11dGVkXG4gICAgICAgICAgICAgICAgbG9vcFxuICAgICAgICAgICAgICAgIHBsYXlzSW5saW5lXG4gICAgICAgICAgICAvPlxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICAgIDxJbWFnZVxuICAgICAgICAgICAgc3JjPXttZWRpYVVybH1cbiAgICAgICAgICAgIGFsdD17c2VjdGlvbj8uYWx0SW1hZ2VUeHQgfHwgc2VjdGlvbj8udGl0bGUgfHwgJyd9XG4gICAgICAgICAgICB3aWR0aD17aXNTbWFsbFNjcmVlbiA/IDQ0MCA6IDE2MDB9XG4gICAgICAgICAgICBoZWlnaHQ9ezM5MH1cbiAgICAgICAgICAgIHF1YWxpdHk9ezEwMH1cbiAgICAgICAgICAgIGxvYWRpbmc9XCJsYXp5XCJcbiAgICAgICAgICAgIHNpemVzPXtcbiAgICAgICAgICAgICAgICBpc1NtYWxsU2NyZWVuXG4gICAgICAgICAgICAgICAgICAgID8gJzEwMHZ3J1xuICAgICAgICAgICAgICAgICAgICA6ICcobWF4LXdpZHRoOiA3NjhweCkgMTAwMHB4LCAobWF4LXdpZHRoOiAxMjAwcHgpIDEwMHZ3LCAxNjAwcHgnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjbGFzc05hbWU9e2N4KGJsb2NrLCB2YXJpYW50LCBwYWdlTmFtZSwgc2VjdGlvbk5hbWUpfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJibHVyXCJcbiAgICAgICAgICAgIGJsdXJEYXRhVVJMPXtzaGltbWVyKGlzU21hbGxTY3JlZW4gPyA0NDAgOiAxNjAwLCA2MDApfVxuICAgICAgICAvPlxuICAgICk7XG59O1xuXG5cbmNvbnN0IEJhc2VTZWN0aW9uTGF5b3V0ID0gKHsgdmFyaWFudCwgcGFnZU5hbWUsIHNlY3Rpb25OYW1lLCBzZWN0aW9uLCBzY3JlZW5TaXplLCBjaGlsZHJlbiwgbWVkaWFVcmwgfSkgPT4gKFxuICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXtjeCgnc2VjdGlvbi1nZW5lcmFsJywgdmFyaWFudCwgcGFnZU5hbWUsIHNlY3Rpb25OYW1lKX1cbiAgICAgICAgZGF0YS1wYWdlPXtwYWdlTmFtZX1cbiAgICAgICAgZGF0YS12YXJpYW50PXt2YXJpYW50fVxuICAgICAgICBkYXRhLXNlY3Rpb249e3NlY3Rpb25OYW1lfVxuICAgID5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2N4KCdzZWN0aW9uLWdlbmVyYWwtbWVkaWEnLCB2YXJpYW50LCBwYWdlTmFtZSwgc2VjdGlvbk5hbWUpfT5cbiAgICAgICAgICAgIDxTZWN0aW9uTWVkaWFcbiAgICAgICAgICAgICAgICBzZWN0aW9uPXtzZWN0aW9ufVxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9e3ZhcmlhbnR9XG4gICAgICAgICAgICAgICAgcGFnZU5hbWU9e3BhZ2VOYW1lfVxuICAgICAgICAgICAgICAgIHNlY3Rpb25OYW1lPXtzZWN0aW9uTmFtZX1cbiAgICAgICAgICAgICAgICBzY3JlZW5TaXplPXtzY3JlZW5TaXplfVxuICAgICAgICAgICAgICAgIG1lZGlhVXJsPXttZWRpYVVybH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y3goJ3NlY3Rpb24tZ2VuZXJhbC1jb250ZW50cycsIHZhcmlhbnQsIHBhZ2VOYW1lLCBzZWN0aW9uTmFtZSl9PlxuICAgICAgICAgICAgPFdvcmRTdGFnZ2VyXG4gICAgICAgICAgICAgICAgYXM9XCJoMlwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeCgnc2VjdGlvbi1nZW5lcmFsLXRpdGxlJywgdmFyaWFudCwgcGFnZU5hbWUsIHNlY3Rpb25OYW1lKX1cbiAgICAgICAgICAgICAgICBiYXNlRGVsYXk9e0FOSU1BVElPTl9TUEVFRFMuaGVhZGluZy5iYXNlRGVsYXl9XG4gICAgICAgICAgICAgICAgc3RhZ2dlcj17QU5JTUFUSU9OX1NQRUVEUy5oZWFkaW5nLnN0ZXBEZWxheX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7c2VjdGlvbj8udGl0bGV9XG4gICAgICAgICAgICA8L1dvcmRTdGFnZ2VyPlxuICAgICAgICAgICAgPFdvcmRTdGFnZ2VyXG4gICAgICAgICAgICAgICAgYXM9XCJoM1wiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeCgnc2VjdGlvbi1nZW5lcmFsLXN1YlRpdGxlJywgdmFyaWFudCwgcGFnZU5hbWUsIHNlY3Rpb25OYW1lKX1cbiAgICAgICAgICAgICAgICBiYXNlRGVsYXk9e0FOSU1BVElPTl9TUEVFRFMuaGVhZGluZy5iYXNlRGVsYXl9XG4gICAgICAgICAgICAgICAgc3RhZ2dlcj17QU5JTUFUSU9OX1NQRUVEUy5oZWFkaW5nLnN0ZXBEZWxheX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7c2VjdGlvbj8uc3ViVGl0bGV9XG4gICAgICAgICAgICA8L1dvcmRTdGFnZ2VyPlxuICAgICAgICAgICAgPFdvcmRTdGFnZ2VyXG4gICAgICAgICAgICAgICAgYXM9XCJwXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KCdzZWN0aW9uLWdlbmVyYWwtZGVzY3JpcHRpb24nLCB2YXJpYW50LCBwYWdlTmFtZSwgc2VjdGlvbk5hbWUpfVxuICAgICAgICAgICAgICAgIGJhc2VEZWxheT17QU5JTUFUSU9OX1NQRUVEUy5wYXJhZ3JhcGguYmFzZURlbGF5f
1VxuICAgICAgICAgICAgICAgIHN0YWdnZXI9e0FOSU1BVElPTl9TUEVFRFMucGFyYWdyYXBoLnN0ZXBEZWxheX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7c2VjdGlvbj8uZGVzY3JpcHRpb259XG4gICAgICAgICAgICA8L1dvcmRTdGFnZ2VyPlxuICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbik7XG5cbi8vIC0tIFZhcmlhbnRzIC0tXG5cbmNvbnN0IERlZmF1bHRTZWN0aW9uID0gKHByb3BzKSA9PiAoXG4gICAgPEJhc2VTZWN0aW9uTGF5b3V0IHsuLi5wcm9wc30gdmFyaWFudD1cImRlZmF1bHRcIiAvPlxuKTtcblxuY29uc3QgQnV0dG9uU2VjdGlvbiA9ICh7IHNlY3Rpb24sIHBhZ2VOYW1lLCBzZWN0aW9uTmFtZSwgc2NyZWVuU2l6ZSwgb25CdXR0b25DbGljayB9KSA9PiAoXG4gICAgPEJhc2VTZWN0aW9uTGF5b3V0IHZhcmlhbnQ9XCJidXR0b25cIiBzZWN0aW9uPXtzZWN0aW9ufSBwYWdlTmFtZT17cGFnZU5hbWV9IHNlY3Rpb25OYW1lPXtzZWN0aW9uTmFtZX0gc2NyZWVuU2l6ZT17c2NyZWVuU2l6ZX0+XG4gICAgICAgIHtzZWN0aW9uPy5idXR0b24/LmxhYmVsICYmIChcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgaHJlZj17c2VjdGlvbi5idXR0b24uaHJlZn1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KCdzZWN0aW9uLWdlbmVyYWwtbGluaycsICdidXR0b24nLCBwYWdlTmFtZSwgc2VjdGlvbk5hbWUpfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uQnV0dG9uQ2xpY2sgPyAoZSkgPT4gb25CdXR0b25DbGljayhlLCBzZWN0aW9uKSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7c2VjdGlvbi5idXR0b24ubGFiZWx9XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICl9XG4gICAgPC9CYXNlU2VjdGlvbkxheW91dD5cbik7XG5cbmNvbnN0IEljb25MaXN0U2VjdGlvbiA9ICh7IHNlY3Rpb24sIHBhZ2VOYW1lLCBzZWN0aW9uTmFtZSwgc2NyZWVuU2l6ZSB9KSA9PiAoXG4gICAgPEJhc2VTZWN0aW9uTGF5b3V0IHZhcmlhbnQ9XCJpY29uTGlzdFwiIHNlY3Rpb249e3NlY3Rpb259IHBhZ2VOYW1lPXtwYWdlTmFtZX0gc2VjdGlvbk5hbWU9e3NlY3Rpb25OYW1lfSBzY3JlZW5TaXplPXtzY3JlZW5TaXplfT5cbiAgICAgICAgPHVsIGNsYXNzTmFtZT17Y3goJ3NlY3Rpb24tZ2VuZXJhbC1idWxsZXRzJywgJ2ljb25MaXN0JywgcGFnZU5hbWUsIHNlY3Rpb25OYW1lKX0+XG4gICAgICAgICAgICB7c2VjdGlvbj8uYnVsbGV0cz8ubWFwKChidWxsZXQsIGlkeCkgPT4gKFxuICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICBrZXk9e2lkeH1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeCgnc2VjdGlvbi1nZW5lcmFsLWJ1bGxldC1pdGVtJywgJ2ljb25MaXN0JywgcGFnZU5hbWUsIHNlY3Rpb25OYW1lKX1cbiAgICAgICAgICAgICAgICA+ICAgPGRpdiBjbGFzc05hbWU9e2N4KCdzZWN0aW9uLWdlbmVyYWwtYnVsbGV0LWljb24tLXdyYXBwZXInLCAnaWNvbkxpc3QnLCBwYWdlTmFtZSwgc2VjdGlvbk5hbWUpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtidWxsZXQuaWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9e2J1bGxldC5pY29ufSBhbHQ9XCJcIiBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KCdzZWN0aW9uLWdlbmVyYWwtYnVsbGV0LWljb24nLCAnaWNvbkxpc3QnLCBwYWdlTmFtZSwgc2VjdGlvbk5hbWUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtjeCgnc2VjdGlvbi1nZW5lcmFsLWJ1bGxldC10ZXh0JywgJ2ljb25MaXN0JywgcGFnZU5hbWUsIHNlY3Rpb25OYW1lKX0+XG4gICAgICAgICAgICAgICAgICAgICAgICB7YnVsbGV0LnRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgIDwvdWw+XG4gICAgPC9CYXNlU2VjdGlvbkxheW91dD5cbik7XG5jb25zdCBTRUNUSU9OX1ZBUklBTlRTID0ge1xuICAgIGJ1dHRvbjogQnV0dG9uU2VjdGlvbixcbiAgICBpY29uTGlzdDogSWNvbkxpc3RTZWN0aW9uLFxuICAgIGRlZmF1bHQ6IERlZmF1bHRTZWN0aW9uLFxufTtcblxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBHZW5lcmFsU2VjdGlvbih7XG4gICAgc2VjdGlvbixcbiAgICBwYWdlU2x1ZyxcbiAgICBzZWN0aW9uTmFtZSxcbiAgICBtZWRpYVVybCxcbiAgICBtZWRpYVVybF9zbSxcbiAgICBtZWRpYVVybF9tZCxcbiAgICBvbkJ1dHRvbkNsaWNrLFxufSkge1xuICAgIGNvbnN0IHNjcmVlblNpemUgPSB1c2VTY3JlZW5TaXplKCk7XG4gICAgaWYgKCFzZWN0aW9uKSByZXR1cm4gbnVsbDtcblxuICAgIGNvbnN0IG1lcmdlZFNlY3Rpb24gPSB7XG4gICAgICAgIC4uLnNlY3Rpb24sXG4gICAgICAgIC4uLihtZWRpYVVybCA/IHsgbWVkaWFVcmwgfSA6IHt9KSxcbiAgICAgICAgLi4uKG1lZGlhVXJsX3NtID8geyBtZWRpYVVybF9zbSB9IDoge30pLFxuICAgICAgICAuLi4obWVkaWFVcmxfbWQgPyB7IG1lZGlhVXJsX21kIH0gOiB7fSksXG4gICAgfTtcblxuICAgIGNvbnN0IFNlY3Rpb25WYXJpYW50ID0gU0VDVElPTl9WQVJJQU5UU1ttZXJnZWRTZWN0aW9uPy50eXBlXSA/PyBEZWZhdWx0U2VjdGlvbjtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxTZWN0aW9uVmFyaWFudFxuICAgICAgICAgICAgc2VjdGlvbj17bWVyZ2VkU2VjdGlvbn1cbiAgICAgICAgICAgIHBhZ2VTbHVnPXtwYWdlU2x1Z31cbiAgICAgICAgICAgIHNlY3Rpb25OYW1lPXtzZWN0aW9uTmFtZX1cbiAgICAgICAgICAgIHNjcmVlblNpemU9e3NjcmVlblNpemV9XG4gICAgICAgICAgICBvbkJ1dHRvbkNsaWNrPXtvbkJ1dHRvbkNsaWNrfVxuICAgICAgICAvPlxuICAgICk7XG59IiwiaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCB7
1IGdldEFwaVVybCB9IGZyb20gJ3NyYy91dGlscy9lbnYnO1xuaW1wb3J0IHsgaGFuZGxlQXBpRXJyb3IgfSBmcm9tICdzcmMvdXRpbHMvYXBpRXJyb3JIYW5kbGVyJztcblxuY29uc3QgYXhpb3NJbnN0YW5jZSA9IGF4aW9zLmNyZWF0ZSh7XG4gIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9LFxufSk7XG5cbmNvbnN0IFBhZ2VBcGkgPSB7XG4gIGdldFB1YmxpY1BhZ2VEYXRhOiBhc3luYyAocGFnZVR5cGUsIHByb2plY3QgPSAnYmx1ZWJlcnJ5JykgPT4ge1xuICAgIGNvbnN0IHVybCA9IGAke2dldEFwaVVybCgnZ2xvYmFsUGFnZXMnKX0vcHVibGljL3BhZ2VzLyR7cHJvamVjdH0vJHtwYWdlVHlwZX1gO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXhpb3NJbnN0YW5jZS5nZXQodXJsKTtcbiAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgfSxcblxuICBnZXRQdWJsaWNIb21lUGFnZTogYXN5bmMgKCkgPT4gUGFnZUFwaS5nZXRQdWJsaWNQYWdlRGF0YSgnaG9tZScsKSxcbiAgZ2V0UHVibGljRmFxc1BhZ2U6IGFzeW5jICgpID0+IFBhZ2VBcGkuZ2V0UHVibGljUGFnZURhdGEoJ2ZhcXMnKSxcblxuICBnZXRTaG9wc0RhdGE6IGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB1cmwgPSBgJHtnZXRBcGlVcmwoJ3Nob3BzJyl9L3B1YmxpYy9zaG9wc2A7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBheGlvc0luc3RhbmNlLmdldCh1cmwpO1xuICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICB9LFxuXG4gIGdldFNob3BCeUlkOiBhc3luYyAoc2hvcElkKSA9PiB7XG4gICAgY29uc3QgdXJsID0gYCR7Z2V0QXBpVXJsKCdzaG9wcycpfS9zaG9wcy8ke3Nob3BJZH1gO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXhpb3NJbnN0YW5jZS5nZXQodXJsKTtcbiAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgfSxcblxuICBnZXRQdWJsaWNNZW51UGFnZTogYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHVybCA9IGAke2dldEFwaVVybCgnbWVudVBhZ2UnKX0vcHVibGljL21lbnVQYWdlYDtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGF4aW9zSW5zdGFuY2UuZ2V0KHVybCk7XG4gICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gIH0sXG5cbiAgZ2V0UmVzdGF1cmFudE1lbnU6IGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB1cmwgPSBgJHtnZXRBcGlVcmwoJ3Jlc3RhdXJhbnRNZW51Jyl9L3B1YmxpYy9yZXN0YXVyYW50TWVudS9tYXBgO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXhpb3NJbnN0YW5jZS5nZXQodXJsKTtcbiAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgfSxcblxuICBnZXRHbG9iYWxQYWdlQnlUeXBlOiBhc3luYyAocGFnZVR5cGUpID0+IHtcbiAgICBjb25zdCB1cmwgPSBgJHtnZXRBcGlVcmwoJ2dsb2JhbFBhZ2VzJyl9L3B1YmxpYy9wYWdlcy8ke3BhZ2VUeXBlfWA7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBheGlvc0luc3RhbmNlLmdldCh1cmwpO1xuICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICB9LFxuXG4gIGdldEFib3V0UGFnZTogYXN5bmMgKCkgPT4gUGFnZUFwaS5nZXRHbG9iYWxQYWdlQnlUeXBlKCdhYm91dCcpLFxuICBnZXRDb250YWN0UGFnZTogYXN5bmMgKCkgPT4gUGFnZUFwaS5nZXRHbG9iYWxQYWdlQnlUeXBlKCdjb250YWN0JyksXG4gIGdldFByaXZhY3lQb2xpY3lQYWdlOiBhc3luYyAoKSA9PiBQYWdlQXBpLmdldEdsb2JhbFBhZ2VCeVR5cGUoJ3ByaXZhY3ktcG9saWN5JyksXG4gIGdldFRlcm1zQW5kQ29uZGl0aW9uc1BhZ2U6IGFzeW5jICgpID0+IFBhZ2VBcGkuZ2V0R2xvYmFsUGFnZUJ5VHlwZSgndGVybXMtYW5kLWNvbmRpdGlvbnMnKSxcbiAgZ2V0Q2FuY2VsbGF0aW9uUG9saWN5UGFnZTogYXN5bmMgKCkgPT4gUGFnZUFwaS5nZXRHbG9iYWxQYWdlQnlUeXBlKCdjYW5jZWxsYXRpb24tcG9saWN5JyksXG4gIGdldEJsb2dQYWdlOiBhc3luYyAoKSA9PiBQYWdlQXBpLmdldEdsb2JhbFBhZ2VCeVR5cGUoJ2Jsb2cnKSxcblxuICBnZXRJbnN0YWdyYW1GZWVkOiBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgdXJsID0gYCR7Z2V0QXBpVXJsKCdpbnN0YWdyYW0nKX0vcHVibGljL2luc3RhZ3JhbS9mZWVkYDtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGF4aW9zSW5zdGFuY2UuZ2V0KHVybCk7XG4gICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gIH0sXG5cbiAgc3Vic2NyaWJlVG9OZXdzbGV0dGVyOiBhc3luYyAoZW1haWwpID0+IHtcbiAgICBjb25zdCB1cmwgPSBgJHtnZXRBcGlVcmwoJ25ld3NsZXR0ZXInKX0vcHVibGljL2VtYWlsc2A7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBheGlvc0luc3RhbmNlLnBvc3QodXJsLCB7IGVtYWlsIH0pO1xuICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICB9LFxuXG4gIHNlbmRFbWFpbE5vdGlmaWNhdGlvbjogYXN5bmMgKGRhdGEpID0+IHtcbiAgICBjb25zdCB1cmwgPSBgJHtnZXRBcGlVcmwoJ2VtYWlsJyl9L2FwaS9lbWFpbC1ub3RpZmljYXRpb25gO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXhpb3NJbnN0YW5jZS5wb3N0KHVybCwgZGF0YSk7XG4gICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gIH0sXG59O1xuXG5leHBvcnQgZGVmYXVsdCBQYWdlQXBpO1xuXG5leHBvcnQgY29uc3QgZ2V0UHVibGljUGFnZURhdGEgPSBQYWdlQXBpLmdldFB1YmxpY1BhZ2VEYXRhO1xuZXhwb3J0IGNvbnN0IGdldFB1YmxpY0hvbWVQYWdlRGF0YSA9ICgpID0+IFBhZ2VBcGkuZ2V0UHVibGljUGFnZURhdGEoJ2hvbWUnKTtcbmV4cG9ydCBjb25zdCBnZXRQdWJsaWNGYXFzUGFnZURhdGEgPSAoKSA9PiBQYWdlQXBpLmdldFB1YmxpY1BhZ2VEYXRhKCdmYXFzJyk7IiwiaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlLCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHN0eWxlcyBmcm9tICdzcmMvc3R5bGVzL3BhZ2VzL2luZGV4Lm1vZHVsZS5jc3MnO1xyXG5pbXBvcnQgeyB1c2VSb3V0ZXIgfSBmcm9tICduZXh0L3JvdXRlcic7XHJcbmltcG9ydCB7IHVzZURpc3BhdGNoIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xyXG5pbXBvcnQgeyBhc3luY0dldFNob3BzLCBzZXR
1DdXJyZW50U2hvcCB9IGZyb20gJ3NyYy9zdG9yZS9zaG9wcy9zaG9wc1NsaWNlJztcclxuaW1wb3J0IHsgd3JhcHBlciB9IGZyb20gJ3NyYy9zdG9yZSc7XHJcbmltcG9ydCBEeW5hbWljSGVhZCBmcm9tICdzcmMvY29tcG9uZW50cy9EeW5hbWljSGVhZCc7XHJcbmltcG9ydCBJbWFnZSBmcm9tICduZXh0L2ltYWdlJztcclxuaW1wb3J0IHsgc2x1Z2lmeSB9IGZyb20gJ3NyYy91dGlscy9zbHVnJztcclxuaW1wb3J0IHsgcmV2aWV3VXJsRm9yU2hvcCwgZGlyZWN0aW9uc1VybEZvclNob3AgfSBmcm9tICdzcmMvdXRpbHMvc2hvcExpbmtzJztcclxuaW1wb3J0IHsgZmlsdGVyU2hvcHNXaXRoT3JkZXJTZXF1ZW5jZSB9IGZyb20gJ3NyYy91dGlscy9wYWdlVXRpbHMnO1xyXG5pbXBvcnQgeyBwaWNrU2hvcHNTZW8sIHBpY2tNZXRhZGF0YVNlbyB9IGZyb20gJ3NyYy91dGlscy9zaG9wU2VvJztcclxuaW1wb3J0IExheW91dCBmcm9tICdzcmMvY29tcG9uZW50cy9MYXlvdXQnO1xyXG5pbXBvcnQgSGVyb1NlY3Rpb24gZnJvbSAnc3JjL2NvbXBvbmVudHMvSGVyb1NlY3Rpb24nO1xyXG5pbXBvcnQgSW50cm8gZnJvbSAnc3JjL2NvbXBvbmVudHMvSW50cm8nO1xyXG5pbXBvcnQgR2VuZXJhbFNlY3Rpb24gZnJvbSAnc3JjL2NvbXBvbmVudHMvR2VuZXJhbFNlY3Rpb24nO1xyXG5pbXBvcnQgV29yZFN0YWdnZXIgZnJvbSAnc3JjL2NvbXBvbmVudHMvYW5pbWF0aW9ucy9Xb3JkU3RhZ2dlcic7XHJcbmltcG9ydCB7IEFOSU1BVElPTl9TUEVFRFMgfSBmcm9tICdzcmMvdXRpbHMvcGFnZVV0aWxzJztcclxuaW1wb3J0IHsgdXNlU2NyZWVuU2l6ZSwgZ2V0TWVkaWFVcmxGb3JTaXplIH0gZnJvbSAnc3JjL3V0aWxzL3NjcmVlblNpemUnO1xyXG5pbXBvcnQgUGFnZUFwaSwgeyBnZXRQdWJsaWNIb21lUGFnZURhdGEgfSBmcm9tICdzcmMvYXBpL1BhZ2VBcGknO1xyXG5pbXBvcnQgeyBnZXRQdWJsaWNJbnN0YWdyYW1Qb3N0cyB9IGZyb20gJ3NyYy9hcGkvSW5zdGFncmFtQXBpQ2xpZW50JztcclxuaW1wb3J0IExpbmsgZnJvbSAnbmV4dC9saW5rJztcclxuaW1wb3J0IFNob3BQaWNrZXJQb3B1cCBmcm9tICdzcmMvY29tcG9uZW50cy9TaG9wUGlja2VyUG9wdXAnO1xyXG5pbXBvcnQgdXNlRW1ibGFDYXJvdXNlbCBmcm9tICdlbWJsYS1jYXJvdXNlbC1yZWFjdCc7XHJcbmltcG9ydCBBdXRvU2Nyb2xsIGZyb20gJ2VtYmxhLWNhcm91c2VsLWF1dG8tc2Nyb2xsJztcclxuaW1wb3J0IGNsc3ggZnJvbSAnY2xzeCc7XHJcbmltcG9ydCBkeW5hbWljIGZyb20gJ25leHQvZHluYW1pYyc7XHJcblxyXG4vLyBMYXp5LWxvYWQgYmVsb3ctZm9sZCBjb21wb25lbnRzIGZvciBmYXN0ZXIgaW5pdGlhbCBwYWdlIGxvYWRcclxuY29uc3QgTG9jYXRpb25zU2VjdGlvbiA9IGR5bmFtaWMoKCkgPT4gaW1wb3J0KCdzcmMvY29tcG9uZW50cy9Mb2NhdGlvblNlY3Rpb24nKSwgeyBzc3I6IHRydWUgfSk7XHJcbmNvbnN0IE1lbnVDYXJvdXNlbCA9IGR5bmFtaWMoKCkgPT4gaW1wb3J0KCdzcmMvY29tcG9uZW50cy9NZW51Q2Fyb3VzZWwnKSwgeyBzc3I6IGZhbHNlIH0pO1xyXG5cclxuY29uc3Qgc3BsaXRTaG9ydEFkZHJlc3MgPSAocykgPT4ge1xyXG4gIGlmICghcykgcmV0dXJuIFsnJywgJyddO1xyXG4gIGNvbnN0IGkgPSBzLmluZGV4T2YoJywnKTtcclxuICBpZiAoaSA9PT0gLTEpIHJldHVybiBbcy50cmltKCksICcnXTtcclxuICByZXR1cm4gW3Muc2xpY2UoMCwgaSkudHJpbSgpLCBzLnNsaWNlKGkgKyAxKS50cmltKCldO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldFNlcnZlclNpZG
1VQcm9wcyA9IHdyYXBwZXIuZ2V0U2VydmVyU2lkZVByb3BzKChzdG9yZSkgPT4gYXN5bmMgKCkgPT4ge1xyXG4gIGNvbnN0IFtzaG9wcywgaG9tZVBhZ2UsIGluc3RhZ3JhbVVybHNdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xyXG4gICAgc3RvcmUuZGlzcGF0Y2goYXN5bmNHZXRTaG9wcygpKS51bndyYXAoKSxcclxuICAgIFBhZ2VBcGkuZ2V0UHVibGljSG9tZVBhZ2UoKSxcclxuICAgIGdldFB1YmxpY0luc3RhZ3JhbVBvc3RzKCkuY2F0Y2goKCkgPT4gW10pLFxyXG4gIF0pO1xyXG4gIGNvbnN0IG9yZGVyZWRTaG9wcyA9IGZpbHRlclNob3BzV2l0aE9yZGVyU2VxdWVuY2Uoc2hvcHMpO1xyXG5cclxuICByZXR1cm4ge1xyXG4gICAgcHJvcHM6IHtcclxuICAgICAgc2hvcHM6IG9yZGVyZWRTaG9wcyxcclxuICAgICAgaG9tZVBhZ2U6IGhvbWVQYWdlID8/IG51bGwsXHJcbiAgICAgIGluc3RhZ3JhbVVybHM6IGluc3RhZ3JhbVVybHMgPz8gW10sXHJcbiAgICB9LFxyXG4gIH07XHJcbn0pO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTGFuZGluZ1BhZ2UoeyBzaG9wcywgaG9tZVBhZ2UsIGluc3RhZ3JhbVVybHMgPSBbXSB9KSB7XHJcbiAgY29uc3Qgcm91dGVyID0gdXNlUm91dGVyKCk7XHJcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xyXG4gIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZihudWxsKTtcclxuICBjb25zdCBjaXJjbGVSZWZzID0gdXNlUmVmKHt9KTtcclxuICBjb25zdCBwcmV2Qm9keUNvbG9yUmVmID0gdXNlUmVmKCcnKTtcclxuICBjb25zdCB0cmFuc2l0aW9uRW5kSGFuZGxlZFJlZiA9IHVzZVJlZihmYWxzZSk7XHJcbiAgY29uc3QgW3BsYXlJbnRybywgc2V0UGxheUludHJvXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuICBjb25zdCBbbm9Hcm93LCBzZXROb0dyb3ddID0gdXNlU3RhdGUoZmFsc2UpO1xyXG4gIGNvbnN0IFtsYW5kaW5nQ29sb3JTaG91bGRDaGFuZ2UsIHNldExhbmRpbmdDb2xvclNob3VsZENoYW5nZV0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcbiAgY29uc3QgW2NpcmNsZVNob3VsZFNocmluaywgc2V0Q2lyY2xlU2hvdWxkU2hyaW5rXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuICBjb25zdCBbcmFkaWksIHNldFJhZGlpXSA9IHVzZVN0YXRlKHsgb3V0ZXI6IDAsIGlubmVyOiAwIH0pO1xyXG4gIGNvbnN0IFtzZWxlY3RlZFNob3BJZCwgc2V0U2VsZWN0ZWRTaG9wSWRdID0gdXNlU3RhdGUobnVsbCk7XHJcbiAgLy8gTGFuZGluZy1wYWdlIGdlbmVyaWMgbGlua3MgKG5vIHNob3Agc2x1Zykgb3BlbiB0aGUgc2hvcCBwaWNrZXIgaW5zdGVhZCBvZiBuYXZpZ2F0aW5nLlxyXG4gIGNvbnN0IFtwaWNrZXJUYXJnZXQsIHNldFBpY2tlclRhcmdldF0gPSB1c2VTdGF0ZShudWxsKTtcclxuICAvLyBcIkxlYXZlIGEgcmV2aWV3XCIgaGFzIG5vIHNob3AgY29udGV4dCBoZXJlLCBzbyBwaWNrIGEgbG9jYXRpb24gZmlyc3QsIHRoZW5cclxuICAvLyBvcGVuIHRoYXQgc2hvcCdzIEdvb2dsZSByZXZpZXcgVVJMIChzYW1lIG1vZGVsIGFzIHRoZSBmb290ZXIpLlxyXG4gIGNvbnN0IFtyZXZpZXdQaWNrZXJPcGVuLCBzZXRSZXZpZXdQaWNrZXJPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuICAvLyBCdXR0b25zIHdob3NlIHRhcmdldCBpcyBcImxvY2F0aW9uXCIgcGljayBhIHNob3AsIHRoZW4gb3BlbiBpdHMgR29vZ2xlIE1hcHMuXHJcbiAgY29uc3QgW21hcHNQaWNrZXJPcGVuLCBzZXRNYXBzUGlja2VyT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcbiAgY29uc3QgW21vdW50SG9tZVBhZ2UsIHNldE1vdW50SG9tZVBhZ2VdID0gdXNlU3RhdGUoZmFsc2UpO1xyXG4gIGNvbnN0IFtoaWRlTGFuZGluZywgc2V0SGlkZUxhbmRpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xyXG4gIGNvbnN0IGluc3RhR2FsbGVyeVJlZiA9IHVzZVJlZihudWxsKTtcclxuICBjb25zdCBbaW5zdGFDb2x1bW5Db3VudCwgc2V0SW5zdGFDb2x1bW5Db3VudF0gPSB1c2VTdGF0ZSg1KTtcclxuICBjb25zdCBbdHJhbnNpdGlvblN0YXRlLCBzZXRUcmFuc2l0aW9uU3RhdGVdID0gdXNlU3RhdGUoe1xyXG4gICAgYWN0aXZlOiBmYWxzZSxcclxuICAgIGdvOiBmYWxzZSxcclxuICAgIHJlY3Q6IG51bGwsXHJcbiAgICBlbmRSZWN0OiBudWxsLFxyXG4gICAgaW1hZ2U6ICcnLFxyXG4gICAgc2hvcDogbnVsbCxcclxuICAgIG5hdmlnYXRlZDogZmFsc2UsXHJcbiAgfSk7XHJcbiAgY29uc3QgW21vdmVVcExhbmRpbmdDaXJjbGVMb2dvLCBzZXRNb3ZlVXBMYW5kaW5nQ2lyY2xlTG9nb10gPSB1c2VTdGF0ZShmYWxzZSk7XHJcbiAgY29uc3QgdGltZU9mQ2lyY2xlMSA9IDAuMDtcclxuICBjb25zdCB0aW1lT2ZDaXJjbGUyID0gMC4xO1xyXG4gIGNvbnN0IHRpbWVPZkNpcmNsZTMgPSAwLjM7XHJcbiAgY29uc3QgdGltZU9mQ2lyY2xlNCA9IDAuMjtcclxuICBjb25zdCB0aW1lT2ZDaXJjbGU1ID0gMC41O1xyXG4gIGNvbnN0IHRpbWVPZkNpcmNsZTYgPSAwLjU7XHJcbiAgY29uc3QgdGltZU9mQ2lyY2xlNyA9IDAuNTtcclxuICBjb25zdCB0aW1lT2ZDaXJjbGU4ID0gMC41O1xyXG4gIGNvbnN0IHRpbWVDaXJjbGVPcGVuSW5TZWMgPSAxLjE7XHJcbiAgY29uc3QgdGltZUNpcmNsZU9wZW5Jbk1zID0gdGltZUNpcmNsZU9wZW5JblNlYyAqIDIwMDA7XHJcbiAgY29uc3QgaGVyb0JhY2tncm91bmRCeVNob3AgPSB1c2VNZW1vKCgpID0+IHtcclxuICAgIGNvbnN0IG0gPSB7fTtcclxuXHJcbiAgICBzaG9wcz8uZm9yRWFjaCgoc2hvcCkgPT4ge1xyXG4gICAgICAvLyBjb25zb2xlLmxvZygnc2hvcFhYWFg9ICcsIHNob3ApO1xyXG4gICAgICBpZiAoc2hvcD8uaWQgJiYgc2hvcC5wYWdlcz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGNvbnN0IGZpcnN0UGFnZSA9IHNob3AucGFnZXNbMF07XHJcbiAgICAgICAgY29uc3Qgc2VjdGlvbkhlcm9zID0gZmlyc3RQYWdlLnNlY3Rpb25IZXJvcztcclxuICAgICAgICBpZiAoc2VjdGlvbkhlcm9zPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBjb25zdCBmaXJzdFNlY3Rpb25IZXJvID0gc2VjdGlvbkhlcm9zWzBdO1xyXG4gICAgICAgICAgaWYgKGZpcnN0U2VjdGlvbkhlcm8/Lm1lZGlhVXJsKSB7X
1HJcbiAgICAgICAgICAgIG1bc2hvcC5pZF0gPSBmaXJzdFNlY3Rpb25IZXJvLm1lZGlhVXJsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gbTtcclxuICB9LCBbc2hvcHNdKTtcclxuXHJcbiAgY29uc3QgcHJlbG9hZEltYWdlID0gdXNlQ2FsbGJhY2soKHVybCkgPT4ge1xyXG4gICAgaWYgKCF1cmwpIHJldHVybjtcclxuICAgIGNvbnN0IGltZyA9IG5ldyB3aW5kb3cuSW1hZ2UoKTtcclxuICAgIGltZy5kZWNvZGluZyA9ICdhc3luYyc7XHJcbiAgICBpbWcubG9hZGluZyA9ICdlYWdlcic7XHJcbiAgICBpbWcuc3JjID0gdXJsO1xyXG4gIH0sIFtdKTtcclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgc2hvcHMuc2xpY2UoMCwgNSkuZm9yRWFjaCgoc2hvcCkgPT4ge1xyXG4gICAgICBjb25zdCBmaXJzdCA9IHNob3Auc2hvcEltYWdlO1xyXG4gICAgICBpZiAoZmlyc3QpIHByZWxvYWRJbWFnZShmaXJzdCk7XHJcbiAgICB9KTtcclxuICAgIC8vIHByZWxvYWRJbWFnZSBpcyBzdGFibGUgKGVtcHR5IGRlcHMpLCBzbyBkb24ndCBpbmNsdWRlIGl0XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXHJcbiAgfSwgW3Nob3BzXSk7XHJcbiAgLy8gVGhlIGhvbWVwYWdlIGhhcyBubyBzaG9wIGNvbnRleHQuIENsZWFyIGFueSBzaG9wIGxlZnQgb3ZlciBmcm9tIGEgcHJldmlvdXNcclxuICAvLyBzaG9wIHBhZ2UgLyBjaXJjbGUgY2xpY2sgc28gdGhlIHdhaXRsaXN0IHdpZGdldCBzaG93cyB0aGUgc2hvcCBwaWNrZXJcclxuICAvLyBpbnN0ZWFkIG9mIGxvY2tpbmcgb250byBhIHN0YWxlIHNob3AgYWZ0ZXIgY2xpZW50LXNpZGUgbmF2aWdhdGlvbiBiYWNrIGhlcmUuXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGRpc3BhdGNoKHNldEN1cnJlbnRTaG9wKG51bGwpKTtcclxuICB9LCBbZGlzcGF0Y2hdKTtcclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgY29uc3QgdCA9IHNldFRpbWVvdXQoKCkgPT4gc2V0Tm9Hcm93KHRydWUpLCB0aW1lQ2lyY2xlT3BlbkluTXMpO1xyXG4gICAgcmV0dXJuICgpID0+IGNsZWFyVGltZW91dCh0KTtcclxuICB9LCBbdGltZUNpcmNsZU9wZW5Jbk1zXSk7XHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGNvbnN0IHJlYWRSYWRpaUZyb21DU1MgPSAoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHJzID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpO1xyXG4gICAgICBjb25zdCBvdXRlciA9IHBhcnNlRmxvYXQocnMuZ2V0UHJvcGVydHlWYWx1ZSgnLS1lYS1sYW5kaW5nLW91dGVyLXJhZGl1cycpKSB8fCAzMjA7XHJcbiAgICAgIGNvbnN0IGlubmVyID0gcGFyc2VGbG9hdChycy5nZXRQcm9wZXJ0eVZhbHVlKCctLWVhLWxhbmRpbmctaW5uZXItcmFkaXVzJykpIHx8IDIyMDtcclxuICAgICAgc2V0UmFkaWkoKHByZXYpID0+IHtcclxuICAgICAgICBpZiAocHJldi5vdXRlciA9PT0gb3V0ZXIgJiYgcHJldi5pbm5lciA9PT0gaW5uZXIpIHJldHVybiBwcmV2O1xyXG4gICAgICAgIHJldHVybiB7IG91dGVyLCBpbm5lciB9O1xyXG4gICAgICB9KTtcclxuICAgIH07XHJcbiAgICByZWFkUmFkaWlGcm9tQ1NTKCk7XHJcbiAgICBjb25zdCBpbnRyb0lkID0gc2V0VGltZW91dCgoKSA9PiBzZXRQbGF5SW50cm8odHJ1ZSksIDQwKTtcclxuICAgIGxldCByYWZJZCA9IG51bGw7XHJcbiAgICBjb25zdCBvblJlc2l6ZSA9ICgpID0+IHtcclxuICAgICAgaWYgKHJhZklkKSBjYW5jZWxBbmltYXRpb25GcmFtZShyYWZJZCk7XHJcbiAgICAgIHJhZklkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJlYWRSYWRpaUZyb21DU1MpO1xyXG4gICAgfTtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBvblJlc2l6ZSk7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignb3JpZW50YXRpb25jaGFuZ2UnLCBvblJlc2l6ZSk7XHJcbiAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICBjbGVhclRpbWVvdXQoaW50cm9JZCk7XHJcbiAgICAgIGlmIChyYWZJZCkgY2FuY2VsQW5pbWF0aW9uRnJhbWUocmFmSWQpO1xyXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25SZXNpemUpO1xyXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignb3JpZW50YXRpb25jaGFuZ2UnLCBvblJlc2l6ZSk7XHJcbiAgICB9O1xyXG4gIH0sIFtdKTtcclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdsYW5kaW5nLXRyYW5zaXRpb24nKTtcclxuICAgIH07XHJcbiAgfSwgW10pO1xyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBjb25zdCBvbiA9IHRyYW5zaXRpb25TdGF0ZS5hY3RpdmUgJiYgdHJhbnNpdGlvblN0YXRlLmdvO1xyXG4gICAgaWYgKG9uKSB7XHJcbiAgICAgIHByZXZCb2R5Q29sb3JSZWYuY3VycmVudCA9IGRvY3VtZW50LmJvZHkuc3R5bGUuYmFja2dyb3VuZENvbG9yIHx8ICcnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBwcmV2Qm9keUNvbG9yUmVmLmN1cnJlbnQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICBkb2
1N1bWVudC5ib2R5LnN0eWxlLmJhY2tncm91bmRDb2xvciA9IHByZXZCb2R5Q29sb3JSZWYuY3VycmVudDtcclxuICAgIH07XHJcbiAgfSwgW3RyYW5zaXRpb25TdGF0ZS5hY3RpdmUsIHRyYW5zaXRpb25TdGF0ZS5nb10pO1xyXG4gIGNvbnN0IGhhbmRsZUNlbnRlcmFsTG9nb0NsaWNrID0gKCkgPT4ge1xyXG4gICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xyXG4gIH07XHJcblxyXG5cclxuICAvLyBHZW5lcmFsU2VjdGlvbiBidXR0b25zIG9uIHRoZSBsYW5kaW5nIHBhZ2UgaGF2ZSBubyBzaG9wIGNvbnRleHQsIHNvIG9wZW4gdGhlXHJcbiAgLy8gc2hvcCBwaWNrZXIgaW5zdGVhZCBvZiBuYXZpZ2F0aW5nLiBUaGUgdGFyZ2V0IHBhZ2UgaXMgZGVyaXZlZCBmcm9tIHRoZVxyXG4gIC8vIGJ1dHRvbidzIG93biBocmVmIChlLmcuIFwiL2NvbnRhY3RcIiAtPiBcImNvbnRhY3RcIiksIGRlZmF1bHRpbmcgdG8gdGhlIG1lbnUuXHJcbiAgY29uc3QgaGFuZGxlU2VjdGlvbkJ1dHRvbkNsaWNrID0gKGUsIHNlY3Rpb24pID0+IHtcclxuICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIGNvbnN0IGhyZWYgPSBzZWN0aW9uPy5idXR0b24/LnRhcmdldCB8fCAnJztcclxuICAgIGNvbnN0IHRhcmdldCA9IGhyZWZcclxuICAgICAgLnJlcGxhY2UoL15odHRwcz86XFwvXFwvW14vXSsvaSwgJycpXHJcbiAgICAgIC5yZXBsYWNlKC9eXFwvK3xcXC8rJC9nLCAnJylcclxuICAgICAgfHwgJ3Jlc3RhdXJhbnRNZW51JztcclxuICAgIC8vIFwibG9jYXRpb25cIiBidXR0b25zIG9wZW4gdGhlIGNob3NlbiBzaG9wJ3MgR29vZ2xlIE1hcHMgcmF0aGVyIHRoYW4gYSBwYWdlLlxyXG4gICAgaWYgKHRhcmdldCA9PT0gJ2xvY2F0aW9uJykge1xyXG4gICAgICBzZXRNYXBzUGlja2VyT3Blbih0cnVlKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgc2V0UGlja2VyVGFyZ2V0KHRhcmdldCk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3QgaGFuZGxlUmV2aWV3U2hvcFBpY2tlZCA9IChzaG9wKSA9PiB7XHJcbiAgICBjb25zdCB1cmwgPSByZXZpZXdVcmxGb3JTaG9wKHNob3ApO1xyXG4gICAgaWYgKHVybCkgd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJywgJ25vb3BlbmVyLG5vcmVmZXJyZXInKTtcclxuICB9O1xyXG5cclxuICBjb25zdCBoYW5kbGVNYXBzU2hvcFBpY2tlZCA9IChzaG9wKSA9PiB7XHJcbiAgICBjb25zdCB1cmwgPSBkaXJlY3Rpb25zVXJsRm9yU2hvcChzaG9wKTtcclxuICAgIGlmICh1cmwpIHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycsICdub29wZW5lcixub3JlZmVycmVyJyk7XHJcbiAgfTtcclxuICBjb25zdCBmaW5pc2hUcmFuc2l0aW9uID0gdXNlQ2FsbGJhY2soKHNob3ApID0+IHtcclxuICAgIGlmICh0cmFuc2l0aW9uRW5kSGFuZGxlZFJlZi5jdXJyZW50KSByZXR1cm47XHJcbiAgICBpZiAoIXNob3A/LmlkKSByZXR1cm47XHJcbiAgICB0cmFuc2l0aW9uRW5kSGFuZGxlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcclxuICAgIGNvbnN0IHNob3BOYW1lID0gc2x1Z2lmeShzaG9wLm5hbWUgfHwgc2hvcC5pZCk7XHJcbiAgICBzZXRUcmFuc2l0aW9uU3RhdGUoKHMpID0+ICh7IC4uLnMsIG5hdmlnYXRlZDogdHJ1ZSwgYWN0aXZlOiBmYWxzZSB9KSk7XHJcbiAgICBzZXRIaWRlTGFuZGluZyh0cnVlKTtcclxuICAgIHNldFBsYXlJbnRybyhmYWxzZSk7XHJcbiAgICBzZXROb0dyb3codHJ1ZSk7XHJcbiAgICByb3V0ZXIucHVzaChgLyR7c2hvcE5hbWV9L2ApO1xyXG4gIH0sIFtyb3V0ZXJdKTtcclxuXHJcbiAgY29uc3QgaGFuZGxlQ2lyY2xlQ2xpY2sgPSBhc3luYyAoc2hvcCkgPT4ge1xyXG4gICAgZGlzcGF0Y2goc2V0Q3VycmVudFNob3Aoc2hvcCkpO1xyXG4gICAgc2V0U2VsZWN0ZWRTaG9wSWQoc2hvcC5pZCk7XHJcbiAgICBzZXRNb3VudEhvbWVQYWdlKHRydWUpO1xyXG4gICAgY29uc3QgY2lyY2xlRWwgPSBjaXJjbGVSZWZzLmN1cnJlbnRbc2hvcC5pZF07XHJcbiAgICBpZiAoIWNpcmNsZUVsKSByZXR1cm47XHJcbiAgICBjb25zdCBzdGFydFJlY3QgPSBjaXJjbGVFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IGltYWdlVXJsID0gaGVyb0JhY2tncm91bmRCeVNob3Bbc2hvcC5pZF0gfHwgJy9pbWFnZXMvbGFuZGluZy9pbWctMS5wbmcnO1xyXG4gICAgY29uc3QgaXNTbWFsbFNjcmVlbiA9IHdpbmRvdy5tYXRjaE1lZGlhKCcobWF4LXdpZHRoOiA1NzZweCknKS5tYXRjaGVzO1xyXG4gICAgc2V0Q2lyY2xlU2hvdWxkU2hyaW5rKHRydWUpO1xyXG4gICAgc2V0TW92ZVVwTGFuZGluZ0NpcmNsZUxvZ28odHJ1ZSk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ2xhbmRpbmctdHJhbnNpdGlvbicpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiBzZXRMYW5kaW5nQ29sb3JTaG91bGRDaGFuZ2UodHJ1ZSksIDgwKTtcclxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XHJcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaGVyb0VsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2RhdGEtaGVyby10YXJnZXRdJyk7XHJcbiAgICAgICAgY29uc3QgbGFuZGluZ0VsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2RhdGEtbGFuZGluZ10nKTtcclxuICAgICAgICBjb25zdCBoZXJvUmVjdCA9IGhlcm9FbD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgY29uc3QgbGFuZGluZ0ggPSBsYW5kaW5nRWw/Lm9mZnNldEhlaWdodCB8fCAwO1xyXG5cclxuICAgICAgICBjb25zdCBzYWZlRW5kUmVjdCA9IGhlcm9SZWN0XHJcbiAgICAgICAgICA/IHtcclxuICAgICAgICAgICAgbGVmdDogaGVyb1JlY3QubGVmdCArIChpc1NtYWxsU2NyZWVuID8gMjAgOiAwKSxcclxuICAgICAgICAgICAgdG9wOiBNYXRoLm1heCgwLCBoZXJvUmVjdC50b3AgLSBsYW5kaW5nSCksXHJcbiAgICAgICAgICAgIHdpZHRoOiBoZXJvUmVjdC53aWR0aCAtIChpc1NtYWxsU2NyZWVuID8gNDAgOiAwKSxcclxuICAgICAgICAgICAgaGVpZ2h0OiBoZXJvUmVjdC5oZWlnaHQsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICA6IHtcclxuICAgICAgICAgICAgbGVmdDogMCxcclxuICAgICAgICAgICAgdG9wOiAwLFxyXG4gICAgICAgICAgICB3aWR0aDogd2luZG93LmlubmVyV2lkdGgsXHJcbiAgICAgICAgICAgIGhlaWdodDogd2luZG93LmlubmVySGVpZ2h0LFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICBzZXRUcmFuc2l0aW9uU3RhdGUoe1xyXG4gICAgICAgICAgYWN0aXZlOiB0cnVlLFxyXG4gICAgICAgICAgZ286IGZhbHNlLFxyXG4gICAgICAgICAgcmVjdDogc3RhcnRSZWN0LFxyXG4gICAgICAgICAgZW5kUmVjdDogc2FmZUVuZFJlY3QsXHJcbiAgICAgICAgICBpbWFnZTogaW1hZ2VVcmwsXHJcbiAgICAgICAgICBzaG9wLFxyXG4gICAgICAgICAgbmF2aWdhdGVkOiBmYWxzZSxcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xyXG4gICAgICAgICAgc2V0VHJhbnNpdGlvblN0YXRlKChzKSA9PiAoeyAuLi5zLCBnbzogdHJ1ZSB9KSk7XHJcbiAgICAgICAgICBzZXRUaW
11lb3V0KCgpID0+IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnbGFuZGluZy10cmFuc2l0aW9uJyksIDEwMCk7XHJcbiAgICAgICAgICAvLyBGYWxsYmFjazogY29tcGxldGUgbmF2aWdhdGlvbiBldmVuIGlmIHRoZSByZWN0J3MgdHJhbnNpdGlvbmVuZFxyXG4gICAgICAgICAgLy8gZm9yIGB3aWR0aGAgbmV2ZXIgZmlyZXMgKGUuZy4gd2hlbiBzdGFydFJlY3Qud2lkdGggaGFwcGVucyB0b1xyXG4gICAgICAgICAgLy8gZXF1YWwgZW5kUmVjdC53aWR0aCwgb3IgdGhlIGV2ZW50IGlzIGRyb3BwZWQpLiBXaXRob3V0IHRoaXMsXHJcbiAgICAgICAgICAvLyBoaWRlTGFuZGluZyBzdGF5cyBmYWxzZSBhbmQgbGFuZGluZy1zZWN0aW9uIG92ZXJsYXlzIHRoZSBoZXJvLlxyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBmaW5pc2hUcmFuc2l0aW9uKHNob3ApLCA3NTApO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IG9uVHJhbnNpdGlvbkVuZCA9IChlKSA9PiB7XHJcbiAgICAvLyBJbm5lciAudHJhbnNpdGlvbi1jb250ZW50IHRyYW5zaXRpb25zIG9wYWNpdHk7IGlnbm9yZSBpdCBzbyB3ZSBvbmx5XHJcbiAgICAvLyByZWFjdCB0byB0aGUgcmVjdCdzIG93biBzaXplL3Bvc2l0aW9uIHRyYW5zaXRpb25zLlxyXG4gICAgaWYgKGUucHJvcGVydHlOYW1lID09PSAnb3BhY2l0eScpIHJldHVybjtcclxuICAgIGlmICghdHJhbnNpdGlvblN0YXRlLmFjdGl2ZSB8fCAhdHJhbnNpdGlvblN0YXRlLmdvIHx8IHRyYW5zaXRpb25TdGF0ZS5uYXZpZ2F0ZWQgfHwgIXRyYW5zaXRpb25TdGF0ZS5zaG9wPy5pZCkgcmV0dXJuO1xyXG4gICAgZmluaXNoVHJhbnNpdGlvbih0cmFuc2l0aW9uU3RhdGUuc2hvcCk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3QgZGVsYXlzID0gW3RpbWVPZkNpcmNsZTEsIHRpbWVPZkNpcmNsZTIsIHRpbWVPZkNpcmNsZTMsIHRpbWVPZkNpcmNsZTQsIHRpbWVPZkNpcmNsZTUsIHRpbWVPZkNpcmNsZTYsIHRpbWVPZkNpcmNsZTcsIHRpbWVPZkNpcmNsZThdO1xyXG4gIGNvbnN0IGN4ID0gMDtcclxuICBjb25zdCBjeSA9IDA7XHJcbiAgY29uc3QgcG9sYXIgPSAoZGVnLCByLCBjeDAgPSAwLCBjeTAgPSAwKSA9PiB7XHJcbiAgICBjb25zdCByYWQgPSAoZGVnICogTWF0aC5QSSkgLyAxODA7XHJcbiAgICByZXR1cm4geyB4OiBNYXRoLmNvcyhyYWQpICogciArIGN4MCwgeTogTWF0aC5zaW4ocmFkKSAqIHIgKyBjeTAgfTtcclxuICB9O1xyXG4gIGNvbnN0IGN1cnZlUGF0aCA9IChkeCwgZHksIGJ4ID0gMCwgYnkgPSAtMTIwKSA9PiB7XHJcbiAgICBjb25zdCBjMXggPSBkeCAqIDAuMjUgKyBieDtcclxuICAgIGNvbnN0IGMxeSA9IGR5ICogMC4xICsgYnk7XHJcbiAgICBjb25zdCBjMnggPSBkeCAqIDAuNzUgKyBieDtcclxuICAgIGNvbnN0IGMyeSA9IGR5ICogMC4xICsgYnk7XHJcbiAgICByZXR1cm4gYHBhdGgoXCJNMCwwIEMgJHtjMXh9LCR7YzF5fSAke2MyeH0sJHtjMnl9ICR7ZHh9LCR7ZHl9XCIpYDtcclxuICB9O1xyXG5cclxuICBjb25zdCB0YXJnZXRzID0gW3BvbGFyKDIyNSwgcmFkaWkub3V0ZXIsIGN4LCBjeSksIHBvbGFyKDE1MCwgcmFkaWkub3V0ZXIsIGN4LCBjeSksIHBvbGFyKDMwLCByYWRpaS5vdXRlciwgY3gsIGN5KSwgcG9sYXIoMzE1LCByYWRpaS5vdXRlciwgY3gsIGN5KSwgcG9sYXIoOTAsIHJhZGlpLmlubmVyLCBjeCwgY3kpLCBwb2xhcigzNjAsIHJhZGlpLmlubmVyLCBjeCwgY3kpLCBwb2xhcigyNzAsIHJhZGlpLmlubmVyLCBjeCwgY3kpLCBwb2xhcigxODAsIHJhZGlpLmlubmVyLCBjeCwgY3kpXTtcclxuXHJcbiAgY29uc3QgYmVuZFggPSAwLjM7XHJcbiAgY29uc3QgYmVuZFkgPSAwLjM7XHJcblxyXG4gIGNvbnN0IGJlbmRzID0gW1xyXG4gICAgeyBieDogLTYwICogYmVuZFgsIGJ5OiAtNTQwICogYmVuZFkgfSxcclxuICAgIHsgYng6IC02MCAqIGJlbmRYLCBieTogLTE0MCAqIGJlbmRZIH0sXHJcbiAgICB7IGJ4OiAtMTUwICogYmVuZFgsIGJ5OiAyNTAgKiBiZW5kWSB9LFxyXG4gICAgeyBieDogODAgKiBiZW5kWCwgYnk6IDQwICogYmVuZFkgfSxcclxuICAgIHsgYng6IC0yMDAgKiBiZW5kWCwgYnk6IDIwMCAqIGJlbmRZIH0sXHJcbiAgICB7IGJ4OiAtMjAwICogYmVuZFgsIGJ5OiAyMDAgKiBiZW5kWSB9LFxyXG4gICAgeyBieDogLTIwMCAqIGJlbmRYLCBieTogMjAwICogYmVuZFkgfSxcclxuICAgIHsgYng6IC0yMDAgKiBiZW5kWCwgYnk6IDIwMCAqIGJlbmRZIH0sXHJcbiAgXTtcclxuXHJcbiAgY29uc3QgaW5pdFNjYWxlcyA9IFswLjIsIDAuMiwgMC4yLCAwLjIsIDAuMiwgMC4yLCAwLjIsIDAuMl07XHJcbiAgY29uc3QgbWlkU2NhbGVzID0gWzAuODUsIDAuOCwgMC44OCwgMC44MiwgMC43NSwgMC43NSwgMC43NSwgMC43NV07XHJcbiAgY29uc3QgcHJlbG9hZExpbmtzID0gdXNlTWVtbygoKSA9PiB7XHJcbiAgICBjb25zdCB1cmxzID0gW107XHJcbiAgICBzaG9wcy5zbGljZSgwLCA1KS5mb3JFYWNoKChzKSA9PiB7XHJcbiAgICAgIGNvbnN0IHUgPSBzLnNob3BJbWFnZTtcclxuICAgICAgaWYgKHUpIHVybHMucHVzaCh1KTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIEFycmF5LmZyb20obmV3IFNldCh1cmxzKSk7XHJcbiAgfSwgW3Nob3BzXSk7XHJcbiAgY29uc3QgZWFybGllc3REZWxheSA9IE1hdGgubWluKC4uLmRlbGF5cyk7XHJcbiAgY29uc3QgbWlkQmxhc3REZWxheVNlYyA9IGVhcmxpZXN0RGVsYXkgKyB0aW1lQ2lyY2xlT3BlbkluU2VjICogMC4zO1xyXG4gIGNvbnN0IG92ZXJsYXlTdHlsZSA9XHJcbiAgICB0cmFuc2l0aW9uU3RhdGUuYWN0aXZlICYmIHRyYW5zaXRpb25TdGF0ZS5yZWN0XHJcbiAgICAgID8ge1xyXG4gICAgICAgICctLXN0YXJ0LWxlZnQnOiBgJHt0cmFuc2l0aW9uU3RhdGUucmVjdC5sZWZ0fXB4YCxcclxuICAgICAgICAnLS1zdGFydC10b3AnOiBgJHt0cmFuc2l0aW9uU3RhdGUucmVjdC50b3B9cHhgLFxyXG4gICAgICAgICctLXN0YXJ0LXdpZHRoJzogYCR7dHJhbnNpdGlvblN0YXRlLnJlY3Qud2lkdGh9cHhgLFxyXG4gICAgICAgICctLXN0YXJ0LWhlaWdodCc6IGAke3RyYW5zaXRpb25TdGF0ZS5yZWN0LmhlaWdodH1weGAsXHJcbiAgICAgICAgLi4uKHRyYW5zaXRpb25TdGF0ZS5lbmRSZWN0ICYmIHtcclxuICAgICAgICAgICctLWVuZC1sZWZ0JzogYCR7dHJhbnNpdGlvblN0YXRlLmVuZFJlY3QubGVmdH1weGAsXHJcbiAgICAgICAgICAnLS1lbmQtdG9wJzogYCR7dHJhbnNpdGlvblN0YXRlLmVuZFJlY3QudG9wfXB4YCxcclxuICAgICAgICAgICctLWVuZC13aWR0aCc6IGAke3RyYW5zaXRpb25TdGF0ZS5lbmRSZWN0LndpZHR
1ofXB4YCxcclxuICAgICAgICAgICctLWVuZC1oZWlnaHQnOiBgJHt0cmFuc2l0aW9uU3RhdGUuZW5kUmVjdC5oZWlnaHR9cHhgLFxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgICctLWJnLXVybCc6IGB1cmwoJHt0cmFuc2l0aW9uU3RhdGUuaW1hZ2V9KWAsXHJcbiAgICAgIH1cclxuICAgICAgOiB1bmRlZmluZWQ7XHJcblxyXG4gIGNvbnN0IHNlY3Rpb25IZXJvcyA9IGhvbWVQYWdlPy5zZWN0aW9uSGVyb3MgPz8gW107XHJcbiAgY29uc3QgaW50cm8gPSBob21lUGFnZT8uaW50cm87XHJcbiAgY29uc3QgaGVyb0hhc1RpdGxlID0gc2VjdGlvbkhlcm9zLnNvbWUoKGgpID0+IGg/LnRpdGxlKTtcclxuICBjb25zdCBzZWN0aW9ucyA9IGhvbWVQYWdlPy5zZWN0aW9ucyA/PyBbXTtcclxuICAvLyBEYXRhIHNlY3Rpb25zIDErMiBhbmQgNis3IChpbmRpY2VzIFswXSxbMV0gYW5kIFs1XSxbNl0pIGJlY29tZSBhIHNpbmdsZVxyXG4gIC8vIGNhcm91c2VsIG9mIHR3byBzbGlkZXMgKHR3byBpdGVtcyBlYWNoKSwgdXNpbmcgdGhlIHNhbWUgbWV0aG9kIGFzIHRoZVxyXG4gIC8vIG92ZXJ2aWV3IHBhZ2UuIFNlY3Rpb25zIFszXS9bNF0ga2VlcCB0aGVpciBzdGFuZGFsb25lIEdlbmVyYWxTZWN0aW9ucy5cclxuICBjb25zdCBzY3JlZW5TaXplID0gdXNlU2NyZWVuU2l6ZSgpO1xyXG4gIGNvbnN0IHNpZ25hdHVyZURpc2hlc1NsaWRlcyA9IHVzZU1lbW8oKCkgPT4ge1xyXG4gICAgY29uc3QgY2Fyb3VzZWxTZWN0aW9ucyA9IHNlY3Rpb25zLmZpbHRlcigocykgPT4gcy50eXBlID09PSAnbWVudUNhcm91c2VsJyk7XHJcblxyXG4gICAgY29uc3QgdG9JdGVtID0gKHNlY3Rpb24sIGlkKSA9PlxyXG4gICAgICBzZWN0aW9uXHJcbiAgICAgICAgPyB7XHJcbiAgICAgICAgICBpZCxcclxuICAgICAgICAgIGltZzogZ2V0TWVkaWFVcmxGb3JTaXplKHNlY3Rpb24sIHNjcmVlblNpemUpLFxyXG4gICAgICAgICAgaGVhZGluZzogc2VjdGlvbi50aXRsZSxcclxuICAgICAgICAgIGRlc2M6IHNlY3Rpb24uZGVzY3JpcHRpb24sXHJcbiAgICAgICAgfVxyXG4gICAgICAgIDogbnVsbDtcclxuXHJcbiAgICBjb25zdCBidWlsZFNsaWRlID0gKGlkLCBmaXJzdCwgc2Vjb25kKSA9PiB7XHJcbiAgICAgIGNvbnN0IGl0ZW1zID0gW3RvSXRlbShmaXJzdCwgMSksIHRvSXRlbShzZWNvbmQsIDIpXS5maWx0ZXIoQm9vbGVhbik7XHJcbiAgICAgIGlmICghaXRlbXMubGVuZ3RoKSByZXR1cm4gbnVsbDtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBpZCxcclxuICAgICAgICBiZzE6ICcvaW1hZ2VzL21lbnUvc2VjdGlvbi1tZW51Q2Fyb3VzZWwvYmctMS5wbmcnLFxyXG4gICAgICAgIGJnMjogJy9pbWFnZXMvbWVudS9zZWN0aW9uLW1lbnVDYXJvdXNlbC9iZy0yLnBuZycsXHJcbiAgICAgICAgaXRlbXMsXHJcbiAgICAgIH07XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBbXHJcbiAgICAgIGJ1aWxkU2xpZGUoMSwgY2Fyb3VzZWxTZWN0aW9uc1swXSwgY2Fyb3VzZWxTZWN0aW9uc1sxXSksXHJcbiAgICAgIGJ1aWxkU2xpZGUoMiwgY2Fyb3VzZWxTZWN0aW9uc1syXSwgY2Fyb3VzZWxTZWN0aW9uc1szXSksXHJcbiAgICBdLmZpbHRlcihCb29sZWFuKTtcclxuICB9LCBbc2VjdGlvbnMsIHNjcmVlblNpemVdKTtcclxuXHJcbiAgLy8gQ29ubmVjdGlvbiBzZWN0aW9uOiBzZWN0aW9ucyBbNC4uNl0uIFNoYXJlZCBieSB0aGUgZGVza3RvcCBjYXJvdXNlbCBhbmQgdGhlXHJcbiAgLy8gbW9iaWxlIDMtcm93IG1hcnF1ZWUgKG9uZSBpbWFnZSBwZXIgcm93LCBtaWRkbGUgcm93IHNjcm9sbHMgaW4gcmV2ZXJzZSkuXHJcbiAgY29uc3QgY29ubmVjdGlvbkltYWdlcyA9IHVzZU1lbW8oXHJcbiAgICAoKSA9PlxyXG4gICAgICBzZWN0aW9uc1xyXG4gICAgICAgIC5zbGljZSg0LCA3KVxyXG4gICAgICAgIC5tYXAoKHNlY3Rpb24pID0+ICh7XHJcbiAgICAgICAgICBpZDogc2VjdGlvbj8uaWQsXHJcbiAgICAgICAgICBzcmM6IGdldE1lZGlhVXJsRm9yU2l6ZShzZWN0aW9uLCBzY3JlZW5TaXplKSxcclxuICAgICAgICAgIGFsdDogc2VjdGlvbj8udGl0bGUgfHwgJ0Nvbm5lY3Rpb24nLFxyXG4gICAgICAgIH0pKVxyXG4gICAgICAgIC5maWx0ZXIoKGl0KSA9PiBpdC5zcmMpLFxyXG4gICAgW3NlY3Rpb25zLCBzY3JlZW5TaXplXVxyXG4gICk7XHJcblxyXG4gIC8vIEluc3RhZ3JhbSBnYWxsZXJ5OiBhIGZpeGVkIDUgY29sdW1ucywgd2l0aCB0aGUgVVJMcyBzcGxpdCBzZXF1ZW50aWFsbHkgYW5kXHJcbiAgLy8gZXZlbmx5IGFjcm9zcyB0aGVtIChmaXJzdCBjaHVuayBpbiBjb2x1bW4gMSwgbmV4dCBjaHVuayBpbiBjb2x1bW4gMiwgZXRjLikuXHJcbiAgLy8gUHJlZmVyIHRoZSBsaXZlIEluc3RhZ3JhbSBtZWRpYSBVUkxzIChyZWZyZXNoZWQgaG91cmx5IGJ5IGNyb24pOyBmYWxsIGJhY2tcclxuICAvLyB0byBzZWN0aW9uIHRoZW4gY29ubmVjdGlvbiBpbWFnZXMuXHJcbiAgY29uc3QgSU5TVEFfVEFSR0VUX0NPTFVNTl9XSURUSCA9IDM0OTtcclxuICBjb25zdCBJTlNUQV9NSU5fQ09MVU1OUyA9IDM7XHJcbiAgY29uc3QgSU5TVEFfU0VDT05EU19QRVJfSU1BR0UgPSAzO1xyXG4gIGNvbnN0IElOU1RBX01JTl9EVVJBVElPTiA9IDE0O1xyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBjb25zdCBlbCA9IGluc3RhR2FsbGVyeVJlZi5jdXJyZW50O1xyXG4gICAgaWYgKCFlbCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGNvbXB1dGUgPSAod2lkdGgpID0+IHtcclxuICAgICAgY29uc3QgY291bnQgPSBNYXRoLm1heChJTlNUQV9NSU5fQ09MVU1OUywgTWF0aC5mbG9vcih3aWR0aCAvIElOU1RBX1RBUkdFVF9DT0xVTU5fV0lEVEgpKTtcclxuICAgICAgc2V0SW5zdGFDb2x1bW5Db3VudCgocHJldikgPT4gKHByZXYgPT09IGNvdW50ID8gcHJldiA6IGNvdW50KSk7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbXB1dGUoZWwub2Zmc2V0V2lkdGgpO1xyXG5cclxuICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKChlbnRyaWVzKSA9PiB7XHJcbiAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xyXG4gICAgICAgIGNvbXB1dGUoZW50cnkuY29udGVudFJlY3Qud2lkdGgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIG9ic2VydmVyLm9ic2VydmUoZWwpO1xyXG5cclxuICAgIHJldHVybiAoKSA9PiBvYnNlcnZlci5kaXNjb25uZWN0KCk7XHJcbiAgfSwgW10pO1xyXG4gIGNvbnN0IGluc3RhQ29sdW1ucyA9IHVzZU1lbW8oKCkgPT4ge1xyXG4gICAgY29uc3QgbGl2ZSA9IChpbnN0YWdyYW1VcmxzID8/IFtdKS5maWx0ZXIoQm9vbGVhbik7XHJcbiAgICBsZXQgc291cmNlID0gbGl2ZTtcclxuICAgIGlmICghc291cmNlLmxlbmd0aCkge1xyXG4gICAgICBjb25zdCBwb29sID0gc2VjdGlvbnNcclxuICAgICAgICAuc2xpY2UoNClcclxuICAgICAgICAubWFwKChzZWN0aW9uKSA9PiBnZXRNZWRpYVVybEZvclNpemUoc2VjdGlvbiwgc2NyZWVuU2l6ZSkpXHJcbiAgICAgICAgLmZpbHRlcihCb29sZWFuKTtcclxuICAgICAgc291cmNlID0gcG9vbC5sZW5ndGggPyBwb29sIDogY29ubmVjdGlvbkltYWdlcy5tYXAoKGl0KSA9PiBpdC5zcmMpLmZpbHRlcihCb29sZWFuKTtcclxuICAgIH1cclxuICAgIGlmICghc291cmNlLmxlbmd0aCkgcmV0dXJuIFtdO1xyXG4gICAgY29uc3QgcGVyQ29sdW1uID0gTWF0aC5jZWlsKHNvdXJjZS5sZW5ndGggLyBpbnN0YUNvbHVtbkNvdW50KTtcclxuICAgIGNvbnN0IGNvbHVtbnMgPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc291cmNlLmxlbmd0aDsgaSArPSBwZXJDb2x1bW4pIHtcclxuICAgICAgY29sdW1ucy5wdXNoKHNvdXJjZS5zbGljZShpLCBpICsgcGVyQ29sdW1uKSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29sdW1ucztcclxuICB9LCBbaW5zdGFncmFtVXJscywgc2VjdGlvbnMsIHNjcmVlblNpemUsIGNvbm5lY3Rpb25JbWFnZXMsIGluc3RhQ29sdW1uQ291bnRdKTtcclxuICAvLyBBY3RpdmUgcmV2aWV3cyBhY3Jvc3MgYWxsIHNob3BzLCBmbGF0dGVuZWQgZm9yIHRoZSBhdXRvLXNjcm9sbGluZyByZXZpZXdzIHN0cmlwLlxyXG4gIGNvbnN0IHJldmlld3NMaXN0ID0gdXNlTWVtbyhcclxuICAgICgpID0+XHJcbiAgICAgIChzaG9wcyA/PyBbXSkuZmxh
1dE1hcCgocykgPT5cclxuICAgICAgICAocz8ucmV2aWV3cyA/PyBbXSlcclxuICAgICAgICAgIC5maWx0ZXIoKHIpID0+IHI/LmFjdGl2ZSlcclxuICAgICAgICAgIC5tYXAoKHIpID0+ICh7IC4uLnIsIHNob3BOYW1lOiBzPy5uYW1lIH0pKVxyXG4gICAgICApLFxyXG4gICAgW3Nob3BzXVxyXG4gICk7XHJcblxyXG4gIC8vIENvbm5lY3Rpb24gc2VjdGlvbiBjYXJvdXNlbHM6IG9uZSBvbiBkZXNrdG9wLCB0aHJlZSBvbiBtb2JpbGUuIFRoZSBtb2JpbGVcclxuICAvLyBjYXJvdXNlbHMgc3BsaXQgdGhlIGltYWdlcyBieSBzdHJpZGUgMyAoY29sIDAgLT4gMCwzLDYgLyBjb2wgMSAtPiAxLDQsNyAvXHJcbiAgLy8gY29sIDIgLT4gMiw1LDgpIHNvIGVhY2ggcm93IHNob3dzIGEgZGlzdGluY3Qgc2V0LlxyXG4gIC8vIE5PVEU6IGltYWdlcyBhcmUgZHVwbGljYXRlZCA0eCBmb3IgdGVzdGluZyBzbyB0aGVyZSdzIGVub3VnaCB0byBzY3JvbGwuXHJcbiAgY29uc3QgY29ubmVjdGlvbkltYWdlc0R1cCA9IHVzZU1lbW8oXHJcbiAgICAoKSA9PlxyXG4gICAgICBBcnJheS5mcm9tKHsgbGVuZ3RoOiA1IH0pLmZsYXRNYXAoKF8sIGR1cCkgPT5cclxuICAgICAgICBjb25uZWN0aW9uSW1hZ2VzLm1hcCgoaXQsIGkpID0+ICh7IC4uLml0LCBpZDogYCR7aXQuaWQgPz8gaX0tJHtkdXB9YCB9KSlcclxuICAgICAgKSxcclxuICAgIFtjb25uZWN0aW9uSW1hZ2VzXVxyXG4gICk7XHJcbiAgY29uc3QgY29ubmVjdGlvbkNvbHVtbnMgPSB1c2VNZW1vKFxyXG4gICAgKCkgPT4gWzAsIDEsIDJdLm1hcCgoY29sKSA9PiBjb25uZWN0aW9uSW1hZ2VzRHVwLmZpbHRlcigoXywgaSkgPT4gaSAlIDMgPT09IGNvbCkpLFxyXG4gICAgW2Nvbm5lY3Rpb25JbWFnZXNEdXBdXHJcbiAgKTtcclxuICBjb25zdCBbZW1ibGFSZWZdID0gdXNlRW1ibGFDYXJvdXNlbChcclxuICAgIHsgbG9vcDogdHJ1ZSwgZHJhZ0ZyZWU6IHRydWUgfSxcclxuICAgIFtBdXRvU2Nyb2xsKHsgc3BlZWQ6IDEsIHN0b3BPbkludGVyYWN0aW9uOiBmYWxzZSwgc3RvcE9uTW91c2VFbnRlcjogdHJ1ZSB9KV1cclxuICApXHJcbiAgY29uc3QgW2Nvbm5Nb2JpbGVSZWYxXSA9IHVzZUVtYmxhQ2Fyb3VzZWwoXHJcbiAgICB7IGxvb3A6IHRydWUsIGRyYWdGcmVlOiB0cnVlIH0sXHJcbiAgICBbQXV0b1Njcm9sbCh7IHNwZWVkOiAwLjUsIHN0b3BPbkludGVyYWN0aW9uOiBmYWxzZSwgc3RvcE9uTW91c2VFbnRlcjogdHJ1ZSB9KV1cclxuICApXHJcbiAgY29uc3QgW2Nvbm5Nb2JpbGVSZWYyXSA9IHVzZUVtYmxhQ2Fyb3VzZWwoXHJcbiAgICB7IGxvb3A6IHRydWUsIGRyYWdGcmVlOiB0cnVlIH0sXHJcbiAgICBbQXV0b1Njcm9sbCh7IHNwZWVkOiAwLjUsIGRpcmVjdGlvbjogJ2JhY2t3YXJkJywgc3RvcE9uSW50ZXJhY3Rpb246IGZhbHNlLCBzdG9wT25Nb3VzZUVudGVyOiB0cnVlIH0pXVxyXG4gIClcclxuICBjb25zdCBbY29ubk1vYmlsZVJlZjNdID0gdXNlRW1ibGFDYXJvdXNlbChcclxuICAgIHsgbG9vcDogdHJ1ZSwgZHJhZ0ZyZWU6IHRydWUgfSxcclxuICAgIFtBdXRvU2Nyb2xsKHsgc3BlZWQ6IDAuNSwgc3RvcE9uSW50ZXJhY3Rpb246IGZhbHNlLCBzdG9wT25Nb3VzZUVudGVyOiB0cnVlIH0pXVxyXG4gIClcclxuICBjb25zdCBjb25uTW9iaWxlUmVmcyA9IFtjb25uTW9iaWxlUmVmMSwgY29ubk1vYmlsZVJlZjIsIGNvbm5Nb2JpbGVSZWYzXTtcclxuICBjb25zdCBbcmV2aWV3c1JlZl0gPSB1c2VFbWJsYUNhcm91c2VsKFxyXG4gICAgeyBsb29wOiB0cnVlLCBkcmFnRnJlZTogdHJ1ZSB9LFxyXG4gICAgW0F1dG9TY3JvbGwoeyBzcGVlZDogMSwgc3RvcE9uSW50ZXJhY3Rpb246IGZhbHNlLCBzdG9wT25Nb3VzZUVudGVyOiB0cnVlIH0pXVxyXG4gIClcclxuICByZXR1cm4gKFxyXG4gICAgPD5cclxuICAgICAgPER5bmFtaWNIZWFkIHBhZ2VOYW1lPVwibGFuZGluZ1wiIG1ldGFkYXRhPXtwaWNrTWV0YWRhdGFTZW8oaG9tZVBhZ2U/Lm1ldGFkYXRhKX0gc2hvcHM9e3BpY2tTaG9wc1NlbyhzaG9wcyl9IGhlcm9JbWFnZT17aG9tZVBhZ2U/LnNlY3Rpb25IZXJvc1swXT8ubWVkaWFVcmx9IC8+XHJcbiAgICAgIDxMYXlvdXQgc2hvcElkPXtzaG9wcz8uWzBdPy5pZH0+XHJcbiAgICAgICAgPG1haW4+XHJcbiAgICAgICAgICA8c2VjdGlvbiBkYXRhLWhlcm8tdGFyZ2V0IHN0eWxlPXt7IHBvc2l0aW9uOiAncmVsYXRpdmUnIH19PlxyXG4gICAgICAgICAgICA8SGVyb1NlY3Rpb24gcGFnZU5hbWU9XCJsYW5kaW5nXCIgc2VjdGlvbkhlcm9zPXtzZWN0aW9uSGVyb3N9IGhlYWRpbmdMZXZlbD17aGVyb0hhc1RpdGxlID8gJ2gxJyA6ICdoMid9IC8+XHJcbiAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9e3N0eWxlc1snbGFuZGluZy1pbnRybyddfT5cclxuICAgICAgICAgICAgPEludHJvIGludHJvPXtpbnRyb30gcGFnZU5hbWU9XCJsYW5kaW5nXCIgdGl0bGVUYWc9e2hlcm9IYXNUaXRsZSA/ICdoMicgOiAnaDEnfSAvPlxyXG4gICAgICAgICAgICA8TGlua1xyXG4gICAgICAgICAgICAgIGhyZWY9XCIvbWVudVwiXHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbJ2xhbmRpbmctaW50cm8tbWVudS1saW5rJ119XHJcblxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgRXhwbG9yZSB0aGUgbWVudVxyXG4gICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICA8TG9jYXRpb25zU2VjdGlvbiBzaG9wcz17c2hvcHN9IC8+XHJcbiAgICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9e3N0eWxlc1snbGFuZGluZy1hYm91dC11cyddfT5cclxuICAgICAgICAgICAgPFdvcmRTdGFnZ2VyIGFzPVwiaDFcIiBjbGFzc05hbWU9e3N0eWxlc1snbGFuZGluZy1hYm91dC11cy10aXRsZSddfSBiYXNlRGVsYXk9e0FOSU1BVElPTl9TUEVFRFMuaGVhZGluZy5iYXNlRGVsYXl9IHN0YWdnZXI9e0FOSU1BVElPTl9TUEVFRFMuaGVhZGluZy5zdGVwRGVsYXl9PlxyXG4gICAgICAgICAgICAgIEFib3V0IEJsdWViZXJyeSdzIEdyaWxsXHJcbiAgICAgICAgICAgIDwvV29yZFN0YWdn
1ZXI+XHJcbiAgICAgICAgICAgIDxXb3JkU3RhZ2dlciBhcz1cInBcIiBjbGFzc05hbWU9e3N0eWxlc1snbGFuZGluZy1hYm91dC11cy1kZXNjcmlwdGlvbiddfSBiYXNlRGVsYXk9e0FOSU1BVElPTl9TUEVFRFMucGFyYWdyYXBoLmJhc2VEZWxheX0gc3RhZ2dlcj17QU5JTUFUSU9OX1NQRUVEUy5wYXJhZ3JhcGguc3RlcERlbGF5fT5cclxuICAgICAgICAgICAgICBCbHVlYmVycnkncyBHcmlsbCBpcyBhIHNjcmF0Y2gtbWFkZSBicmVha2Zhc3QsIGJydW5jaCwgYW5kIGx1bmNoIGJyYW5kIG9uIHRoZSBDYXJvbGluYSBjb2FzdC4gSXQgc3RhcnRlZCB3aXRoIHR3byBmcmllbmRzIGZyb20gTGl0dGxlIFJpdmVyLCBTb3V0aCBDYXJvbGluYSDigJQgYSB5b3VuZyByZXN0YXVyYW50IG9wZXJhdG9yIGFuZCBhIFUuUy4gdmV0ZXJhbiB3aG8nZCBzcGVudCBoaXMgY2FyZWVyIGluIHRoZSByZXN0YXVyYW50IGJ1c2luZXNzIOKAlCB3aG8gb3BlbmVkIHRoZSBmaXJzdCBzcG90IGluIE15cnRsZSBCZWFjaCBpbiAyMDE3LiBUaGUgbmFtZSBjYW1lIGZyb20gdGhlIHlvdW5nZXIgcGFydG5lcidzIG1vdGhlciBhbmQgaGVyIGxvdmUgb2YgZmxvd2VycyBhbmQgYmx1ZWJlcnJ5IHRyZWVzLlxyXG4gICAgICAgICAgICA8L1dvcmRTdGFnZ2VyPlxyXG4gICAgICAgICAgICA8V29yZFN0YWdnZXIgYXM9XCJwXCIgY2xhc3NOYW1lPXtzdHlsZXNbJ2xhbmRpbmctYWJvdXQtdXMtZGVzY3JpcHRpb24nXX0gYmFzZURlbGF5PXtBTklNQVRJT05fU1BFRURTLnBhcmFncmFwaC5iYXNlRGVsYXl9IHN0YWdnZXI9e0FOSU1BVElPTl9TUEVFRFMucGFyYWdyYXBoLnN0ZXBEZWxheX0+XHJcbiAgICAgICAgICAgICAgU2luY2UgdGhlbiBpdCdzIGdyb3duIHRvIHRocmVlIGxvY2F0aW9ucyDigJQgTXlydGxlIEJlYWNoIGFuZCBOb3J0aCBNeXJ0bGUgQmVhY2ggaW4gU291dGggQ2Fyb2xpbmEsIGFuZCBXaWxtaW5ndG9uLCBOb3J0aCBDYXJvbGluYSDigJQgZWFjaCBjb29raW5nIGV2ZXJ5dGhpbmcgdG8gb3JkZXIsIGZyb20gdGhlIEJsdWViZXJyeSBIdXNocHVwcGllcyB0byB0aGUgYmVuZWRpY3RzLiBUaGUgTm9ydGggTXlydGxlIEJlYWNoIGxvY2F0aW9uIG1hZGUgWWVscCdzIFRvcCAxMDAgQnJ1bmNoIFNwb3RzIGluIHRoZSBVLlMuIGluIGJvdGggMjAyMyBhbmQgMjAyNC5cclxuICAgICAgICAgICAgPC9Xb3JkU3RhZ2dlcj5cclxuICAgICAgICAgICAgPFdvcmRTdGFnZ2VyIGFzPVwicFwiIGNsYXNzTmFtZT17c3R5bGVzWydsYW5kaW5nLWFib3V0LXVzLWRlc2NyaXB0aW9uJ119IGJhc2VEZWxheT17QU5JTUFUSU9OX1NQRUVEUy5wYXJhZ3JhcGguYmFzZURlbGF5fSBzdGFnZ2VyPXtBTklNQVRJT05fU1BFRURTLnBhcmFncmFwaC5zdGVwRGVsYXl9PlxyXG4gICAgICAgICAgICAgIFRoZSBydWxlcyBoYXZlbid0IGNoYW5nZWQgc2luY2UgdGhlIGZpcnN0IG1vcm5pbmc6IGZyZXNoIGluZ3JlZGllbnRzLCB0cmVhdCBldmVyeSBndWVzdCBsaWtlIGEgcmVndWxhciwgYW5kIHJld29yayB0aGUgY2xhc3NpY3Mgd2l0aCBjYXJlLlxyXG4gICAgICAgICAgICA8L1dvcmRTdGFnZ2VyPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydsYW5kaW5nLWFib3V0LXVzLXNlcGFyYXRvciddfSAvPlxyXG4gICAgICAgICAgICA8TWVudUNhcm91c2VsIHNsaWRlcz17c2lnbmF0dXJlRGlzaGVzU2xpZGVzfSBzdWJ0aXRsZT1cIk91ciBTaWduYXR1cmUgRGlzaGVzXCIgdGl0bGU9XCJXb3J0aCB0aGUgV2FpdCFcIiB2YXJpYW50PVwibGFuZGluZ1wiIHNlcGFyYXRvcj17dHJ1ZX0gLz5cclxuICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT17c3R5bGVzWydsYW5kaW5nLWNvbm5lY3Rpb24tc2VjdGlvbiddfSBpZD0nZ2FsbGVyeSc+XHJcbiAgICAgICAgICAgIDxXb3JkU3RhZ2dlciBhcz0naDInIGNsYXNzTmFtZT17c3R5bGVzWydsYW5kaW5nLWNvbm5lY3Rpb24tdGl0bGUnXX0gYmFzZURlbGF5PXtBTklNQVRJT05fU1BFRURTLmhlYWRpbmcuYmFzZURlbGF5fSBzdGFnZ2VyPXtBTklNQVRJT05fU1BFRURTLmhlYWRpbmcuc3RlcERlbGF5fT4gRGVzaWduZWQgPHNwYW4+YXJvdW5kIGNvbm5lY3Rpb248L3NwYW4+PC9Xb3JkU3RhZ2dlcj5cclxuICAgICAgICAgICAgey8qIERlc2t0b3A6IHJlYWN0LXJlc3BvbnNpdmUtY2Fyb3VzZWwgKi99XHJcbiAgICAgICAgICAgIDxkaXYgcmVmPXtlbWJsYVJlZn0gY2xhc3NOYW1lPXtzdHlsZXNbJ2xhbmRpbmctY29ubmVjdGlvbi1ncmlkJ119PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbJ2xhbmRpbmctY29ubmVjdGlvbi10cmFjayddfT5cclxuICAgICAgICAgICAgICAgIHtjb25uZWN0aW9uSW1hZ2VzRHVwLm1hcCgoaXQsIGluZGV4KSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgIDxkaXYga2V5PXtpdC5pZCA/PyBpbmRleH0gY2xhc3NOYW1lPXtzdHlsZXNbJ2xhbmRpbmctY29ubmVjdGlvbi1pdGVtJ119PlxyXG4gICAgICAgICAgICAgICAgICAgIDxJbWFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgc3JjPXtpdC5zcmN9XHJcbiAgICAgICAgICAgICAgICAgICAgICBhbHQ9e2l0LmFsdH1cclxuICAgICAgICAgICAgICAgICAgICAgIGZpbGxcclxuICAgICAgICAgICAgICAgICAgICAgIHNpemVzPVwiKG1heC13aWR0aDogNDQwcHgpIDEwMHZ3LCAobWF4LXdpZHRoOiAxMDAwcHgpIDUwdncsIDQ4MHB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzWydsYW5kaW5nLWNvbm5lY3Rpb24taW1hZ2UnXX1cclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIHsvKiBNb2JpbGU6IHRocmVlIGVtYmxhIGNhcm91c2Vscywgb25lIHBlciBpbWFnZSBjb2x1bW4gKi99XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbJ2xhbmRpbmctY29ubmVjdGlvbi1tb2JpbGUnXX0+XHJcbiAgICAgICAgICAgICAge2Nvbm5lY3Rpb25Db2x1bW5zLm1hcCgoY29sdW1uLCBjb2xJbmRleCkgPT4gKFxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICBrZXk9e2NvbEluZGV4fVxyXG4gICAgICAgICAgICAgICAgICByZWY9e2Nvbm5Nb2JpbGVSZWZzW2NvbEluZGV4XX1cclxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbJ2xhbmRpbmctY29ubmVjdGlvbi1tb2JpbGUtdmlld3BvcnQnXX1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snbGFuZGluZy1jb25uZWN0aW9uLW1vYmlsZS1jb250YWluZXInXX0+XHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbi5tYXAoKGl0LCBpbmRleCkgPT4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBrZXk9e2l0LmlkID8/IGluZGV4fSBjbGFzc05hbWU9e3N0eWxlc1snbGFuZGluZy1jb25uZWN0aW9uLWl0ZW0nXX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxJbWFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgI
1HNyYz17aXQuc3JjfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD17aXQuYWx0fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplcz1cIihtYXgtd2lkdGg6IDQ0MHB4KSA2MHZ3LCAyODBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbJ2xhbmRpbmctY29ubmVjdGlvbi1pbWFnZSddfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAge3NlY3Rpb25zWzddICYmIChcclxuICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPXtzdHlsZXNbJ2xhbmRpbmctYmx1ZWJlcnJ5LWRpZmZlcmVudCddfT5cclxuICAgICAgICAgICAgICA8SW1hZ2UgcXVhbGl0eT17MTAwfSB3aWR0aD17ODAwfSBoZWlnaHQ9ezEwMH0gbG9hZGluZz1cImVhZ2VyXCIgc3JjPVwiL2ltYWdlcy9ibHVlX2JlcnJ5LnBuZ1wiIGFsdD1cIkJsdWViZXJyeVwiIGNsYXNzTmFtZT17c3R5bGVzWydsYW5kaW5nLWJsdWViZXJyeS1kaWZmZXJlbnQtLWJsdWViZXJyeSddfSAvPlxyXG4gICAgICAgICAgICAgIDxHZW5lcmFsU2VjdGlvbiBzZWN0aW9uPXtzZWN0aW9uc1s3XX0gcGFnZVNsdWc9XCJsYW5kaW5nXCIgc2VjdGlvbk5hbWU9XCJibHVlYmVycnktZGlmZmVyZW50XCIgb25CdXR0b25DbGljaz17aGFuZGxlU2VjdGlvbkJ1dHRvbkNsaWNrfSAvPlxyXG4gICAgICAgICAgICAgIDxJbWFnZSBxdWFsaXR5PXsxMDB9IHdpZHRoPXs4MDB9IGhlaWdodD17MTAwfSBsb2FkaW5nPVwiZWFnZXJcIiBzcmM9XCIvaW1hZ2VzL2JsdWVfYmVycnkucG5nXCIgYWx0PVwiQmx1ZWJlcnJ5XCIgY2xhc3NOYW1lPXtzdHlsZXNbJ2xhbmRpbmctYmx1ZWJlcnJ5LWRpZmZlcmVudC0tYmx1ZWJlcnJ5LTInXX0gLz5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbJ2xhbmRpbmctcmV2aWV3cy1hbmQtY29udGFjdC1zZWN0aW9uJ119PlxyXG4gICAgICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9e3N0eWxlc1snbGFuZGluZy1yZXZpZXdzLXNlY3Rpb24nXX0gaWQ9J3Jldmlld3MnPlxyXG4gICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9e3N0eWxlc1snbGFuZGluZy1yZXZpZXdzLXRpdGxlJ119PmxvdmVkIGJ5IG91ciBndWVzdHM8L2gyPlxyXG4gICAgICAgICAgICAgIDxkaXYgcmVmPXtyZXZpZXdzUmVmfSBjbGFzc05hbWU9e3N0eWxlc1snbGFuZGluZy1yZXZpZXdzLWdyaWQnXX0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydsYW5kaW5nLXJldmlld3MtdHJhY2snXX0+XHJcbiAgICAgICAgICAgICAgICAgIHsvKiBEdXBsaWNhdGVkIHNvIHRoZSBhdXRvLXNjcm9sbCBsb29wcyBzZWFtbGVzc2x5LiAqL31cclxuICAgICAgICAgICAgICAgICAge1suLi5yZXZpZXdzTGlzdCwgLi4ucmV2aWV3c0xpc3RdLm1hcCgocmV2aWV3LCBpKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhcnMgPSBNYXRoLm1heCgwLCBNYXRoLm1pbig1LCBOdW1iZXIocmV2aWV3LnJhdGluZykgfHwgMCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZSBrZXk9e2Ake3Jldmlldy5pZH0tJHtpfWB9IGNsYXNzTmFtZT17c3R5bGVzWydsYW5kaW5nLXJldmlld3MtaXRlbSddfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3Jldmlldy5jdXN0b21lcj8uaW1nVXJsICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydsYW5kaW5nLXJldmlld3MtaW1hZ2Utd3JhcCddfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbWFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9e3Jldmlldy5jdXN0b21lci5pbWdVcmx9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD17cmV2aWV3LmN1c3RvbWVyPy5uYW1lIHx8ICcnfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVzPVwiKG1heC13aWR0aDogNDQwcHgpIDEwMHZ3LCAobWF4LXdpZHRoOiAxMDAwcHgpIDUwdncsIDM2MHB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbJ2xhbmRpbmctcmV2aWV3cy1pbWFnZSddfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snbGFuZGluZy1yZXZpZXdzLXN0YXJzJ119IGFyaWEtbGFiZWw9e2Ake3N0YXJzfSBvdXQgb2YgNWB9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsn4piFJy5yZXBlYXQoc3RhcnMpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17c3R5bGVzWydsYW5kaW5nLXJldmlld3Mtc3RhcnMtZW1wdHknXX0+eyfimIUnLnJlcGVhdCg1IC0gc3RhcnMpfTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT17c3R5bGVzWydsYW5kaW5nLXJldmlld3MtZGVzY3JpcHRpb24nXX0+e3Jldmlldy5kZXNjcmlwdGlvbn08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT17c3R5bGVzWydsYW5kaW5nLXJldmlld3MtZm9vdGVyJ119PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17c3R5bGVzWydsYW5kaW5nLXJldmlld3MtYXV0aG9yJ119PntyZXZpZXcuY3VzdG9tZXI/Lm5hbWV9PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgI
1HtyZXZpZXcuc2hvcE5hbWUgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtzdHlsZXNbJ2xhbmRpbmctcmV2aWV3cy1zZXAnXX0+LDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtzdHlsZXNbJ2xhbmRpbmctcmV2aWV3cy1sb2NhdGlvbiddfT57cmV2aWV3LnNob3BOYW1lfTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT5cclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIjXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzWydsYW5kaW5nLXJldmlld3MtbGluayddfVxyXG4gICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHsgZS5wcmV2ZW50RGVmYXVsdCgpOyBzZXRSZXZpZXdQaWNrZXJPcGVuKHRydWUpOyB9fVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxXb3JkU3RhZ2dlciBhcz1cInNwYW5cIiBiYXNlRGVsYXk9e0FOSU1BVElPTl9TUEVFRFMucGFyYWdyYXBoLmJhc2VEZWxheX0gc3RhZ2dlcj17QU5JTUFUSU9OX1NQRUVEUy5wYXJhZ3JhcGguc3RlcERlbGF5fT5cclxuICAgICAgICAgICAgICAgICAgTGVhdmUgYSByZXZpZXdcclxuICAgICAgICAgICAgICAgIDwvV29yZFN0YWdnZXI+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIHtzZWN0aW9uc1s4XSAmJiAoXHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPXtzdHlsZXNbJ2NvbnRhY3QtdXMtc2VjdGlvbiddfT5cclxuICAgICAgICAgICAgICAgIDxHZW5lcmFsU2VjdGlvbiBzZWN0aW9uPXtzZWN0aW9uc1s4XX0gcGFnZVNsdWc9XCJsYW5kaW5nXCIgc2VjdGlvbk5hbWU9XCJjb250YWN0LXVzXCIgb25CdXR0b25DbGljaz17aGFuZGxlU2VjdGlvbkJ1dHRvbkNsaWNrfSAvPlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgKX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPXtzdHlsZXNbJ2luc3RhLWdhbGxlcnktc2VjdGlvbiddfT5cclxuICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT17c3R5bGVzWydpbnN0YS1nYWxsZXJ5LXNlY3Rpb24tdGl0bGUnXX0+Rm9sbG93IFRoZSBNb3JuaW5nIEVuZXJneTwvaDI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbJ2luc3RhLWdhbGxlcnktbWFycXVlZSddfSBhcmlhLWhpZGRlbj1cInRydWVcIiByZWY9e2luc3RhR2FsbGVyeVJlZn0+XHJcbiAgICAgICAgICAgICAge2luc3RhQ29sdW1ucy5tYXAoKGNvbCwgY29sSW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGR1cmF0aW9uID0gTWF0aC5tYXgoSU5TVEFfTUlOX0RVUkFUSU9OLCBjb2wubGVuZ3RoICogSU5TVEFfU0VDT05EU19QRVJfSU1BR0UpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGtleT17Y29sSW5kZXh9XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtzdHlsZXNbJ2luc3RhLWdhbGxlcnktbWFycXVlZS1yb3cnXX0gJHtjb2xJbmRleCAlIDIgPT09IDEgPyBzdHlsZXNbJ2luc3RhLWdhbGxlcnktbWFycXVlZS1yb3ctLXJldmVyc2UnXSA6ICcnfWB9XHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1snaW5zdGEtZ2FsbGVyeS1tYXJxdWVlLXRyYWNrJ119XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBhbmltYXRpb25EdXJhdGlvbjogYCR7ZHVyYXRpb259c2AgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7Wy4uLmNvbCwgLi4uY29sXS5tYXAoKHNyYywgaSkgPT4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGtleT17aX0gY2xhc3NOYW1lPXtzdHlsZXNbJ2luc3RhLWdhbGxlcnktaXRlbSddfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8SW1hZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz17c3JjfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiSW5zdGFncmFtIFBvc3RzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVzPVwiKG1heC13aWR0aDogNDQwcHgpIDYwdncsIDM0OXB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzWydpbnN0YS1nYWxsZXJ5LWltYWdlJ119XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGEgaHJlZj0naHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS9ibHVlYmVycnlncmlsbC8nIGNsYXNzTmFtZT17c3R5bGVzWydpbnN0YS1nYWxsZXJ5LXNlY3Rpb24tbGluayddfT5Gb2xsb3cgdXMgb24gSW5zdGFncmFtPC9hPlxyXG4gICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAge3NlY3Rpb25zWzldICYmIChcclxuICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPXtzdHlsZXNbJ2JyZWFrZmFzdC1zZWN0aW9uJ119PlxyXG4gICAgICAgICAgICAgIDxHZW5lcmFsU2VjdGlvbiBzZWN0aW9uPXtzZWN0aW9uc1s5XX0gcGFnZVNsdWc9XCJsYW5kaW5nXCIgc2VjdGlvbk5hbWU9XCJicmVha2Zhc3Qtc2VjdGlvblwiIG1lZGlhVXJsPVwiL2ltYWdlcy9ibHVlX2JlcnJ5LnBuZ1wiIG9uQnV0dG9uQ2xpY2s9e2hhbmRsZVNlY3Rpb25CdXR0b25DbGlja30gLz5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICA8L21haW4+XHJcbiAgICAgIDwvTGF5b3V0ID5cclxuICAgICAgPFNob3BQaWNrZXJQb3B1cFxyXG4gICAgICAgIG9wZW49e3BpY2tlclRhcmdldCAhPT0gbnVsbH1cclxuICAgICAgICBvbkNsb3NlPXsoKSA9PiBzZXRQaWNrZXJUYXJnZXQobnVsbCl9XHJcbiAgICAgICAgdGFyZ2V0UGFnZT17cGlja2VyVGFyZ2V0fVxyXG4gICAgICAgI
1HRpdGxlPVwiUGljayBhIGxvY2F0aW9uIHRvIHZpZXcgdGhlIG1lbnVcIlxyXG4gICAgICAvPlxyXG4gICAgICA8U2hvcFBpY2tlclBvcHVwXHJcbiAgICAgICAgb3Blbj17cmV2aWV3UGlja2VyT3Blbn1cclxuICAgICAgICBvbkNsb3NlPXsoKSA9PiBzZXRSZXZpZXdQaWNrZXJPcGVuKGZhbHNlKX1cclxuICAgICAgICBvblNlbGVjdD17aGFuZGxlUmV2aWV3U2hvcFBpY2tlZH1cclxuICAgICAgICB0aXRsZT1cIlBpY2sgYSBsb2NhdGlvbiB0byBsZWF2ZSBhIHJldmlld1wiXHJcbiAgICAgIC8+XHJcbiAgICAgIDxTaG9wUGlja2VyUG9wdXBcclxuICAgICAgICBvcGVuPXttYXBzUGlja2VyT3Blbn1cclxuICAgICAgICBvbkNsb3NlPXsoKSA9PiBzZXRNYXBzUGlja2VyT3BlbihmYWxzZSl9XHJcbiAgICAgICAgb25TZWxlY3Q9e2hhbmRsZU1hcHNTaG9wUGlja2VkfVxyXG4gICAgICAgIHRpdGxlPVwiUGljayBhIGxvY2F0aW9uIHRvIHZpZXcgb24gdGhlIG1hcFwiXHJcbiAgICAgIC8+XHJcbiAgICA8Lz5cclxuICApO1xyXG59XHJcbiJdLCJuYW1lcyI6WyJJbWFnZSIsInN0eWxlcyIsInNoaW1tZXIiLCJ1c2VTY3JlZW5TaXplIiwiZ2V0TWVkaWFVcmxGb3JTaXplIiwiV29yZFN0YWdnZXIiLCJBTklNQVRJT05fU1BFRURTIiwiaXNWaWRlb1VybCIsInVybCIsInRlc3QiLCJjeCIsImJsb2NrIiwidmFyaWFudCIsInBhZ2VOYW1lIiwic2VjdGlvbk5hbWUiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsIlNlY3Rpb25NZWRpYSIsInNlY3Rpb24iLCJzY3JlZW5TaXplIiwibWVkaWFVcmwiLCJtZWRpYVVybE92ZXJyaWRlIiwiaXNTbWFsbFNjcmVlbiIsInZpZGVvIiwic3JjIiwiY2xhc3NOYW1lIiwiYXV0b1BsYXkiLCJtdXRlZCIsImxvb3AiLCJwbGF5c0lubGluZSIsImFsdCIsImFsdEltYWdlVHh0IiwidGl0bGUiLCJ3aWR0aCIsImhlaWdodCIsInF1YWxpdHkiLCJsb2FkaW5nIiwic2l6ZXMiLCJwbGFjZWhvbGRlciIsImJsdXJEYXRhVVJMIiwiQmFzZVNlY3Rpb25MYXlvdXQiLCJjaGlsZHJlbiIsImRpdiIsImRhdGEtcGFnZSIsImRhdGEtdmFyaWFudCIsImRhdGEtc2VjdGlvbiIsImFzIiwiYmFzZURlbGF5IiwiaGVhZGluZyIsInN0YWdnZXIiLCJzdGVwRGVsYXkiLCJzdWJUaXRsZSIsInBhcmFncmFwaCIsImRlc2NyaXB0aW9uIiwiRGVmYXVsdFNlY3Rpb24iLCJwcm9wcyIsIkJ1dHRvblNlY3Rpb24iLCJvbkJ1dHRvbkNsaWNrIiwiYnV0dG9uIiwibGFiZWwiLCJhIiwiaHJlZiIsIm9uQ2xpY2siLCJlIiwidW5kZWZpbmVkIiwiSWNvbkxpc3RTZWN0aW9uIiwidWwiLCJidWxsZXRzIiwibWFwIiwiYnVsbGV0IiwiaWR4IiwibGkiLCJpY29uIiwiaW1nIiwiYXJpYS1oaWRkZW4iLCJzcGFuIiwidGV4dCIsIlNFQ1RJT05fVkFSSUFOVFMiLCJpY29uTGlzdCIsImRlZmF1bHQiLCJHZW5lcmFsU2VjdGlvbiIsInBhZ2VTbHVnIiwibWVkaWFVcmxfc20iLCJtZWRpYVVybF9tZCIsIm1lcmdlZFNlY3Rpb24iLCJTZWN0aW9uVmFyaWFudCIsInR5cGUiLCJheGlvcyIsImdldEFwaVVybCIsImhhbmRsZUFwaUVycm9yIiwiYXhpb3NJbnN0YW5jZSIsImNyZWF0ZSIsImhlYWRlcnMiLCJQYWdlQXBpIiwiZ2V0UHVibGljUGFnZURhdGEiLCJwYWdlVHlwZSIsInByb2plY3QiLCJyZXNwb25zZSIsImdldCIsImRhdGEiLCJnZXRQdWJsaWNIb21lUGFnZSIsImdldFB1YmxpY0ZhcXNQYWdlIiwiZ2V0U2hvcHNEYXRhIiwiZ2V0U2hvcEJ5SWQiLCJzaG9wSWQiLCJnZXRQdWJsaWNNZW51UGFnZSIsImdldFJlc3RhdXJhbnRNZW51IiwiZ2V0R2xvYmFsUGFnZUJ5VHlwZSIsImdldEFib3V0UGFnZSIsImdldENvbnRhY3RQYWdlIiwiZ2V0UHJpdmFjeVBvbGljeVBhZ2UiLCJnZXRUZXJtc0FuZENvbmRpdGlvbnNQYWdlIiwiZ2V0Q2FuY2VsbGF0aW9uUG9saWN5UGFnZSIsImdldEJsb2dQYWdlIiwiZ2V0SW5zdGFncmFtRmVlZCIsInN1YnNjcmliZVRvTmV3c2xldHRlciIsImVtYWlsIiwicG9zdCIsInNlbmRFbWFpbE5vdGlmaWNhdGlvbiIsImdldFB1YmxpY0hvbWVQYWdlRGF0YSIsImdldFB1YmxpY0ZhcXNQYWdlRGF0YSIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlUm91dGVyIiwidXNlRGlzcGF0Y2giLCJzZXRDdXJyZW50U2hvcCIsIkR5bmFtaWNIZWFkIiwic2x1Z2lmeSIsInJldmlld1VybEZvclNob3AiLCJkaXJlY3Rpb25zVXJsRm9yU2hvcCIsInBpY2tTaG9wc1NlbyIsInBpY2tNZXRhZGF0YVNlbyIsIkxheW91dCIsIkhlcm9TZWN0aW9uIiwiSW50cm8iLCJMaW5rIiwiU2hvcFBpY2tlclBvcHVwIiwidXNlRW1ibGFDYXJvdXNlbCIsIkF1dG9TY3JvbGwiLCJjbHN4IiwiZHluYW1pYyIsIkxvY2F0aW9uc1NlY3Rpb24iLCJzc3IiLCJNZW51Q2Fyb3VzZWwiLCJzcGxpdFNob3J0QWRkcmVzcyIsInMiLCJpIiwiaW5kZXhPZiIsInRyaW0iLCJzbGljZSIsIkxhbmRpbmdQYWdlIiwic2hvcHMiLCJob21lUGFnZSIsImluc3RhZ3JhbVVybHMiLCJyb3V0ZXIiLCJkaXNwYXRjaCIsImNvbnRhaW5lclJlZiIsImNpcmNsZVJlZnMiLCJwcmV2Qm9keUNvbG9yUmVmIiwidHJhbnNpdGlvbkVuZEhhbmRsZWRSZWYiLCJwbGF5SW50cm8iLCJzZXRQbGF5SW50cm8iLCJub0dyb3ciLCJzZXROb0dyb3ciLCJsYW5kaW5nQ29sb3JTaG91bGRDaGFuZ2UiLCJzZXRMYW5kaW5nQ29sb3JTaG91bGRDaGFuZ2UiLCJjaXJjbGVTaG91bGRTaHJpbmsiLCJzZXRDaXJjbGVTaG91bGRTaHJpbmsiLCJyYWRpaSIsInNldFJhZGlpIiwib3V0ZXIiLCJpbm5lciIsInNlbGVjdGVkU2hvcElkIiwic2V0U2VsZWN0ZWRTaG9wSWQiLCJwaWNrZXJUYXJnZXQiLCJzZXRQaWNrZXJUYXJnZXQiLCJyZXZpZXdQaWNrZXJPcGVuIiwic2V0UmV2aWV3UGlja2VyT3BlbiIsIm1hcHNQaWNrZXJPcGVuIiwic2V0TWFwc1BpY2tlck9wZW4iLCJtb3VudEhvbWVQYWdlIiwic2V0TW91bnRIb21lUGFnZSIsImhpZGVMYW5kaW5nIiwic2V0SGlkZUxhbmRpbmciLCJpbnN0YUdhbGxlcnlSZWYiLCJpbnN0YUNvbHVtbkNvdW50Iiwic2V0SW5zdGFDb2x1bW5Db3VudCIsInRyYW5zaXRpb25TdGF0ZSIsInNldFRyYW5zaXRpb25TdGF0ZSIsImFjdGl2ZSIsImdvIiwicmVjdCIsImVuZFJlY3QiLCJpbWFnZSIsInNob3AiLCJuYXZpZ2F0ZWQiLCJtb3ZlVXBMYW5kaW5nQ2lyY2xlTG9nbyIsInNldE1vdmVVcExhbmRpbmdDaXJjbGVMb2dvIiwidGltZU9mQ2lyY2xlMSIsInRpbWVPZkN
1pcmNsZTIiLCJ0aW1lT2ZDaXJjbGUzIiwidGltZU9mQ2lyY2xlNCIsInRpbWVPZkNpcmNsZTUiLCJ0aW1lT2ZDaXJjbGU2IiwidGltZU9mQ2lyY2xlNyIsInRpbWVPZkNpcmNsZTgiLCJ0aW1lQ2lyY2xlT3BlbkluU2VjIiwidGltZUNpcmNsZU9wZW5Jbk1zIiwiaGVyb0JhY2tncm91bmRCeVNob3AiLCJtIiwiZm9yRWFjaCIsImlkIiwicGFnZXMiLCJsZW5ndGgiLCJmaXJzdFBhZ2UiLCJzZWN0aW9uSGVyb3MiLCJmaXJzdFNlY3Rpb25IZXJvIiwicHJlbG9hZEltYWdlIiwid2luZG93IiwiZGVjb2RpbmciLCJmaXJzdCIsInNob3BJbWFnZSIsInQiLCJzZXRUaW1lb3V0IiwiY2xlYXJUaW1lb3V0IiwicmVhZFJhZGlpRnJvbUNTUyIsInJzIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwicGFyc2VGbG9hdCIsImdldFByb3BlcnR5VmFsdWUiLCJwcmV2IiwiaW50cm9JZCIsInJhZklkIiwib25SZXNpemUiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiYm9keSIsImNsYXNzTGlzdCIsInJlbW92ZSIsIm9uIiwiY3VycmVudCIsInN0eWxlIiwiYmFja2dyb3VuZENvbG9yIiwiaGFuZGxlQ2VudGVyYWxMb2dvQ2xpY2siLCJsb2NhdGlvbiIsInJlbG9hZCIsImhhbmRsZVNlY3Rpb25CdXR0b25DbGljayIsInByZXZlbnREZWZhdWx0IiwidGFyZ2V0IiwicmVwbGFjZSIsImhhbmRsZVJldmlld1Nob3BQaWNrZWQiLCJvcGVuIiwiaGFuZGxlTWFwc1Nob3BQaWNrZWQiLCJmaW5pc2hUcmFuc2l0aW9uIiwic2hvcE5hbWUiLCJuYW1lIiwicHVzaCIsImhhbmRsZUNpcmNsZUNsaWNrIiwiY2lyY2xlRWwiLCJzdGFydFJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJpbWFnZVVybCIsIm1hdGNoTWVkaWEiLCJtYXRjaGVzIiwiYWRkIiwiaGVyb0VsIiwicXVlcnlTZWxlY3RvciIsImxhbmRpbmdFbCIsImhlcm9SZWN0IiwibGFuZGluZ0giLCJvZmZzZXRIZWlnaHQiLCJzYWZlRW5kUmVjdCIsImxlZnQiLCJ0b3AiLCJNYXRoIiwibWF4IiwiaW5uZXJXaWR0aCIsImlubmVySGVpZ2h0Iiwib25UcmFuc2l0aW9uRW5kIiwicHJvcGVydHlOYW1lIiwiZGVsYXlzIiwiY3kiLCJwb2xhciIsImRlZyIsInIiLCJjeDAiLCJjeTAiLCJyYWQiLCJQSSIsIngiLCJjb3MiLCJ5Iiwic2luIiwiY3VydmVQYXRoIiwiZHgiLCJkeSIsImJ4IiwiYnkiLCJjMXgiLCJjMXkiLCJjMngiLCJjMnkiLCJ0YXJnZXRzIiwiYmVuZFgiLCJiZW5kWSIsImJlbmRzIiwiaW5pdFNjYWxlcyIsIm1pZFNjYWxlcyIsInByZWxvYWRMaW5rcyIsInVybHMiLCJ1IiwiQXJyYXkiLCJmcm9tIiwiU2V0IiwiZWFybGllc3REZWxheSIsIm1pbiIsIm1pZEJsYXN0RGVsYXlTZWMiLCJvdmVybGF5U3R5bGUiLCJpbnRybyIsImhlcm9IYXNUaXRsZSIsInNvbWUiLCJoIiwic2VjdGlvbnMiLCJzaWduYXR1cmVEaXNoZXNTbGlkZXMiLCJjYXJvdXNlbFNlY3Rpb25zIiwidG9JdGVtIiwiZGVzYyIsImJ1aWxkU2xpZGUiLCJzZWNvbmQiLCJpdGVtcyIsImJnMSIsImJnMiIsImNvbm5lY3Rpb25JbWFnZXMiLCJpdCIsIklOU1RBX1RBUkdFVF9DT0xVTU5fV0lEVEgiLCJJTlNUQV9NSU5fQ09MVU1OUyIsIklOU1RBX1NFQ09ORFNfUEVSX0lNQUdFIiwiSU5TVEFfTUlOX0RVUkFUSU9OIiwiZWwiLCJjb21wdXRlIiwiY291bnQiLCJmbG9vciIsIm9mZnNldFdpZHRoIiwib2JzZXJ2ZXIiLCJSZXNpemVPYnNlcnZlciIsImVudHJpZXMiLCJlbnRyeSIsImNvbnRlbnRSZWN0Iiwib2JzZXJ2ZSIsImRpc2Nvbm5lY3QiLCJpbnN0YUNvbHVtbnMiLCJsaXZlIiwic291cmNlIiwicG9vbCIsInBlckNvbHVtbiIsImNlaWwiLCJjb2x1bW5zIiwicmV2aWV3c0xpc3QiLCJmbGF0TWFwIiwicmV2aWV3cyIsImNvbm5lY3Rpb25JbWFnZXNEdXAiLCJfIiwiZHVwIiwiY29ubmVjdGlvbkNvbHVtbnMiLCJjb2wiLCJlbWJsYVJlZiIsImRyYWdGcmVlIiwic3BlZWQiLCJzdG9wT25JbnRlcmFjdGlvbiIsInN0b3BPbk1vdXNlRW50ZXIiLCJjb25uTW9iaWxlUmVmMSIsImNvbm5Nb2JpbGVSZWYyIiwiZGlyZWN0aW9uIiwiY29ubk1vYmlsZVJlZjMiLCJjb25uTW9iaWxlUmVmcyIsInJldmlld3NSZWYiLCJtZXRhZGF0YSIsImhlcm9JbWFnZSIsIm1haW4iLCJkYXRhLWhlcm8tdGFyZ2V0IiwicG9zaXRpb24iLCJoZWFkaW5nTGV2ZWwiLCJ0aXRsZVRhZyIsInNsaWRlcyIsInN1YnRpdGxlIiwic2VwYXJhdG9yIiwicmVmIiwiaW5kZXgiLCJmaWxsIiwiY29sdW1uIiwiY29sSW5kZXgiLCJoMiIsInJldmlldyIsInN0YXJzIiwiTnVtYmVyIiwicmF0aW5nIiwiYXJ0aWNsZSIsImN1c3RvbWVyIiwiaW1nVXJsIiwiYXJpYS1sYWJlbCIsInJlcGVhdCIsInAiLCJkdXJhdGlvbiIsImFuaW1hdGlvbkR1cmF0aW9uIiwib25DbG9zZSIsInRhcmdldFBhZ2UiLCJvblNlbGVjdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///752\n'))},2102:(module,__unused_webpack_exports,__webpack_require__)=>{eval(__webpack_require__.ts('// extracted by mini-css-extract-plugin\nmodule.exports = {"section-general-outer":"generalSection_section-general-outer__Uuanm","section-general":"generalSection_section-general__IysHH","section-general-media":"generalSection_section-general-media___pr6Y","section-general-image":"generalSection_section-general-image__ctTfp","section-general-contents":"generalSection_section-general-contents__AGybB","section-general-button":"generalSection_section-general-button__0sfKs","section-general-five":"generalSection_section-general-five__EAaoA","section-general--breakfast-section":"generalSection_section-general--breakfast-section___Bb_i","section-general--contact-us":"generalSection_section-general--contact-us__gbD7v","section-general-title":"generalSection_section-general-title__dY8wE","section-general--blueberry-different":"generalSection_section-general--blueberry-different__Gdtiq","section-general-description":"generalSection_section-general-description__dnCAX","section-general-link":"generalSection_section-general-link__3Za1s","section-general-bullets":"generalSection_section-general-bullets__x3T4E","section-general-bullet-icon--wrapper":"generalSection_section-general-bullet-icon--wrapper___2HnK","section-general-bullet-text":"generalSection_section-general-bullet-text__QJ52_","section-general--one":"generalSection_section-general--one__lwTK9","section-general--two":"generalSection_section-general--two__NfJ43","section-general-subTitle":"generalSection_section-general-subTitle__HIgJ2"};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjEwMi5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBLGtCQUFrQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvc3R5bGVzL2NvbXBvbmVudHMvZ2VuZXJhbFNlY3Rpb24ubW9kdWxlLmNzcz9mZWRhIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxubW9kdWxlLmV4cG9ydHMgPSB7XCJzZWN0aW9uLWdlbmVyYWwtb3V0ZXJcIjpcImdlbmVyYWxTZWN0aW9uX3NlY3Rpb24tZ2VuZXJhbC1vdXRlcl9fVXVhbm1cIixcInNlY3Rpb24tZ2VuZXJhbFwiOlwiZ2VuZXJhbFNlY3Rpb25fc2VjdGlvbi1nZW5lcmFsX19JeXNISFwiLFwic2VjdGlvbi1nZW5lcmFsLW1lZGlhXCI6XCJnZW5lcmFsU2VjdGlvbl9zZWN0aW9uLWdlbmVyYWwtbWVkaWFfX19wcjZZXCIsXCJzZWN0aW9uLWdlbmVyYWwtaW1hZ2VcIjpcImdlbmVyYWxTZWN0aW9uX3NlY3Rpb24tZ2VuZXJhbC1pbWFnZV9fY3RUZnBcIixcInNlY3Rpb24tZ2VuZXJhbC1jb250ZW50c1wiOlwiZ2VuZXJhbFNlY3Rpb25fc2VjdGlvbi1nZW5lcmFsLWNvbnRlbn
1RzX19BR3liQlwiLFwic2VjdGlvbi1nZW5lcmFsLWJ1dHRvblwiOlwiZ2VuZXJhbFNlY3Rpb25fc2VjdGlvbi1nZW5lcmFsLWJ1dHRvbl9fMHNmS3NcIixcInNlY3Rpb24tZ2VuZXJhbC1maXZlXCI6XCJnZW5lcmFsU2VjdGlvbl9zZWN0aW9uLWdlbmVyYWwtZml2ZV9fRUFhb0FcIixcInNlY3Rpb24tZ2VuZXJhbC0tYnJlYWtmYXN0LXNlY3Rpb25cIjpcImdlbmVyYWxTZWN0aW9uX3NlY3Rpb24tZ2VuZXJhbC0tYnJlYWtmYXN0LXNlY3Rpb25fX19CYl9pXCIsXCJzZWN0aW9uLWdlbmVyYWwtLWNvbnRhY3QtdXNcIjpcImdlbmVyYWxTZWN0aW9uX3NlY3Rpb24tZ2VuZXJhbC0tY29udGFjdC11c19fZ2JEN3ZcIixcInNlY3Rpb24tZ2VuZXJhbC10aXRsZVwiOlwiZ2VuZXJhbFNlY3Rpb25fc2VjdGlvbi1nZW5lcmFsLXRpdGxlX19kWTh3RVwiLFwic2VjdGlvbi1nZW5lcmFsLS1ibHVlYmVycnktZGlmZmVyZW50XCI6XCJnZW5lcmFsU2VjdGlvbl9zZWN0aW9uLWdlbmVyYWwtLWJsdWViZXJyeS1kaWZmZXJlbnRfX0dkdGlxXCIsXCJzZWN0aW9uLWdlbmVyYWwtZGVzY3JpcHRpb25cIjpcImdlbmVyYWxTZWN0aW9uX3NlY3Rpb24tZ2VuZXJhbC1kZXNjcmlwdGlvbl9fZG5DQVhcIixcInNlY3Rpb24tZ2VuZXJhbC1saW5rXCI6XCJnZW5lcmFsU2VjdGlvbl9zZWN0aW9uLWdlbmVyYWwtbGlua19fM1phMXNcIixcInNlY3Rpb24tZ2VuZXJhbC1idWxsZXRzXCI6XCJnZW5lcmFsU2VjdGlvbl9zZWN0aW9uLWdlbmVyYWwtYnVsbGV0c19feDNUNEVcIixcInNlY3Rpb24tZ2VuZXJhbC1idWxsZXQtaWNvbi0td3JhcHBlclwiOlwiZ2VuZXJhbFNlY3Rpb25fc2VjdGlvbi1nZW5lcmFsLWJ1bGxldC1pY29uLS13cmFwcGVyX19fMkhuS1wiLFwic2VjdGlvbi1nZW5lcmFsLWJ1bGxldC10ZXh0XCI6XCJnZW5lcmFsU2VjdGlvbl9zZWN0aW9uLWdlbmVyYWwtYnVsbGV0LXRleHRfX1FKNTJfXCIsXCJzZWN0aW9uLWdlbmVyYWwtLW9uZVwiOlwiZ2VuZXJhbFNlY3Rpb25fc2VjdGlvbi1nZW5lcmFsLS1vbmVfX2x3VEs5XCIsXCJzZWN0aW9uLWdlbmVyYWwtLXR3b1wiOlwiZ2VuZXJhbFNlY3Rpb25fc2VjdGlvbi1nZW5lcmFsLS10d29fX05mSjQzXCIsXCJzZWN0aW9uLWdlbmVyYWwtc3ViVGl0bGVcIjpcImdlbmVyYWxTZWN0aW9uX3NlY3Rpb24tZ2VuZXJhbC1zdWJUaXRsZV9fSElnSjJcIn07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///2102\n'))},2936:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{eval(__webpack_require__.ts('\n (window.__NEXT_P = window.__NEXT_P || []).push([\n "/",\n function () {\n return __webpack_require__(752);\n }\n ]);\n if(false) {}\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjkzNi5qcyIsIm1hcHBpbmdzIjoiO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxtQkFBTyxDQUFDLEdBQTZCO0FBQ3BEO0FBQ0E7QUFDQSxPQUFPLEtBQVUsRUFBRSxFQUlkO0FBQ0wiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLz9iY2ZmIl0sInNvdXJjZXNDb250ZW50IjpbIlxuICAgICh3aW5kb3cuX19ORVhUX1AgPSB3aW5kb3cuX19ORVhUX1AgfHwgW10pLnB1c2goW1xuICAgICAgXCIvXCIsXG4gICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiByZXF1aXJlKFwicHJpdmF0ZS1uZXh0LXBhZ2VzL2luZGV4LmpzXCIpO1xuICAgICAgfVxuICAgIF0pO1xuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbiAoKSB7XG4gICAgICAgIHdpbmRvdy5fX05FWFRfUC5wdXNoKFtcIi9cIl0pXG4gICAgICB9KTtcbiAgICB9XG4gICJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///2936\n'))},7387:(module,__unused_webpack_exports,__webpack_require__)=>{eval(__webpack_require__.ts('// extracted by mini-css-extract-plugin\nmodule.exports = {"landing-section":"index_landing-section__X_ErF","fadeIn":"index_fadeIn__ne9RO","landing-container":"index_landing-container__hzE6p","landing-center":"index_landing-center__llLrm","landing":"index_landing__MzUjV","centerExpand":"index_centerExpand__5z1sU","orbit-inner":"index_orbit-inner__j5gcO","orbit-outer":"index_orbit-outer__f5UJV","orbit-outer-most":"index_orbit-outer-most__hIeea","orbitExpand":"index_orbitExpand__IZ5VC","orbitOuterExpand":"index_orbitOuterExpand__ZTGmV","landing-circle":"index_landing-circle___Bzl6","circleInitialExpand":"index_circleInitialExpand__U4O_I","circle5":"index_circle5__ECm_y","circle6":"index_circle6__mWOB4","circle7":"index_circle7__7OXj5","circle8":"index_circle8__I3Fms","play":"index_play__YXCFu","moveOnPath":"index_moveOnPath__GmakE","growOnPath":"index_growOnPath__1LJv5","no-grow":"index_no-grow__FObvT","pause":"index_pause__cfZSG","transition-overlay":"index_transition-overlay__v6QHJ","transition-rect":"index_transition-rect__XCDVT","is-active":"index_is-active__n4t90","transition-content":"index_transition-content__Abp04","transition-hero-wrap":"index_transition-hero-wrap__oGwVB","landing-mid-flash":"index_landing-mid-flash__P0qpP","startCircleShrink":"index_startCircleShrink__gA0ya","moveOnPathOpposite":"index_moveOnPathOpposite__qsVv_","growOnPathOpposite":"index_growOnPathOpposite__xLeII","startLandingColor":"index_startLandingColor__FoFCY","isEntered":"index_isEntered__hKCM9","themeOverlayFade":"index_themeOverlayFade__wLOqQ","circleImg":"index_circleImg__K2Q5U","circleName":"index_circleName__ldk87","landing-center-img":"index_landing-center-img__Ua_YP","landing-center-img-pre":"index_landing-center-img-pre__ox_Fm","landing-center-img-x2":"index_landing-center-img-x2__tiIGU","landing-center-img-x1":"index_landing-center-img-x1__CS49J","landing-center-img-to-Top":"index_landing-center-img-to-Top__kyBJo","seo-nav":"index_seo-nav__YMxSo","seo-nav-content":"index_seo-nav-content__34ADf","landing-center-img-link":"index_landing-center-img-link__hoD_Q","breakfast-section":"index_breakfast-section__nI_sN","landing-about-us":"index_landing-about-us__EbDP6","landing-about-us-title":"index_landing-about-us-title__RdsVJ","landing-about-us-description":"index_landing-about-us-description__utiIf","landing-about-us-slogan":"index_landing-about-us-slogan__x1Srq","landing-about-us--turkey":"index_landing-about-us--turkey__0Pb_h","landing-about-us--radish":"index_landing-about-us--radish__49iBB","landing-blueberry-different":"index_landing-blueberry-different__fzqdl","landing-blueberry-different--blueberry":"index_landing-blueberry-different--blueberry__lqO_E","landing-blueberry-different--blueberry-2":"index_landing-blueberry-different--blueberry-2__fZ_0j","landing-intro":"index_landing-intro__anvY8","landing-intro-menu-link":"index_landing-intro-menu-link__41xm_","landing-locations-cta":"index_landing-locations-cta__a5lBe","insta-gallery-section-link":"index_insta-gallery-section-link__lB7u6","landing-reviews-link":"index_landing-reviews-link__k9ho_","landing-locations":"index_landing-locations__A4I4J","landing-locations-wrapper":"index_landing-locations-wrapper__CDO86","landing-locations-title":"index_landing-locations-title__hg4UZ","landing-locations-subtitle":"index_landing-locations-subtitle__GMVPw","landing-locations-separator":"index_landing-locations-separator__VN2WU","landing-locations-grid":"index_landing-locations-grid__Tf1hn","landing-locations-item":"index_landing-locations-item__58OVP","landing-locations-image-wrap":"index_landing-locations-image-wrap__AuSud","landing-locations-image":"index_landing-locations-image__1_e_5","lumina-station":"index_lumina-station__lRWoG","grand-dunes":"index_grand-dunes__j3FAL","landing-locations-contents":"index_landing-locations-contents__POpvs","landing-locations-contents--inactive":"index_landing-locations-contents--inactive__wkzBw","landing-locations-name-fallback":"index_landing-locations-name-fallback___ddV_","landing-locations-name":"index_landing-locations-name__OTWLf","landing-locations__fallback":"index_landing-locations__fallback__13_o2","landing-locations__divider-wrapper":"index_landing-locations__divider-wrapper__mhEaR","landing-locations__separator":"index_landing-locations__separator__E13DS","landing-locations__fallback-text":"index_landing-locations__fallback-text__yXhOL","landing-locations__name--inactive":"index_landing-locations__name--inactive__Ft9ev","landing-locations__name-bold":"index_landing-locations__name-bold__qhgkA","landing-locations-location":"index_landing-locations-location__wbRiR","landing-reviews-and-contact-section":"index_landing-reviews-and-contact-section__IiiyG","landing-reviews-section":"index_landing-reviews-section__3eaZY","insta-gallery-section":"index_insta-gallery-section__50tkL","insta-gallery-section-title":"index_insta-gallery-section-title__3H2Kn","landing-reviews-title":"index_landing-reviews-title__H3uxt","landing-reviews-grid":"index_landing-reviews-grid__poxJp","landing-reviews-track":"index_landing-reviews-track__Ucm4p","landing-reviews-item":"index_landing-reviews-item__B7FE6","landing-reviews-image-wrap":"index_landing-reviews-image-wrap__R47tA","landing-reviews-image":"index_landing-reviews-image__QL38W","landing-reviews-stars":"index_landing-reviews-stars__fyMrY","landing-reviews-stars-empty":"index_landing-reviews-stars-empty__snLKy","landing-reviews-description":"index_landing-reviews-description__Rsgwo","landing-reviews-footer":"index_landing-reviews-footer__0b34N","landing-reviews-author":"index_landing-reviews-author__ddiiI","landing-connection-section":"index_landing-connection-section__4flh1","landing-connection-title":"index_landing-connection-title__Nmyxx","landing-connection-image":"index_landing-connection-image__ofQw_","landing-connection-grid":"index_landing-connection-grid__xU1Jw","landing-connection-track":"index_landing-connection-track__XLkzq","landing-connection-item":"index_landing-connection-item__trhyM","landing-connection-mobile":"index_landing-connection-mobile__timTj","landing-connection-mobile-viewport":"index_landing-connection-mobile-viewport__0JPX1","landing-connection-mobile-container":"index_landing-connection-mobile-container__3IXh3","insta-gallery-marquee":"index_insta-gallery-marquee__SInvS","insta-gallery-marquee-row":"index_insta-gallery-marquee-row__TWF8n","insta-gallery-marquee-track":"index_insta-gallery-marquee-track__SauqR","instaGalleryMarquee":"index_instaGalleryMarquee__c4Aps","insta-gallery-marquee-row--reverse":"index_insta-gallery-marquee-row--reverse__c83eO","insta-gallery-item":"index_insta-gallery-item__aANLH","landing-about-us-separator":"index_landing-about-us-separator__Ipgpr"};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzM4Ny5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBLGtCQUFrQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvc3R5bGVzL3BhZ2VzL2luZGV4Lm1vZHVsZS5jc3M/ZGQ4MCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0
1ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbm1vZHVsZS5leHBvcnRzID0ge1wibGFuZGluZy1zZWN0aW9uXCI6XCJpbmRleF9sYW5kaW5nLXNlY3Rpb25fX1hfRXJGXCIsXCJmYWRlSW5cIjpcImluZGV4X2ZhZGVJbl9fbmU5Uk9cIixcImxhbmRpbmctY29udGFpbmVyXCI6XCJpbmRleF9sYW5kaW5nLWNvbnRhaW5lcl9faHpFNnBcIixcImxhbmRpbmctY2VudGVyXCI6XCJpbmRleF9sYW5kaW5nLWNlbnRlcl9fbGxMcm1cIixcImxhbmRpbmdcIjpcImluZGV4X2xhbmRpbmdfX016VWpWXCIsXCJjZW50ZXJFeHBhbmRcIjpcImluZGV4X2NlbnRlckV4cGFuZF9fNXoxc1VcIixcIm9yYml0LWlubmVyXCI6XCJpbmRleF9vcmJpdC1pbm5lcl9fajVnY09cIixcIm9yYml0LW91dGVyXCI6XCJpbmRleF9vcmJpdC1vdXRlcl9fZjVVSlZcIixcIm9yYml0LW91dGVyLW1vc3RcIjpcImluZGV4X29yYml0LW91dGVyLW1vc3RfX2hJZWVhXCIsXCJvcmJpdEV4cGFuZFwiOlwiaW5kZXhfb3JiaXRFeHBhbmRfX0laNVZDXCIsXCJvcmJpdE91dGVyRXhwYW5kXCI6XCJpbmRleF9vcmJpdE91dGVyRXhwYW5kX19aVEdtVlwiLFwibGFuZGluZy1jaXJjbGVcIjpcImluZGV4X2xhbmRpbmctY2lyY2xlX19fQnpsNlwiLFwiY2lyY2xlSW5pdGlhbEV4cGFuZFwiOlwiaW5kZXhfY2lyY2xlSW5pdGlhbEV4cGFuZF9fVTRPX0lcIixcImNpcmNsZTVcIjpcImluZGV4X2NpcmNsZTVfX0VDbV95XCIsXCJjaXJjbGU2XCI6XCJpbmRleF9jaXJjbGU2X19tV09CNFwiLFwiY2lyY2xlN1wiOlwiaW5kZXhfY2lyY2xlN19fN09YajVcIixcImNpcmNsZThcIjpcImluZGV4X2NpcmNsZThfX0kzRm1zXCIsXCJwbGF5XCI6XCJpbmRleF9wbGF5X19ZWENGdVwiLFwibW92ZU9uUGF0aFwiOlwiaW5kZXhfbW92ZU9uUGF0aF9fR21ha0VcIixcImdyb3dPblBhdGhcIjpcImluZGV4X2dyb3dPblBhdGhfXzFMSnY1XCIsXCJuby1ncm93XCI6XCJpbmRleF9uby1ncm93X19GT2J2VFwiLFwicGF1c2VcIjpcImluZGV4X3BhdXNlX19jZlpTR1wiLFwidHJhbnNpdGlvbi1vdmVybGF5XCI6XCJpbmRleF90cmFuc2l0aW9uLW92ZXJsYXlfX3Y2UUhKXCIsXCJ0cmFuc2l0aW9uLXJlY3RcIjpcImluZGV4X3RyYW5zaXRpb24tcmVjdF9fWENEVlRcIixcImlzLWFjdGl2ZVwiOlwiaW5kZXhfaXMtYWN0aXZlX19uNHQ5MFwiLFwidHJhbnNpdGlvbi1jb250ZW50XCI6XCJpbmRleF90cmFuc2l0aW9uLWNvbnRlbnRfX0FicDA0XCIsXCJ0cmFuc2l0aW9uLWhlcm8td3JhcFwiOlwiaW5kZXhfdHJhbnNpdGlvbi1oZXJvLXdyYXBfX29Hd1ZCXCIsXCJsYW5kaW5nLW1pZC1mbGFzaFwiOlwiaW5kZXhfbGFuZGluZy1taWQtZmxhc2hfX1AwcXBQXCIsXCJzdGFydENpcmNsZVNocmlua1wiOlwiaW5kZXhfc3RhcnRDaXJjbGVTaHJpbmtfX2dBMHlhXCIsXCJtb3ZlT25QYXRoT3Bwb3NpdGVcIjpcImluZGV4X21vdmVPblBhdGhPcHBvc2l0ZV9fcXNWdl9cIixcImdyb3dPblBhdGhPcHBvc2l0ZVwiOlwiaW5kZXhfZ3Jvd09uUGF0aE9wcG9zaXRlX194TGVJSVwiLFwic3RhcnRMYW5kaW5nQ29sb3JcIjpcImluZGV4X3N0YXJ0TGFuZGluZ0NvbG9yX19Gb0ZDWVwiLFwiaXNFbnRlcmVkXCI6XCJpbmRleF9pc0VudGVyZWRfX2hLQ005XCIsXCJ0aGVtZU92ZXJsYXlGYWRlXCI6XCJpbmRleF90aGVtZU92ZXJsYXlGYWRlX193TE9xUVwiLFwiY2lyY2xlSW1nXCI6XCJpbmRleF9jaXJjbGVJbWdfX0syUTVVXCIsXCJjaXJjbGVOYW1lXCI6XCJpbmRleF9jaXJjbGVOYW1lX19sZGs4N1wiLFwibGFuZGluZy1jZW50ZXItaW1nXCI6XCJpbmRleF9sYW5kaW5nLWNlbnRlci1pbWdfX1VhX1lQXCIsXCJsYW5kaW5nLWNlbnRlci1pbWctcHJlXCI6XCJpbmRleF9sYW5kaW5nLWNlbnRlci1pbWctcHJlX19veF9GbVwiLFwibGFuZGluZy1jZW50ZXItaW1nLXgyXCI6XCJpbmRleF9sYW5kaW5nLWNlbnRlci1pbWcteDJfX3RpSUdVXCIsXCJsYW5kaW5nLWNlbnRlci1pbWcteDFcIjpcImluZGV4X2xhbmRpbmctY2VudGVyLWltZy14MV9fQ1M0OUpcIixcImxhbmRpbmctY2VudGVyLWltZy10by1Ub3BcIjpcImluZGV4X2xhbmRpbmctY2VudGVyLWltZy10by1Ub3BfX2t5QkpvXCIsXCJzZW8tbmF2XCI6XCJpbmRleF9zZW8tbmF2X19ZTXhTb1wiLFwic2VvLW5hdi1jb250ZW50XCI6XCJpbmRleF9zZW8tbmF2LWNvbnRlbnRfXzM0QURmXCIsXCJsYW5kaW5nLWNlbnRlci1pbWctbGlua1wiOlwiaW5kZXhfbGFuZGluZy1jZW50ZXItaW1nLWxpbmtfX2hvRF9RXCIsXCJicmVha2Zhc3Qtc2VjdGlvblwiOlwiaW5kZXhfYnJlYWtmYXN0LXNlY3Rpb25fX25JX3NOXCIsXCJsYW5kaW5nLWFib3V0LXVzXCI6XCJpbmRleF9sYW5kaW5nLWFib3V0LXVzX19FYkRQNlwiLFwibGFuZGluZy1hYm91dC11cy10aXRsZVwiOlwiaW5kZXhfbGFuZGluZy1hYm91dC11cy10aXRsZV9fUmRzVkpcIixcImxhbmRpbmctYWJvdXQtdXMtZGVzY3JpcHRpb25cIjpcImluZGV4X2xhbmRpbmctYWJvdXQtdXMtZGVzY3JpcHRpb25fX3V0aUlmXCIsXCJsYW5kaW5nLWFib3V0LXVzLXNsb2dhblwiOlwiaW5kZXhfbGFuZGluZy1hYm91dC11cy1zbG9nYW5fX3gxU3JxXCIsXCJsYW5kaW5nLWFib3V0LXVzLS10dXJrZXlcIjpcImluZGV4X2xhbmRpbmctYWJvdXQtdXMtLXR1cmtleV9fMFBiX2hcIixcImxhbmRpbmctYWJvdXQtdXMtLXJhZGlzaFwiOlwiaW5kZXhfbGFuZGluZy1hYm91dC11cy0tcmFkaXNoX180OWlCQlwiLFwibGFuZGluZy1ibHVlYmVycnktZGlmZmVyZW50XCI6XCJpbmRleF9sYW5kaW5nLWJsdWViZXJyeS1kaWZmZXJlbnRfX2Z6cWRsXCIsXCJsYW5kaW5nLWJsdWViZXJyeS1kaWZmZXJlbnQtLWJsdWViZXJyeVwiOlwiaW5kZXhfbGFuZGluZy1ibHVlYmVycnktZGlmZmVyZW50LS1ibHVlYmVycnlfX2xxT19FXCIsXCJsYW5kaW5nLWJsdWViZXJyeS1kaWZmZXJlbnQtLWJsdWViZXJyeS0yXCI6XCJpbmRleF9sYW5kaW5nLWJsdWViZXJyeS1kaWZmZXJlbnQtLWJsdWViZXJyeS0yX19mWl8walwiLFwibGFuZGluZy1pbnRyb1wiOlwiaW5kZXhfbGFuZGluZy1pbnRyb19fYW52WThcIixcImxhbmRpbmctaW50cm8tbWVudS1saW5rXCI6XCJpbmRleF9sYW5kaW5nLWludHJvLW1lbnUtbGlua19fNDF4bV9cIixcImxhbmRpbmctbG9jYXRpb25zLWN0YVwiOlwiaW5kZXhfbGFuZGluZy1sb2NhdGlvbnMtY3RhX19hNWxCZVwiLFwiaW5zdGEtZ2FsbGVyeS1zZWN0aW9uLWxpbmtcIjpcImluZGV4X2luc3RhLWdhbGxlcnktc2VjdGlvbi1saW5rX19sQjd1NlwiLFwibGFuZGluZy1yZXZpZXdzLWxpbmtcIjpcImluZGV4X2xhbmRpbmctcmV2aWV3cy1saW5rX19rOWhvX1wiLFwibGFuZGluZy1sb2NhdGlvbnNcIjpcImluZGV4X2xhbmRpbmctbG9jYXRpb25zX19BNEk0SlwiLFwibGFuZGluZy1sb2NhdGlvbnMtd3JhcHBlclwiOlwiaW5kZXhfbGFuZGluZy1sb2NhdGlvbnMtd3JhcHBlcl9fQ0RPODZcIixcImxhbmRpbmctbG9jYXRpb25zLXRpdGxlXCI6XCJpbmRleF9sYW5kaW5nLWxvY2F0aW9ucy10aXRsZV9faGc0VVpcIixcImxhbmRpbmctbG9jYXRpb25zLXN1YnRpdGxlXCI6XCJpbmRleF9sYW5kaW5nLWxvY2F0aW9ucy1zdWJ0aXRsZV9fR01WUHdcIixcImxhbmRpbmctbG9jYXRpb25zLXNlcGFyYXRvclwiOlwiaW5kZXhfbGFuZGluZy1sb2NhdGlvbnMtc2VwYXJhdG9yX19WTjJXVVwiLFwibGFuZGluZy1sb2NhdGlvbnMtZ3JpZFwiOlwiaW5kZXhfbGFuZGluZy1sb2NhdGlvbnMtZ3JpZF9fVGYxaG5cIixcImxhbmRpbmctbG9jYXRpb25zLWl0ZW1cIjpcImluZGV4X2xhbmRpbmctbG9jYXRpb25zLWl0ZW1fXzU4T1ZQXCIsXCJsYW5kaW5nLWxvY2F0aW9ucy1pbWFnZS13cmFwXCI6XCJpbmRleF9sYW5kaW5nLWxvY2F0aW9ucy1pbWFnZS13cmFwX19BdVN1ZFwiLFwibGFuZGluZy1sb2NhdGlvbnMtaW1hZ2VcIjpcImluZGV4X2xhbmRpbmctbG9jYXRpb25zLWltYWdlX18xX2VfNVwiLFwibHVtaW5hLXN0YXRpb25cIjpcImluZGV4X2x1bWluYS1zdGF0aW9uX19sUldvR1wiLFwiZ3JhbmQtZHVuZXNcIjpcImluZGV4X2dyYW5kLWR1bmVzX19qM0ZBTFwiLFwibGFuZGluZy1sb2NhdGlvbnMtY29udGVudHNcIjpcImluZGV4X2xhbmRpbmctbG9jYXRpb25zLWNvbnRlbn
1RzX19QT3B2c1wiLFwibGFuZGluZy1sb2NhdGlvbnMtY29udGVudHMtLWluYWN0aXZlXCI6XCJpbmRleF9sYW5kaW5nLWxvY2F0aW9ucy1jb250ZW50cy0taW5hY3RpdmVfX3drekJ3XCIsXCJsYW5kaW5nLWxvY2F0aW9ucy1uYW1lLWZhbGxiYWNrXCI6XCJpbmRleF9sYW5kaW5nLWxvY2F0aW9ucy1uYW1lLWZhbGxiYWNrX19fZGRWX1wiLFwibGFuZGluZy1sb2NhdGlvbnMtbmFtZVwiOlwiaW5kZXhfbGFuZGluZy1sb2NhdGlvbnMtbmFtZV9fT1RXTGZcIixcImxhbmRpbmctbG9jYXRpb25zX19mYWxsYmFja1wiOlwiaW5kZXhfbGFuZGluZy1sb2NhdGlvbnNfX2ZhbGxiYWNrX18xM19vMlwiLFwibGFuZGluZy1sb2NhdGlvbnNfX2RpdmlkZXItd3JhcHBlclwiOlwiaW5kZXhfbGFuZGluZy1sb2NhdGlvbnNfX2RpdmlkZXItd3JhcHBlcl9fbWhFYVJcIixcImxhbmRpbmctbG9jYXRpb25zX19zZXBhcmF0b3JcIjpcImluZGV4X2xhbmRpbmctbG9jYXRpb25zX19zZXBhcmF0b3JfX0UxM0RTXCIsXCJsYW5kaW5nLWxvY2F0aW9uc19fZmFsbGJhY2stdGV4dFwiOlwiaW5kZXhfbGFuZGluZy1sb2NhdGlvbnNfX2ZhbGxiYWNrLXRleHRfX3lYaE9MXCIsXCJsYW5kaW5nLWxvY2F0aW9uc19fbmFtZS0taW5hY3RpdmVcIjpcImluZGV4X2xhbmRpbmctbG9jYXRpb25zX19uYW1lLS1pbmFjdGl2ZV9fRnQ5ZXZcIixcImxhbmRpbmctbG9jYXRpb25zX19uYW1lLWJvbGRcIjpcImluZGV4X2xhbmRpbmctbG9jYXRpb25zX19uYW1lLWJvbGRfX3FoZ2tBXCIsXCJsYW5kaW5nLWxvY2F0aW9ucy1sb2NhdGlvblwiOlwiaW5kZXhfbGFuZGluZy1sb2NhdGlvbnMtbG9jYXRpb25fX3diUmlSXCIsXCJsYW5kaW5nLXJldmlld3MtYW5kLWNvbnRhY3Qtc2VjdGlvblwiOlwiaW5kZXhfbGFuZGluZy1yZXZpZXdzLWFuZC1jb250YWN0LXNlY3Rpb25fX0lpaXlHXCIsXCJsYW5kaW5nLXJldmlld3Mtc2VjdGlvblwiOlwiaW5kZXhfbGFuZGluZy1yZXZpZXdzLXNlY3Rpb25fXzNlYVpZXCIsXCJpbnN0YS1nYWxsZXJ5LXNlY3Rpb25cIjpcImluZGV4X2luc3RhLWdhbGxlcnktc2VjdGlvbl9fNTB0a0xcIixcImluc3RhLWdhbGxlcnktc2VjdGlvbi10aXRsZVwiOlwiaW5kZXhfaW5zdGEtZ2FsbGVyeS1zZWN0aW9uLXRpdGxlX18zSDJLblwiLFwibGFuZGluZy1yZXZpZXdzLXRpdGxlXCI6XCJpbmRleF9sYW5kaW5nLXJldmlld3MtdGl0bGVfX0gzdXh0XCIsXCJsYW5kaW5nLXJldmlld3MtZ3JpZFwiOlwiaW5kZXhfbGFuZGluZy1yZXZpZXdzLWdyaWRfX3BveEpwXCIsXCJsYW5kaW5nLXJldmlld3MtdHJhY2tcIjpcImluZGV4X2xhbmRpbmctcmV2aWV3cy10cmFja19fVWNtNHBcIixcImxhbmRpbmctcmV2aWV3cy1pdGVtXCI6XCJpbmRleF9sYW5kaW5nLXJldmlld3MtaXRlbV9fQjdGRTZcIixcImxhbmRpbmctcmV2aWV3cy1pbWFnZS13cmFwXCI6XCJpbmRleF9sYW5kaW5nLXJldmlld3MtaW1hZ2Utd3JhcF9fUjQ3dEFcIixcImxhbmRpbmctcmV2aWV3cy1pbWFnZVwiOlwiaW5kZXhfbGFuZGluZy1yZXZpZXdzLWltYWdlX19RTDM4V1wiLFwibGFuZGluZy1yZXZpZXdzLXN0YXJzXCI6XCJpbmRleF9sYW5kaW5nLXJldmlld3Mtc3RhcnNfX2Z5TXJZXCIsXCJsYW5kaW5nLXJldmlld3Mtc3RhcnMtZW1wdHlcIjpcImluZGV4X2xhbmRpbmctcmV2aWV3cy1zdGFycy1lbXB0eV9fc25MS3lcIixcImxhbmRpbmctcmV2aWV3cy1kZXNjcmlwdGlvblwiOlwiaW5kZXhfbGFuZGluZy1yZXZpZXdzLWRlc2NyaXB0aW9uX19Sc2d3b1wiLFwibGFuZGluZy1yZXZpZXdzLWZvb3RlclwiOlwiaW5kZXhfbGFuZGluZy1yZXZpZXdzLWZvb3Rlcl9fMGIzNE5cIixcImxhbmRpbmctcmV2aWV3cy1hdXRob3JcIjpcImluZGV4X2xhbmRpbmctcmV2aWV3cy1hdXRob3JfX2RkaWlJXCIsXCJsYW5kaW5nLWNvbm5lY3Rpb24tc2VjdGlvblwiOlwiaW5kZXhfbGFuZGluZy1jb25uZWN0aW9uLXNlY3Rpb25fXzRmbGgxXCIsXCJsYW5kaW5nLWNvbm5lY3Rpb24tdGl0bGVcIjpcImluZGV4X2xhbmRpbmctY29ubmVjdGlvbi10aXRsZV9fTm15eHhcIixcImxhbmRpbmctY29ubmVjdGlvbi1pbWFnZVwiOlwiaW5kZXhfbGFuZGluZy1jb25uZWN0aW9uLWltYWdlX19vZlF3X1wiLFwibGFuZGluZy1jb25uZWN0aW9uLWdyaWRcIjpcImluZGV4X2xhbmRpbmctY29ubmVjdGlvbi1ncmlkX194VTFKd1wiLFwibGFuZGluZy1jb25uZWN0aW9uLXRyYWNrXCI6XCJpbmRleF9sYW5kaW5nLWNvbm5lY3Rpb24tdHJhY2tfX1hMa3pxXCIsXCJsYW5kaW5nLWNvbm5lY3Rpb24taXRlbVwiOlwiaW5kZXhfbGFuZGluZy1jb25uZWN0aW9uLWl0ZW1fX3RyaHlNXCIsXCJsYW5kaW5nLWNvbm5lY3Rpb24tbW9iaWxlXCI6XCJpbmRleF9sYW5kaW5nLWNvbm5lY3Rpb24tbW9iaWxlX190aW1UalwiLFwibGFuZGluZy1jb25uZWN0aW9uLW1vYmlsZS12aWV3cG9ydFwiOlwiaW5kZXhfbGFuZGluZy1jb25uZWN0aW9uLW1vYmlsZS12aWV3cG9ydF9fMEpQWDFcIixcImxhbmRpbmctY29ubmVjdGlvbi1tb2JpbGUtY29udGFpbmVyXCI6XCJpbmRleF9sYW5kaW5nLWNvbm5lY3Rpb24tbW9iaWxlLWNvbnRhaW5lcl9fM0lYaDNcIixcImluc3RhLWdhbGxlcnktbWFycXVlZVwiOlwiaW5kZXhfaW5zdGEtZ2FsbGVyeS1tYXJxdWVlX19TSW52U1wiLFwiaW5zdGEtZ2FsbGVyeS1tYXJxdWVlLXJvd1wiOlwiaW5kZXhfaW5zdGEtZ2FsbGVyeS1tYXJxdWVlLXJvd19fVFdGOG5cIixcImluc3RhLWdhbGxlcnktbWFycXVlZS10cmFja1wiOlwiaW5kZXhfaW5zdGEtZ2FsbGVyeS1tYXJxdWVlLXRyYWNrX19TYXVxUlwiLFwiaW5zdGFHYWxsZXJ5TWFycXVlZVwiOlwiaW5kZXhfaW5zdGFHYWxsZXJ5TWFycXVlZV9fYzRBcHNcIixcImluc3RhLWdhbGxlcnktbWFycXVlZS1yb3ctLXJldmVyc2VcIjpcImluZGV4X2luc3RhLWdhbGxlcnktbWFycXVlZS1yb3ctLXJldmVyc2VfX2M4M2VPXCIsXCJpbnN0YS1nYWxsZXJ5LWl0ZW1cIjpcImluZGV4X2luc3RhLWdhbGxlcnktaXRlbV9fYUFOTEhcIixcImxhbmRpbmctYWJvdXQtdXMtc2VwYXJhdG9yXCI6XCJpbmRleF9sYW5kaW5nLWFib3V0LXVzLXNlcGFyYXRvcl9fSXBncHJcIn07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///7387\n'))}},n=>{var l=l=>n(n.s=l);n.O(0,[6742,5849,308,2729,6082,9017,3818,636,6593,8792],()=>l(2936)),_N_E=n.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.