Files
nashel-frontend/.next/static/webpack/app/search/page.b5af35e732eb7de5.hot-update.js
T

22 lines
140 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"use strict";
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
self["webpackHotUpdate_N_E"]("app/search/page",{
/***/ "(app-pages-browser)/./src/app/search/page.tsx":
/*!*********************************!*\
!*** ./src/app/search/page.tsx ***!
\*********************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ SearchPage)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dynamic */ \"(app-pages-browser)/./node_modules/next/dist/api/app-dynamic.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _barrel_optimize_names_Filter_MapPin_Search_User_lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=Filter,MapPin,Search,User!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/search.js\");\n/* harmony import */ var _barrel_optimize_names_Filter_MapPin_Search_User_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=Filter,MapPin,Search,User!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/map-pin.js\");\n/* harmony import */ var _barrel_optimize_names_Filter_MapPin_Search_User_lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=Filter,MapPin,Search,User!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/user.js\");\n/* harmony import */ var _barrel_optimize_names_Filter_MapPin_Search_User_lucide_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! __barrel_optimize__?names=Filter,MapPin,Search,User!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/filter.js\");\n/* harmony import */ var _shared_api_search__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/shared/api/search */ \"(app-pages-browser)/./src/shared/api/search.ts\");\n/* harmony import */ var _components_ui_input__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/ui/input */ \"(app-pages-browser)/./src/components/ui/input.tsx\");\n/* harmony import */ var _components_ui_checkbox__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/ui/checkbox */ \"(app-pages-browser)/./src/components/ui/checkbox.tsx\");\n/* harmony import */ var _components_ui_select__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/ui/select */ \"(app-pages-browser)/./src/components/ui/select.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\n\n\n// ВАЖНО: react-leaflet ломает SSR — импортируем с ssr: false\nconst LiveMap = (0,next_dynamic__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(()=>__webpack_require__.e(/*! import() */ \"_app-pages-browser_src_components_map_LiveMap_tsx\").then(__webpack_require__.bind(__webpack_require__, /*! @/components/map/LiveMap */ \"(app-pages-browser)/./src/components/map/LiveMap.tsx\")), {\n loadableGenerated: {\n modules: [\n \"app\\\\search\\\\page.tsx -> \" + \"@/components/map/LiveMap\"\n ]\n },\n ssr: false,\n loading: ()=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-center w-full h-full bg-muted/30\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-10 w-10 border-4 border-primary border-t-transparent rounded-full animate-spin\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 17,\n columnNumber: 17\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-muted-foreground text-sm\",\n children: \"Загрузка карты...\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 18,\n columnNumber: 17\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 16,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 15,\n columnNumber: 9\n }, undefined)\n});\n_c = LiveMap;\nfunction SearchPage() {\n _s();\n const [performers, setPerformers] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)([]);\n const [isLoading, setIsLoading] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false);\n const [error, setError] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(null);\n const [sidebarOpen, setSidebarOpen] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(true);\n const [activePerformerId, setActivePerformerId] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(null);\n const [centerTrigger, setCenterTrigger] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(0);\n const [sortBy, setSortBy] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(\"default\");\n // Параметры поиска\n const [query, setQuery] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(\"\");\n const [inTitle, setInTitle] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(true);\n const [inDesc, setInDesc] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(true);\n const [inComp, setInComp] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(true);\n // Текущая позиция карты (и инициализация из localStorage)\n const [mapBounds, setMapBounds] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(null);\n const [initialCenter, setInitialCenter] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)([\n 55.7558,\n 37.6173\n ]) // Default: Moscow\n ;\n const [isLocationLoaded, setIsLocationLoaded] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false);\n // Пытаемся восстановить локацию при монтировании\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)({\n \"SearchPage.useEffect\": ()=>{\n try {\n const savedProfile = localStorage.getItem(\"user-profile\");\n if (savedProfile) {\n const profile = JSON.parse(savedProfile);\n if (profile.currentLocation && profile.currentLocation.latitude) {\n setInitialCenter([\n profile.currentLocation.latitude,\n profile.currentLocation.longitude\n ]);\n }\n }\n } catch (e) {\n console.error(\"Ошибка чтения локации из localStorage\", e);\n } finally{\n setIsLocationLoaded(true);\n }\n }\n }[\"SearchPage.useEffect\"], []);\n const searchTimeoutRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n const performSearch = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)({\n \"SearchPage.useCallback[performSearch]\": async (q, lat, lon, radius, title, desc, comp)=>{\n try {\n if (q.trim().length < 2) {\n setPerformers([]);\n return;\n }\n setIsLoading(true);\n setError(null);\n const result = await (0,_shared_api_search__WEBPACK_IMPORTED_MODULE_3__.globalSearch)({\n q: q.trim(),\n lat,\n lon,\n radius,\n inTitle: title,\n inDesc: desc,\n inComp: comp\n });\n setPerformers(result);\n } catch (err) {\n console.error(\"Search error:\", err);\n setError(\"Ошибка при поиске. Попробуйте снова.\");\n } finally{\n setIsLoading(false);\n }\n }\n }[\"SearchPage.useCallback[performSearch]\"], []);\n // Debounced search trigger\n const triggerSearch = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)({\n \"SearchPage.useCallback[triggerSearch]\": (newQuery, lat, lon, rad, title, desc, comp)=>{\n if (searchTimeoutRef.current) clearTimeout(searchTimeoutRef.current);\n const currentLat = lat !== null && lat !== void 0 ? lat : mapBounds === null || mapBounds === void 0 ? void 0 : mapBounds.lat;\n const currentLon = lon !== null && lon !== void 0 ? lon : mapBounds === null || mapBounds === void 0 ? void 0 : mapBounds.lon;\n const currentRad = rad !== null && rad !== void 0 ? rad : mapBounds === null || mapBounds === void 0 ? void 0 : mapBounds.radius;\n if (!currentLat || !currentLon) return; // Ждём, пока карта даст координаты\n searchTimeoutRef.current = setTimeout({\n \"SearchPage.useCallback[triggerSearch]\": ()=>{\n performSearch(newQuery, currentLat, currentLon, currentRad || 5000, title !== null && title !== void 0 ? title : inTitle, desc !== null && desc !== void 0 ? desc : inDesc, comp !== null && comp !== void 0 ? comp : inComp);\n }\n }[\"SearchPage.useCallback[triggerSearch]\"], 400);\n }\n }[\"SearchPage.useCallback[triggerSearch]\"], [\n mapBounds,\n performSearch,\n inTitle,\n inDesc,\n inComp\n ]);\n const handleBoundsChange = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)({\n \"SearchPage.useCallback[handleBoundsChange]\": (lat, lon, radius)=>{\n setMapBounds({\n lat,\n lon,\n radius\n });\n triggerSearch(query, lat, lon, radius);\n }\n }[\"SearchPage.useCallback[handleBoundsChange]\"], [\n triggerSearch,\n query\n ]);\n const handleUserLocated = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)({\n \"SearchPage.useCallback[handleUserLocated]\": (lat, lon)=>{\n setMapBounds({\n lat,\n lon,\n radius: 5000\n });\n triggerSearch(query, lat, lon, 5000);\n }\n }[\"SearchPage.useCallback[handleUserLocated]\"], [\n triggerSearch,\n query\n ]);\n const handlePerformerClick = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)({\n \"SearchPage.useCallback[handlePerformerClick]\": (id)=>{\n setActivePerformerId(id);\n if (sidebarOpen) {\n const el = document.getElementById(\"performer-card-\".concat(id));\n if (el) {\n el.scrollIntoView({\n behavior: 'smooth',\n block: 'center'\n });\n }\n } else {\n setSidebarOpen(true);\n setTimeout({\n \"SearchPage.useCallback[handlePerformerClick]\": ()=>{\n const el = document.getElementById(\"performer-card-\".concat(id));\n if (el) {\n el.scrollIntoView({\n behavior: 'smooth',\n block: 'center'\n });\n }\n }\n }[\"SearchPage.useCallback[handlePerformerClick]\"], 300);\n }\n }\n }[\"SearchPage.useCallback[handlePerformerClick]\"], [\n sidebarOpen\n ]);\n const handleListPerformerClick = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)({\n \"SearchPage.useCallback[handleListPerformerClick]\": (id)=>{\n setActivePerformerId(id);\n setCenterTrigger({\n \"SearchPage.useCallback[handleListPerformerClick]\": (prev)=>prev + 1\n }[\"SearchPage.useCallback[handleListPerformerClick]\"]);\n }\n }[\"SearchPage.useCallback[handleListPerformerClick]\"], []);\n const sortedItems = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)({\n \"SearchPage.useMemo[sortedItems]\": ()=>{\n let items = [];\n performers.forEach({\n \"SearchPage.useMemo[sortedItems]\": (p)=>{\n if (p.matchedOffers && p.matchedOffers.length > 0) {\n p.matchedOffers.forEach({\n \"SearchPage.useMemo[sortedItems]\": (o)=>{\n var _o_priceAmount, _ref;\n items.push({\n type: 'offer',\n performer: p,\n offer: o,\n distance: p.distance || 0,\n price: (_ref = (_o_priceAmount = o.priceAmount) !== null && _o_priceAmount !== void 0 ? _o_priceAmount : o.amount) !== null && _ref !== void 0 ? _ref : 0\n });\n }\n }[\"SearchPage.useMemo[sortedItems]\"]);\n } else {\n items.push({\n type: 'performer',\n performer: p,\n distance: p.distance || 0,\n price: 0\n });\n }\n }\n }[\"SearchPage.useMemo[sortedItems]\"]);\n if (sortBy === \"price_asc\") {\n items.sort({\n \"SearchPage.useMemo[sortedItems]\": (a, b)=>a.price - b.price\n }[\"SearchPage.useMemo[sortedItems]\"]);\n } else if (sortBy === \"price_desc\") {\n items.sort({\n \"SearchPage.useMemo[sortedItems]\": (a, b)=>b.price - a.price\n }[\"SearchPage.useMemo[sortedItems]\"]);\n } else if (sortBy === \"distance_asc\") {\n items.sort({\n \"SearchPage.useMemo[sortedItems]\": (a, b)=>a.distance - b.distance\n }[\"SearchPage.useMemo[sortedItems]\"]);\n }\n return items;\n }\n }[\"SearchPage.useMemo[sortedItems]\"], [\n performers,\n sortBy\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex w-full\",\n style: {\n height: \"calc(100vh - 64px)\"\n },\n children: [\n sidebarOpen && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"aside\", {\n className: \"w-2/5 min-w-[380px] max-w-[600px] border-r bg-background flex flex-col shrink-0 overflow-hidden shadow-xl z-10 relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-4 border-b space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-xl font-bold flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Filter_MapPin_Search_User_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"h-5 w-5 text-primary\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 177,\n columnNumber: 33\n }, this),\n \"Поиск услуг\"\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 176,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setSidebarOpen(false),\n className: \"text-muted-foreground hover:text-foreground text-xs px-2 py-1 rounded hover:bg-muted transition-colors\",\n children: \"Свернуть\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 180,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 175,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Filter_MapPin_Search_User_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"absolute left-3 top-3 h-4 w-4 text-muted-foreground\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 190,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_4__.Input, {\n placeholder: \"Что вы ищете? Напр. 'бар', 'ремонт'\",\n className: \"pl-9 bg-muted/50 focus-visible:ring-primary\",\n value: query,\n onChange: (e)=>{\n setQuery(e.target.value);\n triggerSearch(e.target.value);\n }\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 191,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 189,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col gap-2 pt-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs font-medium text-muted-foreground uppercase tracking-wider\",\n children: \"Искать в:\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 204,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-4 text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"flex items-center gap-2 cursor-pointer\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_checkbox__WEBPACK_IMPORTED_MODULE_5__.Checkbox, {\n checked: inTitle,\n onCheckedChange: (c)=>{\n setInTitle(!!c);\n triggerSearch(query, undefined, undefined, undefined, !!c, inDesc, inComp);\n }\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 207,\n columnNumber: 37\n }, this),\n \"Названиях\"\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 206,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"flex items-center gap-2 cursor-pointer\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_checkbox__WEBPACK_IMPORTED_MODULE_5__.Checkbox, {\n checked: inDesc,\n onCheckedChange: (c)=>{\n setInDesc(!!c);\n triggerSearch(query, undefined, undefined, undefined, inTitle, !!c, inComp);\n }\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 217,\n columnNumber: 37\n }, this),\n \"Описании\"\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 216,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"flex items-center gap-2 cursor-pointer\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_checkbox__WEBPACK_IMPORTED_MODULE_5__.Checkbox, {\n checked: inComp,\n onCheckedChange: (c)=>{\n setInComp(!!c);\n triggerSearch(query, undefined, undefined, undefined, inTitle, inDesc, !!c);\n }\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 227,\n columnNumber: 37\n }, this),\n \"Компетенциях\"\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 226,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 205,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 203,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 174,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 overflow-y-auto bg-muted/10\",\n children: query.trim() === \"\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center justify-center py-16 px-6 text-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-16 w-16 rounded-full bg-muted flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Filter_MapPin_Search_User_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"h-8 w-8 text-muted-foreground\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 245,\n columnNumber: 37\n }, this)\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 244,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm font-medium\",\n children: \"Введите запрос для поиска\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 247,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-muted-foreground\",\n children: \"Укажите название услуги, например 'уборка' или 'няня'.\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 248,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 243,\n columnNumber: 29\n }, this) : isLoading && performers.length === 0 ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center justify-center py-16 gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-8 w-8 border-3 border-primary border-t-transparent rounded-full animate-spin\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 254,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-muted-foreground\",\n children: \"Ищем подходящие услуги...\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 255,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 253,\n columnNumber: 29\n }, this) : performers.length === 0 ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center justify-center py-16 px-6 text-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-16 w-16 rounded-full bg-muted flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Filter_MapPin_Search_User_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"h-8 w-8 text-muted-foreground\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 260,\n columnNumber: 37\n }, this)\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 259,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm font-medium\",\n children: \"Ничего не найдено\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 262,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-muted-foreground\",\n children: \"Попробуйте изменить запрос, расширить зону поиска или убрать фильтры.\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 263,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 258,\n columnNumber: 29\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"divide-y\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"px-4 py-2 bg-muted/30 flex items-center justify-between sticky top-0 backdrop-blur z-10 border-b\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs text-muted-foreground whitespace-nowrap\",\n children: [\n \"Найдено: \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"strong\", {\n className: \"text-foreground\",\n children: performers.length\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 271,\n columnNumber: 50\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 270,\n columnNumber: 37\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_6__.Select, {\n value: sortBy,\n onValueChange: setSortBy,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_6__.SelectTrigger, {\n className: \"h-7 text-xs w-auto min-w-[140px] border-none bg-transparent shadow-none focus:ring-0\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_6__.SelectValue, {\n placeholder: \"Сортировка\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 275,\n columnNumber: 45\n }, this)\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 274,\n columnNumber: 41\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_6__.SelectContent, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_6__.SelectItem, {\n value: \"default\",\n className: \"text-xs\",\n children: \"Идеально подходят\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 278,\n columnNumber: 45\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_6__.SelectItem, {\n value: \"price_asc\",\n className: \"text-xs\",\n children: \"Сначала дешевле\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 279,\n columnNumber: 45\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_6__.SelectItem, {\n value: \"price_desc\",\n className: \"text-xs\",\n children: \"Сначала дороже\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 280,\n columnNumber: 45\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_6__.SelectItem, {\n value: \"distance_asc\",\n className: \"text-xs\",\n children: \"Сначала ближе\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 281,\n columnNumber: 45\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 277,\n columnNumber: 41\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 273,\n columnNumber: 37\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 269,\n columnNumber: 33\n }, this),\n sortedItems.map((item, idx)=>{\n const p = item.performer;\n const isOnline = p.status === \"Готов к заказу\";\n const key = item.type === 'offer' ? \"\".concat(item.offer.id, \"-\").concat(idx) : \"\".concat(p.performerId, \"-\").concat(idx);\n const formatDistance = (d)=>{\n if (d === undefined || d === null) return 'В вашем районе';\n if (d < 1000) return \"\".concat(Math.round(d), \" м от вас\");\n return \"\".concat((d / 1000).toFixed(1), \" км от вас\");\n };\n const performerClasses = item.type === 'offer' ? \"flex items-center gap-3 bg-muted/40 rounded-lg border border-transparent opacity-0 max-h-0 overflow-hidden transform scale-95 transition-all duration-300 ease-in-out group-hover:opacity-100 group-hover:max-h-[100px] group-hover:scale-100 group-hover:mt-3 group-hover:p-2 group-hover:border-border/50\" : \"flex items-center gap-3 bg-background border rounded-lg p-3 shadow-sm mt-3 opacity-100 transition-all\";\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n id: \"performer-card-\".concat(p.performerId, \"-\").concat(idx),\n onClick: ()=>handleListPerformerClick(p.performerId),\n className: \"px-4 py-4 cursor-pointer transition-colors group \".concat(activePerformerId === p.performerId ? 'bg-primary/5 shadow-inner border-l-4 border-l-primary' : 'hover:bg-muted/50 border-l-4 border-l-transparent'),\n children: [\n item.type === 'offer' ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4 flex gap-4\",\n children: [\n item.offer.imageUrl && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"shrink-0 w-28 h-28 sm:w-32 sm:h-32 rounded-lg overflow-hidden bg-muted relative group-hover/image:shadow-md transition-all\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", {\n src: item.offer.imageUrl,\n alt: item.offer.title,\n className: \"w-full h-full object-cover transition-transform duration-500 group-hover:scale-110\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 313,\n columnNumber: 61\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 bg-black/10 group-hover:bg-transparent transition-colors duration-500\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 318,\n columnNumber: 61\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 312,\n columnNumber: 57\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 min-w-0 flex flex-col\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between items-start gap-2 mb-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"font-bold text-lg leading-tight group-hover:text-primary transition-colors line-clamp-2\",\n children: item.offer.title\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 323,\n columnNumber: 61\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-end gap-1 shrink-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm font-bold text-primary whitespace-nowrap bg-primary/10 px-2 py-0.5 rounded-md shadow-sm\",\n children: [\n item.price,\n \" ₽\"\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 325,\n columnNumber: 65\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs font-medium text-muted-foreground whitespace-nowrap bg-muted/70 px-2 py-0.5 rounded-md flex items-center gap-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Filter_MapPin_Search_User_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"h-3 w-3 shrink-0\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 329,\n columnNumber: 69\n }, this),\n formatDistance(p.distance)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 328,\n columnNumber: 65\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 324,\n columnNumber: 61\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 322,\n columnNumber: 57\n }, this),\n item.offer.description && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-muted-foreground line-clamp-2 leading-relaxed mb-auto\",\n children: item.offer.description\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 335,\n columnNumber: 61\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-4 text-left\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/offers/\".concat(item.offer.id),\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n onClick: (e)=>e.stopPropagation(),\n className: \"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors border border-input shadow-sm bg-background hover:bg-accent hover:text-accent-foreground h-9 px-4 py-2\",\n children: \"Просмотреть услугу\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 340,\n columnNumber: 61\n }, this)\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 339,\n columnNumber: 57\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 321,\n columnNumber: 53\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 310,\n columnNumber: 49\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-xs font-semibold uppercase tracking-wider text-muted-foreground mb-3\",\n children: \"Найдено по компетенции\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 354,\n columnNumber: 53\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-wrap gap-1\",\n children: p.matchedCompetencies.map((c)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"px-2 py-0.5 bg-primary/10 text-primary text-[10px] rounded-full uppercase tracking-wide font-medium\",\n children: c\n }, c, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 359,\n columnNumber: 61\n }, this))\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 357,\n columnNumber: 53\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 353,\n columnNumber: 49\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: performerClasses,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative h-8 w-8 shrink-0 rounded-full overflow-hidden bg-gradient-to-br from-indigo-500 to-purple-600 flex items-center justify-center text-white\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Filter_MapPin_Search_User_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 370,\n columnNumber: 53\n }, this),\n p.avatarUrl && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", {\n src: p.avatarUrl,\n alt: \"Avatar\",\n className: \"absolute inset-0 h-full w-full object-cover bg-background\",\n onError: (e)=>{\n e.currentTarget.style.display = 'none';\n }\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 372,\n columnNumber: 57\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 369,\n columnNumber: 49\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 min-w-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"font-medium text-xs truncate\",\n children: p.name\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 382,\n columnNumber: 57\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"flex items-center gap-1 text-[10px] font-medium shrink-0 flex-nowrap \".concat(isOnline ? \"text-green-500\" : \"text-gray-400\"),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"h-1.5 w-1.5 shrink-0 rounded-full \".concat(isOnline ? \"bg-green-500 animate-pulse\" : \"bg-gray-400\")\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 384,\n columnNumber: 61\n }, this),\n p.status\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 383,\n columnNumber: 57\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 381,\n columnNumber: 53\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between mt-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Filter_MapPin_Search_User_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"h-3.5 w-3.5 shrink-0 text-muted-foreground\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 390,\n columnNumber: 61\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs font-medium text-muted-foreground truncate\",\n children: formatDistance(p.distance)\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 391,\n columnNumber: 61\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 389,\n columnNumber: 57\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-[11px] font-medium text-foreground/80 bg-muted/80 px-2 py-0.5 rounded\",\n children: p.role || \"Пользователь\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 393,\n columnNumber: 57\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 388,\n columnNumber: 53\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 380,\n columnNumber: 49\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 368,\n columnNumber: 45\n }, this)\n ]\n }, key, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 302,\n columnNumber: 41\n }, this);\n })\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 268,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 241,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 172,\n columnNumber: 17\n }, this),\n !sidebarOpen && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setSidebarOpen(true),\n className: \"absolute left-2 top-20 z-[1000] bg-background border shadow-lg rounded-lg px-4 py-3 hover:bg-muted transition-colors flex items-center gap-2 text-sm font-medium\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Filter_MapPin_Search_User_lucide_react__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n className: \"h-4 w-4 text-primary\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 413,\n columnNumber: 21\n }, this),\n \"Фильтры и список\"\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 409,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 relative z-0\",\n children: isLocationLoaded ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(LiveMap, {\n performers: performers,\n isLoading: isLoading,\n error: error,\n initialCenter: initialCenter,\n onBoundsChange: handleBoundsChange,\n onUserLocated: handleUserLocated,\n activePerformerId: activePerformerId,\n centerTrigger: centerTrigger,\n onPerformerClick: handlePerformerClick\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 421,\n columnNumber: 21\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-center w-full h-full bg-muted/30\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-10 w-10 border-4 border-primary border-t-transparent rounded-full animate-spin\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 435,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-muted-foreground text-sm\",\n children: \"Определение вашей позиции...\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 436,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 434,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 433,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 419,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 169,\n columnNumber: 9\n }, this);\n}\n_s(SearchPage, \"TxZiXQluWrPHJBZrpX0bssHXe7o=\");\n_c1 = SearchPage;\nvar _c, _c1;\n$RefreshReg$(_c, \"LiveMap\");\n$RefreshReg$(_c1, \"SearchPage\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL3NyYy9hcHAvc2VhcmNoL3BhZ2UudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVrQztBQUN1QztBQUNIO0FBQ0Y7QUFDdkI7QUFDTTtBQUNtRDtBQUV0Ryw2REFBNkQ7QUFDN0QsTUFBTWtCLFVBQVVsQix3REFBT0EsQ0FBQyxJQUFNLHNPQUFrQzs7Ozs7O0lBQzVEbUIsS0FBSztJQUNMQyxTQUFTLGtCQUNMLDhEQUFDQztZQUFJQyxXQUFVO3NCQUNYLDRFQUFDRDtnQkFBSUMsV0FBVTs7a0NBQ1gsOERBQUNEO3dCQUFJQyxXQUFVOzs7Ozs7a0NBQ2YsOERBQUNDO3dCQUFFRCxXQUFVO2tDQUFnQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBTnZESjtBQVlTLFNBQVNNOztJQUNwQixNQUFNLENBQUNDLFlBQVlDLGNBQWMsR0FBR3pCLCtDQUFRQSxDQUFxQixFQUFFO0lBQ25FLE1BQU0sQ0FBQzBCLFdBQVdDLGFBQWEsR0FBRzNCLCtDQUFRQSxDQUFDO0lBQzNDLE1BQU0sQ0FBQzRCLE9BQU9DLFNBQVMsR0FBRzdCLCtDQUFRQSxDQUFnQjtJQUNsRCxNQUFNLENBQUM4QixhQUFhQyxlQUFlLEdBQUcvQiwrQ0FBUUEsQ0FBQztJQUMvQyxNQUFNLENBQUNnQyxtQkFBbUJDLHFCQUFxQixHQUFHakMsK0NBQVFBLENBQWdCO0lBQzFFLE1BQU0sQ0FBQ2tDLGVBQWVDLGlCQUFpQixHQUFHbkMsK0NBQVFBLENBQUM7SUFDbkQsTUFBTSxDQUFDb0MsUUFBUUMsVUFBVSxHQUFHckMsK0NBQVFBLENBQVM7SUFFN0MsbUJBQW1CO0lBQ25CLE1BQU0sQ0FBQ3NDLE9BQU9DLFNBQVMsR0FBR3ZDLCtDQUFRQSxDQUFDO0lBQ25DLE1BQU0sQ0FBQ3dDLFNBQVNDLFdBQVcsR0FBR3pDLCtDQUFRQSxDQUFDO0lBQ3ZDLE1BQU0sQ0FBQzBDLFFBQVFDLFVBQVUsR0FBRzNDLCtDQUFRQSxDQUFDO0lBQ3JDLE1BQU0sQ0FBQzRDLFFBQVFD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QVU7Ozs7OzswRkFDbEIsOERBQUMyRztnRkFBSzNHLFdBQVU7MEZBQXNEcUgsZUFBZXBILEVBQUVvRixRQUFROzs7Ozs7Ozs7Ozs7a0ZBRW5HLDhEQUFDc0I7d0VBQUszRyxXQUFVO2tGQUNYQyxFQUFFeUksSUFBSSxJQUFJOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3VDQTNGdEJ2Qjs7Ozs7Z0NBa0dqQjs7Ozs7Ozs7Ozs7Ozs7Ozs7O1lBT25CLENBQUMxRyw2QkFDRSw4REFBQ3VGO2dCQUNHQyxTQUFTLElBQU12RixlQUFlO2dCQUM5QlYsV0FBVTs7a0NBRVYsOERBQUNkLHNHQUFNQTt3QkFBQ2MsV0FBVTs7Ozs7O29CQUF5Qjs7Ozs7OzswQkFNbkQsOERBQUNEO2dCQUFJQyxXQUFVOzBCQUNWNkIsaUNBQ0csOERBQUNqQztvQkFDR08sWUFBWUE7b0JBQ1pFLFdBQVdBO29CQUNYRSxPQUFPQTtvQkFDUG9CLGVBQWVBO29CQUNmZ0gsZ0JBQWdCM0U7b0JBQ2hCNEUsZUFBZTNFO29CQUNmdEQsbUJBQW1CQTtvQkFDbkJFLGVBQWVBO29CQUNmZ0ksa0JBQWtCM0U7Ozs7O3lDQUd0Qiw4REFBQ25FO29CQUFJQyxXQUFVOzhCQUNYLDRFQUFDRDt3QkFBSUMsV0FBVTs7MENBQ1gsOERBQUNEO2dDQUFJQyxXQUFVOzs7Ozs7MENBQ2YsOERBQUNDO2dDQUFFRCxXQUFVOzBDQUFnQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU96RTtHQW5hd0JFO01BQUFBIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcc3JjXFxhcHBcXHNlYXJjaFxccGFnZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcclxuXHJcbmltcG9ydCBkeW5hbWljIGZyb20gXCJuZXh0L2R5bmFtaWNcIlxyXG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2ssIHVzZVJlZiwgdXNlRWZmZWN0LCB1c2VNZW1vIH0gZnJvbSBcInJlYWN0XCJcclxuaW1wb3J0IHsgU2VhcmNoLCBVc2VyLCBGaWx0ZXIsIE1hcFBpbiwgQnJpZWZjYXNlIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiXHJcbmltcG9ydCB7IGdsb2JhbFNlYXJjaCwgU2VhcmNoUmVzdWx0SXRlbSB9IGZyb20gXCJAL3NoYXJlZC9hcGkvc2VhcmNoXCJcclxuaW1wb3J0IHsgSW5wdXQgfSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL2lucHV0XCJcclxuaW1wb3J0IHsgQ2hlY2tib3ggfSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL2NoZWNrYm94XCJcclxuaW1wb3J0IHsgU2VsZWN0LCBTZWxlY3RDb250ZW50LCBTZWxlY3RJdGVtLCBTZWxlY3RUcmlnZ2VyLCBTZWxlY3RWYWx1ZSB9IGZyb20gXCJAL2NvbXBvbmVudHMvdWkvc2VsZWN0XCJcclxuXHJcbi8vINCS0JDQltCd0J46IHJlYWN0LWxlYWZsZXQg0LvQvtC80LDQtdGCIFNTUiDigJQg0LjQvNC/0L7RgNGC0LjRgNGD0LXQvCDRgSBzc3I6IGZhbHNlXHJcbmNvbnN0IExpdmVNYXAgPSBkeW5hbWljKCgpID0+IGltcG9ydChcIkAvY29tcG9uZW50cy9tYXAvTGl2ZU1hcFwiKSwge1xyXG4gICAgc3NyOiBmYWxzZSxcclxuICAgIGxvYWRpbmc6ICgpID0+IChcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHctZnVsbCBoLWZ1bGwgYmctbXV0ZWQvMzBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBnYXAtNFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoLTEwIHctMTAgYm9yZGVyLTQgYm9yZGVyLXByaW1hcnkgYm9yZGVyLXQtdHJhbnNwYXJlbnQgcm91bmRlZC1mdWxsIGFuaW1hdGUtc3BpblwiIC8+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LW11dGVkLWZvcmVncm91bmQgdGV4dC1zbVwiPtCX0LDQs9GA0YPQt9C60LAg0LrQsNGA0YLRiy4uLjwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICApLFxyXG59KVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU2VhcmNoUGFnZSgpIHtcclxuICAgIGNvbnN0IFtwZXJmb3JtZXJzLCBzZXRQZXJmb3JtZXJzXSA9IHVzZVN0YXRlPFNlYXJjaFJlc3VsdEl0ZW1bXT4oW10pXHJcbiAgICBjb25zdCBbaXNMb2FkaW5nLCBzZXRJc0xvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpXHJcbiAgICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXHJcbiAgICBjb25zdCBbc2lkZWJhck9wZW4sIHNldFNpZGViYXJPcGVuXSA9IHVzZVN0YXRlKHRydWUpXHJcbiAgICBjb25zdCBbYWN0aXZlUGVyZm9ybWVySWQsIHNldEFjdGl2ZVBlcmZvcm1lcklkXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXHJcbiAgICBjb25zdCBbY2VudGVyVHJpZ2dlciwgc2V0Q2VudGVyVHJpZ2dlcl0gPSB1c2VTdGF0ZSgwKVxyXG4gICAgY29uc3QgW3NvcnRCeSwgc2V0U29ydEJ5XSA9IHVzZVN0YXRlPHN0cmluZz4oXCJkZWZhdWx0XCIpXHJcblxyXG4gICAgLy8g0J/QsNGA0LDQvNC10YLRgNGLINC/0L7QuNGB0LrQsFxyXG4gICAgY29uc3QgW3F1ZXJ5LCBzZXRRdWVyeV0gPSB1c2VTdGF0ZShcIlwiKVxyXG4gICAgY29uc3QgW2luVGl0bGUsIHNldEluVGl0bGVdID0gdXNlU3RhdGUodHJ1ZSlcclxuICAgIGNvbnN0IFtpbkRlc2MsIHNldEluRGVzY10gPSB1c2VTdGF0ZSh0cnVlKVxyXG4gICAgY29uc3QgW2luQ29tcCwgc2V0SW5Db21wXSA9IHVzZVN0YXRlKHRydWUpXHJcblxyXG4gICAgLy8g0KLQtdC60YPRidCw0Y8g0L/QvtC30LjRhtC40Y8g0LrQsNGA0YLRiyAo0Lgg0LjQvdC40YbQuNCw0LvQuNC30LDRhtC40Y8g0LjQtyBsb2NhbFN0b3JhZ2UpXHJcbiAgICBjb25zdCBbbWFwQm91bmRzLCBzZXRNYXBCb3VuZHNdID0gdXNlU3RhdGU8eyBsYXQ6IG51bWJlciwgbG9uOiBudW1iZXIsIHJhZGl1czogbnVtYmVyIH0gfCBudWxsPihudWxsKVxyXG4gICAgY29uc3QgW2luaXRpYWxDZW50ZXIsIHNldEluaXRpYWxDZW50ZXJdID0gdXNlU3RhdGU8W251bWJlciwgbnVtYmVyXT4oWzU1Ljc1NTgsIDM3LjYxNzNdKSAvLyBEZWZhdWx0OiBNb3Njb3dcclxuICAgIGNvbnN0IFtpc0xvY2F0aW9uTG9hZGVkLCBzZXRJc0xvY2F0aW9uTG9hZGVkXSA9IHVzZVN0YXRlKGZhbHNlKVxyXG5cclxuICAgIC8vINCf0YvRgtCw0LXQvNGB0Y8g0LLQvtGB0YHRgtCw0L3QvtCy0LjRgtGMINC70L7QutCw0YbQuNGOINC/0YDQuCDQvNC+0L3RgtC40YDQvtCy0LDQvdC40LhcclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY29uc3Qgc2F2ZWRQcm9maWxlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ1c2VyLXByb2ZpbGVcIilcclxuICAgICAgICAgICAgaWYgKHNhdmVkUHJvZmlsZSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcHJvZmlsZSA9IEpTT04ucGFyc2Uoc2F2ZWRQcm9maWxlKVxyXG4gICAgICAgICAgICAgICAgaWYgKHByb2ZpbGUuY3VycmVudExvY2F0aW9uICYmIHByb2ZpbGUuY3VycmVudExvY2F0aW9uLmxhdGl0dWRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0SW5pdGlhbENlbnRlcihbcHJvZmlsZS5jdXJyZW50TG9jYXRpb24ubGF0aXR1ZGUsIHByb2ZpbGUuY3VycmVudExvY2F0aW9uLmxvbmdpdHVkZV0pXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCLQntGI0LjQsdC60LAg0YfRgtC10L3QuNGPINC70L7QutCw0YbQuNC4INC40LcgbG9jYWxTdG9yYWdlXCIsIGUpXHJcbiAgICAgICAgfSBmaW5hbGx5IHtcclxuICAgICAgICAgICAgc2V0SXNMb2NhdGlvbkxvYWRlZCh0cnVlKVxyXG4gICAgICAgIH1cclxuICAgIH0sIFtdKVxyXG5cclxuICAgIGNvbnN0IHNlYXJjaFRpbWVvdXRSZWYgPSB1c2VSZWY8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsPihudWxsKVxyXG5cclxuICAgIGNvbnN0IHBlcmZvcm1TZWFyY2ggPSB1c2VDYWxsYmFjayhhc3luYyAocTogc3RyaW5nLCBsYXQ6IG51bWJlciwgbG9uOiBudW1iZXIsIHJhZGl1czogbnVtYmVyLCB0aXRsZTogYm9vbGVhbiwgZGVzYzogYm9vbGVhbiwgY29tcDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGlmIChxLnRyaW0oKS5sZW5ndGggPCAyKSB7XHJcbiAgICAgICAgICAgICAgICBzZXRQZXJmb3JtZXJzKFtdKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBzZXRJc0xvYWRpbmcodHJ1ZSlcclxuICAgICAgICAgICAgc2V0RXJyb3IobnVsbClcclxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZ2xvYmFsU2VhcmNoKHtcclxuICAgICAgICAgICAgICAgIHE6IHEudHJpbSgpLFxyXG4gICAgICAgICAgICAgICAgbGF0LFxyXG4gICAgICAgICAgICAgICAgbG9uLFxyXG4gICAgICAgICAgICAgICAgcmFkaXVzLFxyXG4gICAgICAgICAgICAgICAgaW5UaXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICBpbkRlc2M6IGRlc2MsXHJcbiAgICAgICAgICAgICAgICBpbkNvbXA6IGNvbXBcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgc2V0UGVyZm9ybWVycyhyZXN1bHQpXHJcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJTZWFyY2ggZXJyb3I6XCIsIGVycilcclxuICAgICAgICAgICAgc2V0RXJyb3IoXCLQntGI0LjQsdC60LAg0L/RgNC4INC/0L7QuNGB0LrQtS4g0J/QvtC/0YDQvtCx0YPQudGC0LUg0YHQvdC+0LLQsC5cIilcclxuICAgICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgICAgICBzZXRJc0xvYWRpbmcoZmFsc2UpXHJcbiAgICAgICAgfVxyXG4gICAgfSwgW10pXHJcblxyXG4gICAgLy8gRGVib3VuY2VkIHNlYXJjaCB0cmlnZ2VyXHJcbiAgICBjb25zdCB0cmlnZ2VyU2VhcmNoID0gdXNlQ2FsbGJhY2soKG5ld1F1ZXJ5OiBzdHJpbmcsIGxhdD86IG51bWJlciwgbG9uPzogbnVtYmVyLCByYWQ/OiBudW1iZXIsIHRpdGxlPzogYm9vbGVhbiwgZGVzYz86IGJvb2xlYW4sIGNvbXA/OiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYgKHNlYXJjaFRpbWVvdXRSZWYuY3VycmVudCkgY2xlYXJUaW1lb3V0KHNlYXJjaFRpbWVvdXRSZWYuY3VycmVudClcclxuXHJcbiAgICAgICAgY29uc3QgY3VycmVudExhdCA9IGxhdCA/PyBtYXBCb3VuZHM/LmxhdFxyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRMb24gPSBsb24gPz8gbWFwQm91bmRzPy5sb25cclxuICAgICAgICBjb25zdCBjdXJyZW50UmFkID0gcmFkID8/IG1hcEJvdW5kcz8ucmFkaXVzXHJcblxyXG4gICAgICAgIGlmICghY3VycmVudExhdCB8fCAhY3VycmVudExvbikgcmV0dXJuIC8vINCW0LTRkdC8LCDQv9C+0LrQsCDQutCw0YDRgtCwINC00LDRgdGCINC60L7QvtGA0LTQuNC90LDRgtGLXHJcblxyXG4gICAgICAgIHNlYXJjaFRpbWVvdXRSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBwZXJmb3JtU2VhcmNoKFxyXG4gICAgICAgICAgICAgICAgbmV3UXVlcnksXHJcbiAgICAgICAgICAgICAgICBjdXJyZW50TGF0LFxyXG4gICAgICAgICAgICAgICAgY3VycmVudExvbixcclxuICAgICAgICAgICAgICAgIGN1cnJlbnRSYWQgfHwgNTAwMCxcclxuICAgICAgICAgICAgICAgIHRpdGxlID8/IGluVGl0bGUsXHJcbiAgICAgICAgICAgICAgICBkZXNjID8/IGluRGVzYyxcclxuICAgICAgICAgICAgICAgIGNvbXAgPz8gaW5Db21wXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICB9LCA0MDApXHJcbiAgICB9LCBbbWFwQm91bmRzLCBwZXJmb3JtU2VhcmNoLCBpblRpdGxlLCBpbkRlc2MsIGluQ29tcF0pXHJcblxyXG4gICAgY29uc3QgaGFuZGxlQm91bmRzQ2hhbmdlID0gdXNlQ2FsbGJhY2soKGxhdDogbnVtYmVyLCBsb246IG51bWJlciwgcmFkaXVzOiBudW1iZXIpID0+IHtcclxuICAgICAgICBzZXRNYXBCb3VuZHMoeyBsYXQsIGxvbiwgcmFkaXVzIH0pXHJcbiAgICAgICAgdHJpZ2dlclNlYXJjaChxdWVyeSwgbGF0LCBsb24sIHJhZGl1cylcclxuICAgIH0sIFt0cmlnZ2VyU2VhcmNoLCBxdWVyeV0pXHJcblxyXG4gICAgY29uc3QgaGFuZGxlVXNlckxvY2F0ZWQgPSB1c2VDYWxsYmFjaygobGF0OiBudW1iZXIsIGxvbjogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgc2V0TWFwQm91bmRzKHsgbGF0LCBsb24sIHJhZGl1czogNTAwMCB9KVxyXG4gICAgICAgIHRyaWdnZXJTZWFyY2gocXVlcnksIGxhdCwgbG9uLCA1MDAwKVxyXG4gICAgfSwgW3RyaWdnZXJTZWFyY2gsIHF1ZXJ5XSlcclxuXHJcbiAgICBjb25zdCBoYW5kbGVQZXJmb3JtZXJDbGljayA9IHVzZUNhbGxiYWNrKChpZDogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgc2V0QWN0aXZlUGVyZm9ybWVySWQoaWQpXHJcbiAgICAgICAgaWYgKHNpZGViYXJPcGVuKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYHBlcmZvcm1lci1jYXJkLSR7aWR9YClcclxuICAgICAgICAgICAgaWYgKGVsKSB7XHJcbiAgICAgICAgICAgICAgICBlbC5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJywgYmxvY2s6ICdjZW50ZXInIH0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBzZXRTaWRlYmFyT3Blbih0cnVlKVxyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYHBlcmZvcm1lci1jYXJkLSR7aWR9YClcclxuICAgICAgICAgICAgICAgIGlmIChlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGVsLnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnLCBibG9jazogJ2NlbnRlcicgfSlcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSwgMzAwKVxyXG4gICAgICAgIH1cclxuICAgIH0sIFtzaWRlYmFyT3Blbl0pXHJcblxyXG4gICAgY29uc3QgaGFuZGxlTGlzdFBlcmZvcm1lckNsaWNrID0gdXNlQ2FsbGJhY2soKGlkOiBzdHJpbmcpID0+IHtcclxuICAgICAgICBzZXRBY3RpdmVQZXJmb3JtZXJJZChpZClcclxuICAgICAgICBzZXRDZW50ZXJUcmlnZ2VyKHByZXYgPT4gcHJldiArIDEpXHJcbiAgICB9LCBbXSlcclxuXHJcbiAgICBjb25zdCBzb3J0ZWRJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xyXG4gICAgICAgIGxldCBpdGVtczogeyB0eXBlOiAnb2ZmZXInIHwgJ3BlcmZvcm1lcicsIHBlcmZvcm1lcjogU2VhcmNoUmVzdWx0SXRlbSwgb2ZmZXI/OiBhbnksIGRpc3RhbmNlOiBudW1iZXIsIHByaWNlOiBudW1iZXIgfVtdID0gW107XHJcbiAgICAgICAgcGVyZm9ybWVycy5mb3JFYWNoKHAgPT4ge1xyXG4gICAgICAgICAgICBpZiAocC5tYXRjaGVkT2ZmZXJzICYmIHAubWF0Y2hlZE9mZmVycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBwLm1hdGNoZWRPZmZlcnMuZm9yRWFjaChvID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHsgdHlwZTogJ29mZmVyJywgcGVyZm9ybWVyOiBwLCBvZmZlcjogbywgZGlzdGFuY2U6IHAuZGlzdGFuY2UgfHwgMCwgcHJpY2U6IG8ucHJpY2VBbW91bnQgPz8gby5hbW91bnQgPz8gMCB9KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7IHR5cGU6ICdwZXJmb3JtZXInLCBwZXJmb3JtZXI6IHAsIGRpc3RhbmNlOiBwLmRpc3RhbmNlIHx8IDAsIHByaWNlOiAwIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmIChzb3J0QnkgPT09IFwicHJpY2VfYXNjXCIpIHtcclxuICAgICAgICAgICAgaXRlbXMuc29ydCgoYSwgYikgPT4gYS5wcmljZSAtIGIucHJpY2UpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoc29ydEJ5ID09PSBcInByaWNlX2Rlc2NcIikge1xyXG4gICAgICAgICAgICBpdGVtcy5zb3J0KChhLCBiKSA9PiBiLnByaWNlIC0gYS5wcmljZSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChzb3J0QnkgPT09IFwiZGlzdGFuY2VfYXNjXCIpIHtcclxuICAgICAgICAgICAgaXRlbXMuc29ydCgoYSwgYikgPT4gYS5kaXN0YW5jZSAtIGIuZGlzdGFuY2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gaXRlbXM7XHJcbiAgICB9LCBbcGVyZm9ybWVycywgc29ydEJ5XSlcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCB3LWZ1bGxcIiBzdHlsZT17eyBoZWlnaHQ6IFwiY2FsYygxMDB2aCAtIDY0cHgpXCIgfX0+XHJcbiAgICAgICAgICAgIHsvKiA9PT0g0JHQvtC60L7QstCw0Y8g0L/QsNC90LXQu9GMOiDQn9C+0LjRgdC6ICsg0KHQv9C40YHQvtC6INC80LDRgdGC0LXRgNC+0LIgPT09ICovfVxyXG4gICAgICAgICAgICB7c2lkZWJhck9wZW4gJiYgKFxyXG4gICAgICAgICAgICAgICAgPGFzaWRlIGNsYXNzTmFtZT1cInctMi81IG1pbi13LVszODBweF0gbWF4LXctWzYwMHB4XSBib3JkZXItciBiZy1iYWNrZ3JvdW5kIGZsZXggZmxleC1jb2wgc2hyaW5rLTAgb3ZlcmZsb3ctaGlkZGVuIHNoYWRvdy14bCB6LTEwIHJlbGF0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgey8qINCX0LDQs9C+0LvQvtCy0L7QuiDQuCDRhNC40LvRjNGC0YDRiyAqL31cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInAtNCBib3JkZXItYiBzcGFjZS15LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJ0ZXh0LXhsIGZvbnQtYm9sZCBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWFyY2ggY2xhc3NOYW1lPVwiaC01IHctNSB0ZXh0LXByaW1hcnlcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINCf0L7QuNGB0Log0YPRgdC70YPQs1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTaWRlYmFyT3BlbihmYWxzZSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1tdXRlZC1mb3JlZ3JvdW5kIGhvdmVyOnRleHQtZm9yZWdyb3VuZCB0ZXh0LXhzIHB4LTIgcHktMSByb3VuZGVkIGhvdmVyOmJnLW11dGVkIHRyYW5zaXRpb24tY29sb3JzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDQodCy0LXRgNC90YPRgtGMXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7Lyog0KHRgtGA0L7QutCwINC/0L7QuNGB0LrQsCAqL31cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNlYXJjaCBjbGFzc05hbWU9XCJhYnNvbHV0ZSBsZWZ0LTMgdG9wLTMgaC00IHctNCB0ZXh0LW11dGVkLWZvcmVncm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLQp9GC0L4g0LLRiyDQuNGJ0LXRgtC1PyDQndCw0L/RgC4gJ9Cx0LDRgCcsICfRgNC10LzQvtC90YInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJwbC05IGJnLW11dGVkLzUwIGZvY3VzLXZpc2libGU6cmluZy1wcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17cXVlcnl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFF1ZXJ5KGUudGFyZ2V0LnZhbHVlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyU2VhcmNoKGUudGFyZ2V0LnZhbHVlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHsvKiDQp9C10LrQsdC+0LrRgdGLINC30L7QvSDQv9C+0LjRgdC60LAgKi99XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBnYXAtMiBwdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIGZvbnQtbWVkaXVtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXJcIj7QmNGB0LrQsNGC0Ywg0LI6PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNCB0ZXh0LXNtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZD17aW5UaXRsZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hlY2tlZENoYW5nZT17KGMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJblRpdGxlKCEhYyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlclNlYXJjaChxdWVyeSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgISFjLCBpbkRlc2MsIGluQ29tcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDQndCw0LfQstCw0L3QuNGP0YVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2hlY2tib3hcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e2luRGVzY31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hlY2tlZENoYW5nZT17KGMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJbkRlc2MoISFjKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyU2VhcmNoKHF1ZXJ5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBpblRpdGxlLCAhIWMsIGluQ29tcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDQntC/0LjRgdCw0L3QuNC4XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkPXtpbkNvbXB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoZWNrZWRDaGFuZ2U9eyhjKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SW5Db21wKCEhYyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlclNlYXJjaChxdWVyeSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgaW5UaXRsZSwgaW5EZXNjLCAhIWMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg0JrQvtC80L/QtdGC0LXQvdGG0LjRj9GFXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgey8qINCh0L/QuNGB0L7QuiDQvdCw0LnQtNC10L3QvdGL0YUg0LzQsNGB0YLQtdGA0L7QsiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtMSBvdmVyZmxvdy15LWF1dG8gYmctbXV0ZWQvMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3F1ZXJ5LnRyaW0oKSA9PT0gXCJcIiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHktMTYgcHgtNiB0ZXh0LWNlbnRlciBnYXAtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaC0xNiB3LTE2IHJvdW5kZWQtZnVsbCBiZy1tdXRlZCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWFwUGluIGNsYXNzTmFtZT1cImgtOCB3LTggdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtXCI+0JLQstC10LTQuNGC0LUg0LfQsNC/0YDQvtGBINC00LvRjyDQv9C+0LjRgdC60LA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg0KPQutCw0LbQuNGC0LUg0L3QsNC30LLQsNC90LjQtSDRg9GB0LvRg9Cz0LgsINC90LDQv9GA0LjQvNC10YAgJ9GD0LHQvtGA0LrQsCcg0LjQu9C4ICfQvdGP0L3RjycuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiBpc0xvYWRpbmcgJiYgcGVyZm9ybWVycy5sZW5ndGggPT09IDAgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB5LTE2IGdhcC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoLTggdy04IGJvcmRlci0zIGJvcmRlci1wcmltYXJ5IGJvcmRlci10LXRyYW5zcGFyZW50IHJvdW5kZWQtZnVsbCBhbmltYXRlLXNwaW5cIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+0JjRidC10Lwg0L/QvtC00YXQvtC00Y/RidC40LUg0YPRgdC70YPQs9C4Li4uPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiBwZXJmb3JtZXJzLmxlbmd0aCA9PT0gMCA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHktMTYgcHgtNiB0ZXh0LWNlbnRlciBnYXAtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaC0xNiB3LTE2IHJvdW5kZWQtZnVsbCBiZy1tdXRlZCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VhcmNoIGNsYXNzTmFtZT1cImgtOCB3LTggdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtXCI+0J3QuNGH0LXQs9C+INC90LUg0L3QsNC50LTQtdC90L48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg0J/QvtC/0YDQvtCx0YPQudGC0LUg0LjQt9C80LXQvdC40YLRjCDQt9Cw0L/RgNC+0YEsINGA0LDRgdGI0LjRgNC40YLRjCDQt9C+0L3RgyDQv9C+0LjRgdC60LAg0LjQu9C4INGD0LHRgNCw0YLRjCDRhNC40LvRjNGC0YDRiy5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGl2aWRlLXlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInB4LTQgcHktMiBiZy1tdXRlZC8zMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gc3RpY2t5IHRvcC0wIGJhY2tkcm9wLWJsdXIgei0xMCBib3JkZXItYlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCB3aGl0ZXNwYWNlLW5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg0J3QsNC50LTQtdC90L46IDxzdHJvbmcgY2xhc3NOYW1lPVwidGV4dC1mb3JlZ3JvdW5kXCI+e3BlcmZvcm1lcnMubGVuZ3RofTwvc3Ryb25nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3QgdmFsdWU9e3NvcnRCeX0gb25WYWx1ZUNoYW5nZT17c2V0U29ydEJ5fT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3RUcmlnZ2VyIGNsYXNzTmFtZT1cImgtNyB0ZXh0LXhzIHctYXV0byBtaW4tdy1bMTQwcHhdIGJvcmRlci1ub25lIGJnLXRyYW5zcGFyZW50IHNoYWRvdy1ub25lIGZvY3VzOnJpbmctMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3RWYWx1ZSBwbGFjZWhvbGRlcj1cItCh0L7RgNGC0LjRgNC+0LLQutCwXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU2VsZWN0VHJpZ2dlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3RDb250ZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3RJdGVtIHZhbHVlPVwiZGVmYXVsdFwiIGNsYXNzTmFtZT1cInRleHQteHNcIj7QmNC00LXQsNC70YzQvdC+INC/0L7QtNGF0L7QtNGP0YI8L1NlbGVjdEl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdEl0ZW0gdmFsdWU9XCJwcmljZV9hc2NcIiBjbGFzc05hbWU9XCJ0ZXh0LXhzXCI+0KHQvdCw0YfQsNC70LAg0LTQtdGI0LXQstC70LU8L1NlbGVjdEl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdEl0ZW0gdmFsdWU9XCJwcmljZV9kZXNjXCIgY2xhc3NOYW1lPVwidGV4dC14c1wiPtCh0L3QsNGH0LDQu9CwINC00L7RgNC+0LbQtTwvU2VsZWN0SXRlbT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0SXRlbSB2YWx1ZT1cImRpc3RhbmNlX2FzY1wiIGNsYXNzTmFtZT1cInRleHQteHNcIj7QodC90LDRh9Cw0LvQsCDQsdC70LjQttC1PC9TZWxlY3RJdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TZWxlY3RDb250ZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3NvcnRlZEl0ZW1zLm1hcCgoaXRlbSwgaWR4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHAgPSBpdGVtLnBlcmZvcm1lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc09ubGluZSA9IHAuc3RhdHVzID09PSBcItCT0L7RgtC+0LIg0Log0LfQsNC60LDQt9GDXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gaXRlbS50eXBlID09PSAnb2ZmZXInID8gYCR7aXRlbS5vZmZlci5pZH0tJHtpZHh9YCA6IGAke3AucGVyZm9ybWVySWR9LSR7aWR4fWBcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdERpc3RhbmNlID0gKGQ/OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkID09PSB1bmRlZmluZWQgfHwgZCA9PT0gbnVsbCkgcmV0dXJuICfQkiDQstCw0YjQtdC8INGA0LDQudC+0L3QtSc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZCA8IDEwMDApIHJldHVybiBgJHtNYXRoLnJvdW5kKGQpfSDQvCDQvtGCINCy0LDRgWA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7KGQgLyAxMDAwKS50b0ZpeGVkKDEpfSDQutC8INC+0YIg0LLQsNGBYDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBlcmZvcm1lckNsYXNzZXMgPSBpdGVtLnR5cGUgPT09ICdvZmZlcidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyBiZy1tdXRlZC80MCByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItdHJhbnNwYXJlbnQgb3BhY2l0eS0wIG1heC1oLTAgb3ZlcmZsb3ctaGlkZGVuIHRyYW5zZm9ybSBzY2FsZS05NSB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgZWFzZS1pbi1vdXQgZ3JvdXAtaG92ZXI6b3BhY2l0eS0xMDAgZ3JvdXAtaG92ZXI6bWF4LWgtWzEwMHB4XSBncm91cC1ob3ZlcjpzY2FsZS0xMDAgZ3JvdXAtaG92ZXI6bXQtMyBncm91cC1ob3ZlcjpwLTIgZ3JvdXAtaG92ZXI6Ym9yZGVyLWJvcmRlci81MFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgYmctYmFja2dyb3VuZCBib3JkZXIgcm91bmRlZC1sZyBwLTMgc2hhZG93LXNtIG10LTMgb3BhY2l0eS0xMDAgdHJhbnNpdGlvbi1hbGxcIjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtrZXl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9e2BwZXJmb3JtZXItY2FyZC0ke3AucGVyZm9ybWVySWR9LSR7aWR4fWB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlTGlzdFBlcmZvcm1lckNsaWNrKHAucGVyZm9ybWVySWQpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YHB4LTQgcHktNCBjdXJzb3ItcG9pbnRlciB0cmFuc2l0aW9uLWNvbG9ycyBncm91cCAke2FjdGl2ZVBlcmZvcm1lcklkID09PSBwLnBlcmZvcm1lcklkID8gJ2JnLXByaW1hcnkvNSBzaGFkb3ctaW5uZXIgYm9yZGVyLWwtNCBib3JkZXItbC1wcmltYXJ5JyA6ICdob3ZlcjpiZy1tdXRlZC81MCBib3JkZXItbC00IGJvcmRlci1sLXRyYW5zcGFyZW50J31gfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiDQmNC90YTQvtGA0LzQsNGG0LjRjyDQvtCxINGD0YHQu9GD0LPQtSDQuNC70Lgg0LrQvtC80L/QtdGC0LXQvdGG0LjQuCAo0LPQu9Cw0LLQvdCw0Y8pICovfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVtLnR5cGUgPT09ICdvZmZlcicgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWItNCBmbGV4IGdhcC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXRlbS5vZmZlci5pbWFnZVVybCAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzaHJpbmstMCB3LTI4IGgtMjggc206dy0zMiBzbTpoLTMyIHJvdW5kZWQtbGcgb3ZlcmZsb3ctaGlkZGVuIGJnLW11dGVkIHJlbGF0aXZlIGdyb3VwLWhvdmVyL2ltYWdlOnNoYWRvdy1tZCB0cmFuc2l0aW9uLWFsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9e2l0ZW0ub2ZmZXIuaW1hZ2VVcmx9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9e2l0ZW0ub2ZmZXIudGl0bGV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ3LWZ1bGwgaC1mdWxsIG9iamVjdC1jb3ZlciB0cmFuc2l0aW9uLXRyYW5zZm9ybSBkdXJhdGlvbi01MDAgZ3JvdXAtaG92ZXI6c2NhbGUtMTEwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC0wIGJnLWJsYWNrLzEwIGdyb3VwLWhvdmVyOmJnLXRyYW5zcGFyZW50IHRyYW5zaXRpb24tY29sb3JzIGR1cmF0aW9uLTUwMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTEgbWluLXctMCBmbGV4IGZsZXgtY29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1zdGFydCBnYXAtMiBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJmb250LWJvbGQgdGV4dC1sZyBsZWFkaW5nLXRpZ2h0IGdyb3VwLWhvdmVyOnRleHQtcHJpbWFyeSB0cmFuc2l0aW9uLWNvbG9ycyBsaW5lLWNsYW1wLTJcIj57aXRlbS5vZmZlci50aXRsZX08L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgaXRlbXMtZW5kIGdhcC0xIHNocmluay0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtYm9sZCB0ZXh0LXByaW1hcnkgd2hpdGVzcGFjZS1ub3dyYXAgYmctcHJpbWFyeS8xMCBweC0yIHB5LTAuNSByb3VuZGVkLW1kIHNoYWRvdy1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVtLnByaWNlfSDigr1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1tZWRpdW0gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHdoaXRlc3BhY2Utbm93cmFwIGJnLW11dGVkLzcwIHB4LTIgcHktMC41IHJvdW5kZWQtbWQgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWFwUGluIGNsYXNzTmFtZT1cImgtMyB3LTMgc2hyaW5rLTBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmb3JtYXREaXN0YW5jZShwLmRpc3RhbmNlKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZW0ub2ZmZXIuZGVzY3JpcHRpb24gJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBsaW5lLWNsYW1wLTIgbGVhZGluZy1yZWxheGVkIG1iLWF1dG9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVtLm9mZmVyLmRlc2NyaXB0aW9ufVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTQgdGV4dC1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPXtgL29mZmVycy8ke2l0ZW0ub2ZmZXIuaWR9YH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpfSAvLyBQcmV2ZW50IGNsaWNraW5nIHRoZSBjYXJkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1tZCB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRyYW5zaXRpb24tY29sb3JzIGJvcmRlciBib3JkZXItaW5wdXQgc2hhZG93LXNtIGJnLWJhY2tncm91bmQgaG92ZXI6YmctYWNjZW50IGhvdmVyOnRleHQtYWNjZW50LWZvcmVncm91bmQgaC05IHB4LTQgcHktMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINCf0YDQvtGB0LzQvtGC0YDQtdGC0Ywg0YPRgdC70YPQs9GDXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1iLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJ0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVyIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg0J3QsNC50LTQtdC90L4g0L/QviDQutC+0LzQv9C10YLQtdC90YbQuNC4XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtd3JhcCBnYXAtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwLm1hdGNoZWRDb21wZXRlbmNpZXMubWFwKGMgPT4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBrZXk9e2N9IGNsYXNzTmFtZT1cInB4LTIgcHktMC41IGJnLXByaW1hcnkvMTAgdGV4dC1wcmltYXJ5IHRleHQtWzEwcHhdIHJvdW5kZWQtZnVsbCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZSBmb250LW1lZGl1bVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2N9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Lyog0JrQsNGA0YLQvtGH0LrQsCDQuNGB0L/QvtC70L3QuNGC0LXQu9GPICovfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtwZXJmb3JtZXJDbGFzc2VzfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZWxhdGl2ZSBoLTggdy04IHNocmluay0wIHJvdW5kZWQtZnVsbCBvdmVyZmxvdy1oaWRkZW4gYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1pbmRpZ28tNTAwIHRvLXB1cnBsZS02MDAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgdGV4dC13aGl0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFVzZXIgY2xhc3NOYW1lPVwiaC00IHctNFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cC5hdmF0YXJVcmwgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPXtwLmF2YXRhclVybH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiQXZhdGFyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYWJzb2x1dGUgaW5zZXQtMCBoLWZ1bGwgdy1mdWxsIG9iamVjdC1jb3ZlciBiZy1iYWNrZ3JvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25FcnJvcj17KGUpID0+IHsgZS5jdXJyZW50VGFyZ2V0LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7IH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtMSBtaW4tdy0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImZvbnQtbWVkaXVtIHRleHQteHMgdHJ1bmNhdGVcIj57cC5uYW1lfTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2BmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMSB0ZXh0LVsxMHB4XSBmb250LW1lZGl1bSBzaHJpbmstMCBmbGV4LW5vd3JhcCAke2lzT25saW5lID8gXCJ0ZXh0LWdyZWVuLTUwMFwiIDogXCJ0ZXh0LWdyYXktNDAwXCJ9YH0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17YGgtMS41IHctMS41IHNocmluay0wIHJvdW5kZWQtZnVsbCAke2lzT25saW5lID8gXCJiZy1ncmVlbi01MDAgYW5pbWF0ZS1wdWxzZVwiIDogXCJiZy1ncmF5LTQwMFwifWB9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwLnN0YXR1c31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG10LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXBQaW4gY2xhc3NOYW1lPVwiaC0zLjUgdy0zLjUgc2hyaW5rLTAgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LW11dGVkLWZvcmVncm91bmQgdHJ1bmNhdGVcIj57Zm9ybWF0RGlzdGFuY2UocC5kaXN0YW5jZSl9PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtWzExcHhdIGZvbnQtbWVkaXVtIHRleHQtZm9yZWdyb3VuZC84MCBiZy1tdXRlZC84MCBweC0yIHB5LTAuNSByb3VuZGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwLnJvbGUgfHwgXCLQn9C+0LvRjNC30L7QstCw0YLQtdC70YxcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2FzaWRlPlxyXG4gICAgICAgICAgICApfVxyXG5cclxuICAgICAgICAgICAgeyFzaWRlYmFyT3BlbiAmJiAoXHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2lkZWJhck9wZW4odHJ1ZSl9XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYWJzb2x1dGUgbGVmdC0yIHRvcC0yMCB6LVsxMDAwXSBiZy1iYWNrZ3JvdW5kIGJvcmRlciBzaGFkb3ctbGcgcm91bmRlZC1sZyBweC00IHB5LTMgaG92ZXI6YmctbXV0ZWQgdHJhbnNpdGlvbi1jb2xvcnMgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC1zbSBmb250LW1lZGl1bVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPEZpbHRlciBjbGFzc05hbWU9XCJoLTQgdy00IHRleHQtcHJpbWFyeVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAg0KTQuNC70YzRgtGA0Ysg0Lgg0YHQv9C40YHQvtC6XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgKX1cclxuXHJcbiAgICAgICAgICAgIHsvKiA9PT0g0JrQsNGA0YLQsCA9PT0gKi99XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xIHJlbGF0aXZlIHotMFwiPlxyXG4gICAgICAgICAgICAgICAge2lzTG9jYXRpb25Mb2FkZWQgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgPExpdmVNYXBcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGVyZm9ybWVycz17cGVyZm9ybWVyc31cclxuICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yPXtlcnJvcn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbENlbnRlcj17aW5pdGlhbENlbnRlcn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgb25Cb3VuZHNDaGFuZ2U9e2hhbmRsZUJvdW5kc0NoYW5nZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgb25Vc2VyTG9jYXRlZD17aGFuZGxlVXNlckxvY2F0ZWR9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZVBlcmZvcm1lcklkPXthY3RpdmVQZXJmb3JtZXJJZH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2VudGVyVHJpZ2dlcj17Y2VudGVyVHJpZ2dlcn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgb25QZXJmb3JtZXJDbGljaz17aGFuZGxlUGVyZm9ybWVyQ2xpY2t9XHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB3LWZ1bGwgaC1mdWxsIGJnLW11dGVkLzMwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgZ2FwLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaC0xMCB3LTEwIGJvcmRlci00IGJvcmRlci1wcmltYXJ5IGJvcmRlci10LXRyYW5zcGFyZW50IHJvdW5kZWQtZnVsbCBhbmltYXRlLXNwaW5cIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHRleHQtc21cIj7QntC/0YDQtdC00LXQu9C10L3QuNC1INCy0LDRiNC10Lkg0L/QvtC30LjRhtC40LguLi48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICApXHJcbn1cclxuIl0sIm5hbWVzIjpbImR5bmFtaWMiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlUmVmIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsIlNlYXJjaCIsIlVzZXIiLCJGaWx0ZXIiLCJNYXBQaW4iLCJnbG9iYWxTZWFyY2giLCJJbnB1dCIsIkNoZWNrYm94IiwiU2VsZWN0IiwiU2VsZWN0Q29udGVudCIsIlNlbGVjdEl0ZW0iLCJTZWxlY3RUcmlnZ2VyIiwiU2VsZWN0VmFsdWUiLCJMaXZlTWFwIiwic3NyIiwibG9hZGluZyIsImRpdiIsImNsYXNzTmFtZSIsInAiLCJTZWFyY2hQYWdlIiwicGVyZm9ybWVycyIsInNldFBlcmZvcm1lcnMiLCJpc0xvYWRpbmciLCJzZXRJc0xvYWRpbmciLCJlcnJvciIsInNldEVycm9yIiwic2lkZWJhck9wZW4iLCJzZXRTaWRlYmFyT3BlbiIsImFjdGl2ZVBlcmZvcm1lcklkIiwic2V0QWN0aXZlUGVyZm9ybWVySWQiLCJjZW50ZXJUcmlnZ2VyIiwic2V0Q2VudGVyVHJpZ2dlciIsInNvcnRCeSIsInNldFNvcnRCeSIsInF1ZXJ5Iiwic2V0UXVlcnkiLCJpblRpdGxlIiwic2V0SW5UaXRsZSIsImluRGVzYyIsInNldEluRGVzYyIsImluQ29tcCIsInNldEluQ29tcCIsIm1hcEJvdW5kcyIsInNldE1hcEJvdW5kcyIsImluaXRpYWxDZW50ZXIiLCJzZXRJbml0aWFsQ2VudGVyIiwiaXNMb2NhdGlvbkxvYWRlZCIsInNldElzTG9jYXRpb25Mb2FkZWQiLCJzYXZlZFByb2ZpbGUiLCJsb2NhbFN0b3JhZ2UiLCJnZXRJdGVtIiwicHJvZmlsZSIsIkpTT04iLCJwYXJzZSIsImN1cnJlbnRMb2NhdGlvbiIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwiZSIsImNvbnNvbGUiLCJzZWFyY2hUaW1lb3V0UmVmIiwicGVyZm9ybVNlYXJjaCIsInEiLCJsYXQiLCJsb24iLCJyYWRpdXMiLCJ0aXRsZSIsImRlc2MiLCJjb21wIiwidHJpbSIsImxlbmd0aCIsInJlc3VsdCIsImVyciIsInRyaWdnZXJTZWFyY2giLCJuZXdRdWVyeSIsInJhZCIsImN1cnJlbnQiLCJjbGVhclRpbWVvdXQiLCJjdXJyZW50TGF0IiwiY3VycmVudExvbiIsImN1cnJlbnRSYWQiLCJzZXRUaW1lb3V0IiwiaGFuZGxlQm91bmRzQ2hhbmdlIiwiaGFuZGxlVXNlckxvY2F0ZWQiLCJoYW5kbGVQZXJmb3JtZXJDbGljayIsImlkIiwiZWwiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwic2Nyb2xsSW50b1ZpZXciLCJiZWhhdmlvciIsImJsb2NrIiwiaGFuZGxlTGlzdFBlcmZvcm1lckNsaWNrIiwicHJldiIsInNvcnRlZEl0ZW1zIiwiaXRlbXMiLCJmb3JFYWNoIiwibWF0Y2hlZE9mZmVycyIsIm8iLCJwdXNoIiwidHlwZSIsInBlcmZvcm1lciIsIm9mZmVyIiwiZGlzdGFuY2UiLCJwcmljZSIsInByaWNlQW1vdW50IiwiYW1vdW50Iiwic29ydCIsImEiLCJiIiwic3R5bGUiLCJoZWlnaHQiLCJhc2lkZSIsImgxIiwiYnV0dG9uIiwib25DbGljayIsInBsYWNlaG9sZGVyIiwidmFsdWUiLCJvbkNoYW5nZSIsInRhcmdldCIsImxhYmVsIiwiY2hlY2tlZCIsIm9uQ2hlY2tlZENoYW5nZSIsImMiLCJ1bmRlZmluZWQiLCJzcGFuIiwic3Ryb25nIiwib25WYWx1ZUNoYW5nZSIsIm1hcCIsIml0ZW0iLCJpZHgiLCJpc09ubGluZSIsInN0YXR1cyIsImtleSIsInBlcmZvcm1lcklkIiwiZm9ybWF0RGlzdGFuY2UiLCJkIiwiTWF0aCIsInJvdW5kIiwidG9GaXhlZCIsInBlcmZvcm1lckNsYXNzZXMiLCJpbWFnZVVybCIsImltZyIsInNyYyIsImFsdCIsImg0IiwiZGVzY3JpcHRpb24iLCJocmVmIiwicmVsIiwic3RvcFByb3BhZ2F0aW9uIiwibWF0Y2hlZENvbXBldGVuY2llcyIsImF2YXRhclVybCIsIm9uRXJyb3IiLCJjdXJyZW50VGFyZ2V0IiwiZGlzcGxheSIsIm5hbWUiLCJyb2xlIiwib25Cb3VuZHNDaGFuZ2UiLCJvblVzZXJMb2NhdGVkIiwib25QZXJmb3JtZXJDbGljayJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./src/app/search/page.tsx\n"));
/***/ })
});