22 lines
134 KiB
JavaScript
22 lines
134 KiB
JavaScript
"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-3\",\n children: [\n item.offer.imageUrl && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"shrink-0 w-20 h-20 rounded-md overflow-hidden bg-muted\",\n children: /*#__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\"\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 }, void 0, false, {\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\",\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-semibold leading-tight text-base 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: 318,\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\",\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: 320,\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: 324,\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: 323,\n columnNumber: 65\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 319,\n columnNumber: 61\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 317,\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\",\n children: item.offer.description\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 330,\n columnNumber: 61\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 316,\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: 338,\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: 343,\n columnNumber: 61\n }, this))\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 341,\n columnNumber: 53\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 337,\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: 354,\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: 356,\n columnNumber: 57\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: \"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: 366,\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: 368,\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: 367,\n columnNumber: 57\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 365,\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: 374,\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: 375,\n columnNumber: 61\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 373,\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: 377,\n columnNumber: 57\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 372,\n columnNumber: 53\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 364,\n columnNumber: 49\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 352,\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: 397,\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: 393,\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: 405,\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: 419,\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: 420,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 418,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 417,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 403,\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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QkFDR0MsU0FBUyxJQUFNdkYsZUFBZTtnQkFDOUJWLFdBQVU7O2tDQUVWLDhEQUFDZCxzR0FBTUE7d0JBQUNjLFdBQVU7Ozs7OztvQkFBeUI7Ozs7Ozs7MEJBTW5ELDhEQUFDRDtnQkFBSUMsV0FBVTswQkFDVjZCLGlDQUNHLDhEQUFDakM7b0JBQ0dPLFlBQVlBO29CQUNaRSxXQUFXQTtvQkFDWEUsT0FBT0E7b0JBQ1BvQixlQUFlQTtvQkFDZjZHLGdCQUFnQnhFO29CQUNoQnlFLGVBQWV4RTtvQkFDZnRELG1CQUFtQkE7b0JBQ25CRSxlQUFlQTtvQkFDZjZILGtCQUFrQnhFOzs7Ozt5Q0FHdEIsOERBQUNuRTtvQkFBSUMsV0FBVTs4QkFDWCw0RUFBQ0Q7d0JBQUlDLFdBQVU7OzBDQUNYLDhEQUFDRDtnQ0FBSUMsV0FBVTs7Ozs7OzBDQUNmLDhEQUFDQztnQ0FBRUQsV0FBVTswQ0FBZ0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPekU7R0FuWndCRTtNQUFBQSIsInNvdXJjZXMiOlsiRTpcXEdJVFxcbXZwXFxuYXNoZWwtZnJvbnRlbmRcXHNyY1xcYXBwXFxzZWFyY2hcXHBhZ2UudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXHJcblxyXG5pbXBvcnQgZHluYW1pYyBmcm9tIFwibmV4dC9keW5hbWljXCJcclxuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUNhbGxiYWNrLCB1c2VSZWYsIHVzZUVmZmVjdCwgdXNlTWVtbyB9IGZyb20gXCJyZWFjdFwiXHJcbmltcG9ydCB7IFNlYXJjaCwgVXNlciwgRmlsdGVyLCBNYXBQaW4sIEJyaWVmY2FzZSB9IGZyb20gXCJsdWNpZGUtcmVhY3RcIlxyXG5pbXBvcnQgeyBnbG9iYWxTZWFyY2gsIFNlYXJjaFJlc3VsdEl0ZW0gfSBmcm9tIFwiQC9zaGFyZWQvYXBpL3NlYXJjaFwiXHJcbmltcG9ydCB7IElucHV0IH0gZnJvbSBcIkAvY29tcG9uZW50cy91aS9pbnB1dFwiXHJcbmltcG9ydCB7IENoZWNrYm94IH0gZnJvbSBcIkAvY29tcG9uZW50cy91aS9jaGVja2JveFwiXHJcbmltcG9ydCB7IFNlbGVjdCwgU2VsZWN0Q29udGVudCwgU2VsZWN0SXRlbSwgU2VsZWN0VHJpZ2dlciwgU2VsZWN0VmFsdWUgfSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL3NlbGVjdFwiXHJcblxyXG4vLyDQktCQ0JbQndCeOiByZWFjdC1sZWFmbGV0INC70L7QvNCw0LXRgiBTU1Ig4oCUINC40LzQv9C+0YDRgtC40YDRg9C10Lwg0YEgc3NyOiBmYWxzZVxyXG5jb25zdCBMaXZlTWFwID0gZHluYW1pYygoKSA9PiBpbXBvcnQoXCJAL2NvbXBvbmVudHMvbWFwL0xpdmVNYXBcIiksIHtcclxuICAgIHNzcjogZmFsc2UsXHJcbiAgICBsb2FkaW5nOiAoKSA9PiAoXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB3LWZ1bGwgaC1mdWxsIGJnLW11dGVkLzMwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgZ2FwLTRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaC0xMCB3LTEwIGJvcmRlci00IGJvcmRlci1wcmltYXJ5IGJvcmRlci10LXRyYW5zcGFyZW50IHJvdW5kZWQtZnVsbCBhbmltYXRlLXNwaW5cIiAvPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHRleHQtc21cIj7Ql9Cw0LPRgNGD0LfQutCwINC60LDRgNGC0YsuLi48L3A+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgKSxcclxufSlcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFNlYXJjaFBhZ2UoKSB7XHJcbiAgICBjb25zdCBbcGVyZm9ybWVycywgc2V0UGVyZm9ybWVyc10gPSB1c2VTdGF0ZTxTZWFyY2hSZXN1bHRJdGVtW10+KFtdKVxyXG4gICAgY29uc3QgW2lzTG9hZGluZywgc2V0SXNMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxyXG4gICAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxyXG4gICAgY29uc3QgW3NpZGViYXJPcGVuLCBzZXRTaWRlYmFyT3Blbl0gPSB1c2VTdGF0ZSh0cnVlKVxyXG4gICAgY29uc3QgW2FjdGl2ZVBlcmZvcm1lcklkLCBzZXRBY3RpdmVQZXJmb3JtZXJJZF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxyXG4gICAgY29uc3QgW2NlbnRlclRyaWdnZXIsIHNldENlbnRlclRyaWdnZXJdID0gdXNlU3RhdGUoMClcclxuICAgIGNvbnN0IFtzb3J0QnksIHNldFNvcnRCeV0gPSB1c2VTdGF0ZTxzdHJpbmc+KFwiZGVmYXVsdFwiKVxyXG5cclxuICAgIC8vINCf0LDRgNCw0LzQtdGC0YDRiyDQv9C+0LjRgdC60LBcclxuICAgIGNvbnN0IFtxdWVyeSwgc2V0UXVlcnldID0gdXNlU3RhdGUoXCJcIilcclxuICAgIGNvbnN0IFtpblRpdGxlLCBzZXRJblRpdGxlXSA9IHVzZVN0YXRlKHRydWUpXHJcbiAgICBjb25zdCBbaW5EZXNjLCBzZXRJbkRlc2NdID0gdXNlU3RhdGUodHJ1ZSlcclxuICAgIGNvbnN0IFtpbkNvbXAsIHNldEluQ29tcF0gPSB1c2VTdGF0ZSh0cnVlKVxyXG5cclxuICAgIC8vINCi0LXQutGD0YnQsNGPINC/0L7Qt9C40YbQuNGPINC60LDRgNGC0YsgKNC4INC40L3QuNGG0LjQsNC70LjQt9Cw0YbQuNGPINC40LcgbG9jYWxTdG9yYWdlKVxyXG4gICAgY29uc3QgW21hcEJvdW5kcywgc2V0TWFwQm91bmRzXSA9IHVzZVN0YXRlPHsgbGF0OiBudW1iZXIsIGxvbjogbnVtYmVyLCByYWRpdXM6IG51bWJlciB9IHwgbnVsbD4obnVsbClcclxuICAgIGNvbnN0IFtpbml0aWFsQ2VudGVyLCBzZXRJbml0aWFsQ2VudGVyXSA9IHVzZVN0YXRlPFtudW1iZXIsIG51bWJlcl0+KFs1NS43NTU4LCAzNy42MTczXSkgLy8gRGVmYXVsdDogTW9zY293XHJcbiAgICBjb25zdCBbaXNMb2NhdGlvbkxvYWRlZCwgc2V0SXNMb2NhdGlvbkxvYWRlZF0gPSB1c2VTdGF0ZShmYWxzZSlcclxuXHJcbiAgICAvLyDQn9GL0YLQsNC10LzRgdGPINCy0L7RgdGB0YLQsNC90L7QstC40YLRjCDQu9C+0LrQsNGG0LjRjiDQv9GA0Lgg0LzQvtC90YLQuNGA0L7QstCw0L3QuNC4XHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNhdmVkUHJvZmlsZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidXNlci1wcm9maWxlXCIpXHJcbiAgICAgICAgICAgIGlmIChzYXZlZFByb2ZpbGUpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHByb2ZpbGUgPSBKU09OLnBhcnNlKHNhdmVkUHJvZmlsZSlcclxuICAgICAgICAgICAgICAgIGlmIChwcm9maWxlLmN1cnJlbnRMb2NhdGlvbiAmJiBwcm9maWxlLmN1cnJlbnRMb2NhdGlvbi5sYXRpdHVkZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHNldEluaXRpYWxDZW50ZXIoW3Byb2ZpbGUuY3VycmVudExvY2F0aW9uLmxhdGl0dWRlLCBwcm9maWxlLmN1cnJlbnRMb2NhdGlvbi5sb25naXR1ZGVdKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwi0J7RiNC40LHQutCwINGH0YLQtdC90LjRjyDQu9C+0LrQsNGG0LjQuCDQuNC3IGxvY2FsU3RvcmFnZVwiLCBlKVxyXG4gICAgICAgIH0gZmluYWxseSB7XHJcbiAgICAgICAgICAgIHNldElzTG9jYXRpb25Mb2FkZWQodHJ1ZSlcclxuICAgICAgICB9XHJcbiAgICB9LCBbXSlcclxuXHJcbiAgICBjb25zdCBzZWFyY2hUaW1lb3V0UmVmID0gdXNlUmVmPFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbD4obnVsbClcclxuXHJcbiAgICBjb25zdCBwZXJmb3JtU2VhcmNoID0gdXNlQ2FsbGJhY2soYXN5bmMgKHE6IHN0cmluZywgbGF0OiBudW1iZXIsIGxvbjogbnVtYmVyLCByYWRpdXM6IG51bWJlciwgdGl0bGU6IGJvb2xlYW4sIGRlc2M6IGJvb2xlYW4sIGNvbXA6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBpZiAocS50cmltKCkubGVuZ3RoIDwgMikge1xyXG4gICAgICAgICAgICAgICAgc2V0UGVyZm9ybWVycyhbXSlcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgc2V0SXNMb2FkaW5nKHRydWUpXHJcbiAgICAgICAgICAgIHNldEVycm9yKG51bGwpXHJcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGdsb2JhbFNlYXJjaCh7XHJcbiAgICAgICAgICAgICAgICBxOiBxLnRyaW0oKSxcclxuICAgICAgICAgICAgICAgIGxhdCxcclxuICAgICAgICAgICAgICAgIGxvbixcclxuICAgICAgICAgICAgICAgIHJhZGl1cyxcclxuICAgICAgICAgICAgICAgIGluVGl0bGU6IHRpdGxlLFxyXG4gICAgICAgICAgICAgICAgaW5EZXNjOiBkZXNjLFxyXG4gICAgICAgICAgICAgICAgaW5Db21wOiBjb21wXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIHNldFBlcmZvcm1lcnMocmVzdWx0KVxyXG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiU2VhcmNoIGVycm9yOlwiLCBlcnIpXHJcbiAgICAgICAgICAgIHNldEVycm9yKFwi0J7RiNC40LHQutCwINC/0YDQuCDQv9C+0LjRgdC60LUuINCf0L7Qv9GA0L7QsdGD0LnRgtC1INGB0L3QvtCy0LAuXCIpXHJcbiAgICAgICAgfSBmaW5hbGx5IHtcclxuICAgICAgICAgICAgc2V0SXNMb2FkaW5nKGZhbHNlKVxyXG4gICAgICAgIH1cclxuICAgIH0sIFtdKVxyXG5cclxuICAgIC8vIERlYm91bmNlZCBzZWFyY2ggdHJpZ2dlclxyXG4gICAgY29uc3QgdHJpZ2dlclNlYXJjaCA9IHVzZUNhbGxiYWNrKChuZXdRdWVyeTogc3RyaW5nLCBsYXQ/OiBudW1iZXIsIGxvbj86IG51bWJlciwgcmFkPzogbnVtYmVyLCB0aXRsZT86IGJvb2xlYW4sIGRlc2M/OiBib29sZWFuLCBjb21wPzogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIGlmIChzZWFyY2hUaW1lb3V0UmVmLmN1cnJlbnQpIGNsZWFyVGltZW91dChzZWFyY2hUaW1lb3V0UmVmLmN1cnJlbnQpXHJcblxyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRMYXQgPSBsYXQgPz8gbWFwQm91bmRzPy5sYXRcclxuICAgICAgICBjb25zdCBjdXJyZW50TG9uID0gbG9uID8/IG1hcEJvdW5kcz8ubG9uXHJcbiAgICAgICAgY29uc3QgY3VycmVudFJhZCA9IHJhZCA/PyBtYXBCb3VuZHM/LnJhZGl1c1xyXG5cclxuICAgICAgICBpZiAoIWN1cnJlbnRMYXQgfHwgIWN1cnJlbnRMb24pIHJldHVybiAvLyDQltC00ZHQvCwg0L/QvtC60LAg0LrQsNGA0YLQsCDQtNCw0YHRgiDQutC+0L7RgNC00LjQvdCw0YLRi1xyXG5cclxuICAgICAgICBzZWFyY2hUaW1lb3V0UmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgcGVyZm9ybVNlYXJjaChcclxuICAgICAgICAgICAgICAgIG5ld1F1ZXJ5LFxyXG4gICAgICAgICAgICAgICAgY3VycmVudExhdCxcclxuICAgICAgICAgICAgICAgIGN1cnJlbnRMb24sXHJcbiAgICAgICAgICAgICAgICBjdXJyZW50UmFkIHx8IDUwMDAsXHJcbiAgICAgICAgICAgICAgICB0aXRsZSA/PyBpblRpdGxlLFxyXG4gICAgICAgICAgICAgICAgZGVzYyA/PyBpbkRlc2MsXHJcbiAgICAgICAgICAgICAgICBjb21wID8/IGluQ29tcFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgfSwgNDAwKVxyXG4gICAgfSwgW21hcEJvdW5kcywgcGVyZm9ybVNlYXJjaCwgaW5UaXRsZSwgaW5EZXNjLCBpbkNvbXBdKVxyXG5cclxuICAgIGNvbnN0IGhhbmRsZUJvdW5kc0NoYW5nZSA9IHVzZUNhbGxiYWNrKChsYXQ6IG51bWJlciwgbG9uOiBudW1iZXIsIHJhZGl1czogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgc2V0TWFwQm91bmRzKHsgbGF0LCBsb24sIHJhZGl1cyB9KVxyXG4gICAgICAgIHRyaWdnZXJTZWFyY2gocXVlcnksIGxhdCwgbG9uLCByYWRpdXMpXHJcbiAgICB9LCBbdHJpZ2dlclNlYXJjaCwgcXVlcnldKVxyXG5cclxuICAgIGNvbnN0IGhhbmRsZVVzZXJMb2NhdGVkID0gdXNlQ2FsbGJhY2soKGxhdDogbnVtYmVyLCBsb246IG51bWJlcikgPT4ge1xyXG4gICAgICAgIHNldE1hcEJvdW5kcyh7IGxhdCwgbG9uLCByYWRpdXM6IDUwMDAgfSlcclxuICAgICAgICB0cmlnZ2VyU2VhcmNoKHF1ZXJ5LCBsYXQsIGxvbiwgNTAwMClcclxuICAgIH0sIFt0cmlnZ2VyU2VhcmNoLCBxdWVyeV0pXHJcblxyXG4gICAgY29uc3QgaGFuZGxlUGVyZm9ybWVyQ2xpY2sgPSB1c2VDYWxsYmFjaygoaWQ6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIHNldEFjdGl2ZVBlcmZvcm1lcklkKGlkKVxyXG4gICAgICAgIGlmIChzaWRlYmFyT3Blbikge1xyXG4gICAgICAgICAgICBjb25zdCBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBwZXJmb3JtZXItY2FyZC0ke2lkfWApXHJcbiAgICAgICAgICAgIGlmIChlbCkge1xyXG4gICAgICAgICAgICAgICAgZWwuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnY2VudGVyJyB9KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgc2V0U2lkZWJhck9wZW4odHJ1ZSlcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBwZXJmb3JtZXItY2FyZC0ke2lkfWApXHJcbiAgICAgICAgICAgICAgICBpZiAoZWwpIHtcclxuICAgICAgICAgICAgICAgICAgICBlbC5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJywgYmxvY2s6ICdjZW50ZXInIH0pXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sIDMwMClcclxuICAgICAgICB9XHJcbiAgICB9LCBbc2lkZWJhck9wZW5dKVxyXG5cclxuICAgIGNvbnN0IGhhbmRsZUxpc3RQZXJmb3JtZXJDbGljayA9IHVzZUNhbGxiYWNrKChpZDogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgc2V0QWN0aXZlUGVyZm9ybWVySWQoaWQpXHJcbiAgICAgICAgc2V0Q2VudGVyVHJpZ2dlcihwcmV2ID0+IHByZXYgKyAxKVxyXG4gICAgfSwgW10pXHJcblxyXG4gICAgY29uc3Qgc29ydGVkSXRlbXMgPSB1c2VNZW1vKCgpID0+IHtcclxuICAgICAgICBsZXQgaXRlbXM6IHsgdHlwZTogJ29mZmVyJyB8ICdwZXJmb3JtZXInLCBwZXJmb3JtZXI6IFNlYXJjaFJlc3VsdEl0ZW0sIG9mZmVyPzogYW55LCBkaXN0YW5jZTogbnVtYmVyLCBwcmljZTogbnVtYmVyIH1bXSA9IFtdO1xyXG4gICAgICAgIHBlcmZvcm1lcnMuZm9yRWFjaChwID0+IHtcclxuICAgICAgICAgICAgaWYgKHAubWF0Y2hlZE9mZmVycyAmJiBwLm1hdGNoZWRPZmZlcnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgcC5tYXRjaGVkT2ZmZXJzLmZvckVhY2gobyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7IHR5cGU6ICdvZmZlcicsIHBlcmZvcm1lcjogcCwgb2ZmZXI6IG8sIGRpc3RhbmNlOiBwLmRpc3RhbmNlIHx8IDAsIHByaWNlOiBvLnByaWNlQW1vdW50ID8/IG8uYW1vdW50ID8/IDAgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goeyB0eXBlOiAncGVyZm9ybWVyJywgcGVyZm9ybWVyOiBwLCBkaXN0YW5jZTogcC5kaXN0YW5jZSB8fCAwLCBwcmljZTogMCB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAoc29ydEJ5ID09PSBcInByaWNlX2FzY1wiKSB7XHJcbiAgICAgICAgICAgIGl0ZW1zLnNvcnQoKGEsIGIpID0+IGEucHJpY2UgLSBiLnByaWNlKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHNvcnRCeSA9PT0gXCJwcmljZV9kZXNjXCIpIHtcclxuICAgICAgICAgICAgaXRlbXMuc29ydCgoYSwgYikgPT4gYi5wcmljZSAtIGEucHJpY2UpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoc29ydEJ5ID09PSBcImRpc3RhbmNlX2FzY1wiKSB7XHJcbiAgICAgICAgICAgIGl0ZW1zLnNvcnQoKGEsIGIpID0+IGEuZGlzdGFuY2UgLSBiLmRpc3RhbmNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xyXG4gICAgfSwgW3BlcmZvcm1lcnMsIHNvcnRCeV0pXHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggdy1mdWxsXCIgc3R5bGU9e3sgaGVpZ2h0OiBcImNhbGMoMTAwdmggLSA2NHB4KVwiIH19PlxyXG4gICAgICAgICAgICB7LyogPT09INCR0L7QutC+0LLQsNGPINC/0LDQvdC10LvRjDog0J/QvtC40YHQuiArINCh0L/QuNGB0L7QuiDQvNCw0YHRgtC10YDQvtCyID09PSAqL31cclxuICAgICAgICAgICAge3NpZGViYXJPcGVuICYmIChcclxuICAgICAgICAgICAgICAgIDxhc2lkZSBjbGFzc05hbWU9XCJ3LTIvNSBtaW4tdy1bMzgwcHhdIG1heC13LVs2MDBweF0gYm9yZGVyLXIgYmctYmFja2dyb3VuZCBmbGV4IGZsZXgtY29sIHNocmluay0wIG92ZXJmbG93LWhpZGRlbiBzaGFkb3cteGwgei0xMCByZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHsvKiDQl9Cw0LPQvtC70L7QstC+0Log0Lgg0YTQuNC70YzRgtGA0YsgKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwLTQgYm9yZGVyLWIgc3BhY2UteS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDEgY2xhc3NOYW1lPVwidGV4dC14bCBmb250LWJvbGQgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VhcmNoIGNsYXNzTmFtZT1cImgtNSB3LTUgdGV4dC1wcmltYXJ5XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDQn9C+0LjRgdC6INGD0YHQu9GD0LNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2lkZWJhck9wZW4oZmFsc2UpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtbXV0ZWQtZm9yZWdyb3VuZCBob3Zlcjp0ZXh0LWZvcmVncm91bmQgdGV4dC14cyBweC0yIHB5LTEgcm91bmRlZCBob3ZlcjpiZy1tdXRlZCB0cmFuc2l0aW9uLWNvbG9yc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg0KHQstC10YDQvdGD0YLRjFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgey8qINCh0YLRgNC+0LrQsCDQv9C+0LjRgdC60LAgKi99XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWFyY2ggY2xhc3NOYW1lPVwiYWJzb2x1dGUgbGVmdC0zIHRvcC0zIGgtNCB3LTQgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi0KfRgtC+INCy0Ysg0LjRidC10YLQtT8g0J3QsNC/0YAuICfQsdCw0YAnLCAn0YDQtdC80L7QvdGCJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicGwtOSBiZy1tdXRlZC81MCBmb2N1cy12aXNpYmxlOnJpbmctcHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3F1ZXJ5fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRRdWVyeShlLnRhcmdldC52YWx1ZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlclNlYXJjaChlLnRhcmdldC52YWx1ZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7Lyog0KfQtdC60LHQvtC60YHRiyDQt9C+0L0g0L/QvtC40YHQutCwICovfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgZ2FwLTIgcHQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LW11dGVkLWZvcmVncm91bmQgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVyXCI+0JjRgdC60LDRgtGMINCyOjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTQgdGV4dC1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2hlY2tib3hcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e2luVGl0bGV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoZWNrZWRDaGFuZ2U9eyhjKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SW5UaXRsZSghIWMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJTZWFyY2gocXVlcnksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsICEhYywgaW5EZXNjLCBpbkNvbXApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg0J3QsNC30LLQsNC90LjRj9GFXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkPXtpbkRlc2N9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoZWNrZWRDaGFuZ2U9eyhjKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SW5EZXNjKCEhYyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlclNlYXJjaChxdWVyeSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgaW5UaXRsZSwgISFjLCBpbkNvbXApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg0J7Qv9C40YHQsNC90LjQuFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZD17aW5Db21wfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGVja2VkQ2hhbmdlPXsoYykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEluQ29tcCghIWMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJTZWFyY2gocXVlcnksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGluVGl0bGUsIGluRGVzYywgISFjKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINCa0L7QvNC/0LXRgtC10L3RhtC40Y/RhVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHsvKiDQodC/0LjRgdC+0Log0L3QsNC50LTQtdC90L3Ri9GFINC80LDRgdGC0LXRgNC+0LIgKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTEgb3ZlcmZsb3cteS1hdXRvIGJnLW11dGVkLzEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtxdWVyeS50cmltKCkgPT09IFwiXCIgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB5LTE2IHB4LTYgdGV4dC1jZW50ZXIgZ2FwLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImgtMTYgdy0xNiByb3VuZGVkLWZ1bGwgYmctbXV0ZWQgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hcFBpbiBjbGFzc05hbWU9XCJoLTggdy04IHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSBmb250LW1lZGl1bVwiPtCS0LLQtdC00LjRgtC1INC30LDQv9GA0L7RgSDQtNC70Y8g0L/QvtC40YHQutCwPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINCj0LrQsNC20LjRgtC1INC90LDQt9Cy0LDQvdC40LUg0YPRgdC70YPQs9C4LCDQvdCw0L/RgNC40LzQtdGAICfRg9Cx0L7RgNC60LAnINC40LvQuCAn0L3Rj9C90Y8nLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApIDogaXNMb2FkaW5nICYmIHBlcmZvcm1lcnMubGVuZ3RoID09PSAwID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBweS0xNiBnYXAtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaC04IHctOCBib3JkZXItMyBib3JkZXItcHJpbWFyeSBib3JkZXItdC10cmFuc3BhcmVudCByb3VuZGVkLWZ1bGwgYW5pbWF0ZS1zcGluXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPtCY0YnQtdC8INC/0L7QtNGF0L7QtNGP0YnQuNC1INGD0YHQu9GD0LPQuC4uLjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApIDogcGVyZm9ybWVycy5sZW5ndGggPT09IDAgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB5LTE2IHB4LTYgdGV4dC1jZW50ZXIgZ2FwLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImgtMTYgdy0xNiByb3VuZGVkLWZ1bGwgYmctbXV0ZWQgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNlYXJjaCBjbGFzc05hbWU9XCJoLTggdy04IHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSBmb250LW1lZGl1bVwiPtCd0LjRh9C10LPQviDQvdC1INC90LDQudC00LXQvdC+PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINCf0L7Qv9GA0L7QsdGD0LnRgtC1INC40LfQvNC10L3QuNGC0Ywg0LfQsNC/0YDQvtGBLCDRgNCw0YHRiNC40YDQuNGC0Ywg0LfQvtC90YMg0L/QvtC40YHQutCwINC40LvQuCDRg9Cx0YDQsNGC0Ywg0YTQuNC70YzRgtGA0YsuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRpdmlkZS15XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJweC00IHB5LTIgYmctbXV0ZWQvMzAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHN0aWNreSB0b3AtMCBiYWNrZHJvcC1ibHVyIHotMTAgYm9yZGVyLWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LW11dGVkLWZvcmVncm91bmQgd2hpdGVzcGFjZS1ub3dyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINCd0LDQudC00LXQvdC+OiA8c3Ryb25nIGNsYXNzTmFtZT1cInRleHQtZm9yZWdyb3VuZFwiPntwZXJmb3JtZXJzLmxlbmd0aH08L3N0cm9uZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0IHZhbHVlPXtzb3J0Qnl9IG9uVmFsdWVDaGFuZ2U9e3NldFNvcnRCeX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0VHJpZ2dlciBjbGFzc05hbWU9XCJoLTcgdGV4dC14cyB3LWF1dG8gbWluLXctWzE0MHB4XSBib3JkZXItbm9uZSBiZy10cmFuc3BhcmVudCBzaGFkb3ctbm9uZSBmb2N1czpyaW5nLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0VmFsdWUgcGxhY2Vob2xkZXI9XCLQodC+0YDRgtC40YDQvtCy0LrQsFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NlbGVjdFRyaWdnZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0Q29udGVudD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0SXRlbSB2YWx1ZT1cImRlZmF1bHRcIiBjbGFzc05hbWU9XCJ0ZXh0LXhzXCI+0JjQtNC10LDQu9GM0L3QviDQv9C+0LTRhdC+0LTRj9GCPC9TZWxlY3RJdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3RJdGVtIHZhbHVlPVwicHJpY2VfYXNjXCIgY2xhc3NOYW1lPVwidGV4dC14c1wiPtCh0L3QsNGH0LDQu9CwINC00LXRiNC10LLQu9C1PC9TZWxlY3RJdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3RJdGVtIHZhbHVlPVwicHJpY2VfZGVzY1wiIGNsYXNzTmFtZT1cInRleHQteHNcIj7QodC90LDRh9Cw0LvQsCDQtNC+0YDQvtC20LU8L1NlbGVjdEl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdEl0ZW0gdmFsdWU9XCJkaXN0YW5jZV9hc2NcIiBjbGFzc05hbWU9XCJ0ZXh0LXhzXCI+0KHQvdCw0YfQsNC70LAg0LHQu9C40LbQtTwvU2VsZWN0SXRlbT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU2VsZWN0Q29udGVudD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzb3J0ZWRJdGVtcy5tYXAoKGl0ZW0sIGlkeCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwID0gaXRlbS5wZXJmb3JtZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNPbmxpbmUgPSBwLnN0YXR1cyA9PT0gXCLQk9C+0YLQvtCyINC6INC30LDQutCw0LfRg1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGl0ZW0udHlwZSA9PT0gJ29mZmVyJyA/IGAke2l0ZW0ub2ZmZXIuaWR9LSR7aWR4fWAgOiBgJHtwLnBlcmZvcm1lcklkfS0ke2lkeH1gXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXREaXN0YW5jZSA9IChkPzogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZCA9PT0gdW5kZWZpbmVkIHx8IGQgPT09IG51bGwpIHJldHVybiAn0JIg0LLQsNGI0LXQvCDRgNCw0LnQvtC90LUnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGQgPCAxMDAwKSByZXR1cm4gYCR7TWF0aC5yb3VuZChkKX0g0Lwg0L7RgiDQstCw0YFgO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAkeyhkIC8gMTAwMCkudG9GaXhlZCgxKX0g0LrQvCDQvtGCINCy0LDRgWA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwZXJmb3JtZXJDbGFzc2VzID0gaXRlbS50eXBlID09PSAnb2ZmZXInXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgYmctbXV0ZWQvNDAgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLXRyYW5zcGFyZW50IG9wYWNpdHktMCBtYXgtaC0wIG92ZXJmbG93LWhpZGRlbiB0cmFuc2Zvcm0gc2NhbGUtOTUgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMzAwIGVhc2UtaW4tb3V0IGdyb3VwLWhvdmVyOm9wYWNpdHktMTAwIGdyb3VwLWhvdmVyOm1heC1oLVsxMDBweF0gZ3JvdXAtaG92ZXI6c2NhbGUtMTAwIGdyb3VwLWhvdmVyOm10LTMgZ3JvdXAtaG92ZXI6cC0yIGdyb3VwLWhvdmVyOmJvcmRlci1ib3JkZXIvNTBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIGJnLWJhY2tncm91bmQgYm9yZGVyIHJvdW5kZWQtbGcgcC0zIHNoYWRvdy1zbSBtdC0zIG9wYWNpdHktMTAwIHRyYW5zaXRpb24tYWxsXCI7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17a2V5fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPXtgcGVyZm9ybWVyLWNhcmQtJHtwLnBlcmZvcm1lcklkfS0ke2lkeH1gfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZUxpc3RQZXJmb3JtZXJDbGljayhwLnBlcmZvcm1lcklkKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2BweC00IHB5LTQgY3Vyc29yLXBvaW50ZXIgdHJhbnNpdGlvbi1jb2xvcnMgZ3JvdXAgJHthY3RpdmVQZXJmb3JtZXJJZCA9PT0gcC5wZXJmb3JtZXJJZCA/ICdiZy1wcmltYXJ5LzUgc2hhZG93LWlubmVyIGJvcmRlci1sLTQgYm9yZGVyLWwtcHJpbWFyeScgOiAnaG92ZXI6YmctbXV0ZWQvNTAgYm9yZGVyLWwtNCBib3JkZXItbC10cmFuc3BhcmVudCd9YH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Lyog0JjQvdGE0L7RgNC80LDRhtC40Y8g0L7QsSDRg9GB0LvRg9Cz0LUg0LjQu9C4INC60L7QvNC/0LXRgtC10L3RhtC40LggKNCz0LvQsNCy0L3QsNGPKSAqL31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXRlbS50eXBlID09PSAnb2ZmZXInID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1iLTQgZmxleCBnYXAtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZW0ub2ZmZXIuaW1hZ2VVcmwgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2hyaW5rLTAgdy0yMCBoLTIwIHJvdW5kZWQtbWQgb3ZlcmZsb3ctaGlkZGVuIGJnLW11dGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPXtpdGVtLm9mZmVyLmltYWdlVXJsfSBhbHQ9e2l0ZW0ub2ZmZXIudGl0bGV9IGNsYXNzTmFtZT1cInctZnVsbCBoLWZ1bGwgb2JqZWN0LWNvdmVyXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtMSBtaW4tdy0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1zdGFydCBnYXAtMiBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJmb250LXNlbWlib2xkIGxlYWRpbmctdGlnaHQgdGV4dC1iYXNlIGdyb3VwLWhvdmVyOnRleHQtcHJpbWFyeSB0cmFuc2l0aW9uLWNvbG9ycyBsaW5lLWNsYW1wLTJcIj57aXRlbS5vZmZlci50aXRsZX08L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgaXRlbXMtZW5kIGdhcC0xIHNocmluay0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtYm9sZCB0ZXh0LXByaW1hcnkgd2hpdGVzcGFjZS1ub3dyYXAgYmctcHJpbWFyeS8xMCBweC0yIHB5LTAuNSByb3VuZGVkLW1kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZW0ucHJpY2V9IOKCvVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LW11dGVkLWZvcmVncm91bmQgd2hpdGVzcGFjZS1ub3dyYXAgYmctbXV0ZWQvNzAgcHgtMiBweS0wLjUgcm91bmRlZC1tZCBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXBQaW4gY2xhc3NOYW1lPVwiaC0zIHctMyBzaHJpbmstMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2Zvcm1hdERpc3RhbmNlKHAuZGlzdGFuY2UpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXRlbS5vZmZlci5kZXNjcmlwdGlvbiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIGxpbmUtY2xhbXAtMiBsZWFkaW5nLXJlbGF4ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVtLm9mZmVyLmRlc2NyaXB0aW9ufVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1iLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJ0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVyIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBtYi0zXCI+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+XHJcbiAgICApXHJcbn1cclxuIl0sIm5hbWVzIjpbImR5bmFtaWMiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlUmVmIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsIlNlYXJjaCIsIlVzZXIiLCJGaWx0ZXIiLCJNYXBQaW4iLCJnbG9iYWxTZWFyY2giLCJJbnB1dCIsIkNoZWNrYm94IiwiU2VsZWN0IiwiU2VsZWN0Q29udGVudCIsIlNlbGVjdEl0ZW0iLCJTZWxlY3RUcmlnZ2VyIiwiU2VsZWN0VmFsdWUiLCJMaXZlTWFwIiwic3NyIiwibG9hZGluZyIsImRpdiIsImNsYXNzTmFtZSIsInAiLCJTZWFyY2hQYWdlIiwicGVyZm9ybWVycyIsInNldFBlcmZvcm1lcnMiLCJpc0xvYWRpbmciLCJzZXRJc0xvYWRpbmciLCJlcnJvciIsInNldEVycm9yIiwic2lkZWJhck9wZW4iLCJzZXRTaWRlYmFyT3BlbiIsImFjdGl2ZVBlcmZvcm1lcklkIiwic2V0QWN0aXZlUGVyZm9ybWVySWQiLCJjZW50ZXJUcmlnZ2VyIiwic2V0Q2VudGVyVHJpZ2dlciIsInNvcnRCeSIsInNldFNvcnRCeSIsInF1ZXJ5Iiwic2V0UXVlcnkiLCJpblRpdGxlIiwic2V0SW5UaXRsZSIsImluRGVzYyIsInNldEluRGVzYyIsImluQ29tcCIsInNldEluQ29tcCIsIm1hcEJvdW5kcyIsInNldE1hcEJvdW5kcyIsImluaXRpYWxDZW50ZXIiLCJzZXRJbml0aWFsQ2VudGVyIiwiaXNMb2NhdGlvbkxvYWRlZCIsInNldElzTG9jYXRpb25Mb2FkZWQiLCJzYXZlZFByb2ZpbGUiLCJsb2NhbFN0b3JhZ2UiLCJnZXRJdGVtIiwicHJvZmlsZSIsIkpTT04iLCJwYXJzZSIsImN1cnJlbnRMb2NhdGlvbiIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwiZSIsImNvbnNvbGUiLCJzZWFyY2hUaW1lb3V0UmVmIiwicGVyZm9ybVNlYXJjaCIsInEiLCJsYXQiLCJsb24iLCJyYWRpdXMiLCJ0aXRsZSIsImRlc2MiLCJjb21wIiwidHJpbSIsImxlbmd0aCIsInJlc3VsdCIsImVyciIsInRyaWdnZXJTZWFyY2giLCJuZXdRdWVyeSIsInJhZCIsImN1cnJlbnQiLCJjbGVhclRpbWVvdXQiLCJjdXJyZW50TGF0IiwiY3VycmVudExvbiIsImN1cnJlbnRSYWQiLCJzZXRUaW1lb3V0IiwiaGFuZGxlQm91bmRzQ2hhbmdlIiwiaGFuZGxlVXNlckxvY2F0ZWQiLCJoYW5kbGVQZXJmb3JtZXJDbGljayIsImlkIiwiZWwiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwic2Nyb2xsSW50b1ZpZXciLCJiZWhhdmlvciIsImJsb2NrIiwiaGFuZGxlTGlzdFBlcmZvcm1lckNsaWNrIiwicHJldiIsInNvcnRlZEl0ZW1zIiwiaXRlbXMiLCJmb3JFYWNoIiwibWF0Y2hlZE9mZmVycyIsIm8iLCJwdXNoIiwidHlwZSIsInBlcmZvcm1lciIsIm9mZmVyIiwiZGlzdGFuY2UiLCJwcmljZSIsInByaWNlQW1vdW50IiwiYW1vdW50Iiwic29ydCIsImEiLCJiIiwic3R5bGUiLCJoZWlnaHQiLCJhc2lkZSIsImgxIiwiYnV0dG9uIiwib25DbGljayIsInBsYWNlaG9sZGVyIiwidmFsdWUiLCJvbkNoYW5nZSIsInRhcmdldCIsImxhYmVsIiwiY2hlY2tlZCIsIm9uQ2hlY2tlZENoYW5nZSIsImMiLCJ1bmRlZmluZWQiLCJzcGFuIiwic3Ryb25nIiwib25WYWx1ZUNoYW5nZSIsIm1hcCIsIml0ZW0iLCJpZHgiLCJpc09ubGluZSIsInN0YXR1cyIsImtleSIsInBlcmZvcm1lcklkIiwiZm9ybWF0RGlzdGFuY2UiLCJkIiwiTWF0aCIsInJvdW5kIiwidG9GaXhlZCIsInBlcmZvcm1lckNsYXNzZXMiLCJpbWFnZVVybCIsImltZyIsInNyYyIsImFsdCIsImg0IiwiZGVzY3JpcHRpb24iLCJtYXRjaGVkQ29tcGV0ZW5jaWVzIiwiYXZhdGFyVXJsIiwib25FcnJvciIsImN1cnJlbnRUYXJnZXQiLCJkaXNwbGF5IiwibmFtZSIsInJvbGUiLCJvbkJvdW5kc0NoYW5nZSIsIm9uVXNlckxvY2F0ZWQiLCJvblBlcmZvcm1lckNsaWNrIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./src/app/search/page.tsx\n"));
|
||
|
||
/***/ })
|
||
|
||
}); |