diff --git a/frontend/.gitignore b/frontend/.gitignore index 3c3629e..f06235c 100644 --- a/frontend/.gitignore +++ b/frontend/.gitignore @@ -1 +1,2 @@ node_modules +dist diff --git a/frontend/bun.lock b/frontend/bun.lock index 31f3c3f..1445a2a 100644 --- a/frontend/bun.lock +++ b/frontend/bun.lock @@ -9,6 +9,8 @@ "ajv": "^8.18.0", "axios": "^1.13.6", "clsx": "^2.1.1", + "epubjs": "^0.3.93", + "nosleep.js": "^0.12.0", "orval": "8.5.3", "react": "^19.0.0", "react-dom": "^19.0.0", @@ -341,6 +343,8 @@ "@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="], + "@types/localforage": ["@types/localforage@0.0.34", "", { "dependencies": { "localforage": "*" } }, "sha512-tJxahnjm9dEI1X+hQSC5f2BSd/coZaqbIl1m3TCl0q9SVuC52XcXfV0XmoCU1+PmjyucuVITwoTnN8OlTbEXXA=="], + "@types/node": ["@types/node@25.5.0", "", { "dependencies": { "undici-types": "~7.18.0" } }, "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw=="], "@types/react": ["@types/react@19.2.14", "", { "dependencies": { "csstype": "^3.2.2" } }, "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w=="], @@ -385,6 +389,8 @@ "@vitest/utils": ["@vitest/utils@4.1.0", "", { "dependencies": { "@vitest/pretty-format": "4.1.0", "convert-source-map": "^2.0.0", "tinyrainbow": "^3.0.3" } }, "sha512-XfPXT6a8TZY3dcGY8EdwsBulFCIw+BeeX0RZn2x/BtiY/75YGh8FeWGG8QISN/WhaqSrE2OrlDgtF8q5uhOTmw=="], + "@xmldom/xmldom": ["@xmldom/xmldom@0.7.13", "", {}, "sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g=="], + "acorn": ["acorn@8.16.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw=="], "acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="], @@ -487,6 +493,10 @@ "cookie": ["cookie@1.1.1", "", {}, "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ=="], + "core-js": ["core-js@3.49.0", "", {}, "sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg=="], + + "core-util-is": ["core-util-is@1.0.3", "", {}, "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="], + "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], "css-tree": ["css-tree@3.2.1", "", { "dependencies": { "mdn-data": "2.27.1", "source-map-js": "^1.2.1" } }, "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA=="], @@ -497,6 +507,8 @@ "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], + "d": ["d@1.0.2", "", { "dependencies": { "es5-ext": "^0.10.64", "type": "^2.7.2" } }, "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw=="], + "data-urls": ["data-urls@7.0.0", "", { "dependencies": { "whatwg-mimetype": "^5.0.0", "whatwg-url": "^16.0.0" } }, "sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA=="], "data-view-buffer": ["data-view-buffer@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-data-view": "^1.0.2" } }, "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ=="], @@ -535,6 +547,8 @@ "entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="], + "epubjs": ["epubjs@0.3.93", "", { "dependencies": { "@types/localforage": "0.0.34", "@xmldom/xmldom": "^0.7.5", "core-js": "^3.18.3", "event-emitter": "^0.3.5", "jszip": "^3.7.1", "localforage": "^1.10.0", "lodash": "^4.17.21", "marks-pane": "^1.0.9", "path-webpack": "0.0.3" } }, "sha512-c06pNSdBxcXv3dZSbXAVLE1/pmleRhOT6mXNZo6INKmvuKpYB65MwU/lO7830czCtjIiK9i+KR+3S+p0wtljrw=="], + "es-abstract": ["es-abstract@1.24.1", "", { "dependencies": { "array-buffer-byte-length": "^1.0.2", "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.4", "data-view-buffer": "^1.0.2", "data-view-byte-length": "^1.0.2", "data-view-byte-offset": "^1.0.1", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "es-set-tostringtag": "^2.1.0", "es-to-primitive": "^1.3.0", "function.prototype.name": "^1.1.8", "get-intrinsic": "^1.3.0", "get-proto": "^1.0.1", "get-symbol-description": "^1.1.0", "globalthis": "^1.0.4", "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", "has-proto": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "internal-slot": "^1.1.0", "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", "is-data-view": "^1.0.2", "is-negative-zero": "^2.0.3", "is-regex": "^1.2.1", "is-set": "^2.0.3", "is-shared-array-buffer": "^1.0.4", "is-string": "^1.1.1", "is-typed-array": "^1.1.15", "is-weakref": "^1.1.1", "math-intrinsics": "^1.1.0", "object-inspect": "^1.13.4", "object-keys": "^1.1.1", "object.assign": "^4.1.7", "own-keys": "^1.0.1", "regexp.prototype.flags": "^1.5.4", "safe-array-concat": "^1.1.3", "safe-push-apply": "^1.0.0", "safe-regex-test": "^1.1.0", "set-proto": "^1.0.0", "stop-iteration-iterator": "^1.1.0", "string.prototype.trim": "^1.2.10", "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", "typed-array-buffer": "^1.0.3", "typed-array-byte-length": "^1.0.3", "typed-array-byte-offset": "^1.0.4", "typed-array-length": "^1.0.7", "unbox-primitive": "^1.1.0", "which-typed-array": "^1.1.19" } }, "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw=="], "es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="], @@ -553,6 +567,12 @@ "es-to-primitive": ["es-to-primitive@1.3.0", "", { "dependencies": { "is-callable": "^1.2.7", "is-date-object": "^1.0.5", "is-symbol": "^1.0.4" } }, "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g=="], + "es5-ext": ["es5-ext@0.10.64", "", { "dependencies": { "es6-iterator": "^2.0.3", "es6-symbol": "^3.1.3", "esniff": "^2.0.1", "next-tick": "^1.1.0" } }, "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg=="], + + "es6-iterator": ["es6-iterator@2.0.3", "", { "dependencies": { "d": "1", "es5-ext": "^0.10.35", "es6-symbol": "^3.1.1" } }, "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g=="], + + "es6-symbol": ["es6-symbol@3.1.4", "", { "dependencies": { "d": "^1.0.2", "ext": "^1.7.0" } }, "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg=="], + "esbuild": ["esbuild@0.25.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.12", "@esbuild/android-arm": "0.25.12", "@esbuild/android-arm64": "0.25.12", "@esbuild/android-x64": "0.25.12", "@esbuild/darwin-arm64": "0.25.12", "@esbuild/darwin-x64": "0.25.12", "@esbuild/freebsd-arm64": "0.25.12", "@esbuild/freebsd-x64": "0.25.12", "@esbuild/linux-arm": "0.25.12", "@esbuild/linux-arm64": "0.25.12", "@esbuild/linux-ia32": "0.25.12", "@esbuild/linux-loong64": "0.25.12", "@esbuild/linux-mips64el": "0.25.12", "@esbuild/linux-ppc64": "0.25.12", "@esbuild/linux-riscv64": "0.25.12", "@esbuild/linux-s390x": "0.25.12", "@esbuild/linux-x64": "0.25.12", "@esbuild/netbsd-arm64": "0.25.12", "@esbuild/netbsd-x64": "0.25.12", "@esbuild/openbsd-arm64": "0.25.12", "@esbuild/openbsd-x64": "0.25.12", "@esbuild/openharmony-arm64": "0.25.12", "@esbuild/sunos-x64": "0.25.12", "@esbuild/win32-arm64": "0.25.12", "@esbuild/win32-ia32": "0.25.12", "@esbuild/win32-x64": "0.25.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg=="], "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], @@ -575,6 +595,8 @@ "eslint-visitor-keys": ["eslint-visitor-keys@4.2.1", "", {}, "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ=="], + "esniff": ["esniff@2.0.1", "", { "dependencies": { "d": "^1.0.1", "es5-ext": "^0.10.62", "event-emitter": "^0.3.5", "type": "^2.7.2" } }, "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg=="], + "espree": ["espree@10.4.0", "", { "dependencies": { "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^4.2.1" } }, "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ=="], "esquery": ["esquery@1.7.0", "", { "dependencies": { "estraverse": "^5.1.0" } }, "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g=="], @@ -587,10 +609,14 @@ "esutils": ["esutils@2.0.3", "", {}, "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="], + "event-emitter": ["event-emitter@0.3.5", "", { "dependencies": { "d": "1", "es5-ext": "~0.10.14" } }, "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA=="], + "execa": ["execa@9.6.1", "", { "dependencies": { "@sindresorhus/merge-streams": "^4.0.0", "cross-spawn": "^7.0.6", "figures": "^6.1.0", "get-stream": "^9.0.0", "human-signals": "^8.0.1", "is-plain-obj": "^4.1.0", "is-stream": "^4.0.1", "npm-run-path": "^6.0.0", "pretty-ms": "^9.2.0", "signal-exit": "^4.1.0", "strip-final-newline": "^4.0.0", "yoctocolors": "^2.1.1" } }, "sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA=="], "expect-type": ["expect-type@1.3.0", "", {}, "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA=="], + "ext": ["ext@1.7.0", "", { "dependencies": { "type": "^2.7.2" } }, "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw=="], + "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], "fast-diff": ["fast-diff@1.3.0", "", {}, "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw=="], @@ -681,12 +707,16 @@ "ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], + "immediate": ["immediate@3.0.6", "", {}, "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="], + "import-fresh": ["import-fresh@3.3.1", "", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ=="], "imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="], "indent-string": ["indent-string@4.0.0", "", {}, "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg=="], + "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], + "internal-slot": ["internal-slot@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.2", "side-channel": "^1.1.0" } }, "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw=="], "is-array-buffer": ["is-array-buffer@3.0.5", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A=="], @@ -781,20 +811,28 @@ "jsx-ast-utils": ["jsx-ast-utils@3.3.5", "", { "dependencies": { "array-includes": "^3.1.6", "array.prototype.flat": "^1.3.1", "object.assign": "^4.1.4", "object.values": "^1.1.6" } }, "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ=="], + "jszip": ["jszip@3.10.1", "", { "dependencies": { "lie": "~3.3.0", "pako": "~1.0.2", "readable-stream": "~2.3.6", "setimmediate": "^1.0.5" } }, "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g=="], + "keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="], "leven": ["leven@4.1.0", "", {}, "sha512-KZ9W9nWDT7rF7Dazg8xyLHGLrmpgq2nVNFUckhqdW3szVP6YhCpp/RAnpmVExA9JvrMynjwSLVrEj3AepHR6ew=="], "levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="], + "lie": ["lie@3.3.0", "", { "dependencies": { "immediate": "~3.0.5" } }, "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ=="], + "lilconfig": ["lilconfig@3.1.3", "", {}, "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw=="], "lines-and-columns": ["lines-and-columns@1.2.4", "", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="], "linkify-it": ["linkify-it@5.0.0", "", { "dependencies": { "uc.micro": "^2.0.0" } }, "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ=="], + "localforage": ["localforage@1.10.0", "", { "dependencies": { "lie": "3.1.1" } }, "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg=="], + "locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="], + "lodash": ["lodash@4.18.1", "", {}, "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q=="], + "lodash.merge": ["lodash.merge@4.6.2", "", {}, "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="], "loose-envify": ["loose-envify@1.4.0", "", { "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="], @@ -809,6 +847,8 @@ "markdown-it": ["markdown-it@14.1.1", "", { "dependencies": { "argparse": "^2.0.1", "entities": "^4.4.0", "linkify-it": "^5.0.0", "mdurl": "^2.0.0", "punycode.js": "^2.3.1", "uc.micro": "^2.1.0" }, "bin": { "markdown-it": "bin/markdown-it.mjs" } }, "sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA=="], + "marks-pane": ["marks-pane@1.0.9", "", {}, "sha512-Ahs4oeG90tbdPWwAJkAAoHg2lRR8lAs9mZXETNPO9hYg3AkjUJBKi1NQ4aaIQZVGrig7c/3NUV1jANl8rFTeMg=="], + "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="], "mdn-data": ["mdn-data@2.27.1", "", {}, "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ=="], @@ -835,12 +875,16 @@ "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], + "next-tick": ["next-tick@1.1.0", "", {}, "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="], + "node-exports-info": ["node-exports-info@1.6.0", "", { "dependencies": { "array.prototype.flatmap": "^1.3.3", "es-errors": "^1.3.0", "object.entries": "^1.1.9", "semver": "^6.3.1" } }, "sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw=="], "node-releases": ["node-releases@2.0.36", "", {}, "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA=="], "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="], + "nosleep.js": ["nosleep.js@0.12.0", "", {}, "sha512-9d1HbpKLh3sdWlhXMhU6MMH+wQzKkrgfRkYV0EBdvt99YJfj0ilCJrWRDYG2130Tm4GXbEoTCx5b34JSaP+HhA=="], + "npm-run-path": ["npm-run-path@6.0.0", "", { "dependencies": { "path-key": "^4.0.0", "unicorn-magic": "^0.3.0" } }, "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA=="], "object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="], @@ -871,6 +915,8 @@ "p-locate": ["p-locate@5.0.0", "", { "dependencies": { "p-limit": "^3.0.2" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="], + "pako": ["pako@1.0.11", "", {}, "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="], + "parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="], "parse-ms": ["parse-ms@4.0.0", "", {}, "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw=="], @@ -883,6 +929,8 @@ "path-parse": ["path-parse@1.0.7", "", {}, "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="], + "path-webpack": ["path-webpack@0.0.3", "", {}, "sha512-AmeDxedoo5svf7aB3FYqSAKqMxys014lVKBzy1o/5vv9CtU7U4wgGWL1dA2o6MOzcD53ScN4Jmiq6VbtLz1vIQ=="], + "pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], @@ -919,6 +967,8 @@ "pretty-ms": ["pretty-ms@9.3.0", "", { "dependencies": { "parse-ms": "^4.0.0" } }, "sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ=="], + "process-nextick-args": ["process-nextick-args@2.0.1", "", {}, "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="], + "prop-types": ["prop-types@15.8.1", "", { "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" } }, "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="], "proxy-from-env": ["proxy-from-env@1.1.0", "", {}, "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="], @@ -943,6 +993,8 @@ "read-cache": ["read-cache@1.0.0", "", { "dependencies": { "pify": "^2.3.0" } }, "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA=="], + "readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="], + "readdirp": ["readdirp@3.6.0", "", { "dependencies": { "picomatch": "^2.2.1" } }, "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="], "redent": ["redent@3.0.0", "", { "dependencies": { "indent-string": "^4.0.0", "strip-indent": "^3.0.0" } }, "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg=="], @@ -967,6 +1019,8 @@ "safe-array-concat": ["safe-array-concat@1.1.3", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", "has-symbols": "^1.1.0", "isarray": "^2.0.5" } }, "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q=="], + "safe-buffer": ["safe-buffer@5.1.2", "", {}, "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="], + "safe-push-apply": ["safe-push-apply@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "isarray": "^2.0.5" } }, "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA=="], "safe-regex-test": ["safe-regex-test@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-regex": "^1.2.1" } }, "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw=="], @@ -985,6 +1039,8 @@ "set-proto": ["set-proto@1.0.0", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0" } }, "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw=="], + "setimmediate": ["setimmediate@1.0.5", "", {}, "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="], + "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], @@ -1023,6 +1079,8 @@ "string.prototype.trimstart": ["string.prototype.trimstart@1.0.8", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg=="], + "string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="], + "strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], "strip-final-newline": ["strip-final-newline@4.0.0", "", {}, "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw=="], @@ -1073,6 +1131,8 @@ "tsconfck": ["tsconfck@3.1.6", "", { "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"], "bin": { "tsconfck": "bin/tsconfck.js" } }, "sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w=="], + "type": ["type@2.7.3", "", {}, "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ=="], + "type-check": ["type-check@0.4.0", "", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="], "typed-array-buffer": ["typed-array-buffer@1.0.3", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-typed-array": "^1.1.14" } }, "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw=="], @@ -1185,6 +1245,8 @@ "globby/unicorn-magic": ["unicorn-magic@0.4.0", "", {}, "sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw=="], + "localforage/lie": ["lie@3.1.1", "", { "dependencies": { "immediate": "~3.0.5" } }, "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw=="], + "markdown-it/entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], "micromatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], @@ -1201,6 +1263,8 @@ "pretty-format/react-is": ["react-is@17.0.2", "", {}, "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="], + "readable-stream/isarray": ["isarray@1.0.0", "", {}, "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="], + "readdirp/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], "sucrase/commander": ["commander@4.1.1", "", {}, "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA=="], diff --git a/frontend/dist/assets/index-C7Wct-hD.js b/frontend/dist/assets/index-C7Wct-hD.js deleted file mode 100644 index 280b363..0000000 --- a/frontend/dist/assets/index-C7Wct-hD.js +++ /dev/null @@ -1,171 +0,0 @@ -var Hy=l=>{throw TypeError(l)};var zo=(l,i,u)=>i.has(l)||Hy("Cannot "+u);var E=(l,i,u)=>(zo(l,i,"read from private field"),u?u.call(l):i.get(l)),te=(l,i,u)=>i.has(l)?Hy("Cannot add the same private member more than once"):i instanceof WeakSet?i.add(l):i.set(l,u),J=(l,i,u,r)=>(zo(l,i,"write to private field"),r?r.call(l,u):i.set(l,u),u),de=(l,i,u)=>(zo(l,i,"access private method"),u);var ks=(l,i,u,r)=>({set _(o){J(l,i,o,u)},get _(){return E(l,i,r)}});(function(){const i=document.createElement("link").relList;if(i&&i.supports&&i.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const f of o)if(f.type==="childList")for(const h of f.addedNodes)h.tagName==="LINK"&&h.rel==="modulepreload"&&r(h)}).observe(document,{childList:!0,subtree:!0});function u(o){const f={};return o.integrity&&(f.integrity=o.integrity),o.referrerPolicy&&(f.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?f.credentials="include":o.crossOrigin==="anonymous"?f.credentials="omit":f.credentials="same-origin",f}function r(o){if(o.ep)return;o.ep=!0;const f=u(o);fetch(o.href,f)}})();function Yp(l){return l&&l.__esModule&&Object.prototype.hasOwnProperty.call(l,"default")?l.default:l}var Do={exports:{}},lu={};/** - * @license React - * react-jsx-runtime.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var By;function vb(){if(By)return lu;By=1;var l=Symbol.for("react.transitional.element"),i=Symbol.for("react.fragment");function u(r,o,f){var h=null;if(f!==void 0&&(h=""+f),o.key!==void 0&&(h=""+o.key),"key"in o){f={};for(var g in o)g!=="key"&&(f[g]=o[g])}else f=o;return o=f.ref,{$$typeof:l,type:r,key:h,ref:o!==void 0?o:null,props:f}}return lu.Fragment=i,lu.jsx=u,lu.jsxs=u,lu}var Qy;function bb(){return Qy||(Qy=1,Do.exports=vb()),Do.exports}var m=bb(),Mo={exports:{}},re={};/** - * @license React - * react.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Gy;function xb(){if(Gy)return re;Gy=1;var l=Symbol.for("react.transitional.element"),i=Symbol.for("react.portal"),u=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),f=Symbol.for("react.consumer"),h=Symbol.for("react.context"),g=Symbol.for("react.forward_ref"),v=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),x=Symbol.for("react.lazy"),b=Symbol.for("react.activity"),w=Symbol.iterator;function L(R){return R===null||typeof R!="object"?null:(R=w&&R[w]||R["@@iterator"],typeof R=="function"?R:null)}var N={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},z=Object.assign,j={};function B(R,G,Z){this.props=R,this.context=G,this.refs=j,this.updater=Z||N}B.prototype.isReactComponent={},B.prototype.setState=function(R,G){if(typeof R!="object"&&typeof R!="function"&&R!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,R,G,"setState")},B.prototype.forceUpdate=function(R){this.updater.enqueueForceUpdate(this,R,"forceUpdate")};function X(){}X.prototype=B.prototype;function Y(R,G,Z){this.props=R,this.context=G,this.refs=j,this.updater=Z||N}var K=Y.prototype=new X;K.constructor=Y,z(K,B.prototype),K.isPureReactComponent=!0;var F=Array.isArray;function ae(){}var $={H:null,A:null,T:null,S:null},le=Object.prototype.hasOwnProperty;function fe(R,G,Z){var W=Z.ref;return{$$typeof:l,type:R,key:G,ref:W!==void 0?W:null,props:Z}}function je(R,G){return fe(R.type,G,R.props)}function Qe(R){return typeof R=="object"&&R!==null&&R.$$typeof===l}function qe(R){var G={"=":"=0",":":"=2"};return"$"+R.replace(/[=:]/g,function(Z){return G[Z]})}var Ie=/\/+/g;function Le(R,G){return typeof R=="object"&&R!==null&&R.key!=null?qe(""+R.key):G.toString(36)}function _e(R){switch(R.status){case"fulfilled":return R.value;case"rejected":throw R.reason;default:switch(typeof R.status=="string"?R.then(ae,ae):(R.status="pending",R.then(function(G){R.status==="pending"&&(R.status="fulfilled",R.value=G)},function(G){R.status==="pending"&&(R.status="rejected",R.reason=G)})),R.status){case"fulfilled":return R.value;case"rejected":throw R.reason}}throw R}function q(R,G,Z,W,se){var he=typeof R;(he==="undefined"||he==="boolean")&&(R=null);var Ne=!1;if(R===null)Ne=!0;else switch(he){case"bigint":case"string":case"number":Ne=!0;break;case"object":switch(R.$$typeof){case l:case i:Ne=!0;break;case x:return Ne=R._init,q(Ne(R._payload),G,Z,W,se)}}if(Ne)return se=se(R),Ne=W===""?"."+Le(R,0):W,F(se)?(Z="",Ne!=null&&(Z=Ne.replace(Ie,"$&/")+"/"),q(se,G,Z,"",function(fi){return fi})):se!=null&&(Qe(se)&&(se=je(se,Z+(se.key==null||R&&R.key===se.key?"":(""+se.key).replace(Ie,"$&/")+"/")+Ne)),G.push(se)),1;Ne=0;var ht=W===""?".":W+":";if(F(R))for(var Ve=0;Ve>>1,Oe=q[Re];if(0>>1;Reo(Z,ee))Wo(se,Z)?(q[Re]=se,q[W]=ee,Re=W):(q[Re]=Z,q[G]=ee,Re=G);else if(Wo(se,ee))q[Re]=se,q[W]=ee,Re=W;else break e}}return V}function o(q,V){var ee=q.sortIndex-V.sortIndex;return ee!==0?ee:q.id-V.id}if(l.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var f=performance;l.unstable_now=function(){return f.now()}}else{var h=Date,g=h.now();l.unstable_now=function(){return h.now()-g}}var v=[],p=[],x=1,b=null,w=3,L=!1,N=!1,z=!1,j=!1,B=typeof setTimeout=="function"?setTimeout:null,X=typeof clearTimeout=="function"?clearTimeout:null,Y=typeof setImmediate<"u"?setImmediate:null;function K(q){for(var V=u(p);V!==null;){if(V.callback===null)r(p);else if(V.startTime<=q)r(p),V.sortIndex=V.expirationTime,i(v,V);else break;V=u(p)}}function F(q){if(z=!1,K(q),!N)if(u(v)!==null)N=!0,ae||(ae=!0,qe());else{var V=u(p);V!==null&&_e(F,V.startTime-q)}}var ae=!1,$=-1,le=5,fe=-1;function je(){return j?!0:!(l.unstable_now()-feq&&je());){var Re=b.callback;if(typeof Re=="function"){b.callback=null,w=b.priorityLevel;var Oe=Re(b.expirationTime<=q);if(q=l.unstable_now(),typeof Oe=="function"){b.callback=Oe,K(q),V=!0;break t}b===u(v)&&r(v),K(q)}else r(v);b=u(v)}if(b!==null)V=!0;else{var R=u(p);R!==null&&_e(F,R.startTime-q),V=!1}}break e}finally{b=null,w=ee,L=!1}V=void 0}}finally{V?qe():ae=!1}}}var qe;if(typeof Y=="function")qe=function(){Y(Qe)};else if(typeof MessageChannel<"u"){var Ie=new MessageChannel,Le=Ie.port2;Ie.port1.onmessage=Qe,qe=function(){Le.postMessage(null)}}else qe=function(){B(Qe,0)};function _e(q,V){$=B(function(){q(l.unstable_now())},V)}l.unstable_IdlePriority=5,l.unstable_ImmediatePriority=1,l.unstable_LowPriority=4,l.unstable_NormalPriority=3,l.unstable_Profiling=null,l.unstable_UserBlockingPriority=2,l.unstable_cancelCallback=function(q){q.callback=null},l.unstable_forceFrameRate=function(q){0>q||125Re?(q.sortIndex=ee,i(p,q),u(v)===null&&q===u(p)&&(z?(X($),$=-1):z=!0,_e(F,ee-Re))):(q.sortIndex=Oe,i(v,q),N||L||(N=!0,ae||(ae=!0,qe()))),q},l.unstable_shouldYield=je,l.unstable_wrapCallback=function(q){var V=w;return function(){var ee=w;w=V;try{return q.apply(this,arguments)}finally{w=ee}}}})(Lo)),Lo}var Ky;function Rb(){return Ky||(Ky=1,qo.exports=Eb()),qo.exports}var Ho={exports:{}},ot={};/** - * @license React - * react-dom.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Xy;function Ab(){if(Xy)return ot;Xy=1;var l=vf();function i(v){var p="https://react.dev/errors/"+v;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(l)}catch(i){console.error(i)}}return l(),Ho.exports=Ab(),Ho.exports}/** - * @license React - * react-dom-client.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Zy;function Tb(){if(Zy)return iu;Zy=1;var l=Rb(),i=vf(),u=Nb();function r(e){var t="https://react.dev/errors/"+e;if(1Oe||(e.current=Re[Oe],Re[Oe]=null,Oe--)}function Z(e,t){Oe++,Re[Oe]=e.current,e.current=t}var W=R(null),se=R(null),he=R(null),Ne=R(null);function ht(e,t){switch(Z(he,t),Z(se,e),Z(W,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?sy(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=sy(t),e=ry(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}G(W),Z(W,e)}function Ve(){G(W),G(se),G(he)}function fi(e){e.memoizedState!==null&&Z(Ne,e);var t=W.current,a=ry(t,e.type);t!==a&&(Z(se,e),Z(W,a))}function Au(e){se.current===e&&(G(W),G(se)),Ne.current===e&&(G(Ne),eu._currentValue=ee)}var hr,Lf;function On(e){if(hr===void 0)try{throw Error()}catch(a){var t=a.stack.trim().match(/\n( *(at )?)/);hr=t&&t[1]||"",Lf=-1)":-1s||S[n]!==_[s]){var H=` -`+S[n].replace(" at new "," at ");return e.displayName&&H.includes("")&&(H=H.replace("",e.displayName)),H}while(1<=n&&0<=s);break}}}finally{mr=!1,Error.prepareStackTrace=a}return(a=e?e.displayName||e.name:"")?On(a):""}function F0(e,t){switch(e.tag){case 26:case 27:case 5:return On(e.type);case 16:return On("Lazy");case 13:return e.child!==t&&t!==null?On("Suspense Fallback"):On("Suspense");case 19:return On("SuspenseList");case 0:case 15:return yr(e.type,!1);case 11:return yr(e.type.render,!1);case 1:return yr(e.type,!0);case 31:return On("Activity");default:return""}}function Hf(e){try{var t="",a=null;do t+=F0(e,a),a=e,e=e.return;while(e);return t}catch(n){return` -Error generating stack: `+n.message+` -`+n.stack}}var pr=Object.prototype.hasOwnProperty,gr=l.unstable_scheduleCallback,vr=l.unstable_cancelCallback,$0=l.unstable_shouldYield,W0=l.unstable_requestPaint,wt=l.unstable_now,P0=l.unstable_getCurrentPriorityLevel,Bf=l.unstable_ImmediatePriority,Qf=l.unstable_UserBlockingPriority,Nu=l.unstable_NormalPriority,I0=l.unstable_LowPriority,Gf=l.unstable_IdlePriority,eg=l.log,tg=l.unstable_setDisableYieldValue,di=null,Ct=null;function Xa(e){if(typeof eg=="function"&&tg(e),Ct&&typeof Ct.setStrictMode=="function")try{Ct.setStrictMode(di,e)}catch{}}var _t=Math.clz32?Math.clz32:lg,ag=Math.log,ng=Math.LN2;function lg(e){return e>>>=0,e===0?32:31-(ag(e)/ng|0)|0}var Tu=256,ju=262144,Ou=4194304;function wn(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function wu(e,t,a){var n=e.pendingLanes;if(n===0)return 0;var s=0,c=e.suspendedLanes,d=e.pingedLanes;e=e.warmLanes;var y=n&134217727;return y!==0?(n=y&~c,n!==0?s=wn(n):(d&=y,d!==0?s=wn(d):a||(a=y&~e,a!==0&&(s=wn(a))))):(y=n&~c,y!==0?s=wn(y):d!==0?s=wn(d):a||(a=n&~e,a!==0&&(s=wn(a)))),s===0?0:t!==0&&t!==s&&(t&c)===0&&(c=s&-s,a=t&-t,c>=a||c===32&&(a&4194048)!==0)?t:s}function hi(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function ig(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function kf(){var e=Ou;return Ou<<=1,(Ou&62914560)===0&&(Ou=4194304),e}function br(e){for(var t=[],a=0;31>a;a++)t.push(e);return t}function mi(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function ug(e,t,a,n,s,c){var d=e.pendingLanes;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=a,e.entangledLanes&=a,e.errorRecoveryDisabledLanes&=a,e.shellSuspendCounter=0;var y=e.entanglements,S=e.expirationTimes,_=e.hiddenUpdates;for(a=d&~a;0"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var dg=/[\n"\\]/g;function Gt(e){return e.replace(dg,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function Nr(e,t,a,n,s,c,d,y){e.name="",d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"?e.type=d:e.removeAttribute("type"),t!=null?d==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+Qt(t)):e.value!==""+Qt(t)&&(e.value=""+Qt(t)):d!=="submit"&&d!=="reset"||e.removeAttribute("value"),t!=null?Tr(e,d,Qt(t)):a!=null?Tr(e,d,Qt(a)):n!=null&&e.removeAttribute("value"),s==null&&c!=null&&(e.defaultChecked=!!c),s!=null&&(e.checked=s&&typeof s!="function"&&typeof s!="symbol"),y!=null&&typeof y!="function"&&typeof y!="symbol"&&typeof y!="boolean"?e.name=""+Qt(y):e.removeAttribute("name")}function td(e,t,a,n,s,c,d,y){if(c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"&&(e.type=c),t!=null||a!=null){if(!(c!=="submit"&&c!=="reset"||t!=null)){Ar(e);return}a=a!=null?""+Qt(a):"",t=t!=null?""+Qt(t):a,y||t===e.value||(e.value=t),e.defaultValue=t}n=n??s,n=typeof n!="function"&&typeof n!="symbol"&&!!n,e.checked=y?e.checked:!!n,e.defaultChecked=!!n,d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"&&(e.name=d),Ar(e)}function Tr(e,t,a){t==="number"&&zu(e.ownerDocument)===e||e.defaultValue===""+a||(e.defaultValue=""+a)}function hl(e,t,a,n){if(e=e.options,t){t={};for(var s=0;s"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),_r=!1;if(Sa)try{var vi={};Object.defineProperty(vi,"passive",{get:function(){_r=!0}}),window.addEventListener("test",vi,vi),window.removeEventListener("test",vi,vi)}catch{_r=!1}var Za=null,zr=null,Mu=null;function rd(){if(Mu)return Mu;var e,t=zr,a=t.length,n,s="value"in Za?Za.value:Za.textContent,c=s.length;for(e=0;e=Si),md=" ",yd=!1;function pd(e,t){switch(e){case"keyup":return Qg.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function gd(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var gl=!1;function kg(e,t){switch(e){case"compositionend":return gd(t);case"keypress":return t.which!==32?null:(yd=!0,md);case"textInput":return e=t.data,e===md&&yd?null:e;default:return null}}function Yg(e,t){if(gl)return e==="compositionend"||!Lr&&pd(e,t)?(e=rd(),Mu=zr=Za=null,gl=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:a,offset:t-e};e=n}e:{for(;a;){if(a.nextSibling){a=a.nextSibling;break e}a=a.parentNode}a=void 0}a=Nd(a)}}function jd(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?jd(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Od(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=zu(e.document);t instanceof e.HTMLIFrameElement;){try{var a=typeof t.contentWindow.location.href=="string"}catch{a=!1}if(a)e=t.contentWindow;else break;t=zu(e.document)}return t}function Qr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var Wg=Sa&&"documentMode"in document&&11>=document.documentMode,vl=null,Gr=null,Ni=null,kr=!1;function wd(e,t,a){var n=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;kr||vl==null||vl!==zu(n)||(n=vl,"selectionStart"in n&&Qr(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),Ni&&Ai(Ni,n)||(Ni=n,n=js(Gr,"onSelect"),0>=d,s-=d,fa=1<<32-_t(t)+s|a<oe?(ge=I,I=null):ge=I.sibling;var Ee=D(T,I,C[oe],Q);if(Ee===null){I===null&&(I=ge);break}e&&I&&Ee.alternate===null&&t(T,I),A=c(Ee,A,oe),Se===null?ne=Ee:Se.sibling=Ee,Se=Ee,I=ge}if(oe===C.length)return a(T,I),ve&&Ra(T,oe),ne;if(I===null){for(;oeoe?(ge=I,I=null):ge=I.sibling;var pn=D(T,I,Ee.value,Q);if(pn===null){I===null&&(I=ge);break}e&&I&&pn.alternate===null&&t(T,I),A=c(pn,A,oe),Se===null?ne=pn:Se.sibling=pn,Se=pn,I=ge}if(Ee.done)return a(T,I),ve&&Ra(T,oe),ne;if(I===null){for(;!Ee.done;oe++,Ee=C.next())Ee=k(T,Ee.value,Q),Ee!==null&&(A=c(Ee,A,oe),Se===null?ne=Ee:Se.sibling=Ee,Se=Ee);return ve&&Ra(T,oe),ne}for(I=n(I);!Ee.done;oe++,Ee=C.next())Ee=U(I,T,oe,Ee.value,Q),Ee!==null&&(e&&Ee.alternate!==null&&I.delete(Ee.key===null?oe:Ee.key),A=c(Ee,A,oe),Se===null?ne=Ee:Se.sibling=Ee,Se=Ee);return e&&I.forEach(function(gb){return t(T,gb)}),ve&&Ra(T,oe),ne}function Me(T,A,C,Q){if(typeof C=="object"&&C!==null&&C.type===z&&C.key===null&&(C=C.props.children),typeof C=="object"&&C!==null){switch(C.$$typeof){case L:e:{for(var ne=C.key;A!==null;){if(A.key===ne){if(ne=C.type,ne===z){if(A.tag===7){a(T,A.sibling),Q=s(A,C.props.children),Q.return=T,T=Q;break e}}else if(A.elementType===ne||typeof ne=="object"&&ne!==null&&ne.$$typeof===le&&Qn(ne)===A.type){a(T,A.sibling),Q=s(A,C.props),_i(Q,C),Q.return=T,T=Q;break e}a(T,A);break}else t(T,A);A=A.sibling}C.type===z?(Q=Un(C.props.children,T.mode,Q,C.key),Q.return=T,T=Q):(Q=Ku(C.type,C.key,C.props,null,T.mode,Q),_i(Q,C),Q.return=T,T=Q)}return d(T);case N:e:{for(ne=C.key;A!==null;){if(A.key===ne)if(A.tag===4&&A.stateNode.containerInfo===C.containerInfo&&A.stateNode.implementation===C.implementation){a(T,A.sibling),Q=s(A,C.children||[]),Q.return=T,T=Q;break e}else{a(T,A);break}else t(T,A);A=A.sibling}Q=Fr(C,T.mode,Q),Q.return=T,T=Q}return d(T);case le:return C=Qn(C),Me(T,A,C,Q)}if(_e(C))return P(T,A,C,Q);if(qe(C)){if(ne=qe(C),typeof ne!="function")throw Error(r(150));return C=ne.call(C),ie(T,A,C,Q)}if(typeof C.then=="function")return Me(T,A,Wu(C),Q);if(C.$$typeof===Y)return Me(T,A,Zu(T,C),Q);Pu(T,C)}return typeof C=="string"&&C!==""||typeof C=="number"||typeof C=="bigint"?(C=""+C,A!==null&&A.tag===6?(a(T,A.sibling),Q=s(A,C),Q.return=T,T=Q):(a(T,A),Q=Jr(C,T.mode,Q),Q.return=T,T=Q),d(T)):a(T,A)}return function(T,A,C,Q){try{Ci=0;var ne=Me(T,A,C,Q);return wl=null,ne}catch(I){if(I===Ol||I===Fu)throw I;var Se=Dt(29,I,null,T.mode);return Se.lanes=Q,Se.return=T,Se}finally{}}}var kn=Pd(!0),Id=Pd(!1),Pa=!1;function sc(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function rc(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Ia(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function en(e,t,a){var n=e.updateQueue;if(n===null)return null;if(n=n.shared,(Ae&2)!==0){var s=n.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),n.pending=t,t=Yu(e),qd(e,null,a),t}return ku(e,n,t,a),Yu(e)}function zi(e,t,a){if(t=t.updateQueue,t!==null&&(t=t.shared,(a&4194048)!==0)){var n=t.lanes;n&=e.pendingLanes,a|=n,t.lanes=a,Kf(e,a)}}function cc(e,t){var a=e.updateQueue,n=e.alternate;if(n!==null&&(n=n.updateQueue,a===n)){var s=null,c=null;if(a=a.firstBaseUpdate,a!==null){do{var d={lane:a.lane,tag:a.tag,payload:a.payload,callback:null,next:null};c===null?s=c=d:c=c.next=d,a=a.next}while(a!==null);c===null?s=c=t:c=c.next=t}else s=c=t;a={baseState:n.baseState,firstBaseUpdate:s,lastBaseUpdate:c,shared:n.shared,callbacks:n.callbacks},e.updateQueue=a;return}e=a.lastBaseUpdate,e===null?a.firstBaseUpdate=t:e.next=t,a.lastBaseUpdate=t}var oc=!1;function Di(){if(oc){var e=jl;if(e!==null)throw e}}function Mi(e,t,a,n){oc=!1;var s=e.updateQueue;Pa=!1;var c=s.firstBaseUpdate,d=s.lastBaseUpdate,y=s.shared.pending;if(y!==null){s.shared.pending=null;var S=y,_=S.next;S.next=null,d===null?c=_:d.next=_,d=S;var H=e.alternate;H!==null&&(H=H.updateQueue,y=H.lastBaseUpdate,y!==d&&(y===null?H.firstBaseUpdate=_:y.next=_,H.lastBaseUpdate=S))}if(c!==null){var k=s.baseState;d=0,H=_=S=null,y=c;do{var D=y.lane&-536870913,U=D!==y.lane;if(U?(pe&D)===D:(n&D)===D){D!==0&&D===Tl&&(oc=!0),H!==null&&(H=H.next={lane:0,tag:y.tag,payload:y.payload,callback:null,next:null});e:{var P=e,ie=y;D=t;var Me=a;switch(ie.tag){case 1:if(P=ie.payload,typeof P=="function"){k=P.call(Me,k,D);break e}k=P;break e;case 3:P.flags=P.flags&-65537|128;case 0:if(P=ie.payload,D=typeof P=="function"?P.call(Me,k,D):P,D==null)break e;k=b({},k,D);break e;case 2:Pa=!0}}D=y.callback,D!==null&&(e.flags|=64,U&&(e.flags|=8192),U=s.callbacks,U===null?s.callbacks=[D]:U.push(D))}else U={lane:D,tag:y.tag,payload:y.payload,callback:y.callback,next:null},H===null?(_=H=U,S=k):H=H.next=U,d|=D;if(y=y.next,y===null){if(y=s.shared.pending,y===null)break;U=y,y=U.next,U.next=null,s.lastBaseUpdate=U,s.shared.pending=null}}while(!0);H===null&&(S=k),s.baseState=S,s.firstBaseUpdate=_,s.lastBaseUpdate=H,c===null&&(s.shared.lanes=0),un|=d,e.lanes=d,e.memoizedState=k}}function eh(e,t){if(typeof e!="function")throw Error(r(191,e));e.call(t)}function th(e,t){var a=e.callbacks;if(a!==null)for(e.callbacks=null,e=0;ec?c:8;var d=q.T,y={};q.T=y,wc(e,!1,t,a);try{var S=s(),_=q.S;if(_!==null&&_(y,S),S!==null&&typeof S=="object"&&typeof S.then=="function"){var H=uv(S,n);Li(e,t,H,Ht(e))}else Li(e,t,n,Ht(e))}catch(k){Li(e,t,{then:function(){},status:"rejected",reason:k},Ht())}finally{V.p=c,d!==null&&y.types!==null&&(d.types=y.types),q.T=d}}function dv(){}function jc(e,t,a,n){if(e.tag!==5)throw Error(r(476));var s=Dh(e).queue;zh(e,s,t,ee,a===null?dv:function(){return Mh(e),a(n)})}function Dh(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:ee,baseState:ee,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ja,lastRenderedState:ee},next:null};var a={};return t.next={memoizedState:a,baseState:a,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ja,lastRenderedState:a},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Mh(e){var t=Dh(e);t.next===null&&(t=e.alternate.memoizedState),Li(e,t.next.queue,{},Ht())}function Oc(){return st(eu)}function Uh(){return Je().memoizedState}function qh(){return Je().memoizedState}function hv(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var a=Ht();e=Ia(a);var n=en(t,e,a);n!==null&&(Rt(n,t,a),zi(n,t,a)),t={cache:nc()},e.payload=t;return}t=t.return}}function mv(e,t,a){var n=Ht();a={lane:n,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},rs(e)?Hh(t,a):(a=Vr(e,t,a,n),a!==null&&(Rt(a,e,n),Bh(a,t,n)))}function Lh(e,t,a){var n=Ht();Li(e,t,a,n)}function Li(e,t,a,n){var s={lane:n,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null};if(rs(e))Hh(t,s);else{var c=e.alternate;if(e.lanes===0&&(c===null||c.lanes===0)&&(c=t.lastRenderedReducer,c!==null))try{var d=t.lastRenderedState,y=c(d,a);if(s.hasEagerState=!0,s.eagerState=y,zt(y,d))return ku(e,t,s,0),Ue===null&&Gu(),!1}catch{}finally{}if(a=Vr(e,t,s,n),a!==null)return Rt(a,e,n),Bh(a,t,n),!0}return!1}function wc(e,t,a,n){if(n={lane:2,revertLane:so(),gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},rs(e)){if(t)throw Error(r(479))}else t=Vr(e,a,n,2),t!==null&&Rt(t,e,2)}function rs(e){var t=e.alternate;return e===ce||t!==null&&t===ce}function Hh(e,t){_l=ts=!0;var a=e.pending;a===null?t.next=t:(t.next=a.next,a.next=t),e.pending=t}function Bh(e,t,a){if((a&4194048)!==0){var n=t.lanes;n&=e.pendingLanes,a|=n,t.lanes=a,Kf(e,a)}}var Hi={readContext:st,use:ls,useCallback:Ye,useContext:Ye,useEffect:Ye,useImperativeHandle:Ye,useLayoutEffect:Ye,useInsertionEffect:Ye,useMemo:Ye,useReducer:Ye,useRef:Ye,useState:Ye,useDebugValue:Ye,useDeferredValue:Ye,useTransition:Ye,useSyncExternalStore:Ye,useId:Ye,useHostTransitionStatus:Ye,useFormState:Ye,useActionState:Ye,useOptimistic:Ye,useMemoCache:Ye,useCacheRefresh:Ye};Hi.useEffectEvent=Ye;var Qh={readContext:st,use:ls,useCallback:function(e,t){return mt().memoizedState=[e,t===void 0?null:t],e},useContext:st,useEffect:Rh,useImperativeHandle:function(e,t,a){a=a!=null?a.concat([e]):null,us(4194308,4,jh.bind(null,t,e),a)},useLayoutEffect:function(e,t){return us(4194308,4,e,t)},useInsertionEffect:function(e,t){us(4,2,e,t)},useMemo:function(e,t){var a=mt();t=t===void 0?null:t;var n=e();if(Yn){Xa(!0);try{e()}finally{Xa(!1)}}return a.memoizedState=[n,t],n},useReducer:function(e,t,a){var n=mt();if(a!==void 0){var s=a(t);if(Yn){Xa(!0);try{a(t)}finally{Xa(!1)}}}else s=t;return n.memoizedState=n.baseState=s,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:s},n.queue=e,e=e.dispatch=mv.bind(null,ce,e),[n.memoizedState,e]},useRef:function(e){var t=mt();return e={current:e},t.memoizedState=e},useState:function(e){e=Ec(e);var t=e.queue,a=Lh.bind(null,ce,t);return t.dispatch=a,[e.memoizedState,a]},useDebugValue:Nc,useDeferredValue:function(e,t){var a=mt();return Tc(a,e,t)},useTransition:function(){var e=Ec(!1);return e=zh.bind(null,ce,e.queue,!0,!1),mt().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,a){var n=ce,s=mt();if(ve){if(a===void 0)throw Error(r(407));a=a()}else{if(a=t(),Ue===null)throw Error(r(349));(pe&127)!==0||sh(n,t,a)}s.memoizedState=a;var c={value:a,getSnapshot:t};return s.queue=c,Rh(ch.bind(null,n,c,e),[e]),n.flags|=2048,Dl(9,{destroy:void 0},rh.bind(null,n,c,a,t),null),a},useId:function(){var e=mt(),t=Ue.identifierPrefix;if(ve){var a=da,n=fa;a=(n&~(1<<32-_t(n)-1)).toString(32)+a,t="_"+t+"R_"+a,a=as++,0<\/script>",c=c.removeChild(c.firstChild);break;case"select":c=typeof n.is=="string"?d.createElement("select",{is:n.is}):d.createElement("select"),n.multiple?c.multiple=!0:n.size&&(c.size=n.size);break;default:c=typeof n.is=="string"?d.createElement(s,{is:n.is}):d.createElement(s)}}c[it]=t,c[gt]=n;e:for(d=t.child;d!==null;){if(d.tag===5||d.tag===6)c.appendChild(d.stateNode);else if(d.tag!==4&&d.tag!==27&&d.child!==null){d.child.return=d,d=d.child;continue}if(d===t)break e;for(;d.sibling===null;){if(d.return===null||d.return===t)break e;d=d.return}d.sibling.return=d.return,d=d.sibling}t.stateNode=c;e:switch(ct(c,s,n),s){case"button":case"input":case"select":case"textarea":n=!!n.autoFocus;break e;case"img":n=!0;break e;default:n=!1}n&&wa(t)}}return Be(t),Yc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,a),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==n&&wa(t);else{if(typeof n!="string"&&t.stateNode===null)throw Error(r(166));if(e=he.current,Al(t)){if(e=t.stateNode,a=t.memoizedProps,n=null,s=ut,s!==null)switch(s.tag){case 27:case 5:n=s.memoizedProps}e[it]=t,e=!!(e.nodeValue===a||n!==null&&n.suppressHydrationWarning===!0||iy(e.nodeValue,a)),e||$a(t,!0)}else e=Os(e).createTextNode(n),e[it]=t,t.stateNode=e}return Be(t),null;case 31:if(a=t.memoizedState,e===null||e.memoizedState!==null){if(n=Al(t),a!==null){if(e===null){if(!n)throw Error(r(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(r(557));e[it]=t}else qn(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Be(t),e=!1}else a=Ir(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),e=!0;if(!e)return t.flags&256?(Ut(t),t):(Ut(t),null);if((t.flags&128)!==0)throw Error(r(558))}return Be(t),null;case 13:if(n=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(s=Al(t),n!==null&&n.dehydrated!==null){if(e===null){if(!s)throw Error(r(318));if(s=t.memoizedState,s=s!==null?s.dehydrated:null,!s)throw Error(r(317));s[it]=t}else qn(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Be(t),s=!1}else s=Ir(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=s),s=!0;if(!s)return t.flags&256?(Ut(t),t):(Ut(t),null)}return Ut(t),(t.flags&128)!==0?(t.lanes=a,t):(a=n!==null,e=e!==null&&e.memoizedState!==null,a&&(n=t.child,s=null,n.alternate!==null&&n.alternate.memoizedState!==null&&n.alternate.memoizedState.cachePool!==null&&(s=n.alternate.memoizedState.cachePool.pool),c=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(c=n.memoizedState.cachePool.pool),c!==s&&(n.flags|=2048)),a!==e&&a&&(t.child.flags|=8192),hs(t,t.updateQueue),Be(t),null);case 4:return Ve(),e===null&&fo(t.stateNode.containerInfo),Be(t),null;case 10:return Na(t.type),Be(t),null;case 19:if(G(Ze),n=t.memoizedState,n===null)return Be(t),null;if(s=(t.flags&128)!==0,c=n.rendering,c===null)if(s)Qi(n,!1);else{if(Ke!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(c=es(e),c!==null){for(t.flags|=128,Qi(n,!1),e=c.updateQueue,t.updateQueue=e,hs(t,e),t.subtreeFlags=0,e=a,a=t.child;a!==null;)Ld(a,e),a=a.sibling;return Z(Ze,Ze.current&1|2),ve&&Ra(t,n.treeForkCount),t.child}e=e.sibling}n.tail!==null&&wt()>vs&&(t.flags|=128,s=!0,Qi(n,!1),t.lanes=4194304)}else{if(!s)if(e=es(c),e!==null){if(t.flags|=128,s=!0,e=e.updateQueue,t.updateQueue=e,hs(t,e),Qi(n,!0),n.tail===null&&n.tailMode==="hidden"&&!c.alternate&&!ve)return Be(t),null}else 2*wt()-n.renderingStartTime>vs&&a!==536870912&&(t.flags|=128,s=!0,Qi(n,!1),t.lanes=4194304);n.isBackwards?(c.sibling=t.child,t.child=c):(e=n.last,e!==null?e.sibling=c:t.child=c,n.last=c)}return n.tail!==null?(e=n.tail,n.rendering=e,n.tail=e.sibling,n.renderingStartTime=wt(),e.sibling=null,a=Ze.current,Z(Ze,s?a&1|2:a&1),ve&&Ra(t,n.treeForkCount),e):(Be(t),null);case 22:case 23:return Ut(t),dc(),n=t.memoizedState!==null,e!==null?e.memoizedState!==null!==n&&(t.flags|=8192):n&&(t.flags|=8192),n?(a&536870912)!==0&&(t.flags&128)===0&&(Be(t),t.subtreeFlags&6&&(t.flags|=8192)):Be(t),a=t.updateQueue,a!==null&&hs(t,a.retryQueue),a=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(a=e.memoizedState.cachePool.pool),n=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(n=t.memoizedState.cachePool.pool),n!==a&&(t.flags|=2048),e!==null&&G(Bn),null;case 24:return a=null,e!==null&&(a=e.memoizedState.cache),t.memoizedState.cache!==a&&(t.flags|=2048),Na(Fe),Be(t),null;case 25:return null;case 30:return null}throw Error(r(156,t.tag))}function bv(e,t){switch(Wr(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Na(Fe),Ve(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Au(t),null;case 31:if(t.memoizedState!==null){if(Ut(t),t.alternate===null)throw Error(r(340));qn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(Ut(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(r(340));qn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return G(Ze),null;case 4:return Ve(),null;case 10:return Na(t.type),null;case 22:case 23:return Ut(t),dc(),e!==null&&G(Bn),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Na(Fe),null;case 25:return null;default:return null}}function om(e,t){switch(Wr(t),t.tag){case 3:Na(Fe),Ve();break;case 26:case 27:case 5:Au(t);break;case 4:Ve();break;case 31:t.memoizedState!==null&&Ut(t);break;case 13:Ut(t);break;case 19:G(Ze);break;case 10:Na(t.type);break;case 22:case 23:Ut(t),dc(),e!==null&&G(Bn);break;case 24:Na(Fe)}}function Gi(e,t){try{var a=t.updateQueue,n=a!==null?a.lastEffect:null;if(n!==null){var s=n.next;a=s;do{if((a.tag&e)===e){n=void 0;var c=a.create,d=a.inst;n=c(),d.destroy=n}a=a.next}while(a!==s)}}catch(y){Ce(t,t.return,y)}}function nn(e,t,a){try{var n=t.updateQueue,s=n!==null?n.lastEffect:null;if(s!==null){var c=s.next;n=c;do{if((n.tag&e)===e){var d=n.inst,y=d.destroy;if(y!==void 0){d.destroy=void 0,s=t;var S=a,_=y;try{_()}catch(H){Ce(s,S,H)}}}n=n.next}while(n!==c)}}catch(H){Ce(t,t.return,H)}}function fm(e){var t=e.updateQueue;if(t!==null){var a=e.stateNode;try{th(t,a)}catch(n){Ce(e,e.return,n)}}}function dm(e,t,a){a.props=Kn(e.type,e.memoizedProps),a.state=e.memoizedState;try{a.componentWillUnmount()}catch(n){Ce(e,t,n)}}function ki(e,t){try{var a=e.ref;if(a!==null){switch(e.tag){case 26:case 27:case 5:var n=e.stateNode;break;case 30:n=e.stateNode;break;default:n=e.stateNode}typeof a=="function"?e.refCleanup=a(n):a.current=n}}catch(s){Ce(e,t,s)}}function ha(e,t){var a=e.ref,n=e.refCleanup;if(a!==null)if(typeof n=="function")try{n()}catch(s){Ce(e,t,s)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof a=="function")try{a(null)}catch(s){Ce(e,t,s)}else a.current=null}function hm(e){var t=e.type,a=e.memoizedProps,n=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":a.autoFocus&&n.focus();break e;case"img":a.src?n.src=a.src:a.srcSet&&(n.srcset=a.srcSet)}}catch(s){Ce(e,e.return,s)}}function Kc(e,t,a){try{var n=e.stateNode;Gv(n,e.type,a,t),n[gt]=t}catch(s){Ce(e,e.return,s)}}function mm(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&fn(e.type)||e.tag===4}function Xc(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||mm(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&fn(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Vc(e,t,a){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?(a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a).insertBefore(e,t):(t=a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a,t.appendChild(e),a=a._reactRootContainer,a!=null||t.onclick!==null||(t.onclick=xa));else if(n!==4&&(n===27&&fn(e.type)&&(a=e.stateNode,t=null),e=e.child,e!==null))for(Vc(e,t,a),e=e.sibling;e!==null;)Vc(e,t,a),e=e.sibling}function ms(e,t,a){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?a.insertBefore(e,t):a.appendChild(e);else if(n!==4&&(n===27&&fn(e.type)&&(a=e.stateNode),e=e.child,e!==null))for(ms(e,t,a),e=e.sibling;e!==null;)ms(e,t,a),e=e.sibling}function ym(e){var t=e.stateNode,a=e.memoizedProps;try{for(var n=e.type,s=t.attributes;s.length;)t.removeAttributeNode(s[0]);ct(t,n,a),t[it]=e,t[gt]=a}catch(c){Ce(e,e.return,c)}}var Ca=!1,Pe=!1,Zc=!1,pm=typeof WeakSet=="function"?WeakSet:Set,nt=null;function xv(e,t){if(e=e.containerInfo,yo=Us,e=Od(e),Qr(e)){if("selectionStart"in e)var a={start:e.selectionStart,end:e.selectionEnd};else e:{a=(a=e.ownerDocument)&&a.defaultView||window;var n=a.getSelection&&a.getSelection();if(n&&n.rangeCount!==0){a=n.anchorNode;var s=n.anchorOffset,c=n.focusNode;n=n.focusOffset;try{a.nodeType,c.nodeType}catch{a=null;break e}var d=0,y=-1,S=-1,_=0,H=0,k=e,D=null;t:for(;;){for(var U;k!==a||s!==0&&k.nodeType!==3||(y=d+s),k!==c||n!==0&&k.nodeType!==3||(S=d+n),k.nodeType===3&&(d+=k.nodeValue.length),(U=k.firstChild)!==null;)D=k,k=U;for(;;){if(k===e)break t;if(D===a&&++_===s&&(y=d),D===c&&++H===n&&(S=d),(U=k.nextSibling)!==null)break;k=D,D=k.parentNode}k=U}a=y===-1||S===-1?null:{start:y,end:S}}else a=null}a=a||{start:0,end:0}}else a=null;for(po={focusedElem:e,selectionRange:a},Us=!1,nt=t;nt!==null;)if(t=nt,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,nt=e;else for(;nt!==null;){switch(t=nt,c=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(a=0;a title"))),ct(c,n,a),c[it]=e,at(c),n=c;break e;case"link":var d=Ey("link","href",s).get(n+(a.href||""));if(d){for(var y=0;yMe&&(d=Me,Me=ie,ie=d);var T=Td(y,ie),A=Td(y,Me);if(T&&A&&(U.rangeCount!==1||U.anchorNode!==T.node||U.anchorOffset!==T.offset||U.focusNode!==A.node||U.focusOffset!==A.offset)){var C=k.createRange();C.setStart(T.node,T.offset),U.removeAllRanges(),ie>Me?(U.addRange(C),U.extend(A.node,A.offset)):(C.setEnd(A.node,A.offset),U.addRange(C))}}}}for(k=[],U=y;U=U.parentNode;)U.nodeType===1&&k.push({element:U,left:U.scrollLeft,top:U.scrollTop});for(typeof y.focus=="function"&&y.focus(),y=0;ya?32:a,q.T=null,a=eo,eo=null;var c=rn,d=Ua;if(et=0,Hl=rn=null,Ua=0,(Ae&6)!==0)throw Error(r(331));var y=Ae;if(Ae|=4,jm(c.current),Am(c,c.current,d,a),Ae=y,Ji(0,!1),Ct&&typeof Ct.onPostCommitFiberRoot=="function")try{Ct.onPostCommitFiberRoot(di,c)}catch{}return!0}finally{V.p=s,q.T=n,Xm(e,t)}}function Zm(e,t,a){t=Yt(a,t),t=Dc(e.stateNode,t,2),e=en(e,t,2),e!==null&&(mi(e,2),ma(e))}function Ce(e,t,a){if(e.tag===3)Zm(e,e,a);else for(;t!==null;){if(t.tag===3){Zm(t,e,a);break}else if(t.tag===1){var n=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof n.componentDidCatch=="function"&&(sn===null||!sn.has(n))){e=Yt(a,e),a=Jh(2),n=en(t,a,2),n!==null&&(Fh(a,n,t,e),mi(n,2),ma(n));break}}t=t.return}}function lo(e,t,a){var n=e.pingCache;if(n===null){n=e.pingCache=new Rv;var s=new Set;n.set(t,s)}else s=n.get(t),s===void 0&&(s=new Set,n.set(t,s));s.has(a)||($c=!0,s.add(a),e=Ov.bind(null,e,t,a),t.then(e,e))}function Ov(e,t,a){var n=e.pingCache;n!==null&&n.delete(t),e.pingedLanes|=e.suspendedLanes&a,e.warmLanes&=~a,Ue===e&&(pe&a)===a&&(Ke===4||Ke===3&&(pe&62914560)===pe&&300>wt()-gs?(Ae&2)===0&&Bl(e,0):Wc|=a,Ll===pe&&(Ll=0)),ma(e)}function Jm(e,t){t===0&&(t=kf()),e=Mn(e,t),e!==null&&(mi(e,t),ma(e))}function wv(e){var t=e.memoizedState,a=0;t!==null&&(a=t.retryLane),Jm(e,a)}function Cv(e,t){var a=0;switch(e.tag){case 31:case 13:var n=e.stateNode,s=e.memoizedState;s!==null&&(a=s.retryLane);break;case 19:n=e.stateNode;break;case 22:n=e.stateNode._retryCache;break;default:throw Error(r(314))}n!==null&&n.delete(t),Jm(e,a)}function _v(e,t){return gr(e,t)}var As=null,Gl=null,io=!1,Ns=!1,uo=!1,on=0;function ma(e){e!==Gl&&e.next===null&&(Gl===null?As=Gl=e:Gl=Gl.next=e),Ns=!0,io||(io=!0,Dv())}function Ji(e,t){if(!uo&&Ns){uo=!0;do for(var a=!1,n=As;n!==null;){if(e!==0){var s=n.pendingLanes;if(s===0)var c=0;else{var d=n.suspendedLanes,y=n.pingedLanes;c=(1<<31-_t(42|e)+1)-1,c&=s&~(d&~y),c=c&201326741?c&201326741|1:c?c|2:0}c!==0&&(a=!0,Pm(n,c))}else c=pe,c=wu(n,n===Ue?c:0,n.cancelPendingCommit!==null||n.timeoutHandle!==-1),(c&3)===0||hi(n,c)||(a=!0,Pm(n,c));n=n.next}while(a);uo=!1}}function zv(){Fm()}function Fm(){Ns=io=!1;var e=0;on!==0&&Yv()&&(e=on);for(var t=wt(),a=null,n=As;n!==null;){var s=n.next,c=$m(n,t);c===0?(n.next=null,a===null?As=s:a.next=s,s===null&&(Gl=a)):(a=n,(e!==0||(c&3)!==0)&&(Ns=!0)),n=s}et!==0&&et!==5||Ji(e),on!==0&&(on=0)}function $m(e,t){for(var a=e.suspendedLanes,n=e.pingedLanes,s=e.expirationTimes,c=e.pendingLanes&-62914561;0y)break;var H=S.transferSize,k=S.initiatorType;H&&uy(k)&&(S=S.responseEnd,d+=H*(S"u"?null:document;function vy(e,t,a){var n=kl;if(n&&typeof t=="string"&&t){var s=Gt(t);s='link[rel="'+e+'"][href="'+s+'"]',typeof a=="string"&&(s+='[crossorigin="'+a+'"]'),gy.has(s)||(gy.add(s),e={rel:e,crossOrigin:a,href:t},n.querySelector(s)===null&&(t=n.createElement("link"),ct(t,"link",e),at(t),n.head.appendChild(t)))}}function Pv(e){qa.D(e),vy("dns-prefetch",e,null)}function Iv(e,t){qa.C(e,t),vy("preconnect",e,t)}function eb(e,t,a){qa.L(e,t,a);var n=kl;if(n&&e&&t){var s='link[rel="preload"][as="'+Gt(t)+'"]';t==="image"&&a&&a.imageSrcSet?(s+='[imagesrcset="'+Gt(a.imageSrcSet)+'"]',typeof a.imageSizes=="string"&&(s+='[imagesizes="'+Gt(a.imageSizes)+'"]')):s+='[href="'+Gt(e)+'"]';var c=s;switch(t){case"style":c=Yl(e);break;case"script":c=Kl(e)}Ft.has(c)||(e=b({rel:"preload",href:t==="image"&&a&&a.imageSrcSet?void 0:e,as:t},a),Ft.set(c,e),n.querySelector(s)!==null||t==="style"&&n.querySelector(Pi(c))||t==="script"&&n.querySelector(Ii(c))||(t=n.createElement("link"),ct(t,"link",e),at(t),n.head.appendChild(t)))}}function tb(e,t){qa.m(e,t);var a=kl;if(a&&e){var n=t&&typeof t.as=="string"?t.as:"script",s='link[rel="modulepreload"][as="'+Gt(n)+'"][href="'+Gt(e)+'"]',c=s;switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":c=Kl(e)}if(!Ft.has(c)&&(e=b({rel:"modulepreload",href:e},t),Ft.set(c,e),a.querySelector(s)===null)){switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(a.querySelector(Ii(c)))return}n=a.createElement("link"),ct(n,"link",e),at(n),a.head.appendChild(n)}}}function ab(e,t,a){qa.S(e,t,a);var n=kl;if(n&&e){var s=fl(n).hoistableStyles,c=Yl(e);t=t||"default";var d=s.get(c);if(!d){var y={loading:0,preload:null};if(d=n.querySelector(Pi(c)))y.loading=5;else{e=b({rel:"stylesheet",href:e,"data-precedence":t},a),(a=Ft.get(c))&&Ro(e,a);var S=d=n.createElement("link");at(S),ct(S,"link",e),S._p=new Promise(function(_,H){S.onload=_,S.onerror=H}),S.addEventListener("load",function(){y.loading|=1}),S.addEventListener("error",function(){y.loading|=2}),y.loading|=4,Cs(d,t,n)}d={type:"stylesheet",instance:d,count:1,state:y},s.set(c,d)}}}function nb(e,t){qa.X(e,t);var a=kl;if(a&&e){var n=fl(a).hoistableScripts,s=Kl(e),c=n.get(s);c||(c=a.querySelector(Ii(s)),c||(e=b({src:e,async:!0},t),(t=Ft.get(s))&&Ao(e,t),c=a.createElement("script"),at(c),ct(c,"link",e),a.head.appendChild(c)),c={type:"script",instance:c,count:1,state:null},n.set(s,c))}}function lb(e,t){qa.M(e,t);var a=kl;if(a&&e){var n=fl(a).hoistableScripts,s=Kl(e),c=n.get(s);c||(c=a.querySelector(Ii(s)),c||(e=b({src:e,async:!0,type:"module"},t),(t=Ft.get(s))&&Ao(e,t),c=a.createElement("script"),at(c),ct(c,"link",e),a.head.appendChild(c)),c={type:"script",instance:c,count:1,state:null},n.set(s,c))}}function by(e,t,a,n){var s=(s=he.current)?ws(s):null;if(!s)throw Error(r(446));switch(e){case"meta":case"title":return null;case"style":return typeof a.precedence=="string"&&typeof a.href=="string"?(t=Yl(a.href),a=fl(s).hoistableStyles,n=a.get(t),n||(n={type:"style",instance:null,count:0,state:null},a.set(t,n)),n):{type:"void",instance:null,count:0,state:null};case"link":if(a.rel==="stylesheet"&&typeof a.href=="string"&&typeof a.precedence=="string"){e=Yl(a.href);var c=fl(s).hoistableStyles,d=c.get(e);if(d||(s=s.ownerDocument||s,d={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},c.set(e,d),(c=s.querySelector(Pi(e)))&&!c._p&&(d.instance=c,d.state.loading=5),Ft.has(e)||(a={rel:"preload",as:"style",href:a.href,crossOrigin:a.crossOrigin,integrity:a.integrity,media:a.media,hrefLang:a.hrefLang,referrerPolicy:a.referrerPolicy},Ft.set(e,a),c||ib(s,e,a,d.state))),t&&n===null)throw Error(r(528,""));return d}if(t&&n!==null)throw Error(r(529,""));return null;case"script":return t=a.async,a=a.src,typeof a=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=Kl(a),a=fl(s).hoistableScripts,n=a.get(t),n||(n={type:"script",instance:null,count:0,state:null},a.set(t,n)),n):{type:"void",instance:null,count:0,state:null};default:throw Error(r(444,e))}}function Yl(e){return'href="'+Gt(e)+'"'}function Pi(e){return'link[rel="stylesheet"]['+e+"]"}function xy(e){return b({},e,{"data-precedence":e.precedence,precedence:null})}function ib(e,t,a,n){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?n.loading=1:(t=e.createElement("link"),n.preload=t,t.addEventListener("load",function(){return n.loading|=1}),t.addEventListener("error",function(){return n.loading|=2}),ct(t,"link",a),at(t),e.head.appendChild(t))}function Kl(e){return'[src="'+Gt(e)+'"]'}function Ii(e){return"script[async]"+e}function Sy(e,t,a){if(t.count++,t.instance===null)switch(t.type){case"style":var n=e.querySelector('style[data-href~="'+Gt(a.href)+'"]');if(n)return t.instance=n,at(n),n;var s=b({},a,{"data-href":a.href,"data-precedence":a.precedence,href:null,precedence:null});return n=(e.ownerDocument||e).createElement("style"),at(n),ct(n,"style",s),Cs(n,a.precedence,e),t.instance=n;case"stylesheet":s=Yl(a.href);var c=e.querySelector(Pi(s));if(c)return t.state.loading|=4,t.instance=c,at(c),c;n=xy(a),(s=Ft.get(s))&&Ro(n,s),c=(e.ownerDocument||e).createElement("link"),at(c);var d=c;return d._p=new Promise(function(y,S){d.onload=y,d.onerror=S}),ct(c,"link",n),t.state.loading|=4,Cs(c,a.precedence,e),t.instance=c;case"script":return c=Kl(a.src),(s=e.querySelector(Ii(c)))?(t.instance=s,at(s),s):(n=a,(s=Ft.get(c))&&(n=b({},a),Ao(n,s)),e=e.ownerDocument||e,s=e.createElement("script"),at(s),ct(s,"link",n),e.head.appendChild(s),t.instance=s);case"void":return null;default:throw Error(r(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(n=t.instance,t.state.loading|=4,Cs(n,a.precedence,e));return t.instance}function Cs(e,t,a){for(var n=a.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),s=n.length?n[n.length-1]:null,c=s,d=0;d title"):null)}function ub(e,t,a){if(a===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;switch(t.rel){case"stylesheet":return e=t.disabled,typeof t.precedence=="string"&&e==null;default:return!0}case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function Ay(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function sb(e,t,a,n){if(a.type==="stylesheet"&&(typeof n.media!="string"||matchMedia(n.media).matches!==!1)&&(a.state.loading&4)===0){if(a.instance===null){var s=Yl(n.href),c=t.querySelector(Pi(s));if(c){t=c._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=zs.bind(e),t.then(e,e)),a.state.loading|=4,a.instance=c,at(c);return}c=t.ownerDocument||t,n=xy(n),(s=Ft.get(s))&&Ro(n,s),c=c.createElement("link"),at(c);var d=c;d._p=new Promise(function(y,S){d.onload=y,d.onerror=S}),ct(c,"link",n),a.instance=c}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(a,t),(t=a.state.preload)&&(a.state.loading&3)===0&&(e.count++,a=zs.bind(e),t.addEventListener("load",a),t.addEventListener("error",a))}}var No=0;function rb(e,t){return e.stylesheets&&e.count===0&&Ms(e,e.stylesheets),0No?50:800)+t);return e.unsuspend=a,function(){e.unsuspend=null,clearTimeout(n),clearTimeout(s)}}:null}function zs(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Ms(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Ds=null;function Ms(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Ds=new Map,t.forEach(cb,e),Ds=null,zs.call(e))}function cb(e,t){if(!(t.state.loading&4)){var a=Ds.get(e);if(a)var n=a.get(null);else{a=new Map,Ds.set(e,a);for(var s=e.querySelectorAll("link[data-precedence],style[data-precedence]"),c=0;c"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(l)}catch(i){console.error(i)}}return l(),Uo.exports=Tb(),Uo.exports}var Ob=jb();const wb=Yp(Ob);/** - * react-router v7.13.1 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */var Fy="popstate";function $y(l){return typeof l=="object"&&l!=null&&"pathname"in l&&"search"in l&&"hash"in l&&"state"in l&&"key"in l}function Cb(l={}){function i(r,o){var p;let f=(p=o.state)==null?void 0:p.masked,{pathname:h,search:g,hash:v}=f||r.location;return Jo("",{pathname:h,search:g,hash:v},o.state&&o.state.usr||null,o.state&&o.state.key||"default",f?{pathname:r.location.pathname,search:r.location.search,hash:r.location.hash}:void 0)}function u(r,o){return typeof o=="string"?o:ou(o)}return zb(i,u,null,l)}function ke(l,i){if(l===!1||l===null||typeof l>"u")throw new Error(i)}function ca(l,i){if(!l){typeof console<"u"&&console.warn(i);try{throw new Error(i)}catch{}}}function _b(){return Math.random().toString(36).substring(2,10)}function Wy(l,i){return{usr:l.state,key:l.key,idx:i,masked:l.unstable_mask?{pathname:l.pathname,search:l.search,hash:l.hash}:void 0}}function Jo(l,i,u=null,r,o){return{pathname:typeof l=="string"?l:l.pathname,search:"",hash:"",...typeof i=="string"?ui(i):i,state:u,key:i&&i.key||r||_b(),unstable_mask:o}}function ou({pathname:l="/",search:i="",hash:u=""}){return i&&i!=="?"&&(l+=i.charAt(0)==="?"?i:"?"+i),u&&u!=="#"&&(l+=u.charAt(0)==="#"?u:"#"+u),l}function ui(l){let i={};if(l){let u=l.indexOf("#");u>=0&&(i.hash=l.substring(u),l=l.substring(0,u));let r=l.indexOf("?");r>=0&&(i.search=l.substring(r),l=l.substring(0,r)),l&&(i.pathname=l)}return i}function zb(l,i,u,r={}){let{window:o=document.defaultView,v5Compat:f=!1}=r,h=o.history,g="POP",v=null,p=x();p==null&&(p=0,h.replaceState({...h.state,idx:p},""));function x(){return(h.state||{idx:null}).idx}function b(){g="POP";let j=x(),B=j==null?null:j-p;p=j,v&&v({action:g,location:z.location,delta:B})}function w(j,B){g="PUSH";let X=$y(j)?j:Jo(z.location,j,B);p=x()+1;let Y=Wy(X,p),K=z.createHref(X.unstable_mask||X);try{h.pushState(Y,"",K)}catch(F){if(F instanceof DOMException&&F.name==="DataCloneError")throw F;o.location.assign(K)}f&&v&&v({action:g,location:z.location,delta:1})}function L(j,B){g="REPLACE";let X=$y(j)?j:Jo(z.location,j,B);p=x();let Y=Wy(X,p),K=z.createHref(X.unstable_mask||X);h.replaceState(Y,"",K),f&&v&&v({action:g,location:z.location,delta:0})}function N(j){return Db(j)}let z={get action(){return g},get location(){return l(o,h)},listen(j){if(v)throw new Error("A history only accepts one active listener");return o.addEventListener(Fy,b),v=j,()=>{o.removeEventListener(Fy,b),v=null}},createHref(j){return i(o,j)},createURL:N,encodeLocation(j){let B=N(j);return{pathname:B.pathname,search:B.search,hash:B.hash}},push:w,replace:L,go(j){return h.go(j)}};return z}function Db(l,i=!1){let u="http://localhost";typeof window<"u"&&(u=window.location.origin!=="null"?window.location.origin:window.location.href),ke(u,"No window.location.(origin|href) available to create URL");let r=typeof l=="string"?l:ou(l);return r=r.replace(/ $/,"%20"),!i&&r.startsWith("//")&&(r=u+r),new URL(r,u)}function Kp(l,i,u="/"){return Mb(l,i,u,!1)}function Mb(l,i,u,r){let o=typeof i=="string"?ui(i):i,f=Ya(o.pathname||"/",u);if(f==null)return null;let h=Xp(l);Ub(h);let g=null;for(let v=0;g==null&&v{let x={relativePath:p===void 0?h.path||"":p,caseSensitive:h.caseSensitive===!0,childrenIndex:g,route:h};if(x.relativePath.startsWith("/")){if(!x.relativePath.startsWith(r)&&v)return;ke(x.relativePath.startsWith(r),`Absolute route path "${x.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),x.relativePath=x.relativePath.slice(r.length)}let b=va([r,x.relativePath]),w=u.concat(x);h.children&&h.children.length>0&&(ke(h.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${b}".`),Xp(h.children,i,w,b,v)),!(h.path==null&&!h.index)&&i.push({path:b,score:kb(b,h.index),routesMeta:w})};return l.forEach((h,g)=>{var v;if(h.path===""||!((v=h.path)!=null&&v.includes("?")))f(h,g);else for(let p of Vp(h.path))f(h,g,!0,p)}),i}function Vp(l){let i=l.split("/");if(i.length===0)return[];let[u,...r]=i,o=u.endsWith("?"),f=u.replace(/\?$/,"");if(r.length===0)return o?[f,""]:[f];let h=Vp(r.join("/")),g=[];return g.push(...h.map(v=>v===""?f:[f,v].join("/"))),o&&g.push(...h),g.map(v=>l.startsWith("/")&&v===""?"/":v)}function Ub(l){l.sort((i,u)=>i.score!==u.score?u.score-i.score:Yb(i.routesMeta.map(r=>r.childrenIndex),u.routesMeta.map(r=>r.childrenIndex)))}var qb=/^:[\w-]+$/,Lb=3,Hb=2,Bb=1,Qb=10,Gb=-2,Py=l=>l==="*";function kb(l,i){let u=l.split("/"),r=u.length;return u.some(Py)&&(r+=Gb),i&&(r+=Hb),u.filter(o=>!Py(o)).reduce((o,f)=>o+(qb.test(f)?Lb:f===""?Bb:Qb),r)}function Yb(l,i){return l.length===i.length&&l.slice(0,-1).every((r,o)=>r===i[o])?l[l.length-1]-i[i.length-1]:0}function Kb(l,i,u=!1){let{routesMeta:r}=l,o={},f="/",h=[];for(let g=0;g{if(x==="*"){let N=g[w]||"";h=f.slice(0,f.length-N.length).replace(/(.)\/+$/,"$1")}const L=g[w];return b&&!L?p[x]=void 0:p[x]=(L||"").replace(/%2F/g,"/"),p},{}),pathname:f,pathnameBase:h,pattern:l}}function Xb(l,i=!1,u=!0){ca(l==="*"||!l.endsWith("*")||l.endsWith("/*"),`Route path "${l}" will be treated as if it were "${l.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${l.replace(/\*$/,"/*")}".`);let r=[],o="^"+l.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(h,g,v,p,x)=>{if(r.push({paramName:g,isOptional:v!=null}),v){let b=x.charAt(p+h.length);return b&&b!=="/"?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return l.endsWith("*")?(r.push({paramName:"*"}),o+=l==="*"||l==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):u?o+="\\/*$":l!==""&&l!=="/"&&(o+="(?:(?=\\/|$))"),[new RegExp(o,i?void 0:"i"),r]}function Vb(l){try{return l.split("/").map(i=>decodeURIComponent(i).replace(/\//g,"%2F")).join("/")}catch(i){return ca(!1,`The URL path "${l}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${i}).`),l}}function Ya(l,i){if(i==="/")return l;if(!l.toLowerCase().startsWith(i.toLowerCase()))return null;let u=i.endsWith("/")?i.length-1:i.length,r=l.charAt(u);return r&&r!=="/"?null:l.slice(u)||"/"}var Zb=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function Jb(l,i="/"){let{pathname:u,search:r="",hash:o=""}=typeof l=="string"?ui(l):l,f;return u?(u=u.replace(/\/\/+/g,"/"),u.startsWith("/")?f=Iy(u.substring(1),"/"):f=Iy(u,i)):f=i,{pathname:f,search:Wb(r),hash:Pb(o)}}function Iy(l,i){let u=i.replace(/\/+$/,"").split("/");return l.split("/").forEach(o=>{o===".."?u.length>1&&u.pop():o!=="."&&u.push(o)}),u.length>1?u.join("/"):"/"}function Bo(l,i,u,r){return`Cannot include a '${l}' character in a manually specified \`to.${i}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${u}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function Fb(l){return l.filter((i,u)=>u===0||i.route.path&&i.route.path.length>0)}function bf(l){let i=Fb(l);return i.map((u,r)=>r===i.length-1?u.pathname:u.pathnameBase)}function nr(l,i,u,r=!1){let o;typeof l=="string"?o=ui(l):(o={...l},ke(!o.pathname||!o.pathname.includes("?"),Bo("?","pathname","search",o)),ke(!o.pathname||!o.pathname.includes("#"),Bo("#","pathname","hash",o)),ke(!o.search||!o.search.includes("#"),Bo("#","search","hash",o)));let f=l===""||o.pathname==="",h=f?"/":o.pathname,g;if(h==null)g=u;else{let b=i.length-1;if(!r&&h.startsWith("..")){let w=h.split("/");for(;w[0]==="..";)w.shift(),b-=1;o.pathname=w.join("/")}g=b>=0?i[b]:"/"}let v=Jb(o,g),p=h&&h!=="/"&&h.endsWith("/"),x=(f||h===".")&&u.endsWith("/");return!v.pathname.endsWith("/")&&(p||x)&&(v.pathname+="/"),v}var va=l=>l.join("/").replace(/\/\/+/g,"/"),$b=l=>l.replace(/\/+$/,"").replace(/^\/*/,"/"),Wb=l=>!l||l==="?"?"":l.startsWith("?")?l:"?"+l,Pb=l=>!l||l==="#"?"":l.startsWith("#")?l:"#"+l,Ib=class{constructor(l,i,u,r=!1){this.status=l,this.statusText=i||"",this.internal=r,u instanceof Error?(this.data=u.toString(),this.error=u):this.data=u}};function ex(l){return l!=null&&typeof l.status=="number"&&typeof l.statusText=="string"&&typeof l.internal=="boolean"&&"data"in l}function tx(l){return l.map(i=>i.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var Zp=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Jp(l,i){let u=l;if(typeof u!="string"||!Zb.test(u))return{absoluteURL:void 0,isExternal:!1,to:u};let r=u,o=!1;if(Zp)try{let f=new URL(window.location.href),h=u.startsWith("//")?new URL(f.protocol+u):new URL(u),g=Ya(h.pathname,i);h.origin===f.origin&&g!=null?u=g+h.search+h.hash:o=!0}catch{ca(!1,` contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:r,isExternal:o,to:u}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var Fp=["POST","PUT","PATCH","DELETE"];new Set(Fp);var ax=["GET",...Fp];new Set(ax);var si=O.createContext(null);si.displayName="DataRouter";var lr=O.createContext(null);lr.displayName="DataRouterState";var nx=O.createContext(!1),$p=O.createContext({isTransitioning:!1});$p.displayName="ViewTransition";var lx=O.createContext(new Map);lx.displayName="Fetchers";var ix=O.createContext(null);ix.displayName="Await";var Bt=O.createContext(null);Bt.displayName="Navigation";var gu=O.createContext(null);gu.displayName="Location";var ea=O.createContext({outlet:null,matches:[],isDataRoute:!1});ea.displayName="Route";var xf=O.createContext(null);xf.displayName="RouteError";var Wp="REACT_ROUTER_ERROR",ux="REDIRECT",sx="ROUTE_ERROR_RESPONSE";function rx(l){if(l.startsWith(`${Wp}:${ux}:{`))try{let i=JSON.parse(l.slice(28));if(typeof i=="object"&&i&&typeof i.status=="number"&&typeof i.statusText=="string"&&typeof i.location=="string"&&typeof i.reloadDocument=="boolean"&&typeof i.replace=="boolean")return i}catch{}}function cx(l){if(l.startsWith(`${Wp}:${sx}:{`))try{let i=JSON.parse(l.slice(40));if(typeof i=="object"&&i&&typeof i.status=="number"&&typeof i.statusText=="string")return new Ib(i.status,i.statusText,i.data)}catch{}}function ox(l,{relative:i}={}){ke(ri(),"useHref() may be used only in the context of a component.");let{basename:u,navigator:r}=O.useContext(Bt),{hash:o,pathname:f,search:h}=vu(l,{relative:i}),g=f;return u!=="/"&&(g=f==="/"?u:va([u,f])),r.createHref({pathname:g,search:h,hash:o})}function ri(){return O.useContext(gu)!=null}function ta(){return ke(ri(),"useLocation() may be used only in the context of a component."),O.useContext(gu).location}var Pp="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Ip(l){O.useContext(Bt).static||O.useLayoutEffect(l)}function ir(){let{isDataRoute:l}=O.useContext(ea);return l?Tx():fx()}function fx(){ke(ri(),"useNavigate() may be used only in the context of a component.");let l=O.useContext(si),{basename:i,navigator:u}=O.useContext(Bt),{matches:r}=O.useContext(ea),{pathname:o}=ta(),f=JSON.stringify(bf(r)),h=O.useRef(!1);return Ip(()=>{h.current=!0}),O.useCallback((v,p={})=>{if(ca(h.current,Pp),!h.current)return;if(typeof v=="number"){u.go(v);return}let x=nr(v,JSON.parse(f),o,p.relative==="path");l==null&&i!=="/"&&(x.pathname=x.pathname==="/"?i:va([i,x.pathname])),(p.replace?u.replace:u.push)(x,p.state,p)},[i,u,f,o,l])}var dx=O.createContext(null);function hx(l){let i=O.useContext(ea).outlet;return O.useMemo(()=>i&&O.createElement(dx.Provider,{value:l},i),[i,l])}function mx(){let{matches:l}=O.useContext(ea),i=l[l.length-1];return i?i.params:{}}function vu(l,{relative:i}={}){let{matches:u}=O.useContext(ea),{pathname:r}=ta(),o=JSON.stringify(bf(u));return O.useMemo(()=>nr(l,JSON.parse(o),r,i==="path"),[l,o,r,i])}function yx(l,i){return e0(l,i)}function e0(l,i,u){var j;ke(ri(),"useRoutes() may be used only in the context of a component.");let{navigator:r}=O.useContext(Bt),{matches:o}=O.useContext(ea),f=o[o.length-1],h=f?f.params:{},g=f?f.pathname:"/",v=f?f.pathnameBase:"/",p=f&&f.route;{let B=p&&p.path||"";a0(g,!p||B.endsWith("*")||B.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${g}" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. - -Please change the parent to .`)}let x=ta(),b;if(i){let B=typeof i=="string"?ui(i):i;ke(v==="/"||((j=B.pathname)==null?void 0:j.startsWith(v)),`When overriding the location using \`\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${v}" but pathname "${B.pathname}" was given in the \`location\` prop.`),b=B}else b=x;let w=b.pathname||"/",L=w;if(v!=="/"){let B=v.replace(/^\//,"").split("/");L="/"+w.replace(/^\//,"").split("/").slice(B.length).join("/")}let N=Kp(l,{pathname:L});ca(p||N!=null,`No routes matched location "${b.pathname}${b.search}${b.hash}" `),ca(N==null||N[N.length-1].route.element!==void 0||N[N.length-1].route.Component!==void 0||N[N.length-1].route.lazy!==void 0,`Matched leaf route at location "${b.pathname}${b.search}${b.hash}" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.`);let z=xx(N&&N.map(B=>Object.assign({},B,{params:Object.assign({},h,B.params),pathname:va([v,r.encodeLocation?r.encodeLocation(B.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:B.pathname]),pathnameBase:B.pathnameBase==="/"?v:va([v,r.encodeLocation?r.encodeLocation(B.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:B.pathnameBase])})),o,u);return i&&z?O.createElement(gu.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",unstable_mask:void 0,...b},navigationType:"POP"}},z):z}function px(){let l=Nx(),i=ex(l)?`${l.status} ${l.statusText}`:l instanceof Error?l.message:JSON.stringify(l),u=l instanceof Error?l.stack:null,r="rgba(200,200,200, 0.5)",o={padding:"0.5rem",backgroundColor:r},f={padding:"2px 4px",backgroundColor:r},h=null;return console.error("Error handled by React Router default ErrorBoundary:",l),h=O.createElement(O.Fragment,null,O.createElement("p",null,"💿 Hey developer 👋"),O.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",O.createElement("code",{style:f},"ErrorBoundary")," or"," ",O.createElement("code",{style:f},"errorElement")," prop on your route.")),O.createElement(O.Fragment,null,O.createElement("h2",null,"Unexpected Application Error!"),O.createElement("h3",{style:{fontStyle:"italic"}},i),u?O.createElement("pre",{style:o},u):null,h)}var gx=O.createElement(px,null),t0=class extends O.Component{constructor(l){super(l),this.state={location:l.location,revalidation:l.revalidation,error:l.error}}static getDerivedStateFromError(l){return{error:l}}static getDerivedStateFromProps(l,i){return i.location!==l.location||i.revalidation!=="idle"&&l.revalidation==="idle"?{error:l.error,location:l.location,revalidation:l.revalidation}:{error:l.error!==void 0?l.error:i.error,location:i.location,revalidation:l.revalidation||i.revalidation}}componentDidCatch(l,i){this.props.onError?this.props.onError(l,i):console.error("React Router caught the following error during render",l)}render(){let l=this.state.error;if(this.context&&typeof l=="object"&&l&&"digest"in l&&typeof l.digest=="string"){const u=cx(l.digest);u&&(l=u)}let i=l!==void 0?O.createElement(ea.Provider,{value:this.props.routeContext},O.createElement(xf.Provider,{value:l,children:this.props.component})):this.props.children;return this.context?O.createElement(vx,{error:l},i):i}};t0.contextType=nx;var Qo=new WeakMap;function vx({children:l,error:i}){let{basename:u}=O.useContext(Bt);if(typeof i=="object"&&i&&"digest"in i&&typeof i.digest=="string"){let r=rx(i.digest);if(r){let o=Qo.get(i);if(o)throw o;let f=Jp(r.location,u);if(Zp&&!Qo.get(i))if(f.isExternal||r.reloadDocument)window.location.href=f.absoluteURL||f.to;else{const h=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(f.to,{replace:r.replace}));throw Qo.set(i,h),h}return O.createElement("meta",{httpEquiv:"refresh",content:`0;url=${f.absoluteURL||f.to}`})}}return l}function bx({routeContext:l,match:i,children:u}){let r=O.useContext(si);return r&&r.static&&r.staticContext&&(i.route.errorElement||i.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=i.route.id),O.createElement(ea.Provider,{value:l},u)}function xx(l,i=[],u){let r=u==null?void 0:u.state;if(l==null){if(!r)return null;if(r.errors)l=r.matches;else if(i.length===0&&!r.initialized&&r.matches.length>0)l=r.matches;else return null}let o=l,f=r==null?void 0:r.errors;if(f!=null){let x=o.findIndex(b=>b.route.id&&(f==null?void 0:f[b.route.id])!==void 0);ke(x>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(f).join(",")}`),o=o.slice(0,Math.min(o.length,x+1))}let h=!1,g=-1;if(u&&r){h=r.renderFallback;for(let x=0;x=0?o=o.slice(0,g+1):o=[o[0]];break}}}}let v=u==null?void 0:u.onError,p=r&&v?(x,b)=>{var w,L;v(x,{location:r.location,params:((L=(w=r.matches)==null?void 0:w[0])==null?void 0:L.params)??{},unstable_pattern:tx(r.matches),errorInfo:b})}:void 0;return o.reduceRight((x,b,w)=>{let L,N=!1,z=null,j=null;r&&(L=f&&b.route.id?f[b.route.id]:void 0,z=b.route.errorElement||gx,h&&(g<0&&w===0?(a0("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),N=!0,j=null):g===w&&(N=!0,j=b.route.hydrateFallbackElement||null)));let B=i.concat(o.slice(0,w+1)),X=()=>{let Y;return L?Y=z:N?Y=j:b.route.Component?Y=O.createElement(b.route.Component,null):b.route.element?Y=b.route.element:Y=x,O.createElement(bx,{match:b,routeContext:{outlet:x,matches:B,isDataRoute:r!=null},children:Y})};return r&&(b.route.ErrorBoundary||b.route.errorElement||w===0)?O.createElement(t0,{location:r.location,revalidation:r.revalidation,component:z,error:L,children:X(),routeContext:{outlet:null,matches:B,isDataRoute:!0},onError:p}):X()},null)}function Sf(l){return`${l} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Sx(l){let i=O.useContext(si);return ke(i,Sf(l)),i}function Ex(l){let i=O.useContext(lr);return ke(i,Sf(l)),i}function Rx(l){let i=O.useContext(ea);return ke(i,Sf(l)),i}function Ef(l){let i=Rx(l),u=i.matches[i.matches.length-1];return ke(u.route.id,`${l} can only be used on routes that contain a unique "id"`),u.route.id}function Ax(){return Ef("useRouteId")}function Nx(){var r;let l=O.useContext(xf),i=Ex("useRouteError"),u=Ef("useRouteError");return l!==void 0?l:(r=i.errors)==null?void 0:r[u]}function Tx(){let{router:l}=Sx("useNavigate"),i=Ef("useNavigate"),u=O.useRef(!1);return Ip(()=>{u.current=!0}),O.useCallback(async(o,f={})=>{ca(u.current,Pp),u.current&&(typeof o=="number"?await l.navigate(o):await l.navigate(o,{fromRouteId:i,...f}))},[l,i])}var ep={};function a0(l,i,u){!i&&!ep[l]&&(ep[l]=!0,ca(!1,u))}O.memo(jx);function jx({routes:l,future:i,state:u,isStatic:r,onError:o}){return e0(l,void 0,{state:u,isStatic:r,onError:o})}function n0({to:l,replace:i,state:u,relative:r}){ke(ri()," may be used only in the context of a component.");let{static:o}=O.useContext(Bt);ca(!o," must not be used on the initial render in a . This is a no-op, but you should modify your code so the is only ever rendered in response to some user interaction or state change.");let{matches:f}=O.useContext(ea),{pathname:h}=ta(),g=ir(),v=nr(l,bf(f),h,r==="path"),p=JSON.stringify(v);return O.useEffect(()=>{g(JSON.parse(p),{replace:i,state:u,relative:r})},[g,p,r,i,u]),null}function Ox(l){return hx(l.context)}function At(l){ke(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function wx({basename:l="/",children:i=null,location:u,navigationType:r="POP",navigator:o,static:f=!1,unstable_useTransitions:h}){ke(!ri(),"You cannot render a inside another . You should never have more than one in your app.");let g=l.replace(/^\/*/,"/"),v=O.useMemo(()=>({basename:g,navigator:o,static:f,unstable_useTransitions:h,future:{}}),[g,o,f,h]);typeof u=="string"&&(u=ui(u));let{pathname:p="/",search:x="",hash:b="",state:w=null,key:L="default",unstable_mask:N}=u,z=O.useMemo(()=>{let j=Ya(p,g);return j==null?null:{location:{pathname:j,search:x,hash:b,state:w,key:L,unstable_mask:N},navigationType:r}},[g,p,x,b,w,L,r,N]);return ca(z!=null,` is not able to match the URL "${p}${x}${b}" because it does not start with the basename, so the won't render anything.`),z==null?null:O.createElement(Bt.Provider,{value:v},O.createElement(gu.Provider,{children:i,value:z}))}function Cx({children:l,location:i}){return yx(Fo(l),i)}function Fo(l,i=[]){let u=[];return O.Children.forEach(l,(r,o)=>{if(!O.isValidElement(r))return;let f=[...i,o];if(r.type===O.Fragment){u.push.apply(u,Fo(r.props.children,f));return}ke(r.type===At,`[${typeof r.type=="string"?r.type:r.type.name}] is not a component. All component children of must be a or `),ke(!r.props.index||!r.props.children,"An index route cannot have child routes.");let h={id:r.props.id||f.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,middleware:r.props.middleware,loader:r.props.loader,action:r.props.action,hydrateFallbackElement:r.props.hydrateFallbackElement,HydrateFallback:r.props.HydrateFallback,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.hasErrorBoundary===!0||r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(h.children=Fo(r.props.children,f)),u.push(h)}),u}var Zs="get",Js="application/x-www-form-urlencoded";function ur(l){return typeof HTMLElement<"u"&&l instanceof HTMLElement}function _x(l){return ur(l)&&l.tagName.toLowerCase()==="button"}function zx(l){return ur(l)&&l.tagName.toLowerCase()==="form"}function Dx(l){return ur(l)&&l.tagName.toLowerCase()==="input"}function Mx(l){return!!(l.metaKey||l.altKey||l.ctrlKey||l.shiftKey)}function Ux(l,i){return l.button===0&&(!i||i==="_self")&&!Mx(l)}var Ys=null;function qx(){if(Ys===null)try{new FormData(document.createElement("form"),0),Ys=!1}catch{Ys=!0}return Ys}var Lx=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Go(l){return l!=null&&!Lx.has(l)?(ca(!1,`"${l}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${Js}"`),null):l}function Hx(l,i){let u,r,o,f,h;if(zx(l)){let g=l.getAttribute("action");r=g?Ya(g,i):null,u=l.getAttribute("method")||Zs,o=Go(l.getAttribute("enctype"))||Js,f=new FormData(l)}else if(_x(l)||Dx(l)&&(l.type==="submit"||l.type==="image")){let g=l.form;if(g==null)throw new Error('Cannot submit a + + + +
+ {reader.toc.map(item => ( + + ))} +
+ + + +
+ + +
+ +
+ {reader.isLoading && ( + + )} + {reader.error ? ( +
+ {reader.error} +
+ ) : ( +
+ )} +
+ +
+
+
+
+ Chapter: {reader.stats.chapterName} +
+
+ Chapter Pages:{' '} + {reader.stats.sectionPage} / {reader.stats.sectionTotalPages} +
+
+ Progress:{' '} + {reader.stats.percentage.toFixed(2)}% +
+
+ +
+
+
+ +
+
+

