Files
Dramlog-Prod/.next/static/webpack/app/page.1c4ded7e3da47446.hot-update.js
2025-12-17 23:12:53 +01:00

22 lines
30 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/page",{
/***/ "(app-pages-browser)/./src/app/page.tsx":
/*!**************************!*\
!*** ./src/app/page.tsx ***!
\**************************/
/***/ (function(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\": function() { return /* binding */ Home; }\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 react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _supabase_auth_helpers_nextjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @supabase/auth-helpers-nextjs */ \"(app-pages-browser)/./node_modules/@supabase/auth-helpers-nextjs/dist/index.js\");\n/* harmony import */ var _supabase_auth_helpers_nextjs__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_supabase_auth_helpers_nextjs__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _components_CameraCapture__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/CameraCapture */ \"(app-pages-browser)/./src/components/CameraCapture.tsx\");\n/* harmony import */ var _components_BottleGrid__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/BottleGrid */ \"(app-pages-browser)/./src/components/BottleGrid.tsx\");\n/* harmony import */ var _components_AuthForm__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/AuthForm */ \"(app-pages-browser)/./src/components/AuthForm.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\nfunction Home() {\n _s();\n const supabase = (0,_supabase_auth_helpers_nextjs__WEBPACK_IMPORTED_MODULE_2__.createClientComponentClient)();\n const [bottles, setBottles] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [isLoading, setIsLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n const [user, setUser] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null); // Added user state\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n // Check session\n const checkUser = async ()=>{\n const { data: { session } } = await supabase.auth.getSession();\n var _session_user;\n setUser((_session_user = session === null || session === void 0 ? void 0 : session.user) !== null && _session_user !== void 0 ? _session_user : null);\n if (session === null || session === void 0 ? void 0 : session.user) {\n fetchCollection();\n } else {\n setIsLoading(false);\n }\n };\n checkUser();\n // Listen for auth changes\n const { data: { subscription } } = supabase.auth.onAuthStateChange((_event, session)=>{\n var _session_user;\n setUser((_session_user = session === null || session === void 0 ? void 0 : session.user) !== null && _session_user !== void 0 ? _session_user : null);\n if (session === null || session === void 0 ? void 0 : session.user) {\n fetchCollection();\n } else {\n setBottles([]);\n }\n });\n return ()=>subscription.unsubscribe();\n }, []);\n const fetchCollection = async ()=>{\n setIsLoading(true);\n try {\n // Fetch bottles with their latest tasting date\n const { data, error } = await supabase.from(\"bottles\").select(\"\\n *,\\n tastings (\\n created_at\\n )\\n \").order(\"created_at\", {\n ascending: false\n });\n if (error) throw error;\n // Process data to get the absolute latest tasting date for each bottle\n const processedBottles = (data || []).map((bottle)=>{\n const lastTasted = bottle.tastings && bottle.tastings.length > 0 ? bottle.tastings.reduce((latest, current)=>new Date(current.created_at) > new Date(latest) ? current.created_at : latest, bottle.tastings[0].created_at) : null;\n return {\n ...bottle,\n last_tasted: lastTasted\n };\n });\n setBottles(processedBottles);\n } catch (err) {\n console.error(\"Error fetching collection:\", err);\n } finally{\n setIsLoading(false);\n }\n };\n const handleLogout = async ()=>{\n await supabase.auth.signOut();\n };\n if (!user) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"flex min-h-screen flex-col items-center justify-center p-6 bg-zinc-50 dark:bg-black\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-12 text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-5xl font-black text-zinc-900 dark:text-white tracking-tighter mb-4\",\n children: [\n \"WHISKY\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-amber-600\",\n children: \"VAULT\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 90,\n columnNumber: 31\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 89,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-zinc-500 max-w-sm mx-auto\",\n children: \"Scanne deine Flaschen, tracke deine Tastings und verwalte deinen Keller.\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 92,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 88,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_AuthForm__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 94,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 87,\n columnNumber: 13\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"flex min-h-screen flex-col items-center gap-12 p-6 md:p-24 bg-zinc-50 dark:bg-black\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"z-10 max-w-5xl w-full flex flex-col items-center gap-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"w-full flex justify-between items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-4xl font-black text-zinc-900 dark:text-white tracking-tighter\",\n children: [\n \"WHISKY\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-amber-600\",\n children: \"VAULT\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 104,\n columnNumber: 31\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 103,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: handleLogout,\n className: \"text-sm font-medium text-zinc-500 hover:text-zinc-800 dark:hover:text-zinc-300 transition-colors\",\n children: \"Abmelden\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 106,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 102,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_CameraCapture__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n onSaveComplete: fetchCollection\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 114,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full mt-12\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-2xl font-bold mb-6 text-zinc-800 dark:text-zinc-100 flex items-center gap-3\",\n children: [\n \"Deine Sammlung\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm font-normal text-zinc-500 bg-zinc-100 dark:bg-zinc-800 px-3 py-1 rounded-full\",\n children: bottles.length\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 119,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 117,\n columnNumber: 21\n }, this),\n isLoading ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-center py-12\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"animate-spin rounded-full h-8 w-8 border-b-2 border-amber-600\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 126,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 125,\n columnNumber: 25\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_BottleGrid__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n bottles: bottles\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 129,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 116,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 101,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 100,\n columnNumber: 9\n }, this);\n}\n_s(Home, \"jCmmO1rftSgHIdr74tj8GiYQJYE=\");\n_c = Home;\nvar _c;\n$RefreshReg$(_c, \"Home\");\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,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aUM7Ozs7Ozs7Ozs7Ozs4QkFFbEQsOERBQUN6Qyw0REFBUUE7Ozs7Ozs7Ozs7O0lBR3JCO0lBRUEscUJBQ0ksOERBQUN3QztRQUFLQyxXQUFVO2tCQUNaLDRFQUFDQztZQUFJRCxXQUFVOzs4QkFDWCw4REFBQ0s7b0JBQU9MLFdBQVU7O3NDQUNkLDhEQUFDRTs0QkFBR0YsV0FBVTs7Z0NBQXFFOzhDQUN6RSw4REFBQ0c7b0NBQUtILFdBQVU7OENBQWlCOzs7Ozs7Ozs7Ozs7c0NBRTNDLDhEQUFDTTs0QkFDR0MsU0FBU1Y7NEJBQ1RHLFdBQVU7c0NBQ2I7Ozs7Ozs7Ozs7Ozs4QkFLTCw4REFBQzNDLGlFQUFhQTtvQkFBQ21ELGdCQUFnQm5DOzs7Ozs7OEJBRS9CLDhEQUFDNEI7b0JBQUlELFdBQVU7O3NDQUNYLDhEQUFDUzs0QkFBR1QsV0FBVTs7Z0NBQW1GOzhDQUU3Riw4REFBQ0c7b0NBQUtILFdBQVU7OENBQ1h0QyxRQUFRMEIsTUFBTTs7Ozs7Ozs7Ozs7O3dCQUl0QnhCLDBCQUNHLDhEQUFDcUM7NEJBQUlELFdBQVU7c0NBQ1gsNEVBQUNDO2dDQUFJRCxXQUFVOzs7Ozs7Ozs7O2lEQUduQiw4REFBQzFDLDhEQUFVQTs0QkFBQ0ksU0FBU0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTTdDO0dBOUh3QkY7S0FBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2FwcC9wYWdlLnRzeD9mNjhhIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZUNsaWVudENvbXBvbmVudENsaWVudCB9IGZyb20gJ0BzdXBhYmFzZS9hdXRoLWhlbHBlcnMtbmV4dGpzJztcbmltcG9ydCBDYW1lcmFDYXB0dXJlIGZyb20gXCJAL2NvbXBvbmVudHMvQ2FtZXJhQ2FwdHVyZVwiO1xuaW1wb3J0IEJvdHRsZUdyaWQgZnJvbSBcIkAvY29tcG9uZW50cy9Cb3R0bGVHcmlkXCI7XG5pbXBvcnQgQXV0aEZvcm0gZnJvbSBcIkAvY29tcG9uZW50cy9BdXRoRm9ybVwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBIb21lKCkge1xuICAgIGNvbnN0IHN1cGFiYXNlID0gY3JlYXRlQ2xpZW50Q29tcG9uZW50Q2xpZW50KCk7XG4gICAgY29uc3QgW2JvdHRsZXMsIHNldEJvdHRsZXNdID0gdXNlU3RhdGU8YW55W10+KFtdKTtcbiAgICBjb25zdCBbaXNMb2FkaW5nLCBzZXRJc0xvYWRpbmddID0gdXNlU3RhdGUodHJ1ZSk7XG4gICAgY29uc3QgW3VzZXIsIHNldFVzZXJdID0gdXNlU3RhdGU8YW55PihudWxsKTsgLy8gQWRkZWQgdXNlciBzdGF0ZVxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gQ2hlY2sgc2Vzc2lvblxuICAgICAgICBjb25zdCBjaGVja1VzZXIgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IGRhdGE6IHsgc2Vzc2lvbiB9IH0gPSBhd2FpdCBzdXBhYmFzZS5hdXRoLmdldFNlc3Npb24oKTtcbiAgICAgICAgICAgIHNldFVzZXIoc2Vzc2lvbj8udXNlciA/PyBudWxsKTtcbiAgICAgICAgICAgIGlmIChzZXNzaW9uPy51c2VyKSB7XG4gICAgICAgICAgICAgICAgZmV0Y2hDb2xsZWN0aW9uKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNldElzTG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgY2hlY2tVc2VyKCk7XG5cbiAgICAgICAgLy8gTGlzdGVuIGZvciBhdXRoIGNoYW5nZXNcbiAgICAgICAgY29uc3QgeyBkYXRhOiB7IHN1YnNjcmlwdGlvbiB9IH0gPSBzdXBhYmFzZS5hdXRoLm9uQXV0aFN0YXRlQ2hhbmdlKChfZXZlbnQsIHNlc3Npb24pID0+IHtcbiAgICAgICAgICAgIHNldFVzZXIoc2Vzc2lvbj8udXNlciA/PyBudWxsKTtcbiAgICAgICAgICAgIGlmIChzZXNzaW9uPy51c2VyKSB7XG4gICAgICAgICAgICAgICAgZmV0Y2hDb2xsZWN0aW9uKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNldEJvdHRsZXMoW10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gKCkgPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3QgZmV0Y2hDb2xsZWN0aW9uID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICBzZXRJc0xvYWRpbmcodHJ1ZSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBGZXRjaCBib3R0bGVzIHdpdGggdGhlaXIgbGF0ZXN0IHRhc3RpbmcgZGF0ZVxuICAgICAgICAgICAgY29uc3QgeyBkYXRhLCBlcnJvciB9ID0gYXdhaXQgc3VwYWJhc2VcbiAgICAgICAgICAgICAgICAuZnJvbSgnYm90dGxlcycpXG4gICAgICAgICAgICAgICAgLnNlbGVjdChgXG4gICAgICAgICAgKixcbiAgICAgICAgICB0YXN0aW5ncyAoXG4gICAgICAgICAgICBjcmVhdGVkX2F0XG4gICAgICAgICAgKVxuICAgICAgICBgKVxuICAgICAgICAgICAgICAgIC5vcmRlcignY3JlYXRlZF9hdCcsIHsgYXNjZW5kaW5nOiBmYWxzZSB9KTtcblxuICAgICAgICAgICAgaWYgKGVycm9yKSB0aHJvdyBlcnJvcjtcblxuICAgICAgICAgICAgLy8gUHJvY2VzcyBkYXRhIHRvIGdldCB0aGUgYWJzb2x1dGUgbGF0ZXN0IHRhc3RpbmcgZGF0ZSBmb3IgZWFjaCBib3R0bGVcbiAgICAgICAgICAgIGNvbnN0IHByb2Nlc3NlZEJvdHRsZXMgPSAoZGF0YSB8fCBbXSkubWFwKGJvdHRsZSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGFzdFRhc3RlZCA9IGJvdHRsZS50YXN0aW5ncyAmJiBib3R0bGUudGFzdGluZ3MubGVuZ3RoID4gMFxuICAgICAgICAgICAgICAgICAgICA/IGJvdHRsZS50YXN0aW5ncy5yZWR1Y2UoKGxhdGVzdDogc3RyaW5nLCBjdXJyZW50OiBhbnkpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXcgRGF0ZShjdXJyZW50LmNyZWF0ZWRfYXQpID4gbmV3IERhdGUobGF0ZXN0KSA/IGN1cnJlbnQuY3JlYXRlZF9hdCA6IGxhdGVzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRsZS50YXN0aW5nc1swXS5jcmVhdGVkX2F0XG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgOiBudWxsO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uYm90dGxlLFxuICAgICAgICAgICAgICAgICAgICBsYXN0X3Rhc3RlZDogbGFzdFRhc3RlZFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgc2V0Qm90dGxlcyhwcm9jZXNzZWRCb3R0bGVzKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyBjb2xsZWN0aW9uOicsIGVycik7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBzZXRJc0xvYWRpbmcoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUxvZ291dCA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgYXdhaXQgc3VwYWJhc2UuYXV0aC5zaWduT3V0KCk7XG4gICAgfTtcblxuICAgIGlmICghdXNlcikge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPG1haW4gY2xhc3NOYW1lPVwiZmxleCBtaW4taC1zY3JlZW4gZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHAtNiBiZy16aW5jLTUwIGRhcms6YmctYmxhY2tcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1iLTEyIHRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJ0ZXh0LTV4bCBmb250LWJsYWNrIHRleHQtemluYy05MDAgZGFyazp0ZXh0LXdoaXRlIHRyYWNraW5nLXRpZ2h0ZXIgbWItNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgV0hJU0tZPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1hbWJlci02MDBcIj5WQVVMVDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9oMT5cbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC16aW5jLTUwMCBtYXgtdy1zbSBteC1hdXRvXCI+U2Nhbm5lIGRlaW5lIEZsYXNjaGVuLCB0cmFja2UgZGVpbmUgVGFzdGluZ3MgdW5kIHZlcndhbHRlIGRlaW5lbiBLZWxsZXIuPC9wPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxBdXRoRm9ybSAvPlxuICAgICAgICAgICAgPC9tYWluPlxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICAgIDxtYWluIGNsYXNzTmFtZT1cImZsZXggbWluLWgtc2NyZWVuIGZsZXgtY29sIGl0ZW1zLWNlbnRlciBnYXAtMTIgcC02IG1kOnAtMjQgYmctemluYy01MCBkYXJrOmJnLWJsYWNrXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInotMTAgbWF4LXctNXhsIHctZnVsbCBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBnYXAtOFwiPlxuICAgICAgICAgICAgICAgIDxoZWFkZXIgY2xhc3NOYW1lPVwidy1mdWxsIGZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8aDEgY2xhc3NOYW1lPVwidGV4dC00eGwgZm9udC1ibGFjayB0ZXh0LXppbmMtOTAwIGRhcms6dGV4dC13aGl0ZSB0cmFja2luZy10aWdodGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBXSElTS1k8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LWFtYmVyLTYwMFwiPlZBVUxUPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2gxPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVMb2dvdXR9XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtemluYy01MDAgaG92ZXI6dGV4dC16aW5jLTgwMCBkYXJrOmhvdmVyOnRleHQtemluYy0zMDAgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBBYm1lbGRlblxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2hlYWRlcj5cblxuICAgICAgICAgICAgICAgIDxDYW1lcmFDYXB0dXJlIG9uU2F2ZUNvbXBsZXRlPXtmZXRjaENvbGxlY3Rpb259IC8+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctZnVsbCBtdC0xMlwiPlxuICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwidGV4dC0yeGwgZm9udC1ib2xkIG1iLTYgdGV4dC16aW5jLTgwMCBkYXJrOnRleHQtemluYy0xMDAgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIERlaW5lIFNhbW1sdW5nXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtbm9ybWFsIHRleHQtemluYy01MDAgYmctemluYy0xMDAgZGFyazpiZy16aW5jLTgwMCBweC0zIHB5LTEgcm91bmRlZC1mdWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2JvdHRsZXMubGVuZ3RofVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2gyPlxuXG4gICAgICAgICAgICAgICAgICAgIHtpc0xvYWRpbmcgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgganVzdGlmeS1jZW50ZXIgcHktMTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFuaW1hdGUtc3BpbiByb3VuZGVkLWZ1bGwgaC04IHctOCBib3JkZXItYi0yIGJvcmRlci1hbWJlci02MDBcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgPEJvdHRsZUdyaWQgYm90dGxlcz17Ym90dGxlc30gLz5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L21haW4+XG4gICAgKTtcbn1cbiJdLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsImNyZWF0ZUNsaWVudENvbXBvbmVudENsaWVudCIsIkNhbWVyYUNhcHR1cmUiLCJCb3R0bGVHcmlkIiwiQXV0aEZvcm0iLCJIb21lIiwic3VwYWJhc2UiLCJib3R0bGVzIiwic2V0Qm90dGxlcyIsImlzTG9hZGluZyIsInNldElzTG9hZGluZyIsInVzZXIiLCJzZXRVc2VyIiwiY2hlY2tVc2VyIiwiZGF0YSIsInNlc3Npb24iLCJhdXRoIiwiZ2V0U2Vzc2lvbiIsImZldGNoQ29sbGVjdGlvbiIsInN1YnNjcmlwdGlvbiIsIm9uQXV0aFN0YXRlQ2hhbmdlIiwiX2V2ZW50IiwidW5zdWJzY3JpYmUiLCJlcnJvciIsImZyb20iLCJzZWxlY3QiLCJvcmRlciIsImFzY2VuZGluZyIsInByb2Nlc3NlZEJvdHRsZXMiLCJtYXAiLCJib3R0bGUiLCJsYXN0VGFzdGVkIiwidGFzdGluZ3MiLCJsZW5ndGgiLCJyZWR1Y2UiLCJsYXRlc3QiLCJjdXJyZW50IiwiRGF0ZSIsImNyZWF0ZWRfYXQiLCJsYXN0X3Rhc3RlZCIsImVyciIsImNvbnNvbGUiLCJoYW5kbGVMb2dvdXQiLCJzaWduT3V0IiwibWFpbiIsImNsYXNzTmFtZSIsImRpdiIsImgxIiwic3BhbiIsInAiLCJoZWFkZXIiLCJidXR0b24iLCJvbkNsaWNrIiwib25TYXZlQ29tcGxldGUiLCJoMiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./src/app/page.tsx\n"));
/***/ })
});