From 2a449a6f0067d13b5563853feed21993c1a44412 Mon Sep 17 00:00:00 2001 From: Tejas Panchal Date: Thu, 24 Jul 2025 21:38:27 +0530 Subject: [PATCH] FRESHHHH --- .env.example | 15 + .gitignore | 133 + LICENSE | 21 + README.md | 119 + components.json | 20 + eslint.config.js | 38 + index.html | 93 + jsconfig.json | 9 + lib/utils.js | 6 + package.json | 54 + postcss.config.js | 6 + public/favicon.png | Bin 0 -> 49032 bytes public/logo.png | Bin 0 -> 260804 bytes public/robots.txt | 4 + public/sitemap.xml | 2430 +++++++++++++++++ public/splash.jpg | Bin 0 -> 154749 bytes src/App.css | 27 + src/App.jsx | 73 + src/components/Loader/AnimeInfo.loader.jsx | 58 + src/components/Loader/AtoZ.loader.jsx | 26 + src/components/Loader/Cart.loader.jsx | 27 + src/components/Loader/Category.loader.jsx | 23 + src/components/Loader/CategoryCard.loader.jsx | 35 + src/components/Loader/Home.loader.jsx | 32 + src/components/Loader/Loader.jsx | 24 + src/components/Loader/Producer.loader.jsx | 15 + src/components/Loader/Sidecard.loader.jsx | 26 + src/components/Loader/Spotlight.loader.jsx | 34 + src/components/Loader/Trending.loader.jsx | 34 + .../Loader/VoiceActorlist.loader.jsx | 21 + src/components/banner/Banner.css | 133 + src/components/banner/Banner.jsx | 136 + src/components/cart/Cart.css | 10 + src/components/cart/Cart.jsx | 132 + src/components/categorycard/CategoryCard.css | 27 + src/components/categorycard/CategoryCard.jsx | 340 +++ src/components/continue/ContinueWatching.jsx | 132 + src/components/episodelist/Episodelist.css | 15 + src/components/episodelist/Episodelist.jsx | 303 ++ src/components/error/Error.jsx | 21 + src/components/footer/Footer.jsx | 62 + src/components/genres/Genre.jsx | 54 + src/components/navbar/Navbar.jsx | 147 + src/components/pageslider/PageSlider.jsx | 76 + src/components/player/IframePlayer.jsx | 148 + src/components/player/Player.css | 59 + src/components/player/Player.jsx | 494 ++++ src/components/player/PlayerIcons.jsx | 103 + .../player/artPlayerPluginVttThumbnail.js | 72 + src/components/player/artPlayerPluinChaper.js | 211 ++ .../player/artplayerPluginUploadSubtitle.js | 49 + src/components/player/autoSkip.js | 74 + src/components/player/getChapterStyle.js | 82 + src/components/player/getVttArray.js | 101 + src/components/player/pluginChapterStyle.js | 55 + src/components/producer/Producer.jsx | 102 + src/components/qtip/Qtip.jsx | 159 ++ src/components/schedule/Schedule.jsx | 241 ++ src/components/schedule/schedule.css | 11 + src/components/searchbar/MobileSearch.jsx | 73 + src/components/searchbar/WebSearch.jsx | 77 + src/components/servers/Servers.css | 9 + src/components/servers/Servers.jsx | 187 ++ src/components/sidebar/Sidebar.jsx | 141 + src/components/sidecard/Sidecard.jsx | 142 + src/components/splashscreen/SplashScreen.css | 227 ++ src/components/splashscreen/SplashScreen.jsx | 107 + src/components/spotlight/Spotlight.css | 68 + src/components/spotlight/Spotlight.jsx | 54 + src/components/suggestion/Suggestion.jsx | 115 + src/components/topten/Topten.jsx | 176 ++ src/components/trending/Trending.jsx | 77 + src/components/ui/Skeleton/Skeleton.css | 23 + src/components/ui/Skeleton/Skeleton.jsx | 16 + .../ui/bouncingloader/Bouncingloader.css | 45 + .../ui/bouncingloader/Bouncingloader.jsx | 12 + src/components/voiceactor/Voiceactor.jsx | 100 + .../voiceactorlist/VoiceactorList.jsx | 175 ++ .../watchcontrols/Watchcontrols.jsx | 97 + src/config/logoTitle.js | 3 + src/config/website.js | 3 + src/context/HomeInfoContext.jsx | 31 + src/context/LanguageContext.jsx | 27 + src/context/SearchContext.jsx | 13 + src/helper/toggleScrollbar.js | 32 + src/hooks/useSearch.js | 64 + src/hooks/useToolTipPosition.js | 49 + src/hooks/useWatch.js | 269 ++ src/hooks/useWatchControl.js | 34 + src/index.css | 126 + src/main.jsx | 13 + src/pages/Home/Home.jsx | 82 + src/pages/a2z/AtoZ.jsx | 118 + src/pages/animeInfo/AnimeInfo.jsx | 416 +++ src/pages/category/Category.jsx | 111 + src/pages/search/Search.jsx | 74 + src/pages/watch/Watch.jsx | 541 ++++ src/utils/category.utils.js | 89 + src/utils/getAnimeInfo.utils.js | 18 + src/utils/getCategoryInfo.utils.js | 14 + src/utils/getEpisodes.utils.js | 12 + src/utils/getHomeInfo.utils.js | 58 + src/utils/getNextEpisodeSchedule.utils.js | 14 + src/utils/getProducer.utils.js | 14 + src/utils/getQtip.utils.js | 18 + src/utils/getScheduleInfo.utils.js | 12 + src/utils/getSearch.utils.js | 17 + src/utils/getSearchSuggestion.utils.js | 16 + src/utils/getServers.utils.js | 14 + src/utils/getStreamInfo.utils.js | 12 + src/utils/getTopSearch.utils.js | 32 + src/utils/getVoiceActor.utils.js | 14 + tailwind.config.js | 62 + vercel.json | 3 + vite.config.js | 12 + 115 files changed, 11310 insertions(+) create mode 100644 .env.example create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 components.json create mode 100644 eslint.config.js create mode 100644 index.html create mode 100644 jsconfig.json create mode 100644 lib/utils.js create mode 100644 package.json create mode 100644 postcss.config.js create mode 100644 public/favicon.png create mode 100644 public/logo.png create mode 100644 public/robots.txt create mode 100644 public/sitemap.xml create mode 100644 public/splash.jpg create mode 100644 src/App.css create mode 100644 src/App.jsx create mode 100644 src/components/Loader/AnimeInfo.loader.jsx create mode 100644 src/components/Loader/AtoZ.loader.jsx create mode 100644 src/components/Loader/Cart.loader.jsx create mode 100644 src/components/Loader/Category.loader.jsx create mode 100644 src/components/Loader/CategoryCard.loader.jsx create mode 100644 src/components/Loader/Home.loader.jsx create mode 100644 src/components/Loader/Loader.jsx create mode 100644 src/components/Loader/Producer.loader.jsx create mode 100644 src/components/Loader/Sidecard.loader.jsx create mode 100644 src/components/Loader/Spotlight.loader.jsx create mode 100644 src/components/Loader/Trending.loader.jsx create mode 100644 src/components/Loader/VoiceActorlist.loader.jsx create mode 100644 src/components/banner/Banner.css create mode 100644 src/components/banner/Banner.jsx create mode 100644 src/components/cart/Cart.css create mode 100644 src/components/cart/Cart.jsx create mode 100644 src/components/categorycard/CategoryCard.css create mode 100644 src/components/categorycard/CategoryCard.jsx create mode 100644 src/components/continue/ContinueWatching.jsx create mode 100644 src/components/episodelist/Episodelist.css create mode 100644 src/components/episodelist/Episodelist.jsx create mode 100644 src/components/error/Error.jsx create mode 100644 src/components/footer/Footer.jsx create mode 100644 src/components/genres/Genre.jsx create mode 100644 src/components/navbar/Navbar.jsx create mode 100644 src/components/pageslider/PageSlider.jsx create mode 100644 src/components/player/IframePlayer.jsx create mode 100644 src/components/player/Player.css create mode 100644 src/components/player/Player.jsx create mode 100644 src/components/player/PlayerIcons.jsx create mode 100644 src/components/player/artPlayerPluginVttThumbnail.js create mode 100644 src/components/player/artPlayerPluinChaper.js create mode 100644 src/components/player/artplayerPluginUploadSubtitle.js create mode 100644 src/components/player/autoSkip.js create mode 100644 src/components/player/getChapterStyle.js create mode 100644 src/components/player/getVttArray.js create mode 100644 src/components/player/pluginChapterStyle.js create mode 100644 src/components/producer/Producer.jsx create mode 100644 src/components/qtip/Qtip.jsx create mode 100644 src/components/schedule/Schedule.jsx create mode 100644 src/components/schedule/schedule.css create mode 100644 src/components/searchbar/MobileSearch.jsx create mode 100644 src/components/searchbar/WebSearch.jsx create mode 100644 src/components/servers/Servers.css create mode 100644 src/components/servers/Servers.jsx create mode 100644 src/components/sidebar/Sidebar.jsx create mode 100644 src/components/sidecard/Sidecard.jsx create mode 100644 src/components/splashscreen/SplashScreen.css create mode 100644 src/components/splashscreen/SplashScreen.jsx create mode 100644 src/components/spotlight/Spotlight.css create mode 100644 src/components/spotlight/Spotlight.jsx create mode 100644 src/components/suggestion/Suggestion.jsx create mode 100644 src/components/topten/Topten.jsx create mode 100644 src/components/trending/Trending.jsx create mode 100644 src/components/ui/Skeleton/Skeleton.css create mode 100644 src/components/ui/Skeleton/Skeleton.jsx create mode 100644 src/components/ui/bouncingloader/Bouncingloader.css create mode 100644 src/components/ui/bouncingloader/Bouncingloader.jsx create mode 100644 src/components/voiceactor/Voiceactor.jsx create mode 100644 src/components/voiceactorlist/VoiceactorList.jsx create mode 100644 src/components/watchcontrols/Watchcontrols.jsx create mode 100644 src/config/logoTitle.js create mode 100644 src/config/website.js create mode 100644 src/context/HomeInfoContext.jsx create mode 100644 src/context/LanguageContext.jsx create mode 100644 src/context/SearchContext.jsx create mode 100644 src/helper/toggleScrollbar.js create mode 100644 src/hooks/useSearch.js create mode 100644 src/hooks/useToolTipPosition.js create mode 100644 src/hooks/useWatch.js create mode 100644 src/hooks/useWatchControl.js create mode 100644 src/index.css create mode 100644 src/main.jsx create mode 100644 src/pages/Home/Home.jsx create mode 100644 src/pages/a2z/AtoZ.jsx create mode 100644 src/pages/animeInfo/AnimeInfo.jsx create mode 100644 src/pages/category/Category.jsx create mode 100644 src/pages/search/Search.jsx create mode 100644 src/pages/watch/Watch.jsx create mode 100644 src/utils/category.utils.js create mode 100644 src/utils/getAnimeInfo.utils.js create mode 100644 src/utils/getCategoryInfo.utils.js create mode 100644 src/utils/getEpisodes.utils.js create mode 100644 src/utils/getHomeInfo.utils.js create mode 100644 src/utils/getNextEpisodeSchedule.utils.js create mode 100644 src/utils/getProducer.utils.js create mode 100644 src/utils/getQtip.utils.js create mode 100644 src/utils/getScheduleInfo.utils.js create mode 100644 src/utils/getSearch.utils.js create mode 100644 src/utils/getSearchSuggestion.utils.js create mode 100644 src/utils/getServers.utils.js create mode 100644 src/utils/getStreamInfo.utils.js create mode 100644 src/utils/getTopSearch.utils.js create mode 100644 src/utils/getVoiceActor.utils.js create mode 100644 tailwind.config.js create mode 100644 vercel.json create mode 100644 vite.config.js diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..995c7d7 --- /dev/null +++ b/.env.example @@ -0,0 +1,15 @@ +#Refer https://github.com/itzzzme/anime-api to host your backend API +VITE_API_URL=/api + +#Refer this gist to setup proxy server https://gist.github.com/itzzzme/180813be2c7b45eedc8ce8344c8dea3b +VITE_PROXY_URL=/?url= + +#Refer https://github.com/itzzzme/m3u8proxy to host you m3u8 proxy server though it's optional but if you don't set it up you may get CORS error for some servers if you set up from the given repo then only the url structure will look like this +VITE_M3U8_PROXY_URL=/m3u8-proxy?url= + +#totaly optional / if you don't want to setup worker just change the code of getQtip.utils.js following the pattern of any other utils file +VITE_WORKER_URL=https://worker1.workers.dev,https://worker2.workers.dev,https://worker3.workers.dev,... + +VITE_BASE_IFRAME_URL=https://megaplay.buzz/stream/s-2 + +VITE_BASE_IFRAME_URL_2=https://vidwish.live/stream/s-2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4855fb9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,133 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# lock json files +package-lock.json + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp +.cache + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..85f6de2 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Sayan + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..1d2b28f --- /dev/null +++ b/README.md @@ -0,0 +1,119 @@ +

+

+ + AnimeHi + +
+

Zenime - Ad free anime streaming platform

+

+ + Github Stars + + Github Issues + + Github Forks + +

+

+

+ Zenime is an open-source anime streaming service that uses custom API, built using ReactJS with javascript and Tailwind CSS. It lets you easily find any anime with intuitive search & suggestion feature and stream without any ads. +

+ +
+View more Features + +### General + +- Sub Anime support +- Dub Anime support +- User-friendly interface +- Mobile responsive +- Fast page load +- Character & Voice Actors + +### Watch Page + +- Related Animes +- Recommended Animes +- Available seasons +- Estimated schedule of upcoming episodes +- **Player** + - Autoplay + - Autoskip intro/outro + - Autonext + +
+ +## Previews + +
+ Home Page +
+ View more screenshots +
+ AnimeInfo Page + AnimeInfo Page +
+ Searchbar + Searchbar +
+ Character & Voice Actors + Character & Voice Actors +
+ Watch Page + Watch Page +
+
+
+ +## Installation and Local Development + +### 1. Make sure you have node installed on your device + +### 2. Run the following code to clone the repository and install all required dependencies + +```bash +git clone https://github.com/itzzzme/zenime.git +cd zenime +npm install # or yarn +``` + +### 3. Refer the .env.example to set your .env file up + +## Start the server + +```bash +npm start # or npm run dev (to run develepment server) +``` +## Live Deployment + +### Vercel + +Host your own instance of Zenime on vercel + +[![Deploy to Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/itzzzme/zenime) + +### Render + +Host your own instance of Zenime on Render. + +[![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://render.com/deploy?repo=https://github.com/itzzzme/zenime) + +### Pull Requests + +- Pull requests are welcomed that address bug fixes, improvements, or new features. +- Fork the repository and create a new branch for your changes. +- Ensure your code follows our coding standards. +- Include tests if applicable. +- Describe your changes clearly in the pull request, explaining the problem and solution. + + ### Reporting Issues + +If you discover any issues or have suggestions for improvement, please open an issue. Provide a clear and concise description of the problem, steps to reproduce it, and any relevant information about your environment. + +### Support + + If you like the project feel free to drop a star ✨. Your appreciation means a lot. + +

Made by itzzzme +🫰

diff --git a/components.json b/components.json new file mode 100644 index 0000000..d16853e --- /dev/null +++ b/components.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": false, + "tsx": false, + "tailwind": { + "config": "tailwind.config.js", + "css": "src/index.css", + "baseColor": "zinc", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + } +} \ No newline at end of file diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..238d2e4 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,38 @@ +import js from '@eslint/js' +import globals from 'globals' +import react from 'eslint-plugin-react' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' + +export default [ + { ignores: ['dist'] }, + { + files: ['**/*.{js,jsx}'], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + parserOptions: { + ecmaVersion: 'latest', + ecmaFeatures: { jsx: true }, + sourceType: 'module', + }, + }, + settings: { react: { version: '18.3' } }, + plugins: { + react, + 'react-hooks': reactHooks, + 'react-refresh': reactRefresh, + }, + rules: { + ...js.configs.recommended.rules, + ...react.configs.recommended.rules, + ...react.configs['jsx-runtime'].rules, + ...reactHooks.configs.recommended.rules, + 'react/jsx-no-target-blank': 'off', + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + }, + }, +] diff --git a/index.html b/index.html new file mode 100644 index 0000000..ea57811 --- /dev/null +++ b/index.html @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + JustAnime | Free Anime Streaming Platform + + + + + + + +
+ + + diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000..0d81cf7 --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": ["./*"] + } + } + } + \ No newline at end of file diff --git a/lib/utils.js b/lib/utils.js new file mode 100644 index 0000000..b20bf01 --- /dev/null +++ b/lib/utils.js @@ -0,0 +1,6 @@ +import { clsx } from "clsx"; +import { twMerge } from "tailwind-merge" + +export function cn(...inputs) { + return twMerge(clsx(inputs)); +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..0abc694 --- /dev/null +++ b/package.json @@ -0,0 +1,54 @@ +{ + "name": "justanime", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "lint": "eslint .", + "preview": "vite preview", + "host": "vite --host" + }, + "dependencies": { + "@fortawesome/fontawesome-svg-core": "^6.6.0", + "@fortawesome/free-brands-svg-icons": "^6.7.2", + "@fortawesome/free-solid-svg-icons": "^6.6.0", + "@fortawesome/react-fontawesome": "^0.2.2", + "@radix-ui/react-icons": "^1.3.0", + "artplayer": "^5.2.3", + "artplayer-plugin-chapter": "^1.0.0", + "artplayer-plugin-hls-control": "^1.0.1", + "axios": "^1.7.7", + "cheerio": "^1.0.0", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.1", + "hls.js": "^1.5.17", + "lucide-react": "^0.447.0", + "react": "^18.3.1", + "react-content-loader": "^7.0.2", + "react-dom": "^18.3.1", + "react-icons": "^5.3.0", + "react-lazy-load": "^4.0.1", + "react-router-dom": "^6.26.2", + "styled-components": "^6.1.13", + "swiper": "^11.2.5", + "tailwind-merge": "^2.5.3", + "tailwindcss-animate": "^1.0.7" + }, + "devDependencies": { + "@eslint/js": "^9.9.0", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.1", + "autoprefixer": "^10.4.20", + "eslint": "^9.9.0", + "eslint-plugin-react": "^7.35.0", + "eslint-plugin-react-hooks": "^5.1.0-rc.0", + "eslint-plugin-react-refresh": "^0.4.9", + "globals": "^15.9.0", + "postcss": "^8.4.47", + "tailwindcss": "^3.4.13", + "vite": "^5.4.1" + } +} diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..2e7af2b --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/public/favicon.png b/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..a7bbe4af804a95e4885310d39f626a7f6fc758ca GIT binary patch literal 49032 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�(1PK&!r*6IseSYwGkKe!`Wy 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 literal 0 HcmV?d00001 diff --git a/public/logo.png b/public/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ae75320b19f337cdd1d0920f8640ad311a05c56f GIT binary patch literal 260804 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 z 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

5VAl0#J;nWi0qld4P-jkra zP+G%oAm3Jx^7Pu8E}=!K`|}G;Iq6SL+h9law%{1S42o{;`Kyktq(TqeBe>0w$kvPM zn=l}cWn?+=YiMN(Ts$@Y8^?r#=WHz+A2SvEEi!JE6>mLGvImY6B9TXVj~MHF5}q^o zfqwDnf$wgh#s;sgVnGKIZ4(pJbU8zjSqE+AXjH5eFV1$*9kN4uIy>y>x%H#Oc%o^4 z*K03!3h4H?=!Z+3Hux_ODLW<)5S4x!`~;5WK{IwYjwcEhQ84p%Gj`j{Vkq5TP!OXP z4w4vjrn-^~SXDWT4;x7B@6NwS=zvuy0`(UGJ3sm-XYpyve%;+q-L>&;W}j4Z0x5L0 znQd;ji*^^`EON|pt%dS0ch&kApVTc@ROOcJR|;c^$~@6Mm-+=kk)%yhA_AONy$r>Pfbu zkI&erbt(gP{x>nbn?~H+p3Rz|4*a{AfI|Eg`6dGaxOZ8_PSvo6wY)Zt?VkSwd7zzT zh@`1!dy#o93RP$T@y?lzR3j;NkHQG*DADU^HR*4;QczSpjW6mEoe8-3Uwe_CA8*fB zL;ZnZa(q$DNNZ<0*{ZZ#+x#{ptLT!fLBGl+%b?#YQ=Jn+XVf}JamPj%)9A9cabj`Li%n%>5eci17*o<+r#!DHqE zjGlwE5m}CwhbZvw0*hlLj~s!cynhXp`v1q%dB;=T|NsBk%B)-**-}Qb3pt1)BSaya zWN#;Xk0_3jnO!)^UfG*EWE@G3y~oKs_OZ|J)#tjtzi#Ef{&3Fg{dzyg<8gmbc5uB3 zk0*Xvy*zo4y`m!kBF5%+#BKg2H|t)9@9k{|aNO>@?R_*KxwA2j{b~Ex2N#dzFA@Ez zocH9Jtt_=8UD#L`q>f}R^9@{hh9lc#@Hv)Phq40OedA*iMIl4}b6W`(Kpp`3(cQdq z$EuEBCn>`qAg(LMnhJ!EfNnez$kDuJ;dDt1Pjxz;u_v)wSM&|wKkmZ#Zc5^e9Q78T z{cKe93t-Eng68e)Khx^K2e96EC(Xv?RaX)X?$L+OSExZ2z27y5ReoJ0!s7`)@zr?3 zlsp_T^tA6>E)@-V-b>f1atXBJB>T!&AmLK%3E0oGK(&2X>VYL9P@>anypU z(6^}PMMee>|JF1_#&6XqTlI8-`dqKdv~3iGFDvOXJW=y_9Q{s3jSfQbt=^dKT9tzc z1dL2)>0tbiKE}`{NL(U!+aOZ$^!B%$-x~HhufZ8$Ii(tOl5aW{TfH? zr|WD2E%Y$!i(*Pie%Aa3G!I!AF_(dQlza@5LZJb_I ze7m?^avwb|GA0}jv3$S~0d(WwwbiGt4&t7>`Zojtc_s>Q?0O!2DpG?``=<)N-tcbE zBHCz~JvCupELmp#oS&4KjT;SX*N1p^7eDEN4jF=tDqs%?^oeOC*0VfT_&&@4ib)Dy?nW=h3Alp z@4O#Oq@(t_$pozP6)#`nzgd+VjA^RgpU{H}Db}y@6}4E~`<^&~?O*wxzsvQm8cK?E zv;Q_NsNV;@Hrfm?EiA_Lraug39iQ2Ypq?@)nXaxaEG&#@QSxg(t~p_GSiI&+agXT% z%K)a|Sa;fMZmvVYFF@AB%#6d<#H1SivbZ1;A^LXU*S@f0^1x9=q%^jR=AhlRRTvpQ z1f&AFqwAkI=zea#7KKvBV~_V(1f!}R>FRa`pW2XpMkZ~`a#%ofhio|!iqA(}_FDCp4!;;*q)iRG96t>nESI&~#gdD4{X4NnnyM9o+p&_1c7g|$u*E>5>aPUep zStv+V)Qg<+|FCM7^b>{f*bV@VO5hw7>P48F99#GhyF9`=2|LP_G_hKF#a%|sFt2wQ zxWHvpS%qmAj&y7S&R07=5?*L8X|Xs76SgUW#3onWuDUm!)^d2)k(fh1n0XW8l28-5 zJ>uZQ2ETiB%usjdm)g1^+l_}U(wn39?0ClD2~C)I5#85mQ=gw|JF!S&UZJ0#@gQ*Ss5nh zopr4T3Lu^s`ynf%D~GU}Gp9vZ()wv%)85ctJt!Mpl&dKx94d-B=cLp`qXz;yW?D{7 zt8FYSKs?&*|EwTQpulSUHHdeW6xOl#r;>sI*Ww~`u&i76yF@P%Tc^=5ryJ7Jvf_UG zW0j-8d%LwZv8H2VX&LsZm(BS+0Rhjs2rzKykP2hCnvLra4)_~3a~F#3qV}@n%nvU6 zZAMiuW4>1_*U9;ao|N+ZuX*1m2W?u1X`b70*@UlTDyR|7a>z-};yXH?GJ?|ZLw1^i zmnDf^I<4eQgj)q0G$h!MA)*t17V*@+Oj@*(w`jB=89M@bD($1_ENYTc+glA|rk)5h z#kto_25`SywN!oCQAe@lx$_-DU%g4Tl9*xB-00cOmxLDf2=x`5c8jzce$(fk;2j- z`AQv$X`r_>$qfQ^`RN5JgMiYHu=t=c*q^VOAjcLFLKe)2;QU_Ub)Csy|4_=W25Jc| zyP^`~fZD)6JwthB-U~}VgwxZqq%U8t{m(w-nO0R4&(n2WILWgIwSogxu)bj`CLx%V%0e@vQqUcTOh@^3$SjBTjQs9)*9$|#&c7~m zFe^;*p>?H=uwZ%PR+UGDpFMd)SIJ39+PM)O725RSqT|y>*^g{04+CHhgz|C;P7mka$!7;P*pIV1gBEzz&nO;&| z!ESoe70m+0=h`iDi)1x?Uq+UTztBFSY`ByO|Ku+pwHA}6=iolWEN-;oGa$|TfC!)Z zwW{$XfdHa*U$UWvO_~muIy*Z*0hnQ`PV979u5Sw(*NUI9#LO4#>Fb^NWJilo=VWDN z-2Nr_<{o)+S$k>lIqS_OXMMEv3!6_gbAH+BA3jL=FD$W{dCmsl1HQBIYR&K>Sqt1F z|8HEC0JVgGyfTIC<&4?s8Jcl}>~5Xy>S+CPIcZthn(`sX5s`>W8Gas_4FZ1z3HMdyV8<=v zJ; z_db}L6h14MIcXeiyC|k(zyG?fc?KHyU-9U92`vq^1l+#2iO@_?^I6o1u9z|^)d@yF z2HnA@bAV%>%_`7pL(zp+#>|3;LlCyzI2xd2kX&0*v^4RnhN3TbY}H~qrA!}pO-E6H ztkpodtw@6WoCsp>YkfV&ngsGN8>=!*ni;bd7?)+@=oK5Lz>nmfrLzyD$0T9N5HZ`g zm3xGqEf;QiNn$XmsoCq!jxe2+KE1z2sr<}I$%$Y7u~IETQ!Q3KMM;Q zuEhXuM!rwFGqiLxlrO609*T;XIb0zcu8K8MtWB$l73H#`2d+qfd2BUPzsBCKeVU&N zZ{eMeE-X?bsjscA_53`#ZUXX#g4D@tWm&H^FGtQ#TN$`(sZz{!L9&S+R1=uK2+#;g z9SUuH-`}T>;-2+7*$%SOqxomeGJ{;v+F8GrIhNt;0g6KrvMxW{Dm z37Mo1{tQwlELCxk;$0@grim4xzL9b4vX>*uUz#6&iexV;FDsMN(be^u>P^KlX2L1a zZY>{jz@E&O!H3q8=I?0@ERPI}q+I}zg)ZAL302S{AnxAyCwO)|SjN&d*gVruN7YQV zFnlglJL?f()p2V@Z=IaAj|SZUZ8P&jvmKA1 zLH{H9^T@J$wQ7kx8i`UV=YbZb9y*uF>$|Q!8%|X8&4cSI_6RMpLV@R$tKn%jZ~neC zHo*yt@J@ZYW|fe{#)(`&?2Oq?3l-bXQ7D{a5YFmukoQZ?Nfv*e=*}RMY=|haPl>&K zBfBMaz=D^7I5Li{8zkr%7YrXS40~l=oSbraZ!)RyufhSM=y)0DgVmEl7f}hL=K~q#U#n&r#*fL-^XSvZ17S_^CW-JjFi_daSl0eHDG+%PZ z%h#B64gp$$R|XNu%T{2VbM1w3bJSnOu9W8)EogCJgY%gzh2}C9T|{0T(j-v80THF7 z?UoL<;Jpk83`J4Kz#w?XtjYa&XBp_ToxmPgd*yp|c0t*Z#n1EH^0Vu`pSfT4x11Lf znD7K3m=zi^6fQ6@HB3xG**cZpd5whI^s^;`1g}mizTuR3r%ox7MONzAOE1t+QfT7G zC{5wpm-AB3yw+J%3X5W5V$^NWna3Y?&q;VSGrfmr0!|s7hv@6lNuSc?U0BIeb@={M4B zvI}ht4&O;=q?W)Z4etg|N#))BYXG?l{x7|dSp!0F0A!e}`hV9CxCyLOUy81>Y|=0& zwJs7JvC-6v1DMR5d8V{iKqR`r0S{ubGD+GUb)RpJEGHK;3Bv+`Oe@=y%u7;|RM!q7Yhy6+~}XaG+XHqgrsC$%oy@K@Byw`lCU%T9{85 z_kd-Va$J!WeSQ5e_d*1M5EVhK!Vkqdw~@EQ#6gH2OZN^632uK!iR*rc{R5jEi@|`F zrOpqB+<~}!8D*J2JM-_tpA&Q#zBAjH*t-n>NPq{|q>w2<-B7ej+WSbbQ4PX{NH)*c zKwCZkdka;q8?2j`f+DFEYble;1cgBz`jrcs0=K3b;v`vOz?ac*zR2#{wgrwRg}?k! zk#+I-{h+P0uQ`1QZY5S4)4uN%0B_m>a2pd7#1`lt8;%M_U1XLk0EWBP4kzRCj6ooMcA%=LB7 z5)XHKYil)cB9gy@v|F^!aCs`5j7iNO>V9eUy9YraPed(^4>^&I+l;s@%MKw6&H=M? zU}*eN2-IxWYeSFOkL7n^gxjSxL=hlXmWevJOl`?W2$0iplhrnZv(1Z3KM1Qm?{5@5 z==}ja;FkSgl-3LrZJQXKf!$PBoHr@ABrKEfy8A6Myvb zbzB<8!TCvHfN69&D~1MaI?w!`TLJI1>e*)7o`;nCJ|Dz9Z(5m^4l8 z&fDeBgULhydMj}BA4^0jLdn1`Ny(zP3U(KmcMXp_Voh1-t0rB^gWYIFJOhOKp(I#_ z8~)OgjW^QVVw?F+zILol~wf-z8EB*|d8FXMS zGKbh3Pg`9D?Nqcb(j~(|(&_6qjPMh@sHXwhmXNT>yXC!Jx#%?&GLIttZ>!L-DFqzj zA?=6V!{PKjdnG}uzmVcK>_D!bxpxj`tneCN*|9^4S!*4&y8ul*FG9VNz*DN;fra#g z?d=y)>mARD4Y^(@HeM$L9xFKbv%!_!AjKkgq%-GyHOIorifo4yHDvkN?PSZ3Q|j^6 zZovEjv;C|7v#SZa5KHqpFcNxf;1TY~zYej9fuqN{nO}hi`nJBXiT6hD_vjqpJM;ZA ziOadu=YDPzxLN0%L1v^#x!qxQaj?`fyO*UuvA#ZGZ_;snfLQ=Fp7l%|UL8n(l0pP2 z$Q=!LBtn@!Rn86(7g4@en_5uX@F~YKlS?&W1B3!c$FG^Rn8A3wl6LZc;Lj=}0w) z7Y;54pHFEirkJ6Y{`D(8^>cFw?VnlkrRE;Xy;XvVJgQN!xWzy(50BM}L_k!@S#x&u zw-0Q(rYDkOM4*@EQBWnX*R7X2=!T3a9!;k=knmV~O6LViUY9Y6*C|ZGjX%g0K zq^9-*zcF5|b$Q;#PN1mhzW2&bw|qL!kM0;ubd#MI!y+rjkU@#4eSl_h-jk2YJnrhnSzZYWsWCENKAxatu307FYjA`6-l0gAX2iy<~;(vimy9I)(-t=oX ziUpKHbOYT3R{21fj+zEbUflPcIpI)F|9-=!uft(HIq$0HPZUzDfX~gG8f0xr1+I?< z(%7XhY=3&_eVQ7;ymGjqpqu>1@pU|Qyq0XvOJYta9C`@K^gWB)>a-}S%xT%%%HfXk z(F4>R4s0bJuC<|sy}7gNrJfV(`b{jG4lFDzseUY3e@Sqw!F!NAbHD&<$hjDqEec$d zm9KY1SO5%|m~fPH+pJMm)+8KEUS2jz4^3QqbillP-1_u#reQ0+`yLRgM(QpxOJR)x z+@a}vKtAeynKR61@;()L1gx(SIBf=vTl|*|2I*+SYYaJ$x85mh4fabAHD768ebeHn zwd^BT3_HL!{u+hkLr|^u?=gm#xN_g=6@QlsGJ-0ZP1;J}%174sAnuUKoYwziq}*8Z zRczuQg;=UwJ@=;%JY|1f&!6o^#Pz7|*T^u4pC0^eKXjp7y=>|AygV@Q(+W_1^|LiC z#@1!|Z8bE3{dO!_E5U+)+3dcJex_w1$)s+;h8fV`q77#a)}^uLrMI)--}w;HqU3{n z^FDG=l9bd`kWKIpSQuRM%4|RDB&Ow%jZ$cfw61<**h1?-9Wl6wGGw0l0$%oTbVoZd z+PI-fNfO)d*h(q%I9m$Xu)RRutrGP5EHGTulj6s+iA`Z-$}u!Bke=Q26b3vzJ<3Wx z*`VzUv$LCqB|PDCEgUDuYmz}14@UtNYC&O&`P+F7Orwku?netXVJohCee>K^Zo8!& z4|6SykS!#;$#m6S9Lfo`)N$=VCOvVmU$}55-h-rGa4K^w%~VO|{U z;J!gQ?lVbBrz_XPmU)^SJZiB!R)g2>&Yh@*ADq!rWQj4MDXim~a#ItAWiq1(jv=HIlDML#Qy(Oy@ zo^zOb`AxSoW1E1@{)x4lj1=|^$_mdz;;R-Hy8C?!0(dH5!<4zJ%> zq{%Mr`|7Vcnz2h7UzT2d_j=67AzM~5SNFlQvuSXNX`(C4OV9h3my=_1`N}}C(m0a# zOJ)Gz%=CNq90d@aBve#>bT6>2=I-_<&#!kYs~m59`}VENaQ(Z4#)RVAV#J_>v3d){2-*GpYLXxWR>#SK;|7q>S@c&FqoM=X&Vjj75QUUSX5TKSv+wM28U8-xsEot6{P>uIFcea=qGrm_q5!M^CS}&U=UyY7hEFeD zVbi^GC)`5fjbZ85C836e_P6Bjl*|fU>6%@xO><3O`j0)Yl$&eL@skbiAw_R(;ZK>s zcuu^%74m?j>m9+_Z+Zai{mf%pBB=tu-FJjqa*&P@x`NxP1^q-Da(Fdspc>5)QYlaNb9_kK zxpF|&+r(k75dd13@iShy7VT27^?Fu^kw%ZRK$(KpS9x=q&-%r+f_}X?jf~oh+uZmf zpIAeysPgFjBWQ#|b{Uz3`gt~M?sM9cr&LqQ$Bni6kUiclLtXdxeF*LGqkKPBl$DqibS z3SQfue|Xxu(AT!`B5&L~QD@h^e6;Dq=T&hFs7YzBMKnIE$Co1|m&N)ko+2zD8#@go z#9o3^KG?!VAMH$-`%+JUPLySgb+jDIf1Qv!Ng4hVqfRH&OQ^x*3LkhP4IT1oOkcM1 zf{{3xD`|V@q1|EA6W=l!gj3c9S2$ci3vyF*i$`&QlO`m5=Z;Bi;!=Zz#^8$2 z7Qg@`7Q8|zrQhP~wdWd)mZ4+2|GHwxp8d(f((kFMDF+*TKL;s&;Nd1MJFLQtQuGEA z2IAh<(Q^2y-hK$+qZLv)FXj{F9Cee1uT^;_L>oKU;37^e=rhhp41;i~AO^m>7A8z5| z>r&kPf7M0P$ic;gK{i;&Yw?R5`g5Ng%H1<(#;TeoX$hGarN`RW_~r54U!n-%MNS=1 zvA1H$yk`Ayfz*=B{@S{$9pCq`8~}lH3`V>JP&6&r(~}n7)oaokY>TOOe(W$PgEh~x zL>pL4yRw(nq^R+`I6Du%%Er1}?%Z|)ReTE=-EMw&&1N^R?;w#7!b}RcEtl3 z{^SHeydmulbC|IljEaJ(R%t{(>$aE!ozXO5glufrp1%mHqOms0f#U-AHj$KftDeMb z#s|>nR1z7=zbduIl1&jXv!|z9ZD%qSP}$XOF%vyMXXt$L>DW=UU^SUIaPvbYN1 z+;MZ^bKFV2d2mTC;ZR`zo6Drh+vqBvSAMp870eu__nk_rL0A_aX58Q}Jw0YCAFw_5 zNnReb&<%OranrJQ!Q`6eA)BrOG=jnmA0g?@tC>B8J-tZ9*w^S{9VImqd8-BeBw`n% z?Gg@SrW-#r)i7FVb81}s=C)yF=Po$7ce)2_vvl@!p1&AvzSUFZ*oO6q1PPjW$QP&a zu>Y14Jx&p#5k*B$b#FTB$`!+ds~JkQ)SPp(?hr+jxS%jUjS`!s^NMg z=A;a6lXKb!48;YQ35UE|(v?gSOV&)P-?@~)I8Qh+JHHL2c#X9YutAG~0YZ`I*Zk&$ ztF-2dKp2(^nT%luq-T4~^%v`NC89p*NiEJ^KXIOA%c}0N(tb0do+%+&9<*3;7TqWyF0v28as(D%1QBrZe;_5U4_2=)gr~{Num5WE3k6A>?ZP*Z^e-0ZxJ)As5HLBxCEr9)4 zUJ{-`HpPY9k7bqhrEl*TaQSDw`1bT_;c5YJd>sGbWY5f+6%XQ~?jiySOH%7%mQSp| z^2dlKW0Hq-tzIKNbnUvOZ5oTh_0*tw$f0x=OJc0!2O9$@X~;y-c5oAZ=5!6TD(8{3 zZ1-zy2D3*=v%Q+f?a`7(8WHO(TFS`Q|3Mo?5 zF(TL}cU5Vq^V{#=-~_Q4>!b5*;i7eYw~E$jlPqiGdar_a-OTq7Ct#udFEA)w-cJ zU6?n9eQNqTETxEhy@uBe9d1D6B0}7}Moqkwlngdx12@Jx=er_t>1k=w-=Vai^hz7_ zTVyd?h1)>pC_(@ys-p#RNL;_ZzuKg!tnH+rcJN**cJR981Ugo;Ckih2WNceDN$DML zj_*~3n|C&`4Yh*no-UJ@;M|1`VN)Kw3L7d@)Nhh4X3Ait=A2XMIJqRh8HT~sozj@B zQfyl4Ck@t1%FWjCjZ7s&TBq4Tq9r4Y$-9gJNQ^0drA|*q)>^S=YZqyD>T&%6VZQBb z@0YYbqYt}{L8Gzm@;|e5DH+eg7M~4^Q)#z|BF{cvQToKY9J{r8OR$y&yN!{0M1xbN;eJ5f;kB7i}vf%IF_of9EgiGM_EBXV{Oj7l-ki%Q5Rdsho zhfdBUTZcdeeE#X4b>}m8ZiM|^;8~1F^q)I4c>P~F9PiW(C7BJucx3B5RSXr!s3z>6 zeUz6fsL5W=q{!U6B_~VKoJGB!3TJ1By*~PLHWNUh1r~A{MO7Ok>j$(Ed(K4W5OZd< zi3eJ!YrGX+=9Cr9X1tOqj*+%3Db9o^!_f<5a6154 zU48T-3@FASJVyIaBa|V95NWRM3;#G#axR`w{ht{Y-FjWJLG?22(5`TL5X=H4fn&5k zlW+-}*C=17+f}F=U3L5_Tr-NvUiY|QXwo%9@o9G&rKN@COxzcFTV3A4m(t?{j6aLR^KypR1|f zlsf$rL~z-NG24}VY~zP}%ZxrYl?GgQS0O~_UH;|AIX-KJ4Lq?n;MGg9HUIK!Z`w5R zXdLQ^+7D!sSkXx6kJVMiV3N_Gp1m;lm-a>7Z^k}kWT{7iU0!K%kzjOHk(vX-3L%P2 zDgZFoY^*x+c`4&vpwP(27N#VL*-9AMO1Pv7g#O=ny1I;Fa=O%Z?t&OWv#tl{(tAVC zQ9P2Hp5)HnPEs!$2JFq)*-kp*d5VxxTM2H6xbPX*;9k_b!ot@0mzFQxtMnO^vXOSi zfM0KCGQnj7VD`|(%+r2qFA7TjdIm)hmqI*?Pc8soSr;F5o^PJ$xP8s%q$CeVRH%)$ zjmyX$Q|Y^R6?aA5It^JabA@UaRFCd8$1y2gJb4k_Ya|+ON5N&9ly0_IqiiMGY_Ki05jq>%QCyce)`9Z0n^~Ay9zeOEI!#z zubWylfwfp8G2gOOQ}$*opVolbCzuGAtX60kkxT_x(`e5@p^KqZqGt&@?j{DNjLW5V zW%oYs!h&?`>d;`Mm&;d-Mxm+Cs>2`K_F1poug3S>ml^io zfPl*~7*38N1xv3Q#tlX#Oc}lb)7YE96XJ5`>oAwSNOrm?NWuw`qO zb`J+!fm1+|bVgwTo#|tz45-D=yuKEk1BBsxvf$|E829i*?_~(;vyDwX z)=!Q96KqyrQNXSE}j&ulRcQ$ZZ2!ST_ZX6p1+yL z8Rwt-6^n{J(w~~&weJD5QhT_ou@3^?h`CkA#D5bH)AGqKNJ^b1O^tuwcY2SCii)t(vy8zt6&y;O*K_(tFck6B2wuL0Do-`sXp_ zxajPeth{;94sW1D8F&YN-SP=2H^O0LKoog5H117&H*%Mjsa1adxV2d6N|Fb0Yq=ED z*QVGh#*&(+I#nW3uXL9#f<@&A#YS)kkAg%#4tA)6GQ!AR9%J}o9VoMIg`fQ%9)z*6 zNmT@iQHJT|jTc!^U?2VWlq>e6xIWNL2HJbYsq|M&wP~;ntTgal{gP0}U`FM&8GK5| z9W^zdXxs&Qb<%XN*{w%;PqpVvx(lbGc>v0;{Wpe?|Yi*-AKc5s;h;>1?R8eiw!s)>i zFBAmz0@%t1g-wn8z3qM7%XMbnaZ(r5ErtBMHwFMTwr@}p%Z=mgt-7c=;wiV^_SA|! zRg;@pM$PUA9pL<+Z}Z2UDm>WRnq(pQ=s(z(KCr@rJ#zw-Cddc))(uFb%>BkYRhA&5 ziLF;GQIXO>_a+4=^Wv^=nt_@#ZygzWK2u3MNhv*lvwqe{D5}|^X3M|&eEf_ZkNXS{}M4fM>vASMKs8Tw6BtRmm1b2+2pt zPu%}M2`?I2hhWqKH6M{1P;j zOL|VVpNAP8o@wEJ>k<($^%%MESk)baU2X@5Lj0EDY>{u>Y+&8-VyS(N<9G^E&*|JB z&9CdFTX=FYgRh(N%Q=PVt0*M3H^qv6c0kyjuLA&4j85;xGzY;h5amJ|rkQh6sh}QC+0T8z~p`ZL zV>72L7}WASc(qqQc^1G0oxErxw0~a}m}B;=rE`+|of#sI0cig?H4{ul< z5=w9Xxa!0B)>0YaWUE=_zG2U?8-~u{l+eXWnmrdW3 z$M&boeFnH7vsIO~dK$N`(aa4)?m;#hcz$PHs;98vRM}sUlDjW1KS3xV&h0+vNW17cuv<(2vy8aIgKCEjJ8( zhbLz(%Zg)?my@GCbaS@)`}S_drDb;_umI0C4LiO3 z-&2Dy0n1^oe2}vH)B>u;MYoxU$7ndM8vkpX#-3_wpKKC#&PwrUvA2|} z>17A{`h~^2KQ$T5(F~fJ?reUOlObaqH_TBGhz=RUW4GeTO?Ckro46~k^<}-$GYtS{yVB-# z5y^2PW2|=}Fk?2E+SRa%OVr_twfs792h1wRBs>Dj1dHVxU$4I0U0RHzkeu@F%F5b$ z;;%t)`}c5-#a?-opY+@U`o@j*Hur=i5nhCv3;(^c!a)g`z-}g8_WVrrC|-vnBwAIX$SdL z*?XRiZf0>#boGQ8!Z`<@YJwDE(Ybg!+o5I>uATW>mpZvK&dHVQ6ac#=e~E4{arVzqFa7mLWdl9a%7Qe51Ie-{^IJaejn zzlbXjIG1eJg?F?X~w%^oKsR~ z-;)CaMJ}HxYfMFR{aaYy$E5pB_4P+hbb$-kK8dcJ;+jvln(lQ^Z=5hfo~jkzS4{|0 zUa$M@VUkEs7CcA(}v~S^wVIj%QQA;m`LsZYw}z6LfvL*DWF2^JC3Ru`~lyW7x--)*FMoH3^-ME$C0u(n#WURIar9kRTcG*T%Ay zA2Fz030I)+)=r{)u=(Dtt2TPkA>$Q$1lLYTs zaEE7UO4c77PMX0rSla))?0p_(MEl_{_K9)R=+>*;p*7?hc?#gfIrjYyi+rp*3S1fw zbyGlgo8W?!@~{LnPPr%QYzkNoaO(VFo=v6BjmIl8rpJ1fvcV8iZC0-q{BP(UYR9%& z?mBHv^dGH!n>*{QWF3G>n@ z^)MN&ab9ceLFF9;5;~Wum|E+<)*q4O9X!+NrJ6Yvy=3u*vwJxZYB`#hbGpNE1Ia+k z3bPHTf5?4Z5=Cl|GVlbo*esxql|^{erf11}b34`9n_B`M(WauCnV>Q0q zahhBy+wRvM_BK302cCpyKSjn)9tEdmYV(dW|U@>*z#?be9Xf|MBDW>kTYUgC5=p~3- z!dKsRHmmG)!3>bR`^_)t@=U7CRBO52B+1sJ&`^=*YEdGT&-0TmU!tE;kis^cT$;QF zCO;k`9&d^SO6>N>{3M;%tY4%oqr9b{B?tPaK$(I)x!qT=D<}^nb=+5IIJ~i5<5|w~ zmWa*#oYN7rCf`Ti$o?}x*1$RSR_%M3oPHkasuC3DfQj9g25s7VQN)0J`poVaD~npQY=IL-gwisQ(aY5tr?*^?Dcb{J0f%3YzW+Z5|l%K^;7)zcD-1) zGAWXQGW^1jFm)piw%de}W+5FiYXN7`G$4kh^WU=wqOG}`@!K;uG@gBVU;$TD3S z&Z#i!fy8tbz_Q>*_F9FI;q=7n>gt2Av$V*I3=a&M#dbhBID(UAI}w#F+?07L0QNTb zxv^{}K3fB@naDBY>L1WtIKxSHSEiTMrqS`lJfv4t=~aWz_ANPnyIY*Tr!dc|UP8P_ zN&ivK6Qa^z8ULBSQdRA#DtVwN_k$6*ionCuTrq~jGezaTc&|vE$0tBIp(9XIOoI3A z?W6gi{lr6A`SWWm9wzHAJv@A1%sJ?)jd1ZpWuhs1m#>O171id zbrOYnczpP3l**P?g~_}8V0y)?msAziuEq|II@R9oc<>S1vKvY{Lt?mY?_;%GIq1Iv zFsOH`9ACOLogc~=ZQd*2viSGhf!dG{2>=kv%$e}vs@=(@-uhE@;xir1+t1fN^8;70 zyu-l57z|Am?6lR$xn*-jO0`zj`iCc*j$%*R%!Y;KMhiH~c2)KD5(XygaeYOs!2HbT zVMX-AxoE$Vgn282DV@UNcJG$#ki=Q*^nk^Nk{dc<#8ARx+ICt3t#Hr7s;Fx0OYd3k z&VtxD|T?e@&jC-h}P7K~$Qo*<5@t|C4jtP3Zer zSfs71e_MfG2r!9Fw>)Je?>od^8PX6#pfuIbT?O{WsWT zY4gES)(tv&jj~(wUL$|z?$;g&J<_J;KKlOs4KF1pGD$t*=+wDk^KeuE>D~T+C(CgZ zC|oA&E^@|hB9SdQDXDRZq%(egtGh^Hi0LB>o&~AnnZ$D65jNPCb;j?r5R%7#Kk8G= zDCQJc>7$iQVS>o*M}t{|liD@&-zN@(PciX# zi8YnA?&w&JJbg%=HNrr=$l$dyhr`<1Tb+)Qq#|VJM^FK|LH)kjH4aC1jOi-|R-gKT zUSgB|(Xc3}wPu=ZN-GJ=JKZ^70QUW2Ex_e?MRNNdkahiAXMme}&a+@RBc008C zb|{Xt-G|PBt+{(R218h-$|3kSR5hQSO?XMETO z$of;zf9om13w;BuevoUK|pooWN;C@BMc5+`sxa%u8~t zOo8<3qgV4pw9Pny8Tq<8P}X@sBeco|%b%Z*=yLED%J~fcXrkqi{zc3w60qkv_y@op z|Gjp);6KVs^)7QO>gu}AC~Smsm2|(JDouKn`34H){_}RCeNm};% zQ=PAc;<~3tE2UIBjhve{Q~v(QDi4@m7nVQTi8}?irk+Qs!|a2?>1WHYZ4MuPv}-nb zBJUSmz&yTXQCg|=epH!d6V_afVpO^(bZaqC?gu*Kv-F*CDXs9nnd6%_`w=9Uak{h$ z2Szi;Sr>O?0_YKk~n5kQ*j`?j-;)pgq9o!_YpKpcb9C?r9$}f^#g0M1e zqL;fEg30N_C2iyw$7N?M1S9Tbv7$^@;;8i3oH`wt&1kO6LJXA zXI+tNuG|9$y(C|VSbJ|Jo~{?A+d8P@&a3b1lhZO+ZNMg-L|rIGKYR8^Xgn znCH87Lvd-N*0+Z!Sx(AOl!2G8mDMuduew^vB&AR1t&4~uM_l5!5R$F`{ni@}-1JvS zH_yxR!kQZG@8~C4Ix@jA3Tp54nrO6>L{P^3l5H8J3Qz4yb6#xXqX81u%0stQ4QXl_ zBhCK3lBE5e#HcXcoGX;nMKj@5em=~l#6VJcw2433>Xc+__^Hg5dp6gPE&4rEBvFuH zJjQ#onZ?=Bu|!ZP`%d3kn$%@sUe!kOt0bi!)+Hu;GcNSDoZ%lJU(Db5^?5Zr;EhMX z86Zg0>vDdY&m#I%JELXZualQyqiZs#XC;~w(_M|4Sj;jFWD2MD75k%#tX0!~uXA}W zkaE(1C!f<{TC*-JfCeoc&&i|e&L5jA|I@IX(I-3ZabDdZdSKw|#3o}fy}#DKZx!KS zl?VLq9`N^=Jij63Fll06tQed{@d5}A6j#Tx7$ihB!h(30xFVUJkm_c z^SDuu7VGE*;eUKCYL7`M3_%qm%H~zQPGw;@582ej_Dr3f6*p#W(S%&qWN}&>IG#4K zm^9*kLki*MCJJqrV0qZ6mmA2-IdNdP8FC}MxMoxBe z-6TozFifOBvj*u^#`AGMJpFAy3;U5Cp%A=;<${85=w1dCD>$VDbf?2TSTjQi#LJCsgU!j0+d{V{tJ%=$v=E|r~gD$I?WS3 zpj6ON-My|zIf$KQSL8W?$ko(h${Cp$C8Kid383w26V<#L$ie(~MleQ|pu_p@8nC(Y zX?iwF3uk!6mcSLj0tQO{=|jrSOT?zmFvHlYm3`@V=UGOR_!s2cI~QyAU=&KBtJ|`A z^zK@DTw+TQ;g#_86Cmo@S^6c4Lygh;EE=^9kbIFpi)YuJNcT##}`#$aNspM(TpsyHaP46mvhZQ zV31uvK#P>mutpu;x8;U5EACu}YvX(URX-M*$Psgq7cbWFgSS-08V^#8k}H+BJ|CD) z$}#igGeA^SF7by$oB~}x%S@7^yD}ODs&{My#I6gKmzUl-)YoSMqFW3_SjXBcm_bSJ z%Mg`)EEY>K@dp997I9^(6+6KC;(sO0=InV3Z7_*BJE5PKCD`5Rj#c6hZwdC&^0GrF z!@j<58(;Crl@&Tx+1G!5&L1BicWJJ75pStDSbJ(JT}nm1oK%854Svc)ddbwIk@u$R zLgwAUY`LJo&Hl9ER2MKjXlh$+J#F2KU~$QuU9J7M;ed}prcU*ka&OYO_&)V5BT)kj0v!S`Z;z-t|mC%X< z#tU1Qf=LvJ)q71lkP~<~UJd+-Jvm_F4Diumym743Vwbx_Bn@$|S<1&i*`p^Lz;*Kh zamHj5{hZx>tyVw18x<`-d>}KO2J5Am+A;^=ezeuih7yt$2zHUJA${?2s?u;u%K)x9~@g7#E*WyzAoxQIzNV zxU(VLv-Hm@Mt7PIGq&&$K}a*+W>&VOxY72jsc_#yg7ezL&_A}UZyx7=ykRIQc~9f6 z%I=vhYr&ov6;w`uiJGcqF0<1 zeH7e|_&p^Z}lcq62c z63hD57Ooy^`yqdof<0h=2$)h=4}5|CWOJH?v-9=TzWcA3%iDl1{}qLm)i=uemSrhq8U!A5w@iL=iDWmXwsTuh~Y{ z5wa(t$sR(oHnNUgVr*Hn3|YoL)=<=VG>k1{i%FKTglu`Qp6B^~-tX`I3x1dnA9K&R z-S>5!*LfZ1aUO?I0h_udcMG&5ar$yt;1ynoEDHk_B00&z0RigzW)9#wlZLh$#QHsz zcz1f|*01$%!m}xdrR8U12h&gqOm=Tg897;vgy8oCs@t}Mf772X2g$wC&(^7fD=fLY z6y@Fc6R-@w`{vGB?EX(}xC7!Mv_Q(>&5cH`wS=(3A(rL!f6;oWS9VPgXY|MkvpreG;vw9;$JZnsR_X#i2*o}2mW zg3>dWefs`?)4uJK8yI<&T6tFnexOYsD>VmIxV5vy-LP>G5YlHf-z%W@kXsb2B= zgG)ixa)(!c5p>UmA{dT^FOpVc1N90pJ(l+6HRFCRD}mnzhj11B55A^oOmX51aOQ9O zW}ldUa~|`{oHuVZGM$gEdMb3X>y)TP_s-GuRGoaF3OMt+0cGHovGIEKD4&M?XmJW3 zoRT)*E>~ZQYH-0R2}UiXCfz_7#)FvFzwz?=KzxbF>Pydbbhz1Oi5$@H=nG@A%m*dW$?1DUfe75qSvk!<;0O%jS ztrhq6B-N<^f&W~NskGfvW! zyQ}Kyzu0f9m(X-}9V}ekdc=dUk{GgIyMj#0tyuE96B9%6&X>!J#Ul90)Zx^@5L$W?)l{JpkSo|# zXCRmvv~7N_w@Mzg*nN2lMl19sD6&GQzdhJCk)fZw+xlTsM_RAKCs~&A3Fvz2nWSGI z(A3L6cYKCRKyE%$*+BgmzxHiI8ra4Av!Q$Y!E5fDjJ*JWYi!%@QhpG$IdU|t0^wkk z6j1Glu*sY=w|4|#qRRpU7tMf0Qh+sBr{HN+0v&aFCSOE<+=vrrOig9T#~UTbtT0e6 zMAFU5gjLX<=R~I#YGld=o`v}M_deyIsD{pfkN%I@)P@P z1aqoFru2DJ=~l6r(odV{>JMf(H_}WXe?culuC(vVS^vbFJ>qma3alD~#xM(ZHB*Eb zLPw5^PE#8hv_?G|B|nS4*25W~aX{Li(h@WLmQ{{Qu_(PSUcinJ3weuOlB@h-Ax|lT ziBr&nc0)ta4BxVZlB!*Q?7f30brBlfQbrBmLJ)8^%S7MR>34c+Vhn5{zIn_~kQth8 z%qM1N3u9_~d+L{+M|lp+$jx`c-WMwLpCx3=dNqF7+yss7c+l{f?91CW^YYlV?v87s z)7ZDg;%o~Zv}R7K+Vi4Gr1HI2!xz<(VmhG~(r^1tnwZ=Haa0(z4F8?VZA&;6o39`< z!Xocu!*_xV9lsVyVKFC6o$Y<_MycKNU{B78Jx6Dk8)o=IrK!Z)I<@dt zk%8SWm)x+Joz|6!m@K8U;N+V}ruGu~CdUWPVRA57s^Z={OB#ujcsJFPfNt@fR1wu! z>kH7baE9j|)3cgP`Ekj;bkC6U+=VwONr)0afMd?Trq6~Ok&9gB5Trw;&y?hP|&h$Ez6`f%PxR4C*z z(sMnA@1UJt=~DQwuKJd(P>H&6SEAIo!DVK)NIDdI0)n*NzFSojoIxJs#!jPuD zbH1O#8~82JfRX>ViuO7jVp1<}Pg|HeEbN1xYPr{ncbLB)$=`ziw8a-p>IV_N~u;4%-`2|B!!UDI|Wg|&4qagKI zo^POp)=wA&evgk(_kIU&zBYCX=RDu=3j1EuHM5o&)E4aM=C;ZX z$-fJ6zM`4WU#)O#dWPm6WqOj#J@oIe9vz8^{3D=AOBnkc-WzbkR2a3U>1>=@_%UYo zqu@aQrqh7pvA>+71%eOX+>Rh0pm$o%9($1`1Wx4YfZXH4pDS2*w_%XP-OQ zWvD2M;t8PeZ+{PqzcO*&<0#zss3CSv@NpqlDtb=+gqC1v z>$r$fs7~MYRg{A)-?{k?K{zOg(a{O>3zp+B!+|PKyga%p_|&xdLG{osr3apJ37#bP z3yLXwKK6Syi=Gwe&L;_KmQA)QoJU^`Ua#s^k~@!Hm4Ei_!^XkEfwSBS=?bK2Mc-FR zKZ%a`(|LO~eb7UuWa*inP9v~5C>aP`coU&?DRu9Lzz-&Y+6h-k2s@qAsY}VAlzb7+ z=118XB76KNX?fyDwOgtEZV#n<*As+3vfp{)W+9-=pjLp422Ckgcb81e!?9k?{J}$@ z%WzK?pqgb}A_}6YOrU#PW5lzWw`2CIvah=D(%hR(P94#-?4Z4&8W4E)YsSXN5#i7! zPj-Q5dl`yK*z_kdZ?d~{yCQRE$avnwW1j`0sgqLd?5n$>UkSI~WzCg`ZlQ`Q(8$O6 zm_A@I3st+rUw*R=?8`eIy{mfVu$zJW!9nxW1lFrwy-wz$ejVkkd5D%34!?KYux(q< zeceEL@2|~Ef`7K>p1D~7Rp{Ra)Q943FCohMXtA;?WbM=repva}8|AZv0DDYNKs-Xu zH(k3ROr(5CZ19EZgnveS(l@`#5&5rKSy={OOfd{^ZtBz6h=`g%g~i~;9CV=}n<23K z@s-~n+P;9Y)2W^>UeqlcPQNpeWsY4Uv>ogQJI=}6I@&a7!R$-!XToSi3-yw|Rpp7N zDer%{m{l!4B@+INwBNdmXK z$?PFL<1|DxaBl2N<~%J;lBg8FYW0U=( zGB+}0@1=HE->nuDh$uVj|L!n~4q%cZ(LEMR>tDVIXy&h*QxDaA9T%zwJ^ajU*drDI zfwy_R$n1iFB@%_~X{L8-Jw_bqkhpTST*Aht;ZeCFU+?;uak0K)!0wkqddfnt0UHCz z$L~Vg8ZDbs*mOk2#l@$;j@3N+ab9QLw^?I(rfFk}9YEA5x5VCPT>9ta}yIjCExAk9Od=* zXS~3^sIqatqPcZ5V1dG?ZMjGTk%Tb9j)Og1zb}g3koM8F$)Ju*MX&8D<-@<|l@TLb zT5-IJ+b%?@x)BWWORa{5^OV%*&7clbk3*pO(gC!5kE^0!4ZOC%(E4uz6XpqEKKm95 zj0Vjedb6sszl0p*R{UVemh<`11*)+hI)d7cfUeXkjw<)$+xKHe>{}4^*FAb?ta9d7 zD@RB&lQf*nq>*#VYoRO$i$nwE!;ZG!BS+(lBlzE2bEahu_#HhqVGq*k#3u7-Pe?#B z(TFhqw0TnLua&LSLfCB=PSl%ey*oRC6!DCvmtF(bJY@5T#g;caV1rGP(lbx%ep}Ip zyWUT#R_gX-Bh7P4H}TZT##1*|JL%-+LftY z#evI;!KpuTj@~Pa_f>zwk#0MGrm@$ptXR@FVu!z?z?IUyznD7LO(F-1vD?ox>Q48- zpTJ_1Uom%SpX9H5?9V7b6M}kenv(`*>zu2i=~Gv2ev!yLLBJaTo@J-m4q9$KJDxkJ zUyoj47DXMuA5;DQk<6zPFVL#5=9hY28`v~?ys2+#d0t&w+6=HkTi^XGUtZ%8^T*p8 zU%vd>=)ObYo_rqUShW9ZeNOn2=F*+6jF zhdDsi>>Bf%l=n)!fHVI0%^NktaX?(_Eg-BvO2Z^i>`QtJhri=(6_2LPpYgcP>Egn! z(Ks%(cZM>MwE`eZ_lnZJRZyI0T_7}5m0o^+e}4P9g|wp-PaF^#i85wNyBg@}=;%1} zD{AfzJn3|exIC`4>bJM~D~po*wk`&14_qe%KOY=q4x#@c%MB}WY8Y9mp&iWKmj~>fK-J@_7YnT}s%fZ|_o;LXK4f4q z;qaH?LL&;*D~BInc;xFCCxm=vpHv{+DX0Y1Fp^-%H!M;4OKSA0iXo!UP@4m#s?y1I za`x_QIK7&!#R+hobw&&-ebYR73ksNtQdvvh@)7XAG6(f$i@826%hhuHJoN$sPlD-v zfsgC(v8l6M!In=0(U%5)Dc-jE?Fo0w)mZw=()~Z$Y%Cfk9C{8 zwIZ#Y>tnyvBd< z*)%-G*ALdWZMc2g?(v5B68tBn>X46m!^la;dXwpFn7{(S|^O_r-~y=2eFb4p)h=?fcw&r^UcO zD-yRbKDo-ufufHc6b1ZX8wS?M?@6#d!=!?oV+p_OK|7-pU+}^D1o>x?H2yc)9b7gb z@Sf%3+ay{sPJR&24>=KH-r&8v5zcfjdv{bzdGCXt)U(;j!*-VP$>*D&?fJi<=&)>W zf<(){DMAFQf{WF`L|=guuQ&<Ehf)N4FF13G?e%X{9gQe%wC( zRo?Y@t_EUjRwO$Wfm2aS8Xcf~Tcs#Wm!Bn{zvp@%J7%SI2g1len~5XKE%{iRSS%$X zf4(Gr)-)dBZYt?DF)^{g^jMT(Z|a#y*NLCBdP|+(3WLc!U7PN>jkj?x8eRm%Zfxo=`FWk=SL|c^Ysy7p1Z*uW|14jJ zBGG%mz@Tfav9YP56qpmn6!QiwR}Hu`pP;nPU7)rrx<9{|l4OWb)!Fq)D@;~Xfy-t| z?fv-p0);o{4_RSWvfWO@Z`iDc-wIOP?p$xlqr60%bTFSj2xo2aX?S&pM37|=KpCNI zDz(&>qlD@M-k_Ivw>uBLBx(}_8}Vz|D;TeSS$YArOu;o?vu&R?8=bIZXo3z&=VQ1G z9CWYv%|;1(`~c{r?DKDHW$tZraRc1;`V|%Bf@PO4FZwBDqw~IxzUhi!0R<1h6xB~f z&^8}EUxR2b^|1TfaQG)u{IkIgc5^9@zm)v3=Zf^y_13L8`Ad+}K@absnT%#EFCaWkx*fxzA!>f z5W)uOxFy|8cWvyz>z>{yv0Q4w1QT^w*)2NMnw>6GdZ7?ImgRVgtpL%0&|K;k`n3}7>?u*ZK0nITTkn499+$oC@a1P&5q6Qo zsT`R~0VjY-k>SXyBpydkEwkAYYg(zBP}%oTwyASo-lojBx${lzZy(6kr4B1iEUCi7 z*ZrOgF$Ck+E$3FHG@6HbfeW+;k5&#nY#>YaqVn$ai%losP%kMjzn=j}wba!K_qIc~ zk|DHbhK=GX*)`N4X0f5=1gyX1!`|hxJ4^uUmdI}Nc;fz|=>A4utN|C@$ z?fx*6#y;)6T&T<5T{Qd{NmU3pdN1VF8n(jRzyzs+R)c9TAKfX!%uYu?Vf*TG04#y7 z1&`o;ymZOW2Yb)`R3`oO$6G!nn5L^f)*PnNskpNQS$7~TMS8{pETRQbmCm5NW8;*( zu4$ffE!5oh*UHLEXrif{W6&LGU)B%3?oUf%3^jK$H{;s^`^$wi`R(M|w+Xbt1r zEy>wxI}ARcj(4zRc{NIEKBI&+l{#>l3T$Kpnj+x@okUiR*gHqUJzry@)GJo=u?(oZWW#P4@uH0~s`fxJuB&4*ov!|!WqHRjqEN!^a<+^`E$`**o+=oonCu(8u}n-oxvmRVUyHR)Mi2-?oy%)^0xKPkDV+-4LR-jApF48gi>H zn5O%(9?c`ypylHc4dz9&^$x?KGw1#~Nq@K#(}_s4(V3h|DZ*myvP z;Tv3_IPb+KAk?@)J4E6#0>Wxb&Gsk3e%=bq!fV81-jHX%h&ge}+k^3SCbH$>)8G zu`+R%M(o{iwqiT>UL$tbl~YG1vd)IDO!6^B6-!NZBnx|8qLkjGl%BPTNeQl^tW@mJ z6QKLPTCB9R!qoH?KqcaN{gy0+-2*2k&O}rKibQEwSVFbHd*OgPu0( zGuDDJjDZkPj2qNkDk@pZ`%r_vKCo|Mf@OPtRx8m=b^17?J@zTd0?G>TL1)*Ej}6(e znlGxw(^68-4Z2xJCO_0D&HdT>lei&p8qzVR^Cfa(Z*J;Wz)^@9{!e(d?P58Y48Bh@ z8ob$0l?00vKeU&XQMCXAm^JNX5VHIRfeDKlZW_!NkkBNIo7n#Z)L8M3Zo$Gek{pW~ zRD?|(VR`vF)-IM2_Ffk%L=P&r_s1Xabc*QaU1M(1QkiYMT1!8jMb8*!_9dA)_pS<$ zU+`{0G*s9Ey8HB^Iyae$iQ=ofL0gz0$Y_DQQ;dAZAKS@?3rwBJNs=p ze!m*c0Eum8jJ*7{1K5!MbPNFIgkJPbH}GTn#frqG&ji5s!_fH%z?w>V@bnO8wCj(i zs~dT5`>NlTmV&Pg-Rh5^AoauJ-Qb@^|2*@F7XUFlUGB5wOZM!&1}6@prL%^Ncy8;2 z!kFvFV}P?xIB4BBtNvA4c&^G7+wR>Te+qI=@u91 zy+0dFX@JAKT?V=e)04tWguS8vtG71meDji(odhq<2O4pj2FNrlguiG9HMx=PmUR?y z?X%7}dZc@#AHsS6*}y4D{M2gE+`69|&0kRB=EbQ4@=ZmF7O#Y`q8LdZfDJtLyu<%@ z5n+Khh>1mlj=qgSyM<8X^>4way?utKVPzBiRdD-2W%NL*?{dYhYQ z*sz;tI{+>e?}EQly6&ZXh5k$Cui~}l2Coflu8(<9PWUG}t(Z1HTbdv*gdmp<#lm6C z(B5^D0IEGts?bV?P7+b*CXPPPgbgiyUo3rqXE7WOu2>{mA-Bwx;Rc4OPTh`Ug_jg^f z0-ZYPD_dVoo6qQoqP$3n36Y%%1&F)~F%SV*$#-W|Sz2t5WVq4lGv2*Mb@&4h2NBXp7wY>aHs z&a%KJtEI<1uaQN+q_CeY?X$cHXIki|u{d&o0q>dzfon3Qsp5K>&kFt=Oe7&eT~G=% z7qWhkbuJShh?raV@R8xX>Qe5W$$g662`hOH@J+A5+2n8BI3`*+V$mgQ5ONG~oj`N0 zOc^fJ>lDLH)|-TYqmRmm_Dx3M1bj4DN_IRW))&Jq7gb) zhvggy3rPA_>o&pF&soh+7+>=xN!b00V9{lAYSP;ltwc&K$u_3HS|&m8;{%gdOGQYM zuKU8<74HBgcoU-UgTDbGfL29n<>e!4%UJ{ihi1uLRW>>xyd=a(!%xS`80NdCmc%C5 zLSK-=hG2U)w*HkeDND($Z}KF_`X%g;<^Af1PRaIiM6 zzOk2o#{6$7Mj`qlmcFgHFv z9JFW#kV0c)_hp*en^D0&yEMVWBbB-vQ#-EIpE)p%Z%sxosvlb9iWN|H6r57e8J(w7$!5J@dH zt>R*q3+aSStGhl~GL+`)4C9F7Mx5PZarPx)NCSOsj&M~@Mt%W~6G%=?PtKQO(fKMm zg{bkBiT%LCSRCmVNb>xx*)jPAh%WFVazVq9XzS5G?ehW-5 zo!ywfEnnLfAxnwppE3Ur+7?smDl|W}b4NJ`v=UvkW1obDzdncXxeEms`UA{RN0bBQ z$)jP!qh7T4c7!U+rBY6QNG;-GSBid;IUpU z-qVDPt}gF!Fn41gduaG-_$^7##>~ek)j^i`)Y3;m=ggZL>@UrWC$0c(f0wu^k4`?N zXLmvAYbHx8pSu!w0^(kKYi_*(nA%aextEgBXjLUH^b^YS!{nm_#mv+{eazNQLAy>< zSHe_;yf*3OfVtBO=s>L{W`SaYJTq+}BmqG)E6DF8b?eqGt6=|+SFegkZ*6Uf^luDt zChHW=>KAhZ{-j9soJ?#OP^)swEVyCB{<+oyyIYV-ptDN>CT{wcEBYw~Rfy1WX=f3v zTTfR945Rzf!Cb#uoZD1G@^OY-WuIIn=JC*w&)|?ANOrI|w_1{^G>+ILn&oqwa>&+V zDZu8eyxxW{9$UQqZxiX?kq0j`@oJ_OsHd6u;9x3&ER~tK(3I=UVfQmgymWR+f^eQ* zWKt3KX|p2H4Huwi{kaUbtl#t4v4Qn-H}c4^Y*LY@aIySkCnvd!%O1aD!_Zl)F3idb zQJ(Z-S0_q9LyNde2%GsP)$SK=d7*zYf?7d*Uc zq(?wAh48x50^?74;`H-vNm=5pOP8Y`*ed`ASiX^Re>J+PLRiD*q4_J0{F!%|x;+-q z;T3%?%Ow!5JuRGBps1A2X>&b7leP4r_S1OmI~^1%7EIw9?{LWXc)6t2bMVJ za=rdimtm91E%E?k;X>E7A0;sD0$4(Xkf?&I9yA%op!&c9W~~BcWWyNwLIzk~9t(rr zYWvo9(2OBg{%)iO?>aAhT_9&drn4}=KP@ObDJpaXY>;0tkmPJfQipveLku;Iti0t{ z1mg0o7-Z{6rh3Nlo8o|o&m57z?tw`2F=zLeOxG>7eLl7S`KJHO-{kHJpbyy51_xeo zs^dEOGVm|@#l+Rx3BcN$0COHM18;)qER`ZTGzLYZ^UBb0REjDmXgEB9U{DP@|LerH zQ=w-fwV^ab*X3e-^JRz4Vw#<@vuapcK>iQfB~?Zb6Z> z?r6j%40g#GkSu0soMOTDm8EIlO-L=gT2@U$ zlcykN>{z{dKNftG1sj4|>{sAsM!N!pen(>^Nwiq0VVwt)bS(KqwLKANtX! zBg2a}w)eiHovzJ)yO903jx7Is#|O>l)CIMH2RjM|jHp!Aw5?LBwp!lGu|CQup=%N| zR60D{vAg*7^0h4Y!=yuFMF@R@FZmcjj+(h?X7Hm^o+63vl&8i@iY)a3v|Q(7leByp zAQf8yVXB73r_DDR?X(%Lpj=Xta7m@NzHo}74!d{oN0$lEzsnyhs2$)6Jb3I;(0tBe z>??$+TBNQBjvvJk4&_f|z)C*8&ZTuH=FWOw-;?Vfs}oefLJ^&RPX}ji8+3!9kGUC* zg3&VmbVir|}@jQSd$le<$pw z8z2G0{A5_{V@E8KeF*YYF=uNoITR;xE7ZrIj)= zH4yqQtMBi1WINHC)njU7)%KSIi^@^6?Y_xv;#=7$q|F)D$kOV(E%a9I)v^$};|S1| z3Ri`y=u&Ktvlh|pAakwt?NrF=Q{3u7$n1MKns1y zqsiXGDk|FT$f65P{Ho(zj1;_Jd09j{hLgrjj9byHFfx0o%k}AgU69MBa9thuhUNTR z<*k*qM&$Fr + + + https://zenime.site/ + 2024-11-08T15:50:46+00:00 + 1.00 + + + https://zenime.site/top-upcoming + 2024-11-08T15:50:46+00:00 + 0.80 + + + https://zenime.site/movie + 2024-11-08T15:50:46+00:00 + 0.80 + + + https://zenime.site/tv + 2024-11-08T15:50:46+00:00 + 0.80 + + + https://zenime.site/most-popular + 2024-11-08T15:50:46+00:00 + 0.80 + + + https://zenime.site/top-airing + 2024-11-08T15:50:46+00:00 + 0.80 + + + + https://zenime.site/search?keyword=Dandadan + 2024-11-08T15:50:46+00:00 + 0.80 + + + https://zenime.site/search?keyword=Blue%20Box + 2024-11-08T15:50:46+00:00 + 0.80 + + + https://zenime.site/search?keyword=Haikyu!!%20Movie%3A%20Battle%20of%20the%20Garbage%20Dump + 2024-11-08T15:50:46+00:00 + 0.80 + + + https://zenime.site/search?keyword=One%20Piece + 2024-11-08T15:50:46+00:00 + 0.80 + + + https://zenime.site/search?keyword=Dragon%20Ball%20Daima + 2024-11-08T15:50:46+00:00 + 0.80 + + + https://zenime.site/search?keyword=Solo%20Leveling + 2024-11-08T15:50:46+00:00 + 0.80 + + + https://zenime.site/search?keyword=Re%3AZERO%20-Starting%20Life%20in%20Another%20World-%20Season%203 + 2024-11-08T15:50:46+00:00 + 0.80 + + + https://zenime.site/search?keyword=Attack%20on%20Titan + 2024-11-08T15:50:46+00:00 + 0.80 + + + https://zenime.site/search?keyword=Bleach%3A%20Thousand-Year%20Blood%20War%20-%20The%20Conflict + 2024-11-08T15:50:46+00:00 + 0.80 + + + https://zenime.site/search?keyword=My%20Hero%20Academia%20Season%207 + 2024-11-08T15:50:46+00:00 + 0.80 + + + https://zenime.site/basilisk-1307 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/subbed-anime + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/dubbed-anime + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/ova + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/ona + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/special + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/app-download + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/action + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/adventure + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/cars + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/comedy + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/dementia + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/demons + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/drama + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/ecchi + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/fantasy + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/game + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/harem + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/historical + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/horror + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/isekai + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/josei + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/kids + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/magic + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/marial-arts + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/mecha + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/military + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/music + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/mystery + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/parody + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/police + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/psychological + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/romance + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/samurai + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/school + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/sci-fi + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/seinen + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/shoujo + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/shoujo-ai + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/shounen + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/shounen-ai + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/slice-of-life + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/space + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/sports + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/super-power + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/supernatural + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/thriller + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genre/vampire + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/filter + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/ranma-1-2-19335 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/ranma-1-2-19335 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/the-elusive-samurai-19233 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/the-elusive-samurai-19233 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/no-longer-allowed-in-another-world-19247 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/no-longer-allowed-in-another-world-19247 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/why-does-nobody-remember-me-in-this-world-19240 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/why-does-nobody-remember-me-in-this-world-19240 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/one-piece-100 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/one-piece-100 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/the-strongest-magician-in-the-demon-lords-army-was-a-human-19238 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/the-strongest-magician-in-the-demon-lords-army-was-a-human-19238 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/pseudo-harem-19246 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/pseudo-harem-19246 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/demon-slayer-kimetsu-no-yaiba-hashira-training-arc-19107 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/demon-slayer-kimetsu-no-yaiba-hashira-training-arc-19107 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/wind-breaker-19136 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/wind-breaker-19136 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/bleach-806 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/bleach-806 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/dandadan-19319 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/blue-lock-season-2-19318 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/blue-box-19326 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/bleach-thousand-year-blood-war-the-conflict-19322 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/rurouni-kenshin-kyoto-disturbance-19340 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/rezero-starting-life-in-another-world-season-3-19301 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/my-star-season-2-19256 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/good-bye-dragon-life-19347 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/case-closed-323 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/naruto-shippuden-355 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/jujutsu-kaisen-2nd-season-18413 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/black-clover-2404 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/chainsaw-man-17406 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/jujutsu-kaisen-tv-534 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/demon-slayer-kimetsu-no-yaiba-swordsmith-village-arc-18056 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/most-favorite + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/look-back-19083 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/i-parry-everything-19229 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/high-card-the-flowers-bloom-19410 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/jellyfish-cant-swim-in-the-night-19124 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/level-1-demon-lord-and-one-room-hero-18465 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/completed + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/recently-updated + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/hamidashi-creative-19368?w=latest + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/hamidashi-creative-19368 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/25-dimensional-seduction-19245?w=latest + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/25-dimensional-seduction-19245 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/another-journey-to-the-west-19402?w=latest + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/another-journey-to-the-west-19402 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/rurouni-kenshin-kyoto-disturbance-19340?w=latest + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/trillion-game-19362?w=latest + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/trillion-game-19362 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/good-bye-dragon-life-19347?w=latest + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/365-days-to-the-wedding-19332?w=latest + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/365-days-to-the-wedding-19332 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/mechanical-arms-19354?w=latest + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/mechanical-arms-19354 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/look-back-19083?w=latest + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/dandadan-19319?w=latest + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/loner-life-in-another-world-19337?w=latest + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/loner-life-in-another-world-19337 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/kinoko-inu-19373?w=latest + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/kinoko-inu-19373 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/recently-added + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/look-back-19083 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/i-parry-everything-19229 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/high-card-the-flowers-bloom-19410 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/jellyfish-cant-swim-in-the-night-19124 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/level-1-demon-lord-and-one-room-hero-18465 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/future-folktales-8383 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/future-folktales-8383 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/mission-yozakura-family-19133 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/mission-yozakura-family-19133 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/da-shen-xian-17405 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/da-shen-xian-17405 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/da-shen-xian-17526 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/da-shen-xian-17526 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/crayon-shin-chan-movie-31-chounouryoku-daikessen-tobe-tobe-temakizushi-18427 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/crayon-shin-chan-movie-31-chounouryoku-daikessen-tobe-tobe-temakizushi-18427 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/crayon-shin-chan-movie-30-mononoke-ninja-chinpuuden-19408 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/crayon-shin-chan-movie-30-mononoke-ninja-chinpuuden-19408 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/cardfight-vanguard-divinez-season-2-19206 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/cardfight-vanguard-divinez-season-2-19206 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/rakshasa-street-4th-season-19411 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/murder-mystery-of-the-dead-19405 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/kagaku-x-bouken-survival-19376 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/genjitsu-no-yohane-sunshine-in-the-mirror-movie-19394 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/give-it-all-19393 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/solo-leveling-reawakening-19392 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/attack-on-titan-the-last-attack-19391 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/gintama-on-theater-2d-kintama-hen-19389 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/beastars-final-season-19385 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/pinkfong-gwa-hogi-sae-chingu-ninimo-19384 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/pochaazu-19383 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/kumarba-season-2-19382 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/is-it-wrong-to-try-to-pick-up-girls-in-a-dungeon-v-19323 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/haikyu-movie-battle-of-the-garbage-dump-18922 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/my-hero-academia-season-7-19146 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/dragon-ball-daima-19328 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/az-list + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/az-list/other + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/az-list/0-9 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/az-list/A + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/az-list/B + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/az-list/C + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/az-list/D + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/az-list/E + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/az-list/F + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/az-list/G + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/az-list/H + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/az-list/I + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/az-list/J + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/az-list/K + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/az-list/L + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/az-list/M + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/az-list/N + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/az-list/O + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/az-list/P + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/az-list/Q + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/az-list/R + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/az-list/S + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/az-list/T + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/az-list/U + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/az-list/V + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/az-list/W + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/az-list/X + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/az-list/Y + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/az-list/Z + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/spy-x-family-code-white-19291 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/be-forever-yamato-rebel-3199-19192 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/idolish7-movie-live-4bit-beyond-the-period-19176 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/blue-lock-episode-nagi-19085 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/my-oni-girl-19076 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/kuramerukagari-19075 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/rascal-does-not-dream-of-a-sister-venturing-out-18934 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/dead-dead-demons-dededede-destruction-18925 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/oomuro-ke-dear-sisters-18916 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/ya-boy-kongming-road-to-summer-sonia-18913 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/mobile-suit-gundam-seed-freedom-18910 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/psycho-pass-movie-providence-18715 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/white-snake-2-the-tribulation-of-the-green-snake-18682 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/detective-conan-movie-26-black-iron-submarine-18655 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/my-hero-academia-ua-heroes-battle-18629 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/digimon-adventure-02-movie-18562 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/the-imaginary-18561 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/i-am-what-i-am-18555 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/the-summer-18553 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/boonie-bears-back-to-earth-18549 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/boonie-bears-the-wild-life-18548 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/free-movie-5-the-final-stroke-kouhen-18504 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/maboroshi-18434 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/sound-euphonium-ensemble-contest-arc-18433 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/kaina-of-the-great-snow-sea-star-sage-18432 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/resident-evil-death-island-18429 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/detective-conan-movie-the-story-of-haibara-ai-black-iron-mystery-train-18412 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/tsurune-movie-hajimari-no-issha-18411 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/backflip-the-movie-18405 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/mobile-suit-gundam-cucuruz-doans-island-18400 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/movie?page=2 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/movie?page=3 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/movie?page=32 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/one-piece-log-fish-man-island-saga-19404 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/tower-of-god-season-2-workshop-battle-19400 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/punirunes-2-19381 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/okaimono-panda-19379 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/asatir-2-mirai-no-mukashi-banashi-19378 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/neko-ni-tensei-shita-ojisan-19375 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/hyakushou-kizoku-2nd-season-19374 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/puniru-is-a-kawaii-slime-19372 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/tonbo-season-2-19370 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/the-idolm-at-ster-shiny-colors-2nd-season-19369 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/a-herbivorous-dragon-of-5000-years-gets-unfairly-villainized-2nd-season-19367 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/a-story-of-a-girl-that-was-unable-to-become-a-mage-19366 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/the-prince-of-tennis-u-17-world-cup-semifinal-19365 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/kamierabi-godapp-season-2-19364 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/negative-positive-angler-19363 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/haigakura-19361 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/acro-trip-19360 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/a-terrified-teacher-at-ghoul-school-19359 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/touhai-ura-rate-mahjong-touhai-roku-19358 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/magilumiere-co-ltd-19357 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/let-this-grieving-soul-retire-19356 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/how-i-attended-an-all-guys-mixer-19355 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/the-most-notorious-talker-runs-the-worlds-greatest-clan-19353 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/love-live-superstar-3rd-season-19352 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/about-the-movement-of-the-earth-19351 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/blue-wolves-of-mibu-19350 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/demon-lord-retry-r-19349 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/nina-the-starry-bride-19348 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/after-school-hanako-kun-part-2-19346 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/tv?page=2 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/tv?page=3 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/tv?page=113 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/boruto-naruto-next-generations-8143 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/naruto-677 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/spy-x-family-17977 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/solo-leveling-18718 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/hunter-x-hunter-2 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/blue-lock-17889 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/demon-slayer-entertainment-district-arc-17483 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/demon-slayer-kimetsu-no-yaiba-47 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/attack-on-titan-112 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/my-hero-academia-season-6-18154 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/hells-paradise-18332 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/dragon-ball-z-325 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/the-eminence-in-shadow-17473 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/dragon-ball-super-1692 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/attack-on-titan-final-season-part-2-17753 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/death-note-60 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/mashle-magic-and-muscles-18339 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/attack-on-titan-season-3-85 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/i-got-a-cheat-skill-in-another-world-and-became-unrivaled-in-the-real-world-too-18343 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/dragon-ball-509 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/attack-on-titan-final-season-part-1-15548 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/classroom-of-the-elite-2nd-season-18076 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/fairy-tail-930 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/my-hero-academia-5th-season-15666 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/bleach-thousandyear-blood-war-the-separation-18420 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/my-star-18330 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/vinland-saga-2nd-season-18239 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/that-time-i-got-reincarnated-as-a-slime-season-3-19109 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/jujutsu-kaisen-0-movie-17763 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/most-popular?page=2 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/most-popular?page=3 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/most-popular?page=50 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/fairy-tail-100-years-quest-19253 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/super-dragon-ball-heroes-9688 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/pokemon-horizons-the-series-18397 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/seirei-gensouki-spirit-chronicles-season-2-19320 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/the-healer-who-was-banished-from-his-party-is-in-fact-the-strongest-19345 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/shangri-la-frontier-season-2-19324 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/as-a-reincarnated-aristocrat-ill-use-my-appraisal-skill-to-rise-in-the-world-season-2-19329 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/arifureta-from-commonplace-to-worlds-strongest-season-3-19321 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/super-dragon-ball-heroes-big-bang-mission-17970 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/yakuza-fiance-19336 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/battle-through-the-heavens-5th-season-18119 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/ill-become-a-villainess-who-goes-down-in-history-19334 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/demon-lord-2099-19339 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/you-are-ms-servant-19331 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/shin-chan-1058 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/the-do-over-damsel-conquers-the-dragon-emperor-19341 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/tying-the-knot-with-an-amagami-sister-19338 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/beyblade-x-18632 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/soul-land-2-peerless-tang-sect-18416 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/swallowed-star-2nd-season-18018 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/top-airing?page=2 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/top-airing?page=3 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/top-airing?page=10 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/dandadan-19319 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/dandadan-19319 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/blue-giant-18260 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/blue-giant-18260 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/blue-gender-3372 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/blue-gender-3372 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/blue-reflection-17485 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/blue-reflection-17485 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/blue-box-19326 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/blue-box-19326 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/blue-period-17427 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/blue-period-17427 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/blue-lock-17889 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/blue-lock-17889 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/blue-dragon-6179 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/blue-dragon-6179 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/blue-seed-3431 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/blue-seed-3431 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/grand-blue-dreaming-139 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/grand-blue-dreaming-139 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/perfect-blue-127 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/perfect-blue-127 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/blue-literature-893 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/blue-literature-893 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/blue-wolves-of-mibu-19350 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/blue-wolves-of-mibu-19350 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/blue-seed-beyond-6048 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/blue-seed-beyond-6048 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/the-blue-orchestra-18359 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/the-blue-orchestra-18359 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/bb-fish-10438 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/bb-fish-10438 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/sweet-blue-flowers-2862 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/sweet-blue-flowers-2862 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/armed-blue-gunvolt-8786 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/armed-blue-gunvolt-8786 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/blue-seed-omake-4193 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/blue-seed-omake-4193 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/blue-exorcist-1198 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/blue-exorcist-1198 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/blue-drop-4694 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/blue-drop-4694 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/blue-blink-4540 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/blue-blink-4540 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/sky-blue-3412 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/sky-blue-3412 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/ginga-no-uo-ursa-minor-blue-7064 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/ginga-no-uo-ursa-minor-blue-7064 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/blue-dragon-the-seven-dragons-of-the-heavens-5453 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/blue-dragon-the-seven-dragons-of-the-heavens-5453 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/blue-lock-season-2-19318 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/blue-lock-season-2-19318 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/aoki-honoo-10273 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/aoki-honoo-10273 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/801-tts-airbats-5741 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/801-tts-airbats-5741 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/ao-no-exorcist-kyoto-fujouou-hen-ova-2896 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/ao-no-exorcist-kyoto-fujouou-hen-ova-2896 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/blue-archive-the-animation-19125 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/blue-archive-the-animation-19125 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/blue-lock-episode-nagi-19085 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/blue-lock-episode-nagi-19085 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/world-war-blue-8602 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/world-war-blue-8602 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/her-blue-sky-1418 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/her-blue-sky-1418 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/blue-legend-shoot-1822 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/blue-legend-shoot-1822 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/blue-legend-shoot-4518 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/blue-legend-shoot-4518 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/combat-mecha-xabungle-2768 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/combat-mecha-xabungle-2768 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/blue-exorcist-kyoto-saga-1628 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/blue-exorcist-kyoto-saga-1628 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/search?keyword=Blue%20Box&page=2 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/search?keyword=Blue%20Box&page=3 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/haikyu-movie-battle-of-the-garbage-dump-18922 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/haikyu-movie-battle-of-the-garbage-dump-18922 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/knights-of-the-zodiac-saint-seiya-battle-for-sanctuary-18135 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/knights-of-the-zodiac-saint-seiya-battle-for-sanctuary-18135 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/persona-3-the-movie-1-spring-of-birth-1244 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/persona-3-the-movie-1-spring-of-birth-1244 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/persona-3-the-movie-4-winter-of-rebirth-500 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/persona-3-the-movie-4-winter-of-rebirth-500 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/haikyu-76 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/haikyu-76 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/ex-driver-the-movie-5019 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/ex-driver-the-movie-5019 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/dirty-pair-project-eden-3340 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/dirty-pair-project-eden-3340 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/the-last-naruto-the-movie-882 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/the-last-naruto-the-movie-882 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/boruto-naruto-the-movie-1391 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/boruto-naruto-the-movie-1391 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/love-live-the-school-idol-movie-572 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/love-live-the-school-idol-movie-572 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/banner-of-the-stars-945 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/banner-of-the-stars-945 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/recycle-of-the-penguindrum-17796 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/recycle-of-the-penguindrum-17796 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/haikyu-2nd-season-29 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/haikyu-2nd-season-29 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/haikyu-3rd-season-18 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/haikyu-3rd-season-18 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/my-hero-academia-the-movie-3-world-heroes-mission-17334 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/my-hero-academia-the-movie-3-world-heroes-mission-17334 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/naruto-shippuuden-movie-6-road-to-ninja-1066 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/naruto-shippuuden-movie-6-road-to-ninja-1066 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/persona-3-the-movie-3-falling-down-1230 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/persona-3-the-movie-3-falling-down-1230 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/love-live-sunshine-the-school-idol-movie-over-the-rainbow-1211 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/love-live-sunshine-the-school-idol-movie-over-the-rainbow-1211 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/banner-of-the-stars-ii-753 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/banner-of-the-stars-ii-753 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/black-butler-book-of-the-atlantic-224 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/black-butler-book-of-the-atlantic-224 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/magi-the-labyrinth-of-magic-425 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/magi-the-labyrinth-of-magic-425 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/magi-the-kingdom-of-magic-208 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/magi-the-kingdom-of-magic-208 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/patlabor-the-movie-1464 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/patlabor-the-movie-1464 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/persona-3-the-movie-2-midsummer-knights-dream-1088 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/persona-3-the-movie-2-midsummer-knights-dream-1088 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/my-hero-academia-the-movie-2-heroes-rising-383 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/my-hero-academia-the-movie-2-heroes-rising-383 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/battle-of-clay-10620 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/battle-of-clay-10620 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/tales-of-luminaria-the-fateful-crossroad-17962 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/tales-of-luminaria-the-fateful-crossroad-17962 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/growlanser-iv-wayfarer-of-time-8906 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/growlanser-iv-wayfarer-of-time-8906 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/blackfox-4434 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/blackfox-4434 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/mobile-police-patlabor-2-the-movie-696 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/mobile-police-patlabor-2-the-movie-696 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/garouden-the-way-of-the-lone-wolf-19165 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/garouden-the-way-of-the-lone-wolf-19165 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/saint-seiya-the-movie-evil-goddess-eris-4181 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/saint-seiya-the-movie-evil-goddess-eris-4181 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/kabaneri-of-the-iron-fortress-the-battle-of-unato-933 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/kabaneri-of-the-iron-fortress-the-battle-of-unato-933 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/saint-seiya-knights-of-the-zodiac-battle-for-sanctuary-part-2-19090 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/saint-seiya-knights-of-the-zodiac-battle-for-sanctuary-part-2-19090 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/soul-hunter-3019 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/soul-hunter-3019 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/highschool-of-the-dead-drifters-of-the-dead-5101 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/highschool-of-the-dead-drifters-of-the-dead-5101 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/search?keyword=Haikyu!!%20Movie:%20Battle%20of%20the%20Garbage%20Dump&page=2 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/search?keyword=Haikyu!!%20Movie:%20Battle%20of%20the%20Garbage%20Dump&page=3 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/search?keyword=Haikyu!!%20Movie:%20Battle%20of%20the%20Garbage%20Dump&page=76 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/one-piece-movie-1-3096 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/one-piece-movie-1-3096 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/one-piece-100 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/one-piece-fan-letter-19406 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/one-piece-fan-letter-19406 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/one-piece-film-red-18236 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/one-piece-film-red-18236 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/one-piece-the-movie-13-film-gold-550 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/one-piece-the-movie-13-film-gold-550 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/one-room-9215 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/one-room-9215 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/one-room-second-season-7392 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/one-room-second-season-7392 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/one-room-third-season-6959 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/one-room-third-season-6959 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/one-piece-episode-of-skypiea-3097 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/one-piece-episode-of-skypiea-3097 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/one-piece-log-fish-man-island-saga-19404 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/one-piece-log-fish-man-island-saga-19404 + 2024-11-08T15:50:46+00:00 + 0.64 + + + https://zenime.site/watch/one-piece-3d-gekisou-trap-coaster-3400 + 2024-11-08T15:50:46+00:00 + 0.64 + + + + \ No newline at end of file diff --git a/public/splash.jpg b/public/splash.jpg new file mode 100644 index 0000000000000000000000000000000000000000..12b0bc5476bc3f9e6454124812b993672fad006f GIT binary patch literal 154749 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
I%h{91GuwzJPkGMLVM zLWxKH$@X32H;unc=Ve!{0aIsfGZfp6!vh_qtqypUU9?J6pU~vyxSIqtbHiNyjN=lu8gp7$LS1;F(Jbrsd%N3!?{8zX&6~C z8H;mQ2nAo@li@cII-yQeLr(I*B7hbg)gdtWDgLxWvZPTq7xzgFUAjGM_Yu(d7B@g- z(;o-}%18%$IH$Fd$F&8p6P{3(>G1wdj1(uH1=1+J6jj4;y;L^BdMBuS zgz&_wEzMS)28p5#)JViSC*)JPE4=#i1L~+(iov24*b`yADQBa(w2aqYXjt-0*Ej-evINu zQDtV~Q=rzNQ>L~d#_bf(`LskeLdV*`ZF@|FZY&V|p$O+vg`o~4KIn5$!0P7?oH%nT z{{Xr!=&~>#QaPYhg1g!3$s4&@ldHF4get_I9Od;oVU&UfrxVhf^hND9T`2T-3%r{x z)e{{00~FyjS@hF}ajubBuY}^pPx;h~4TjeXX`MQIAr`*KaG@1Bl?!BqFy&(v^N_u|#2yazKS*$% zXH0YGJ(l59rGu${VLZ?JO}*EI`o_X%v%(3}o@=s(E=GusYU$1zTFQ&c&1SuA^1sr` zLJH=yPlpNFT;hAV6nJswKXly^hPx&*I8G*be+i<-IyzB5?h_gws@U(y&d1tvld^GT z*uOeJY!>$zg?uIn&9`F6tKX-IAn|8qk)PF)plm}A&6i@Q5+7_xgP7=!oj9nG(}|pB znB~y6RrNxt_7fF!<|e9WvgBlVa@jc2n*@~3%A68r5ih2FQ1}yeA6y$}IfaO@c6B58V%_Gv}opkx`!= z8M%uuLx$ru-=X(S7eRhg4NcrCel&F|f!DRXuhOz~%JQVI*<^+cQua1B=kz$R8=a1LHV+u3FLjG zr18rU?w_5IMa@=LE7Mq04I_VdN9|)2)`L4E0p-zu_NrYt*FP}3$aPLJ7|`L;t2Xgv z0&B}NJ1)wT($^u=lVDL4B;!En@c5MEY!Piad?+~ZRfT+7!c%NRq+CB1cNUR>d}b5k zIL$Gk)3WTSQ$?P+!h235WA-?8U(^*R+^U-xD%9cL-F8$qR%oN*`$kGAMqI56ZH%^lzoh9JaPH-?=Z!h1U#Jm8o=7$#2Y z>}r~R)-*}Rv%Jovjfg#?G*n^rH+dN4tMZ#` z4zY@8vQ_xP?yE0zg|NVLEqNx{2=Ib!?2E*K@Xkn57YjVf$w3l+QAVLS2Yv+ zfn^XL(^1lV+I393gyTxZF_P)eu2xqmg#`ZqGg7N;4TP^CUnr3$WlEKPEXMr!90AC$+}2O_&+Mihh@ZC!otV>vH#OlE|4v(B)D;W*NfBZT8n-5Ji4Ci1IXQaKq5hn_DB!Z03a z@T1I85o;B897k2QpsG+<*Og3;q9giK^Vc@(wYODOWroJq2(59X5leLQ)Sj!7saYxp z!#D({=QLgv5ps$fB4p=Mdq`n96csbqk<3`=6vcLz#dJ{rZ~;Iz7vd%mu+}*k@wek zw(0oM_f0RKvU_f~IvB7XBT32%{3F%=Q$?85-iqG|_pJAYuZG7o;-eYSgYjdhw(!c< z+g|(H$2}eKH*xkg0`*kr;_igZnsTn$O{=DTq+~l%c9X(v0^aCTgyB+!R}-?lIVax6 z+CnTNw!M>CMc+r*%h>d0&^|lIK$vRZYyzD+bEad?Scl4m*AI`M4kJ;riVWe-6Sziy zHZo%{?ytl0tC6y+(yNDbQ(;&X>Sr*vX4PZoNwnLuChlI~Fd z0F_Lw^Hln`MlJ1xCm*OTFZ-swVHUAXEJD|ZB+*alRm44!J^BOkIjUO^ohcT@3T?WJ zr^8^o@2Go6nO|ibq+1Li>bov$w1g-l*sdp;jh_;C5}y)0DWVC))m^7DMd3s`14$2^ zEAMFPU4|P4O-0#0WhF*sbFb_yHj&9hXCVn+k&yV7p+60JsXN2?nki%GFKegLc(xxs zMY)_d35Gj_;{>0KDE!HqyAHgWjw@R0;{(!JdZGMG<2gu|iRYlTjF_g|PBjNo_!Lyn zl3R!8!whcYFp3 zf`7vAqj}qNDVi_$NqBStX~HN>`&d`ThVaVJWF>j%K%-#t+EZX1K$+Mk3hwIp_|iE~ zG!Ws%=1)Bg;YH$dEj~0|xmqo4&>aXPV2i$#^rJtS*jVbnI%<1LagP^-OpUie5{b`* zd`?hNXuH})t;!yT5wPiE=!XgIZKrdYvKU7++GZ%Wdr-wZ6f4vi+ZU7$Dchj|W83k7BsRjnG>v371Gh!J zXwlpsHn&b~=kw4aS0szZ1MIIodGsh{J|__11R+hNy}BJ7X;^1#@*O?4m=1y>P7~TD zsi!MXj*syRwSr;O$>{7;D&-Kgd6-&!bbpD7UT`VNcheBA?~R-IRE1`%`>#=6(V_=!BSRyc z^g}@SrgP(=M4%%vY%>c_j*e!#$Y+4+`ON9>Y=Oe5RI1rj*;)lbq`EUYI<1AY)c3-3 zjAx6X7esAjf0Yb}iN^g|1mC3Og{{9wJ|^$a0k@)UJ0?)iRq3Lvm!i+3)UQY7R@aJ} zQid&L6H;H9&yIvsZ)1N@O|_tIP=Ink_f=KQSle`S;#W97?bN>O#MG%yWn-U4sa}w( zWbdkN@LbF=gyW$CfwJ(<86f`va88J^_fN8ZkMWB7r`bhqO7w+Of$m(DVdy!(g-T0Z zW8hYIx3uui{R_f$Hxw!_61r{dhlf-TNEo-d47EiXDp6F+?JL@{Subj+B3;69tIbd< znO-U?4P$5;%b_&m1II%7U84U0Dk0iiyC&Ml2oss<0}|vvB{0-fuT2$8+d#PmQoXno zqRNt8IUPp+7a{x4>Z0_GQMbJBW0d>oMg`sa6nr$u_?6K%0lE+lT_W+r^w4gYY3jBT zK0$AddLP7(q}@`BIq0dLx|kiTyMXERE)(<-7)}vkfq3NzMlJe{6>F%w2j?W~+nQFxJp2%SBrUduyUNH#X=#6%}bL5bqFNSkJZnHXf2X4cK$F z%>tmZF9>+h6D1X4SrwZ11?~&n7HgWxPzCPL2Gr)MW^>h2*4o#dhdeWaB2GF96GC<> zC}K=AP}ZlUn056jp{2K@{7L5>%3+s4bxiTz z=_Pt-WxBo)9lA+7YnW80Hs3!I!ai}D8kJMf^M5L^tc{-Kn&!EziuSK+e>x4N zX?`tz51bbX`U@K`LOiR)u2%m5a*L#&I=ZS=Z6FDyd`eYpI{wm$TTc67G0604fK}lQ zY$tw`5Y*JKN~xG*Rv@SeR1B(L><2hcV_GrYQr5$`emXo|DfHDV(iKh%g|XUtkh4?; zPz9Q)Jx|(JOOp3~%iOaoGP5f(sS;x?6?3($Hhk(UEANKK-O+&D^texL9V)ZN_Z6Dt zxi508N2=tiSGN(0Yh2M%V`0GflBui{u+dR8dGFC%ZkKm!KpgRESEW?_kC)|F_EZ`g zD%9acC!1M(TFX6k*z(_@ld^u6>BWTYOgfe63a9L91?p598rkYp!zu0TEc0i=7;S~) z7Kh<%dJWC`YlT5nFkG)s*!u;(i*@J;<0^v;S@A7X+3{=OQbVTPEsuR{I~>!Jj9c{Z zFgGf{V$ph)29B{6L7*0hY^}c&k21K!?lcsMR06%9y7qqS+Y-tpnfxq@<`=wM?;n*& zhCCy;P#v%uAJ5pdUaBe%j17*ATg&l{TqhYFBW9|>d;b7s@BNoGLPE;$?QPyC=NO)# zd`(r`>{p74gQGQpthy6o1KxI2t_u{$Mt7aaUW4$MtFdMNF)l-&Gt_+2Ruw7F*pyxL z6xH`C^xp}z4HgG<+A8F5c8heyU5hL-d-Ya_>{pBNjr{?0))e+OD8r^$4l~i*KNu8< zgysNyi$0uR7%?8F5^}qJi+V1a+=9Gj?SM3wq0dE3(?#wWJ4L$n1jPD=0E4NxPJYF_ za_OuSiii6cuyDK09#YiniR>CV~s8Neso|*naJ-WOyk&d?L0%j z-wqR>z*RSVDs-AmmFdv-)4Vxa+7^%Uo)YPb zyA@zL91?c>*I=pAoTi4Fp4xL1H5w{eRMAykCpGlqE;$?vyZz?DJbf?HtJJnOf9p$d z{7&0_Og|$^{JEzVhZC^ZyY;E7ykr@aPxTajdPviv#1uOIs_ znxz$V^a`ag%M9x;!}6HvJB1M3edZ5B&HOJ&WmvToUaIuF&}Fh?qX(BeA|H8OIURSX zvZYlhs$WyGtyM6IPlEgEZw$1J&J`C&Z?i7P`PEdi^oLouj+6hy04opx0s#X90|NvD z0RaF2000000TB=(F(5%vFkx|lk)c3PvBA;d@bO^(+5iXv0RRC%Az@V#L<|^wWv4lc zuQXUc9TOoVLFCO-dMr`Ym4Um*x{C;m>3SpZ6B#q73`VRpw!Cz}R;82kPbwnJRkcSw z4d|6mzjmDZMuxPq5g^ZaNZNpY6u|y^Xiv zd5Bi)(uCMx*{GyFG^`~Gj5v^p5T&==g)$}8ThXdv*Fg=(m7xvUxShuk^bR-@;C3`6 z7}>Gf5y1^2z@ZB!0@hd_M?%e78oD;jg;qD!xqz^3S<4m%N*WO`ZW#(?Xfjihy|t@3 zgT-<-5U9qaEe?bh^jM?CI2#!neXayV4~CNlp34N;Mt=?QK- zvRjifGyedSiJj669jXjD5#0;46N8a8Qo*>6!`%M>h~vM6JO2Ps+mSFRGEO^~c?>Es z44V^i(|WBS?uT{;-C_i6SBgY^hhReEN7=dBHrSnrMpa9QLCe5}!J+5=+KodMENP1r zNSzv;TgR25A?BD;GhtxdS*o+7Q7Uw|Vku(H6?V{vnieU&UT8OptZ%OoVC`I)gw9PC zMx|2bVN{3&jdpVfjRrO_RCzM4^?0WkjfILegf}n2g<8B4)xu;-qdF~Q<6Gm<+B{Nj z)ZN+ZYE)9*ks`sEZV6nF)vl&=<+O&P*BO-AtHVRHpvqT=4ar#64Y}piMkpEnyhLi)fQR3TDqj)p@)^N zupPVxB-b&7&MIJZR~uIdy}TW@=P^~_#A4WZ(#o#`O|gJN&Wyx`NHC(vhK99{os{K8 zLt8>p{&c)kanSI*P2SRAFKy^_SP-|W#V%7Ja6^Ucb_c$P$**z_eGQuT655$_JzW?S z-Pl<^LWUt|gw@g8kARNe;SN2-a>&+xBbBMRx0!_)CI0{exjcqXM$ZCR5T6jqRW_3Ev`CYMy*wYakPY7i?D>uiQS74 z3X+9=WbkYz%EU2fc%vD*s-Gy!Lo(2^Z$)<|YE4^~1gY*kt20w!n+p`!+K$^wT7{i? zOjQU@LHFoj0|Y35UF6l#ARs8slh!jDw|j05r|GS-Kn{`u&_lM zEyj?14}p!gNN@fH&DfdS$eVv+7j#ShMV1zmP6o9sXm}f@;j}%A7VO@nJTa?2!Yd-A zorX6THz<*VEgrhva7X~CumQA#vd#MOBLS+Y*=&6>SqKd*d2x<_aOJOS_ zQH@b(Vm{Ly(upoenk(GB5UjdHfnc^3SgEb_X3fp2NhN~Lu!e3zu@W>dfyfdxEdmU5 zc^+MC+-?xFqk6mwsNBoQ{K8Ko*tnUGc=rh$#cte72^d;;4KGe=ZA2=w7#0;x^|)#s z&d~xF3)qee*lD^u3)o4)2<$ImB^V)aLg0cN5E@5pb`HWj2!PXq91n^_yAy{Z$8{DLeJ!e!M4J=%5j7EY z7HZ6>v8p-+$oRsRi3tjdnP~2bmPf=$VMBXe23d?j>}9~LkJ!c18`A>~l=SC(@yK5n$DK;Sfg}T&9{UDdHl2}xD zB?;J1~cwuy`IiLE@>Au+XtZp8@L1 zyTvl-@F}L*Ce%gUjiaWtjSXIp12!?CZC%By3jY9HSFatAmK1d_OfEHVrPnncDY)@j z(5(G)aaEdZw8GOaNDZ=(-!=@mPk~QjJ_MZ6V924e$iQg0*jS3DM9!4VNd_!f(fD0O zoeW~sx<*0^&BmKAald%+SaC67EF>7lk9Q7}QlMD^H>22P*See0`4RIzk-H|?lIK>i-eI9x@YApt2s?XOtAu2w+ zDmQFHm+nJ|PKlfw3_xz+n?X9}rIt1lBd(CKqb{+dE(Cj+t1T^N!f~U(OAcX4a*3ps z(!y*eqQ!}#yPaYY^%pxr!GO0HM2^<*S=__-(3X)2LA}#CkF1?uG&dB1i7acyDdSaE zmg=gVW<7qP+KZ7py%}n=)q7WdhWegpv0eU^yN(ekHgD3wMc$YjjbG~k$w^)NjbFe= z@(r87+j(=LHVEW<5U{l_O+hwB!@I0X6K%+3vbrrMqmj>$cBTezOPA(FkG6q7HA5n* zLNW>FyNF5^GMN5{7m8p`D8v%HlFH1O8&KCmk#S)8y?4;gC2^x_N{CKTma46#o|CTq zba1P`(f0wYTgO*wk!rkZc=Zsop^Xa~8%r)cozuY6V9##@ZRYx}Q3zemyP>#DOX>Cy zLZiXCaxY^Hgvd{4(7c9GjNec~mRcWRh_!0yeg$-3Tjx}<@GGTA;L06~3~Q9f*Fqg_ z#P*{ShDLNeF<{7J7d1xoWf-3~uKF3pk>tSGSP-%mo~Ugkv70=t(tkvVgh27BA=*0x zE`w=hz@3-5kbgj+MU9(@%FwhAvQO}Ik{&`G{f_b6JDMdU{;=1#&}rSj1(}95;JlOn z03opN{Ee9}QcdAWut$?{+c2;m2B~L2m9e#2!llHy5Sp0@)uVKO%y6bdkCTTZ6DB)N z$I04O#?9bPAM$sR;X6p}P)pg0-HjtCu^5_oqRSXnEKH~sm2#N+=tI#snmmwR#u>1% zAn-g5BCg}Xhvtu))}1Y1Msgu&Z_tD!vh6qzK3`VyD!#i+nIMzT(@Q1GJB*jf-B%9b z-S|7_aPJbye4WNi=cm|bVTt?2zX;qp5;hT`;9J*`i5R@o-B*F;mM}};yZ*yAQLu@B zp>|m9i-w!C_7tpbUM1>EUOSO#MB%JiiSk9T>FhcuBXQDYhjTAKqDK0{s=W(zW~v)~pp+;d%hlhlzLci@CW%X9 z-vWNxupC>>A#OG$Z1vE(4+c|XYCnOBooZ~r*izDBh_n|3$b{&slIxN1BJg1uH6=e~ z>)i-hS`NV0B{8s*D=H&>AL}3MlNhkMd!f^4W{8%N$;=*NQVHON#+WoLQz466qSTWqf(#V61X&At8DMVJ-6JYH7)6H}4kYYrL&3Oi z5RA2&vjB`hbHDCOLjo^tVrSn%b#V*a5>1eZwS*o9;TZ&!k@5QvkGNLP;CpU-mf-}ahAI_Vu#mo%JlA?}S-uB5HXyP!7}9w!9`Q`|SrY1gO);l> zZAj4s4GCz2yhXA{ayyPoBTir|GRSvgTOz#J@F}{Y5?dPWYUk>qorAVD37W|%5^_fW z0Fg-)JQ&kzCP>&{CIjd&85 za@_E3SAzyL#7M@{s?iSdJkG*h>|+|GjWIb#OwlFGD8+%`i7ibS^fz|!A&Z_-F^1QJ zks{tuCYqG=ENZ@nyFSF3L0u3Grnn0N$g!c(JHh!rg=eJHjcpk0$+Vg3vTveFJI8qM z5HCcKKpYjMY7-b9UAjaK9YuW_a4;B&-}kpBQgcfKj# zJD(K0!z8tVl4)>-NRM*Sa~jg!b%Yb{#J=Qb7}A6Ya6%QljmBA+LS_WTQzlS7#er}v z5r;HcLcx_c77Ufotg~0xK(I={SQ?z6qN9C=q{fIy!0qa6V9m|QdY_=8LopX5nHC?S zur+7g+u%2$GSW`*jM}EBz}^ltXea0%3|Q}E zL=W!htXJb!YGn_VO!eCFM`c%$m&uWFzO=B^jJoQk)3JB+B{gkvq7izunz+@R_GE5K z9T4cWe`Bigp=YRO1jY1g6dhJ{vkGrfIY#tVJP(0U=-hZXax^wFj2#`Xah{_~BYY%F zDl5GBIEQwB0X(A&E}LPb(3|K=7<>;U%7UPWP0XQeGFLvVX=?gOh|%Oqp~4$W74OL0 zB2>HziBaIaAqaRIhoC~ERBB*vrsuh+{FF+{JLt7M4#w8vZInveOKp9D@{Z8vxl#Or zH*bA#hO|JiA*Av*S8ql(#e!r>j8%5H;lEQ23nS^gF(_zO^u4+pRPrpD1ch9x*|@V! z$BM}o!rt=S8z7*a?QtfV8SS^g_~9L*R2MPhWM)m$l2Hi@LEy#GWRO^%R)j4N6xiQHSwY})xH=kJrKHp{ zK?}(Pxh4~GjpFrHX*CSY$4({sG3?r_6?&34HyG2FhBtvLlsanF*!d03x`y<~Sn50% z2u;fi+KVDhTTx?5qtM)eVvWM1$f)!gu+YqFF60Pq?YB|*k-2&z`1REn2I@zsdoy~w zzXn5p0>*LVUhm`27B@IFn1SOlo5 z@L>erIC^ou z$7Fm9L(;H3(TGfolNr$Mb?hdcXQs$_>O4{1c%p5ltZw1rii=MASe5i)r3iTN@_I$h|Cgb`nKwk2F{(0#_8viaR>2zUD64B|CK9Iu4Q!;|d0?2#6X3gS$5*Yi<)_ zXU!gq!5$t(VQPDrAgv)NO{}j`?NbGK2Vo{8haze!(KMGMcaH*Ctl^U4=W{gJeMSds zd^$8pcOKoj(3q2xl%9jfZHrX>h@pm-r&$VH6_*m^EOu$9r|SnFCsP&G8oy@uVf zZ1gOB0}+KD2ilBzgI%rf)a}cWHI?~e9+=k9!OGhMcO| z3P}^3sv(2RbWTwKt}GkXB$Ptfb}->v(1`4QNKC`}8!HmLitn&_Nb+1Ki$c?!TPc93 z=>yyrvAWn;)W`?H@GYc7i*}w523WX=Ce|<&WP@PsouS$xEF010;=quooY21pVn^pj z1=8<_*q!SfA&we{xnSAjPm|(@#aa~>N1aNUEiWrU3-}V>3nI+C2_p9LBzR*MXo_Tb z5G8ZcvLB#=!3nW0hL0g9?1h0*4^z;zt!^$X%L5EO%y9P-QsEKHJC^~){km;o3&rgZ zsPp7Hk9gODjEo4jks1)$@6t`J#QV}*!j?ofzkwI<+M5w&lMTBW8k_$BfhGADEZf0i zOCl5Z_a<=qFBPm&2_=d}4o^DjmZpyYk>DOoDA5Tin(x@vAlRID(D6vvlqy)wspSi$ zKPYX*%sbJ$#djw3V$lQ;Hf`#11;ZSWwc4eqS4}Y=gou9br z2VwJAqtvlYrur}z2f4WJ7d2QnbYvk7W7taEiDJCoPEifmun^Mszi~A1=&(W>;oaW+0>HL0R!P{(UgDb|!yy#W3Ppu9z({rw zos0(hI|+=~SkWcL+$7M*u=H(v$)1xN1vT#LeQuCmOVv4HVDh|~+tO{)kq4S5VX?7! z9{lywfstV&yoA{a$`siIV8oB4%LM-bAlv<+D|zxI-FpexV`LTtuRDx)ke;0q)`gZS zZH5r3I~FkYF3hS#L33#IGbrO~Jri>FFbd_17*cFxYCBSHOOZT4>N8xZv87V3hnl4W zNg>>I`*W)EZzx)do7W}hOT`CCXsYo>^kA?&4+D5y(Z{)v&qR`TTZmrfXwaz5sfcA@ z%7G%)M55<$6mMS!!M(uqPChioS_#*UJ)RKg6rvlXbMxn!67=+3a zgx-%qX~}7LF%JqtewrG>#cpQC=H;J(85wvp89a`|mvE2XixkAdsI@GDqvcTzjL%?_ z>M;^A#J-iq*$OPE@m0}ejZP7K4il4sj>$dAH*pbG2jQ+*tPB$xLl~*FlMXUZHbs~l zm-HEA4EdZoC4Z`g+riC^m7IzS?ncJI5|p9JQ6xozCg#RKo|e*5%e1^OhNBczxj=%; zOC&5-HjTnc1%<3vNff^HwcP4pZ{&!q!xHV6JsfC?{XIJ)wn0ES7!7xr%D-3oef|-aKl_z43%P z<3WjUp>J_Wu=1#g%8e(KJ%U>?nJQu7$gZtdND{EsplBv#&l65TNY`^i$tMNC<)2`iym=Fx84T7_^cvSD!lahu zrdbI$5p8ToA`LdtkC7rxy6mF+4h#p92ApYGqrkD=S7D6|C6>^!N0DV4imky6B}2M~ zMffW*qI$OK-CT&H6&`5K$gswfwJa$d{z(SPsc1_J6iNhr2PkB zauD-f&y0Stk`5Asu>`r*b9-?L!^lJA_Z`GF-5usQX5+@B;{p$#BN#y{?S+x{vZJmo z^2mA?Hj52G>Q0T{?j;c8LeR9PN9;dXVAZ)U`Q+-y zSE0C4HSJ+l!n?5}i-xl}U4(^?T3{wj(RR?_z>rzcP7|QthG zx_NzdYEI=AIyaiMm@e!?d+2pplQj*6=po>Dfols2yJ>^n;SnzGyPF%Ifwsd#7P%!E zB^435DXU(s!x%`tcV_1fjY}gqu6ANoY%vQucqf8C-2#{-Xkq4%BvumUv3b;`!TAh{ zA(1@USF0ej9!!Plh~Pn39%%7LfUqSg(q-UumJvRp7z;{b`(n10p=d)J*mTd+QyLIb zz3+i&lszvhlfbZR$b-W_LAKaE<6;sJ#Yk=VL@8H#EWH?f)k1Fr-%dB)j|OqR`laMq z6W*;2l&@2cP%laX7 zk$GokPic0m)s`(U%-l4mVLR0w9b^zTe#aHJk>N>t;b`Ah@G3DroMOTeYSwbH7q7Yk&qU+R6%u(f0;;hyUgug(`1<~ijR6=Gi$k^=K(G6dg7`w2Q z;kkALl;{1i0O9%Gt@6<`aJu2@i(8WLd13}3@l0x%(NW-1U}>^^3BGJbWLEQ3_rlh* zOte~GWgV1ayz0i*8tfiN*iptzPd zLdSmr8^Hu6ggo_7uW=MIThWfKq+N+$OTh3ROBf@T^gPx=bKqanS^5{Cc0)8Ml0sBk zl^%k|g~#D(S=R?9?@JmIMPBcqs@Vd26U7Zb4+Yt0Ooc}lnP{2USQ}6fv!syxjkfR6 zOWn}iDH_8AgWq?i4Yyk{XQhij=1w+3%yC`WT~`CZjU|R(@Pq{Wv^pkC4Hy%`F6=B* zVJ3Zv_&c1D3a{LzZ{I^{DQvqpcEmnm*g>~%mTgSl2Z{I=?q=bjZWvwkK$2u3AV>7W z@1JoTo|ib;{0Xo6HwbheJpn5sA=mwFNXNW)RvL+UH!$FIS~xLPi#6X)RA`3;VF^Ml zxi-8Q(1=;T6k19Hb&&0CW#8AW=ax6PGqpxmT^xme2&?^ z$(q4%723mBL14-;rpim=vL;GLHz1Y>xU^X=9WcHfCKR?Odo9ZnOuM;td7?fwD+HiR zTnTK1_w-yhr5ce$Oq`FrmN zFIAl_7DcgT$f4(xC+LNB4p5p&PE{C&nR+r?`}CHSxUeO0EoeAlt*El<@kc|Z=y);> z5-%K4bg*bFN065J*0G@tVUKLR6XwszP821HWN2EAO(I;6c(F-cqIRk7sTyYNCn#c# z^mm3ip5j*c>0@$>sY&6bEyqbu4=1q4w`7Fgc-|3=VgnW(p{(vmh_rb_t%SK7?Ss?0 z^w9=9yxW1xkeW^)Bal`|*xXt^0bqpWN?Yp0X6JonO@@tOU`^TbYSu}gz_O$}DvJZ7 zYGxJggK)h@wS{pBLK9?e7Usu1ugP@ES%I+)5JtC>RkS~t7WH)8xOt}M4WQ0BHYs3T z6sIqWsO~477A4L+eCt)%@$6{+B!#U}Vw+VHcs6;i4a*iP)s=ZStf>L(rzXj>`(PSz+ zsS>dl5nsWfXQi-Y?wJ~%nS$sfl@@6o2a_>qo@K2AZs?5v0Cyahi>ya$q1ar(w_tNC>F(^zpWbY(MEj+^gJ7k%67dzF@!=xVPHsNFdW33iLmK3 zvR`evV&-01WZ?*5aizNwGwwXMN4rRLyuFeqU4p=wdL;!Yx-RYe{)_jS30s}L+_!en zO3Cv2ZL!@LXXxvX1Q^tzO32rg5wcHgUZD0K!%HS9#TGQ-i%#^7#T_;#;5R6;6JVx0 zB5OD9%a>?uktDt-3-uPnt>3GWBPzyBzEa^P#@*1GYEz#SW2b2q%3dQ9#L*t9rkL>U zCAev)dVe`hrV1s+?(9X-Pb;ABg?2H%18#!FSh8gujhQ2Z_l~aP3N0q|T@>#}L1WI0 zc|uYi+FMgTf;-XU$V)Y%N9-dZV2WrwGQ~;1lkf>G;I*wg)fToYy1Xj|m@hgObUhCh z_*7^qT14zCi5m{4D&c8^mS!%*Zcg?=u-vx!Cfyi<(SwR)6Hd86A z4=p_`V|j^$;};M$i2`2ir0vyM!Ezn3+edLBF9U@QW((vp;Vco-_u;K+}MaY3-hP7{s(Kg3S_o5OQ{4Yp2 zIUCkCqF!CtKNhAokd*#LH$0qlQi`-i5Rj5zJFa)ELuX+VlM1{MdFmmX7xo+SE*)Po z8WOiRs_-mP=h5qknTbDULRXV|_$pK{fPaa6HPG@86-rzzk(!V+$rnZDnfXyb(F>8< z!6@-Xq=dr1f*Zg{?)hXwGwgguh!re_p*@3rf^9znQGBW~jl(|@9*Kdo zvig_jJ&Q%Cx+?t$EPD((cPzCq(C{Hpv8~b55oW@k_GM_54-Tye{HjEwxUr?Ql#XP0 zVG%`|m{I3a{6_BZTWt$Rfmp25;|`1wMMteFTF%If{fvtgVlocN2_&IX*CTc%rQx2F zj+E~Ek&k9Jl3T%xvZT)2CaWr02@ex&X1}rGM%KJ1@&VpWNE_a<2j)pXaG${p{gUO^ z-KWTnk>FTKsR(TMKkW@4z-c!34{i|hnu(ZA_(EpTb7$UPvBHeLoSS79p&*oSr=%-Q!1s2k)DF9EeziDioE zdF@2zO}>!TBJv{*B#nojq$Zl=o8hMCv^!CLDzY1CYfLPe5-_X9Um&tET|5u*(=683 z&V(xKtr!l@EGnn6GDu1(y$h+;CtPEt^98;MTLM5?q?_HyVvg!*3DI8D@7Rvx5`zbwDa+DHS}toms-YoB>QEAIW%VhIRDUisfU3ZE*Y?ypj(aDDzQ->$4-1ivb0bu$1 z8-*`n%5BVkG(1(3ASl3R;SzjNdmjR;6oMSQ=(*^1w%0cvXzYZ9?_Gt1aUmZwr|H(| zBbTt~dE84J9?FW!wizd{VL`4|67tUkGXp66$HBey2R>Qq#_%+*rRm-?C){;K*Bkwh z3>M#LSC^z5HV-30z_V6Ez?j`3%)JRTZzB~ZMT2@;N0nnYgWw2h_X2hS9Dd;jjEl2< z4+B~7tJ&-(H^B0>S$$B3&UClC)xer+RaF*-;Tuu$xp$vxI$=kwT?e7!h?%*tVpCGL zHW5pmSK&i(Gc-ou-$Tl2>VBp@7*&rV+Oqr&{t29(JE6?cKN9vhBP{(apSQ9yRzJgJF4-_7vO~6ElBa*^VS4=68l!-+|Dn6FgSH{E)v58G4iKoW7 z62lRf23~diQ3L#pG3aBX9tVQeO}-8ODBa_gu&2Kj^-F0=5pmbsPr_lQHOo5)-j2UJ zrD4mdvB{AXtPt&N!$a6}Ez%NTOQq{1jI=gLa3&mdQE(jA01_*ZA8y=De=a_c?gn&;VL;oZIL*pB}Xw~BXNhrq+WD8`U-`L zFUU&j;&v9zh!|S~Yu-&V9N9$oWYc4kHIXKR(qJ?-aaqv{kEHQm_Y+39ZUoqk#F25X z@yZg0B>5{c)3yhJmJKXe8MQ1Cv%s?POk|Q@fmdm+89b7z<3dV1{R=kG@a&C@5i96M z$z(JmFFupZc@^m4Fpk_9O!1+lkkpq)GmghHU5f3dRCOek9aQF#juj&TPNa%=f$H^q3$D2ZK4y(5^Br#W7v?)2Z11NJ;KI@%%gMI zZ+=eF_;i_WZicrjfom$ak{1+(z@4!YJhCkWF9Tz#rUKA8lq$ZHRTxK_J>>|riPoGs zLKD8|ac?x(p3DfeSTwxBfa_xS5wpR 4QKWpmDn5y^Tc5D-UaN&o$WWaoS@KQw zwxt^bOTMB_xIEe=k8TD(lFA%dcH5c}@oGp6Hlc{FqCwMA~wNrVq%C zN$#)7i1Z6yR|YdYI_}CdZwFx{UfxMWCN)OkhGb?Q3#DAU7J^~@{5#lDgteWmoQ?XsVSY^(c2|^wO zhH+BlcdtRR+5Y(<%74B| zvS0JuvD@}oj)mw`Vv@=ADeWf2Axg{dsim5&!~EKc;b=glw`H`J=a_^+Vt z$KXzhL(YQG>VzaSkawfNr$gwv;YWaz5vXwX={zrnCo))i8oe$A`mU@>E4|Zmnij5T#e~%j!LW!|wmv!TOrD1Y484V{^LFq% zabje5b#fbLhCacVDS8N@9tFp+k`1$NIVTCYdX(Va@gq?!nvBv8%O{XjIt6QF_Ldjc z?>QDu64+8KOdN73`b_b}k>PDNI7iKt6T3C6k-%LZ8cDa^_u#RYuNkUpy zG%*hLF|$KaS#x>|?QRa3QD}8t7p>9NU}i{LB4r$|ocMWs3q$jepCil;Ls(d&Az<8N zV{e1?rqa}-VWsS%U0V?wjoU`lb}*1(6O@yEA3CatWrt(xF|z!T3d4GLkcmBnpu&NQ zt9~(I121+oyC7M?*ow-nQEhg`gzd&`5Zs?5{Ds_vwoSEvdIxEz65Pu)cO{ne`$)2Q z2zfqWM7k$ZaJUqwwiC$jc8Mq=MFo^t3KwwTV;MtE8tXBoF*Z9;l)s}O4?`wQQgHYZ zLP>D2IJ5K=z4u1rt>Uo+F1h4wdR~_$qsay($tZn>^Ky1#O`qs9xbPM`t4_lxfiz;p z8FN$!c+j*uH6aVCx~grZF)^|hD6~4Ri`MAr7ci-`!kA1xpXvvV5&QB#bjcv{hAH35)zQPVkXqyjb2E(HGL3l1>9XGTfP$Z)W2j)R!dg{R1h&<(4pZZedb= zgV4zM(8h$N@Q-VvLbn}@l1P=GW&MkC76$XdZCqR2ghVZcTRwh+`ARAv$RECh+H#C1 zMtypZ@~%*uEu#uyr}rV#Hqy|QVBbbeH~nly>@%w8Yr3Mk(AQLJ1II~GJmZobS#E0& z7b0o}rO^(HQ=-!8y>QTwxq}>^PQvigm>;7Y-Wr(=q_0PTJJ)&o8~hvAY-OOCv)O$L zKgjfF6NFz5Sg}MS(Si8&$~CI56dKW?_){jAU`v^Q4LYn!Ut(~}s!g~=aC009{{TW9 zUZ`wJ3xp%fV!?LTGd5QuYmiHMzu zQjhg$d1u%LJ=u(M$V<-BDmKZJ+AECe0>YaLrnf&)th*Ntg~b_YNz_qjY zTI%B8D}*u*__=g{kc1>&5*BpU;DkZjC}BQ3jV#t|=$6mQbMr~UL?xERr!>BV=27H$ zFSJjEnyWcNljT!Vp^l|~3rn{F<5^9+4Ji4fG6sjCQX-LU2`srFj}8suk0jM$`-+gT zIwB;#rHU%Ul1H5KrKxqgCXMN#(GQ?{n8%^70}R7LC1+0Lx6}J0(j?0evMMqx@J-$b z9MP-D^Q2#xu&x-oj*OpymseR8Z&s#{3S|70_y%erU`ks-<@OhwkEpp^k})g%Mw=y~ z!b8kci2tZ@6DFT<*1mLTb4*$vSIue zK1L@XvR(NQt0`oW+AM4(l15nMlSdEQi`-ac$pohFcl2q)v6W^}V=z1-(8H>2r3#bX z3q%WdwZ4R}Mm%#idl;7$!jD3u(AJi&{{VsIVlYq|N|GZ?dR*laxjlD^Ue`N;5;4Mwlr!*b>6S{+Iu z!g3B|dWegXA7I#S=&)d0tF3G$ntY)w`ig}r1utZX*ZgWrS2b=#BqWx}LL8?eXi(t9 zj}89-fMYCAvoh=Q{+h_}#BfU_8*!*@aaMMB6*i(M;0JbJYSBg5S zx^1Q|K(SO=9!^QX`YSYU2^h334v?CLy%`4v;sCQkmj~xZiXrq5QymtQ!H$Sox!hX~ zLynX^%_}Eip~)I66#YoPuL43x?V+sDV7fQ?SMfziwIXxrNF7ou0?X9%RDO1Dd}{Cz zg%m0$>sBE$or!X{cJe?feV*Z^&h9h*y=HNQY;3Dl(Om3ueh{b|nTH%k6X^}eWwW$=kH)wVPE z(z0n6{KoF8Lk5%{WN!Ck%ei%O_U_?g;*>I*b{MI;x4eBWJ^C42KIG49nF}LW zlr<W7N43WPDyI>8J|2Snv)x{ox8&C9Z^NizJ3cp)UMD@xFt z$?Y2$+!;pt7KhU+y0)#y1m#X)w-K>Dx>ik{v?D*7CM{7HI~(*!(kSri(d0ar3u(7X z;!LXHf#1+WBGt?_j5^Rf)AP|~y#&G?HW3YvENfy|*s=U+m)?8RdoU`3BqqHqnvTJe zpCkT}yYr0ZwY$O|*gds*axIH|Sjdmd(vV6glP|93c|uOlC;4zDk9ilc68ixfn9r%{{Xrz_=)f*G<8G9 zwI)cCYcC)EF{+Cg#1yxWpYE2F;yv;OmG=7Li~!WL)Pf@x@|{9 zDRQnT!kd3yoKvH~jQ&l8JR2KR78|urdj^_t_M=GQj9KZ$9tT6CuGVHcF;*y}KQpG+ zA`+BkvJ~VUnXAUamwIDUO1zJOB}ebS$i`b4zqJeKGBu2Z*(EZD$YMk_l*F|d4BA_l zrou*@>{!h0%cHp4ZsN4pceVcjLn#H)N0#KgUI_5hky!|TWH$3J>bHvyMDN~-!=4D9 zL?^M1!rtUoR0$p(6Ng7sJZMX&bb4Nhq)kYY>q65-BS{hkjR;%iVXcO*M0(F#9tJHA zm{HLUNoxbm5Snwi=eFG_IG%>CHmQX&5L)OOP4ihNV|`0i#xdk{+=^L+h0#Q#^3h$s z)*FWcxtqc+ys8lO@sjPP@lBx#m-hfuWPXF(Z?N6PKkt6LxHn?~?C=?J7A{@MBNiGh zq_#{wOE6v--IjXS^1lKca&LnpUB68HPuE;>T$|skM`)JJZ8>-ox+M;XeH&__JLq(J zUqvXRToZVrG8T^FFwn?Y5^B!;F)c2SOQ~pMz^y~cxb5mSXyi%}Oc*^qC?W7CDrvZq zimS&{(5)wz5BU7Jfut#?OMtl1dgU-K~8wFY~({ zk~?iEUPUIItTM$(d3BuDOeq!9(aI1u&v`qKb*}8&xRH{69RC1<{jYi#H-6~I*72~k zp^ac%8b`B3#>w%NUt%r#49_xz$001j2}s=8t?BjoL3k6)KO^`tiynrqIe|A64Mjzb z4;5L^`nwBC!&(KPd8Qplt<&QeOniqq!j4jYEz)DZZc_hA3oasfxs0ax zxMiEVw!#w~$FYlYBS^cDtI5_L7)K;9K}o&@zt8Mp=!ro7R(!j$oRjW+03OhakcS~& zQ8qW>i3EkCaLYr1Y_+eg4=|C5)Y!Kc=VSQ$8p3002XKEOMTz*Rk~kS_fAFj;p|}Y9VMHG1tDA&~#OFVhas`D`bbTokhS-BTk< z7g4PYN8&dy7Bw;CNr}423Ueir+*PG}SLKJ{Z4U}*{?w5x<+e2ePIsbNa$(*jy`P2r zp6XNB#%z)&-+)ej?e0g2o)}Lv2M}yiUKPoIyYOAL8G0|0y zuEAoFd8^QrowVrhjvBfarQEiiizyBqOEbA|;J7zr z&HTJBPi}p_k2*d&7?UBa%2{LDUuA7;t`Cg{LNAqJEW8FhBvUqli(KbwZ%0N&@IUns zyUAm^7XxT?S|3SfD%WY?c?)nV%NVgmSAm3qbsZI5O0Pq?SgglX=7|=bm(qxt^39Be zk-T(K$}_OF8|Xwtqr@=zMC{oSat%Z2K&a}_p(_sTHRcgjw&d8QzD#YrvC2%bAw~V! zCYaihJ?*0>oivG6z=;X_*JFM0sWI5!f#LAQ6Di+jOKisMoc{nAY*)PTa#A~%8eXjh z+Ma})aFD+M{7dSzDn)_z3OD~)q1-tEIwd@SX!2pZ>iCAPeQdSuBk;+ zT_SN0gD1%z%Aq||OpGLJU)1!jE%swMo(B}-g_`9DB^&!2AEM%raH}xoWe%V%&JPgFb-DT|#V*@@ zqRt3tOzO#%S-`u*xkdRX@`g;%#O--Xwiry4Qp|<>&32;C7##H3FghT+2b4FDaas~NOml30YX(Wo zCOhi6oL*4B+BWH5X(aSFSdwnsp^LyUf^9il31;jy_Km;^h3!q`RLHCHhfuoZACbAF z5I~h38!L(>-;p#maxX5sp20m&PUFosFp10HwZ8);&qr0Jbvi0B(N*Z!YTEV?tN54F z@h>H;$CMgg;ub5t7G{ZYBsD0pzo2UNZYsJt{{V^szE=qZkF(lDdO%vFJ7;!NnX zG9kFzmqp-PG1X~gvFK4Fx~qOvBc!C?urRWBHlQIP7Egwlv=iTHazZQ9A~>Seo-A-$ zUjsYYaJ6zFg}~#f7q%1{cq~B=TZSaKWHkBvBb1p$Aj|qESLo3bdZ7ux?yA($pNF{` z-}4W*wuhP`(IMqi$g=gbVd>ayr5*jsCx~ylCeJioC#8=|(3M_>BsHQXL)>Z`Ty;H$ z!%l~XT&J}Wp8*X>Jq$^1&jCrNM!>cS*zCtD}G)Q`#UMQEN(33ZT*)e=e()aP9 zGFiCouXDP#fvH2=px8a^hBe}L7|F$?+L?%RbtAiXJA_mtX1HVqWBoeRFR?r|xW%}H zaShr&%YHvqFgtFvdL(F4IwI>oA|1A|B678xsB>{|(XdTAEep`9+#cj2&jX~#spx$~ zs_Mn*nUL=$C5?`;4ebO)84AgUK*Tkbsi;FzoP6S!Jg z!7#{teI`MB2_GsEAmub)?@zN`ZiWSI*BT-o>d!*&N0db;fM-J;H<%d%L9)wvm3-vdgObD;f}POrc_G%fLj=S567JH*_Ov+#A>|8E98ww9coZ zb7Jx{SWhCd=gn0frmi%4i3r4qcvvvXgS*(7W>dhlZ9W+Jit;GsJ82;yDT{TUr^e_e zcDS$DHeN`v0z#OUYmnGdol4j{dgMKXw&!JAE%qavUIW80Fv<(;J*_lkQsd~r5Vw;; z@`}D6^Y&&hG7z_nm&~~BTW;29V^LLu0|}>fxXp%L<4wjCWW|@!bb>7?S5sc~LJ}Z~ zAupaw8sBZ1g3k|I9T!2>RgY8;dyKtqvJ!+XuZPoEk}xu&#c?=jlNJPS>njE0OVZU> zQKg00nVLB~H)|W7nm;5}ik6IA%d9mo46voH^~kU?CLM;&EzJ^b2``1ArjfMa;*0Y> zak4h72&}R@Ic8oJB{G>KCoxu4(oKgHgv-x$J6Hf!uEXJ|x z$vf4L0~SO%u*P`UX~^WcYI&p#DrOdRbHJKQYIS%m^&L4?2wGYsHDl8Uu?N0?v0;** zL2G*6l~+XMMZMvZ0U=Rm-s#9;V-ze^iIHN4EY%*&@`UF@(5W@khsdx$f#_Q8S9@UM zPAK3`S%)cbg&9xf=ybsEC4tbqvV@3jDdMM%5)x`{YWVS|g62jKBEiIWR5q%o!cvFc z;>4107CA!}@4kySIY^X|4tPgNHRY!DMu}rhJqf5ecC1WplzIOEPueF^T~UeTRk6o? z4QedW(77KXL?#%_1&VK8QD<2;R}YbUM`xw$64JFH&4xGSu+6gO1#G`9Yg^RE(MPsq zf=7C+_#aJX!goUgUW-CQh+0sZhlVD--V>Eqp;b!>DB=BtVXws&hFSdsfH+vB9hNSi z)T1LtIxYNVdOlEnxBE6y3m7^wJ!F5=n*$aWWH1W24G?udr{4A zn7+>C~3F|BBW8^)mf1PD(wY-0gq+hS2(^yYOI_lNaU^`WhhG#3mz4p^<1E+kcUk=;-;v73KVlhB-pTE=B52TMT`xw#<;7{{TS~ysZSy zEe#1H)M%5k`fZAwF?G5S>6|zk^0KdG9miHggXJ>9{?)SS{>nd>;lW_zYQ90DHr(hXn+m`}qB{@$FdKRXPB(CD#)C|neH9&BdSdxfJuHmg2 zi6dx)yqj}(Wz-*ix-EN&Pvmc6E4eEYL~%mE!e;Ww^uu=*72D)NmxO}A$8kBb7OQ`u zjYHo!q8mG_8;vA}tjhuV2XDQnNy&7r`Vu;q$AdqDW~_s5ety*e-WFmY8#}6ZDQJOI zfeIlQHdbMo7+IP1CBAtZ#>(xpI8#|qYDF02B~u?$3HRS4NaT-lvg;AVZclw5n`{fy9$4jDjkt=(=dPjv0$PMry~)_=*~pq0!L_ zta?{N5sQnbA&)Na(rFN=vNr<2vRWA2Sk|)3OKv6EvzH^PHqeaS_##Bs<4wi)sI=rE zY;IcF7IorU(rpPz9KWqG62cL8JGF!#FTLu zQo){n*b);v?D{Z0Sdnr607b!6Zlq|~X?7+Va%ae#oy$QpQm?bBr!FMUCdTdm09eH) z+V?R307fa5#rB(9;4x75cGkpn*+yLbMNR22ENE563Cr{@{gWz@snK;T3_TNf*m@lu z7KX>IYP@f7*@$FjA@kF+n~vB2(FoUFK6a`|R4iR;o8HUYncc9Tga<0ZSL3n>fhCHOG%VNpv-q}qN(g+n}h z3rcQ6!5e5>wB=a_7cI@i=!R{MJsXEw&_PPXm=Bd=EeqX|$fq%XIxQM$W+G;~^f>+m zpne_wrZRD1BldLpy$q<c`)Im`T6} zvgsJdsg8-%s>fJXR+UFeuD3*pl*Xv=F$h$BG_G=uJUxe+JugxhLDA&1rz}x9qw`6w z;t;eUX>?VG>N02aI5;j@yx(LY&&x39hLy{a(&~$R-34mxu?5TSQjxI6B^($tjVFA) z2VB(H`#pRUqfV?bND&nS#*PgY*Pa04L`20diY{Qm-mt7SMnnP2IQA}J1G{4HV#Bh6 z6%iDyh-DSAmwnG2x9EQVzxRG-hnt({p65L0JU8sF!c4rhaP+D>C(iXA(W=wic`2#S zo6cv&sweY9t~?9A_r>EyucuSHIz^=WUVYg-uCvqczYUr`;?VY(&Q527atka;uIWxs zT9mW9;x;Iud;7dO6N_&Oo_O?h|J#X$M(??LuJ!e?13dZ#HOh-0Y(W<^zb z-XigI)#RWUm#jmM3&Yjh?c)5-za9C|XGg%EpzRO#IM2M`%q4eSdHBlU3tz5JacEl8 zb$(OfP@!Qjx?b4xFf=hP-qH7bR{z0KYl?Pn)4KJ>@TQHqKE6HXO`KG$U|=2YQE4Cl zhD?pbuzT#bnsb6` zt$03Y#+stB1?{8fZGSl@B>DZ*c1|TrT~78|GWUR25Nltpu1^!cD?RU~XDx_yG)*bm z#k^@^(~ui=_vS615_x)Z>*%K2wmoV)J+EE-&V$~)mVfnFY3v(b&FS99eD8=Cuc~_x-gYE@yOnq85tj&RTV|LdLiVa@vQh4p5=M58jy>v5c`NJE>yPRs% zzT4;0GtzH;K2!O5L$%K6O^*ZKE_<_~rt2X8+K!W&o_wA;v1=v&*stdfyQMy<^U!<$ z;sN!;+b7POJ0U)yY3mjBWFa-9-!Jul%~-x~<_6QS8WkDJ5A>U7@3K1VNE za&PV`doZNaunot0o!B&du-H2OH=kKmDh2!^ufF)^%=6t%e{-AeJ~Fb!hG$O4@dqaF z683*SSaj^>o=(?V&;FFQZgRQKZMc?Wt6uZ(UuIC``aO*wdsaL?EqX)5q9%K9uev?% z>ExTuYF?=w=5sc=!jpkLKKXgO%#0m8;oR@5$@BUAL|C;G#*{h-w_m@o^VADo&F{5ud&GtP4SM5Kdwu5R z&ly}JG~o2yhB?dUpG zF+RO7HaJl|{9fm)xp_&6hvLVdG@ict&0|-+O6}ezEnD-^Woxh2-F&BYERptBxRf}n z`lDx7!vkAhkxX~F{!1s zqSM*jbnk?oO?q{GSTweH=iGOVGIsk#%5{zTn-f+$+smP1`Hf+j$#E4M89;w~Vyz*FHVPyMq zH(WY&da=f@SFfDhp4~@&s~prQ7XLb$cf)(-sPc9h3Dpw{`udi=zqR7CaF@M4d&>t0 z#1`!JITBmNF@8dN&cjRYH50G)pB{c?>elE-hbN`I?K3krrqQmf4{0ICF1PHLy>Rlr z;my0&KE1u+o+rF1Q0r;b}lNrfxX2m6cyF4LxNpgNv>xvOM{RZr4 znDTi_hg-1;{w+?=JU#X8q3sa?gU9~9d3Mkn{Gspc^~v$M$L1sr$V+O_GcB*@#Q)tSA1VL) zuf8^MXNym*eHW&$J=To4(#1d$dF4YtC8aRtGfkUUYbE zlP1lq7h0IZr#Ng_+9+(`ln!yP%jl^gHQkzyVJ~(c+abh#P?uBI&bL$N<{Zvm^Dyb% zOV^jYOZ?T`nZC_CHJr4?-0AK;%jTqZBc1mA{;AH_B8z6GpS#o`q|d9&efQFv?P|Kd z*3rO*_gjy;Ut&`8t^wIAhB$T_ekrL)-1WQ!vDwz`;hxrS;|_nS{i%?2H||5R;)N=o zcUV+E;BE88J~@>tPL3^I$T{(H%kkQ-W08&>y=q@7aQR%R2rGA}rf+{!Cvki9*6_ei z8~xh1j;`%=pt!eNg>AKp9jKJmIkfV&0~bCQnsl-IlUojpwZo374r?86t#(_sw}r`P z_R9EX2|uMG#xX9~i;^gUzmz5D9D*rOgXg?ikLIqDF)@$&U6U1y9a$$8$gU-|g* z2wz{XC4GAAKPK!gaqmN?>Pfr8GyEIgial7~XF-0_m8Y*aJn$`D`NB)*MGm7%t?YF3 z)Yr)VhxV-R^eEipa?7w@tN0s*-)`)EB;aO5?&eQ?;XU@R_BYy@|7k?-JEy&6a?3e) zdU|v){*%dPt$jEAWr^K;8_W%@x^-~az^kDd($I?Ii`&m0xnuB^?1`G6&3M{TdZCx-VLF{R_em}LnE zZhLLKXU<*1_x6~)b4+-HO8VH3GY;1B-qW&a@!%Ss&FbzNf8%6>`zfU-J-X$&uc-T* zTDgNS4#=-&SF3nt_(VI0S+T{e&EC~ZnKdCU<3rsoUB;g8`ekG1W}T|kcOAL6Wnx@h zgK>RkZJTpqVq;g+-RL`A);RhF``=ina z+9S5+Ml@||KMkME7~Vc+-JT9>?-dy|HmtjPW3Kbj*uuefw%@qndgsC(mzg&v%(&=$Ja>|I#BK8UaPzi5O5ADL?@!WL zbeOvS{E&sGqxhvMKED2~nzi}h_^Q$I6K4k1J-BD^rcnbA$mSnX?l6JwFy37T77XU1<4%?AnmHqiX;up3!=b4K?OnNMEU zX|-ZN5xd=9cPlR~oArF_uTxq#6_Qf(UU$p!J0)N1_xbwfy+=#UNw>b;KUPbsQg_#t zR`{zwElM4j)3Y2u)}>;v4aIsbb?ssb4cFe!tkmFgP*(?Q{FaTS^L)HqyABGeD4c68ep|WZQTDco{Z;Gy zF|OZ<^v#KRc_{}QZ-{DH?)ZWM2`_hDU8{Fl*5^S(4|}`xD3`FTnb(dcH=Zx-OVQieapwX-U3 zSP(NcCI5yg^taD-YI(Y3OxgP}-epeBB-il6f%$3YCl0$iJ9O;b#l0$*%$+FUqlEXx z$E7Cu+js626xpnG*8D1$-*5TixNJ=a^$`BUeC~~uo#$pu@1GV~GigtnU-B6juCXg$ zyNMXFlpR^4SpT*LLYcPOtAVz0`yB zFLQ?m4t?m~s8*?GovxJ)YLmKjPUb9m)b2XJ7dn`qVK@ENMZVrkpCgNsX1|`ER&n8> z&kZx?I+v|KZ*g?|?PE_ayX-l?H@2XRTSlk-A%E;yQ)1NQIr#-!JA^I#TzTjFR+r~a z`dWI`nT>b9u!}A>P2A@{(mnUouGm4}1a(Bu!Q;2b2j&TId|jp^OJJgx*u|OIxI|ye;ge>C)A1&tW4|@1))xC)NYddym@H&)Rv)_GJ*Dn6vogY3~lU}EN?u#={x#XxXGZwrJ9hR%@=QXE{=EG}zbn&g`-MCH_WoEagO;?wxyeG6_&eb~j^`d*e z6zN&D*YvAjw^cszvFfQSh8WS*#W?xqkT@5gNp1IfVTfPRJvnnr-wzBOH@wEU@|(tW ztU1aW`a;DD|qJka?-VoK0~pvyOdX1ywRb87FoYkKERuW~SCSmtU^r=-U1 z$_;Aa9zJfcOW5wXm4l9s4ZU%&LQ0>w+nt*H;ygR!y?gW0(IeW1KcC92SQ}@5Hu!q( z9G8hDy7`<*7@u1=Vadw_i;wlHy6Rn!$@5ytd4raGZY3q~!LVPeBeSr<1R zD!%QP_ea)duIcW!a^=YLZR>lcO^lO2EiInXVQ|&9?Jp;M?hx7YMp$U~kZxVP9OC0# znufi&)&F&m`5C(_+E)!aT{vi*sj&yDT_hANiC+_N>0lq}b2*xWh6a`TNh zpFQ^}DJ?k?)8lEsDP>+=ZPtCFTxy@PvrethZsJ}c=KM~1%i^>U|A@MUa%I=T2G%K8e4*)NSnWk9ECAc~l?Y;()br;n+a)d~=3w^jSse-O$g7v9b%u|f5lr#^`I z{}++Zmt6}Rv?){D-S$QH^256iH*b1xc*^z7GpElx9QK>=wB~?$FIFv2-_@>J*yybE z=pqg^6ISl4SH3E8n=&6ne^%8Xy# z$yMGrth2)bm%=L=%$&6AQ_iFCO-U`AE%EuS&#B}~3F#5JH{;_^+;5k?w%EhDWoMMf zf3x1%zz=Nu(y*`Sn0lyrOqT~qQxZ}-2dAY46xYAU8F6m;y>q{|b1@yC-e~-FO?Dl9f7O@77WbE@9k$NGZ>wK3C2r@L z8LZ19|4lWLAGX`DwngDK1@mIMG@HNAp_0~lR9EZbJM*3=-Fq=3;+^-fCyBdS40LPL z%6rd?O2N5}@vBJtpWBgDC#3Wf2m4QHSB_+wcUoWJw~V;ntYqlK!u+Q~(A3v_|yrKuXFS&ef_xzMtOYY&3bw@4Oax%T`!_^CFTzI-M zHN!cx-LT0kZdAJ3a^|L(ska&&s6RKQ{DbxRHQT!dU8=I?`Pc^2au(LVbo^xT{!c^1 zcaGDG`#HUJ^!)64aP<2MUfOR(lDC{UdsP{qA1T#*-S3z6!rhaO%_h!!9cZf7fB(3K zO?XeQ;xpYlOpNWAvdcctz02Kw?oo^P9Pixxc{YA~>*Mi(_pW+0s{K+3Enf#e)jRsu z4Li@|HerL-ENS1|JSL#{qj?(#{z)P)4IS5~S>^oxL5@DF``;d^H8|zn;JMdkYs1ES zJB7V|*SP$UBeQ1TeH?ZEOw#V2+_hbHT12s|_@t#t&zHUVS=Hq;&{Mzkj2ll|{V@G!LZSrs9|2KEW-zvx9OrWiQ&@=uyk*mpngo*pXdn zNb^I(U*_Zut5W;+aL;btzm+{J_BDZa(UGb%lV^`OA^)zZXPpdJYdbcqrU3>QIGECmj4?o-f!jnHqvGiW5=+)7( zr+fDew>wm*;CJZd8DZsbW6~z(yA)iGzOa2sNbi8_A1(eVQr2_djmfk7Eva99?u5)e zgWHDADYkKgx-;T>vv|u$`x_l5tj}1beym^68fqHl`<{+s6c)JiMa z+F3Xqd%!(=df~f8T8KHpsVDcXxSTt4wY^X5g(@Y+RJ3<%oq6z++`bAw?_r6))qJ~b z{nb1BWgVw)?Ps_J*O)eF!u9->m#+WnHD-u)T;FdFKI4MN#0KO}4;zrxI3aC8+davd zJ>tB>j3Qritm$(K4cby}+?n#4Uxin@()L9%%hG1rk7%5_EU{+x_^did8b`Y&m(0=T zdOnH!!}Km>#-{AD?;Bk>eD2Pr_;cT+@#{6WwkaX2cD~wwiz|~B9@uA}vT5OMyCsd| z+0cg-k}lS65yRI%ES<2-ymWT;fv57m4=x>F&DmDEY}>bf0b{&E1H$e!Z#B&)@7a(; z7wRoJIk)Vyr8!Rrj`bYMKYFqqH z@rBjrEZW|9M|FQWX;b9pWqsqbdkvrL9MELZrkznKyYlxo|M)FE@^bDqe45QKQ8Am= zM_4;9s$=i4OfniCi_fckLA09F(#M=V)9pjGIc4_G@V=P2drO_|Uafa6s8MtF*pPAu zW}4kMC!O9r>G`G6z1DxZRd!y(4jpPOsGW8&!uwgjHV5uKjqzUIwd)_=Q&!g))%R+Y z$?xH?9bcOIA86Zi!roKv_$9glWBbf1*itf6J6YGOMuSmh9LI-_e)Kl3`Rt{dC8bKo zyd>AyfPlMU%l7v7zBj2>;`RIr92ui$^2{k@fZIjrEX5~b)ES(b9$PouUBrt?yB?SW?IYaE;atsfQnnVogpKR z2)iRI*KfQ&dbaQ5!Y^(N9+X*Yy2FuL!w)pyFuGaz#>9?S2TzHpS3Pq@mML`a;|HQm1zqsAJaN*X(Y3nkgGCa!`pM3au;Fk_> z-i=-1;Z-XkFA_(#c%hdU9bPPL?Y}u}`jk=+;_Vw(+fd!L(%YhW&gnyY=U&z9H@IwA z>t;Vc!IHA7xP6yEht>(5%3koObRj8oL#OVJb^L;F&utW&zM|@YXI}UlrY`qa<-NRe zJI!xJm4%yZ8H(*$u)u!Y#njDbTjSqm8VswmdF;1?W$OI)X?C+SFVFjhjP__;^klKD z!{YoZPj|%}T`mR{sp+&Qw)ncI9`ioO)LhvS*^v>pk^Pp7s#e|>OZ z^W(4i`}RGOjuzjV`?QEpQ`eh8WkSFHv3bZT$2Q|nTv||SnNyAFt#jX38gBA);Cco= ztiR>qfkgxEdu}=DCKR-AyztU*O3yd94&2k9HmcKM!Q$Qb&fRu9o*h3j%I;4xtNWm^ zkf(JHOQ9E>qrxs}uOhP&itN7naaxBHF|}{IK3QIeALKr=>zT%-OGS)3vZn|?t86uP z{|8_f{K7pnE|0Ge-;{&^P z+i)v9bGmhOW}Sj{-&`K|FI}nQxd>~X^+E96TKv$dGuj0Nl^16ZtUvR7_5_Dgz3mQ9 zn%ldbwdBPi)AxP8`KrE=b|AmzVyE;Zk3TMDS1TR-wUXzy9CLBIR{c&7jqAC)d!-Ls zcAR{?bz+uqX#3`&ADxPSSXpjT$^Lgc(sVnDi6&g|^ zx%kOy6MWK|omhP4Xt_(#*BbWe!)DAG5bT)to5Px9hgp7oN4+jsT0Fg=mE-Go?YzsV zEqw!yzh1DUu%43Aq(jLPWAR%~>uf#P$9KZCexr&q_z%~&K?&o_{vP1ICM^BKvM)~6 zBe(uKxF|kytVAJ(u%r+^mP`;B$*Re$NfI=oGn`0dLz8tz(oI+-f+`a;C*m{AcuC+T zmX|ChPB3wznPXKNX)uytCOVN=GqD1X=R^}{F%v^00^vkWvYH9eBpvYzCup)rfIxsL zD3Vo?bxkHJv6>`{LUctYNX^T-Su(Iikp)dcq=iUUBC|j?OPCWx@{$NBOf-TOR^<$n zEb>Utv5agr5kuv4GiSvujTnq_(3VyPwwKrH~5bd?w;PE=41F~A>k@t`MJ zG|tL!gqH=LmLT$+g^@)wv7!)cp|{`#u`qqRCb>M8iheAhJ~>s0cI=sUxq6fP=tOKxD^W ztUwTOrc}*%Nd{b_g%A;8W{EWu=nPe@ifkpEVUkz{K1x6a2VIeo$c8M5W=TW`LPM~E z-3mu|8!`xBJJi5C#Mg*O04T8xkm(9ITg-&0vPFTalBh{UCExdgq;8V1g+=XPh&F>< z3VkZxAQa>RH?)w( zAsGAtXi*SA=%peN43%R|98{u;fiOdeNg_NEO?11CuEQ=K>$ofHz^C%sssm@}NeKX% zBA_2cGZ7J^0GCh@^e4mVCQcwkfC5k$FSH*P8A&7(?9h2oMPG3u&=kth&?FERG!FB> zUZA1;g#%zhI6*a03aUg8j)F~p50ebFbyP%S zI1zJ`Bw%jCq|8x;0?n}(I5y52@^Tgi`s1t-q=ODD2s51ZZ&Ydu9$99>nvhOLfdo>3 z8_k04wtB(PM#g}`Kx1Tsmsv1TK~=J#G&AiA2n8J5z)6$=Vl`pAL`)P4cEdr$>r@Sy zMG1_oo9MZQ$iM^$e1sa*H3EsK*XSYvse!NBfO$?Nz(E(`@kPKK$TZ$e3pW@JG(?rN zn6ObI3dd@=l)#xFOp^>VWkT>y2xwS&95G_hk_n;K%ftjS#G*-H2v`eTP|yGbMqADF zc;c1-G+s8~FWoK?glV!!3zV%0Kt;d=b0kuL3wdRoa5NF26M-^8Fv^rz6+&^~W~egC z!~`h>TciaNF`R`K1p+pF+~SEy2#TTuTG@~-Jck&(+iH}p5P>1ONfsGN$;q1w@*#E(sZk7O!TvlXMB!icAFjvsw5>mi% zmgjULS)i3!M(-i1L5-HJ*hPR(&{2eu@CCQP#9}K!#3gF~j%-FG)mGQA-BvZWn~t30|OO-o6LeX0U9wFEP?}-NGGrlJ`zLYtY%ICVG|VuNujm~e3LBjv{Df& zDQH)^ON3=S(UDFAPn;1>C!AH4K?&sxRD8(7SyYZLsFH;zqAIgs2pU+2KFCE|LP9gM zCJE^bY)2x7Lnm0El>!isHB$jWzyOX3K1x8q6dGc%jKl&N>7WukGSe~*bO@2@sZqe0 zh_FeO(SC%1zl3O#h;)E8LpKE5>;nxTn<+Aw)1gT$_&_%eRRD+1Sw*sF1Yv@S;00kt zc!%r+I!ih)S&$LVDg zj)e$B!W?Q7MY5VW7JxW+3PrJ~oYhQCAsYD$8GNu8$WWeex+?1oZE1m)%z-xcqN#Kh z2Fa|g(<~?)A}BJea5}?*3BjS$h@fF3hjaHAGLP&O8E7n#V3viUTL=I(2|l6<-OO1v zicAy^O^fnDTf{B1L{tgLSTvw5Hu4-{$oDEBDKdUngQ(Od3qvstfPjV>1YiUNq}v6U zg}YecIUO8$iHZr%W)8>}GZE1nCL$A4yl2OOPz2?VVLpGu>dqtodrzb5s**coX$urt*dh}`EQBm&Ty;nU%NXn>V2FAR0-l_efv{A0pg|U0 zA2o5reI`?S+)?W1CuTiqAIhBq(co= zwwh%^=QKN@z{IK%Xl~%HiHcx>cP0*HqBP3cEF^@Vzznq`fC6H#Myaw;Rh3v3eo-TI zkU;}zGGQca#FGTDf?1}>grfnV4NQfznh7B?G1aTMU&jn{E0IK#YyjURu^MMkn>awh zHCB~%*aR;W&QK+)5~@%nID!*F_c92OVI?M31uMj&)NGZn(-~?sK|rv=UQSR5t3ho7 zN36V!m?jakWML#xh2TU`pghMCiBiR8RT4l9jR#~3CR>U&_>EHdcVHcrvOK4&vISkO z0!lV`3QNqOii{M>;AN2^=naAbZMx}-1P(gk{^HCXyAV-CCqE2YvSbCUi6gwE!$%V* zG7@W|C7>>p3@Shd2N6XvG$T@2REa2%g2Ot7UiD7vQon7s&G80RS+lIGoW&#)g*Kjn zo*}gP!NdS8(kalB2#^Rkj10d7lTAq|gVaD)fW(!|7AHSmVbHm4Cr1|k)aSEM+>g0B>G?==HCZLG>%nmMJZqo zwW)(FBS9IWN`mc@hN^@`jW{)s!lsy2m2{1AHWb_@A4#eElSc()&^Z!`gcyXgnmLQD zCD4bo1cvBfh-NU!f+p(>rz4ieV3BSSkVTaVFlmjP1$XO46v{psJ!6!0mMxeNNW`i@ zlUW2P@SSc%594SEio{|C{56^GC8!JW9E&Ybn2`uv<0WXK6T&_qH-kT!Og&PPA_UyP zQ1K6tIb9(Hr7;poh6$@k z0^R|l0TbrRI;A0tX4-WkCa8;&fnOXURfi~tU!CdgHKlA59r{Z&_Mc$`fqL{i2tyA7 zzzs7e@{&d63{`@0#01(hyd#XQjS*vpN)jQ3err^w=AG*wT>Gs<7=wR)7z}4<5^xAu z*_wf6B=~Na39Ay8NCwn^P^xUD?ZJtPL=a|{QISDh7oLb7;jRFaPYO{fRV%|01$k)-kwFT`BI^uVh;}0(Wjma3el}F0Qw-4iaq#p4&s&4X8Ig!4 z8;We4gkNM5;Q9W(n^Trm>f{uwNdlm#3& zTfN`|;~)_fK!*q_hX6vbh(hR#XdJ7dNhB7_wqe)12qCuK;HAHozJGxuCQdM+aB4Ru zI6DT!hj9!&7owTQfjf7wd)F|*f`z5}5g>F=5Cs{)49ZmbIonhnGt4rf(~ zu1G9Y(rB2@aCneH3SGfbB^CvpBkQKD&8SAXTU_Bvzmx* z2E)I7QHd2)p+7-U^hkoa05p^9D1F&O8}NUT8LAHAllWMCg zoJF;zXx&jXF{eob9T7efu~moZ--8nrPFL|Rfh`bN2K^vmVwedST5ZV0M2L#Jl0~J; zh?>kQgs}BkUW%6p9aA}aT7MoE*o5A&)ebVE${A)Ey=TQc!|66A&>znh=p&dVxS)eS zv~7SzdGop=M{qGX0vZ1^bY5m*Jrx8(NjPPoCz>RkmjuFDZO9Or@Nj{{*&!y$02AO8 z*Db{L329Inh<#-Ce~@9f!BeMLMPgMvojANxOthJaijRTDU{wz1MT9K8WKn<&VHI6r zDv_d>bi$P7h$4}n2hIh+1qRkrO>|9yM=)9^=tJmCqgj*ueFcp{R7uAYaO`w}R4XCX z?t;s3nZ^6hgJmRxpcW3t3hqM$Vn(;fI20)GyUse$G-%6-3ZbSDVqnr94O2CNIOgIy zoMUYqF#T(o!G|IkC|{LWu+?CbOb`YIa2E;_qT_{(s)V_1aKwzduuFdXYYn<$gGEpN zJvf~wEa5DGLeru>;EsZ>kO)$kp%Ojy7&=lj5;}xlP;odN$h7|@|5vspywOB-*zjo^ zLqkL5ED8tOsFyG>6dBPNID@p)XfW{2oS{+z7^1>iXfQflt|ieG43QpE+oJ7KCla3X zf+B+|YmzLKB%WrrjS4pY_1r*X)9+#`-H5>|vH;P5Oyq2xu3)feBpVIZc1f8d22Mc- zJRE?aes@hq`79$_6bT^$=4f)WZ4Z%A2z^`=&Z3c)-`9Z5NII0?*{5v=8Zs_X7tEq!@-oq6 zXhI+R3}+=0l-GH*qD1H}V&!QwU>N(LpX z%2^doCz7sk2-8&=3Rp}MqC`f5q*et}Y^2=4M<*yv!u$8Zs$dAS2&+o;&=E=umH`%0 zqn!{y&$2@8(-~P{peG>=HP<#I!ecK7N&?}mCi+)W{u-zh;%ncpBz&G)vHdFf^&iKrzTmP>4z;;wb7yllJM5P36M!m2qvcYp8j4g&)0u2i`0+w>aoFEK4 zSu-axGA5`6`m-ikq&*|E3fBG}s1a1noS{NYEOI(%E5y(wk-&7kVENg<}^l8^G5%D_EIjU6Cy&0({UmY&%6oCK@4V42ZyU zM3W3v24U8A_wP5*<3t|T(4+vjFoa5t+qUYEQ75vYa4f^I=yL`)sJ~F2Fp^c1ED(gC zH|V-f-~Jv@gF$O?x=FV1oYf36oD~X#3HY0F3S^5J>ktL27~+^Y^pBSx|@>$arxU5L1Z`CdCR2r2S!_V?jfQh8nRT27N-{ zh-6iWZssghc3H&fLs5!EYljqOnjOdjkpz`P!yAyRSoQy?K_G=98wfBQ01{z{6;Nn4C}1K~ z3Plo45CL-_%Z5T|3Y24}WrB&wNIIX6*$;!(f=Ue{p=ws8^$KRfYBE~O&^W+?s)Zp2 z?1KepNE;JYK?;tgx={-dY$3Ti`FUs(ibcnQh5((-l8#;2PS6z+#Aj8`P&m2{mkB}J z2q1|VUe;9!2LUT0k8-kg^7Bw>dx*4TA`*f|5*S*tRVA>G#i9y690(f>CKB{9RF3ur zdY&K#%>(8{FAVUX26P}iM~DPf3G7fLyjx6Qg|jIml;v^s&~F@T=3s%Y%B;eH28MuB zrV<^*c+Nsr=ydJh0Z9eh(H3|j(0Xy!Bpuw4(Kd9Rh`=;awuGm*tQt7bdpb`iIue;A z{9g#2uKh4njt~j;>V$)~0_5eTA8r%TB-hS^ z5Rpzn;gX0LP-UpvKMuhRePr7ToZ^s0RAuNu2-O+>vJAl!0PU^+xXq@Og@KqHP7q7a znv4$le-G`i?uFDK0AwrLl_wVLHOs^dVm}Q~Wf@K|(?da2SyZH-ZvS|p$>?6z1lqR# zK_jX30Rm!B(!zhQ>xT{KE>$*g$|z?U$K-#9h_i$0zzPX0z|{Ji}EKB*@Avx2*GxSzyd)de~I%C624_9 z|6Kgf#3TtO$)d=3*6Ao2X8|2TdxPNN#sZcSqnIcGJ@eBrk-y~nY4z_5M$$D2Pcv9% z*vhwpC)6-;I^nR0IXLS8=ehrKwk4$j|IdM^rI~&sK)nXxSTi9CjT1F!F0p2~PcNyS zJjZ^Y{`>xS^ZdK=?+nL5PzeB8Sg*;tiG1HKGLjWmqW2hRf^{^!^gqblzd-+;;ZR6; zV!(P4<)b;x)GQ2(Nwxq@LFeEK-)N-ob>ZTl!9uS8b4a3UYbP*NDDrn$gj;wHzGD%s zNCjbF@qcl|{~u)hivcCf=?p5B!1G^^7@1aKqTT@+Eyrpyraul=lYYGXY0hJ#B$|nC z<_xn;{rY=Ycyyh_QmOo}o`^!Lrbz8dO(7Jj%iQDmLLxj<8aoAl2;Scb==p>jH1 zLPoqK+nip1AFS!`+5db+ffh470x{W2IFSEqFtQaZ$jIQ)Cz0=6L9P60{7{H5xenszjK7Z|Z0aUNZ1~ijf6{ z=zraj{*Azl=k%Yhf4)#TD}fG#n9(Hv+yW+^sI*mBmC%O&OV9su{%6DgPFS1^Rfd>4 zBkTX%Hgf_VeUJiOp-EPJQ~3MVzcE-bNq;Z@Kfg*A+rx*|e&oZURsK9ps+PfzF|jQD zc_yat_uWhx!L|NKsh%1TJWA0mJ5QwIC!S19A%|0NRQ)6ex9GY6JQ2dDMS$6M39jbctd72$txk`ka$cM0Pu%gsRTtDweiG4aZrsC>!S!-V zhPWmyF0%9NtmyjtGu;M@oqH^IkFZ<)IdW^)vvr5>DRX~<8l31FHLFftuZSAeBcAPF z^m=I6?)2=z*=;wKXy{k@MfB3jU2~R2<_;|ITX4^7reJ;P#JteO`&+x)?sdZSeyJ;8+rWl%j7}ks*$b( z#y1nAhEzXY=ULbqpPhThH!(9mfyHb z&xtJ;wJtM1y2^1=hyJgtA68#GCiV65th{^0z~-2TYTcb8mC8ro+?^BymSkFS=U?_8U2|4^>tn=p59 z%*jmd>@RQY4o^J2@QkO~^_e>Eewf+e^I@y+`QGn`mH(yqVau+d%s%6b=U!CT^>gAMFEzW*!`kUu3t_MZPf#p+g1Gz7`SH?HGj9A=^X%E?l_G{7*_u6bV1BC;Ck8uvoIcg4V6-B)J{sWBb9Iqw zrSDg7n_awDxw!!i296weO3WzPCSPmtp?v9<3CForjW5*myKo{?yj@as&-+-Ta^o$- zTl(HF|IxLMAoO3XNh=@j*gB}}t8N=V3_P{0;qoeu-2DwT+ICtx<4KWU zX1)WDD%N9XV z{-w^$<*HVy-P3jKi4pmgooYrpIh36_No)~Nd*a@Uf#2EiT;x}l`GQ5t9XeKHkLq*>2T(i3NeR?IxCe=XK^%;^LDVQ}dRU zEw#bv*W+B|$gKRc&2IYIJ^Cd!$bN<0f$GL$V`k*XG9z;mPQ^VK^ES`NvY}&O$(0TZ zmM?fyX~C}QBbI0nhiu%@JZ{^-~J5cSHz)HnKT;F@#4X6>jqj$t7dm%M_M1{(+ zbHYYEU9-urpk2NGM%P!pi?!M?)aR|k-1~pT_b$9@z|Q7Hk9C~Z=fcCo*PRP@e!8-C z)$YcT$z`UVi@Uq->EaKqHZ-WWF`{PQR~<)m=wGkiw@9~>vlE>^_y+uc0E9q$zaQ0q zQ851iTELAC`GVv#U?9##`d2jD)DZrc!6P~rj`@^q#G$mn>*(lZpQslP>3lx{I6s5l z!&JA%Z|Zz{;SQ3D1NbQ#PqI88uFXUwQ0tV&{iUjd8gO^*h*bu#F}=AwF?%1kCMG|) zH|>l{kK4Ku`+=vpU;7Dm#=(IjzS`OvK`IT_m$tNJ(D)y>Z4K?|kK54wzI%dEm+j32 zGy}b@M)-;;WUh;InUR~hNpEk)0soS+-0dE+{k$@5kpD8@5!HrH-Qj}n#!5Mvh&NAy3fH|tddKirXGBbO`p%7?i9)M{3diV zkn7^?@wWl`Mx(4^?+>!?i(!;(EjsE#WJL48;+1E~8m~OQ6Nz#zaYtsoirRT;8;KP# zifS4i|I zD1P3hk_*DF8S?YocUy@ooezA8mm$&Ko^v8pt1PI}?269NDswBT30tt1IdVfv$;^tW zdMqS}=0#U_MPy;5w0>qb{snlg!|<{d+u(e!EIky9oZ{Ran;P5V$M*?PwG%QWL%PE= z&ZLgwGvGk(Lf6kV#aj#Ij8_lRBrv@A=u8N{;Z%L&9q^BP8pERu}$ zj}WwQEK=)U8T*aNZmJE!uA>Yr>*wvSI3-5xXvzm;P9z(MCTIkAGqCzlzN`w zC4(~m00A6SwZ)SPLaEv1_)9jN%rR24XZCo!@=FhFc1)&suEHEB%gnX+8l|HXoFJK( zyT%e(n~ylih*P^0tJ?)4Y9-Rfn@H#@+zHw<@D!jQfg^6VmA3Vg3 z3i;;c&M(;+_z`Y+eL}ND;!hGc{SC)g*$rxR9mbQ)oicl-B!1AUG%%$(PcaQa19Wr3)qY}qjafRM!6naQK8XT){{T1eO>;}3v>Jr``$ToFUu&GjV2rB@c0>9uRq5Tf!vfmHgY)T;KVqgz$DEQ=1YWf2<);RtA}D zzY-FWsNAGzUi{3)JY)mI`EnYe+*W_5$J z6TF#8<7w>(lii_x!c}beV1)X4)L#xKk5MhYDpebQJmZAdjw=j}grIGR`NjA+9xeo@ zR_GzBM2gLb?#x%Kccx;sEqu7}iB6*A&m=wvg4ghhdb>YIB=;Gu-fm}ki|$~-+_9K{ zMEBwPJn(-DoRKf)-y%XRBJt*Bf}yx>>>ZerXm7Zf=H2{=cD|15k-&|8os+^AE+tl? zXBmYoO8esyqpy@MxZ@&M-IFpwcQ?1$bAfjt$Zz^RJQ&+k{1zG9{U$5+O$0Jm&{*9p ziidUQQ8j`>t-nTxXxkHWC&|=nb{k`9QV%>Ny~$G_MM*+tsq)cwhVTu zak$i9KZ3O(Pck3)6}%K|s<*U~xoIrx*Pd;K+6v@)o(97eux%vUaI07LO)C9|H6-2P z4`IRRDkPNZ$7eE2{9X;hY`J&w=MhSXW#`07q}Wxe}SRE0~g{1!)O# ziV+*1C|TT*Du)gK0MbjLaQhA0noyQ*^NC(X^(0i=-HCUeKdJ~;E>ZAAzjEgkdtYO> zLdl|o)<1`vmpsoEok|6M-gzW0yB0%Lhh#k)_s;38kI9=k9r*qW&S+H=W5d zHJ|ed8@3M4w-KtYB;{Wpo@COkDIH3bt;Fu!ky~ivR%`CXn4087ZZ2*Ql0;5TFlcO3 z15%ni_`+Jg@LOx=oC>+enwPS{ZJ(pZpoE?^GZ&3;u*~weW%W7y4bv5>d`Lr$aEjqy zF!B=#zAVh9<8-|D9n`b3Wp7E_3!9w)jmLyD|)H_Z&%9SQ zf;P!*sYv;ULP@-` zWX$uz<=%9uSBC;%nx51C;O*4!zRX?*hhW!e7VLgY&yR9%u{Oi19gex{+?t-UJcUI0 zwh~g4q_1K-v?R$pjRx$vm*!mpR7t%{!dycj&W!niJGSP&i!%2KB7)gM_9q9G1P$E= zJZ1M|Pf;^tC}i#+6Oykz{K%K0tbXU*M3#z>pOM-v}3d8 zOe8&_?0t)J4y@g>BYg(z<12^JScKK=tRYsekH4V=B25y(q}52LsnL6})#TUMujVu} z^F%IVLfzPdTgy0#YvYfa9CApn?}6hZyUdA-v$hjUI{D_}#arq%DtORz@V{_sQ|4Fi zY$8)y$g{sW#zpEPy#q=rA=QzCRPcHB_!5GBE-K3(E~alCB1IQ8sX?PL<+ijOu$KP- zM44|ST^#XciD0-(cd*`WVAz-1g%7~pVJ`vhNLTmzoJ`$ZoCG{9{OJJ zf0h!WQ`vl-*TFX%i1X}fSju-Go0+~JI81ohow-+ z-ptG!+_0})\Rj6IHqG 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 z zDj9z1hwsqHSER2&Rzg7D4$qlqyik>yFn00z%M_!_EEwmhKRS?`Yo>?#J(#^nVDO8VF|*&nTv5G zM5mY9AUPVl)4-f0M^^2BdFzA?ddc1D%ia0hl;c$U)LC8D;(`d4CB&u~B*KxCCSk9i zBpR*f=+Uo?+9Xr3(m`7M%`n;j+u`=z?HYQR4+35 zCiHlT#=FaLiu9om(R$6yW^873zRUPs?Ht^`$eUZ{`Hh2LG8mXFP?$bqOoWxsVg&8- zKMCaD0ua@j`b`J6TgePzmo2Ir)Xj;NI+7zKhl4w#JUsj`L!AjvhNal`CN1Tv*zP z?%Nu>+D5ol!Z~@U@O4bn*i&vYf1$)N^}6ah1DmBa9ZaTvpK*%c8^RHq`v4|Sc0`*7g z$~h#^&MpZidWNbObd4<7OT$5GcYck+KiU;>cW;pzcdMZaNfLKyvg~(O6F%Q zD5sfokHFx)P??3E3Ir)Ei7)qtC~01!!HxW_Ol)Mg>v3yR#fjQDVzPx&MJELGE$xuT zk!@db9(5puGTRpC2u_mSX06qed>-zkVM*$~H4<`l8^71!{{RUK!#;u#TAV=VZf64L z{tf6}avp%MmO2~HKRyLHuaeYw+ilOG9qUz6OBa8lXjYewHTNB@0WM#>TMGwvyil`y>eEeksA?{kb3C~cReDk?Byyhg}rg%bkQn_=XB{FK>XY3|u zooS1w$FPOIY{y=0#8X~#7pQJzsZwGSzv;z!p%^6GAb80}3F*bZoF5!T(<`T#^UDZ< zeO_)wh=K$QNRsWrR}E@&~$RCe_U^bcPkMyunZ(jXVok!z z(0LlKaoO;A7O9H8U3`(J1yws#%j-=;>2Ccv1-BPI>>|@+fL$KOLi{V@FMN} z`z|C^QhP6w_&Oa$QwdwjdJ@KPY+@|1wl0R=3FOvHSSbB7$P$ENm6BtH_x4ThbNEAa zL-rkAM6H5nhtC94k!E@1JxR$27h+PTuNf@*5KljmQVo66z6nT_7nh+qSZ5jVNkUV{ z;Jn&G>GV$^PK6heaEuqGy%m>5tlz3R(`B3JjD)t#SQZzEt>+B?0L&RT0r6jB6tb2| za>7BxuDFcU8cGYni%Fal=3vzkNx~}UBI+QL86`Qgxrx-UiV2y-u5oR&mY$`j8t!St zNG)WhFaGutimC+J9C|7@HFm$cDe**fHmh@0c>r%fkiWQwn_;9lPSm5+MVD5mMH8)g ztZJsFimd4C(7$vJ%(GqkboAb0xoscmsojI;=MuQ!U9$Z69wZbhHmk10wk2E&n~f4% zrsSAo^mQ^8l%{&Jjjy>=g3-2Ue23}0jN56J314AlIH60_m+{-+$%{CV@1K_uJ;jdC z+X%)~xzyeK>_9RDlHjX8<_LSwZlzN1m_I*)?ii`VRWII8m_ zB6^qmSMmty<;LhF$ZO2-$nFJ~20YrgEb_=$J7F;X$8SBeGy$e?nv5u3>|`8SP)hCn z1-sU9Zmbot&LSv3tzw|p2axt|kA$qe+@g|Xt2$SMEfBazajn=#FPYv?};(KUnEV+Ek4PF5Jn3!(oV# z80a&kdF4gSLcH_nX;OAW*FmC&^L|NC&V-2rOa3u=&lse$g|F!i;4Fovu;M{7=h2ZI zS%;e2a%GJOmDvPK)^3=cmaBxJiKE&YRBrXWQDZBz6r`Oqqg5tpD`5Uy3Zyiqodt>l zC8jzLx|L5k;MHe8Bx9*bUB`QhXDx6DBQZ1|9ZyP&V=TnAYj5-=Sw~DA$)@g43Uico zzi~Q`2mni03%fnkQ<3atwXFrptj-`rjfp@=qli3fIVIXD%K`!BRW5WY;y*&iWOCVO z_$j7Hlaboc^^*BT3T9Cj>(V-zG`wj#GEm!*S4KSQ>!lr;SloQIufVOeI^<0@Vo>BY z=T=Uo(M0CHRYu!g)w!vmspe$0o09H*hY|88nKDN_B!H=V}Uk8_6*Pc*Bh*tAlI>Xqj!y-##f1*+9 znGmtjTAMBdZKb(x{)!@rcJk*jjL*)ME{u94a0zxo+kJk^#4aD{BTI3h(?O^}#*X5# z#vKa7Dv2$f&(AW#dtm{7-zUVRE3on^%U)DhCB%%yFKRA=WeQGmx1J*K)5IX{ad`C_ zsjW%sRrtfQ2%SqY{0^E{ZO0Gdx!$kYM{za2NRvuSC}<^;Ak4MlKYp9|wIYU;y;~^b zLdS&4HX_bBzJesJD&LnvcYsQ(@9={=yE49Mj#Gznm*GxH(Kym!PU}-D260JF*5{DU zPQ5x|Ry3R?6)xN%>Z%knLQyj7Tl2?whI6**Y4W`AVoq<6u|$n=W>eEXg6_Rp&}>$< z75a_c2>Fy$od_|UY(sV$T5b!tOEMC*B$jQjGb%@pQ^9k&b}DAaj}~vj>S=v)ZA7s zabq>Ez`KHxp2PBjC_Q9IJSlgto^UgG;GB(#h^e#TfTxFShzMK)5b zLz=r`nuBdqat-ssjp10#%1*3>gNoZLT{N$-trq2+2vX$u{r+5U-2C<)T;x5Oz^GpT z06v<&lu4?}%|0d2^5#htZJlUO=?2HqO%iHmbNWcuV&&6PY>bK32B}F-)b}c)n5K>E zJKU=gvn-iLo~faGnJsZD&YDklNOw@8;IvEADwfy#tQg*9LgLD!#4nMh6Ui9AJw zP|rbPT8@_{!}HjTC23kXd^9MPOMk1&4^Xea;{+EzW|5UM5pth37-(i$m6d|p%Zv?j z-_GKwi;9CPmsF=dbS~cJdlJ`s!cI{y)RszojwF=N22>c5Qc|McZPrHHr?DPWPW_|g zxbpNWtr);nI$^Ij0q zpoy3BfhjSl8i7^zCAPT(QMjM5&F7o(3PLQr{lULoD^`mZW}bP(Npo@Bcr#&|&*)zc zgQ#ASTbHLZIIxtNw+ShimbD*2=stM*CQxwu30ZnO;<7a!dAVbN?#8MjhT~5u9fkQ1 z#)9*xlq9sL#tfw0f>JA!t1BaQTZvG-CsOD!l{a+mHe~}!u~VSQs?NSaKye?H9*bqy zb}HPeaTZJXr2<)$N0N_(H1ks-3t&@esx8C2#e@wwm}40!3gKRy#~%f%HTNVnz1;?I za`sjlS!0?uKFD6E4S5@?jlYFszGzHzBCB6B#s=PE1FE+}OS37dkG$IjGTbV)UZ|#A zJs90tk4#`uS!$Vtz=DR;r<#(nv9>sK=sT0L!TJ(W0V5=NW~f?re?n4|&`kV6pQ6xa zig}QMwL2V%r5Aa-;gB({*mn@?)_l02)p+w2$#burMA7aWl+`twqZu=+&yd__MqLgu zrA1${YF?hz5e)9zYUj?Fr<`=MetZlGrkcs*CVY<8T{$AAN@{#wTLez_^FAaH)Kjg} z`gqES_Q-vVI;q?yxnbjQAWHe>W_U@EO!5$3ST^j)(wE`LqI~9-+e^>NiWNJ3A-Z0B zi4(i?-wq*|tCkJj#;!d#Bc7kh z*Zm#xt;-dQUkNKcYOgH45LdO({t47pW<{wnzTSq8C;B6pinU@D;ogYoawjT8g03&{ zncy0oa8naKJhm-0s-}G5gr7iwcM!gWxFH2~Yxu@WYNy=bWgc`K^s0LQ03Lrb2O27+ z$KZCeJ$Voz$Iz*G;Hrq4=@MMTxqCB{T{}B8xRULZ?7w|-+al=sBq{8LX;Vcpru*c5 zC5WNq-E~6e-}tOP8X$Cf+3>;OwXN1@N;fT3wiylqy8bwhOv7FsQEa|(+)uoxr3J&d zT%QQ^TW&SCSvtQy$8Aqi8kEz`K}>UIikxTaggKbdhK_%78hJ2M=Yu4TSd3dLDRi?E znWE7&!3=Ou~|~@*s#>HHA^^pw@X0 zoH&cnJ3oF{FF)w^>?Kj=Lh;Dn0EKp)ZYX5KN_Q?q%FS6Qctq|&(S%1>woV4}I{a!P z)b7`H&5gSM0AyA~yNea1NSk_%Cvn|IT``_#x1jM8;<=G1f#Ah8Ci!#E&P+c-<511s zMxe$lp#*y5YPkLj(q@UCN1F{}c7`Rs8YEUwNyBj02&iQB6&1m=F`*ADM95-Qud))Q zZ-)Mu!mpFh(ba2u*(@3vjVR98by+~vqUjVpWGQ!+8E`9d^nZaf8U!WgR%-n0J-S<~ zc&((47w$IdTR*a5^b?;}ST4B87P{iKK7`GKP^Q$=+vg5pv=axKAckgPVMbKGeDdQ; z5_c~ciNYg{Q6@f9u{5Iw=q@fGN0RzNX1kYDs`A$y z%!{=T6=R&m9T94Bm-IE`hVT5*$Ih?rVtO;MpA1@)8KorxMO0O|j(V>>ge5<7r(sL( zvR`5nnzt%+F4EuWz=2(wWAW#ma9!OMOV`OCqsN@^XxeL`YSgPueB?()a;nmck>cD^ zPnVa35ap$#TI?$(x%&>7ozy?oe?+`1WT&wGw9W`s6+5<S)+A(OjjBKkkL(LJSY43({ z!M@0p$9zq+E3LT{B;fpxl2%YpRTP^oxDvAy=F{Nv^7wv?M8$BCcMX~^kwKH5g`p`? zk(j+z<66EVd&X`KP9}!cNOs_Ua}ya^EQW5n*9z^_jPOkL9^>{5O0Fai*2d^%kC|hE zI`k)k>*1kR=6V@7)NTRGVhdz0cpQ`g7T80bpDF`L!(Rj7^b_{AB zQwIb>Ii5S6RQM$!v0Im-*qExBTwZw7on7|Dqq#P1uahMzPmiO+mIy^iR>ft=8%!lq$@@Kp&6byW91!p)QK3^@-9(~7Rc{F!yY?109fxGfay^YX4OCR;aB^yop)F5Y z%KAx@nImXcChtFAC%OoACUVQ9e}P+#397pC{#cyK=8qw#qD$T{Uq4ELFAN2rg0Dks zqlpz&$@UW9a+@!)xa=UA8lk!)66kP}dfu4ODCN(BWJvp$*DSCRP&}iWGzIdvhh)=>&8UY(l0TYJ?Q|nwqD+*hr&ieLbjqP z!Ri`8Z@APp!%T*zxvPB@FkLWaCm~ywD&$TOAh{(7s zEZmFi=Ze&3B~5&HoG8o8@ z9T!5`o>Z<62ofR8*qOpKTVrT{c zS<1|V9J*|B!uIHHB^RBz-iTbr@*Hq3qPsVW7b1-%W!Q?bAwYy7ec-T~jZ^LS=xZ1h zixd9JxRZj}e;!=;sxI8BuKE)`m)e;kjrGcCzokpwIIOF9d6+N(Q_$;xMBHLs> zUU^bs@vxLVM=~>gGd^_{vA@wa)|cBErDSe?d#~cr-3b-F3hE*%UCs+h8@u8=D|xp3 z<%d#y>D*Ih5iLZF4_FZnTNTi=e?&Niu*#nfV&QybK%>%ryknvq9KL2eM4ZX}6<@ogeqmu3_3cbw|ukkIW{#aDoU-w_&wc#XiQbfel%} z%G=*S{hWy&)pLwJ=K}Et?D}L~Jm5ts*jFDjpEwO>s1m*3xQ86*BJxZM+RGXjcX6qs zHi%s0WQBB9TQ??%PRnQ=G`AdD;2}Ecv=y*zYRz@({t4J4O?=`(lT7~VPD(2Hi{{Ia zq2meA>g@C2l5?+!d7a7mEpl!VL#lZ)GIZ^h!+lBR6YtEe6g@V4itMJJ z3g$(sYwR-L`weAA)K!~}d!hQtWgnxaVu+=-Gl?R{=uAYhixsQkj1lRAb*Rw%UU>sf zBf(9fAeHauxRhYmrPl|9g=u?KYcEMv6n)weZ4n8~)iLL=o8ZJXpse(^OF8utX$d_( z4N(Q7^8}U}`!-GZixct4v(L{o!OEPe_75qjt&4lHsGkD!=g~;(677A&JR{K_h$eVxFLY+tHjY!!e^`w@E!}&Zj&4oRM2Fx|y6#?YZeV=?a zc{fUS5YIt`VJ%52h`P~qA82o4wq0xL(y9b(Lu}Jf#di^Aol3|l3qDszTh&E18mFqA zXR?+50FLNzGyM_%$k~3dxjr%_yT4Sz7LCF0s(&p=v(v->|}-1lONm!F(xso6NXNH9vkkjw(6U z^0=q$LSB?2J;p43ub)I!j;e1`PTE)eBRSRA1*?dJe2D|o2ZU&1QG`}-SU*E}JR+~n ziYUET2anR3P_4eJ?B)s*?#;{_l`M8Ie@*uia4i-|ZRY&<5{3*}TnVRa5v4s$#OnE6 zDbE#7@v-EuGLqyFq_RrIE7t@uoFtjkHawZzWsK`-mpO=Dm?H;@AIOD^5hE2Wrf7Q! zP@Y&Ur{Blis%yJ@2{>kAPYD%f&0v@q>LPCVFG_b9lGNYw-rs^6U9%K+o?zmadDKZ& ztGObY;c}uHg03dD$k7$CBwsFQwo6Zu)V8V}MJdWi3&tI8Gh9eXP|7P+y7P8d>?x4f zl2F%0S~~JfZN$>!{uPyMFAswH6GdQFSt-N6LOtEleHPKF!{};Wrg6!4qTsF~VM``h z+RT$DG6fKn`SFcda-!D+MK3lrK6!GG(IsN5&gDR=qMM>Z(ehs;<7nY;Ey#N6l9c+v z4r@wAJW}jhFDNCQJp4?hv>oFZkqE28X)4I9emOX3R<#EcUnnub(37QCn~EWGTZ$ki z-uz1<9NxlECAc`y`uqJ9ZVrnh;QssiSXaQskG1uLW+7!r*FWhEsb<^OY4kyRkH!~7 zAIL@S1HuUOtR5`6%wtzy@)Mt$5}i|-@<{gm5jP`Va~f=Gs(M(YaM5t=uw?mxs+$WO z(ltG=(1tRI-^(9xC+DCbz9nA%eBh6b;`uCjW4ID!KEhLR<#_%DKUDeLUBZTT?@h)d zVqSLiW?Ceka>05d7#=8oK1lR7SyY;lGz@uOllFB0L{w>nfiUIf>`xDwjf~Ha@Q{m8 z{#vAuaKAdVu?FzEc~RUCB1@(TNSz2t(laY4vRP#>CA*<=5tXt{TeYIsXml`S`kX3> z4q8fRtcbTOX*b{WLTh1Bvw~ah$l@lZWL>nEx28}e@TEbk?OcS6S(PNot-s;i&JLs6 zs9LlZN2JK_u`%hCn&?7lPT8abl1;9NjmkmiE9- zwNZ^}&V=e}=qdYuwh1Y{TnqQunF9q|9T>=tQ%0h!i-d^6rr^akZ{y$J2Be>0`TH4D zDxVngSDlDS$Y~xH0qwC>YL&>#jn92B|9~Pv*(9@N=4ki7KDgei_4RF z$Vbi^b1!lD!v6pQ28VGo)eJ%qF%JdlF{{M1QVDHBa_61;3~n!h~H)a9== zsQ1E(KYn);p24~sBCj}l9j2wbq9f1CovOu`Ns8dJ146xSNFe&KcuXdNyF^pzwd^!8 zW+9+5V|GjZ8sj%lM*je*gJAHFO2s>ds$Pc5@tH!E+`p=jG*rvaaVoM!eB{nEsc7Af z?jHhGHeP-Y2a;rp`t=$gU+BG`ap_un)ABuK8s-p8uVF3TMaybVb$Vp39Z<6?tfEqt zdA6?hAftKQl9|`c8fGEq=VBei140%{P2Q8jAP(UQwP@hJNDWl1NS6}JT0&bblk7Hz z6m{l-otq@1C9ZTeD@9ucO+JKZMoGept9!zco)Nu6qs@2!0MS55@@8ZiOfkDRyg!65 zn5S1yp|J?lT9c=MXrZurh4LxFTFQR|ejxcp_F7i<5aMC+!kI4+jGT{0pz0L1A=`xn z@zdl|Tx+Z8^d#1)o<4*s(v|R3r4Eri^eq-usgBfje#g5T7gs{F5;$z_e#E6M*-L*U zzJ)7$4wjr#Xok;U`m?sTGG{3_HZ zSg5~*Bx+NYs=_6ShD6>;aCs7nsV{T%%LK)$%+6RyO)Ak>mgC%PC~9e1SKLBE77T0W zbKe=ob|}n4DyE`UqGd^yi6JC3oLH2Q(WXw+rnQqZCj&(3ILz5$1e(s5 zow@oVUlVEx3k8D0F=7ymywqy01Q`j8iMKJOJYSti%t_EFO^YKN49d}Q{OUWm zxt0#i1TM$NKP9?wzR`EYZbH?J)t_cZN;99I7(Jx9wY$MAPMHsr`eexXf^bUuq{*_S&phfkQr{8VZ6zzmxlwm0seQEO zvR&VtIB7x?q0Ht$L!(xgetnjxyJ+c=29r)^&>_RKLYWC)bG1Eu+?TDilCR*&=FPWX zBxcQZ#j0F!_Aef0e>}bmTABK?WHd8_QMhxhJ_Hbd%+>ICBBeW!Xx5qjgW07?G3|3l zuApd6gyST7VsUi4TYi^#F)Hz6wiXWuyBH*{W5BX$=H7zU;5*1JfD;$M-CQE%I--vKB}Uo_Z49Pz_XW`&(mIQ zgyBChg1kg-RH=GOFO5b+kMFS)*_Afd{RV6m9&HUmbl4^Jk~GVS+qxMw!J!f@*Fn;8 z)cO1BUT3w|x&Hv8Oz$HKk45q_*;CG=PNpNf!pOczmaJzlyt)#it+R8^g+54jWU{$R zq6y6t_I47pwhkLEkBUSs32u*)COwB7U*vsmYrXzhxq{fthBf1k3p&N1V?WE$!U7OMOh1Df?KIE)mo*TTQ2i97D~v0CCMZ)h-5NTSr3#IT2sW5@5iF6 zteSZGFR3iZus4&V&WovHkZ4bx=SMmVc5PPf@^itMX!8b`nz_K2yB5ajcX|xdZc>Dj z{{Y6;aMi3&SE>F8GXv3@W1`-fV||5b#}N8vDI?Dl2{?TYCxc`yHX6*FIUkG&LKYN& zw342x<$W_h!QL6$gBDdAN$o~FC<(*wQipXV&wR)yCV5Cqs&X_L%DfW2lp(riwiG6M zcN5?iS!#^Y_l!#>sA2}4q#eYB4?T#OO4RB3!{ON$fnGH#cX)&SNF0 z(~?AQadTaX;_z%bBRu&K+H2i>m!{QPt-fO1(AdXAs7VqR@v(*^=YppqQ8hF9%>5J- zLvQ4U$Y@5mvb^#HmNbZ#(5|7Ycv*`Ggifitn5x^JFgTg6#gzEH1@6Ivh9?BCyoq6B zUBjs+EhkZ#qfoi}ZuCv|D7!B>3|Y=A(HKS$L1&tkR|%l4@rfFh6RY$*z697Th-Ma} z)Pcvm4OHmKjJDy8B#Qd2>L#Z8&$#JfDb_oG7Q{AmNg^Y4(EM)$ffF?1p+@d*`e4C$ zS#ikDrI2aXYPkCjNZMI1EfbDVPMam1iQCEvkOU=8FGZVqAzm_617`_4c_Is(zdf^Cid(u(%l9~+WkjWy;G*V#%@R%I zz6!y*G2N!uwnWNKXkQVUYb>fOmwz`|{C5Izb45f+tf`zeH+iLO zp*$;AoXqp+ZfeS9vHpqNnZm~I(A`#ewAKFrtfDQlXGJ#X$t#IAc62K;Xj{~R_s>RA z11js)oiJS;viqIiJ;Whkkqy{;D)USH7*R>3u6hfl!A`uN-FL{XlJe^=3}J4hCwh^t zYeVhyEXm_ERy%9sO$mhUxQVT)HIc48YD(uVTh0RAsRT}Z^Xmr5@BVqX-Lfh`(+Sl% zO)--tvagp>>x_uwbK(t3dbM%orP``@$f=Vul`a-}t_{_MirBy;(dN1Mj;c{r=#G~u z<`B@3&;(8G>bI$y7jfB!qL~oLq{{T2xk18y%sh0@BdaDL8;?46CuROTy z#jn4>x!K1l(0l1Nukx0xhS0P!b3F)3b5RLN&~o)w`}09dT-CHB%oM0+Ld=R2sEWM_ zqGWaA?Qo8@%9ToRu!~jj^sh?|NsyFRh?t+M2p~hkk-2g)t}a@<#K|KXjF~HL%=4hs zr@0+`@;$^iEwV=lbsCSEtP_g}4&f+OET=d6O-XvDItjzv#TSlD_8$6+G1xZ&fp}r%Yu2)>?m~nL{vHtgO z2_E5Unylyjze&opd(S*=Q>Ce@DXpXl}Shg`>`!&x!VYk6LN zJl#Qw9%=mGhAj0ITQRC3BTY(kDg7~SU9R_e(}5CRV#$gW!*a>xe;*O0^Ad#wl87Ip zq24|6C${&AXG_C@EB%bV2rjFc3bUO`6semcFCk!M}rx8mQU!jW6d$DJ~aL%4%9jkIhgYn?93QNdzEf$4lbgP9fH=X@3ZzhN!t`Si&dZ3IMNb02(JCgGvDGsX%>Nio}{{VhT zhkFR%&DH#gc#f;ss5esLBD3d}!ewDGhGD5hBqimL(xZ^NdBE_?V#y<7B(tAQ4s>mq zQ&{LK_-PW#q6LcDr`YmY^%hmG%r$S9XtJZkgu`%EHsiZ{63J_kIL)$5l*uZwop9n6 z?+Rhb70|qhy4NyLN!fGqic~+_Gvl)r=3L0wb`%BViM~t2kb*@Fx(MwtS z7b7%icH%HJJvsR>bcD@)lE|x8w?dSnf@01hUGm0QM6+2u*D`4*Np;0%$NV$OZg8v2 znNpn1o((5)DA$<0Ls?WJtB#SR)5*i^afWE=QBdb!(7qCy)Q7G!XHRjIvphSCZ$aYl zo<8kgF5jY~310`!QmrH7;Qv6rBq^Gmbay^n2cfTxlx4!q)>l zspoNw(pZ$#=jWV8<$D#li9ul1qG``@PdY{{CJLzRU!|Ji5R*3gdKaxCFlv3wf?Y$x zD#wR=3rg67ahKP*4ECV{zFb=BBq&ARetnZdX61(Bntyo8VQanEu`HRn$kzhwh_Nzg z^5aJ$)iEA-ef<%J+_riyZ{%FcrMzv6HRN8I50_K_%~Q zEMN;YZ3=coLoV$sy(`pv4Yon{nG`cKkh2)38YxseC8EA#1o}ftZF%W`;P&<0O_0+P zO33B8RBHE>=b#7*(jiLxiMI0R7O(- z@>cF9MLE%@Yu0jijTnJXV)DLRgS5T*(mGT_O*SEH(X2z?kM~TWCl9$PsZ}3UN7ZmL zupY*(#q0k7F!wM{WLPpCCx4^ppgU&mIeFs6 zlU}2FqOFyHok_WJY6 z%I1n^z_*CUnVyBDxSDCq;Yki8ED{u{ zd;TypylJH+>!~TOBXZO9A}U~)p<1_*ujx!r(F9`LDPtcNC`g=ol+hC+!3(4nYlxz$l}UC7bjP8s%b z%ztR1PFgwq6D5?8gK4aX)>)g=6a+Tgq9Q43P02H+c9`p__+QY<8Q}b)0g<4)B5|XH zBJ~ZsMp5G`e$AqK`Jj>z5Z0!*wYyq< zaT{!Fv#oMBu%UB5)aZw)4c>2y%xJoyS;U)vgH2zXh})!+nWIk5a;AiZT2q?Ku$8n! zm1-;6wHkH6&Z)C^qxe5?AfKEIy?JanB+)}O>Yqse0Kwf;E(KyuyoQc6Vd(N7Q&nfL zp^^~RVlq1Gy7TeirMTdNCYgG0e+*P#;e%VxE@aC(_`MQs4G`Lu?S5pO-f5%T(9neE zfvoc@6n#gBuw0p85hA>M`JOwm=aznKAq{4W{6~BfL7SFuA4Iu`yMbm2%k;B6CUANX znrKZrG~&Edxj(N?&x0SGMo$H5gRo9g!LLO6bMzmiutLRXi4|~|`Fx2jI-)TD07|`0 zN1+Qho2ZmlNh;o%1l9AGu~goo?CkO;v8d`ka%Ev#aIM|`2Te5mq3;b#BJQIh+P_B; z{8b*~*@^AyOjw}=41zj`MK@!3Mh`{057NqB91Nt z%Y{W=+iYals^T(v=A&$AL*zGlA=Nq4Z6&^u9$0cD70yN zrSMH_F-Z|c5=w-vOIDRC9c2!=EoOof2!mZz{qpC2m?tubPPI!m4U33k2u%bl{*2H{ z6TBpp_WuCGBY8VARjPG`ve#7YrFIA<0+i?BN&d7FO?pRRb@R5txw3xR(*$+&vJ+QBJxFw41}Jd70bJ%M329dg!hrJ zfpH0_t1P&c6Fjid*`_-Y+?42&T*B@JxFyDvdDKfacl%y^VHh=6&kEIld2iH>egK1*brA7%LJ{>$NP zTy_(cDcwg$>OwZ!tSZuF=-08vU`mCfPM8GRv-AJn;;Is&h*BW0g{hZX4_* zIaMW0H_&qX6LzS$N;+{I=4ff7;>EJ38vg*}WX#i9q4c@!G&>L?9ZOTM57Yd6c&)k` zAba#4HDX6p+3^{rRFnMeiY9{|;u}U`lUL?qlF3fiL@X1yXiQL;PY9+Jr&-2oWN3=& zUAd6cKN+H4*@%}#@^uC0Q?WDKdIE=wi7OT9%d71A5)9o6kB^y=s&2_t`G|3j`!bf^ zJ=WMY3rzhIj6)tKAqZH{i6Nx#QZ3Mh49lKqNR?YM1mqbx%zZh%!RWIerHE<8W<@VF zRyFGBpEZHuH#okJ;(W+Mp6FKgV^NdNObOEoo;0j&!3Y*i-DKX2@Ac@bgW`^hesmt| z1%ko_hQC9FXWtSDneq|~jZqLpvGF3}!LQaGoAx?} zMDqFO;-GlLoVI{PLL%2qCsa968Kc1 zJLII-DoVa}Gd7~i?xE5-2$IxE8PP`@A#|fPx73_QE+=&J<lBQmU^Ao{Zfg zK*}dOKl4blUyem(Hke5C%dHe z@}d^2o)6w^1Zc^bTNSe7J9B-6SRo=)Q=rs0_1FRu~{U4s*# zhnE1v4Oi0`uzs=_w0Mw+R(CIZnL5)LQ#p?A?Mo_qbrgolR*nWSuACD=5$mp9EuDP$ zAEGguN*cWbliZC*MS9`o&joJ~s&-2kjv}{5=dsEry%T5}`uHYka-;Ye&hH9-eF#_~ zB5L%bs*k-y=DMs5ME6iklxQygN(ajt9uM;hh3X*+!}8cP@epS87dNXlydDOIZxy7s zoFAEwDLM?O-?RM~m2~n~UpB?x#HP`!6%SC`jm+Yrn-O!%{M2a{54BMXI@Virt_m%k zGUDTnM?uX$U*lQc;!oEDd9($7HPV?k#SUMt8>baH1Xl!Kt*CAlA!xp?zcZ0!< zRS>af#IcH0GHU2N9Q++O7Am;Kg)SmPGiQcGGF#}xJ!NyGdkLqW6c9${r(6~VVPNs1 zk`fzU{8pn`V63b0eU5~@C25>_%yttEf>JIE(nbpfV&VNoo)agqS?BahPN7VdYrA`s z5TzVi;F%t@$Y!#fUU^SNbHffI9Y=+o{mG{i>^;T4iC&(AoCUokt7;vL-21AH50n?SdE*xy6VmM zRwlc|7Ywx;$2Hl%Y?Xa6_ojn7qOEt{qJ&e;H0Ohwj4lix0yEWph(|F>bjt+Va-DWR z)<4*Oh#uyR46V3d=(wG2Po(^gB)RDbo35BKOyU?okX3@aYNT$1X_6+Jr~d$zj#jFo zkHNJ%`Ezzq`RyblDNU-~XUt2;ZC9FjWwmvx6WuDL%&_humF}{0&EBhk@|917a={I6 ztPOQ!N}hT4`SdRE9tlF`NTs`+esvs8yi+L88kXkKQ8|oBP{t}Cj10z!2$M%2BBfjG zE2EDxWUHjMV?FvG!D!`iH!zt(5n!-*F(NPL*(~a7ton0rv8?V6qSb1=W4J>T#Jv_V z3k-=L1jfPrpAsgmz41bsOOr!OtF=)U!a;N<{#9nHj@XQHlG7vQwvH zhd&@eY><*TD4KN^uO{~N!Gc+p_^`_ErF`03`+K7T)8u0b@ci_zWXjbL`ZDrn&!R<6 ziFTAw>Ld0cenh`y$tNM7C`#q>Unjof*#%Im+ud=b?`(dWD3K{>NMT0iU2Hg1?53Rs z)n`~=W`|iVZTe6VEzu=$hhf4NSnYl}MNq3vLrY1x_8Cg5($t|YR>9*O`CWwbG^2?Z z;&ezX(^<*~wqdr;t^WY$XNGA~YdO&K0-9b)Dfq z<#JrTpB|W8;qWKP-M!C&INW-etHg(KnLZ+`7jG5ii>Eu_mREOZ{P!H_HmbvKLd->c z5QHU)LPV**olJztB4@D}lB`HdH>+bdJN^k6GZ=ys5=@Xp>BzC32KZNRnQn?g*23{ox`N=g?3Zo8Dzji%$$y$C}>YP=R{H|#XL%C`M90*o6cE0KBKLgGwu z)D*H98#eQ7Y-v!_qev#OnzK!)%|ptf$s)hV^D^js$dRYTEF?@dT@p2Db%{O(1`Xq46vAlF#ImKz_RrlHRg z)0yed3EBCfJ;Ze+$)IhOa`_V}WGtHT)p(tZ#cxsIy&Hp962Zx%d`kNK>OYd=Mw!@R ziKva*p92z=Ng8Y4volb2S$_V5JeS3@29hke3R4ZV$cq+Jnu>4qX zZ}jtHbUCR$&3>L&*`m94e@tn& zh|46%Q-+mk%tdyhQc6O7OTU7-BN-~LpCJfJr)R3Z4ODTF`<0w4>J%celGC`3+}f{U z2t&4H5_J^=QuB&s#M(HBk*w6`{tE_T!3ByWk_Lnt^YB+FLRpU;es?V@>#`(GI?8n8((q>ScbMu^@sU~Mp^>T)TOkoB# z;JZ9@CSjo1{VbfPxim+~6%wRALrkzo=(5WNnP&x! zlUxyzkvOs7?kvUO+)q5XoYzqnaUT?@qliqm=yoEwPoZLr76`a}6BZdX>QKn=&jy(> zRkzSguHiEiP$dhv(iN8xBOcdi{w>u*RH**|dy6s3LUlwRTp+!8@N}DUD!GY7g2p7Y zOR{b*90bDBjo*wXUdh}`-RL0%ED+e95FpTkRUo!For!Ylgh0qH9oW$u`WVx~XY-G^ zv&3XNGh~B;P0xR^!KjvKZuz+?B7uk~OU-qsv-G0U8+1d86P)YZBbKlI9XPYiuRkYEv#UcK+zLsz zuKLKPl*;Zuu_f^td}fu73JEr%S(JQSLPH$VX%BWeZe7IJh^0fKvmm}oKCtL!4A#Em z6CrT7oJOFam(;XwBVSv9syI$R2-cAE%Zf{=O`BHHx7L5*``L5uSqt4m>^F(b?B+_f z87gv`b6FG_Gz67mdwmV%6Q97tCOX&c5}lliQ$Ibu2u!CU!KEfFR*Mw+hx`#XPO>bX zffg&D3sKmG{GL zr*(hj6E;Y7cmDu=@XStY&v80D^0+8Yb0G*5l|Gv+1?r!oY731XomI==ds|(#Ln4=I z7Mw}*h7(HFKRnPv2}xCUeD;wv)aopA^fVx%VE5o4qtGS!)sW9~;}Jpx)rsE*`Rq0= z?(Bkg=&I|?a)~XaIU$urVXg}t7xVXyoza-{Z(;b>!+EE-p;e{1-ii$>+gCkCZ+PdG zav0T0Eec+oz0lhu@FjfU%_rIrsquzOi&gEB8g!Xv(8Xhyfj`mw zSJErK7Cge$wHv=ai3pz=_Y~xww45)EZYHFx$)yVs#d0uaH&5WOVnRZ8Ce?T>@tkpm zgQ{y%ON$Ach@YY`XX_d9ShhB4Ci?ly2I#33?o^Gqokj7RXG_i=-n_A9 zvK>i@QshtP1}M$c)K*JGp|^NY2?*jCqG1+|N1k}Fl%Sj3vtL{Zl~Ge%_8Is0!LDqc zkB5|HV$P|p9iMSASga=&up!AJ@SoQo>}N**I9n4$7mF8gb|B$j0q2hn~ZF zyT!`MjC)g0-{e9OxI$J4h3KP_n;N|pUt~x*pY)Q;%`crMnn}9R>`vPCcW!f!lC8VZ z`*#{?wC;;3C+?aW0Hy;(g zZQgYi34vIxh>3se3H2cfDU(%ld+sQbyl2wLZFOCe-}7s0B*=ron?|FNEhf^Mqgkx0 zo*m26HB0Nr{{V=NYdpy6zX+R0Xj8A?#mNoD*BiaeFV003UbWE}Hce(w<#87HORtB7)*=^CXFZ9(W`y+PtPGW_e&R@a8V*q1;|Rezh)d)`8W+b=lZ6MVRin?S#Q^R=5x=s2 zAK;o56-cKS_(WMNZ1U@7FHHIn(94YoUY#G|(2>NH_hfT!HPs6UxSO^#tQEba{=D2< zDm|ym%}2iTSJ8B4nq6>_B$KLneiksgR(%SRzGJj}m5s+amtBY^zKFM)zb*2}s0*l? z`I)NeB1z>?&P}E)ny}Gmv%!k_p_ml3*5>O{4x>$(YelPa-0nxhsCmXqyz>%hiQ_aE zcKD3`N4F`6MP$)+{{Y6@Yb$yhHqp_yDdd`BT z@?cWnX6v543ffauA6)wq!rQDG)s@yvr`rp-=84ZyPmZ2#=rszr1Ujitb3*om`yC@! z3XDR0y@nn2@&};B!3b)Jj|jp&4-LdcL`>bbA@Z-Z?oYWi5`7aL$L+J`7ow6G4mTK; z8`7NM{S0DDh!Jqa35$;#iJBhJv`y`TCr)ER!y+W&QCY8YJlhMIA2{U6%=jl0m`?Ze zh|(uj?k6)J4Jxn+6GjFG~HIU?!gB9k5~Bc9@A5>qWam4r3AFMYe2yNc%LZewaY!wJ`K z%@wz4aiKXS#rctXa$gK7>!V~?B;1aKL#6l)DMFWmtK6AwLgGntb{2~-o1FyhcNxLD z2e_AUcsgY4ZwqQzi8j#Bq_OemYnKl~(@nQTl#U9trpvXtB%dkKr@`mwVa2MX*~i$- z%#dPbCTG_w9He^VBBa&kQ%M^76w=K^_=rnJ~Mp88qCQq1}^7nnCszPJHZi4R*ceZ^n z&MxD?v39`ltXTENuy~@FxbVnJnhPo>tDhB zF$xUwpRuWx_z4P+n*>!&n~n3%1P9$!veh-m%8SskL{Le^$muM$;_SQs06Pm^piqPm zGt5VbnJy&CAD(@U%$Mzgoa}LaJR84F{O0gXhMY9TN8>$Xd-c-^7BnUA=$zh$?LYKv zDmCU_%jB)hP~H-rQY}sX2`D9vr<5Mq(~h}y6o8>}!&#kIw*(<06g^Q{dehiQO;wAC z+s(YRQ^D8gBx$N^1e7+s)%?b?K;ilHKrGPW&YpyJpH&ON6Aja@Lx&uPR(=dgs;Re4 zBY&!sL2}aGSUGgYtxCcp);` z43yC&-V>@+P$+F@+SAh zXehNFGU7c^T3J4Vc%}`B;R9KWUWBRPW)8zI74d9rU6}*NEE2D%$@FkKWX-6$n6#{@ zb5`p(uS2-RSDHM(!r^wWoXRD)l@S(n6P^UuH5i1dO}k+{*%J=3hO?5J<)zl8tCT@5 zA6oDu+j(4mcaeG;JGZi!;VG7Uagu}z%%XmAs^C-@Ze%)9wWBRztI2r&>z zda3&h+DXL!0Deh?UU|ffCSRKu9=?2vE+CZE(>H?FW)H7&4RuG$@#31-VThqw>c`EH zR?$S7a>hH~(Okz=YEcy}ws!KzDBKt=(7q}i!NYp3H@V?L^1Vdp)UBhVal!WzweV~3 zd2Xs!$GN@v{AB|if?F>svNxcGcbYh0&uv0Vb$KC`XoA8Ui@!uyvx+8pw4B7x1yd*K znYUUbWt}X{gteDki5k~=ujVMO!ptQVC~AS?pJDeTK|DL5KhNUCaFNYqp>`YSB920x zO06FkSM7xiK zesU+oE>=*OHY`~LCL~jG8#{PLukjY`3V9!60pMM|CxeBkhS<$}3(bRcm9fs8w}EjKj{LZSPK5p0hH zISEvd)MO<0voAGb5p_5QO-gc|pPTQCNXJ2tkPuB=DI~&Mg%Z5#uXtSe)$Sk?17}^DhfKC%h0eX{TAb{29j0s(;F^ zvgW54MYpK<7poeZDR0hWGt#Z+FLQNA`bs9<8?9Zb9(EPYFG*EA+-zZ;6)Q~rv?K{H zF;$tXK%Jp+Qj_r_rXWLHg;BPeqf$?Uoe1#z#%2w;HKf-xvnh(=uI8^emoeyoLWCXk zu$U*hP(x2UA62N{0d3Vrwg~intjG|kO|4p( z_kZyzYV@fqW;RF_PtiO$wV9X&Ml~(It4)2X2~!1z=k_78aMni_;8!De^ce=WtiIwJ zIh6BX4+6p~I4%-X*%EooQA2ge(x(Qmg83@$T@B+|FG+l=GImLU2P`p7tD4>RCo1UW>hV*6-V!@1Ncor)3KcVGW9sdBr<_!_VZy1I|i3sn# ze+k0fmqX4I=*!gHl9n~x_g>{OcP4eSFJ$#B5Zp7;q>Q(JxGg7K9%ZR53s)Zk6{_;I zGuLUaVU?3UMDN~XidkaN(AKh0(@+2X!c6Laf>42Cf?YhZk?a)-RZDyQ;lwZ57*hGHw_ba0G+8UB z@`F*e(kbTRoHgcmudv;mu0myTd?Exw_uah5YFn)9`cM3X-cK$Aem9AE=`+J zwH<3L>hkE4jeo>tFv%k&rn0+fI;po|@)K9DC(oe<%ci0ol%h{OrZG53ur6tg**teD zs;I7iE>vvOd#=C1VHgjVrRSRAdn7!r19Td`2YG}Lu!01@m%#{%7jv=Z!e<47QO6C3 z#eaux3m*Rf2OLt(aanxfJj6U>(D5WCgJDY+H==}$S>Sl3gd$js$b>u^wxX2#KEs~f zq5l9z{vj&*ln+tfM~*|}TC-)auyZDDPdv=0!6ED?ER}LHYulDAYXsCv8e+Sgm$r^R zD8VLEtm-ChIlj1g_^BbYL_L*$8LH(D(dbwq0xxi69c@T5aU%&BnAX2W!;<-s*Z3ZD zcqVBF_3b!7$JpIjS@F{{H%4$l@^HPDE-yaZN4}G2f5PdCOSP2+wPZo$IyDhjI@E}Q zrck~Rg|C{1TFXKZ08EDsDy4FpZ9EE+YPEDarm}x{Mv*quF3bM_I%$}rmDXaBiAgiI zU5Ba|w&}HvB@@mkpZr)1fc``knu7A(ZSCl(l`hHtirAwmNx9jLTqWX9PuH9n+5x?X z%oBrE8N`b|0zLl#p>O7-2yS^ke@}bhoFfDwjZkNjPoN$IS>Q!5D-t2`lQ*HW>rbk3L&C9Piv);;)MSs*QbdG?83WgW6P2BQ{{WjcE}9k_4=Y=yzI}yt zQj>-dU59*G5l|)$wR}CF@u}4pdqFi@y?3Vri?Whs_S+ z9E-|m8yM232u#Iw{VIZWf8g_4R-X#5k+;J`Bn!W1 z`y$iNKM276F>p>}&TBqsNg~jHAHpEKvk{5V+#CBLNDk&IMsC!@!30S*7l;6kHPGZ<{s4dQeK3 znP#7@Vo0!J5P{(15P}Tf1}0}BAV^qMBYHKTeVgJsYK~J^S*E27fuR;lE4ulplzl2q_%sO0T}BGEamxIdvNOWh9bFF4|uC!z=r zb2QX@v9~u~vo!0oMW8m|hsA7NQfecVW=2_1xD3}XyJVR44RW+5RW z4K(cTpUE!QIb$`N<@P|_4JCJ9c^4AvsV;NXsy$erhn8ov^#X zjdrE=xhlxF!ba=M&nimmix9DbQ%|QO++H1aC#FJE%7h`PskE%+$ zisu_w+pq9xsBK=W_&jC($d8Zs?L%$nF8+Lo6KPLO)zww#O!*MX{KZq%YlO7q)W>zb z{m8_L)rqd^qCUO(4(h#Cf8L}NM=>G2MxjzUuUFS^aiVR8`hGsRcHb;@(ZQ0cTBQA_ z?4LBn8mf*d+nU9p5Ge!=UjgLSU5`O3dM^nEdNmcB3xZIVd@(5PG zsXrRB3Py9`Woi+P6TS(4zArZt{ZoD8&vBMVOXlK*WJ+0SmzfO9%zC&#M5&@SluFYU zB-tk-?59##A1QQP7DsLrrmB8^No*f!`6bDlbt3~Wp$y7UeR~hC((z>tZNB7E!hc-Q zODFo5UKpY^=wV#f4l4C3{F-U0zdio|lVY+HnN-`2n{Jx7mMBfK$!sttnri9g=#*7Z z+BBMX?TT!t6Ju5A`oH8)&=V}yYk2a*Ct7y}pIo?ajP5&pEqwEUjL3Cm z1PhJ-0KzIjkt1O6V?|PEJN9Uhr@;}k+;HlzLcauj7UwPxKCogK@JtdO3}cT3uxg_X zj0p(|5H@E4Le*x6oJv&HsrA1CFokCS0Gye-zFux3Mu7|SWaX)7@(}8WXdty>OS}-+ zB2eXPsK}kROLkA;@5Drj%64MGD}up@8lc*vGJg*)RwF-}o26~9J`y-hTe5562to&m z4{VPG!#9_|JV@=F@o5?sN@nmj<<-LS1=v8|!c9UVKk_oq-UmeCAmk)|f zp=%f&(rY%Zw1!2Jr)byZdGyLF+40kOW5yq91>-7bO)NCZ3@o!g2->1DOh5!4YYVL4J)e}Z+4v? z(WCzWj@+TLnU_kkv)_P(nlAA(U4Af*@RRUKkeDw>)#y%QudlfgDXycrUvqD_$n`7S zN%_GMaWliSUqX1i%vSLD#-L@FwCcRrnu-ledC){xIEA=@NFcfG5=w~^>)3nFG6<0g zyjsBy3s5%9qFkr7vm=+m9VSifanw{o!vTy!7=}D1;|xMDV-Ex*Ap%2qOhV(`=fP36 zk0+)rPcf)%X#W6{LeND=x7u9?q^`)9UHCVq5{$Gh#j!iQB z+(f2IrJtgV#=(tXhtAx&vny`73J9CFZ>}ZGM93z;ZRjpRRaqagj$>z5-Ci783ZgR* zxf0s9g#eKVoE1J(yOkb!1WSPp=&tNZb$(CGDN9wo z(u|US@@jrx44*^`PQB;+_gZ1MYkVgO7=&OXcD{R>sl^lWoJQ`ynuy$*&&tMbET%Lu zlC|f@n+ZXPW1VAE_&rAS?UTo~%@y;6boL7dBqSw;$69s5Z4t^fL}PAf z{9im7y-M%=m0c`^&6{OacyQalzIpX-}36Lbe3^A=e0tG|aeeX{OriFF76)hWUKg zsc|u=Gk7ge%Zg8CGob52{pC?gbB#Vr&IEyFWZ*+>xo%#*yobj^akKdq)TNnaDaIp! z{Lz%z+s%seZ8f8o{i6qlXvOJ`I;7uXMxxOQ)f0*%Ld{{Hehy7M`S5p`3^0a>F$mXN{kE^pKMA zsqISR{*7~zQNu36$5)*&W0|}2&4l0~&a7UVJN$AaMolG>KAA2R@=onHe3rw*T-I&; z`W^LpPcra>9Dt)CV0H0qHEfgz#j z4J<562i&lFV2B_=B1k8wlwlE7>z;fLdfe!n5}K6dI;Oio&hPx4)m&DB+$UVHR|&@Q zAhEkKQkoLFyl(>BI&qqctdk!s~ zKCr1F#cwcBCFG(IsqwKu7cHA+l|0`IC0Q1Ehuk@PC9G(nI&N1NE;iN(HiRhLAq%Aw z)j9Y70FfwfZP$>XaccXE=ME!xKA6TNBt{Ea*W=E^5~Y|^6WY2%J@1Sd!uAkcdk{Lj zNjD1#!t5$tSTkN+ptarC*#crfh9p7Yk4qP#R|J>6v-9R!lbxCpvYBcB0DFxIZfx+- z$T2k3%Fi_nf&_*h7UhT_$W4qs2!SCmN=p%&yTUM(d88+urMmwBebCepy0X>&SIqqL zfRSam#+F;qn4a)F_{@G0V>k?ZBf(&YHPPAV$qAxTQd+Z5CPOVcl(^|fw+N$Hm!@b! z;y7M4%Xt=fc2yX_C2%|7giIbZp@$$%yL$alUP0@8kjiQsP zm?oh9Y}4n_ooI4qaVjG)_lGpSNWx6uPs*yHD@xJ#80?j{#N+tP>0V_Gy7Y1sp$A5* z1*Ig3Jky-HBSp+rrM`s`mx~uC<1(wbbbky&vnEg|tE6jQ*wS^BEhnTuBu`!K5UZ)q zi6Dt{97@Pfn`+948=iBDNqm3FfMnI~vijsCvqbiPcub8?WIPfUHS-NsTgei8ui4B9`YzL)N0qqGS*oc@FH+Q7$!*BEd29;)(F8r zTEX?HWjEb1*0msHLuyvZytoMw=vY9QKTJr0EKrGjFhjyoGZTh>Y%4%4$PRrPKK}sC zXlc@G@!Xl_MGUwVP3BG3MU9;>cs>f=ge)Hu${t6+{O5GC!8Xln?lEAR z2t$Z%^M3A2jM@D@#xaezR^O(XO-CHO+tIa-$$kglS7qf1nHFvMzv1rS3y0rvil;k{ zEL)K%hMsBBj<}^~s`M;*NhBhqtD9B&qnN!*8=v`#aUr`yQB#jGsclkh^W~cJeTInV zXUP%Zi-iJmoFWJt1Jo3&MWS-K7M@xA=;_E!)F^L75c((Rbb`~!+ssL3QJ#gh^Dm*e zQ7xM@%A#5=Ka3P4&8<48)s@xMdZ&d+-9K^;DxFZ)`_(}z%EVNADVOpjmK8i5A`2=F zLu*HZVw#vz)~Y9iUnL3v%JO4-co4SaIUJm>U-DqBp7`!>bT#dRN;FSz!J;scF_A1w zbZm#bkVAd3q}+jEmuLDla^diV`eY}T63eHvT8Xh--=tzN~dRL;# ziG3g1_NHPts~=u&JZoh-nLb~_83XhXV^^HUgf~_)2oe(n86Jm(N4taiI-+XjVKEXt zeB>&e^YehGQI;!$6idYjSk%%jSC)O9YAnK1o3y96u%j{MS$VgWGyIz(N=*#-zP)QL zdYqL!+)*A-#iMMJ)wSKShs(Nk`Y7&x&wt>lB#w6ln2z?3UP~|5z3$)_qKJtumZkebakDtLRJ{`Sn% zP}T9e=2TjZG~uXf>(wJ*zOQH9Pcfr{MbL~&U_%xNie6UvQ@ie8;}qr?l+dXp zmBM=rXp9L7W30!72uu)2ctFR4(A8QW4?X_?qDzYTJ>k2Gk@@5ft-ttj0VE{&;)Kxh z#PE>|7lmV!ybHcwK-Iw(;QkLxCt5dMXx71P|;dhGd2S1>H z!zef;MR}%K^PU2l9IO6(mORW@u$>e+c>NAW7@B%CRi2`V`ZTkgzc^faO`5#&1c~Kyt?u$Er1~qAr*b*tXfp1a zV+C5Pz0m2*ju^T+M(MTBm;UyyuQW=}r3SiS_o!_vi5fS}Ui`*}k*}$wZc!;*?wKWO zvTtu>F`11mjgle;U&Z!35L;0pDwwmv#K6+Appe8(ld5u>BLpU%8KID!6DPAd_7_jj zeZcv2*qN>f*+SCgw|Ah5|vv?>au-37w)-gvqSup%Es;`i(G1hBLu+&u#pc2 zHZ+sQPxHUAYySW=bxjAa5-9T;8y>EIgo%jM&U5Iq!vn%Zn~4>L=|&kNTuS4553iQ& zvP(t(0F5Tll((T%My(I0+#Q_C92YV$H%&b1Egb&DIcWi>slC2Ny%h4`Z9JN@UfzpV z1Wj7=9(#yM8BmvKBAT%TnNKqJI(g*;5v|~=DZ8AbEW1;ao7Ly5EK``AarS|>HX=$P zt6Q1NH$%lh>gCZ%m{~8|`Y8n^;9i#iA&hP+dxwI)4HaDgIOa=Yw;y*!|iX=UbkR9IRv@B9(mUc}w@Wh6O~ zV)E2M2%M1!>rXn48zgbN$7jr1X;oTNqomVXGBmQnW}=x&iQ-1RhrsKF<{D76 zTZc(?<2?;LQT#FS6MLqOpP@FKqVSSWj$QqPF^HN82x3?#g4>UtZ;XUhVAaES7;6MH z;Y?Z;RH7OXD^T;(QBAuS!pifn-*&0RpzV7M@t!$VjsScD=oWh}fxbh_XDs$UzI z!qMnLe0CQpl<()1Ef|=q#B1>CO6OhfuvbancRK<0EDelQf}=|53v2tr)HwPXO;*dNWsOa zF8=^hP~FKY5=yhIDdDh^65*O^cI585X*HG&1kqHtqV6WF4GpIfX-#kc0GVZNvJyhl z)%bo7pF!?c;nf;HpK@;D9;y^w`wmNnLs~UYM{@ndsb)&2T2=A%K&#g?&!Rt5Tlkr^ zWU8m9%yHPKMf5ly_L^ghy77@DlPXusK0O(2f`(7ed=qh9_g-tTn9P$%=q8@BiA6ls zpXbo0W_v0|2Z?%8WfKGM2JVCNhEA(Afzg_krf?U?3QO& zo@M;v$t7x%a?I9G(V|S}Oc-V3TFbsU#E0~;)+=2cUz}xbh@los`?XJ3MLB9gKs?gR z%HUY6P>3M9DH5+Y981)h>O(1WDQ)UB)32`ELo=*WntllzY_j0Hdk;YZ*8`VDWn~Yz z`zA$FI-?yuD2J<8ehe4nHx-$*Jd^+0&Qzm-owN;im7hDs%;4B zodjei+KxLi7w40IuegngsA`a3)t|IaNlBp)nul4WKaz;(HT`2hI?&+%0AyG-#oS(p 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 CX#&Im literal 0 HcmV?d00001 diff --git a/src/App.css b/src/App.css new file mode 100644 index 0000000..d608b5b --- /dev/null +++ b/src/App.css @@ -0,0 +1,27 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} +html, +body, +#root { + margin: 0; + padding: 0; +} + +.app-container { + display: flex; + flex-direction: column; + min-height: 100vh; + max-width: 2048px; + margin-inline: auto; +} +.content { + width: 100%; + flex-grow: 1; +} + +footer { + margin-top: auto; +} diff --git a/src/App.jsx b/src/App.jsx new file mode 100644 index 0000000..65102a4 --- /dev/null +++ b/src/App.jsx @@ -0,0 +1,73 @@ +import { useLocation } from "react-router-dom"; +import { useEffect } from "react"; +import { Routes, Route } from "react-router-dom"; +import { HomeInfoProvider } from "./context/HomeInfoContext"; +import Home from "./pages/Home/Home"; +import AnimeInfo from "./pages/animeInfo/AnimeInfo"; +import Navbar from "./components/navbar/Navbar"; +import Footer from "./components/footer/Footer"; +import Error from "./components/error/Error"; +import Category from "./pages/category/Category"; +import AtoZ from "./pages/a2z/AtoZ"; +import { azRoute, categoryRoutes } from "./utils/category.utils"; +import "./App.css"; +import Search from "./pages/search/Search"; +import Watch from "./pages/watch/Watch"; +import Producer from "./components/producer/Producer"; +import SplashScreen from "./components/splashscreen/SplashScreen"; + +function App() { + const location = useLocation(); + + // Scroll to top on location change + useEffect(() => { + window.scrollTo(0, 0); + }, [location]); + + // Check if the current route is for the splash screen + const isSplashScreen = location.pathname === "/"; + + return ( + +
+
+ {!isSplashScreen && } + + } /> + } /> + } /> + } /> + } /> + } /> + } /> + {/* Render category routes */} + {categoryRoutes.map((path) => ( + + } + /> + ))} + {/* Render A to Z routes */} + {azRoute.map((path) => ( + } + /> + ))} + } /> + } /> + {/* Catch-all route for 404 */} + } /> + + {!isSplashScreen &&
} +
+
+
+ ); +} + +export default App; diff --git a/src/components/Loader/AnimeInfo.loader.jsx b/src/components/Loader/AnimeInfo.loader.jsx new file mode 100644 index 0000000..3a20c22 --- /dev/null +++ b/src/components/Loader/AnimeInfo.loader.jsx @@ -0,0 +1,58 @@ +import { Skeleton } from "@/src/components/ui/Skeleton/Skeleton"; +import CategoryCardLoader from "./CategoryCard.loader"; +import SidecardLoader from "./Sidecard.loader"; + +const SkeletonItems = ({ count, className }) => ( + [...Array(count)].map((_, index) => ) +); + +function AnimeInfoLoader() { + return ( + <> +
+ +
+ +
+
    + +
+
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+
+
+
+
+
+ +
+ +
+ +
+
+ +
+
+
+
+ + +
+ + ); +} +export default AnimeInfoLoader; diff --git a/src/components/Loader/AtoZ.loader.jsx b/src/components/Loader/AtoZ.loader.jsx new file mode 100644 index 0000000..8c9ba62 --- /dev/null +++ b/src/components/Loader/AtoZ.loader.jsx @@ -0,0 +1,26 @@ +import { Skeleton } from "../ui/Skeleton/Skeleton"; +import CategoryCardLoader from "./CategoryCard.loader"; + +const SkeletonItems = ({ count, className }) => ( + [...Array(count)].map((_, index) => ) +); + +function AtoZLoader() { + return ( +
+
    + + +
+
+ +
+ +
+
+ +
+ ); +} + +export default AtoZLoader; diff --git a/src/components/Loader/Cart.loader.jsx b/src/components/Loader/Cart.loader.jsx new file mode 100644 index 0000000..2467415 --- /dev/null +++ b/src/components/Loader/Cart.loader.jsx @@ -0,0 +1,27 @@ +import { Skeleton } from "../ui/Skeleton/Skeleton" +const SkeletonItems = ({ count, className }) => ( + [...Array(count)].map((_, index) => ) +); +function CartLoader() { + return ( +
+ +
+ {[...Array(5)].map((item, index) => ( +
+ +
+ +
+ +
+
+
+ ))} +
+ +
+ ) +} + +export default CartLoader \ No newline at end of file diff --git a/src/components/Loader/Category.loader.jsx b/src/components/Loader/Category.loader.jsx new file mode 100644 index 0000000..45a6b21 --- /dev/null +++ b/src/components/Loader/Category.loader.jsx @@ -0,0 +1,23 @@ +import { Skeleton } from "../ui/Skeleton/Skeleton" +import CategoryCardLoader from "./CategoryCard.loader" +import SidecardLoader from "./Sidecard.loader" + +function CategoryLoader() { + return ( +
+
+ +
+ + +
+
+
+ + +
+
+ ) +} + +export default CategoryLoader \ No newline at end of file diff --git a/src/components/Loader/CategoryCard.loader.jsx b/src/components/Loader/CategoryCard.loader.jsx new file mode 100644 index 0000000..c170069 --- /dev/null +++ b/src/components/Loader/CategoryCard.loader.jsx @@ -0,0 +1,35 @@ +import { Skeleton } from "../ui/Skeleton/Skeleton"; + +function CategoryCardLoader({ className, showLabelSkeleton = true }) { + return ( +
+ {showLabelSkeleton && ( + + )} +
+ {[...Array(12)].map((_, index) => ( +
+
+ +
+ + +
+
+ +
+ + +
+
+ ))} +
+
+ ); +} + +export default CategoryCardLoader; diff --git a/src/components/Loader/Home.loader.jsx b/src/components/Loader/Home.loader.jsx new file mode 100644 index 0000000..21f8491 --- /dev/null +++ b/src/components/Loader/Home.loader.jsx @@ -0,0 +1,32 @@ +import CartLoader from "./Cart.loader"; +import CategoryCardLoader from "./CategoryCard.loader"; +import SidecardLoader from "./Sidecard.loader"; +import SpotlightLoader from "./Spotlight.loader"; +import Trendingloader from "./Trending.loader"; +function HomeLoader() { + return ( +
+ + +
+ + + + +
+
+
+ + + +
+
+ + +
+
+
+ ); +} + +export default HomeLoader; diff --git a/src/components/Loader/Loader.jsx b/src/components/Loader/Loader.jsx new file mode 100644 index 0000000..e6a7886 --- /dev/null +++ b/src/components/Loader/Loader.jsx @@ -0,0 +1,24 @@ +import AnimeInfoLoader from "./AnimeInfo.loader"; +import HomeLoader from "./Home.loader"; +import CategoryLoader from "./Category.loader"; +import AtoZLoader from "./AtoZ.loader"; +import ProducerLoader from "./Producer.loader"; + +const Loader = ({ type }) => { + switch (type) { + case "home": + return ; + case "animeInfo": + return ; + case "category": + return ; + case "producer": + return ; + case "AtoZ": + return ; + default: + return
; + } +}; + +export default Loader; diff --git a/src/components/Loader/Producer.loader.jsx b/src/components/Loader/Producer.loader.jsx new file mode 100644 index 0000000..b48b908 --- /dev/null +++ b/src/components/Loader/Producer.loader.jsx @@ -0,0 +1,15 @@ +import CategoryCardLoader from "./CategoryCard.loader"; +import SidecardLoader from "./Sidecard.loader"; + +function ProducerLoader() { + return ( +
+
+ + +
+
+ ); +} + +export default ProducerLoader; diff --git a/src/components/Loader/Sidecard.loader.jsx b/src/components/Loader/Sidecard.loader.jsx new file mode 100644 index 0000000..8f9d7d5 --- /dev/null +++ b/src/components/Loader/Sidecard.loader.jsx @@ -0,0 +1,26 @@ +import { Skeleton } from "../ui/Skeleton/Skeleton"; +function SidecardLoader({ className }) { + return ( +
+ +
+ {[...Array(10)].map((_, index) => ( +
+
+ +
+ +
+ + +
+
+
+
+ ))} +
+
+ ); +} + +export default SidecardLoader; diff --git a/src/components/Loader/Spotlight.loader.jsx b/src/components/Loader/Spotlight.loader.jsx new file mode 100644 index 0000000..583d74c --- /dev/null +++ b/src/components/Loader/Spotlight.loader.jsx @@ -0,0 +1,34 @@ +import { Skeleton } from "../ui/Skeleton/Skeleton" +const SkeletonItems = ({ count, className }) => ( + [...Array(count)].map((_, index) => ) +); +function SpotlightLoader() { + return ( +
+
+ + +
+ +
+ +
+ +
+
+
+
+ + + +
+
+ + +
+
+
+ ) +} + +export default SpotlightLoader \ No newline at end of file diff --git a/src/components/Loader/Trending.loader.jsx b/src/components/Loader/Trending.loader.jsx new file mode 100644 index 0000000..bf777db --- /dev/null +++ b/src/components/Loader/Trending.loader.jsx @@ -0,0 +1,34 @@ +import { useState, useEffect } from "react"; +import { Skeleton } from "../ui/Skeleton/Skeleton"; + +function TrendingLoader() { + const [count, setCount] = useState(() => window.innerWidth < 720 ? 3 : window.innerWidth < 1300 ? 4 : 6); + useEffect(() => { + const updateCount = () => { + if (window.innerWidth < 720) { + setCount(3); + } else if (window.innerWidth < 1300) { + setCount(4); + } else { + setCount(6); + } + }; + updateCount(); + window.addEventListener("resize", updateCount); + return () => window.removeEventListener("resize", updateCount); + }, []); + return ( +
+ +
+ {[...Array(count)].map((_, index) => ( +
+ +
+ ))} +
+
+ ); +} + +export default TrendingLoader; diff --git a/src/components/Loader/VoiceActorlist.loader.jsx b/src/components/Loader/VoiceActorlist.loader.jsx new file mode 100644 index 0000000..f4b975e --- /dev/null +++ b/src/components/Loader/VoiceActorlist.loader.jsx @@ -0,0 +1,21 @@ +import { Skeleton } from "../ui/Skeleton/Skeleton" + +function VoiceActorlistLoader() { + return ( +
+ {[...Array(10)].map((_, index) => ( +
+
+ +
+ + +
+
+
+ ))} +
+ ) +} + +export default VoiceActorlistLoader \ No newline at end of file diff --git a/src/components/banner/Banner.css b/src/components/banner/Banner.css new file mode 100644 index 0000000..599a1b4 --- /dev/null +++ b/src/components/banner/Banner.css @@ -0,0 +1,133 @@ +.spotlight { + overflow: hidden; +} + +.spotlight-overlay { + width: 100.1%; + height: 100.1%; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom:0; + background: radial-gradient( + circle at 130% center, + rgba(32, 31, 49, 0) 50%, + rgba(32, 31, 49, 0.5) 60%, + rgba(32, 31, 49, 1) 80%, + rgba(32, 31, 49, 1) 100% + ), + linear-gradient( + to top, + rgba(32, 31, 49, 1) 0%, + rgba(32, 31, 49, 0) 20%, + rgba(32, 31, 49, 0) 100% + ), + linear-gradient( + to left, + rgba(32, 31, 49, 1) 0%, + rgba(32, 31, 49, 0) 20%, + rgba(32, 31, 49, 0) 100% + ), + linear-gradient( + to bottom, + rgba(32, 31, 49, 1) 0%, + rgba(32, 31, 49, 0) 20%, + rgba(32, 31, 49, 0) 100% + ); + + z-index: 1; +} +@media only screen and (max-width: 1300px) { + .spotlight-overlay { + background: radial-gradient( + circle at 130% center, + rgba(32, 31, 49, 0) 50%, + rgba(32, 31, 49, 0.5) 60%, + rgba(32, 31, 49, 1) 80%, + rgba(32, 31, 49, 1) 100% + ), + linear-gradient( + to top, + rgba(32, 31, 49, 1) 0%, + rgba(32, 31, 49, 0) 20%, + rgba(32, 31, 49, 0) 100% + ), + linear-gradient( + to left, + rgba(32, 31, 49, 1) 0%, + rgba(32, 31, 49, 0) 20%, + rgba(32, 31, 49, 0) 100% + ), + linear-gradient( + to bottom, + rgba(32, 31, 49, 1) 0%, + rgba(32, 31, 49, 0) 50%, + rgba(32, 31, 49, 0) 100% + ); + } +} +@media only screen and (max-width: 1200px) { + .spotlight-overlay { + background: radial-gradient( + circle at 100% center, + rgba(32, 31, 49, 0) 50%, + rgba(32, 31, 49, 0.5) 60%, + rgba(32, 31, 49, 1) 95%, + rgba(32, 31, 49, 1) 100% + ), + linear-gradient( + to top, + rgba(32, 31, 49, 1) 0%, + rgba(32, 31, 49, 0) 20%, + rgba(32, 31, 49, 0) 100% + ), + linear-gradient( + to left, + rgba(32, 31, 49, 1) 0%, + rgba(32, 31, 49, 0) 20%, + rgba(32, 31, 49, 0) 100% + ), + linear-gradient( + to bottom, + rgba(32, 31, 49, 1) 0%, + rgba(32, 31, 49, 0) 70%, + rgba(32, 31, 49, 0) 100% + ); + } +} +@media only screen and (max-width: 900px) { + .spotlight-overlay { + background: radial-gradient( + circle at 60% center, + rgba(32, 31, 49, 0) 50%, + rgba(32, 31, 49, 0.5) 85%, + rgba(32, 31, 49, 1) 95%, + rgba(32, 31, 49, 1) 100% + ), + linear-gradient( + to top, + rgba(32, 31, 49, 1) 0%, + rgba(32, 31, 49, 0) 70%, + rgba(32, 31, 49, 0) 100% + ), + linear-gradient( + to left, + rgba(32, 31, 49, 1) 0%, + rgba(32, 31, 49, 0) 20%, + rgba(32, 31, 49, 0) 100% + ), + linear-gradient( + to bottom, + rgba(32, 31, 49, 1) 0%, + rgba(32, 31, 49, 0) 70%, + rgba(32, 31, 49, 0) 100% + ), + linear-gradient( + to right, + rgba(32, 31, 49, 1) 0%, + rgba(32, 31, 49, 0) 15%, + rgba(32, 31, 49, 0) 100% + ); + } +} diff --git a/src/components/banner/Banner.jsx b/src/components/banner/Banner.jsx new file mode 100644 index 0000000..aa9aaf5 --- /dev/null +++ b/src/components/banner/Banner.jsx @@ -0,0 +1,136 @@ +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { + faPlay, + faClosedCaptioning, + faMicrophone, + faCalendar, + faClock, +} from "@fortawesome/free-solid-svg-icons"; +import { FaChevronRight } from "react-icons/fa"; +import { Link } from "react-router-dom"; +import { useLanguage } from "@/src/context/LanguageContext"; +import "./Banner.css"; + +function Banner({ item, index }) { + const { language } = useLanguage(); + return ( +
+ {item.title} +
+
+

+ #{index + 1} Spotlight +

+

+ {language === "EN" ? item.title : item.japanese_title} +

+
+ {item.tvInfo && ( + <> + {item.tvInfo.showType && ( +
+ +

+ {item.tvInfo.showType} +

+
+ )} + + {item.tvInfo.duration && ( +
+ +

+ {item.tvInfo.duration} +

+
+ )} + + {item.tvInfo.releaseDate && ( +
+ +

+ {item.tvInfo.releaseDate} +

+
+ )} + +
+ {item.tvInfo.quality && ( +
+ {item.tvInfo.quality} +
+ )} +
+ {item.tvInfo.episodeInfo?.sub && ( +
+ +

+ {item.tvInfo.episodeInfo.sub} +

+
+ )} + + {item.tvInfo.episodeInfo?.dub && ( +
+ +

+ {item.tvInfo.episodeInfo.dub} +

+
+ )} +
+
+ + )} +
+

+ {item.description} +

+
+ + +

+ Detail +

+ + +
+
+
+ ); +} + +export default Banner; diff --git a/src/components/cart/Cart.css b/src/components/cart/Cart.css new file mode 100644 index 0000000..ff2b750 --- /dev/null +++ b/src/components/cart/Cart.css @@ -0,0 +1,10 @@ +.dot { + width: 4px; + height: 4px; + display: flex; + justify-content: center; + align-items: center; + border-radius: 50%; + background: rgba(255, 255, 255, .3); + display: inline-block; +} diff --git a/src/components/cart/Cart.jsx b/src/components/cart/Cart.jsx new file mode 100644 index 0000000..0ceefe7 --- /dev/null +++ b/src/components/cart/Cart.jsx @@ -0,0 +1,132 @@ +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { + faClosedCaptioning, + faMicrophone, +} from "@fortawesome/free-solid-svg-icons"; +import { FaChevronRight } from "react-icons/fa"; +import { useLanguage } from "@/src/context/LanguageContext"; +import "./Cart.css"; +import { Link, useNavigate } from "react-router-dom"; +import { useState } from "react"; +import useToolTipPosition from "@/src/hooks/useToolTipPosition"; +import Qtip from "../qtip/Qtip"; + +function Cart({ label, data, path }) { + const { language } = useLanguage(); + const navigate = useNavigate(); + const [hoveredItem, setHoveredItem] = useState(null); + const [hoverTimeout, setHoverTimeout] = useState(null); + const { tooltipPosition, tooltipHorizontalPosition, cardRefs } = + useToolTipPosition(hoveredItem, data); + + const handleImageEnter = (item, index) => { + if (hoverTimeout) clearTimeout(hoverTimeout); + setHoveredItem(item.id + index); + }; + + const handleImageLeave = () => { + setHoverTimeout( + setTimeout(() => { + setHoveredItem(null); + }, 300) + ); + }; + + return ( +
+

+ {label} +

+
+ {data && + data.slice(0, 5).map((item, index) => ( +
(cardRefs.current[index] = el)} + > + {item.title} navigate(`/watch/${item.id}`)} + onMouseEnter={() => handleImageEnter(item, index)} + onMouseLeave={handleImageLeave} + /> + + {hoveredItem === item.id + index && window.innerWidth > 1024 && ( +
{ + if (hoverTimeout) clearTimeout(hoverTimeout); + }} + onMouseLeave={handleImageLeave} + > + +
+ )} + +
+ + {language === "EN" ? item.title : item.japanese_title} + +
+ {item.tvInfo?.sub && ( +
+ +

{item.tvInfo.sub}

+
+ )} + + {item.tvInfo?.dub && ( +
+ +

{item.tvInfo.dub}

+
+ )} +
+
+

+ {item.tvInfo.showType} +

+
+
+
+
+ ))} + +

+ View more +

+ + +
+
+ ); +} + +export default Cart; diff --git a/src/components/categorycard/CategoryCard.css b/src/components/categorycard/CategoryCard.css new file mode 100644 index 0000000..04411bc --- /dev/null +++ b/src/components/categorycard/CategoryCard.css @@ -0,0 +1,27 @@ +.overlay { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: linear-gradient( + to top, + rgba(32, 31, 49, 1) 0%, + rgba(32, 31, 49, 0) 20%, + rgba(32, 31, 49, 0) 100% + ); + + z-index: 50; +} +.dot { + width: 5px; + height: 5px; + display: flex; + justify-content: center; + align-items: center; + border-radius: 50%; + background: rgba(255, 255, 255, 0.3); + display: inline-block; +} diff --git a/src/components/categorycard/CategoryCard.jsx b/src/components/categorycard/CategoryCard.jsx new file mode 100644 index 0000000..00bd560 --- /dev/null +++ b/src/components/categorycard/CategoryCard.jsx @@ -0,0 +1,340 @@ +import React, { useCallback, useEffect, useState } from "react"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { + faClosedCaptioning, + faMicrophone, + faPlay, +} from "@fortawesome/free-solid-svg-icons"; +import { FaChevronRight } from "react-icons/fa"; +import "./CategoryCard.css"; +import { useLanguage } from "@/src/context/LanguageContext"; +import { Link, useNavigate } from "react-router-dom"; +import Qtip from "../qtip/Qtip"; +import useToolTipPosition from "@/src/hooks/useToolTipPosition"; + +const CategoryCard = React.memo( + ({ + label, + data, + showViewMore = true, + className, + categoryPage = false, + cardStyle, + path, + limit, + }) => { + const { language } = useLanguage(); + const navigate = useNavigate(); + const [showPlay, setShowPlay] = useState(false); + if (limit) { + data = data.slice(0, limit); + } + + const [itemsToRender, setItemsToRender] = useState({ + firstRow: [], + remainingItems: [], + }); + + const getItemsToRender = useCallback(() => { + if (categoryPage) { + const firstRow = + window.innerWidth > 758 && data.length > 4 ? data.slice(0, 4) : []; + const remainingItems = + window.innerWidth > 758 && data.length > 4 + ? data.slice(4) + : data.slice(0); + return { firstRow, remainingItems }; + } + return { firstRow: [], remainingItems: data.slice(0) }; + }, [categoryPage, data]); + + useEffect(() => { + const handleResize = () => { + setItemsToRender(getItemsToRender()); + }; + const newItems = getItemsToRender(); + setItemsToRender((prev) => { + if ( + JSON.stringify(prev.firstRow) !== JSON.stringify(newItems.firstRow) || + JSON.stringify(prev.remainingItems) !== + JSON.stringify(newItems.remainingItems) + ) { + return newItems; + } + return prev; + }); + + window.addEventListener("resize", handleResize); + return () => { + window.removeEventListener("resize", handleResize); + }; + }, [getItemsToRender]); + const [hoveredItem, setHoveredItem] = useState(null); + const [hoverTimeout, setHoverTimeout] = useState(null); + const { tooltipPosition, tooltipHorizontalPosition, cardRefs } = + useToolTipPosition(hoveredItem, data); + const handleMouseEnter = (item, index) => { + const timeout = setTimeout(() => { + setHoveredItem(item.id + index); + setShowPlay(true); + }, 400); + setHoverTimeout(timeout); + }; + const handleMouseLeave = () => { + clearTimeout(hoverTimeout); + setHoveredItem(null); + setShowPlay(false); + }; + return ( +
+
+

+ {label} +

+ {showViewMore && ( + +

+ View more +

+ + + )} +
+ <> + {categoryPage && ( +
0 + ? "mt-8 max-[758px]:hidden" + : "" + }`} + > + {itemsToRender.firstRow.map((item, index) => ( +
(cardRefs.current[index] = el)} + > +
+ navigate( + `${ + path === "top-upcoming" + ? `/${item.id}` + : `/watch/${item.id}` + }` + ) + } + onMouseEnter={() => handleMouseEnter(item, index)} + onMouseLeave={handleMouseLeave} + > + {hoveredItem === item.id + index && showPlay && ( + + )} + +
+
+ {item.title} +
+ {(item.tvInfo?.rating === "18+" || + item?.adultContent === true) && ( +
+ 18+ +
+ )} +
+ {item.tvInfo?.sub && ( +
+ +

+ {item.tvInfo.sub} +

+
+ )} + {item.tvInfo?.dub && ( +
+ +

+ {item.tvInfo.dub} +

+
+ )} + {item.tvInfo?.eps && ( +
+

+ {item.tvInfo.eps} +

+
+ )} +
+ {hoveredItem === item.id + index && + window.innerWidth > 1024 && ( +
+ +
+ )} +
+ + {language === "EN" ? item.title : item.japanese_title} + + {item.description && ( +
+ {item.description} +
+ )} +
+
+ {item.tvInfo.showType.split(" ").shift()} +
+
+
+ {item.tvInfo?.duration === "m" || + item.tvInfo?.duration === "?" || + item.duration === "m" || + item.duration === "?" + ? "N/A" + : item.tvInfo?.duration || item.duration || "N/A"} +
+
+
+ ))} +
+ )} +
+ {itemsToRender.remainingItems.map((item, index) => ( +
(cardRefs.current[index] = el)} + > +
+ navigate( + `${ + path === "top-upcoming" + ? `/${item.id}` + : `/watch/${item.id}` + }` + ) + } + onMouseEnter={() => handleMouseEnter(item, index)} + onMouseLeave={handleMouseLeave} + > + {hoveredItem === item.id + index && showPlay && ( + + )} +
+
+ {item.title} +
+ {(item.tvInfo?.rating === "18+" || + item?.adultContent === true) && ( +
+ 18+ +
+ )} +
+ {item.tvInfo?.sub && ( +
+ +

+ {item.tvInfo.sub} +

+
+ )} + {item.tvInfo?.dub && ( +
+ +

+ {item.tvInfo.dub} +

+
+ )} +
+ {hoveredItem === item.id + index && + window.innerWidth > 1024 && ( +
+ +
+ )} +
+ + {language === "EN" ? item.title : item.japanese_title} + +
+
+ {item.tvInfo.showType.split(" ").shift()} +
+
+
+ {item.tvInfo?.duration === "m" || + item.tvInfo?.duration === "?" || + item.duration === "m" || + item.duration === "?" + ? "N/A" + : item.tvInfo?.duration || item.duration || "N/A"} +
+
+
+ ))} +
+ +
+ ); + } +); + +CategoryCard.displayName = "CategoryCard"; + +export default CategoryCard; diff --git a/src/components/continue/ContinueWatching.jsx b/src/components/continue/ContinueWatching.jsx new file mode 100644 index 0000000..da8d369 --- /dev/null +++ b/src/components/continue/ContinueWatching.jsx @@ -0,0 +1,132 @@ +import { Navigation } from "swiper/modules"; +import { Swiper, SwiperSlide } from "swiper/react"; +import { Link } from "react-router-dom"; +import { useEffect, useState, useRef, useMemo } from "react"; +import "swiper/css"; +import "swiper/css/pagination"; +import "swiper/css/navigation"; +import { FaHistory, FaChevronLeft, FaChevronRight } from "react-icons/fa"; +import { useLanguage } from "@/src/context/LanguageContext"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { faPlay } from "@fortawesome/free-solid-svg-icons"; + +const ContinueWatching = () => { + const [watchList, setWatchList] = useState([]); + const { language } = useLanguage(); + const swiperRef = useRef(null); + + useEffect(() => { + const data = JSON.parse(localStorage.getItem("continueWatching") || "[]"); + setWatchList(data); + }, []); + + // Memoize watchList to avoid unnecessary re-renders + const memoizedWatchList = useMemo(() => watchList, [watchList]); + + const removeFromWatchList = (episodeId) => { + setWatchList((prevList) => { + const updatedList = prevList.filter( + (item) => item.episodeId !== episodeId + ); + localStorage.setItem("continueWatching", JSON.stringify(updatedList)); + return updatedList; + }); + }; + + if (memoizedWatchList.length === 0) return null; + + return ( +
+
+
+ +

+ Continue Watching +

+
+ +
+ + +
+
+ +
+ + {memoizedWatchList.map((item, index) => ( + +
+ + + + {item?.title} +
+ +
+ + {item?.adultContent === true && ( +
+ 18+ +
+ )} +
+

+ {language === "EN" + ? item?.title + : item?.japanese_title} +

+

+ Episode {item.episodeNum} +

+
+
+
+ ))} +
+
+
+ ); +}; + +export default ContinueWatching; diff --git a/src/components/episodelist/Episodelist.css b/src/components/episodelist/Episodelist.css new file mode 100644 index 0000000..8fd6b62 --- /dev/null +++ b/src/components/episodelist/Episodelist.css @@ -0,0 +1,15 @@ +@keyframes glow { + 0% { + box-shadow: 0 0 7px #ffbade; + } + 50% { + box-shadow: 0 0 20px #ffbade; + } + 100% { + box-shadow: 0 0 7px #ffbade; + } +} + +.glow-animation { + animation: glow 1.5s infinite; +} diff --git a/src/components/episodelist/Episodelist.jsx b/src/components/episodelist/Episodelist.jsx new file mode 100644 index 0000000..cc86327 --- /dev/null +++ b/src/components/episodelist/Episodelist.jsx @@ -0,0 +1,303 @@ +import { useLanguage } from "@/src/context/LanguageContext"; +import { + faAngleDown, + faCirclePlay, + faList, + faCheck, +} from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { faMagnifyingGlass } from "@fortawesome/free-solid-svg-icons"; +import { useState, useEffect, useRef } from "react"; +import "./Episodelist.css"; + +function Episodelist({ + episodes, + onEpisodeClick, + currentEpisode, + totalEpisodes, +}) { + const [activeEpisodeId, setActiveEpisodeId] = useState(currentEpisode); + const { language } = useLanguage(); + const listContainerRef = useRef(null); + const activeEpisodeRef = useRef(null); + const [showDropDown, setShowDropDown] = useState(false); + const [selectedRange, setSelectedRange] = useState([1, 100]); + const [activeRange, setActiveRange] = useState("1-100"); + const [episodeNum, setEpisodeNum] = useState(currentEpisode); + const dropDownRef = useRef(null); + const [searchedEpisode, setSearchedEpisode] = useState(null); + + const scrollToActiveEpisode = () => { + if (activeEpisodeRef.current && listContainerRef.current) { + const container = listContainerRef.current; + const activeEpisode = activeEpisodeRef.current; + const containerTop = container.getBoundingClientRect().top; + const containerHeight = container.clientHeight; + const activeEpisodeTop = activeEpisode.getBoundingClientRect().top; + const activeEpisodeHeight = activeEpisode.clientHeight; + const offset = activeEpisodeTop - containerTop; + container.scrollTop = + container.scrollTop + + offset - + containerHeight / 2 + + activeEpisodeHeight / 2; + } + }; + useEffect(() => { + setActiveEpisodeId(episodeNum); + }, [episodeNum]); + useEffect(() => { + scrollToActiveEpisode(); + }, [activeEpisodeId]); + + useEffect(() => { + const handleClickOutside = (event) => { + if (dropDownRef.current && !dropDownRef.current.contains(event.target)) { + setShowDropDown(false); + } + }; + document.addEventListener("mousedown", handleClickOutside); + return () => { + document.removeEventListener("mousedown", handleClickOutside); + }; + }, []); + + function handleChange(e) { + const value = e.target.value; + if (value.trim() === "") { + const newRange = findRangeForEpisode(1); + setSelectedRange(newRange); + setActiveRange(`${newRange[0]}-${newRange[1]}`); + setSearchedEpisode(null); + } else if (!value || isNaN(value)) { + setSearchedEpisode(null); + } else if ( + !isNaN(value) && + parseInt(value, 10) > totalEpisodes && + episodeNum !== null + ) { + const newRange = findRangeForEpisode(episodeNum); + setSelectedRange(newRange); + setActiveRange(`${newRange[0]}-${newRange[1]}`); + setSearchedEpisode(null); + } else if (!isNaN(value) && value.trim() !== "") { + const num = parseInt(value, 10); + const foundEpisode = episodes.find((item) => item?.episode_no === num); + if (foundEpisode) { + const newRange = findRangeForEpisode(num); + setSelectedRange(newRange); + setActiveRange(`${newRange[0]}-${newRange[1]}`); + setSearchedEpisode(foundEpisode?.id); + } + } else { + setSearchedEpisode(null); + } + } + + function findRangeForEpisode(episodeNumber) { + const step = 100; + const start = Math.floor((episodeNumber - 1) / step) * step + 1; + const end = Math.min(start + step - 1, totalEpisodes); + return [start, end]; + } + + function generateRangeOptions(totalEpisodes) { + const ranges = []; + const step = 100; + + for (let i = 0; i < totalEpisodes; i += step) { + const start = i + 1; + const end = Math.min(i + step, totalEpisodes); + ranges.push(`${start}-${end}`); + } + return ranges; + } + useEffect(() => { + if (currentEpisode && episodeNum) { + if (episodeNum < selectedRange[0] || episodeNum > selectedRange[1]) { + const newRange = findRangeForEpisode(episodeNum); + setSelectedRange(newRange); + setActiveRange(`${newRange[0]}-${newRange[1]}`); + } + } + }, [currentEpisode, totalEpisodes, episodeNum]); + + const handleRangeSelect = (range) => { + const [start, end] = range.split("-").map(Number); + setSelectedRange([start, end]); + }; + + useEffect(() => { + const activeEpisode = episodes.find( + (item) => item?.id.match(/ep=(\d+)/)?.[1] === activeEpisodeId + ); + if (activeEpisode) { + setEpisodeNum(activeEpisode?.episode_no); + } + }, [activeEpisodeId, episodes]); + + return ( +
+
+

List of episodes:

+ {totalEpisodes > 100 && ( +
+
+
setShowDropDown((prev) => !prev)} + className="text-white w-fit mt-1 text-[13px] relative cursor-pointer bg-[#0D0D15] flex justify-center items-center" + ref={dropDownRef} + > + +
+

+ EPS: {selectedRange[0]}-{selectedRange[1]} +

+ +
+ {showDropDown && ( +
+ {generateRangeOptions(totalEpisodes).map((item, index) => ( +
{ + handleRangeSelect(item); + setActiveRange(item); + }} + className={`hover:bg-gray-200 cursor-pointer text-black ${ + item === activeRange ? "bg-[#EFF0F4]" : "" + }`} + > +

+ EPS: {item} + {item === activeRange ? ( + + ) : null} +

+
+ ))} +
+ )} +
+
+
+ + +
+
+ )} +
+
+
30 + ? "p-3 grid grid-cols-5 gap-1 max-[1200px]:grid-cols-12 max-[860px]:grid-cols-10 max-[575px]:grid-cols-8 max-[478px]:grid-cols-6 max-[350px]:grid-cols-5" + : "" + }`} + > + {totalEpisodes > 30 + ? episodes + .slice(selectedRange[0] - 1, selectedRange[1]) + .map((item, index) => { + const episodeNumber = item?.id.match(/ep=(\d+)/)?.[1]; + const isActive = + activeEpisodeId === episodeNumber || + currentEpisode === episodeNumber; + const isSearched = searchedEpisode === item?.id; + + return ( +
{ + if (episodeNumber) { + onEpisodeClick(episodeNumber); + setActiveEpisodeId(episodeNumber); + setSearchedEpisode(null); + } + }} + > + + {index + selectedRange[0]} + +
+ ); + }) + : episodes?.map((item, index) => { + const episodeNumber = item?.id.match(/ep=(\d+)/)?.[1]; + const isActive = + activeEpisodeId === episodeNumber || + currentEpisode === episodeNumber; + const isSearched = searchedEpisode === item?.id; + + return ( +
{ + if (episodeNumber) { + onEpisodeClick(episodeNumber); + setActiveEpisodeId(episodeNumber); + setSearchedEpisode(null); + } + }} + > +

{index + 1}

+
+

+ {language === "EN" ? item?.title : item?.japanese_title} +

+ {isActive && ( + + )} +
+
+ ); + })} +
+
+
+ ); +} + +export default Episodelist; diff --git a/src/components/error/Error.jsx b/src/components/error/Error.jsx new file mode 100644 index 0000000..6776274 --- /dev/null +++ b/src/components/error/Error.jsx @@ -0,0 +1,21 @@ +import { FaChevronLeft } from "react-icons/fa" +import { useNavigate } from "react-router-dom" + +function Error({ error }) { + const navigate = useNavigate(); + return ( +
+
+ +

{error === "404" ? "404 Error" : "Error"}

+

Oops! We couldn't find this page.

+ +
+
+ ) +} + +export default Error \ No newline at end of file diff --git a/src/components/footer/Footer.jsx b/src/components/footer/Footer.jsx new file mode 100644 index 0000000..43404af --- /dev/null +++ b/src/components/footer/Footer.jsx @@ -0,0 +1,62 @@ +import logoTitle from "@/src/config/logoTitle.js"; +import website_name from "@/src/config/website.js"; +import { Link } from "react-router-dom"; + +function Footer() { + return ( +
+
+ {logoTitle} +
+
+
+

A-Z LIST

+

+ Searching anime order by alphabet name A to Z +

+
+
+ {[ + "All", + "#", + "0-9", + ...Array.from({ length: 26 }, (_, i) => + String.fromCharCode(65 + i) + ), + ].map((item, index) => ( + + {item} + + ))} +
+
+

+ {website_name} does not host any files, it merely pulls streams from + 3rd party services. Legal issues should be taken up with the file + hosts and providers. {website_name} is not responsible for any media + files shown by the video providers. +

+

+ © {website_name}. All rights reserved. +

+
+
+
+ ); +} + +export default Footer; diff --git a/src/components/genres/Genre.jsx b/src/components/genres/Genre.jsx new file mode 100644 index 0000000..c74424d --- /dev/null +++ b/src/components/genres/Genre.jsx @@ -0,0 +1,54 @@ +import React, { useState } from "react"; +import { Link } from "react-router-dom"; + +function Genre({ data }) { + const colors = [ + "#A4B389", + "#FFBADE", + "#935C5F", + "#AD92BC", + "#ABCCD8", + "#D8B2AB", + "#85E1CD", + "#B7C996", + ]; + + const [showAll, setShowAll] = useState(false); + const toggleGenres = () => { + setShowAll((prev) => !prev); + }; + + return ( +
+

Genres

+
+
+ {data && + (showAll ? data : data.slice(0, 24)).map((item, index) => { + const textColor = colors[index % colors.length]; + return ( + +
+ {item.charAt(0).toUpperCase() + item.slice(1)} +
+ + ); + })} +
+ +
+
+ ); +} + +export default React.memo(Genre); diff --git a/src/components/navbar/Navbar.jsx b/src/components/navbar/Navbar.jsx new file mode 100644 index 0000000..f6f1215 --- /dev/null +++ b/src/components/navbar/Navbar.jsx @@ -0,0 +1,147 @@ +import { useState, useEffect } from "react"; +import logoTitle from "@/src/config/logoTitle"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { + faBars, + faFilm, + faRandom, + faStar, +} from "@fortawesome/free-solid-svg-icons"; +import { useLanguage } from "@/src/context/LanguageContext"; +import { Link, useLocation } from "react-router-dom"; +import Sidebar from "../sidebar/Sidebar"; +import { SearchProvider } from "@/src/context/SearchContext"; +import WebSearch from "../searchbar/WebSearch"; +import MobileSearch from "../searchbar/MobileSearch"; +import { FaTelegramPlane } from "react-icons/fa"; + +function Navbar() { + const location = useLocation(); + const { language, toggleLanguage } = useLanguage(); + const [isNotHomePage, setIsNotHomePage] = useState( + location.pathname !== "/" && location.pathname !== "/home" + ); + const [isScrolled, setIsScrolled] = useState(false); + const [isSidebarOpen, setIsSidebarOpen] = useState(false); + + useEffect(() => { + const handleScroll = () => { + setIsScrolled(window.scrollY > 0); + }; + window.addEventListener("scroll", handleScroll); + return () => { + window.removeEventListener("scroll", handleScroll); + }; + }, []); + + const handleHamburgerClick = () => { + setIsSidebarOpen(true); + }; + + const handleCloseSidebar = () => { + setIsSidebarOpen(false); + }; + const handleRandomClick = () => { + if (location.pathname === "/random") { + window.location.reload(); + } + }; + useEffect(() => { + setIsNotHomePage( + location.pathname !== "/" && location.pathname !== "/home" + ); + }, [location.pathname]); + + return ( + + + + + ); +} + +export default Navbar; diff --git a/src/components/pageslider/PageSlider.jsx b/src/components/pageslider/PageSlider.jsx new file mode 100644 index 0000000..c42ebe2 --- /dev/null +++ b/src/components/pageslider/PageSlider.jsx @@ -0,0 +1,76 @@ +import { faAngleDoubleLeft, faAngleDoubleRight, faChevronLeft, faChevronRight } from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; + +function PageSlider({ page, totalPages, handlePageChange, start = false, style }) { + const renderPageNumbers = () => { + const pages = []; + if (totalPages === 1) return null; + if (totalPages <= 3) { + for (let i = 1; i <= totalPages; i++) { + pages.push(i); + } + } else { + if (page === 1) { + pages.push(1, 2, 3); + } else if (page === 2) { + pages.push(1, 2, 3, 4); + } else if (page === totalPages) { + pages.push(totalPages - 2, totalPages - 1, totalPages); + } else if (page === totalPages - 1) { + pages.push(totalPages - 3, totalPages - 2, totalPages - 1, totalPages); + } else { + pages.push(page - 2, page - 1, page, page + 1, page + 2); + } + } + return pages.map((p) => ( + + )); + }; + return ( +
+
+ {page > 1 && totalPages > 2 && ( + + )} + {page > 1 && ( + + )} + {renderPageNumbers()} + {page < totalPages && ( + + )} + {page < totalPages && totalPages > 2 && ( + + )} +
+
+ ) +} + +export default PageSlider \ No newline at end of file diff --git a/src/components/player/IframePlayer.jsx b/src/components/player/IframePlayer.jsx new file mode 100644 index 0000000..efbaab1 --- /dev/null +++ b/src/components/player/IframePlayer.jsx @@ -0,0 +1,148 @@ +/* eslint-disable react/prop-types */ +import { useEffect, useState } from "react"; +import BouncingLoader from "../ui/bouncingloader/Bouncingloader"; +import axios from "axios"; + +export default function IframePlayer({ + animeId, + episodeId, + serverName, + servertype, + animeInfo, + episodeNum, + episodes, + playNext, + autoNext, +}) { + const api_url=import.meta.env.VITE_API_URL; + const baseURL = + serverName.toLowerCase() === "hd-1" + ? import.meta.env.VITE_BASE_IFRAME_URL + : serverName.toLowerCase() === "hd-4" + ? import.meta.env.VITE_BASE_IFRAME_URL_2 + : undefined; + + const [loading, setLoading] = useState(true); + const [iframeLoaded, setIframeLoaded] = useState(false); + const [iframeSrc, setIframeSrc] = useState(""); + const [currentEpisodeIndex, setCurrentEpisodeIndex] = useState( + episodes?.findIndex( + (episode) => episode.id.match(/ep=(\d+)/)?.[1] === episodeId + ) + ); + + useEffect(() => { + const loadIframeUrl = async () => { + setLoading(true); + setIframeLoaded(false); + setIframeSrc(""); + + const lowerName = serverName.toLowerCase(); + + if (lowerName === "hd-1" || lowerName === "hd-4") { + setIframeSrc(`${baseURL}/${episodeId}/${servertype}`); + } else if (lowerName === "hd-2" || lowerName === "hd-3") { + try { + const res = await axios.get( + `${api_url}/stream?id=${animeId}?ep=${episodeId}&server=${serverName}&type=${servertype}` + ); + + const link = res?.data?.results?.streamingLink?.link; + if (link) { + setIframeSrc(`${link}&_debug=true`); + } else { + console.error("Streaming link not found in response"); + } + } catch (err) { + console.error("Failed to fetch streaming link:", err); + } + } + }; + + loadIframeUrl(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [episodeId, servertype, serverName, animeInfo]); + + useEffect(() => { + if (episodes?.length > 0) { + const newIndex = episodes.findIndex( + (episode) => episode.id.match(/ep=(\d+)/)?.[1] === episodeId + ); + setCurrentEpisodeIndex(newIndex); + } + }, [episodeId, episodes]); + + useEffect(() => { + const handleMessage = (event) => { + const { currentTime, duration } = event.data; + if (typeof currentTime === "number" && typeof duration === "number") { + if ( + currentTime >= duration && + currentEpisodeIndex < episodes?.length - 1 && + autoNext + ) { + playNext(episodes[currentEpisodeIndex + 1].id.match(/ep=(\d+)/)?.[1]); + } + } + }; + window.addEventListener("message", handleMessage); + return () => { + window.removeEventListener("message", handleMessage); + }; + }, [autoNext, currentEpisodeIndex, episodes, playNext]); + + useEffect(() => { + setLoading(true); + setIframeLoaded(false); + return () => { + const continueWatching = JSON.parse(localStorage.getItem("continueWatching")) || []; + const newEntry = { + id: animeInfo?.id, + data_id: animeInfo?.data_id, + episodeId, + episodeNum, + adultContent: animeInfo?.adultContent, + poster: animeInfo?.poster, + title: animeInfo?.title, + japanese_title: animeInfo?.japanese_title, + }; + if (!newEntry.data_id) return; + const existingIndex = continueWatching.findIndex( + (item) => item.data_id === newEntry.data_id + ); + if (existingIndex !== -1) { + continueWatching[existingIndex] = newEntry; + } else { + continueWatching.push(newEntry); + } + localStorage.setItem("continueWatching", JSON.stringify(continueWatching)); + }; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [episodeId, servertype]); + + return ( +
+ {/* Loader Overlay */} +
+ +
+ + +
+ ); +} diff --git a/src/components/player/Player.css b/src/components/player/Player.css new file mode 100644 index 0000000..87bd52b --- /dev/null +++ b/src/components/player/Player.css @@ -0,0 +1,59 @@ +.art-subtitle { + padding-inline: 0px !important; + gap: 2px !important; +} +.art-volume-panel { + padding-bottom: 20px !important; +} +.art-settings { + margin-bottom: 20px !important; +} +.art-subtitle { + margin-bottom: 1rem !important; +} +.art-subtitle-line { + min-width: fit-content; + background-color: rgba(0, 0, 0, 0.479) !important; + padding-inline: 3px !important; +} +.art-subtitle-line, +.art-subtitle-line * { + font-size: inherit !important; + color: inherit !important; + line-height: inherit !important; + font-weight: inherit !important; + white-space: inherit !important; +} +@media screen and (max-width: 370px) { + .art-progress { + padding-bottom: 5px !important; + } + .art-controls-left .art-control { + justify-content: flex-start !important; + } + .art-controls-right .art-control { + justify-content: flex-end !important; + } + .art-controls-right .art-control svg { + width: 22px; + height: 22px; + } + .art-controls-left .art-control svg { + width: 22px; + height: 22px; + } + .art-state .art-icon svg { + width: 50px; + height: 50px; + } +} +@media screen and (max-width: 350px) { + .art-controls-right .art-control svg { + width: 20px; + height: 20px; + } + .art-controls-left .art-control svg { + width: 20px; + height: 20px; + } +} diff --git a/src/components/player/Player.jsx b/src/components/player/Player.jsx new file mode 100644 index 0000000..bcf29bb --- /dev/null +++ b/src/components/player/Player.jsx @@ -0,0 +1,494 @@ +/* eslint-disable react/prop-types */ +import Hls from "hls.js"; +import { useEffect, useRef, useState } from "react"; +import Artplayer from "artplayer"; +import artplayerPluginChapter from "./artPlayerPluinChaper"; +import autoSkip from "./autoSkip"; +import artplayerPluginVttThumbnail from "./artPlayerPluginVttThumbnail"; +import { + backward10Icon, + backwardIcon, + captionIcon, + forward10Icon, + forwardIcon, + fullScreenOffIcon, + fullScreenOnIcon, + loadingIcon, + logo, + muteIcon, + pauseIcon, + pipIcon, + playIcon, + playIconLg, + settingsIcon, + volumeIcon, +} from "./PlayerIcons"; +import "./Player.css"; +import website_name from "@/src/config/website"; +import getChapterStyles from "./getChapterStyle"; +import artplayerPluginHlsControl from "artplayer-plugin-hls-control"; +import artplayerPluginUploadSubtitle from "./artplayerPluginUploadSubtitle"; + +Artplayer.LOG_VERSION = false; +Artplayer.CONTEXTMENU = false; + +const KEY_CODES = { + M: "m", + I: "i", + F: "f", + V: "v", + SPACE: " ", + ARROW_UP: "arrowup", + ARROW_DOWN: "arrowdown", + ARROW_RIGHT: "arrowright", + ARROW_LEFT: "arrowleft", +}; + +export default function Player({ + streamUrl, + subtitles, + thumbnail, + intro, + outro, + serverName, + autoSkipIntro, + autoPlay, + autoNext, + episodeId, + episodes, + playNext, + animeInfo, + episodeNum, + streamInfo, +}) { + const artRef = useRef(null); + const leftAtRef = useRef(0); + const proxy = import.meta.env.VITE_PROXY_URL; + const m3u8proxy = import.meta.env.VITE_M3U8_PROXY_URL?.split(",") || []; + const [currentEpisodeIndex, setCurrentEpisodeIndex] = useState( + episodes?.findIndex( + (episode) => episode.id.match(/ep=(\d+)/)?.[1] === episodeId + ) + ); + + useEffect(() => { + if (episodes?.length > 0) { + const newIndex = episodes.findIndex( + (episode) => episode.id.match(/ep=(\d+)/)?.[1] === episodeId + ); + setCurrentEpisodeIndex(newIndex); + } + }, [episodeId, episodes]); + useEffect(() => { + const applyChapterStyles = () => { + const existingStyles = document.querySelectorAll( + "style[data-chapter-styles]" + ); + existingStyles.forEach((style) => style.remove()); + const styleElement = document.createElement("style"); + styleElement.setAttribute("data-chapter-styles", "true"); + const styles = getChapterStyles(intro, outro); + styleElement.textContent = styles; + document.head.appendChild(styleElement); + return () => { + styleElement.remove(); + }; + }; + + if (streamUrl || intro || outro) { + const cleanup = applyChapterStyles(); + return cleanup; + } + }, [streamUrl, intro, outro]); + + const playM3u8 = (video, url, art) => { + if (Hls.isSupported()) { + if (art.hls) art.hls.destroy(); + const hls = new Hls(); + hls.loadSource(url); + hls.attachMedia(video); + art.hls = hls; + + art.on("destroy", () => hls.destroy()); + + // hls.on(Hls.Events.ERROR, (event, data) => { + // console.error("HLS.js error:", data); + // }); + video.addEventListener("timeupdate", () => { + const currentTime = Math.round(video.currentTime); + const duration = Math.round(video.duration); + if (duration > 0 && currentTime >= duration) { + art.pause(); + if (currentEpisodeIndex < episodes?.length - 1 && autoNext) { + playNext( + episodes[currentEpisodeIndex + 1].id.match(/ep=(\d+)/)?.[1] + ); + } + } + }); + } else if (video.canPlayType("application/vnd.apple.mpegurl")) { + video.src = url; + video.addEventListener("timeupdate", () => { + const currentTime = Math.round(video.currentTime); + const duration = Math.round(video.duration); + if (duration > 0 && currentTime >= duration) { + art.pause(); + if (currentEpisodeIndex < episodes?.length - 1 && autoNext) { + playNext( + episodes[currentEpisodeIndex + 1].id.match(/ep=(\d+)/)?.[1] + ); + } + } + }); + } else { + console.log("Unsupported playback format: m3u8"); + } + }; + + const createChapters = () => { + const chapters = []; + if (intro?.start !== 0 || intro?.end !== 0) { + chapters.push({ start: intro.start, end: intro.end, title: "intro" }); + } + if (outro?.start !== 0 || outro?.end !== 0) { + chapters.push({ start: outro.start, end: outro.end, title: "outro" }); + } + return chapters; + }; + + const handleKeydown = (event, art) => { + const tagName = event.target.tagName.toLowerCase(); + + if (tagName === "input" || tagName === "textarea") return; + + switch (event.key.toLowerCase()) { + case KEY_CODES.M: + art.muted = !art.muted; + break; + case KEY_CODES.I: + art.pip = !art.pip; + break; + case KEY_CODES.F: + event.preventDefault(); + event.stopPropagation(); + art.fullscreen = !art.fullscreen; + break; + case KEY_CODES.V: + event.preventDefault(); + event.stopPropagation(); + art.subtitle.show = !art.subtitle.show; + break; + case KEY_CODES.SPACE: + event.preventDefault(); + event.stopPropagation(); + art.playing ? art.pause() : art.play(); + break; + case KEY_CODES.ARROW_UP: + event.preventDefault(); + event.stopPropagation(); + art.volume = Math.min(art.volume + 0.1, 1); + break; + case KEY_CODES.ARROW_DOWN: + event.preventDefault(); + event.stopPropagation(); + art.volume = Math.max(art.volume - 0.1, 0); + break; + case KEY_CODES.ARROW_RIGHT: + event.preventDefault(); + event.stopPropagation(); + art.currentTime = Math.min(art.currentTime + 10, art.duration); + break; + case KEY_CODES.ARROW_LEFT: + event.preventDefault(); + event.stopPropagation(); + art.currentTime = Math.max(art.currentTime - 10, 0); + break; + default: + break; + } + }; + + useEffect(() => { + if (!streamUrl || !artRef.current) return; + const iframeUrl = streamInfo?.streamingLink?.iframe; + const headers = {}; + headers.referer=new URL(iframeUrl).origin+"/"; + const art = new Artplayer({ + url: + m3u8proxy[Math.floor(Math.random() * m3u8proxy?.length)] + + encodeURIComponent(streamUrl) + + "&headers=" + + encodeURIComponent(JSON.stringify(headers)), + container: artRef.current, + type: "m3u8", + autoplay: autoPlay, + volume: 1, + setting: true, + playbackRate: true, + pip: true, + hotkey: false, + fullscreen: true, + mutex: true, + playsInline: true, + lock: true, + airplay: true, + autoOrientation: true, + fastForward: true, + aspectRatio: true, + plugins: [ + artplayerPluginHlsControl({ + quality: { + setting: true, + getName: (level) => level.height + "P", + title: "Quality", + auto: "Auto", + }, + }), + artplayerPluginUploadSubtitle(), + artplayerPluginChapter({ chapters: createChapters() }), + ], + subtitle: { + style: { + color: "#fff", + "font-weight": "400", + left: "50%", + transform: "translateX(-50%)", + "margin-bottom": "2rem", + }, + escape: false, + }, + layers: [ + { + name: website_name, + html: logo, + tooltip: website_name, + style: { + opacity: 1, + position: "absolute", + top: "5px", + right: "5px", + transition: "opacity 0.5s ease-out", + }, + }, + { + html: "", + style: { + position: "absolute", + left: "50%", + top: 0, + width: "20%", + height: "100%", + transform: "translateX(-50%)", + }, + disable: !Artplayer.utils.isMobile, + click: () => art.toggle(), + }, + { + name: "rewind", + html: "", + style: { position: "absolute", left: 0, top: 0, width: "40%", height: "100%" }, + disable: !Artplayer.utils.isMobile, + click: () => { + art.controls.show = !art.controls.show; + }, + }, + { + name: "forward", + html: "", + style: { position: "absolute", right: 0, top: 0, width: "40%", height: "100%" }, + disable: !Artplayer.utils.isMobile, + click: () => { + art.controls.show = !art.controls.show; + }, + }, + { + name: "backwardIcon", + html: backwardIcon, + style: { + position: "absolute", + left: "25%", + top: "50%", + transform: "translate(50%,-50%)", + opacity: 0, + transition: "opacity 0.5s ease-in-out", + }, + disable: !Artplayer.utils.isMobile, + }, + { + name: "forwardIcon", + html: forwardIcon, + style: { + position: "absolute", + right: "25%", + top: "50%", + transform: "translate(50%, -50%)", + opacity: 0, + transition: "opacity 0.5s ease-in-out", + }, + disable: !Artplayer.utils.isMobile, + }, + ], + controls: [ + { + html: backward10Icon, + position: "right", + tooltip: "Backward 10s", + click: () => { + art.currentTime = Math.max(art.currentTime - 10, 0); + }, + }, + { + html: forward10Icon, + position: "right", + tooltip: "Forward 10s", + click: () => { + art.currentTime = Math.min(art.currentTime + 10, art.duration); + }, + }, + ], + icons: { + play: playIcon, + pause: pauseIcon, + setting: settingsIcon, + volume: volumeIcon, + pip: pipIcon, + volumeClose: muteIcon, + state: playIconLg, + loading: loadingIcon, + fullscreenOn: fullScreenOnIcon, + fullscreenOff: fullScreenOffIcon, + }, + customType: { m3u8: playM3u8 }, + }); + art.on("resize", () => { + art.subtitle.style({ + fontSize: + (art.width > 500 ? art.width * 0.02 : art.width * 0.03) + "px", + }); + }); + art.on("ready", () => { + const continueWatchingList = JSON.parse(localStorage.getItem("continueWatching")) || []; + const currentEntry = continueWatchingList.find((item) => item.episodeId === episodeId); + if (currentEntry?.leftAt) art.currentTime = currentEntry.leftAt; + + art.on("video:timeupdate", () => { + leftAtRef.current = Math.floor(art.currentTime); + }); + + setTimeout(() => { + art.layers[website_name].style.opacity = 0; + }, 2000); + + const defaultSubtitle = subtitles?.find((sub) => sub.label.toLowerCase() === "english"); + if (defaultSubtitle) { + art.subtitle.switch(defaultSubtitle.file, { + name: defaultSubtitle.label, + default: true, + }); + } + + const skipRanges = [ + ...(intro.start != null && intro.end != null ? [[intro.start + 1, intro.end - 1]] : []), + ...(outro.start != null && outro.end != null ? [[outro.start + 1, outro.end]] : []), + ]; + autoSkipIntro && art.plugins.add(autoSkip(skipRanges)); + + document.addEventListener("keydown", (event) => handleKeydown(event, art)); + + art.subtitle.style({ + fontSize: (art.width > 500 ? art.width * 0.02 : art.width * 0.03) + "px", + }); + + if (thumbnail) { + art.plugins.add( + artplayerPluginVttThumbnail({ + vtt: `${proxy}${thumbnail}`, + }) + ); + } + const $rewind = art.layers["rewind"]; + const $forward = art.layers["forward"]; + Artplayer.utils.isMobile && + art.proxy($rewind, "dblclick", () => { + art.currentTime = Math.max(0, art.currentTime - 10); + art.layers["backwardIcon"].style.opacity = 1; + setTimeout(() => { + art.layers["backwardIcon"].style.opacity = 0; + }, 300); + }); + Artplayer.utils.isMobile && + art.proxy($forward, "dblclick", () => { + art.currentTime = Math.max(0, art.currentTime + 10); + art.layers["forwardIcon"].style.opacity = 1; + setTimeout(() => { + art.layers["forwardIcon"].style.opacity = 0; + }, 300); + }); + if (subtitles?.length > 0) { + const defaultEnglishSub = + subtitles.find((sub) => sub.label.toLowerCase() === "english" && sub.default) || + subtitles.find((sub) => sub.label.toLowerCase() === "english"); + + art.setting.add({ + name: "captions", + icon: captionIcon, + html: "Subtitle", + tooltip: defaultEnglishSub?.label || "default", + position: "right", + selector: [ + { + html: "Display", + switch: true, + onSwitch: (item) => { + item.tooltip = item.switch ? "Hide" : "Show"; + art.subtitle.show = !item.switch; + return !item.switch; + }, + }, + ...subtitles.map((sub) => ({ + default: sub.label.toLowerCase() === "english" && sub === defaultEnglishSub, + html: sub.label, + url: sub.file, + })), + ], + onSelect: (item) => { + art.subtitle.switch(item.url, { name: item.html }); + return item.html; + }, + }); + } + }); + + return () => { + if (art && art.destroy) { + art.destroy(false); + } + document.removeEventListener("keydown", handleKeydown); + const continueWatching = JSON.parse(localStorage.getItem("continueWatching")) || []; + const newEntry = { + id: animeInfo?.id, + data_id: animeInfo?.data_id, + episodeId, + episodeNum, + adultContent: animeInfo?.adultContent, + poster: animeInfo?.poster, + title: animeInfo?.title, + japanese_title: animeInfo?.japanese_title, + leftAt: leftAtRef.current, + }; + + if (!newEntry.data_id) return; + + const existingIndex = continueWatching.findIndex((item) => item.data_id === newEntry.data_id); + if (existingIndex !== -1) { + continueWatching[existingIndex] = newEntry; + } else { + continueWatching.push(newEntry); + } + localStorage.setItem("continueWatching", JSON.stringify(continueWatching)); + }; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [streamUrl, subtitles, intro, outro]); + + return
; +} \ No newline at end of file diff --git a/src/components/player/PlayerIcons.jsx b/src/components/player/PlayerIcons.jsx new file mode 100644 index 0000000..2410fa3 --- /dev/null +++ b/src/components/player/PlayerIcons.jsx @@ -0,0 +1,103 @@ +const backward10Icon = ` + + +`; + +const forward10Icon = ` + + + +`; + +const forwardIcon = ` + +`; + +const backwardIcon = ` + +`; + +const volumeIcon = ``; + +const muteIcon = ` + + +`; + +const captionIcon = ` + + +`; +const captionOffIcon = ``; + +const pipOffIcon = ` +`; + +const loadingIcon = ``; + +const pipIcon = ` + +`; + +const playIconLg = ``; + +const playIcon = ``; + +const pauseIcon = ``; + +const uploadIcon = ` + + +`; + +const settingsIcon = ` + + +`; + +const fullScreenOnIcon = ``; + +const fullScreenOffIcon = ``; + +const logo = `

+ Powered by + + Zen!me + +

+`; + +export { + backward10Icon, + forward10Icon, + backwardIcon, + forwardIcon, + playIcon, + playIconLg, + pauseIcon, + loadingIcon, + uploadIcon, + settingsIcon, + pipIcon, + pipOffIcon, + volumeIcon, + muteIcon, + captionIcon, + captionOffIcon, + fullScreenOnIcon, + fullScreenOffIcon, + logo, +}; diff --git a/src/components/player/artPlayerPluginVttThumbnail.js b/src/components/player/artPlayerPluginVttThumbnail.js new file mode 100644 index 0000000..4cb851c --- /dev/null +++ b/src/components/player/artPlayerPluginVttThumbnail.js @@ -0,0 +1,72 @@ +import getVttArray from "./getVttArray"; + +export default function artplayerPluginVttThumbnail(option) { + return async (art) => { + const { + constructor: { + utils: { setStyle, isMobile, addClass }, + }, + template: { $progress }, + } = art; + + let timer = null; + const thumbnails = await getVttArray(option.vtt); + + function showThumbnails($control, find, width) { + setStyle($control, "backgroundImage", `url(${find.url})`); + setStyle($control, "height", `${find.h}px`); + setStyle($control, "width", `${find.w}px`); + setStyle($control, "backgroundPosition", `-${find.x}px -${find.y}px`); + if (width <= find.w / 2) { + setStyle($control, "left", 0); + } else if (width > $progress.clientWidth - find.w / 2) { + setStyle($control, "left", `${$progress.clientWidth - find.w}px`); + } else { + setStyle($control, "left", `${width - find.w / 2}px`); + } + } + + art.controls.add({ + name: "vtt-thumbnail", + position: "top", + index: 20, + style: option.style || {}, + mounted($control) { + addClass($control, "art-control-thumbnails"); + art.on("setBar", async (type, percentage, event) => { + const isMobileDroging = type === "played" && event && isMobile; + + if (type === "hover" || isMobileDroging) { + const width = $progress.clientWidth * percentage; + const second = percentage * art.duration; + setStyle($control, "display", "flex"); + + const find = thumbnails.find( + (item) => second >= item.start && second <= item.end + ); + if (!find) return setStyle($control, "display", "none"); + + if (width > 0 && width < $progress.clientWidth) { + showThumbnails($control, find, width); + } else { + if (!isMobile) { + setStyle($control, "display", "none"); + } + } + + if (isMobileDroging) { + clearTimeout(timer); + timer = setTimeout(() => { + setStyle($control, "display", "none"); + }, 500); + } + } + }); + }, + }); + + return { + name: "artplayerPluginVttThumbnail", + }; + }; +} diff --git a/src/components/player/artPlayerPluinChaper.js b/src/components/player/artPlayerPluinChaper.js new file mode 100644 index 0000000..ba681d8 --- /dev/null +++ b/src/components/player/artPlayerPluinChaper.js @@ -0,0 +1,211 @@ +import style from "./pluginChapterStyle.js"; + +export default function artplayerPluginChapter(option = {}) { + return (art) => { + const { $player } = art.template; + const { setStyle, append, clamp, query, isMobile, addClass, removeClass } = + art.constructor.utils; + + const html = ` +
+
+
+
+
+
+
+ `; + + let titleTimer = null; + let $chapters = []; + + const $progress = art.query(".art-control-progress"); + const $inner = art.query(".art-control-progress-inner"); + const $control = append($inner, '
'); + const $title = append($inner, '
'); + + function showTitle({ $chapter, width }) { + const title = $chapter.dataset.title.trim(); + if (title) { + setStyle($title, "display", "flex"); + $title.innerText = title; + const titleWidth = $title.clientWidth; + if (width <= titleWidth / 2) { + setStyle($title, "left", 0); + } else if (width > $inner.clientWidth - titleWidth / 2) { + setStyle($title, "left", `${$inner.clientWidth - titleWidth}px`); + } else { + setStyle($title, "left", `${width - titleWidth / 2}px`); + } + } else { + setStyle($title, "display", "none"); + } + } + + function update(chapters = []) { + $chapters = []; + $control.innerText = ""; + removeClass($player, "artplayer-plugin-chapter"); + + if (!Array.isArray(chapters)) return; + if (!chapters.length) return; + if (!art.duration) return; + + chapters = chapters.sort((a, b) => a.start - b.start); + + for (let i = 0; i < chapters.length; i++) { + const chapter = chapters[i]; + const nextChapter = chapters[i + 1]; + + if (chapter.end === Infinity) { + chapter.end = art.duration; + } + + if ( + typeof chapter.start !== "number" || + typeof chapter.end !== "number" || + typeof chapter.title !== "string" + ) { + throw new Error("Illegal chapter data type"); + } + + if ( + chapter.start < 0 || + chapter.end > Math.ceil(art.duration) || + chapter.start >= chapter.end + ) { + throw new Error("Illegal chapter time point"); + } + + if (nextChapter && chapter.end > nextChapter.start) { + throw new Error("Illegal chapter time point"); + } + } + + if (chapters[0].start > 0) { + chapters.unshift({ start: 0, end: chapters[0].start, title: "" }); + } + + if (chapters[chapters.length - 1].end < art.duration) { + chapters.push({ + start: chapters[chapters.length - 1].end, + end: art.duration, + title: "", + }); + } + + for (let i = 0; i < chapters.length - 1; i++) { + if (chapters[i].end !== chapters[i + 1].start) { + chapters.splice(i + 1, 0, { + start: chapters[i].end, + end: chapters[i + 1].start, + title: "", + }); + } + } + + $chapters = chapters.map((chapter) => { + const $chapter = append($control, html); + const start = clamp(chapter.start, 0, art.duration); + const end = clamp(chapter.end, 0, art.duration); + const duration = end - start; + const percentage = duration / art.duration; + $chapter.dataset.start = start; + $chapter.dataset.end = end; + $chapter.dataset.duration = duration; + $chapter.dataset.title = chapter.title.trim(); + $chapter.style.width = `${percentage * 100}%`; + + return { + $chapter, + $hover: query(".art-progress-hover", $chapter), + $loaded: query(".art-progress-loaded", $chapter), + $played: query(".art-progress-played", $chapter), + }; + }); + + addClass($player, "artplayer-plugin-chapter"); + art.emit("setBar", "loaded", art.loaded || 0); + } + + art.on("setBar", (type, percentage, event) => { + if (!$chapters.length) return; + + for (let i = 0; i < $chapters.length; i++) { + const { $chapter, $loaded, $played, $hover } = $chapters[i]; + + const $target = { + hover: $hover, + loaded: $loaded, + played: $played, + }[type]; + + if (!$target) return; + + const width = $control.clientWidth * percentage; + const currentTime = art.duration * percentage; + const duration = parseFloat($chapter.dataset.duration); + const start = parseFloat($chapter.dataset.start); + const end = parseFloat($chapter.dataset.end); + + if (currentTime < start) { + setStyle($target, "width", 0); + } + + if (currentTime > end) { + setStyle($target, "width", "100%"); + } + + if (currentTime >= start && currentTime <= end) { + const percentage = (currentTime - start) / duration; + setStyle($target, "width", `${percentage * 100}%`); + + if (isMobile) { + if (type === "played" && event) { + showTitle({ $chapter, width }); + clearTimeout(titleTimer); + titleTimer = setTimeout(() => { + setStyle($title, "display", "none"); + }, 500); + } + } else { + if (type === "hover") { + showTitle({ $chapter, width }); + } + } + } + } + }); + + if (!isMobile) { + art.proxy($progress, "mouseleave", () => { + if (!$chapters.length) return; + setStyle($title, "display", "none"); + }); + } + + art.once("video:loadedmetadata", () => update(option.chapters)); + + return { + name: "artplayerPluginChapter", + update: ({ chapters }) => update(chapters), + }; + }; +} + +if (typeof document !== "undefined") { + const id = "artplayer-plugin-chapter"; + const $style = document.getElementById(id); + if ($style) { + $style.textContent = style; + } else { + const $style = document.createElement("style"); + $style.id = id; + $style.textContent = style; + document.head.appendChild($style); + } +} + +if (typeof window !== "undefined") { + window["artplayerPluginChapter"] = artplayerPluginChapter; +} diff --git a/src/components/player/artplayerPluginUploadSubtitle.js b/src/components/player/artplayerPluginUploadSubtitle.js new file mode 100644 index 0000000..20a362d --- /dev/null +++ b/src/components/player/artplayerPluginUploadSubtitle.js @@ -0,0 +1,49 @@ +import { uploadIcon } from "./PlayerIcons"; + +export default function artplayerPluginUploadSubtitle() { + return (art) => { + const { getExt } = art.constructor.utils; + + art.setting.add({ + html: ` +
+ + +
+ `, + icon: uploadIcon, + onClick(setting, $setting) { + const $input = $setting.querySelector("input[name='subtitle-upload']"); + const $label = $setting.querySelector(".subtitle-upload-label"); + + art.proxy($input, "change", (event) => { + const file = event.target?.files?.[0]; + if (!file) return; + + const url = URL.createObjectURL(file); + art.subtitle.switch(url, { + type: getExt(file.name), + }); + + event.target.value = null; + + // Update UI + $label.textContent = file.name; + art.notice.show = `Upload Subtitle :${file.name}`; + setting.tooltip = file.name; + }); + }, + }); + }; +} diff --git a/src/components/player/autoSkip.js b/src/components/player/autoSkip.js new file mode 100644 index 0000000..38588b9 --- /dev/null +++ b/src/components/player/autoSkip.js @@ -0,0 +1,74 @@ +export default function autoSkip(option) { + function validateRanges(ranges) { + if (!Array.isArray(ranges)) { + throw new TypeError("Option must be an array of time ranges"); + } + + ranges.forEach((range, index) => { + if (!Array.isArray(range) || range.length !== 2) { + throw new TypeError( + `Range at index ${index} must be an array of two numbers` + ); + } + + const [start, end] = range; + if ( + typeof start !== "number" || + (typeof end !== "number" && end !== Infinity) + ) { + throw new TypeError( + `Range at index ${index} must contain valid numbers or Infinity` + ); + } + + if (start > end && end !== Infinity) { + throw new RangeError( + `In range at index ${index}, start time must be less than end time` + ); + } + + if (index > 0) { + const prevEnd = ranges[index - 1][1]; + if (prevEnd !== Infinity && start <= prevEnd) { + throw new RangeError( + `Range at index ${index} overlaps with the previous range` + ); + } + } + }); + } + validateRanges(option); + return (art) => { + let skipRanges = option; + + function updateRanges() { + const duration = art.duration; + skipRanges = skipRanges.map(([start, end]) => [ + start, + end === Infinity ? duration : end, + ]); + } + + function checkAndSkip() { + const currentTime = art.currentTime; + for (const [start, end] of skipRanges) { + if (currentTime >= start && currentTime < end) { + art.seek = end; + break; + } + } + } + + art.on("video:timeupdate", checkAndSkip); + art.on("video:loadedmetadata", updateRanges); + + return { + name: "autoSkip", + update(newOption = []) { + validateRanges(newOption); + skipRanges = newOption; + updateRanges(); + }, + }; + }; +} diff --git a/src/components/player/getChapterStyle.js b/src/components/player/getChapterStyle.js new file mode 100644 index 0000000..c558d89 --- /dev/null +++ b/src/components/player/getChapterStyle.js @@ -0,0 +1,82 @@ +export default function getChapterStyles(intro, outro) { + let styles = ` + .art-chapters { + gap: 0px !important; + } + `; + + if (intro && outro) { + if ( + intro.start === 0 && + intro.end === 0 && + outro.start === 0 && + outro.end === 0 + ) { + styles += ``; + } else if ( + intro.start === 0 && + intro.end === 0 && + outro.start !== 0 && + outro.end !== 0 + ) { + styles += ` + .art-chapter:nth-child(2) { + background-color: #fdd253; + transform: scaleY(0.6); + } + `; + } else if ( + intro.start === 0 && + intro.end !== 0 && + outro.start === 0 && + outro.end === 0 + ) { + styles += ` + .art-chapter:nth-child(1){ + background-color: #fdd253; + transform: scaleY(0.6); + } + `; + } else if ( + intro.start === 0 && + intro.end !== 0 && + outro.start !== 0 && + outro.end !== 0 + ) { + styles += ` + .art-chapter:nth-child(1), + .art-chapter:nth-child(3) { + background-color: #fdd253; + transform: scaleY(0.6); + } + `; + } else if ( + intro.start !== 0 && + intro.end !== 0 && + outro.start === 0 && + outro.end === 0 + ) { + styles += ` + .art-chapter:nth-child(2) { + background-color: #fdd253; + transform: scaleY(0.6); + } + `; + } else if ( + intro.start !== 0 && + intro.end !== 0 && + outro.start !== 0 && + outro.end !== 0 + ) { + styles += ` + .art-chapter:nth-child(2), + .art-chapter:nth-child(4) { + background-color: #fdd253; + transform: scaleY(0.6); + } + `; + } + } + + return styles; +} diff --git a/src/components/player/getVttArray.js b/src/components/player/getVttArray.js new file mode 100644 index 0000000..6df8d10 --- /dev/null +++ b/src/components/player/getVttArray.js @@ -0,0 +1,101 @@ +function padEnd(str, targetLength, padString) { + if (str.length > targetLength) { + return String(str); + } else { + targetLength = targetLength - str.length; + if (targetLength > padString.length) { + padString += padString.repeat(targetLength / padString.length); + } + return String(str) + padString.slice(0, targetLength); + } +} + +function t2d(time) { + var arr = time.split("."); + var left = arr[0].split(":") || []; + var right = padEnd(arr[1] || "0", 3, "0"); + var ms = Number(right) / 1000; + + var h = Number(left[left.length - 3] || 0) * 3600; + var m = Number(left[left.length - 2] || 0) * 60; + var s = Number(left[left.length - 1] || 0); + return h + m + s + ms; +} + +export default async function getVttArray(vttUrl = "") { + const vttString = await (await fetch(vttUrl)).text(); + let lines = vttString.split(/\r?\n/).filter((item) => item.trim()); + const vttArray = []; + + //checking if the WEBVTT header is present + const isWebVTTHeader = lines[0].trim().toUpperCase() === "WEBVTT"; + + let startIndex = 0; + let increment = 2; + + // Check if the first line is an index line + const indexLineReg = /^\d+$/; // Regex to match lines containing only digits + + if (!isWebVTTHeader && indexLineReg.test(lines[0].trim())) { + // console.log("WEBVTT not present but index line is present"); + increment = 3; // Set increment to 3 if an index line is present + startIndex = 1; // Start from the second line + } else if (isWebVTTHeader) { + // If WEBVTT is present, check the next line + // console.log("WEBVTT lines is present checking if index line is present..."); + const indexLine = lines[1]; + if (indexLine && indexLineReg.test(indexLine.trim())) { + // console.log("Index line is present"); + increment = 3; // Set increment to 3 if an index line is present + startIndex = 2; // Start from the line after the index + } else { + // console.log("Index line is not present"); + startIndex = 1; // If no index line, start from the line after WEBVTT + increment = 2; // Set increment to 2 + } + } + + for (let i = startIndex; i < lines.length; i += increment) { + const time = lines[i]; + const text = lines[i + 1]; + if (!text.trim()) continue; + + // console.log(`Processing time line: ${time}`); // Logging processing timestamps + + const timeReg = + /((?:[0-9]{2}:)?(?:[0-9]{2}:)?[0-9]{2}(?:.[0-9]{3})?)(?: ?--> ?)((?:[0-9]{2}:)?(?:[0-9]{2}:)?[0-9]{2}(?:.[0-9]{3})?)/; + const timeMatch = time.match(timeReg); + + if (!timeMatch) { + // console.warn(`Failed to match time: ${time}`); // Log failed matches + continue; // Skip to the next loop iteration if match fails + } + + const textReg = /(.*)#(\w{4})=(.*)/i; + const textMatch = text.match(textReg); + const start = Math.floor(t2d(timeMatch[1])); + const end = Math.floor(t2d(timeMatch[2])); + + let url = textMatch[1]; + const isAbsoluteUrl = /^\/|((https?|ftp|file):\/\/)/i.test(url); + if (!isAbsoluteUrl) { + const urlArr = vttUrl.split("/"); + urlArr.pop(); + urlArr.push(url); + url = urlArr.join("/"); + } + + const result = { start, end, url }; + + const keys = textMatch[2].split(""); + const values = textMatch[3].split(","); + + for (let j = 0; j < keys.length; j++) { + result[keys[j]] = values[j]; + } + + vttArray.push(result); + } + + return vttArray; +} diff --git a/src/components/player/pluginChapterStyle.js b/src/components/player/pluginChapterStyle.js new file mode 100644 index 0000000..1e945ce --- /dev/null +++ b/src/components/player/pluginChapterStyle.js @@ -0,0 +1,55 @@ +export default ` +.artplayer-plugin-chapter .art-control-progress-inner { + height: 100% !important; + background-color: transparent !important; +} +.artplayer-plugin-chapter .art-control-progress-inner > .art-progress-hover, +.artplayer-plugin-chapter .art-control-progress-inner > .art-progress-loaded, +.artplayer-plugin-chapter .art-control-progress-inner > .art-progress-played { + display: none !important; +} +.artplayer-plugin-chapter .art-control-thumbnails { + bottom: calc(var(--art-bottom-gap) + 64px) !important; +} +.artplayer-plugin-chapter .art-chapters { + position: absolute; + z-index: 0; + inset: 0; + display: flex; + align-items: center; + gap: 4px; + height: 100%; + transform: scaleY(1.25); +} +.artplayer-plugin-chapter .art-chapters .art-chapter { + display: flex; + align-items: center; + height: 100%; +} +.artplayer-plugin-chapter .art-chapters .art-chapter .art-chapter-inner { + position: relative; + cursor: pointer; + width: 100%; + height: 50%; + border-radius: 10px; + overflow: hidden; + transition: height var(--art-transition-duration) ease; + background-color: var(--art-progress-color); +} +.artplayer-plugin-chapter .art-chapters .art-chapter:hover .art-chapter-inner { + height: 100%; +} +.artplayer-plugin-chapter .art-chapter-title { + display: none; + position: absolute; + z-index: 70; + top: -50px; + left: 0; + padding: 3px 5px; + line-height: 1; + font-size: 14px; + border-radius: var(--art-border-radius); + white-space: nowrap; + background-color: var(--art-tip-background); +} +`; diff --git a/src/components/producer/Producer.jsx b/src/components/producer/Producer.jsx new file mode 100644 index 0000000..90b7c10 --- /dev/null +++ b/src/components/producer/Producer.jsx @@ -0,0 +1,102 @@ +import { useNavigate, useParams, useSearchParams } from "react-router-dom"; +import Error from "../error/Error"; +import Topten from "../topten/Topten"; +import Genre from "../genres/Genre"; +import SidecardLoader from "../Loader/Sidecard.loader"; +import PageSlider from "../pageslider/PageSlider"; +import CategoryCard from "../categorycard/CategoryCard"; +import { useEffect, useState } from "react"; +import { useHomeInfo } from "@/src/context/HomeInfoContext"; +import getProducer from "@/src/utils/getProducer.utils"; +import Loader from "../Loader/Loader"; + +function Producer() { + const { id } = useParams(); + const [searchParams, setSearchParams] = useSearchParams(); + const [producerInfo, setProducerInfo] = useState(null); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + const [totalPages, setTotalPages] = useState(0); + const page = parseInt(searchParams.get("page")) || 1; + const { homeInfo, homeInfoLoading } = useHomeInfo(); + const navigate = useNavigate(); + useEffect(() => { + const fetchProducerInfo = async () => { + setLoading(true); + try { + const data = await getProducer(id, page); + setProducerInfo(data.data); + setTotalPages(data.totalPages); + setLoading(false); + } catch (err) { + setError(err); + console.error("Error fetching category info:", err); + } + }; + fetchProducerInfo(); + window.scrollTo(0, 0); + }, [id, page]); + if (loading) return ; + if (error) { + navigate("/error-page"); + return ; + } + if (!producerInfo) { + navigate("/404-not-found-page"); + return null; + } + const handlePageChange = (newPage) => { + setSearchParams({ page: newPage }); + }; + + return ( +
+ {producerInfo ? ( +
+ {page > totalPages ? ( +

+ You came a long way, go back
+ nothing is here +

+ ) : ( +
+ {producerInfo && ( + + )} + +
+ )} +
+ {homeInfoLoading ? ( + + ) : ( + <> + {homeInfo && homeInfo.topten && ( + + )} + {homeInfo?.genres && } + + )} +
+
+ ) : ( + + )} +
+ ); +} +export default Producer; diff --git a/src/components/qtip/Qtip.jsx b/src/components/qtip/Qtip.jsx new file mode 100644 index 0000000..a3c4efe --- /dev/null +++ b/src/components/qtip/Qtip.jsx @@ -0,0 +1,159 @@ +import BouncingLoader from "../ui/bouncingloader/Bouncingloader"; +import getQtip from "@/src/utils/getQtip.utils"; +import { useState, useEffect } from "react"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { + faPlay, + faStar, + faClosedCaptioning, + faMicrophone, +} from "@fortawesome/free-solid-svg-icons"; +import { Link } from "react-router-dom"; + +function Qtip({ id }) { + const [qtip, setQtip] = useState(null); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + + useEffect(() => { + const fetchQtipInfo = async () => { + setLoading(true); + try { + const data = await getQtip(id); + setQtip(data); + } catch (err) { + console.error("Error fetching anime info:", err); + setError(err); + } finally { + setLoading(false); + } + }; + fetchQtipInfo(); + }, [id]); + + return ( +
+ {loading || error || !qtip ? ( + + ) : ( +
+

+ {qtip.title} +

+
+ {qtip?.rating && ( +
+ +

{qtip.rating}

+
+ )} +
+ {qtip?.quality && ( +
+

{qtip.quality}

+
+ )} +
+ {qtip?.subCount && ( +
+ +

{qtip.subCount}

+
+ )} + {qtip?.dubCount && ( +
+ +

{qtip.dubCount}

+
+ )} + {qtip?.episodeCount && ( +
+

+ {qtip.episodeCount} +

+
+ )} +
+ {qtip?.type && ( +
+

{qtip.type}

+
+ )} +
+
+ {qtip?.description && ( +

+ {qtip.description} +

+ )} +
+ {qtip?.japaneseTitle && ( +
+ + Japanese:  + + {qtip.japaneseTitle} +
+ )} + {qtip?.Synonyms && ( +
+ + Synonyms:  + + {qtip.Synonyms} +
+ )} + {qtip?.airedDate && ( +
+ Aired:  + {qtip.airedDate} +
+ )} + {qtip?.status && ( +
+ + Status:  + + {qtip.status} +
+ )} + {qtip?.genres && ( +
+ + Genres:  + + {qtip.genres.map((genre, index) => ( + + + {genre} + {index === qtip.genres.length - 1 ? "" : ","}  + + + ))} +
+ )} +
+ + +

Watch Now

+ +
+ )} +
+ ); +} + +export default Qtip; diff --git a/src/components/schedule/Schedule.jsx b/src/components/schedule/Schedule.jsx new file mode 100644 index 0000000..200f6a6 --- /dev/null +++ b/src/components/schedule/Schedule.jsx @@ -0,0 +1,241 @@ +import { useState, useEffect, useRef } from "react"; +import getSchedInfo from "../../utils/getScheduleInfo.utils"; +import { Pagination, Navigation } from "swiper/modules"; +import { Swiper, SwiperSlide } from "swiper/react"; +import { FaChevronLeft, FaChevronRight } from "react-icons/fa"; +import BouncingLoader from "../ui/bouncingloader/Bouncingloader"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { faPlay } from "@fortawesome/free-solid-svg-icons"; +import "./schedule.css"; +import { Link } from "react-router-dom"; + +const Schedule = () => { + const [dates, setDates] = useState([]); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + const [showAll, setShowAll] = useState(false); + const [currentActiveIndex, setCurrentActiveIndex] = useState(null); + const [scheduleData, setscheduleData] = useState([]); + const [currentTime, setCurrentTime] = useState(new Date()); + const cardRefs = useRef([]); + const swiperRef = useRef(null); + const currentDate = new Date(); + const year = currentDate.getFullYear(); + const month = currentDate.getMonth(); + const monthName = currentDate.toLocaleString("default", { month: "short" }); + const daysInMonth = new Date(year, month + 1, 0).getDate(); + const GMTOffset = `GMT ${ + new Date().getTimezoneOffset() > 0 ? "-" : "+" + }${String(Math.floor(Math.abs(new Date().getTimezoneOffset()) / 60)).padStart( + 2, + "0" + )}:${String(Math.abs(new Date().getTimezoneOffset()) % 60).padStart(2, "0")}`; + const months = []; + + useEffect(() => { + for (let day = 1; day <= daysInMonth; day++) { + const date = new Date(year, month, day); + const dayname = date.toLocaleString("default", { weekday: "short" }); + const yearr = date.getFullYear(); + const monthh = String(date.getMonth() + 1).padStart(2, "0"); + const dayy = String(date.getDate()).padStart(2, "0"); + const fulldate = `${yearr}-${monthh}-${dayy}`; + months.push({ day, monthName, dayname, fulldate }); + } + setDates(months); + const timer = setInterval(() => { + setCurrentTime(new Date()); + }, 1000); + return () => clearInterval(timer); + }, []); + + useEffect(() => { + const todayIndex = dates.findIndex( + (date) => + date.fulldate === + `${currentDate.getFullYear()}-${String( + currentDate.getMonth() + 1 + ).padStart(2, "0")}-${String(currentDate.getDate()).padStart(2, "0")}` + ); + + if (todayIndex !== -1) { + setCurrentActiveIndex(todayIndex); + toggleActive(todayIndex); + } + }, [dates]); + + const fetchSched = async (date) => { + try { + setLoading(true); + + // Check if cached data exists + const cachedData = localStorage.getItem(`schedule-${date}`); + if (cachedData) { + const parsedData = JSON.parse(cachedData); + setscheduleData(Array.isArray(parsedData) ? parsedData : []); + } else { + const data = await getSchedInfo(date); + setscheduleData(Array.isArray(data) ? data : []); + localStorage.setItem(`schedule-${date}`, JSON.stringify(data || [])); + } + } catch (err) { + console.error("Error fetching schedule info:", err); + setError(err); + } finally { + setLoading(false); + } + }; + + const toggleActive = (index) => { + cardRefs.current.forEach((card) => { + if (card) { + card.classList.remove("active"); + } + }); + if (cardRefs.current[index]) { + cardRefs.current[index].classList.add("active"); + if (dates[index] && dates[index].fulldate) { + fetchSched(dates[index].fulldate); + } + setCurrentActiveIndex(index); + } + }; + + const toggleShowAll = () => { + setShowAll(!showAll); + }; + + useEffect(() => { + setShowAll(false); + if (currentActiveIndex !== null && swiperRef.current) { + swiperRef.current.slideTo(currentActiveIndex); + } + }, [currentActiveIndex]); + + return ( + <> +
+
+
+ Estimated Schedule +
+

+ ({GMTOffset}) {currentTime.toLocaleDateString()}{" "} + {currentTime.toLocaleTimeString()} +

+
+
+
+
+ (swiperRef.current = swiper)} + > + {dates && + dates.map((date, index) => ( + +
(cardRefs.current[index] = el)} + onClick={() => toggleActive(index)} + className={`h-[70px] flex flex-col justify-center items-center w-full text-center rounded-xl shadow-lg cursor-pointer ${ + currentActiveIndex === index + ? "bg-[#ffbade] text-black" + : "bg-white bg-opacity-5 text-[#ffffff] hover:bg-[#373646] transition-all duration-300 ease-in-out" + }`} + > +
+ {date.dayname} +
+
+ {date.monthName} {date.day} +
+
+
+ ))} +
+ + +
+
+ {loading ? ( +
+ +
+ ) : !scheduleData || scheduleData.length === 0 ? ( +
+ No data to display +
+ ) : error ? ( +
+ Something went wrong +
+ ) : ( +
+ {(showAll + ? scheduleData + : Array.isArray(scheduleData) + ? scheduleData.slice(0, 7) + : [] + ).map((item, idx) => ( + +
+
+ {item.time || "N/A"} +
+

+ {item.title || "N/A"} +

+
+ + + ))} + {scheduleData.length > 7 && ( + + )} +
+ )} + + ); +}; + +export default Schedule; diff --git a/src/components/schedule/schedule.css b/src/components/schedule/schedule.css new file mode 100644 index 0000000..440906f --- /dev/null +++ b/src/components/schedule/schedule.css @@ -0,0 +1,11 @@ +.next, +.prev { + width: 30px; + height: 30px; + border-radius: 100%; + background-color: white; + color: black; + font-size: 13px; + padding: 10px; + z-index: 10; +} diff --git a/src/components/searchbar/MobileSearch.jsx b/src/components/searchbar/MobileSearch.jsx new file mode 100644 index 0000000..80a56d7 --- /dev/null +++ b/src/components/searchbar/MobileSearch.jsx @@ -0,0 +1,73 @@ +import Suggestion from '../suggestion/Suggestion'; +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; +import { faMagnifyingGlass } from '@fortawesome/free-solid-svg-icons'; +import useSearch from '@/src/hooks/useSearch'; +import { useNavigate } from 'react-router-dom'; + +function MobileSearch() { + const navigate = useNavigate(); + const { + isSearchVisible, + searchValue, + setSearchValue, + isFocused, + setIsFocused, + debouncedValue, + suggestionRefs, + addSuggestionRef, + } = useSearch(); + const handleSearchClick = () => { + if (searchValue.trim() && window.innerWidth <= 600) { + navigate(`/search?keyword=${encodeURIComponent(searchValue)}`); + } + }; + return ( + <> + {isSearchVisible && ( +
+ setSearchValue(e.target.value)} + onFocus={() => setIsFocused(true)} + onBlur={() => { + setTimeout(() => { + const isInsideSuggestionBox = suggestionRefs.current.some( + (ref) => ref && ref.contains(document.activeElement), + ); + if (!isInsideSuggestionBox) { + setIsFocused(false); + } + }, 100); + }} + onKeyDown={(e) => { + if (e.key === 'Enter') { + handleSearchClick(); + } + }} + /> + + {searchValue.trim() && isFocused && ( +
+ +
+ )} +
+ )} + + ); +} + +export default MobileSearch; diff --git a/src/components/searchbar/WebSearch.jsx b/src/components/searchbar/WebSearch.jsx new file mode 100644 index 0000000..8f36cd6 --- /dev/null +++ b/src/components/searchbar/WebSearch.jsx @@ -0,0 +1,77 @@ +import { faMagnifyingGlass } from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import Suggestion from "../suggestion/Suggestion"; +import useSearch from "@/src/hooks/useSearch"; +import { useNavigate } from "react-router-dom"; + +function WebSearch() { + const navigate = useNavigate(); + const { + setIsSearchVisible, + searchValue, + setSearchValue, + isFocused, + setIsFocused, + debouncedValue, + suggestionRefs, + addSuggestionRef, + } = useSearch(); + + const handleSearchClick = () => { + if (window.innerWidth <= 600) { + setIsSearchVisible((prev) => !prev); + } + if (searchValue.trim() && window.innerWidth > 600) { + navigate(`/search?keyword=${encodeURIComponent(searchValue)}`); + } + }; + + return ( +
+ setSearchValue(e.target.value)} + onFocus={() => setIsFocused(true)} + onBlur={() => { + setTimeout(() => { + const isInsideSuggestionBox = suggestionRefs.current.some( + (ref) => ref && ref.contains(document.activeElement), + ); + if (!isInsideSuggestionBox) { + setIsFocused(false); + } + }, 100); + }} + onKeyDown={(e) => { + if (e.key === 'Enter') { + if (searchValue.trim()) { + navigate(`/search?keyword=${encodeURIComponent(searchValue)}`); + } + } + }} + /> + + {searchValue.trim() && isFocused && ( +
+ +
+ )} +
+ ); +} + +export default WebSearch; diff --git a/src/components/servers/Servers.css b/src/components/servers/Servers.css new file mode 100644 index 0000000..10bf0e4 --- /dev/null +++ b/src/components/servers/Servers.css @@ -0,0 +1,9 @@ +.servers { + border-bottom: 1px dashed #35373d; +} +.servers:only-child { + border-bottom: none; +} +.servers:last-child { + border-bottom: none; +} diff --git a/src/components/servers/Servers.jsx b/src/components/servers/Servers.jsx new file mode 100644 index 0000000..39f82bd --- /dev/null +++ b/src/components/servers/Servers.jsx @@ -0,0 +1,187 @@ +/* eslint-disable react/prop-types */ +import { + faClosedCaptioning, + faFile, + faMicrophone, +} from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import BouncingLoader from "../ui/bouncingloader/Bouncingloader"; +import "./Servers.css"; +import { useEffect } from "react"; + +function Servers({ + servers, + activeEpisodeNum, + activeServerId, + setActiveServerId, + serverLoading, + setActiveServerType, + setActiveServerName, +}) { + const subServers = + servers?.filter((server) => server.type === "sub") || []; + const dubServers = + servers?.filter((server) => server.type === "dub") || []; + const rawServers = + servers?.filter((server) => server.type === "raw") || []; + + useEffect(() => { + const savedServerName = localStorage.getItem("server_name"); + if (savedServerName) { + const matchingServer = servers?.find( + (server) => server.serverName === savedServerName, + ); + + if (matchingServer) { + setActiveServerId(matchingServer.data_id); + setActiveServerType(matchingServer.type); + } else if (servers && servers.length > 0) { + setActiveServerId(servers[0].data_id); + setActiveServerType(servers[0].type); + } + } else if (servers && servers.length > 0) { + setActiveServerId(servers[0].data_id); + setActiveServerType(servers[0].type); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [servers]); + + const handleServerSelect = (server) => { + setActiveServerId(server.data_id); + setActiveServerType(server.type); + setActiveServerName(server.serverName); + localStorage.setItem("server_name", server.serverName); + localStorage.setItem("server_type", server.type); + }; + return ( +
+ {serverLoading ? ( +
+ +
+ ) : servers ? ( +
+
+

+ You are watching
+ + Episode {activeEpisodeNum} + +

+

+ If the current server doesn't work, please try other servers + beside. +

+
+
+ {rawServers.length > 0 && ( +
+
+ +

RAW:

+
+
+ {rawServers.map((item, index) => ( +
handleServerSelect(item)} + > +

+ {item.serverName} +

+
+ ))} +
+
+ )} + {subServers.length > 0 && ( +
+
+ +

SUB:

+
+
+ {subServers.map((item, index) => ( +
handleServerSelect(item)} + > +

+ {item.serverName} +

+
+ ))} +
+
+ )} + {dubServers.length > 0 && ( +
+
+ +

DUB:

+
+
+ {dubServers.map((item, index) => ( +
handleServerSelect(item)} + > +

+ {item.serverName} +

+
+ ))} +
+
+ )} +
+
+ ) : ( +

+ Could not load servers
+ Either reload or try again after sometime +

+ )} +
+ ); +} + +export default Servers; diff --git a/src/components/sidebar/Sidebar.jsx b/src/components/sidebar/Sidebar.jsx new file mode 100644 index 0000000..61a61c9 --- /dev/null +++ b/src/components/sidebar/Sidebar.jsx @@ -0,0 +1,141 @@ +import { FaChevronLeft } from "react-icons/fa"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { faFilm, faRandom } from "@fortawesome/free-solid-svg-icons"; +import { useLanguage } from "@/src/context/LanguageContext"; +import { useEffect } from "react"; +import { Link, useLocation } from "react-router-dom"; +import { + cleanupScrollbar, + toggleScrollbar, +} from "@/src/helper/toggleScrollbar"; + +const Sidebar = ({ isOpen, onClose }) => { + const { language, toggleLanguage } = useLanguage(); + const location = useLocation(); + + useEffect(() => { + toggleScrollbar(isOpen); + return () => { + cleanupScrollbar(); + }; + }, [isOpen]); + + useEffect(() => { + onClose(); + }, [location]); + + return ( + <> + {isOpen && ( +
+ )} + +
+
+
+ +
+
+ {[ + { icon: faRandom, label: "Random" }, + { icon: faFilm, label: "Movie" }, + ].map((item, index) => ( + + +

+ {item.label} +

+ + ))} +
+
+ {["EN", "JP"].map((lang, index) => ( + + ))} +
+
+

+ Anime name +

+
+
+
+
    + {[ + { name: "Home", path: "/home" }, + { name: "Subbed Anime", path: "/subbed-anime" }, + { name: "Dubbed Anime", path: "/dubbed-anime" }, + { name: "Most Popular", path: "/most-popular" }, + { name: "Movies", path: "/movie" }, + { name: "TV Series", path: "/tv" }, + { name: "OVAs", path: "/ova" }, + { name: "ONAs", path: "/ona" }, + { name: "Specials", path: "/special" }, + { + name: "Join Telegram", + path: "https://t.me/zenime_discussion", + }, + ].map((item, index) => ( +
  • + + {item.name} + +
  • + ))} +
+
+
+ + ); +}; + +export default Sidebar; diff --git a/src/components/sidecard/Sidecard.jsx b/src/components/sidecard/Sidecard.jsx new file mode 100644 index 0000000..fb539da --- /dev/null +++ b/src/components/sidecard/Sidecard.jsx @@ -0,0 +1,142 @@ +import React, { useState } from "react"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { + faClosedCaptioning, + faMicrophone, +} from "@fortawesome/free-solid-svg-icons"; +import { useLanguage } from "@/src/context/LanguageContext"; +import { Link, useNavigate } from "react-router-dom"; +import useToolTipPosition from "@/src/hooks/useToolTipPosition"; +import Qtip from "../qtip/Qtip"; + +function Sidecard({ data, label, className, limit }) { + const { language } = useLanguage(); + const navigate = useNavigate(); + const [showAll, setShowAll] = useState(false); + const [hoverTimeout, setHoverTimeout] = useState(null); + const handleMouseEnter = (item, index) => { + const timeout = setTimeout(() => { + setHoveredItem(item.id + index); + }, 400); + setHoverTimeout(timeout); + }; + const handleMouseLeave = () => { + clearTimeout(hoverTimeout); + setHoveredItem(null); + }; + const toggleShowAll = () => { + setShowAll((prev) => !prev); + }; + + const displayedData = limit + ? data.slice(0, limit) + : showAll + ? data + : data.slice(0, 6); + const [hoveredItem, setHoveredItem] = useState(null); + const { tooltipPosition, tooltipHorizontalPosition, cardRefs } = + useToolTipPosition(hoveredItem, data); + return ( +
+

{label}

+
+ {data && + displayedData.map((item, index) => ( +
(cardRefs.current[index] = el)} + > +
+ {hoveredItem === item.id + index && + window.innerWidth > 1024 && ( +
+ +
+ )} + {item.title} navigate(`/watch/${item.id}`)} + onMouseEnter={() => handleMouseEnter(item, index)} + onMouseLeave={handleMouseLeave} + /> +
+ + window.scrollTo({ top: 0, behavior: "smooth" }) + } + > + {language === "EN" ? item.title : item.japanese_title} + +
+ {item.tvInfo?.sub && ( +
+ +

+ {item.tvInfo.sub} +

+
+ )} + {item.tvInfo?.dub && ( +
+ +

+ {item.tvInfo.dub} +

+
+ )} + {item.tvInfo?.showType && ( +
+
+

+ {item.tvInfo.showType} +

+
+ )} +
+
+
+
+ ))} + {!limit && data.length > 6 && ( + + )} +
+
+ ); +} + +export default React.memo(Sidecard); diff --git a/src/components/splashscreen/SplashScreen.css b/src/components/splashscreen/SplashScreen.css new file mode 100644 index 0000000..7401cba --- /dev/null +++ b/src/components/splashscreen/SplashScreen.css @@ -0,0 +1,227 @@ +/* Base styles */ +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; + color: white; +} + +/* Container and background */ +.splash-container { + min-height: 100vh; + width: 100%; + position: relative; + background: url('/splash.jpg') no-repeat center center fixed; + background-size: cover; + display: flex; + justify-content: center; + align-items: flex-start; + padding: 0 30px; +} + +.splash-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.7); + z-index: 1; +} + +.content-wrapper { + position: relative; + z-index: 2; + width: 100%; + max-width: 800px; + display: flex; + flex-direction: column; + align-items: center; + padding-top: 140px; +} + +/* Logo */ +.logo-container { + margin-bottom: 30px; +} + +.logo { + height: 75px; + width: auto; +} + +/* Search */ +.search-container { + width: 100%; + max-width: 500px; + position: relative; + margin-bottom: 24px; +} + +.search-input { + width: 100%; + padding: 14px 48px 14px 20px; + background: rgba(17, 17, 17, 0.75); + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 8px; + color: white; + font-size: 16px; + outline: none; + transition: border-color 0.2s; +} + +.search-input:focus { + border-color: rgba(255, 255, 255, 0.3); +} + +.search-input::placeholder { + color: rgba(255, 255, 255, 0.5); +} + +.search-button { + position: absolute; + right: 16px; + top: 50%; + transform: translateY(-50%); + background: none; + border: none; + color: rgba(255, 255, 255, 0.5); + cursor: pointer; + padding: 0; + font-size: 18px; + transition: color 0.2s; +} + +.search-button:hover { + color: white; +} + +/* Enter button */ +.enter-button { + background: white; + color: black; + padding: 12px 24px; + border-radius: 8px; + text-decoration: none; + font-weight: 500; + margin: 8px 0 60px; + transition: background-color 0.2s; +} + +.enter-button:hover { + background: #ffbade; +} + +/* FAQ Section */ +.faq-section { + width: 100%; + max-width: 700px; +} + +.faq-title { + font-size: 32px; + font-weight: 700; + text-align: center; + margin-bottom: 40px; + color: white; +} + +.faq-list { + display: flex; + flex-direction: column; + gap: 10px; +} + +.faq-item { + background: #141414; + border-radius: 12px; + overflow: hidden; + border: 1px solid #1a1a1a; +} + +.faq-question { + width: 100%; + padding: 18px 24px; + display: flex; + justify-content: space-between; + align-items: center; + background: none; + border: none; + color: white; + font-size: 17px; + text-align: left; + cursor: pointer; + transition: all 0.2s ease; +} + +.faq-question:hover { + background: #1a1a1a; +} + +.faq-toggle { + font-size: 16px; + color: white; + opacity: 0.8; + transition: transform 0.2s ease; +} + +.faq-toggle.rotate { + transform: rotate(180deg); +} + +.faq-answer { + padding: 0 24px 18px; + color: rgba(255, 255, 255, 0.7); + line-height: 1.6; + font-size: 15px; +} + +/* Responsive adjustments */ +@media (max-width: 768px) { + .content-wrapper { + padding-top: 100px; + } + + .logo { + height: 60px; + } + + .search-input { + padding: 12px 40px 12px 16px; + font-size: 15px; + } + + .faq-title { + font-size: 24px; + margin-bottom: 24px; + } +} + +@media (max-width: 480px) { + .content-wrapper { + padding-top: 80px; + } + + .logo { + height: 50px; + } + + .search-input { + padding: 12px 36px 12px 14px; + font-size: 14px; + } + + .enter-button { + padding: 10px 20px; + font-size: 14px; + } + + .faq-question { + padding: 16px; + font-size: 15px; + } + + .faq-answer { + padding: 0 16px 16px; + font-size: 14px; + } +} diff --git a/src/components/splashscreen/SplashScreen.jsx b/src/components/splashscreen/SplashScreen.jsx new file mode 100644 index 0000000..b060ae0 --- /dev/null +++ b/src/components/splashscreen/SplashScreen.jsx @@ -0,0 +1,107 @@ +import { useState, useCallback } from "react"; +import { Link, useNavigate } from "react-router-dom"; +import "./SplashScreen.css"; +import logoTitle from "@/src/config/logoTitle"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { faMagnifyingGlass, faChevronDown } from "@fortawesome/free-solid-svg-icons"; + +const FAQ_ITEMS = [ + { + question: "Is JustAnime safe?", + answer: "Yes, JustAnime is completely safe to use. We ensure all content is properly scanned and secured for our users." + }, + { + question: "What makes JustAnime the best site to watch anime free online?", + answer: "JustAnime offers high-quality streaming, a vast library of anime, no intrusive ads, and a user-friendly interface - all completely free." + }, + { + question: "How do I request an anime?", + answer: "You can submit anime requests through our contact form or by reaching out to our support team." + } +]; + +function SplashScreen() { + const navigate = useNavigate(); + const [search, setSearch] = useState(""); + const [expandedFaq, setExpandedFaq] = useState(null); + + const handleSearchSubmit = useCallback(() => { + const trimmedSearch = search.trim(); + if (!trimmedSearch) return; + const queryParam = encodeURIComponent(trimmedSearch); + navigate(`/search?keyword=${queryParam}`); + }, [search, navigate]); + + const handleKeyDown = useCallback( + (e) => { + if (e.key === "Enter") { + handleSearchSubmit(); + } + }, + [handleSearchSubmit] + ); + + const toggleFaq = (index) => { + setExpandedFaq(expandedFaq === index ? null : index); + }; + + return ( +
+
+
+
+ {logoTitle} +
+ +
+ setSearch(e.target.value)} + onKeyDown={handleKeyDown} + /> + +
+ + + Enter Homepage → + + +
+

Frequently Asked Questions

+
+ {FAQ_ITEMS.map((item, index) => ( +
+ + {expandedFaq === index && ( +
+ {item.answer} +
+ )} +
+ ))} +
+
+
+
+ ); +} + +export default SplashScreen; diff --git a/src/components/spotlight/Spotlight.css b/src/components/spotlight/Spotlight.css new file mode 100644 index 0000000..01d867e --- /dev/null +++ b/src/components/spotlight/Spotlight.css @@ -0,0 +1,68 @@ +.swiper { + width: 100%; +} +.swiper-slide { + font-size: 18px; + display: -webkit-box; + display: -ms-flexbox; + display: -webkit-flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + -webkit-box-align: center; + -ms-flex-align: center; +} +.button-prev, +.button-next { + width: 40px; + height: 40px; + color: white; + background-color: #383747; + border-radius: 7px; + display: flex; + justify-content: center; + align-items: center; + cursor: pointer; + transition: all 0.3s ease-out; +} +.button-prev:hover, +.button-next:hover { + background-color: #ffbade; + color: #383747; +} + +.button-prev::after { + font-family: "Font Awesome 5 Free"; + content: "\f053"; + font-weight: 900; + font-size: 14px; +} + +.button-next::after { + font-family: "Font Awesome 5 Free"; + content: "\f054"; + font-weight: 900; + font-size: 14px; +} + +.swiper-horizontal > .swiper-pagination-bullets { + display: none; +} +.swiper-pagination-bullet-active { + background-color: rgb(239, 213, 22) !important; +} +@media only screen and (max-width: 575px) { + .swiper-horizontal > .swiper-pagination-bullets { + /* bottom: var(--swiper-pagination-bottom, 8px); */ + bottom: 0; + right: 10px !important ; + left: auto !important; + width: 20px !important; + bottom: 5px !important; + display: flex !important; + gap: 18px; + align-items: center; + justify-content: center; + height: 80%; + flex-direction: column; + } +} diff --git a/src/components/spotlight/Spotlight.jsx b/src/components/spotlight/Spotlight.jsx new file mode 100644 index 0000000..94e2e7a --- /dev/null +++ b/src/components/spotlight/Spotlight.jsx @@ -0,0 +1,54 @@ +import { Swiper, SwiperSlide } from "swiper/react"; +import { Navigation, Autoplay } from "swiper/modules"; +import "swiper/css"; +import "swiper/css/autoplay"; +import "swiper/css/navigation"; +import "./Spotlight.css"; +import Banner from "../banner/Banner"; + +const Spotlight = ({ spotlights }) => { + return ( + <> +
+
+
+
+
+ {spotlights && spotlights.length > 0 ? ( + <> + + {spotlights.map((item, index) => ( + + + + ))} + + + ) : ( +

No spotlights to show.

+ )} +
+ + ); +}; + +export default Spotlight; diff --git a/src/components/suggestion/Suggestion.jsx b/src/components/suggestion/Suggestion.jsx new file mode 100644 index 0000000..5cacb94 --- /dev/null +++ b/src/components/suggestion/Suggestion.jsx @@ -0,0 +1,115 @@ +import getSearchSuggestion from "@/src/utils/getSearchSuggestion.utils"; +import { useEffect, useState } from "react"; +import BouncingLoader from "../ui/bouncingloader/Bouncingloader"; +import { FaChevronRight } from "react-icons/fa"; +import { Link } from "react-router-dom"; + +function Suggestion({ keyword, className }) { + const [suggestion, setSuggestion] = useState([]); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + const [hasFetched, setHasFetched] = useState(false); + + useEffect(() => { + const fetchSearchSuggestion = async () => { + if (!keyword) return; + setLoading(true); + setHasFetched(false); + try { + const data = await getSearchSuggestion(keyword); + setSuggestion(data); + setHasFetched(true); + } catch (err) { + console.error("Error fetching search suggestion info:", err); + setError(err); + } finally { + setLoading(false); + } + }; + fetchSearchSuggestion(); + }, [keyword]); + + return ( +
+ {loading ? ( + + ) : error && !suggestion ? ( +
Error loading suggestions
+ ) : suggestion && hasFetched ? ( +
+ {suggestion.map((item, index) => ( + + { + e.target.src = "https://i.postimg.cc/HnHKvHpz/no-avatar.jpg"; + }} + /> +
+ {item?.title && ( +

+ {item.title || "N/A"} +

+ )} + {item?.japanese_title && ( +

+ {item.japanese_title || "N/A"} +

+ )} + {(item?.releaseDate || item?.showType || item?.duration) && ( +
+

+ {item.releaseDate || "N/A"} +

+ +

+ {item.showType || "N/A"} +

+ +

+ {item.duration || "N/A"} +

+
+ )} +
+ + ))} + {!loading && hasFetched && ( + +
+

+ View all results +

+ +
+ + )} +
+ ) : hasFetched ? ( +

No results found!

+ ) : null} +
+ ); +} + +export default Suggestion; diff --git a/src/components/topten/Topten.jsx b/src/components/topten/Topten.jsx new file mode 100644 index 0000000..c0a6758 --- /dev/null +++ b/src/components/topten/Topten.jsx @@ -0,0 +1,176 @@ +import React, { useState } from "react"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { + faClosedCaptioning, + faMicrophone, +} from "@fortawesome/free-solid-svg-icons"; +import { useLanguage } from "@/src/context/LanguageContext"; +import { Link, useNavigate } from "react-router-dom"; +import useToolTipPosition from "@/src/hooks/useToolTipPosition"; +import Qtip from "../qtip/Qtip"; + +function Topten({ data, className }) { + const { language } = useLanguage(); + const [activePeriod, setActivePeriod] = useState("today"); + const [hoveredItem, setHoveredItem] = useState(null); + const [hoverTimeout, setHoverTimeout] = useState(null); + const navigate = useNavigate(); + + const handlePeriodChange = (period) => { + setActivePeriod(period); + }; + + const handleNavigate = (id) => { + navigate(`/${id}`); + window.scrollTo({ top: 0, behavior: "smooth" }); + }; + + const currentData = + activePeriod === "today" + ? data.today + : activePeriod === "week" + ? data.week + : data.month; + + const { tooltipPosition, tooltipHorizontalPosition, cardRefs } = + useToolTipPosition(hoveredItem, currentData); + + const handleMouseEnter = (item, index) => { + if (hoverTimeout) clearTimeout(hoverTimeout); + setHoveredItem(item.id + index); + }; + + const handleMouseLeave = () => { + setHoverTimeout( + setTimeout(() => { + setHoveredItem(null); + }, 300) // Small delay to prevent flickering + ); + }; + + return ( +
+
+

Top 10

+
    + {["today", "week", "month"].map((period) => ( +
  • handlePeriodChange(period)} + > + {period.charAt(0).toUpperCase() + period.slice(1)} +
  • + ))} +
+
+ +
+ {currentData && + currentData.map((item, index) => ( +
(cardRefs.current[index] = el)} + > +

+ {`${index + 1 < 10 ? "0" : ""}${index + 1}`} +

+
+ {/* Image with tooltip behavior */} + {item.title} navigate(`/watch/${item.id}`)} + onMouseEnter={() => handleMouseEnter(item, index)} + onMouseLeave={handleMouseLeave} + /> + + {/* Tooltip positioned near image */} + {hoveredItem === item.id + index && + window.innerWidth > 1024 && ( +
{ + if (hoverTimeout) clearTimeout(hoverTimeout); + }} + onMouseLeave={handleMouseLeave} + > + +
+ )} + +
+ handleNavigate(item.id)} + > + {language === "EN" ? item.title : item.japanese_title} + +
+ {item.tvInfo?.sub && ( +
+ +

+ {item.tvInfo.sub} +

+
+ )} + {item.tvInfo?.dub && ( +
+ +

+ {item.tvInfo.dub} +

+
+ )} +
+
+
+
+ ))} +
+
+ ); +} + +export default React.memo(Topten); diff --git a/src/components/trending/Trending.jsx b/src/components/trending/Trending.jsx new file mode 100644 index 0000000..002ad54 --- /dev/null +++ b/src/components/trending/Trending.jsx @@ -0,0 +1,77 @@ +import { Pagination, Navigation } from "swiper/modules"; +import { Swiper, SwiperSlide } from "swiper/react"; +import { FaChevronLeft, FaChevronRight } from "react-icons/fa"; +import { useLanguage } from "@/src/context/LanguageContext"; +import { Link, useNavigate } from "react-router-dom"; + +const Trending = ({ trending }) => { + const { language } = useLanguage(); + const navigate = useNavigate(); + return ( +
+

+ Trending +

+
+ + {trending && + trending.map((item, idx) => ( + navigate(`/watch/${item.id}`)} + > +
+
+ + {item.number} + +
+ {language === "EN" ? item.title : item.japanese_title} +
+
+ + {item.title} + +
+
+ ))} +
+
+
+ +
+
+ +
+
+
+
+ ); +}; + +export default Trending; diff --git a/src/components/ui/Skeleton/Skeleton.css b/src/components/ui/Skeleton/Skeleton.css new file mode 100644 index 0000000..d51e7a0 --- /dev/null +++ b/src/components/ui/Skeleton/Skeleton.css @@ -0,0 +1,23 @@ +@keyframes shimmer { + 0% { + background-position: 100% 0; + } + 100% { + background-position: -100% 0; + } + } + + .shimmer-effect { + background: linear-gradient( + to right, + rgba(255, 255, 255, 0.1) 0%, + rgba(255, 255, 255, 0.2) 20%, + rgba(255, 255, 255, 0.3) 40%, + rgba(255, 255, 255, 0.2) 60%, + rgba(255, 255, 255, 0.1) 80%, + rgba(0, 0, 0, 0.03) 100% + ); + background-size: 200% 100%; + animation: shimmer 1.5s infinite linear; + } + \ No newline at end of file diff --git a/src/components/ui/Skeleton/Skeleton.jsx b/src/components/ui/Skeleton/Skeleton.jsx new file mode 100644 index 0000000..eab2eaa --- /dev/null +++ b/src/components/ui/Skeleton/Skeleton.jsx @@ -0,0 +1,16 @@ +import { cn } from "@/lib/utils"; +import './Skeleton.css'; + +function Skeleton({ className, animation=true, ...props }) { + return ( +
+ ); +} + +export { Skeleton }; diff --git a/src/components/ui/bouncingloader/Bouncingloader.css b/src/components/ui/bouncingloader/Bouncingloader.css new file mode 100644 index 0000000..c5b1723 --- /dev/null +++ b/src/components/ui/bouncingloader/Bouncingloader.css @@ -0,0 +1,45 @@ +.bouncing-loading > div { + width: 18px; + height: 18px; + background-color: #858490; + border-radius: 100%; + display: inline-block; + -webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both; + animation: sk-bouncedelay 1.4s infinite ease-in-out both; +} + +.bouncing-loading .span1 { + -webkit-animation-delay: -0.32s; + animation-delay: -0.32s; +} + +.bouncing-loading .span2 { + -webkit-animation-delay: -0.16s; + animation-delay: -0.16s; +} + +@-webkit-keyframes sk-bouncedelay { + 0%, + 100%, + 80% { + -webkit-transform: scale(0); + } + + 40% { + -webkit-transform: scale(1); + } +} + +@keyframes sk-bouncedelay { + 0%, + 100%, + 80% { + -webkit-transform: scale(0); + transform: scale(0); + } + + 40% { + -webkit-transform: scale(1); + transform: scale(1); + } +} diff --git a/src/components/ui/bouncingloader/Bouncingloader.jsx b/src/components/ui/bouncingloader/Bouncingloader.jsx new file mode 100644 index 0000000..9c81444 --- /dev/null +++ b/src/components/ui/bouncingloader/Bouncingloader.jsx @@ -0,0 +1,12 @@ +import "./Bouncingloader.css" +const BouncingLoader = () => { + return ( +
+
+
+
+
+ ); +}; + +export default BouncingLoader; \ No newline at end of file diff --git a/src/components/voiceactor/Voiceactor.jsx b/src/components/voiceactor/Voiceactor.jsx new file mode 100644 index 0000000..bcc588e --- /dev/null +++ b/src/components/voiceactor/Voiceactor.jsx @@ -0,0 +1,100 @@ +import { useState } from "react"; +import { FaChevronRight } from "react-icons/fa"; +import VoiceactorList from "../voiceactorlist/VoiceactorList"; + +function Voiceactor({ animeInfo, className }) { + const [showVoiceActors, setShowVoiceActors] = useState(false); + return ( +
+
+

+ Characters & Voice Actors +

+ +
+
+ {animeInfo.charactersVoiceActors.slice(0, 6).map((character, index) => ( +
+ {character.character && ( +
+
+ {character.character.poster && ( + {character.character.name { + e.target.src = "https://i.postimg.cc/HnHKvHpz/no-avatar.jpg"; + }} + className="w-[45px] h-[45px] flex-shrink-0 rounded-full object-cover" + loading="lazy" + /> + )} +
+ {character.character.name && ( +

+ {character.character.name} +

+ )} + {character.character.cast && ( +

+ {character.character.cast} +

+ )} +
+
+
+ )} + {character.voiceActors.length > 0 && character.voiceActors[0] && ( +
+
+
+ {character.voiceActors[0].name && ( + + {character.voiceActors[0].name} + + )} +
+ {character.voiceActors[0].poster && ( + {character.voiceActors[0].name { + e.target.src = "https://i.postimg.cc/HnHKvHpz/no-avatar.jpg"; + }} + className="w-[45px] h-[45px] rounded-full object-cover grayscale hover:grayscale-0 hover:cursor-pointer flex-shrink-0 transition-all duration-300 ease-in-out" + /> + )} +
+
+ )} +
+ ))} +
+ {showVoiceActors && ( + setShowVoiceActors(false)} + /> + )} +
+ ); +} + +export default Voiceactor; diff --git a/src/components/voiceactorlist/VoiceactorList.jsx b/src/components/voiceactorlist/VoiceactorList.jsx new file mode 100644 index 0000000..43f951d --- /dev/null +++ b/src/components/voiceactorlist/VoiceactorList.jsx @@ -0,0 +1,175 @@ +import { useState, useEffect } from "react"; +import { + faAngleDoubleLeft, + faAngleDoubleRight, + faChevronLeft, + faChevronRight, +} from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import fetchVoiceActorInfo from "@/src/utils/getVoiceActor.utils"; +import VoiceActorlistLoader from "../Loader/VoiceActorlist.loader"; +import { useNavigate } from "react-router-dom"; +import Error from "../error/Error"; +import { + cleanupScrollbar, + toggleScrollbar, +} from "@/src/helper/toggleScrollbar"; +import PageSlider from "../pageslider/PageSlider"; + +function VoiceactorList({ id, isOpen, onClose }) { + const [loading, setLoading] = useState(true); + const [page, setPage] = useState(1); + const [totalPages, setTotalPages] = useState(1); + const [error, setError] = useState(null); + const [VoiceactorList, setVoiceactorList] = useState([]); + const navigate = useNavigate(); + + useEffect(() => { + toggleScrollbar(isOpen); + return () => { + cleanupScrollbar(); + }; + }, [isOpen]); + + useEffect(() => { + const fetchCategoryInfo = async () => { + setLoading(true); + try { + const data = await fetchVoiceActorInfo(id, page); + setVoiceactorList(data.data); + setTotalPages(data.totalPages); + setLoading(false); + } catch (err) { + setError(err); + console.error("Error fetching category info:", err); + } + }; + fetchCategoryInfo(); + }, [page]); + if (error) { + navigate("/error-page"); + return ; + } + if (!VoiceactorList) { + navigate("/404-not-found-page"); + return null; + } + return ( +
+
+ {!loading && ( +

+ Characters & Voice Actors +

+ )} + + {loading ? ( + + ) : ( +
+ {VoiceactorList.map((item, index) => ( +
+
+ { + e.target.src = "https://i.postimg.cc/HnHKvHpz/no-avatar.jpg"; + }} + /> +
+ {item.character.name && ( +

+ {item.character.name} +

+ )} + {item.character.cast && ( +

+ {item.character.cast} +

+ )} +
+
+ + {item.voiceActors && + item.voiceActors.length > 0 && + (item.voiceActors.length > 1 ? ( +
+ {item.voiceActors.map((data, index) => ( + { + e.target.src = "https://i.postimg.cc/HnHKvHpz/no-avatar.jpg"; + }} + /> + ))} +
+ ) : ( +
+ {item?.voiceActors[0]?.name && ( +

+ {item.voiceActors[0].name} +

+ )} + { + e.target.src = "https://i.postimg.cc/HnHKvHpz/no-avatar.jpg"; + }} + /> +
+ ))} +
+ ))} +
+ )} + +
+ +
+ + +
+
+ ); +} + +export default VoiceactorList; diff --git a/src/components/watchcontrols/Watchcontrols.jsx b/src/components/watchcontrols/Watchcontrols.jsx new file mode 100644 index 0000000..c5ca17e --- /dev/null +++ b/src/components/watchcontrols/Watchcontrols.jsx @@ -0,0 +1,97 @@ +import { faBackward, faForward } from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { useEffect, useState } from "react"; + +const ToggleButton = ({ label, isActive, onClick }) => ( + +); + +export default function WatchControls({ + autoPlay, + setAutoPlay, + autoSkipIntro, + setAutoSkipIntro, + autoNext, + setAutoNext, + episodeId, + episodes = [], + onButtonClick, +}) { + const [currentEpisodeIndex, setCurrentEpisodeIndex] = useState( + episodes?.findIndex( + (episode) => episode.id.match(/ep=(\d+)/)?.[1] === episodeId + ) + ); + + useEffect(() => { + if (episodes?.length > 0) { + const newIndex = episodes.findIndex( + (episode) => episode.id.match(/ep=(\d+)/)?.[1] === episodeId + ); + setCurrentEpisodeIndex(newIndex); + } + }, [episodeId, episodes]); + + return ( +
+
+ setAutoPlay((prev) => !prev)} + /> + setAutoSkipIntro((prev) => !prev)} + /> + setAutoNext((prev) => !prev)} + /> +
+
+ + +
+
+ ); +} diff --git a/src/config/logoTitle.js b/src/config/logoTitle.js new file mode 100644 index 0000000..95b3110 --- /dev/null +++ b/src/config/logoTitle.js @@ -0,0 +1,3 @@ +const logoTitle="Zen!me" + +export default logoTitle; \ No newline at end of file diff --git a/src/config/website.js b/src/config/website.js new file mode 100644 index 0000000..d7cdf5d --- /dev/null +++ b/src/config/website.js @@ -0,0 +1,3 @@ +const website_name = "JustAnime"; + +export default website_name; \ No newline at end of file diff --git a/src/context/HomeInfoContext.jsx b/src/context/HomeInfoContext.jsx new file mode 100644 index 0000000..814e8b0 --- /dev/null +++ b/src/context/HomeInfoContext.jsx @@ -0,0 +1,31 @@ +import { createContext, useContext, useState, useEffect } from 'react'; +import getHomeInfo from '../utils/getHomeInfo.utils.js'; + +const HomeInfoContext = createContext(); + +export const HomeInfoProvider = ({ children }) => { + const [homeInfo, setHomeInfo] = useState(null); + const [homeInfoLoading, setHomeInfoLoading] = useState(true); + const [error, setError] = useState(null); + useEffect(() => { + const fetchHomeInfo = async () => { + try { + const data = await getHomeInfo(); + setHomeInfo(data); + } catch (err) { + console.error("Error fetching home info:", err); + setError(err); + } finally { + setHomeInfoLoading(false); + } + }; + fetchHomeInfo(); + }, []); + return ( + + {children} + + ); +}; + +export const useHomeInfo = () => useContext(HomeInfoContext); diff --git a/src/context/LanguageContext.jsx b/src/context/LanguageContext.jsx new file mode 100644 index 0000000..cec8067 --- /dev/null +++ b/src/context/LanguageContext.jsx @@ -0,0 +1,27 @@ +import { createContext, useContext, useState, useEffect } from 'react'; + +const LanguageContext = createContext(); + +export const LanguageProvider = ({ children }) => { + const [language, setLanguage] = useState(() => { + const storedLanguage = localStorage.getItem('language'); + return storedLanguage ? storedLanguage : 'EN'; + }); + useEffect(() => { + localStorage.setItem('language', language); + }, [language]); + + const toggleLanguage = (lang) => { + setLanguage(lang); + }; + + return ( + + {children} + + ); +}; + +export const useLanguage = () => { + return useContext(LanguageContext); +}; diff --git a/src/context/SearchContext.jsx b/src/context/SearchContext.jsx new file mode 100644 index 0000000..36e738e --- /dev/null +++ b/src/context/SearchContext.jsx @@ -0,0 +1,13 @@ +import { createContext, useContext, useState } from 'react'; + +const SearchContext = createContext(); +export function SearchProvider({ children }) { + const [isSearchVisible, setIsSearchVisible] = useState(false); + + return ( + + {children} + + ); +} +export const useSearchContext = () => useContext(SearchContext); \ No newline at end of file diff --git a/src/helper/toggleScrollbar.js b/src/helper/toggleScrollbar.js new file mode 100644 index 0000000..77e0bdd --- /dev/null +++ b/src/helper/toggleScrollbar.js @@ -0,0 +1,32 @@ +export function toggleScrollbar(isOpen) { + const getScrollbarWidth = () => { + return window.innerWidth - document.documentElement.clientWidth; + }; + const body = document.body; + if (isOpen) { + const scrollbarWidth = getScrollbarWidth(); + body.style.paddingRight = `${scrollbarWidth}px`; + body.classList.add("overflow-y-hidden"); + + const style = document.createElement("style"); + style.id = "hide-scrollbar"; + style.innerHTML = `::-webkit-scrollbar { display: none; }`; + document.head.appendChild(style); + } else { + body.style.paddingRight = "0"; + body.classList.remove("overflow-y-hidden"); + const styleElement = document.getElementById("hide-scrollbar"); + if (styleElement) { + styleElement.remove(); + } + } +} +export function cleanupScrollbar() { + const body = document.body; + body.style.paddingRight = "0"; + body.classList.remove("overflow-y-hidden"); + const styleElement = document.getElementById("hide-scrollbar"); + if (styleElement) { + styleElement.remove(); + } +} diff --git a/src/hooks/useSearch.js b/src/hooks/useSearch.js new file mode 100644 index 0000000..f094b86 --- /dev/null +++ b/src/hooks/useSearch.js @@ -0,0 +1,64 @@ +import { useState, useEffect, useRef, useCallback } from "react"; +import { useLocation } from "react-router-dom"; +import { useSearchContext } from "@/src/context/SearchContext"; + +const useSearch = () => { + const { isSearchVisible, setIsSearchVisible } = useSearchContext(); + const [searchValue, setSearchValue] = useState(""); + const [isFocused, setIsFocused] = useState(false); + const [debouncedValue, setDebouncedValue] = useState(""); + const suggestionRefs = useRef([]); + const location = useLocation(); + + useEffect(() => { + const timer = setTimeout(() => { + setDebouncedValue(searchValue); + }, 500); + return () => { + clearTimeout(timer); + }; + }, [searchValue]); + + useEffect(() => { + setIsSearchVisible(false); + setSearchValue(""); + setDebouncedValue(""); + // setIsFocused(false); + }, [location, setIsSearchVisible]); + + useEffect(() => { + const handleClickOutside = (event) => { + const isInsideSuggestionBox = suggestionRefs.current.some( + (ref) => ref && ref.contains(event.target) + ); + const isInsideInput = document.activeElement === event.target; + if (!isInsideSuggestionBox && !isInsideInput) { + setIsFocused(false); + } + }; + + document.addEventListener("mousedown", handleClickOutside); + return () => { + document.removeEventListener("mousedown", handleClickOutside); + }; + }, []); + const addSuggestionRef = useCallback((ref) => { + if (ref && !suggestionRefs.current.includes(ref)) { + suggestionRefs.current.push(ref); + } + }, []); + + return { + isSearchVisible, + setIsSearchVisible, + searchValue, + setSearchValue, + isFocused, + setIsFocused, + debouncedValue, + suggestionRefs, + addSuggestionRef, + }; +}; + +export default useSearch; diff --git a/src/hooks/useToolTipPosition.js b/src/hooks/useToolTipPosition.js new file mode 100644 index 0000000..ae74331 --- /dev/null +++ b/src/hooks/useToolTipPosition.js @@ -0,0 +1,49 @@ +import { useEffect, useRef, useState } from "react"; + +const useToolTipPosition = (hoveredItem, data) => { + const cardRefs = useRef([]); + const [tooltipPosition, setTooltipPosition] = useState("top-1/2"); + const [tooltipHorizontalPosition, setTooltipHorizontalPosition] = + useState("left-1/2"); + + const updateToolTipPosition = () => { + if (hoveredItem !== null) { + const refIndex = data.findIndex( + (item, index) => item.id + index === hoveredItem + ); + const ref = cardRefs.current[refIndex]; + if (ref) { + const { top, height, left, width } = ref.getBoundingClientRect(); + const adjustedTop = top + height / 2 - 64; + const bottomY = window.innerHeight - adjustedTop; + if (adjustedTop < bottomY) { + setTooltipPosition("top-1/2"); + } else { + setTooltipPosition("bottom-1/2"); + } + const adjustedLeft = left + width / 2; + const spaceRight = window.innerWidth - adjustedLeft; + if (spaceRight > 320) { + setTooltipHorizontalPosition("left-1/2"); + } else { + setTooltipHorizontalPosition("right-1/2"); + } + } + } + }; + + useEffect(() => { + updateToolTipPosition(); + const handleScroll = () => { + updateToolTipPosition(); + }; + window.addEventListener("scroll", handleScroll); + return () => { + window.removeEventListener("scroll", handleScroll); + }; + }, [hoveredItem, data]); + + return { tooltipPosition, tooltipHorizontalPosition, cardRefs }; +}; + +export default useToolTipPosition; diff --git a/src/hooks/useWatch.js b/src/hooks/useWatch.js new file mode 100644 index 0000000..cc416bb --- /dev/null +++ b/src/hooks/useWatch.js @@ -0,0 +1,269 @@ +/* eslint-disable react-hooks/exhaustive-deps */ +import { useState, useEffect, useRef } from "react"; +import getAnimeInfo from "@/src/utils/getAnimeInfo.utils"; +import getEpisodes from "@/src/utils/getEpisodes.utils"; +import getNextEpisodeSchedule from "../utils/getNextEpisodeSchedule.utils"; +import getServers from "../utils/getServers.utils"; +import getStreamInfo from "../utils/getStreamInfo.utils"; + +export const useWatch = (animeId, initialEpisodeId) => { + const [error, setError] = useState(null); + const [buffering, setBuffering] = useState(true); + const [streamInfo, setStreamInfo] = useState(null); + const [animeInfo, setAnimeInfo] = useState(null); + const [episodes, setEpisodes] = useState(null); + const [animeInfoLoading, setAnimeInfoLoading] = useState(false); + const [totalEpisodes, setTotalEpisodes] = useState(null); + const [seasons, setSeasons] = useState(null); + const [servers, setServers] = useState(null); + const [streamUrl, setStreamUrl] = useState(null); + const [isFullOverview, setIsFullOverview] = useState(false); + const [subtitles, setSubtitles] = useState([]); + const [thumbnail, setThumbnail] = useState(null); + const [intro, setIntro] = useState(null); + const [outro, setOutro] = useState(null); + const [episodeId, setEpisodeId] = useState(null); + const [activeEpisodeNum, setActiveEpisodeNum] = useState(null); + const [activeServerId, setActiveServerId] = useState(null); + const [activeServerType, setActiveServerType] = useState(null); + const [activeServerName, setActiveServerName] = useState(null); + const [serverLoading, setServerLoading] = useState(true); + const [nextEpisodeSchedule, setNextEpisodeSchedule] = useState(null); + const isServerFetchInProgress = useRef(false); + const isStreamFetchInProgress = useRef(false); + + useEffect(() => { + setEpisodes(null); + setEpisodeId(null); + setActiveEpisodeNum(null); + setServers(null); + setActiveServerId(null); + setStreamInfo(null); + setStreamUrl(null); + setSubtitles([]); + setThumbnail(null); + setIntro(null); + setOutro(null); + setBuffering(true); + setServerLoading(true); + setError(null); + setAnimeInfo(null); + setSeasons(null); + setTotalEpisodes(null); + setAnimeInfoLoading(true); + isServerFetchInProgress.current = false; + isStreamFetchInProgress.current = false; + }, [animeId]); + + useEffect(() => { + const fetchInitialData = async () => { + try { + setAnimeInfoLoading(true); + const [animeData, episodesData] = await Promise.all([ + getAnimeInfo(animeId, false), + getEpisodes(animeId), + ]); + setAnimeInfo(animeData?.data); + setSeasons(animeData?.seasons); + setEpisodes(episodesData?.episodes); + setTotalEpisodes(episodesData?.totalEpisodes); + const newEpisodeId = + initialEpisodeId || + (episodesData?.episodes?.length > 0 + ? episodesData.episodes[0].id.match(/ep=(\d+)/)?.[1] + : null); + setEpisodeId(newEpisodeId); + } catch (err) { + console.error("Error fetching initial data:", err); + setError(err.message || "An error occurred."); + } finally { + setAnimeInfoLoading(false); + } + }; + fetchInitialData(); + }, [animeId]); + + useEffect(() => { + const fetchNextEpisodeSchedule = async () => { + try { + const data = await getNextEpisodeSchedule(animeId); + setNextEpisodeSchedule(data); + } catch (err) { + console.error("Error fetching next episode schedule:", err); + } + }; + fetchNextEpisodeSchedule(); + }, [animeId]); + + useEffect(() => { + if (!episodes || !episodeId) { + setActiveEpisodeNum(null); + return; + } + const activeEpisode = episodes.find((episode) => { + const match = episode.id.match(/ep=(\d+)/); + return match && match[1] === episodeId; + }); + const newActiveEpisodeNum = activeEpisode ? activeEpisode.episode_no : null; + if (activeEpisodeNum !== newActiveEpisodeNum) { + setActiveEpisodeNum(newActiveEpisodeNum); + } + }, [episodeId, episodes]); + + useEffect(() => { + if (!episodeId || !episodes || isServerFetchInProgress.current) return; + + const fetchServers = async () => { + isServerFetchInProgress.current = true; + setServerLoading(true); + try { + const data = await getServers(animeId, episodeId); + console.log(data); + + const filteredServers = data?.filter( + (server) => + server.serverName === "HD-1" || + server.serverName === "HD-2" || + server.serverName === "HD-3" + ); + if (filteredServers.some((s) => s.type === "sub")) { + filteredServers.push({ + type: "sub", + data_id: "69696969", + server_id: "41", + serverName: "HD-4", + }); + } + if (filteredServers.some((s) => s.type === "dub")) { + filteredServers.push({ + type: "dub", + data_id: "96969696", + server_id: "42", + serverName: "HD-4", + }); + } + const savedServerName = localStorage.getItem("server_name"); + const savedServerType = localStorage.getItem("server_type"); + let initialServer = + data.find( + (s) => + s.serverName === savedServerName && s.type === savedServerType + ) || + data.find((s) => s.serverName === savedServerName) || + data.find((s) => s.type === savedServerType) || + data.find( + (s) => s.serverName === "HD-1" && s.type === savedServerType + ) || + data.find( + (s) => s.serverName === "HD-2" && s.type === savedServerType + ) || + data.find( + (s) => s.serverName === "HD-3" && s.type === savedServerType + ) || + data.find( + (s) => s.serverName === "HD-4" && s.type === savedServerType + ) || + filteredServers[0]; + setServers(filteredServers); + setActiveServerType(initialServer?.type); + setActiveServerName(initialServer?.serverName); + setActiveServerId(initialServer?.data_id); + } catch (error) { + console.error("Error fetching servers:", error); + setError(error.message || "An error occurred."); + } finally { + setServerLoading(false); + isServerFetchInProgress.current = false; + } + }; + fetchServers(); + }, [episodeId, episodes]); + // Fetch stream info only when episodeId, activeServerId, and servers are ready + useEffect(() => { + if ( + !episodeId || + !activeServerId || + !servers || + isServerFetchInProgress.current || + isStreamFetchInProgress.current + ) + return; + if ( + (activeServerName?.toLowerCase() === "hd-1" + || activeServerName?.toLowerCase() === "hd-2"|| activeServerName?.toLowerCase() === "hd-3"|| activeServerName?.toLowerCase() === "hd-4") + && + !serverLoading + ) { + setBuffering(false); + return; + } + const fetchStreamInfo = async () => { + isStreamFetchInProgress.current = true; + setBuffering(true); + try { + const server = servers.find((srv) => srv.data_id === activeServerId); + if (server) { + const data = await getStreamInfo( + animeId, + episodeId, + server.serverName.toLowerCase(), + server.type.toLowerCase() + ); + setStreamInfo(data); + setStreamUrl(data?.streamingLink?.link?.file || null); + setIntro(data?.streamingLink?.intro || null); + setOutro(data?.streamingLink?.outro || null); + const subtitles = + data?.streamingLink?.tracks + ?.filter((track) => track.kind === "captions") + .map(({ file, label }) => ({ file, label })) || []; + setSubtitles(subtitles); + const thumbnailTrack = data?.streamingLink?.tracks?.find( + (track) => track.kind === "thumbnails" && track.file + ); + if (thumbnailTrack) setThumbnail(thumbnailTrack.file); + } else { + setError("No server found with the activeServerId."); + } + } catch (err) { + console.error("Error fetching stream info:", err); + setError(err.message || "An error occurred."); + } finally { + setBuffering(false); + isStreamFetchInProgress.current = false; + } + }; + fetchStreamInfo(); + }, [episodeId, activeServerId, servers]); + + return { + error, + buffering, + serverLoading, + streamInfo, + animeInfo, + episodes, + nextEpisodeSchedule, + animeInfoLoading, + totalEpisodes, + seasons, + servers, + streamUrl, + isFullOverview, + setIsFullOverview, + subtitles, + thumbnail, + intro, + outro, + episodeId, + setEpisodeId, + activeEpisodeNum, + setActiveEpisodeNum, + activeServerId, + setActiveServerId, + activeServerType, + setActiveServerType, + activeServerName, + setActiveServerName, + }; +}; diff --git a/src/hooks/useWatchControl.js b/src/hooks/useWatchControl.js new file mode 100644 index 0000000..6ae19f9 --- /dev/null +++ b/src/hooks/useWatchControl.js @@ -0,0 +1,34 @@ +import { useState, useEffect } from "react"; + +export default function useWatchControl() { + const [autoPlay, setAutoPlay] = useState( + () => JSON.parse(localStorage.getItem("autoPlay")) || false + ); + const [autoSkipIntro, setAutoSkipIntro] = useState( + () => JSON.parse(localStorage.getItem("autoSkipIntro")) || false + ); + const [autoNext, setAutoNext] = useState( + () => JSON.parse(localStorage.getItem("autoNext")) || false + ); + + useEffect(() => { + localStorage.setItem("autoPlay", JSON.stringify(autoPlay)); + }, [autoPlay]); + + useEffect(() => { + localStorage.setItem("autoSkipIntro", JSON.stringify(autoSkipIntro)); + }, [autoSkipIntro]); + + useEffect(() => { + localStorage.setItem("autoNext", JSON.stringify(autoNext)); + }, [autoNext]); + + return { + autoPlay, + setAutoPlay, + autoSkipIntro, + setAutoSkipIntro, + autoNext, + setAutoNext, + }; +} diff --git a/src/index.css b/src/index.css new file mode 100644 index 0000000..765f332 --- /dev/null +++ b/src/index.css @@ -0,0 +1,126 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #201f31; + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} +body { + overflow-y: scroll; +} +.scrollbar-visible { + scrollbar-width: auto; + scrollbar-color: #888 #333; +} +.scrollbar-visible::-webkit-scrollbar { + width: 20px; +} + +.scrollbar-visible::-webkit-scrollbar-thumb { + background-color: #888; +} + +.scrollbar-visible::-webkit-scrollbar-track { + background: black; +} +.scrollbar-hide { + -ms-overflow-style: none; + scrollbar-width: none; +} +::-webkit-scrollbar { + width: 16px; +} + +::-webkit-scrollbar-track { + background: #23222c; +} + +::-webkit-scrollbar-thumb { + background: #65646a; +} +.scrollbar-hide::-webkit-scrollbar { + display: none; +} + +.is-visible { + opacity: 1; +} +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 240 10% 3.9%; + --card: 0 0% 100%; + --card-foreground: 240 10% 3.9%; + --popover: 0 0% 100%; + --popover-foreground: 240 10% 3.9%; + --primary: 240 5.9% 10%; + --primary-foreground: 0 0% 98%; + --secondary: 240 4.8% 95.9%; + --secondary-foreground: 240 5.9% 10%; + --muted: 240 4.8% 95.9%; + --muted-foreground: 240 3.8% 46.1%; + --accent: 240 4.8% 95.9%; + --accent-foreground: 240 5.9% 10%; + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 0 0% 98%; + --border: 240 5.9% 90%; + --input: 240 5.9% 90%; + --ring: 240 10% 3.9%; + --chart-1: 12 76% 61%; + --chart-2: 173 58% 39%; + --chart-3: 197 37% 24%; + --chart-4: 43 74% 66%; + --chart-5: 27 87% 67%; + --radius: 0.5rem; + } + .dark { + --background: 240 10% 3.9%; + --foreground: 0 0% 98%; + --card: 240 10% 3.9%; + --card-foreground: 0 0% 98%; + --popover: 240 10% 3.9%; + --popover-foreground: 0 0% 98%; + --primary: 0 0% 98%; + --primary-foreground: 240 5.9% 10%; + --secondary: 240 3.7% 15.9%; + --secondary-foreground: 0 0% 98%; + --muted: 240 3.7% 15.9%; + --muted-foreground: 240 5% 64.9%; + --accent: 240 3.7% 15.9%; + --accent-foreground: 0 0% 98%; + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 0 0% 98%; + --border: 240 3.7% 15.9%; + --input: 240 3.7% 15.9%; + --ring: 240 4.9% 83.9%; + --chart-1: 220 70% 50%; + --chart-2: 160 60% 45%; + --chart-3: 30 80% 55%; + --chart-4: 280 65% 60%; + --chart-5: 340 75% 55%; + } +} +.dot { + width: 4px; + height: 4px; + display: flex; + justify-content: center; + align-items: center; + border-radius: 50%; + background: rgba(255, 255, 255, 0.3); + display: inline-block; +} diff --git a/src/main.jsx b/src/main.jsx new file mode 100644 index 0000000..e5bd98c --- /dev/null +++ b/src/main.jsx @@ -0,0 +1,13 @@ +import { LanguageProvider } from './context/LanguageContext'; +import { createRoot } from 'react-dom/client'; +import { BrowserRouter } from 'react-router-dom'; +import App from './App.jsx'; +import './index.css'; + +createRoot(document.getElementById('root')).render( + + + + + +); diff --git a/src/pages/Home/Home.jsx b/src/pages/Home/Home.jsx new file mode 100644 index 0000000..789fb6a --- /dev/null +++ b/src/pages/Home/Home.jsx @@ -0,0 +1,82 @@ +import website_name from "@/src/config/website.js"; +import Spotlight from "@/src/components/spotlight/Spotlight.jsx"; +import Trending from "@/src/components/trending/Trending.jsx"; +import Cart from "@/src/components/cart/Cart.jsx"; +import CategoryCard from "@/src/components/categorycard/CategoryCard.jsx"; +import Genre from "@/src/components/genres/Genre.jsx"; +import Topten from "@/src/components/topten/Topten.jsx"; +import Loader from "@/src/components/Loader/Loader.jsx"; +import Error from "@/src/components/error/Error.jsx"; +import { useHomeInfo } from "@/src/context/HomeInfoContext.jsx"; +import Schedule from "@/src/components/schedule/Schedule"; +import ContinueWatching from "@/src/components/continue/ContinueWatching"; + +function Home() { + const { homeInfo, homeInfoLoading, error } = useHomeInfo(); + if (homeInfoLoading) return ; + if (error) return ; + if (!homeInfo) return ; + return ( + <> +
+ + + +
+ + + + +
+
+
+ + + + +
+
+ + +
+
+
+ + ); +} + +export default Home; diff --git a/src/pages/a2z/AtoZ.jsx b/src/pages/a2z/AtoZ.jsx new file mode 100644 index 0000000..f2717e6 --- /dev/null +++ b/src/pages/a2z/AtoZ.jsx @@ -0,0 +1,118 @@ +import { useEffect, useState } from "react"; +import { useSearchParams, Link } from "react-router-dom"; +import getCategoryInfo from "@/src/utils/getCategoryInfo.utils"; +import CategoryCard from "@/src/components/categorycard/CategoryCard"; +import Loader from "@/src/components/Loader/Loader"; +import Error from "@/src/components/error/Error"; +import PageSlider from "@/src/components/pageslider/PageSlider"; + +function AtoZ({ path }) { + const [searchParams, setSearchParams] = useSearchParams(); + const [categoryInfo, setCategoryInfo] = useState(null); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + const [totalPages, setTotalPages] = useState(0); + const page = parseInt(searchParams.get("page")) || 1; + const currentLetter = path.split("/").pop() || ""; + + useEffect(() => { + const fetchAtoZInfo = async () => { + setLoading(true); + try { + const data = await getCategoryInfo(path, page); + setCategoryInfo(data.data); + setTotalPages(data.totalPages); + setLoading(false); + } catch (err) { + setError(err); + setLoading(false); + console.error("Error fetching category info:", err); + } + }; + fetchAtoZInfo(); + window.scrollTo(0, 0); + }, [path, page]); + + if (loading) return ; + if (error) { + return ; + } + if (!categoryInfo) { + return null; + } + const handlePageChange = (newPage) => { + setSearchParams({ page: newPage }); + }; + + return ( +
+
    +
  • + + Home + +
    +
  • +
  • A-Z List
  • +
+
+

+ Sort By Letters +

+
+ {[ + "All", + "#", + "0-9", + ...Array.from({ length: 26 }, (_, i) => + String.fromCharCode(65 + i) + ), + ].map((item, index) => { + const linkPath = + item.toLowerCase() === "all" + ? "" + : item === "#" + ? "other" + : item; + const isActive = + (currentLetter === "az-list" && item.toLowerCase() === "all") || + (currentLetter === "other" && item === "#") || + currentLetter === item.toLowerCase(); + + return ( + + {item} + + ); + })} +
+
+
+
+ {categoryInfo && categoryInfo.length > 0 && ( + + )} + +
+
+
+ ); +} + +export default AtoZ; diff --git a/src/pages/animeInfo/AnimeInfo.jsx b/src/pages/animeInfo/AnimeInfo.jsx new file mode 100644 index 0000000..60b1e4f --- /dev/null +++ b/src/pages/animeInfo/AnimeInfo.jsx @@ -0,0 +1,416 @@ +import getAnimeInfo from "@/src/utils/getAnimeInfo.utils"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { + faPlay, + faClosedCaptioning, + faMicrophone, +} from "@fortawesome/free-solid-svg-icons"; +import { useEffect, useState } from "react"; +import { Link, useNavigate, useParams } from "react-router-dom"; +import website_name from "@/src/config/website"; +import CategoryCard from "@/src/components/categorycard/CategoryCard"; +import Sidecard from "@/src/components/sidecard/Sidecard"; +import Loader from "@/src/components/Loader/Loader"; +import Error from "@/src/components/error/Error"; +import { useLanguage } from "@/src/context/LanguageContext"; +import { useHomeInfo } from "@/src/context/HomeInfoContext"; +import Voiceactor from "@/src/components/voiceactor/Voiceactor"; + +function InfoItem({ label, value, isProducer = true }) { + return ( + value && ( +
+ {`${label}: `} + + {Array.isArray(value) ? ( + value.map((item, index) => + isProducer ? ( + :;,.?/\\|{}[\]`~*_]/g, "") + .split(" ") + .join("-") + .replace(/-+/g, "-")}`} + key={index} + className="cursor-pointer hover:text-[#ffbade]" + > + {item} + {index < value.length - 1 && ", "} + + ) : ( + + {item} + + ) + ) + ) : isProducer ? ( + :;,.?/\\|{}[\]`~*_]/g, "") + .split(" ") + .join("-") + .replace(/-+/g, "-")}`} + className="cursor-pointer hover:text-[#ffbade]" + > + {value} + + ) : ( + {value} + )} + +
+ ) + ); +} + +function Tag({ bgColor, index, icon, text }) { + return ( +
+ {icon && } +

{text}

+
+ ); +} + +function AnimeInfo({ random = false }) { + const { language } = useLanguage(); + const { id: paramId } = useParams(); + const id = random ? null : paramId; + const [isFull, setIsFull] = useState(false); + const [animeInfo, setAnimeInfo] = useState(null); + const [seasons, setSeasons] = useState(null); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + const { homeInfo } = useHomeInfo(); + const { id: currentId } = useParams(); + const navigate = useNavigate(); + useEffect(() => { + if (id === "404-not-found-page") { + console.log("404 got!"); + return null; + } else { + const fetchAnimeInfo = async () => { + setLoading(true); + try { + const data = await getAnimeInfo(id, random); + setSeasons(data?.seasons); + setAnimeInfo(data.data); + } catch (err) { + console.error("Error fetching anime info:", err); + setError(err); + } finally { + setLoading(false); + } + }; + fetchAnimeInfo(); + window.scrollTo({ top: 0, behavior: "smooth" }); + } + }, [id, random]); + useEffect(() => { + if (animeInfo && location.pathname === `/${animeInfo.id}`) { + document.title = `Watch ${animeInfo.title} English Sub/Dub online Free on ${website_name}`; + } + return () => { + document.title = `${website_name} | Free anime streaming platform`; + }; + }, [animeInfo]); + if (loading) return ; + if (error) { + return ; + } + if (!animeInfo) { + navigate("/404-not-found-page"); + return undefined; + } + const { title, japanese_title, poster, animeInfo: info } = animeInfo; + const tags = [ + { + condition: info.tvInfo?.rating, + bgColor: "#ffffff", + text: info.tvInfo.rating, + }, + { + condition: info.tvInfo?.quality, + bgColor: "#FFBADE", + text: info.tvInfo.quality, + }, + { + condition: info.tvInfo?.sub, + icon: faClosedCaptioning, + bgColor: "#B0E3AF", + text: info.tvInfo.sub, + }, + { + condition: info.tvInfo?.dub, + icon: faMicrophone, + bgColor: "#B9E7FF", + text: info.tvInfo.dub, + }, + ]; + + return ( + <> +
+ {`${title} +
+
+ {`${title} + {animeInfo.adultContent && ( +
+ 18+ +
+ )} +
+
+
    + {[ + ["Home", "home"], + [info.tvInfo?.showType, info.tvInfo?.showType], + ].map(([text, link], index) => ( +
  • + + {text} + +
    +
  • + ))} +

    + {language === "EN" ? title : japanese_title} +

    +
+

+ {language === "EN" ? title : japanese_title} +

+
+ {tags.map( + ({ condition, icon, bgColor, text }, index) => + condition && ( + + ) + )} +
+ {[info.tvInfo?.showType, info.tvInfo?.duration].map( + (item, index) => + item && ( +
+
+

{item}

+
+ ) + )} +
+
+ {animeInfo?.animeInfo?.Status?.toLowerCase() !== "not-yet-aired" ? ( + + +

Watch Now

+ + ) : ( +
+

Not released

+
+ )} + {info?.Overview && ( +
+ {info.Overview.length > 270 ? ( + <> + {isFull + ? info.Overview + : `${info.Overview.slice(0, 270)}...`} + setIsFull(!isFull)} + > + {isFull ? "- Less" : "+ More"} + + + ) : ( + info.Overview + )} +
+ )} +

+ {`${website_name} is the best site to watch `} + {title} + {` SUB online, or you can even watch `} + {title} + {` DUB in HD quality.`} +

+
+ Share Anime +
+

+ Share Anime +

+

to your friends

+
+
+
+
+
+
+ {info?.Overview && ( +
+

Overview:

+
+

{info.Overview}

+
+
+ )} + {[ + { label: "Japanese", value: info?.Japanese }, + { label: "Synonyms", value: info?.Synonyms }, + { label: "Aired", value: info?.Aired }, + { label: "Premiered", value: info?.Premiered }, + { label: "Duration", value: info?.Duration }, + { label: "Status", value: info?.Status }, + { label: "MAL Score", value: info?.["MAL Score"] }, + ].map(({ label, value }, index) => ( + + ))} + {info?.Genres && ( +
+

Genres:

+
+ {info.Genres.map((genre, index) => ( + + {genre} + + ))} +
+
+ )} + {[ + { label: "Studios", value: info?.Studios }, + { label: "Producers", value: info?.Producers }, + ].map(({ label, value }, index) => ( + + ))} +

+ {`${website_name} is the best site to watch `} + {title} + {` SUB online, or you can even watch `} + {title} + {` DUB in HD quality.`} +

+
+
+
+
+
+ {seasons?.length > 0 && ( +
+

+ More Seasons +

+
+ {seasons.map((season, index) => ( + +

+ {season.season} +

+
+ + + ))} +
+
+ )} + {animeInfo?.charactersVoiceActors.length > 0 && ( + + )} + {animeInfo.recommended_data.length > 0 && ( + + )} +
+
+ {animeInfo.related_data.length > 0 && ( + + )} + {homeInfo && homeInfo.most_popular && ( + + )} +
+
+ + ); +} + +export default AnimeInfo; diff --git a/src/pages/category/Category.jsx b/src/pages/category/Category.jsx new file mode 100644 index 0000000..326c61e --- /dev/null +++ b/src/pages/category/Category.jsx @@ -0,0 +1,111 @@ +import { useEffect, useState } from "react"; +import { useSearchParams } from "react-router-dom"; +import getCategoryInfo from "@/src/utils/getCategoryInfo.utils"; +import CategoryCard from "@/src/components/categorycard/CategoryCard"; +import Genre from "@/src/components/genres/Genre"; +import Topten from "@/src/components/topten/Topten"; +import Loader from "@/src/components/Loader/Loader"; +import Error from "@/src/components/error/Error"; +import { useNavigate } from "react-router-dom"; +import { useHomeInfo } from "@/src/context/HomeInfoContext"; +import PageSlider from "@/src/components/pageslider/PageSlider"; +import SidecardLoader from "@/src/components/Loader/Sidecard.loader"; + +function Category({ path, label }) { + const [searchParams, setSearchParams] = useSearchParams(); + const [categoryInfo, setCategoryInfo] = useState(null); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + const [totalPages, setTotalPages] = useState(0); + const page = parseInt(searchParams.get("page")) || 1; + const { homeInfo, homeInfoLoading } = useHomeInfo(); + const navigate = useNavigate(); + useEffect(() => { + const fetchCategoryInfo = async () => { + setLoading(true); + try { + const data = await getCategoryInfo(path, page); + setCategoryInfo(data.data); + setTotalPages(data.totalPages); + setLoading(false); + } catch (err) { + setError(err); + console.error("Error fetching category info:", err); + } + }; + fetchCategoryInfo(); + window.scrollTo(0, 0); + }, [path, page]); + if (loading) return ; + if (error) { + navigate("/error-page"); + return ; + } + if (!categoryInfo) { + navigate("/404-not-found-page"); + return null; + } + const handlePageChange = (newPage) => { + setSearchParams({ page: newPage }); + }; + + return ( +
+
+ Share Anime +
+

Share Anime

+

to your friends

+
+
+ {categoryInfo ? ( +
+ {page > totalPages ? ( +

+ You came a long way, go back
+ nothing is here +

+ ) : ( +
+ {categoryInfo && categoryInfo.length > 0 && ( + + )} + +
+ )} +
+ {homeInfoLoading ? ( + + ) : ( + <> + {homeInfo && homeInfo.topten && ( + + )} + {homeInfo?.genres && } + + )} +
+
+ ) : ( + + )} +
+ ); +} + +export default Category; diff --git a/src/pages/search/Search.jsx b/src/pages/search/Search.jsx new file mode 100644 index 0000000..f52033c --- /dev/null +++ b/src/pages/search/Search.jsx @@ -0,0 +1,74 @@ +import CategoryCard from '@/src/components/categorycard/CategoryCard'; +import Genre from '@/src/components/genres/Genre'; +import CategoryCardLoader from '@/src/components/Loader/CategoryCard.loader'; +import SidecardLoader from '@/src/components/Loader/Sidecard.loader'; +import PageSlider from '@/src/components/pageslider/PageSlider'; +import Sidecard from '@/src/components/sidecard/Sidecard'; +import { useHomeInfo } from '@/src/context/HomeInfoContext'; +import getSearch from '@/src/utils/getSearch.utils'; +import { useEffect, useState } from 'react'; +import { useSearchParams } from 'react-router-dom'; + +function Search() { + const { homeInfo, homeInfoLoading } = useHomeInfo(); + const [searchParams, setSearchParams] = useSearchParams(); + const keyword = searchParams.get("keyword"); + const page = parseInt(searchParams.get("page"), 10) || 1; + const [searchData, setSearchData] = useState(null); + const [totalPages, setTotalPages] = useState(0); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + + useEffect(() => { + const fetchSearch = async () => { + setLoading(true); + try { + const data = await getSearch(keyword,page); + setSearchData(data.data); + setTotalPages(data.totalPage); + setLoading(false); + } catch (err) { + console.error("Error fetching anime info:", err); + setError(err); + setLoading(false); + } + }; + fetchSearch(); + window.scrollTo({ top: 0, behavior: 'smooth' }); + }, [keyword, page]); + + const handlePageChange = (newPage) => { + setSearchParams({ keyword, page: newPage }); + }; + return ( +
+ {loading ? ( + + ) : page > totalPages ?

You came a long way, go back
nothing is here

: searchData && searchData.length > 0 ? ( +
+ + +
+ ) : error ?

Couldn't get search result please try again

: ( +

{`Search results for: ${keyword}`}

+ )} +
+ {homeInfoLoading ? ( + + ) : ( + <> + {homeInfo?.most_popular && } + {homeInfo?.genres && } + + )} +
+
+ ); +} + +export default Search; diff --git a/src/pages/watch/Watch.jsx b/src/pages/watch/Watch.jsx new file mode 100644 index 0000000..e9ee8c0 --- /dev/null +++ b/src/pages/watch/Watch.jsx @@ -0,0 +1,541 @@ +/* eslint-disable react/prop-types */ +import { useEffect, useRef, useState } from "react"; +import { useLocation, useParams, Link, useNavigate } from "react-router-dom"; +import { useLanguage } from "@/src/context/LanguageContext"; +import { useHomeInfo } from "@/src/context/HomeInfoContext"; +import { useWatch } from "@/src/hooks/useWatch"; +import BouncingLoader from "@/src/components/ui/bouncingloader/Bouncingloader"; +import IframePlayer from "@/src/components/player/IframePlayer"; +import Episodelist from "@/src/components/episodelist/Episodelist"; +import website_name from "@/src/config/website"; +import Sidecard from "@/src/components/sidecard/Sidecard"; +import CategoryCard from "@/src/components/categorycard/CategoryCard"; +import { + faClosedCaptioning, + faMicrophone, +} from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import Servers from "@/src/components/servers/Servers"; +import CategoryCardLoader from "@/src/components/Loader/CategoryCard.loader"; +import { Skeleton } from "@/src/components/ui/Skeleton/Skeleton"; +import SidecardLoader from "@/src/components/Loader/Sidecard.loader"; +import Voiceactor from "@/src/components/voiceactor/Voiceactor"; +import Watchcontrols from "@/src/components/watchcontrols/Watchcontrols"; +import useWatchControl from "@/src/hooks/useWatchControl"; +import Player from "@/src/components/player/Player"; + +export default function Watch() { + const location = useLocation(); + const navigate = useNavigate(); + const { id: animeId } = useParams(); + const queryParams = new URLSearchParams(location.search); + let initialEpisodeId = queryParams.get("ep"); + const [tags, setTags] = useState([]); + const { language } = useLanguage(); + const { homeInfo } = useHomeInfo(); + const isFirstSet = useRef(true); + const [showNextEpisodeSchedule, setShowNextEpisodeSchedule] = useState(true); + const { + // error, + buffering, + streamInfo, + streamUrl, + animeInfo, + episodes, + nextEpisodeSchedule, + animeInfoLoading, + totalEpisodes, + isFullOverview, + intro, + outro, + subtitles, + thumbnail, + setIsFullOverview, + activeEpisodeNum, + seasons, + episodeId, + setEpisodeId, + activeServerId, + setActiveServerId, + servers, + serverLoading, + activeServerType, + setActiveServerType, + activeServerName, + setActiveServerName + } = useWatch(animeId, initialEpisodeId); + const { + autoPlay, + setAutoPlay, + autoSkipIntro, + setAutoSkipIntro, + autoNext, + setAutoNext, + } = useWatchControl(); + + useEffect(() => { + if (!episodes || episodes.length === 0) return; + + const isValidEpisode = episodes.some(ep => { + const epNumber = ep.id.split('ep=')[1]; + return epNumber === episodeId; + }); + + // If missing or invalid episodeId, fallback to first + if (!episodeId || !isValidEpisode) { + const fallbackId = episodes[0].id.match(/ep=(\d+)/)?.[1]; + if (fallbackId && fallbackId !== episodeId) { + setEpisodeId(fallbackId); + } + return; + } + + const newUrl = `/watch/${animeId}?ep=${episodeId}`; + if (isFirstSet.current) { + navigate(newUrl, { replace: true }); + isFirstSet.current = false; + } else { + navigate(newUrl); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [episodeId, animeId, navigate, episodes]); + + // Update document title + useEffect(() => { + if (animeInfo) { + document.title = `Watch ${animeInfo.title} English Sub/Dub online Free on ${website_name}`; + } + return () => { + document.title = `${website_name} | Free anime streaming platform`; + }; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [animeId]); + + // Redirect if no episodes + useEffect(() => { + if (totalEpisodes !== null && totalEpisodes === 0) { + navigate(`/${animeId}`); + } + }, [streamInfo, episodeId, animeId, totalEpisodes, navigate]); + + useEffect(() => { + const adjustHeight = () => { + if (window.innerWidth > 1200) { + const player = document.querySelector(".player"); + const episodes = document.querySelector(".episodes"); + if (player && episodes) { + episodes.style.height = `${player.clientHeight}px`; + } + } else { + const episodes = document.querySelector(".episodes"); + if (episodes) { + episodes.style.height = "auto"; + } + } + }; + adjustHeight(); + window.addEventListener("resize", adjustHeight); + return () => { + window.removeEventListener("resize", adjustHeight); + }; + }); + + function Tag({ bgColor, index, icon, text }) { + return ( +
+ {icon && } +

{text}

+
+ ); + } + + useEffect(() => { + setTags([ + { + condition: animeInfo?.animeInfo?.tvInfo?.rating, + bgColor: "#ffffff", + text: animeInfo?.animeInfo?.tvInfo?.rating, + }, + { + condition: animeInfo?.animeInfo?.tvInfo?.quality, + bgColor: "#FFBADE", + text: animeInfo?.animeInfo?.tvInfo?.quality, + }, + { + condition: animeInfo?.animeInfo?.tvInfo?.sub, + icon: faClosedCaptioning, + bgColor: "#B0E3AF", + text: animeInfo?.animeInfo?.tvInfo?.sub, + }, + { + condition: animeInfo?.animeInfo?.tvInfo?.dub, + icon: faMicrophone, + bgColor: "#B9E7FF", + text: animeInfo?.animeInfo?.tvInfo?.dub, + }, + ]); + }, [animeId, animeInfo]); + return ( +
+
+ {`${animeInfo?.title} +
+
+ {animeInfo && ( +
    + {[ + ["Home", "home"], + [animeInfo?.showType, animeInfo?.showType], + ].map(([text, link], index) => ( +
  • + + {text} + +
    +
  • + ))} +

    + Watching{" "} + {language === "EN" + ? animeInfo?.title + : animeInfo?.japanese_title} +

    +
+ )} +
+
+ {!episodes ? ( + + ) : ( + setEpisodeId(id)} + totalEpisodes={totalEpisodes} + /> + )} +
+
+
+ {!buffering ? (( activeServerName.toLowerCase()==="hd-1" || activeServerName.toLowerCase()==="hd-2" || activeServerName.toLowerCase()==="hd-3" || activeServerName.toLowerCase()==="hd-4") ? + setEpisodeId(id)} + autoNext={autoNext} + />: setEpisodeId(id)} + animeInfo={animeInfo} + episodeNum={activeEpisodeNum} + streamInfo={streamInfo} + /> + ) : ( +
+ +
+ )} +

+ {!buffering && !activeServerType ? ( + servers ? ( + <> + Probably this server is down, try other servers +
+ Either reload or try again after sometime + + ) : ( + <> + Probably streaming server is down +
+ Either reload or try again after sometime + + ) + ) : null} +

+
+ + {!buffering && ( + setEpisodeId(id)} + /> + )} + + {seasons?.length > 0 && ( +
+

+ Watch more seasons of this anime +

+
+ {seasons.map((season, index) => ( + +

+ {season.season} +

+
+ + + ))} +
+
+ )} + {nextEpisodeSchedule?.nextEpisodeSchedule && + showNextEpisodeSchedule && ( +
+
+
+ 🚀 + {" Estimated the next episode will come at "} + + {new Date( + new Date( + nextEpisodeSchedule.nextEpisodeSchedule + ).getTime() - + new Date().getTimezoneOffset() * 60000 + ).toLocaleDateString("en-GB", { + day: "2-digit", + month: "2-digit", + year: "numeric", + hour: "2-digit", + minute: "2-digit", + second: "2-digit", + hour12: true, + })} + +
+ setShowNextEpisodeSchedule(false)} + > + × + +
+
+ )} +
+
+
+ {animeInfo && animeInfo?.poster ? ( + + ) : ( + + )} +
+ {animeInfo && animeInfo?.title ? ( +

+ {language ? animeInfo?.title : animeInfo?.japanese_title} +

+ ) : ( + + )} +
+ {animeInfo ? ( + tags.map( + ({ condition, icon, bgColor, text }, index) => + condition && ( + + ) + ) + ) : ( + + )} +
+ {[ + animeInfo?.animeInfo?.tvInfo?.showType, + animeInfo?.animeInfo?.tvInfo?.duration, + ].map( + (item, index) => + item && ( +
+
+

{item}

+
+ ) + )} +
+
+ {animeInfo ? ( + animeInfo?.animeInfo?.Overview && ( +
+
+

+ {animeInfo?.animeInfo?.Overview.length > 270 ? ( + <> + {isFullOverview + ? animeInfo?.animeInfo?.Overview + : `${animeInfo?.animeInfo?.Overview.slice( + 0, + 270 + )}...`} + setIsFullOverview(!isFullOverview)} + > + {isFullOverview ? "- Less" : "+ More"} + + + ) : ( + animeInfo?.animeInfo?.Overview + )} +

+
+
+ ) + ) : ( +
+ + + + +
+ )} +

+ {`${website_name} is the best site to watch `} + + {language ? animeInfo?.title : animeInfo?.japanese_title} + + {` SUB online, or you can even watch `} + + {language ? animeInfo?.title : animeInfo?.japanese_title} + + {` DUB in HD quality.`} +

+ + View detail + +
+
+
+
+
+ Share Anime +
+

Share Anime

+

to your friends

+
+
+
+
+ {animeInfo?.charactersVoiceActors.length > 0 && ( + + )} + {animeInfo?.recommended_data.length > 0 ? ( + + ) : ( + + )} +
+
+ {animeInfo && animeInfo.related_data ? ( + + ) : ( + + )} + {homeInfo && homeInfo.most_popular && ( + + )} +
+
+
+ ); +} diff --git a/src/utils/category.utils.js b/src/utils/category.utils.js new file mode 100644 index 0000000..dfc5d69 --- /dev/null +++ b/src/utils/category.utils.js @@ -0,0 +1,89 @@ +export const categoryRoutes = [ + "genre/action", + "genre/adventure", + "genre/cars", + "genre/comedy", + "genre/dementia", + "genre/demons", + "genre/drama", + "genre/ecchi", + "genre/fantasy", + "genre/game", + "genre/harem", + "genre/historical", + "genre/horror", + "genre/isekai", + "genre/josei", + "genre/kids", + "genre/magic", + "genre/martial-arts", + "genre/mecha", + "genre/military", + "genre/music", + "genre/mystery", + "genre/parody", + "genre/police", + "genre/psychological", + "genre/romance", + "genre/samurai", + "genre/school", + "genre/sci-fi", + "genre/seinen", + "genre/shoujo", + "genre/shoujo-ai", + "genre/shounen", + "genre/shounen-ai", + "genre/slice-of-life", + "genre/space", + "genre/sports", + "genre/super-power", + "genre/supernatural", + "genre/thriller", + "genre/vampire", + "top-airing", + "most-popular", + "most-favorite", + "completed", + "recently-updated", + "recently-added", + "top-upcoming", + "subbed-anime", + "dubbed-anime", + "movie", + "special", + "ova", + "ona", + "tv", +]; + +export const azRoute = [ + "az-list", + "az-list/other", + "az-list/0-9", + "az-list/a", + "az-list/b", + "az-list/c", + "az-list/d", + "az-list/e", + "az-list/f", + "az-list/g", + "az-list/h", + "az-list/i", + "az-list/j", + "az-list/k", + "az-list/l", + "az-list/m", + "az-list/n", + "az-list/o", + "az-list/p", + "az-list/q", + "az-list/r", + "az-list/s", + "az-list/t", + "az-list/u", + "az-list/v", + "az-list/w", + "az-list/x", + "az-list/y", + "az-list/z", +]; diff --git a/src/utils/getAnimeInfo.utils.js b/src/utils/getAnimeInfo.utils.js new file mode 100644 index 0000000..8736365 --- /dev/null +++ b/src/utils/getAnimeInfo.utils.js @@ -0,0 +1,18 @@ +import axios from "axios"; + +export default async function fetchAnimeInfo(id, random = false) { + const api_url = import.meta.env.VITE_API_URL; + try { + if (random) { + const id = await axios.get(`${api_url}/random/id`); + const response = await axios.get(`${api_url}/info?id=${id.data.results}`); + return response.data.results; + } else { + const response = await axios.get(`${api_url}/info?id=${id}`); + return response.data.results; + } + } catch (error) { + console.error("Error fetching anime info:", error); + return error; + } +} diff --git a/src/utils/getCategoryInfo.utils.js b/src/utils/getCategoryInfo.utils.js new file mode 100644 index 0000000..409631e --- /dev/null +++ b/src/utils/getCategoryInfo.utils.js @@ -0,0 +1,14 @@ +import axios from "axios"; + +const getCategoryInfo = async (path,page) => { + const api_url = import.meta.env.VITE_API_URL; + try { + const response = await axios.get(`${api_url}/${path}?page=${page}`); + return response.data.results; + } catch (err) { + console.error("Error fetching genre info:", err); + return err; + } +}; + +export default getCategoryInfo; diff --git a/src/utils/getEpisodes.utils.js b/src/utils/getEpisodes.utils.js new file mode 100644 index 0000000..d98c5f6 --- /dev/null +++ b/src/utils/getEpisodes.utils.js @@ -0,0 +1,12 @@ +import axios from "axios"; + +export default async function getEpisodes(id) { + const api_url = import.meta.env.VITE_API_URL; + try { + const response = await axios.get(`${api_url}/episodes/${id}`); + return response.data.results; + } catch (error) { + console.error("Error fetching anime info:", error); + return error; + } +} diff --git a/src/utils/getHomeInfo.utils.js b/src/utils/getHomeInfo.utils.js new file mode 100644 index 0000000..655182b --- /dev/null +++ b/src/utils/getHomeInfo.utils.js @@ -0,0 +1,58 @@ +import axios from "axios"; + +const CACHE_KEY = "homeInfoCache"; +const CACHE_DURATION = 24 * 60 * 60 * 1000; + +export default async function getHomeInfo() { + const api_url = import.meta.env.VITE_API_URL; + + const currentTime = Date.now(); + const cachedData = JSON.parse(localStorage.getItem(CACHE_KEY)); + + if (cachedData && currentTime - cachedData.timestamp < CACHE_DURATION) { + return cachedData.data; + } + const response = await axios.get(`${api_url}`); + if ( + !response.data.results || + Object.keys(response.data.results).length === 0 + ) { + return null; + } + const { + spotlights, + trending, + topTen: topten, + today: todaySchedule, + topAiring: top_airing, + mostPopular: most_popular, + mostFavorite: most_favorite, + latestCompleted: latest_completed, + latestEpisode: latest_episode, + topUpcoming: top_upcoming, + recentlyAdded: recently_added, + genres, + } = response.data.results; + + const dataToCache = { + data: { + spotlights, + trending, + topten, + todaySchedule, + top_airing, + most_popular, + most_favorite, + latest_completed, + latest_episode, + top_upcoming, + recently_added, + genres, + }, + timestamp: currentTime, + }; + + localStorage.setItem(CACHE_KEY, JSON.stringify(dataToCache)); + + return dataToCache.data; +} diff --git a/src/utils/getNextEpisodeSchedule.utils.js b/src/utils/getNextEpisodeSchedule.utils.js new file mode 100644 index 0000000..e01cb5b --- /dev/null +++ b/src/utils/getNextEpisodeSchedule.utils.js @@ -0,0 +1,14 @@ +import axios from "axios"; + +const getNextEpisodeSchedule = async (id) => { + const api_url = import.meta.env.VITE_API_URL; + try { + const response = await axios.get(`${api_url}/schedule/${id}`); + return response.data.results; + } catch (err) { + console.error("Error fetching next episode schedule:", err); + return err; + } +}; + +export default getNextEpisodeSchedule; diff --git a/src/utils/getProducer.utils.js b/src/utils/getProducer.utils.js new file mode 100644 index 0000000..8f4e5bc --- /dev/null +++ b/src/utils/getProducer.utils.js @@ -0,0 +1,14 @@ +import axios from "axios"; + +const getProducer = async (producer, page) => { + const api_url = import.meta.env.VITE_API_URL; + try { + const response = await axios.get(`${api_url}/producer/${producer}?page=${page}`); + return response.data.results; + } catch (err) { + console.error("Error fetching genre info:", err); + return err; + } +}; + +export default getProducer; diff --git a/src/utils/getQtip.utils.js b/src/utils/getQtip.utils.js new file mode 100644 index 0000000..19c8026 --- /dev/null +++ b/src/utils/getQtip.utils.js @@ -0,0 +1,18 @@ +import axios from "axios"; + +const getQtip = async (id) => { + try { + let workerUrls = import.meta.env.VITE_WORKER_URL?.split(","); + let baseUrl = workerUrls?.length + ? workerUrls[Math.floor(Math.random() * workerUrls.length)] + : import.meta.env.VITE_API_URL; + if (!baseUrl) throw new Error("No API endpoint defined."); + const response = await axios.get(`${baseUrl}/qtip/${id.split("-").pop()}`); + return response.data.results; + } catch (err) { + console.error("Error fetching genre info:", err); + return null; + } +}; + +export default getQtip; diff --git a/src/utils/getScheduleInfo.utils.js b/src/utils/getScheduleInfo.utils.js new file mode 100644 index 0000000..1095c23 --- /dev/null +++ b/src/utils/getScheduleInfo.utils.js @@ -0,0 +1,12 @@ +import axios from "axios"; + +export default async function getSchedInfo(date) { + try { + const api_url = import.meta.env.VITE_API_URL; + const response = await axios.get(`${api_url}/schedule?date=${date}`); + return response.data.results; + } catch (error) { + console.error(error); + return error; + } +} diff --git a/src/utils/getSearch.utils.js b/src/utils/getSearch.utils.js new file mode 100644 index 0000000..48aafb9 --- /dev/null +++ b/src/utils/getSearch.utils.js @@ -0,0 +1,17 @@ +import axios from "axios"; + +const getSearch = async (keyword, page) => { + const api_url = import.meta.env.VITE_API_URL; + if (!page) page = 1; + try { + const response = await axios.get( + `${api_url}/search?keyword=${keyword}&page=${page}` + ); + return response.data.results; + } catch (err) { + console.error("Error fetching genre info:", err); + return err; + } +}; + +export default getSearch; diff --git a/src/utils/getSearchSuggestion.utils.js b/src/utils/getSearchSuggestion.utils.js new file mode 100644 index 0000000..0d1173d --- /dev/null +++ b/src/utils/getSearchSuggestion.utils.js @@ -0,0 +1,16 @@ +import axios from "axios"; + +const getSearchSuggestion = async (keyword) => { + const api_url = import.meta.env.VITE_API_URL; + try { + const response = await axios.get( + `${api_url}/search/suggest?keyword=${keyword}` + ); + return response.data.results; + } catch (err) { + console.error("Error fetching genre info:", err); + return err; + } +}; + +export default getSearchSuggestion; diff --git a/src/utils/getServers.utils.js b/src/utils/getServers.utils.js new file mode 100644 index 0000000..0ed3e14 --- /dev/null +++ b/src/utils/getServers.utils.js @@ -0,0 +1,14 @@ +import axios from "axios"; + +export default async function getServers(animeId, episodeId) { + try { + const api_url = import.meta.env.VITE_API_URL; + const response = await axios.get( + `${api_url}/servers/${animeId}?ep=${episodeId}` + ); + return response.data.results; + } catch (error) { + console.error(error); + return error; + } +} diff --git a/src/utils/getStreamInfo.utils.js b/src/utils/getStreamInfo.utils.js new file mode 100644 index 0000000..d044e5c --- /dev/null +++ b/src/utils/getStreamInfo.utils.js @@ -0,0 +1,12 @@ +import axios from "axios"; + +export default async function getStreamInfo(animeId,episodeId,serverName,type) { + const api_url = import.meta.env.VITE_API_URL; + try { + const response = await axios.get(`${api_url}/stream?id=${animeId}?ep=${episodeId}&server=${serverName}&type=${type}`); + return response.data.results; + } catch (error) { + console.error("Error fetching stream info:", error); + return error; + } +} diff --git a/src/utils/getTopSearch.utils.js b/src/utils/getTopSearch.utils.js new file mode 100644 index 0000000..a1d1282 --- /dev/null +++ b/src/utils/getTopSearch.utils.js @@ -0,0 +1,32 @@ +import axios from "axios"; + +const getTopSearch = async () => { + try { + let workerUrls = import.meta.env.VITE_WORKER_URL?.split(","); + let baseUrl = workerUrls?.length + ? workerUrls[Math.floor(Math.random() * workerUrls.length)] + : import.meta.env.VITE_API_URL; + const storedData = localStorage.getItem("topSearch"); + if (storedData) { + const { data, timestamp } = JSON.parse(storedData); + if (Date.now() - timestamp <= 7 * 24 * 60 * 60 * 1000) { + return data; + } + } + const { data } = await axios.get(`${baseUrl}/top-search`); + const results = data?.results || []; + if (results.length) { + localStorage.setItem( + "topSearch", + JSON.stringify({ data: results, timestamp: Date.now() }) + ); + return results; + } + return []; + } catch (error) { + console.error("Error fetching top search data:", error); + return null; + } +}; + +export default getTopSearch; diff --git a/src/utils/getVoiceActor.utils.js b/src/utils/getVoiceActor.utils.js new file mode 100644 index 0000000..57afecf --- /dev/null +++ b/src/utils/getVoiceActor.utils.js @@ -0,0 +1,14 @@ +import axios from "axios"; + +export default async function fetchVoiceActorInfo(id, page) { + const api_url = import.meta.env.VITE_API_URL; + try { + const response = await axios.get( + `${api_url}/character/list/${id}?page=${page}` + ); + return response.data.results; + } catch (error) { + console.error("Error fetching anime info:", error); + return error; + } +} diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..2725950 --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,62 @@ +/** @type {import('tailwindcss').Config} */ +export default { + darkMode: ["class"], + content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"], + theme: { + extend: { + borderRadius: { + lg: "var(--radius)", + md: "calc(var(--radius) - 2px)", + sm: "calc(var(--radius) - 4px)", + }, + screens: { + "custom-md": "600px", + "custom-xl": "1200px", + "ultra-wide":"1660px", + }, + colors: { + background: "hsl(var(--background))", + foreground: "hsl(var(--foreground))", + card: { + DEFAULT: "hsl(var(--card))", + foreground: "hsl(var(--card-foreground))", + }, + popover: { + DEFAULT: "hsl(var(--popover))", + foreground: "hsl(var(--popover-foreground))", + }, + primary: { + DEFAULT: "hsl(var(--primary))", + foreground: "hsl(var(--primary-foreground))", + }, + secondary: { + DEFAULT: "hsl(var(--secondary))", + foreground: "hsl(var(--secondary-foreground))", + }, + muted: { + DEFAULT: "hsl(var(--muted))", + foreground: "hsl(var(--muted-foreground))", + }, + accent: { + DEFAULT: "hsl(var(--accent))", + foreground: "hsl(var(--accent-foreground))", + }, + destructive: { + DEFAULT: "hsl(var(--destructive))", + foreground: "hsl(var(--destructive-foreground))", + }, + border: "hsl(var(--border))", + input: "hsl(var(--input))", + ring: "hsl(var(--ring))", + chart: { + 1: "hsl(var(--chart-1))", + 2: "hsl(var(--chart-2))", + 3: "hsl(var(--chart-3))", + 4: "hsl(var(--chart-4))", + 5: "hsl(var(--chart-5))", + }, + }, + }, + }, + plugins: [require("tailwindcss-animate")], +}; diff --git a/vercel.json b/vercel.json new file mode 100644 index 0000000..2e3d156 --- /dev/null +++ b/vercel.json @@ -0,0 +1,3 @@ +{ + "routes": [{ "src": "/[^.]+", "dest": "/", "status": 200 }] +} \ No newline at end of file diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..454ab3e --- /dev/null +++ b/vite.config.js @@ -0,0 +1,12 @@ +import path from "path" +import react from "@vitejs/plugin-react" +import { defineConfig } from "vite" + +export default defineConfig({ + plugins: [react()], + resolve: { + alias: { + "@": path.resolve(__dirname, "./"), + }, + }, +})