Theme

+
+ {colorSchemes.map(option => ( + + ))} +
+
+ +
+

Font

+
+ {fontFamilies.map(option => ( + + ))} +
+
+ +
+

+ Font Size +

+
+ +
+ {fontSize.toFixed(1)}x +
+ +
+
+ +
+ + +
+
+
+
+
+
+ ); +} diff --git a/frontend/src/types/epubjs.d.ts b/frontend/src/types/epubjs.d.ts new file mode 100644 index 0000000..bdba7e3 --- /dev/null +++ b/frontend/src/types/epubjs.d.ts @@ -0,0 +1,4 @@ +declare module 'epubjs' { + const ePub: (...args: unknown[]) => unknown; + export default ePub; +} diff --git a/frontend/src/utils/localSettings.ts b/frontend/src/utils/localSettings.ts index 200468e..5422b54 100644 --- a/frontend/src/utils/localSettings.ts +++ b/frontend/src/utils/localSettings.ts @@ -1,11 +1,18 @@ export type ThemeMode = 'light' | 'dark' | 'system'; export type DocumentsViewMode = 'grid' | 'list'; +export type ReaderColorScheme = 'light' | 'tan' | 'blue' | 'gray' | 'black'; +export type ReaderFontFamily = 'Serif' | 'Open Sans' | 'Arbutus Slab' | 'Lato'; const LOCAL_SETTINGS_KEY = 'antholume:settings'; interface LocalSettings { themeMode?: ThemeMode; documentsViewMode?: DocumentsViewMode; + readerColorScheme?: ReaderColorScheme; + readerFontFamily?: ReaderFontFamily; + readerFontSize?: number; + readerDeviceId?: string; + readerDeviceName?: string; } function canUseLocalStorage(): boolean { @@ -64,3 +71,77 @@ export function getDocumentsViewMode(): DocumentsViewMode { export function setDocumentsViewMode(documentsViewMode: DocumentsViewMode): void { updateLocalSettings({ documentsViewMode }); } + +export function getReaderColorScheme(): ReaderColorScheme { + const settings = readLocalSettings(); + switch (settings.readerColorScheme) { + case 'light': + case 'tan': + case 'blue': + case 'gray': + case 'black': + return settings.readerColorScheme; + default: + return 'tan'; + } +} + +export function setReaderColorScheme(readerColorScheme: ReaderColorScheme): void { + updateLocalSettings({ readerColorScheme }); +} + +export function getReaderFontFamily(): ReaderFontFamily { + const settings = readLocalSettings(); + switch (settings.readerFontFamily) { + case 'Serif': + case 'Open Sans': + case 'Arbutus Slab': + case 'Lato': + return settings.readerFontFamily; + default: + return 'Serif'; + } +} + +export function setReaderFontFamily(readerFontFamily: ReaderFontFamily): void { + updateLocalSettings({ readerFontFamily }); +} + +export function getReaderFontSize(): number { + const settings = readLocalSettings(); + return typeof settings.readerFontSize === 'number' && settings.readerFontSize > 0 + ? settings.readerFontSize + : 1; +} + +export function setReaderFontSize(readerFontSize: number): void { + updateLocalSettings({ readerFontSize }); +} + +export function getReaderDevice(): { id: string; name: string } { + const settings = readLocalSettings(); + const id = + typeof settings.readerDeviceId === 'string' && settings.readerDeviceId.length > 0 + ? settings.readerDeviceId + : crypto.randomUUID(); + const name = + typeof settings.readerDeviceName === 'string' && settings.readerDeviceName.length > 0 + ? settings.readerDeviceName + : 'Web Reader'; + + if (id !== settings.readerDeviceId || name !== settings.readerDeviceName) { + updateLocalSettings({ + readerDeviceId: id, + readerDeviceName: name, + }); + } + + return { id, name }; +} + +export function setReaderDevice(name: string, id?: string): void { + updateLocalSettings({ + readerDeviceId: id ?? crypto.randomUUID(), + readerDeviceName: name, + }); +}