32 lines
232 KiB
JavaScript
32 lines
232 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/learn/page",{
|
||
|
||
/***/ "(app-pages-browser)/./app/learn/page.tsx":
|
||
/*!****************************!*\
|
||
!*** ./app/learn/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 */ LearnPage)\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 next_link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/link */ \"(app-pages-browser)/./node_modules/next/dist/client/app-dir/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var next_navigation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/navigation */ \"(app-pages-browser)/./node_modules/next/dist/api/navigation.js\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\nfunction LearnPage() {\n _s();\n const router = (0,next_navigation__WEBPACK_IMPORTED_MODULE_3__.useRouter)();\n const [currentCardIndex, setCurrentCardIndex] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(0);\n const [isFlipped, setIsFlipped] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [mode, setMode] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('flip');\n const [score, setScore] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n correct: 0,\n total: 0\n });\n const [selectedAnswer, setSelectedAnswer] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [showResult, setShowResult] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [fillAnswer, setFillAnswer] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('');\n const [showHint, setShowHint] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [isRecording, setIsRecording] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [audioPlaying, setAudioPlaying] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [modalImage, setModalImage] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [showReportModal, setShowReportModal] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [reportReason, setReportReason] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('');\n const [reportingCard, setReportingCard] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n // Mock data with real example images\n const cards = [\n {\n id: 1,\n word: 'brought',\n partOfSpeech: 'verb',\n pronunciation: '/brɔːt/',\n translation: '提出、帶來',\n definition: 'Past tense of bring; to mention or introduce a topic in conversation',\n example: 'He brought this thing up during our meeting and no one agreed.',\n exampleTranslation: '他在我們的會議中提出了這件事,但沒有人同意。',\n exampleImage: '/images/examples/bring_up.png',\n synonyms: [\n 'mentioned',\n 'raised',\n 'introduced'\n ],\n difficulty: 'B1'\n },\n {\n id: 2,\n word: 'instincts',\n partOfSpeech: 'noun',\n pronunciation: '/ˈɪnstɪŋkts/',\n translation: '本能、直覺',\n definition: 'Natural abilities that help living things survive without learning',\n example: 'Animals use their instincts to find food and stay safe.',\n exampleTranslation: '動物利用本能來尋找食物並保持安全。',\n exampleImage: '/images/examples/instinct.png',\n synonyms: [\n 'intuition',\n 'impulse',\n 'tendency'\n ],\n difficulty: 'B2'\n },\n {\n id: 3,\n word: 'warrants',\n partOfSpeech: 'noun',\n pronunciation: '/ˈwɔːrənts/',\n translation: '搜查令、授權令',\n definition: 'Official documents that give police permission to do something',\n example: 'The police obtained warrants to search the building.',\n exampleTranslation: '警方取得了搜查令來搜查這棟建築物。',\n exampleImage: '/images/examples/warrant.png',\n synonyms: [\n 'authorization',\n 'permit',\n 'license'\n ],\n difficulty: 'C1'\n }\n ];\n const currentCard = cards[currentCardIndex];\n // Quiz mode options - dynamically generate from current cards\n const quizOptions = [\n cards[currentCardIndex].translation,\n ...cards.filter((_, idx)=>idx !== currentCardIndex).map((card)=>card.translation).slice(0, 2),\n '建議、提議' // additional wrong option\n ].sort(()=>Math.random() - 0.5) // shuffle options\n ;\n const handleFlip = ()=>{\n setIsFlipped(!isFlipped);\n };\n const handleNext = ()=>{\n if (currentCardIndex < cards.length - 1) {\n setCurrentCardIndex(currentCardIndex + 1);\n setIsFlipped(false);\n setSelectedAnswer(null);\n setShowResult(false);\n setFillAnswer('');\n setShowHint(false);\n }\n };\n const handlePrevious = ()=>{\n if (currentCardIndex > 0) {\n setCurrentCardIndex(currentCardIndex - 1);\n setIsFlipped(false);\n setSelectedAnswer(null);\n setShowResult(false);\n setFillAnswer('');\n setShowHint(false);\n }\n };\n const handleDifficultyRate = (rating)=>{\n // Mock rating logic\n console.log(\"Rated \".concat(rating, \" for \").concat(currentCard.word));\n handleNext();\n };\n const handleQuizAnswer = (answer)=>{\n setSelectedAnswer(answer);\n setShowResult(true);\n if (answer === currentCard.translation) {\n setScore({\n ...score,\n correct: score.correct + 1,\n total: score.total + 1\n });\n } else {\n setScore({\n ...score,\n total: score.total + 1\n });\n }\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"min-h-screen bg-gradient-to-br from-blue-50 to-indigo-100\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"nav\", {\n className: \"bg-white shadow-sm border-b\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between h-16\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/dashboard\",\n className: \"text-2xl font-bold text-primary\",\n children: \"DramaLing\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 129,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"hidden md:flex space-x-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/dashboard\",\n className: \"text-gray-600 hover:text-gray-900\",\n children: \"儀表板\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 131,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/flashcards\",\n className: \"text-gray-600 hover:text-gray-900\",\n children: \"詞卡\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 132,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/learn\",\n className: \"text-gray-900 font-medium\",\n children: \"學習\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 133,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/generate\",\n className: \"text-gray-600 hover:text-gray-900\",\n children: \"AI 生成\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 134,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 130,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 128,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>window.location.href = '/dashboard',\n className: \"text-gray-600 hover:text-gray-900\",\n children: \"\\xd7 結束學習\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 137,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 127,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 126,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 125,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-4xl mx-auto px-4 py-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between items-center mb-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm text-gray-600\",\n children: \"進度\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 151,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm text-gray-600\",\n children: [\n currentCardIndex + 1,\n \" / \",\n cards.length\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 152,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 150,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full bg-gray-200 rounded-full h-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-primary h-2 rounded-full transition-all\",\n style: {\n width: \"\".concat((currentCardIndex + 1) / cards.length * 100, \"%\")\n }\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 157,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 156,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 149,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-center mb-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white rounded-lg shadow-sm p-1 inline-flex flex-wrap\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setMode('flip'),\n className: \"px-3 py-2 rounded-md transition-colors \".concat(mode === 'flip' ? 'bg-primary text-white' : 'text-gray-600 hover:text-gray-900'),\n children: \"翻卡模式\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 167,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setMode('quiz'),\n className: \"px-3 py-2 rounded-md transition-colors \".concat(mode === 'quiz' ? 'bg-primary text-white' : 'text-gray-600 hover:text-gray-900'),\n children: \"選擇題\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 177,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setMode('fill'),\n className: \"px-3 py-2 rounded-md transition-colors \".concat(mode === 'fill' ? 'bg-primary text-white' : 'text-gray-600 hover:text-gray-900'),\n children: \"填空題\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 187,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setMode('listening'),\n className: \"px-3 py-2 rounded-md transition-colors \".concat(mode === 'listening' ? 'bg-primary text-white' : 'text-gray-600 hover:text-gray-900'),\n children: \"聽力測試\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 197,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setMode('speaking'),\n className: \"px-3 py-2 rounded-md transition-colors \".concat(mode === 'speaking' ? 'bg-primary text-white' : 'text-gray-600 hover:text-gray-900'),\n children: \"口說測試\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 207,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 166,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 165,\n columnNumber: 9\n }, this),\n mode === 'flip' ? /* Flip Card Mode */ /*#__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)(\"div\", {\n className: \"flex justify-end mb-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>{\n setReportingCard(currentCard);\n setShowReportModal(true);\n },\n className: \"text-red-500 hover:text-red-600 text-sm flex items-center gap-1\",\n title: \"回報錯誤\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-4 h-4\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 234,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 233,\n columnNumber: 17\n }, this),\n \"回報錯誤\"\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 225,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 224,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative w-full h-96 cursor-pointer\",\n onClick: handleFlip,\n style: {\n perspective: '1000px'\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute w-full h-full transition-transform duration-600 \".concat(isFlipped ? 'rotate-y-180' : ''),\n style: {\n transformStyle: 'preserve-3d',\n transform: isFlipped ? 'rotateY(180deg)' : 'rotateY(0deg)'\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute w-full h-full bg-white rounded-2xl shadow-xl p-8 flex flex-col items-center justify-center\",\n style: {\n backfaceVisibility: 'hidden'\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-4xl font-bold text-gray-900 mb-4\",\n children: currentCard.word\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 259,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-lg text-gray-600 mb-2\",\n children: currentCard.partOfSpeech\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 262,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-lg text-gray-500\",\n children: currentCard.pronunciation\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 265,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-8 text-sm text-gray-400\",\n children: \"點擊翻轉查看答案\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 268,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 255,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute w-full h-full bg-white rounded-2xl shadow-xl p-8 overflow-y-auto\",\n style: {\n backfaceVisibility: 'hidden',\n transform: 'rotateY(180deg)'\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-semibold text-gray-700 mb-1\",\n children: \"翻譯\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 283,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-2xl font-bold text-gray-900\",\n children: currentCard.translation\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 284,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 282,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-semibold text-gray-700 mb-1\",\n children: \"定義\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 287,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-gray-600\",\n children: currentCard.definition\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 288,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 286,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-semibold text-gray-700 mb-1\",\n children: \"例句\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 291,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-gray-600\",\n children: currentCard.example\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 292,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-gray-500 text-sm mt-1\",\n children: currentCard.exampleTranslation\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 293,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 290,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-semibold text-gray-700 mb-1\",\n children: \"同義詞\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 296,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-wrap gap-2\",\n children: currentCard.synonyms.map((syn, idx)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"px-3 py-1 bg-gray-100 rounded-full text-sm\",\n children: syn\n }, idx, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 299,\n columnNumber: 27\n }, this))\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 297,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 295,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 281,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 274,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 245,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 240,\n columnNumber: 13\n }, this),\n isFlipped && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center mb-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-gray-600\",\n children: \"這個單字對你來說難度如何?\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 314,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 313,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-center space-x-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>handleDifficultyRate(1),\n className: \"px-4 py-2 bg-red-100 text-red-700 rounded-lg hover:bg-red-200 transition-colors\",\n children: \"\\uD83D\\uDE14 完全不記得\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 317,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>handleDifficultyRate(3),\n className: \"px-4 py-2 bg-yellow-100 text-yellow-700 rounded-lg hover:bg-yellow-200 transition-colors\",\n children: \"\\uD83D\\uDE10 有點困難\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 323,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>handleDifficultyRate(5),\n className: \"px-4 py-2 bg-green-100 text-green-700 rounded-lg hover:bg-green-200 transition-colors\",\n children: \"\\uD83D\\uDE0A 很簡單\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 329,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 316,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 312,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 222,\n columnNumber: 11\n }, this) : mode === 'quiz' ? /* Quiz Mode - 選擇題:英文定義選中文翻譯 */ /*#__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)(\"div\", {\n className: \"flex justify-end mb-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>{\n setReportingCard(currentCard);\n setShowReportModal(true);\n },\n className: \"text-red-500 hover:text-red-600 text-sm flex items-center gap-1\",\n title: \"回報錯誤\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-4 h-4\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 353,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 352,\n columnNumber: 17\n }, this),\n \"回報錯誤\"\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 344,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 343,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white rounded-2xl shadow-xl p-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-600 mb-2\",\n children: \"根據定義選擇正確的中文翻譯\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 361,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xl text-gray-800 leading-relaxed\",\n children: currentCard.definition\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 362,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-500 mt-2\",\n children: [\n \"(\",\n currentCard.partOfSpeech,\n \")\"\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 365,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 360,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-3\",\n children: quizOptions.map((option, idx)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>!showResult && handleQuizAnswer(option),\n disabled: showResult,\n className: \"w-full p-4 text-left rounded-lg border-2 transition-all \".concat(showResult && option === currentCard.translation ? 'border-green-500 bg-green-50' : showResult && option === selectedAnswer && option !== currentCard.translation ? 'border-red-500 bg-red-50' : selectedAnswer === option ? 'border-primary bg-primary-light' : 'border-gray-200 hover:border-gray-300'),\n children: /*#__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)(\"span\", {\n className: \"font-medium\",\n children: option\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 387,\n columnNumber: 21\n }, this),\n showResult && option === currentCard.translation && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-5 h-5 text-green-500\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M5 13l4 4L19 7\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 390,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 389,\n columnNumber: 23\n }, this),\n showResult && option === selectedAnswer && option !== currentCard.translation && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-5 h-5 text-red-500\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M6 18L18 6M6 6l12 12\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 395,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 394,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 386,\n columnNumber: 19\n }, this)\n }, idx, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 372,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 370,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 359,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 341,\n columnNumber: 11\n }, this) : mode === 'fill' ? /* Fill in the Blank Mode - 填空題 */ /*#__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)(\"div\", {\n className: \"flex justify-end mb-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>{\n setReportingCard(currentCard);\n setShowReportModal(true);\n },\n className: \"text-red-500 hover:text-red-600 text-sm flex items-center gap-1\",\n title: \"回報錯誤\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-4 h-4\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 419,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 418,\n columnNumber: 17\n }, this),\n \"回報錯誤\"\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 410,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 409,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white rounded-2xl shadow-xl p-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-600 mb-4\",\n children: \"根據例句圖片和句子填入正確的詞彙\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 427,\n columnNumber: 17\n }, this),\n currentCard.exampleImage && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", {\n src: currentCard.exampleImage,\n alt: \"Example context\",\n className: \"w-full rounded-lg shadow-md cursor-pointer hover:shadow-lg transition-shadow\",\n style: {\n maxHeight: '400px',\n objectFit: 'contain'\n },\n onClick: ()=>setModalImage(currentCard.exampleImage)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 432,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-gray-500 mt-2 text-center\",\n children: \"點擊圖片可放大查看\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 439,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 431,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-lg text-gray-800 mb-4\",\n children: currentCard.example.split(currentCard.word).map((part, i)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: [\n part,\n i < currentCard.example.split(currentCard.word).length - 1 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"inline-block w-32 border-b-2 border-gray-400 mx-1\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 449,\n columnNumber: 23\n }, this)\n ]\n }, i, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 446,\n columnNumber: 19\n }, this))\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 444,\n columnNumber: 15\n }, this),\n !showHint && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setShowHint(true),\n className: \"text-sm text-primary hover:text-primary-hover flex items-center gap-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-4 h-4\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 462,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 461,\n columnNumber: 19\n }, this),\n \"點擊查看提示\"\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 457,\n columnNumber: 17\n }, this),\n showHint && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-3 p-3 bg-blue-50 rounded-lg\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-blue-800\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"strong\", {\n children: \"定義提示:\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 472,\n columnNumber: 21\n }, this),\n \" \",\n currentCard.definition\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 471,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 470,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 426,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: fillAnswer,\n onChange: (e)=>setFillAnswer(e.target.value),\n placeholder: \"輸入答案...\",\n className: \"w-full px-4 py-3 border-2 border-gray-300 rounded-lg focus:border-primary focus:outline-none text-lg\",\n onKeyPress: (e)=>{\n if (e.key === 'Enter' && fillAnswer) {\n setShowResult(true);\n }\n }\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 480,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 479,\n columnNumber: 13\n }, this),\n !showResult && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>fillAnswer && setShowResult(true),\n disabled: !fillAnswer,\n className: \"w-full py-3 bg-primary text-white rounded-lg font-medium hover:bg-primary-hover transition-colors disabled:opacity-50 disabled:cursor-not-allowed\",\n children: \"提交答案\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 496,\n columnNumber: 15\n }, this),\n showResult && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-4 rounded-lg \".concat(fillAnswer.toLowerCase() === currentCard.word.toLowerCase() ? 'bg-green-50 border-2 border-green-500' : 'bg-red-50 border-2 border-red-500'),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between mb-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-semibold \".concat(fillAnswer.toLowerCase() === currentCard.word.toLowerCase() ? 'text-green-700' : 'text-red-700'),\n children: fillAnswer.toLowerCase() === currentCard.word.toLowerCase() ? '✓ 正確!' : '✗ 錯誤'\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 513,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 512,\n columnNumber: 17\n }, this),\n fillAnswer.toLowerCase() !== currentCard.word.toLowerCase() && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-700\",\n children: [\n \"正確答案:\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-bold\",\n children: currentCard.word\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 523,\n columnNumber: 26\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 522,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-3 text-sm text-gray-600\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"font-semibold mb-1\",\n children: \"完整例句:\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 527,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: currentCard.example\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 528,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-gray-500 mt-1\",\n children: currentCard.exampleTranslation\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 529,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 526,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 507,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 425,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 407,\n columnNumber: 11\n }, this) : mode === 'listening' ? /* Listening Test Mode - 聽力測試 */ /*#__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)(\"div\", {\n className: \"flex justify-end mb-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>{\n setReportingCard(currentCard);\n setShowReportModal(true);\n },\n className: \"text-red-500 hover:text-red-600 text-sm flex items-center gap-1\",\n title: \"回報錯誤\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-4 h-4\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 549,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 548,\n columnNumber: 17\n }, this),\n \"回報錯誤\"\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 540,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 539,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white rounded-2xl shadow-xl p-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-6 text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-600 mb-4\",\n children: \"聽音頻,選擇正確的單字\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 557,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>{\n setAudioPlaying(true);\n // Simulate audio playing\n setTimeout(()=>setAudioPlaying(false), 2000);\n },\n className: \"mx-auto mb-6 p-8 bg-gray-100 rounded-full hover:bg-gray-200 transition-colors\",\n children: audioPlaying ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-16 h-16 text-primary animate-pulse\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M15.536 8.464a5 5 0 010 7.072m2.828-9.9a9 9 0 010 12.728M5.586 15H4a1 1 0 01-1-1v-4a1 1 0 011-1h1.586l4.707-4.707C10.923 3.663 12 4.109 12 5v14c0 .891-1.077 1.337-1.707.707L5.586 15z\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 570,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 569,\n columnNumber: 19\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-16 h-16 text-gray-600\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M14.752 11.168l-3.197-2.132A1 1 0 0010 9.87v4.263a1 1 0 001.555.832l3.197-2.132a1 1 0 000-1.664z\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 574,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 575,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 573,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 560,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-500\",\n children: \"點擊播放按鈕聽發音\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 580,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 556,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-2 gap-3\",\n children: [\n currentCard.word,\n 'determine',\n 'achieve',\n 'consider'\n ].map((word)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>!showResult && handleQuizAnswer(word),\n disabled: showResult,\n className: \"p-4 text-lg font-medium rounded-lg border-2 transition-all \".concat(showResult && word === currentCard.word ? 'border-green-500 bg-green-50' : showResult && word === selectedAnswer && word !== currentCard.word ? 'border-red-500 bg-red-50' : selectedAnswer === word ? 'border-primary bg-primary-light' : 'border-gray-200 hover:border-gray-300'),\n children: word\n }, word, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 586,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 584,\n columnNumber: 13\n }, this),\n showResult && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-6 p-4 bg-gray-50 rounded-lg\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-semibold text-gray-700 mb-2\",\n children: \"單字詳情\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 608,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-semibold\",\n children: currentCard.word\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 611,\n columnNumber: 21\n }, this),\n \" - \",\n currentCard.translation\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 610,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-600\",\n children: currentCard.definition\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 613,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-500 italic\",\n children: [\n '\"',\n currentCard.example,\n '\"'\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 614,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 609,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 607,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 555,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 537,\n columnNumber: 11\n }, this) : mode === 'speaking' ? /* Speaking Test Mode - 口說測試 */ /*#__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)(\"div\", {\n className: \"flex justify-end mb-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>{\n setReportingCard(currentCard);\n setShowReportModal(true);\n },\n className: \"text-red-500 hover:text-red-600 text-sm flex items-center gap-1\",\n title: \"回報錯誤\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-4 h-4\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 634,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 633,\n columnNumber: 17\n }, this),\n \"回報錯誤\"\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 625,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 624,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white rounded-2xl shadow-xl p-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-600 mb-4\",\n children: \"念出以下例句\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 642,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-6 bg-gray-50 rounded-lg mb-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xl text-gray-800 leading-relaxed mb-3\",\n children: currentCard.example\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 646,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-gray-600\",\n children: currentCard.exampleTranslation\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 649,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 645,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-600 mb-2\",\n children: \"重點單字發音:\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 656,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-semibold text-lg\",\n children: currentCard.word\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 658,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-gray-500\",\n children: currentCard.pronunciation\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 659,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"text-primary hover:text-primary-hover\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-5 h-5\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M15.536 8.464a5 5 0 010 7.072m2.828-9.9a9 9 0 010 12.728M5.586 15H4a1 1 0 01-1-1v-4a1 1 0 011-1h1.586l4.707-4.707C10.923 3.663 12 4.109 12 5v14c0 .891-1.077 1.337-1.707.707L5.586 15z\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 662,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 661,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 660,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 657,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 655,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>{\n setIsRecording(!isRecording);\n if (!isRecording) {\n // Start recording\n setTimeout(()=>{\n setIsRecording(false);\n setShowResult(true);\n }, 3000);\n }\n },\n className: \"p-6 rounded-full transition-all \".concat(isRecording ? 'bg-red-500 hover:bg-red-600 animate-pulse' : 'bg-primary hover:bg-primary-hover'),\n children: isRecording ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-12 h-12 text-white\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 689,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M9 10a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1v-4z\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 690,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 688,\n columnNumber: 21\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-12 h-12 text-white\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M19 11a7 7 0 01-7 7m0 0a7 7 0 01-7-7m7 7v4m0 0H8m4 0h4m-4-8a3 3 0 01-3-3V5a3 3 0 116 0v6a3 3 0 01-3 3z\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 694,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 693,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 670,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-3 text-sm text-gray-600\",\n children: isRecording ? '錄音中... 點擊停止' : '點擊開始錄音'\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 698,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 669,\n columnNumber: 15\n }, this),\n showResult && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-6 p-4 bg-green-50 border-2 border-green-500 rounded-lg\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-green-700 font-semibold mb-2\",\n children: \"✓ 完成口說練習!\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 706,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-600\",\n children: \"提示:持續練習可以提高發音準確度和流暢度\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 709,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 705,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 641,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 640,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 622,\n columnNumber: 11\n }, this) : null,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between mt-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: handlePrevious,\n disabled: currentCardIndex === 0,\n className: \"flex items-center space-x-2 px-6 py-3 bg-white rounded-lg shadow-sm hover:shadow-md transition-shadow disabled:opacity-50 disabled:cursor-not-allowed\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-5 h-5\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M15 19l-7-7 7-7\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 727,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 726,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"上一個\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 729,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 721,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: handleNext,\n disabled: currentCardIndex === cards.length - 1,\n className: \"flex items-center space-x-2 px-6 py-3 bg-primary text-white rounded-lg shadow-sm hover:bg-primary-hover transition-colors disabled:opacity-50 disabled:cursor-not-allowed\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"下一個\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 737,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-5 h-5\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M9 5l7 7-7 7\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 739,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 738,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 732,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 720,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 147,\n columnNumber: 7\n }, this),\n modalImage && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-75 p-4\",\n onClick: ()=>setModalImage(null),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative max-w-4xl max-h-[90vh] bg-white rounded-lg overflow-hidden\",\n onClick: (e)=>e.stopPropagation(),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setModalImage(null),\n className: \"absolute top-2 right-2 z-10 p-2 bg-white bg-opacity-90 rounded-full hover:bg-opacity-100 transition-all shadow-lg\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-6 h-6 text-gray-700\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M6 18L18 6M6 6l12 12\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 761,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 760,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 756,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", {\n src: modalImage,\n alt: \"Example context enlarged\",\n className: \"w-full h-full object-contain\",\n style: {\n maxHeight: 'calc(90vh - 2rem)'\n }\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 767,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 766,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 751,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 747,\n columnNumber: 9\n }, this),\n showReportModal && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-50 p-4\",\n onClick: ()=>setShowReportModal(false),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white rounded-lg shadow-xl max-w-md w-full p-6\",\n onClick: (e)=>e.stopPropagation(),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between items-center mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-semibold\",\n children: \"回報錯誤\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 789,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setShowReportModal(false),\n className: \"text-gray-400 hover:text-gray-600\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-6 h-6\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M6 18L18 6M6 6l12 12\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 795,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 794,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 790,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 788,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-600 mb-2\",\n children: [\n \"詞卡:\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-medium\",\n children: reportingCard === null || reportingCard === void 0 ? void 0 : reportingCard.word\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 802,\n columnNumber: 20\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 801,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-600 mb-2\",\n children: [\n \"測驗模式:\",\n mode === 'flip' ? '翻卡模式' : mode === 'quiz' ? '選擇題' : mode === 'fill' ? '填空題' : mode === 'listening' ? '聽力測試' : '口說測試'\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 804,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 800,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium text-gray-700 mb-2\",\n children: \"錯誤原因(選填)\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 810,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"textarea\", {\n value: reportReason,\n onChange: (e)=>setReportReason(e.target.value),\n placeholder: \"請描述錯誤內容...\",\n className: \"w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-primary focus:border-primary\",\n rows: 3\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 813,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 809,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>{\n // Submit error report\n console.log('Error reported:', {\n card: reportingCard,\n mode,\n reason: reportReason\n });\n setShowReportModal(false);\n setReportReason('');\n setReportingCard(null);\n // Show success message (could add a toast notification here)\n alert('感謝您的回報,我們會盡快處理!');\n },\n className: \"flex-1 px-4 py-2 bg-primary text-white rounded-lg hover:bg-primary-hover transition-colors\",\n children: \"送出回報\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 823,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>{\n setShowReportModal(false);\n setReportReason('');\n setReportingCard(null);\n },\n className: \"flex-1 px-4 py-2 bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 transition-colors\",\n children: \"取消\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 841,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 822,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 784,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 780,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 123,\n columnNumber: 5\n }, this);\n}\n_s(LearnPage, \"A33pHe7n/okUhfaMoz3QjZYl284=\", false, function() {\n return [\n next_navigation__WEBPACK_IMPORTED_MODULE_3__.useRouter\n ];\n});\n_c = LearnPage;\nvar _c;\n$RefreshReg$(_c, \"LearnPage\");\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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bUI7d0NBQ25CRSxnQkFBZ0I7d0NBQ2hCRSxpQkFBaUI7b0NBQ25CO29DQUNBbUMsV0FBVTs4Q0FDWDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTZjtHQWoxQndCbEU7O1FBQ1BELHNEQUFTQTs7O0tBREZDIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9hcHAvbGVhcm4vcGFnZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgTGluayBmcm9tICduZXh0L2xpbmsnXG5pbXBvcnQgeyB1c2VSb3V0ZXIgfSBmcm9tICduZXh0L25hdmlnYXRpb24nXG5pbXBvcnQgeyBOYXZpZ2F0aW9uIH0gZnJvbSAnQC9jb21wb25lbnRzL05hdmlnYXRpb24nXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIExlYXJuUGFnZSgpIHtcbiAgY29uc3Qgcm91dGVyID0gdXNlUm91dGVyKClcbiAgY29uc3QgW2N1cnJlbnRDYXJkSW5kZXgsIHNldEN1cnJlbnRDYXJkSW5kZXhdID0gdXNlU3RhdGUoMClcbiAgY29uc3QgW2lzRmxpcHBlZCwgc2V0SXNGbGlwcGVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbbW9kZSwgc2V0TW9kZV0gPSB1c2VTdGF0ZTwnZmxpcCcgfCAncXVpeicgfCAnZmlsbCcgfCAnbGlzdGVuaW5nJyB8ICdzcGVha2luZyc+KCdmbGlwJylcbiAgY29uc3QgW3Njb3JlLCBzZXRTY29yZV0gPSB1c2VTdGF0ZSh7IGNvcnJlY3Q6IDAsIHRvdGFsOiAwIH0pXG4gIGNvbnN0IFtzZWxlY3RlZEFuc3dlciwgc2V0U2VsZWN0ZWRBbnN3ZXJdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW3Nob3dSZXN1bHQsIHNldFNob3dSZXN1bHRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtmaWxsQW5zd2VyLCBzZXRGaWxsQW5zd2VyXSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBbc2hvd0hpbnQsIHNldFNob3dIaW50XSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbaXNSZWNvcmRpbmcsIHNldElzUmVjb3JkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbYXVkaW9QbGF5aW5nLCBzZXRBdWRpb1BsYXlpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFttb2RhbEltYWdlLCBzZXRNb2RhbEltYWdlXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtzaG93UmVwb3J0TW9kYWwsIHNldFNob3dSZXBvcnRNb2RhbF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3JlcG9ydFJlYXNvbiwgc2V0UmVwb3J0UmVhc29uXSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBbcmVwb3J0aW5nQ2FyZCwgc2V0UmVwb3J0aW5nQ2FyZF0gPSB1c2VTdGF0ZTxhbnk+KG51bGwpXG5cbiAgLy8gTW9jayBkYXRhIHdpdGggcmVhbCBleGFtcGxlIGltYWdlc1xuICBjb25zdCBjYXJkcyA9IFtcbiAgICB7XG4gICAgICBpZDogMSxcbiAgICAgIHdvcmQ6ICdicm91Z2h0JyxcbiAgICAgIHBhcnRPZlNwZWVjaDogJ3ZlcmInLFxuICAgICAgcHJvbnVuY2lhdGlvbjogJy9icsmUy5B0LycsXG4gICAgICB0cmFuc2xhdGlvbjogJ+aPkOWHuuOAgeW4tuS+hicsXG4gICAgICBkZWZpbml0aW9uOiAnUGFzdCB0ZW5zZSBvZiBicmluZzsgdG8gbWVudGlvbiBvciBpbnRyb2R1Y2UgYSB0b3BpYyBpbiBjb252ZXJzYXRpb24nLFxuICAgICAgZXhhbXBsZTogJ0hlIGJyb3VnaHQgdGhpcyB0aGluZyB1cCBkdXJpbmcgb3VyIG1lZXRpbmcgYW5kIG5vIG9uZSBhZ3JlZWQuJyxcbiAgICAgIGV4YW1wbGVUcmFuc2xhdGlvbjogJ+S7luWcqOaIkeWAkeeahOacg+itsOS4reaPkOWHuuS6humAmeS7tuS6i++8jOS9huaykuacieS6uuWQjOaEj+OAgicsXG4gICAgICBleGFtcGxlSW1hZ2U6ICcvaW1hZ2VzL2V4YW1wbGVzL2JyaW5nX3VwLnBuZycsXG4gICAgICBzeW5vbnltczogWydtZW50aW9uZWQnLCAncmFpc2VkJywgJ2ludHJvZHVjZWQnXSxcbiAgICAgIGRpZmZpY3VsdHk6ICdCMSdcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiAyLFxuICAgICAgd29yZDogJ2luc3RpbmN0cycsXG4gICAgICBwYXJ0T2ZTcGVlY2g6ICdub3VuJyxcbiAgICAgIHByb251bmNpYXRpb246ICcvy4jJqm5zdMmqxYtrdHMvJyxcbiAgICAgIHRyYW5zbGF0aW9uOiAn5pys6IO944CB55u06Ka6JyxcbiAgICAgIGRlZmluaXRpb246ICdOYXR1cmFsIGFiaWxpdGllcyB0aGF0IGhlbHAgbGl2aW5nIHRoaW5ncyBzdXJ2aXZlIHdpdGhvdXQgbGVhcm5pbmcnLFxuICAgICAgZXhhbXBsZTogJ0FuaW1hbHMgdXNlIHRoZWlyIGluc3RpbmN0cyB0byBmaW5kIGZvb2QgYW5kIHN0YXkgc2FmZS4nLFxuICAgICAgZXhhbXBsZVRyYW5zbGF0aW9uOiAn5YuV54mp5Yip55So5pys6IO95L6G5bCL5om+6aOf54mp5Lim5L+d5oyB5a6J5YWo44CCJyxcbiAgICAgIGV4YW1wbGVJbWFnZTogJy9pbWFnZXMvZXhhbXBsZXMvaW5zdGluY3QucG5nJyxcbiAgICAgIHN5bm9ueW1zOiBbJ2ludHVpdGlvbicsICdpbXB1bHNlJywgJ3RlbmRlbmN5J10sXG4gICAgICBkaWZmaWN1bHR5OiAnQjInXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogMyxcbiAgICAgIHdvcmQ6ICd3YXJyYW50cycsXG4gICAgICBwYXJ0T2ZTcGVlY2g6ICdub3VuJyxcbiAgICAgIHByb251bmNpYXRpb246ICcvy4h3yZTLkHLJmW50cy8nLFxuICAgICAgdHJhbnNsYXRpb246ICfmkJzmn6Xku6TjgIHmjojmrIrku6QnLFxuICAgICAgZGVmaW5pdGlvbjogJ09mZmljaWFsIGRvY3VtZW50cyB0aGF0IGdpdmUgcG9saWNlIHBlcm1pc3Npb24gdG8gZG8gc29tZXRoaW5nJyxcbiAgICAgIGV4YW1wbGU6ICdUaGUgcG9saWNlIG9idGFpbmVkIHdhcnJhbnRzIHRvIHNlYXJjaCB0aGUgYnVpbGRpbmcuJyxcbiAgICAgIGV4YW1wbGVUcmFuc2xhdGlvbjogJ+itpuaWueWPluW+l+S6huaQnOafpeS7pOS+huaQnOafpemAmeajn+W7uuevieeJqeOAgicsXG4gICAgICBleGFtcGxlSW1hZ2U6ICcvaW1hZ2VzL2V4YW1wbGVzL3dhcnJhbnQucG5nJyxcbiAgICAgIHN5bm9ueW1zOiBbJ2F1dGhvcml6YXRpb24nLCAncGVybWl0JywgJ2xpY2Vuc2UnXSxcbiAgICAgIGRpZmZpY3VsdHk6ICdDMSdcbiAgICB9XG4gIF1cblxuICBjb25zdCBjdXJyZW50Q2FyZCA9IGNhcmRzW2N1cnJlbnRDYXJkSW5kZXhdXG5cbiAgLy8gUXVpeiBtb2RlIG9wdGlvbnMgLSBkeW5hbWljYWxseSBnZW5lcmF0ZSBmcm9tIGN1cnJlbnQgY2FyZHNcbiAgY29uc3QgcXVpek9wdGlvbnMgPSBbXG4gICAgY2FyZHNbY3VycmVudENhcmRJbmRleF0udHJhbnNsYXRpb24sXG4gICAgLi4uY2FyZHNcbiAgICAgIC5maWx0ZXIoKF8sIGlkeCkgPT4gaWR4ICE9PSBjdXJyZW50Q2FyZEluZGV4KVxuICAgICAgLm1hcChjYXJkID0+IGNhcmQudHJhbnNsYXRpb24pXG4gICAgICAuc2xpY2UoMCwgMiksXG4gICAgJ+W7uuitsOOAgeaPkOitsCcgLy8gYWRkaXRpb25hbCB3cm9uZyBvcHRpb25cbiAgXS5zb3J0KCgpID0+IE1hdGgucmFuZG9tKCkgLSAwLjUpIC8vIHNodWZmbGUgb3B0aW9uc1xuXG4gIGNvbnN0IGhhbmRsZUZsaXAgPSAoKSA9PiB7XG4gICAgc2V0SXNGbGlwcGVkKCFpc0ZsaXBwZWQpXG4gIH1cblxuICBjb25zdCBoYW5kbGVOZXh0ID0gKCkgPT4ge1xuICAgIGlmIChjdXJyZW50Q2FyZEluZGV4IDwgY2FyZHMubGVuZ3RoIC0gMSkge1xuICAgICAgc2V0Q3VycmVudENhcmRJbmRleChjdXJyZW50Q2FyZEluZGV4ICsgMSlcbiAgICAgIHNldElzRmxpcHBlZChmYWxzZSlcbiAgICAgIHNldFNlbGVjdGVkQW5zd2VyKG51bGwpXG4gICAgICBzZXRTaG93UmVzdWx0KGZhbHNlKVxuICAgICAgc2V0RmlsbEFuc3dlcignJylcbiAgICAgIHNldFNob3dIaW50KGZhbHNlKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVByZXZpb3VzID0gKCkgPT4ge1xuICAgIGlmIChjdXJyZW50Q2FyZEluZGV4ID4gMCkge1xuICAgICAgc2V0Q3VycmVudENhcmRJbmRleChjdXJyZW50Q2FyZEluZGV4IC0gMSlcbiAgICAgIHNldElzRmxpcHBlZChmYWxzZSlcbiAgICAgIHNldFNlbGVjdGVkQW5zd2VyKG51bGwpXG4gICAgICBzZXRTaG93UmVzdWx0KGZhbHNlKVxuICAgICAgc2V0RmlsbEFuc3dlcignJylcbiAgICAgIHNldFNob3dIaW50KGZhbHNlKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZURpZmZpY3VsdHlSYXRlID0gKHJhdGluZzogbnVtYmVyKSA9PiB7XG4gICAgLy8gTW9jayByYXRpbmcgbG9naWNcbiAgICBjb25zb2xlLmxvZyhgUmF0ZWQgJHtyYXRpbmd9IGZvciAke2N1cnJlbnRDYXJkLndvcmR9YClcbiAgICBoYW5kbGVOZXh0KClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVF1aXpBbnN3ZXIgPSAoYW5zd2VyOiBzdHJpbmcpID0+IHtcbiAgICBzZXRTZWxlY3RlZEFuc3dlcihhbnN3ZXIpXG4gICAgc2V0U2hvd1Jlc3VsdCh0cnVlKVxuICAgIGlmIChhbnN3ZXIgPT09IGN1cnJlbnRDYXJkLnRyYW5zbGF0aW9uKSB7XG4gICAgICBzZXRTY29yZSh7IC4uLnNjb3JlLCBjb3JyZWN0OiBzY29yZS5jb3JyZWN0ICsgMSwgdG90YWw6IHNjb3JlLnRvdGFsICsgMSB9KVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRTY29yZSh7IC4uLnNjb3JlLCB0b3RhbDogc2NvcmUudG90YWwgKyAxIH0pXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm1pbi1oLXNjcmVlbiBiZy1ncmFkaWVudC10by1iciBmcm9tLWJsdWUtNTAgdG8taW5kaWdvLTEwMFwiPlxuICAgICAgey8qIE5hdmlnYXRpb24gKi99XG4gICAgICA8bmF2IGNsYXNzTmFtZT1cImJnLXdoaXRlIHNoYWRvdy1zbSBib3JkZXItYlwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1heC13LTd4bCBteC1hdXRvIHB4LTQgc206cHgtNiBsZzpweC04XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBoLTE2XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtOFwiPlxuICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2Rhc2hib2FyZFwiIGNsYXNzTmFtZT1cInRleHQtMnhsIGZvbnQtYm9sZCB0ZXh0LXByaW1hcnlcIj5EcmFtYUxpbmc8L0xpbms+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGlkZGVuIG1kOmZsZXggc3BhY2UteC02XCI+XG4gICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9kYXNoYm9hcmRcIiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNjAwIGhvdmVyOnRleHQtZ3JheS05MDBcIj7lhIDooajmnb88L0xpbms+XG4gICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9mbGFzaGNhcmRzXCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTYwMCBob3Zlcjp0ZXh0LWdyYXktOTAwXCI+6Kme5Y2hPC9MaW5rPlxuICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvbGVhcm5cIiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktOTAwIGZvbnQtbWVkaXVtXCI+5a2457+SPC9MaW5rPlxuICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvZ2VuZXJhdGVcIiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNjAwIGhvdmVyOnRleHQtZ3JheS05MDBcIj5BSSDnlJ/miJA8L0xpbms+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy9kYXNoYm9hcmQnfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNjAwIGhvdmVyOnRleHQtZ3JheS05MDBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICDDlyDntZDmnZ/lrbjnv5JcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmF2PlxuXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1heC13LTR4bCBteC1hdXRvIHB4LTQgcHktOFwiPlxuICAgICAgICB7LyogUHJvZ3Jlc3MgQmFyICovfVxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1iLThcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBtYi0yXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDBcIj7pgLLluqY8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDBcIj5cbiAgICAgICAgICAgICAge2N1cnJlbnRDYXJkSW5kZXggKyAxfSAvIHtjYXJkcy5sZW5ndGh9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LWZ1bGwgYmctZ3JheS0yMDAgcm91bmRlZC1mdWxsIGgtMlwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJiZy1wcmltYXJ5IGgtMiByb3VuZGVkLWZ1bGwgdHJhbnNpdGlvbi1hbGxcIlxuICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogYCR7KChjdXJyZW50Q2FyZEluZGV4ICsgMSkgLyBjYXJkcy5sZW5ndGgpICogMTAwfSVgIH19XG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIHsvKiBNb2RlIFRvZ2dsZSAqL31cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktY2VudGVyIG1iLTZcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJnLXdoaXRlIHJvdW5kZWQtbGcgc2hhZG93LXNtIHAtMSBpbmxpbmUtZmxleCBmbGV4LXdyYXBcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0TW9kZSgnZmxpcCcpfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2BweC0zIHB5LTIgcm91bmRlZC1tZCB0cmFuc2l0aW9uLWNvbG9ycyAke1xuICAgICAgICAgICAgICAgIG1vZGUgPT09ICdmbGlwJ1xuICAgICAgICAgICAgICAgICAgPyAnYmctcHJpbWFyeSB0ZXh0LXdoaXRlJ1xuICAgICAgICAgICAgICAgICAgOiAndGV4dC1ncmF5LTYwMCBob3Zlcjp0ZXh0LWdyYXktOTAwJ1xuICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAg57+75Y2h5qih5byPXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0TW9kZSgncXVpeicpfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2BweC0zIHB5LTIgcm91bmRlZC1tZCB0cmFuc2l0aW9uLWNvbG9ycyAke1xuICAgICAgICAgICAgICAgIG1vZGUgPT09ICdxdWl6J1xuICAgICAgICAgICAgICAgICAgPyAnYmctcHJpbWFyeSB0ZXh0LXdoaXRlJ1xuICAgICAgICAgICAgICAgICAgOiAndGV4dC1ncmF5LTYwMCBob3Zlcjp0ZXh0LWdyYXktOTAwJ1xuICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAg6YG45pOH6aGMXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0TW9kZSgnZmlsbCcpfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2BweC0zIHB5LTIgcm91bmRlZC1tZCB0cmFuc2l0aW9uLWNvbG9ycyAke1xuICAgICAgICAgICAgICAgIG1vZGUgPT09ICdmaWxsJ1xuICAgICAgICAgICAgICAgICAgPyAnYmctcHJpbWFyeSB0ZXh0LXdoaXRlJ1xuICAgICAgICAgICAgICAgICAgOiAndGV4dC1ncmF5LTYwMCBob3Zlcjp0ZXh0LWdyYXktOTAwJ1xuICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAg5aGr56m66aGMXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0TW9kZSgnbGlzdGVuaW5nJyl9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17YHB4LTMgcHktMiByb3VuZGVkLW1kIHRyYW5zaXRpb24tY29sb3JzICR7XG4gICAgICAgICAgICAgICAgbW9kZSA9PT0gJ2xpc3RlbmluZydcbiAgICAgICAgICAgICAgICAgID8gJ2JnLXByaW1hcnkgdGV4dC13aGl0ZSdcbiAgICAgICAgICAgICAgICAgIDogJ3RleHQtZ3JheS02MDAgaG92ZXI6dGV4dC1ncmF5LTkwMCdcbiAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIOiBveWKm+a4rOipplxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldE1vZGUoJ3NwZWFraW5nJyl9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17YHB4LTMgcHktMiByb3VuZGVkLW1kIHRyYW5zaXRpb24tY29sb3JzICR7XG4gICAgICAgICAgICAgICAgbW9kZSA9PT0gJ3NwZWFraW5nJ1xuICAgICAgICAgICAgICAgICAgPyAnYmctcHJpbWFyeSB0ZXh0LXdoaXRlJ1xuICAgICAgICAgICAgICAgICAgOiAndGV4dC1ncmF5LTYwMCBob3Zlcjp0ZXh0LWdyYXktOTAwJ1xuICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAg5Y+j6Kqq5ris6KmmXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAge21vZGUgPT09ICdmbGlwJyA/IChcbiAgICAgICAgICAvKiBGbGlwIENhcmQgTW9kZSAqL1xuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmVcIj5cbiAgICAgICAgICAgIHsvKiBFcnJvciBSZXBvcnQgQnV0dG9uIGZvciBGbGlwIE1vZGUgKi99XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgganVzdGlmeS1lbmQgbWItMlwiPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgc2V0UmVwb3J0aW5nQ2FyZChjdXJyZW50Q2FyZClcbiAgICAgICAgICAgICAgICAgIHNldFNob3dSZXBvcnRNb2RhbCh0cnVlKVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1yZWQtNTAwIGhvdmVyOnRleHQtcmVkLTYwMCB0ZXh0LXNtIGZsZXggaXRlbXMtY2VudGVyIGdhcC0xXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cIuWbnuWgsemMr+iqpFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzTmFtZT1cInctNCBoLTRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIiBzdHJva2VXaWR0aD17Mn0gZD1cIk0xMiA4djRtMCA0aC4wMU0yMSAxMmE5IDkgMCAxMS0xOCAwIDkgOSAwIDAxMTggMHpcIiAvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgIOWbnuWgsemMr+iqpFxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJlbGF0aXZlIHctZnVsbCBoLTk2IGN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlRmxpcH1cbiAgICAgICAgICAgICAgc3R5bGU9e3sgcGVyc3BlY3RpdmU6ICcxMDAwcHgnIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2BhYnNvbHV0ZSB3LWZ1bGwgaC1mdWxsIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTYwMCAke1xuICAgICAgICAgICAgICAgICAgaXNGbGlwcGVkID8gJ3JvdGF0ZS15LTE4MCcgOiAnJ1xuICAgICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICB0cmFuc2Zvcm1TdHlsZTogJ3ByZXNlcnZlLTNkJyxcbiAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogaXNGbGlwcGVkID8gJ3JvdGF0ZVkoMTgwZGVnKScgOiAncm90YXRlWSgwZGVnKSdcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgey8qIEZyb250IG9mIGNhcmQgKi99XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYWJzb2x1dGUgdy1mdWxsIGgtZnVsbCBiZy13aGl0ZSByb3VuZGVkLTJ4bCBzaGFkb3cteGwgcC04IGZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGJhY2tmYWNlVmlzaWJpbGl0eTogJ2hpZGRlbicgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtNHhsIGZvbnQtYm9sZCB0ZXh0LWdyYXktOTAwIG1iLTRcIj5cbiAgICAgICAgICAgICAgICAgICAge2N1cnJlbnRDYXJkLndvcmR9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1sZyB0ZXh0LWdyYXktNjAwIG1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAge2N1cnJlbnRDYXJkLnBhcnRPZlNwZWVjaH1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWxnIHRleHQtZ3JheS01MDBcIj5cbiAgICAgICAgICAgICAgICAgICAge2N1cnJlbnRDYXJkLnByb251bmNpYXRpb259XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtOCB0ZXh0LXNtIHRleHQtZ3JheS00MDBcIj5cbiAgICAgICAgICAgICAgICAgICAg6bue5pOK57+76L2J5p+l55yL562U5qGIXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIHsvKiBCYWNrIG9mIGNhcmQgKi99XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYWJzb2x1dGUgdy1mdWxsIGgtZnVsbCBiZy13aGl0ZSByb3VuZGVkLTJ4bCBzaGFkb3cteGwgcC04IG92ZXJmbG93LXktYXV0b1wiXG4gICAgICAgICAgICAgICAgICBzdHlsZT17eyBcbiAgICAgICAgICAgICAgICAgICAgYmFja2ZhY2VWaXNpYmlsaXR5OiAnaGlkZGVuJyxcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAncm90YXRlWSgxODBkZWcpJ1xuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktNFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtZ3JheS03MDAgbWItMVwiPue/u+itrzwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC0yeGwgZm9udC1ib2xkIHRleHQtZ3JheS05MDBcIj57Y3VycmVudENhcmQudHJhbnNsYXRpb259PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtZ3JheS03MDAgbWItMVwiPuWumue+qTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTYwMFwiPntjdXJyZW50Q2FyZC5kZWZpbml0aW9ufTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LWdyYXktNzAwIG1iLTFcIj7kvovlj6U8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtZ3JheS02MDBcIj57Y3VycmVudENhcmQuZXhhbXBsZX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtZ3JheS01MDAgdGV4dC1zbSBtdC0xXCI+e2N1cnJlbnRDYXJkLmV4YW1wbGVUcmFuc2xhdGlvbn08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTcwMCBtYi0xXCI+5ZCM576p6KmePC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtd3JhcCBnYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge2N1cnJlbnRDYXJkLnN5bm9ueW1zLm1hcCgoc3luLCBpZHgpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4ga2V5PXtpZHh9IGNsYXNzTmFtZT1cInB4LTMgcHktMSBiZy1ncmF5LTEwMCByb3VuZGVkLWZ1bGwgdGV4dC1zbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzeW59XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICB7LyogRGlmZmljdWx0eSBSYXRpbmcgKi99XG4gICAgICAgICAgICB7aXNGbGlwcGVkICYmIChcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC04XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlciBtYi00XCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNjAwXCI+6YCZ5YCL5Zau5a2X5bCN5L2g5L6G6Kqq6Zuj5bqm5aaC5L2V77yfPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBqdXN0aWZ5LWNlbnRlciBzcGFjZS14LTNcIj5cbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlRGlmZmljdWx0eVJhdGUoMSl9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInB4LTQgcHktMiBiZy1yZWQtMTAwIHRleHQtcmVkLTcwMCByb3VuZGVkLWxnIGhvdmVyOmJnLXJlZC0yMDAgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICDwn5iUIOWujOWFqOS4jeiomOW+l1xuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZURpZmZpY3VsdHlSYXRlKDMpfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJweC00IHB5LTIgYmcteWVsbG93LTEwMCB0ZXh0LXllbGxvdy03MDAgcm91bmRlZC1sZyBob3ZlcjpiZy15ZWxsb3ctMjAwIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAg8J+YkCDmnInpu57lm7Dpm6NcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEaWZmaWN1bHR5UmF0ZSg1KX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicHgtNCBweS0yIGJnLWdyZWVuLTEwMCB0ZXh0LWdyZWVuLTcwMCByb3VuZGVkLWxnIGhvdmVyOmJnLWdyZWVuLTIwMCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIPCfmIog5b6I57Ch5ZauXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApIDogbW9kZSA9PT0gJ3F1aXonID8gKFxuICAgICAgICAgIC8qIFF1aXogTW9kZSAtIOmBuOaTh+mhjO+8muiLseaWh+Wumue+qemBuOS4reaWh+e/u+itryAqL1xuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmVcIj5cbiAgICAgICAgICAgIHsvKiBFcnJvciBSZXBvcnQgQnV0dG9uIGZvciBRdWl6IE1vZGUgKi99XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgganVzdGlmeS1lbmQgbWItMlwiPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgc2V0UmVwb3J0aW5nQ2FyZChjdXJyZW50Q2FyZClcbiAgICAgICAgICAgICAgICAgIHNldFNob3dSZXBvcnRNb2RhbCh0cnVlKVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1yZWQtNTAwIGhvdmVyOnRleHQtcmVkLTYwMCB0ZXh0LXNtIGZsZXggaXRlbXMtY2VudGVyIGdhcC0xXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cIuWbnuWgsemMr+iqpFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzTmFtZT1cInctNCBoLTRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIiBzdHJva2VXaWR0aD17Mn0gZD1cIk0xMiA4djRtMCA0aC4wMU0yMSAxMmE5IDkgMCAxMS0xOCAwIDkgOSAwIDAxMTggMHpcIiAvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgIOWbnuWgsemMr+iqpFxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJnLXdoaXRlIHJvdW5kZWQtMnhsIHNoYWRvdy14bCBwLThcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi02XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDAgbWItMlwiPuagueaTmuWumue+qemBuOaTh+ato+eiuueahOS4reaWh+e/u+itrzwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14bCB0ZXh0LWdyYXktODAwIGxlYWRpbmctcmVsYXhlZFwiPlxuICAgICAgICAgICAgICAgICAge2N1cnJlbnRDYXJkLmRlZmluaXRpb259XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS01MDAgbXQtMlwiPlxuICAgICAgICAgICAgICAgICAgKHtjdXJyZW50Q2FyZC5wYXJ0T2ZTcGVlY2h9KVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTNcIj5cbiAgICAgICAgICAgICAge3F1aXpPcHRpb25zLm1hcCgob3B0aW9uLCBpZHgpID0+IChcbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICBrZXk9e2lkeH1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+ICFzaG93UmVzdWx0ICYmIGhhbmRsZVF1aXpBbnN3ZXIob3B0aW9uKX1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtzaG93UmVzdWx0fVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgdy1mdWxsIHAtNCB0ZXh0LWxlZnQgcm91bmRlZC1sZyBib3JkZXItMiB0cmFuc2l0aW9uLWFsbCAke1xuICAgICAgICAgICAgICAgICAgICBzaG93UmVzdWx0ICYmIG9wdGlvbiA9PT0gY3VycmVudENhcmQudHJhbnNsYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICA/ICdib3JkZXItZ3JlZW4tNTAwIGJnLWdyZWVuLTUwJ1xuICAgICAgICAgICAgICAgICAgICAgIDogc2hvd1Jlc3VsdCAmJiBvcHRpb24gPT09IHNlbGVjdGVkQW5zd2VyICYmIG9wdGlvbiAhPT0gY3VycmVudENhcmQudHJhbnNsYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICA/ICdib3JkZXItcmVkLTUwMCBiZy1yZWQtNTAnXG4gICAgICAgICAgICAgICAgICAgICAgOiBzZWxlY3RlZEFuc3dlciA9PT0gb3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgPyAnYm9yZGVyLXByaW1hcnkgYmctcHJpbWFyeS1saWdodCdcbiAgICAgICAgICAgICAgICAgICAgICA6ICdib3JkZXItZ3JheS0yMDAgaG92ZXI6Ym9yZGVyLWdyYXktMzAwJ1xuICAgICAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZm9udC1tZWRpdW1cIj57b3B0aW9ufTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAge3Nob3dSZXN1bHQgJiYgb3B0aW9uID09PSBjdXJyZW50Q2FyZC50cmFuc2xhdGlvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzc05hbWU9XCJ3LTUgaC01IHRleHQtZ3JlZW4tNTAwXCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2VMaW5lY2FwPVwicm91bmRcIiBzdHJva2VMaW5lam9pbj1cInJvdW5kXCIgc3Ryb2tlV2lkdGg9ezJ9IGQ9XCJNNSAxM2w0IDRMMTkgN1wiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIHtzaG93UmVzdWx0ICYmIG9wdGlvbiA9PT0gc2VsZWN0ZWRBbnN3ZXIgJiYgb3B0aW9uICE9PSBjdXJyZW50Q2FyZC50cmFuc2xhdGlvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzc05hbWU9XCJ3LTUgaC01IHRleHQtcmVkLTUwMFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZVdpZHRoPXsyfSBkPVwiTTYgMThMMTggNk02IDZsMTIgMTJcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApIDogbW9kZSA9PT0gJ2ZpbGwnID8gKFxuICAgICAgICAgIC8qIEZpbGwgaW4gdGhlIEJsYW5rIE1vZGUgLSDloavnqbrpoYwgKi9cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlXCI+XG4gICAgICAgICAgICB7LyogRXJyb3IgUmVwb3J0IEJ1dHRvbiBmb3IgRmlsbCBNb2RlICovfVxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktZW5kIG1iLTJcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIHNldFJlcG9ydGluZ0NhcmQoY3VycmVudENhcmQpXG4gICAgICAgICAgICAgICAgICBzZXRTaG93UmVwb3J0TW9kYWwodHJ1ZSlcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtcmVkLTUwMCBob3Zlcjp0ZXh0LXJlZC02MDAgdGV4dC1zbSBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCLlm57loLHpjK/oqqRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHN2ZyBjbGFzc05hbWU9XCJ3LTQgaC00XCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2VMaW5lY2FwPVwicm91bmRcIiBzdHJva2VMaW5lam9pbj1cInJvdW5kXCIgc3Ryb2tlV2lkdGg9ezJ9IGQ9XCJNMTIgOHY0bTAgNGguMDFNMjEgMTJhOSA5IDAgMTEtMTggMCA5IDkgMCAwMTE4IDB6XCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICDlm57loLHpjK/oqqRcbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy13aGl0ZSByb3VuZGVkLTJ4bCBzaGFkb3cteGwgcC04XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWItNlwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwIG1iLTRcIj7moLnmk5rkvovlj6XlnJbniYflkozlj6XlrZDloavlhaXmraPnorrnmoToqZ7lvZk8L2Rpdj5cblxuICAgICAgICAgICAgICB7LyogRXhhbXBsZSBJbWFnZSAqL31cbiAgICAgICAgICAgICAge2N1cnJlbnRDYXJkLmV4YW1wbGVJbWFnZSAmJiAoXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi00XCI+XG4gICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgIHNyYz17Y3VycmVudENhcmQuZXhhbXBsZUltYWdlfVxuICAgICAgICAgICAgICAgICAgICBhbHQ9XCJFeGFtcGxlIGNvbnRleHRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ3LWZ1bGwgcm91bmRlZC1sZyBzaGFkb3ctbWQgY3Vyc29yLXBvaW50ZXIgaG92ZXI6c2hhZG93LWxnIHRyYW5zaXRpb24tc2hhZG93XCJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgbWF4SGVpZ2h0OiAnNDAwcHgnLCBvYmplY3RGaXQ6ICdjb250YWluJyB9fVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRNb2RhbEltYWdlKGN1cnJlbnRDYXJkLmV4YW1wbGVJbWFnZSl9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtZ3JheS01MDAgbXQtMiB0ZXh0LWNlbnRlclwiPum7nuaTiuWclueJh+WPr+aUvuWkp+afpeecizwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgIHsvKiBFeGFtcGxlIFNlbnRlbmNlIHdpdGggQmxhbmsgKi99XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1sZyB0ZXh0LWdyYXktODAwIG1iLTRcIj5cbiAgICAgICAgICAgICAgICB7Y3VycmVudENhcmQuZXhhbXBsZS5zcGxpdChjdXJyZW50Q2FyZC53b3JkKS5tYXAoKHBhcnQsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGtleT17aX0+XG4gICAgICAgICAgICAgICAgICAgIHtwYXJ0fVxuICAgICAgICAgICAgICAgICAgICB7aSA8IGN1cnJlbnRDYXJkLmV4YW1wbGUuc3BsaXQoY3VycmVudENhcmQud29yZCkubGVuZ3RoIC0gMSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaW5saW5lLWJsb2NrIHctMzIgYm9yZGVyLWItMiBib3JkZXItZ3JheS00MDAgbXgtMVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgey8qIEhpbnQgQnV0dG9uICovfVxuICAgICAgICAgICAgICB7IXNob3dIaW50ICYmIChcbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTaG93SGludCh0cnVlKX1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1wcmltYXJ5IGhvdmVyOnRleHQtcHJpbWFyeS1ob3ZlciBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzc05hbWU9XCJ3LTQgaC00XCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIiBzdHJva2VXaWR0aD17Mn0gZD1cIk0xMyAxNmgtMXYtNGgtMW0xLTRoLjAxTTIxIDEyYTkgOSAwIDExLTE4IDAgOSA5IDAgMDExOCAwelwiIC8+XG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgIOm7nuaTiuafpeeci+aPkOekulxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgIHsvKiBEZWZpbml0aW9uIEhpbnQgKi99XG4gICAgICAgICAgICAgIHtzaG93SGludCAmJiAoXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC0zIHAtMyBiZy1ibHVlLTUwIHJvdW5kZWQtbGdcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWJsdWUtODAwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+5a6a576p5o+Q56S677yaPC9zdHJvbmc+IHtjdXJyZW50Q2FyZC5kZWZpbml0aW9ufVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgey8qIEFuc3dlciBJbnB1dCAqL31cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWItNlwiPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgdmFsdWU9e2ZpbGxBbnN3ZXJ9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRGaWxsQW5zd2VyKGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIui8uOWFpeetlOahiC4uLlwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIHB4LTQgcHktMyBib3JkZXItMiBib3JkZXItZ3JheS0zMDAgcm91bmRlZC1sZyBmb2N1czpib3JkZXItcHJpbWFyeSBmb2N1czpvdXRsaW5lLW5vbmUgdGV4dC1sZ1wiXG4gICAgICAgICAgICAgICAgb25LZXlQcmVzcz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJyAmJiBmaWxsQW5zd2VyKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFNob3dSZXN1bHQodHJ1ZSlcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIHsvKiBTdWJtaXQgQnV0dG9uICovfVxuICAgICAgICAgICAgeyFzaG93UmVzdWx0ICYmIChcbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGZpbGxBbnN3ZXIgJiYgc2V0U2hvd1Jlc3VsdCh0cnVlKX1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17IWZpbGxBbnN3ZXJ9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIHB5LTMgYmctcHJpbWFyeSB0ZXh0LXdoaXRlIHJvdW5kZWQtbGcgZm9udC1tZWRpdW0gaG92ZXI6YmctcHJpbWFyeS1ob3ZlciB0cmFuc2l0aW9uLWNvbG9ycyBkaXNhYmxlZDpvcGFjaXR5LTUwIGRpc2FibGVkOmN1cnNvci1ub3QtYWxsb3dlZFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICDmj5DkuqTnrZTmoYhcbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7LyogUmVzdWx0IERpc3BsYXkgKi99XG4gICAgICAgICAgICB7c2hvd1Jlc3VsdCAmJiAoXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgcC00IHJvdW5kZWQtbGcgJHtcbiAgICAgICAgICAgICAgICBmaWxsQW5zd2VyLnRvTG93ZXJDYXNlKCkgPT09IGN1cnJlbnRDYXJkLndvcmQudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICAgICAgPyAnYmctZ3JlZW4tNTAgYm9yZGVyLTIgYm9yZGVyLWdyZWVuLTUwMCdcbiAgICAgICAgICAgICAgICAgIDogJ2JnLXJlZC01MCBib3JkZXItMiBib3JkZXItcmVkLTUwMCdcbiAgICAgICAgICAgICAgfWB9PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTJcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17YGZvbnQtc2VtaWJvbGQgJHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbEFuc3dlci50b0xvd2VyQ2FzZSgpID09PSBjdXJyZW50Q2FyZC53b3JkLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgICA/ICd0ZXh0LWdyZWVuLTcwMCdcbiAgICAgICAgICAgICAgICAgICAgICA6ICd0ZXh0LXJlZC03MDAnXG4gICAgICAgICAgICAgICAgICB9YH0+XG4gICAgICAgICAgICAgICAgICAgIHtmaWxsQW5zd2VyLnRvTG93ZXJDYXNlKCkgPT09IGN1cnJlbnRDYXJkLndvcmQudG9Mb3dlckNhc2UoKSA/ICfinJMg5q2j56K677yBJyA6ICfinJcg6Yyv6KqkJ31cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB7ZmlsbEFuc3dlci50b0xvd2VyQ2FzZSgpICE9PSBjdXJyZW50Q2FyZC53b3JkLnRvTG93ZXJDYXNlKCkgJiYgKFxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS03MDBcIj5cbiAgICAgICAgICAgICAgICAgICAg5q2j56K6562U5qGI77yaPHNwYW4gY2xhc3NOYW1lPVwiZm9udC1ib2xkXCI+e2N1cnJlbnRDYXJkLndvcmR9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTMgdGV4dC1zbSB0ZXh0LWdyYXktNjAwXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvbnQtc2VtaWJvbGQgbWItMVwiPuWujOaVtOS+i+WPpe+8mjwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdj57Y3VycmVudENhcmQuZXhhbXBsZX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTUwMCBtdC0xXCI+e2N1cnJlbnRDYXJkLmV4YW1wbGVUcmFuc2xhdGlvbn08L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICkgOiBtb2RlID09PSAnbGlzdGVuaW5nJyA/IChcbiAgICAgICAgICAvKiBMaXN0ZW5pbmcgVGVzdCBNb2RlIC0g6IG95Yqb5ris6KmmICovXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZWxhdGl2ZVwiPlxuICAgICAgICAgICAgey8qIEVycm9yIFJlcG9ydCBCdXR0b24gZm9yIExpc3RlbmluZyBNb2RlICovfVxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktZW5kIG1iLTJcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIHNldFJlcG9ydGluZ0NhcmQoY3VycmVudENhcmQpXG4gICAgICAgICAgICAgICAgICBzZXRTaG93UmVwb3J0TW9kYWwodHJ1ZSlcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtcmVkLTUwMCBob3Zlcjp0ZXh0LXJlZC02MDAgdGV4dC1zbSBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCLlm57loLHpjK/oqqRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHN2ZyBjbGFzc05hbWU9XCJ3LTQgaC00XCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2VMaW5lY2FwPVwicm91bmRcIiBzdHJva2VMaW5lam9pbj1cInJvdW5kXCIgc3Ryb2tlV2lkdGg9ezJ9IGQ9XCJNMTIgOHY0bTAgNGguMDFNMjEgMTJhOSA5IDAgMTEtMTggMCA5IDkgMCAwMTE4IDB6XCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICDlm57loLHpjK/oqqRcbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy13aGl0ZSByb3VuZGVkLTJ4bCBzaGFkb3cteGwgcC04XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWItNiB0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwIG1iLTRcIj7ogb3pn7PpoLvvvIzpgbjmk4fmraPnorrnmoTllq7lrZc8L2Rpdj5cblxuICAgICAgICAgICAgICB7LyogQXVkaW8gUGxheSBCdXR0b24gKi99XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBzZXRBdWRpb1BsYXlpbmcodHJ1ZSlcbiAgICAgICAgICAgICAgICAgIC8vIFNpbXVsYXRlIGF1ZGlvIHBsYXlpbmdcbiAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gc2V0QXVkaW9QbGF5aW5nKGZhbHNlKSwgMjAwMClcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm14LWF1dG8gbWItNiBwLTggYmctZ3JheS0xMDAgcm91bmRlZC1mdWxsIGhvdmVyOmJnLWdyYXktMjAwIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHthdWRpb1BsYXlpbmcgPyAoXG4gICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzTmFtZT1cInctMTYgaC0xNiB0ZXh0LXByaW1hcnkgYW5pbWF0ZS1wdWxzZVwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2VMaW5lY2FwPVwicm91bmRcIiBzdHJva2VMaW5lam9pbj1cInJvdW5kXCIgc3Ryb2tlV2lkdGg9ezJ9IGQ9XCJNMTUuNTM2IDguNDY0YTUgNSAwIDAxMCA3LjA3Mm0yLjgyOC05LjlhOSA5IDAgMDEwIDEyLjcyOE01LjU4NiAxNUg0YTEgMSAwIDAxLTEtMXYtNGExIDEgMCAwMTEtMWgxLjU4Nmw0LjcwNy00LjcwN0MxMC45MjMgMy42NjMgMTIgNC4xMDkgMTIgNXYxNGMwIC44OTEtMS4wNzcgMS4zMzctMS43MDcuNzA3TDUuNTg2IDE1elwiIC8+XG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzc05hbWU9XCJ3LTE2IGgtMTYgdGV4dC1ncmF5LTYwMFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2VMaW5lY2FwPVwicm91bmRcIiBzdHJva2VMaW5lam9pbj1cInJvdW5kXCIgc3Ryb2tlV2lkdGg9ezJ9IGQ9XCJNMTQuNzUyIDExLjE2OGwtMy4xOTctMi4xMzJBMSAxIDAgMDAxMCA5Ljg3djQuMjYzYTEgMSAwIDAwMS41NTUuODMybDMuMTk3LTIuMTMyYTEgMSAwIDAwMC0xLjY2NHpcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2VMaW5lY2FwPVwicm91bmRcIiBzdHJva2VMaW5lam9pbj1cInJvdW5kXCIgc3Ryb2tlV2lkdGg9ezJ9IGQ9XCJNMjEgMTJhOSA5IDAgMTEtMTggMCA5IDkgMCAwMTE4IDB6XCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNTAwXCI+6bue5pOK5pKt5pS+5oyJ6YiV6IG955m86Z+zPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgey8qIFdvcmQgT3B0aW9ucyAqL31cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBncmlkLWNvbHMtMiBnYXAtM1wiPlxuICAgICAgICAgICAgICB7W2N1cnJlbnRDYXJkLndvcmQsICdkZXRlcm1pbmUnLCAnYWNoaWV2ZScsICdjb25zaWRlciddLm1hcCgod29yZCkgPT4gKFxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIGtleT17d29yZH1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+ICFzaG93UmVzdWx0ICYmIGhhbmRsZVF1aXpBbnN3ZXIod29yZCl9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17c2hvd1Jlc3VsdH1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YHAtNCB0ZXh0LWxnIGZvbnQtbWVkaXVtIHJvdW5kZWQtbGcgYm9yZGVyLTIgdHJhbnNpdGlvbi1hbGwgJHtcbiAgICAgICAgICAgICAgICAgICAgc2hvd1Jlc3VsdCAmJiB3b3JkID09PSBjdXJyZW50Q2FyZC53b3JkXG4gICAgICAgICAgICAgICAgICAgICAgPyAnYm9yZGVyLWdyZWVuLTUwMCBiZy1ncmVlbi01MCdcbiAgICAgICAgICAgICAgICAgICAgICA6IHNob3dSZXN1bHQgJiYgd29yZCA9PT0gc2VsZWN0ZWRBbnN3ZXIgJiYgd29yZCAhPT0gY3VycmVudENhcmQud29yZFxuICAgICAgICAgICAgICAgICAgICAgID8gJ2JvcmRlci1yZWQtNTAwIGJnLXJlZC01MCdcbiAgICAgICAgICAgICAgICAgICAgICA6IHNlbGVjdGVkQW5zd2VyID09PSB3b3JkXG4gICAgICAgICAgICAgICAgICAgICAgPyAnYm9yZGVyLXByaW1hcnkgYmctcHJpbWFyeS1saWdodCdcbiAgICAgICAgICAgICAgICAgICAgICA6ICdib3JkZXItZ3JheS0yMDAgaG92ZXI6Ym9yZGVyLWdyYXktMzAwJ1xuICAgICAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3dvcmR9XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIHsvKiBSZXN1bHQgRGlzcGxheSAqL31cbiAgICAgICAgICAgIHtzaG93UmVzdWx0ICYmIChcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC02IHAtNCBiZy1ncmF5LTUwIHJvdW5kZWQtbGdcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LWdyYXktNzAwIG1iLTJcIj7llq7lrZfoqbPmg4U8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktMlwiPlxuICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZm9udC1zZW1pYm9sZFwiPntjdXJyZW50Q2FyZC53b3JkfTwvc3Bhbj4gLSB7Y3VycmVudENhcmQudHJhbnNsYXRpb259XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwXCI+e2N1cnJlbnRDYXJkLmRlZmluaXRpb259PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmF5LTUwMCBpdGFsaWNcIj5cIntjdXJyZW50Q2FyZC5leGFtcGxlfVwiPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApIDogbW9kZSA9PT0gJ3NwZWFraW5nJyA/IChcbiAgICAgICAgICAvKiBTcGVha2luZyBUZXN0IE1vZGUgLSDlj6PoqqrmuKzoqaYgKi9cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlXCI+XG4gICAgICAgICAgICB7LyogRXJyb3IgUmVwb3J0IEJ1dHRvbiBmb3IgU3BlYWtpbmcgTW9kZSAqL31cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBqdXN0aWZ5LWVuZCBtYi0yXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBzZXRSZXBvcnRpbmdDYXJkKGN1cnJlbnRDYXJkKVxuICAgICAgICAgICAgICAgICAgc2V0U2hvd1JlcG9ydE1vZGFsKHRydWUpXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LXJlZC01MDAgaG92ZXI6dGV4dC1yZWQtNjAwIHRleHQtc20gZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTFcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwi5Zue5aCx6Yyv6KqkXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3NOYW1lPVwidy00IGgtNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZVdpZHRoPXsyfSBkPVwiTTEyIDh2NG0wIDRoLjAxTTIxIDEyYTkgOSAwIDExLTE4IDAgOSA5IDAgMDExOCAwelwiIC8+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAg5Zue5aCx6Yyv6KqkXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctd2hpdGUgcm91bmRlZC0yeGwgc2hhZG93LXhsIHAtOFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1iLTZcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmF5LTYwMCBtYi00XCI+5b+15Ye65Lul5LiL5L6L5Y+lPC9kaXY+XG5cbiAgICAgICAgICAgICAgey8qIFRhcmdldCBTZW50ZW5jZSAqL31cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwLTYgYmctZ3JheS01MCByb3VuZGVkLWxnIG1iLTZcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteGwgdGV4dC1ncmF5LTgwMCBsZWFkaW5nLXJlbGF4ZWQgbWItM1wiPlxuICAgICAgICAgICAgICAgICAge2N1cnJlbnRDYXJkLmV4YW1wbGV9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNjAwXCI+XG4gICAgICAgICAgICAgICAgICB7Y3VycmVudENhcmQuZXhhbXBsZVRyYW5zbGF0aW9ufVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICB7LyogUHJvbnVuY2lhdGlvbiBHdWlkZSAqL31cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi02XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDAgbWItMlwiPumHjem7nuWWruWtl+eZvOmfs++8mjwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTRcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZvbnQtc2VtaWJvbGQgdGV4dC1sZ1wiPntjdXJyZW50Q2FyZC53b3JkfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtZ3JheS01MDBcIj57Y3VycmVudENhcmQucHJvbnVuY2lhdGlvbn08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cInRleHQtcHJpbWFyeSBob3Zlcjp0ZXh0LXByaW1hcnktaG92ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzc05hbWU9XCJ3LTUgaC01XCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZVdpZHRoPXsyfSBkPVwiTTE1LjUzNiA4LjQ2NGE1IDUgMCAwMTAgNy4wNzJtMi44MjgtOS45YTkgOSAwIDAxMCAxMi43MjhNNS41ODYgMTVINGExIDEgMCAwMS0xLTF2LTRhMSAxIDAgMDExLTFoMS41ODZsNC43MDctNC43MDdDMTAuOTIzIDMuNjYzIDEyIDQuMTA5IDEyIDV2MTRjMCAuODkxLTEuMDc3IDEuMzM3LTEuNzA3LjcwN0w1LjU4NiAxNXpcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICB7LyogUmVjb3JkaW5nIEJ1dHRvbiAqL31cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc2V0SXNSZWNvcmRpbmcoIWlzUmVjb3JkaW5nKVxuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzUmVjb3JkaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnQgcmVjb3JkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRJc1JlY29yZGluZyhmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFNob3dSZXN1bHQodHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICB9LCAzMDAwKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgcC02IHJvdW5kZWQtZnVsbCB0cmFuc2l0aW9uLWFsbCAke1xuICAgICAgICAgICAgICAgICAgICBpc1JlY29yZGluZ1xuICAgICAgICAgICAgICAgICAgICAgID8gJ2JnLXJlZC01MDAgaG92ZXI6YmctcmVkLTYwMCBhbmltYXRlLXB1bHNlJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2JnLXByaW1hcnkgaG92ZXI6YmctcHJpbWFyeS1ob3ZlcidcbiAgICAgICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtpc1JlY29yZGluZyA/IChcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzc05hbWU9XCJ3LTEyIGgtMTIgdGV4dC13aGl0ZVwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIiBzdHJva2VXaWR0aD17Mn0gZD1cIk0yMSAxMmE5IDkgMCAxMS0xOCAwIDkgOSAwIDAxMTggMHpcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIiBzdHJva2VXaWR0aD17Mn0gZD1cIk05IDEwYTEgMSAwIDAxMS0xaDRhMSAxIDAgMDExIDF2NGExIDEgMCAwMS0xIDFoLTRhMSAxIDAgMDEtMS0xdi00elwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzc05hbWU9XCJ3LTEyIGgtMTIgdGV4dC13aGl0ZVwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIiBzdHJva2VXaWR0aD17Mn0gZD1cIk0xOSAxMWE3IDcgMCAwMS03IDdtMCAwYTcgNyAwIDAxLTctN203IDd2NG0wIDBIOG00IDBoNG0tNC04YTMgMyAwIDAxLTMtM1Y1YTMgMyAwIDExNiAwdjZhMyAzIDAgMDEtMyAzelwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTMgdGV4dC1zbSB0ZXh0LWdyYXktNjAwXCI+XG4gICAgICAgICAgICAgICAgICB7aXNSZWNvcmRpbmcgPyAn6YyE6Z+z5LitLi4uIOm7nuaTiuWBnOatoicgOiAn6bue5pOK6ZaL5aeL6YyE6Z+zJ31cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgey8qIFJlc3VsdCBEaXNwbGF5ICovfVxuICAgICAgICAgICAgICB7c2hvd1Jlc3VsdCAmJiAoXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC02IHAtNCBiZy1ncmVlbi01MCBib3JkZXItMiBib3JkZXItZ3JlZW4tNTAwIHJvdW5kZWQtbGdcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1ncmVlbi03MDAgZm9udC1zZW1pYm9sZCBtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIOKckyDlrozmiJDlj6Poqqrnt7Tnv5LvvIFcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDBcIj5cbiAgICAgICAgICAgICAgICAgICAg5o+Q56S677ya5oyB57qM57e057+S5Y+v5Lul5o+Q6auY55m86Z+z5rqW56K65bqm5ZKM5rWB5pqi5bqmXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApIDogbnVsbH1cblxuICAgICAgICB7LyogTmF2aWdhdGlvbiBCdXR0b25zICovfVxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgganVzdGlmeS1iZXR3ZWVuIG10LThcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVQcmV2aW91c31cbiAgICAgICAgICAgIGRpc2FibGVkPXtjdXJyZW50Q2FyZEluZGV4ID09PSAwfVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC0yIHB4LTYgcHktMyBiZy13aGl0ZSByb3VuZGVkLWxnIHNoYWRvdy1zbSBob3ZlcjpzaGFkb3ctbWQgdHJhbnNpdGlvbi1zaGFkb3cgZGlzYWJsZWQ6b3BhY2l0eS01MCBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzdmcgY2xhc3NOYW1lPVwidy01IGgtNVwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICA8cGF0aCBzdHJva2VMaW5lY2FwPVwicm91bmRcIiBzdHJva2VMaW5lam9pbj1cInJvdW5kXCIgc3Ryb2tlV2lkdGg9ezJ9IGQ9XCJNMTUgMTlsLTctNyA3LTdcIiAvPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8c3Bhbj7kuIrkuIDlgIs8L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVOZXh0fVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2N1cnJlbnRDYXJkSW5kZXggPT09IGNhcmRzLmxlbmd0aCAtIDF9XG4gICAgICAgICAgICBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTIgcHgtNiBweS0zIGJnLXByaW1hcnkgdGV4dC13aGl0ZSByb3VuZGVkLWxnIHNoYWRvdy1zbSBob3ZlcjpiZy1wcmltYXJ5LWhvdmVyIHRyYW5zaXRpb24tY29sb3JzIGRpc2FibGVkOm9wYWNpdHktNTAgZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3Bhbj7kuIvkuIDlgIs8L3NwYW4+XG4gICAgICAgICAgICA8c3ZnIGNsYXNzTmFtZT1cInctNSBoLTVcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZVdpZHRoPXsyfSBkPVwiTTkgNWw3IDctNyA3XCIgLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7LyogSW1hZ2UgTW9kYWwgKi99XG4gICAgICB7bW9kYWxJbWFnZSAmJiAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzc05hbWU9XCJmaXhlZCBpbnNldC0wIHotNTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgYmctYmxhY2sgYmctb3BhY2l0eS03NSBwLTRcIlxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldE1vZGFsSW1hZ2UobnVsbCl9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9XCJyZWxhdGl2ZSBtYXgtdy00eGwgbWF4LWgtWzkwdmhdIGJnLXdoaXRlIHJvdW5kZWQtbGcgb3ZlcmZsb3ctaGlkZGVuXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHsvKiBDbG9zZSBCdXR0b24gKi99XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldE1vZGFsSW1hZ2UobnVsbCl9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIHRvcC0yIHJpZ2h0LTIgei0xMCBwLTIgYmctd2hpdGUgYmctb3BhY2l0eS05MCByb3VuZGVkLWZ1bGwgaG92ZXI6Ymctb3BhY2l0eS0xMDAgdHJhbnNpdGlvbi1hbGwgc2hhZG93LWxnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHN2ZyBjbGFzc05hbWU9XCJ3LTYgaC02IHRleHQtZ3JheS03MDBcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2VMaW5lY2FwPVwicm91bmRcIiBzdHJva2VMaW5lam9pbj1cInJvdW5kXCIgc3Ryb2tlV2lkdGg9ezJ9IGQ9XCJNNiAxOEwxOCA2TTYgNmwxMiAxMlwiIC8+XG4gICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgIHsvKiBJbWFnZSAqL31cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicC00XCI+XG4gICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICBzcmM9e21vZGFsSW1hZ2V9XG4gICAgICAgICAgICAgICAgYWx0PVwiRXhhbXBsZSBjb250ZXh0IGVubGFyZ2VkXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ3LWZ1bGwgaC1mdWxsIG9iamVjdC1jb250YWluXCJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBtYXhIZWlnaHQ6ICdjYWxjKDkwdmggLSAycmVtKScgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG5cbiAgICAgIHsvKiBFcnJvciBSZXBvcnQgTW9kYWwgKi99XG4gICAgICB7c2hvd1JlcG9ydE1vZGFsICYmIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT1cImZpeGVkIGluc2V0LTAgei01MCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBiZy1ibGFjayBiZy1vcGFjaXR5LTUwIHAtNFwiXG4gICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2hvd1JlcG9ydE1vZGFsKGZhbHNlKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImJnLXdoaXRlIHJvdW5kZWQtbGcgc2hhZG93LXhsIG1heC13LW1kIHctZnVsbCBwLTZcIlxuICAgICAgICAgICAgb25DbGljaz17KGUpID0+IGUuc3RvcFByb3BhZ2F0aW9uKCl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgbWItNFwiPlxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LXNlbWlib2xkXCI+5Zue5aCx6Yyv6KqkPC9oMz5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldFNob3dSZXBvcnRNb2RhbChmYWxzZSl9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LWdyYXktNjAwXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3NOYW1lPVwidy02IGgtNlwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZVdpZHRoPXsyfSBkPVwiTTYgMThMMTggNk02IDZsMTIgMTJcIiAvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1iLTRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDAgbWItMlwiPlxuICAgICAgICAgICAgICAgIOipnuWNoe+8mjxzcGFuIGNsYXNzTmFtZT1cImZvbnQtbWVkaXVtXCI+e3JlcG9ydGluZ0NhcmQ/LndvcmR9PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDAgbWItMlwiPlxuICAgICAgICAgICAgICAgIOa4rOmpl+aooeW8j++8mnttb2RlID09PSAnZmxpcCcgPyAn57+75Y2h5qih5byPJyA6IG1vZGUgPT09ICdxdWl6JyA/ICfpgbjmk4fpoYwnIDogbW9kZSA9PT0gJ2ZpbGwnID8gJ+Whq+epuumhjCcgOiBtb2RlID09PSAnbGlzdGVuaW5nJyA/ICfogb3lipvmuKzoqaYnIDogJ+WPo+iqqua4rOippid9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWItNFwiPlxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiYmxvY2sgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWdyYXktNzAwIG1iLTJcIj5cbiAgICAgICAgICAgICAgICDpjK/oqqTljp/lm6DvvIjpgbjloavvvIlcbiAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgdmFsdWU9e3JlcG9ydFJlYXNvbn1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldFJlcG9ydFJlYXNvbihlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLoq4vmj4/ov7DpjK/oqqTlhaflrrkuLi5cIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCBweC0zIHB5LTIgYm9yZGVyIGJvcmRlci1ncmF5LTMwMCByb3VuZGVkLWxnIGZvY3VzOnJpbmctcHJpbWFyeSBmb2N1czpib3JkZXItcHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgcm93cz17M31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZ2FwLTNcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIC8vIFN1Ym1pdCBlcnJvciByZXBvcnRcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdFcnJvciByZXBvcnRlZDonLCB7XG4gICAgICAgICAgICAgICAgICAgIGNhcmQ6IHJlcG9ydGluZ0NhcmQsXG4gICAgICAgICAgICAgICAgICAgIG1vZGUsXG4gICAgICAgICAgICAgICAgICAgIHJlYXNvbjogcmVwb3J0UmVhc29uXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgc2V0U2hvd1JlcG9ydE1vZGFsKGZhbHNlKVxuICAgICAgICAgICAgICAgICAgc2V0UmVwb3J0UmVhc29uKCcnKVxuICAgICAgICAgICAgICAgICAgc2V0UmVwb3J0aW5nQ2FyZChudWxsKVxuICAgICAgICAgICAgICAgICAgLy8gU2hvdyBzdWNjZXNzIG1lc3NhZ2UgKGNvdWxkIGFkZCBhIHRvYXN0IG5vdGlmaWNhdGlvbiBoZXJlKVxuICAgICAgICAgICAgICAgICAgYWxlcnQoJ+aEn+isneaCqOeahOWbnuWgse+8jOaIkeWAkeacg+eboeW/q+iZleeQhu+8gScpXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmbGV4LTEgcHgtNCBweS0yIGJnLXByaW1hcnkgdGV4dC13aGl0ZSByb3VuZGVkLWxnIGhvdmVyOmJnLXByaW1hcnktaG92ZXIgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAg6YCB5Ye65Zue5aCxXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgc2V0U2hvd1JlcG9ydE1vZGFsKGZhbHNlKVxuICAgICAgICAgICAgICAgICAgc2V0UmVwb3J0UmVhc29uKCcnKVxuICAgICAgICAgICAgICAgICAgc2V0UmVwb3J0aW5nQ2FyZChudWxsKVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleC0xIHB4LTQgcHktMiBiZy1ncmF5LTEwMCB0ZXh0LWdyYXktNzAwIHJvdW5kZWQtbGcgaG92ZXI6YmctZ3JheS0yMDAgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAg5Y+W5raIXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKVxufSJdLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsIkxpbmsiLCJ1c2VSb3V0ZXIiLCJMZWFyblBhZ2UiLCJyb3V0ZXIiLCJjdXJyZW50Q2FyZEluZGV4Iiwic2V0Q3VycmVudENhcmRJbmRleCIsImlzRmxpcHBlZCIsInNldElzRmxpcHBlZCIsIm1vZGUiLCJzZXRNb2RlIiwic2NvcmUiLCJzZXRTY29yZSIsImNvcnJlY3QiLCJ0b3RhbCIsInNlbGVjdGVkQW5zd2VyIiwic2V0U2VsZWN0ZWRBbnN3ZXIiLCJzaG93UmVzdWx0Iiwic2V0U2hvd1Jlc3VsdCIsImZpbGxBbnN3ZXIiLCJzZXRGaWxsQW5zd2VyIiwic2hvd0hpbnQiLCJzZXRTaG93SGludCIsImlzUmVjb3JkaW5nIiwic2V0SXNSZWNvcmRpbmciLCJhdWRpb1BsYXlpbmciLCJzZXRBdWRpb1BsYXlpbmciLCJtb2RhbEltYWdlIiwic2V0TW9kYWxJbWFnZSIsInNob3dSZXBvcnRNb2RhbCIsInNldFNob3dSZXBvcnRNb2RhbCIsInJlcG9ydFJlYXNvbiIsInNldFJlcG9ydFJlYXNvbiIsInJlcG9ydGluZ0NhcmQiLCJzZXRSZXBvcnRpbmdDYXJkIiwiY2FyZHMiLCJpZCIsIndvcmQiLCJwYXJ0T2ZTcGVlY2giLCJwcm9udW5jaWF0aW9uIiwidHJhbnNsYXRpb24iLCJkZWZpbml0aW9uIiwiZXhhbXBsZSIsImV4YW1wbGVUcmFuc2xhdGlvbiIsImV4YW1wbGVJbWFnZSIsInN5bm9ueW1zIiwiZGlmZmljdWx0eSIsImN1cnJlbnRDYXJkIiwicXVpek9wdGlvbnMiLCJmaWx0ZXIiLCJfIiwiaWR4IiwibWFwIiwiY2FyZCIsInNsaWNlIiwic29ydCIsIk1hdGgiLCJyYW5kb20iLCJoYW5kbGVGbGlwIiwiaGFuZGxlTmV4dCIsImxlbmd0aCIsImhhbmRsZVByZXZpb3VzIiwiaGFuZGxlRGlmZmljdWx0eVJhdGUiLCJyYXRpbmciLCJjb25zb2xlIiwibG9nIiwiaGFuZGxlUXVpekFuc3dlciIsImFuc3dlciIsImRpdiIsImNsYXNzTmFtZSIsIm5hdiIsImhyZWYiLCJidXR0b24iLCJvbkNsaWNrIiwid2luZG93IiwibG9jYXRpb24iLCJzcGFuIiwic3R5bGUiLCJ3aWR0aCIsInRpdGxlIiwic3ZnIiwiZmlsbCIsInN0cm9rZSIsInZpZXdCb3giLCJwYXRoIiwic3Ryb2tlTGluZWNhcCIsInN0cm9rZUxpbmVqb2luIiwic3Ryb2tlV2lkdGgiLCJkIiwicGVyc3BlY3RpdmUiLCJ0cmFuc2Zvcm1TdHlsZSIsInRyYW5zZm9ybSIsImJhY2tmYWNlVmlzaWJpbGl0eSIsInN5biIsIm9wdGlvbiIsImRpc2FibGVkIiwiaW1nIiwic3JjIiwiYWx0IiwibWF4SGVpZ2h0Iiwib2JqZWN0Rml0Iiwic3BsaXQiLCJwYXJ0IiwiaSIsInN0cm9uZyIsImlucHV0IiwidHlwZSIsInZhbHVlIiwib25DaGFuZ2UiLCJlIiwidGFyZ2V0IiwicGxhY2Vob2xkZXIiLCJvbktleVByZXNzIiwia2V5IiwidG9Mb3dlckNhc2UiLCJzZXRUaW1lb3V0Iiwic3RvcFByb3BhZ2F0aW9uIiwiaDMiLCJsYWJlbCIsInRleHRhcmVhIiwicm93cyIsInJlYXNvbiIsImFsZXJ0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/learn/page.tsx\n"));
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(app-pages-browser)/./node_modules/next/dist/api/navigation.js":
|
||
/*!**************************************************!*\
|
||
!*** ./node_modules/next/dist/api/navigation.js ***!
|
||
\**************************************************/
|
||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../client/components/navigation */ \"(app-pages-browser)/./node_modules/next/dist/client/components/navigation.js\");\n/* harmony import */ var _client_components_navigation__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_client_components_navigation__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== \"default\") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\n\n//# sourceMappingURL=navigation.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYXBpL25hdmlnYXRpb24uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWdEOztBQUVoRCIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9hcGkvbmF2aWdhdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuLi9jbGllbnQvY29tcG9uZW50cy9uYXZpZ2F0aW9uJztcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bmF2aWdhdGlvbi5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/api/navigation.js\n"));
|
||
|
||
/***/ })
|
||
|
||
}); |